超维空间M1无人机使用说明书——41、ROS无人机使用yolo进行物体识别

引言:用于M1无人机使用的18.04系统,采用的opencv3.4.5版本,因此M1无人机只提供了基于yolov3和yolov4版本的darknet_ros功能包进行物体识别,识别效果足够满足日常的物体识别使用,如果需要更高版本的yolov7或者yolov8,可以参考博客的yolov7和yolov8的使用。

链接: 源码链接

一、启动darknet_ros物体识别

javascript 复制代码
roslaunch robot_bringup bringup_darknet.launch

当终端无报错出现以上界面,表示物体识别正常运行

launch文件详解

1、bringup_darknet.launch文件分别启动了USB摄像头和darknet_ros节点,其中摄像头节点主要是发布图像话题,提供给darknet_ros节点订阅,相反,darknet_ros订阅图像话题,根据订阅到的图像数据进行识别处理

2、文件嵌套打开了darknet_ros.launch文件节点,这里需要注意,参数image是订阅的图像话题数据,一定要和摄像头发布的话题完全对应才可,否则darknet_ros节点会一直处在等待图像的状态

二、识别的物体模型

在例程中,我们加载了通用的物体模型,如下图所示,参数文件在路径
/home/cwkj/cwkj_ws/src/darknet_ros/darknet_ros/config下。

默认选择使用yolov4-tiny.yaml参数文件,如下所示,可以识别人、自行车、汽车等

如果需要更改识别模型,只需要在启动文件中更换参数文件即可,我们只需要打开darknet_ros.launch文件,更换其中的参数文件即可

三、实例应用

步骤1、为了节约系统资源,可视化弹窗默认是关闭的,如果需要观看图片信息,可以使用rqt工具打开,如下:rqt_image_view

优先考虑在远程端使用rqt可视化工具

步骤2、识别到键盘,并且对键盘进行框选,需要按照如下话题选择

以下部分主要是针对深度摄像头,如D435,如果是USB摄像头,坐标转换节点是没法给出实际的坐标位置的,缺少深度信息,但是程序会给出识别道德目标物在摄像头画面中的相对位置信息

四、启动坐标转换节点,发布物体相对于摄像头的空间位置信息

只需要把其中的参数object_name改成参数文件中的物体名称即可识别指定物体并发布位置信息,例如键盘"keyboard"。

javascript 复制代码
roslaunch object_darknet object_darknet.launch 

步骤1、未检测到键盘的时候,日志输出如下:

步骤2、识别到键盘,日志输出如下:发布键盘相对与摄像头的位置信息,包含深度信息

五、扩展

同样的,通过选择不同的参数文件,可以实现行人检测、人脸检测、以及其他的物体识别。

相关推荐
视觉语言导航3 小时前
中科院自动化研究所通用空中任务无人机!基于大模型的通用任务执行与自主飞行
人工智能·深度学习·无人机·具身智能
moonsims3 小时前
道通龙鱼系列-混合翼无人机:垂直起降+长时续航
人工智能·无人机
视觉语言导航3 小时前
南航无人机大规模户外环境视觉导航框架!SM-CERL:基于语义地图与认知逃逸强化学习的无人机户外视觉导航
人工智能·深度学习·无人机·具身智能
北京航通天下科技有限公司8 小时前
eVTOL、无人机电机功耗图和电机效率图绘制测试
无人机
云卓SKYDROID8 小时前
无人机减震模块运行与技术要点分析!
人工智能·无人机·科普·高科技·减震系统
白熊1889 小时前
【计算机视觉】论文精读《基于改进YOLOv3的火灾检测与识别》
人工智能·yolo·计算机视觉
白熊18811 小时前
【图像生成大模型】Step-Video-T2V:下一代文本到视频生成技术
人工智能·opencv·yolo·计算机视觉·大模型·音视频
云卓SKYDROID13 小时前
无人机屏蔽与滤波技术模块运行方式概述!
人工智能·无人机·航电系统·科普·云卓科技
风暴智能1 天前
获取相机图像(ROS2)
linux·机器人·无人机
yidaqiqi2 天前
[目标检测] YOLO系列算法讲解
算法·yolo·目标检测