数学がわからない

日々の勉強をアウトプットする。

論文"Objects as Points"を読む(4)

gyokan.hatenablog.com
の続きです。

"4. Objects as Points"

バウンディングボックスとキーポイントの関係】

 (x_1^{(k)}, y_1^{(k)}, x_2^{(k)}, y_2^{(k)})を、カテゴリc_kを有するオブジェクトkのバウンディングボックスとしましょう。その中心点はp_k=(\frac{x_1^{(k)}+x_2^{(k)}}{2},\frac{y_1^{(k)}+y_2^{(k)}}{2})です。我々はキーポイント推定量\hat{Y}を使ってすべての中心点を予測します。

バウンディングボックスは矩形の開始点と終点(左上と右下)、その中心がキーポイントです。本稿で説明されている手法は、つまりバウンディングボックスの中心を求めるものです。

説明するまでもない簡単なことかもしれませんが、丁寧に明記してくれています。


【サイズに関する損失関数】

さらに、各オブジェクトkについて、オブジェクトサイズs_k = (x^{(k)}_2-x^{(k)}_1,y^{(k)}_2-y^{(k)}_1)を回帰します。


計算上の負担を制限するために、我々は全てのオブジェクトカテゴリに対して単一サイズの予測\hat{S} \in \mathcal{R}^{\frac{W}{R}\times\frac{H}{R}\times 2}を使用します。


目的2と同様に、中心点でのL1損失として次式を使用します。



\begin{align}
L_{size} = \frac{1}{N} \sum_{k=1}^{N} \|\hat{S}_{pk} - s_k \| . 
\end{align}
\tag{3}

オブジェクトサイズについても損失関数を考えています。
各オブジェクトのサイズはバウンディングボックスの右下座標から左上座標を引くことで求めることができます。これと推論結果の差分絶対値が損失になる、というのが式(3)です。

ここでは、「全てのオブジェクトカテゴリに対して単一サイズの予測\hat{S} \in \mathcal{R}^{\frac{W}{R}\times\frac{H}{R}\times 2}を使用します。」とありますが、よく意味が分かりませんでした。単に、カテゴリごとにサイズ定義を変えることはしない、という意味でしょうか。

また、\mathcal{R}^{\frac{W}{R}\times\frac{H}{R}\times 2}は、\hat{O}, \hat{S}\frac{W}{R}\times\frac{H}{R}\times 2次元の実数ということだと思います。つまりサイズ\frac{W}{R}\times\frac{H}{R}のヒートマップ中の各画素について、縦横ふたつの値を推論するということと理解しました。

スケールを正規化せず、そのままのピクセル座標を直接使用します。代わりに、損失を定数λ_{size}でスケーリングします。


全体的なトレーニング目的は、



\begin{align}
L_{det} = L_k + \lambda_{size}L_{size} + \lambda{off}L_{off} . 
\end{align}
\tag{4}


となります。特に指定しない限り、すべての実験で\lambda_{size} = 0.1および\lambda_{off} = 1に設定します。

最終的に学習に用いる関数が、求めるオブジェクトの位置を表すヒートマップに関する損失(式1)、解像度の違いを補正するオフセットに関する損失(式2)、オブジェクトのサイズに関する損失(式3)を組み合わせた式4です。

我々はキーポイント\hat{Y}、オフセット\hat{O}、およびサイズ\hat{S}を予測するために単一のネットワークを使用します。


ネットワークは各ロケーションで合計C + 4の出力を予測します。


すべての出力は共通の完全畳み込みバックボーンネットワーク(fully-convolutional backbone network)を共有します。


各モダリティについて、バックボーンの特徴は、それから、別々の3×3畳み込み、ReLUおよび別の1×1畳み込みを通過する。

ここで言っているのは次のようなネットワークです。

  • 一つの画像を入力すると、C枚のキーポイント画像、縦横2枚のオフセット画像、縦横2枚のサイズ画像、系C+4枚の出力画像を生成する
  • ネットワークは、完全畳み込みバックボーンネットワーク(fully-convolutional backbone network)

完全畳み込みバックボーンネットワーク(fully-convolutional backbone network)について、「各モダリティについて、バックボーンの特徴は、それから、別々の3×3畳み込み、ReLUおよび別の1×1畳み込みを通過する。」の意味は良く分かりません。ここでは放置して読み進めます。

図4にネットワーク出力の概要を示します。


図4:さまざまなタスクに対する私たちのネットワークの出力:

  • 上がオブジェクト検出用
  • 中央が3Dオブジェクト検出用
  • 下が姿勢推定用

すべてのモダリティは、ReLUによって分離された異なる3×3および1×1の出力畳み込みからなる、共通のバックボーンから生成されます。括弧内の数字は出力チャンネルを示します。詳細はセクション4をご覧ください。

論文では、図4にネットワーク出力の概要が示されています。
本文中のC+4出力のネットワークはオブジェクト検出用であり、3Dオブジェクト検出時は3Dサイズ3枚、depth1枚、orientation8枚、計12枚の画像を出力するネットワークになるようです。

「すべてのモダリティは、ReLUによって分離された異なる3×3および1×1の出力畳み込みからなる、共通のバックボーンから生成されます。」とは、これらオブジェクト検出、3Dオブジェクト検出、姿勢推定のことをモダリティと呼び、それらのモダリティが出力層(あるいは複数の層?)を除いて共有のネットワーク層(バックボーン)を使うことができるということでしょうか?

セクション5と補足資料には、追加のアーキテクチャの詳細が含まれています。

詳細を理解するには、とりあえず読み進めていくしかなさそうです。

まとめ

"4. Objects as Points"を読み始めました。4章はこのあと、"From points to bounding boxes"、"4.1. 3D detection"、"4.2. Human pose estimation"と続いており、またもしかしたら補足資料(Appendix)を読まないと理解できないこともあるかもしれず、まだまだ先は長そうです。