【Windows】COLMAPのインストールと使い方

【Windows】COLMAPのインストールと使い方 ツール

「画像から3Dモデルを再構築したい」
「COLMAPをWindowsで動かしたい」

このような場合には、この記事の内容が参考になります。
この記事では、COLMAPについて解説しています。

本記事の内容

  • COLMAPとは?
  • COLMAPのダウンロード
  • COLMAPのインストール
  • COLMAPの動作確認

それでは、上記に沿って解説していきます。

COLMAPとは?

COLMAPとは、写真から3Dモデルを再構築するソフトウェアです。
GUI・コマンドラインの両方で利用可能となっています。

動作環境は、Linux、Mac、Windowsと何でもOKです。
また、COLMAPはオープンソースのSfM・MVSツールと呼ばれています。

  • Structure from Motion (SfM)
  • Multi-View Stereo (MVS)

SfMでは、次の処理が実行されます。

  • 特徴点の抽出
  • 特徴点のマッチング

プロセスとしては、多くの画像から特徴点を抽出します。
そして、それらの特徴点間の対応関係を見つけます。

その結果として、3Dの点群とカメラの位置・姿勢の情報が取得できます。

MVSでは、SfMで取得できた情報を基に3Dモデルを再構築します。
その際、画像からテクスチャを生成することも可能になります。

以上、COLMAPについて説明しました。
次は、COLMAPのダウンロードを説明します。

COLMAPのダウンロード

この記事では、Windows環境を前提に説明を行います。

公式のダウンロードページ
https://demuc.de/colmap/#download

「Pre-Release Version」リンクをクリックするとGitHubのページへ移動。

Releases · colmap/colmap
COLMAP - Structure-from-Motion and Multi-View Stereo - colmap/colmap

現状では、バージョン3.8が最新となっています。

「COLMAP-3.8-windows-cuda.zip」の方をダウンロードします。
ファイルは124MB程度のため、すぐにダウンロードできます。

以上、COLMAPのダウンロードを説明しました。
次は、COLMAPのインストールを説明します。

COLMAPのインストール

ダウンロードしたzipファイルを解凍します。
必要なモノは、以下。

この親ディレクトリを適当な場所に移動させます。
その際、「COLMAP-3.8-windows-cuda」だと長いので「COLMAP」にディレクトリ名を変更します。

移動したら、その場所を環境変数「Path」に登録しましょう。
例えば、次のようなパスを登録することになります。

登録できたら、「COLMAP -h」コマンドを実行します。
PowerShellでもDOSプロンプトでも、どちらでもOK。

> COLMAP -h
COLMAP 3.8 -- Structure-from-Motion and Multi-View Stereo
              (Commit 45edd3dfde0d945d305de3f299f3c36ae098620c on 2023-02-03 with CUDA)

Usage:
  colmap [command] [options]

Documentation:
  https://colmap.github.io/

Example usage:
  colmap help [ -h, --help ]
  colmap gui
  colmap gui -h [ --help ]
  colmap automatic_reconstructor -h [ --help ]
  colmap automatic_reconstructor --image_path IMAGES --workspace_path WORKSPACE
  colmap feature_extractor --image_path IMAGES --database_path DATABASE
  colmap exhaustive_matcher --database_path DATABASE
  colmap mapper --image_path IMAGES --database_path DATABASE --output_path MODEL
  ...

このように表示されたら、COLMAPのインストールは成功です。

以上、COLMAPのインストールを説明しました。
次は、COLMAPの動作確認を説明します。

COLMAPの動作確認

COLMAPの動作確認を説明します。
内容的には、COLMAPの簡単な使い方の説明にもなっています。

  • 画像の準備
  • 新規プロジェクトの作成
  • 特徴点の抽出
  • 特徴点のマッチング
  • 3Dモデルの再構築
  • 3Dモデルの読み込み

画像の準備

まず、画像を準備する必要があります。
画像は、COLMAP側でサンプル用を用意してくれています。

次のURLにアクセス。
https://demuc.de/colmap/datasets/

OneDriveに転送されて、次のようなダウンロードページに移動します。

ここでは、最もサイズの小さい「south-building.zip」をダウンロードしましょう。
zipファイルを解凍した中身は、以下のような画像が保存されています。

名前を「images」にから「input」に変更して、適当な場所へ移動しておきます。

新規プロジェクトの作成

まずは、COLMAPを起動します。
Pathを通しているなら、「COLMAP」コマンドを実行するだけで起動できます。

