Image Captioning: Transforming Objects into Words
2019-NIPS
Simao Herdade, Armin Kappeler, Kofi Boakye, Joao Soares
问题
目前方法没有利用被检测对象之间的空间关系信息,如“相对位置”和“相对大小”。而这些信息通常对于理解图像中的内容至关重要。
思想
基于Transformer模型,并添加“对象关系”模块,通过几何注意将对象之间的空间关系信息整合在一起,用来生成更好的描述。
方法
![](https://img-blog.csdnimg.cn/img_convert/b21ed7f323519ec6088c2f27a22252b0.png)
1.目标检测
使用基于Resnet101的Faster R-CNN进行目标检测和特征提取。为每个对象的包围盒生成一个2048维的特征向量,然后将这些特征向量用作Transformer模型的输入。
2.标准的transformer模型
包含encoders和decoders,(6层encoder或decoder堆成)。输入特征向量,输出预测词。
encoders:
①每个特征向量经过嵌入层处理,将维数从2048降至512;
②嵌入的特征向量作为Transformer模型的第1层encoder的输入;对于第2到6层,使用前一编码器层的输出作为输入;
③每个encoder层由一个多头自注意层和一个前馈神经网络组成。
自我注意层由8个相同的头组成;每个头先分别计算Q、K、V,
![](https://img-blog.csdnimg.cn/img_convert/18fb88f40016ff85a886c454554571a5.png)
然后计算权重
![](https://img-blog.csdnimg.cn/img_convert/a13d20feaa4553d3ce176c1b9f57a0dc.png)
每个头输出向量
![](https://img-blog.csdnimg.cn/img_convert/09c0af8747dcc90e7e105b69c39d3ed3.png)
最终拼接8个头得到向量(乘以参数矩阵后使得大小不变)
![](https://img-blog.csdnimg.cn/img_convert/23934fa02a3c6f295fb3a35604249fdd.png)
最后,送至前馈网络(FFN),
![](https://img-blog.csdnimg.cn/img_convert/d6e393dcfa8361a737ee1e20c27bc384.png)
decoders:
每一层decoder使用最后一层encoder以及前一层decoder的输出作为输入来生成文本。
3.加入“对象关系”的transformer模型(在2的encoders部分有一些修改)
①对于物体m和物体n,利用几何特征计算位移矢量(x,y,w,h指包围盒的中心坐标,宽度,高度):
![](https://img-blog.csdnimg.cn/img_convert/1af56e64b17a399af382f69f4b323086.png)
然后得到几何注意权重:
![](https://img-blog.csdnimg.cn/img_convert/5fc33a6cc197df5a93a538a1c1687f55.png)
每个头将几何权重和2中提到的基于外观的权重结合,得到新的权重:
![](https://img-blog.csdnimg.cn/img_convert/2ac17804f71ea42a4a02e90168ebeed5.png)
最后每个头输出(Ω是上面元素组成的N×N矩阵):
![](https://img-blog.csdnimg.cn/img_convert/4c204c79a20871bcbb7841bb47e5cbcb.png)
总结
在传统transformer上进行改进,推出Object Relation Transformer,特别适合于图像字幕的任务。目前,只考虑了编码器阶段的几何信息。下一步,作者打算在我们的解码器的对象和单词之间的交叉注意层中加入几何注意。