Seguimiento Avanzado de Pelotas de Ping‑Pong con Raspberry Pi y OpenCV
NOTA: Este es un tutorial avanzado, no apto para principiantes en Linux.
En esta guía mostraremos cómo detectar y rastrear pelotas de ping‑pong –u cualquier objeto circular claramente visible– usando OpenCV en una Raspberry Pi. La técnica es valiosa para proyectos de robótica, análisis deportivo o experimentación aficionada.
Requisitos Previos
- Raspberry Pi con el último Raspbian (descargue en https://www.raspberrypi.org/downloads/)
- Webcam USB compatible con la Pi
- Host Linux (Linux Mint 17, Ubuntu o similar) para desarrollo y transferencia de archivos
- Familiaridad con sistemas basados en Debian
Paso 1: Configuración Inicial
- Conecte la Pi a teclado, ratón, webcam, Ethernet o dongle Wi‑Fi, pantalla HDMI y alimentación.
- Encienda e inicie en la interfaz gráfica de Raspbian.
- Abra una terminal e instale OpenCV. Siga la guía completa de Trevor Appleton para confirmar la instalación (Instalar OpenCV en Raspberry Pi).
- Transfiera
bdtct.pyal directorio home de la Pi víascpo una memoria USB.
Paso 2: Ejecute el Código de Rastreo
- En la terminal de la Pi, navegue a la carpeta que contiene
bdtct.py. - Ejecute el script:
sudo python bdtct.py - Deberían aparecer cinco ventanas: el video original, una vista de "rastreo" y tres paneles de ajuste HSV.
- Presente una pelota de ping‑pong (amarilla preferida) a la webcam.
- Ajuste los deslizadores "HueComp", "SatComp" y "ValComp" hasta que los píxeles de la pelota sean la única región blanca en la ventana "closing". Anote estos valores para uso futuro editando
bdtct.py.
Paso 3: Entendiendo el Algoritmo
Abra bdtct.py en su editor favorito para ver el siguiente flujo de trabajo:
- Capturar video de la cámara por defecto:
cap = cv2.VideoCapture(-1) - Redimensionar frames a 320×240 para aumentar la tasa de frames en la Pi.
- Crear ventanas interactivas con deslizadores min/max para Matiz, Saturación y Valor.
- Convertir cada frame de BGR a HSV:
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV). - Separar HSV en canales individuales.
- Umbralizar cada canal según rangos de deslizadores para producir máscaras binarias.
- Combinar las tres máscaras con AND lógico para aislar píxeles de la pelota.
- Aplicar desenfoque gaussiano para suavizar el resultado.
- Usar
cv2.HoughCirclespara detectar formas circulares. - Dibujar los círculos detectados sobre el frame original para visualización.
Para mayor profundidad, consulte la documentación completa del proyecto.
Proceso de manufactura
- Estación meteorológica solar DIY con Raspberry Pi
- Monitorización profesional de temperatura con Raspberry Pi y DS18B20
- Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Neon: Señal dinámica abierto/cerrado para makerspace con Raspberry Pi 2 – El Paso, TX
- Sensor de seguimiento de línea con Raspberry Pi – Detector simple KY‑033 para puerta/línea
- Construya un Mando Universal Profesional para Raspberry Pi con LIRC
- Conversión de RF a CC con Raspberry Pi: Construcción y Solución de Problemas de un Detector de Envolvente
- Cycle Chaser: Transforme su Bici en un Espectáculo de Luces Nocturno con Raspberry Pi
- Seguimiento Facial Pan/Tilt en Tiempo Real en Raspberry Pi – Guía Práctica
- Construya un Detector de Ladrones Basado en Raspberry Pi – Guía Paso a Paso