Project

[AI]운전자 졸음 탐지와 졸음 환경 감지 서비스

Crysis 2022. 7. 2. 18:03

본 프로젝트는 멀티캠퍼스  AI 국비지원 과정에서 진행한 2번째 프로젝트이다.

이 페이지에서는 전반적인 프로젝트에 대한 부분을 설명하며, 구현 부분은 따로 페이지를 만들어 설명하겠다.


 

□  프로젝트 개요

이번 프로젝트는 딥러닝(Object Detection)으로 운전자의 눈 감은 시점을 3초 이상 지속 되었을 때 알람이 울리며 아두이노센서데이터를 통해 현재 운전환경이 졸음이 오는 환경인지 아닌지를 머신러닝(Logistic Regression)을 통해 실시간으로 알려주는 서비스 이다.

 


  프로젝트 기간

2022년 4월 26일 ~ 2022년 5월 19일 (4주)

팀원 : 4명


 기술 스택

1. AI

Object Detection (YOLOv5)

Logistic Regression

 

2. Adurino

온습도 센서

이산화탄소 센서

부저

웹캠

 

3. DataBase

MYSQL

 

4. Frontend / Backend

Django

 


  개발 환경

LOCAL                                             

  • Ubuntu 20.04 LTS
  • Python 3.8
  • Tensorflow 2.7

 

GPU

  • Geforce RTX 2060 6GB
  • CUDA 11.3
  • cuDnn 8.2

 내 역할

  1. IMAGE Annotation 280장 
  2. Object Detection 학습 및 추론
  3. Arduino 
  4. Database
  5. Frontend / Backend

 배운점

AI를 실생활에서 사용할 수 있게 서비스화를 해본 것은 처음이다. 다른 각 파트와 실시간으로 연결하는 부분에 대해서 많이 생각 하게 되었다. 이 프로젝트를 통해서 하나 얻어간 것이 있다면 서비스가 조금 더 고도화 되기 위해선 어떤 것이 필요한가에 대해 조금 갈피를 잡게 될 수 있었다.


  어려웠던 점과 해결 방법

yolov5 자체는 코드가 이미 짜여져 있고 형식만 맞춰서 사용하는데 어려움이 없었지만 custom하게 실시간으로 처리하는 방식은 생각했던 것보다 쉽진 않았다.

 

3초간 눈을 감았을 때 DB로 현재 실내의 이산화탄소, 온습도를 전송해주고 부저를 울려야 했다. 실시간으로 처리하는게 쉽진 않았는데, YOLOv5의 detect.py 추론 코드에서 DB 전송과 시간을 처리해주는 코드를 만들어 처리하였다. 하지만 GPU가 있는 컴퓨터에서 테스트했을 때 오차가 거의 없었고, CPU로 진행하면 오차가 발생했다. 이 부분은 당장 내 실력으로는 당장 해결이 불가능했다.

 

나중에 알게된 사실이지만 사용한 MYSQL(관계형 데이터베이스)보다 NOSQL 방식이 속도 측면에서 더 빠르다고 알게되었다. 


  서비스 아키텍쳐

 

서비스의 전반적인 데이터 흐름도이다. 본래 의도 한 바로는 재학습까지 진행해보고 싶었는데 실력도 시간도 허락해주지 않아서 진행하지 못하였다.


 느낀점

나의 말도 안되는 의욕을 받아준 팀원들에게도 감사의 말을 전하고 싶다.

 

프로젝트 팀에서 상대적으로 다른 팀원들에 비해 실력이 조금 높았어서 너무 내 주도적으로 한게 아닐까 미안한 감정도 들기도 했고, 상대적으로 다른 팀원들이 프로젝트를 수행 할 수 있는 부분이 적었다. 하지만 팀원들이 나보다 못한다고해서 그 친구들을 무시하지는 않았다. 사람이 단일화가 안되어 있듯이 다 배움의 속도도 다 다르기 때문에 내가 취업을해서 반대로 팀원들의 입장이 될 수 있다라는 사실을 간과해서는 안된다고 생각한다. 진행하는데에 있어서 조금 더뎌서 압박도 주긴 했지만 최대한 팀원들이 얻어가는 것이 있었으면 했고 이 프로젝트를 발판으로 성장의 시발점이였으면 하는 바램이 있다.

 


 

AI프로젝트(졸음운전).pdf
1.59MB

GITHUB

 

GitHub - kch8906/5th_ML_Project

Contribute to kch8906/5th_ML_Project development by creating an account on GitHub.

github.com

 

 

 시연영상

 

'Project' 카테고리의 다른 글

[융복합]디지털 소외계층을 위한 키오스크  (0) 2022.07.04