作者:伝迹 谦言 夕陌 临在
在人工智能广泛应用的今天,深度学习技术已经在各行各业起到了重要的作用。在计算机视觉领域,深度学习技术在大多数场景已经替代了传统视觉方法。如果说深度学习是一项重要的生产工具,那么数据就是不可或缺的生产资料,巧妇难为无米之炊,数据对于视觉模型生产起到了至关重要的作用。
EasyCV是阿里云机器学习平台团队开源的基于Pytorch的all-in-one视觉算法建模工具,搭建了丰富完善的自监督算法体系,提供了效果SOTA的视觉Transformer预训练模型,modelzoo覆盖图像自监督训练、图像分类、度量学习、物体检测、实例分割、语义分割、关键点检测等领域。
EasyCV提供了不同数据源(data_source)的抽象,支持直接读取多种开源数据集格式例如Cifar、ImageNet、CoCo等,同时也支持PAI智能标注平台Itag标注格式和Tfrecord格式数据。 TFrecord格式数据支持使用DALI进行数据处理加速,Itag标注格式图片支持通过缓存机制加速数据读取。
为了方便EasyCV的用户进行模型指标复现、在实际场景训练使用模型,EasyCV汇总了不同领域的常用数据集的介绍和下载地址,当前涵盖图像分类、目标检测、图像分割、姿态估计等方向, 并针对较大且常用的数据集例如imagenet在原许可证允许的情况下提供了国内网盘地址,方便用户快速下载数据集进行论文指标对齐、模型效果对比、以及实际场景下的模型训练。
主要数据集介绍
下面按领域介绍一下EasyCV当前整理提供的数据集, 其中加粗部分的数据集可以通过网盘链接下载。
datahub的使用细节可参考:https://github.com/alibaba/EasyCV/blob/master/docs/source/data_hub.md
图像分类
数据集汇总: ImageNet1K、ImageNet21K、Cifar10、Cifar100、MNIST、Fashion-MNIST、Flower102、Caltech101、Caltech256
ImageNet
官网链接:https://image-net.org/download.php
网盘链接:
ImageNet1k https://pan.baidu.com/s/13pKw0bJbr-jbymQMd_YXzA 提取码:0zas
ImageNet1k TFrecord https://pan.baidu.com/s/153SY2dp02vEY9K6-O5U1UA 提取码:5zdc
ImageNet21k https://pan.baidu.com/s/1eJVPCfS814cDCt3-lVHgmA 提取码:kaeg
ImageNet是市场上最大、最受欢迎的开源数据集之一。ImageNet拥有超过1400万张已手动标注的图像。数据库按WordNet层次结构予以组织,对象级标注通过边界框完成。
目标检测
数据集汇总:COCO2017、VOC2007、VOC2012、LVIS、Cityscapes、Object365、CrowdHuman、OpenImages、WIDER FACE、DeepFashion、Fruit Images、Oxford-IIIT Pet、Arthropod Taxonomy Orders、African Wildlife、AI-TOD航空图、TinyPerson、WiderPerson、Caltech Pedestrian Dataset、DOTA
COCO2017
官网链接:https://cocodataset.org/#home
网盘链接:https://pan.baidu.com/s/14rO11v1VAgdswRDqPVJjMA 提取码:bcmm
COCO 是一个大型图像数据集,其被用于机器视觉领域的对象检测与分割、人物关键点检测、填充分割与字幕生成。该数据集以场景理解为主,图像中的目标则通过精确的分割进行位置标定。
该数据集具有目标分割、情景感知和超像素分割三个特征,其包含 33 万张图像、150 万目标实例、80 个目标类、91 个物品类以及 25 万关键点人物。
LVIS
官网链接:https://www.lvisdataset.org/dataset
网盘链接:https://pan.baidu.com/s/1UntujlgDMuVBIjhoAc_lSA 提取码:8ief
大规模的词汇实例分割数据集(Large Vocabulary Instance Segmentation,LVIS ),包含了164k图像,并针对超过1000类物体进行了约200万个高质量的实例分割标注。由于数据集中包含自然图像中的物体分布天然具有长尾属性。
Objects365
官网链接:https://www.objects365.org/overview.html
该数据集总共包含63万张图像,覆盖365个类别,高达1000万框数,具有规模大、质量高、泛化能力强的特点,远超Pascal VOC、COCO等传统数据集。
分割
数据集汇总:VOC2007、VOC2012、Pascal Context、COCO-Stuff 10K、Cityscapes、ADE20K
Cityscapes
官网链接:https://www.cityscapes-dataset.com/
该数据集拍摄了国外多个城市街道场景图片,构建数据集,其分为三个部分,包括训练集,验证集和测试集,一共 19 个类别。
ADE20K
官网链接:http://groups.csail.mit.edu/vision/datasets/ADE20K/
网盘链接:https://pan.baidu.com/s/1ZuAuZheHHSDNRRdaI4wQrQ 提取码:dqim
ADE20K涵盖了场景、对象、对象部分的各种注释,在某些情况下甚至是部分的部分。有25k张复杂日常场景的图像,其中包含自然空间环境中的各种对象。每个图像平均有19.5个实例和10.5个对象类。
姿态估计
数据集汇总: COCO2017、MPII、CrowdPose、OCHuman
MPII
官网链接:http://human-pose.mpi-inf.mpg.de/
网盘链接:https://pan.baidu.com/s/1uscGGPlUBirulSSgb10Pfw 提取码:w6af
MPII人体姿态数据集是评价关节人体姿态估计的最先进的基准。该数据集包括大约25K张图片,其中包括超过40K名带有标注身体关节的人。这些图像是根据人类日常活动的既定分类系统收集的。总体而言,数据集涵盖410项人类活动,每张图像都有活动标签。每张图片都是从YouTube视频中提取的,并提供了前后未注释的帧。
EasyCV数据集接口使用示例
设计思路
EasyCV抽象了data_source来封装不同格式的数据集,data_source输出图像相关的信息,然后通过指定dataset_type来创建不同任务类型的数据集对象进行训练。其中data_source类型包括ClsSourceImageList、DetSourceCoco、DetSourceVOC、PoseTopDownSourceCoco和SegSourceRaw等等,dataset_type类型包括RawDataset、ClsDataset、DetDataset和SegDataset等等。
以ImageNet数据集为例:
# 1. 配置imagenet数据集的config dataset_type = 'ClsDataset' data_train_list = 'data/imagenet_raw/meta/train_labeled.txt' data_train_root = 'data/imagenet_raw/train/' data_test_list = 'data/imagenet_raw/meta/val_labeled.txt' data_test_root = 'data/imagenet_raw/val/' dataset_type = 'ClsDataset' data = dict( imgs_per_gpu=32, workers_per_gpu=4, train=dict( type=dataset_type, data_source=dict( list_file=data_train_list, root=data_train_root, type='ClsSourceImageList'), pipeline=train_pipeline), val=dict( type=dataset_type, data_source=dict( list_file=data_test_list, root=data_test_root, type='ClsSourceImageList'), pipeline=test_pipeline)) # 2. config实例化 cfg = mmcv_config_fromfile(args.config) # 3. 数据集实例化 distributed = torch.cuda.is_available( ) and torch.distributed.is_initialized() default_args = dict( batch_size=cfg.data.imgs_per_gpu, workers_per_gpu=cfg.data.workers_per_gpu, distributed=distributed) dataset = build_dataset(cfg.data.train, default_args)
其他和Imagenet格式相似的数据集,都可以通过替换data_train_list、data_train_root、data_test_list和data_test_root进行配置使用,详细的config配置方式可参考https://github.com/alibaba/EasyCV/blob/master/configs/classification/imagenet/resnet/resnet50_b32x8_100e_jpg.py。
项目开源地址:https://github.com/alibaba/EasyCV