프로젝트 명 : 행동 기반 졸음운전 인식
동기 : 아버지의 일을 도와 함께 일하던 어느 날, 차에서 조시는 모습을 보았습니다. 이러한 일이 몇 번 있었고 그 모습을 관찰한 결과, 아버지는 졸음이 오기 전에 높은 확률로 뒷목을 마사지 하셨습니다. 따라서 '뒷목 마사지 -> 졸음'이라는 과정이 발생한다는 것을 알았고, 아버지에게 도움이 되는 프로그램을 개발하고 싶어서 이 프로젝트를 시작했습니다. 뿐만 아니라, 저의 개발 역량의 성장을 도모할 것 같아서 시작했습니다.
차별성 : 행동 기반 인식을 통한 효과적인 졸음 상태 탈출
이미 많은 졸음운전 알고리즘이 논문과 오픈소스로 나와있습니다. 대부분은 눈의 상태를 이용한 인식 방법입니다. 예를 들어, 1초에 45frame인 카메라를 통해 1초 안에 눈을 감고 있는 frame의 수가 25장 이상이 되면 졸음으로 인식하는 방법입니다. 그런데 눈을 이용한 알고리즘의 문제점은 이미 졸음 상태에 진입했다는 것 입니다. 아래 뇌파에서 보면 Theta에 해당한다. 그런데 운전을 할 때 뇌파 상태는 Beta이다. Theta에서 Beta로 오기 위해서는 2번 건너야 한다. 그렇다면 졸음에 빠지기 전 단계인 Alpha에서 운전자에게 경고를 주면 1번 건너 뜀으로 더 효과적으로 깰 수 있지 않을까? 이 이론을 뒷받침하기 위해서 뇌의 심리작용을 연구하는 친구에게 문의해 보았습니다. 자신의 전공이 아니라서, 확실한 대답을 할 수 없지만 정량적으로 보았을 때 Alpha에서 Beta로 가는 것이 Theta에서 Beta로 가는 것 보다 덜 에너지가 소모될 것 같다고 말했습니다. (추가로 이 부분에 대해서 더 조사해 보았지만 구체적인 근거를 찾을 수 없었습니다. 혹시 아시는 분이 글을 남겨 주신다면 감사하겠습니다.)
일반화를 위한 근거에 대한 신뢰도가 없었지만, 3가지 이유에서 계속 진행하기로 했습니다.
첫 번째, 아버지의 안전을 위한 개발이 목적이었기 때문입니다. 아버지는 90% 이상의 높은 확률로 졸음 전에 뒷목을 마사지 하셨습니다.
두 번째, 본인의 개발 역량 성장입니다. Siamese network와 Contrastive Loss 그리고 Pytorch와 Tensorflow 등을 공부하면서 적용해 보고 싶었습니다. 그리고 설계를 하면서 프로그래밍 실력도 향상될 것이라고 생각했습니다.
세 번째, 재사용 가능성입니다. 일단 만들어 놓으면 이후에 수정/추가가 가능하기 때문입니다. 최악의 경우는 폐기가 되는 데, 저는 이를 상관하지 않습니다. 왜냐하면, 위 2가지 이유를 달성할 것이기 때문입니다.
다음으로 설계를 진행했습니다.
'Career > Drowsy Behavior Detection' 카테고리의 다른 글
개인 프로젝트 : 문제 해결 (0) | 2020.12.25 |
---|---|
개인 프로젝트 : 개발 (0) | 2020.12.25 |
개인 프로젝트 : 전처리 (0) | 2020.12.24 |
개인 프로젝트 : 데이터 수집 (0) | 2020.12.21 |
개인 프로젝트 : 설계 (0) | 2020.12.21 |