darknet_ros部署yolov3
简单记录一下基于ros运行yolov3做交通标志(LISA数据集)识别的历程
1.创建工作空间
$ mkdir –p catkin_workspace/src
$ cd catkin_workspace/src
$ catkin_init_workspace
$ cd ..
$ catkin_make
2.克隆darknet_ros包
$ cd src/
$ git clone –recursive https://github.com/leggedrobotics/darknet_ros
克隆完成后,darknet_ros中有3个文件夹:darknet、darknet_ros和darknet_ros_msgs,如果darknet文件夹为空 首先删除darknet文件然后执行以下代码
git clone https://github.com/pjreddie/darknet.git
3.安装cuda和cudnn(有需要)和opencv
本人安装cuda10.2 cudnn7.6.5(兼容性有待考究)opencv可正常使用
安装参考博文:
https://blog.csdn.net/qq_43202953/article/details/107951031
因为本人使用Ubuntu20.04 有显卡驱动所以没有安装驱动部分 禁用操作也没有验证是否可行。
4.修改makfile文件
修改darknet_ros/darknet目录下的makfile文件
GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0
并修改:
NVCC=/usr/local/cuda-10.2/bin/nvcc/
COMMON+= -DGPU -I/usr/local/cuda-10.2/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-10./lib64 -lcuda -lcudart -lcublas -lcurand
5.编译文件
Ctrl + Alt + T 打开终端
cd catkin_workspace
catkin_make
6.修改darknet_ros/config/ros.yaml
本人采用mp4发布话题话题名为video_image
subscribers:
camera_reading:
topic: /video_image
queue_size: 1
7.换成自己的weight及cfg文件
在darknet_ros/yolo_network_config文件下分别由weights和cfg文件夹分别存放自己训练好的cfg及weight文件,权重文件来自我买的白勇老师的课(自己比较懒没有自己训练自己的权重文件 采用白勇老师检测4类交通标志权重)
weights: yolov3-voc-lisa_final.weights
cfg: yolov3-voc-lisa-test.cfg
8.修改/darknet_ros/config文件
区别于第6步修改ros.yaml文件 这步需要新建yaml文件
我的文件名: yolov3-voc-lisa.yaml
yolo_model:
config_file:
name: yolov3-voc-lisa-test.cfg
weight_file:
name: yolov3-voc-lisa_final.weights
threshold:
value: 0.3
detection_classes:
names:
- stop
- speedLimit
- pedestrainCrossing
- signalAhead
9.修改launch文件
修改darknet_ros/launch/darknet_ros.launch文件(修改成自己的发布mp4话题的ros.yaml文件和第7步的文件)
<!-- 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/yolov3-voc-lisa.yaml"/>
10.添加到环境变量
在bashrc文件最后添加自己的环境变量(可一劳永逸不用每次都source)
gedit ~/.bashrc
source /home/xxx/catkin_workspace/devel/setup.bash
11.编写发布话题文件
参考自同门师兄博客:
https://blog.csdn.net/weixin_49305813/article/details/123593833
12.上手实测一下
分别打开三个终端 分别运行以下命令
roscore
roslaunch darknet_ros darknet_ros.launch
rosrun my_image_transport imagepub
识别效果还凑合 FPS 8 帧左右 可能cuda加速没有成功
Original: https://blog.csdn.net/weixin_45503203/article/details/124233943
Author: 平潭岛的风
Title: darknet_ros部署yolov3
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704480/
转载文章受原作者版权保护。转载请注明原作者出处!