【フォトグラメトリ】建築デジタルアーカイブ 第2回「PC環境編/3DF Zephyr編」

銭洗弁天VRを制作しました 龍 lilea (藤原 龍)です。

前回記事では「撮影編」について書かせていただきました。
今回はフォトグラメトリ処理についてまとめた「PC環境編 / 3DF Zephyr編」になります。

※ここで使用している3DF ZephyrはLite版(処理枚数上限500枚)ですが一部の検証にはAerial版(処理枚数制限なし)の体験版も利用しています

※VRは↓こちらから体験いただけます

連載各回のテーマ

PC環境編

PC環境編では「広域」フォトグラメトリを行う上での推奨スペックとおすすめツールについてまとめました。

PCスペック

CPU/GPU:
フォトグラメトリは写真を処理することからGPU性能が重要ですがCPUの役割が特に大きく、演算能力が高い程効率的に処理できます。GPUの性能が高くともCPU性能が低いとGPUの性能を発揮出来ない(ボトルネックが起きる)ため注意が必要です。またGPUがCUDA未対応なものですと3DF Zephyrの処理速度は大きく低下してしまいます。

メモリ:
膨大な数の写真を扱うためメモリは多い程安定した処理が行なえます。広域フォトグラメトリの場合は32GBでも不足することがあるので64GBあると安心です。また大幅なメモリ不足はクラッシュの原因にもなるので気をつけましょう。特に3DF Zephyrの複数起動はクラッシュの危険性が高まります。一見複数起動で問題無いように処理が進んでいても、完了のタイミングでクラッシュします。

ドライブ:
ドライブはSSDの使用をおすすめします。広域フォトグラメトリでは、対象エリアの広さにもよりますが3DF Zephyrのプロジェクトファイルが20GB近くなる事もある為、読み書きの早いSSDの方がストレスなく作業出来ます。処理時にはデータの書き込みが頻繁に行われるので3DF Zephyrのキャッシュ保存先もSSDのドライブ内に指定しておくのが好ましいです。またドライブが圧迫されるとフォトグラメトリ処理にも影響が出てくるので十分な空きがある状態で作業しましょう。
ZeniaraiBentenVR_02_FileSize
※今回使用したプロジェクトファイルの一部
ZeniaraiBentenVR_02_Cache
※キャッシュの保存場所はここから設定できます

おすすめツール

  • PC遠隔操作ツール
  • Adobe Bridge
  • Windows10標準タグ機能

PC遠隔操作ツール

フォトグラメトリはその処理のほとんどを「放置」して行います。
銭洗弁天VRの場合ですと初めの写真位置算出(Align)の工程で約60時間かかっているのですが(Core i7-7700HQ GTX1070)、この時処理が終わっているにもかかわらず外出中ですと帰宅まで次の処理へ移れません。大きな時間のロスとなってしまうので、PCの遠隔操作がおすすめです。

遠隔操作ソフトはいくつかありますが、多くのソフトはポートの開放が必要になります。ポート開放が出来ない環境の場合利用出来ないのですが、Chromeリモートデスクトップはポート開放が不要です。インストールもChromeの拡張機能を入れるのみという手軽さで、スマートフォンから操作する事も可能なツールです。
ZeniaraiBentenVR_02_ChromeRemoteDesktop※iPhoneから自宅PCを操作している様子

Adobe Bride

膨大な写真を管理する為Bridgeを活用します。
ZeniaraiBentenVR_02_Bridge

写真全て一括処理の場合は厳密な管理は不要ですが、分割処理する場合は各パート毎に「キーワード」を付けておくと管理しやすいです。

Windows10標準機能タグ

タグ管理はBrideでなくともWindows10標準機能でも行えます。
ZeniaraiBentenVR_02_Windows10Tag

Brideを所有していない場合はこちらを利用するのも良いかと思います。

3DF Zephyr編

ここから3DF Zephyrについてまとめていきます。

なおここで解説するのは主に「広域」フォトグラメトリに関してのTipsです。
3DF Zephyrの基本操作についてはこちらの記事がとてもわかりやすく解説されていますので参考にしてみてください。

動画利用のメリット・デメリット

3DF Zephyrの特徴として動画からフォトグラメトリが可能という点があります。
手軽な半面、いくつかデメリットがあります。

  • 写真に比べて解像度が低いので、テクスチャの品質が下がる
  • 歩きながら撮る事でブレが発生しやすい為、テクスチャの品質が下がる

特に後者による品質低下は大きいので、FPSを高めに設定しブレを極力抑え、カメラを振る際は出来るだけゆっくり動かすようにしましょう。
ZeniaraiBentenVR_02_MovieAndPhoto_Photo
※写真から生成したモデル くっきりとシャープ

