Contador Trick-or-Treat de Raspberry Pi con OpenCV
Este tutorial paso a paso muestra, punto por punto, qué variante funciona cuándo, cómo funciona y dónde encontrar instrucciones fiables.
Introducción y visión general
Para un contador Trick-or-Treat hay dos enfoques principales: conteo basado en cámara y conteo basado en sensores. Ambos utilizan una Raspberry Pi como unidad de control central. La variante basada en cámara identifica personas en la imagen de video, las sigue a lo largo de los fotogramas y registra el cruce de una línea virtual como un evento de conteo. Esto se denomina conteo de línea/zona. La variante basada en sensores utiliza un sensor de puerta que registra cada apertura y cierre. Los datos registrados pueden visualizarse en un panel, por ejemplo, con Grafana.
Conteo basado en cámara
El conteo basado en cámara utiliza visión por computadora para reconocer y contar personas. OpenCV es una biblioteca para procesamiento de imágenes y seguimiento. YOLO (You Only Look Once) es un detector de aprendizaje profundo que reconoce objetos en tiempo real. Ultralytics documenta conteo directo de líneas/zonas para YOLO. En este proceso se reconocen personas en la imagen de video, se les sigue a lo largo de los frames y se registra el cruce de una línea virtual como «+1». Esto evita conteos dobles por backends de tracking. Ya en 2018 mostró PyImageSearch un contador de personas práctico con OpenCV, Seguimiento y lógica de entrada/salida sobre una línea. Desde 2024/2025 hay guías bien elaboradas sobre YOLO-Counting (Líneas/Zonas) junto con backends de tracking. Para el hardware existe un offizieller Quick-Start von Ultralytics für den Raspberry Pi (incl. Pi 5, Bookworm, configuración de la cámara y export NCNN para mayor rendimiento). OpenCV se puede instalar en el Pi a través de la fuente de paquetes o un script de compilación; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. El conteo con cámara proporciona contexto, pero requiere iluminación y potencia de cómputo. YOLO es robusto frente a fondos variables; OpenCV solamente es más ligero y basta cuando hay poco movimiento. En el Pi 5 Ultralytics recomienda modelos NCNN, ya que estos funcionan con mayor eficiencia en ARM que la inferencia puramente PyTorch, lo que reduce latencia y consumo de energía.

Quelle: youtube.com
OpenCV permite el reconocimiento y conteo precisos de personas en tiempo real.
Quelle: YouTube
Conteo basado en sensores
Alternativamente al conteo basado en cámara, un sensor de puerta, como un interruptor reed magnético, puede registrar cada apertura y cierre de la puerta. Este método es robusto y a menudo suficiente. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. También en Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. Los sensores de puerta son increíblemente simples, pero solo cuentan «eventos de la puerta». En grupos grandes en Halloween, esto puede subestimar o sobreestimar el número real de personas. Sin embargo, son conservadores en datos y requieren menos potencia de cómputo que los sistemas basados en cámaras.

Quelle: donskytech.com
Los sensores infrarrojos ofrecen un método simple y eficaz para contar a los visitantes.
Visualización de datos y almacenamiento
Para la visualización de los datos de conteo, son adecuadas InfluxDB (Zeitreihen-Datenbank) y Grafana. Sin una base de datos dedicada se puede usar. Grafana Live/MQTT Esto prioriza datos en tiempo real. Para dashboards, InfluxDB 2 y Grafana están establecidos en la Raspberry Pi, incluyendo guías oficiales de configuración. Quien quiera empezar sin base de datos puede usar streaming con Grafana Live y el complemento MQTT, donde el complemento prioriza tiempo real en lugar de historial. Grafana-MQTT-Streaming funciona, pero está diseñado para tiempo real; el historial requiere una base de datos. Opiniones de la comunidad reportan a veces comportamiento inestable o limitaciones en plugins MQTT, lo que para implementaciones productivas hace plausible una pipeline de DB. Grafana MQTT-Datasource-Plugin Praktische Umsetzung & Tipps
Implementación práctica y consejos
Para resultados rápidos, elige el camino con la mayor probabilidad de éxito para vuestro entorno. Para la variante de cámara con YOLO: instala Ultralytics, elige un modelo ligero (p. ej. «n»), define una línea en el umbral de la puerta y publica el callback de conteo por MQTT. offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Para OpenCV solamente: sustracción de fondo/seguimiento, línea virtual, conteo sin red; especialmente bueno cuando el fondo es estable. Para la ruta del sensor de puerta: interruptor Reed en GPIO, script en Python para abrir/cerrar, publicación MQTT. Verkabelung und Pull-ups sind dokumentiert. Para paneles: Ya sea InfluxDB 2 + Grafana nach Anleitung installieren o Live/MQTT testen, wenn Historie unwichtig ist. Ejemplos de Trick-or-Treat de la comunidad Maker muestran cómo disparadores de movimiento, contadores y visualización trabajan juntos, por ejemplo, el „Pumpkin Pi Trick-or-Treat Tracker“. El video zeigt Counting mit YOLOv8, ByteTrack und Supervision; útil para ver la interacción entre detección, seguimiento y eventos de línea. Empieza pequeño, prueba en la puerta real y expande solo lo que falte en la vida real; así tu contador contará exactamente lo que cuenta.

Quelle: support.initialstate.com
Con una Raspberry Pi se pueden crear sistemas de conteo creativos para los visitantes de Halloween.
Quelle: YouTube