CVPR 2019
《Learning Object Context for Dense Captioning》是针对密集描述提出的方法,密集描述类似目标检测,需要定位图像中的感兴趣的区域,还要为区域生成描述。这篇文章提出了一个新的架构来为每个描述区域学习一个互补对象上下文。首先检测一系列对象,逐步在LSTM中输入这些对象,每一步都根据先前的状态和当前输入决定是否保留当前信息,最终输出学习的上下文。用这个上下文引导生成描述和预测边界框位移。整体架构如下:
1、区域建议网络RPN
VGG-16作为基础网络,应用Faster RCNN生成感兴趣的区域。在训练和测试的时候,RPN输出许多矩形区域建议,馈送每个建议到ROI pooling层来获得它的特征立方体,然后把它们压平成一个向量并通过3个全连接层。这样对每个生成的描述区域i能够获得一个向量Vi,维度为512,紧密的编码了它的视觉外观。
2、对象上下文编码
使用gLSTM作为对象上下文编码的模块,更新公式为:
g是引导信息,用目标区域的CNN特征作为引导信息。
为了获得更丰富的对象信息,我们用一个预训练的Faster RCNN来提取图像中的对象集合,整个图像也作为一个特殊的对象区域。把每个对象j的边界框位移输入ROI pooling层和3个全连接层,来从共享的conv5_3层获取特征。提取每个对象j的位置和大小特征
:
是区域左上角坐标,r
是区域右下角坐标,
是区域的宽度和高度,W,H是图片的宽度和高度。然后连接
来表示对象j,用一个全连接层特征把连接的特征转化为最终表示
,与
大小相同。
根据这些对象在图像中的位置给他们排序为一个序列seq(I)表示图像信息,。用目标描述区域的特征
作为每一步的引导编码对象上下文信息。对象上下文编码LSTM逐步接收seq(I),编码每一个对象为一个定长向量,隐藏状态编码为:
用最后一个隐藏状态来表示描述区域i的互补对象上下文。
和
接下来用来生成描述和预测边界框位移。
3、区域描述生成和定位
(1)COCD
使用一个LSTM来解码对象上下文,将她它的输出与描述LSTM的输出融合。在每个时间步骤,它们的连接用来生成描述。
(2)COCG
直接将对象上下文作为引导信息馈送到描述LSTM,减轻(1)中梯度消失的问题。
对于区域定位,区域特征作为定位LSTM的初始单词输入,逐步接收描述LSTM的输出、当前所有的预测单词(除<EOS>之外),最后的隐藏状态用来预测边框位移。