OpenMVGとOpenMVSのdockerを作る
docker イメージの作り方は 1) Dockerfile から作る 2) コンテナを作ってイメージにする の二通りがある。今回は後者で試す。
以下のページを参考に実装する
環境構築
ベースイメージは Ubuntu:20.04 を利用する。
最初に以下を実行する
apt update
apt upgrade
apt install build-essential tar curl zip unzip vim git
OpenMVG と Meshlab のインストールはリンクを参考に行う。
OpenMVS のインストールが少し面倒。以下に記述していく。
OpenMVS
参考リンクのOpenMVSの環境構築のvcpkgを用いた方法を記載していく
vcpkg
c++のビルド用にパッケージを入れる。
apt install gcc g++ cmake make
以下から vcpkg をビルドする。
vcpkg は vcpkg 以下のディレクトリに c++ パッケージをインストールしているようである。
コマンドは以下
# インストール
./vcpkg install [package]
# 検索
./vcpkg search [package]
# 削除
./vcpkg remove [package]
eigen3
./vcpkg install eigen3
エラー発生。bison ? とpkg-config? というライブラリがいるらしい。
apt install bison pkg-config
./vcpkg install eigen3
opencv4
./vcpkg install opencv4
エラー発生。 distutils ? が必要。
apt install python3-distutils
./vcpkg install opencv4
エラー発生。xtst が必要
apt install libxtst-dev
./vcpkg install opencv4
cgal
./vcpkg install cgal
エラー発生. autocomf が必要
apt install autoconf
./vcpkg install cgal
エラー発生。libtoolが必要?
apt install libtool
./vcpkg install cgal
boost
./vcpkg install boost
エラー発生。autoconf-archive が必要。
apt install autoconf-archive
./vcpkg install boost
VCG
./vcpkg install vcglib
OpenMVS
#Clone OpenMVS
git clone --recurse-submodules https://github.com/cdcseacave/openMVS.git
#Make build directory:
cd openMVS
mkdir make
cd make
#Run CMake:
cmake -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake ..
エラー発生。glew のインストールがうまく行かない。
apt instal l libxmu-dev libxi-dev libgl-dev
cmake -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake -DOpenMVS_USE_CUDA=OFF ..
エラー発生。glfw3 のビルド中
./vcpkg install libxinerama --recurse
cmake -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake -DOpenMVS_USE_CUDA=OFF ..
エラー発生。glfw3のビルド中
The Xinerama headers were not found
apt install xorg-dev
cmake -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake -DOpenMVS_USE_CUDA=OFF ..
cmake 成功
次は "cmake --build"
cmake --build . -j4
エラー発生。GL/glu.h: No such file or directory
.
apt install libglu1-mesa-dev
cmake --build . -j4
成功
チュートリアルを勧めていたが scean.mvs -> ply
に変換する時に以下のエラーが発生。
構築しなおし。
cmake -DOpenMVS_USE_CUDA=OFF -DCMAKE_TOOLCHAIN_FILE=/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD=Release ..
成功
cmake --build . -j4
同一エラーが発生。 DCMAKE_BUILD=Release
を DCMAKE_BUILD_TYPE=Release
に変更
cmake -DOpenMVS_USE_CUDA=OFF -DCMAKE_TOOLCHAIN_FILE=/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD=Release ..
cmake --build . -j4
成功。
チュートリアルも成功
まとめ
# docker container creating
docker run -it -d --name sfm ubuntu:20.04
docker exec -it sfm bash
sudo apt update
sudo apt upgrade
apt install build-essential tar curl zip unzip vim git
apt install gcc g++ cmake make
apt install python3.8
# vcpkg
mkdir /workspace && cd /workspace
git clone https://github.com/microsoft/vcpkg
cd /workspace/vcpkg && ./bootstrap-vcpkg.sh
# eigen3
apt install bison
./vcpkg install eigen3
# opencv4
apt install python3-distutils libxtst-dev
./vcpkg install opencv4
# cgal
apt install autoconf libtool
./vcpkg install cgal
# boost
apt insall autoconf-archive
./vcpkg install boost
# vcglib
./vcpkg install vcglib
# OpenMVS build
apt install libxmu-dev libxi-dev libgl-dev xorg-dev libglu1-mesa-dev
./vcpkg instal libxinerama --recurse
cd /workspace
git clone --recurse-submodules https://github.com/cdcseacave/openMVS.git
cd openMVS
mkdir make
cd make
cmake \
-DOpenMVS_USE_CUDA=OFF \
-DCMAKE_TOOLCHAIN_FILE=/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_BUILD=Release \
..
cmake --build . -j4