tros高效部署yolo11出错

参考的文档路径: YOLOv11,地瓜RDK X5开发板,TROS端到端140FPS_rdk x5 yolov11-CSDN博客

跟着超哥来的,后面就卡死了,快一个星期了,救救牢弟吧。

tros的json文件配置和运行报错:

这是我的.bin模型的输入输出信息:
root@bd6ba715b30e:/open_explorer# hrt_model_exec model_info --model_file Model/water/bin_dir/yolo11n_water_640x640_nv12/yolo11n_water_yuan_640x640_nv12.bin
hrt_model_exec model_info --model_file Model/water/bin_dir/yolo11n_water_640x640_nv12/yolo11n_water_yuan_640x640_nv12.bin
I0000 00:00:00.000000 1391 vlog_is_on.cc:197] RAW: Set VLOG level for “*” to 3
core[0] open!
core[1] open!
[HBRT] set log level as 0. version = 3.15.55.0
[DNN] Runtime version = 1.24.5_(3.15.55 HBRT)
[A][DNN][packed_model.cpp:247]Model [HorizonRT] The model builder version = 1.24.3
Load model to DDR cost 22.853ms.
This model file has 1 model:
[yolo11n_water_yuan_640x640_nv12]

input[0]:
name: images
input source: HB_DNN_INPUT_FROM_PYRAMID
valid shape: (1,3,640,640,)
aligned shape: (1,3,640,640,)
aligned byte size: 614400
tensor type: HB_DNN_IMG_TYPE_NV12
tensor layout: HB_DNN_LAYOUT_NCHW
quanti type: NONE
stride: (0,0,0,0,)

output[0]:
name: output0
valid shape: (1,80,80,64,)
aligned shape: (1,80,80,64,)
aligned byte size: 1638400
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NHWC
quanti type: NONE
stride: (1638400,20480,256,4,)

output[1]:
name: 469
valid shape: (1,40,40,64,)
aligned shape: (1,40,40,64,)
aligned byte size: 409600
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NHWC
quanti type: NONE
stride: (409600,10240,256,4,)

output[2]:
name: 477
valid shape: (1,20,20,64,)
aligned shape: (1,20,20,64,)
aligned byte size: 102400
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NHWC
quanti type: NONE
stride: (102400,5120,256,4,)

output[3]:
name: 491
valid shape: (1,80,80,1,)
aligned shape: (1,80,80,1,)
aligned byte size: 25600
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NCHW
quanti type: NONE
stride: (25600,320,4,4,)

output[4]:
name: 505
valid shape: (1,40,40,1,)
aligned shape: (1,40,40,1,)
aligned byte size: 6400
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NCHW
quanti type: NONE
stride: (6400,160,4,4,)

output[5]:
name: 519
valid shape: (1,20,20,1,)
aligned shape: (1,20,20,1,)
aligned byte size: 1600
tensor type: HB_DNN_TENSOR_TYPE_F32
tensor layout: HB_DNN_LAYOUT_NCHW
quanti type: NONE
stride: (1600,80,4,4,)

.bin模型的可视化:

在RDK X5的板端进行验证过是可以用的,验证的识别图片为下:

在进行以下步骤时就出问题了

