CV / NanoDet

NanoDet-RepVGG

reComputer R Series (CM5 + Hailo-10H)

Detección de objetos de 80 clases COCO con NanoDet-RepVGG (NMS en chip) en reComputer R Series con Hailo-8 o Hailo-10H.

47 descargas
Tamaño
10.7 MB
Memoria
4GB+
Precisión
Hailo HEF / HailoRT

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-hailo10h-nanodet-repvgg \
  --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/nanodet_repvgg:latest \
  python web_detection.py --model_path model/nanodet_repvgg.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/nanodet_repvgg/predict" \
  -F "file=@test.jpg"
Python
import requests

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

Detalles del modelo

reComputer R Series (CM5 + Hailo-10H)

NanoDet-RepVGG en reComputer CM5 + Hailo-10H

NanoDet-RepVGG realiza detección de objetos de 80 clases COCO en Hailo-10H con NMS en chip (Hailo HPP). El HEF emite detecciones ya decodificadas y la app solo analiza el tensor post-NMS. Portado desde el módulo Hailo-8 validado rpi5_hailo8_nanodet_repvgg; el ejecutor usa el wrapper multi-salida create_infer_model de HailoRT 5.1.1 con salidas FLOAT32.

Información del modelo

PropiedadValor
ArquitecturaNanoDet-RepVGG (COCO-80)
TareaDetección de objetos
EntradaLeída del HEF al iniciar (se imprime en la primera ejecución)
SalidaTensor NMS en chip, forma post-NMS 80x5x100
Clases80 (COCO, indexadas desde 0, sin labels_offset)
HEFHailo Model Zoo v5.4.0, Hailo-10H (5.2 MB)

Hardware y configuración del host

ElementoValor
PlacareComputer R Series con Raspberry Pi CM5
AceleradorHailo-10H vía PCIe, expuesto como /dev/hailo0
Driver del hostpaquete apt hailo-h10-all
RuntimeHailoRT 5.1.1
Python en contenedor3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Ejecutar con vídeo de demostración

bash
sudo docker run --rm \
  --name cm5-hailo10h-nanodet-repvgg \
  --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/nanodet_repvgg:latest \
  python web_detection.py --model_path model/nanodet_repvgg.hef --video_path video/test.mp4

Abre http://<Board_IP>:8000 para ver la vista previa web. Para cámara USB, monta /dev/video0 y sustituye --video_path video/test.mp4 por --camera_id 0.

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/nanodet_repvgg/predict" \
  -F "file=@test.jpg"
EndpointMétodoDescripción
/healthGETComprobación de salud
/api/models/nanodet_repvgg/predictPOSTDetecciones (JSON)
/api/video_feedGETFlujo de vista previa MJPEG

Notas de implementación

  • El HEF ejecuta NMS en chip; la app solo analiza el tensor post-NMS, por lo que nms_thresh se ignora (solo para paridad de API).
  • Las filas post-NMS son [ymin, xmin, ymax, xmax, score], normalizadas a [0,1] de la entrada letterbox; la app escala a píxeles y deshace el letterbox.
  • La normalización/transformación de color está compilada en el HEF; la app hace letterbox y alimenta píxeles uint8 sin procesar.
  • HailoRT puede devolver el vstream NMS como lista ragged por clase (NMS-by-score); el analizador soporta además los layouts object/dense. La primera inferencia registra el tipo/forma crudos para verificación.
  • Las salidas del ejecutor se solicitan como FormatType.FLOAT32 (decuantizadas por el SDK); leer los buffers cuantizados crudos produce valores en decenas de miles y cero detecciones válidas.
  • Mapeo de clases: cls_id (0..79) → lista COCO de 80 clases directamente.

Fuente del modelo

nanodet_repvgg.hef es la compilación Hailo-10H de Hailo Model Zoo v5.4.0 — URL, SHA256 y tamaño registrados en el repositorio (src/hailo10h_nanodet_repvgg/model/README.md).

Entradas y salidas

Input: image, video, or USB camera frame. Output: COCO 80-class detection boxes with confidences, plus an annotated MJPEG preview.