1. 눈 내부 정규화 (Eye Feature Normalization → 상대좌표)
목적
- 눈 크기, 해상도, 사람마다 다른 눈 크기를 보정하고, 홍채 위치를 [-1,1] 범위로 표준화.
- 어떤 카메라/사람이라도 비교 가능한 특징 벡터 (vx, vy)를 얻는다.

2. 2차 다항 캘리브레이션 (Polynomial Regression)
목적
- (vx, vy) 상대좌표 → 스크린 좌표 (sx, sy) 로 보정.
- 카메라 왜곡, 머리 자세 차이를 다항식으로 근사.


3. 월드 평면 정합 (OpenCV ArUco Homography)
목적
- 스크린 좌표(픽셀)나 카메라 뷰 좌표를 실제 월드 평면 좌표(예: 실제 모니터, 보드, 책상)에 정합.
- 카메라와 월드 사이 기하학적 대응 관계 보정.
과정
- ArUco 마커 배치: 월드 평면(모니터 모서리, 종이판 등)에 4개 이상.
- 검출: cv2.aruco.detectMarkers → 각 마커의 코너 픽셀 좌표 추출.
- 대응점 매칭: 검출된 코너 픽셀 좌표 ↔ 실제 평면 좌표(사이즈를 알고 있음).
- 호모그래피 추정:
H, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC)
- src_pts: 카메라 이미지 상 좌표
- dst_pts: 월드 평면 좌표 (예: cm 단위, 또는 정규화 좌표)
p_world = cv2.perspectiveTransform(p_camera, H)
화면/카메라 좌표에서 월드 평면 좌표로 매핑.
전체 파이프라인 요약
- 눈 내부 정규화: (vx,vy) 얻기
- 2차 다항 회귀 보정: (vx,vy) → (sx,sy) 정규화 스크린 좌표
- 픽셀 변환: (px,py) = (sx·W, sy·H)
- 호모그래피 보정(선택): (px,py) → 월드 평면 좌표 (X,Y)
'Projects > AI 아이트래킹 모델 프로젝트' 카테고리의 다른 글
| [도메인 공부 ] 2. 아이트래커 + 스테레오 비전 (0) | 2025.09.11 |
|---|---|
| [도메인 공부 ] 1. 스테레오 알고리즘 (0) | 2025.09.10 |
| [도메인 공부] 홍채 이동에 따른 상대좌표 문제 (0) | 2025.09.08 |
| [도메인 공부] 파이썬 음성 처리 공부 (0) | 2025.09.04 |
| [도메인 공부] EMA 개념, MediaPipe iris 모델 (0) | 2025.09.03 |