无人机目标检测 Darknet-ROS 学习(二)

无人机目标检测 Darknet-ROS 学习(二)

上节我们已经安装好ROS,今天来看看如何在ROS环境下进行目标检测。最常使用的目标检测算法就是yolo,如今yolo算法已经发展非常成熟了,这次我们选择使用yolo v4 tiny来进行目标检测。

Darknet

Darknet是一个深度学习框架,类似于Pytorch,但是不同在于他是基于C和CUDA。Darknet可以看做是一个平台yolo在这个平台上运行。那么为什么是Darknet呢?原因如下:

  • 轻量级,非常容易安装,可移植性好
  • 因为基于C,所以非常适合移动端的部署以及底层研究
  • 支持CPU和GPU,与caffe较为类似

下载Darknet ROS

我们想要在ROS环境下运行Darknet就需要将Darknet移植到ROS上,Darknet-ROS已经在Github上有开源的程序,我们先将其下载,首先创建一个catkin_ws文件夹作为工作空间,再在这个文件夹中创建一个src保存Darknet-ROS的源码,在catkin_ws/src文件夹下右键打开终端,克隆源码,输入:

git clone https://github.com/Tossy0423/yolov4-for-darknet_ros.git

该项目包含darknet的源码以及yolo系列网络的各种配置文件

在clone的过程中会遇到下载很慢的问题,主要原因是yolo系列网络的权重文件太大,这时可以先将weight文件下载好再进行clone,下载weight文件可以在这个链接里下载,直接在浏览器中打开即可:https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
放在darknet_ros/darknet_ros/yolo_network_config/weights文件夹下,这个文件夹专门保存yolo的权重文件

Darknet_ROS的文件结构

众所周知。Darknet_ROS这个项目的目的就是在ROS环境下运行Darknet,这无疑说明Darknet在ROS中是以节点形式存在的,如图:
ros节点关系图
其中相机的视频流和Darknet节点之间相互通信实现目标检测。接下来进入正题,Darknet_ROS项目工作空间是catkin_ws文件夹,该项目两个文件夹最重要,分别是:

  • catkin_ws/src/darknet_ros/darknet
  • catkin_ws/src/darknet_ros/darknet_ros
    第一个文件夹下就是darknet平台的源码,运行darknet时使用到的就是这里面的代码,其中有一个名为darknet的可执行文件。

第二个文件夹下则是ROS节点的相关内容和yolo网络的相关文件。先来看yolo相关的文件夹:

  • yolo_network_config
  • include
  • src

yolo_network_config文件夹中有两个重要文件夹cfgweights文件夹,这也是darknet平台下一个网络最重要的两个文件.cfg.weights文件,前者定义网络结构,后者表示网络训练得到的权重,用来预测。

后两个文件夹则是将yolo预测过程封装成了一个检测器,include中是头文件,src中是源码。

其次是ROS相关文件夹:

  • config
  • launch

这两个文件夹下分别是.yaml配置文件和.launch运行文件,.yaml配置文件告诉ROS该加载哪个网络的参数以及class各个类别。.launch文件如果学过上一节的21讲就知道他可以同时启动多个ROS节点,相当于exe可执行文件。

本节内容到此结束,下节将学习D455相机如何配置以及整个项目如何运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值