这篇博客介绍的是如何在Ubuntu系统下配置YOLOV5算法环境。并且运行一个融合YOLOV5的ORB-SLAM2开源代码。
0.前言:
安装的软件主要是anaconda,然后anaconda可以帮我们安装python、pytorch这些东西。我的ubuntu版本:ubuntu20.04.5LTS。
安装的anaconda类型:Anaconda3-2022.05
安装的python类型:python3.8.15,(原来系统自带的python是
3.9.12)
安装的pytorch版本:
1.13.0+cu117′
一、安装anaconda
1.先去anaconda官网下载安装包,注意文件后缀是你的系统架构,比如x86、amd64或者aarch64,可以通过下面命令查看。
uname -a
像我的系统是这样的:
官网链接如下:
anaconda官网
2.选择合适的文件,下载好后,进入下载目录,输入以下代码:
bash Anaconda3-2022.05-Linux-aarch64.sh
随后进行安装,会看到以下画面:
3.一直按ENTER继续,浏览许可证,审查完许可后,将要求您批准许可条款:
Do you approve the license terms” />键入yes接受许可,系统将提示您选择安装位置:
默认位置对于我们大多数用户来说已经就可以,按ENTER确认安装位置。
4.安装可能需要一些时间,完成后,脚本将询问您是否要运行conda init,键入yes。
Installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init” />5.这会将命令行工具conda添加到系统的PATH中。要激活Anaconda安装,您可以关闭并重新打开终端,或者通过键入以下命令来将新的PATH环境变量加载到当前的shell会话中:
source ~/.bashrc
6.这样就是成功了安装了Anaconda。
二、创建YOLOV5环境
1.我们创建一个python3.8的名称为yolo的环境。打开终端,输入
conda create -n yolo python=3.8
回车,输入y确定,等待创建成功即可。
2.创建完成之后,输入命令激活环境:
conda activate yolo
3.下载YOLOV5源码
mirrors / ultralytics / yolov5 · GitCode (这个是被人提供的,里面不包含预训练模型yolov5s.pt文件,但不打紧,后面运行代码的时候会自动生成)
sticker_阮 / YOLOV5源码 · GitCode (这个我的,里面是全的),如下所示
4.修改相应文件
在下载好的yolov5-master文件夹下找到requirements.txt文件,修改成以下形式:
5.随后在yolov5-master文件夹下打开终端,并输入以下命令,来添加依赖:
pip3 install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
可能会出现的错误:
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
daal4py 2021.5.0 requires daal==2021.4.0, which is not installed.
conda-repo-cli 1.0.4 requires pathlib, which is not installed.
anaconda-project 0.10.2 requires ruamel-yaml, which is not installed.
numba 0.55.1 requires numpy=1.18, but you have numpy 1.23.5 which is incompatible.
解决方法:按照错误提示,安装相应版本的包
pip install daal==2021.4.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pathlib
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ruamel-yaml
依赖安装好后如下:
至此,yolo所需的环境配置完成。
参考链接:
各种错误_steven_bingo的博客-CSDN博客_daal==2021.4.0
ERROR: pip‘s dependency resolver does not currently take into account all the packages 解决办法分享_MI_farmer的博客-CSDN博客_error: pip’s dependency resolver does not currentl
6.测试
(1).先进入创建好的yolo环境
conda activate yolo
在yolov5-master文件下打开终端,并输入以下命令:
python detect.py –source data/images/zidane.jpg
这时候,最后的效果会保存在runs/detect/下
(在这个时候,如果之前下的是别人的代码,会生成run文件夹)
如果出现以下问题:
AttributeError: ‘Upsample’ object has no attribute ‘recompute_scale_factor’
参考:
一步真实解决AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘_蓝胖胖▸的博客-CSDN博客
(2)第二个测试是利用VS code跑的
首先找到detect.py文件,修改以下代码中的source:改成0则为调用电脑自带的摄像头。
然后终端进入我们创建的yolo环境,输入
python detect.py
即可运行。conda的一些指令:
(1)conda activate yolo //激活(进入)yolo虚拟环境中
或 source activate yolo
(2)conda list //查看在虚拟环境中安装的包
(3)python //查看虚拟环境中python 的版本
import torch
torch._version_//查看torch版本
ctrl+D退出python
(4)如果安装了独显
nvidia-smi //可查看是否安装成功
或看
python
>>>import torch
>>>torch.cuda.is_available //查看是否为true
(5)conda deactivate //退出当前虚拟环境
(6)conda env list//查看创建的虚拟环境有哪些
7.接下来将YOLOV5代码加入到ORB-SLAM2中
源代码和相关数据集可见以下链接:
sticker_阮 / YOLOv5融合orb-SLAM2 · GitCode
如果按照我之前的环境配置,那么运行这个代码就比较简单了。下载我的源代码,还需要下载一个associate.py来处理rgb.txt和depth.txt,生成配对的文件associate.txt,输入以下指令:
python associate.py rgb.txt depth.txt > associate.txt
如果出现以下报错
Traceback (most recent call last):
File “associate.py”, line 118, in
matches = associate(first_list, second_list,float(args.offset),float(args.max_difference))
File “associate.py”, line 97, in associate
first_keys.remove(a)
AttributeError: ‘dict_keys’ object has no attribute ‘remove’由于Python2和python3语法的差别,需要将associate.py中第86行87行的
first_keys = first_list.keys()second_keys = second_list.keys()
修改为:
first_keys = list(first_list.keys())second_keys = list(second_list.keys())
最后,打开orbslam_addsemantic-main文件夹终端,输入以下命令即可:
在终端输入的指令:
加YOLOV5算法:
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /home/rxz/rgbd_dataset_freiburg3_walking_xyz /home/rxz/rgbd_dataset_freiburg3_walking_xyz/associate.txt detect_result/TUM_f3xyz_yolov5m/detect_result/
纯ORB-SLAM2算法:
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /home/rxz/rgbd_dataset_freiburg3_walking_xyz /home/rxz/rgbd_dataset_freiburg3_walking_xyz/associate.txt
参考链接:
SLAM TUM数据集associate.py使用及错误解决_月逐丶的博客-CSDN博客
Ubuntu20.04部署yolov5目标检测算法,无人车/无人机应用_振华OPPO的博客-CSDN博客_yolo可以部署到无人机上么
https://blog.csdn.net/weixin_51745352/article/details/124646456