(一)ADE20K数据集

ADE20K数据集是 2016年MIT开放的场景理解的数据集,可用于实例分割,语义分割和零部件分割。利用图像信息进行场景理解 scene understandingscene parsing

语义分割 Semantic Segmentation即最常见的任务,将图像的不同像素按对象类别 object category进行分类, 实例分割Instance Segmentation不仅要识别不同物体所属的类别,还需识别出同类的不同物体。 零部件分割 Part Segmentation是在识别出的物体上分割出不同部分所属的零部件类别,这对于理解场景帮助机器人与环境交互十分重要,如在某个 scene中分割出来 chair或者 cup,为了坐下或者拿起杯⼦需要找到 objects中对应的 parts,如 chair可以坐的部分, cup的杯柄, 以实现机器⼈与知行特定的任务。

已有分割公开数据集的现状:

  • 类别有限, 且有些数据类别在实际⽣活中并不常⻅如 COCOPASCAL数据集;
  • 包含的场景过少,如 Cityscapes仅包含城市街区的场景数据;
  • Pascal-ContextSUN还不错, 但 Pascal-Context主要包含其20个对象类的场景, ⽽ SUN在对象级别的标注是不准确的。

ADE20K27000张图像组成,这些图像来自于SUN(2010年普林斯顿大学公开的数据集)和Places(2014年MIT公开的数据集)数据集, ADE20K中由超过 3000个物体类别 category,其中很多图像组成物体的零部件的类别,以及组成零部件的零部件的类别,如 汽车的零部件 门门上面的零部件 窗户ADE20K中还标注了实例的 id,可用于实例分割。数据中的图像都进行了匿名化处理,做了人脸和车牌号的模糊,去除了隐私信息。

ADE20K的数据分布

ADE20K的数据组成

  • 共包含 27574张图像
  • 3688个类,类名取自WordNet(WordNet是由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下建立和维护一个词与词之间存在各种关系的英语字典)
  • 707868个对象
  • 193238个零部件

数据文件目录结构

.
└── ADE20K_2021_17_01
    └── images
        └── ADE
            └── training
                └── urban
                    └── street
                        ├── ADE_train_00016869
                        │   ├── instance_000_ADE_train_00016869.png
                        │   ├── instance_001_ADE_train_00016869.png
                        │   ├── instance_..._ADE_train_00016869.png
                        ├── ADE_train_00016869.jpg
                        ├── ADE_train_00016869.json
                        ├── ADE_train_00016869_parts_1.png
                        ├── ADE_train_00016869_parts_2.png
                        ├── ADE_train_00016869_seg.png
                        ├── ADE_train_00016964
                        │   ├── instance_000_ADE_train_00016964.png
                        │   ├── instance_001_ADE_train_00016964.png
                        │   ├── instance_..._ADE_train_00016964.png
                        ├── ADE_train_00016964.jpg
                        ├── ADE_train_00016964.json
                        ├── ADE_train_00016964_parts_1.png
                        └── ADE_train_00016964_seg.png


print("File loaded, description of the attributes:")
print('--------------------------------------------')
for attribute_name, desc in index_ade20k['description'].items():
    print('* {}: {}'.format(attribute_name, desc))
print('--------------------------------------------\n')

i = 16868
nfiles = len(index_ade20k['filename'])
file_name = index_ade20k['filename'][i]
num_obj = index_ade20k['objectPresence'][:, i].sum()
num_parts = index_ade20k['objectIsPart'][:, i].sum()
count_obj = index_ade20k['objectPresence'][:, i].max()
obj_id = np.where(index_ade20k['objectPresence'][:, i] == count_obj)[0][0]
obj_name = index_ade20k['objectnames'][obj_id]
full_file_name = '{}/{}'.format(index_ade20k['folder'][i], index_ade20k['filename'][i])
print("The dataset has {} images".format(nfiles))
print("The image at index {} is {}".format(i, file_name))
print("It is located at {}".format(full_file_name))
print("It happens in a {}".format(index_ade20k['scene'][i]))
print("It has {} objects, of which {} are parts".format(num_obj, num_parts))
print("The most common object is object {} ({}), which appears {} times".format(obj_name, obj_id, count_obj))

  • *语义分割

语义分割中使用的训练和验证数据集多是 ADEchallenge 2016提供的处理好的数据集,包括 150个类,不含背景 0,在训练时需将 background 0 设置成 ignore_indexADEChallengeData2016.zip的下载地址为

最近的一些工作,如 swin transformersegfomer都在 ADEChallengeData2016.zip数据集上进行了验证,这两个算法在商汤的框架 mmsegmentation中都有实现,感兴趣的同学可以动手验证一下,需要注意的是使用 ade20k数据集时, train_pipeline中的参数需要设置,如下

train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', reduce_zero_label=True)]

挖个坑:在实例分割和零部件分割的应用待补充

Original: https://blog.csdn.net/lx_ros/article/details/125650685
Author: 恒友成
Title: (一)ADE20K数据集

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/787622/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球