19K Views
June 26, 24
スライド概要
以前公開した「京都VR」の3D Gaussian Splattingバージョンをつくってみた。
大規模、広域な3D Gaussian Splattingのコンテンツを作るうえでぶつかった課題と対策について簡単にご紹介。
(持ち時間5分のライトニングトーク用の資料のため内容は簡易的なものにはなっています)
広域3D Gaussian Splatting版 京都VRつくってみた 龍 lilea / ホロラボ
自己紹介 主要作品 藤原 龍 Ryo Fujiwara - 龍 lilea X@lileaLab 超略歴・前職 鹿島建設Grアルモ設計 … 建築ビジュアライゼーション / シミュレーションあれこれ ・現職 ホロラボ … 先進技術グループ SIARチーム (空間情報技術部) 趣味、仕事で実空間をフォトグラメトリやレーザースキャンで3Dデジタルアーカイブしてる人 東京メトロ 電車/駅/橋梁 VRAA Meetup会場 エンジンルームVR 旧都城市民会館 熱海土石流 可視化 FLOWER4U 中銀カプセルタワービル 博物館動物園駅 子宝湯 2
広域3D Gaussian Splattingつくってみた 京都 清水寺の参道 (産寧坂~二年坂~八坂通) 約600mの道程 360度動画から生成 Insta360 ONE RS 1-inch RTC360も併用 ただし簡単にはいかなかった… 課題① 広域シーンが処理できない 課題② 細部の再現精度が低い 課題③ 描画負荷が高い 3
広域3DGS 課題① 広域シーン処理問題 3D Gaussian Splattingの処理が手軽に処理できるアプリはいくつか出てきている。 ・「Luma ai」 スマホApp ・「Snaniverse」 スマホApp ・「Postshot」 デスクトップApp etc. ただしこれらは大規模、広域なシーンを処理するのにはまだ向いていない。 広く複雑な空間はこれらのアプリ単独では写真位置推定がうまくいかない。 ここで長年培ってきた フォトグラメトリのノウハウが活きる! 4
広域3DGS 課題① 広域シーン処理問題 写真位置推定 規定ワークフロー 空間構築 COLMAP 3D Gaussian Splatting処理 コンテンツ制作 Unity UnrealEngine etc. Open Source Software 大規模シーンや複雑なシーンの写真位置推定は不得手 応用ワークフロー RealityCapture 1. Bundler形式 .outファイルへ書き出し 2. outファイルをCOLMAP形式へ変換 Metashape フォトグラメトリソフト 大規模、複雑なシーンの処理も可能! 5
広域3DGS 課題① 広域シーン処理問題 各種変換パターンについてはブログにまとめました。 https://lilea.net/lab/convert-to-colmap/ PostshotはRealityCaptureでの生成結果や、フォトグラメトリ汎用データBunderファイルを読み込める! こちらもブログにまとめました。 https://lilea.net/lab/how-to-use-postshot/ 6
広域3DGS 課題① 広域シーン処理問題 ただしフォトグラメトリソフトを使ったとしても広域なシーンの処理は容易ではないので注意。 今回の京都の例ではレーザースキャナ「RTC360」を併用する事で位置精度を高くアライメントできた。 360度カメラでの撮影方法については↓こちらの資料を参照ください。 『3Dスキャン勉強会』 https://www.docswell.com/s/lileaLab/KW132X-231004 7
広域3DGS 課題② 細部の再現精度が低い 360度動画から切り出した約20,000枚の画像をPostshotで処理したもの。 ぼやぼやな結果。 色々とパラメーターを調整してトライするものの改善せず。 8
広域3DGS 課題② 細部の再現精度が低い エリアを小分けしてから3DGS処理してみた。 同じデータセットでも処理範囲を狭めることで細部の再現精度が増す。 レーザースキャン併用により絶対座標が定まったデータのため各データを合体する際にも座標は一致する。 9
広域3DGS 課題② 細部の再現精度が低い おまけ。 細かい文字まで読ませたい場合は別撮りしておいた写真素材を板ポリに貼って表現。 小さな文字までは読めない Splatを削除 代わりに写真素材を配置 全部3DGSでがんばる必要はない。 3DGS、フォトグラメトリ、写真素材等いいとこ取りのハイブリッドで表現。 10
広域3DGS 課題③ 描画負荷が高い 全域で2000万Splatもある巨大なデータになってしまった。 しかもそれらのSplatは全て半透明なのでとんでもなく負荷がかかる。 エリアを小分け処理したもう一つの目的はこの描画負荷対策のためでもあり。簡易的なLODを組んだ。 ここにいる時はこの範囲は通常品質Splat 遠景になるこの範囲は低密度Splat 見えないこの範囲のSplatは非表示 これらを動的に切り替える 11
広域3D Gaussian Splattingつくってみた 広域3D Gaussian Splattingやるならまず広域フォトグラメトリを極めよう! 1. 機材とソフトウェア 2. 写真の整理と現像 3. フォトグラメトリ処理 写真編 4. フォトグラメトリ処理 レーザースキャン編 5. 写真とレーザースキャンの合体 6. モデル修正 7. テクスチャの再生成 8. テクスチャの調整 https://lilea.net/lab/how-to-photogrammetry/ 9. Unityへ読み込み 広域3DGS版京都VRアプリ持ってきてます! この後の歓談の時間などに触ってみてもらえると嬉しい~ 12