Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
iPhoneで奥行き推定する 
プログラムを作りました 
第25回CV勉強会@関東 
Yuichi Takeda / @ginrou799
iPhoneのカメラだけで動く 
iPhoneで奥行き推定する 
プログラムを作りました 
デプスセンサ作りました 
第25回CV勉強会@関東 
Yuichi Takeda / @ginrou799
自己紹介 
• Yuichi Takeda / @ginrou799 
• CV 
• コンピュテーショナルフォトグラフィ 
• MIRU 2012 優秀賞 
• iOS 
• ミクシィでiPhoneアプリの開発 
• 本も出してますhttp:...
AndroidのLensBlur 
ご存知ですか?
LensBlur 
• Android に搭載されているカメラの機能 
• シーンの奥行きを推定してリフォーカス 
出典 http://googleresearch.blogspot.jp/2014/04/lens-blur-in-new-go...
そのiPhone版を 
作りました。
Depth From Sequence 
iPhoneを手に持って撮影した画像シーケンスから奥行きを推定します
Depth From Sequence 
• ソースコードは公開しています。 
• https://github.com/ginrou/DepthFromSequence 
• C++ 
• 動作環境 
• CMake OpenCVの動く環境 ...
元ネタ 
• 元ネタはLensBlurの元になった論文 
• 3D Reconstruction from Accidental Motion 
(Fisher Yu et al. CVPR 2014) 
• この論文をベースに実際に使えるよう...
アルゴリズム・入力画像 
• 1280x720で撮影して 640x320 に縮小して処理 
• 実際のデプスを計測するのは中央の320x320の領域 
• 10 ~ 15枚ほどが安定している
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
• KLT Trackerを使って特徴点追跡 
最初のフレームでは150個の特徴点を追跡し、 
最終フレームで70個まで減...
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
• Feature Trackingの結果からカメラの位置と姿勢を推定 
• Bundle Adjustment 
• 便...
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
• パラメータ 
• 最大反復回数は 5 回 
• 反復終了時に再投影エラーが 1.0 未満だと失敗とみなす
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
•入力画像がある奥行き上にあると仮定してワーピング 
•ワーピング画像を積み重ね、輝度一致度で奥行きを推定
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
• 輝度一致度だけで奥行きを求めると精度が悪い 
•テクスチャのない箇所に弱い 
•グラフカットを利用して精度向上 
• ...
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
• 輝度一致度だけで奥行きを求めると精度が悪い 
•テクスチャのない箇所に弱い 
•グラフカットを利用して精度向上 
• ...
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
•奥行き分解能は奥行きに反比例 
•近いものは細かく計れるが、遠いものは粗くなる 
•奥行き分解能は20~32段階くらい ...
iPhoneへ移植 
• iOSはC++をそのまま使える 
• ただそのままだと扱いづらい 
• C++ / Objective-C / Objective-C++ を使い分ける
Objective-C/ Objective-C++ / C++ 
どう使い分けるか? 
Objective-C Objective-C++ C++ 
• Obj-C C++ の橋渡し 
• UIImage と cv::Mat 
の変換 
• ...
Objective-C/ Objective-C++ / C++ 
どう使い分けるか? 
Objective-C Objective-C++ C++ 
• Obj-C C++ の橋渡し 
• UIImage と cv::Mat 
の変換 
• ...
残りの課題 
• パラメータチューニング (もう少しよく出来そう) 
• ステレオ法だけで挑んでみる 
• CocoaPods化 
• 実スケール単位での計測(1m, 2m とか実測)
ご静聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Depth From Sequence

4,360 views

Published on

第25回コンピュータビジョン勉強会@関東での発表資料です。

http://connpass.com/event/8082/

