スマートフォンで撮影した画像から物体を認識し、撮影した位置から物体までの距離を推定したいです。  
ただいま、スマートフォンで撮影した画像から物体を認識するところまではできました。  
しかし、その物体との距離を推定する方法がわかりません。ステレオカメラにするのは使用上避けたいです。  
距離を推定する方法を教えていただける助かります。

環境  
Android studio  
Opencv3.3  
Windows 10
CC BY-SA 3.0
2017-09-07T06:14:21.557
37773
2017-09-08T01:15:48.063
25264
question
android opencv 画像
単眼カメラでの距離推定について
１）物体の大きさや向きが判っている場合  
例えば、サッカーの公式球（５号球）なら直径２２ｃｍと判っていますから物体の画角と直径から距離を求めることができます。

２）ピントを変えて複数の画像を取得できる場合  
後からピントを変えられるデジカメが販売されていますが、あれはピント位置を変えながら複数の画像を撮影しておいて、後でその中から選べるようになっています。  
同じように、ピント位置を変えながら複数の画像を撮影し、対称物体にピントがあっているかどうかを評価することで最良のピント位置（物体の位置）を推測することができます。

３）関連研究  
単一画像から３次元空間（各物体との距離を推定した空間）を抽出する研究の論文はいろいろあります。  
Aは比較的短い論文なので、先に読むと良いとおもいます。  
Bは学位論文なので長いですが、記述が詳しいです。

[A:焦点ボ ケ量推定
を用いた単一画像からの3次元空間における領域抽出方法](https://www.jstage.jst.go.jp/article/ieejeiss1987/121/9/121_9_1439/_pdf)

[B:単眼単視点による三次元画像計測に関する研究](https://chukyo-u.repo.nii.ac.jp/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=328&item_no=1&attribute_id=20&file_no=1&page_id=13&block_id=21)
CC BY-SA 3.0
2017-09-08T01:15:48.063
37790
2017-09-08T01:15:48.063
217
37773
answer