DeepFashion2 数据集

论文标题:DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images

数据集链接:https://github.com/switchablenorms/DeepFashion2

简单介绍:https://www.jiqizhixin.com/articles/2019-02-04-2

数据集下载解压

解压需要密码,不过申请非常简单,官方回复超级快,并且不用学校邮箱。

DeepFashion2 数据集_第1张图片

train/val/test子集里面的图片名都是唯一的六位数的数字,如000001.jpg。在 annos 中提供了相应的json格式的标注文件,如000001.json。

在网站上解析了一下:https://www.bejson.com/jsonviewernew/

第一层有四个节点

DeepFashion2 数据集_第2张图片

再点开 item:

DeepFashion2 数据集_第3张图片

写个简单代码读取一下:

import json

if __name__ == '__main__':
    json_file = 'DeepFashion2/train/annos/000001.json'
    with open(json_file, encoding='utf-8') as f:
        label = json.load(f)
        for key, val in label.items():
            # key: 'item1','item2' 'source' 'pair_id'
            # val: 'bounding_box'  'category_name' 'scale' 'viewpoint' 'occlusion'....
            if 'item' in key:
                print(label[key]['category_name'])
                print(label[key]['bounding_box'])

        f.close()

标注解析

  • source: a string. 其中 'shop' 表示图片来自店铺(卖家秀),而 'user' 表示图片由顾客拍摄的(买家秀)。
  • pair_id: a number. 来自同一店铺的图片及其对应的顾客拍摄的图片,这二者有相同的 pair id,表示二者是互相对应的
  • item 1:
    •  category_name: a string 代表这个 item 的类别
    • category_id: a number 代表这个类别对应的数字.
    • style: a number 用来区分具有相同 pair id 的图片中的服装商品的编号。同一 pair id 的图片中的服装商品的款式号不同,其颜色、印花、logo等风格也不同。这样一来,如果店铺图片中的服装商品和顾客拍摄图片的服装商品拥有相同的 pair id,而且 style number 相同且大于0,则为 positive commercial-consumer pair。
    • bounding_box: [xmin, ymin, xmax, ymax] 目标框左上角右下角的坐标
    • landmarks: [x1,y1,v1,...,xn,yn,vn], 其中 v 代表可见度:v=2 visible;v=1 occlusion;v=0 not labeled.。我们对不同类别的服装类型定义了不同的 landmark 标注方式。landmark 标注的顺序如图2所示。
    • segmentation: [[x1,y1,...xn,yn],[ ]], 其中[x1,y1,y1,xn,yn]代表一个多边形,而一件衣服可能包含一个以上的多边形。
    • scale: a number, 其中 1 代表小尺度的 small scale ,2 代表适中尺度的 modest scale,3 代表大尺度的 large scale
    • occlusion: a number, 其中 1 代表轻度遮挡(包括无遮挡),2 代表中度遮挡,3 代表严重遮挡。
    • zoom_in: a number, 其中 1 代表没有进行放大 no zoom-in,2 代表 medium zoom-in,3 代表 lagre zoom-in。
    • viewpoint: a number, 其中 1 代表没有看见 no wear,2 代表正面看 frontal viewpoint,3 代表侧面看或者背面看。
  • item 2
    ...
  • item n
category_id:
1  -- sleeve top           短袖上衣
2  -- long sleeve top      长袖上衣
3  -- short sleeve outwear 短袖外衣
4  -- long sleeve outwear  长袖外衣
5  -- vest     背心
6  -- sling    吊带
7  -- shorts   短裤
8  -- trousers 长裤
9  -- skirt    裙子
10 -- short sleeve dress 短袖连衣裙
11 -- long sleeve dress  长袖连衣裙
12 -- vest dress         背心裙
13 -- sling dress        吊带裙

style number的疑问

DeepFashion2 数据集_第4张图片

如图所示,前三张图片来自顾客拍摄的买家秀,后两张图片是来自店铺的卖家秀。这五张图片都有相同的 "pair_id"。为了构造instance-level positive pairs,我们需要确保服装的具体颜色款式也是一样的,例如第一张图片和最后一张图片。而第1张图片和第四张图片就不能匹配,即使它们有相同的 "pair_id"。因此,就设置了 style,以进行区分。


相同的服装单品会标注为相同的 style number。在本图中,橙色框中的服装就标注相同的  'style':1。绿色框中的服装就标注相同的 'style': 2。其他未在顾客图片和店铺图片中共同显示的服装单品,就标注为  'style':0,说明无法构建 positive commercial-consumer pairs。本图中,未画出边界框的其他服装商品的  style 就都被标注为了 0。

综上所述,如果店铺图片中的服装商品与顾客图片中的服装商品的 style number 相同且大于 0,并且有相同的 "pair_id" ,则为 positive commercial-consumer pair,否则为 negative pairs。这样,就可以在 instance-level 中构建进行训练的 positive pairs 和negative pairs。

 

你可能感兴趣的:(DeepFashion2 数据集)