16 KiB
准备数据集(待更新)
推荐用软链接,将数据集根目录链接到 $MMSEGMENTATION/data
里。如果您的文件夹结构是不同的,您也许可以试着修改配置文件里对应的路径。
mmsegmentation
├── mmseg
├── tools
├── configs
├── data
│ ├── cityscapes
│ │ ├── leftImg8bit
│ │ │ ├── train
│ │ │ ├── val
│ │ ├── gtFine
│ │ │ ├── train
│ │ │ ├── val
│ ├── VOCdevkit
│ │ ├── VOC2012
│ │ │ ├── JPEGImages
│ │ │ ├── SegmentationClass
│ │ │ ├── ImageSets
│ │ │ │ ├── Segmentation
│ │ ├── VOC2010
│ │ │ ├── JPEGImages
│ │ │ ├── SegmentationClassContext
│ │ │ ├── ImageSets
│ │ │ │ ├── SegmentationContext
│ │ │ │ │ ├── train.txt
│ │ │ │ │ ├── val.txt
│ │ │ ├── trainval_merged.json
│ │ ├── VOCaug
│ │ │ ├── dataset
│ │ │ │ ├── cls
│ ├── ade
│ │ ├── ADEChallengeData2016
│ │ │ ├── annotations
│ │ │ │ ├── training
│ │ │ │ ├── validation
│ │ │ ├── images
│ │ │ │ ├── training
│ │ │ │ ├── validation
│ ├── CHASE_DB1
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
│ ├── DRIVE
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
│ ├── HRF
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
│ ├── STARE
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
| ├── dark_zurich
| │ ├── gps
| │ │ ├── val
| │ │ └── val_ref
| │ ├── gt
| │ │ └── val
| │ ├── LICENSE.txt
| │ ├── lists_file_names
| │ │ ├── val_filenames.txt
| │ │ └── val_ref_filenames.txt
| │ ├── README.md
| │ └── rgb_anon
| │ | ├── val
| │ | └── val_ref
| ├── NighttimeDrivingTest
| | ├── gtCoarse_daytime_trainvaltest
| | │ └── test
| | │ └── night
| | └── leftImg8bit
| | | └── test
| | | └── night
│ ├── loveDA
│ │ ├── img_dir
│ │ │ ├── train
│ │ │ ├── val
│ │ │ ├── test
│ │ ├── ann_dir
│ │ │ ├── train
│ │ │ ├── val
│ ├── potsdam
│ │ ├── img_dir
│ │ │ ├── train
│ │ │ ├── val
│ │ ├── ann_dir
│ │ │ ├── train
│ │ │ ├── val
│ ├── vaihingen
│ │ ├── img_dir
│ │ │ ├── train
│ │ │ ├── val
│ │ ├── ann_dir
│ │ │ ├── train
│ │ │ ├── val
│ ├── iSAID
│ │ ├── img_dir
│ │ │ ├── train
│ │ │ ├── val
│ │ │ ├── test
│ │ ├── ann_dir
│ │ │ ├── train
│ │ │ ├── val
│ ├── synapse
│ │ ├── img_dir
│ │ │ ├── train
│ │ │ ├── val
│ │ ├── ann_dir
│ │ │ ├── train
│ │ │ ├── val
│ ├── REFUGE
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ │ ├── test
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
│ │ │ ├── test
Cityscapes
注册成功后,数据集可以在 这里 下载。
通常情况下,**labelTrainIds.png
被用来训练 cityscapes。
基于 cityscapesscripts,
我们提供了一个 脚本,
去生成 **labelTrainIds.png
。
# --nproc 8 意味着有 8 个进程用来转换,它也可以被忽略。
python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8
Pascal VOC
Pascal VOC 2012 可以在 这里 下载。 此外,许多最近在 Pascal VOC 数据集上的工作都会利用增广的数据,它们可以在 这里 找到。
如果您想使用增广后的 VOC 数据集,请运行下面的命令来将数据增广的标注转成正确的格式。
# --nproc 8 意味着有 8 个进程用来转换,它也可以被忽略。
python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8
关于如何拼接数据集 (concatenate) 并一起训练它们,更多细节请参考 拼接连接数据集 。
ADE20K
ADE20K 的训练集和验证集可以在 这里 下载。 您还可以在 这里 下载验证集。
Pascal Context
Pascal Context 的训练集和验证集可以在 这里 下载。 注册成功后,您还可以在 这里 下载验证集。
为了从原始数据集里切分训练集和验证集, 您可以在 这里 下载 trainval_merged.json。
如果您想使用 Pascal Context 数据集, 请安装 细节 然后再运行如下命令来把标注转换成正确的格式。
python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json
CHASE DB1
CHASE DB1 的训练集和验证集可以在 这里 下载。
为了将 CHASE DB1 数据集转换成 MMSegmentation 的格式,您需要运行如下命令:
python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip
这个脚本将自动生成正确的文件夹结构。
DRIVE
DRIVE 的训练集和验证集可以在 这里 下载。 在此之前,您需要注册一个账号,当前 '1st_manual' 并未被官方提供,因此需要您从其他地方获取。
为了将 DRIVE 数据集转换成 MMSegmentation 格式,您需要运行如下命令:
python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip
这个脚本将自动生成正确的文件夹结构。
HRF
首先,下载 healthy.zip glaucoma.zip, diabetic_retinopathy.zip, healthy_manualsegm.zip, glaucoma_manualsegm.zip 以及 diabetic_retinopathy_manualsegm.zip 。
为了将 HRF 数据集转换成 MMSegmentation 格式,您需要运行如下命令:
python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip
这个脚本将自动生成正确的文件夹结构。
STARE
首先,下载 stare-images.tar, labels-ah.tar 和 labels-vk.tar 。
为了将 STARE 数据集转换成 MMSegmentation 格式,您需要运行如下命令:
python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar
这个脚本将自动生成正确的文件夹结构。
Dark Zurich
因为我们只支持在此数据集上测试模型,所以您只需下载验证集 。
Nighttime Driving
因为我们只支持在此数据集上测试模型,所以您只需下载测试集 。
LoveDA
可以从 Google Drive 里下载 LoveDA数据集 。
或者它还可以从 zenodo 下载, 您需要运行如下命令:
# Download Train.zip
wget https://zenodo.org/record/5706578/files/Train.zip
# Download Val.zip
wget https://zenodo.org/record/5706578/files/Val.zip
# Download Test.zip
wget https://zenodo.org/record/5706578/files/Test.zip
对于 LoveDA 数据集,请运行以下命令下载并重新组织数据集
python tools/convert_datasets/loveda.py /path/to/loveDA
请参照 这里 来使用训练好的模型去预测 LoveDA 测试集并且提交到官网。
关于 LoveDA 的更多细节可以在这里 找到。
ISPRS Potsdam
Potsdam 数据集是一个有着2D 语义分割内容标注的城市遥感数据集。 数据集可以从挑战主页 获得。 需要其中的 '2_Ortho_RGB.zip' 和 '5_Labels_all_noBoundary.zip'。
对于 Potsdam 数据集,请运行以下命令下载并重新组织数据集
python tools/convert_datasets/potsdam.py /path/to/potsdam
使用我们默认的配置, 将生成 3456 张图片的训练集和 2016 张图片的验证集。
ISPRS Vaihingen
Vaihingen 数据集是一个有着2D 语义分割内容标注的城市遥感数据集。
数据集可以从挑战 主页. 需要其中的 'ISPRS_semantic_labeling_Vaihingen.zip' 和 'ISPRS_semantic_labeling_Vaihingen_ground_truth_eroded_COMPLETE.zip'。
对于 Vaihingen 数据集,请运行以下命令下载并重新组织数据集
python tools/convert_datasets/vaihingen.py /path/to/vaihingen
使用我们默认的配置 (clip_size
=512, stride_size
=256), 将生成 344 张图片的训练集和 398 张图片的验证集。
iSAID
iSAID 数据集(训练集/验证集/测试集)的图像可以从 DOTA-v1.0 下载.
iSAID 数据集(训练集/验证集)的注释可以从 iSAID 下载.
该数据集是一个大规模的实例分割(也可以用于语义分割)的遥感数据集.
下载后,在数据集转换前,您需要将数据集文件夹调整成如下格式.
│ ├── iSAID
│ │ ├── train
│ │ │ ├── images
│ │ │ │ ├── part1.zip
│ │ │ │ ├── part2.zip
│ │ │ │ ├── part3.zip
│ │ │ ├── Semantic_masks
│ │ │ │ ├── images.zip
│ │ ├── val
│ │ │ ├── images
│ │ │ │ ├── part1.zip
│ │ │ ├── Semantic_masks
│ │ │ │ ├── images.zip
│ │ ├── test
│ │ │ ├── images
│ │ │ │ ├── part1.zip
│ │ │ │ ├── part2.zip
python tools/convert_datasets/isaid.py /path/to/iSAID
使用我们默认的配置 (patch_width
=896, patch_height
=896, overlap_area
=384), 将生成 33,978 张图片的训练集和 11,644 张图片的验证集.
Synapse dataset
这个数据集可以在这个网页 里被下载. 我们参考了 TransUNet 里面的数据集预处理的设置, 它将原始数据集 (30 套 3D 样例) 切分出 18 套用于训练, 12 套用于验证. 请参考以下步骤来准备该数据集:
unzip RawData.zip
cd ./RawData/Training
随后新建 train.txt
和 val.txt
.
根据 TransUNet 来将训练集和验证集如下划分:
train.txt
img0005.nii.gz
img0006.nii.gz
img0007.nii.gz
img0009.nii.gz
img0010.nii.gz
img0021.nii.gz
img0023.nii.gz
img0024.nii.gz
img0026.nii.gz
img0027.nii.gz
img0028.nii.gz
img0030.nii.gz
img0031.nii.gz
img0033.nii.gz
img0034.nii.gz
img0037.nii.gz
img0039.nii.gz
img0040.nii.gz
val.txt
img0008.nii.gz
img0022.nii.gz
img0038.nii.gz
img0036.nii.gz
img0032.nii.gz
img0002.nii.gz
img0029.nii.gz
img0003.nii.gz
img0001.nii.gz
img0004.nii.gz
img0025.nii.gz
img0035.nii.gz
此时, synapse 数据集包括了以下内容:
├── Training
│ ├── img
│ │ ├── img0001.nii.gz
│ │ ├── img0002.nii.gz
│ │ ├── ...
│ ├── label
│ │ ├── label0001.nii.gz
│ │ ├── label0002.nii.gz
│ │ ├── ...
│ ├── train.txt
│ ├── val.txt
随后, 运行下面的数据集转换脚本来处理 synapse 数据集:
python tools/dataset_converters/synapse.py --dataset-path /path/to/synapse
使用我们默认的配置, 将生成 2,211 张 2D 图片的训练集和 1,568 张图片的验证集.
需要注意的是 MMSegmentation 默认的评价指标 (例如平均 Dice 值) 都是基于每帧 2D 图片计算的, 这与基于每套 3D 图片计算评价指标的 TransUNet 是不同的.
REFUGE
在官网注册后, 下载 REFUGE 数据集 REFUGE2.zip
, 解压后的内容如下:
├── REFUGE2
│ ├── REFUGE2
│ │ ├── Annotation-Training400.zip
│ │ ├── REFUGE-Test400.zip
│ │ ├── REFUGE-Test-GT.zip
│ │ ├── REFUGE-Training400.zip
│ │ ├── REFUGE-Validation400.zip
│ │ ├── REFUGE-Validation400-GT.zip
│ ├── __MACOSX
运行如下命令,就可以按照 REFUGE2018 挑战赛划分数据集的标准将数据集切分成训练集、验证集、测试集:
python tools/convert_datasets/refuge.py --raw_data_root=/path/to/refuge/REFUGE2/REFUGE2
这个脚本将自动生成下面的文件夹结构:
│ ├── REFUGE
│ │ ├── images
│ │ │ ├── training
│ │ │ ├── validation
│ │ │ ├── test
│ │ ├── annotations
│ │ │ ├── training
│ │ │ ├── validation
│ │ │ ├── test
其中包括 400 张图片的训练集, 400 张图片的验证集和 400 张图片的测试集.