狠狠撸

狠狠撸Share a Scribd company logo
iPhoneで奥行き推定する 
プログラムを作りました 
第25回CV勉強会@関東 
Yuichi Takeda / @ginrou799
iPhoneのカメラだけで動く 
iPhoneで奥行き推定する 
プログラムを作りました 
デプスセンサ作りました 
第25回CV勉強会@関東 
Yuichi Takeda / @ginrou799
自己紹介 
? Yuichi Takeda / @ginrou799 
? CV 
? コンピュテーショナルフォトグラフィ 
? MIRU 2012 優秀賞 
? iOS 
? ミクシィでiPhoneアプリの開発 
? 本も出してますhttp://goo.gl/OaLUDc
AndroidのLensBlur 
ご存知ですか?
LensBlur 
? Android に搭載されているカメラの機能 
? シーンの奥行きを推定してリフォーカス 
出典 http://googleresearch.blogspot.jp/2014/04/lens-blur-in-new-google-camera-app.html
そのiPhone版を 
作りました。
Depth From Sequence 
颈笔丑辞苍别を手に持って撮影した画像シーケンスから奥行きを推定します
Depth From Sequence 
? ソースコードは公開しています。 
? https://github.com/ginrou/DepthFromSequence 
? C++ 
? 動作環境 
? CMake OpenCVの動く環境 
? Mac, Linux(多分) 
? iOS
元ネタ 
? 元ネタは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 
? 輝度一致度だけで奥行きを求めると精度が悪い 
?テクスチャのない箇所に弱い 
?グラフカットを利用して精度向上 
? http://graphics.stanford.edu/projects/densecrf/ を利用
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
? 輝度一致度だけで奥行きを求めると精度が悪い 
?テクスチャのない箇所に弱い 
?グラフカットを利用して精度向上 
? http://graphics.stanford.edu/projects/densecrf/ を利用
アルゴリズム 
Feature 
Tracking 
Bundle 
Adjustment 
Plane 
Sweep 
?奥行き分解能は奥行きに反比例 
?近いものは細かく計れるが、遠いものは粗くなる 
?奥行き分解能は20~32段階くらい 
?分解能を上げるとメモリを圧迫する 
?100MBくらい食うのでスマートフォンにはキツイ
iPhoneへ移植 
? iOSはC++をそのまま使える 
? ただそのままだと扱いづらい 
? C++ / Objective-C / Objective-C++ を使い分ける
Objective-C/ Objective-C++ / C++ 
どう使い分けるか? 
Objective-C Objective-C++ C++ 
? Obj-C C++ の橋渡し 
? UIImage と cv::Mat 
の変換 
? 非同期処理 
? カメラのバッファ 
? UI 
? 画像処理のコア 
まずはコア部分を独立して開発
Objective-C/ Objective-C++ / C++ 
どう使い分けるか? 
Objective-C Objective-C++ C++ 
? Obj-C C++ の橋渡し 
? UIImage と cv::Mat 
の変換 
? 非同期処理 
? カメラのバッファ 
? UI 
? 画像処理のコア 
うまく行ったらiiPPhhoonneeの部分を作る
残りの課題 
? パラメータチューニング (もう少しよく出来そう) 
? ステレオ法だけで挑んでみる 
? CocoaPods化 
? 実スケール単位での計測(1m, 2m とか実測)
ご静聴ありがとうございました

More Related Content

More from yuichi takeda (6)

Cvpr2021て?発表されたvirtual try on まとめ
Cvpr2021て?発表されたvirtual try on まとめCvpr2021て?発表されたvirtual try on まとめ
Cvpr2021て?発表されたvirtual try on まとめ
yuichi takeda
?
iOS Traning #0
iOS Traning #0iOS Traning #0
iOS Traning #0
yuichi takeda
?
Jenkins on-mac
Jenkins on-macJenkins on-mac
Jenkins on-mac
yuichi takeda
?
App dojo-2014-03-27
App dojo-2014-03-27App dojo-2014-03-27
App dojo-2014-03-27
yuichi takeda
?
130624 auto layout
130624 auto layout130624 auto layout
130624 auto layout
yuichi takeda
?
拡大缩小から始める画像処理
拡大缩小から始める画像処理拡大缩小から始める画像処理
拡大缩小から始める画像処理
yuichi takeda
?
Cvpr2021て?発表されたvirtual try on まとめ
Cvpr2021て?発表されたvirtual try on まとめCvpr2021て?発表されたvirtual try on まとめ
Cvpr2021て?発表されたvirtual try on まとめ
yuichi takeda
?
拡大缩小から始める画像処理
拡大缩小から始める画像処理拡大缩小から始める画像処理
拡大缩小から始める画像処理
yuichi takeda
?

Recently uploaded (7)

20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
R S
?
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdfAZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
Tsubasa Yoshino
?
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
Kurata Takeshi
?
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
bearsmichimato99
?
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
ueda0116
?
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdfWhat-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
Kyohei Ito
?
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
ktomita2
?
20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
20250328冲搁耻产测碍补颈驳颈事前勉强会冲产补产补冲辫谤别蝉别苍迟补迟颈辞苍冲蝉濒颈诲别
R S
?
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdfAZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第1回.pdf
Tsubasa Yoshino
?
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
人间拡张から人间社会拡张へ(贬础搁颁厂2024讲演资料。产业技术総合研究所 蔵田武志)
Kurata Takeshi
?
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
JAWS-UG CDK支部 #20 マネコン支部!? VS CDK支部の初心者LT会 登壇資料 AWS CDKに入門してみた。
bearsmichimato99
?
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
【AITRIOS】Brain Builderを使いバナナの熟成度のAIモデル作成
ueda0116
?
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdfWhat-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
What-is-SendAI-Solana-AI-Agent-Hands-on-for-EVM-Engineers.pdf
Kyohei Ito
?
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
【现役エンジニア向け】颁耻谤蝉辞谤て?効率的な础滨コーテ?ィンク?のススメ...
ktomita2
?

Depth From Sequence