そうすると、COLMAPのGUIが表示されます。
新規プロジェクトを作成するために、「File > New project」を選択。

プロジェクトの情報を入力する画面が、表示されます。

「Database」項目では、「New」ボタンをクリック。
「input」を設置したディレクトリに「database.db」を新規に作成します。

「Images」項目には、「input」ディレクトリをパスを設定。
次のような値が設定されていることになります。

この状態で「Save」ボタンをクリック。
「database.db」が指定した場所に作成されます。

特徴点の抽出

先ほど作成したプロジェクトを選択した状態を前提とします。
その状態で「Processing > Feature extraction」を選択。

次のようなポップアップが表示されます。

ここでは、次の2つだけ値を変更します。

  • Shared for all images
  • first_octave

今回の画像では、フレーム間でズームインやズームアウトがありません。
つまり、ズーム倍率が同じ画像だということです。

そのような場合には、「Shared for all images」にチェックを入れます。
おそらく、これで無駄な処理を回避できるのでしょう。

「first_octave」は、「-1」から「0」に変更します。
この変更により、処理速度がUPするということです。

それ以外は、デフォルトのままで「Extract」ボタンをクリック。
クリックすると、さらに次のようなポップアップが表示されます。

これが表示されている間は、処理中ということです。
処理が完了したら、このポップアップは消えます。

しかし、初めのポップアップは表示されたままです。
この辺のUIが、ちょっとわかりにくいです。
普通は、初めのポップアップも閉じますからね。

ややこしいと感じる場合は、次のアイコンをクリックしておきましょう。

クリックすると、次のようにログを確認できます。
このログにより、状況を確認することが可能になります。

この時点で、database.dbの容量が一気に増えています。
画像の特徴点情報が記載されたということなのでしょう。

特徴点のマッチング

特徴点のマッチングとは、類似度が高い特徴点同士をマッチングすることです。
わかりやすく言うと、同じ物体が写る 2 枚の画像間で 同じ物体上の同じ点を対応させることと言えます。

特徴点のマッチングを行うには、「Processing > Feature matching」を選択。

タブが各マッチングのパターンとなっています。

ここでは、「Sequential」を選択。

設定は特に変更せずに「Run」ボタンをクリック。
1分未満で完了しています。
(※処理時間は各自の環境により異なります)

この時点で、database.dbのサイズが少し増えています。
マッチング情報が追記されたということなのでしょう。

あと、「Sequential」を選択した理由を説明しておきます。
サンプル画像は、連続していることが確認できます。

通常は、動画から連続した画像を取得します。
そのため、「Sequential」をマッチングのパターンとして選択することになるでしょう。

今回のサンプル画像も連続しているので、「Sequential」で問題ありません。
後工程(再構築)でエラーが出た場合は、「Exhaustive」でマッチングをやり直してみましょう。

「Exhaustive」でマッチングし直すことで、再構築でエラーを回避できる可能性があるようです。

3Dモデルの再構築

最後の総仕上げです。
処理を実行する前に、オプションを設定します。

「Reconstruction > Reconstruction options」を選択。

次のようなポップアップが表示されます。

「General」タブにおける「multiple_models」項目のチェックを外します。

用途によるとは思いますが、今回は一つのシーン(家のある空間)をモデルにしようとしています。
そのため、「multiple_models」項目のチェックを外すという設定を行います。

設定が終わったら、3Dモデルの再構築の処理を実行します。
「Reconstruction > Start reconstruction」を選択。

選択すると、処理が始まります。
GUIの画面上でモデルが再構築されている様子を確認できます。

処理は、2分ちょっとで完了しました。

画面上の3Dモデルは、マウスでグリグリで動かすことが可能となっています。

この時点で、database.dbのサイズは変化なしです。

再構築された3Dモデルは、別途出力する必要があります。
そのための出力先を用意しましょう。

ここでは、「output」ディレクトリを新規作成します。
モデルを出力するには、「File > Export model」を選択。

保存先は、用意した「output」を選びます。
「output」には、次のファイルが保存されます。

3Dモデルの読み込み

一旦、COLMAPを閉じましょう。
そして、再度COLMAPを起動します。

保存したモデルを読み込みます。
モデルを読み込むには、「File > Import model」を選択。

「output」ディレクトリを選択。
そうすると、次の3Dモデルが表示されます。

マウスでグリグリできますね。
これで、一通りの処理を検証できました。

以上、COLMAPの動作確認を説明しました。

タイトルとURLをコピーしました