- 一 环境搭建
- 二 编译yolov5_ROS安装包
- 三 使用kienct相机实时检测
- 安装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
- 保存退出后执行;
source ~/.bashrc
- 创建一个虚拟环境;
conda create -n mypytorch python=3.8
- 激活虚拟环境;
conda activate mypytorch
- 在虚拟环境中安装pytorch1.8;
conda install pytorch torchvision cudatoolkit=10.2
- 编辑~/.bashrc 文件(home中ctrl+h打开隐藏文件);
alias python='/home/bai/anaconda3/envs/mypytorch/bin/python3.8'
- 保存后退出执行.
source ~/.bashrc
二 编译yolov5_ROS安装包
- 创建一个工作空间;
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace //将当前文件夹变成ROS工作空间的属性
- 编译工作空间;
cd ~/catkin_ws/ //编译时需要创建工作空间根目录
catkin_make
-
设置环境变量:
source devel/setup.bash
//方便系统找到编译生成的可执行文件 -
进入目录
cd ~/catkin_ws/src
; -
在此目录下下载(关注公众号:木鱼机器人,Yolov5_ros功能包可在此提取)
-
下载之后进入:
cd Yolov5_ros/yolov5
-
安装依赖;(不要用sudo命令!!!)
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
- 编译工作空间
cd ~/catkin_ws/
在worksapce下catkin_make
source devel/setup.sh
- 尝试运行;
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
运行成功
-
打开新终端
roscore
(先需要结束roslaunch yolov5_ros yolo_v5.launch) -
再打开新的终端:
roslaunch freenect_launch freenect.launch
- 找到launch文件
/home/ubuntu/catkin_ws/src/Yolov5_ros-master/yolov5_ros/yolov5_ros/launch
修改
为
修改参数
- 运行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
喜欢木子智的亲们可以关注微信公众号:木鱼机器人,公众号介绍目标跟踪、移动机器人目标跟随算法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)