Graph R-CNN for Scene Graph Generation

Type
Publication
In ECCV 2018

概要

GraphConvolutionを用いてSceneGraphの生成をより正確に行うための手法。SceneGraphとはVisualGenomeにおいて定義されているもので,{Subject,Relationship(Predicate),Object} (+Attribute) によるグラフ構造で表される。例として,A man is swinging a bat というような画像内の関係性があったとき, {man, swinging, bat} (+Attribute)というふうになる。これらの関係性を考えていき,最終的には(d)の関係性の出力を目指す。

スクリーンショット 2020-03-06 17 50 46

手法

全体の概要図配下の通り。3つのパートに分かれている。

スクリーンショット 2020-03-07 17 43 51

⓵ Object Region Proposal
⓶ Relationship Proposal
⓷ Graph Labeling

スクリーンショット 2020-03-07 17 43 38

Object Region Proposal

Faster R-CNNを学習させて物体検出。出力としては物体の位置情報(BoundingBox),特徴量,クラスラベルの3つがある。

Relationship Proposal  

物体検出したもののうち,全てを繋ぐようなグラフ構造はパラメータ数的にも,現実世界における物体の関係性的にも現実的ではないため,本当に重要なエッジのみ抽出する段階。

スクリーンショット 2020-03-07 17 49 27

物体がObjectである場合とSubjectである場合(Relationship次第でどっちにもなり得るということ)は分けて考慮する必要があるため,構造は一緒だが異なるパラメータをもつ学習モデルを用意してあげて,それらのを通した行列積をエッジのスコアとして用いる。

スクリーンショット 2020-03-07 17 52 05

最終的に,スコアの高い上位k個のエッジを次のフェーズの入力として用いる。

また,物体ペアに関するNMSもここで行う。通常と違って,物体ペアによるIoU値を用いてNMSを行う。

スクリーンショット 2020-03-07 18 54 13

Graph Labeling

AttentionalGCNを用いて最終的に物体,関係性の分類。GraphConvによってobject,relationshipがまわりのグラフ構造を考慮した上でそれぞれの特徴量を更新していく。

スクリーンショット 2020-03-07 18 51 19

A. Objectの更新について

大きく3つの関係性を踏まえて特徴量の更新 

⓵ 自分のまわりのObject(Message from other objects)

ただしObjectに関してはSkipconnectionを採用していて,離れたノード同士の関係性も考慮するようにしている。アテンションのαがskipとされているのもそのためである。特徴行列に掛け合わせる隣接行列のパラメータも学習させることで,隣接行列がノード同士の関係性を表すアテンションであるとみなすのがAttentionalGCN。そのため通常は同じノードを繋ぐ対角成分は1,エッジによってつながっていないノード同士は0となるようにし,残りの部分を学習させていくが,skipの場合は全ノード考慮するため,0成分で埋めずに対角成分以外をすべて更新していく。

⓶ Subjectからみたrelationship

⓷ Objectからみたrelationship

注意としては⓶,⓷を区別する必要あり

スクリーンショット 2020-03-07 18 11 30

B. Relationshipの更新について

⓵ Relationshipからみたsubject

⓶ Relationshipからみたobject

同様に⓶,⓷の区別の必要あり。

スクリーンショット 2020-03-07 18 48 54

損失関数・学習

参考文献より引用

スクリーンショット 2020-03-07 18 01 35

スクリーンショット 2020-03-07 18 01 55

評価方法

VisualGenomeで用いられていたSGGenという評価方法を改善し,SGGen+と呼ばれる新たな評価軸を提案。

SGGen

以下の二つの評価によって決定される。

⓵ {Subject,Relationship(Predicate),Object} のすべての要素が完全に一致している
⓶ SubjectとObjectのローカライズ(位置予測)におけるIoUがともに0.5以上

について,両方満たしているときのみ正解として扱われ,1点加点される。しかしこれでは条件が厳しいため,見当違いな出力と1箇所だけ違う惜しい出力も同じとみなされ,結果の反映が正確にできていないと言える。

SGGen+

そこで新しく,以下の3つの評価それぞれについて,満たしていれば随時1点加点される。

⓵C(0):正しく認識された(位置,クラス) Objectノードの数
⓶C(P):SubjectとObjectのローカライズ(位置予測)におけるIoUがともに0.5以上で,Relation(predicat)が正しいとき
⓷C(T):SGGenの評価

これらの合計点数をノードとエッジの合計Nで割ったもの.

スクリーンショット 2020-03-07 17 27 03

比較結果

SGGenとSGGen+の比較結果(SGGen+については分母)。SGGen+を用いた方が,より正解に近いグラフが出力できたときそれをより反映できるような評価値となっている。

スクリーンショット 2020-03-06 17 57 07

実験

スクリーンショット 2020-03-06 17 57 42

スクリーンショット 2020-03-06 17 57 57

新規性

GraphConvを用いたシーングラフの生成に関する初期の論文であり基本形。

コメント

参考文献

Objectという単語がSubjectと区別している場合としていない場合の2通りの使われ方がしていて紛らわしく感じた。