CV / YOLO26

YOLO26

Detección de objetos COCO YOLO26: despliegue en un comando en NVIDIA Jetson, o el HEF de Hailo en reComputer R Series con Hailo-8 / Hailo-10H.

18 descargas
Tamaño
16GB disk
Memoria
4GB+
Precisión
JetPack 5/6/7 / Hailo HEF

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Desplegar
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

API REST

Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.

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())

Detalles del modelo

reComputer R Series (CM5 + Hailo-8)

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

YOLO26n / YOLO26s / YOLO26m realizan detección de objetos COCO de 80 clases en Hailo-8 mediante HailoRT. YOLO26 es una cabeza one2one (una predicción por celda, sin anclas, sin NMS): el host decodifica las cabezas divididas en bruto y selecciona con el top-k en dos etapas; una compilación que incluya el NMS en chip también se analiza, y la disposición usada se registra en la primera inferencia.

Esta página está dirigida a reComputer R Series (CM5 + Hailo-8) con un acelerador PCIe Hailo-8.

Hardware y configuración del host

ElementoValor
PlacareComputer R Series con Raspberry Pi CM5
AceleradorHailo-8 por PCIe, expuesto como /dev/hailo0
RuntimeHailoRT 4.23.x
Python en el contenedor3.11, aarch64

Instala los paquetes de Hailo-8 en el host y confirma que el driver y el dispositivo están listos antes de iniciar el contenedor:

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

La versión esperada de HailoRT para estas imágenes es 4.23.x.

Ejecución con el vídeo de demostración

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

Abre http://<Board_IP>:8000 para ver la vista previa web.

Modo cámara USB

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

Sustituye yolo26n por yolo26s o yolo26m para usar otra variante.

Archivos HEF

ModeloTamañoNotas
yolo26n.hef8,755,512 (8.3 MB)parámetros 2.4M, ops 5.5G
yolo26s.hef20,307,365 (19.4 MB)parámetros 9.5M, ops 20.9G
yolo26m.hef29,155,151 (27.8 MB)parámetros 20.4M, ops 68.4G

Las tres variantes son builds para Hailo-8 del Hailo Model Zoo v2.19.0 de la misma familia Ultralytics YOLO26.

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"
EndpointMétodoPropósito
/GETInterfaz de vista previa web
/api/models/yolo26{n,s,m}/predictPOSTDetecciones (JSON)
/api/video_feedGETStream de vista previa MJPEG

Notas de implementación

  • El Model Zoo base/yolo26.yaml usa nms=false, sigmoid=false, hpp=false y meta_arch=yolo26, con post_nms_topk=300 heredado de base/yolov8.yaml; info.output_shape documenta 3 strides x (4 cajas, 80 clases).
  • Selección one2one: no se ejecuta NMS. El host aplica sigmoid, toma los top-k anclas por puntuación máxima de clase, luego los top-k pares (ancla, clase) —se permiten varias clases por ancla— y filtra por el deslizador de confianza.
  • Decodificación de cajas: la cabeza de 4 canales da las distancias del centro de la celda a los bordes izquierdo/superior y derecho/inferior en unidades de stride (regression_length=1); las compilaciones DFL de 64 canales se decodifican con la expectativa del softmax.
  • Si una compilación devuelve el resultado NMS en chip (como los HEF de yolo26-seg) se analiza el tensor post-NMS (búfer compacto por clase, formas densas Cx5xD / CxDx5, lista ragged NMS-by-score) y no se ejecuta selección en el host.
  • El HEF incorpora normalize_in_net (mean 0 / std 255) y padding_color=114: la aplicación aplica letterbox con gris (114) y envía uint8 RGB sin normalizar.
  • Los IDs de clase 0..79 indexan directamente la lista estándar de COCO.
  • La primera inferencia registra la disposición y los rangos de cajas/puntuaciones ([YOLO26] layout=..., outputs=[...]).

Notas de desarrollo

  • Módulos fuente: src/hailo10h_yolo26{n,s,m}/ (Hailo-10H) o src/rpi5_hailo8_yolo26{n,s,m}/ (Hailo-8) en el repositorio de modelos correspondiente
  • Contenedores: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26{n,s,m}:latest
  • La familia de detección publica n/s/m; YOLO26l / YOLO26x aún no tienen HEF de Hailo.
  • Licencia del modelo: AGPL-3.0 (upstream ultralytics/ultralytics).

Entradas y salidas

Entrada: imagen, vídeo o cámara. Salida: cajas de detección de 80 clases COCO (contenedor Ultralytics en Jetson, HEF de Hailo en la R Series).