Weitere ähnliche Inhalte Ähnlich wie 3Dマップを活用したVisual Localization (20) Kürzlich hochgeladen (12) 3Dマップを活用したVisual Localization8. Indoor Visual Localization
8
Reference:
- "InLoc: Indoor visual localization with dense matching and view synthesis." In Proc. CVPR, 2018.
- 〃. IEEE Trans. PAMI, 2019 (Early access).
- 大規模屋内環境における3Dマップを用いた自己位置推定. In Proc. SSII2019 (オーディエンス賞・優秀学術賞)
9. InLoc [H. Taira et al., CVPR2018]
9
大規模屋内環境における自己位置・姿勢推定
Given: RGBD画像群
Input: RGB画像
10. 位置候補選択
InLoc [H. Taira et al., 2018]
Approach: 古典的手法への高精細な3Dマップの導入
10
Given: 位置情報つき画像DB等 Given: 近傍の3D構造情報 (SfMモデル等)
位置・姿勢推定 位置・姿勢の検証
11. 位置候補選択
InLoc [H. Taira et al., 2018]
Approach: 古典的手法への高精細な3Dマップの導入
11
Given: 高精細3Dマップ
- RGBD画像群で構成
- 高粒度の3D構造情報
位置・姿勢推定 位置・姿勢の検証
21. Evaluation Pose verification
(高精細3Dマップ)
画像検索 (RGB画像)
姿勢推定 (RGBD画像)
Sparse feature baseline
[Arandjelović, ACCV2014]
InLoc (ours)
21
Validation:
累積誤差分布 @InLoc dataset
[田平ら、SSII2018]
3Dマップを段階的に導入して効果を確認:
- 画像検索を用いた位置特定
- 密な特徴マッチングによる3Dマップの効率的な活用
- 高精細な3Dマップを活用した姿勢検証
22. 従来手法 提案手法
(InLoc)
16.37𝑚, 92.22° 𝟎. 𝟏𝟑𝒎, 𝟏. 𝟕𝟑°
Evaluation
Visualization: 推定結果を用いた3Dモデル投影
入力画像
従来手法 提案手法
(InLoc)
3.23𝑚, 140.32° 𝟎. 𝟏𝟔𝒎, 𝟏. 𝟓𝟗°
DB画像 (姿勢推定)
合成画像 (投影)
位置・姿勢誤差
従来手法 提案手法
(InLoc)
9.92𝑚, 114.03° 𝟎. 𝟎𝟖𝒎, 𝟏. 𝟓𝟐°
●: 姿勢推定時の対応点
28. 深層学習を導入したVisual Localization
DSAC [E. Brachmann et al., 2017]
3Dマップの姿勢情報+局所3Dマップを利用して3Dマップ再現器と姿勢検証器を学習
28
Given: 学習用データベース
- 画像 + 真値情報 (姿勢情報+局所3Dマップ)
① 入力画像に対する3Dマップ再現 ② 姿勢候補の検証
勾配計算 (局所3Dマップ) 勾配計算 (姿勢情報)
29. 深層学習を導入したVisual Localization
DSAC [E. Brachmann et al., 2017]
3Dマップの姿勢情報+局所3Dマップを利用して3Dマップ再現器と姿勢検証器を学習
29
姿勢推定器ベンチマーク [E. Brachmann and C. Rother, 2018]
古典的手法
古典的手法に対して精度面でも
同程度の性能を達成
30. 深層学習を導入したVisual Localization
InLoc++ [H. Taira et al., 2019]
学習済み深層学習モデルから得られるマルチドメインの情報をPose verificationに活用
30
InLoc: 74.2%@2m
InLoc++: 80.6%@2m
高精細3Dマップ
InLoc: カラー画像 (RGB) との整合性評価
Surface normal
Semantic label
31. まとめ・今後の展望
• 古典的Visual Localizationへの3Dマップの導入
• InLoc [Taira et al., 2018]: 3つのステップで段階的に3Dマップを活用
• 3Dマップを利用した仮想視点生成等で頑健な自己位置・姿勢推定を実現
• 深層学習モデル学習時の3Dマップ活用
• End-to-endでのブラックボックス化: [Kendall et al., 2015]
• 追加情報活用による精度向上 [Brahmbhatt et al., 2018]
• 姿勢初期値としての応用?
• 単一ステップのCNNモデル構成: コンパクトな問題設定で高精度な推定を実現
• 古典的姿勢推定手法との結合 [Brachmann et al., 2017]
• 局所3Dマップと姿勢の同時推定・整合性評価 [Ummenhofer et al., 2017]
• 未学習シーンへの一般化、大規模シーンへの対応、頑健性向上 etc.
31
32. References
[1] Taira, Hajime, et al. "InLoc: Indoor visual localization with dense matching and view synthesis." Proceedings
of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
[2] 田平創, 荻野凌, 岩田健太郎, Torsten Sattler, Josef Sivic, Tomas Pajdla, 鳥居秋彦, 奥富正敏. 大規模visual
localization の実用化に向けた評価用データセットの作成. 第24回画像センシングシンポジウム, 2018.
[3] 田平創, Torsten Sattler, Josef Sivic, Tomas Pajdla, 鳥居秋彦, 奥富正敏. 大規模屋内環境における3Dマップを用い
た自己位置推定. 第25回画像センシングシンポジウム, 2019.
[4] Kendall, Alex, Matthew Grimes, and Roberto Cipolla. "Posenet: A convolutional network for real-time 6-dof
camera relocalization." Proceedings of the IEEE international conference on computer vision. 2015.
[5] Kendall, Alex, and Roberto Cipolla. "Geometric loss functions for camera pose regression with deep
learning." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
[6] Brachmann, Eric, et al. "Dsac-differentiable ransac for camera localization." Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition. 2017.
[7] Brachmann, Eric, and Carsten Rother. "Learning less is more-6d camera localization via 3d surface
regression." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
[8] Brahmbhatt, Samarth, et al. "Geometry-aware learning of maps for camera localization." Proceedings of the
IEEE Conference on Computer Vision and Pattern Recognition. 2018.
[9] Ummenhofer, Benjamin, et al. "Demon: Depth and motion network for learning monocular
stereo." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
32
Hinweis der Redaktion はじめまして、東工大奥富田中研究室の田平と申します。今回は「3Dマップを活用したVisual Localization」と題して、私が取り組んできたvisual localizationの分野における3Dセンシングの応用について紹介させていただきます。 まずそもそも我々がどういう問題を扱っているかというのを簡単に紹介させていただきますと、どこかで撮影された画像に対してそのロケーション、つまり位置情報を決定してあげるということを目的としたテーマを大きくvisual localizationと呼んでいます。例えば車載カメラや携帯のカメラで撮影した周りの風景から、今どこにいるか・どちらを向いているかという6自由度の位置・姿勢情報が特定できれば、ロボット制御・自動運転のための補助情報として、また近年のAR技術と組み合わせたナビゲーションシステムへの活用など、幅広い応用が想定でき、注目され始めている分野となっています。 ただそもそも画像だけが入力されても、周辺環境の事前知識が全くなければ姿勢の決定はまあ無理なので、実際には事前知識のデータベースを仮定して、それとの照合により位置や姿勢を決定していくことになります。●例えば入力画像に対してラフな位置情報を決定したいという場合には、●ストリートビュー画像など事前に撮影された画像データベースを用いるのが一般的です。それぞれの画像にはGPSなどの位置情報が付与されており、●入力画像との画像的な照合により、最も似ているデータベース上の位置に入力画像をアサインするというシンプルな方法で、かなり量子化されたアウトプットですがラフな位置候補を選択することができます。一方で、方位情報を含めた高精度な位置・姿勢を推定したい場合には、画像データベースに加えて●3次元の構造情報を事前に用意しておく必要があります。これにはSfMなど画像を用いた3次元復元が用いられ、ラフな位置候補選択に続いて、●画像特徴量を用いた3次元点と画像キーポイントとの対応付けにより地図上での6自由度の位置・姿勢を推定するのが一般的なアプローチでした。 一方で近年では、LIDAR等の3Dセンシング技術を用いてスキャナー周辺の3次元構造を実測することが可能になってきています。またFaro3Dなど、カラー画像と同軸の3D観測値を得られるような商用デバイスも広まっており、従来のRGB3チャネルに加えて●深度情報のチャネルが含まれるRGBD画像フォーマットが実世界においても普及し始めています。これはつまり画像の各ピクセルを3次元空間に投影できることを示しており、●スキャナー周辺の局所的な範囲において、色情報を含んだ高精細な3次元環境マップとして扱うことができます。特に屋内の環境においてこのような環境マップ生成は有効で、 こちらは今回SSIIで特別講演をされる古川先生の2017年の研究ですが、大学建物のフロアマップをガイドとして複数の3Dスキャンをレジストレーションし、建物全体をキャプチャした高精細な3Dマップを構築した例もあります。さらにこれを複数のフロアマップに対して行えば、 複数の建物を内包した3Dマップが完成するということで、従来のSfMでの復元やそのためのパラメータチューニングなどを必要とせずに、基本3Dスキャナーを用いた事前撮影だけで、大規模な3次元環境マップが作れる土台が整備され始めているというわけです。 そこで私たちコンピュータビジョンの分野においても、このような高精細な3Dマップを前提とした技術の開発に着目していこうというモチベーションが高まっております。この発表ではまず前述の屋内環境における3次元環境マップを活用したvisual localizationの例として、従来の古典的な手法に3Dマップを導入する我々の取り組みを紹介していきたいと思っています。またこのような3Dマップを仮定して、深層学習的なアプローチにより画像の位置・姿勢を推定しようというような取り組みも近年広まってきており、後半ではそのような最先端の研究と今後の展望についても触れていきたいと考えております。 まずは我々がInLocと呼んでいる、屋内環境における3Dマップを活用したvisual localizationの取り組みを紹介していきます。この手法はもともと2018年CVPRにおいてショートオーラルに採択された研究で、その後TPAMIジャーナルとしても掲載が決定されており、また昨年SSIIでも紹介させていただき、オーディエンス賞ならびに本年度の優秀学術賞を頂くことができました。
問題設定としては、その規模性というのを一つポイントにおいており、いつものSSII会場であるパシフィコや、より複雑で複数の部屋・建物を含んだオフィスシーンなど、大規模な範囲を対象として、そのどこかで撮影されたRGB画像に対して、高精度な6自由度の位置・姿勢を提供することを目的としています。
Referenceをもう少しリッチに
SSII 受賞などの情報も 前述のように従来のアプローチでこのような大規模visual localizationを実現するためには、環境の事前知識として●カラー画像のデータベースならびに●それに付随する3Dモデルが用いられ、画像の撮影とSfM等による復元の手間、また環境の変化に従ったデータベースの更新が必要でした。 一方で我々は、3Dセンシングを活用した高精細な3Dマップを事前知識として仮定しています。我々が想定するRGBD画像の集合としてのDBは、従来のカラードメイン・3Dドメインの各事前知識を同時に提供することができるので、各データベースを単純に置き換えて、実測値に基づく高粒度の3D構造情報という特長を有効に利用できれば、より高精度な自己位置・姿勢推定が実現できると期待できます。
+ページ
屋内での困難
→
密な表現 深層学習 ここからは実際に我々が開発したアルゴリズムを詳細に見ていき、古典的手順への高精細3Dマップの段階的な導入について紹介していきます。前述のように入力としては単眼のカラー画像を想定しており、それに対する6自由度の位置・姿勢情報を復元することを目的としています。 まずはRGBDデータベースのうちカラードメインの情報を用いて、入力画像についてラフな位置候補の選択を行います。これには従来も用いられる画像検索のテクニックを使っており、●入力画像に最も類似した100枚のDB画像を選びます。各画像は3Dマップ内の局所領域と紐づいているので、大規模な対象範囲のうち100地点まで探索範囲を絞り込むことができるわけです。 さらにここで、画像間の対応付けをする特徴マッチングを用いて、さらに候補の絞り込みを行います。これは、入力画像と各候補画像との間で局所対応を探索し、 その数にしたがって候補をソートして、 上位10枚のDBを最終的な位置候補として残すという手順です。このように段階的に候補を絞り込んでいくことで、より頑健な位置候補の選択を実現しています。 次にこの10個の位置候補周辺で姿勢推定をしていきます。それぞれのDB画像は実際にはRGBD画像であり、深度情報を持っているので、DB画像とのマッチングは3次元座標との対応と読み替えることができます。この対応関係を利用して、●各局所領域における入力画像の姿勢候補が求められます。
密を推さなくていいかも
最後に、高精細な3Dマップを活用した姿勢の検証により10個の候補の中から1つの位置・姿勢を決定するPose verificationと呼んでいる新しい手順を導入します。
各姿勢候補は、高精細3Dマップに対して相対的に定義されており、●3Dマップからの投影によりそれぞれの候補に対して合成画像を生成することができます。
もし姿勢が正しく推定されていれば、●合成画像は入力画像と同じ方向から3Dマップを見ており、入力画像と同じ見た目になるはずです。
そこで入力画像と各合成画像との類似度を計算します。●ここでピクセル単位での密な誤差計算を適用することで、特徴の少ない屋内のシーンでも頑健に姿勢の検証ができるようデザインされています。
最後に10個の候補の中から最も誤差の小さい姿勢を選び、入力画像の位置・姿勢とします。
このように我々のInLocでは、3Dセンシングによる高精細なデータベースを古典的な手法に段階的に導入していき、3Dスキャンを直接使うような従来手法に比較して大きく性能を向上しています。
右のグラフは屋内環境でのlocalizationベンチマークで、位置・姿勢推定の累積誤差分布を示しています。
提案手法は、●まずデータベースのカラードメインを用いた画像検索で位置候補を絞り込み、●次に深度情報を導入した姿勢推定により高精度な6自由度の位置・姿勢を求め、●最後に3Dマップ全体を活用したpose verificationにより姿勢候補の検証を行うという段階的な手順からなっており、各ステップで性能の大きな向上を示しています。 最後にいくつか具体的な画像例を示して従来手法との差を見ていきます。上からそれぞれ入力画像、姿勢推定に使ったDB画像、推定結果にしたがって3Dモデルをレンダリングした合成画像、真値を基準とした推定誤差を示しており、また画像内の緑の点はそれぞれのパイプラインで姿勢推定に使われた対応点を表しています。3Dスキャンを単純に導入した従来手法は、一番左の例のようなテクスチャの少ない状況や、2番目の例のソファのテクスチャのような再帰的な構造がある状況で大きく間違ってしまっています。また3番目の例のように、ドアなど同じ構造がシーンの中に複数存在する場合には、姿勢を一意に定めることが難しくなってしまいます。提案手法は、3Dスキャンを段階的に手順の中に導入し、またpose verificationなどで高精細な3Dマップを有効に活用できるようデザインされているので、これらの困難な状況においても高精度な姿勢推定を実現しています。
従来手法が何か分からないので前のスライドとリンクさせる このように、古典的なvisual localizationにおいては従来のstate-of-the-artに対して、3Dマップを有効に活用するよう注意深く各ステップを設計していくことで、concreteな性能向上が見込めるということが分かってきました。ここからはalternativeなアプローチとして、深層学習モデルでlocalizationタスクをキャリーしようとする最先端の試みとその中での3Dセンシングの利用例を紹介していきたいと思います。 まずもう一度古典的なvisual localizationのアプローチをおさらいしますと、位置のラフな決定や6自由度の位置・姿勢推定の各ステップが明示的に分かれており、それぞれで必要な事前知識と入力画像を照合するような注意深く設計された手順を踏んで自己位置・姿勢推定タスクを行っていました。 一方で、深層学習ベースのアプローチが何をしているかというと、visual localizationタスク全体をブラックボックス化して、入力画像に対して姿勢を返す姿勢推定器を作ろうという試みです。この場合古典的手法における事前知識としてのDBは、学習用DBで置き換えられ、●画像の入力に対して推定される姿勢と真値から勾配を計算し●、CNNモデル等でデザインされた姿勢推定器のパラメータを学習していきます。このようにブラックボックス化してしまう一つのモチベーションは実行時間の短縮だと考えていて、実際CNNを用いた場合ほぼ実時間で稼働する姿勢推定が可能であることが知られています。 このような流れの走りとして有名な研究は2015年に発表されたPoseNetというCNNモデルで、前のスライドの図の通りvisual localizationタスク全体をgooglenetと呼ばれるCNNアーキテクチャで置き換え、画像と姿勢の真値情報を含む3Dマップを使って出力が真値に近くなるよう学習されたものです。この学習用DBはSfMによる3DモデルやKinect fusion等センシングによる画像と6自由度姿勢が用いられ、対象とするシーンで個別にこの情報を収集しておく必要があるため完全な一般化は実現できていないものの、こんなある意味単純な構造である程度の推定が可能であるということは当時なかなか衝撃的な結果でした。 こちらは姿勢推定精度のベンチマークで、各手法の位置・姿勢推定誤差のmedianを示しています。PoseNetとその派生はどのシーンでも古典的手法と比較するとまだまだ精度面では負けていて、単純なブラックボックス化ではやはり推定精度の課題が残ってしまうというのが我々の分野での一つの知見としてあります。また一番左の各シーンの面積に注目すると、面積が広い大規模なシーンにおいてPoseNetはかなり推定精度を落としていて、大規模環境への対処という面でも課題があります。 このような課題が見えてきたため、深層学習を導入するにしてもvisual localizationタスク全体をブラックボックス化してしまうのではなく、いくつかのサブタスクに分けてそれぞれで最適化を図ろうという、ある意味古典的手法の発想に回帰するような流れも出てきています。このうち有名な手法の一つとして2017年に発表されたDSACという手法があります。この研究グループはもともとrandom forestを用いた画像と3D点の対応付けにより姿勢推定をしようとしていた方々なのですが、この論文ではRGBD画像を学習データとして●入力画像に対する局所3DマップをCNNで再現することで3Dシーンとの対応付けを図っています。そして姿勢推定自体は局所3Dマップからサンプリングして幾何推定を行う古典的な手順を採用し、いくつかサンプリングされた推定姿勢の検証時に●別のCNNモデルを使って各候補にスコアをつけています。この手法は学習データとして局所3Dマップを要求するため、ある意味3Dセンシングに依存した手法で、我々のInLocと同様に高精細な3Dマップを各ステップに導入しようとした試みと言えます。 先程のPoseNetと同様のベンチマークでは、このDSACは古典的手法のstate-of-the-artと比較してもcomparableもしくはちょっと勝っているくらいの性能を実現しており、サブタスクごとの学習というアプローチが功を奏していることが分かります。ただしここで対象となっているシーンはどれも屋内の小規模な範囲に限られていて、InLocのような複数の建物を含む大規模なシーンではまだなかなか性能が出ていないようです。 で我々もともと古典的アプローチからスタートしたものとしても、深層学習から有用な情報を導入しようという試みを進めていて、昨年のICCVではInLocの派生となる手法を一つ提案しています。これは、深層学習でよく扱われるsingle image predictionを用いて入力画像についてのいろんなドメインの情報を抽出し、pose verificationで姿勢の検証を行う際に活用しようというものです。Single image predictionの問題として有名なのはデプス推定ですが、他にも●被写体の法線情報や、●セマンティックラベルなどを抽出することができ、姿勢の検証のため3Dマップとの整合性を評価する際にこれらを追加情報として用いることで性能の向上が見込めると確認できています。現状では学習済みのCNNモデルを利用しているだけですが、効果的に複数ドメインの情報を組み合わせるための重み付けなどを今後の課題として考えております。 最後に全体のまとめとしまして、●本発表ではまず3Dセンシングで得られる3D環境マップの活用例として、visual localizationのデータベースとしての応用を紹介しました。我々のInLocでは、高粒度かつ高精度な3Dマップを有効に活用するために、visual localizationの3つのステップで段階的にデータベースを利用して、頑健で高精度な自己位置・姿勢推定を実現しています。次に最先端の研究の流れとして、●深層学習を導入したvisual localizationとその学習時の3Dマップの活用例を紹介しました。深層学習を導入する場合の最もシンプルなやり方はvisual localizationのすべての手順を一つのタスクとして扱いCNNモデルでエンコードしてしまうというものですが、この方法では精度面でなかなか古典的手法に劣ってしまうというのが分かってきています。ただ学習済みモデルを利用する際の実行時間の速さというのはlocalizationの応用シーンを考えても魅力的で、学習時の工夫で何とか性能を向上させようという取り組みは今でも進められています。また個人的にはこのend-to-endな実装でも、緩い閾値で評価すれば再現性としては十分な性能が出ていると考えていて、後段で推定姿勢をrefineすることを前提にした初期値としての利用という発展も十分可能性のある方向性だと考えております。また別の深層学習の導入方法として、●visual localizationタスクを3Dシーンとの紐づけや6自由度姿勢推定などいくつかのステップに分け、問題設定をコンパクトにすることで高精度な推定を実現した取り組みも紹介しました。この場合例えばDSACのように、姿勢推定などは古典的な手順を導入し、一方で3Dシーンと画像の対応付けなどは学習モデルに任せるというようないいとこどりをすることができ、性能面ではかなり今後も期待できるアプローチだと考えています。ただやはり学習DBに大きく依存してしまう面も残っており、例えばInLocのような大規模環境への対応や、未学習シーンでも動作するための一般化など発展の余地はまだまだあると考えられます。それでも印象としては、最初にPoseNetを見た時にはCNNを使っての推定なんて精度出ないよねという感じだったのがだんだん古典的アプローチを取り入れつつ最近ではどんどん性能も追いつかれてきているので、我々は逆にCNNの得意な部分をどんどん取り入れていかなければいけないなと思っています。 以上で私からの発表を終わらせていただきます。ご清聴ありがとうございました。