How friedrichsigel/visitorcounter works
Besucherzählsensor: Die Bedienoberfläche wählt Videoeingabe und Zählgeometrie und startet die Erkennungspipeline. Diese verarbeitet Hailo-Erkennungen, verfolgt Objekte, wertet Bewegungen an Linien oder Flächen aus und zeigt Ergebnisse an. Ergänzende Zweige konfigurieren Geometrie und Auto-Konfiguration, zeichnen Debug-Aufnahmen auf und übertragen Zählwerte per LoRaWAN oder MQTT. Die Belege zeigen nicht alle Laufzeitverdrahtungen; unbestätigte Verbindungen sind daher ausgelassen.
Main entry points: core.py Video-Pipeline · app.py Steuer-App · config_tab.py Geometrie-Seite · tracking.py Objektverfolgung
Components 26
Bedienung & Konfiguration
- Steuer-App
core/app.py - App-Einstellungen
tabs/settings_store.py - Eingabeauswahl
tabs/input_tab.py - Geometrie-Seite
tabs/config_tab.py - Geometrie-Editor
config_tool/roi_config_app.py - Auto-Konfig-Seite
tabs/autoconfig_tab.py - Pipeline-Steuerung
tabs/pipeline_control.py - Dialoge
config_tool/ctk_dialogs.py
Erkennung & Zählung
- Zählkonfiguration
core/config.py - Video-Pipeline
core/core.py - Hailo-Kompatibilität
utils/hailo_compat.py - Objektverfolgung
core/tracking.py - Geometrisches Zählen
core/counting.py - Live-Visualisierung
utils/visualization.py
Auto-Konfiguration
- Punktesammlung
config_tool/auto_config.py - Clustering-Auswertung
config_tool/auto_config_clustering.py - CSV-Hilfen
utils/csv_utils.py
Aufzeichnung & Übertragung
- Debug-Aufzeichnung
core/recording.py - LoRa-Nachrichtenformat
lora/lora_message.py - LoRa-Sender
lora/lora_send_loop.py - MQTT-Sender
lora/mqtt_send_loop.py
Other components
- Bedienperson
- Kamera / Video
- Hailo-Erkennung
- LoRa-Modul
- MQTT-Dienst
Connections 28
- Bedienperson → Steuer-App: bedient
README.md - Steuer-App → App-Einstellungen: liest und speichert
core/app.py - Steuer-App → Eingabeauswahl: bindet ein
core/app.py - Steuer-App → Geometrie-Seite: bindet ein
core/app.py - Geometrie-Seite → Geometrie-Editor: nutzt
tabs/config_tab.py - Steuer-App → Auto-Konfig-Seite: bindet ein
core/app.py - Steuer-App → Pipeline-Steuerung: bindet ein
core/app.py - Geometrie-Seite → Dialoge: zeigt
tabs/config_tab.py - Bedienperson → Eingabeauswahl: wählt Eingabe
README.md - Bedienperson → Geometrie-Editor: setzt Geometrie
README.md - Pipeline-Steuerung → Video-Pipeline: startet Subprozess
tabs/pipeline_control.py - Kamera / Video → Video-Pipeline: liefert Videobilder
README.md - Hailo-Erkennung → Video-Pipeline: erkennt Objekte
core/core.py - Video-Pipeline → Hailo-Kompatibilität: nutzt Schnittstellen
core/core.py - Video-Pipeline → Objektverfolgung: übergibt Erkennungen
core/core.py - Video-Pipeline → Debug-Aufzeichnung: zeichnet optional auf
core/core.py - Objektverfolgung → Zählkonfiguration: liest Einstellungen
core/tracking.py - Objektverfolgung → Geometrisches Zählen: wertet Bewegungen aus
core/tracking.py - Video-Pipeline → Live-Visualisierung: zeichnet Ergebnisse
core/core.py - Geometrie-Seite → Zählkonfiguration: konfiguriert Zählung
README.md - Auto-Konfig-Seite → Pipeline-Steuerung: startet Sammlung
tabs/pipeline_control.py - Objektverfolgung → Punktesammlung: protokolliert Tracks
config_tool/auto_config.py - Punktesammlung → CSV-Hilfen: schreibt Punktdaten
config_tool/auto_config.py - Clustering-Auswertung → Punktesammlung: liest Sammlungsdaten
config_tool/auto_config_clustering.py - LoRa-Sender → LoRa-Nachrichtenformat: formt Nachrichten
lora/lora_send_loop.py - LoRa-Sender → LoRa-Modul: sendet über LoRaWAN
README.md - MQTT-Sender → LoRa-Sender: nutzt Senderlogik
lora/mqtt_send_loop.py - MQTT-Sender → MQTT-Dienst: publiziert
lora/mqtt_send_loop.py