Projects/AI 아이트래킹 모델 프로젝트

[프로젝트] 7. 프로젝트 트러블슈팅 및 향후과제

ha2yong 2025. 9. 24. 03:37

프로젝트명: 시선추적 + 월드깊이맵 + YOLOE 객체탐지 + STT + LLM (LangGraph) 융합 시스템
작성일: 2025년 9월


1. 개요

본 프로젝트는 시선추적(eye tracking)과 월드카메라 깊이맵 추정을 결합하고, YOLOE 기반 객체탐지, Whisper STT, LangGraph LLM을 연계하여, 사용자의 응시 기반 인터랙션을 구현하는 것을 목표로 한다.
개발 과정에서 다양한 기술적 트러블이 발생하였으며, 이를 해결하기 위한 트러블슈팅 결과를 아래와 같이 정리한다.

2. 주요 트러블 및 해결 방안

2.1 멀티 카메라 동기화 및 지연 문제 (최고 중요도)

  • 문제점: Eye cam과 World cam 간 타이밍 불일치 및 Wi-Fi 전송 지연(최대 7초).
  • 원인: 저성능 하드웨어(Raspberry Pi Zero W)와 PyAV/ OpenCV 백엔드의 버퍼링.
  • 해결책:
    • PyAV 백엔드 사용 + stimeout, rtsp_transport=tcp 적용.
    • 해상도/비트레이트 축소 (640×480, 1.2Mbps).
    • cv2.imshow 제거 및 로컬 CPU 부담 최소화.

2.2 시선벡터 추정 정확도 문제

  • 문제점: Mediapipe 기반 홍채 평면 법선 추정 시 노이즈가 크고, 두 눈 벡터 교차점이 불안정.
  • 해결책:
    • EMA(Exponential Moving Average) 적용으로 벡터 스무딩.
    • 두 눈 교차점 대신 중간점(pmid) 활용.
    • 향후 딥러닝 기반 모델(RT-GENE, Gaze360) 도입 검토.

2.3 월드 깊이맵 정합 문제

  • 문제점: Depth-Anything V2 추정 결과와 Intrinsic/Extrinsic 불일치로 인해 광선–깊이맵 매칭 불안정.
  • 해결책:
    • 체커보드 기반 eye→world extrinsic 추정 적용.
    • ray_depth_intersection_best_of_two() 사용으로 광선 방향 양쪽 탐색.
    • 절대 깊이 보정식 도입: Dcorr=a⋅Dpred+bD_{corr} = a \cdot D_{pred} + b.

2.4 YOLOE 객체탐지 연동 문제

  • 문제점: YOLO 서버 응답 포맷 불일치로 파싱 오류 및 응시점 근처 객체 탐지 실패.
  • 해결책:
    • _normalize_detections() 모듈 개발 → 응답 형식 통일.
    • 응시점 좌표 기반 ROI 탐지 및 근접 객체 우선 선택.
    • YOLOE 모델 교체 시에도 API 호환성 유지.

2.5 STT 및 웨이크워드 연계 문제

  • 문제점: Whisper STT의 높은 리소스 소비로 항상 대기 시 과부하 발생.
  • 해결책:
    • Picovoice Porcupine으로 웨이크워드(Hotword) 감지 후 Whisper STT 실행 구조 도입.
    • 동일 마이크 인덱스를 사용하여 STT 정확도 확보.
    • Whisper 모델 크기(tiny/base 우선) 조정으로 리소스 최적화.

2.6 LangGraph LLM 연동 안정성 문제

  • 문제점: STT 결과 전송 시 HTTP 타임아웃 및 과도한 요청 발생.
  • 해결책:
    • LGClient.push_gaze()에 요청 간격 제한(throttle_s=0.5) 적용.
    • 예외 처리(try/except)를 통한 안정성 확보.
    • 세션 ID(alpha) 기반 상태 관리.

2.7 시스템 리소스 관리 문제

  • 문제점: Eye tracking, VDA, YOLO, Whisper 동시 실행 시 OOM 및 성능 저하.
  • 해결책:
    • VDA 추론 시 max_res, input_size 제한.
    • GPU 환경에서 half precision(torch.autocast) 적용.
    • Whisper 모델 크기 및 GUI 옵션(--no_gui) 조정으로 CPU 사용량 절감.

3. 결론

본 프로젝트는 초기 단계에서 카메라 동기화·정합 문제시선 추정 정확도 부족이 가장 큰 난관이었다.
그러나 EMA 기반 스무딩, Extrinsic 캘리브레이션, PyAV 최적화 등을 통해 안정성을 확보하였다.

STT/웨이크워드 및 YOLOE 연동에서도 파싱/리소스 문제를 해결하여, 현재는 “시선 → 깊이맵 → 객체탐지 → STT → LLM 연계”까지 일관된 파이프라인이 동작 가능한 수준에 도달하였다.

향후 발전 방향은 딥러닝 기반 시선추정 모델 도입, 경량화된 Whisper 대체 모델 적용, YOLOE의 open-vocabulary 탐지 활용 등이 될 것이다.