Счётчик Trick-or-Treat на Raspberry Pi с OpenCV

Avatar
Lisa Ernst · 25.10.2025 · Техника · 4 min

Этот поясняющий материал пошагово покажет, какой вариант подходит в какое время/ситуацию, как он работает и где можно найти надёжные инструкции.

Введение и обзор

Для счётчика Trick-or-Treat существуют две основные подхода: подсчёт по камере и подсчёт по датчиков. Оба используют Raspberry Pi в качестве центрального управляющего узла. Вариант с камерой распознаёт людей на видеоматрице, отслеживает их по кадрам и регистрирует пересечение виртуальной линии как событие счёта. Это называется подсчёт по линии/зоне. Вариант с датчиков использует дверной датчик, который регистрирует каждый процесс открывания и закрывания. Собранные данные можно визуализировать на панели мониторинга, например, Grafana.

Подсчёт на основе камеры

Подсчёт на основе камеры использует компьютерное зрение для распознавания и подсчёта людей. OpenCV является библиотекой для обработки изображений и отслеживания. YOLO (You Only Look Once) является детектором глубокого обучения, который распознаёт объекты в реальном времени. Ultralytics документирует прямое Line/Zone-Counting для YOLO. При этом люди на видеопредставлении распознаются, отслеживаются по кадрам и пересечение виртуальной линии заносится как «+1». Это предотвращает двойной подсчёт благодаря системам отслеживания. Уже в 2018 году был продемонстрирован PyImageSearch практичный счётчик людей на основе OpenCV, Отслеживание и логика «in/out» по линии. С 2024/2025 годов существуют подробные руководства по линиям/зонам. YOLO-Counting (линиям/зонам) а также бэкенды отслеживания. Для аппаратного обеспечения существует набор, включая Pi 5, Bookworm, настройку камеры и экспорт NCNN для повышения производительности offizieller Quick-Start von Ultralytics für den Raspberry Pi (включая Pi 5, Bookworm, настройку камеры и экспорт NCNN для повышения производительности). OpenCV можно установить на Pi через источник пакетов или скрипт сборки; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. Подсчёт по камере предоставляет контекст, но требует освещения и вычислительных мощностей. YOLO надёжна к переменчивым фонам, OpenCV-Only легче и годится при малой подвижности. На Pi 5 Ultralytics рекомендует NCNN-модели, так как они работают на ARM эффективнее, чем чистая PyTorch-инференс, что снижает задержку и энергопотребление.

OpenCV обеспечивает точное распознавание и подсчёт людей в реальном времени.

Quelle: youtube.com

OpenCV обеспечивает точное распознавание и подсчёт людей в реальном времени.

Quelle: YouTube

Подсчёт на основе сенсоров

В качестве альтернативы камере-базированному счёту может использоваться дверной датчик, например магнитный рид-выключатель, который регистрирует каждый открытие и закрытие двери. Этот метод надёжен и часто достаточен. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. Также на Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. Дверные датчики легко использовать, но считают только «события двери». При группах посетителей на Хэллоуин это может недооценивать или переоценивать реальное число людей. Однако они экономны по данным и требуют меньшей вычислительной мощности, чем камеры.

Инфракрасные датчики предлагают простой и эффективный способ подсчёта посетителей.

Quelle: donskytech.com

Инфракрасные датчики предлагают простой и эффективный метод подсчёта посетителей.

Визуализация данных и хранение

Для визуализации данных счётчиков подходят InfluxDB (Zeitreihen-Datenbank) и Grafana. Без выделенной базы данных можно обойтись. Это Grafana Live/MQTT позволяет работать с данными в реальном времени. Для панелей мониторинга на Pi широко применяются InfluxDB 2 и Grafana, включая официальные руководства по настройке. Grafana MQTT-Datasource-Plugin Кто хочет начать без базы данных, может использовать стриминг через Grafana Live и MQTT-плагин, при этом плагин отдаёт приоритет данным в реальном времени, а не истории. Grafana-MQTT-Streaming работает, но ориентирован на данные в реальном времени; история требует базу данных. Сообщения сообщества периодически свидетельствуют о нестабильном поведении или ограничениях MQTT-плагинов, что для продуктивных наборов делает DB-пайплайн разумным.

Практическая реализация и советы

Для быстрого результата выберите путь с наивысшей вероятностью успеха для вашей среды. Для варианта с камерой и YOLO: установить Ultralytics, выбрать лёгкую модель (например, «n»), определить линию на пороге двери и публиковать счётчик-коллбек через MQTT. Это offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Для OpenCV-Only: вычитание фона/отслеживание, виртуальная линия, подсчёт без сети — особенно хорошо при стабильном фоне. Для маршрута с дверным датчиком: рид-выключатель к GPIO, Python-скрипт для открытия/закрытия, публикация MQTT. Verkabelung und Pull-ups sind dokumentiert. Для панелей мониторинга: либо InfluxDB 2 + Grafana nach Anleitung installieren или Live/MQTT testen, wenn Historie unwichtig ist. Примеры Trick-or-Treat из сообщества Makers показывают, как движения- триггеры, счётчики и отображение работают вместе, например, как это видео „Pumpkin Pi Trick-or-Treat Tracker“. Это видео zeigt Counting mit YOLOv8, ByteTrack und Supervision; полезно увидеть взаимодействие детекции, слежения и событий по линии. Начни с малого, протестируй на реальной двери и расширяй только то, что действительно нужно — тогда твой счётчик точно считает то, что имеет значение.

С помощью Raspberry Pi можно реализовать креативные счётчики для гостей на Хэллоуин.

Quelle: support.initialstate.com

С помощью Raspberry Pi можно реализовать креативные счётчики для гостей на Хэллоуин.

Quelle: YouTube

Teilen Sie doch unseren Beitrag!