全5771文字
PR
この記事は日経Robotics 有料購読者向けの過去記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 SLAMは移動体がオンラインでセンシングを行いながら自己位置推定および環境地図の作成を行うタスクであり、ロボットやドローン、自動車の自動運転などで重要なタスクである。センサとしてLIDARや車輪のエンコーダ(オドメトリ)を使う場合が多いが、カメラを利用したVisual SLAMも増えつつある。

著者の岡野原大輔氏
著者の岡野原大輔氏

 このSLAMタスクにおいて2021年8月に発表されたDROID-SLAM1)は従来のVisual SLAMの精度、成功確率(通常のSLAMは自己位置を見失うなど失敗する場合も多い)を大きく改善した(図1)。具体的にはECCV 2020 SLAM Competitionの優勝チームと比べて自己位置推定精度で62%誤差を小さくしたほか、EuRoC、TUM-RGBD、ETH3D-SLAMなど、他のデータセットでも従来手法の誤差を60~80%近く改善している。また成功確率もETH3D-SLAMで従来手法が19/32回成功だったのに対し、DROID-SLAMは30/32回成功した。

図1 DROID-SLAMにより作成した3次元地図の例
図1 DROID-SLAMにより作成した3次元地図の例
(図:文献1のZ. Teed et al., “DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras,”より)
[画像のクリックで拡大表示]

 DROID-SLAMの主著者であるPrinceton UniversityのZachary Teed氏はこれまでVision SLAMの一つであるDeepV2D2)、オプティカルフロー(動画の隣接フレーム間での対応画素間の移動量を推定するタスク)の最高精度を達成したRAFT3)、3次元変換群に対する微分4)などの研究を発表しており、今回のDROID-SLAMはこれらの研究の集大成といえる。RAFTは画像認識のトップ学会の1つであるECCV2020でベストペーパーを受賞している。DROID-SLAMがどのように問題を解いているのか、なぜ大きく性能を改善できたのかについて解説する。

従来のSLAM手法との比較

 SLAMは従来、確率的モデルで定式化され、カメラ姿勢推定と環境復元を交互に最適化することで実現されていた。近年ではバンドル調整(Bundle Adjustment:BA)とよばれるエネルギー最小化のような最適化問題を定義し、カメラ姿勢と3次元環境の地図推定を同時に推定するアプローチが主流となっていた。この定式化は複数の異なるセンサを組み合わせられる利点がある。

 これに対し、DROID-SLAMは教師あり学習を使い、画像群を入力としカメラ姿勢と各画像の深度として表される環境地図を出力するよう学習する。SLAM問題を直接学習することは学習自体が難しかったり、汎化しない問題があった。DROID-SLAMはこの問題に対し、バンドル調整を内部で利用することで問題が持つ物理制約をモデルに取り込み、またRAFTで使っていた微分可能な再帰的最適化(Differentiable Recurrent Optimization-Inspired Design:DROID)を利用することで、環境に対する適応能力を大幅に改善した。最適化方法を学習しているともいえる。

DROID-SLAMの手法詳細

 それではDROID-SLAMの具体的な手法について説明しよう。

 入力として画像集合$\{I_t\}_{t=0}^N$が与えられたとする。各画像$I_t$はカメラ姿勢$\mathbf{G}_t \in SE(3)$(回転と並進)と画素ごとの深度の逆数$\mathbf{d}_t \in R_{+}^{H \times W}$を状態として持つ。これらの状態がモデルの推定対象である。またフレームグラフ$(\mathcal{V}, \mathcal{E})$を考え、各頂点は画像であり、枝$(i, j) \in \mathcal{E}$は画像ペア$I_i, I_j$間に共通して見えている箇所がある場合を表すとする。状態が更新されるたびに、共通して見ている箇所も変わるので、フレームグラフもそれに応じて更新される。

 始めに、現在のカメラ姿勢$\mathbf{G}$と深度$\mathbf{d}$を使って、ある画像$I_i$の画素が別の画像$I_j$のどの画素に対応するのかを求める。画像$I_i$上の画素グリッドの座標を並べたベクトルを$\mathbf{p}_i\in R^{H \times W \times 2}$とする(例えば$(0, 0), (0, 1) ..., (H-1,W-1)$のように)。この時、$I_j$上での対応する画素の座標は次のように求められる。

