CV / YOLOv5
YOLOv5
reComputer R Series (CM5 + Hailo-10H)
YOLOv5n/s/m 目标检测模型,支持 reComputer RK3588/RK3576(RKNN)以及 reComputer R Series + Hailo-8 或 Hailo-10H。
559 次下载
大小
~10.7MB内存
2GB+精度
INT8 / Hailo HEF选择你正在使用的设备,设置指南和文档将相应更新。
快速开始
部署
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4模型详情
reComputer R Series (CM5 + Hailo-10H)YOLOv5 在 reComputer R Series(CM5 + Hailo-10H)上运行
YOLOv5s 与 YOLOv5m 通过 HailoRT 在 Hailo-10H 上执行 COCO 80 类目标检测。NMS 与 sigmoid 均在片上完成(Hailo HPP),宿主只解析 post-NMS 张量。
本页面向搭载 PCIe Hailo-10H 加速器的 reComputer R Series(CM5 + Hailo-10H)。
硬件与主机设置
| 项目 | 值 |
|---|---|
| 开发板 | reComputer R Series 搭配 Raspberry Pi CM5 |
| 加速器 | Hailo-10H(PCIe 接口),以 /dev/hailo0 暴露 |
| 运行时 | HailoRT 5.1.1 |
| 容器内 Python | 3.13, aarch64 |
在主机上安装 Hailo-10H 软件包,并在启动容器前确认驱动与设备就绪:
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0这些镜像要求的 HailoRT 版本为 5.1.1。
使用演示视频运行
YOLOv5s:
bash
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4YOLOv5m:
bash
sudo docker run --rm \
--name cm5-hailo10h-yolov5m \
--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/yolov5m:latest \
python web_detection.py --model_path model/yolov5m.hef --video_path video/test.mp4浏览器打开 http://<Board_IP>:8000 查看网页预览。
USB 摄像头模式
bash
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --camera_id 0把 yolov5s 换成 yolov5m 即可使用中尺寸变体。
HEF 文件
| HEF | 大小 | 说明 |
|---|---|---|
yolov5s.hef | 13,029,376 (12.4 MB) | 参数量 7.46M,运算量 17.44G |
yolov5m.hef | 19,812,352 (18.9 MB) | 参数量 21.78M,运算量 52.17G |
YOLOv5s 是小尺寸变体、YOLOv5m 是中尺寸变体,两者均为 Hailo Model Zoo v5.4.0 的 Hailo-10H 编译产物。
Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v5.4.0/hailo10h/yolov5s.hef (yolov5m.hef in the same directory).
REST API
text
POST http://<Board_IP>:8000/api/models/yolov5s/predictbash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5s/predict" \
-F "file=@test.jpg"| 接口 | 方法 | 用途 |
|---|---|---|
/ | GET | 网页预览界面 |
/api/models/yolov5s/predict | POST | 检测结果(JSON) |
/api/video_feed | GET | MJPEG 预览流 |
实现说明
- HEF 在片上完成 NMS 与 sigmoid(zoo
base/yolo.yaml:nms: true、hpp: true),因此nms_thresh仅保留参数接口。 - post-NMS 每行为
[ymin, xmin, ymax, xmax, score],取值范围 [0,1](相对 640x640 letterbox 后的输入);应用缩放到像素并还原到原图。 - HEF 内含
normalize_in_net(mean 0 / std 255,即 /255)与padding_color=114:应用用灰色(114)填充做 letterbox,输入原始 uint8 RGB,宿主侧不做归一化。 - 类别 ID 0..79 直接索引标准 COCO 类别表(Model Zoo 评测使用
labels_offset=1)。 - Model Zoo 标注的 post-NMS 形状为 80x5x80;解析器按运行时实际布局处理,并在首次推理打印一次(
[YOLOv5] raw output type=..., shape=...)便于实机核对。 - 默认参数:置信度 0.25;IOU 滑块无效——NMS 在片上。
开发说明
- 源码模块:
src/hailo10h_yolov5s/、src/hailo10h_yolov5m/ - Dockerfile:
docker/hailo10h/yolov5s.dockerfile、docker/hailo10h/yolov5m.dockerfile - 镜像:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest、.../yolov5m:latest - 两个模块均使用 HailoRT 5.1.1 的 InferModel API 与面向 Hailo-10H 编译的 HEF。
- 单元测试无需设备即可运行:
python -m unittest discover -s tests -v。