embeddedなブログ

組み込みシステムに関することや趣味に関することをダラダラと書いていきます(^^)

Detector-Free Structure from MotionをWindows 11(WSL)上でビルドする

2024-07-27 13:26:16 | Windows Embedded Standard

Windows上でUbuntu 20.04を動作させて、その上でDetector-Free Structure from Motionをビルドしてみます。通常のSfMパイプラインの場合、最初に特徴点と呼ばれる点をすべての画像から抽出し、それらを複数画像間でマッチングを行います。これらマッチングされた特徴点をベースにパイプライン後段が実行されます。しかし、特徴点が少ない画像が含まれるとSfM全体の精度に悪影響を与えます。そこでAI(Transformer)を活用して特徴点抽出をしないマッチングDetector-FreeなSfMアルゴリズムがこのDetector-Free Structure from Motionです。このアルゴリズムの詳細についてはこちらの論文を参照ください。

それでは実際にWindows 11(WSL)上でビルドする手順を解説します。

まず、管理者権限でWindows PowerShellを起動して、下記コマンドでWSLを起動します。

wsl

Anacondaをインストールする準備をします。

cd ~/
mkdir Downloads
cd Downloads

Anacondaのインストーラをダウンロードします。https://www.anaconda.com/download Python 3.12 64-Bit (x86) Installer (1007.9M)

wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh

Anacondaをインストールします。

bash Anaconda3-2024.06-1-Linux-x86_64.sh

パスの追加をします。

echo "export PATH=~/anaconda3/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

Anacondaのバージョン確認をします。私の環境では「conda 24.5.0」となりました。

conda -V

Anacondaの環境を構築します。environment.yaml を環境に合わせて編集してください。

環境を作成し、有効にします。

conda env create -f environment.yaml
conda activate detectorfreesfm

マルチビューのリファインマッチングで必要なRoIAlignをインストールします。

cd third_party/RoIAlign.pytorch && pip install .

通常のシェルに戻ります。ビルドツールをインストールします。

sudo apt update
sudo apt upgrade
sudo apt-get install -y  build-essential
sudo apt-get install -y  git
sudo apt-get install -y  cmake 
sudo apt-get install -y  libeigen3-dev
sudo apt-get install -y  libpcl-dev

ライブラリをインストールします。

sudo apt-get install -y libboost-program-options-dev
sudo apt-get install -y libboost-filesystem-dev
sudo apt-get install -y libboost-graph-dev
sudo apt-get install -y libboost-system-dev
sudo apt-get install -y libboost-test-dev
sudo apt-get install -y libsuitesparse-dev
sudo apt-get install -y libfreeimage-dev
sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libgflags-dev
sudo apt-get install -y libglew-dev
sudo apt-get install -y qtbase5-dev
sudo apt-get install -y libqt5opengl5-dev
sudo apt-get install -y libcgal-dev
sudo apt-get install -y libmetis-dev
sudo apt-get install -y libcgal-qt5-dev
sudo apt-get install -y libatlas-base-dev libsuitesparse-dev

multi-view-evaluationをGitからクローンしてビルドします。

cd ~/
mkdir dev
cd dev
git clone https://github.com/ETH3D/multi-view-evaluation.git
cd multi-view-evaluation
mkdir build
cd build
cmake ..
make

ceres-solverをGitからクローンしてビルドします。

cd ~/dev
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout 1.14.x
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make -j
sudo make install

colmapをGitからクローンしてビルドします。

cd ~/dev
git clone https://github.com/hxy-123/colmap.git
cd colmap
mkdir build
cd build
cmake ..
make -j
sudo make install
echo "COLMAP_PATH=~/dev/colmap/build/src/exe/colmap" >> ~/.bashrc
source ~/.bashrc

DetectorFreeSfMをGitからクローンします。

cd ~/dev
git clone https://github.com/zju3dv/DetectorFreeSfM.git
cd DetectorFreeSfMt

サードパーティーモジュールをクローンします。

git submodule update --init

DetectorFreeSfMをビルドします。

mkdir build
cd build
cmake ..
make -j
sudo make install

以上でDetector-Free Structure from MotionのWindows 11(WSL)上でのビルドに関する解説は終了です。


最新の画像もっと見る