Seguimiento Facial Pan/Tilt en Tiempo Real en Raspberry Pi – Guía Práctica
Con una modesta inversión de tiempo y $25 en piezas, puede convertir una Raspberry Pi en una webcam pan/tilt ligera y en tiempo real que sigue rostros. Combinando detección facial OpenCV, dos servos hobby y el driver servoblaster, la Pi puede mantener la cámara centrada en un sujeto a una tasa de frames superior a un movimiento por segundo.
Paso 1: Adquiera el Hardware
Lo que necesitará:
- Raspberry Pi – Modelo A o B funcionarán; el nuevo Modelo A (o Pi Zero) es totalmente suficiente.
- Soporte pan/tilt (muchos diseños gratuitos en Thingiverse)
- Dos servos hobby (ej. SG90 o MG995)
- Cable ribbon GPIO
- Webcam compatible con Pi (usé una Logitech C210)
Asumiendo que ya posee una Pi y una webcam, las piezas extra cuestan aproximadamente $25.
Paso 2: Prepare su Raspberry Pi
Use el Raspbian OS (hard‑float) oficial y manténgalo actualizado. Overclockear a 800 MHz puede darle el margen extra de CPU que necesita para detección en tiempo real, pero sea consciente de que puede reducir la estabilidad.
Instale OpenCV para Python:
sudo apt-get install python-opencv
Descargue e instale servoblaster, el driver de servos de Richard Hirst:
git clone https://github.com/richard-hirst/servoblaster.git cd servoblaster make install_autostart
Opcional: Configure un timeout para que el driver deje de enviar pulsos tras un segundo de inactividad. Añada esta línea a /etc/modules:
servoblaster idle_timeout=1000
Inicie el driver:
sudo modprobe servoblaster
Ajustes de cámara: Gracias a Gmoto por la idea de que ajustar el módulo uvcvideo soluciona problemas de latencia. Ejecute estos comandos una vez por arranque o agréguelos a /etc/modules:
rmmod uvcvideo modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
Paso 3: Ensamble el Montaje
Siga las instrucciones del soporte, monte los servos y fije la webcam en la parte superior del soporte (la cinta funciona bien). Conecte la cámara al puerto USB de la Pi; un hub USB alimentado es opcional pero puede ayudar si la cámara consume más corriente.
Paso 4: Conecte los Servos
Servoblaster mapea servo‑0 a GPIO 4 y servo‑1 a GPIO 17. Los cables típicos de servo son:
- Rojo – +5 V
- Marrón/Negro – GND
- Control – línea de señal
Use el cable ribbon para conectar los cables de control a los pines GPIO correctos. El código trata servo‑0 como pan (izquierda‑derecha) y servo‑1 como tilt (arriba‑abajo).
Alimentación de los servos: Los servos hobby pequeños a menudo pueden alimentarse directamente de los pines GPIO 5 V de la Pi, pero modelos más grandes o exigentes pueden requerir una fuente externa de 5 V–6 V. Conecte el +5 V y GND del servo a la fuente externa, luego una el GND externo a un pin GPIO de tierra de la Pi.
Paso 5: Ejecute el Programa de Rastreo
Descargue el script PiFace.py provisto, colóquelo en la Pi y ejecute:
cd /path/to/PiFace.py python PiFace.py
OpenCV ejecuta detección facial a resolución 320×240, buscando perfiles derecho, izquierdo y frontal. Los servos ajustan a una tasa superior a una vez por segundo, manteniendo la cámara centrada en el rostro detectado.
Consulte los videos de demostración vinculados en el artículo original como referencia.
Proceso de manufactura
- Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
- Monitorización profesional de temperatura con Raspberry Pi y DS18B20
- Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Integración de datos de sensores en Raspberry Pi: Guía práctica
- Sensor de seguimiento de línea con Raspberry Pi – Detector simple KY‑033 para puerta/línea
- Detección de Rayos con Raspberry Pi y AS3935: Guía Práctica
- Seguimiento Avanzado de Pelotas de Ping‑Pong con Raspberry Pi y OpenCV
- Construya una Alarma de Agua Headless para Raspberry Pi 2 con Adafruit T‑Cobbler Plus
- Seguimiento Facial Pan/Tilt en Tiempo Real en Raspberry Pi – Guía Práctica
- Los mejores accesorios para aprovechar al máximo tu Raspberry Pi