一、YOLOv5环境搭配
这个不过多赘述,下载Anaconda这些在csdn上一搜就有很多教程,大家自己去配一下。
二、YOLOv5源码下载
YOLOv5是开源的,所以可以从Github上clone一下或者download一下zip,用pycharm打开,下面是Github的链接,csdn带加速,可以直接下载,但是我推荐有翻墙能力的读者复制链接,翻墙去Github上下载。
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLiteYOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.https://github.com/ultralytics/yolov5下载完成之后用pycharm打开,找到pycharm最下面的终端(截图的时候正在训练,打个码保护隐私),输入如下代码,安装YOLOv5所需要的依赖,如果出现找不到版本的报错,那就打开requirements修改一下版本,实在不行去csdn找经验贴,这一块具体过程我也忘了。
pip install -r requirements.txt
依赖安装完之后可以运行一下detect.py,看看是否安装成功。
安装成功之后会在runs/detect/exp找到两张图片分别如下所示
如果你到这一步都成功了,那么恭喜你,YOLOv5已经配置成功了,接下来就是训练自己的数据集
三、整合自己的数据集
首先,在和项目同级的文件夹下建立新的文件夹datasets1(这个名字可以随意命名,但是不能有中文)
在datasets1文件夹下建立两个文件夹,分别为images和labels
之后在images文件夹下新建立两个文件夹分别问train和test(train文件夹里放你要训练的图片,test文件夹下放你要检测的图片,两个文件夹最好不要放一样的图片,虽然放一样的也没啥问题,这里我就偷懒了,因为我数据集比较小,就没建立train和test文件夹,都是用images)
接下来就是怎么搞到数据集的问题了,如果你想自己创建数据集,那么就扛起你的手机或者相机去外面随便拍吧,当然,你也可以选择已经整理好的数据集。下面是我常用的公开数据集网站
极市数据集可以满足日常训练需要,从人脸到日常物品再到CT影像都有
Machine Learning Datasets | Papers With Code
这个网站包含了众多经典数据集如COCO,CIFAR10等,而且还收录了很多提供源码的论文(竟然包含CVPR)
找到你感兴趣的数据集后下载到本地,准备进行“打标”操作,下面是我常用的在线打标网站,当然也有本地cmd命令的打标工具,看个人喜爱,打标过程我不赘述,有很多教程。
Make Sensehttps://www.makesense.ai/在线打完表之后,点击export,导出为YOLO格式,完成下载之后解压缩,把里面的所有txt格式文件全部复制到刚刚建立的labels文件夹下面,一个都不能少!!!!也别修改txt的名字!!!!
接下来回到pycharm,修改几个参数,首先找到data文件夹下面的coco128.yaml文件,右键复制粘贴,自己改一个名字,这里我改的名字叫trainno1.yaml
下面找到path,train,val这三个字段,按照我数据集的位置的话,改成如下
path:../datasets1
train:images(如果你建立了test和train文件夹,那就改成images/train)
val:images(如果你建立了test和train文件夹,那就改成images/test)
path代表你数据集的相对位置
train代表你训练集的位置
val代表你验证集的位置
往下翻找到names,这代表着你刚刚打标建立了几个分类,我打了三个分类,分别为plane,car和fire,你打几个就写几个
接下来找到models/yolov5s.yaml,按照同样的方法复制粘贴改名,我改成了5s_test01.yaml,打开之后把里面的nc改成3(nc代表你打标的个数,我就三个标,所以就是3)
最后找到train.py,找到如下位置进行修改
之后就可以右键运行train.py了,YOLOv5源码下载下来之后默认的训练次数为100次,你可以自行修改,但是不要太多,要不然训练时间超级长,修改位置如下
关于其他权重还有显示标签数量问题,可以参考一下其他博客
YOLOV5实战教程(超级详细图文教程)!!!_yolov5训练_高桥晋吾的博客-CSDN博客
新人第一次写博客,如果有什么不对的地方请大家及时指出,如果有什么以为大家可以在评论区留言,如果我能帮助到大家我肯定知无不言!