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

模型信息

变体参数量硬件 mAPHEF 大小
YOLOv5n-seg1.99M22.94.7 MB
YOLOv5s-seg7.61M30.78.7 MB
YOLOv5m-seg32.60M36.628.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 惯例)
HEFHailo 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.mp4

YOLOv5s-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/predictPOST检测框 + 实例掩码(JSON)
/api/video_feedGETMJPEG 预览流

实现细节

  • 解码遵循 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