Published in: Engineering
  • Dating direct: ♥♥♥ http://bit.ly/2F7hN3u ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • What Is An Equalizing Charge, Why Is It Needed, And How to Apply One To a Lead Acid Battery.. ■■■ http://t.cn/AiFAb0DL
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Depth From Sequence

  1. 1. iPhoneで奥行き推定する プログラムを作りました 第25回CV勉強会@関東 Yuichi Takeda / @ginrou799
  2. 2. iPhoneのカメラだけで動く iPhoneで奥行き推定する プログラムを作りました デプスセンサ作りました 第25回CV勉強会@関東 Yuichi Takeda / @ginrou799
  3. 3. 自己紹介 • Yuichi Takeda / @ginrou799 • CV • コンピュテーショナルフォトグラフィ • MIRU 2012 優秀賞 • iOS • ミクシィでiPhoneアプリの開発 • 本も出してますhttp://goo.gl/OaLUDc
  4. 4. AndroidのLensBlur ご存知ですか?
  5. 5. LensBlur • Android に搭載されているカメラの機能 • シーンの奥行きを推定してリフォーカス 出典 http://googleresearch.blogspot.jp/2014/04/lens-blur-in-new-google-camera-app.html
  6. 6. そのiPhone版を 作りました。
  7. 7. Depth From Sequence iPhoneを手に持って撮影した画像シーケンスから奥行きを推定します
  8. 8. Depth From Sequence • ソースコードは公開しています。 • https://github.com/ginrou/DepthFromSequence • C++ • 動作環境 • CMake OpenCVの動く環境 • Mac, Linux(多分) • iOS
  9. 9. 元ネタ • 元ネタはLensBlurの元になった論文 • 3D Reconstruction from Accidental Motion (Fisher Yu et al. CVPR 2014) • この論文をベースに実際に使えるように少し改良
  10. 10. アルゴリズム・入力画像 • 1280x720で撮影して 640x320 に縮小して処理 • 実際のデプスを計測するのは中央の320x320の領域 • 10 ~ 15枚ほどが安定している
  11. 11. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep • KLT Trackerを使って特徴点追跡 最初のフレームでは150個の特徴点を追跡し、 最終フレームで70個まで減ったら失敗
  12. 12. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep • Feature Trackingの結果からカメラの位置と姿勢を推定 • Bundle Adjustment • 便利ライブラリなかったので実装しました
  13. 13. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep • パラメータ • 最大反復回数は 5 回 • 反復終了時に再投影エラーが 1.0 未満だと失敗とみなす
  14. 14. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep •入力画像がある奥行き上にあると仮定してワーピング •ワーピング画像を積み重ね、輝度一致度で奥行きを推定
  15. 15. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep • 輝度一致度だけで奥行きを求めると精度が悪い •テクスチャのない箇所に弱い •グラフカットを利用して精度向上 • http://graphics.stanford.edu/projects/densecrf/ を利用
  16. 16. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep • 輝度一致度だけで奥行きを求めると精度が悪い •テクスチャのない箇所に弱い •グラフカットを利用して精度向上 • http://graphics.stanford.edu/projects/densecrf/ を利用
  17. 17. アルゴリズム Feature Tracking Bundle Adjustment Plane Sweep •奥行き分解能は奥行きに反比例 •近いものは細かく計れるが、遠いものは粗くなる •奥行き分解能は20~32段階くらい •分解能を上げるとメモリを圧迫する •100MBくらい食うのでスマートフォンにはキツイ
  18. 18. iPhoneへ移植 • iOSはC++をそのまま使える • ただそのままだと扱いづらい • C++ / Objective-C / Objective-C++ を使い分ける
  19. 19. Objective-C/ Objective-C++ / C++ どう使い分けるか? Objective-C Objective-C++ C++ • Obj-C C++ の橋渡し • UIImage と cv::Mat の変換 • 非同期処理 • カメラのバッファ • UI • 画像処理のコア まずはコア部分を独立して開発
  20. 20. Objective-C/ Objective-C++ / C++ どう使い分けるか? Objective-C Objective-C++ C++ • Obj-C C++ の橋渡し • UIImage と cv::Mat の変換 • 非同期処理 • カメラのバッファ • UI • 画像処理のコア うまく行ったらiiPPhhoonneeの部分を作る
  21. 21. 残りの課題 • パラメータチューニング (もう少しよく出来そう) • ステレオ法だけで挑んでみる • CocoaPods化 • 実スケール単位での計測(1m, 2m とか実測)
  22. 22. ご静聴ありがとうございました

×