暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于目标检测训练界面、功能及代码框架

追梦IT人 2025-04-25
90

目标检测训练

功能介绍:目标检测训练是利用标注好的数据来训练模型,使其能够准确地检测图像中的目标物体。通过调整训练参数,可以优化模型的性能,提高检测的准确性和效率。


前置条件:建议在待标注的数据集根目录下增加一个<数据集名称>.yaml的配置文件,配置内容如下:


操作步骤

  1. 进入训练界面:在平台主界面中,找到并点击目标检测训练功能入口,进入训练界面。界面主要分为设置区和命令区。

  2. 设置训练参数 - 第一区域


    • 迭代次数(epochs)
      :默认值为 100,可调整范围是 10 - 1000。迭代次数表示模型对整个数据集进行遍历的次数,适当增加迭代次数可以提高模型的学习效果,但也会增加训练时间。
    • 批量大小(batch_size)
      :默认值为 16,可调整范围是 16 - 16 * 16。批量大小指的是在一次迭代中同时处理的样本数量,合适的批量大小可以提高内存利用率和训练速度。
    • 图像大小(imgsz)
      :默认值为 640,所有输入模型的图像都将被调整为该尺寸,图像大小会影响模型的准确度和计算复杂度。
    • 等待轮数(patience)
      :默认值为 100,可通过输入框输入自定义数字。等待轮数表示在验证指标没有改善的情况下,模型继续训练的轮数,之后将提前停止训练,以防止过拟合。
    • 初始学习率(lr0)
      :默认值为 0.01,可通过输入框输入自定义数字。学习率控制着模型参数更新的步长,对模型的收敛速度和性能有重要影响。
  3. 设置训练参数 - 第二区域


    • 是否保存模型权重(save)
      :默认值为 True,可进行选择。启用该选项后,模型在训练过程中会保存检查点和最终的模型权重,方便后续恢复训练或进行模型部署。
    • 保存模型权重周期(save_period)
      :默认值为 - 1,可通过输入框输入自定义数字。该参数表示保存模型检查点的频率,以轮数为单位,值为 - 1 时禁用此功能。
    • 训练设备(device)
      :默认值为 cpu(目前只支持cpu,GPU模式尚未测试)。用于指定模型训练所使用的计算设备,选择合适的设备可以显著提高训练速度。
    • 工作线程数(workers)
      :默认值为 8,可通过输入框输入自定义数字。工作线程数影响数据预处理和输入模型的速度,在多 GPU 设置中尤其重要。
    • 优化器类型(optimizer)
      :默认值为 'AdamW',可选择 Auto、SGD、Adam、AdamW、NAdam、RAdam、RMSProp 等选项。优化器用于调整模型的权重,以最小化损失函数,不同的优化器具有不同的特点和适用场景。
  4. 设置训练参数 - 第三区域:“模型名称(model)” 默认值为空,点击“选择模型文件”按钮,在弹出的文件选择对话框中选择预训练模型(.pt 文件),选择后文件路径将显示在相应的输入框中。预训练模型默认放在dataset的model目录下

  5. 设置训练参数 - 第四区域:“数据集路径(data)” 默认值为空,点击“数据集路径”按钮,在弹出的文件选择对话框中选择数据集配置文件(.yaml 文件),选择后文件路径将显示在相应的输入框中。这里的yaml文件要新建

  6. 开始训练:设置好所有训练参数后,点击命令区的“训练”按钮。系统会收集设置区的所有输入值后,开始训练。训练过程中,控制台的输出信息会同步显示在控制台区的控制台中。训练结束后,系统会根据控制台输出和 YOLO 训练产生的变量,计算各训练指标,并将这些指标显示在控制台区的训练图表中。

后置过程:在控制台区的窗口的最后两行中找到Results saved to 的目录,在资源管理器打开,并找到其子目录weights,将best.pt拷贝到models目录下,并将文件名改名为数据集的名称,为将来预测做准备

训练完成最终的界面见下面:

目标检测训练界面函数、类及方法的功能

  • TrainingUI
    :继承自QWidget
    ,用于创建目标检测图像训练的用户界面。

方法

  1. __init__
    :初始化TrainingUI
    类的实例,设置窗口标题、大小和界面风格,调用ui_init
    方法初始化界面。
  2. ui_init
    :创建主垂直布局,分别调用create_control_area
    create_setting_area
    create_command_area
    方法创建控制台区、设置区和命令区,并将它们添加到主布局中。
  3. create_control_area
    :创建控制台区的组框,添加控制台和训练图表到水平布局中,并返回该组框。
  4. create_setting_area
    :创建设置区的组框,设置多个训练参数的输入控件,包括迭代次数、批量大小、图像大小等,分三个区域布局,并返回该组框。
  5. create_command_area
    :创建命令区的组框,添加训练按钮和关闭按钮到水平布局中,并返回该组框。
  6. select_model
    :弹出文件选择对话框,让用户选择模型文件(.pt
    .yaml
    ),并将选择的文件路径显示在界面上。
  7. select_data
    :弹出文件选择对话框,让用户选择数据集配置文件(.yaml
    ),并将选择的文件路径显示在界面上。
  8. start_training
    :启动一个新线程来调用train_model
    方法,避免训练过程中界面假死。
  9. train_model
    :获取设置区的所有输入值,检查模型和数据集路径是否选择,若选择则加载模型并开始训练,将训练过程信息输出到控制台


目标检测训练界面代码层级关系


TrainingUI
├── __init__
│   └── ui_init
│       ├── create_control_area
│       ├── create_setting_area
│       └── create_command_area
├── select_model
├── select_data
├── start_training
│   └── train_model



需要注意的是内存资源不足,在控制台会报:

训练出错,返回码: 3221225477

最后欢迎关注公众号:python与大数据分析

文章转载自追梦IT人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论