二编:经过一段时间的学习,更进一下这篇博文,希望能帮到大家!^-^
补充:楼主接有偿(10r-15r)帮忙训练数据集 可私聊楼主
一.准备知识
【本节介绍训练前的准备基础知识】
什么是目标检测?
yolo是目标检测算法,目标检测的意思呢就是可以实现检测图片中物体的类型的同时可以在图片中框出物体位置所在。如下图所示
什么是打标签?用什么打标签?什么是数据集划分?需要的数据集格式?
1.打标签的意思就是上图中的框框,我们需要对输入图片中的目标物体进行画框操作,这样模型才能学到这个能力;
2.一般我们使用LablImg进行打标签工作;
3.1 打好标签后,我们会有两个大文件夹,一个是image文件夹(用于存放训练的jpg图片),另一个是label文件夹(用于存放对应图片的标签信息)【这两个文件夹的名字是自己命名的,不同没关系】
3.2 划分就是将我们的数据集划分为训练集、预测集、测试集或者训练集、测试集(一般可以通过代码实现)
4 到这里,我们数据集就划分好啦,训练前还有最重要的一步,就是设置对应数据集的yaml文件,再命名为xx.yaml文件
【注意⚠️】后续所有代码中都写有注释 细看注释!
path: /root/ultralytics-8.2.0/fruit #这里写数据集的存放路径,从根目录下开始
train: train/images #训练数据集的位置
val: valid/images
test: test/images
nc: 3 #标签类别数,比如我下面names只有三个,那nc的数就是3
names: ['raw_apple','raw_avocado','raw_banana'] #这里放你打的标签类型,比如你识别动物的打的标签有dog,cat那就对应更改
二.认识代码
【本节介绍认识代码】
怎么获取代码呢?
①GitHub上获取
②夸克网盘(这是8.2.0版本的,如需使用其他版本可用方法一下载)
链接:https://pan.quark.cn/s/49319eb17d8e
提取码:XLxx
代码里面都是什么东东,训练需要修改哪里?
代码里最重要的是ultralytics这个文件夹的cfg文件夹下的datasets文件夹和models文件
我们需要把刚刚的xx.yaml文件放到datasets文件夹下
models文件夹v8文件夹下是放的v8模型的yaml文件,如果不改进模型只需要训练自己数据集的话,这里不需要改
三.本地训练
本地环境怎么配置?
这里推荐大家看b站up主 小土堆 的环境配置视频,超级详细
怎么训练呢?
下面有个tran.py文件,就直接把train.py文件放在主文件夹下就好,然后运行train.py文件就好
import warnings, os
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/v8/yolov8n.yaml')#这里就是上面说到的v8模型配置文件所在地
# model.load('yolov8n.pt') # loading pretrain weights#加载模型类型,如果要是s就改为yolov8s.pt就好
model.train(data='/root/code/dataset/dataset_visdrone/data.yaml',#这是你的数据集的配置文件所在地
cache=False,
imgsz=640,
epochs=300,#要是电脑算力不好可以设置小一点
batch=32,#要是电脑算力不好可以设置小一点
close_mosaic=0,
workers=8, # Windows下出现莫名其妙卡主的情况可以尝试把workers设置为0
optimizer='SGD', # using SGD
# device='0,1', # 指定显卡和多卡训练参考<YOLOV8V10配置文件.md>下方常见错误和解决方案
# patience=0, # set 0 to close earlystop.
# resume=True, # 断点续训,YOLO初始化时选择last.pt,例如YOLO('last.pt')
# amp=False, # close amp
# fraction=0.2,
project='runs/train',
name='exp',
)
四.在kaggle上训练
1.创建kaggle账号(参照这篇文章,看第一部分将账号创建好)
【kaggle集合】kaggle的注册(有手就行!!)+加速下载【会更新】_kaggle注册-CSDN博客
2.kaggle上手机号验证
点击账号-->点击setting-->完成电话认证(这样就可以使用免费gpu啦)
3.修改数据集配置文件
主要是改yaml文件里的path:/kaggle/input (前面这里是固定的,不要变)/yolotest(你的项目名)/...
4.kaggle上训练
把数据集和代码一起压缩打包,进入kaggle
【注意】这里框框的名字就是你刚刚在数据集那里写的名字,一定要相同,不然找不到
在accelerator的下拉框中选gpu,点左边的【+code】输入
!pip install ultralytics
运行这个之后,再把第三节提到的tran,py文件复制过来运行,这样就成功啦!