Application web d'analyse du flux d'attributs des personnes sur reComputer R + Hailo-8
Système embarqué d'analyse des attributs des personnes basé sur Hailo-8 / Person Attribute.

Vous pouvez consulter le code source de ce projet sur GitHub : https://github.com/doublelf/People_Aattribute_flow
Utilise la détection de personnes YOLOv8n + la reconnaissance d'attributs Person Attribute ResNet pour analyser des vidéos hors ligne sur le reComputer R, avec lecture en temps réel et statistiques dans le navigateur. Le projet prend en charge le comptage en temps réel et l'analyse cumulée par genre et par quatre tranches d'âge.
Démarrage rapide
1. Cloner le code
git clone https://github.com/doublelf/People_Aattribute_flow.git
cd People_Aattribute_flow2. Pour le débogage local
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt3. Construire l'image
docker build -t perview:latest .4. Démarrage en un clic
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:latestDescription des paramètres, ligne par ligne :
| Ligne | Rôle |
|---|---|
--rm --privileged | le conteneur est nettoyé automatiquement à la sortie et obtient toutes les permissions sur les périphériques (Hailo PCIe l'exige) |
--net=host | utilise directement le réseau de l'hôte, aucun mappage de port -p requis, accès simplifié |
-e VIDEO_PATH=/app/video/a1-1.mp4 | chemin par défaut de la vidéo d'entrée (vue dans le conteneur) |
--device /dev/hailo0:/dev/hailo0 | transmettre le périphérique Hailo-8 au conteneur |
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro | monter la bibliothèque d'exécution HailoRT de l'hôte dans le conteneur (lecture seule) |
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro | idem ci-dessus, compatibilité via lien symbolique |
-v /home/seeed/perview/app:/app/app:ro | le code source local écrase le code baked de l'image, après modification d'un fichier Python il suffit de redémarrer le conteneur (lecture seule, pour éviter que le conteneur n'écrive par erreur sur l'hôte) |
-v /home/seeed/perview/detection:/app/detection:ro | idem ci-dessus, écrase le module de détection |
-v /home/seeed/perview/workspace:/app/workspace | persiste les artefacts pré-rendus et les fichiers téléversés (lecture/écriture) |
-v /home/seeed/perview/video/:/app/video:ro | monte dans le conteneur le répertoire où vous stockez vos vidéos (lecture seule) |
Après le démarrage du conteneur, le pré-rendu de a1-1.mp4 démarre automatiquement (environ 1 minute, à 1080p environ 4–6 fps de traitement, selon la densité de la scène).
5. Accéder à l'UI Web
Ouvrir dans le navigateur :
http://<board_ip>:8000/
Une fois la page d'accueil chargée, à gauche se trouve un lecteur vidéo annoté, et à droite un tableau de bord temps réel en Chart.js (nombre actuel de personnes, proportion par genre, distribution par quatre tranches d'âge, statistiques cumulées).
La vidéo par défaut
/home/seeed/perview/video/a1-1.mp4est déjà fournie avec le dépôt. Après avoir placé une vidéo personnalisée, modifiez-e VIDEO_PATHen conséquence.