CV / YOLOv5
YOLOv5-seg
YOLOv5-seg 实例分割模型,支持 reComputer RK3588/RK3576(RKNN)以及 reComputer R Series + Hailo-8 或 Hailo-10H。
468 次下载
大小
~5.4MB内存
1GB+精度
INT8 / Hailo HEF选择你正在使用的设备,设置指南和文档将相应更新。
快速开始
部署
sudo docker run --rm \
--name rk3588-yolov5n-seg \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
-e RKNN_LOG_LEVEL=0 \
--device /dev/video0:/dev/video0 \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov5_seg:latest \
python3 web_detection.py --model_path model/yolov5n_seg.rknn --video video/test.mp4模型详情
reComputer R Series (CM5 + Hailo-8)YOLOv5-seg 在 reComputer R Series(CM5 + Hailo-8)上运行
YOLOv5-seg(anchor-based 实例分割)检测 80 个 COCO 目标类别并为每个实例生成像素级掩码。HEF 输出三个原始检测头和掩码原型张量;应用在 CPU 上完成 anchor 解码、按类 NMS,并用原型张量组装掩码。
本页面向搭载 PCIe Hailo-8 加速器的 reComputer R Series(CM5 + Hailo-8)。
模型信息
| 变体 | 参数量 | 硬件 mAP | HEF 大小 |
|---|---|---|---|
| YOLOv5n-seg | 1.99M | 22.9 | 4.7 MB |
| YOLOv5s-seg | 7.61M | 30.7 | 8.7 MB |
| YOLOv5m-seg | 32.60M | 36.6 | 28.1 MB |
公共属性:
| 属性 | 值 |
|---|---|
| 架构 | YOLOv5-seg(3 anchors,stride 8/16/32) |
| 输入 | 640x640x3 RGB(normalize_in_net,mean 0 / std 255) |
| 输出 | proto(160x160x32)+ 3 个检测头(各 351 通道) |
| Letterbox 填充色 | 114(灰色,YOLO 惯例) |
| HEF | Hailo Model Zoo v2.19.0,Hailo-8 |
精度数值为 Hailo Model Zoo 参考基准,不是在 CM5 上实测的结果。
硬件与主机设置
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0拉取镜像
镜像已发布在 GHCR 上,启动容器前先拉取:
bash
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5n_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5s_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5m_seg:latest使用演示视频运行
YOLOv5n-seg:
bash
sudo docker run --rm \
--name cm5-hailo8-yolov5n-seg \
--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/yolov5n_seg:latest \
python web_detection.py --model_path model/yolov5n_seg.hef --video_path video/test.mp4YOLOv5s-seg / YOLOv5m-seg 使用同样的命令,将 yolov5n_seg 替换为 yolov5s_seg 或 yolov5m_seg 即可。
打开 http://<Board_IP>:8000 查看带实例掩码的 Web 预览。
USB 摄像头模式
增加 --device /dev/video0:/dev/video0,并把 --video_path video/test.mp4 替换为 --camera_id 0。
REST API
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
-F "file=@test.jpg"| 接口 | 方法 | 用途 |
|---|---|---|
/api/models/yolov5n_seg/predict | POST | 检测框 + 实例掩码(JSON) |
/api/video_feed | GET | MJPEG 预览流 |
实现细节
- 解码遵循 Hailo Model Zoo 的
yolov5_seg后处理:anchor 解码(xy = (sigmoid(xy) * 2 + grid - 0.5) * stride、wh = (sigmoid(wh) * 2) ** 2 * anchor_grid)→ objectness × 类别分数 → 按类 NMS →sigmoid(coeffs @ proto)上采样到输入尺寸并按框裁剪。 - 三个检测头通过 351 通道识别,并按空间尺寸排序(stride 32 → 16 → 8);proto 头是 160x160x32 张量。首次推理会打印每个 vstream 的名称与形状,便于在实机核实映射。
- 执行器使用 HailoRT 4.23 VStreams API 与 Hailo-8 专用 HEF。
- 源码模块:
src/rpi5_hailo8_yolov5n_seg/(以及..._s_seg/、..._m_seg/) - Dockerfile:
docker/hailo8/yolov5n_seg.dockerfile