CV / NanoDet

NanoDet-RepVGG

reComputer R Series (CM5 + Hailo-10H)

COCO 80 类目标检测,NanoDet-RepVGG(片上 NMS),适用于 reComputer R Series + Hailo-8 或 Hailo-10H。

47 次下载
大小
10.7 MB
内存
4GB+
精度
Hailo HEF / HailoRT

选择你正在使用的设备,设置指南和文档将相应更新。

快速开始

部署
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

REST API

使用 REST API 进行推理。复制以下命令。

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

模型详情

reComputer R Series (CM5 + Hailo-10H)

NanoDet-RepVGG 在 reComputer CM5 + Hailo-10H 上运行

NanoDet-RepVGG 在 Hailo-10H 上执行 COCO 80 类目标检测,NMS 在片上完成(Hailo HPP)。HEF 直接输出已解码的检测结果,应用只解析 NMS 后的张量。从已验证的 Hailo-8 模块 rpi5_hailo8_nanodet_repvgg 移植;执行器使用 HailoRT 5.1.1 的 create_infer_model 多输出封装,输出为 FLOAT32。

模型信息

属性值
架构NanoDet-RepVGG(COCO-80)
任务目标检测
输入启动时从 HEF 读取(首次运行时打印)
输出片上 NMS 张量,NMS 后形状 80x5x100
类别80(COCO,0 起索引,无 labels_offset)
HEFHailo Model Zoo v5.4.0,Hailo-10H(5.2 MB)

硬件与主机设置

项目值
开发板reComputer R Series(树莓派 CM5)
加速器Hailo-10H,PCIe 接口,设备节点为 /dev/hailo0
主机驱动hailo-h10-all apt 包
运行时HailoRT 5.1.1
容器内 Python3.13,aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

使用演示视频运行

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

打开 http://<Board_IP>:8000 查看 Web 预览。USB 摄像头模式挂载 /dev/video0,将 --video_path video/test.mp4 换成 --camera_id 0。

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/nanodet_repvgg/predict" \
  -F "file=@test.jpg"
端点方法说明
/healthGET健康检查
/api/models/nanodet_repvgg/predictPOST检测结果(JSON)
/api/video_feedGETMJPEG 预览流

实现说明

  • HEF 片上执行 NMS,应用只解析 NMS 后张量,nms_thresh 仅为接口兼容而保留。
  • NMS 后的行格式为 [ymin, xmin, ymax, xmax, score],相对 letterbox 输入归一化;应用换算为像素并还原 letterbox。
  • 归一化/颜色转换编译进 HEF;应用 letterbox 后直接送原始 uint8 像素。
  • HailoRT 可能以逐类别 ragged 列表(NMS-by-score)返回 NMS vstream,解析器同时兼容 ragged/object/dense 布局。首次推理会打印原始类型/形状用于核验。
  • 执行器输出统一请求 FormatType.FLOAT32(由 SDK 去量化);直接读量化原始值会得到万级数值且检测全空。
  • 类别映射:cls_id(0..79)直接对应标准 COCO 80 类列表。

模型来源

nanodet_repvgg.hef 为 Hailo Model Zoo v5.4.0 的 Hailo-10H 构建——URL、SHA256 和大小记录在仓库 src/hailo10h_nanodet_repvgg/model/README.md 中。

输入与输出

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