拿到 RDK X5 之后,目标检测大概是最多人第一个想跑的东西。我整理了一下三条路,从 5 分钟出效果到自训模型部署都有,顺便记几个容易踩的坑。
① 最快:预装 YOLOv5 demo
如果还没自己的模型,这条路径最快,SSH 进去直接跑:
# 确认摄像头
ls -l /dev/video* && v4l2-ctl --list-devices
# YOLOv5 静态图检测
cd /app/pydev_demo/07_yolov5_sample/
sudo python3 ./test_yolov5.py
# 或者 USB 摄像头实时检测 + 浏览器预览
cd /app/pydev_demo/05_web_display_camera_sample/
sudo python3 ./web_display_camera.py
浏览器打开 http://<板子IP>:8000 就能看到实时检测画面。如果不出图,检查 CAM_TYPE 是不是和你的摄像头一致(usb / mipi),USB 摄像头务必把格式锁成 MJPEG。
② 集成到 ROS2 系统
如果已经在用 TROS,走 ROS2 节点更自然:
source /opt/tros/humble/setup.bash
ros2 launch hobot_usb_cam hobot_usb_cam.launch.py
# 新终端
source /opt/tros/humble/setup.bash
ros2 launch dnn_node_example dnn_node_example.launch.py config_file:=/opt/tros/humble/lib/dnn_node_example/config/yolov3_workconfig.json
验收看 topic 有没有数据:
ros2 topic list | grep detection
ros2 topic echo /hobot_dnn_detection
③ 自训模型部署(PyTorch → .bin)
如果你有自己的 YOLO 模型,必须走转换:
主机 Docker 端:训练 → 导出 ONNX(用 D-Robotics fork)→ hb_mapper checker → 校准图 → makertbin → .bin
板端:scp .bin → hobot_dnn 加载推理
几个新手最容易卡的地方:
- 转换必须用地瓜的 yolo fork,ultralytics 官方仓导出的 ONNX 算子 BPU 不认
- 工具链在主机 Docker 上跑,不在板子里,板上只有 runtime
- X5 的 march 参数是
bayes-e,别填错 .pt/ 原生.onnx直接上板只会走 CPU,大概 1-2 FPS,不转.bin等于没用到 BPU
总结
| 场景 | 选哪条 |
|---|---|
| 刚开箱想看一眼效果 | 路径①,5 分钟 |
| 已有 ROS2 工作流 | 路径② |
| 有自己的模型要部署 | 路径③(半天到数天) |
欢迎补充其他踩坑经验 ![]()