diff --git a/docs/annotation/jingling2seg.md b/docs/annotation/jingling2seg.md index 2637df5146e6bd5027600a26a42d5c2a6d3ece80..45aec0ff2f61f4766cfcf0c8449fcbe84ecd1c74 100644 --- a/docs/annotation/jingling2seg.md +++ b/docs/annotation/jingling2seg.md @@ -54,6 +54,7 @@ **注意:** 对于中间有空洞的目标(例如游泳圈),暂不支持对空洞部分的标注。如有需要,可借助[labelme](./labelme2seg.md)。 ## 3 数据格式转换 +最后用我们提供的数据转换脚本将上述标注工具产出的数据格式转换为模型训练时所需的数据格式。 * 经过数据格式转换后的数据集目录结构如下: diff --git a/docs/annotation/labelme2seg.md b/docs/annotation/labelme2seg.md index a270591d06131ec48f4ebb0d25ec206031956a24..5fe362274d54278af0ed8d8afb839e96609aa52a 100644 --- a/docs/annotation/labelme2seg.md +++ b/docs/annotation/labelme2seg.md @@ -64,6 +64,7 @@ LableMe产出的真值文件可参考我们给出的文件夹`docs/annotation/la ## 3 数据格式转换 +最后用我们提供的数据转换脚本将上述标注工具产出的数据格式转换为模型训练时所需的数据格式。 * 经过数据格式转换后的数据集目录结构如下: diff --git a/docs/data_prepare.md b/docs/data_prepare.md index 734a13c6f3ba4b3136e82627519a1c92f703b525..c6d0d5e65932c54ee5d2a8231f51cd731172ecd7 100644 --- a/docs/data_prepare.md +++ b/docs/data_prepare.md @@ -48,49 +48,23 @@ PddleSeg已支持2种标注工具:LabelMe、精灵数据标注工具。标注 - [LabelMe标注教程](annotation/labelme2seg.md) - [精灵数据标注工具教程](annotation/jingling2seg.md) -最后用我们提供的数据转换脚本将上述标注工具产出的数据格式转换为模型训练时所需的数据格式。 ## 文件列表 ### 文件列表规范 -PaddleSeg采用通用的文件列表方式组织训练集、验证集和测试集。 - -以Cityscapes数据集为例, 我们需要整理出训练集、验证集、测试集对应的原图和标注文件列表用于PaddleSeg训练即可。 - -其中`DATASET.DATA_DIR`为数据根目录,文件列表的路径以数据集根目录作为相对路径起始点。 - -``` -./cityscapes/ # 数据集根目录 -├── gtFine # 标注目录 -│   ├── test -│   │   ├── berlin -│   │   └── ... -│   ├── train -│   │   ├── aachen -│   │   └── ... -│   └── val -│   ├── frankfurt -│   └── ... -└── leftImg8bit # 原图目录 - ├── test - │   ├── berlin - │   └── ... - ├── train - │   ├── aachen - │   └── ... - └── val - ├── frankfurt - └── ... -``` +PaddleSeg采用通用的文件列表方式组织训练集、验证集和测试集。在训练、评估、可视化过程前必须准备好相应的文件列表。 文件列表组织形式如下 ``` 原始图片路径 [SEP] 标注图片路径 ``` +其中`[SEP]`是文件路径分割符,可以在`DATASET.SEPARATOR`配置项中修改, 默认为空格。文件列表的路径以数据集根目录作为相对路径起始点,`DATASET.DATA_DIR`即为数据集根目录。 -其中`[SEP]`是文件路径分割符,可以在`DATASET.SEPARATOR`配置项中修改, 默认为空格。 +如下图所示,左边为原图的图片路径,右边为图片对应的标注路径。 + +![cityscapes_filelist](./imgs/file_list.png) **注意事项** @@ -98,11 +72,8 @@ PaddleSeg采用通用的文件列表方式组织训练集、验证集和测试 * 文件列表请使用**UTF-8**格式保存, PaddleSeg默认使用UTF-8编码读取file_list文件 -如下图所示,左边为原图的图片路径,右边为图片对应的标注路径。 - -![cityscapes_filelist](./imgs/file_list.png) - 若数据集缺少标注图片,则文件列表不用包含分隔符和标注图片路径,如下图所示。 + ![cityscapes_filelist](./imgs/file_list2.png) **注意事项** @@ -114,30 +85,10 @@ PaddleSeg采用通用的文件列表方式组织训练集、验证集和测试 完整的配置信息可以参考[`./docs/annotation/cityscapes_demo`](../docs/annotation/cityscapes_demo/)目录下的yaml和文件列表。 -### 文件列表生成 -PaddleSeg提供了生成文件列表的使用脚本,可适用于自定义数据集或cityscapes数据集,并支持通过不同的Flags来开启特定功能。 -``` -python pdseg/tools/create_dataset_list.py ${FLAGS} -``` -运行后将在数据集根目录下生成训练/验证/测试集的文件列表(文件主名与`--second_folder`一致,扩展名为`.txt`)。 - -**Note:** 若训练/验证/测试集缺少标注图片,仍可自动生成不含分隔符和标注图片路径的文件列表。 +### 数据集目录结构整理 -#### 命令行FLAGS列表 +如果用户想要生成数据集的文件列表,需要整理成如下的目录结构(类似于Cityscapes数据集): -|FLAG|用途|默认值|参数数目| -|-|-|-|-| -|--type|指定数据集类型,`cityscapes`或`自定义`|`自定义`|1| -|--separator|文件列表分隔符|"|"|1| -|--folder|图片和标签集的文件夹名|"images" "annotations"|2| -|--second_folder|训练/验证/测试集的文件夹名|"train" "val" "test"|若干| -|--format|图片和标签集的数据格式|"jpg" "png"|2| -|--postfix|按文件主名(无扩展名)是否包含指定后缀对图片和标签集进行筛选|"" ""(2个空字符)|2| - -#### 使用示例 -- **对于自定义数据集** - -如果用户想要生成自己数据集的文件列表,需要整理成如下的目录结构: ``` ./dataset/ # 数据集根目录 ├── annotations # 标注目录 @@ -162,9 +113,32 @@ python pdseg/tools/create_dataset_list.py ${FLAGS} └── ... Note:以上目录名可任意 ``` -必须指定自定义数据集目录,可以按需要设定FLAG。 -**Note:** 无需指定`--type`。 +### 文件列表生成 +PaddleSeg提供了生成文件列表的使用脚本,可适用于自定义数据集或cityscapes数据集,并支持通过不同的Flags来开启特定功能。 +``` +python pdseg/tools/create_dataset_list.py ${FLAGS} +``` +运行后将在数据集根目录下生成训练/验证/测试集的文件列表(文件主名与`--second_folder`一致,扩展名为`.txt`)。 + +**Note:** 若训练/验证/测试集缺少标注图片,仍可自动生成不含分隔符和标注图片路径的文件列表。 + +#### 命令行FLAGS列表 + +|FLAG|用途|默认值|参数数目| +|-|-|-|-| +|--type|指定数据集类型,`cityscapes`或`自定义`|`自定义`|1| +|--separator|文件列表分隔符|"|"|1| +|--folder|图片和标签集的文件夹名|"images" "annotations"|2| +|--second_folder|训练/验证/测试集的文件夹名|"train" "val" "test"|若干| +|--format|图片和标签集的数据格式|"jpg" "png"|2| +|--postfix|按文件主名(无扩展名)是否包含指定后缀对图片和标签集进行筛选|"" ""(2个空字符)|2| + +#### 使用示例 +- **对于自定义数据集** + +若您已经按上述说明整理好了数据集目录结构,可以运行下面的命令生成文件列表。 + ``` # 生成文件列表,其分隔符为空格,图片和标签集的数据格式都为png python pdseg/tools/create_dataset_list.py --separator " " --format png png @@ -174,10 +148,18 @@ python pdseg/tools/create_dataset_list.py --separator " " --f python pdseg/tools/create_dataset_list.py \ --folder img gt --second_folder training validation ``` - +**Note:** 必须指定自定义数据集目录,可以按需要设定FLAG。无需指定`--type`。 - **对于cityscapes数据集** +若您使用的是cityscapes数据集,可以运行下面的命令生成文件列表。 + +``` +# 生成cityscapes文件列表,其分隔符为逗号 +python pdseg/tools/create_dataset_list.py --type cityscapes --separator "," +``` +**Note:** + 必须指定cityscapes数据集目录,`--type`必须为`cityscapes`。 在cityscapes类型下,部分FLAG将被重新设定,无需手动指定,具体如下: @@ -189,7 +171,3 @@ python pdseg/tools/create_dataset_list.py \ |--postfix|"_leftImg8bit" "_gtFine_labelTrainIds"| 其余FLAG可以按需要设定。 -``` -# 生成cityscapes文件列表,其分隔符为逗号 -python pdseg/tools/create_dataset_list.py --type cityscapes --separator "," -``` diff --git a/docs/usage.md b/docs/usage.md index 596d4cf112ef3c439edd3c5068720d45483f4748..1c1d18c0b625a962c103171271d5e204705f458e 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -16,8 +16,8 @@ python pdseg/vis.py ${FLAGS} ${OPTIONS} * FLAGS必须位于OPTIONS之前,否会将会遇到报错,例如如下的例子: ```shell -# FLAGS "--cfg configs/cityscapes.yaml" 必须在 OPTIONS "BATCH_SIZE 1" 之前 -python pdseg/train.py BATCH_SIZE 1 --cfg configs/cityscapes.yaml +# FLAGS "--cfg configs/unet_pet.yaml" 必须在 OPTIONS "BATCH_SIZE 1" 之前 +python pdseg/train.py BATCH_SIZE 1 --cfg configs/unet_pet.yaml ``` ## 命令行FLAGS列表