Skip to content

myeongha/ml_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

🚗 운전자 이상행동 감지 모델 (Driver Abnormal Behavior Detection)

📌 프로젝트 개요

고속도로에서 발생하는 교통사고의 주요 원인 중 하나인 졸음운전과 주시태만을 방지하기 위해, 운전자의 상태를 실시간으로 분류하는 딥러닝 모델을 구축했습니다.

통계에 따르면 화물차를 포함한 고속도로 교통사고의 약 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 분석:
    • 대부분의 클래스 정확도가 높았으며, NormalSleep 클래스 간 혼동이 다소 존재

🧪 과반수 투표 기반 테스트 (Majority Voting)

  • 1초당 32프레임을 대상으로, 가장 많이 예측된 클래스를 1초 단위 최종 클래스로 결정
  • Noise 제거안정성 향상 효과
  • 두 가지 테스트 환경:
    • shuffle=False: 연속된 프레임 기반 예측
    • shuffle=True: 무작위 프레임 기반 예측

✅ 성과 요약

  • ResNet50 기반 모델로 운전자 상태를 5가지 클래스로 실시간 분류
  • 과반수 투표 기반 안정화 기법으로 실영상 적용 가능성 향상
  • 최대 95% 정확도 달성 (Validation 기준)
  • 교통 안전에 실질적으로 기여할 수 있는 인공지능 응용 사례로 발전 가능

🔗 기술 스택

  • Python, PyTorch
  • NumPy, Pandas

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published