由于内容较长,将分为两个部分来说明,本文讲解yolov5的部署与训练。
1.YOLOv5部署
云端部署(训练)
服务器创建
如果自己的显卡算力不是很好的,或者是核显电脑,可以租用算力,价格还行一块钱左右就可以租一小时了。
网站地址:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
登录网站,在算法社区搜索yolov5,选择一个项目进行创建。(算法社区里面有很多的算法模型,例如AI语言、图片清晰度增强等等,感兴趣的可以自己研究)
我用的版本:ultralytics/yolov5/v5: 官方YOLOv5项目 最新稳定版本 - CG (codewithgpu.com)
直接点击创建即可。 由于我们是基于别人项目创建的,所以创建好的服务器已经自带了python环境和yolov5项目,直接上传数据进行训练就好了。
选择显卡,注意cuda版本要求(11.3以上)
训练集上传
训练集就是各种滑块的图片,使用labelimg进行数据标准,把阴影地方标准为target。
在创建完成后,在后台管理中有两个快捷工具,我们点第二个。
绑定阿里云,然后就可以下载数据到服务器了,过程就是从我们自己的电脑上传文件到阿里云中,然后在AotoPanel工具中通过阿里云将我们上传的文件下载到我们租好的服务器上。
模型训练
打开JupyterLab工具,进入到服务器的命令窗口。在datasets目录下新建一个我们自己的数据集文件夹,把下载好的images和label放入到这个文件夹中。
因为训练文件的yaml文件指定的是coco128.yaml,我们要训练的自己的模型需要修改这个yaml文件,或者也可以自己按照他的格式重新写一个yaml文件,然后在tran.py中指定这个yaml文件。
我选择的是修改yaml文件,修改数据集的路径,并注释掉之前的类别,我们只训练识别一个类target。
文件修改完成后,就可以直接训练模型了。打开终端输入cd yolov5-7.0,然后输入python train.py,就可以训练了。训练100个epoch
预测推理
训练好模型后,我们再上传几张新的滑块图片去进行预测。将测试图片上传到yolov5-7.0/data/images/里面
更改权重模型,修改为我们自己训练好的模型。训练结果在runs/tran中,每一个exp就是每一次训练的结果,我们选择最新的一次,选择里面的weights/best.pt。best就是本次训练中最好的一次模型,last就是最后一次epoch得出的模型。
打开detect.py修改权重模型。
在命令窗口中输入python detect.py,然后到runs/detect中查看结果。 可以看到我们的模型已经成功识别出阴影块。
模型下载
到此我们的云端训练就已经完成了,我们需要把训练好的权重模型传回本地电脑。直接右键下载就行,它会通过浏览器自动下载。
本地部署
之前说的是云端训练模型,主要是考虑了电脑性能不好的小伙伴。也可以直接在本地进行训练,流程和上面差不多的。这里就不再说了。
在拿到云端训练好的权重模型后,我们需要部署本地的yolov5环境,使用这个权重模型去进行预测。
yolov5下载
参考其他大佬的教程即可
Yolov5 安装详细教程及目标检测和识别_yolo5安装教程-CSDN博客
pytorch安装
我现在使用的是AMD核显的电脑,和我情况差不多的小伙伴可以看看这个使用集成显卡/集显(AMD)或者GPU安装运行pytorch?步骤解析~_amd显卡怎么用pytorch-CSDN博客
本地运行测试
导入我们训练好的模型,进行测试看看是否有效
至此yolov5的部署已经模型的训练都已经完成,在下篇文章中我们将结合yolov5来实现滑块的破解。