William Zhang2026-09-20

Web-app voor real-time analyse van personenattributen op reComputer R + Hailo-8

Offline-videoanalyse op de reComputer R met YOLOv8n-personendetectie en Person-Attribute-ResNet-attribuutherkenning, met real-time weergave en statistieken in de browser. Het project ondersteunt real-time telling en cumulatieve analyse per geslacht en vier leeftijdscategorieën.

Person AttributePeople CountingYOLOEdge AICVGitHub

Web-app voor analyse van personenattributen op reComputer R + Hailo-8

Een edge-systeem voor analyse van personenattributen op basis van Hailo-8 / Person Attribute.

U kunt de broncode van dit project bekijken op GitHub: https://github.com/doublelf/People_Aattribute_flow

Gebruikt YOLOv8n-personendetectie en Person-Attribute-ResNet-attribuutherkenning voor offline-videoanalyse op de reComputer R, met real-time weergave en statistieken in de browser. Het project ondersteunt real-time telling en cumulatieve analyse per geslacht en vier leeftijdscategorieën.

Snel starten

1. Code klonen

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

2. Voor lokale debugging

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

3. Image bouwen

bash
docker build -t perview:latest .

4. Eén-klik-start

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

Parameterbeschrijving regel voor regel:

RegelFunctie
--rm --privilegedcontainer wordt automatisch opgeruimd bij afsluiten en krijgt alle apparaatrechten (vereist voor Hailo PCIe)
--net=hostgebruikt direct het hostnetwerk, geen -p-poortmapping nodig, eenvoudiger toegang
-e VIDEO_PATH=/app/video/a1-1.mp4standaardpad van de invoervideo (vanuit de container)
--device /dev/hailo0:/dev/hailo0het Hailo-8-apparaat doorgeven aan de container
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:roHailoRT-runtimebibliotheek van de host in de container mounten (alleen-lezen)
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:roidem, compatibiliteit via symbolische koppeling
-v /home/seeed/perview/app:/app/app:rolokale broncode overschrijft de in de image gebakken code, na het wijzigen van Python-bestanden is alleen een herstart van de container nodig (alleen-lezen, om te voorkomen dat de container per ongeluk naar de host schrijft)
-v /home/seeed/perview/detection:/app/detection:roidem, overschrijft de detectiemodule
-v /home/seeed/perview/workspace:/app/workspacepersistent gemaakte prerendered artefacten en uploads (lezen/schrijven)
-v /home/seeed/perview/video/:/app/video:romount de directory met je video's in de container (alleen-lezen)

Na het starten van de container begint automatisch het prerenderen van a1-1.mp4 (circa 1 minuut, bij 1080p ongeveer 4–6 fps verwerkingssnelheid, afhankelijk van de scènedichtheid).

5. Webinterface openen

Open in de browser:

http://<board_ip>:8000/

Nadat de startpagina is geladen, zie je links een geannoteerde videospeler en rechts een Chart.js-realtime-dashboard (huidig aantal personen, geslachtsverhouding, leeftijdsverdeling in vier categorieën, cumulatieve statistieken).

De standaardvideo /home/seeed/perview/video/a1-1.mp4 wordt al meegeleverd met de repository. Plaats een eigen video en pas -e VIDEO_PATH dienovereenkomstig aan.