YOLOV5

YOLOV5,第1张

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模块)

原因:受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环境后添加的路径就会自动消失了。

根据教程以及调试报错最终修改程序如下:


最后报错找不到模块rospkg;

使用pip install rospkg解决问题,
运行roslaunch yolov5_ros yolo_v5.launch

运行成功

三 使用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

    修改

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

再次报错:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘


在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


再次catkin_make以及 source devel/setup.bash

运行yolov5的节点 roslaunch yolov5_ros yolo_v5.launch

喜欢木子智的亲们可以关注微信公众号:木鱼机器人,公众号介绍目标跟踪、移动机器人目标跟随算法。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/943136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存