数据集包含原图、标注图及相应的文件列表文件。
遥感影像的格式多种多样,不同传感器产生的数据格式也可能不同。
PaddleSeg已兼容以下4种格式图片读取:
tif
png
img
npy
原图数据的尺寸应为(h, w, channel),其中h, w为图像的高和宽,channel为图像的通道数。
标注图像必须为单通道图像,像素值即为对应的类别,像素标注类别需要从0开始递增。 例如0,1,2,3表示有4种类别,标注类别最多为256类。其中可以指定特定的像素值用于表示该值的像素不参与训练和评估(默认为255)。
文件列表文件包括train.txt
,val.txt
,test.txt
和labels.txt
.
train.txt
,val.txt
和test.txt
文本以空格为分割符分为两列,第一列为图像文件相对于dataset的相对路径,第二列为标注图像文件相对于dataset的相对路径。如下所示:
images/xxx1.tif annotations/xxx1.png
images/xxx2.tif annotations/xxx2.png
...
labels.txt
: 每一行为一个单独的类别,相应的行号即为类别对应的id(行号从0开始),如下所示:
labelA
labelB
...
数据集切分有2种方式:随机切分和手动切分。对于这2种方式,PaddleSeg均提供了生成文件列表的脚本,您可以按需要选择。
数据文件结构如下:
./dataset/ # 数据集根目录
|--images # 原图目录
| |--xxx1.tif
| |--...
| └--...
|
|--annotations # 标注图目录
| |--xxx1.png
| |--...
| └--...
其中,相应的文件名可根据需要自行定义。
使用命令如下,支持通过不同的Flags来开启特定功能。
python tools/split_dataset_list.py <dataset_root> <images_dir_name> <labels_dir_name> ${FLAGS}
参数说明:
- dataset_root: 数据集根目录
- images_dir_name: 原图目录名
- labels_dir_name: 标注图目录名
FLAGS说明:
FLAG | 含义 | 默认值 | 参数数目 |
---|---|---|---|
--split | 数据集切分比例 | 0.7 0.3 0 | 3 |
--separator | 文件列表分隔符 | " " | 1 |
--format | 图片和标签集的数据格式 | "tif" "png" | 2 |
--label_class | 标注类别 | '__background__' '__foreground__' | 若干 |
--postfix | 按文件主名(无扩展名)是否包含指定后缀对图片和标签集进行筛选 | "" ""(2个空字符) | 2 |
运行后将在数据集根目录下生成train.txt
,val.txt
,test.txt
和labels.txt
.
Note: 生成文件列表要求:要么原图和标注图片数量一致,要么只有原图,没有标注图片。若数据集缺少标注图片,将生成不含分隔符和标注图片路径的文件列表。
python tools/split_dataset_list.py <dataset_root> images annotations --split 0.6 0.2 0.2 --format tif png
数据目录手工划分成如下结构:
./dataset/ # 数据集根目录
├── annotations # 标注目录
│ ├── test
│ │ ├── ...
│ │ └── ...
│ ├── train
│ │ ├── ...
│ │ └── ...
│ └── val
│ ├── ...
│ └── ...
└── images # 原图目录
├── test
│ ├── ...
│ └── ...
├── train
│ ├── ...
│ └── ...
└── val
├── ...
└── ...
其中,相应的文件名可根据需要自行定义。
使用命令如下,支持通过不同的Flags来开启特定功能。
python tools/create_dataset_list.py <dataset_root> ${FLAGS}
参数说明:
- dataset_root: 数据集根目录
FLAGS说明:
FLAG | 含义 | 默认值 | 参数数目 |
---|---|---|---|
--separator | 文件列表分隔符 | " " | 1 |
--folder | 图片和标签集的文件夹名 | "images" "annotations" | 2 |
--second_folder | 训练/验证/测试集的文件夹名 | "train" "val" "test" | 若干 |
--format | 图片和标签集的数据格式 | "tif" "png" | 2 |
--label_class | 标注类别 | '__background__' '__foreground__' | 若干 |
--postfix | 按文件主名(无扩展名)是否包含指定后缀对图片和标签集进行筛选 | "" ""(2个空字符) | 2 |
运行后将在数据集根目录下生成train.txt
,val.txt
,test.txt
和labels.txt
.
Note: 生成文件列表要求:要么原图和标注图片数量一致,要么只有原图,没有标注图片。若数据集缺少标注图片,将生成不含分隔符和标注图片路径的文件列表。
若您已经按上述说明整理好了数据集目录结构,可以运行下面的命令生成文件列表。
# 生成文件列表,其分隔符为空格,图片和标签集的数据格式都为png
python tools/create_dataset_list.py <dataset_root> --separator " " --format png png
# 生成文件列表,其图片和标签集的文件夹名为img和gt,训练和验证集的文件夹名为training和validation,不生成测试集列表
python tools/create_dataset_list.py <dataset_root> \
--folder img gt --second_folder training validation