赞
踩
本篇blog将从yolo v7的部署、数据集的制作、数据的训练、结果的评估和整个过程的雷坑这几个方面记录自己入门Yolov7的过程,同时整理成一篇一文搞定的保姆级入门教程。
* 注意:该部分建立在已安装好Anaconda、Pycharm的基础之上
该部分参考自站内博客YOLOv7(目标检测)入门教程详解—环境安装
安装前首先需要查看自己显卡的属性来确定最高支持的cuda安装版本。步骤如下:
* 注意:这里建议下载所能支持的最高版本向下的几个版本来确保后续训练的正常进行。例如我下载的CUDA版本为11.0(这是因为其他依赖环境的版本不一定能及时与CUDA版本保持同步更新)
cuda安装官网如下:CUDA安装
由于cuda官网服务器在外网,墙内访问速度极慢,因此鸣谢博主@cxc超小超分享的cuda10.0-11.1的百度网盘资源,具体网盘链接见其站内博客:CUDA网盘资源分享
建议下载网盘中/官网内的exe(local)版本,下载好对应版本的安装程序(.exe)后具体的安装步骤如下:
下载官网:cudnn安装官网
为了能够正常运行项目所需代码,我们需要使用命令行cmd+Anaconda创建对应的虚拟环境。这一项目结构是Pycharm的特色,能够针对性地创造代码运行环境,而不是所有包都扔到一起,所有代码都在一个大环境下运行。
此处鸣谢站内博主@HDD615,此处虚拟环境的创建流程参考自其的优秀站内博文Anaconda创建虚拟环境
P.S. 若已有虚拟环境创建经验可跳过该部分。
虚拟环境的创建通过在Anaconda Prompt执行一系列Conda指令实现。
先来认识一下Anaconda Prompt,这个东东相当于已激活base环境的cmd,用起来比cmd方便一丢丢。可以通过如下流程迅速找到:
下面是具体的操作:
conda create -n env_name python=3.x.x
解释如下:
(1) env_name
这是虚拟环境的名称,可以随意修改成自己想要的名字
(2) 3.x.x
这里是该环境将要安装的python的版本号,按需修改即可
conda env list
效果如下:
这里星号*停留的地方代表着当前已激活的虚拟环境(默认为base,即基本环境,不建立虚拟环境时你pip安装的所有库都是装到这一环境中的)。
nvcc -V
安装想要的pytorch
进入Pytorch官网找到想要版本提供的下载代码(即复制粘贴Run this command中提供的代码)
激活环境
activate env_name
同上,此处的env_name是你想要激活的虚拟环境名称,例如我的pytorch-cuda环境下安装了pytorch以及一系列yolov7项目所依赖的库,那么可以如下激活该环境:
activate pytorch-cuda
在Pycharm中导入建立好的虚拟环境进行编译的步骤如下:
虚拟环境刚建立时是一无所有的,所以库的补充很重要。向一个虚拟环境中安装需要的库就像把大象装进冰箱一样步骤非常直观:
以在名称为"pytorch-cuda"的虚拟环境中安装numpy为例,则需要在cmd/Anaconda Prompt中输入的指令为:
conda activate pytorch-cuda
pip install numpy
具体来说,一般会直接在虚拟环境下跑目标代码然后根据报错提示来针对性地补充所需要的库。
该部分参考自站内博客YOLOv7(目标检测)入门教程详解—检测,推理,训练
Yolo v7框架代码开源在GitHub上,且使用非常方便。
下载链接如下:Yolov7源码下载地址
进入之后点击 Code->Download ZIP
随后将下载好的压缩包解压备用即可。
Yolo v7是一款支持迁移学习的网络框架,这对于使用这样具有庞大网络结构和参数量的网络来说帮助很大。
因此我们还需要在官方项目中下载预训练参数(yolov7_training.pt)进行迁移学习以及测试参数(yolov7.pt)进行调试(即看看这个项目是否部署成功。
最后在yolov7源码文件所在文件夹新建一个名为 weights 的文件夹并将上述的两个.pt(即参数文件)存放进去。
上面讲述虚拟环境相关的知识时,提到了可以按照报错信息进行针对式的补充,这个效果虽慢但十分有效。而为了减小工作量,yolov7的源码文件中有一个叫做 requirements.txt 的文本文件,其中包括了一些必要依赖库的安装信息。
因此,可以进行如下操作进行初步安装(因为python版本的问题还可能会造成一些报错)
# 这里的T改成自己yolov7所在的盘名称
T:
# 这里cd后的内容复制粘贴自己文件夹的完整路径名称即可
cd T:\PyProjects\Garbage_Sorting
# pytorch-cuda改成自己对应的虚拟环境名称
activate pytorch-cuda
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Yolov7的文件夹里自带了一部分图片,可以用下载好的 test.pt 权重进行测试,以确保自己的Yolov7可以运行。
具体操作如下:
activate pytorch-cuda
python detect.py --weights weights/yolov7.pt --source inference/images
要实际使用Yolo v7,通常需要自己制作好更适合yolo宝宝的数据集。接下来通过介绍Yolov7数据格式、制作方式、数据增强方式、存放路径几个部分带大家熟悉数据集的制作和增强流程
Labelimg是支持可视化数据标注的非常非常好用的目标检测数据标注工具。同时其安装和使用均可直接通过命令行实现,故仅以此作为本篇教程的标注工具讲解对象(当然我也只会这个 )。
这篇文章是我在完成了第一个基于Yolov7的独立个人项目——垃圾分类 Garbage Sorting的基础上完成的。也正是因为第一次使用Yolov7踩了很多坑,才下定决心归纳整理和撰写这篇文章,项目开源地址如下:
Garbage_Sorting_via_CheasonY
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。