YOLOV5_ROS编译步骤

YOLOV5_ROS编译步骤

  • 一 环境搭建
  • 二 编译yolov5_ROS安装包
  • 三 使用kienct相机实时检测

一 环境搭建

  1. 安装Anaconda(先下载miniconda3-py38_4.10.3-Linux-x86_64.sh)
bash ~/Downloads/Anaconda3-2021.05-Linux-x86_64.sh

2.sudo gedit ~/.bashrc,将路径添加至文件最后;

export PATH=/home/bai/anaconda3/bin:$PATH
  1. 保存退出后执行;
source ~/.bashrc
  1. 创建一个虚拟环境;
conda create -n mypytorch python=3.8
  1. 激活虚拟环境;
conda activate mypytorch
  1. 在虚拟环境中安装pytorch1.8;
conda install pytorch torchvision cudatoolkit=10.2
  1. 编辑~/.bashrc 文件(home中ctrl+h打开隐藏文件);
alias python='/home/bai/anaconda3/envs/mypytorch/bin/python3.8'
  1. 保存后退出执行.
source ~/.bashrc

二 编译yolov5_ROS安装包

  1. 创建一个工作空间;
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace  //将当前文件夹变成ROS工作空间的属性
  1. 编译工作空间;
cd ~/catkin_ws/    //编译时需要创建工作空间根目录
catkin_make
  1. 设置环境变量:source devel/setup.bash //方便系统找到编译生成的可执行文件

  2. 进入目录cd ~/catkin_ws/src

  3. 在此目录下下载(关注公众号:木鱼机器人,Yolov5_ros功能包可在此提取)

  4. 下载之后进入:cd Yolov5_ros/yolov5

  5. 安装依赖;(不要用sudo命令!!!)

pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
  1. 编译工作空间cd ~/catkin_ws/
    在worksapce下catkin_make
source devel/setup.sh
  1. 尝试运行;
roslaunch yolov5_ros yolo_v5.launch

再次尝试运行节点roslaunch yolov5_ros yolo_v5.launch的时候出现以下报错
(找不到cv2模块)
YOLOV5_ROS编译步骤_第1张图片
原因:受ROS安装的影响,ROS安装之后会在python pyth中加入
‘/opt/ros/kinetic/lib/python2.7/dist-packages’
而为了解决此问题,可以在需要运行的python文件(即使用import cv2的python文件)中,添加 以下代码:import sys
sys.path.remove(‘/opt/ros/kinetic/lib/python2.7/dist-packages’)
解决方法:
1、找到/home/ubuntu/catkin_ws/src/Yolov5_ros-master/yolov5_ros/yolov5_ros/scripts/yolo_v5.py
文件

2、在import cv2前添加;

import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')

在增加该语句后原错误消失。
(以下是解决时网络上寻找的方法和原因)
根据https://blog.csdn.net/lievech/article/details/122299303(CSDN,该总结较为详细)的总结
sys.path是python的搜索模块的路径集,是一个list;可以在python环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后添加的路径就会自动消失了。
YOLOV5_ROS编译步骤_第2张图片
根据教程以及调试报错最终修改程序如下:

YOLOV5_ROS编译步骤_第3张图片
最后报错找不到模块rospkg;
YOLOV5_ROS编译步骤_第4张图片
使用pip install rospkg解决问题,
运行roslaunch yolov5_ros yolo_v5.launch
YOLOV5_ROS编译步骤_第5张图片
运行成功

三 使用kienct相机实时检测

  1. 打开新终端roscore(先需要结束roslaunch yolov5_ros yolo_v5.launch)

  2. 再打开新的终端:

roslaunch freenect_launch freenect.launch
  1. 找到launch文件/home/ubuntu/catkin_ws/src/Yolov5_ros-master/yolov5_ros/yolov5_ros/launch
    YOLOV5_ROS编译步骤_第6张图片
    修改

    修改参数
4. catkin_make
  1. 运行yolov5的节点 roslaunch yolov5_ros yolo_v5.launch

再次报错:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
YOLOV5_ROS编译步骤_第7张图片
在这里插入图片描述
在home位置下搜索upsampling.py
找到下面此函数,修改成
def forward(self, input: Tensor) -> Tensor:
return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)

注意文件夹的位置是/home/ubuntu/miniconda3/envs/mypytorch/lib/python3.8/site-packages/torch/nn/modules/upsampling.py
YOLOV5_ROS编译步骤_第8张图片

YOLOV5_ROS编译步骤_第9张图片
再次catkin_make以及 source devel/setup.bash

运行yolov5的节点 roslaunch yolov5_ros yolo_v5.launch
YOLOV5_ROS编译步骤_第10张图片
喜欢木子智的亲们可以关注微信公众号:木鱼机器人,公众号介绍目标跟踪、移动机器人目标跟随算法。
YOLOV5_ROS编译步骤_第11张图片

你可能感兴趣的:(YOLOv5,目标检测,ubuntu,anaconda)