CV / YOLO26

YOLO26

YOLO26 COCO-objectdetectie: deployment met één commando op NVIDIA Jetson, of de Hailo HEF op reComputer R Series met Hailo-8 / Hailo-10H.

18 downloads
Grootte
16GB disk
Geheugen
4GB+
Precisie
JetPack 5/6/7 / Hailo HEF

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Implementeren
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --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 \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --video_path video/test.mp4

REST API

Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/yolo26n/predict" \
  -F "file=@test.jpg"
Python
import requests

with open("test.jpg", "rb") as image_file:
    response = requests.post(
        "http://<Board_IP>:8000/api/models/yolo26n/predict",
        files={"file": image_file},
        timeout=30,
    )

print(response.json())

Modeldetails

reComputer R Series (CM5 + Hailo-8)

YOLO26 on reComputer R Series (CM5 + Hailo-8)

YOLO26n / YOLO26s / YOLO26m voeren COCO-objectdetectie (80 klassen) uit op Hailo-8 via HailoRT. YOLO26 is een one2one-kop (één voorspelling per cel, geen ankers, geen NMS): de host decodeert de ruwe split-heads en selecteert met de tweefasige top-k; een compile met on-chip NMS wordt ook verwerkt en de gebruikte indeling wordt bij de eerste inferentie gelogd.

Deze pagina is gericht op reComputer R Series (CM5 + Hailo-8) met een PCIe Hailo-8-versneller.

Hardware en hostinstellingen

OnderdeelWaarde
BoardreComputer R Series met Raspberry Pi CM5
VersnellerHailo-8 via PCIe, beschikbaar als /dev/hailo0
RuntimeHailoRT 4.23.x
Python in de container3.11, aarch64

Installeer de Hailo-8-pakketten op de host en controleer of stuurprogramma en apparaat gereed zijn voordat u de container start:

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

De verwachte HailoRT-versie voor deze images is 4.23.x.

Uitvoeren met de demo-video

YOLO26n:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --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 \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --video_path video/test.mp4

YOLO26s:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26s \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --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 \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26s:latest \
  python web_detection.py --model_path model/yolo26s.hef --video_path video/test.mp4

YOLO26m:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26m \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --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 \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26m:latest \
  python web_detection.py --model_path model/yolo26m.hef --video_path video/test.mp4

Open http://<BOARD_IP>:8000 voor de webpreview.

USB-cameramodus

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  --device /dev/video0:/dev/video0 \
  -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 \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --camera_id 0

Vervang yolo26n door yolo26s of yolo26m voor een andere variant.

HEF-bestanden

ModelGrootteOpmerkingen
yolo26n.hef8,755,512 (8.3 MB)parameters 2.4M, ops 5.5G
yolo26s.hef20,307,365 (19.4 MB)parameters 9.5M, ops 20.9G
yolo26m.hef29,155,151 (27.8 MB)parameters 20.4M, ops 68.4G

Alle drie varianten zijn Hailo-8-builds uit Hailo Model Zoo v2.19.0 van dezelfde Ultralytics YOLO26-familie.

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolo26n.hef (yolo26s.hef, yolo26m.hef in the same directory).

REST API

text
POST http://<Board_IP>:8000/api/models/yolo26n/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolo26n/predict" \
  -F "file=@test.jpg"
EndpointMethodeDoel
/GETWebvoorbeeld-interface
/api/models/yolo26{n,s,m}/predictPOSTDetecties (JSON)
/api/video_feedGETMJPEG-previewstream

Implementatienotities

  • De Model Zoo base/yolo26.yaml gebruikt nms=false, sigmoid=false, hpp=false en meta_arch=yolo26, met post_nms_topk=300 uit base/yolov8.yaml; info.output_shape documenteert 3 strides x (4 box, 80 klassen).
  • One2one-selectie: er draait geen NMS. De host past sigmoid toe, neemt de top-k ankers op maximale klassenscore, dan de top-k (anker, klasse)-paren — meerdere klassen per anker zijn toegestaan — en filtert op de confidence-schuif.
  • Boxdecodering: de 4-kanaalskop geeft de afstanden van het celcentrum naar links/boven en rechts/onder in stride-eenheden (regression_length=1); 64-kanaals DFL-compiles gaan via de softmax-verwachting.
  • Geeft een compile juist het on-chip NMS-resultaat terug (zoals de yolo26-seg HEF's), dan wordt de post-NMS-tensor geparseerd (compacte buffer per klasse, dichte vormen Cx5xD / CxDx5, ragged NMS-by-score-lijst) en draait er geen host-selectie.
  • De HEF bevat normalize_in_net (mean 0 / std 255) en padding_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 eerste inferentie logt de indeling en de box-/scorerange ([YOLO26] layout=..., outputs=[...]).

Ontwikkelnotities

  • Bronmodules: src/hailo10h_yolo26{n,s,m}/ (Hailo-10H) of src/rpi5_hailo8_yolo26{n,s,m}/ (Hailo-8) in de bijbehorende modelrepository
  • Containers: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26{n,s,m}:latest
  • De detectiefamilie levert n/s/m; YOLO26l / YOLO26x hebben nog geen Hailo HEF.
  • Modellicentie: AGPL-3.0 (upstream ultralytics/ultralytics).

Invoer en uitvoer

Invoer: afbeelding, video of camera. Uitvoer: detectieboxen voor 80 COCO-klassen (Ultralytics-container op Jetson, Hailo HEF op de R Series).