关于目标检测训练界面、功能及代码框架
训练结束后,系统会根据控制台输出和 YOLO 训练产生的变量,计算各训练指标,并将这些指标显示在控制台区的训练图表中。:“模型名称(model)” 默认值为空,点击“选择模型文件”按钮,在弹出的文件选择对话框中选择预训练模型(.pt 文件),选择后文件路径将显示在相应的输入框中。:在控制台区的窗口的最后两行中找到Results saved to 的目录,在资源管理器打开,并找到其子目录weight
目标检测训练
功能介绍:目标检测训练是利用标注好的数据来训练模型,使其能够准确地检测图像中的目标物体。通过调整训练参数,可以优化模型的性能,提高检测的准确性和效率。
前置条件:建议在待标注的数据集根目录下增加一个<数据集名称>.yaml的配置文件,配置内容如下:
操作步骤:
-
进入训练界面:在平台主界面中,找到并点击目标检测训练功能入口,进入训练界面。界面主要分为设置区和命令区。
-
设置训练参数 - 第一区域:
- 迭代次数(epochs)
:默认值为 100,可调整范围是 10 - 1000。迭代次数表示模型对整个数据集进行遍历的次数,适当增加迭代次数可以提高模型的学习效果,但也会增加训练时间。
- 批量大小(batch_size)
:默认值为 16,可调整范围是 16 - 16 * 16。批量大小指的是在一次迭代中同时处理的样本数量,合适的批量大小可以提高内存利用率和训练速度。
- 图像大小(imgsz)
:默认值为 640,所有输入模型的图像都将被调整为该尺寸,图像大小会影响模型的准确度和计算复杂度。
- 等待轮数(patience)
:默认值为 100,可通过输入框输入自定义数字。等待轮数表示在验证指标没有改善的情况下,模型继续训练的轮数,之后将提前停止训练,以防止过拟合。
- 初始学习率(lr0)
:默认值为 0.01,可通过输入框输入自定义数字。学习率控制着模型参数更新的步长,对模型的收敛速度和性能有重要影响。
-
设置训练参数 - 第二区域:
-
- 是否保存模型权重(save)
:默认值为 True,可进行选择。启用该选项后,模型在训练过程中会保存检查点和最终的模型权重,方便后续恢复训练或进行模型部署。
- 保存模型权重周期(save_period)
:默认值为 - 1,可通过输入框输入自定义数字。该参数表示保存模型检查点的频率,以轮数为单位,值为 - 1 时禁用此功能。
- 训练设备(device)
:默认值为 cpu(目前只支持cpu,GPU模式尚未测试)。用于指定模型训练所使用的计算设备,选择合适的设备可以显著提高训练速度。
- 工作线程数(workers)
:默认值为 8,可通过输入框输入自定义数字。工作线程数影响数据预处理和输入模型的速度,在多 GPU 设置中尤其重要。
- 优化器类型(optimizer)
:默认值为 'AdamW',可选择 Auto、SGD、Adam、AdamW、NAdam、RAdam、RMSProp 等选项。优化器用于调整模型的权重,以最小化损失函数,不同的优化器具有不同的特点和适用场景。
- 是否保存模型权重(save)
-
设置训练参数 - 第三区域:“模型名称(model)” 默认值为空,点击“选择模型文件”按钮,在弹出的文件选择对话框中选择预训练模型(.pt 文件),选择后文件路径将显示在相应的输入框中。预训练模型默认放在dataset的model目录下
-
设置训练参数 - 第四区域:“数据集路径(data)” 默认值为空,点击“数据集路径”按钮,在弹出的文件选择对话框中选择数据集配置文件(.yaml 文件),选择后文件路径将显示在相应的输入框中。这里的yaml文件要新建
-
开始训练:设置好所有训练参数后,点击命令区的“训练”按钮。系统会收集设置区的所有输入值后,开始训练。训练过程中,控制台的输出信息会同步显示在控制台区的控制台中。训练结束后,系统会根据控制台输出和 YOLO 训练产生的变量,计算各训练指标,并将这些指标显示在控制台区的训练图表中。
-
后置过程:在控制台区的窗口的最后两行中找到Results saved to 的目录,在资源管理器打开,并找到其子目录weights,将best.pt拷贝到models目录下,并将文件名改名为数据集的名称,为将来预测做准备
训练完成最终的界面见下面:
目标检测训练界面函数、类及方法的功能
类
TrainingUI
:继承自
QWidget
,用于创建目标检测图像训练的用户界面。
方法
__init__
:初始化
TrainingUI
类的实例,设置窗口标题、大小和界面风格,调用ui_init
方法初始化界面。ui_init
:创建主垂直布局,分别调用
create_control_area
、create_setting_area
和create_command_area
方法创建控制台区、设置区和命令区,并将它们添加到主布局中。create_control_area
:创建控制台区的组框,添加控制台和训练图表到水平布局中,并返回该组框。
create_setting_area
:创建设置区的组框,设置多个训练参数的输入控件,包括迭代次数、批量大小、图像大小等,分三个区域布局,并返回该组框。
create_command_area
:创建命令区的组框,添加训练按钮和关闭按钮到水平布局中,并返回该组框。
select_model
:弹出文件选择对话框,让用户选择模型文件(
.pt
或.yaml
),并将选择的文件路径显示在界面上。select_data
:弹出文件选择对话框,让用户选择数据集配置文件(
.yaml
),并将选择的文件路径显示在界面上。start_training
:启动一个新线程来调用
train_model
方法,避免训练过程中界面假死。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与大数据分析

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)