Kenan E. Ak,Joo Hwee Lim,Jo Yew Tham, and Ashraf A. Kassim
National University of Singapore, Singapore Institute for Infocomm Research, A*STAR, Singapore ESP xMedia Pte. Ltd., Singapore
@WACV2018
Shopping 100K:
为了排除人体姿态变化对识别的影响,作者建立了Shopping 100K数据集,这个数据集每张图片只有单纯的服饰和简单的背景,最终数据集中包含了101021张图片,每张图片对应12个属性以及151个属性标签。作者将12个属性分为两类:General(category,fabric,gender,length等) 和Special (collar,color,patern,sleeve length等),认为对Special属性进行操纵是比较合适的。
给出query image ,以及对应的标签向量 , ,其中 和 是对应属性标签的数量.作者将可能的任务分类两类,一种是直接根据给出的 检索对应的具有相同属性的图片,第二种情况用户希望将给出的 中的 变为 ,作者通过将 对应的特征向量直接替换为 的表示,而保持其他属性不变.
网络的前半部分采用了AlexNet的结构,conv5的输出被分为三个部分,其中左边的部分用于提取全局的特征,进而对General Attribute进行分类和计算loss.loss由两部分组成,分别是分类损失和Triplet损失.在fc7后面作者添加了一个名为Extract parts的全连接层,这个全连接层的输出决定了部分提取的方法(右边的部分)是否适用.在右边的部分,通过ROI pooling层提取特定位置的特征,然后为每一个special的属性单独建立了分支,并计算loss.
为了减少开销,作者并没有选择有监督的目标检测算法来进行ROI的提取,而是采用了 jump detection算法.
这里作者采用了基于颜色的直接分割算法,得到了一个黑白的模板,由于上衣的躯干部分和袖子之间有空隙,根据这个特征就可以找到左右袖子的部分.于是上衣可以被近似的分为四个部分:躯干/左右袖子以及领子.
Extract parts作为全连接层的输出包括了三种情形:如果输出为下身的服饰,则不进行part extract,如果检测到袖子,则启用part extract,如果检测结果为无袖上衣,则提取剩余部分.对于非上衣的情形,则不进行ROI的提取,而是直接将全局信息送入右边的分支用于Special attribute的检测.
文中共出现了classification loss和Triplet loss,其中对于所有 个属性,都分别进行预测并计算损失.使用交叉熵损失
在训练完成后,对于每张输入的图片,获得是S+1个fc7特征向量,因此在检索时,对图库里的所有图像计算
作者提出了一种动态反馈的机制,意在为检索计算D的时候加以权重,即给用户更加关心的属性更高的权重.
作者在Shopping 100K上对一些有竞争力的方法进行了比较,其中包括AMNet(前一篇文章中的方法),在检索任务中主要使用了Top-k 准确率,如果所有属性完全一样记为1,否则记为0.在Manipulate任务中,对于操控的属性个数,上限为2.
作者比较了AMNet和其他3个方法(基于本方法的弱化版),左图是直接检索的Top-K准确率,诡异的是没有AMNet的结果.右图是在进行AM之后的检索,其中本文的方法准确率53.1% 相对的直接检索准确率是56.3%,而AMNet则是45.8%的AM检索准确率.以上准确率都是Top-20的.
总结,三篇Attribute manipulate,本篇是结构最复杂的,复杂之处在于对每一个属性都单独提取特征,单独进行Manipulate,在一定程度上加入了位置信息,相比于AO将属性存储为矩阵并完全不涉及位置信息,以及上一篇Memory-Augmented Attribute Manipulation Networks for Interactive Fashion Search中将属性和图像整体映射到同一个特征空间再连接起来以进行Manipulate,这篇对于属性的信息显然更多.但是前两篇在Manipulate后仍然保持了图像提取的特征向量的形式,然后进行检索,这篇直接用S+1个属性对应的特征进行检索的做法,和在此基础上对每个属性分别Classfication然后直接对label更像,也就是离图像更远。另外,本篇和AMNet的对于属性原型的提取做法几乎一样,不过本片的’generic’ feature并没有学习的能力.