BundleFusion

Dai 2016 · 論文

一行要約 — 階層的なローカルからグローバルへの姿勢最適化により大域的整合性を実現するリアルタイムRGB-D再構成であり、姿勢が補正されるたびにTSDFのデインテグレーションと再インテグレーションをその場で行う。

問題

スケーラブルなリアルタイム3Dスキャンは、再構成モデルに大きな誤差を蓄積させる姿勢ドリフトに悩まされる。大域的な補正は従来、数時間のオフライン処理を必要としていた。既存のオンライン手法は、補正に数分を要する(真にリアルタイムではない)、破滅的に失敗し復帰できない脆弱なフレーム間・フレーム対モデル追跡を使用する、あるいはスキャン品質を制限する非構造化点表現のみをサポートするといった問題を抱えていた。BundleFusionはこの3つを同時に解決することを目指した:大域的に最適化された(すなわちバンドル調整された)姿勢、リローカリゼーションを伴うロバストな追跡、そして高品質なボリューメトリックモデル――これらすべてをリアルタイムで実現する。

手法とアーキテクチャ

入力は30Hz、640×480のRGB-Dストリーム S={fi=(Ci,Di)}S = \{f_i = (C_i, D_i)\}であり、目標は各フレームを世界座標系へ写す剛体変換 Ti(p)=Rip+tiT_i(p) = R_i p + t_iである。時間的追跡の代わりに、新しいフレームはすべて入力の完全な履歴に対して位置合わせされる――ループ閉じ込みは暗黙的かつ連続的であり、リローカリゼーションは無償で得られる。

疎な対応関係の探索。 SIFTキーポイントが検出され(4~5ms/フレーム)、GPU上でこれまでのすべてのフレームに対してマッチングされる(ペアあたり約0.05ms、2万フレーム以上に対しても実行可能)。マッチは3つのフィルタを通過する:Kabschに基づくキーポイントフィルタ(条件解析を伴う剛体フィッティング;最大残差<0.02mになるまで対応関係を刈り込む)、表面積フィルタ(張られる面積が0.032m²を超える必要がある)、そして80×60にダウンサンプルされたフレームでの密な両側幾何/測光検証(再投影誤差が0.075mを超えるとペアは無効となる)。フレームペアには Nmin=5N_{\min} = 5個の有効なマッチが必要である。

階層的なローカルからグローバルへの最適化。 連続フレームは Nchunk=11N_{\mathrm{chunk}} = 11個のチャンクにグループ化される(1フレーム分オーバーラップ)。チャンクは内部でバンドル調整され、各チャンクは集約された特徴集合を持つ1つのキーフレームを、すべてのキーフレームにわたる第2段階の大域最適化に提供する。両階層は、積み重ねられた姿勢パラメータ XXに対して同じエネルギーを最小化する:

Ealign(X)=wsparseEsparse(X)+wdenseEdense(X)E_{\mathrm{align}}(X) = w_{\mathrm{sparse}} E_{\mathrm{sparse}}(X) + w_{\mathrm{dense}} E_{\mathrm{dense}}(X)

Esparse(X)=ij(k,l)C(i,j)Tipi,kTjpj,l22E_{\mathrm{sparse}}(X) = \sum_{i}\sum_{j}\sum_{(k,l) \in C(i,j)} \left\| T_i\, p_{i,k} - T_j\, p_{j,l} \right\|_2^2

ここで pi,kp_{i,k}はフレーム iikk番目の特徴点であり、C(i,j)C(i,j)はフレーム jjとの対応関係である。密な項 Edense=wphotoEphoto+wgeoEgeoE_{\mathrm{dense}} = w_{\mathrm{photo}} E_{\mathrm{photo}} + w_{\mathrm{geo}} E_{\mathrm{geo}}は、輝度勾配 IiI_i上の測光アライメントと点-平面幾何項を組み合わせ、視野角が近い(60°以内)かつ重複するフレームペア EE上で評価される:

Ephoto(X)=(i,j)EkIi(π(di,k))Ij(π(Tj1Tidi,k))22E_{\mathrm{photo}}(X) = \sum_{(i,j) \in E}\sum_{k} \left\| I_i\big(\pi(d_{i,k})\big) - I_j\big(\pi(T_j^{-1} T_i\, d_{i,k})\big) \right\|_2^2

