KinectFusion

Newcombe 2011 · 論文

一行要約 — GPUアクセラレーションによる体積的なTSDF融合とcoarse-to-fineの点-平面ICPトラッキングを用いて、部屋サイズのシーンを30 Hzで再構成する、初のリアルタイムRGB-D密SLAMシステム。

問題

KinectFusion以前、密な3次元再構成には高価なオフライン処理や低速な逐次アルゴリズムが必要であった。コンシューマー向けのKinectは突如として安価な640x480深度ストリームを30 Hzで提供したが、そのデータをリアルタイムで一貫した表面モデルに融合できるシステムは存在しなかった。KinectFusionは、完全にGPU上に常駐するパイプライン——オフライン処理も特徴抽出も一切ない——によってこの隙間を埋め、ゲーム用の周辺機器をライブの3Dスキャナーへと変えた。

手法とアーキテクチャ

全体のループは各フレームでGPU上で実行される: 深度取得 → バイラテラルフィルタ → 頂点/法線マップのピラミッド → ICP (3レベル) → TSDF統合 → レイキャストによる表面予測。そして、そのレイキャストによる予測が次フレームのトラッキング基準となる。

表面測定。 生の深度はバイラテラルフィルタリングされ、頂点マップVk\mathbf{V}_kへ逆投影される。法線Nk\mathbf{N}_kは有限差分から求められ、その後ブロック平均化とサブサンプリングにより3レベルのピラミッドが構築される。

センサー姿勢推定(フレーム対モデル、点-平面ICP)。 姿勢Tg,kSE(3)\mathbf{T}_{g,k} \in \mathrm{SE}(3)は、ライブ測定とレイキャストによるモデル予測(V^k1,N^k1)(\hat{\mathbf{V}}_{k-1}, \hat{\mathbf{N}}_{k-1})との間の大域的な点-平面エネルギーを最小化することで求められる。

E(Tg,k)=u,Ωk(u)null(Tg,kV˙k(u)V^k1g(u^)) ⁣N^k1g(u^)2E(\mathbf{T}_{g,k}) = \sum_{\mathbf{u},\,\Omega_k(\mathbf{u}) \neq \text{null}} \Big\| \big(\mathbf{T}_{g,k}\dot{\mathbf{V}}_k(\mathbf{u}) - \hat{\mathbf{V}}^{g}_{k-1}(\hat{\mathbf{u}})\big)^{\!\top} \hat{\mathbf{N}}^{g}_{k-1}(\hat{\mathbf{u}}) \Big\|_2

対応関係u^\hat{\mathbf{u}}射影データ対応(ライブ頂点を予測マップに投影する——最近傍探索は不要)から得られ、距離閾値と法線適合性閾値εd,εθ\varepsilon_d, \varepsilon_\thetaによってゲーティングされる。フレーム間の運動が小さいと仮定し、増分変換はパラメータx=(β,γ,α,tx,ty,tz)R6\mathbf{x} = (\beta, \gamma, \alpha, t_x, t_y, t_z)^\top \in \mathbb{R}^6で線形化され、GPU上での並列ツリーリダクションで構築される6×66{\times}6の対称正規方程式系AAx=Ab\sum \mathbf{A}^\top \mathbf{A}\,\mathbf{x} = \sum \mathbf{A}^\top bが得られ、CPU上でコレスキー分解によって解かれる。反復はcoarse-to-fineで実行され、ピラミッドレベル[3,2,1][3, 2, 1]においてそれぞれ最大[4,5,10][4, 5, 10]回の反復を行う。x\mathbf{x}の零空間と大きさのチェックにより、退化した幾何や線形化の破綻が検出され、再位置決めモードが起動される。

TSDF統合によるマッピング。 固定されたボクセルグリッドが、各ボクセルにトランケートされた符号付き距離F(p)F(\mathbf{p})と重みW(p)W(\mathbf{p})を保持する。各フレームの射影的な符号付き距離は、帯μ\muにトランケートされる。

fk(p)=Ψ(dk(π(KTg,k1p))λ1ptg,kμ),Ψ(η)=min(1,max(1,η))f_k(\mathbf{p}) = \Psi\left(\frac{d_k(\pi(\mathbf{K}\mathbf{T}_{g,k}^{-1}\mathbf{p})) - \lambda^{-1}\|\mathbf{p} - \mathbf{t}_{g,k}\|}{\mu}\right), \qquad \Psi(\eta) = \min\big(1, \max(-1, \eta)\big)

これが加重移動平均によって融合される。

Fk(p)=Wk1(p)Fk1(p)+wk(p)fk(p)Wk1(p)+wk(p)F_{k}(\mathbf{p}) = \frac{W_{k-1}(\mathbf{p})\,F_{k-1}(\mathbf{p}) + w_k(\mathbf{p})\,f_k(\mathbf{p})}{W_{k-1}(\mathbf{p}) + w_k(\mathbf{p})}

これによりセンサーノイズが平均化されて打ち消される。WWを最大値でトランケートすることは、代わりに移動平均をもたらし、シーンの小さな変化を吸収する。

レイキャストによる表面予測。 レイはTSDFを通ってゼロクロッシングまで進む(値が正のトランケート範囲にある間はμ\mu未満のステップでスキップする)。クロッシングは、三線形補間されたサンプル値の線形補間によって精密化され、表示にも次のICP基準にも用いられる予測頂点/法線マップを生成する。融合された体積に対するフレーム対フレームではないフレーム対モデルトラッキングは、この論文を特徴づける設計上の決定である。

実験結果

すべての評価はライブのKinectデータ(640x480深度、30 Hz)上で行われている。ターンテーブル実験(19秒間に560フレーム、3 m^3の体積内に256^3ボクセル)では、フレーム対フレームICPは目視できるドリフトと非円形の軌跡を蓄積するのに対し、フレーム対モデルトラッキングは最初と最後のフレームがほぼ完全に重なるようにループを閉じ、明示的な大域最適化は不要である。同じループをM=4回繰り返すと、位置合わせがさらに引き締まりアーティファクトが減少する。キーフレーム式トラッキング(8フレームおきに)はドリフトを減らすが、ドリフトフリーであるのはフレーム対モデルのみである。システムはメモリを1/64(64^3ボクセル、6フレームおき)にしても優雅に劣化する。処理時間は64^3から512^3までボクセル解像度に対して一定であり、TSDF統合は毎秒65ギガボクセルを超える(512^3の全体積更新につき約2 ms)。ボクセル要素あたり16ビットで十分である(SDF値に限れば6ビットでも可)。報告されている失敗モードは、視野を大きな平面が占めるとICPの零空間で6自由度中3自由度が制約されなくなることである。本論文はISMAR 2011でBest Paperを受賞した。

SLAMにおける意義

KinectFusionは、深度前処理、射影データ対応ICP、TSDF融合、レイキャスト予測という標準パイプラインを確立し、事実上その後のすべてのRGB-D密SLAMシステムがこれを基盤としている。安価なコンシューマー向け深度センサーとGPUの並列性を組み合わせることで、以前はオフライン処理を必要としていた密な再構成を実現できることを示し、このレベルで取り扱う融合システム(Kintinuous、ElasticFusion、BundleFusion、InfiniTAM)の波全体を引き起こした。論文自身が述べている限界——固定された体積、静的シーンの仮定——が、それら後継システムが取り組む研究課題を定義した。

関連ノート