見出し画像

私の”フォトグラメトリワークフロー” -ドローン撮影の場合 その2-

@musimarusan

 私がフォトグラメトリ(以下、フォトグラと略す)で3Dモデルを作っていくときのワークフローを紹介しています。今のところ、まだ右往左往することが多くてワークフローが定まっているとは言い難いのですが、とりあえず現時点版です。
このシリーズではドローンを使って撮影した写真から3Dモデルを作成し、Sketchfabへアップするまでの工程を紹介します。

第二回目はいきなりですがフォトグラメトリ処理です。
 第一回目ではドローンに依る撮影を行いました。私が使っているDJI AIR2SはDNG形式のRAWデータとJPEG画像で写真を保存することができ、私はその両方を保存しています。しかし、私がフォトグラ処理に使うのはJPEG画像のみでRAWデータは使いません。いや、本当はRAW現像をしてTIFF形式に変換して処理した方が良いのかもしれませんが、正直、まだそれをやるほどRAW現像の技術を持っていないのでやっていませんし、そもそも、大量に撮影したRAWデータを1枚1枚現像しなくてはいけないのか、その辺から分かっていません。私は一応、Affinity Photoを持っていてバッチ処理をすれば自動で大量のRAW現像ができるみたいなのですが、どうもやり方がよく分からないので手をこまねいているところです。
 撮影したJPEG画像はざっと見てピンボケがないかどうか確認しますが、ドローンで自動撮影した場合は今のところピンボケはゼロですね。

1.全体設定
 画像の状態に問題がなければ、もういきなりフォトグラ処理にかけますが、まずは私の設定を紹介します。"WORKFLOW"タブ→"Application"→"Settings"で開きます。私の設定は下の画像のとおりです。基本的にデフォルトのままだと思いますが、もしかしたらどこかいじっているかも知れません。でも、今のところ問題はないですね。ポイント、というのでしょうか、私は"Import settings"の"Ignore GPS Exif"はYesにしています。写真のExif情報のうちGPS情報は無視する設定だと思います。私のドローン(DJI AIR2S)はGNSS(衛星測位システム)を用いて自機の位置情報を取得できるのですが、たぶんこれは測量士補試験で勉強した「単独測量」にあたると思います。単独測量の誤差は数”メートル”ということらしいのでExifのGPS情報は使わない方がいいかなと思っています。

Reality Captureの全体設定

2.アラインメント
 私はまだRealityCaptureを熟知していないのでアラインメント設定もあまり気にせず「仕上がればどんな設定でも問題なし」としています。アラインメントの設定は"ALIGNMENT"タブ→"Registration"→"Settings"で開きます。私の設定は下の画像のとおりです。"Image downscale factor"は値が大きいほど写真の解像度を落として処理するようなりますが、私は”1”すなわちもとの解像度のままとしています。もちろん、値が小さいと処理時間はかかりますがフォトグラはアラインメント結果が重要なので時間が掛かっても精度は良くなるようにしています。
 一発で大多数の写真をアラインできれば良いのですが、ものによっては"Component"に分かれてしまうこともあります。そのときはGCP(Ground Control Point)を設定してアラインメント処理をしますが、それでもくっつかないときは"Max features per mpx"や"Max features per image"を大きくしてみることもあります。でも、それでうまくいったことはありません。

アラインメント設定

3.メッシュの構築
 すいません、メッシュ構築設定もデフォルトのままなで特に変わったことはしていません。

メッシュ構築設定

 私はドローン撮影の場合は、最初にできるだけ広い範囲のメッシュモデルを作ります。アライメント処理後の点群を見てある程度密になってメッシュモデルになったとき形が再現できそうなところまで範囲を拡げます。広い範囲で作って風景を楽しみたいからです。もちろん範囲が広い分、処理時間は長くなりますね。

最初は広い範囲でメッシュ構築

次にSketchfabにアップしたい範囲だけメッシュを構築します。でも、これではsketchfabの容量制限(200MB)に軽く引っかかってしましますので、Simplify Toolを使ってメッシュ数を減らしていきます。下の画像で"x0.5"と命名しているモデルは最初に生成したモデルからメッシュ数を50%に減じたモデルであることを表しています。

そして、"x0.5^2"、"x0.5^3"…というのは50%に減じたモデルから更に50%減じたモデル、また更に50%減じたモデル…であると言うこと表しています。つまり、メッシュ数をモデル生成ごとに50%減じていって小さくしていくという段取りです。なぜ、何回もSimplify Toolを使っているのかというと、実はあまり根拠がなく「どこかで見たチュートリアル動画がそうやっていた」という理由なだけです。動画の中では”なぜそうするのか”を説明していたのだと思いますがボーッと観ていたので理由は分かりません。
 私はSimplify Toolではメッシュ減の方法("Type")をRelativeにしています。つまり「元のモデルの何%まで減ずるか」というモードですが、他にも、目的のメッシュ数を指定する方法("Absolute")などもあります。Sketchfanにアップできる最大容量は200MBと決まっているので、その容量に応じたメッシュ数を覚えておけば、メッシュ数決め打ちでも良いのかもしれません、と以前から思っています

Simplify Toolの設定

4.ゴミ取り
そうそう、Simplify Toolを使う前にゴミ取りをします。木の枝や電線や草などの細いものは完全にはメッシュモデルにならず"なんか空中に浮いてるグニャグニャしたもの"になりがちです。こういうゴミは見苦しいので”SCENE 3D”メニューの"TOOL"タブ→"Mesh Model"で"Lasso"や"Rect"選択によりゴミを範囲指定して同じ"Mesh Model"の”Filter Selection”で削除しています。

ゴミ取りツール

ゴミをとってモデルを小さくしたら最後はSketchfabへのアップと設定ですが、それはまた次回。