SfM (Structure from Motion) |
2017-06-04 - 2018-10-03 (update) |
|
|
*SfM (Structure from Motion) とは
複数の視点で撮影した画像から,カメラの位置姿勢と物体の3次元形状を推定する方法です.推定の方法は,画像上の特徴点に基づく方法が一般的です.そこでは,まず画像間の特徴点の対応関係からカメラの位置姿勢を推定し,その次に三角測量に基づいて特徴点の3次元位置を推定します.そして,次々に画像を追加してこの処理を繰り返すことで全体の最適化を行います.図1は,5枚の入力画像に基づいて,カメラの位置姿勢と特徴点の3次元位置を推定した結果を示します.
[img:dfsp]
{{small:図1 カメラの位置姿勢と特徴点の3次元形状を推定した結果}}
具体的な応用事例としては,[1]のPhoto Tourismが有名です.Photo Tourismでは,観光地の建物を撮影した大量の画像データを入力として,その形状や撮影したカメラの位置姿勢を推定しています.
[youtube:IgBQCoEfiMs]
{{small:[1]N.Snavely, SM.Seitz, R.Szeliski, "Photo tourism: exploring photo collections in 3D", ACM transactions on graphics (TOG), 2006}}
{{small:[link:http://phototour.cs.washington.edu/Photo_Tourism.pdf] }}
*バンドル調整 (bundle adjustment)
上記のように,画像から得た特徴点に合わせるように,繰り返し計算によってパラメータを調整する方法をバンドル調整と呼びます.代表的なソフトウェアとしてbundler[2]があります.
{{small:[2]bundler [link:http://www.cs.cornell.edu/~snavely/bundler] }}
*サンプルコード (C++)
ライブラリ:[link:simplesp]
サンプルコード:simplesp/sample/gl/sfm
画像群を入力として,カメラの位置姿勢と特徴点の3次元位置を推定します.
>> ご意見・ご質問など お気軽にご連絡ください.info