고속도로에서 발생하는 교통사고의 주요 원인 중 하나인 졸음운전과 주시태만을 방지하기 위해, 운전자의 상태를 실시간으로 분류하는 딥러닝 모델을 구축했습니다.
통계에 따르면 화물차를 포함한 고속도로 교통사고의 약 76~79%가 졸음 및 주시태만에 의한 사고로 나타났습니다. 이를 해결하기 위해 운전자의 상태를 이미지 기반으로 인식하고 이상 행동을 감지하는 모델을 개발했습니다.
- 운전자의 상태를 5가지 클래스로 분류:
Normal
,Sleep
,Call
,Smoke
,Boring (하품)
- 실시간 영상 스트림에서 운전자의 이상행동을 감지할 수 있는 시스템 구축
- 출처: AI Hub - 졸음운전 예방 운전자 상태 정보 영상 데이터
- 형태: 근적외선 카메라 기반 400시간의 원천 영상 → 총 35만 장 이미지
- 활용 데이터: 통제환경 데이터만 사용 (일관된 조건으로 수집됨)
- 클래스 비율 조정: 언더샘플링을 통해 클래스당 약 4,400장 균형 유지
-
모델: ResNet50 (Residual Block 기반 CNN 모델)
-
이유:
- 깊은 네트워크 구조에도 안정적인 학습 가능
- 실시간 처리에 적합한 계산 효율성 보유
-
입력 전처리:
- 원본 해상도 (800x1280) → (224x224) 크기로 리사이즈
- 클래스 라벨: 총 5개 행동 클래스
- Optimizer:
SGD
,Adam
(각기 두 개의 learning rate로 실험) - Batch Size:
64
,128
- Early Stopping 적용 (Validation Loss 기준)
- Loss Function: Cross Entropy Loss
- Adam (lr=0.0001, batch=64)
- Accuracy: 95.24% (Validation 기준)
- Accuracy: 91.87%
- F1 Score: 0.9189
- Confusion Matrix 분석:
- 대부분의 클래스 정확도가 높았으며,
Normal
↔Sleep
클래스 간 혼동이 다소 존재
- 대부분의 클래스 정확도가 높았으며,
- 1초당 32프레임을 대상으로, 가장 많이 예측된 클래스를 1초 단위 최종 클래스로 결정
- Noise 제거 및 안정성 향상 효과
- 두 가지 테스트 환경:
shuffle=False
: 연속된 프레임 기반 예측shuffle=True
: 무작위 프레임 기반 예측
- ResNet50 기반 모델로 운전자 상태를 5가지 클래스로 실시간 분류
- 과반수 투표 기반 안정화 기법으로 실영상 적용 가능성 향상
- 최대 95% 정확도 달성 (Validation 기준)
- 교통 안전에 실질적으로 기여할 수 있는 인공지능 응용 사례로 발전 가능
- Python, PyTorch
- NumPy, Pandas