31
Unsupervised Learning of Depth and Ego-Motion from Video (CVPR2017, oral) 石井 育規 ( いしい やすのり) 1/26

Slideshare unsupervised learning of depth and ego motion from video

Embed Size (px)

Citation preview

Page 1: Slideshare unsupervised learning of depth and ego motion from video

Unsupervised Learning of Depth and Ego-Motion from Video

(CVPR2017, oral)

石井 育規 ( いしい やすのり)

1/26

Page 2: Slideshare unsupervised learning of depth and ego motion from video

本論文の目的

• 入力: (車載)単眼カメラで撮影した動画(教師無し)

• 出力1:フレーム毎の距離画像 (Depth CNN)

• 出力2:フレーム間の画像の回転と並進パラメータ (Pose CNN)

• End-to-End のDeep Learningで出力1,2を推定

2

距離画像

回転と並進

Page 3: Slideshare unsupervised learning of depth and ego motion from video

既存手法概要

• Structure from Motion

– 画像間の対応点を算出し,

– 3次元移動(自己位置推定)と3次元形状(距離)を推定

• Stereo Matching

– カメラ間の回転,距離をキャリブレーション

– 三角測量の原理で,カメラ間実距離から奥行き計測

• 画像と距離画像(教師データ)の対応を学習

– Deep Learningを用いて,画像から距離画像を推定

• 動画列のみ利用(教師無し)

– 自己運動(フレーム間の回転・並進)や物体追尾

3

Page 4: Slideshare unsupervised learning of depth and ego motion from video

本論文のコントリビューション

• 「単眼,動画像,教師無し」から「フレーム間の回転・並進と距離(デプス)」を推定

– 回転・並進=ego-motion

• 特徴点ベースの方法より密な距離推定

– 特徴点の取れない平面も推定

4

Page 5: Slideshare unsupervised learning of depth and ego motion from video

デプスとego-motion推定の基本的な流れ

・Depth CNN:基準画像Itのデプスを推定・Pose CNN: 基準画像と前後の画像のego-motion(回転・並進)を推定・デプスと回転・並進の関係から,

基準画像の画素pに対応するpt-1, pt+1を算出・pとpt-1, pとpt+1の画素値の差に基づき

Depth CNNとPose CNNを最適化

5

Depth CNNとPose CNNを最適化するには,如何に対応する画素の画素値の誤差を求めるかが重要

Page 6: Slideshare unsupervised learning of depth and ego motion from video

デプスとego-motion推定の基本的な流れ

6

・Depth CNN:基準画像Itのデプスを推定・Pose CNN: 基準画像と前後の画像のego-motion(回転・並進)を推定・デプスと回転・並進の関係から,

基準画像の画素pに対応するpt-1, pt+1を算出・pとpt-1, pとpt+1の画素値の差に基づき

Depth CNNとPose CNNを最適化

Depth CNNとPose CNNを最適化するには,如何に対応する画素の画素値の誤差を求めるかが重要

Page 7: Slideshare unsupervised learning of depth and ego motion from video

デプスとego-motion推定の基本的な流れ

7

・Depth CNN:基準画像Itのデプスを推定・Pose CNN: 基準画像と前後の画像のego-motion(回転・並進)を推定・デプスと回転・並進の関係から,

基準画像の画素pに対応するpt-1, pt+1を算出・pとpt-1, pとpt+1の画素値の差に基づき

Depth CNNとPose CNNを最適化

Depth CNNとPose CNNを最適化するには,如何に対応する画素の画素値の誤差を求めるかが重要

Page 8: Slideshare unsupervised learning of depth and ego motion from video

デプスとego-motion推定の基本的な流れ

8

Depth CNNとPose CNNを最適化するには,如何に対応する画素の画素値の誤差を求めるかが重要

・Depth CNN:基準画像Itのデプスを推定・Pose CNN: 基準画像と前後の画像のego-motion(回転・並進)を推定・デプスと回転・並進の関係から,

基準画像の画素pに対応するpt-1, pt+1を算出・pとpt-1, pとpt+1の画素値の差に基づき

Depth CNNとPose CNNを最適化

Page 9: Slideshare unsupervised learning of depth and ego motion from video

座標変換による画素値誤差算出

• 考え方

– 異なる時刻の画像2枚(画像t,画像s)で同じ点を観測

– 例えば,距離Dtと,画像間の回転・並進Tt->sが既知の場合

画像t 画像s

①:画像tの画素ptと距離Dtを使って3次元点位置p3を算出②:画像tと画像sの回転・並進Tの関係から

画像sで3次元点p3が観測される画素psを算出③:距離Dと回転・並進Tが正しければ

画素ptの画素値Itと画素psの画素値Isが一致するはず

Dt

pt Ps

画素値Itと画素値Isの誤差が最小になるよう距離Dと回転・並進Tを算出

Tt->s

p3

Page 10: Slideshare unsupervised learning of depth and ego motion from video

座標変換による画素値誤差算出

