前言
还在研究yolo v5,现在yolov8源码都已经放出来了,这速度,让人头皮发麻。
源码地址:https://github.com/ultralytics/ultralytics
和yolo v5的风格基本类似,这里的源码是使用pytorch实现的,小伙伴现在可以尝尝鲜了。
标注数据集
这里仍然使用labelimg,安装labelimg,小伙伴们自行搜索,网上一堆,标注的时候选择yolo格式就行了。标注完生成的txt文件,我这里的文件后缀是.xml.txt;小伙伴需要把文件后缀的.xml去掉,一定要去掉。
数据集格式
数据集格式主要是指你的文件夹格式,其实没有必要必须一致,我这边的格式为:
建议使用这样的格式,然后你要做的是编写一个yaml文件,例如
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: D:\Paper\study\datasets\hyperbole170M # 这里就是你的数据集文件夹地址
train: images/train #这里就是你的参与训练的图片文件夹地址
val: images/val # val images (relative to 'path')
test: # test images (optional)
# Classes
nc: 1 # 我这里就一个类别,所以是1
names: ['hyperbole'] # 类别名称
download: https://ultralytics.com/assets/coco128-seg.zip #这里是如果没有数据集,需要下载的网址,自制数据集,这个是不需要的。
这里的文件名,我的是hyperbole.yaml,放在哪里呢?这里:
路径为:D:\Paper\study\Yolo\yolov8-main\ultralytics-main\ultralytics\yolo\data\datasets\hyperbole.yaml
执行训练
CLI usage:
python ultralytics/yolo/v8/detect/train.py model=yolov8n.yaml data=coco128 epochs=100 imgsz=640
TODO:
yolo task=detect mode=train model=yolov8n.yaml data=coco128.yaml epochs=100
让我们走进代码,不去关心命令行。
首先找到ultralytics-main\ultralytics\yolo\v8\detect\train.py
这个是训练代码,
# cfg.model = cfg.model or "yolov8n.yaml"
cfg.model = cfg.model or "yolov8n.pt" #源码的是模型yaml,这里用他们训练好的模型,可以在我们少量数据集的基础上提升我们的训练效果,强烈建议。设置完成之后执行代码会自动下载。ps当然你也可以在命令行去做。
cfg.data = cfg.data or "hyperbole.yaml" # 这里可以写你的数据集,ps当然这里也可以在命令行去做。
如果显卡内存不够,或者线程导致内存不够,可以找到ultralytics\yolo\configs\default.yaml
里面的参数是默认的参数,你可以在这里修改,也可以使用命令行。
epochs: 100 # number of epochs to train for
patience: 50 # TODO: epochs to wait for no observable improvement for early stopping of training
batch: 16 # number of images per batch
imgsz: 416 # size of input images
save: True # save checkpoints
cache: False # True/ram, disk or False. Use cache for data loading
device: null # cuda device, i.e. 0 or 0,1,2,3 or cpu. Device to run on
workers: 4 # number of worker threads for data loading
执行过程
报错:这里我就不说了,提示少什么,你就百度安装什么,出现什么问题,一个字百度,基本都能处理。
执行过程:
看到图片,和yolo v5基本一样。
查看训练结果
训练结果在这个文件夹下面:\ultralytics\yolo\v8\detect\runs\detect
mAP高不高,非常高,当然写到这的时候还在训练。
主要是检测内容特征明显。