William Zhang2026-09-20

Echtzeit-Webanalyse für Personen-Attribut-Flow auf reComputer R + Hailo-8

Offline-Videoanalyse auf dem reComputer R mittels YOLOv8n-Personenerkennung und Person-Attribute-ResNet-Attributerkennung, mit Echtzeit-Wiedergabe und Statistik im Browser. Das Projekt unterstützt Echtzeit-Zählung und kumulative Auswertung nach Geschlecht sowie vier Altersbereichen.

Person AttributePeople CountingYOLOEdge AICVGitHub

Personen-Attribut-Wow-Analyse Web-App auf reComputer R + Hailo-8

Ein Endgerät-Personen-Attribut-Analyse-System basierend auf Hailo-8 / Person Attribute.

Den Quellcode dieses Projekts finden Sie auf GitHub: https://github.com/doublelf/People_Aattribute_flow

Verwendet YOLOv8n-Personenerkennung + Person-Attribute-ResNet-Attributerkennung für die Offline-Videoanalyse auf dem reComputer R, mit Echtzeit-Wiedergabe und Statistik im Browser. Das Projekt unterstützt Echtzeit-Zählung und kumulative Auswertung nach Geschlecht sowie vier Altersbereichen.

Schnellstart

1. Code klonen

bash
git clone https://github.com/doublelf/People_Aattribute_flow.git
cd People_Aattribute_flow

2. Für lokales Debugging

bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

3. Image erstellen

bash
docker build -t perview:latest .

4. Start mit einem Klick

bash
sudo docker run --rm --privileged --net=host \
  -e VIDEO_PATH=/app/video/a1-1.mp4 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  -v /home/seeed/perview/app:/app/app:ro \
  -v /home/seeed/perview/detection:/app/detection:ro \
  -v /home/seeed/perview/workspace:/app/workspace \
  -v /home/seeed/perview/video/:/app/video:ro \
  perview:latest

Parameter zeilenweise:

ZeileBeschreibung
--rm --privilegedContainer wird beim Beenden automatisch aufgeräumt und erhält alle Geräte­berechtigungen (Hailo PCIe erforderlich)
--net=hostDirektes Verwenden des Host-Netzwerks, keine -p-Portweiterleitung nötig, vereinfachter Zugriff
-e VIDEO_PATH=/app/video/a1-1.mp4Standardpfad des Eingabevideos (Containerseite)
--device /dev/hailo0:/dev/hailo0Hailo-8-Gerät in den Container durchreichen
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:roHailoRT-Laufzeitbibliothek des Hosts in den Container mounten (schreibgeschützt)
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:rowie oben, Symlink-Kompatibilität
-v /home/seeed/perview/app:/app/app:rolokaler Quellcode überschreibt das gebackte Code-Image, nach Änderungen an Python-Dateien reicht ein Container-Neustart (schreibgeschützt, um versehentliches Schreiben auf den Host zu verhindern)
-v /home/seeed/perview/detection:/app/detection:rowie oben, überschreibt das Erkennungsmodul
-v /home/seeed/perview/workspace:/app/workspacepersistentiert vorgerenderte Artefakte und hochgeladene Dateien (Lesen/Schreiben)
-v /home/seeed/perview/video/:/app/video:rodas Verzeichnis mit deinen Videos in den Container mounten (schreibgeschützt)

Nach dem Container-Start beginnt automatisch das Vor-Rendering von a1-1.mp4 (etwa 1 Minute, bei 1080p ca. 4–6 fps Verarbeitungsgeschwindigkeit, je nach Szenendichte).

5. Web-UI aufrufen

Im Browser öffnen:

http://<board_ip>:8000/

Nach dem Laden der Startseite befindet sich links ein annotierter Video-Player und rechts ein Chart.js-Echtzeit-Dashboard (aktuelle Personenzahl, Geschlechterverhältnis, Vier-Bereich-Altersverteilung, kumulierte Statistik).

Das Standardvideo /home/seeed/perview/video/a1-1.mp4 wird bereits mit dem Repository ausgeliefert. Nachdem du ein eigenes Video abgelegt hast, passe -e VIDEO_PATH entsprechend an.