RT-DETR yaml 配置文件说明

# Ultralytics YOLO 🚀, AGPL-3.0 许可证
# 对于中等增强的 COCO 训练,默认的训练设置和超参数

# YOLO 任务设置,指定要执行的任务类型
task: detect  # (str) YOLO 任务类型,例如:detect(检测)、segment(分割)、classify(分类)、pose(姿态)

# YOLO 模式设置,确定操作模式
mode: train  # (str) YOLO 操作模式,例如:train(训练)、val(验证)、predict(预测)、export(导出)、track(跟踪)、benchmark(基准测试)


# 设置训练参数 -------------------------------------------------------------------------------------------------------
model:  # (字符串, 可选) 模型文件路径,例如 yolov8n.pt 或 yolov8n.yaml
data:  # (字符串, 可选) 数据集配置文件路径,例如 coco128.yaml
epochs: 100  # (整数) 训练轮次数量
patience: 0  # (整数) 早停,无明显改进时提前停止训练前等待的轮次数量,
batch: 4  # (整数) 每批图像的数量 (-1 表示自动批量)
imgsz: 640  # (整数 | 列表) 输入图像大小,作为整数用于训练和验证模式,或列表[w,h]用于预测和导出模式
save: True  # (布尔) 是否保存训练检查点和预测结果
save_period: -1  # (整数) 每 x 轮次保存一次检查点(如果小于 1 则禁用)
cache: False  # (布尔) 使用内存缓存、磁盘缓存或禁用缓存进行数据加载
device:  # (整数 | 字符串 | 列表, 可选) 运行设备,例如 CUDA device=0 或 device=0,1,2,3 或 device=cpu
workers: 0  # (整数) 数据加载的工作线程数量(如果使用DDP则为每个RANK的数量)
project: runs/train  # (字符串, 可选) 项目名称
name: exp  # (字符串, 可选) 实验名称,结果保存到 'project/name' 目录
exist_ok: False  # (布尔) 是否允许覆盖已存在的实验
pretrained: True  # (布尔 | 字符串) 是否使用预训练模型(布尔值)或加载权重的模型(字符串)
optimizer: AdamW  # (字符串) 使用的优化器,可选 [SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
verbose: True  # (布尔) 是否打印详细输出
seed: 0  # (整数) 用于复现性的随机种子
deterministic: True  # (布尔) 是否启用确定性模式
single_cls: False  # (布尔) 将多类别数据作为单一类别训练
rect: False  # (布尔) 在训练模式下使用矩形训练或在验证模式下使用矩形验证
cos_lr: False  # (布尔) 是否使用余弦学习率调度器
close_mosaic: 0  # (整数) 最后几轮禁用马赛克增强(0 表示不禁用)
resume: False  # (布尔) 从最后一个检查点恢复训练
amp: False  # (布尔) 自动混合精度 (AMP) 训练,可选 [True, False],True 表示运行 AMP 检查
fraction: 1.0  # (浮点数) 训练数据集的比例(默认为 1.0,表示所有训练集中的图像)
profile: False  # (布尔) 在训练过程中为记录器分析 ONNX 和 TensorRT 的速度
freeze: None  # (整数 | 列表, 可选) 冻结前 n 层,或冻结训练期间的层索引列表
# 分割设置
overlap_mask: True  # (布尔) 训练期间掩码是否应重叠(仅适用于分割训练)
mask_ratio: 4  # (整数) 掩码下采样比例(仅适用于分割训练)
# 分类设置
dropout: 0.0  # (浮点数) 使用丢弃正则化(仅适用于分类训练)


# Val/Test 设置 -----------------------------------------------------------------------------------------
val: True  # 是否在训练过程中进行验证/测试
split: val  # 用于验证的数据集划分,例如 'val'、'test' 或 'train'
save_json: False  # 是否将结果保存到 JSON 文件
save_hybrid: False  # 是否保存混合版本的标签(标签 + 额外预测)
conf:  # 目标检测时的对象置信度阈值(默认预测时为 0.25,验证时为 0.001)
iou: 0.7  # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值
max_det: 300  # 每张图像的最大检测数
half: False  # 是否使用半精度 (FP16)
dnn: False  # 是否使用 OpenCV DNN 进行 ONNX 推理
plots: True  # 训练/验证期间是否保存图表

# 设置预测相关的配置 ------------------------------------------------------------------------------------
source:  # 源目录,用于指定图像或视频的来源
show: False  # 是否显示结果(如果可能的话)
save_txt: False  # 是否保存结果为 .txt 文件
save_conf: False  # 是否保存结果时附带置信度分数
save_crop: False  # 是否保存带有结果的裁剪图像
show_labels: True  # 是否在图表中显示对象标签
show_conf: True  # 是否在图表中显示对象的置信度分数
vid_stride: 1  # 视频帧率步长
stream_buffer: False  # 是否缓冲所有流式传输的帧(True)或仅返回最近的一帧(False)
line_width:   # 边界框的线宽,如果缺失则自动确定
visualize: False  # 是否可视化模型特征
augment: False  # 是否对预测源应用图像增强
agnostic_nms: False  # 是否使用类别不可知的非极大值抑制(NMS)
classes:  # 类别过滤,可以指定一个类别或类别列表,例如 classes=0 或 classes=[0,2,3]
retina_masks: False  # 是否使用高分辨率的分割掩模
boxes: True  # 在分割预测中是否显示边界框


