Slide 1

Slide 1 text

Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric Constraints 特に標記が無ければ、スライド内の図は https://arxiv.org/pdf/1802.05522v1.pdf から引用 1

Slide 2

Slide 2 text

概要  筆者  Reza Mahjourian*, Martin Wicke, Anelia Angelova *University of Texas at Austin, Google Brain  簡単な内容  教師無し学習による単眼ビデオの ego-motion(位置姿勢)と深度の推定  3次元構造を考慮するようなloss関数を定義し学習を行う  学習時には単眼ビデオの時系列が必要であるが、 推論の際には、一枚の画像で良い 2

Slide 3

Slide 3 text

Outline ① 背景 ② 関連研究 ③ 手法 ④ 実験 ⑤ まとめと今後の研究 6

Slide 4

Slide 4 text

背景 1/3  三次元復元とego-motion推定の重要性  応用先 • ロボティクス • 自動運転  なぜ必要か • 3次元の位置情報と周辺の幾何的情報  ロボットのモーションプランニング、意思決定に必要 7

Slide 5

Slide 5 text

背景 2/3  三次元復元とego-motion推定の課題  教師付き学習が主流 • 深度とego-motionの真値は精度が命 • KITTIやCityscapesのデータセットで実験はできる ↔自分で真値を取るのは大変☹ – LIDERとカメラの同期が難しい – LIDERのスキャン範囲とカメラの画角と一致しない 教師無し学習で推定できたらいいよね 8

Slide 6

Slide 6 text

背景 3/3  目的  単眼ビデオカメラ(stereoではない)を用いた 教師無し学習による深度とego-motionの推定  Contributions  Imposing 3D constraints. • 3次元情報に関するloss関数を提案  Principled masking. • 異なるフレームで写っていない領域をマスクする  Learning from an uncalibrated video stream. • 手持ちの市販スマホカメラで撮影したビデオを学習し、 KITTIデータセットでテスト 9

Slide 7

Slide 7 text

関連研究 1/2  古典的な深度とego-motion推定手法  stereoで特徴点matching  Deep何某で深度とego-motion推定手法  単画像vs. 深度センサーで学習(FCN, U-Netで深度画像推定)  stereo画像の片方を入力にして、もう一方を復元する学習結果 を元に深度画像を作成  stereo画像のペアから深度画像推定 10

Slide 8

Slide 8 text

関連研究 2/2  教師無しDeep何某で深度とego-motion推定手法  単眼ビデオを使ったSfMLearner @CVPR, 2017 11 https://people.eecs.berkeley.edu/~tinghuiz/pr ojects/SfMLearner/images/teaser.png 学習概念図 • DepthCNN target viewの深度画像推定 • PoseCNN target viewとnearby viewの ego-motionを推定 これらの推定を2次元的な情報で行う 紹介する論文は、 3次元的な情報を使って、 深度とego-motionを推定します

Slide 9

Slide 9 text

手法: 全体像 1/4 12 入力:フレームtの画像X ,フレームt-1の画像X−1

Slide 10

Slide 10 text

手法: 全体像 2/4 13 幾何変換して異なるフレーム画像と2D loss計算

Slide 11

Slide 11 text

手法: 全体像 3/4 14 3D 点群のloss計算

Slide 12

Slide 12 text

手法: 全体像 4/4 15 出力:ego-motion, 深度画像

Slide 13

Slide 13 text

手法: 問題設定 1/2  定式化 入力: −1 , (フレームt、t-1のビデオフレーム) 出力: −1 , (t-1、tのときの深度画像), (t-1からtへのカメラの動き(位置・姿勢)) がわかれば、フレームtの点群 が推定できる 深度は画像なので、 , の座標で表せられる ※Kはカメラの内部パラメーターの行列 16

Slide 14

Slide 14 text

手法: 問題設定 2/2  定式化 がわかると、 −1 = でフレームtの点群からt-1の点群が推定できる −1 はt-1のフレームに −1 で戻せる 式(1)はフレームtからフレームt-1への写像だと解釈できる と に基づいた、 −1 から への復元の問題になる(式 (2)) −1 と重複してるピクセルを(i , ) この復元の問題を、逆方向でも繰り返し行う (−1 と−1 に基づいた、 から −1 への復元) 17

Slide 15

Slide 15 text

手法: Principled masking  移動しながら撮影  フレームtとt-1で重複しない ピクセルが存在  の画像復元する際に loss計算できない  計算しない領域を 明示的に学習  マスク−1 , を作る 18

Slide 16

Slide 16 text

手法: loss設計 1/9  Image Reconstruction Loss から復元した −1 −1 から復元した このlossはnoisiyなので正則化が必要 画像の環境の影響を受けてしまう。 19 最小化

Slide 17

Slide 17 text

手法: loss設計 2/9  3D Point Cloud Alignment Loss  Iterative Closest Point(ICP) と , −1 と −1 これらを直接比較するICP AとBの点群があった時に AとBが重なるような変形T‘ をAとBを最小化して求める (∙): 点同士の対応関係 出力として、点同士の残差距離も出せる = − ′−1 ∙ 20

