@7more0/Driver-Fatigue-Detection
데이터 전처리 (Data Preprocessing)
| 비디오 분할 | yawn_split_video.py를 사용하여 YawDD 데이터셋 내의 비디오를 세그먼트로 분할 |
| 훈련/검증 데이터 분할 | opr_tools.py를 사용하여 훈련(train)과 검증(val) 데이터로 나누기 |
| Inception 모델 학습을 위한 데이터 준비 | data_proc.py를 사용하여 비디오를 개별 프레임으로 변환 |
| LSTM 모델 학습을 위한 데이터 준비 | feature_extract.py 실행하여 모든 훈련 데이터의 프레임 특징을 추출 |
- lst 파일을 제공함
각 비디오 파일(video1.mp4, video2.mp4)에 대해,
- 3 8 0 → 3초~8초 구간은 ‘정상(Normal, 0)’
- 12 17 1 → 12초~17초 구간은 ‘대화(Talking, 1)’
- 22 27 2 → 22초~27초 구간은 ‘하품(Yawning, 2)’
- 5 10 0 → 5초~10초 구간은 ‘정상(Normal, 0)’
- 15 20 2 → 15초~20초 구간은 ‘하품(Yawning, 2)’
결과
| 모델 | Accuracy(Epoch 20) | Validation Accuracy(Epoch 20) |
| Custom CNN | 0.8475 | 0.9025 |
| VGG19 | 0.5659 | 0.5579 |
| EfficientNetB3 | 0.9170 | 0.9462 |