任务设置
- task: 任务类型,可以是检测 (
detect
)、分割 (segment
)、分类 (classify
)、姿态估计 (pose
)。 - mode: 模式,可以是训练 (
train
)、验证 (val
)、预测 (predict
)、导出 (export
)、追踪 (track
)、基准测试 (benchmark
)。
训练设置
- model: 模型文件路径,如
yolov8n.pt
或yolov8n.yaml
。 - data: 数据文件路径,如
coco8.yaml
。 - epochs: 训练的轮数。
- time: 训练时间(小时),如果提供此项将覆盖
epochs
设置。 - patience: 早停的轮数,即在无显著改进时等待的轮数。
- batch: 每批图像数量,
-1
表示自动批量大小。 - imgsz: 输入图像的大小,对于训练和验证模式是整数,对于预测和导出模式是列表
[宽,高]
。 - save: 是否保存训练检查点和预测结果。
- save_period: 每
x
轮保存一次检查点(小于1则禁用)。 - cache: 是否使用缓存进行数据加载,选项有
True
、ram
、disk
或False
。 - device: 运行设备,如
cuda device=0
或device=0,1,2,3
或device=cpu
。 - workers: 数据加载的工作线程数量(每个 DDP 排列)。
- project: 项目名称。
- name: 实验名称,结果保存到
project/name
目录。 - exist_ok: 是否覆盖现有实验。
- pretrained: 是否使用预训练模型,可以是布尔值或模型权重文件路径。
- optimizer: 优化器类型,选项包括
SGD
、Adam
、Adamax
、AdamW
、NAdam
、RAdam
、RMSProp
、auto
。 - verbose: 是否打印详细输出。
- seed: 随机种子以确保结果可复现。
- deterministic: 是否启用确定性模式。
- single_cls: 是否将多类别数据作为单类别训练。
- rect: 如果模式为
train
,则进行矩形训练;如果模式为val
,则进行矩形验证。 - cos_lr: 是否使用余弦学习率调度器。
- close_mosaic: 最后几轮禁用马赛克增强(0表示禁用)。
- resume: 是否从上一个检查点恢复训练。
- amp: 自动混合精度训练,选项包括
True
、False
,True
表示运行 AMP 检查。 - fraction: 用于训练的数据集比例(默认为 1.0,即所有图像)。
- profile: 是否在训练期间记录 ONNX 和 TensorRT 的速度。
- freeze: 冻结前
n
层,或冻结特定层的索引列表。 - multi_scale: 是否在训练期间使用多尺度。
分割设置
- overlap_mask: 训练期间掩码是否重叠(仅分割训练)。
- mask_ratio: 掩码下采样比例(仅分割训练)。
分类设置
- dropout: 使用 dropout 正则化(仅分类训练)。
验证/测试设置
- val: 训练期间是否验证/测试。
- split: 验证使用的数据集分割,可以是
val
、test
或train
。 - save_json: 是否将结果保存为 JSON 文件。
- save_hybrid: 是否保存标签的混合版本(标签 + 额外预测)。
- conf: 检测的对象置信度阈值(默认
0.25
预测,0.001
验证)。 - iou: NMS 的 IoU 阈值。
- max_det: 每张图像的最大检测数。
- half: 是否使用半精度(FP16)。
- dnn: 是否使用 OpenCV DNN 进行 ONNX 推理。
- plots: 在训练/验证期间是否保存图表和图像。
预测设置
- source: 图像或视频的源目录。
- vid_stride: 视频帧率步幅。
- stream_buffer: 是否缓冲所有流媒体帧(
True
)或返回最近的帧(False
)。 - visualize: 是否可视化模型特征。
- augment: 是否对预测源应用图像增强。
- agnostic_nms: 是否使用类别无关的 NMS。
- classes: 过滤结果的类别,如
classes=0
或classes=[0,2,3]
。 - retina_masks: 是否使用高分辨率分割掩码。
- embed: 返回特定层的特征向量/嵌入。
可视化设置
- show: 如果环境允许,是否显示预测图像和视频。
- save_frames: 是否保存预测的单个视频帧。
- save_txt: 是否将结果保存为 .txt 文件。
- save_conf: 是否将结果与置信度分数一起保存。
- save_crop: 是否保存带有结果的裁剪图像。
- show_labels: 是否显示预测标签,如
person
。 - show_conf: 是否显示预测置信度,如
0.99
。 - show_boxes: 是否显示预测边框。
- line_width: 边框线的宽度,如果为
None
,则按图像大小缩放。
导出设置
- format: 导出格式,可选项见 https://docs.ultralytics.com/modes/export/#export-formats。
- keras: 是否使用 Keras。
- optimize: TorchScript 优化以适应移动设备。
- int8: CoreML/TF INT8 量化。
- dynamic: ONNX/TF/TensorRT 动态轴。
- simplify: ONNX 模型简化。
- opset: ONNX opset 版本。
- workspace: TensorRT 工作空间大小(GB)。
- nms: CoreML 添加 NMS。
超参数设置
- lr0: 初始学习率。
- lrf: 最终学习率(
lr0 * lrf
)。 - momentum: SGD 动量/Adam beta1。
- weight_decay: 优化器权重衰减。
- warmup_epochs: 热身轮数(可以是小数)。
- warmup_momentum: 热身初始动量。
- warmup_bias_lr: 热身初始偏置学习率。
- box: 边框损失增益。
- cls: 分类损失增益(按像素缩放)。
- dfl: DFL 损失增益。
- pose: 姿态损失增益。
- kobj: 关键点目标损失增益。
- label_smoothing: 标签平滑(比例)。
- nbs: 名义批量大小。
- hsv_h: 图像 HSV 色调增强(比例)。
- hsv_s: 图像 HSV 饱和度增强(比例)。
- hsv_v: 图像 HSV 亮度增强(比例)。
- degrees: 图像旋转(±度)。
- translate: 图像平移(±比例)。
- scale: 图像缩放(±增益)。
- shear: 图像剪切(±度)。
- perspective: 图像透视(±比例),范围
0-0.001
。 - flipud: 图像上下翻转(概率)。
- fliplr: 图像左右翻转(概率)。
- bgr: 图像通道 BGR(概率)。
- mosaic: 图像马赛克(概率)。
- mixup: 图像混合(概率)。
- copy_paste: 分割复制粘贴(概率)。
- auto_augment: 分类的自动增强策略(
randaugment
、autoaugment
、augmix
)。 - erasing: 分类训练期间随机擦除的概率(
0-0.9
),0
表示不擦除,必须小于1.0
。 - crop_fraction: 分类的图像裁剪比例(
0.1-1
),1.0
表示不裁剪,必须大于0
。
自定义配置
- cfg: 覆盖
defaults.yaml
的配置文件路径。
追踪器设置
-
tracker: 追踪器类型,选项包括
botsort.yaml
、bytetrack.yaml
。 -
cfg: 用于覆盖
defaults.yaml
的配置文件路径。
追踪器设置
- tracker: 追踪器类型,选项包括
botsort.yaml
和bytetrack.yaml
。
这些参数配置了 YOLOv8 模型的训练、验证、预测、导出和其他操作的细节。通过调整这些参数,可以定制 YOLOv8 模型以适应特定任务和数据集。