CV / YOLOv6

YOLOv6

YOLOv6 COCO 目标检测,支持 reComputer RK3576/RK3588(RKNN)以及 reComputer R Series + Hailo-8 或 Hailo-10H。

11 次下载
精度
RKNN / Hailo HEF

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

快速开始

部署
sudo docker run --rm --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latest \
  python3 web_detection.py --platform rk3576 --model_path model/yolov6n.rknn --video_path video/test.mp4

REST API

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

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "yolov6",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "yolov6", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

模型详情

reComputer R Series (CM5 + Hailo-8)

YOLOv6n on reComputer R Series (CM5 + Hailo-8)

YOLOv6n 通过 HailoRT 在 Hailo-8 上执行 COCO 80 类目标检测。编译出的 HEF 可能直接给出片上 HPP NMS 结果,也可能暴露九个原始分支头;应用对两种布局都能处理,并会打印实际布局。

本页面向搭载 PCIe Hailo-8 加速器的 reComputer R Series (CM5 + Hailo-8)。

硬件与主机设置

项目值
开发板reComputer R Series 搭配 Raspberry Pi CM5
加速器Hailo-8(PCIe 接口),以 /dev/hailo0 暴露
运行时HailoRT 4.23.x
容器内 Python3.11, aarch64

在主机上安装 Hailo-8 软件包,并在启动容器前确认驱动与设备就绪:

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

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

该镜像要求的 HailoRT 版本为 4.23.x。

使用演示视频运行

bash
sudo docker run --rm \
  --name cm5-hailo8-yolov6n \
  --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/yolov6n:latest \
  python web_detection.py --model_path model/yolov6n.hef --video_path video/test.mp4

浏览器打开 http://<Board_IP>:8000 查看网页预览。

USB 摄像头模式

bash
sudo docker run --rm \
  --name cm5-hailo8-yolov6n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  --device /dev/video0:/dev/video0 \
  -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/yolov6n:latest \
  python web_detection.py --model_path model/yolov6n.hef --camera_id 0

HEF 文件

HEF大小说明
yolov6n.hef5,774,047 (5.5 MB)HEF 来自 Hailo Model Zoo v2.19.0 的 Hailo-8 构建;参数量 4.32M,运算量 11.12G。

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolov6n.hef.

REST API

text
POST http://<Board_IP>:8000/api/models/yolov6n/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov6n/predict" \
  -F "file=@test.jpg"
接口方法用途
/GET网页预览界面
/api/models/yolov6n/predictPOST检测结果(JSON)
/api/video_feedGETMJPEG 预览流

实现说明

  • Model Zoo base/yolov6.yaml 使用 hpp=true、meta_arch=yolo_v6、score_threshold=0.03、nms_iou_thresh=0.65;info.output_shape 记录的是九个原始分支头(每个 stride 32/16/8 各 4 通道框、1 通道 objectness、80 通道类别)。
  • 模块对两种编译布局都能处理:HEF 已做 NMS(HPP)时解析 post-NMS 张量(逐类紧凑缓冲区、Cx5xD / CxDx5 稠密布局、ragged NMS-by-score 列表);HEF 输出原始分支头时解码格心到四边的距离(stride 单位),用 sigmoid(类别) × sigmoid(objectness) 得到分数,再按 IOU 滑块做逐类 NMS。
  • 首次推理会打印一次 [YOLOv6n] layout=...,便于实机确认布局。
  • HEF 内含 normalize_in_net(mean 0 / std 255)与 padding_color=114:应用用灰色(114)填充做 letterbox,输入原始 uint8 RGB,宿主侧不做归一化。
  • 类别 ID 0..79 直接索引标准 COCO 类别表(Model Zoo 评测使用 labels_offset=1)。
  • 默认参数:置信度 0.25;片上 NMS 布局下 IOU 滑块无效,原始头布局下它驱动宿主侧 NMS。

开发说明

  • 源码模块:对应模型仓库里的 src/hailo10h_yolov6n/(Hailo-10H)或 src/rpi5_hailo8_yolov6n/(Hailo-8)
  • 镜像:ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov6n:latest
  • Hailo Model Zoo 只发布了 YOLOv6n,YOLOv6s/m/l 没有 Hailo HEF。
  • 模型许可:GPL-3.0(上游 meituan/YOLOv6)。

输入与输出

Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.