# 导出设置 ------------------------------------------------------------------------------------------------------
format: torchscript  # (str) 要导出的格式,可选项参见 https://docs.ultralytics.com/modes/export/#export-formats
keras: False  # (bool) 是否使用 Keras
optimize: False  # (bool) TorchScript: 是否针对移动端进行优化
int8: False  # (bool) CoreML/TF INT8 量化
dynamic: False  # (bool) ONNX/TF/TensorRT: 是否启用动态轴
simplify: False  # (bool) ONNX: 是否简化模型
opset:  # (int, 可选) ONNX: 指定操作集版本
workspace: 4  # (int) TensorRT: 工作区大小 (GB)
nms: False  # (bool) CoreML: 是否添加 NMS (非最大值抑制)


# 超参数配置 -----------------------------------------------------------------------------------
# 学习率相关
lr0: 0.0001  # 初始学习率,例如 SGD 通常为 1E-2,Adam 通常为 1E-3。
lrf: 1.0  # 最终学习率,计算方式为初始学习率乘以此值。

# 优化器相关
momentum: 0.9  # SGD 动量或 Adam 的 beta1 参数。
weight_decay: 0.0001  # 优化器权重衰减,通常为 5e-4。

# 预热阶段
warmup_epochs: 2000  # 预热迭代次数,可以使用小数表示。
warmup_momentum: 0.8  # 预热初始动量。
warmup_bias_lr: 0.1  # 预热初始偏置学习率。

# 损失函数增益
box: 7.5  # 盒子损失增益。
cls: 0.5  # 分类损失增益,按像素缩放。
dfl: 1.5  # 分布焦点损失增益。
pose: 12.0  # 姿态损失增益。
kobj: 1.0  # 关键点目标损失增益。

# 标签平滑
label_smoothing: 0.0  # 标签平滑系数。

# 名义批次大小
nbs: 64  # 名义上的批次大小。

# 图像增强
hsv_h: 0.015  # 图像 HSV 色调增强比例。
hsv_s: 0.7  # 图像 HSV 饱和度增强比例。
hsv_v: 0.4  # 图像 HSV 明度增强比例。
degrees: 0.0  # 图像旋转角度。
translate: 0.1  # 图像平移比例。
scale: 0.5  # 图像缩放比例。
shear: 0.0  # 图像剪切角度。
perspective: 0.0  # 图像透视变换比例,范围 0-0.001。

# 数据增强概率
flipud: 0.0  # 图像上下翻转的概率。
fliplr: 0.5  # 图像左右翻转的概率。
mosaic: 0.0  # 使用马赛克数据增强的概率。
mixup: 0.0  # 使用 MixUp 数据增强的概率。
copy_paste: 0.0  # 使用复制粘贴数据增强的概率。


# 自定义配置文件 ---------------------------------------------------------------------------------------------------
cfg:  # (str, optional) 用于覆盖默认配置文件defaults.yaml的某些设置

# 跟踪器设置 ----------------------------------------------------------------------------------------------------------
tracker: botsort.yaml  # (str) 指定跟踪器类型,可选值包括botsort.yaml和bytetrack.yaml
要训练rtdetr模型使用自己的数据集,首先需要收集和准备训练数据。数据集应该包含带有边界框注释的图像,边界框表示物体在图像中的位置和大小。注释的方式可以是XML、JSON等格式。 在收集好数据集之后,需要进行数据预处理。这包括对图像进行裁剪、缩放、去除噪声等操作,以确保图像的质量和一致性。还需要对边界框进行归一化,通常使用坐标偏移和缩放因子来表示边界框的位置。 接下来,需要进行模型训练。可以使用已有的rtdetr模型作为基础,通过迁移学习来进行训练。首先,需要冻结模型的一些底层卷积层,只训练顶层的分类和回归头部。这样可以加速训练,并且有助于模型适应新的数据集。 在训练过程中,使用损失函数来度量预测结果与真实标签之间的差异。常用的损失函数包括交叉熵损失和平滑L1损失。损失函数的选择取决于具体的任务需求。 同时,需要选择合适的优化器和学习率调度器。常用的优化器包括随机梯度下降(SGD)和Adam。学习率调度器可以帮助在训练过程中降低学习率,以更好地优化模型。 在完成模型训练后,可以进行模型评估和调优。通过计算模型在验证集或测试集上的精确度、召回率等指标来评估模型性能,并根据评估结果进行模型调优,如调整超参数、增加训练数据等操作。 最后,当模型达到满意的性能时,可以使用该模型对新的图像进行目标检测。通过将图像输入模型,可以得到预测的边界框和物体类别,从而实现对新图像中物体的检测和识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明天吃香菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值