60層近いDNNで構成

 以降ではTUMとキヤノンが開発したCNN-SLAMの構成の詳細を見ていこう。図3が全体の構成である。前述したように、前段でCNNを用いて距離画像を推定し、後段でRGB-D向けSLAMの処理を行っている。CNNによる距離画像の推定は毎フレームではなく、特定のフレーム(キーフレーム)に対してのみ行う。一方、カメラ姿勢推定や最適化は毎フレーム行う。

図3 CNN-SLAMの処理の流れ
図3 CNN-SLAMの処理の流れ
入力のRGB映像からキーフレームのみを抽出し、学習済みのCNNで距離画像を推定。その後、その距離画像をRGB-D向けvisual SLAMに掛け、複数フレームの運動視差などを基にしたグローバルな3次元復元を行う。CNNの学習時には、RGB画像を入力、距離画像を教師データとして使う。CNNはGPU、vSLAMはCPU上に実装した。(写真:TUM)
[画像のクリックで拡大表示]

 距離を推定するDNNは、約60層近くから成る(図4)。TUMなどが2016年10月に発表済みの構成を今回のCNN-SLAMでもほぼそのまま用いた。入力のRGB画像は304×228画素で、RGBの3チャネル。出力は同じ解像度の距離画像(1チャネル)である。前半部分では、Microsoft Researchが提唱したCNNの一種である「Residual Network(ResNet)」を基にしている。通常のCNNは、層間で局所的なフィルタ演算を行う「畳み込み層」と間引きを行う「プーリング層」が交互に一直線に並ぶことが多いが、ResNetでは途中で枝分かれ経路を設ける。3層ほどスキップして後方の層に直接情報を送るバイパス経路を設けてある。

図4 距離画像推定を行うCNNの構造
図4 距離画像推定を行うCNNの構造
前段では、Microsoft Researchが考案した「ResNet-50」を改変して用いた。ResNet-50の後段の全結合層を削除し、代わりに画素数を増やすアップコンバート層を設けた。入力画像と同じ画素数の距離画像を出力する。(写真:TUM)
[画像のクリックで拡大表示]

 もともとのResNetは一般物体認識用に考案されたネットワークのため、後段には識別のための全結合層がある。CNN-SLAMではこれは取り除き、代わりにFCNとして画像を出力できるよう、解像度を高めるアップコンバート層を6層ほど設けた。アップコンバート層の前段では解像度が10×8で、チャネルが2048となっている。画像中のどこにどのような物体があるかという情報が前半部分で一度凝縮され、それを再び距離画像に変換しているとみられる。

 CNNの訓練データとしては、RGB-D画像のデータセット「NYU Depth v2」を用いた。汎化性を見るため、CNNの実行時は「TUM RGB-D SLAM」など別のデータセットを用いた。訓練データの撮影に用いたカメラの焦点距離と、実行時に用いるカメラの焦点距離は異なる。そのままでは絶対距離の推定に誤差が発生するため、両者の焦点距離の比を用いてCNNが推定した距離画像の値を調整するようにした。

 CNN-SLAMで得られた3次元復元結果の精度は、CNNのみで距離推定した場合よりも4%ほど向上した。正解データとの誤差が10%以内に収まる画素の割合が、CNNのみの場合は18.45%であったが、CNN-SLAMでは複数フレームを勘案することにより22.46%にまで高まった。TUMが開発した単眼visual SLAMであるLSD-SLAMでは距離画像の抜けが多く疎であるため、この値はわずか3.03%だ。

 単眼visual SLAMは運動視差を基に3次元復元をするため、カメラの位置の変化がなく、回転動作のみの映像に対しては非常に脆弱である。図5右に示したように、回転運動に対してはLSD-SLAMでは3次元復元自体が破綻してしまう。これに対し、CNNでフレームごとに絶対距離を得るCNN-SLAMでは回転運動に耐性がある。

図5 カメラの回転運動にも高い耐性
図5 カメラの回転運動にも高い耐性
通常の単眼visual SLAMでは運動視差を基にしているため、視差が生まれないカメラの回転運動が起きると、3次元復元が破綻してしまう(写真右)。これに対しCNN-SLAMは、距離画像センサを使うRGB-D向けSLAMと同様に、各フレームごとに距離画像を得られるため、回転運動に対して耐性がある(写真右)。さらに距離画像センサとは異なり、屋外の太陽光への耐性もある。(写真:TUM)
[画像のクリックで拡大表示]