・Depth CNNで求めた距離DとPose CNNで求めた回転・並進Tを用いて「画像Itの座標pt」を「画像Isの画素ps」に変換 (Project)

・変換された画素psは整数では無い→変換された画素psの画素値を「近傍の4画素の重み付け和」で算出 (Warp)・画像Itの画素値pt とWarpした画素値の誤差Lvs → DとTの誤差

10

画像Itの画素値

Warpした画素値

DとTの誤差による画素値の差

pは画素sは変換先画像

Page 11: Slideshare unsupervised learning of depth and ego motion from video

座標変換による画素値誤差算出

11pは画素sは変換先画像

画像Itの画素値

Warpした画素値

DとTの誤差による画素値の差

・Depth CNNで求めた距離DとPose CNNで求めた回転・並進Tを用いて「画像Itの座標pt」を「画像Isの画素ps」に変換 (Project)

・変換された画素psは整数では無い→変換された画素psの画素値を「近傍の4画素の重み付け和」で算出 (Warp)・画像Itの画素値pt とWarpした画素値の誤差Lvs → DとTの誤差

Page 12: Slideshare unsupervised learning of depth and ego motion from video

座標変換による画素値誤差算出

12pは画素sは変換先画像

画像Itの画素値

Warpした画素値

DとTの誤差による画素値の差

・Depth CNNで求めた距離DとPose CNNで求めた回転・並進Tを用いて「画像Itの座標pt」を「画像Isの画素ps」に変換 (Project)

・変換された画素psは整数では無い→変換された画素psの画素値を「近傍の4画素の重み付け和」で算出 (Warp)・画像Itの画素値pt とWarpした画素値の誤差Lvs → DとTの誤差

Page 13: Slideshare unsupervised learning of depth and ego motion from video

座標変換の定式化

画像Isの座標 フレーム間の回転・並進

デプス

カメラの内部パラメータK(論文中では既知とする)(撮像面の中心位置,歪など. 詳細は時間があれば補足で)

画像Itの座標

式でまとめると,,,画像Isの座標psは,画像Itの座標pt,デプス行列D,回転・並進行列Tから算出

13

Page 14: Slideshare unsupervised learning of depth and ego motion from video

外れ値対策(Explainability mapの利用)

・回転・並進行列Tは,カメラ間(画像全体)の変換行列→ 局所的に動く領域は外れ値となり推定誤差に影響→ 信頼度(Es(p))を推定し重み付け → 外れ値の影響を低減

Explainability mask Es(p)による重み付け

14

画素値の絶対誤差

重み付き絶対誤差

人・車が動く領域,ポールが消える領域など

Page 15: Slideshare unsupervised learning of depth and ego motion from video

正則化項:Explainability mapの非ゼロ拘束

• Esが全画素で0の場合,誤差Lvsが0になってしまう...

• Esが全画素0にならないような正則化項を導入

– Es(p) = 0 : 局所的な動きが有る画素

– Es(p) = 1 : 局所的な動きが無い画素

– 仮定:画像の大部分は局所的な動きでは無い→ Es(p)の各画素が1に近づくように,cross entropy誤差を算出→ Esが0に陥ることを抑制

15

Page 16: Slideshare unsupervised learning of depth and ego motion from video

正則化項:平面領域の滑らかさ拘束

• テクスチャレスな領域 → 誤対応でも画素値の誤差小

• 仮定:隣接画素値の変化小 → デプスの変化小(滑らか)

– デプスの2次微分のL1ノルムを正則化項として追加

pt pt+1?pt+1?

16

Page 17: Slideshare unsupervised learning of depth and ego motion from video

Loss関数

座標変換による画素値誤差,滑らかさ,Explainable Mapの非ゼロ正則化

ある3次元点を複数画像で観測したとき,座標変換した画素の画素値が近ければ,Lossは小さい

デプスDと回転・並進Tが正しく求まれば,画像間で対応する画素が正しく求まる

Deep Learningを使って,デプスDと回転・並進Tを推定 17

Page 18: Slideshare unsupervised learning of depth and ego motion from video

単眼デプス推定ネットワーク:Depth CNN

・CNNのカーネルサイズ:最初の4層 (7,7,5,5), それ以降は3・1層目の出力チャネル数: 32・出力層以外の活性化関数 ReLU・出力層 1/(α * sigmoid(x) + β ) : α=10, β = 0.1・マルチスケールを利用

1/( 10*sigmoid(x)+0.1)

Skip Connection

18

Page 19: Slideshare unsupervised learning of depth and ego motion from video

回転・並進とExplainability map推定ネットワーク: Pose CNN

・回転 (ロール,ピッチ,ヨー ),並進(x,y,z)の6変数とExplainability mapを推定

・CNNのカーネルサイズ:最初の2層 (7,5), 最後の2層(5,7), その他 3

・1層目の出力チャネル数: 16・出力層以外の活性化関数 ReLU

・中間層から分岐した出力で回転並進を推定・出力層でexplanability mapを推定・マルチスケールを利用

6変数推定

19

Page 20: Slideshare unsupervised learning of depth and ego motion from video

