Fusion++

McCormac & Clark 2018 · 論文

一行要約 — Mask-RCNNのインスタンスセグメンテーションを用いて、事前モデルを必要とせずに任意の物体の物体ごとのTSDF再構成を作成し、物体を6自由度ポーズグラフのランドマークノードとして扱う物体レベルのボリューメトリックSLAMシステム。

問題

SLAM++は物体レベルのマッピングを実証したが、既知の3Dモデルの事前構築されたデータベースを必要としたため、マップ化可能な全ての物体が事前にスキャンされている管理された環境に限定されていた。一方、密なシーン全体のマップ(サーフェル、大域TSDF)はメモリを大量に消費し、物体と雑多な背景を区別なく扱う。欠けていたのは、任意の物体をその場で発見し、各物体をコンパクトに再構成し、それらの持続的な物体をトラッキング、再位置決め、ループ閉じ込みのためのマップそのものとして使用できるシステムであった。

手法とアーキテクチャ

パイプライン。 RGB-D入力から、粗いインスタンス非依存の背景TSDF(2563256^3、2cmボクセル、カメラの移動に応じてリセットされる)が局所的なフレーム対モデルトラッキングとオクルージョン処理を支える。並列スレッドでは、Mask R-CNN(ResNet-101、NYUv2でファインチューニング、パスあたり約250ms)がインスタンスマスクを生成し、それらはフィルタリング(検出上位100個、maxp(liIk)>0.5\max p(l_i \mid I_k) > 0.5、マスク面積>502> 50^2px、画像端から離れている)され、レイキャストとマスクの重なり(adetect>0.2a_{\mathrm{detect}} > 0.2)によって既存のマップ上の物体に対応付けられる。マッチしなかった検出は新しい物体TSDFを生成し、マッチしたものは既存の物体に融合される。持続的なマップは、ポーズグラフ内の物体TSDFの集合のみである。

物体ごとのTSDF。 マスクされたピクセルはWp=T~WCkK1Dk(u)u{}_{W}\mathbf{p} = \tilde{\mathbf{T}}_{WC}^{k} \mathbf{K}^{-1} D_k(\mathbf{u})\, \mathbf{u}で逆投影される。10%点/90%点がボリュームの中心と立方体サイズsos_oを定義する(パディング係数m=1.5m = 1.5、最大3m)。初期解像度は軸あたりro=64r_o = 64(128まで拡大可能)であり、ボクセルサイズvo=so/rov_o = s_o / r_oは物体の大きさに適応する。小さな物体は細かいディテールを、大きな物体は低コストのままとなる。切り捨てμ=4vo\mu = 4 v_o内の深度は、ボリューム全体にわたる重み付き平均によって融合される。どのボクセルが物体に属するかは別途、マスク検出をベータ事前分布を持つ二項試行として融合することで学習される。前景/非前景カウントFo(v),No(v)F^o(\mathbf{v}), N^o(\mathbf{v})は以下を与える。

E[po(v)]=Fo(v)Fo(v)+No(v)E[p^o(\mathbf{v})] = \frac{F^o(\mathbf{v})}{F^o(\mathbf{v}) + N^o(\mathbf{v})}

そしてレイキャストは、E[po(v)]>0.5E[p^o(\mathbf{v})] > 0.5である場所にのみ表面をレンダリングする。各物体は、平均化されたクラス確率p(loI1..k)=1kip(loIi)p(l_o \mid I_{1..k}) = \frac{1}{k}\sum_i p(l_o \mid I_i)(平均化は、過信になりやすい乗算的ベイズよりも優れている)と、ベータカウント(eo,do)(e_o, d_o)を持つ存在確率も保持する。E[p(o)]<0.1E[p(o)] < 0.1である物体は削除される。

トラッキング。 背景TSDFと全ての物体ボリュームは、レイヤ化された参照フレームへレイキャストされ、ライブ深度は投影的な点対平面ICPによって位置合わせされる。

