论文链接:https://arxiv.org/abs/1807.00119
一、典型的目标检测问题
对于小目标的敏感度不够高,检测精度也不够高,容易造成错误分类。如下图[2]是Faster R-CNN的检测表现:
从图中可以看到,性能很好的Faster R-CNN网络对于一些小目标也会出现敏感度不高、检测精度不高或者错误检测的问题。
二、论文思路
鉴于上面出现的问题,论文考虑加入目标的上下文语义信息,以及目标和目标之间的逻辑关系信息。论文认为对象检测不仅仅针对单一对象的视觉外观认知,还需要加入辅以场景信息和对象关系的逻辑推理。
三、论文改进
本文将对象检测定义为图结构推理问题,在图中给定一个图像,对象被视为图中的节点,对象之间的关系被建模为图中的边。为此,作者提出了一个所谓的结构推理网络(SIN),用于推断对象状态。
四、具体实现
SIN的实现框架如下图所示:
可以看到有三条分支。其中两条分支来自于将输入的整张图片送入RPN[3]后提取的特征框,其中一条分支是将每个特征框当做一个点,两两特征框点之间连线形成一条边,是图中的edges,而concatenate的意思是拼接,自然语言处理中concatenate是指将两个向量首尾相连形成一个新的向量,这样就具有了一种语义上的关系;另一条是对特征框内物体进行视觉特征的提取。而最上面的分支则是对整个场景图片视觉特征的提取。
将上面提取到的三个部分送入一个结构推理结构中,其中关键的是GRU[4]结构,具体实现如下图所示。
GRU是LSTM[5]网络的变形,它将遗忘门和输入门合并成了一个更新门,而重置门决定了过去的信息是否将被忽略。 图中ht就是上一阶段物体的隐含状态,x是图像和边的特征矩阵作为的输入,ht+1是下一状态物体的隐含状态,且ht和x有相同的维度。通过GRU网络可以把这种语义信息传递,形成一种语义关系。
推理结构的主要流程如下图所示:
对于一个目标对象vi,其Scene GRU的输入为来自第一支路的场景上下文信息mis,初始隐藏状态为来自第二支路的节点vi特征fiv。对于从节点v1到节点vi的边缘信息m1-ie,由边缘e1-i和f1v来控制,以此类推,所有其他对象的这些消息作为mie进行集成,以输入Edge GRU。Edge GRU的初始隐状态也是fiv。然后这两组GRU输出集成在一起作为最终更新的节点状态。
关于池化层,作者讲到,计算节点的集成信息,用最大池化可以提取到最重要的特征,如果用平均池化的话,信息就会被不相关信息所干扰。而节点的下一状态的表示,作者说通过实验表明,平均池化的效果反而更好。
五、网络优缺点
SIN网络结合了上下文环境语义信息和对象关系信息,使得该网络在处理与场景上下文环境密切相关的类别任务时表现优异。对于实例级关系,它在对象检测中也起着重要作用,它可以有效提高目标对象的定位精度。
但是在某些特殊的情况下,仍可能会发生罕见的失败案例。
六、参考文献
[1] https://blog.csdn.net/mjzhang1993/article/details/79525676
[2] Liu Y, Wang R, Shan S, et al. Structure Inference Net: Object Detection Using Scene-Level Context and Instance-Level Relationships[J]. 2018.
[3] S.Ren,K.He,R.Girshick,andJ.Sun.Fasterr-cnn:Towards real-time object detection with region proposal networks. In NIPS, 2015.
[4] K. Cho, B. van Merrienboer, D. Bahdanau, and Y. Bengio. On the properties of neural machine translation: Encoder- decoder approaches. In SSST-8, 2014.
[5] Kalchbrenner N, Danihelka I, Graves A. Grid Long Short-Term Memory[J]. Computer Science, 2015.