【YOLOv8配置文件理解】

1 YOLOv8跟踪的配置文件

1.1 botsort.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Default YOLO tracker settings for BoT-SORT tracker https://github.com/NirAharon/BoT-SORT

tracker_type: botsort # tracker type, ['botsort', 'bytetrack']
track_high_thresh: 0.5 # threshold for the first association
track_low_thresh: 0.1 # threshold for the second association
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
track_buffer: 30 # buffer to calculate the time when to remove tracks
match_thresh: 0.8 # threshold for matching tracks
# min_box_area: 10  # threshold for min box areas(for tracker evaluation, not used for now)
# mot20: False  # for tracker evaluation(not used for now)

# BoT-SORT settings
gmc_method: sparseOptFlow # method of global motion compensation
# ReID model related thresh (not supported yet)
proximity_thresh: 0.5
appearance_thresh: 0.25
with_reid: False

1.2 bytetrack.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Default YOLO tracker settings for ByteTrack tracker https://github.com/ifzhang/ByteTrack

tracker_type: bytetrack # tracker type, ['botsort', 'bytetrack']
track_high_thresh: 0.5 # threshold for the first association
track_low_thresh: 0.1 # threshold for the second association
new_track_thresh: 0.6 # threshold for init new track if the detection does not match any tracks
track_buffer: 30 # buffer to calculate the time when to remove tracks
match_thresh: 0.8 # threshold for matching tracks
# min_box_area: 10  # threshold for min box areas(for tracker evaluation, not used for now)
# mot20: False  # for tracker evaluation(not used for now)

2 YOLOv8默认参数配置文件default.yaml

文件路径:.\ultralytics\cfg\default.yaml

default.yaml中有很多训练、测试、预测、可视化等关键参数的设置,具体如下:

  1. 任务和模式设置:定义YOLO的任务(如检测、分割、分类、姿态识别)和模式(如训练、验证、预测、导出、跟踪、基准测试)。

  2. 训练设置:包括模型文件路径、数据文件路径、训练轮次、训练时间、早停耐心(无改进的训练轮数)、批次大小、图像大小、是否保存训练检查点和预测结果、缓存设置、运行设备、工作线程数、项目和实验名称、是否允许覆盖现有实验、是否使用预训练模型、优化器类型、是否输出详细信息、随机种子、是否启用确定模式、是否作为单类别训练、是否应用矩形训练或验证、是否使用余弦学习率调度器等。

  3. 验证/测试设置:包括是否在训练过程中进行验证/测试、用于验证的数据集分割、是否保存结果到JSON文件、置信度阈值、交并比(IoU)阈值、每张图片的最大检测数量等。

  4. 预测设置:定义了预测源目录、视频帧速率步长、流媒体帧缓存设置、是否可视化模型特征、是否应用图像增强、是否使用类不可知NMS等。

  5. 可视化设置:设置是否展示预测图像和视频、是否保存预测的视频帧、是否保存结果为.txt文件、是否保存带有置信度分数的结果、是否保存结果裁剪图像、是否展示预测标签、置信度和边框等。

  6. 导出设置:定义导出格式、是否使用Keras、是否优化TorchScript、INT8量化、动态轴、简化模型等设置。

  7. 超参数:包括初始学习率、最终学习率、动量、权重衰减、预热轮数、盒子损失增益、分类损失增益、姿态损失增益、关键点对象损失增益、标签平滑、HSV色彩空间调整、图像旋转、平移、缩放、剪切、透视、上下翻转概率、左右翻转概率、马赛克效果、混合效果、副本粘贴概率等。

  8. 自定义配置和跟踪器设置:允许用户指定自定义配置文件和跟踪器类型。

对default.yaml进行逐行解释

# YOLO 🚀, AGPL-3.0 许可证
# 用于中等增强COCO训练的默认训练设置和超参数
 
task: detect  # (str) YOLO任务,例如检测、分割、分类、姿态
mode: train  # (str) YOLO模式,例如训练、验证、预测、导出、跟踪、基准测试
 
