论文阅读_结合图片和文本描述的图像检索TIRG

论文地址:https://arxiv.org/pdf/1812.07119.pdf
源码地址:https://github.com/google/tirg

《Composing Text and Image for Image Retrieval - An Empirical Odyssey》结合图片和文本描述的图像检索是2018年收录于CVPR的论文,它的主旨是通过图片和文字描述在库中搜索图片。比如:提供一张铁塔照片,搜索它的夜景。

即:

其中xi,ti分别为搜索时的图片和文字描述,qi将二者结合起来,最终比较库中的图片xj与qi的相似度。

它的重要使用场景是在搜索中使用用户的反馈信息,进行更进一步检索,比如搜到了白天风景,但想搜夜景。问题的核心是如何结合文本和图片描述,并且希望用文字描述特征替代部分图片特征。具体方法是结合门控和残差网络。作者将其命名为Text Image Residual Gating(TIRG)

论文的主要贡献如下

  • 系统地研究了图像检索中的特征结合,并提出新算法。
  • 建立了图像文本相结合的CSS数据集。
  • 算法提升了在Fashion-200K和MIT-States数据集上的检索效果。

方法

文中提出的方法是建立图片和文本结合的嵌入空间,使用ResNet提取图片卷积特征fimg(x) =φx,使用LSTM提取文本特征text(t) =φt,并结合二者φxt=fcombine(φx,φt)。

已有方法

  • 只使用图片的检索
  • 只使用文本的检索
  • 用串联的方式结合图文特征φxt=fMLP([φx,φt](文中计算残差网络也使用此方法)。
  • Show and Tell(一篇非常著名的论文)使用LSTM先编码图片特征,然后逐步加入文本,最终生成结合二者的表征。
  • 将文本嵌入作为转换矩阵对图片做变换。
  • 使用哈希编码文本特征,并将其应用于图片特征,用于替换CNN最后的全连接网络,最终输出图片和文本结合的表征。
  • 寻找相关性是图片问答中常用的方法,从卷积网络中提取2d的图片特征,然后用串联的方式将文本特征与2d图片中特征提取的2个局部特征相结合,送入MLP,对输出的表征取均值得到最终表征。
  • FiLM将文本特征注入CNN网络,处理CNN的每一层数据,使用文本对图片特征做简单地仿射变换。

TIRG方法

TIRG使用门控和残差相的结合方式:

其中fgate和fres分别提取出了门控和残差特征,它们的维度都是W×H×C,wg,wr用于平衡二者。

门控部分公式如下:

其中σ是sigmoid函数,⊙为逐元素处理(用sigmoid的结果过滤元素),Wg1和Wg2都是3x3的卷积滤波器,*代表带BatchNorm的卷积操作。注意,图片是三维特征,而文本是一维特征,因此操作时在宽高两个维度上用广播(boardcast)方式扩展了文本特征。此处相当于对图片特征φx做过滤,将其转换成输出的维度。

残差部分公式如下:

具体方法是使用两个全连接层,中间加入ReLU激活函数,以及BatchNorm处理。输出综合了图片特征和文本特征,再转换到输出维度。

fgate和fres乘系数后直接做加法,其含义是用文本的特征替换图中的特征,而非构造完全不同的特征空间。其中的门控设计用于使用文本中描述的部分特征替换原图特征,保留图片其它特征。

评价模型

查询的图片+文字结合表征如下:

与查询匹配的图片表征如下(应该被找到的图片,即正例):

训练时选择一组图片,其中包括一个正例和K-1个反例,用交叉熵作为损失函数:

简单地讲,就是评价从多个实例选出正例的能力。K()用点乘的方式计算两组向量的相似度,其中B为Batch的个数,M每个Batch中比较的次数。如果每次都进行两两比较,则M=B−1,相对的,每次多取一些负例代入模型比较,如果代入Batch中所有负例,则M=1,从实验结果来看这样运算速度更快,模型识别力更强,但容易过拟合,因此,更适合在大型数据集上使用(在不同的数据集上选择不同的M值)。

实验

Fashion200k包含200k时尚图片,每张图配有一个简短的描述,下表列出了使用不同方法的对比结果:

消融实验结果如下,从表中可以看到各种技巧对模型效果的影响:

例程

Git上发表的程序使用Pytorch编写,除了实现文中提出的TIRG模型之外,还实现了仅用图片、仅用文字、图文串联等多个模型,并做成可插拔的模块,开发者可测试各个模型的效果。

上述公式对应的功能在代码img_text_composition_models.py中实现,简单有效。其代码也可作为提取文本和图片特征的范例使用,基于torch.vision的环境更容易配置。代码是非常好的Demo,可作为参考,但是因为不涉及难反例,排序损失,收敛比较慢,实际应用时还需要加以修改。

你可能感兴趣的:(论文阅读_结合图片和文本描述的图像检索TIRG)