Rastreamento Facial Pan/Tilt em Tempo Real no Raspberry Pi – Guia Prático
Com um investimento modesto de tempo e $25 em peças, você pode transformar um Raspberry Pi em uma webcam pan/tilt leve e em tempo real que segue rostos. Combinando detecção facial OpenCV, dois servos hobby e o driver servoblaster, o Pi pode manter a câmera centralizada no sujeito a uma taxa de quadros mais rápida que um movimento por segundo.
Passo 1: Adquira o Hardware
O que você vai precisar:
- Raspberry Pi – Modelo A ou B funcionará; o novo Modelo A (ou Pi Zero) é totalmente suficiente.
- Suporte pan/tilt (muitos designs gratuitos existem no Thingiverse)
- Dois servos hobby (ex: SG90 ou MG995)
- Cabo ribbon GPIO
- Webcam compatível com Pi (usei uma Logitech C210)
Assumindo que você já possui um Pi e uma webcam, as peças extras custam aproximadamente $25.
Passo 2: Prepare Seu Raspberry Pi
Use o Raspbian OS (hard-float) oficial e mantenha-o atualizado. Overclocking para 800 MHz pode dar o espaço extra de CPU que você precisa para detecção em tempo real, mas esteja ciente de que pode reduzir a estabilidade.
Instale OpenCV para Python:
sudo apt-get install python-opencv
Baixe e instale servoblaster, o driver de servo de Richard Hirst:
git clone https://github.com/richard-hirst/servoblaster.git
cd servoblaster
make install_autostart
Opcional: Configure um timeout para que o driver pare de enviar pulsos após um segundo de inatividade. Adicione esta linha a /etc/modules:
servoblaster idle_timeout=1000
Inicie o driver:
sudo modprobe servoblaster
Ajustes de câmera: Graças a Gmoto pelo insight de que ajustar o módulo uvcvideo corrige problemas de latência. Execute estes comandos uma vez por boot ou adicione-os a /etc/modules:
rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
Passo 3: Monte o Equipamento
Siga as instruções do suporte, monte os servos e anexe a webcam ao topo do suporte (fita funciona bem). Conecte a câmera à porta USB do Pi; um hub USB alimentado é opcional mas pode ajudar se a câmera consumir mais corrente.
Passo 4: Conecte os Servos
O servoblaster mapeia servo-0 para GPIO 4 e servo-1 para GPIO 17. Os fios típicos do servo são:
- Vermelho – +5 V
- Marrom/Preto – GND
- Controle – linha de sinal
Use o cabo ribbon para conectar os fios de controle aos pinos GPIO corretos. O código trata servo-0 como pan (esquerda-direita) e servo-1 como tilt (cima-baixo).
Alimentando os servos: Pequenos servos hobby podem frequentemente ser alimentados diretamente dos pinos GPIO 5 V do Pi, mas modelos maiores ou mais exigentes podem requerer uma fonte externa de 5 V–6 V. Conecte o +5 V e GND do servo à fonte externa, então una o GND externo a um pino GPIO de terra do Pi.
Passo 5: Execute o Programa de Rastreamento
Baixe o script PiFace.py fornecido, coloque-o no Pi e execute:
cd /path/to/PiFace.py
python PiFace.py
O OpenCV executa detecção facial a resolução 320×240, buscando perfis direito, esquerdo e frontais. Os servos ajustam a uma taxa mais rápida que uma vez por segundo, mantendo a câmera centralizada no rosto detectado.
Confira os vídeos de demonstração linkados no artigo original para referência.
Processo de manufatura
- Como Ler Temperatura com DS18B20 no Raspberry Pi 2
- Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
- Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482
- Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
- Integração de Dados de Sensores no Raspberry Pi: Guia Prático
- Sensor de Rastreamento de Linha com Raspberry Pi – Detector KY‑033 Simples para Porta/Linha
- Detecção de Raios com Raspberry Pi e AS3935: Guia Prático
- Rastreamento Avançado de Bolas de Tênis de Mesa com OpenCV no Raspberry Pi
- Construa um Alarme de Água Headless para Raspberry Pi 2 com Adafruit T-Cobbler Plus
- Rastreamento Facial Pan/Tilt em Tempo Real no Raspberry Pi – Guia Prático