CV / YOLO11

YOLOv11-obb

YOLOv11n/s/m/x-OBB 旋转框目标检测模型(DOTA v1,15 类),适用于 reComputer R Series + Hailo-10H。

4 次下载
大小
6.57 MB
内存
4GB+
精度
INT8 / Hailo HEF

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

快速开始

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

模型详情

YOLOv11-obb on reComputer R Series (CM5 + Hailo-10H)

YOLOv11n / YOLOv11s / YOLOv11m / YOLOv11x-OBB 通过 HailoRT 在 Hailo-10H 上执行旋转框目标检测(DOTA v1,15 类)。编译出的 HEF 没有片上 NMS:它暴露九个原始头,宿主负责解码并运行旋转框概率 IoU NMS——与 Hailo Model Zoo 复现其官方 DOTA mAP 时使用的解码完全一致。

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

硬件与主机设置

项目值
开发板reComputer R Series 搭配 Raspberry Pi CM5
加速器Hailo-10H(PCIe 接口),以 /dev/hailo0 暴露
运行时HailoRT 5.1.1
容器内 Python3.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。

使用演示视频运行

YOLOv11n_obb:

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

YOLOv11s_obb:

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

YOLOv11m_obb:

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

YOLOv11x_obb:

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

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

仓库自带的演示视频是一段短的**航拍(无人机)**素材,因此 DOTA 训练的模型能直接在预览里看到车辆等空中目标的旋转框;不属于 DOTA 类别的无人机数据集类别(如行人)不会报出。

USB 摄像头模式

bash
sudo docker run --rm \
  --name cm5-hailo10h-yolov11n_obb \
  --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/yolov11n_obb:latest \
  python web_detection.py --model_path model/yolov11n_obb.hef --camera_id 0

把 yolov11n_obb 换成 yolov11s_obb、yolov11m_obb 或 yolov11x_obb 即可切换变体。

HEF 文件

模型大小说明
yolov11n_obb.hef6,893,568 (6.57 MB)参数量 3.80M,运算量 17.25G,硬件 mAP 48.4,166 FPS
yolov11s_obb.hef17,088,512 (16.3 MB)参数量 12.6M,运算量 57.94G,硬件 mAP 52.3,76.5 FPS
yolov11m_obb.hef30,142,464 (28.75 MB)参数量 33.99M,运算量 183.59G,硬件 mAP 54.1,29.5 FPS
yolov11x_obb.hef64,696,320 (61.7 MB)参数量 60.08M,运算量 521.61G,硬件 mAP 56.0,8.54 FPS

四个变体都是同一 YOLOv11-OBB 家族(DOTA v1)在 Hailo Model Zoo v5.4.0 上的 Hailo-10H 编译产物。mAP 与 FPS 为 Model Zoo 公布的 Hailo-10H 数据。

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v5.4.0/hailo10h/yolov11n_obb.hef (yolov11s_obb.hef, yolov11m_obb.hef, yolov11x_obb.hef in the same directory).

REST API

text
POST http://<Board_IP>:8000/api/models/yolov11n_obb/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov11n_obb/predict" \
  -F "file=@aerial.jpg" -F "conf=0.25" -F "iou=0.7"

每条结果返回类别、置信度和旋转框:

json
{
  "predictions": [
    {
      "class": "ship",
      "confidence": 0.94,
      "obb": {"x_center": 450.0, "y_center": 320.0, "width": 180.0, "height": 420.0, "angle": 35.2}
    }
  ]
}

angle 为度(相对 +x 逆时针,范围 [-45, 135))。

接口方法用途
/GET网页预览界面
/api/models/yolov11{n,s,m,x}_obb/predictPOST旋转框检测结果(JSON)
/api/video_feedGETMJPEG 预览流

实现说明

  • Model Zoo base/yolo_obb.yaml 设置 device_pre_post_layers.sigmoid: false、meta_arch: yobb、score_threshold: 0.01,没有 hpp 也没有片上 NMS;anchors 使用 scale_factors [0.5, 0.5]、regression_length 15(16 个 DFL 箱)与 strides [8, 16, 32],评测为 DOTA v1 的 15 类。
  • 头布局:九个原始张量,按通道数(64 通道 DFL 框 / 15 通道类别 / 1 通道角度)识别并按 stride 配对(128x128、64x64、32x32)。
  • 角度:theta = (sigmoid(a) - 0.25) * pi(范围 [-pi/4, 3pi/4)),与 Model Zoo 的 YoloOBBPostProc 及 ultralytics OBB 头一致。
  • 框:对 16 个 DFL 箱做 softmax 期望得到 stride 单位的 l/t/r/b 距离;w = l + r、h = t + b,中心为锚点加上旋转后的半轴偏移,距离再乘 stride。
  • 选择:每个锚点取最佳类别并按置信度滑块过滤,随后做带类别偏移的概率 IoU Fast-NMS(max_wh 7680,候选上限 30000,输出上限 300);因为 NMS 在宿主运行,置信度与 IOU 滑块都生效。
  • HEF 已内置 normalize_in_net(mean 0 / std 255)与 padding_color=114:应用用灰色(114)letterbox 到 1024x1024,并把原始 uint8 RGB 像素送入网络,无需手工归一化。
  • 类别 ID 0..14 对应 DOTA v1 列表(plane、ship、storage-tank、baseball-diamond…),与 Model Zoo 的 dotav1_names.json 一致。
  • 首次推理诊断在生产中关闭(_DET_OUTPUT_LOGGED = True);验证新 HEF 时在 web_detection.py 里改为 False 可打印头布局、取值范围与解码后的角度范围。

开发说明

  • 源码模块:reComputer-Hailo10H-CV 仓库中的 src/hailo10h_yolov11{n,s,m,x}_obb/
  • 容器:ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11{n,s,m,x}_obb:latest
  • Hailo-8 没有官方 OBB 编译产物(Model Zoo 的 oriented object detection 一栏 Hailo-8/Hailo-8L 均为 NA);yolov11l_obb 只面向 Hailo-15L。
  • 模型许可:AGPL-3.0(upstream ultralytics/ultralytics)。

输入与输出

输入:图像、视频或 USB 摄像头画面。输出:旋转框(x_center、y_center、width、height、angle)、DOTA 类别、置信度和带标注的 MJPEG 预览。