【3DETR論文まとめ】Transformerを用いた$3$D Object Detection

$3$D Object Detectionは点群の$3$D空間上の点に対してバウンディングボックス(bounding box)とそのクラスを予測するタスクです。当記事では$3$D Object DetectionにTransformerを導入した研究である$3$DETRについて取りまとめました。
DETRの論文である「End-to-End Object Detection with Transformers」の内容を参考に作成を行いました。

・用語/公式解説
https://www.hello-statisticians.com/explain-terms

前提の確認

Transformerの概要

Dot Product Attentionに主に基づくTransformerの仕組みについては既知である前提で当記事はまとめました。下記などに解説コンテンツを作成しましたので、合わせて参照ください。

・直感的に理解するTransformerの仕組み(統計の森作成)

GIoU

DETR

3DETR

処理の概要

$3$DETR(DEtection TRansformer)の処理の概要は下図より確認できます。

$3$DETR論文 Figure$\, 2 \, (\mathrm{left})$

基本的にはDETRのCNN backbone処理をPointNet++に基づくMLP処理に置き換えたと理解して良いと思います。PointNet++やPointNet++で用いられるFPS(Farthest Point Sampling)については下記で詳しく取り扱いました。

query embeddings

Faster-RCNNやSSDなどのCNNを用いたObject Detectionのネットワークではバウンディングボックスの予測にあたって、事前に設定したAnchor boxとネットワークの出力のオフセット項を元にバウンディングボックスの回帰を行います。

一方、Transformerを用いてObject Detectionを行ったDETRではTransformerのPositional Encodingを学習パラメータに設定し、Positional EncodingをAnchor boxの代わりに用います。

このPositional Encodingをquery embeddingsといい、$3$DETRでも同様な処理が用いられます。

Decoderのアウトプット

Location

Locationはバウンディングボックスの中心の位置の$(X,Y,Z)$値に対応し、$3$DETR論文では$\mathbf{c}$で表されます。query embeddingsに基づく$\mathbf{q}$とネットワークからの出力の補正項の$\Delta \mathbf{q}$を用いて$\mathbf{c}$の予測は$\hat{\mathbf{c}} = \mathbf{q} + \Delta \mathbf{q} \in \mathbb{R}^{3}$のように定義されます。

ここでground truthの「$\cdot$」に対して「$\hat{\cdot}$」は予測を表すにあたって用いられることも注意しておくと良いです。

Size

Locationはバウンディングボックスのサイズに対応し、$X,Y,Z$の三方向についてスカラー値を持ちます。Locationと同様にquery embeddingとネットワークの出力の補正項を元に$\hat{\mathbf{d}} \in \mathbb{R}^{3}$が定義されます。

Orientation

室内を取り扱った点群であるSUN RGB-Dなどでは重力方向に変換したものが用いられるので、角度の自由度は$1$つだけ取り扱えれば十分です。$3$DETRではVoteNetなどと同様に、$[0, 2 \pi)$の間から$12$個のクラスと補正項のresidualの予測を行います。

$12$個のカテゴリを$\mathbf{a}_{c}$、residualを$\mathbf{a}_{r}$と表し、角度に関する出力$\hat{\mathbf{a}}$を下記のように定義します。
$$
\large
\begin{align}
\hat{\mathbf{a}} = [\hat{\mathbf{a}}_{c}, \hat{\mathbf{a}}_{r}]
\end{align}
$$

Semantic Class

Semantic Classはバウンディングボックス内のクラス分類の結果に対応します。ground truthの$\mathbf{s}$が$K$カテゴリ+背景の$1-$hotベクトル、ネットワークの出力に基づく予測が$\hat{\mathbf{s}} \in [0, 1]^{K+1}$のベクトルでそれぞれ定義されます。

3DETRのloss

$3$DETRのlossの$\mathcal{L}_{3 \mathrm{DETR}}$は下記のように定義されます。
$$
\large
\begin{align}
\mathcal{L}_{3 \mathrm{DETR}} = \lambda_{c}|| \hat{\mathbf{c}}-\mathbf{c}||_{1} &+ \lambda_{d}|| \hat{\mathbf{d}}-\mathbf{d}||_{1} + \lambda_{ar}|| \hat{\mathbf{a}}_{r}-\mathbf{a}_{r}||_{\mathrm{huber}} \\
&- \lambda_{ac} \mathbf{a}_{c}^{\mathrm{T}} \log{\hat{\mathbf{a}}_{c}} \, – \, \lambda_{s} \mathbf{s}^{\mathrm{T}} \log{\hat{\mathbf{s}}}
\end{align}
$$

上記の$||\cdot||_{1}$は$L1$ノルム、$||\cdot||_{\mathrm{huber}}$はHuber lossと同様の計算に基づくノルムをそれぞれ表します。また、$\mathbf{a}_{c}$や$\mathbf{s}$はそれぞれベクトルであることから、上記のようにクロスエントロピーによる分類のlossが計算されます。

Bipartite Matching

前項で取り扱った$3$DETRのlossの定義にあたっては、「どの予測とどのバウンディングボックスを対応させるか」という前段階の処理が必要です。このBipartite Matchingの解決にあたってはHungarian algorithmが用いられます。

参考

・Transformer論文
・DETR論文
・$3$DETR論文