yolov7从环境配置到训练自己的数据集AlexeyAB版本

yolov7从环境配置到训练自己的数据集AlexeyAB版本

前言

前几天美团发布yolov6,已经让人学不过来了,今天又看到yolov7发布,并且有AB大佬站台!本文将使用yolov7的过程记录下来,尽量从环境配置、测试到训练全部过一遍。
电脑基本配置:
1.Ubuntu20.04
2.cuda+cudnn
3.pycharm
4.GPU==3060ti

一、环境配置

相较于yolov5与yolov6的代码,yolov7中没有requirements.txt文件,也没有给出具体的环境配置要求,因此这一部分基本摸着石头过河吧 新版本已经有了requirements.txt。本实验中继续使用pycharm进行配置。
1.新建yolov7的虚拟环境
点击pycharm右下角添加yolov7环境
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第1张图片
2.安装pytorch
建议先自行安装pytorch,因为直接按照requirements.txt进行安装的话,有可能会安装cpu版本的pytorch。进入pytorch官网:https://pytorch.org/,根据自己的电脑配置安装pytorch,主要是对应自己的cuda版本。在pycharm中点击终端,输入安装指令。
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第2张图片
3.下载权重
这一步开始就是一次次尝试,缺啥装啥!
在github上就能够下载
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第3张图片

我在CSDN上也有分享:Yolov7权重文件
下载后置于yolov7文件夹下。
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第4张图片
4.补充环境
修改requirements.txt文件,因为前面安装了pytorch,可以将torch和torchvision注释掉
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第5张图片

下一步就直接在终端输入:

pip install -r requirements.txt

然后在pycharm的yolov7环境下,开始运行detect.py。
1)缺少opencv
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第6张图片
pycharm终端输入:

pip install opencv-python

yolov7从环境配置到训练自己的数据集AlexeyAB版本_第7张图片
继续运行detect.py
2):ModuleNotFoundError: No module named ‘pandas’
pycharm终端类似上面一样输入:

pip install pandas

3):ModuleNotFoundError: No module named ‘tqdm’
pycharm终端类似上面一样输入:

pip install tqdm

4)ModuleNotFoundError: No module named ‘yaml’
pycharm终端类似上面一样输入:

pip install pyyaml

5)ModuleNotFoundError: No module named ‘matplotlib’
pycharm终端类似上面一样输入:

pip install matplotlib

6)ModuleNotFoundError: No module named ‘seaborn’

pip install seaborn

至此我的环境配置可以满足yolov7的运行要求
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第8张图片
在yolov7/runs/detect文件下将看到检测结果。到这一步,代表环境配置结束!

二、制作自己的数据集

yolov7依旧采用labelImg进行数据标注工作,labelImg下载地址:labelImg
下载解压后,进入labelImg文件夹中,开启终端,依次输入

sudo apt-get install pyqt5-dev-tools
sudo pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
python3 labelImg.py

安装后进行数据标注即可,注意选择yolo格式。
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第9张图片

三、训练自己的数据集

1.划分数据
1)这里我是手动划分,没有写脚本。在yolov7/data文件夹下新建images和labels文件夹。
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第10张图片
2)在images和labels文件夹下,分别新建三个文件夹(train、val、test)
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第11张图片
在文件夹中对应手动放入图像和标签数据。
2.训练数据导入配置
在yolov7/data文件夹下新建dataset.yaml文件,并写入

train: pathto_you/data/images/train # train images
val: pathto_you/data/images/val # val images
test: pathto_you/data/images/test # test images (optional)

# Classes
nc: 1  # number of classes
names: ['QR']  # class names

将路径(pathto_you)改为自己的数据集路径,类别也是一样修改为自己的。
3.修改train.py
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第12张图片
最主要是修改:
1)–weights:修改为yolov7.pt,也可以换为其他的预训练权重
2)–data:修改为上面的dataset.yaml
3)–epochs:酌情修改
4)–batch_size:数值越大,占用显卡内存越大
修改完成就可以开始训练了
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第13张图片
和yolov5一样,在训练过程中,会计算当前的精度。训练时,会在yolov7文件夹下出现runs文件夹,训练结果就存在该文件夹下
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第14张图片
与yolov5只保留最好和最后两个权重不同,yolov7会保留多个权重文件。

四、测试自己的权重

1.修改detect.py

yolov7从环境配置到训练自己的数据集AlexeyAB版本_第15张图片
将–weights指定为自己训练好的权重即可。
2.测试图像
将测试图像放入inference/images文件夹下,运行detect.py即可
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第16张图片
测试结果在yolov7/runs/detect下
到此,yolov7训练自己的数据集记录完成,后续有其他的收获将继续补充。

五、补充

1.yolov7继续接着训练
–resume这一行将defaul填入之前训练的权重,实现继续训练
yolov7从环境配置到训练自己的数据集AlexeyAB版本_第17张图片

附带资源

1.本次实验的项目,包含训练好的模型,二维码检测数据集等—yolov7训练自己的数据集+教程+二维码检测

你可能感兴趣的:(yolo系列算法学习,python,开发语言,yolov7,训练,自己的数据集)