1.Anaconda安装与配置
1.1安装与配置
Anaconda3的安装看下面的教程:
最新Anaconda3的安装配置及使用教程(详细过程)http://t.csdnimg.cn/yygXD,接上面文章下载后,配置环境变量的时候记得在原来你装的Python更下面添加路径:
我直接放到了最后,这样你默认的Python依然是你之前就装好的Python而不是Anaconda自带的Python,下载好后打开cmd,输入下面的代码查看版本。
conda --version
使用
conda info
可以看到一些具体的信息。
然后:
conda init
然后配置源:
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
1.2创建虚拟环境
下面代码创建了一个叫yolov5_p3.8的环境(一定要3.8及以上的版本),之后炼丹用的就是这个环境
conda create -n yolov5_p3.8 python=3.8
如下图:
会问你:
看到done就行了,上面创建后会有一个提示:
我们可以用这两句代码激活和退出环境
激活环境:
上图的第一个python是本地环境,版本是3.11.4,然后激活环境,再输入python,这时python的版本变成了3.7.12,这就是进入虚拟环境了。
退出环境:
conda deactivate
退出环境后,我输入python,可以看到版本回到了3.11.4.
1.3安装与导入pytorch
去官网:PyTorch
往下拉,按下图配置(版本大于等于1.8):
把最后一行代码复制到cmd:
然后是漫长的等待:
看到他就结束了:
然后输入:
conda list
就可以看到这个环境的包。
2.yolov5的下载与配置
yolov5源码下载地址:ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)
我选了yolov5s这个表轻量级版本,顺便把官方的预训练模型下载了:
在上面github的网页根据下图操作:
直接用这个版本的:
再往下翻:
展开后找到yolov5s.py点击下载:
下载往后放到yolov5的目录下即可:
然后开始为这个项目配置运行环境,就是上面我们使用anaconda创建的环境:
按照你安装的路径导入可执行文件,然后点击右侧加载环境:
然后我们导入一些运行需要的包,下面这行代码在requirement.txt文件里,我们直接在终端输入即可:
pip install -r requirements.txt
接下来可能遇到这个问题:
这个时候建银手动装这个包:
pip install gitpython -i https://pypi.tuna.tsinghua.edu.cn/simple/
然后再继续运行这句:
pip install -r requirements.txt
接下来可以测试一下装好了没,在pycharm终端输入:
python detect.py
顺利的话可以在这个目录看到结果:
经典的一幕(bus.jpg):
你可能会遇到一些问题,大概是关于git的,先看一看你有没有git,在cmd输入git --version
有一个这样的报错:ImportError: Bad git executable.
没装git就去装:Git 详细安装教程(详解 Git 安装过程的每一个步骤)
然后估计还有问题:
跟着接下来的步骤,找到anaconda3中我们创建的yolov5_p3.8的git中的下图所指文件:
我们进去编辑:
import os
os.environ['GIT_PYTHON_REFRESH'] = 'quiet'
3.训练自己的模型
3.1如何加入自己的训练集
在yolo的data文件下传一个文件夹叫my_data,里面放你分好的和标注好的训练集:
可以看到train下面放的两个文件夹:images和labels分别存储了对应的图片和标签,其他的也一样,当然mytest里面就是随便找的没标记的图片了。
数据集可以用coco的,也可以自己做或者搜一下,有个网站不错:Roboflow Universe: Open Source Computer Vision Community
3.2自己数据的yaml配置
yaml的编写可以参照源码自带的,在data目录下创建自己的数据集yaml:
我的长这样:
两种都可以,上面三个路径是相对于根目录而言,也就是train.py所在位置,换成自己的就行。
3.3train参数的设置
首先是这三个:
第一weights参数:填入我们下载的预训练模型,就在根目录下
第二个是这个模型的配置路径,这个源码中自带,路径如图
第三个就是自己的数据集yaml的路径
上面两个一个是轮次一个是表示几张图片进行一次权重更新,调小一些,毕竟没显卡,如果是没改模型的话,轮次改成30~40就差不多收敛了,结果0.78左右(最好的)。
这个可以改成True,方便意外打断继续训练,Ctrl+C打断。
这个处理多线程的,改成0就行,要不可能失败或卡
最后,开始漫长的炼丹:
python train.py
4.验证炼丹
下图就是炼丹后的最佳模型文件所在:
代开val.py文件,改参数,数据集yaml路径和刚才训练好的best.pt路径
然后:
python val.py
最后在下面这张图里就是最后验证后的结果,有一些衡量模型的图片,以及验证结果:
截张图,验证的结果之一:
5.实战
之前说过在data文件夹里我还创建了一个mydata文件,里面装了一些网上的随机的水果图片,有不在训练集种类范围的,我们做个实际的个识别验证:
打开detect.py,改下面这两个参数,weights就用我们刚训练好的best.pt,source就是我们用于测试的数据位置:
下面的data不用改,这里似乎用不到,只有训练和他相关()。
然后
python detect.py
然后在下图可以找到识别的结果:
比如:
参考:
在CPU上跑yolov5(详细步骤+适合入门)