ICT 드림업 - 무물 매니저/기획-설계

[eyedia] 하드웨어 설계

kangchaewon 2025. 4. 11. 17:26

하드웨어 구현 목표

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

 

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

https://github.com/dangdang2222/ReadWithMe