本文结合小土堆的教学视频目标检测 YOLOv5 开源代码项目调试与讲解实战进行学习
一、如何训练YOLOv5 神经网络
train.py 文件分析【 parse_opt() 函数下的参数分析】
parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')
weights:指定训练模型。default 的值可以有 yolov5s.pt、yolov5m.pt、yolov5n.pt、yolov5l.pt、yolov5x.pt 以及自己训练的模型
parser.add_argument('--cfg', type=str, default='', help='model.yaml path')
cfg:指定模型参数配置,依据模型选择对应的配置文件。default 的值可以有 yolov5s.yaml、yolov5m.yaml、yolov5n.yaml、yolov5l.yaml、yolov5x.yaml
parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='dataset.yaml path')
data:指定要训练的数据集。default 的值可以有 Argoverse.yaml、coco.yaml、coco128-seg.yaml、coco128.yaml、GlobalWheat2020.yaml、lmageNet.yaml、Objects365.yaml、SKU-110K.yaml、VisDrone.yaml、voc.yaml、xView.yaml
parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')
hyp:超参数,对模型进行微调。default 的值在 data/hyps/ 目录下
parser.add_argument('--epochs', type=int, default=100, help='total training epochs')
epochs:指定训练的轮数
二、自制数据集及训练
进入打标工具 https://www.makesense.ai/ ,然后上传要打标的图像数据,选择目标检测,如下所示
选择要标注的物体进行标注,如下选择汽车,并给与标签car
也可以选择 AI 模型进行自动标注,如下选择 COCO SSD 进行自动标注,标注好后选择添加
最后全部标注好后,将标注数据导出,如下选择 YOLO 模型数据形式
将图像和标注数据拷贝到对应的目录下,并添加对应的配置文件
mydata.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: ../mydata # dataset root dir
train: images/train # train images (relative to 'path') 128 images
val: images/train # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: car
1: person