首页IT科技asd数据集((一)ADE20K数据集)

asd数据集((一)ADE20K数据集)

时间2025-05-02 09:35:51分类IT科技浏览4431
导读:欢迎访问个人网络日志🌹🌹知行空间🌹🌹 1.背景简介...

欢迎访问个人网络日志🌹🌹知行空间🌹🌹

1.背景简介

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

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

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

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

2.ADE20K

1>ADE20K的官网:https://groups.csail.mit.edu/vision/datasets/ADE20K/index.html

2>ECCV 2016举办的Scene Parsing Challenge 2016http://sceneparsing.csail.mit.edu/index_challenge.html

3>tool kit github repositoryhttps://github.com/CSAILVision/ADE20K

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

ADE20K的数据分布

训练集 Training set包含 25574张完整标注图像 验证集 Validation set包含 2000张完整标注图像 测试集 Test set还没有发布

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 image_name.jpg原始图像      ,如ADE_train_00016869.jpg {image_name}_seg.png图像 image_name.jpg对应的类别和实例的标注信息                  ,存储在其每个像素的 RGB通道中            ,借助 toolkit中的代码utils_ade20k.py可以实现标注信息的解析 {image_name}_parts_{i}.png图层 i中包含的零部件   ,如ADE_train_00016869_parts_1.png {image_name}                  ,以文件名命名的文件夹               ,其中的每个图像分别是一个实例标注信息对应原图的掩码,由 0,1组成            。如ADE_train_00016869 {image_name}.json包含了图像对应的标注信息               ,如实例和类别标注信息的多边形                  ,标注的时间   ,标注实例或对象的属性            ,如ADE_train_00016869.json

数据集相关的统计信息                  ,譬如包括多少个类别      ,有多少个对象等         ,保存在一个序列化文件index_ade20k.pkl中                  ,可以参考ade20k_starter.ipynb读取其中的信息   。

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 # 16899, 16964 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))

3.使用ADE20K

语义分割

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

http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip

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

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

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

参考资料

1.https://groups.csail.mit.edu/vision/datasets/ADE20K/ 2.https://github.com/open-mmlab/mmsegmentation

欢迎访问个人网络日志🌹🌹知行空间🌹🌹

声明:本站所有文章,如无特殊说明或标注               ,均为本站原创发布               。任何个人或组织                  ,在未征得本站同意时   ,禁止复制            、盗用                  、采集      、发布本站内容到任何网站         、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益            ,可联系我们进行处理               。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue可视化拖拽模板(vue2实现可拖拽甘特图(结合element-ui的gantt图)) seo排名赚能赚钱吗(如何做好SEO排名提升?从优化策略到技巧全方位解析)