使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测

设备和环境:奥比中光RGB-D相机(Astra);Ubuntu16.04

首先,先将自己的RGB-D相机的环境与依赖构建好,然后进行以下步骤构建darknet_ros。

1、下载darknet_ros

#进入自己的工作空间 src 下,最好单独建立一个工作空间来存放
cd ~/astra_ws/src

#下载darknet_ros
git clone https://github.com/leggedrobotics/darknet_ros

#返回到工作空间下
cd ..

#编译此工作空间
catkin_make -DCMAKE_BUILD_TYPE=Release

这里编译需要一定的时间,请耐心等待其编译。但在执行编译指令 catkin_make -DCMAKE_BUILD_TYPE=Release 时,可能会出现以下编译错误(如果未出现下图编译问题,直接跳到第二步执行即可),可能是因为这样直接克隆代码会存在文件缺失所导致,如下图所示:

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第1张图片

此问题解决方案:

1、删除工作空间下已clone到电脑中的darknet_ros文件夹
2、cd astra_ws/src

3、执行此指令对 darknet_ros 重新下载

git clone --recursive [email protected]:leggedrobotics/darknet_ros.git

4、再回到astra_ws下,重新执行以下指令编译,便能成功执行。

catkin_make -DCMAKE_BUILD_TYPE=Release

编译成功后,如下图所示: 

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第2张图片

 2、修改darket_ros中订阅的图像话题

启动自己相机后,然后查看相机所发布的话题

#启动相机
roslaunch astra_launch astra.launch

#查看发布话题
rostopic list

查询结果如下图所示:

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第3张图片

 然后将darket_ros/config/ros.yaml中的subscribers进行修改为RGB-D相机所发布的数据。如下图所示:

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第4张图片

 3、启动相机

#在 astra_ws 工作空间下执行以下指令,启动RGB-D相机

#刷新环境变量
source ./devel/setup.bash 

#启动 RGB-D 相机
roslaunch astra_launch astra.launch 

 4、启动darknet

#在 astra_ws 工作空间下执行以下指令,启动RGB-D相机

#刷新环境变量
source ./devel/setup.bash 

#启动 darknet 
roslaunch darknet_ros darknet_ros.launch

 5、运行结果

 启动 RGB-D 相机和 darknet 之后,便会根据已有 YOLO 的权重配置文件(weights)进行比对,然后得出真实环境中的事物属性。

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第5张图片

 下图是相机实时比对时的数据,会随着环境的变化而不断更新。

使用 RGB-D 相机(Astra)实现 YOLO v3 实时目标检测_第6张图片

 以上便是使用 RGB-D 相机使用 YOLO v3 实时的图像识别,希望能够对您有所帮助。

参考博客:

使用RGBD相机实现YOLOv3目标识别并测距,获取物体三维坐标_qqsuiying的博客-CSDN博客_rgbd相机定位

darknet_ros编译错误CMake Error at /usr/share/cmake-3.5/Modules/FindCUDA.cmake:1649问题解决办法_Timothy_Liuu的博客-CSDN博客

你可能感兴趣的:(YOLO,v3,目标检测,深度学习,计算机视觉)