CV / YOLOv6

YOLOv6

Detección de objetos COCO YOLOv6 en reComputer RK3576/RK3588 (RKNN) y en reComputer R Series con Hailo-8 o Hailo-10H.

11 descargas
Precisión
RKNN / 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 --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latest \
  python3 web_detection.py --platform rk3576 --model_path model/yolov6n.rknn --video_path video/test.mp4

API REST

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

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "yolov6",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "yolov6", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

Detalles del modelo

reComputer R Series (CM5 + Hailo-8)

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

YOLOv6n realiza detección de objetos COCO de 80 clases en Hailo-8 mediante HailoRT. El HEF compilado devuelve el resultado NMS en chip (HPP) o las nueve cabezas divididas en bruto; la aplicación admite ambas y registra la que produjo el HEF.

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 esta imagen es 4.23.x.

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

bash
sudo docker run --rm \
  --name cm5-hailo8-yolov6n \
  --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/yolov6n:latest \
  python web_detection.py --model_path model/yolov6n.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-yolov6n \
  --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/yolov6n:latest \
  python web_detection.py --model_path model/yolov6n.hef --camera_id 0

Archivo HEF

HEFTamañoNotas
yolov6n.hef5,774,047 (5.5 MB)El HEF proviene del build v2.19.0 de Hailo Model Zoo para Hailo-8; parámetros 4.32M, operaciones 11.12G.

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolov6n.hef.

REST API

text
POST http://<Board_IP>:8000/api/models/yolov6n/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov6n/predict" \
  -F "file=@test.jpg"
EndpointMétodoPropósito
/GETInterfaz de vista previa web
/api/models/yolov6n/predictPOSTDetecciones (JSON)
/api/video_feedGETStream de vista previa MJPEG

Notas de implementación

  • El Model Zoo base/yolov6.yaml usa hpp=true, meta_arch=yolo_v6, score_threshold=0.03 y nms_iou_thresh=0.65; info.output_shape documenta las nueve cabezas divididas en bruto (4 cajas, 1 objectness, 80 clases por stride 32/16/8).
  • El módulo admite ambos formatos de compilación: si el HEF ya ejecutó NMS (HPP) analiza el tensor post-NMS (búfer compacto por clase, formas densas Cx5xD / CxDx5, lista ragged NMS-by-score); si el HEF devuelve las cabezas en bruto decodifica las distancias alrededor del centro de la celda (unidades de stride), multiplica sigmoid(clases) por sigmoid(objectness) y ejecuta un NMS por clase con el valor del deslizador de IOU.
  • [YOLOv6n] layout=... se imprime una vez en la primera inferencia para confirmar el formato en el hardware.
  • 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 evaluación del Model Zoo usa labels_offset=1).
  • Valores por defecto: confianza 0.25; con el formato NMS en chip el deslizador de IOU no tiene efecto, con las cabezas en bruto controla el NMS del host.

Notas de desarrollo

  • Módulo fuente: src/hailo10h_yolov6n/ (Hailo-10H) o src/rpi5_hailo8_yolov6n/ (Hailo-8) en el repositorio de modelos correspondiente
  • Contenedor: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov6n:latest
  • El Hailo Model Zoo solo publica YOLOv6n; YOLOv6s/m/l no tienen HEF de Hailo.
  • Licencia del modelo: GPL-3.0 (upstream meituan/YOLOv6).

Entradas y salidas

Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.