参数说明
YOLOv5 是一个基于 PyTorch 实现的目标检测模型,具有多个超参数用于调整模型性能。下面是一些主要参数及其详细说明:
模型架构相关参数
cfg: 这是模型配置文件,指定了网络架构。YOLOv5 提供了不同规模的模型,如 yolov5s、yolov5m、yolov5l、yolov5x,可以选择更小的模型以提高推理速度,或者选择更大的模型以提高检测精度。
nc: 类别数。模型输出的类别数量,不包括背景类。比如,在 COCO 数据集上通常为 80。
img_size: 输入图像的尺寸。YOLOv5 在训练和推理时通常会将图像缩放到该尺寸,推荐尺寸为 640 或 1280,较大的尺寸可能会增加推理时间。
训练相关参数
epochs: 训练的轮次,指定模型训练的迭代次数。
batch_size: 每个训练批次的样本数量。这个参数的选择与可用的 GPU 显存相关。
learning_rate: 学习率,用于控制参数更新的速度。YOLOv5 提供了一个自动调节学习率的策略。
optimizer: 优化器类型,默认是 SGD,也可以选择 Adam。
weight_decay: 权重衰减,用于正则化,避免过拟合。
momentum: 动量参数,通常和 SGD 优化器一起使用,用于加速梯度下 降的收敛速度。
hyp: 超参数文件,定义了一些训练中的重要参数,如学习率、权重衰减、置信度阈值等。可以自定义并传入训练命令。
augment: 数据增强。YOLOv5 支持多种数据增强技术,如随机剪裁、颜色抖动、旋转等,来增加训练数据的多样性。
rect: 是否采用矩形训练(而非方形训练)。采用矩形训练可以提高训练效率,尤其是在 GPU 内存较紧张的情况下。
推理相关参数
conf_thres: 置信度阈值。模型输出的每个检测框的置信度值如果低于此阈值,则不予考虑。
iou_thres: 非极大抑制(NMS)过程中,框的 IOU 阈值。如果两个框的 IOU 大于该值,则会抑制掉较差的框。
agnostic_nms: 是否使用类别无关的 NMS。当设置为 True 时,不考虑类别标签,仅根据 IOU 来进行 NMS。
classes: 用于推理时指定检测的类别列表。可以设置为一个整数列表,表示只检测特定类别。
max_det: 每张图像最多检测的框数。默认为 1000。
模型评估相关参数
save_json: 是否保存推理结果为 JSON 文件。
iou_loss: 用于计算 IOU 损失的方式。通常有 giou、ciou、diou 等不同的 IOU 损失函数。
save_conf: 是否保存每个检测框的置信度值。