セグメンテーションとも統合

 CNN-SLAMでは、画像を出力できるFCNを用いているため、画素ごとの「semanticセグメンテーション」も同時に実施しやすい。semanticセグメンテーションとは、画像中にどのような種類の物体が写っているかを、画素ごとにラベリングするものだ。自動運転車向けのディープラーニングなどでよく使われる手法で、先行車や道路面、歩行者、空、交差点といったラベルをCNN(FCN)で画素レベルで振っていく。

 今回、TUMとキヤノンはこのsemanticセグメンテーションも実施した。3次元復元したすべての点群に対し、どのような種類の物体かをラベリングした(図6)。距離推定用のCNNとは別にほぼ同じ構成のネットワークを並列に設け、そこで「床」、「壁(垂直の面)」、「家具」、「小さな物体」といったラベルを推定した。前述したように、将来、ロボットに対し「本棚にある本を取ってきて」といった指示を自然言語で与えようとする際、こうしたsemanticセグメンテーションは必須の技術である。LIDARベースのSLAMと異なり、CNN-SLAMであれば、そうした用途にも使いやすい。

図6 semanticセグメンテーションの結果と重畳した様子
図6 semanticセグメンテーションの結果と重畳した様子
距離推定に用いたのとほぼ同様の構成のCNNを並列に用いれば、画素や点群ごとのsemanticセグメンテーションも可能となる。各画素ごとに、それが「床」や「壁」、「家具」などどのような種類の物体なのかラベルを推定できる。(写真:TUM)
[画像のクリックで拡大表示]
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
1)岡野原、「画像認識で大きな成果上げるCNN、分類のエラー率は1年ごとに半分近くに減少」、『日経Robotics』、2016年2月号、pp.36-37.
2)進藤、「画像認識発のディープラーニング技術CNNが音声認識にも流入、NTTが初適用し認識率世界1位」、同上、2016年3月号、pp.3-7.
3)進藤、「東芝が送電線点検に新種のディープラーニング、“知能”より“創作者”と呼ぶべき新AI『生成モデル』」、同上、2017年4月号、pp.3-9.
4)岡野原、「WaveNet:自然な音声や音楽を生成可能なニューラルネットワーク」、同上、2016年11月号、pp.25-27.
5)K. Tateno et al.,“CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction,”https://arxiv.org/abs/1704.03489
6)進藤、「日本人が英国で創業したvisual SLAMベンチャー、単眼カメラ型のKudan、ローリングシャッタも対応」、『日経Robotics』、2017年5月号、pp.12-15.
7)長場、「大成建設が建設現場向け自律型清掃ロボを開発、千葉の外環道工事に導入、夜間の清掃作業を省力化」、同上、2017年5月号、pp.8-11.
8)長場、「ヤマダ電機が1万点の在庫管理と案内をロボ1台で、米社製のロボで棚画像から欠品や売価を自動確認」、同上、2017年6月号、pp.20-24.
9)進藤、「発売2年で自律移動型になるPepper、SLAM標準搭載へ、脚部のLIDARを利用、パリ開発陣が粒子フィルタで実装」、同上、2017年4月号、pp.14-18.
10)進藤、「ロボットの“眼”、3次元LIDARに一大革新、メカレス実現の驚異のフェーズドアレー方式が登場」、同上、2016年4月号、pp.3-7.
11)D. Eigen et al.,“Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture,”https://arxiv.org/abs/1411.4734
12)長場、「PFNが世界に見せた最先端ディープラーニング技術、ピッキングロボ競技会で物体の把持位置推定にも」、『日経Robotics』、2016年10月号、pp.16-22.
13)R. Garg et al.,“Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue,”https://arxiv.org/abs/1603.04992
14)Y. Hou et al.,“Convolutional Neural Network-Based Image Representation for Visual Loop Closure Detection,”https://arxiv.org/abs/1504.05241
15)P. Ondruska et al.,“Deep Tracking: Seeing Beyond Seeing Using Recurrent Neural Networks,”https://arxiv.org/abs/1602.00991