CVPR 2016 paper reading (3)
DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations, Ziwei Liu, Ping Luo, Shi Qiu, Xiaogang Wang, Xiaoou Tang, in CVPR 2016.
这篇文章接收了一个large-scale的带有完善标注的服装数据集DeepFashion。
它包含超过800,000张图片,标注有大量的attributes,clothing landmarks,和图像在不同场景(包括商店,街拍和消费者)下的相关性。
为了阐明DeepFashion的优势,文中提出一个新的deep model, FashionNet,通过联合预测义务attributes和landmarks学习衣物特征。

衣物识别算法主要面临三个基本挑战:
1) 衣物通常在类型、纹理和裁剪上有较大不同;
2) 衣物经常会有变形或遮挡;
3) 在不同场景下,同一件衣物表现差别很大,例如在线购物的照片和消费者的自拍照等。
先前的研究克服这些挑战通过使用语义attributes(例如color,category,texture),衣物位置(masks of clothes),或者cross-domain图像相关性来标注衣物数据集。但是不同数据集使用不同信息标注,这篇文章提出的DeepFashion数据集联合进行所有的标注。

FaceNet:能够同时预测landmarks和attributes
网络结构与VGG-16相似,第一到四个卷积层完全相同,FaceNet的第五个卷积层特别为衣物任务设计,分为三个分枝,红色分枝抓取整个衣物的global feature,绿色分枝基于估计的landmark位置做pooling,抓取local feature,蓝色分枝预测landmarks的位置和可见性(是否被遮挡)。红色分枝和绿色分枝的输出连接在一起联合预测衣物类别,attributes,对衣物pair之间的关系进行建模。如下图所示:

Forward pass:
分为三个阶段:(1)一幅衣物图片输入网络,传入蓝色分枝,预测landmark位置;(2)估计的landmark位置被传入pool5_local,在可见的landmark位置周围进行max-pooling,其余不可见landmark位置的响应gated to zero,获得local feature (对变形和遮挡具有不变性);(3)fc6_global和基于landmark pooled的local feature fc6_local被连接到fc7_fusion.
Backward pass:
Backward pass 后向传播四种类型的损失函数:
1) 回归损失:landmark的定位
v表示可见性,l表示landmark位置
2)softmax分类损失:对landmark可见性和衣物类别的预测
3)交叉熵损失:attributes的预测
这个公式感觉有点问题,a_j和(1 - a_j)的位置应该换成相应的后验p才对
4)triplet loss:成对衣物图像的metric learning 
通过加权联合所有损失函数进行迭代优化,迭代分为两个步骤:
1)将蓝色分枝作为main task,其余分枝作为辅助任务。为实现这个目的,对landmark定位的回归损失函数和landmark可见性的分类损失赋予较大权重,其余损失函数赋予较小权重。这样做是因为对landmark的估计与其他任务是相关的,同时训练可以更好收敛;
2)预测衣物类别和attributes,学习衣物之间的成对关系。
以上两步迭代进行直到收敛。
实验中landmark的影响较大,该数据集中的landmark如下示例所示:

文中构建了三个平台,使用DeepFashion对不同方法进行评估:
1)category and attribute预测
2)In-shop clothes检索
3)Consumer-to-Shop衣物检索
很有用的数据集!
CVPR 2016 paper reading (3)的更多相关文章
- CVPR 2016 paper reading (2)
1. Sketch me that shoe, Qian Yu, Feng Liu, Yi-Zhe Song, Tao Xiang, Timothy M. Hospedales, Cheng Chan ...
- CVPR 2016 paper reading (6)
1. Neuroaesthetics in fashion: modeling the perception of fashionability, Edgar Simo-Serra, Sanja Fi ...
- 浅析"Sublabel-Accurate Relaxation of Nonconvex Energies" CVPR 2016 Best Paper Honorable Mention
今天作了一个paper reading,感觉论文不错,马克一下~ CVPR 2016 Best Paper Honorable Mention "Sublabel-Accurate Rela ...
- (转)CVPR 2016 Visual Tracking Paper Review
CVPR 2016 Visual Tracking Paper Review 本文摘自:http://blog.csdn.net/ben_ben_niao/article/details/52072 ...
- Paper Reading: In Defense of the Triplet Loss for Person Re-Identification
In Defense of the Triplet Loss for Person Re-Identification 2017-07-02 14:04:20 This blog comes ...
- Paper Reading: Stereo DSO
开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...
- 深度视觉盛宴——CVPR 2016
小编按: 计算机视觉和模式识别领域顶级会议CVPR 2016于六月末在拉斯维加斯举行.微软亚洲研究院在此次大会上共有多达15篇论文入选,这背后也少不了微软亚洲研究院的实习生的贡献.大会结束之后,小编第 ...
- Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )
Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...
- Paper Reading - Mind’s Eye: A Recurrent Visual Representation for Image Caption Generation ( CVPR 2015 )
Link of the Paper: https://ieeexplore.ieee.org/document/7298856/ A Correlative Paper: Learning a Rec ...
随机推荐
- js实现页面跳转的八种方式
整理一下JavaScript八种跳转方式,欢迎评论补充! 第一种方法: <script> window.location.replace('http://www.cnblogs.com/c ...
- javascript之Array()数组函数讲解
Array()是一个用来构建数组的内建构造器函数.数组主要由如下三种创建方式: array = new Array() array = new Array([size]) array = new Ar ...
- svn 创建本地仓库
1. svnadmin create ~/repository 2. svnserve -d -r ~/repository 3. svn checkout file://~/repository $ ...
- C Primer Plus note3
上面的源代码为什么输入q的时候,程序就会退出呢? while(条件语句),status == 1是条件语句,status只要是非0值的时候,status == 1的条件就满足,程序就会运行while循 ...
- JDK自带工具keytool生成ssl证书 和 HTTPS双向认证
创建证书(第一步) keytool -genkey -alias "baidu" -keypass "123456" -keystore "D:/ba ...
- git 批量删除 tag
1. master分支存在大量冗余tag aa0e24dfd920a85c39da400a404309cb6fc69dc0 refs/tags/rc_69 f36f3f21f1ce61db3974e9 ...
- 04_dubbo_ioc
[dubbo的IOC实现方法] dubbo的IOC具体实现在:T injectExtension( T instance )方法中,该方法在3个地方被使用: ExtensionLoader.getEx ...
- C# 使用 Invoke 实现函数的白盒 UT 测试
公有方法可以直接调用,但是一些非公开的方法,在覆盖率测试的时候也需要覆盖,可以使用 Invoke 来调用. 调用方法如下,其中 this 可以改为被调用的方法所属的类名,通过 BindingFlags ...
- sql server中同时执行select和update语句死锁问题
原始出处 http://oecpby.blog.51cto.com/2203338/457054 最近在项目中使用SqlServer的时候发现在高并发情况下,频繁更新和频繁查询引发死锁.通常我们知道如 ...
- 遍历查询结果集,update数据
select NULL mykey, * into #mytemp from dbo.DIM_DISTRIBUTOR declare @i int begin ) print @i )) where ...