\[ \mathbf{p}_{ij} = \Pi_c(\mathbf{G}_{ij} \circ\Pi_c^{-1}(\mathbf{p}_i, \mathbf{d}_i)) \]

ここで$\Pi_c$はカメラモデルに基づき3次元中の点を画像中の位置へ変換する操作であり、$\Pi_c^{-1}$は逆に画像中の位置から、フレーム座標の3次元中の位置に変換する操作である。また$\mathbf{G}_{ij} = \mathbf{G}_j \circ\mathbf{G}_i^{-1}$は画像$I_i$のフレーム座標を世界座標に戻した上で画像$I_j$のフレーム座標に変換する操作である。

 次に画像由来の情報でこれらの対応を補正することを考える。画像$I_i,I_j$間の対応関係を求める場合、まずそれぞれの画像をCNN($g$で表す)を使って$1/8$の解像度にした特徴マップ$g(I_i),g(I_j)$に変換し、次に画像ペアの全画素間の対応を表す4D特徴ボリューム$C^{ij}$を次のように求める。

\[ C^{ij}_{u_1 v_1 u_2 v_2} = \langle g(I_i)_{u_1v_1}, g(I_j)_{u_2 v_2} \rangle \]

この4D特徴ボリュームの各値は特徴マップの内積で得られる。次にこの4D特徴ボリュームの片方の画像の解像度だけをダウンサンプリングで減らした特徴ピラミッドを作る。この4D特徴ボリュームは画素間にどのような対応があるのか、補正すべきかといった情報を表している。

 次に$\mathbf{p}_{ij}$を使って4D特徴ボリュームの対応する特徴を読み込み、それを使ってConvGRU(convolutional gated recurrent unit)の内部状態$\mathbf{h}_{ij}$を更新する。そして、更新された状態から対応の補正量$\mathbf{r}_{ij} \in R^{H×W×2}$と確信度$\mathbf{w}_{ij}\in R_{+}^{H \times W \times 2}$を出力し、補正した対応を$\mathbf{p}_{ij}^*$とする。

\[ \mathbf{p}_{ij}^* = \mathbf{r}_{ij} + \mathbf{p}_{ij} \]

現在の対応関係を画像由来の対応を使って修正する操作とみなせる。そして補正された対応および確信度を使ってバンドル調整を行う。バンドル調整は次の目的関数の最小化問題を解くことで達成される。

\[ \mathbf{E}(\mathbf{G}', \mathbf{d}') = \sum_{(i, j) \in \mathcal{E}} || \mathbf{p}_{ij}^* - \Pi_{c}(\mathbf{G}'_{ij} \circ\Pi_{c}^{-1}(\mathbf{p}_i, \mathbf{d}_i')) ||_{\Sigma_{ij}}^2 \]

ただし$|| \cdot || _{\Sigma}$はマハラノビス距離であり、$\Sigma_{ij} = \mathrm{diag}\mathbf{w}_{ij}$である。先程の位置を推定している場合と似ているが、今回は入力が対応$\mathbf{p}_{ij}^*$と確信度$\Sigma_{ij}$であり、最適化対象の変数がカメラ姿勢$\mathbf{G}'$と深度$\mathbf{d}'$である。

 この最適化は線形化した上で、ガウス・ニュートン法による解を解析的に求められる。これは、$\mathbf{p}_{ij}^*$を入力とし、最適化された$\mathbf{G}'$、$\mathbf{d}'$が出力される微分可能な層とみなすことができる。そして、更新されたカメラ姿勢と深度を再度入力として、上の操作を同じパラメータを共有したネットワークに再度通し、更新することを繰り返す。このように、DROID-SLAMは画素間の対応関係、姿勢、深度を更新していく操作を繰り返していく。これら全体が1つのネットワークとなっている。

 このようにして作られたネットワークを使ったSLAMシステムはフロントエンドとバックエンドから構成される。フロントエンドは画像を受け取り、特徴を抽出し、キーフレームを選び、局所的にカメラ姿勢と地図を更新する。バックエンドは定期的に全画像でカメラ姿勢と地図を更新する。4D特徴ボリュームは大きいのでキャッシュせず利用時に毎回計算する。

