# yolo_data_toolsbox **Repository Path**: jia0510/yolo_data_toolsbox ## Basic Information - **Project Name**: yolo_data_toolsbox - **Description**: 用于处理yolo标签转换,切分,精度验证工具处理一键化代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据集相关 该目录提供了分类、HBB 目标检测、OBB 目标检测、实例分割四类数据集的一键整理脚本,用于: - 数据切分(未切分原始数据 -> train/val/test) - 生成训练所需清单文件(`train.txt`、`val.txt`、`test.txt`) - 生成离线精度验证所需文件(如分类 `cls_gts/`、检测 `gts/`、OBB 原始标签目录等) - 生成训练配置文件(如 `detect.yaml`、`obb.yaml`、`segment.yaml`) 详细转换细节、验证代码说明请参考 [dataset_utils/README.md](dataset_utils/README.md)。 ## 1. 分类数据集 入口脚本:[script_classify.sh](script_classify.sh) 适用目录: ### 1.1 未切分目录 ```text dataset_root/ class_a/*.jpg class_b/*.jpg ``` 执行后可生成: - `train/`、`val/` - `train.txt`、`val.txt` - `label_list.txt` - `class_map.txt` - `cls_gts/` 脚本内关键参数: - `dataset_root`:原始分类数据目录 - `output_root`:输出目录 - `train_ratio`:训练集比例 - `gt_format`:分类 GT 格式,可选 `name` 或 `id` ### 1.2 已切分目录 ```text dataset_root/ train/class_a/*.jpg val/class_a/*.jpg ``` 此时无需再传 `train_ratio`,可直接在原目录生成验证所需文件。 --- ## 2. HBB 目标检测(单图单标签 -> VOC -> YOLO) 入口脚本:[script_hbb.sh](script_hbb.sh) 推荐输入目录: ```text dataset_root/ images/*.jpg labels_custom/*.json ``` 脚本会复用 [dataset_utils/label_converter.py](dataset_utils/label_converter.py)、[dataset_utils/create_voc.py](dataset_utils/create_voc.py)、[dataset_utils/voc2yolo.py](dataset_utils/voc2yolo.py)、[dataset_utils/voc2xyxy.py](dataset_utils/voc2xyxy.py) 中已有逻辑,完成: 1. 每图一个矩形框 json -> VOC XML 2. VOC XML -> YOLO HBB 标签 3. 按 VOC 划分 train/val 并生成验证 GT 该流程直接支持你附件这种“每张图片对应一个 json”的矩形框标注格式,可通过 `--custom-json-dir` 转成 VOC 再继续后续流程。 也兼容直接输入已有 VOC 标注: ```text dataset_root/ images/*.jpg voc_labels/*.xml ``` 执行后可生成: - `labels/*.txt`(YOLO HBB 标签) - `trainval/train.txt` - `trainval/val.txt` - `train_stem.txt` - `val_stem.txt` - `gts/*.txt`(离线检测精度验证 GT) - `label_list.txt` - `class_map.txt` - `detect.yaml` 脚本内关键参数: - `img_dir`:图片目录 - `voc_anno_dir`:已有 VOC XML 标注目录 - `custom_json_dir`:每图一个 json 的矩形框标注目录,可与 `voc_anno_dir` 二选一 - `output_root`:输出目录 - `train_ratio`:训练/验证划分比例 - `classes`:类别列表,顺序决定类别 ID 该输出可直接与 HBB 离线精度验证流程配合使用。 --- ## 3. OBB 目标检测(DOTA -> YOLO OBB) 入口脚本:[script_obb.sh](script_obb.sh) ### 3.1 未切分目录 ```text dataset_root/ images/*.jpg labelTxt/*.txt ``` 执行后可生成: - `images/train`、`images/val`、`images/test` - `labels/train_original`、`labels/val_original`、`labels/test_original` - `labels/train`、`labels/val`、`labels/test`(YOLO OBB 标签) - `train.txt`、`val.txt`、`test.txt` - `label_list.txt` - `class_map.txt` - `obb.yaml` 脚本会直接复用 [dataset_utils/split.py](dataset_utils/split.py) 和 [dataset_utils/dota2yolobb.py](dataset_utils/dota2yolobb.py) 中的现有逻辑,完成 DOTA 切分以及 YOLO-OBB 标签转换。 另外也支持你附件这种“每张图片对应一个 json”的旋转框标注格式,可通过 `--custom-json-dir` 先转成 DOTA txt,再继续切分和 YOLO-OBB 转换。 ### 3.2 已切分目录 ```text dataset_root/ images/train/*.jpg images/val/*.jpg labels/train_original/*.txt labels/val_original/*.txt ``` 此时可直接在原目录补齐列表文件与 YOLO-OBB 标签。 脚本内关键参数: - `dataset_root`:OBB 数据根目录 - `output_root`:输出目录 - `ratio`:train/val/test 划分比例 - `mode`:`copy` 或 `move` - `classes`:类别列表,顺序决定类别 ID 该输出可直接与 OBB 离线精度验证流程配合使用,其中 `labels/val_original` 可作为原始四点框 GT 来源。 --- ## 4. 实例分割(单图单标签 -> YOLO Seg) 入口脚本:[script_segment.sh](script_segment.sh) ### 4.1 推荐输入目录 ```text dataset_root/ images/*.jpg labels_custom/*.json ``` 脚本会复用 [dataset_utils/label_converter.py](dataset_utils/label_converter.py) 中多边形 custom json -> YOLO Seg 的转换逻辑,再完成 train/val/test 切分。 该流程直接支持你附件这种“每张图片对应一个 json”的多边形标注格式,可通过 `--custom-json-dir` 直接转成 YOLO Seg 标签。 执行后可生成: - `images/train`、`images/val`、`images/test` - `labels/train`、`labels/val`、`labels/test` - `train.txt`、`val.txt`、`test.txt` - `label_list.txt` - `class_map.txt` - `segment.yaml` ### 4.2 已有 YOLO Seg 目录 ```text dataset_root/ images/train/*.jpg images/val/*.jpg labels/train/*.txt labels/val/*.txt ``` 此时可直接在原目录生成列表文件和配置文件。 脚本内关键参数: - `dataset_root`:分割数据根目录 - `output_root`:输出目录 - `ratio`:train/val/test 划分比例 - `mode`:`copy` 或 `move` - `classes`:类别列表,顺序决定类别 ID 该输出可直接与实例分割离线精度验证流程配合使用。 --- ## 5. 推荐使用方式 1. 先根据任务类型修改对应 `script_*.sh` 中的路径、类别、比例参数。 2. 执行对应脚本完成数据整理。 3. 训练时使用生成的 `*.yaml` 与 `train.txt/val.txt`。 4. 离线评估时使用生成的 GT 文件目录与预测结果目录,配合 [dataset_utils/metrics.py](dataset_utils/metrics.py) 中对应验证器使用。 如果需要查看更细的字段定义、数据格式和验证示例,请继续参考 [dataset_utils/README.md](dataset_utils/README.md)。