这篇博客介绍的是如何在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 //退出当前虚拟环境

6conda 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