CGを教師データに使って学習した

 学習にはTartanAir5)データセットを利用した。Tartan AirはUnreal Engineを使って作られたCGデータセットであり、屋内外の30セットの環境から成る1037シーケンスから構成される。各シーケンスは500から4000画像で構成され、データ全体では100万超の画像から成る。これは従来利用されていたデータセットと比べて数十倍大きい。CGなので画素間の対応関係や姿勢の正解が得られることに注意されたい。

 学習は姿勢損失と対応損失を使った教師あり学習で行った。姿勢損失は推定した姿勢と真の姿勢との誤差とし、対応損失は真の深度と姿勢によって求められた対応と、推定された対応間の誤差とした。これらの誤差は再帰的に更新をしている全てのステップで与えられるとした。

 DROID-SLAMはこのように全てのステップでその途中の推定結果を元にそれを改善するようにして学習し、このステップを繰り返していけば真の解に収束するように学習する。このように学習されたDROID-SLAMは、最初に述べたように多くのデータセットやタスクで従来手法を大きく凌駕する精度と頑健性を達成できた。また処理速度も従来のVisual SLAMより速く、2台のGPUを使えばリアルタイムで処理することもできる。

なぜ大きな改善を達成したのか

 DROID-SLAMが大きな改善を達成した理由としては、TartanAirデータセットという非常に大きなデータセットを利用して教師あり学習をしたことにあり、特に画素間対応という大量の教師信号を使ってモデルの精度や頑健性を大幅に改善できたとみられる。

 一方で従来はCGを使った学習は大きく成功していなかった。シミュレーションと現実世界間のギャップが大きく、CGで学習したモデルを現実世界の問題に使えなかった。しかしDROID-SLAMはCGのみで学習し、実世界データでのfine-tuningをしていないにもかかわらず多様な現実環境に汎化できており、このギャップを克服している。

 ギャップを克服できた理由として、再帰的に修正が入る仕組みが推論時に環境に適応する役割を果たしているのではないかと考えられる。例えば現実世界のデータを入力とした場合、最初のイテレーションでは大きく推定がずれたとしても、その時の誤差を基に後続のイテレーションで修正できる。

 また、ConvGRUの状態が入力データの特徴を理解し挙動を変えているとみなせる。このような状態を持ったネットワークが環境に適応する例は、シミュレーションで学習したロボットがルービックキューブを解く例でも報告がされていた6)。人間もツルツルとした氷の上を歩く場合は1歩目、2歩目は滑って思い通りに歩けないが、すぐに最初の誤差を基に自分の挙動を調整し、それ以降は歩くことができる。

本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 このような入力や誤差を基にした状態を使って自分の挙動を逐次的かつ再帰的に修正が入る仕組みは、他のタスクにおいても高い汎化性能を達成する上で有効だと思われる。

1)Z. Teed et al., “DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras,” https://arxiv.org/abs/2108.10869
2)Z. Teed et al., “DeepV2D: Video to Depth with Differentiable Structure from Motion,” ICLR 2020, https://arxiv.org/abs/1812.04605
3)Z. Teed et al., “RAFT: Recurrent All-Pairs Field Transforms for Optical Flow,” ECCV2020, https://arxiv.org/abs/2003.12039
4)Z. Teed et al., “Tangent Space Backpropagation for 3D Transformation Groups,” CVPR 2021, https://arxiv.org/abs/2103.12032
5)W. Wang et al., “TartanAir: A Dataset to Push the Limits of Visual SLAM,” IROS 2020, https://arxiv.org/abs/2003.14338
6)OpenAI, “Solving Rubik's Cube with a Robot Hand,” https://arxiv.org/abs/1910.07113
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 代表取締役 最高執行責任者
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。