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

关于目标检测数据集划分界面、功能及代码框架

追梦IT人 2025-04-24
180

目标检测数据集划分

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


操作步骤

  1. 打开数据集划分界面:在平台主界面中,找到并点击目标检测数据集划分功能入口,进入数据集划分界面。界面主要分为设定源文件区、设定目标文件区和数据集划分区。

  2. 设定源文件路径:在设定源文件区,点击“设定文件夹”按钮,分别为“源数据集图片文件夹”和“源 Text 标注文件夹”选择路径。选择后,相应文件夹的全路径将显示在对应的主界面上。

  3. 设定目标文件路径:在设定目标文件区,点击“设定文件夹”按钮,分别为“目标数据集图片文件夹”和“目标 Text 标注文件夹”选择路径(yolo训练默认,images和labels在同一个文件夹下)。选择后,相应文件夹的全路径将显示在对应的主界面上。

  4. 选择数据集划分比例:在数据集划分区,有训练集、验证集和测试集的 CheckBox 选项。训练集和验证集默认必选且不可取消选择,测试集默认不选。


    • 若不勾选测试集,训练集和验证集将按照 8:2 的比例进行划分。
    • 若勾选测试集,训练集、验证集和测试集将按照 7:2:1 的比例进行划分。
  5. 执行数据集划分:点击“划分数据集”按钮后,系统会首先弹出一个进度条窗口。然后,系统会基于随机原则对数据集图片进行排序,并按照您选择的比例进行训练集、验证集和测试集的划分。同时,标注文件会根据图片的划分情况进行相应的划分。最后,系统会在目标数据集图片文件夹和目标 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

本电脑由于配置原因,在前文增强时只做了灰度变换、亮度调节、高斯噪声、高斯模糊

点击划分数据集后,看到的图像和标注文件如下:



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

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

评论