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
git clone https://github.com/doublelf/People_Aattribute_flow.git
cd People_Aattribute_flow2. Für lokales Debugging
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt3. Image erstellen
docker build -t perview:latest .4. Start mit einem Klick
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:latestParameter zeilenweise:
| Zeile | Beschreibung |
|---|---|
--rm --privileged | Container wird beim Beenden automatisch aufgeräumt und erhält alle Geräteberechtigungen (Hailo PCIe erforderlich) |
--net=host | Direktes Verwenden des Host-Netzwerks, keine -p-Portweiterleitung nötig, vereinfachter Zugriff |
-e VIDEO_PATH=/app/video/a1-1.mp4 | Standardpfad des Eingabevideos (Containerseite) |
--device /dev/hailo0:/dev/hailo0 | Hailo-8-Gerät in den Container durchreichen |
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro | HailoRT-Laufzeitbibliothek des Hosts in den Container mounten (schreibgeschützt) |
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro | wie oben, Symlink-Kompatibilität |
-v /home/seeed/perview/app:/app/app:ro | lokaler 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:ro | wie oben, überschreibt das Erkennungsmodul |
-v /home/seeed/perview/workspace:/app/workspace | persistentiert vorgerenderte Artefakte und hochgeladene Dateien (Lesen/Schreiben) |
-v /home/seeed/perview/video/:/app/video:ro | das 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.mp4wird bereits mit dem Repository ausgeliefert. Nachdem du ein eigenes Video abgelegt hast, passe-e VIDEO_PATHentsprechend an.