ROS2-DL 基于Ubuntu20.04—通过ros2发布自己的deep learning检测结果(一)

1.安装ultralytics

在非conda的已安装ros2环境中安装ultralytics:

pip3 install ultralytics

在这里插入图片描述如果有报错,多次重新输入指令安装。

2.在非 conda 环境中检验 predict.py 是否正常运行

predict.py这是用自己训练好的做预测的程序
以 单张图片检测为例,predict.py 程序简化为下:
在这里插入图片描述运行:

python3 predict.py

在这里插入图片描述可以正常运行。

3.创建 YOLOV4DM ros2 工作空间及功能包

为了方便以后调试,直接在 ORB_SLAM3_Grid_Mapping/Examples 中创建 YOLOV4DM
文件夹,并在 YOLOV4DM 文件夹中创建 src 文件夹。(也可以在其他位置创建)
在这里插入图片描述从 YOLOV4DM/src 中进入终端,创建 yolov4_dm ros2 功能包。
这里为了方便调试,直接使用 ros2 现有的话题消息格式模块 geometry_msg,所以依赖
项要有 rclpy、geometry_msgs:

ros2 pkg create --build-type ament_python yolov4_dm --dependencies rclpy geometry_msgs

在这里插入图片描述注意:因为检测模型及 predict.py 使用的是 python 语言,所以在创建功能包时不能
使用 ament_cmake 而要使用 ament_python,否则编译无法识别,且无法生成 setup.py
文件。

4.复制相关文件

将相关文件复制到 YOLOV4DM/src/yolov4dm/yolov4dm 中
在这里插入图片描述

5.修改 predict.py

在 ros2 中引用相关 python 文件有几种方法,这里使用如下直观的方法:

import sys
sys.path.append('/home/stk/ros2work/ORB_SLAM3_Grid_Mapping/Examples/
YOLOV4DM/src/yolov4dm/yolov4dm')

创建 geometry_msgs 话题类型,并发布模型检测结果,整体文件如下:
在这里插入图片描述在这里插入图片描述

6.修改 setup.py

在 YOLOV4DM/src/yolov4dm/setup.py 文件中添加入口点,如下内容:

'predict = yolov4dm.predict:main'

在这里插入图片描述

7.修改 yolo.py 相关路径

因为 predict.py 中主要引用 yolo.py(自己修改的),所以需要修改 yolo.py 相关路径:
在这里插入图片描述在这里插入图片描述

8.编译运行

YOLOV4DM/src/yolov4dm 进入终端:colcon build
在这里插入图片描述运行第一个终端:

. install/setup.bash
ros2 run yolov4dm predict

在这里插入图片描述运行第二个终端,查看话题消息:

ros2 topic echo /point_topic

在这里插入图片描述
在第一个终端输入一张图片位置:/home/stk/yolov4_dm/img/00011.jpg
在这里插入图片描述此时第二个终端话题就有消息发出:
在这里插入图片描述再来一个出图的,在predict.py中def publish_point(self)末尾加上:
plt.imshow(r_image)
plt.show()
编译好后,在第一个终端输入一张图片位置:/home/stk/yolov4_dm/img/00018.jpg
在这里插入图片描述

通过ros2接受发布的图像话题检测,看博客下一篇

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值