# 训练设置 -------------------------------------------------------------------------------------------------------
model:  # (str, 可选) 模型文件路径,例如 yolov8n.pt, yolov8n.yaml
data:  # (str, 可选) 数据文件路径,例如 coco128.yaml
epochs: 100  # (int) 训练轮次数
time:  # (float, 可选) 训练时间,如果提供,将覆盖epochs
patience: 50  # (int) 早停等待轮次,对于没有可观察改进的训练早期停止
batch: 16  # (int) 每批次的图像数量(-1表示自动批次)
imgsz: 640  # (int | list) 训练和验证模式的输入图像大小为int,或预测和导出模式的list[w,h]
save: True  # (bool) 保存训练检查点和预测结果
save_period: -1 # (int) 每x轮次保存一次检查点(如果<1则禁用)
cache: False  # (bool) True/ram, disk 或 False。使用缓存加载数据
device:  # (int | str | list, 可选) 运行设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu
workers: 8  # (int) 数据加载的工作线程数(如果DDP,则为每个RANK)
project:  # (str, 可选) 项目名称
name:  # (str, 可选) 实验名称,结果保存在'project/name'目录
exist_ok: False  # (bool) 是否覆盖现有实验
pretrained: True  # (bool | str) 是否使用预训练模型(bool)或从中加载权重的模型(str)
optimizer: auto  # (str) 使用的优化器,可选项=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
verbose: True  # (bool) 是否打印详细输出
seed: 0  # (int) 可重复性的随机种子
deterministic: True  # (bool) 是否启用确定模式
single_cls: False  # (bool) 将多类数据作为单类训练
rect: False  # (bool) 如果模式为'train'则矩形训练,如果模式为'val'则矩形验证
cos_lr: False  # (bool) 使用余弦学习率调度器
close_mosaic: 10  # (int) 在最后几轮禁用mosaic增强(0表示禁用)
resume: False  # (bool) 从最后一个检查点恢复训练
amp: True  # (bool) 自动混合精度(AMP)训练,可选项=[True, False],True表示运行AMP检查
fraction: 1.0  # (float) 训练数据集的分数(默认为1.0,训练集中的所有图像)
profile: False  # (bool) 在训练期间为记录器分析ONNX和TensorRT速度
freeze: None  # (int | list, 可选) 在训练期间冻结前n层,或冻结层索引列表
multi_scale: False   # (bool) 训练期间是否使用多尺度
# 分割
overlap_mask: True  # (bool) 训练期间掩码应重叠(仅限分割训练)
mask_ratio: 4  # (int) 掩码降采样比率(仅限分割训练)
# 分类
dropout: 0.0  # (float) 使用dropout正则化(仅限分类训练)
 
# 验证/测试设置 ----------------------------------------------------------------------------------------------------
val: True  # (bool) 在训练期间进行验证/测试
split: val  # (str) 用于验证的数据集分割,例如 'val', 'test' 或 'train'
save_json: False  # (bool) 将结果保存为JSON文件
save_hybrid: False  # (bool) 保存标签的混合版本(标签 + 额外预测)
conf:  # (float, 可选) 检测的对象置信度阈值(预测默认0.25,验证默认0.001)
iou: 0.7  # (float) NMS的交并比(IoU)阈值
max_det: 300  # (int) 每张图片的最大检测数量
half: False  # (bool) 使用半精度(FP16)
dnn: False  # (bool) 使用OpenCV DNN进行ONNX推理
plots: True  # (bool) 在训练/验证期间保存图表和图像
 
# 预测设置 -----------------------------------------------------------------------------------------------------
source:  # (str, 可选) 图像或视频的源目录
vid_stride: 1  # (int) 视频帧率步长
stream_buffer: False  # (bool) 缓冲所有流媒体帧(True)或返回最近的帧(False)
visualize: False  # (bool) 可视化模型特征
augment: False  # (bool) 对预测源应用图像增强
agnostic_nms: False  # (bool) 类不可知NMS
classes:  # (int | list[int], 可选) 通过类过滤结果,例如 classes=0, 或 classes=[0,2,3]
retina_masks: False  # (bool) 使用高分辨率分割掩码
embed:  # (list[int], 可选) 从给定层返回特征向量/嵌入
 
# 可视化设置 ---------------------------------------------------------------------------------------------------
show: False  # (bool) 如果环境允许,显示预测的图像和视频
save_frames: False  # (bool) 保存预测的视频帧
save_txt: False  # (bool) 将结果保存为.txt文件
save_conf: False  # (bool) 保存带有置信度分数的结果
save_crop: False  # (bool) 保存带有结果的裁剪图像
show_labels: True  # (bool) 显示预测标签,例如 'person'
show_conf: True  # (bool) 显示预测置信度,例如 '0.99'
show_boxes: True  # (bool) 显示预测框
line_width:   # (int, 可选) 边框的线宽。如果为None,则根据图像大小缩放。
 
# 导出设置 ------------------------------------------------------------------------------------------------------
format: torchscript  # (str) 导出的格式,选项参考 https://docs.ultwithzeyu.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:opset版本
workspace: 4  # (int) TensorRT:工作空间大小(GB)
nms: False  # (bool) CoreML:添加NMS
 
# 超参数 ------------------------------------------------------------------------------------------------------
lr0: 0.01  # (float) 初始学习率(例如SGD=1E-2, Adam=1E-3)
lrf: 0.01  # (float) 最终学习率(lr0 * lrf)
momentum: 0.937  # (float) SGD动量/Adam beta1
weight_decay: 0.0005  # (float) 优化器权重衰减5e-4
warmup_epochs: 3.0  # (float) 预热轮数(小数可)
warmup_momentum: 0.8  # (float) 预热初始动量
warmup_bias_lr: 0.1  # (float) 预热初始偏差学习率
box: 7.5  # (float) 盒子损失增益
cls: 0.5  # (float) 分类损失增益(与像素比例)
dfl: 1.5  # (float) dfl损失增益
pose: 12.0  # (float) 姿态损失增益
kobj: 1.0  # (float) 关键点对象损失增益
label_smoothing: 0.0  # (float) 标签平滑(比例)
nbs: 64  # (int) 名义批次大小
hsv_h: 0.015  # (float) 图像HSV-色调增强(比例)
hsv_s: 0.7  # (float) 图像HSV-饱和度增强(比例)
hsv_v: 0.4  # (float) 图像HSV-值增强(比例)
degrees: 0.0  # (float) 图像旋转(+/-度)
translate: 0.1  # (float) 图像平移(+/-比例)
scale: 0.5  # (float) 图像缩放(+/-增益)
shear: 0.0  # (float) 图像剪切(+/-度)
perspective: 0.0  # (float) 图像透视(+/-比例),范围0-0.001
flipud: 0.0  # (float) 图像上下翻转(概率)
fliplr: 0.5  # (float) 图像左右翻转(概率)
mosaic: 1.0  # (float) 图像马赛克(概率)
mixup: 0.0  # (float) 图像混合(概率)
copy_paste: 0.0  # (float) 分割复制粘贴(概率)
auto_augment: randaugment  # (str) 分类的自动增强策略(randaugment, autoaugment, augmix)
erasing: 0.4  # (float) 分类训练期间随机擦除的概率(0-1)
crop_fraction: 1.0  # (float) 分类评估/推理的图像裁剪比例(0-1)
 
# 自定义config.yaml ---------------------------------------------------------------------------------------------------
cfg:  # (str, 可选) 用于覆盖defaults.yaml
 
# 跟踪器设置 ------------------------------------------------------------------------------------------------------
tracker: botsort.yaml  # (str) 跟踪器类型,选项=[botsort.yaml, bytetrack.yaml]
  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值