目标检测数据集划分
功能介绍:目标检测数据集划分功能将原始数据集按照一定比例划分为训练集、验证集和测试集。训练集用于模型的训练,验证集用于在训练过程中评估模型的性能,调整模型参数,测试集用于最终评估模型的泛化能力。合理的数据集划分对于训练出准确、稳定的模型至关重要。

操作步骤:
打开数据集划分界面:在平台主界面中,找到并点击目标检测数据集划分功能入口,进入数据集划分界面。界面主要分为设定源文件区、设定目标文件区和数据集划分区。
设定源文件路径:在设定源文件区,点击“设定文件夹”按钮,分别为“源数据集图片文件夹”和“源 Text 标注文件夹”选择路径。选择后,相应文件夹的全路径将显示在对应的主界面上。
设定目标文件路径:在设定目标文件区,点击“设定文件夹”按钮,分别为“目标数据集图片文件夹”和“目标 Text 标注文件夹”选择路径(yolo训练默认,images和labels在同一个文件夹下)。选择后,相应文件夹的全路径将显示在对应的主界面上。
选择数据集划分比例:在数据集划分区,有训练集、验证集和测试集的 CheckBox 选项。训练集和验证集默认必选且不可取消选择,测试集默认不选。
若不勾选测试集,训练集和验证集将按照 8:2 的比例进行划分。 若勾选测试集,训练集、验证集和测试集将按照 7:2:1 的比例进行划分。 执行数据集划分:点击“划分数据集”按钮后,系统会首先弹出一个进度条窗口。然后,系统会基于随机原则对数据集图片进行排序,并按照您选择的比例进行训练集、验证集和测试集的划分。同时,标注文件会根据图片的划分情况进行相应的划分。最后,系统会在目标数据集图片文件夹和目标 Text 标注文件夹中建立训练集、验证集和测试集的子目录,并将划分好的图片和标注文件移动到对应的子目录中。进度条完成后,系统会提示已完成数据集划分,点击“确定”后自动返回主界面。
目标检测数据集划分界面代码中类及方法的功能
类:DatasetDivisionUI
这是一个继承自QWidget
的用户界面类,用于创建目标检测数据集划分的图形用户界面(GUI)。
方法
__init__
初始化 DatasetDivisionUI
类的实例,显式定义各个QLabel
属性,并调用initUI
方法初始化界面。
initUI
设置窗口标题和几何位置。 创建并添加各个布局和组件到主布局中。
create_blank_label
创建一个空白的 QLabel
用于布局间隔。
create_source_group_box
创建一个 QGroupBox
用于设置源文件,包含源数据集图片文件夹和源 Text 标注文件夹的设置布局。
create_target_group_box
创建一个 QGroupBox
用于设置目标文件,包含目标数据集图片文件夹和目标 Text 标注文件夹的设置布局。
create_folder_setting_layout
创建一个 QHBoxLayout
用于文件夹设置,包含标题标签、路径标签和设置文件夹的按钮。
create_division_group_box
创建一个 QGroupBox
用于数据集划分,包含训练集、验证集和测试集的复选框。
create_command_group_box
创建一个 QGroupBox
作为命令区,包含划分数据集的按钮。
set_source_image_folder
弹出文件对话框让用户选择源数据集图片文件夹,并将选择的路径显示在相应的标签上。
set_source_text_folder
弹出文件对话框让用户选择源 Text 标注文件夹,并将选择的路径显示在相应的标签上。
set_target_image_folder
弹出文件对话框让用户选择目标数据集图片文件夹,并将选择的路径显示在相应的标签上。
set_target_text_folder
弹出文件对话框让用户选择目标 Text 标注文件夹,并将选择的路径显示在相应的标签上。
divide_dataset
获取源文件夹和目标文件夹的路径。 根据测试集复选框的状态设置训练集、验证集和测试集的比例。 创建训练集、验证集和测试集的图片和标注文件夹。 打乱源图片文件列表,计算各数据集的文件数量。 显示进度对话框,并启动一个线程来执行数据集划分操作。
_divide_dataset_thread
在线程中执行数据集划分操作,将图片和对应的标注文件复制到相应的数据集文件夹中。 更新进度对话框的进度。 划分完成后关闭进度对话框,发出提示音并处理事件。
目标检测数据集划分界面代码层级关系
DatasetDivisionUI
├── __init__
│ └── initUI
├── initUI
│ ├── create_blank_label
│ ├── create_source_group_box
│ │ ├── create_blank_label
│ │ ├── create_folder_setting_layout
│ │ └── create_blank_label
│ ├── create_blank_label
│ ├── create_target_group_box
│ │ ├── create_blank_label
│ │ ├── create_folder_setting_layout
│ │ └── create_blank_label
│ ├── create_blank_label
│ ├── create_division_group_box
│ │ ├── create_blank_label
│ │ └── create_blank_label
│ ├── create_command_group_box
│ └── create_blank_label
├── create_blank_label
├── create_source_group_box
│ ├── create_blank_label
│ ├── create_folder_setting_layout
│ │ └── set_source_image_folder
│ ├── create_blank_label
│ └── create_folder_setting_layout
│ └── set_source_text_folder
├── create_target_group_box
│ ├── create_blank_label
│ ├── create_folder_setting_layout
│ │ └── set_target_image_folder
│ ├── create_blank_label
│ └── create_folder_setting_layout
│ └── set_target_text_folder
├── create_folder_setting_layout
├── create_division_group_box
│ ├── create_blank_label
│ ├── create_blank_label
│ └── create_blank_label
├── create_command_group_box
│ └── divide_dataset
├── set_source_image_folder
├── set_source_text_folder
├── set_target_image_folder
├── set_target_text_folder
├── divide_dataset
│ └── _divide_dataset_thread
└── _divide_dataset_thread
本电脑由于配置原因,在前文增强时只做了灰度变换、亮度调节、高斯噪声、高斯模糊
点击划分数据集后,看到的图像和标注文件如下:






