一、服务器选择

本来实验室是有华为云的资源支持,但我觉得这一类的服务器封装性过高,没有那么自由,所以选择了mistgpu,使用体验和技术支持都不错,预装软件框架与要求较为贴合,图形化界面及jupyter支持完善。在这里插入图片描述
如果有想使用的同仁可以用下我的邀请链接:mistgpu.com/i/783956

二、环境配置(使用conda)

这类教程CSDN上很多,按其步骤即可,这里只对一些关键点进行说明。
 
参考连接:yolov5 环境配置
 

1.准备工作

以mistgpu提供的服务器为例,由于已经安装好CUDA 11.2和anaconda故在此先创建虚拟环境

conda create -n yolov5 python=3.8

//其他操作示例
conda activate yolov5 //打开虚拟环境
conda deacivate//关闭虚拟环境

而后换清华源,在虚拟环境下

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

conda config --set show_channel_urls yes

 

2.具体安装

以yolov5 4.0版本为例,源码下载好之后,可见文件夹下的requirements.txt,后续将使用pip来安装requirements.txt中提到的各类包,但有些是安装不下来的(torch与torchvision),因此先在requirements.txt中注释相应内容,由我们自己手动安装。
在这里插入图片描述
手动安装前,先给出我的一些关键配置以供参考(yolov5 4.0版本的)

yolov5 verison:4.0
python 3.8
CUDA 11.0.207
cudnn 8.1.0?
torch 1.7.1
torchvision.__version__ 0.8.2

接下来首先安装cudatoolkit,建议在这顺便了解一下cuda和cudatoolkit的关系

conda activate yolov5
conda install cudatoolkit=11.0
//然后是torch和torchvision
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html

关于torch/torchvision/cudatoolkit的对应关系,可以参照以下网址
torch/torchvision/cudatoolkit对应关系
在这里插入图片描述

然后是cudnn的安装,严格来说也不能叫安装,就是把cudnn的压缩包下载并解压后,将其中一些.h和.so文件复制进安装目录。

安装cudnn8.1
  
  官网下载压缩包
  把里面的include下一堆.h文件拷贝到你的anaconda安装目录下的\Library\include中;
  把bin下的一堆.dll文件拷贝到你的anaconda安装目录下的\Library\bin中;
  把lib\x64下一堆.lib文件拷贝到你的anaconda安装目录下的\Library\lib\x64中;

以上安装后用pip安装剩余的包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U -r requirements.txt

 

三、数据集准备

使用labelImg标注数据集,可直接选择yolo格式(txt而非xml),标好后着重说明一下yolo数据集的规范格式
假定数据集文件夹名称为garbage,该文件夹下有以下三个子文件夹
在这里插入图片描述
 
images放图片,labels放对应的txt,两者名称要对应好,ImageSets存放训练集与测试集的路径说明。
 
在这里插入图片描述
这些txt中存放了相应训练集、验证集等图片的绝对路径(就是images里放的那些),做好后注意garbage文件夹和要和yolov5源码文件夹同级,否则读不到数据集。相应的上步的绝对路径要正确填好。
至此数据集准备完毕。
 

四、训练前yolov5相关设置调整

  1. yolov5/data/文件夹下添加相应数据集的配置文件
     
    在这里插入图片描述
    内容如下:
//训练集与验证集描述文件
train: /home/mist/garbage/ImageSets/Main/train.txt
val: /home/mist/garbage/ImageSets/Main/val.txt
//类别数
#number of class
nc: 5
//类别名
#class names
names: ['paper', 'cups', 'bottle', 'orange', 'battery']
  1. 以选用yolov5_s模型为例,在models/yolov5s.yaml配置文件中更改类别数nc(此处我的数据集类别数为5)
    在这里插入图片描述
    3.准备预训练权重,此处我下载的是4.0版本的yolov5s.pt,放在/weights下(版本、模型要匹配
     在这里插入图片描述
    4.yolov5/train.py更改,主要是输入图片尺寸的更改和一些配置文件、权重的地址
    在这里插入图片描述

五、训练

python train.py #训练, 训练后会告诉你权重在哪

#测试
python3 detect.py --source file.jpg  # image      --weights ./runs/exp4/weights/best.pt
                          #file.mp4  video
                          #./dir  directory
                          #rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa   rtsp stream
                          #http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8  http stream
                          

以我自己的结果为例,基本符合要求~
在这里插入图片描述

六、下期预告(TX2端使用TensorRT实现yolov5)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