Slide 18

Slide 18 text

手法: loss設計 3/9  3D Point Cloud Alignment Loss 21 ego-motion , 深度画像 推定のためにICP を用いる

Slide 19

Slide 19 text

手法: loss設計 4/9  3D Point Cloud Alignment Loss 22 Deep何某で完璧な , が推定できていたら、 −1 と −1 は完璧に重なる

Slide 20

Slide 20 text

手法: loss設計 5/9  3D Point Cloud Alignment Loss 23 , が推定できていないと、 −1 と −1 は違う位置に投影される

Slide 21

Slide 21 text

手法: loss設計 6/9  3D Point Cloud Alignment Loss 24 , が推定できていないと、 −1 と −1 は違う位置に投影される

Slide 22

Slide 22 text

手法: loss設計 7/9  3D Point Cloud Alignment Loss 25 を使って、′と を求め , を改善していく

Slide 23

Slide 23 text

手法: loss設計 8/9  3D Point Cloud Alignment Loss  lossの設計は式(5)のようになる  本研究の3D lossとする。 26 ∙ 1 はL1-norm

Slide 24

Slide 24 text

手法: loss設計 9/9  Additional Image-Based Losses  Structured similarity (SSIM) • 画像復元結果の質に関するloss  Depth smoothness loss • 深度画像推定の際の正則化 27

Slide 25

Slide 25 text

手法: 学習設定 1/2  最適化  lossの混ぜ方 α = 0.85, = 0.1, = 0.05, = 0.15  超パラ • オプティマイザ:Adam(β1 = 0.9, β2 = 0.999) • 学習率:0.0002 28

Slide 26

Slide 26 text

手法: 学習設定 2/2  層設計  SfMLearnerの層設計を用いる • 深度画像推定:各ピクセルの深度を推定 • ego-motion推定:2フレーム間の回転・移動 29 SfMLearnerの層設計 https://arxiv.org/pdf/1704.07813.pdf 深度画像推定 ego-motion推定

Slide 27

Slide 27 text

実験: データセット  データセット  KITTI Dataset • 車載動画のデータセット • 訓練に単眼ビデオ画像を使用(40 kフレーム) • 検証に3D点群、車両の姿勢データを用いる(4kフレーム)  Uncalibrated Bike Video Dataset(Bike Videos) • 自転車に乗っている間の手持ち動画(720x1280, 30fps) • カメラの内部パラメータはググった – レンズの歪みの情報は無かった 30

Slide 28

Slide 28 text

実験: KITTI Dataset 1/6  深度画像推定の結果  KITTI Dataset Test画像に対して 31

Slide 29

Slide 29 text

実験: KITTI Dataset 2/6  深度画像推定の定量評価  KITTI Dataset(K)のみを学習した結果 • 提案手法により真値とのmean absolute relativeが 0.208 m(Zhou et.al.)から 0.163 mに 32

Slide 30

Slide 30 text

実験: KITTI Dataset 3/6  深度画像推定の定量評価  CityScapes(CS)で学習→KITTI Dataset(K)を学習した結果 • 提案手法により真値とのmean absolute relativeが 0.198 m(Zhou et.al.)から 0.159 mに 33

Slide 31

Slide 31 text

実験: KITTI Dataset 4/6  深度画像推定の定性評価  提案手法の方がZhou et.al.よりも見た目が良いことが確認 34

Slide 32

Slide 32 text

実験: KITTI Dataset 4/6  3D lossの評価  3Dlossを取り入れることで画像内のテクスチャが無い個所の 影響が軽減される 35 3D loss なし 3D loss あり 入力

Slide 33

Slide 33 text

実験: KITTI Dataset 5/6  3D lossの評価  3Dlossを取り入れることで正則化がかかり、過学習抑制 36

Slide 34

Slide 34 text

実験: KITTI Dataset 6/6  ego-motionの評価  visual-SLAMの手法(ORB-SLAM)と比較 KITTI Datasetのオドメトリに対して同程度の誤差 37

Slide 35

Slide 35 text

実験: Bike Videos学習 1/2  Bike Videos学習→KITTI Dataset深度画像推定結果 38

Slide 36

Slide 36 text

実験: Bike Videos学習 2/2  Bike Videos学習→KITTI Dataset深度画像定量評価  Bike Videos vs. KITTI Dataset • 画角:~51° vs. ~81° • レンズ: レンズ補正無し vs. 補正済み • 被写体:US道路 vs. 欧州道路 • 撮影方法:手持ち vs. 車載 39 KITTI自身で学習した結果に近い結果に

Slide 37

Slide 37 text

まとめと今後の研究  まとめ  単眼ビデオ画像から深度、ego-motion推定を行う 教師無し学習手法を提案  3D構造を考慮するlossを取り入れることで、高精度になった  手持ちビデオデータセットで学習したモデルを車載ビデオの データセットに適用しても推定可能だった  今後の研究  動く物体が画像内に入った時の学習手法 40