要训练模型,先要标准数据。
可以使用labelimg标注数据。当然也有其他的标注工具,例如:makesense。还可以在网上下载已经标注好的数据集,例如:rowboflow。
首先,安装labelimg
>pip install labelimg
然后,启动labelimg,
>labelimg
标注好之后的图片和数据,需要放到yolov8的指定目录--datasets目录,这在yolov8是必须的,训练集的配置文件的根目录默认是它。
# parent
# ├── ultralytics
# └── datasets (配置文件的根目录)
# └── gambling (数据集的名称,自建这一级目录)
# └── images (图片目录)
# └── train (训练集)
# └── valid (验证集)
# └── test (测试集,可以为空,也可以没有这个目录)
# └── labels (标注目录)
# └── train (训练集,文件名称与上面的图片文件名称一一对应)
# └── valid (验证集,文件名称与上面的图片文件名称一一对应)
# └── test (测试集,可以为空,也可以没有这个目录)
从ultralytics/cfg/datasets目录下拷贝coco.xml到当前目录下、并重命名为mine.yaml,按照上述规则修改。
mine.yaml文件内容如下:
path: gambling # dataset root dir
train: images/train # train images (relative to 'path')
val: images/valid # val images (relative to 'path')
test: #
# Classes
names:
0: aomenxinpujing-logo1
1: aomenxinpujing-yulecheng
2: aomenxinpujing-title
3: aomenxinpujing-url
4: mei-nv-he-guan
执行如下命令:
>yolo task=detect mode=train model=./yolov8n.pt data=./mine.yaml epochs=30 workers=1 batch=16
训练的结果保存在runs/detect/train目录下,也可能是runs/detect/train2目录,注意结果提示即可发现。
训练好的模型,用于检测,执行如下命令:
>yolo task=detect mode=predict model=runs/detect/train/weights/best.pt source=./xxx.mp4 show=True
注1:训练过程中,可能要重新设定安装目录所在的磁盘分区(C盘或者D盘)的虚拟内存大小,建议改为50G~100G。
注2:不一定要修改,可以把batch=16改小试一下。
全文完。