CV / YOLOv5
YOLOv5
reComputer R Series (CM5 + Hailo-10H)
YOLOv5n/s/m objectdetectiemodellen voor reComputer RK3588/RK3576 (RKNN) en reComputer R Series met Hailo-8 of Hailo-10H.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4Modeldetails
reComputer R Series (CM5 + Hailo-10H)YOLOv5 op reComputer R Series (CM5 + Hailo-10H)
YOLOv5s en YOLOv5m voeren COCO-objectdetectie (80 klassen) uit op Hailo-10H via HailoRT. NMS en sigmoid draaien on-chip (Hailo HPP), de host parseert alleen de post-NMS-tensor.
Deze pagina is gericht op reComputer R Series (CM5 + Hailo-10H) met een PCIe Hailo-10H-versneller.
Hardware en hostinstellingen
| Onderdeel | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Versneller | Hailo-10H via PCIe, beschikbaar als /dev/hailo0 |
| Runtime | HailoRT 5.1.1 |
| Python in de container | 3.13, aarch64 |
Installeer de Hailo-10H-pakketten op de host en controleer of stuurprogramma en apparaat gereed zijn voordat u de container start:
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0De verwachte HailoRT-versie voor deze images is 5.1.1.
Uitvoeren met de demo-video
YOLOv5s:
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4YOLOv5m:
sudo docker run --rm \
--name cm5-hailo10h-yolov5m \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5m:latest \
python web_detection.py --model_path model/yolov5m.hef --video_path video/test.mp4Open http://<Board_IP>:8000 voor de webpreview.
USB-cameramodus
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --camera_id 0Vervang yolov5s door yolov5m voor de middelgrote variant.
HEF-bestanden
| HEF | Grootte | Opmerkingen |
|---|---|---|
yolov5s.hef | 13,029,376 (12.4 MB) | parameters 7.46M, ops 17.44G |
yolov5m.hef | 19,812,352 (18.9 MB) | parameters 21.78M, ops 52.17G |
YOLOv5s is de kleine variant, YOLOv5m de middelgrote; beide zijn Hailo-10H-builds uit de Hailo Model Zoo v5.4.0.
Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v5.4.0/hailo10h/yolov5s.hef (yolov5m.hef in the same directory).
REST API
POST http://<Board_IP>:8000/api/models/yolov5s/predictcurl -X POST "http://<Board_IP>:8000/api/models/yolov5s/predict" \
-F "file=@test.jpg"| Endpoint | Methode | Doel |
|---|---|---|
/ | GET | Webvoorbeeld-interface |
/api/models/yolov5s/predict | POST | Detecties (JSON) |
/api/video_feed | GET | MJPEG-previewstream |
Implementatienotities
- De HEF voert NMS en sigmoid on-chip uit (zoo
base/yolo.yaml:nms: true,hpp: true);nms_threshwordt alleen voor API-compatibiliteit geaccepteerd. - Post-NMS-regels zijn
[ymin, xmin, ymax, xmax, score], genormaliseerd naar [0,1] van de 640x640-letterboxinvoer; de applicatie schaalt naar pixels en draait de letterbox terug. - De HEF bevat
normalize_in_net(mean 0 / std 255, dus /255) enpadding_color=114: de applicatie letterboxt met grijs (114) en stuurt ruwe uint8 RGB-pixels. - Klasse-ID's 0..79 indexeren direct de standaard COCO-lijst (de Model Zoo-evaluatie gebruikt
labels_offset=1). - De Model Zoo documenteert de post-NMS-vorm als 80x5x80; de parser accepteert de werkelijke indeling tijdens runtime en logt die eenmalig (
[YOLOv5] raw output type=..., shape=...). - Standaardwaarden: confidence 0.25; de IOU-schuif heeft geen effect omdat NMS on-chip draait.
Ontwikkelnotities
- Bronmodules:
src/hailo10h_yolov5s/,src/hailo10h_yolov5m/ - Dockerfiles:
docker/hailo10h/yolov5s.dockerfile,docker/hailo10h/yolov5m.dockerfile - Containers:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest,.../yolov5m:latest - Beide modules gebruiken de HailoRT 5.1.1 InferModel-API en Hailo-10H-specifieke HEF's.
- Unit-tests draaien zonder apparaat:
python -m unittest discover -s tests -v.