Compteur Trick-or-Treat Raspberry Pi avec OpenCV
Un compteur Trick-or-Treat enregistre les visiteurs à la porte et stocke chaque « entrée » comme un événement avec horodatage. Avec un Raspberry Pi, cela peut être résolu proprement, soit par caméra (OpenCV/YOLO, franchir la ligne) ou simplement par capteur de porte et série temporelle dans le tableau de bord. Cette explication étape par étape montre quelle variante convient à quel moment, comment elle fonctionne et où trouver des guides fiables.
Introduction et aperçu
Pour un compteur Trick-or-Treat, il existe deux approches principales : comptage basé sur la caméra et comptage basé sur les capteurs. Les deux utilisent un Raspberry Pi comme unité de commande centrale. La variante caméra identifie les personnes dans l'image vidéo, les suit au fil des images et enregistre le franchissement d'une ligne virtuelle comme événement de comptage. Cela est appelé comptage ligne/zone. La variante capteur utilise un capteur de porte qui enregistre chaque ouverture et fermeture. Les données enregistrées peuvent être visualisées dans un tableau de bord, par exemple avec Grafana.
Comptage basé sur la caméra
Le comptage basé sur la caméra utilise la vision par ordinateur pour reconnaître et compter les personnes. OpenCV est une bibliothèque de traitement d'images et de suivi. YOLO (You Only Look Once) est un détecteur d'apprentissage profond qui reconnaît des objets en temps réel. Ultralytics documente le comptage direct ligne/zone pour YOLO. Les personnes dans l'image vidéo sont détectées, suivies au fil des images et le franchissement d'une ligne virtuelle est comptabilisé comme « +1 ». Cela évite les décomptages doubles par les backends de tracking. Déjà en 2018, a montré PyImageSearch un compteur de personnes pratique avec OpenCV, Tracking et la logique « in/out » via une ligne. Depuis 2024/2025, il existe des guides bien établis sur YOLO-Counting (Lignes/Zones) ainsi que des backends de tracking. Pour le matériel, il existe un offizieller Quick-Start von Ultralytics für den Raspberry Pi (y compris le Pi 5, Bookworm, la configuration de la caméra et l'export NCNN pour de meilleures performances). OpenCV peut être installé sur le Pi via le dépôt de paquet ou un script de build; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. Le comptage par caméra fournit du contexte, mais nécessite de la lumière et de la puissance de calcul. YOLO est robuste face à des arrière-plans changeants, OpenCV-only est plus léger et suffit lorsqu'il y a peu de mouvement. Sur le Pi 5, Ultralytics recommande des modèles NCNN, car ils tournent plus efficacement sur ARM que l'inférence PyTorch pure, ce qui réduit la latence et la consommation d'énergie.

Quelle: youtube.com
OpenCV permet une détection et un comptage précis des personnes en temps réel.
Quelle: YouTube
Comptage basé sur capteurs
Alternativement au comptage basé sur la caméra, un capteur de porte, tel qu'un interrupteur Reed magnétique, peut enregistrer chaque ouverture et fermeture de la porte. Cette méthode est robuste et souvent suffisante. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. Également sur Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. Les capteurs de porte sont incroyablement simples, mais ne comptent que les « événements de porte ». Pour les rassemblements d'Halloween, cela peut sous-estimer ou sur-estimer le nombre réel de personnes. Cependant, ils consomment peu de données et nécessitent moins de puissance de calcul que les systèmes de caméra.

Quelle: donskytech.com
Les capteurs infrarouges offrent une méthode simple et efficace pour compter les visiteurs.
Visualisation et stockage des données
Pour la visualisation des données de comptage, conviennent InfluxDB (Zeitreihen-Datenbank) et Grafana. Sans une base de données dédiée, on peut utiliser Grafana Live/MQTT utiliser. Le Grafana MQTT-Datasource-Plugin met l'accent sur les données en temps réel. Pour les tableaux de bord, InfluxDB 2 et Grafana sont établis sur le Pi, avec des guides de configuration officiels. Ceux qui veulent démarrer sans base de données peuvent utiliser le streaming via Grafana Live et le plugin MQTT, le plugin priorisant le temps réel plutôt que l'historique. Grafana-MQTT-Streaming fonctionne, mais est conçu pour le temps réel; l'historique nécessite une base de données. Des retours de la communauté signalent parfois des comportements instables ou des limitations pour les plugins MQTT, ce qui rend plausible une pipeline DB pour les environnements de production.
Mise en œuvre pratique et conseils
Pour des résultats rapides, choisissez la voie ayant la plus forte probabilité de succès pour votre environnement. Pour la variante caméra avec YOLO : installer Ultralytics, choisir un modèle léger (par exemple « n »), définir une ligne au seuil de la porte, publier le callback de comptage via MQTT. Le offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Pour OpenCV-only : soustraction de fond/Tracking, ligne virtuelle, comptage hors réseau – particulièrement adapté à un arrière-plan stable. Pour l'itinéraire du capteur de porte : interrupteur Reed sur GPIO, script Python pour l'ouverture/fermeture, publication MQTT. Verkabelung und Pull-ups sind dokumentiert. Pour les tableaux de bord : soit InfluxDB 2 + Grafana nach Anleitung installieren ou Live/MQTT testen, wenn Historie unwichtig ist. Des exemples Trick-or-Treat de la communauté Maker montrent comment les déclencheurs de mouvement, les compteurs et l'affichage s'intègrent, par exemple celui de „Pumpkin Pi Trick-or-Treat Tracker“. La vidéo zeigt Counting mit YOLOv8, ByteTrack und Supervision; utile pour voir l'interaction entre la détection, le suivi et les événements de ligne. Commencez petit, testez sur la porte réelle et n'élargissez que ce qui manque dans la vie réelle – alors votre compteur comptera exactement ce qui compte.

Quelle: support.initialstate.com
Avec un Raspberry Pi, il est possible de réaliser des systèmes de comptage créatifs pour les visiteurs d'Halloween.
Quelle: YouTube