Driver Distraction and Fatigue Detection in images using ME-YOLOv8 algorithm
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 )
- 예측된 바운딩 박스가 실제 정답 바운딩 박스와 얼마나 동일한 영역을 차지하는지를 평가
- 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 제공
- YOLOv7에서 활용된 ELAN 구조(Enhanced Layer Aggregation Networks) 를 활용
- C3 + ELAN → C2f 모듈로 최적화
C2f 모듈의 핵심 특징
- SPPF 모듈 적용
- YOLOv8의 backbone에서 last hidden layer 에 SPPF 모듈 적용
- 크기가 다른 5x5 맥스 풀링 연산을 세 번 연속으로 실행, 각 풀링 결과를 순차적으로 연결
→ 다양한 크기의 객체를 정밀하게 탐지 가능
☑️ DDFDD(Driver Distraction and Fatigue Detection Dataset) 구축
- 3,660개의 운전자 이미지 포함
- 운전 중 휴대폰 사용, 음주, 졸음운전, 눈감기 등 다양한 시나리오 반영
- 이 데이터셋을 구축하는 데 있어 가장 중요한 요소는 정확한 데이터 라벨링 과정이었음