하드웨어 구현 목표
- 사용자가 바라보는 시선의 좌표 추출
- 일정 시간 이상 응시하면 카메라가 그림 캡쳐
- (고민 필요) 시선과 그림을 매칭하여 응시한 객체 추출 후 서버로 전송
- 서버에서 받아온 음성 데이터 실행
1. 사용자가 바라보는 시선(pupil)의 좌표 추출
-> Gaze Estimation

2. 일정 시간 이상 응시하면 카메라가 그림 캡쳐
-> 라즈베리파이 카메라로 전체 사진 저장
3. 서버에서 받아온 음성 데이터 실행
-> 라즈베리파이 음성 출력
하드웨어 구성
1. 아이트래킹 + 사진 캡처용 라즈베리파이
- Raspberry Pi 4B (4GB 이상 추천)
- 카메라 모듈 (Pi Camera HQ or V2)
- 아이트래킹 장치: DIY로는 Pupil Labs 제품이나 OpenCV 기반 IR 카메라 활용
- 이어폰/스피커 출력: 3.5mm 잭 또는 Bluetooth 출력
- 모바일 배터리 (USB-C): 휴대성 고려
2. 시선좌표 계산 전용 라즈베리파이(서버/하드웨어 고민)
- Raspberry Pi 4 또는 CM4 (Compute Module)
(또는 위의 Pi에서 통합 처리 가능할 수도 있음) - USB/IR 기반 아이트래커 센서
- 통신 모듈: Wi-Fi or Bluetooth to PC
💻 소프트웨어 구성
파트내용
| Pi - 아이트래킹 | OpenCV 기반 눈동자 추적 / Gaze estimation 모델 |
| Pi - 카메라 | 일정 시간 이상 특정 좌표 응시 시 이미지 캡쳐 (파이썬 + PiCamera) |
| 통신 | MQTT 또는 Socket 통신으로 Pi → 노트북 데이터 전송 |
| 노트북 - 매칭 | YOLO, Detectron2 등 객체 검출 모델로 그림 내 객체 탐지 + 좌표 기반 매칭 |
| 노트북 - 설명 생성 | 미리 학습된 데이터베이스 또는 GPT 기반 설명 생성기 |
| 노트북 → Pi | 설명 텍스트 전송 |
| Pi - TTS | Google TTS, gTTS, 또는 Edge TTS로 음성 변환 |
| 이어폰 출력 | 라즈베리파이의 오디오 포트 또는 BT 이어폰 연결 |
🧠 직접 개발 가능한 시선 추적 시스템 구성
📸 1. 적외선(IR) 센서 및 카메라
- 적외선 LED: 홍채/동공을 밝히기 위한 비가시광 조명 (눈에 부담 없음)
- IR 필터 카메라: 눈동자 반사와 움직임을 잘 인식함
- 기능: 동공의 반사광 위치(Purkinje image)로 시선 방향 추정
🧪 2. 홍채 및 동공 인식 알고리즘
- 동공은 IR 조명 하에서 어둡게 보이고, 홍채는 밝게 보임
- 알고리즘 처리 순서:
- 프레임 캡처
- 그레이스케일 변환
- Threshold + Contour로 동공 검출
- 타원 피팅 (ellipse fitting) → 동공 중심
- 중심이 기준 위치에서 얼마나 이동했는지 계산 → 시선 벡터 추정
🎯 3. 시선 방향 추출 (Gaze Estimation)
- 광학적 모델:
- Pupil center + corneal reflection의 상대 위치로 시선 각 추정
- 두 개 이상의 IR 반사점 사용 시 정확도 ↑
- 기하학적 모델:
- 눈을 회전 가능한 구로 가정하고, 동공의 위치 변화량으로 각도 계산
- ML 보정:
- Calibration(캘리브레이션) 데이터를 기반으로 선형 회귀 등으로 보정
🔌 4. 라즈베리파이 연결 센서 예시
부품설명
| IR LED | 눈을 비추는 조명 (850nm 추천) |
| IR 필터 카메라 (Pi NoIR) | 적외선 전용 카메라 |
| IR 센서 (추가 선택) | 눈 깜박임 감지 등 |
| USB 카메라 | 보조용, RGB 추적 |
| GPIO 핀 | IR 조명 제어 등 |
참고자료
https://velog.io/@dangdang2222/Gaze-Estimation
Gaze Estimation
https://github.com/dangdang2222/ReadWithMe캡스톤 디자인I에서 진행했던 프로젝트 중 내가 맡았던 Gaze Estimation 파트에 대해 간단히 기록 남기려고 한다코드는 위 git 링크에 올려놨으나 readme 부분을 살짝 덜
velog.io
https://ddangeun.tistory.com/109
[RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력
TTS: TextToSpeech, 즉 텍스트를 음성으로 출력해보겠습니다. TTS 오픈소스는 다양하지만, 한글을 읽고 싶기 때문에 한국어를 지원해주는 eSpeak를 사용해보겠습니다. 라즈베리파이 오디오 설정 오디오
ddangeun.tistory.com
'ICT 드림업 - 무물 매니저 > 기획-설계' 카테고리의 다른 글
| [무물매니저] LangChain 또는 LlamaIndex + LLaMA로 경량형 RAG 만들기 (1) | 2025.04.18 |
|---|---|
| [ICT드림업] 프로젝트 기획 - 아이트래킹·객체 인식 기반 AI 도슨트 (0) | 2025.04.05 |