YOLO(You Only Look Once) 作为一个检测速度非常快,检测目标种类极其丰富的深度学习算法,受到了非常多的研究人员和深度学习爱好者的青睐。
网上有关darknet(YOLO算法的框架)的代码已经有非常详细的博客介绍,但因为平时喜欢在ROS框架下进行算法开发,便于做一些实际应用,所以就想要在能够在ROS框架下使用YOLO,所幸已经有大牛将YOLO写成了非常好用ROS包——darknet_ros
。
本系列博客是在自己做毕设课题时阅读darknet_ros
相关代码进行理解的基础上做的一些笔记,分享给大家,可能更新速度不是很快,理解上也会有些偏差,还望大家不吝赐教。
本篇博客主要梳理一下darknet_ros
的整体框架,并先教会大家如何跑起来这个框架并且看到实时效果,毕竟能够看到酷炫的效果才能激起阅读代码的激情!
系统环境:
- Ubuntu16.04
- ROS Kinetic
一. 代码下载
代码Github主页:darknet_ros_github
下载命令:
mkdir -p catkin_workspace/src
cd catkin_workspace/src
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
cd ../
下载时间可能比较长,请耐心等待…
二. 编译
在ROS工作空间目录下,执行命令:
catkin_make -j6
此时会开始编译整个项目,编译完成后会检查{catkin_ws}/darknet_ros/darknet_ros/yolo_network_config/weights
文件下有没有yolov2-tiny.weights
和yolov3.weights
两个模型文件,默认下载好的代码里面为了节省体积是不带这两个模型文件的。因此编译之后会自动开始下载模型文件,此时又是一段漫长的等待时间。
如果刚好你之前已经下载好了模型文件,那就好了,在开始编译之前就把模型文件拷贝到上述文件夹下,就不会再次下载了。
三. 运行代码
1. 图像话题发布
因为darknet_ros
会直接订阅指定的图像话题名,然后对图像进行检测,绘制检测框,并发布相应的检测话题,因此首先需要找一个能够发布图像话题的ROS包,这里推荐使用ROS官方提供的usb_cam
驱动包,可以直接将电脑自带摄像头或连接电脑的USB摄像头采集的图像发布为ROS图像话题。
下载及编译:
cd catkin_workspace/src
git clone git@github.com:ros-drivers/usb_cam.git
cd ..
catkin_make -j5
然后发布摄像头图像话题:
source devel/setup.bash
roslaunch usb_cam usb_cam-test.launch
如果顺利的话应该可以看到实际的图像显示界面。
2. 运行darknet_ros
然后执行darknet_ros
进行检测,在运行检测之前需要更改一下配置文件,使得darknet_ros
订阅的话题与usb_cam
发布的图片话题对应。
打开darknet_ros/config/ros.yaml
文件,修改:
subscribers:
camera_reading:
topic: /camera/image_raw
queue_size: 1
为
subscribers:
camera_reading:
topic: /usb_cam/image_raw
queue_size: 1
回到工作空间根目录,执行:
source devel/setup.bash
roslaunch darknet_ros darknet_ros.launch
此时就会出现对摄像头采集图像的实时检测结果。
End
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/121285.html