OpenMVS (open Multi View Stereo) のインストール(Ubuntu 上)
OpenMVS は、MVS (Multi View Stereo) の機能を持つオープンソースソフトウェア.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
Git, CMake のインストール(Ubuntu 上)
インストールするには,端末で,次のコマンドを実行する.
sudo apt -y install git cmake cmake-curses-gui cmake-gui
C/C++ コンパイラと Make とビルドツールのインストール
ソフトウェアをソースコードからビルドするには、C/C++コンパイラ (通常はGCC) や make
ユーティリティといった開発ツールが重要である。Ubuntuでは、これらのツールは build-essential
パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。
sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config
libtool
, texinfo
, dpkg-dev
, pkg-config
は、より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである。
NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7, NVIDIA cuDNN v8.4.1 のインストールのインストール(Ubuntu 上)
Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7, NVIDIA cuDNN v8.4.1 のインストール: 別ページ »で説明
OpenMVS のインストール(ソースコードを使用)(Ubuntu 上)
Eigen のインストール(Ubuntu 上)
端末で,次のコマンドを実行する.
Ubuntu 22.04 では Eigen 3.4.0 がインストールされる.
sudo apt -y install libeigen3-dev
SuiteSparse, CXSparse, libmetis, BLAS, LAPACK のインストール(Ubuntu 上)
端末で,次のコマンドを実行する.
Ubuntu 22.04 では SuiteSparse 5.10.1, libmetis 5.1.0 がインストールされる.
sudo apt -y install libatlas-base-dev libsuitesparse-dev
Ceres Solver のインストール(ソースコードを使用)(Ubuntu 上)
公式ページ http://ceres-solver.org/installation.html の手順に従う.
- 前提ソフトウェア
Ceres Solver のインストールのために, cmake, google-glog, glfags, Eigen, BLAS, LAPACK, Eigen 3, SuiteSparse, CXSparse をインストールする.
端末で,次のコマンドを実行する.
sudo apt -y install cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev
- Ceres Solver のビルド
「-b 2.1.0」は 2022年8月時点の最新の安定版(バージョン 2.1.0)をダウンロードすることを指定している. 最新の安定版については https://github.com/ceres-solver/ceres-solver で確認.
(安定版よりも新しい版などでは,うまく動作しないということもありえるので注意).
cd /tmp sudo rm -rf ceres-solver git clone https://ceres-solver.googlesource.com/ceres-solver -b 2.1.0 cd ceres-solver mkdir build cd build cmake .. -DEIGENSPARSE=ON -DSUITESPARSE=ON \ -DSuiteSparse_AMD_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_CAMD_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_COLAMD_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_CCOLAMD_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_CHOLMOD_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_SPQR_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_Config_INCLUDE_DIR=/usr/include/suitesparse \ -DSuiteSparse_Config_LIBRARY=/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.a make -j4
- 終了の確認
ここまでの一連の操作で,エラーメッセージが出るなどの問題がないこと.
- Ceres Solver のインストール
sudo make install
- 終了の確認
- 動作確認
cd /tmp/ceres-solver/build ./bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt
- テスト
make test
- テスト結果の確認
Boost, OpenCV, CGAL, VCGLib, GLFW3, その他のインストール
以上のほか、OpenMVS のインストールに必要なものをインストールする.
この手順は,次の Web ページの説明による.
端末で,次のコマンドを実行する.
#Prepare and empty machine for building:
sudo apt -y install git cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev
#Boost (Required)
sudo apt -y install libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-serialization-dev
#OpenCV (Required)
sudo apt -y install libopencv-dev
#CGAL (Required)
sudo apt -y install libcgal-dev libcgal-qt5-dev
#VCGLib (Required)
cd /usr/local/
sudo rm -rf vcglib
sudo git clone https://github.com/cdcseacave/VCG.git vcglib
sudo chown -R $USER vcglib
#GLFW3 (Optional)
sudo apt -y install freeglut3-dev libglew-dev libglfw3-dev
OpenMVS のインストール(Ubuntu 上)
#OpenMVS
cd /tmp
sudo rm -rf openMVS
git clone https://github.com/cdcseacave/openMVS.git openMVS
sudo rm -rf openMVS_build
mkdir openMVS_build
cd openMVS_build
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/usr/local/vcglib"
#Install OpenMVS library (optional):
make -j2
sudo make install
OpenMVS のインストールでの 「make -j2」でエラーが出るときは, NVIDIA CUDA ツールキットを使うことをあきらめて, 「cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/usr/local/vcglib"」の代わりに 次のように操作する. そして,残りを実行する.
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/usr/local/vcglib" -DOpenMVS_USE_CUDA=OFF
ここまでの一連の操作で,エラーメッセージが出るなどの問題がないこと.
