DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations
服装识别,检索的难点:
1.变形,遮挡,缩放,视角的变化对检索效果有很大的影响。
2.样式纹理的多样性。
3.背景不纯,复杂。
创新点:
- 创建了一个服装数据集DeepFashion,包含80万张服装图像,有类别,属性,特征点以及服饰框的标注。
- 提出一个深度学习模型FashionNet,结合服饰属性和特征点进行服饰的特征提取,可以较好的应对服饰的变形遮挡等问题。
DeepFashion数据集:
标注:
- Massive attributes:50个类别,1000个属性,其中属性分成5个组,分别为质地、织物、形状、零件和样式(texture, fabric, shape, part, and style),属性包含服装商品识别必须的信息。
- Landmarks: 关键点位置能够有效处理形变和姿态变化,比如对于上衣,有六个关键点,分别在领子左右,袖子左右,下摆左右。
- Consumer-to-shop pairs):映射对(Pair Annotation)不同场景中的同一件衣服对,比如,网店的,街上拍的,给出对应关系。
网络结构
Fashion Net 基于VGG16网络,从开始到倒数第二层,与VGG16相同,最后一个卷积层重新设计用于服装问题,3个分支,red,green,blue。
- 红色分支,用于提取图像的全局特征。
- 绿色分支,用于提取关键点的特征。
- 蓝色分支,用于关键点的定位,并给出特征点是否可见。
- 其中 红色,绿色分支两个特征进行融合,然后用于后面的分类,属性预测和triplet训练(衣服pair的训练)。
前向传播
1.对于输入先计算蓝色分支,得到预测关键点的位置。
2.将预测的关键点信息用于绿色分支,提取关键点的特征,这里有一个关键点pooling层。在 pool5_local 层对估计的关键点进行池化pooling特征,以使布局特征对服装形变和缺失具有不变性。
3.红色分支全局特征和关键点特征进行融合,concate,然后用于分类,和属性分类。在 fc7_fusion 对 fc6_global 层全局特征和 fc6_local池化后的关键点局部特征进行连接.
ps: landmark pooling 层的输入是 feature maps(如 conv4 ) 和 估计的 landmarks
Loss Function
反向传播时,考虑5个损失函数的加权:
1.关键点的regression loss
2.键点可见性和服装类别预测的softmax loss
4.属性的cross-entropy loss
5.同一件衣服的triplet loss。
训练时,把蓝色分支作为主要任务,红色分支和绿色分支作为辅助任务。所以,关键点的损失和关键点是否可见的损失,将会被加重。
服装检索部分的实验结果
关键点有利于图像检索。
In-Shop Clothes Retrieval:关键点对图像检索的作用意义重大。
Consumer-to-Shop Clothes Retrieval:虽然这种情况下的表现比上面in-shop低不少,但是关键点的加入效果显著。所以知道为啥把关键点作为主要任务。当然也有可能正是因为关键点作为主要任务,才能在最终效果中体现出如此重要的作用。