Introduction
人是利用图像中的context来识别图像中的内容。在图像的目标检测任务中,一种很理所当然的改进方法就是利用图像中的context来推测图像中的对象。该论文提出了两种context类型,分别是image-level context和instance-level context。该论文显式地利用instance-level context,使用Spatial Memory Network (SMN)对图像中不同对象之间的关系进行建模,类似于RNN中的memory cell记录已经检测到对象的bounding box,以便更好地检测图像中其他对象。
Image-level context 图像的整体环境/内容可以提示图像应该有那些对象,而不该有那些对象。比如在海面上可能会有轮船,而不应该有汽车。在天空中可能有鸟在飞行,而不应该出现牛羊。这种全图内容推理过程应该已经隐式地融入到深度卷积网络中,在深网络层中,每个神经元的感受野非常大,可以包含image-level context,深度卷积网络根据这些内容预测对象的位置和类别。
Instance-level context 对象和对象之间的关系是目标检测推理过程的重要线索。看下图,一只羊的附近很可能还有另外一只羊,在蛋糕上的“马”不是真的马。利用Instance-level context来推理,把true positive的置信度拉高,把false positive的置信度减低。目标检测的instance-level推理必须处理不同类、位置、比例、宽高比等的边框之间的关系,这使得instance-level推理具有更大的挑战和难度。
传统的RCNN几乎没有使用context的信息,作者认为特别是在NMS的时候,暴力去除一些候选框不是一个好主意。作者提出了SMN来获取instance-level context,当网络检测到某个对象时,记住它,然后在下次迭代的时候作为先验知识帮助下一次检测得到之前漏测的目标。SMN没有NMS的post处理过程,作者说SMN在训练过程会学到NMS去掉重复候选框的功能。
Spatial Memory Network
Mathematical formulation
作者首先用数学公式说明一下网络结构的合理性。给定一幅图像I\mathcal{I}I,检测出所有的对象O=[O1,O2,⋯ ,ON]O=[O_1, O_2, \cdots, O_N]O=[O1,O2,⋯,ON],其中NNN表示图像中有N个对象。网络模型的训练目标是最大化似然函数
(1)argmaxML=logP(O1:N∣M,I)=∑n=1:NP(On∣O0:n−1,M,I) \begin{aligned} \underset{\mathcal{M}}{\arg \max} \mathcal{L} & = \log \mathbb{P} (O_{1:N}|\mathcal{M}, \mathcal{I}) \\ & = \sum_{n=1:N}\mathbb{P} (O_{n}|\mathcal{O}_{0:n-1},\mathcal{M}, \mathcal{I}) \end{aligned} \tag{1}