操作系统:Ubuntu20.04
ROS版本:neotic
CUDA版本:12.2
闲来无事想用 yolov5 实现交通信号灯的检测,记录下过程,效果如下:
1. 安装 Anaconda
1.1 安装Anaconda
Anaconda 下载地址,打开的界面如下:
点击 Download 按钮下载,下载完成后打开终端(打开终端的快捷键为:ctrl + alt + t),切换到保存 Anaconda 的目录,输入如下指令,文件名或许不一样,输入前几个字母(Linux大小写敏感)然后按 tab 键可自动补全。
bash Anaconda3-2024.02-1-Linux-x86_64.sh
如下图所示,然后按 ENTER 回车键
出现如下界面,继续按 ENTER 回车键
出现如下界面,可以一直按 ENTER 回车键
直到出现如下界面,这里询问你是否同意软件许可,输入 yes 后按 ENTER 回车键。
出现如下界面询问软件安装位置,默认安装路径为红色框中的路径,新手不建议更改,所以继续按 ENTER 回车键。大神随意,我选择默认位置,回车后等待软件安装完成。
开始安装
安装完成后会出现询问是否启动默认环境的选项,输入 yes 后按 ENTER 回车键继续
OK,安装完成
关闭当前终端,重新打开终端(ctrl + alt + t),可看到效果,前面的(base)表示默认环境
总结一下,Anaconda 的安装很简单,一路回车,一路 yes,就能到达目的地
1.2 Anaconda加速
在终端中输入如下命令,打开 conda 的配置文件
sudo gedit ~/.condarc
在打开的文本文件中,输入以下内容,目的是换源,这样在创建 conda 虚拟环境时,下载速度非常快
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
效果图如下,ctrl + s 保存后关闭
2.创建 yolov5 运行环境
2.1.环境创建
终端输入如下命令,然后按 ENTER 回车键
# yolov5 为环境名称
# 指定python的版本为3.8
conda create -n yolov5 python=3.8
出现如下界面,输入 y 后按 ENTER 回车键
安装过程如下:
安装完成的效果图如下:
2.2.安装 pytorch
终端输入如下指令,进入创建好的 yolov5 环境
# 最后的yolov5是环境名称
conda activate yolov5
回车之后,可以看到前面的 base 变成了 yolov5,接下来的操作全是在创建的 yolov5 环境中进行
在安装 pytorch 前,先给后面的pip安装加个速,在终端输入如下命令:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
终端输入 nvidia-smi 查看自己的 CUDA 版本,比如我的是 12.2,同时可以查看自己GPU的显存,比如我的是6GB
然后在 pytorch 官网 查找对应的版本
尽可能选择与你 CUDA 一致的版本,没有12.2 我选择 CUDA 12.1,输入如下命令:
conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia
出现如下界面,输入 y 后按 ENTER 回车键
安装ing持续等待,有代理或梯子速度很快,反之时间长短因人而异
OK,安装完成
到这里 yolov5 的环境已备好,继续
3.运行yolov5
3.1.源码下载
先给 yolov5 创建文件夹,然后下载源码,签出最新版本
mkdir workspace && cd workspace
git clone https://github.com/ultralytics/yolov5.git
cd yolov5/
# 使用最新版本 7.0,带语义分割
git checkout v7.0
然后安装 yolov5 的依赖,使用如下命令,有代理或梯子速度很快,反之时间长短因人而异
pip install -r requirements.txt
安装完成
3.2.模型下载
在 yolov5 目录下新建目录 weights,用于存放下载的模型文件,模型下载地址为:https://github.com/ultralytics/yolov5/releases,注意选择 v7.0 的模型文件,我们下载两个:yolov5s.pt(检测模型)和 yolov5s-seg.pt(检测+分割模型),下载完成后放在刚才创建的 weights 目录下
3.3.目标检测
开始运行检测模型,在终端中输入如下命令:
# 第一个参数,weights 表示使用的模型文件
# 第二个参数,source 表示需要检测的图片
# 新手只用输入这两个参数就可以了
python3.8 detect.py --weights weights/yolov5s.pt --source data/images/
运行成功,结果保存路径:runs/detect/exp,第一个红色框表示模型推理运行在GPU上,去看看效果,完美!
3.4.目标分割
开始运行分割模型,在终端中输入如下命令:
# 第一个参数,weights 表示使用的模型文件
# 第二个参数,source 表示需要检测和分割的图片
# 新手只用输入这两个参数就可以了
python3.8 segment/predict.py --weights weights/yolov5s-seg.pt --source data/images/
运行成功,结果保存路径:runs/predict-seg/exp,第一个红色框表示模型推理运行在GPU上,去看看效果,完美!
关注作者,回复 yolov5 获取完整代码和训练数据集
文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。