Rastreamento Avançado de Bolas de Tênis de Mesa com OpenCV no Raspberry Pi
NOTA: Este é um tutorial avançado, não adequado para iniciantes em Linux.
Neste guia, mostraremos como detectar e rastrear bolas de tênis de mesa – ou qualquer objeto circular claramente visível – usando OpenCV em um Raspberry Pi. A técnica é valiosa para projetos de robótica, análise esportiva ou experimentação de hobbyistas.
Pré-requisitos
- Raspberry Pi rodando o Raspbian mais recente (download em https://www.raspberrypi.org/downloads/)
- Webcam USB compatível com o Pi
- Host Linux (Linux Mint 17, Ubuntu ou similar) para desenvolvimento e transferência de arquivos
- Familiaridade com sistemas baseados em Debian
Passo 1: Configuração Inicial
- Conecte o Pi a teclado, mouse, webcam, Ethernet ou dongle Wi-Fi, display HDMI e alimentação.
- Ligue e inicie na interface gráfica do Raspbian.
- Abra um terminal e instale o OpenCV. Siga o guia abrangente de Trevor Appleton para confirmar a instalação (Instalar OpenCV no Raspberry Pi).
- Transfira
bdtct.pypara o diretório home do Pi viascpou pen drive USB.
Passo 2: Execute o Código de Rastreamento
- No terminal do Pi, navegue até a pasta contendo
bdtct.py. - Execute o script:
sudo python bdtct.py - Cinco janelas devem aparecer: o vídeo original, uma visão de "rastreamento" e três painéis de ajuste HSV.
- Apresente uma bola de tênis de mesa (amarela preferida) à webcam.
- Ajuste os controles deslizantes "HueComp", "SatComp" e "ValComp" até que os pixels da bola sejam a única região branca na janela "closing". Anote esses valores para uso futuro editando
bdtct.py.
Passo 3: Entendendo o Algoritmo
Abra bdtct.py no seu editor favorito para ver o seguinte fluxo de trabalho:
- Capture vídeo da câmera padrão:
cap = cv2.VideoCapture(-1) - Redimensione frames para 320×240 para aumentar a taxa de quadros no Pi.
- Crie janelas interativas com controles deslizantes min/max para Matiz, Saturação e Valor.
- Converta cada frame de BGR para HSV:
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV). - Divida HSV em canais separados.
- Aplique limiarização em cada canal com base nas faixas dos controles para produzir máscaras binárias.
- Combine as três máscaras com AND lógico para isolar pixels da bola.
- Aplique desfoque gaussiano para suavizar o resultado.
- Use
cv2.HoughCirclespara detectar formas circulares. - Desenhe os círculos detectados de volta no frame original para visualização.
Para insights mais profundos, veja a documentação completa do projeto.
Processo de manufatura
- Estação Meteorológica Solar DIY com Raspberry Pi
- Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
- Construindo Estação Meteorológica Externa com Raspberry Pi 2 e ADS‑WS1
- Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
- Neon: Placa Interativa Aberta/Fechada para Makerspace com Raspberry Pi 2 – El Paso, TX
- Sensor de Rastreamento de Linha com Raspberry Pi – Detector KY‑033 Simples para Porta/Linha
- Construa um Controle Remoto Universal Profissional para Raspberry Pi com LIRC
- Convertendo RF em DC com Raspberry Pi: Construindo e Solucionando Problemas de um Detector de Envelope
- Cycle Chaser: Transforme Sua Bicicleta em um Show de Luzes Noturno com Raspberry Pi
- Rastreamento Facial Pan/Tilt em Tempo Real no Raspberry Pi – Guia Prático