【YOLO模型】参数全面解读
使用YOLO模型时,需要调节各种参数,网络文章和官方文档有点不方便,整理了下面的内容备用:
获取最全最新的参数列表:
Ultralytics官方文档: 这是获取YOLOv11(以及YOLOv8等)最权威、最详细参数信息的地方。通常会有专门的页面介绍不同任务(如分割)的训练、验证和预测。
Ultralytics YOLO Docs for Segmentation:任务说明
Ultralytics YOLOv11 Models Page: models说明
命令行帮助: 在您的终端中,可以使用 yolo --help 或者针对特定任务和模式的帮助,例如 yolo task=classify mode=train --help,来查看所有可用的参数及其描述。也可以使用yolo segment train --help 或 yolo segment predict --help 查看特定任务。
GitHub仓库和教程: Roboflow等平台也提供了一些关于如何训练和使用YOLOv11进行实例分割的教程,其中会涉及到具体的参数配置。
1.YOLO目标检测模型
1.1 通用参数 (适用于多种模式):
task: 指定任务。对于目标检测,通常是 detect。在很多情况下,如果使用的是基础模型(如 yolo11n.pt),task=detect 可能是默认的,但显式指定更清晰。
示例: task=detect
mode: 指定操作模式。
train: 训练模型。
predict: 对新数据进行预测/推理。
val: 验证模型性能。
export: 将模型导出为不同格式。
示例: mode=train
model: 指定模型文件。
对于训练: 可以是模型配置文件 (.yaml,如 yolo11n.yaml 从头训练),也可以是预训练权重文件 (.pt,如 yolo11n.pt 进行微调)。
对于预测/验证: 通常是训练好的权重文件 (.pt)。
示例: model=yolo11s.pt
1.2 数据相关参数 (主要用于 train 和 val 模式):
data: 指定数据集的YAML配置文件路径(例如 coco128.yaml 或您自定义的 my_dataset.yaml)。此文件包含了训练集/验证集图像路径、类别数量和类别名称等信息。
示例: data=coco128.yaml
1.3 训练模式 (mode=train) 特定参数:
epochs: 训练的总轮数。
示例: epochs=100
batch: 每批训练的图像数量。设为 -1 可以启用自动批处理大小 (AutoBatch)。
示例: batch=16
imgsz: 输入图像的尺寸(通常是正方形,如 640)。
示例: imgsz=640
weights: (可选,通常model参数已指定)指定起始训练的权重路径。
cfg: (可选)如果从头开始训练且不依赖于预训练模型的结构,可以指定模型架构的YAML文件。
optimizer: 选择优化器,如 SGD, Adam, AdamW。
示例: optimizer=AdamW
lr0: 初始学习率。
lrf: 最终学习率 (初始学习率乘以该因子)。
momentum: SGD优化器的动量。
weight_decay: 优化器的权重衰减。
patience: 早停的轮数,即连续多少轮性能没有提升就停止训练。
示例: patience=20
workers: 数据加载时使用的工作线程数。
示例: workers=8
device: 指定运行设备,如 cpu, 0 (GPU 0), 0,1 (GPU 0 和 1)。
示例: device=0
resume: 从上一个检查点继续训练。可以设为 True 或具体的 .pt 文件路径。
示例: resume=True
超参数 (Hyperparameters): 如数据增强相关的 (hsv_h, degrees, translate, scale, fliplr, mosaic, mixup 等),损失函数各组分的权重 (box, cls, dfl 等)。这些通常可以通过单独的参数传入,或者通过一个超参数配置文件 (hyp.yaml) 指定。
1.4预测/推理模式 (mode=predict) 特定参数:
source: 指定输入源。可以是单个图像路径、视频文件路径、包含图像/视频的文件夹路径、网络摄像头ID (如 0)、YouTube URL或流媒体URL。
示例: source=‘path/to/image.jpg’ 或 source=0
conf: 置信度阈值,只有当检测结果的置信度高于此值时才会被认为是有效检测。
示例: conf=0.25
iou: 用于非极大值抑制 (NMS) 的IoU (Intersection over Union) 阈值。
示例: iou=0.45
max_det: 每张图像允许的最大检测数量。
示例: max_det=300
save: 是否保存带有检测结果的图像/视频。
示例: save=True
save_txt: 是否将检测结果(边界框坐标、类别、置信度)保存为 .txt 文本文件。
示例: save_txt=True
save_conf: (与 save_txt 配合使用)是否在保存的 .txt 文件中包含置信度分数。
save_crop: 是否保存裁剪出的检测对象图像。
show: 是否实时显示处理结果窗口。
示例: show=True
vid_stride: 处理视频时的帧采样间隔。
line_width 或 line_thickness: 绘制边界框线条的宽度。
五、导出模式 (mode=export) 特定参数:
format: 指定导出的模型格式,如 onnx, tensorrt, coreml, tflite, paddle, openvino 等。
示例: format=onnx
opset: (用于ONNX导出)指定ONNX的opset版本。
half: 是否导出为半精度 (FP16) 模型。
其他特定于格式的参数。
2.YOLO分割模型
2.1 任务和模式选择:
task=segment: 指定任务为分割。
mode: 指定当前操作模式,如:
train: 用于模型训练。
predict: 用于对新的图像或视频进行预测。
val: 用于模型验证。
export: 用于将模型导出为不同格式(如ONNX、TensorRT等)。
2.2 模型和数据相关参数:
model:在训练时,可以指定一个模型配置文件(如 yolo11n-seg.yaml)从头开始训练,或者指定一个预训练的 .pt 文件(如 yolo11n-seg.pt)进行微调。
在预测或验证时,指定训练好的模型权重文件(如 runs/train/exp/weights/best.pt 或直接用预训练模型如 yolo11l-seg.pt)。
data: (主要用于训练和验证) 指定数据集的配置文件路径(通常是一个 .yaml 文件),该文件定义了训练集、验证集的路径以及类别信息。例如 coco128-seg.yaml 或您自定义的数据集配置文件。
source: (主要用于预测) 指定输入源,可以是单个图像路径、包含图像的文件夹路径、视频文件路径、摄像头ID (如 0) 或在线图片/视频URL。
2.3 训练特定参数:
epochs: 训练的总轮数。
batch: 批处理大小。可以设置为具体的数值,或者 -1 以启用自动批处理大小(AutoBatch),这会根据GPU内存自动调整。
imgsz: 输入图像的尺寸。例如 640。
optimizer: 选择优化器,如 SGD, Adam, AdamW。
lr0: 初始学习率。
lrf: 最终学习率因子 (lr0 * lrf)。
momentum: 优化器动量(例如SGD)。
weight_decay: 优化器权重衰减。
patience: 早停的耐心值,即在多少个epoch内性能没有提升则停止训练。
workers: 数据加载时使用的工作线程数。
device: 指定运行设备,如 cpu、单个GPU 0 或多个GPU 0,1,2,3。
resume: 从上一个检查点继续训练,可以传入 True 或具体的权重文件路径。
超参数 (Hyperparameters): 通常存储在一个 hyp.yaml 文件中,或者作为命令行参数传递。这些参数控制着数据增强(如HSV色彩空间增强 hsv_h, hsv_s, hsv_v;几何变换 degrees, translate, scale, shear, perspective;翻转 flipud, fliplr;高级增强 mosaic, mixup)和损失函数权重等。
2.4 预测/推理特定参数:
conf: 置信度阈值,低于此阈值的检测结果将被忽略。例如 0.25。
iou: 用于非极大值抑制 (NMS) 的IoU (Intersection over Union) 阈值。
max_det: 每张图像允许的最大检测数量。
save: 是否保存带有结果的图像/视频。
save_txt: 是否将结果(边界框坐标、类别、掩码坐标等)保存为文本文件。
save_conf: 是否在保存的文本文件中包含置信度分数。
save_crop: 是否保存裁剪出的检测对象图像。
show: 是否在窗口中显示处理结果。
line_width 或 line_thickness: 绘制边界框和分割掩码线条的宽度。
retina_masks: 是否使用高分辨率的分割掩码。
3.YOLO分类模型
YOLO(You Only Look Once)系列模型,尤其是由Ultralytics维护和开发的版本(如YOLOv5、YOLOv8以及截至2025年5月可能出现的更新版本,如YOLOv9或未来版本),除了其著名的目标检测能力外,也支持图像分类任务。
用于YOLO分类模型的参数与目标检测或其他任务的参数在结构上有很多相似之处,主要通过命令行接口(CLI)或Python API进行配置。它们通常也共享一个统一的参数管理系统。
以下是YOLO进行图像分类任务时常用的一些参数类别和示例(以Ultralytics YOLO框架为例,这套参数体系在YOLOv5之后版本中具有良好的一致性):
3.1 通用/核心参数:
task: 指定当前执行的任务。对于图像分类,这个值通常是 classify (或者有时简写为 cls)。
示例: task=classify
mode: 指定操作模式。
train: 训练一个新的分类模型或微调一个预训练的分类模型。
predict: 使用训练好的分类模型对新的图像/视频进行分类预测。
val: 在验证集上评估分类模型的性能。
export: 将训练好的分类模型导出为不同格式(如ONNX, TensorRT, TensorFlow Lite等)。
示例: mode=train
model: 指定模型文件。
对于训练 (Training):
可以是一个模型配置文件 (.yaml),用于从头开始构建和训练模型(例如 yolov8n-cls.yaml)。
也可以是一个预训练的分类模型权重文件 (.pt),用于在其基础上进行微调(例如 yolov8n-cls.pt)。
对于预测/验证/导出 (Predict/Val/Export):
通常是一个已经训练好的分类模型权重文件 (.pt),例如训练过程中保存的最佳模型 best.pt。
示例: model=yolov8n-cls.pt (使用预训练的YOLOv8 Nano分类模型) 或 model=runs/classify/train/weights/best.pt (使用自己训练好的模型)
3.2 数据相关参数 (主要用于 train 和 val 模式):
data: 指定数据集的路径。对于分类任务,这通常是一个包含训练和验证图像的文件夹路径。Ultralytics的YOLO分类器支持标准的图像文件夹结构,其中每个子文件夹代表一个类别,子文件夹内存放该类别的图像。
例如,如果你的数据集结构如下:
dataset_folder/
├── train/
│ ├── class_A/
│ │ ├── img1.jpg
│ │ └── …
│ ├── class_B/
│ │ └── …
├── val/
│ ├── class_A/
│ │ └── …
│ ├── class_B/
│ │ └── …
那么 data 参数可以直接指向 dataset_folder。
示例: data=./path/to/your_classification_dataset_folder
有时也可能支持一个定义了训练、验证集路径的 data.yaml 文件,但直接指向数据集根目录更常见于分类。
3.3 训练模式 (mode=train) 特定参数:
epochs: 训练的总轮数。
示例: epochs=100
batch: 每批训练的图像数量。可以设为 -1 来启用自动批处理大小 (AutoBatch),它会根据GPU内存自动调整。
示例: batch=64 (分类任务通常可以使用比检测任务更大的批次大小)
imgsz: 输入图像的尺寸(通常是正方形,例如 224,这是很多分类模型的标准输入尺寸)。
示例: imgsz=224
optimizer: 选择优化器,如 AdamW, SGD, Adam。
示例: optimizer=AdamW
lr0: 初始学习率。
lrf: 最终学习率因子 (最终学习率 = lr0 * lrf)。
weight_decay: 优化器的权重衰减。
patience: 早停(Early Stopping)的轮数。如果在这么多轮内验证集性能没有提升,则停止训练。
示例: patience=20
dropout: 在分类器头部使用的dropout比率,用于防止过拟合。
示例: dropout=0.5
augment: 是否启用默认的数据增强策略 (boolean: True or False)。
fliplr: 水平翻转数据增强的概率 (0.0 到 1.0)。
hsv_h, hsv_s, hsv_v: HSV色彩空间数据增强的参数。
workers: 数据加载时使用的工作线程数。
示例: workers=8
device: 指定运行设备,如 cpu, 0 (GPU 0), 0,1 (GPU 0 和 1)。
示例: device=0
resume: 从上一个检查点继续训练。可以设为 True 或具体的 .pt 文件路径。
示例: resume=path/to/last.pt
project: 训练结果保存的项目文件夹名称。
示例: project=runs/classify
name: 当前训练任务的名称,会作为项目文件夹下的子文件夹名。
示例: name=exp
save_period: 每隔多少个epoch保存一次模型检查点。设为 -1 则只保存最后一个。
3.4 预测/推理模式 (mode=predict) 特定参数:
source: 指定输入源。可以是单个图像路径、包含图像的文件夹路径、视频文件路径、网络摄像头ID (如 0) 或网络URL。
示例: source=‘path/to/image.jpg’ 或 source=‘./my_images_folder/’
conf: 置信度阈值。对于分类任务,这通常不太直接使用,因为模型会输出每个类别的概率。但如果需要一个阈值来决定是否“足够自信”地做出某个分类,或者在多标签分类中可能会用到。通常,我们会看 top1 或 top5 的预测。
save: 是否保存带有预测结果的图像(如果适用,例如在图像上标注预测的类别)。
示例: save=True
save_txt: 是否将预测结果(例如,每个图像的预测类别和概率)保存为 .txt 文本文件。
示例: save_txt=True
show: 是否实时显示处理结果窗口(主要用于图像和视频)。
示例: show=True
3.5 验证模式 (mode=val) 特定参数:
通常与训练模式共享许多数据和模型参数。
plots: 是否在验证结束后生成并保存性能图表(如混淆矩阵)。
示例: plots=True
3.6 导出模式 (mode=export) 特定参数:
format: 指定导出的模型格式,如 onnx, torchscript, tflite, coreml, paddle, openvino 等。
示例: format=onnx
imgsz: 导出模型时期望的输入图像尺寸。
half: 是否导出为半精度 (FP16) 模型以优化速度和大小(如果目标平台支持)。
其他特定于格式的参数,例如 opset (用于ONNX)。
4.7 示例
from ultralytics import YOLO# 加载一个预训练的分类模型 (例如 YOLOv8n-cls)
# model = YOLO('yolov8n-cls.pt')# 或者加载一个从头开始的配置 (用于训练)
model = YOLO('yolov8n-cls.yaml') # 或者 model = YOLO('yolov8n-cls.pt') 来微调# 训练模型
# results_train = model.train(data='path/to/your_classification_dataset_folder', epochs=100, imgsz=224, batch=32, device='cuda:0')# 使用训练好的模型进行预测 (假设你已经训练并得到了 best.pt)
trained_model = YOLO('runs/classify/train/weights/best.pt') # 加载你的最佳模型
results_predict = trained_model.predict('path/to/your/image.jpg')# 处理预测结果
for r in results_predict:print(f"Image: {r.path}")print(f"Top-1 Probability: {r.probs.top1conf.item():.4f}") # 最高置信度print(f"Top-1 Class Index: {r.probs.top1}") # 最高置信度类别的索引print(f"Top-1 Class Name: {r.names[r.probs.top1]}") # 最高置信度类别的名称# r.show() # 显示带有预测结果的图像 (如果适用)# print(r.probs) # 打印所有类别的概率张量# 验证模型
# results_val = trained_model.val(data='path/to/your_classification_dataset_folder/val', imgsz=224, batch=32)
# print(results_val.metrics.top1acc) # Top-1 准确率
# print(results_val.confusion_matrix.matrix) # 混淆矩阵# 导出模型
# trained_model.export(format='onnx', imgsz=224)
4.YOLO姿态估计模型
4.1 通用/核心参数:
task: 指定当前执行的任务。对于姿态估计,这个值通常是 pose。
示例: task=pose
mode: 指定操作模式。
train: 训练一个新的姿态估计模型或微调一个预训练模型。
predict: 使用训练好的姿态估计模型对新的图像/视频进行预测。
val: 在验证集上评估姿态估计模型的性能。
export: 将训练好的姿态估计模型导出为不同格式。
示例: mode=train
model: 指定模型文件。
对于训练 (Training):
可以是一个模型配置文件 (.yaml),用于从头开始构建和训练模型(例如 yolov8n-pose.yaml)。
也可以是一个预训练的姿态估计模型权重文件 (.pt),用于在其基础上进行微调(例如 yolov8n-pose.pt)。
对于预测/验证/导出 (Predict/Val/Export):
通常是一个已经训练好的姿态估计模型权重文件 (.pt),例如训练过程中保存的最佳模型 best.pt。
示例: model=yolov8n-pose.pt (使用预训练的YOLOv8 Nano姿态估计模型)
4.2 数据相关参数 (主要用于 train 和 val 模式):
data: 指定数据集的YAML配置文件路径。对于姿态估计,这个YAML文件至关重要,它不仅定义了训练集/验证集的图像路径,还定义了关键点的数量、骨骼连接信息、类别信息(通常是“person”)等。
示例: data=coco8-pose.yaml (一个小型示例数据集) 或 data=custom_pose_dataset.yaml (您自定义的数据集配置文件)。
YAML文件中通常包含:
path: 数据集根目录。
train: 训练图像文件夹或文本文件路径。
val: 验证图像文件夹或文本文件路径。
nc: 类别数量 (对于人体姿态估计,通常为1,即 “person”)。
names: 类别名称列表。
kpt_shape: 关键点的形状,例如 [17, 3] 表示17个关键点,每个关键点有x, y坐标和可见性/置信度标志;或者 [17, 2] 如果不预测可见性。
flip_idx: 在进行水平翻转数据增强时,需要交换的关键点索引对(例如左肩和右肩)。
skeleton: (可选,用于可视化)定义关键点之间的连接关系以绘制骨骼。
4.3 训练模式 (mode=train) 特定参数:
epochs: 训练的总轮数。
示例: epochs=300
batch: 每批训练的图像数量。设为 -1 可以启用自动批处理大小 (AutoBatch)。
示例: batch=16
imgsz: 输入图像的尺寸(例如 640)。
示例: imgsz=640
optimizer: 选择优化器,如 SGD, Adam, AdamW。
示例: optimizer=AdamW
lr0: 初始学习率。
lrf: 最终学习率因子。
patience: 早停的轮数。
示例: patience=50
hyp: 指定超参数配置文件的路径 (通常是一个 hyp.yaml 文件)。这里面会包含更详细的训练超参数,如:
数据增强参数 (旋转 degrees, 平移 translate, 缩放 scale, 裁剪 shear, HSV增强 hsv_h, hsv_s, hsv_v, 水平翻转 fliplr, Mosaic mosaic 等)。
损失函数各项的权重增益 (例如 box_loss_gain, cls_loss_gain, pose_loss_gain (关键点回归损失), kobj_loss_gain (关键点可见性/目标性损失))。
workers: 数据加载时使用的工作线程数。
device: 指定运行设备 (cpu, 0, 0,1, etc.)。
resume: 从上一个检查点继续训练。
project: 训练结果保存的项目文件夹名称。
name: 当前训练任务的名称。
4.4 预测/推理模式 (mode=predict) 特定参数:
source: 指定输入源 (单个图像、视频、文件夹、摄像头ID、URL)。
示例: source=‘path/to/image.jpg’
conf: 目标检测(人体框)的置信度阈值。
示例: conf=0.25
iou: 用于人体框NMS的IoU阈值。
示例: iou=0.7
save: 是否保存带有预测结果的图像/视频。
示例: save=True
save_txt: 是否将预测结果(边界框、关键点坐标和置信度)保存为 .txt 文件。
save_crop: 是否保存裁剪出的人体框图像。
show: 是否实时显示处理结果窗口。
示例: show=True
hide_labels: 是否隐藏类别标签。
hide_conf: 是否隐藏置信度分数。
hide_boxes: 是否隐藏边界框(只显示骨骼)。
line_thickness: 绘制边界框和骨骼线条的宽度。
示例: line_thickness=2
kpt_line_color: (可能通过更通用的绘图设置调整) 绘制骨骼线条的颜色。
kpt_radius: (可能通过更通用的绘图设置调整) 绘制关键点圆圈的半径。
4.5 验证模式 (mode=val) 特定参数:
通常与训练模式共享许多数据和模型参数。
plots: 是否在验证结束后生成并保存性能图表(例如mAP曲线,OKS相关的指标图)。
示例: plots=True
评估指标通常包括目标检测的mAP和针对关键点的OKS (Object Keypoint Similarity) mAP。
4.6 导出模式 (mode=export) 特定参数:
format: 指定导出的模型格式 (onnx, tensorrt, tflite, coreml, etc.)。
示例: format=onnx
imgsz: 导出模型时期望的输入图像尺寸。
half: 是否导出为半精度 (FP16) 模型。
kpt_shape: (可能需要指定或从模型中读取) 确保导出模型知道关键点的数量。
4.7 示例
from ultralytics import YOLO# 加载一个预训练的姿态估计模型 (例如 YOLOv8n-pose)
model = YOLO('yolov8n-pose.pt')# 或者加载一个从头开始的配置 (用于训练)
# model_to_train = YOLO('yolov8n-pose.yaml') # 或者 model_to_train = YOLO('yolov8n-pose.pt') 来微调# 训练模型
# results_train = model_to_train.train(data='path/to/your_pose_dataset.yaml', epochs=100, imgsz=640, batch=16, device='cuda:0')# 使用训练好的模型进行预测 (假设你已经训练并得到了 best.pt)
# trained_model = YOLO('runs/pose/train/weights/best.pt') # 加载你的最佳模型
results_predict = model.predict('path/to/your_image.jpg', save=True)# 处理预测结果
for r in results_predict:print(f"Image: {r.path}")if r.keypoints is not None:print(f"Detected {len(r.keypoints.xy)} person(s)")# r.keypoints.xy # 归一化 x,y 坐标 (0-1)# r.keypoints.xyn # 像素 x,y 坐标# r.keypoints.conf # 每个关键点的置信度# r.keypoints.shape # 关键点形状 (e.g., [num_instances, num_keypoints, 2] for xy or [num_instances, num_keypoints, 3] for xyv)r.show() # 显示带有预测结果的图像 (会绘制边界框和骨骼)# 验证模型
# results_val = trained_model.val(data='path/to/your_pose_dataset.yaml', imgsz=640, batch=16)
# print(results_val.box.map) # 边界框的 mAP
# print(results_val.pose.map) # 关键点/姿态的 OKS mAP# 导出模型
# model.export(format='onnx', imgsz=640)
5.YOLO旋转检测模型
5.1 通用/核心参数 (General / Core Parameters):
task: 指定当前执行的任务。对于OBB检测,这个值是 obb。
示例: task=obb
mode: 定义操作模式。
train: 训练新的OBB模型或微调预训练模型。
predict: 对新的图像/视频进行OBB预测。
val: 在验证集上评估OBB模型的性能。
export: 将训练好的OBB模型导出为不同的部署格式。
示例: mode=train
model: 指定模型文件。
训练时: 可以是模型配置文件 (.yaml,例如 yolov8n-obb.yaml) 用于从头构建,或者是预训练的OBB模型权重文件 (.pt,例如 yolov8n-obb.pt) 用于微调。
预测/验证/导出时: 通常是已训练好的OBB模型权重文件 (.pt),例如 runs/obb/train_experiment_name/weights/best.pt。
示例: model=yolov8s-obb.pt
5.2 数据相关参数 (主要用于 train 和 val 模式):
data: 指定数据集的YAML配置文件路径 (例如 dota_v1.0_8_obb.yaml 或您自定义的 my_custom_obb_dataset.yaml)。这个YAML文件对OBB任务至关重要,它定义了:
训练集和验证集图像的路径。
类别数量 (nc)。
类别名称 (names)。
OBB标注的格式(例如,角度是以度还是弧度为单位,是 xywha 中心点宽高角格式还是四个角点坐标格式)。
示例: data=dota8.yaml (DOTA数据集的一个小型版本,用于快速测试)
5.3 训练模式 (mode=train) 特定参数:
epochs: 训练的总轮数。
示例: epochs=300
batch: 训练时的批处理大小。设为 -1 可以启用自动批处理大小 (AutoBatch)。
示例: batch=16
imgsz: 输入图像的尺寸 (例如 640, 1024)。图像会被缩放到这个尺寸。
示例: imgsz=1024
optimizer: 选择优化器 (例如 SGD, Adam, AdamW)。
示例: optimizer=AdamW
lr0: 初始学习率。
lrf: 最终学习率因子 (最终学习率 = lr0 * lrf)。
weight_decay: 优化器的权重衰减。
patience: 早停的轮数,即连续多少轮性能没有提升就停止训练。
示例: patience=50
hyp: 指定超参数配置文件的路径 (通常是一个 hyp.yaml 文件)。此文件包含更详细的设置,例如:
数据增强参数 (包括能够正确处理OBB的旋转增强)。
损失函数各组成部分的权重增益 (例如 box_loss_gain, cls_loss_gain, dfl_loss_gain,以及可能针对角度预测的 angle_loss_gain 或类似项)。
workers: 数据加载时使用的工作线程数。
device: 指定运行设备 (例如 cpu, 0 代表GPU 0, 0,1 代表多GPU)。
resume: 从上一个检查点继续训练 (例如 True 或指定 .pt 文件路径)。
project: 保存训练结果的项目目录。
示例: project=runs/obb_training
name: 当前训练任务的特定名称 (在 project 目录下的子目录名)。
示例: name=dota_experiment1
5.4 预测/推理模式 (mode=predict) 特定参数:
source: 输入源 (单个图像路径、视频路径、包含图像的文件夹、URL、摄像头ID)。
示例: source=‘path/to/aerial_image.tif’
conf: OBB检测结果的置信度阈值。
示例: conf=0.25
iou: 用于非极大值抑制 (NMS) 的IoU (Intersection over Union) 阈值。对于OBB,这里会使用旋转IoU进行计算。
示例: iou=0.45
max_det: 每张图像允许的最大OBB检测数量。
示例: max_det=1000
save: 是否保存在其上绘制了OBB结果的图像/视频。
示例: save=True
save_txt: 是否将OBB检测结果 (通常是类别、中心点x、中心点y、宽度、高度、角度) 保存到 .txt 文件。
save_conf: 是否在 save_txt 输出中包含置信度分数。
show: 如果在桌面环境运行,是否在窗口中显示结果。
hide_labels: 是否在输出中隐藏类别标签。
hide_conf: 是否在输出中隐藏置信度分数。
line_thickness: OBB边框线的宽度。
5.5 验证模式 (mode=val) 特定参数:
许多参数与 train 模式共享 (如 data, imgsz, batch, device)。
plots: 是否生成并保存在验证结束后的性能图表 (例如,使用旋转IoU计算的mAP曲线)。
示例: plots=True
评估指标将基于旋转IoU。
5.6 导出模式 (mode=export) 特定参数:
format: 指定部署的目标格式 (例如 onnx, engine 用于TensorRT, tflite, coreml)。
示例: format=onnx
imgsz: 导出模型时使用的图像尺寸。
half: 如果目标格式和硬件支持,是否导出为FP16半精度模型。
opset: (针对ONNX) ONNX算子集版本。
注意:由于旋转框或角度预测可能涉及自定义操作,OBB模型的导出兼容性在不同格式之间可能比标准检测模型更需要注意。