[Scene Graph] Neural Motifs: Scene Graph Parsing with Global Context (CVPR 2018) 论文解读
简介
这篇文章工作的创新之处主要基于对Visual Genome(VG)场景图数据集的分析对模型和工作流进行调整。作者团队对VG数据集内容统计估计后得到两个结论:第一,如果一个关系估计中的主语和宾语一旦确定,那么它们之间的关系也就基本上可以确定,反过来却行不通;第二,甚至在规模略大的子图中也会存在一定的固定结构,也就是文中提到的motifs。基于这两个基本的判断,文章使用了一种很简单的baseline,即物体区域提取->物体标签预测->物体关系预测三个部分依次进行,这种做法相对于之前其他人的工作,例如Scene Graph Generation by Iterative Message Passing,是一种简化,而且这种简化的baseline对最终的结果是有提升的。同时,这篇文章使用的网络模型是可以汇集前后-后前上下文信息的biLSTM模型。
带着问题看论文
- 文章中提出的数学模型是什么样子的?为什么说是一种更加通用的模型?
- 作者提出的baseline:物体区域提取->物体标签预测->物体关系预测,是出于怎样的考虑?
- 文章中提到的motifs是如何提取出来的?并如何加入到网络的提升预测性能的?
逐个解决问题
- 数学模型:对于指定的一张图像
I
I
I,最终生成正确场景图的概率为
p
(
G
∣
I
)
p(G|I)
p(G∣I),该概率满足的数学模型如下:
p ( G ∣ I ) = p ( B ∣ I ) p ( O ∣ B , I ) p ( R ∣ O , B , I ) p(G|I)=p(B|I)p(O|B,I)p(R|O,B,I) p(G∣I)=p(B∣I)p(O∣B,I)p(R∣O,B,I)
其中 B B B(Bounding Box)是所有的物体候选区域, O O O(Object Label)是对于候选区域的预测的物体类别标签, R R R(Relationship)是包含标签的物体区域之间的关系。可以看出,最后的场景图就是通过对这三个部分的预测而最终生成的结果。在Knowledge-Embedded Routing Network for Scene Graph Generation (CVPR 2019)这篇文章中也使用了相同的数学模型。但是在Scene Graph Generation by Iterative Message Passing (CVPR 2017)中使用的数学模型是更加强调每个物体和物体之间关系的独立性:
p ( x ∣ I , B I ) = ∏ i ∈ V ∏ i ! = j p ( x i c l s , x i b b o x , x i → j ∣ I , B I ) p({\bf x}|I,B_I)={\prod_{i\in V}}{\prod_{i!=j}}p(x_i^{cls},x_i^{bbox},x_{i\rightarrow j}|I,B_I) p(x∣I,BI)=∏i∈V∏i!=jp(xicls,xibbox,xi→j∣I,BI)
这个模型更加强调第 i i i个物体和第 j j j个物体之间的独立性,而在scene graph的生成问题中,物体和物体之间的共生关系是非常明显的,这种强制的独立性假设直观感觉不是十分合理的,而博客中的这篇文章提出的模型放弃了独立性假设,是更加合理和通用的。 - Baseline:这篇文章中提出了一个非常简单的baseline:物体区域提取->物体标签预测->物体关系预测。这种简化做法是通过对VG数据集数据分析之后得到的结果。由于物体标签对关系的影响是很大的,但是反过来并不明显,所以在pipeline中把这两部分完全分开,并且按照先预测标签,再预测物体关系这种顺序排列的。看实验结果,觉得这种简化对于VG数据集是十分有效的。
- 网络结构和motifs:
先上图:
物体区域提取:这篇文章使用的RPN (Region Proposal Net)还是Faster R-CNN,看来Faster R-CNN是真的好用啊!通过RPN网络得到的第 i i i个物体区域包含了区域像素中的特征 f i {\bf f_i} fi和初始的标签预测 l i {\bf l_i} li,如果把所有区域中的这两个向量结合起来看,就是图片中物体集合所包含的contextual cue了,即上下文信息。
物体标签信息:对于物体标签信息的预测,文章中使用双向的时序模型 bi-LSTM进行信息的传播。
C = b i L S T M ( [ f i ; W 1 l i ] i = 1 , . . . , n ) {\bf C}=biLSTM([{\bf f}_i;{\bf W}_1{\bf l}_i]_{i=1,...,n}) C=biLSTM([fi;W1li]i=1,...,n)
其中 C {\bf C} C包含了LSTM模型中最终的信息,其中的 W {\bf W} W中就是对于每一个 l i {\bf l_i} li的分布学习的结果,也就是上下文的全局环境信息。在编码了环境信息之后,再通过LSTM学习出最终的标签结果。
h i = L S T M ( [ c i ; o ^ i − 1 ] ) {\bf h}_i=LSTM([{\bf c}_i;{\bf \hat o}_{i-1}]) hi=LSTM([ci;o^i−1])
o ^ i = a r g m a x ( W o h i ) ∈ R ∣ C ∣ {\bf \hat o}_i=argmax({\bf W}_o{\bf h}_i)\in {\Bbb R}^{|C|} o^i=argmax(Wohi)∈R∣C∣ (one-hot)
物体关系:首先还是和物体标签预测使用一样的模型,但是也将环境的信息加入其中。
D = b i L S T M ( [ c i ; W 2 o ^ i ] i = 1 , . . . , n ) {\bf D}=biLSTM([{\bf c}_i;{\bf W}_2{\bf \hat o}_i]_{i=1,...,n}) D=biLSTM([ci;W2o^i]i=1,...,n)
其中 D {\bf D} D中编码的就是scene graph中边的环境信息,在decoding的过程中,将一条边两端的节点信息和最初始的环境信息结合起来,写成:
g i , j = ( W h d i ) ∘ ( W t d j ) ∘ f i , j {\bf g}_{i,j}=({\bf W}_h{\bf d}_i)\circ({\bf W}_t{\bf d}_j)\circ{\bf f}_{i,j} gi,j=(Whdi)∘(Wtdj)∘fi,j
再使用softmax操作得到数学模型中最后的 p ( R ∣ O , B , I ) p(R|O,B,I) p(R∣O,B,I)
p ( x i → j ∣ O , B ) = s o f t m a x ( W r g i . j + w o i . o j ) p(x_{i\rightarrow j}|O,B)=softmax({\bf W}_r{\bf g}_{i.j}+{\bf w}_{o_i.o_j}) p(xi→j∣O,B)=softmax(Wrgi.j+woi.oj)
值得重点关注的是,除了 W r {\bf W}_r Wr对于每一个关系变量 g i . j {\bf g}_{i.j} gi.j的加权效果之外, w o i . o j {\bf w}_{o_i.o_j} woi.oj所代表的bias中包涵的信息更加丰富。文章中的分析结果提到,当物体中两个标签确定后,他们之间的关系就基本确定了,这种“确定性”其实就包含在这个bias之中。
以上就是我对这篇文章在阅读时重点内容的理解,如有纰漏请不要吝惜在评论区指教哦~