ZeniaraiBentenVR_02_MovieAndPhoto_Movie
※動画から生成したしたモデル 映像のブレがそのままテクスチャ化されてしまっている

  動画 写真
手軽さ
テクスチャの品質

しかし動画を使うメリットもあります。
銭洗弁天VRでは9割写真から生成していますが、初めのトンネル内部のみは動画を利用しています。

トンネルという空間は「同じ様な景色が続く」「暗い」というフォトグラメトリに不利な条件となっているため、画像を高密度・大量に用意する必要があります。この時写真で撮影していこうと思うと、数センチ前に進み撮影し、また数センチ前へ進み撮影、その繰り返しとなり膨大な時間が必要になります。しかし動画であればカメラを構えたまま歩くだけで済みます。広角レンズであればカメラを左右や上下に振る必要もありません。

高密度に大量な画像を用意する必要があるシーンでは動画撮影を利用するのも有効な方法です。

余談ですが―
この動画処理の仕組みは「動画を指定FPSで静止画切り出ししその画像を元にフォトグラメトリする」というものです。ですので他の映像編集ソフトで静止画切り出しした場合でも同様の結果が得られます。

一括処理と分割処理の比較

銭洗弁天VRでは以下の2つの方法で生成を試みました。

  • 3600枚全てを「一括処理」
  • 500枚以下に抑えた12パーツに分けての「分割処理」

※3600枚一括処理は検証用にAerial版の体験版を使用したものです
※公開しているVRは所有しているLite版で分割処理して生成したものです

各処理方法では以下のような相違点がありました。

  一括処理 分割処理
1.総合的な処理時間 △長め ◯短め
2.モデルを統合する手間 ◯なし △あり
3.点群生成密度 △低い ◯高い

1.総合的な処理時間

「分割処理にかかる時間 x 分割数 < 一括処理にかかる時間」という結果となりました。
分割して処理した方が一括で処理するより早く全モデルの生成が完了します。

参考までに3600枚「一括処理」の場合は各工程の時間は以下の通りです。
ZeniaraiBentenVR_02_Time_Cameras
写真位置算出…2日12時間
ZeniaraiBentenVR_02_Time_PointCloud
高密度点群生成…1日19時間
ZeniaraiBentenVR_02_Time_Mesh
メッシュ生成…1日17時間

スペックや規模にもよりますが広域フォトグラメトリの場合は処理に1週間は見ておくと良いでしょう。

参考まで―
銭洗弁天VRの制作期間は初めの撮影から公開まででちょうど2ヶ月でした(初の試みであったためトライアンドエラーの時間がその多くを占めていますが)

2.統合する

「分割処理」の場合はDCCツールで統合する手間が発生します。
「一括処理」の方が総合的な時間がかかると前述しましたが、PC任せで済む分手を動かす時間は「一括処理」の方が少なく済みます。

3.点群生成密度

「一括処理」の場合は広範囲を一度に生成するため、高密度点群生成時に密度が低くなってしまいます。その結果「分割処理」に比べてディテールが失われてしまいます。
ZeniaraiBentenVR_02_Density_Separate
※「分割処理」モデル

ZeniaraiBentenVR_02_Density_All
※「一括処理」モデル

一括処理の方は十分な点群が生成されていない為大きくディテールが損なわれています。

点群生成数を上げればモデル精度も高まりますが、プリセットにある[高精細]を使った場合でも不足します。カスタムで更に点群上限数を上げる事が可能ですが、極めて膨大な時間がかかります(今回は体験版の期間内に検証が終わらなかったため断念しました)

結局どちらがいいの?

  • 高密度点群生成時のプリセット[高精細]で十分な点群が生成される規模の場合→「一括処理」
  • 十分な点群が生成されない場合→「分割処理」
    ※そもそも高価なPro版やAerial版を所有していない場合は分割処理一択となりますが

一括生成バージョン銭洗弁天VR

公開した銭洗弁天VRは「分割処理」したものですが、「一括処理」したものもこちらにアップしてあります。実際に比較されたい方は参考にしてみてください。

テクスチャサイズと解像度

VR化を想定している場合Unityの場合は扱えるテクスチャのサイズは8kまでという点に注意しましょう。3DF Zephyrでそれ以上のサイズを生成していても8kサイズに落ちたものになります。

また「一括処理」の場合、そのままですと境内全域で8kテクスチャ1枚という状況になり低品質なぼやけた世界になってしまいます。
これを避けるためには、メッシュ化まで出来た時点でそのメッシュを分割します。こうする事で各メッシュに8kのテクスチャが貼られるので高い解像度を維持できます。多く分割するほど高解像度になります。分割すると言っても座標は合っているので統合の手間はさほどかかりません。 ZeniaraiBentenVR_02_Separate
※メッシュを4分割した後、テクスチャ付メッシュ化した例

