darknet_ros(yolo移植到ros系统)代码分析

     darknet_ros就是darknet在ros操作系统下的版本,即在ros下使用yolo进行目标检测。

首先对其文件分类:.launch文件是ros格式的roslaunch文件;src文件夹下的就是它的主要代码,把ros和darknet结合起来的部分;cfg文件是放各种yolo网络的配置,weights文件夹是放置网络权重。

这些yaml文件是设置ros参数以及决定在ros下调用darknet的哪些配置文件和权重。ros.yaml如下

定义了接受图片的订阅者话题名称/avt_camera,和发送出去的发布者话题名称,包括物体类别和物体框(中心坐标和长宽)两个话题。

在ros中是以节点为单位进行基本功能的,这个代码相当于把整个darknet定义为一个节点,然后给这个节点输入图片,节点能输出相应的检测出的目标类别和位置信息,现在看到源码yolo_object_detector_node.cpp

/*
 * yolo_obstacle_detector_node.cpp
 *
 *  Created on: Dec 19, 2016
 *      Author: Marko Bjelonic
 *   Institute: ETH Zurich, Robotic Systems Lab
 */

#include <darknet_ros/YoloObjectDetector.hpp>
#include <ros/ros.h>

int main(int argc, char** argv) {
  ros::init(argc, argv, "darknet_ros");//初始化
  ros::NodeHandle nodeHandle("~");//创建节点类
  darknet_ros::YoloObjectDetector yoloObjectDetector(nodeHandle);//创建yoloObjectDetector类

  ros::spin();//ROS消息回调处理函数,相当于一个循环进入后就不会继续往下执行主函数了,而是一直将回调函数队列里的回调函数输出
  return 0;
}

代码很短,主要就是定义了一个ros节点,并在这个节点中创建一个YoloObjectDetector的类,所以关键就是这个类是干什么的。

而这个类的创建在YoloObjectDetector.cpp中,代码很长,是把darknet移植到ros的核心部分,大概600行,里面基本都是函数,比较乱,花了一两天时间才理清楚直接的关系并画了一个流程图来梳理其结构。

其中主要功能在YoloObjectDetector::yolo中。

 

  • 17
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
Jetson Xavier是一款高性能的嵌入式计算平台,能够实现深度学习和人工智能应用的部署。而darknet_ros是一个用于目标检测和识别的开源软件包,结合了YOLO算法和ROS框架。下面是在Jetson Xavier上部署darknet_ros的相关步骤。 首先,确保Jetson Xavier上已经安装好了ROS和CUDA。ROS是一个机器人操作系统,CUDA是一种用于并行计算的GPU加速库。 接下来,需要先将darknet_ros的源代码克隆到你的开发环境中。可以在GitHub上找到该项目,并按照说明进行克隆。 然后,进入darknet_ros的文件夹,并执行以下命令来编译代码: ``` $ catkin_make ``` 编译过程可能会需要一些时间,请耐心等待。 接着,将Jetson Xavier与ROS连接,运行ROS Master节点。 ``` $ roscore ``` 然后,在新的终端窗口中,进入darknet_ros文件夹,并运行以下命令来启动darknet_ros节点: ``` $ rosrun darknet_ros darknet_ros ``` 该命令将根据配置文件中的设置,开始目标检测和识别。 最后,你可以在另一个终端窗口中,使用以下命令来查看检测到的目标: ``` $ rostopic echo /darknet_ros/bounding_boxes ``` 该命令将以ROS通信的方式,显示darknet_ros检测到的目标的信息,例如目标位置、类别和置信度等。 这样,你就成功在Jetson Xavier上部署了darknet_ros,可以开始进行目标检测和识别任务了。请注意,部署过程中可能会遇到一些问题,需要根据具体情况进行调试和解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文锦渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值