1. はじめに
colmapによる3Dモデル作成に取り組んでいることは、以前colmapのビルドの記事に記した。その後、あれこれ試したがどうもうまくいかない。今回ようやくdense constructionを完了し、meshモデルも作成することができた。meshモデルをMeshLabに読み込むとグレー表示で色が消えていたのが、残念であるが結果をメモとして残しておく。
2.colmapの実行環境
今回のcolmapは以下の環境で実行した。
OS: Windows 10 Home
Version: 21H1
CPU: Intel(R) Core(TM) i7-4770
RAM: 8GB
GPU: NVIDIA Quadro K600
GPU Driver: NVIDIA CUDA 10.2.89
GPU RAM:1GB
colmap:colmapのビルド に記した新たにビルドしたもの
使用した写真:SfM事始めに記した26枚のデコイのカモの写真のうちの連続した8枚。画像のサイズは4160x3120 である。なお、画像ファイル名は枚数を少なくしたのは、GPUメモリが多くないので計算時間を押さえたかったためである。
3.実行
(1)Automatic reconstruction
DOS窓から colmap.bat を実行すると以下の画面が現れる。
File > New project を選択すると、以下のwindowが現れ、Databaseファイルと画像を指定するように求められるので、
DatabaseはNewを押下し、予め定めた作業フォルダ(ここではworkとする)内に例えばdatabaseと指定する。画像は作業フォルダ内に予め画像8枚を収めたフォルダー(ここではimagesとする)を指定し、saveする。ここで、念のため File > Save project as を選択し、プロジェクトファイル(project.ini)をsaveしておく。
次に、一気通貫でメッシュモデルまで作成が可能な Reconstruction > Aitomatic reconstruction を選択する。すると下図のようなパラメータ設定画面が現れるので、上で設定した作業フォルダ―と画像ファイルのフォルダーを指定する。また、Qualityは計算時間が短くて済むようLowを設定した。そしてRunを押下する。
するとかなり時間がかかるが、Feature extractionは行われるがFeature matchingがメモリ不足のためエラーとなり、途中でcolmapがクラッシュしてしまう。このため、Automatic reconstructionはあきらめ Feature extraction から一つずつマニュアルで行うことにする。
(2)Manual reconstruction
プロジェクトファイルをsaveするまでは上と同じ。
a. Feature extraction
メニューから Processing > Feature extraction とすると下図のwindowが現れる。ここで max_image_size のdefaultは3200であるが、そのままにすると2.に記した環境では落ちてしまうので、500とした。そしてwindow下部のExtract をクリックするとすぐ完了する。完了してもwindowはそのまま残るので右上の×印をクリックしてwindowを閉じる。
b. Feature Matching
次に、Processing > Feature matching を選択すると、図のwindowが現れる。
Matching の手法にいくつもあるが、左上端の Exhausive ではうまくいかなかったので、その右隣の Sequential を選択。Runをクリックして実行するとマッチングは直ぐに終了した。
c. Database management
次に、Processing > Database management を選択すると、図のような状態になっていた。
d. Sparse Reconstruction
次に、Reconstruction > Start reconstruction を選択すると、直ぐに実行が始まり、疎な点群が作成され、その結果がカメラの3次元位置とともに画面に表示される。
e. Dense Reconstruction
次に、Reconstruction > Dense reconstruction を選択すると、下図の下側のwindowが現れる。ここで、windowの上側の option をクリックすると下図の上側のwindowが現れる。
ここで max_image_size の default は 2000 であるが、そのままであるとうまく動作しないので500 に設定する。上側のwindowを閉じて、下側windowの Undistortion をクリックする。その結果は下図のようになる。
次に、Stereo をクリックする。この部分が一番時間がかかるが今回は画像枚数が8枚と少なかったので十数分で完了したと思う。完了すると画面は下図のようになる。
このあと Fusion をクリックすると最終的な3次元点群ができる(下図)。その後、メッシュモデルを作成するには、Poisson や Delaunay をクリックすれば良い。今回の例では、Delaunay のみしか作成できなかった。
メッシュモデルは colmapでは表示できないので、File > Export all models により export しておく。
4. 最後に
colmap を最後まで動かすのに大変苦労したが、(誤解の可能性はあるものの)わかったことをまとめておく。
(1) メインメモリや GPU のメモリが少ないと、途中でクラッシュするようだ。
(2) (1)の場合、Automatic reconstruction ではなく、Feature extraction からステップを踏ん
で実行する 。
(3) Feature matching の max_image_size (デフォールト3200)と Dense construction のOption の max_image_size (デフォールト2000)を小さくする。どの環境であれば、どの程度に設定すれば良いのかの情報があれば良いと思った。
(4) Feature matching の方法は Sequential ではうまく動いた。
(5)メッシュモデル作成は、なぜか Poisson ではうまくいかない。Delaunay は白黒になってしまう。
(6)Dense construction は GPU がないと実行されないようなので、Quadro K600 がうまく機能したのではないかと考えている。なお、ビルド済みをダウンロードした colmap では、GPUをオンにするとなぜか直ぐクラッシュしてしまう。
これからも機会があれば試験を繰り返し、今回のメモの内容を改善したい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます