【YOLOv8】修改默认的配置文件

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

你好,我是@努力的小巴掌

YOLO 设置和超参数对模型的性能、速度和准确性起着至关重要的作用。这些设置和超参数可以影响模型开发过程各个阶段的模型行为,包括训练、验证和预测。

Configuration - Ultralytics YOLO Docs

目录

Tasks 任务

Modes 模式

Train Settings 训练设置

Predict Settings 预测设置

Validation Settings 验证设置

 Export Settings 导出设置

Augmentation Settings 增强设置

如何在训练期间提高 YOLO 模型的性能?

如何设置训练 YOLO 模型的学习率?


Ultralytics 命令使用以下语法:

命令行:

yolo TASK MODE ARGS

其中,TASK (可选)是(检测、分割、分类、姿势)之一。

MODE (必需)是(train、val、predict、export、track)之一。

ARGS (optional) are arg=value pairs like imgsz=640 that override defaults.

python界面

from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO("yolov8n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

默认 ARG 值是通过 cfg/defaults.yaml 文件定义的。

Tasks 任务

YOLO 模型可用于各种任务,包括检测、分割、分类和姿势。这些任务的不同之处在于它们产生的输出类型以及它们旨在解决的具体问题。

  • Detect: For identifying and localizing objects or regions of interest in an image or video.
    检测:用于识别和定位图像或视频中感兴趣的对象或区域。
  • Segment: For dividing an image or video into regions or pixels that correspond to different objects or classes.
    分段:用于将图像或视频划分为对应于不同对象或类别的区域或像素。
  • Classify: For predicting the class label of an input image.
    分类:用于预测输入图像的类标签。
  • Pose: For identifying objects and estimating their keypoints in an image or video.
    姿势:用于识别图像或视频中的对象并估计其关键点。
  • OBB: Oriented (i.e. rotated) bounding boxes suitable for satellite or medical imagery.
    OBB:适用于卫星或医学图像的定向(即旋转)边界框。

在yolov8里,默认的task是detect

如果做分割,就是这样:

# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.yaml pretrained=yolov8n-seg.pt epochs=100 imgsz=640

Modes 模式

YOLO models can be used in different modes depending on the specific problem you are trying to solve. These modes include:
YOLO 模型可以根据您要解决的具体问题以不同的模式使用。这些模式包括:

  • Train: For training a YOLOv8 model on a custom dataset.
    训练:用于在自定义数据集上训练 YOLOv8 模型。
  • Val: For validating a YOLOv8 model after it has been trained.
    Val:用于在训练后验证 YOLOv8 模型。
  • Predict: For making predictions using a trained YOLOv8 model on new images or videos.
    预测:使用经过训练的 YOLOv8 模型对新图像或视频进行预测。
  • Export: For exporting a YOLOv8 model to a format that can be used for deployment.
    导出:用于将 YOLOv8 模型导出为可用于部署的格式。
  • Track: For tracking objects in real-time using a YOLOv8 model.
    Track:用于使用 YOLOv8 模型实时跟踪对象。
  • Benchmark: For benchmarking YOLOv8 exports (ONNX, TensorRT, etc.) speed and accuracy.
    基准:用于对 YOLOv8 导出(ONNX、TensorRT 等)速度和准确性进行基准测试。

Train Settings 训练设置

YOLO 模型的训练设置包含训练过程中使用的各种超参数和配置。这些设置会影响模型的性能、速度和准确性。关键的训练设置包括批量大小、学习率、动量和权重衰减。此外,优化器、损失函数和训练数据集组成的选择也会影响训练过程。仔细调整和试验这些设置对于优化性能至关重要。

训练时候默认配置和官网一样的可以对着看

Predict Settings 预测设置

YOLO 模型的预测设置包含一系列超参数和配置,这些超参数和配置会影响模型在推理新数据期间的性能、速度和准确性。仔细调整和试验这些设置对于实现特定任务的最佳性能至关重要。关键设置包括置信度阈值、非极大值抑制 (NMS) 阈值和考虑的类别数量。影响预测过程的其他因素包括输入数据的大小和格式、是否存在补充特征(例如每个框的掩码或多个标签)以及模型所执行的特定任务。

Visualization arguments:
可视化参数:

save_txtboolFalseSaves detection results in a text file, following the format [class] [x_center] [y_center] [width] [height] [confidence]. Useful for integration with other analysis tools.
将检测结果保存在文本文件中,格式为 [class] [x_center] [y_center] [width] [height] [confidence] 。对于与其他分析工具集成很有用。
show_boxesboolTrueDraws bounding boxes around detected objects. Essential for visual identification and location of objects in images or video frames.
在检测到的对象周围绘制边界框。对于图像或视频帧中的对象的视觉识别和定位至关重要。

Validation Settings 验证设置

YOLO 模型的 val(验证)设置涉及各种超参数和配置,用于评估模型在验证数据集上的性能。这些设置会影响模型的性能、速度和准确性。常见的 YOLO 验证设置包括批量大小、训练期间的验证频率以及性能评估指标。影响验证过程的其他因素包括验证数据集的大小和组成,以及模型所用于的特定任务。

save_jsonboolFalse

If True, saves the results to a JSON file for further analysis or integration with other tools.
如果是 True ,则将结果保存到 JSON 文件以供进一步分析或与其他工具集成。

dnnboolFalseIf True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
如果 True ,使用 OpenCV DNN 模块进行 ONNX 模型推理,提供 PyTorch 推理方法的替代方案。

 Export Settings 导出设置

 YOLO 模型的导出设置包含与保存或导出模型以在不同环境或平台中使用相关的配置和选项。这些设置可能会影响模型的性能、大小以及与各种系统的兼容性。关键导出设置包括导出的模型文件格式(例如 ONNX、TensorFlow SavedModel)、目标设备(例如 CPU、GPU)以及其他功能,例如掩模或每个框多个标签。导出过程还可能受到模型的特定任务以及目标环境或平台的要求或约束的影响。

Augmentation Settings 增强设置

增强技术对于通过在训练数据中引入可变性来提高 YOLO 模型的鲁棒性和性能至关重要,帮助模型更好地泛化到未见过的数据。下表概述了每个增强参数的目的和效果:

copy_pastefloat0.00.0 - 1.0Copies objects from one image and pastes them onto another, useful for increasing object instances and learning object occlusion.
从一张图像复制对象并将其粘贴到另一张图像上,这对于增加对象实例和学习对象遮挡很有用。

把0.0改成0.0-1.0之间的参数。

如何在训练期间提高 YOLO 模型的性能?

提高 YOLO 模型性能涉及调整批量大小、学习率、动量和权重衰减等超参数。调整增强设置、选择正确的优化器以及采用提前停止或混合精度等技术也会有所帮助。

影响 YOLO 模型精度的关键超参数包括:

  • Batch Size (batch): Larger batch sizes can stabilize training but may require more memory.
    批量大小 ( batch ):较大的批量大小可以稳定训练,但可能需要更多内存。
  • Learning Rate (lr0): Controls the step size for weight updates; smaller rates offer fine adjustments but slow convergence.
    学习率 ( lr0 ):控制权重更新的步长;较小的利率可以提供精细的调整,但收敛速度较慢。
  • Momentum (momentum): Helps accelerate gradient vectors in the right directions, dampening oscillations.
    动量 ( momentum ):有助于加速正确方向的梯度矢量,抑制振荡。
  • Image Size (imgsz): Larger image sizes can improve accuracy but increase computational load.
    图像大小 ( imgsz ):较大的图像大小可以提高准确性,但会增加计算负载。

如何设置训练 YOLO 模型的学习率?

学习率 ( lr0 ) 对于优化至关重要。常见的起点是 SGD 的 0.01 或 Adam 的 0.001 。监控培训指标并在必要时进行调整至关重要。使用余弦学习率调度程序 ( cos_lr ) 或预热技术 ( warmup_epochs 、 warmup_momentum ) 在训练期间动态修改速率。

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值