许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Jetson Xavier NX实现darknet_ros(ROS版Darknet)

Jetson Xavier NX实现darknet_ros(ROS版Darknet)

阅读数 3
点赞 0
article_banner

一、下载 darknet_ros 与 darknet?

1.darknet_ros源码包下载

git clone https://github.com/leggedrobotics/darknet_ros

可以进入网站下载。下载后进行解压。

   因为darknet_ros调用了darknet的源码,但下载后这个文件夹是空的,需要自行下载darknet的源码。并将其内容复制darknet文件夹中。
在这里插入图片描述

   这里主要用到两种版本:

https://github.com/pjreddie/darknet
https://github.com/AlexeyAB/darknet

pjreddie/darkenet 支持yolov3和yolov2 ,AlexeyAB/darknet 是在其基础上进行修改进而支持yolov4。

   两个版本依赖的opencv版本不同,由于本人opencv版本是opencv4.1.1,所用使用前者

二、darknet 编译,GPU和CUDA加速, 训练

1.darknet 编译

进入dakrnet_ros/dakrnet,编译取决于Makefile文件。最简单的办法就是不做任何增行编译。
在这里插入图片描述

cd darkent_ros/darknet
make

2.GPU和CUDA加速

参考文章:darknet_ros加速–使用GPU和CUDA

   根据该文对Makefile进行修改,本系统装了opencv4,所以将45、46行中改为opencv4,对于其他版本根据实际进行修改。修改后如下(1~47):

GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_72,code=[sm_52,compute_72]
#      -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?
ARCH= -gencode arch=compute_72,code=compute_72
# This is what I use, uncomment if you know your arch and want to specify
# ARCH= -gencode arch=compute_52,code=compute_52

VPATH=./src/:./examples
SLIB=libdarknet.so
ALIB=libdarknet.a
EXEC=darknet
OBJDIR=./obj/

CC=gcc
CPP=g++
NVCC=/usr/local/cuda-10.2/bin/nvcc
AR=ar
ARFLAGS=rcs
OPTS=-Ofast
LDFLAGS= -lm -pthread 
COMMON= -Iinclude/ -Isrc/
CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC

ifeq ($(OPENMP), 1) 
CFLAGS+= -fopenmp
endif

ifeq ($(DEBUG), 1) 
OPTS=-O0 -g
endif

CFLAGS+=$(OPTS)

ifeq ($(OPENCV), 1) 
COMMON+= -DOPENCV
CFLAGS+= -DOPENCV
LDFLAGS+= `pkg-config --libs opencv4` -lstdc++
COMMON+= `pkg-config --cflags opencv4` 
endif

3.训练

参考官网 darknet

三、编译darkenet_ros

1.catkin_make

mkird darknet_ws
cd darknet_ws
mkird src

建立一个darknet_ws文件夹,把darknet_ros放在src目录下,进行编译

catkin_make -DCMAKE_BUILD_TYPE=Release

在这里插入图片描述

2.添加环境变量

sudo vim .bashrc

添加 source ~/darknet_ws/devel/setup.bash

3.修改launch文件

cd darknet_ws/src/darknet_ros/darknet_ros/launch

打开 darknet_ros.launch:

<?xml version="1.0" encoding="utf-8"?>

<launch>
  <!-- Console launch prefix -->
  <arg name="launch_prefix" default=""/>
  <arg name="image" default="/camera/rgb/image_raw" />

  <!-- Config and weights folder. -->
  <arg name="yolo_weights_path"          default="$(find darknet_ros)/yolo_network_config/weights"/>
  <arg name="yolo_config_path"           default="$(find darknet_ros)/yolo_network_config/cfg"/>

  <!-- ROS and network parameter files -->
  <arg name="ros_param_file"             default="$(find darknet_ros)/config/ros.yaml"/>
  <arg name="network_param_file"         default="$(find darknet_ros)/config/yolov2-tiny.yaml"/>

1.“ image "参数用于订阅相机,修改为"usb_cam/image_raw”

arg name ="image" default="usb_cam/image_raw"

2."yolo_weights_path"和"yolo_config_path"是确定 yoloweightcfg的路径,不用更改。不过记得将自己的权重和cfg放置到相应的文件夹。

3."network_param_file"默认是yolov2-tiny.yaml,在config文件夹下,可以复制一份改为自己的模型名称。

yolo_model:

  config_file:
    name: new.cfg                                       #用于训练的cfg
  weight_file:
    name: new.weights								    #训练出来的weights
  threshold:										    #用于ROS识别的阈值
    value: 0.3
  detection_classes:
    names:
      - target class

4运行

roslaunch darknet_ros darknet_ros.launch
roslaunch usb_cam usb_cam-test.launch

在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空