纯小白自学!从零入门跑通YOLO方案baseline!!!
一、相关概念解释
1.1 什么是YOLO?什么是物体检测模型?
YOLO,全称为“You Only Look Once”(你只看一眼),是一种流行的实时目标检测系统,由Joseph Redmon等人在2015年提出。YOLO模型的核心思想是将目标检测任务视为一个单一的回归问题,通过一个卷积神经网络(CNN)直接从图像像素到边界框坐标和类别概率的映射。YOLO模型经过了多次迭代,包括YOLOv2(YOLO9000)、YOLOv3和YOLOv4等版本,每个版本都在性能和速度上有所提升,同时也引入了一些新的技术,如更深的网络结构、更好的锚框机制、多尺度特征融合等。
1.2 YOLO模型需要什么训练格式?
YOLO使用的标注格式是每张图像一个文本文件,文件名与图像文件名相对应。文本文件中每一行对应一个边界框,格式为:<class> <x_center> <y_center> <width> <height>
。其中,
<class>
是类别索引,<x_center>
和<y_center>
是边界框中心点相对于图像宽度和高度的比例,<width>
和<height>
是边界框的宽度和高度相对于图像宽度和高度的比例。
1.3 如何训练YOLO模型?
Ultraalytics 是一个提供多种计算机视觉模型的库,包括 YOLO 系列。这段代码是一个简单的训练启动示例。
from ultralytics import YOLO
# 设置模型版本
model = YOLO("yolov8n.pt")
# 设定数据集和训练参数
results = model.train(data="yolo-dataset/yolo.yaml", epochs=2, imgsz=1080, batch=16)
训练日志如下:
-
box_loss
是边界框回归损失,用于评估预测的边界框与真实边界框之间的差异。 -
cls_loss
是分类损失,用于评估类别预测的准确性。 -
dfl_loss
是防御性损失,用于提高模型的泛化能力。
从输出结果来看,经过两个训练周期后,模型的边界框损失、分类损失和防御性损失都有所下降,这表明模型在训练过程中学习了如何更好地预测边界框和分类。同时,模型的 mAP50 和 mAP50-95 指标也有所提高,这表明模型的整体性能有所提升。