ポリゴンリダクション

VR化を想定している場合出来るだけポリゴン数を削減し軽量化する必要があります。
これを行うには3DF Zephyrを使う方法とDCCツールを使う方法とありますが、ハイポリのまま書き出ししDCCツールのみで大幅な削減を行うとUVが破綻してしまう恐れがあります。
3DF Zephyrの段階で先に削減しておくのが好ましいです。
ZeniaraiBentenVR_02_Filter
※メッシュを右クリック>フィルター>間引き

ワークフローの比較:
△ Zephyrからハイポリのままテクスチャ付モデル書き出し→DCCツールで大幅なリダクション(UV破綻)
◯ Zephyrで先にリダクション→テクスチャ生成→テクスチャ付モデル書き出し→DCCツールでほどよくリダクション微調整

なおDCCツールでリダクションを行った場合は、UVの張られたモデルを再度3DF Zephyrに戻しテクスチャを当て直す事も可能です。
ZeniaraiBentenVR_02_ReImport
※メニュー>入力>UVマップ付メッシュを入力

写真に真っ暗な部分がある場合

真っ黒な部分があると写真位置算出のフェーズで処理に時間がかかる/処理できない、場合がありますが、レタッチし明るくする事で正常に処理させる事が可能です。
ZeniaraiBentenVR_02_Tunnel_Before ZeniaraiBentenVR_02_Tunnel_After
※レタッチ前とレタッチ後の画像

レタッチ時にはあまり明るくしすぎると不自然になるので、特徴が認識出来る程度のところまでで抑えておくと良さそうです。上記の例では天井の凹凸感や配線が見えるようにしました。

撮影環境が変わってしまった場合

撮影中に天気が変わってしまう事がありますが、この場合でも処理は可能です。
ZeniraiBentenVR_02_Environment_Cloud ZeniraiBentenVR_02_Environment_Fine
※曇天時の写真と晴天時の写真

環境が異なる上の写真から生成したものが、下の画像です。

ZeniaraiBentenVR_02_Enviroment_Model
※生成したモデル

違和感はあるものの生成は出来ています。
生成さえ出来てしまえばDCCツールでの編集やテクスチャの調整で修正は可能ですので、環境が変わってしまった場合でも中止せず写真は撮っておくのが良いでしょう。
※その後もし環境が戻った際には撮り直しておきましょう

あまりに環境が違う場合は写真位置算出に失敗する事があるので、その場合はプリセットの値を高めることで対応可能です。
ZeniaraiBentenVR_02_CameraPosition_Deep
※プリセット[深い]を使用

写真位置算出がプリセット[深い]でも失敗する場合

初めの写真位置算出の工程が[深い]でも失敗する場合は、設定を[アドバンスド]に変え以下のようにセットする事で精度が向上します。
ZeniaraiBentenVR_02_Setting_Advanced

[深い]に比べ倍以上の時間がかかるので余裕のある時にだけ使うのが良いかと思います。PCへの負荷も高くなるので処理中は他の作業は行わないようにしましょう。

一時停止の活用

何十時間もPCを処理させていたら他の作業が出来ない、と思われるかもしれませんが3DF Zephyrは処理の一時停止が可能です。高負荷がかかったまま作業をするのは危険ですので一時停止を活用しましょう。
ZeniaraiBentenVR_02_Pause

モデル書き出し

最後にfbx/obj形式等お好みの形式で書き出し、DCCツール上で形状を確認しておきます。
この時DCCツール上で面の裏を非表示とする設定にしておくとUnity等ゲームエンジンで見た時と同じ状況で確認が出来ます。

次回のテーマ

最後までお読みいただきありがとうございます。
不明点等ありましたらお気軽にTwitteにてリプ、DMください。

次回は書き出したモデルの最適化や統合のテクニックについてまとめた「後処理編」をお届けします。

※余談ですが現在公開中のものは完成形ではなく、アップデートを進めております。モデルの精度向上とVRならではのコンテンツ追加を進めていますので、公開時にはまたご体験いただけますと嬉しいです。

STYLY Photogrammetry Awards 開催中!

審査員をさせていただく事になりました「STYLY Photogrammerty Award」現在開催中です!

フォトグラメトリで豪華賞品をゲットなチャンスっ

  • Oculus Quest
  • Looking Glass
  • chlomaパーカー
    ぜひお気軽にご応募ください。たくさんのご応募ありがとうございました!

Written by 藤原龍 (龍 lilea)