cvim saisentan-cvpr-hyper depth

28
HyperDepth: Learning Depth from Structured Light Without Matching Sean Ryan Fanello, Christoph Rhemann, Vladimir Tankovich, Adarsh Kowdle, Sergio Orts Escolano, David Kim, Shahram Izadi @tomoaki_teshima 2016.Jul.17 I AM NOT THE AUTHER OF THIS PAPER

Upload: tomoaki0705

Post on 08-Jan-2017

821 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Cvim saisentan-cvpr-hyper depth

HyperDepth: Learning Depth from Structured Light Without Matching

Sean Ryan Fanello, Christoph Rhemann, Vladimir Tankovich, Adarsh Kowdle, Sergio Orts Escolano, David Kim, Shahram Izadi

@tomoaki_teshima2016.Jul.17

I AM NOT THE AUTHER OF THIS PAPER

Page 2: Cvim saisentan-cvpr-hyper depth

発表の概要• Kinectみたいな 3次元計測システム• 3次元計測のおさらいをします

•マッチングしないので高速• 提案手法を説明します

•精度も良いよ!• 実験結果を紹介します

Page 3: Cvim saisentan-cvpr-hyper depth

ステレオカメラの原則•単純化するために、 Rectifyを考える• 3次元形状復元に必要なのは、視差 dを求めること

カメラ カメラ[1] http://perso.lcpc.fr/tarel.jean-philippe/syntim/paires.html

Page 4: Cvim saisentan-cvpr-hyper depth

アクティブ計測•カメラ 2台の代わりにプロジェクタ+カメラでも OK•原理は同じだが、パターンによって特性が変わる

カメラ プロジェクタ

Page 5: Cvim saisentan-cvpr-hyper depth

コード化パターン光投影の pro/con•位置特定がピクセルごとに独立で行える• マッチングが不要で、形状の精度が高い

•複数枚撮影が必要なので、動体には向かない

Page 6: Cvim saisentan-cvpr-hyper depth

アクティブ計測(赤外パターン光投影)•いわゆる Kinect• Kinectのマッチングはパッチ同士のマッチング

カメラ 赤外線プロジェクタ

Page 7: Cvim saisentan-cvpr-hyper depth

アクティブ計測(赤外パターン光投影)の pro/con

•マッチングのために画素へのランダムアクセスが頻発• Kinectはそこら辺頑張ったけれども、最高で 20パッチ /pixelの比較が必要• つまり計算が重い

• Depthが動画のように撮影できる

Page 8: Cvim saisentan-cvpr-hyper depth

古典的なステレオ計測の計算量

•パッチによるマッチングが大変•通常、 depthを復元した後に、後段の整形パスがある(=完全な並列化は無理)

Page 9: Cvim saisentan-cvpr-hyper depth

マッチングを使わない 3次元計測

•対応点は同じライン上に乗っている•基準となる赤外パターンの中から対応点を見つけ出す•座標をクラスとみなした、 classification問題

Page 10: Cvim saisentan-cvpr-hyper depth

アプローチまとめ精度 動物体 計算量

コード化パターン投影

A NG A

Kinect(点群投影) B OK C

HyperDepth A+ OK A+

Page 11: Cvim saisentan-cvpr-hyper depth

視差 dを求める•視差 dが求まれば Depthがわかる• Rectifyされていて、対応点同士は同じライン上にある状況を考える(同じ y座標上に対応点がある)•ある点 pの対応座標が欲しい•入力画像 1280x1024の場合、点 pを 1280個のグループに classificationする問題だと考えられる

Page 12: Cvim saisentan-cvpr-hyper depth

Random Forest (Random Tree)

𝑓 (p ;𝜃 )={L if 𝐼 (p+u )− 𝐼 (p+v )<𝜃R otherwise

:

Page 13: Cvim saisentan-cvpr-hyper depth

Random Forestを使うメリット

•投影パターン画像との比較が一切発生しない•撮影された画像と Random Forest だけで良い•各点独立に視差を求められる=並列性が高い!

Page 14: Cvim saisentan-cvpr-hyper depth

サブピクセル精度

•視差を求めた後に、 0.05ピクセル単位まで同じアプローチを繰り返す• Classificationとは別に、 6段の Random Forestを使う

Page 15: Cvim saisentan-cvpr-hyper depth

複数の tree(=forest)を使う

•複数の Treeの結果が近い視差 (<0.2)に収束した場合、重み付きで平均し、確率を統合する•一番確率の高い結果を採用する

Page 16: Cvim saisentan-cvpr-hyper depth

Invalidなマッチング• Signal check: τ<500 以下• 意訳:あまりにも暗かった嘘くさい

• Probability check: クラスの信頼度 pが 0.6以下• 意訳:正しく収束しなかったら嘘くさい

• Winners check: 複数のクラスの結果• 意訳: Treeごとに結果がバラバラだったら嘘くさい

• Disparity check: disparityが負の場合などを棄却• 意訳:嘘くさかったら嘘くさい

Page 17: Cvim saisentan-cvpr-hyper depth

学習フェーズ• Kinectを使って赤外光の画像を撮影• Patch Matchを元に、 Depthを作成•得られた Depth画像をもとに Random Forestを生成• Patch Matchによる計測結果を学習データにしているのに、最終的な計測結果が Patch Matchを凌駕しているのは興味深い

Page 18: Cvim saisentan-cvpr-hyper depth

Random Forestの深さと数と誤差

Page 19: Cvim saisentan-cvpr-hyper depth

レンジによる誤差特性

Page 20: Cvim saisentan-cvpr-hyper depth

Random Forestの深さと数と所要時間

Page 21: Cvim saisentan-cvpr-hyper depth
Page 22: Cvim saisentan-cvpr-hyper depth

他の手法との比較 (レンジと誤差 )

Page 23: Cvim saisentan-cvpr-hyper depth

他の手法との比較 (距離とばらつき )

Page 24: Cvim saisentan-cvpr-hyper depth

他の手法との比較 (量子化誤差 )

Page 25: Cvim saisentan-cvpr-hyper depth
Page 26: Cvim saisentan-cvpr-hyper depth
Page 27: Cvim saisentan-cvpr-hyper depth

オンラインでのデモが可能( 375Hzで稼働

Page 28: Cvim saisentan-cvpr-hyper depth

まとめ• Kinectライクな 3次元計測アプローチだが、パターンマッチングに Random Forestを利用•計算量も減って、精度も上がった