Echtzeit Pan/Tilt Gesichtstracking auf Raspberry Pi – Praktischer Leitfaden
Überblick
Mit einem moderaten Zeitaufwand von ca. 25 $ an Bauteilen können Sie einen Raspberry Pi in eine leichte, echtzeitfähige Pan/Tilt-Webcam verwandeln, die Gesichtern folgt. Durch Kombination von OpenCV Gesichtserkennung, zwei Hobbyservos und dem servoblaster-Treiber hält der Pi die Kamera mit einer Bildrate schneller als einer Bewegung pro Sekunde auf dem Subjekt zentriert.
Schritt 1: Hardware beschaffen
Was Sie brauchen:
- Raspberry Pi – Model A oder B funktionieren; das neuere Model A (oder Pi Zero) ist voll ausreichend.
- Pan/Tilt-Halterung (viele kostenlose Designs auf Thingiverse)
- Zwei Hobbyservos (z. B. SG90 oder MG995)
- GPIO-Flachbandkabel
- Pi-kompatible Webcam (ich nutzte Logitech C210)
Vorausgesetzt, Sie besitzen bereits Pi und Webcam, kosten die Zusatzteile ca. 25 $.
Schritt 2: Raspberry Pi vorbereiten
Offizielles Raspbian OS (hard-float) nutzen und aktuell halten. Übertakten auf 800 MHz kann die nötige CPU-Headroom für Echtzeit-Erkennung geben, kann aber Stabilität reduzieren.
OpenCV für Python installieren:
sudo apt-get install python-opencv
servoblaster herunterladen und installieren, den Servo-Treiber von Richard Hirst:
git clone https://github.com/richard-hirst/servoblaster.git
cd servoblaster
make install_autostart
Optional: Timeout konfigurieren, damit der Treiber nach einer Sekunde Inaktivität keine Pulse mehr sendet. Diese Zeile zu /etc/modules hinzufügen:
servoblaster idle_timeout=1000
Treiber starten:
sudo modprobe servoblaster
Kamera-Tweaks: Dank Gmoto für den Hinweis, dass Anpassen des uvcvideo-Moduls Latenzprobleme behebt. Diese Befehle einmal pro Boot ausführen oder zu /etc/modules hinzufügen:
rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
Schritt 3: Rig zusammenbauen
Halterungsanweisungen folgen, Servos montieren, Webcam oben an der Halterung befestigen (Klebeband reicht). Kamera an Pi USB-Port anschließen; ein aktiver USB-Hub ist optional, hilft aber, wenn die Kamera mehr Strom zieht.
Schritt 4: Servos anschließen
Servoblaster mappt servo-0 auf GPIO 4 und servo-1 auf GPIO 17. Typische Servo-Kabel:
- Rot – +5 V
- Braun/Schwarz – GND
- Control – Signalleitung
Flachbandkabel nutzen, um Steuersignale an die korrekten GPIO-Pins zu führen. Der Code behandelt servo-0 als Pan (links-rechts) und servo-1 als Tilt (hoch-runter).
Servo-Stromversorgung: Kleine Hobbyservos können oft direkt von den 5 V GPIO-Pins des Pi gespeist werden, aber größere oder anspruchsvollere Modelle benötigen evtl. externe 5 V–6 V Versorgung. Servo +5 V und GND an externe Versorgung, dann externes GND an einen Pi GPIO Ground-Pin brücken.
Schritt 5: Tracking-Programm starten
Bereitgestelltes PiFace.py Skript herunterladen, auf den Pi legen und ausführen:
cd /path/to/PiFace.py
python PiFace.py
OpenCV führt Gesichtserkennung bei 320×240 Auflösung durch, sucht nach rechtem Profil, linkem Profil und Frontalgesichtern. Die Servos justieren mit einer Rate schneller als einmal pro Sekunde und halten die Kamera auf dem erkannten Gesicht zentriert.
Demo-Videos im Originalartikel als Referenz ansehen.
Herstellungsprozess
- Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
- Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
- Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- Sensordaten in Raspberry Pi integrieren: GPS & MPU-9150 Hands-On Guide
- Line-Tracking-Sensor mit Raspberry Pi – Einfacher KY-033 Tür/Line Detektor
- Blitzdetektion mit Raspberry Pi und AS3935: Praktischer Leitfaden
- Fortgeschrittenes Tischtennisball-Tracking mit Raspberry Pi und OpenCV
- Headless Raspberry Pi 2 Wasser-Alarm mit Adafruit T‑Cobbler Plus bauen
- Echtzeit Pan/Tilt Gesichtstracking auf Raspberry Pi – Praktischer Leitfaden