Pelacakan Wajah Pan/Tilt Waktu Nyata pada Raspberry Pi – Panduan Praktis
Dengan investasi waktu yang modest dan $25 dalam bagian, Anda dapat mengubah Raspberry Pi menjadi webcam pan/tilt ringan waktu nyata yang mengikuti wajah. Dengan menggabungkan deteksi wajah OpenCV, dua servo hobi, dan driver servoblaster, Pi dapat menjaga kamera tetap terpusat pada subjek dengan kecepatan frame lebih dari satu gerakan per detik.
Langkah 1: Dapatkan Hardware
Yang Anda butuhkan:
- Raspberry Pi – Model A atau B akan bekerja; Model A yang lebih baru (atau Pi Zero) sudah cukup.
- Bracket pan/tilt (banyak desain gratis ada di Thingiverse)
- Dua servo hobi (misalnya, SG90 atau MG995)
- Kabel ribbon GPIO
- Webcam yang kompatibel dengan Pi (saya menggunakan Logitech C210)
Asumsikan Anda sudah memiliki Pi dan webcam, bagian tambahan berkira $25.
Langkah 2: Siapkan Raspberry Pi Anda
Gunakan Raspbian OS (hard-float) resmi dan pertahankan pembaruan. Overclocking ke 800 MHz dapat memberi Anda headroom CPU tambahan yang Anda butuhkan untuk deteksi waktu nyata, tetapi waspadai bahwa ini dapat mengurangi stabilitas.
Instal OpenCV untuk Python:
sudo apt-get install python-opencv
Unduh dan instal servoblaster, driver servo dari Richard Hirst:
git clone https://github.com/richard-hirst/servoblaster.git cd servoblaster make install_autostart
Opsional: Konfigurasikan timeout sehingga driver berhenti mengirim pulsa setelah satu detik tidak aktif. Tambahkan baris ini ke /etc/modules:
servoblaster idle_timeout=1000
Mulai driver:
sudo modprobe servoblaster
Penyesuaian kamera: Terima kasih kepada Gmoto atas wawasan bahwa penyesuaian modul uvcvideo memperbaiki masalah latensi. Jalankan perintah ini sekali per boot atau tambahkan ke /etc/modules:
rmmod uvcvideo modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
Langkah 3: Rangkai Rig
Ikuti instruksi bracket, pasang servo, dan sambungkan webcam ke atas bracket (tepat bekerja). Sambungkan kamera ke port USB Pi; hubung USB yang diberi daya opsional tetapi dapat membantu jika kamera menarik arus lebih banyak.
Langkah 4: Sambungkan Servo
Servoblaster memetakan servo-0 ke GPIO 4 dan servo-1 ke GPIO 17. Kabel servo tipikal adalah:
- Merah – +5 V
- Coklat/Hitam – GND
- Kontrol – garis sinyal
Gunakan kabel ribbon untuk menyambungkan kabel kontrol ke pin GPIO yang benar. Kode memperlakukan servo-0 sebagai pan (kiri-kanan) dan servo-1 sebagai tilt (atas-bawah).
Memberi daya pada servo: Servo hobi kecil sering kali dapat diberi daya langsung dari pin 5 V GPIO Pi, tetapi model yang lebih besar atau lebih menuntut mungkin membutuhkan suplai eksternal 5 V–6 V. Sambungkan +5 V dan GND servo ke suplai eksternal, lalu sambungkan GND eksternal ke pin ground GPIO Pi.
Langkah 5: Jalankan Program Pelacakan
Unduh skrip PiFace.py yang disediakan, tempatkan di Pi, dan jalankan:
cd /path/to/PiFace.py python PiFace.py
OpenCV menjalankan deteksi wajah pada resolusi 320×240, mencari wajah profil kanan, profil kiri, dan wajah depan. Servo menyesuaikan dengan laju lebih cepat dari sekali per detik, menjaga kamera tetap terpusat pada wajah yang terdeteksi.
Periksa video demo yang ditautkan dalam artikel asli untuk referensi.