sol’s blog

Driver Distraction and Fatigue Detection in images using ME-YOLOv8 algorithm

 
Callout icon'

robustness, real-world conditions 가 매우 중요

  • robustness: 입력 데이터 변화에도 영향을 받지 않음
 

☑️ 이 프로젝트의 기여점, 필요성

  • 탐지 성능이 향상되면, 위험한 행동을 더 빠르게 감지하고 수정할 수 있으며, 이를 통해 즉각적인 개입이 가능해져, 위험 상황에서도 도움이 필요한 사람들에게 신속한 경고 또는 지원을 제공할 수 있음
  • 이 기술을 다른 공공 안전 시스템에 통합하면, 더 정밀하고 정확한 교통 제어 및 긴급 대응이 가능해질 것이며, 더 나아가 불의의 사고를 예방하는 데도 기여할 것

☑️ driver distraction

  • visual distraction, manual distraction 으로 나뉨
  • 최근 연구들은 운전자의 상반신을 모니터링하여 driver distraction을 분석하는 방법을 찾는 데 집중하고 있음
    • GMM(Gaussian Mixture Model)을 이용한 분할(segmentation)된 이미지를 AlexNet 모델로 처리했을 때, 적용안했을 때보다 높은 정확도를 높임

☑️ classes

  • drinking, closed eyes, open eyes , seat belt on, talking on the phone , texting, yawning

☑️ 데이터 라벨링

  • Roboflow annotation tool

☑️ 이미지 resize

  • 640 x 640 pixels

☑️ 데이터 증강

  • horizontal filps ( 피사체의 방향에 대한 모델의 민감도를 낮추기 위해 )
  • rotations ( 카메라 회전에 대해 모델의 resistance를 향상시키기 위함 )
  • perspective transformations ( x 및 y축 방향의 기울기를 통해 피사체의 기울기와 회전 변화를 모방 )
  • adding artificial noise ( 이미지 품질 저하 및 다양한 카메라 특성에 대한 모델의 robustness를 높이기 위해 )

☑️ 데이터셋 split

  • trian : val : test = 8 : 1 : 1
  • test 데이터로 SFDDD, YawDD 데이터를 추가로 이용함

☑️ 학습 과정 및 하이퍼파라미터 설정

  • 훈련 과정에서는 초기 learning rate 0.01 설정 ( avoid slow convergence and overshooting the loss function’s minimum )
  • optimizer는 SGD with momentum of 0.937
  • weight decay 를 0.0005로 설정하여 정규화
  • batch size = 4 ( 작은 배치 크기는 일반적으로 unseen data에 대한 모델의 일반화 성능을 향상시킴 )
  • 200 epochs

☑️ Performance evaluation : Precision, Recall, mean average precision(mAP)

  • Precision - false alarms 개수를 최소화하여 시스템의 신뢰성과 실용성을 유지하기 위해 선택
  • Recall
  • mAP
    • 여러 thresholds에 걸쳐 모델의 정밀도를 포괄적으로 측정하는 중요한 지표
  • IoU ( Intersection over union )
    • 예측된 바운딩 박스가 실제 정답 바운딩 박스와 얼마나 동일한 영역을 차지하는지를 평가
      • IoU=Area of overlapArea of unionIoU = \frac{\text{Area of overlap}}{\text{Area of union}}
  • F1
    • 양성 샘플의 수가 음성 샘플보다 적거나, 한 클래스의 중요도가 다른 클래스보다 높은 경우에 F1 점수가 유용하게 활용됨

☑️ CNN vs YOLO

CNN
- 조명의 변화, 카메라 각도, 객체가 가려지는 현상과 같은 요인에 영향을 받음
→ 탐지가 과소 평가 되거나 일부 탐지가 누락될 수 있음

- 연산 복잡도는 a significant amount of processing power(높은 처리 성능)을 요구하기 때문에, 이러한 연량은 실시간 시스템(real-time usage)에서 제약 요인으로 작용할 수 있음
YOLO
- YOLO 모델이 CNN의 제약적인 부분에서 강력한 성능을 보이긴 함.
- 그래도, 더 복잡한 조명, 객체 가림 현상, 빠른 처리 속도 요구 사항을 증가하도록 하는 연구가 계속 진행되고 있는데, 특히 YOLO 모델을 fine-tuning 하는데 초점을 맞추고 있음

☑️ ME-YOLOv8(customized YOLOv8 module)

attention mechanisms 과의 결합

→ 향상된 detection accuracy and reliability in real-time scenarios

MHSA(multi-head self-attention) and ECA(efficient channel attention) 매커니즘과의 결합
MHSA
(spacial attention)
- global object features에 대한 민감도를 높임
→ 모델의 해석 가능성과 운전자 주의 분산 및 졸음의 주요 특성을 이해하는 능력을 향상시킴

- 새롭게 추가된 feature 의 가중치를 동적으로 조정하여 모델의 predictive power를 조절할수있도록 함
- 특히, SPPF 모듈의 판별력이 효과적으로 향상됨
→ 운전자의 주의 분산이나 졸음의 초기 징후가 매우 작고 쉽게 놓칠 수 있기 때문에 중요한 요소

- YOLOv8’s backbone의 마지막 단계에서 MHSA 메커니즘을 통합하도록 업데이트됨
ECA
(channel-wise attention)
- ME-YOLOv8의 Neck 섹션에 결합됨
→ background noise 문제 해결, 얼굴 표정과 head posture와 같은 핵심 특징에 대한 모델의 주의를 집중시킴

- 작은 객체들의 식별 성능을 높이기 위해 hierarchical detection 기법이 적용됨.
→ 배경 노이즈를 증폭시키는 문제가 있음. 이를 해결하기 위해 ECA 모듈이 도입됨

- 동적 가중치 원칙을 기반으로 함.
→ 모델의 초점을 정교하게 조정하여, relevant features를 강조하고 배경 간섭(background interference)을 줄임. → 탐지 정밀도를 크게 향상시킴

☑️ ME-YOLOv8 모델 개발

  • YOLOv8을 세 가지 주요 부분(backbone, head, neck)으로 나누어 각 부분이 고유한 기능을 수행하도록 개선
  • 기존 YOLOv8의 C3 모듈 → C2f 모듈로 대체하여 최적화
    • C3 모듈: YOLOv8에 기본적으로 사용되는 모듈
    • C2f 모듈: 더 높은 feature detailing and reliability rate 제공
    • Callout icon'

      C2f 모듈의 핵심 특징

      • YOLOv7에서 활용된 ELAN 구조(Enhanced Layer Aggregation Networks) 를 활용
      • C3 + ELAN → C2f 모듈로 최적화
  • SPPF 모듈 적용
    • YOLOv8의 backbone에서 last hidden layer 에 SPPF 모듈 적용
    • 크기가 다른 5x5 맥스 풀링 연산을 세 번 연속으로 실행, 각 풀링 결과를 순차적으로 연결
      • → 다양한 크기의 객체를 정밀하게 탐지 가능

 
 
 

☑️ DDFDD(Driver Distraction and Fatigue Detection Dataset) 구축

  • 3,660개의 운전자 이미지 포함
  • 운전 중 휴대폰 사용, 음주, 졸음운전, 눈감기 등 다양한 시나리오 반영
  • 이 데이터셋을 구축하는 데 있어 가장 중요한 요소는 정확한 데이터 라벨링 과정이었음

 
 

추천 글

Made with BlogPro