软硬件环境
Win10+anaconda(python3.7)+gtx 1660ti+cuda 10.1+pytorch 1.7+YOLOv5
介绍:
2020年6月25日,Ultralytics发布了YOLOV5 的第一个正式版本,其性能与YOLO V4不相伯仲,同样也是现今最先进的对象检测技术,并在推理速度上是目前最强,yolov5按大小分为四个模型yolov5s、yolov5m、yolov5l、yolov5x。
写这篇教程时的最新版yolov5是2021年1月5日更新的。
安装pytorch:
首先保证自己电脑已经安装了anaconda这里推荐安装最新版,下载地址:
anaconda自带python,不用再另外下载python。
安装pytorch需要登录网站https://pytorch.org/,
将Run this Command: 的内容复制在windos控制台内安装。
因为yolov5和pytorch更新很快导致windows版本bug较多,比如我用pytorch1.71+yolov5(4.0)出现了摄像头检测正常不能正确检测视频和图片等问题,为了不浪费时间,这里推荐Windows用户使用我用的torch1.70+cuda10.1.
pip安装口令如下:
pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
下载yolov5:
Yolov5的官方下载地址:https://github.com/ultralytics/yolov5
点击绿色标志下载yolov5最新版的压缩包,解压完了如下:
该文件为yolov5的前置需求包。
把第一句口令复制下来,然后将win10控制台cd到该文件位置,粘贴回车即可安装所有前置包。
因为网络原因推荐安装后使用pip list口令对比TXT中的需求检查一遍,没安装上的重新安装,保证必须的基础包都有。
测试:
将官网下载的yolov5使用pycharm打开,直接运行其中的测试文件detect.py。
此时程序会自动下载yolov5的权重模型s版,也就是最轻量版,因为国内网路原因下载速度极其慢,如果不想等待可以去官网下载,然后丢根目录中。
下完完毕后会使用官方案例测试:
测试结果:
下载的yolov5s.pt模型中的权重是用coco数据集训练得来的,可以检测80种不同的物体。
训练模型:
训练模型首先得需要收集数据集,可以自己用labelImg等工具挨个标注也可以去下载现成的,这里推荐免费公开数据集网站https://public.roboflow.com/。
下载数据集:
这里选择下载适合yolov5+pytorch版本的:
推荐解压后并将文件放于yolov5官方文件的同级目录或者里面。
将data文件用txt形式打开并且将红框中的内容修改正确的内容。
因为yolov5s可以测试80种物体,但是我们要训练的口罩检测模型只检测戴口罩和不带口罩,所以nc改为2.
使用口令进行模型训练:python train.py --img 640 --batch 16 --epochs 300 --data ../mask1.0/data.yaml --cfg models/yolov5s.yaml --weights ''
--batch后的参数尽可能的大,直到gpu内存不允许为止,该参数为每批训练图片个数。
--epochs 为训练轮数。
--img为指定图片大小。
--cfg 为模型配置文件位置
--data为训练数据集配置文件位置
--weights为模型权重配置,后加‘’为初始化参数,不写为使用模型自带的参数。
等待训练完成即可生成权重文件。
测试口令:python detect.py --weight runs\train\exp1\weights/best.pt --source ../mask1.0/test/images
--weight指定权重文件。
--source指定测试文件地址,可以是图片地址,视频地址等,也可以是文件夹,当参数为0时是摄像头。
成功