CV / NanoDet

NanoDet-RepVGG-a12

reComputer R Series (CM5 + Hailo-10H)

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

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

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

快速开始

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

REST API

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

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

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

模型详情

reComputer R Series (CM5 + Hailo-10H)

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

NanoDet-RepVGG-a12 在 Hailo-10H 上执行 COCO 80 类目标检测,NMS 在片上完成(Hailo HPP)。尽管名字带 "nanodet",这个变体基于 YOLOX 架构(base/yolox.yaml),输入 640x640。HEF 直接输出已解码的检测结果,应用只解析 NMS 后的张量。从已验证的 Hailo-8 模块 rpi5_hailo8_nanodet_repvgg_a12 移植;执行器使用 HailoRT 5.1.1 的 create_infer_model 多输出封装,输出为 FLOAT32。

模型信息

属性值
架构YOLOX 架构(base/yolox.yaml)+ RepVGG-A12 主干
任务目标检测
输入640x640x3(尺寸在启动时从 HEF 读取)
输出片上 NMS 张量,NMS 后形状 80x5x100
类别80(COCO,0 起索引;labels_offset=1 仅用于评估)
HEFHailo Model Zoo v5.4.0,Hailo-10H(4.6 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-a12 \
  --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_a12:latest \
  python web_detection.py --model_path model/nanodet_repvgg_a12.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_a12/predict" \
  -F "file=@test.jpg"
端点方法说明
/healthGET健康检查
/api/models/nanodet_repvgg_a12/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 类列表(labels_offset=1 仅用于评估;若类别看起来偏移,从首次推理日志重新推导)。

模型来源

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

输入与输出

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