天天看点

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

Introduction

这是一篇关于利用图像信息(scene-level context)和对象关系信息(object-object relationships)的目标检测网络。该论文把图像上的对象和对象之间的关系建模成一个图网络,如下图所示,每一个检测对象是图网络中的一个结点,而对象之间的关系(object-object relationship)是图网络的边。图网络包括结点 V V V、有向边 E E E和全景信息 s s s(scene)。

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

要理解这篇论文要知道怎么生成图网络 G = ( V , E , s ) G=(V,E,s) G=(V,E,s)和如何用这个图网络进行推理。

Structure inference network

Structure inference network (SIN) 的架构如下

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

图像经过RPN网络后会得到ROIs,表示图像上的对象。每个ROI经过ROI Pooling和FC得到visual feature,表示图的结点node,传入Structure inference网络中。整张图像也当成一个ROI经过同样的操作生成feature scene(对scene-level context进行编码)传入Structure inference网络中。接着对对象的关系进行编码edges,同样传入Structure inference网络中。图网络的推理过程用循环网络的门控循环单元(Gated Recurrent Unit, GRU),推理过程不断更新结点的信息,最后的结点信息用于分类和bbox回归。

Structure Inference

图推理过程如下

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

对于某个对象结点 v i v_i vi​,图上另外的对象分别表示 v 1 , v 2 , v 3 v_1, v_2, v_3 v1​,v2​,v3​。Scene GRU 和 Edge GRU 设计用于传递信息。

Scene GRU 用于传递对象信息。GRU是循环网络的门控循环单元,它有一个隐藏(记忆)单元,隐藏单元用图像结点特征 f i v f_i^v fiv​进行初始化,然后把全景内容信息 m i s = f s m_i^s=f^s mis​=fs输入到Scene GRU中,这样Scene GRU输出的隐藏单元 h s h^s hs就包括对象信息和全图信息。

Edge GRU 用于传递对象关系信息。同样用 f i v f_i^v fiv​初始化 Edge GRU的隐藏单元。Visual relationship vector用 f i v f_i^v fiv​和 f j v f_j^v fjv​的concatenation表示, [ f i v , f j v ] [f_i^v, f_j^v] [fiv​,fjv​],空间位置信息表示为

R j → i p = [ w i , h i , s i , w j , h j , s j , ( x i − x j ) w j , ( y i − y j ) h j , ( x i − x j ) 2 w j 2 , ( y i − y j ) 2 h j 2 , log ⁡ ( w i w j ) , log ⁡ ( h i h j ) ] R_{j\to i}^p = [w_i, h_i, s_i, w_j, h_j, s_j, \frac{(x_i-x_j)}{w_j}, \frac{(y_i-y_j)}{h_j}, \frac{(x_i-x_j)^2}{w_j^2}, \frac{(y_i-y_j)^2}{h_j^2}, \log(\frac{w_i}{w_j}), \log(\frac{h_i}{h_j})] Rj→ip​=[wi​,hi​,si​,wj​,hj​,sj​,wj​(xi​−xj​)​,hj​(yi​−yj​)​,wj2​(xi​−xj​)2​,hj2​(yi​−yj​)2​,log(wj​wi​​),log(hj​hi​​)]

对象j对对象i的影响程度用标量 e j → i e_{j \to i} ej→i​表示

e j → i = r e l u ( W p R j → i p ) ∗ t a n h ( W v [ f i v , f j v ] ) e_{j \to i} = relu(W_p R_{j \to i}^p) * tanh(W_v [f_i^v, f_j^v]) ej→i​=relu(Wp​Rj→ip​)∗tanh(Wv​[fiv​,fjv​])

对象j对对象i的关系信息用 m j → i e m_{j\to i}^e mj→ie​表示

m j → i e = e j → i ∗ f j v m_{j \to i}^e = e_{j \to i} * f_j^v mj→ie​=ej→i​∗fjv​

把不同关系信息聚集在一起,用max pooling把响应最高的关系信息 m i e m_i^e mie​(intergrated message)输入到Edge RGU中

m i e = max ⁡ j ∈ V p o o l i n g ( e j → i ∗ f j v ) m_i^e = \underset{j \in V}{\max} pooling (e_{j \to i} * f_j^v) mie​=j∈Vmax​pooling(ej→i​∗fjv​)

接着,把scene GRU的输出 h s h^s hs和edge GRU的输出 h e h^e he平均一下,作为结点的更新之后的状态

h = h s + h e 2 h = \frac{h^s + h^e}{2} h=2hs+he​

在下个阶段/Iteration,用新的特征初始化scene GRU的隐藏单元。

这个过程就是图推理过程,其他对象的关系信息通过边传递到对象i结点,结点的信息得到更新。

下一个阶段,用新的特征初始化scene GRU的隐藏单元,其他操作同上。经过几次迭代之后,结点的状态包含了丰富的scene context和object-object relationship,用这样的结点状态 h t + 1 h_{t+1} ht+1​(t表示迭代次数,论文中t=2)进行对象的分类和bbox回归。

整个过程用RNN类型的结构图表示

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

Experiment

看看SIN的表现效果

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

Scene GRU效果

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

Edge GRU效果

《Structure Inference Net》笔记IntroductionStructure inference networkExperiment

继续阅读