Egeo(X)=(i,j)Ek[ni,k(di,kTi1Tjπ1(Dj(π(Tj1Tidi,k))))]2E_{\mathrm{geo}}(X) = \sum_{(i,j) \in E}\sum_{k} \Big[ n_{i,k}^{\top} \Big( d_{i,k} - T_i^{-1} T_j\, \pi^{-1}\big( D_j\big(\pi(T_j^{-1} T_i\, d_{i,k})\big) \big) \Big) \Big]^2

π\piは透視投影、di,kd_{i,k}は画素 kkの3D点、ni,kn_{i,k}はその法線である。wdensew_{\mathrm{dense}}は線形に増加させられるため、疎な項がまず大域的な構造を固定し、その後密な項がその収束域内で精緻化を行う。非線形最小二乗はGauss-Newton法とデータ並列GPU PCGソルバー(Jacobi前処理、JFJ_FJFJ_F^{\top}は別々のカーネルで適用)で解かれる。各ソルブの後、最大残差が0.05mを超える場合、問題のあるフレームペアのすべての対応関係が除去される――最終的な外れ値保護策である。

その場での再インテグレーション。 ジオメトリはボクセルハッシュ化されたTSDF(8³ボクセルブロック)に融合される。深度サンプル di(v)d_i(v)を重み wi(v)w_i(v)でインテグレーションする操作と、その正確な逆操作(デインテグレーション)は:

D(v)=D(v)W(v)+wi(v)di(v)W(v)+wi(v),W(v)=W(v)+wi(v)D'(v) = \frac{D(v)\,W(v) + w_i(v)\,d_i(v)}{W(v) + w_i(v)}, \qquad W'(v) = W(v) + w_i(v)

デインテグレーションでは加算の代わりに減算を行う。各フレームはインテグレーション済み姿勢と最適化済み姿勢の両方を保持する。新しい入力フレームごとに、姿勢の食い違いが最も大きい Nfix=10N_{\mathrm{fix}} = 10フレームが古い姿勢でデインテグレーションされ、新しい姿勢で再インテグレーションされる。これにより密なモデルは地図変形を必要とせずに、最適化された軌跡へ連続的に収束していく。

実験結果

実環境のスキャンにはiPad上のStructure Sensorをデスクトップにストリーミングして使用した。パイプラインは2基のGPU(GTX Titan X + Titan Black)に分割され、30Hzを大きく上回る速度で動作し、デフォルトボクセルは4mmである。撮影されたシーン――オフィス4つ、アパート2つ、コピー室1つ、軌跡長最大95m、2万フレーム超――はオフライン手法と同等のドリフトのないアライメントと完全性を示す。合成のICL-NUIMベンチマークでは、ATE RMSEはkt0で0.6cm、kt1で0.4cm、kt2で0.6cm、kt3で1.1cmであり、オンライン手法(例:ElasticFusion:0.9/0.9/1.4/10.6cm)およびオフライン手法(Redwood rigid:25.6/3.0/3.3/6.1cm)の最先端を上回る。TUM RGB-D上では:fr1/desk 1.6cm、fr2/xyz 1.1cm、fr3/office 2.2cm、fr3/nst 1.2cmであり、既存システムと同等かそれ以上である。アブレーション(疎のみ対疎+ローカル密対フル構成)は、疎から密へという設計の各段階が精度を向上させることを確認している。システムは追跡失敗(センサ遮蔽、特徴の少ない領域)からグローバルキーフレームに対して自己位置推定を継続することで復帰し、後にScanNetデータセットの撮影に使用された。

SLAMにおける意義

BundleFusionは、KinectFusion以来ボリューメトリックSLAMを悩ませてきた問題――ループ閉じ込み後に、変形アーティファクトを生じさせずに密な地図を補正する方法――を解決した。デインテグレーション/再インテグレーションの仕組みは、ElasticFusionの地図変形に対するTSDF世界での回答であり、密なSLAMにおける基本的な設計上の分岐の一方を定義している。現代の密なシステムが「最適化後に姿勢が変化する」ことと「地図はすでに融合済みである」ことを調和させる必要があるとき、それはこの手法を再利用している。

関連ノート