写真測量:仏公的機関開発のMicMacを試す

アイキャッチ, MicMac MicMac

MicMacはGUIがないコマンドベースの3Dモデリングソフトです。また情報もフランス語が多く、初心者には敷居が高そうです。しかし開発元がフランス国立地理研究所とフランス国立地理科学学校であり、3Dモデリングではなく写真測量が目的ならかえって近道かもしれません。どんなものか調べてみましょう。

MicMacはフリーでオープンソースの写真測量スイートです。

入手先

MicMacのホームページから、Installationを選びます。すると、いくつものOSへのインストーラのリンクが出てきますので、Windows版を選びます。

ダウンロードのリンクは以下のように見えるのですが、v1.1をクリックしても同じページがリロードされるだけで一見何も起こらないのでその上のgithubのリンクをクリックし、最新と記されたv1.0 beta14(2022年3月現在)を選んでしまいそうになります。しかし、v1.1のリンクをクリックした時点でダウンロードフォルダにzipファイルがダウンロードされています。

MicMacダウンロードサイト
MicMacダウンロードサイト

なお、githubのリンク内では、MMASTER_v1.1というのが最新に見えます。MMASTER版はライセンス形態が異なるライブラリを使っているため別建てになっているようです。これと上記でダウンロードしたv1.1が同じかどうかはわかりません。また、フォーラムを見るとGUIも開発中のようです。期待しましょう。

なお、冒頭でフランス語だと脅しましたが、英語の説明もだいたいありますし、英語でもフランス語でもブラウザの翻訳機能で十分読める日本語になりますので臆せずトライしましょう。

インストール

インストールもまだ原始的ですね。”C:\MicMac”というフォルダを作ってダウンロードしたZIPの中身をこの中に入れます。それから環境変数に”C:¥MicMac¥bin”を追加します。昔からパソコンを使っている人にとっては懐かしいインストール法ですね。若い方だと、環境変数って何?ということになるかもしれません。なお、インストールフォルダ名にはスペースも特殊文字も含んではダメということです。当然データフォルダの名前にも気を付けた方が良いでしょう。

あと、結果の視覚化にはMeshLabを使うようですので、こちらもインストールしてください。MeshLabは日本語の情報も多いので大丈夫でしょう。

作業フォルダとターミナルの準備

作業フォルダ(ここではc:\photogrammetry\MicMac)を作り、COLMAPで使ったものと同じ58枚のUAV画像をその中に入れます。

次に、スタートメニューからコマンドプロンプト(cmd.exe)を探して起動し、

cd c:\photogrammetry\MicMac

で作業フォルダに移動します。

MicMacはターミナルから起動する
MicMacはターミナルから起動する

対応点の探索:Tapiocaコマンド

最初に、対応点を探索します。コマンドはTapiocaです。

mm3d Tapioca All ".*.JPG* 1500

コマンドリファレンスによれば、1500は対応点を探す時の画像サイズで、フル解像度の0.3から0.5を推奨しています。-1だとフル解像度の指定になります。Allは写真総当たりで対応点を探すということで、もっと効率的な方法も指定できるようです。今回は最も速度が遅い例ということでご理解ください。なお、画像ファイル名がピリオドから始まっているのは、Linux流の正規表現でしょう。Windows流に先頭のピリオドを外すとエラーになりました。

実行中、タスクマネージャーを見ると、CPUは100%, GPUは使っていません。終了するまで54分かかりました。

カメラパラメータとカメラ位置の推定:Tapasコマンド

次はTapasです。対応点の情報からレンズの歪みや撮影位置を割り出す重要なステップです。

mm3d Tapas FraserBasic ".*.JPG" Out=Arbitrary

FraserBasicは通常のカメラレンズ用で10個のパラメータを使用します。もっと多くのパラメータを使うものや魚眼レンズ用のものもあります。Out=Arbitraryは出力フォルダで、カレントフォルダ内にOri-Arbitraryフォルダを作成して推定したパラメータを格納します。

実行中、タスクマネージャーを見ると、CPUは40%前後、GPUはやはり使っていません。18分で終わりました。

疎な点群の出力:AperiCloudコマンド

AperiCloudコマンドを使うと疎な点群が.ply形式のファイルとして出力されます。MeshLabを使って表示することができます。

mm3d AperiCloud ".*.JPG" Arbitrary

このステップは1分で終わりました。AperiCloud_Arbitrary.plyができています。MeshLabで表示すると以下のようになります。ここまでがSfMのプロセスですが、トータルで1時間13分かかっています。

生成された疎な点群をMeshlabで確認する
生成された疎な点群をMeshlabで確認する

深度マップの作成:Maltコマンド

実は写真測量が目的なら、このステップの前にジオリファレンスを行うステップが入るのですが、ここではCOLMAPRegard3Dと同様、密な点群の作成に進みます。使用するのはMaltコマンドです。

mm3d Malt GeomImage ".*.JPG" Arbitrary Master="V001.JPG" ZoomF=2

実行すると、CPU使用率は100%ですが、GPUはやはりほとんど使われません。Malt以外GPUはあまり効かないといった議論を見かけたので、さすがにここでは使うかと思いましたが、動きませんねぇ。25分で終了しました。

よく調べると、GPU使用オプションがあるのですが、ダウンロードしたバイナリはこの設定が有効になりません。ソースからのビルドが必要です。GPU使用は敷居が高いですね。

密な点群の生成:Nuage2Plyコマンド

密な点群の出力はNuage2Plyコマンドです。

mm3d Nuage2Ply "MM-Malt-Img-V001/NuageImProf_STD-MALT_Etape_7.xml" Attr="V001.JPG" Out=1.ply RatioAttrCarte=2

このコマンドはたちまち終了しました。MVSのプロセスはMaltで終了しており、単に出力するためのコマンドのようです。MeshLabで1.plyを表示してみると、ん!?おかしいですね。一部しか3Dモデル化されていません。よく調べてみると、前段のMalt GeomImageはもともとMasterで指定した画像と接点のある範囲だけが出力されるものでした。全体を出力するならMalt Orthoにすべきでした。

なお、プロセス全体の実行時間は1時間40分でした。

生成された密な点群をMeshlabで確認する
生成された密な点群をMeshlabで確認する

MicMacをどう評価する?

MicMacはGUIがなく、GPUを使うにはビルドが必要など、敷居が高い印象があります。しかし、多くの3Dモデリングソフトにはないジオリファレンスやオルソ画像、DEMの作成機能がそなわっており、かけがえのない長所を持っています。また現時点でベータであり、今後の開発にも期待がふくらみますね。

バッチファイルにして全体の処理が簡単にできるような説明を作ってみました。 Have fun!

写真測量まとめ:素人でもできる測量を目指して
写真測量は、最近だとドローンを駆使して行うものと思っている方も多いと思いますが、素人・初心者の皆さんが相手にする小さいエリアなら手持ちカメラでも可能です。安価に、簡単にできる方法を探ります。

コメント

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