1. 문제
내가 이번 프로젝트를 통해 구현해야 할 메인 기능은 두 개다.
기능 1. 시선 추적 (Eyes Tracking / Gaze estimation)
기능 2. 사람의 보고 있는 방향(왼쪽, 오른쪽, 위, 아래) 추적
2번 같은 문제는 구현하는데 있어 크게 문제가 되지는 않지만..
1번 시선 추적을 구현하는데 있어 난항을 겪고 있다.
현재까지로는 YOLO모델로 학습을 시켜 사람의 눈동자(홍채)를 탐지하는것 까지는 성공했고 눈동자를 움직였을 때, 큰 오차 없이 잘 따라오는 것을 확인했다. 그리고 각 눈동자들을 좌표(x, y)값으로 나타냈다.
하지만 실제 사람은 눈동자나 고개를 조금만 돌려도 볼 수 있는 시야각이 넓어지지만 좌표상으로는 큰 변화가 없다.
그래서 실제 사람의 시야 변화률과 좌표 상의 변화률을 calibration을 해야하는 상황이다.
2. 해결방법..?
시중에 있는 Eye Tracker 제품을 살펴보니 Center corneal reflection method이라는 방법을 사용하여 이 오차값을 계산한다고 한다.
https://www.tobii.com/resource-center/learn-articles/how-do-eye-trackers-work
How do eye trackers work? — A tech-savvy walk-through
This article explains how eye tracking works. We illustrate step-by-step processes of screen-based and wearable eye trackers and XR integrations.
www.tobii.com
대충 요약하면
1. 적외선 LED를 사람한테 비추고 카메라로 보면 glient라는 각막 반사점이 생긴다.
2. 이 glient와 동공 중심(pupil center)사이의 거리 차이를 이용하여 시선을 계산한다
glient는 고정되어있고 사람이 좌우로 시선을 움직이면 pupil center의 위치는 변하기 때문에 이 오차를 계산, 즉 Glient를 기준으로 pupil center가 얼마나 이동했는지를 측정하여 시선 방향을 계산하는 방식이다
... 그렇다는데 솔직히 잘 모르겠다. 이게 구현이 쉬울지는 모르겠고 그리고 필연적으로 이 방법으로 구현을 하면 각각의 사용자에 대하여 calibration을 수행할 필요가 있다.
아무튼 머리가 뜨거워진다.. 학기 시작도 해서 이걸 할 수 있을지는 모르겠는데.. 최대한 해보고 안되면 기능1은 우선 뺄 생각이다. 공모전 데드라인때문에..
우선 올해 한 해는 이걸 해결해보는데 집중할 예정이다.
실시간 눈과 시선 위치 추척 이라는 논문이 있는데 이게 문제를 해결하는데 있어 도움이 됐으면 좋겠다. 일단은 저 논문을 읽어볼 예정이다.
'2025(학부 3학년) > [project]미숙련자를 위한 운전 피드백 디바이스' 카테고리의 다른 글
[Hailo8] 라즈베리파이에서 HEF파일 실행시켜보기 (0) | 2025.03.16 |
---|---|
[Hailo8] pt → HEF 파일 변환 (0) | 2025.03.08 |
[Hailo8] Dataflow Compiler (0) | 2025.03.02 |
[Hailo8] 기본 세팅 (0) | 2025.02.27 |
[라즈베리파이5, Hailo8] 구매 및 조립 (0) | 2025.02.27 |