ricp(T~WCl,ul)=Nr(ur)(Vr(ur)T~WClVl(ul))r_{\mathrm{icp}}(\tilde{\mathbf{T}}_{WC_l}, \mathbf{u}_l) = N_r(\mathbf{u}_r) \cdot \big( V_r(\mathbf{u}_r) - \tilde{\mathbf{T}}_{WC_l} V_l(\mathbf{u}_l) \big)

これは3レベルピラミッド(レベルあたり5反復)上でガウス・ニュートン法によって最小化され、インスタンスごとに誤差が分割される。トラッキングは、ICPのRMSEが0.05mを超えた場合(または有効なピクセルが少なすぎる場合)に失われたと判定され、再位置決めが起動される: 深度付きBRISK特徴、物体ごとの3D-3D RANSACに続いてシーン全体にわたる結合RANSAC(5cm以内で50以上のインライア)である。

物体レベルのポーズグラフ。 ノードはカメラポーズTWC\mathbf{T}_{WC}と物体ポーズTWO\mathbf{T}_{WO}であり、エッジは分割されたICP項からの「仮想」相対ポーズ計測、例えばeoc=log((T~OCko)1TOWoTWCk)\mathbf{e}_{\mathrm{oc}} = \log\big( (\tilde{\mathbf{T}}^{\prime o}_{OC_k})^{-1} \mathbf{T}^{o}_{OW} \mathbf{T}_{WC_k} \big)であり、情報行列はHpg=Jpg(JicpoJicpo)Jpg\mathbf{H}_{\mathrm{pg}} = \mathbf{J}^{\top}_{\mathrm{pg}} ( \mathbf{J}^{o\top}_{\mathrm{icp}} \mathbf{J}^{o}_{\mathrm{icp}} ) \mathbf{J}_{\mathrm{pg}}であり、Jpg\mathbf{J}_{\mathrm{pg}}はICPとポーズグラフの摂動の慣習を変換するTWCk\mathbf{T}_{WC_k}の随伴表現である。ロバストな(Huber)グラフは、g2oでLevenberg-Marquardt法によって解かれる。ループ閉じ込みは物体の相対ポーズを調整するが、TSDF内部を変形させることは決してないため、再構成は鮮明なままである。

実験結果

制約の乏しいICPに負荷をかけるよう設計された3,685フレームのオフィスループでは、システムは蓄積したドリフトの後で再位置決めとポーズグラフの補正を行い、繰り返されるループにわたって105個の再構成された物体インスタンスを再利用する。TUM RGB-Dベンチマークでは、Fusion++は粗TSDFオドメトリのベースラインに対して6シーケンス中5でATE RMSEを改善する: fr1_desk 0.049対0.066m、fr1_room 0.235対0.305、fr2_desk 0.114対0.342、fr2_xyz 0.020対0.022、fr3_long_office 0.108対0.281(fr1_desk2はわずかに悪化、0.153対0.146)。論文は、使用可能な物体マップを優先しているため、ElasticFusion/ORB-SLAM2の精度には到達しないと述べている。物体再構成の品質は、YCBビデオデータセット上のYCB真値モデルに対して定性的に比較される。メモリは物体あたり約4MB(105個の物体で377MBに対し、同じ予算での単一の9003900^3ボリュームの場合ははるかに大きい)であり、最適化されていないPython/C++/CUDAシステムは、再位置決めを除いて4〜8Hzで動作する(トラッキング35ms、レイキャスト25ms+可視物体あたり0.5ms、Mask R-CNNがスレッド内で260ms、再位置決め780ms)。

SLAMにおける意義

Fusion++は、既製のインスタンスセグメンテーションCNNが任意の屋内シーンにおける物体レベルSLAMの発見メカニズムとして機能しうること、そして剛体の物体ごとのTSDFのポーズグラフが、モデル内部の変形なしにループ閉じ込みの一貫性を与えることを示すことで、SLAM++の最大の制約(事前構築されたCADデータベース)を取り除いた。これは密融合の系譜(KinectFusion式のTSDF)と意味論の系譜(SemanticFusion)の交点に位置し、MoreFusion、NodeSLAM、DSP-SLAMに直接影響を与えた。これらは、生の物体ごとのTSDFを、学習された姿勢・形状事前分布へ段階的に置き換えていく。

関連ノート