実験結果

• 学習パラメータ

– λs : 0.5 / L

• L はスケール毎にダウンサンプリング

– λe: 0.2

– 全層にBatch Normalization

– Optimizer: Adam

– ミニバッチサイズ: 4

– 1万5千回のループで収束

– 画像サイズ: 128 x 416

20

Page 21: Slideshare unsupervised learning of depth and ego motion from video

単眼デプス推定結果

• 基準画像と時刻±1 の画像を利用(15fps)

• 44,540フレーム中 40,109枚を学習, 4,431枚をテスト

• CityScapesデータセットでPre-training

• KittiデータセットでFine-tune(どちらも車載画像)

CityScapesデータセットで学習・評価

CityScapesデータセットでPre-training,Kittiで評価 (中央列)KittiでFine-tuningして評価(最右列)

Fine-tuningしなくてもソコソコいける 21

Page 22: Slideshare unsupervised learning of depth and ego motion from video

単眼デプス推定:定性評価

正解値 デプス教師有り

回転・並進教師有り

提案手法(デプス,回転・並進教師無し)

教師無しでも,木や標識など細い物体で従来より高精度な場合有り

22

Page 23: Slideshare unsupervised learning of depth and ego motion from video

単眼デプス推定:定量評価

詳細な記載は無し.・教師無しでも教師有りと同等性能・KittiでFine-tuningすることで性能が向上

23

小さい方がよい 大きい方がよい

CS: CityScapesデータセットK: Kittiデータセット

Page 24: Slideshare unsupervised learning of depth and ego motion from video

単眼デプス推定(非車載での評価)

・CityScapes + Kittiデータセット(車載画像)で学習し,Make3D (非車載画像)データセットで定性評価

・未知のシーン・カメラ画像で再学習無しで,全体的にそれっぽくでている

24

Page 25: Slideshare unsupervised learning of depth and ego motion from video

回転・並進の推定結果比較

・正解値をIMU/GPSから取得・提案手法:入力画像と前後5枚の画像を用いて学習・ORB-SLAM(full): 全動画から算出・ORB-SLAM(short): 前後5枚(提案手法と同じ)を用いて算出

25

全フレームから算出

前後5フレームから算出

オドメトリから算出

入力画像が同じ(short)場合とオドメトリより高性能

Page 26: Slideshare unsupervised learning of depth and ego motion from video

まとめ

• 入力: (車載)単眼カメラで撮影した動画(教師無し)

• 出力1:フレーム毎の距離画像 (Depth CNN)

• 出力2:フレーム間の画像の回転と並進パラメータ (Pose CNN)

• End-to-End のDeep Learningで出力1,2を推定

• 対応点の画素値の誤差に基づくLossを提案

• 教師有りと同等性能を達成

26

距離画像

回転と並進

Page 27: Slideshare unsupervised learning of depth and ego motion from video

補足:カメラの内部パラメータ,外部パラメータ(の直感的理解)

入力光線

レンズ撮像面

内部パラメータ:光がレンズを通過して撮像面に入射する際,カメラ内部のレンズと撮像面との関係・教科書にある理想状態:

→レンズの中央を通る光線は撮像面の中央に入射・実際の状況

・・撮像面の中央(ミクロン単位の画素)に入射しない

(tx,tyの2自由度)・・撮像面のアスペクト比が正方形では無い

(有るペクト比a, 1自由度)・・傾き・歪

(歪s, 1自由度)・・焦点距離 f

(1自由度)

・カメラ固有のパラメータ

27

Page 28: Slideshare unsupervised learning of depth and ego motion from video

補足:カメラの内部パラメータ,外部パラメータ(の直感的理解)

外部パラメータ:3次元中の回転Rと並進tカメラが動けば値が変わる

回転R

並進t

3次元中の点(X,Y,Z)を2次元画像の画素(x,y)への写像は,下式で算出3行4列の行列,ただしスケール不変のため,11自由度の変数を(X,Y,Z),(x,y)の対応から算出

28

Page 29: Slideshare unsupervised learning of depth and ego motion from video

補足:ステレオカメラによる距離推定概要

• キャリブレーション済みカメラを利用

– 焦点距離と外部パラメータを用いて並行に並べた画像に変換

• 画素間のズレ量(視差)を算出

• 「視差と焦点距離」の関係と「カメラ間距離と物体までの距離」が相似関係にあるので,視差dと焦点距離fとカメラ間距離tから物体までの距離Dが求まる

D

t

視差d

焦点距離f

29

Page 30: Slideshare unsupervised learning of depth and ego motion from video

補足:Structure From Motionの超概要

・物体のある3次元点を様々な方向から撮影する(画像間の座標の対応付を求める)・ある3次元点について,画素x1,y1に対応する距離をw1とする.

同じ3次元点について,別視点から見た時,画素x2,y2に対応する距離w2とする

式変形

SVDで行列分解(ランクが2であることを利用)

あるx,yに対する,変換行列Fが求まる30

Page 31: Slideshare unsupervised learning of depth and ego motion from video

31