更改好.bin模型路径和类别信息文件路径后进行运行就出现以下问题:
[INFO] [launch]: All log files can be found below /home/sunrise/.ros/log/2025-10-21-22-29-44-551972-ubuntu-13355
[INFO] [launch]: Default logging verbosity is set to INFO
dnn_node_example_path is /opt/tros/humble/lib/dnn_node_example
cp_cmd is cp -r /opt/tros/humble/lib/dnn_node_example/config .
camera_type is usb
using usb cam
Hobot shm pkg enables zero-copy with fastrtps profiles file: /opt/tros/humble/lib/hobot_shm/config/shm_fastdds.xml
Hobot shm pkg sets RMW_FASTRTPS_USE_QOS_FROM_XML: 1
config_file_path is /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
webserver has launch
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
config_file_path is /opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
env of RMW_FASTRTPS_USE_QOS_FROM_XML is 1 , ignore env setting
webserver has launch
[INFO] [hobot_usb_cam-1]: process started with pid [13361]
[INFO] [hobot_codec_republish-2]: process started with pid [13363]
[INFO] [example-3]: process started with pid [13365]
[INFO] [websocket-4]: process started with pid [13367]
[hobot_codec_republish-2] [WARN] [1761056985.267970969] [hobot_codec_decoder]: Parameters:
[hobot_codec_republish-2] sub_topic: /image
[hobot_codec_republish-2] pub_topic: /hbmem_img
[hobot_codec_republish-2] channel: 1
[hobot_codec_republish-2] in_mode: ros
[hobot_codec_republish-2] out_mode: shared_mem
[hobot_codec_republish-2] in_format: jpeg
[hobot_codec_republish-2] out_format: nv12
[hobot_codec_republish-2] enc_qp: 10
[hobot_codec_republish-2] jpg_quality: 60
[hobot_codec_republish-2] input_framerate: 30
[hobot_codec_republish-2] output_framerate: -1
[hobot_codec_republish-2] dump_output: 0
[hobot_codec_republish-2] [WARN] [1761056985.274516201] [HobotCodecImpl]: platform x5
[hobot_usb_cam-1] [WARN] [1761056985.467799877] [hobot_usb_cam]: framerate: 30
[hobot_usb_cam-1] [WARN] [1761056985.468504296] [hobot_usb_cam]: pixel_format_name: mjpeg
[hobot_usb_cam-1] [WARN] [1761056985.499795037] [hobot_usb_cam]: Camera calibration file: [/opt/tros/humble/lib/hobot_usb_cam/config/usb_camera_calibration.yaml] does not exist!
[hobot_usb_cam-1] If you need calibration msg, please make sure the calibration file path is correct and the calibration file exists!
[hobot_usb_cam-1] [WARN] [1761056985.511136746] [hobot_usb_cam]: Try to open device [/dev/video0]
[example-3] [BPU_PLAT]BPU Platform Version(1.3.6)!
[example-3] [HBRT] set log level as 0. version = 3.15.55.0
[example-3] [DNN] Runtime version = 1.24.5_(3.15.55 HBRT)
[websocket-4] [WARN] [1761056985.661325553] [websocket]:
[websocket-4] Parameter:
[websocket-4] image_topic: /image
[websocket-4] image_type: mjpeg
[websocket-4] only_show_image: 0
[websocket-4] smart_topic: hobot_dnn_detection
[websocket-4] output_fps: 0
[hobot_usb_cam-1] [WARN] [1761056985.762478970] [hobot_usb_cam]: This devices supproted formats:
[hobot_usb_cam-1] [WARN] [1761056985.762715846] [hobot_usb_cam]: Motion-JPEG: 1280 x 720 (60 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.762777638] [hobot_usb_cam]: Motion-JPEG: 1920 x 1080 (30 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.762824930] [hobot_usb_cam]: Motion-JPEG: 1024 x 768 (30 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.762870097] [hobot_usb_cam]: Motion-JPEG: 640 x 480 (120 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.762915305] [hobot_usb_cam]: Motion-JPEG: 800 x 600 (60 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.762959847] [hobot_usb_cam]: Motion-JPEG: 1280 x 1024 (30 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763004389] [hobot_usb_cam]: Motion-JPEG: 320 x 240 (120 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763048222] [hobot_usb_cam]: YUYV 4:2:2: 1280 x 720 (9 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763092181] [hobot_usb_cam]: YUYV 4:2:2: 1920 x 1080 (6 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763136598] [hobot_usb_cam]: YUYV 4:2:2: 1024 x 768 (6 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763181306] [hobot_usb_cam]: YUYV 4:2:2: 640 x 480 (30 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763225556] [hobot_usb_cam]: YUYV 4:2:2: 800 x 600 (20 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763269140] [hobot_usb_cam]: YUYV 4:2:2: 1280 x 1024 (6 Hz)
[hobot_usb_cam-1] [WARN] [1761056985.763313307] [hobot_usb_cam]: YUYV 4:2:2: 320 x 240 (30 Hz)
[example-3] [A][DNN][packed_model.cpp:247]Model [HorizonRT] The model builder version = 1.24.3
[hobot_usb_cam-1] [WARN] [1761056986.540840106] [hobot_usb_cam]: Open & Init device /dev/video0 success.
[ERROR] [example-3]: process has died [pid 13365, exit code -11, cmd ‘/opt/tros/humble/lib/dnn_node_example/example --ros-args --log-level error --ros-args --params-file /tmp/launch_params_42j2gc4x --params-file /tmp/launch_params_xluyltm_ --params-file /tmp/launch_params_v_zbmoln --params-file /tmp/launch_params_ti83von8 --params-file /tmp/launch_params_j42zccg2’].
[hobot_codec_republish-2] [WARN] [1761056990.340785417] [hobot_codec_decoder]: Pub img fps [21.89]
[websocket-4] [ERROR] [1761056990.694016013] [websocket]: Websocket did not receive AI data! Please check whether the AI data publisher still exists by ‘ros2 topic info hobot_dnn_detection’!
[hobot_codec_republish-2] [WARN] [1761056995.356781776] [hobot_codec_decoder]: Pub img fps [30.31]
[websocket-4] [ERROR] [1761056995.693850349] [websocket]: Websocket did not receive AI data! Please check whether the AI data publisher still exists by ‘ros2 topic info hobot_dnn_detection’!

我自己尝试过从github上拉取官方的hobot_dnn代码库单独进行编译,然后将编译好的文件替换掉系统
里的原文件再尝试运行,还是会出现以上问题。

也尝试过本第图片回灌,也不行(同意时单独编译再替换掉系统代码)

求求了,帮帮孩子吧。

您好,板端验证成功指的是哪个,说明bin模型本身不存在问题,可能是tros的后处理代码与你的模型的没有对应

就是用超哥提供的python代码进行图片检测。是可以的。

那就是后处理的问题,用TROS的话需要手动修改一下YOLO11 Cpp的后处理了

具体的Cpp文件在哪个路径,是系统自带的吗?我这个已经是最新的系统了

还是说tros部署的话是需要root状态下的。我上面的操作都是在sunrise下进行的

因为超哥那一套和TROS的是解耦的。所以整体后处理可能不一致,在你拉取的hobot_dnn源码里面,需要自己二次开发了,也可以自行创建一套ROS的功能包代码,也有很好的社区开发者的案例释放: [RDK X5] 性能翻倍!告别繁琐!3行代码极速搞定YoloV8项目嵌入 - 板卡使用 / 新手上路 - 地瓜机器人论坛