라즈베리 파이 실시간 팬/틸트 얼굴 추적 – 실전 가이드
개요
약간의 시간 투자와 25달러 부품비로 라즈베리 파이를 얼굴을 따라가는 가벼운 실시간 팬/틸트 웹캠으로 바꿀 수 있습니다. OpenCV 얼굴 감지, 두 개의 하비 서보, servoblaster 드라이버를 결합해 파이가 초당 1회 이상 움직임으로 카메라를 피사체 중앙에 유지합니다.
1단계: 하드웨어 준비
필요한 것:
- 라즈베리 파이 – 모델 A 또는 B 작동; 최신 모델 A(또는 파이 제로)면 충분
- 팬/틸트 브라켓 (Thingiverse에 무료 디자인 다수)
- 하비 서보 2개 (예: SG90 또는 MG995)
- GPIO 리본 케이블
- 파이 호환 웹캠 (로지텍 C210 사용)
이미 파이와 웹캠 소유 시 추가 부품비 약 $25.
2단계: 라즈베리 파이 준비
공식 라즈비안 OS (하드플로트) 사용하고 최신 상태 유지. 800MHz로 오버클럭하면 실시간 감지에 필요한 CPU 여유 확보 가능하지만 안정성 저하 가능성 인지 필요.
파이썬용 OpenCV 설치:
sudo apt-get install python-opencv
Richard Hirst의 서보 드라이버 servoblaster 다운로드 및 설치:
git clone https://github.com/richard-hirst/servoblaster.git
cd servoblaster
make install_autostart
선택 사항: 비활성 1초 후 드라이버가 펄스 전송 중단하도록 타임아웃 구성. /etc/modules에 다음 줄 추가:
servoblaster idle_timeout=1000
드라이버 시작:
sudo modprobe servoblaster
카메라 조정: Gmoto 통찰로 uvcvideo 모듈 조정이 지연 문제 해결. 부팅 시마다 한 번 실행하거나 /etc/modules에 추가:
rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
3단계: 장비 조립
브라켓 지침 따라 서보 장착, 웹캠을 브라켓 상단에 부착(테이프도 괜찮음). 카메라를 파이 USB 포트 연결; 전원 공급 USB 허브는 선택 사항이지만 카메라 전류 소모 클 때 도움.
4단계: 서보 연결
Servoblaster는 servo-0을 GPIO 4, servo-1을 GPIO 17에 매핑. 일반적인 서보 와이어:
- 빨강 – +5V
- 갈색/검정 – GND
- 제어 – 신호선
리본 케이블로 제어 와이어를 올바른 GPIO 핀에 연결. 코드는 servo-0을 팬(좌우), servo-1을 틸트(상하)로 처리.
서보 전원: 소형 하비 서보는 파이 5V GPIO 핀에서 직접 전원 공급 가능하지만 더 크거나 까다로운 모델은 외부 5V~6V 공급기 필요. 서보 +5V와 GND를 외부 공급기에 연결 후 외부 GND를 파이 GPIO 접지 핀에 연결.
5단계: 추적 프로그램 실행
제공된 PiFace.py 스크립트 다운로드해 파이에 배치 후 실행:
cd /path/to/PiFace.py
python PiFace.py
OpenCV가 320×240 해상도에서 얼굴 감지 실행, 오른쪽 프로필, 왼쪽 프로필, 정면 얼굴 검색. 서보가 초당 1회 이상 속도로 조정돼 카메라가 감지된 얼굴을 중앙에 유지.
원본 기사 링크된 데모 비디오 참조.