LoginSignup
4
5

More than 3 years have passed since last update.

SfMの説明と環境構築(Mac)

Posted at

SfMとは

定義

SfM:Structure from Motion
ある対象を撮影した複数枚の写真から、対象の形状を復元する技術の総称。
SfMソフトウェアを使用して、複数の写真を入力することで、3次元のモデルを容易に作成可能。

特徴点

写真内に写り込んだ建物の角などは、明るさが変わっているため特徴的な点である。
このような点を特徴点と呼ぶ。
特徴点は、写真内の位置(座標)として特定することができ、別の場所から撮影した写真からも同じ特徴点を特定することで、
全ての特徴点と写真を撮影した位置・姿勢の関係を求めることができる。

ハンドル調整

複数枚の撮影した画像から、撮影した位置、姿勢を求めること。
空中写真測量の分野で長く使われてきましたが、コンピュータビジョンの分野でも使われるようになった。
コンピュータビジョンでは自動で誤った点も含めて多くの特徴点を抽出し、誤った特徴点は後から除外していく方法を取ることで自動化を実現している。

SfMのソフトウェア

OSS

・Bundler:2016年からあまり更新されていない??
・openSfM:2018年2月にv0.2.0、python3のサポートができている
・openMVG
・Theia
・COLMAP
・MVE

市販ソフト

・ContextCapture
・Pix4D
・PhotoScan

OpenSfMの事前知識

OpenSfMは、Pythonで記述されたMotionライブラリ。
外部センサ(GPS、加速度計)の測定を統合する。
JavaScriptビューワーが提供されている。

pythonのバージョンは2.7か3.6以降

以下のライブラリと依存関係にある
・OpenCV
・OpenGV
・Ceres Solver
・NumPy, SciPy, Networkx, PyYAML, exifread

OpenSfMの環境構築

初めにOpenSfMのGitHubをクローンする。

git clone --recursive https://github.com/mapillary/OpenSfM

サブモジュールの更新

cd OpenSfM
git submodule update --init --recursive

OpenCV, Ceres Solverのインストール

brew tap homebrew/science
brew install opencv
brew install ceres-solver
sudo pip install -r requirements.txt

OpenGVのインストール、ビルド

brew install eigen
git clone --recurse-submodules -j8 https://github.com/paulinus/opengv.git
cd opengv/build
cmake .. -DBUILD_TESTS=OFF -DBUILD_PYTHON=ON
make install

Pythonのパスを設定していなかったら以下を実行

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

最後にOpenSfMのビルド

python setup.py build

参考文献

dockerでOpenSfMを動かす
OpenSfMのGitHub

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5