Metashapeのアライメント結果をCOLMAP形式経由でRealityCaptureデータへ変換

Metashapeで作成したデータをRealityCaptureのプロジェクトへ変換する方法をまとめました。
アライメントやメッシュ生成はMetashapeで行い、テクスチャ生成はRealityCaptureで行いたい場合などに。

ここではCOLMAP形式を経由し変換します。
Metashape → COLMAP → RealityCapture

※Bundler形式を利用する場合はYuさんのこちらの記事が参考になります
Bunder形式を使う場合はファイル名をシンプルな連番にリネームする必要がありましたがCOLMAP形式の場合は元のファイル名のまま利用できます。
あとBunlder経由だと写真の歪み補正周りがうまく渡らず色々工夫しないとテクスチャ生成時にぼやけちゃうのもあったり。このあたりCOLMAP経由だとシンプルなワークフローで正しくテクスチャ生成までいけた、ように思う(厳密な比較検証まではやってない)。

手順

まずは通常通りMetashapeでアライメントを行います。

アライメントが出来たら、
ファイル > エクスポート > カメラをエクスポート

ファイルの種類は Colmap を選択。
※Metashape v2.1.3移行でスクリプトを使用せずCOLMAP形式に書き出せるようになりました

ピンホールカメラモデルへの変換 にチェックを入れます。

※これにチェックを入れておかないとRealityCaptureで読み込んだ時に↓のようなエラーとなるので注意

“Invalid or corrupted input data Unsupported colmap camera model”

完了するとimagesフォルダとsparseフォルダが書き出されます。

続いてRealityCaptureを起動し、Open。

ファイルタイプで「Colmap Text Format」を選び、sparse > 0 内にあるいずれのかtxtを選択。

RealityCaptureに読み込まれました。

向きが90度回転した状態になる点には注意。
座標系がMetashapeはY-upでRealityCaptureはZ-upのため。
※事前にMetashapeの時点でチャンクを90度回転しておくか、RealityCaptureのSet Ground Planeで回転させる

以上!

ここでは Metashape → COLMAP → RealityCapture を紹介しましたが、他の手段についてはこちらの記事「RealityCaptureやMetashapeからCOLMAP形式にデータ変換」にもまとめています。