3D Gaussian Splatting

はじめに

 いやー,驚いた。ChatGPT ver. 4の契約をするかどうか,ネットサーフィンしていたら,このgaussian splattingテクノロジー情報をみつけた。ぼくのiPhoneのScaniverse 3D map scan アプリにもすでにgaussian splattingが実装されている。このgaussian splattingの技術が実用化したのは昨年(2023年)夏とま新しい。原理を理解するのは今のぼくには難しい。これまでのフォトグラメトリなら簡単な幾何学に過ぎないが別世界の技術だ。解析速度もより速く,解像度もより高い。LiDAR測量に拘ってきたが,通常の写真や動画の方がより有効な気配だ。

メモ: SfM (Structure from Motion)またはフォトグラメトリ(Photogrammetry)とは、被写体をさまざまなアングルから撮影し、そのデジタル画像を解析、統合して立体的な3DCGモデルを作成する手法。

 ぼくが最も信頼する3D scan soft, Scaniverseにまずは眼が向いたが,最強だが有料のpolycamが劇的に使い易くなったようだ。他にLuma AIもある。全部,iPhone11以降に対応している。以下,ぼくの知りたい情報をピックアップしつつ,学びたいと思う。そして,実際に試した結果もここに報告したい。

以上,2024/04/12。

1. Niantic Lab

Niantic (ナイアンティック)って知らなかった。Google社内のスタートアップ企業で,Googleから独立したらしい。そして,3D ScanningソフトScaniverseを吸収したようだ。かつては有料だったが無料化されて,先進的なGaussian Splatting機能が付加されてもなお,無料のままだ。ぼくのiPhone 12 Proのアプリは,Apr. 1, 2024にもアップデートされていたNianticはGoogle EarthもGoogle mapも開発したGoogle内のティームだったようだ。

2. Scaniverse

Scaniverseが3D Gaussian Splattingをサポート 〜 スマホからフォトリアルな3Dシーンを迅速に作成 〜 2024.3.20 を参照して欲しい。LiDARではなく,ムーヴィーか,シーンを重ねて撮影した写真で,Gaussian Splattingが可能だ。次のアドバイスがある。

メッシュ生成とスプラット生成をどのように使い分けるべきですか?

スプラットが適している場合:
照明と反射を備えたフォトリアリスティックな結果を求める場合
背景を含む全体のシーンをキャプチャしたい場合

メッシュが適している場合:
スキャン結果を他の3Dソフトウェアやゲームエンジンで使用したい場合
背景のない独立した3Dモデルを求める場合
正確な測定が必要な場合
明確に定義された被写体がないシーンをモデル化したい場合(例えば、建物内のすべての部屋を含むスキャンなど)

 写真の3D合成は,他のアプリでは,有料で,企業のサーバーにアクセスする必要があるが,このScaniverseでは,iPhone内で実行することができる。しかも無料だ。まだ,完成形ではないと,アプリ開発者が考えて,ユーザーの意見などを吸収して行こうとしている。

Scaniverseでスプラットをサポートしている端末を教えてください。

Gaussian Splattingは現在iOSでのみ利用可能です(iPhone 11以降、比較的新しいiPad[*])。Android版の開発中ですので、お待ちください!

[*] iPad: 第9世代および第10世代、iPad Pro 11インチ: 第3世代および第4世代、iPad Pro 13インチ: 第5世代および第6世代、iPad Mini: 第6世代、iPad Air: 第4世代および第5世代。

3. Scaniverse with Gaussian Splattingの使い方

3.1 Gaussian Splatting

Scaniverseが3D Gaussian Splattingをサポート 〜 スマホからフォトリアルな3Dシーンを迅速に作成 〜 2024.3.20 の説明を引き続き,次にコピペ。

3D Gaussian Splattingとは何ですか?

Gaussian Splatting(ガウス・スプラッティング)は、3D空間の再構成における革命的なラスタライゼーション技術であり、既存のNeRF(Neural Radiance Fields)およびフォトグラメトリ技術の課題を組み合わせて克服します。一連の画像を使用して、Structure from Motion (SfM) が点群を推定するために使用されます。各点はガウスに変換され、位置、方向、スケール、色、透明度などの一連のパラメーターを含みます。簡単に言えば、スプラットは3Dシーンの照明条件や材料の特性をまったく新しい方法で再現することができ、これにより、光沢のあるまたは反射する表面をより良くレンダリングすることが可能になります。

この技術は、計算コストを低減し、リアルタイムレンダリングとフォトリアルな品質の可視化を可能にします。そして、Scaniverseでは初めて、サーバー処理なしでデバイス上で直接利用できるようになりました。これは、あなたのスキャンが以前よりもさらに鮮明で生命感あふれるものになることを意味し、インターネット接続なしで全てをあなたのスマートフォンから行うことができます。

Scaniverseで高品質のスプラットを作成するには?

Scaniverseアプリをダウンロードし、赤い「New Scan」ボタンをクリックして「Splat」を選択するだけです。その後、画面上の指示に従って、あらゆる角度からデバイスの360度ビデオを撮影してください。良好で均一な照明条件の下、均等な動き、最小限の背景ノイズ、できるだけ多くの角度から作成されたスプラットが最も良い結果を生むと考えています。

新しいScaniverseでは様々な対象物に対してスプラットを作ることができます。ただし、現在、日常的なオブジェクトには適していますが、より大きなエリアのスキャンについてはアプリのパフォーマンスを改善中であることをご了承ください。

ビデオキャプチャが完了すると、キャプチャしたデータを点群として表示します。ビデオに追加するためにスキャンを再開するか、または「Process」を押して少し待つと結果が表示されます!

最新のアップデートでは、さらに「Enhance」を押すことで、高品質な結果を得るために追加の1分間隔でモデルをトレーニングすることもできるようになりました。

生成したスプラットで何ができますか?

デバイス上で直接スプラットを閲覧し、個人のライブラリに保存したり、他のScaniverseユーザーと共有したり、友人や家族と共有するためのビデオリールを作成することができます!また、PLY形式でモデルをエクスポートすることも可能です。

Gaussian Splattingの3Dソフトウェアサポートはまだ限られていますが、Unityには無料のアドオンが、Unrealでは商用プラグインが利用可能です。

メッシュ作成には提供されているトリミング機能は、スプラット向けにも近く提供される予定です。

過去にスキャンした結果からスプラットを生成できますか?

はい、Rawデータが保存されていれば可能です。そのためには、対象のスキャンを開き、右上隅にある「…」アイコンを押してください。「Reprocess Scan」を選択し、その後で「Splat」を選択します。

私がスキャンしたデータはクラウドに送られますか?

いいえ、すべてのデータはデバイス上でローカルに処理されます。スプラットを共有することを選択しない限り、データはデバイスを離れることはありません。

Gaussian Splattingには協力なGPUが必要だと思っていましたが、スマートフォンだけで実現できるのですか?

可能です。現代のスマートフォンは、ポケットサイズのスーパーコンピュータです。いくつかの注意深い最適化を行うことで、簡単にスプラットのトレーニングを処理することができます。

以上,1:42,Apr. 10, 2024記。

3.2 Gaussian Splattingのために

 今後記述予定。

4. Polycamがより魅力的に

 新たなPolycam情報を見るまでは,Polycamには無料版が無いがリーズナブルの価格で,LiDAR測量については,Scaniverseよりも,より広域であっても測量誤差が抑えられる,という認識であった。ところが,現在では無料版が提供されており,ここで関心の高いGaussian Splatting機能が追加されている,ということである。

 今後,特にこのGaussian Splatting機能に関して,ScaniverseとPolycamを実際に使って試したいと思っている。

4.1 アプリPolycamとは

 iPhone用アプリは,アップルストアで。Polycam 3D Scanner, LiDAR, 360 4+ Easy 3D modeling & floor plans
Polycam Inc. #73 in Photo & Video 4.7 • 31.3K Ratings Free Offers In-App Purchases,とある。

 これをダウンロードして開くと,まずは試してみる機会があって,LiDARではなく,写真を選んで,ぼくの愛(あい)椅子を撮影してみた。自動的に連続シャッターが始まって,計126枚が撮影され,Gaussian splatを選択して,アップロードした。かなり時間がかかる(1時間ほどか)。これを実行すると有料になってしまうのではとちょっと不安だった。

 図1,2のように,無料版では3D objectは取り込めない。この場合,ファイルサイズは31.6MBとなる。

図1 Polycamのサーバー内で3D表示された愛椅子
図2 取り込むにはPro契約が必要

 図1の背もたれのトップは薄い茶色のガスがかかっているように見える。夜間の二カ所からの天井灯による照明なので,このような現象が生じているからかも知れない。ここでは点群PLYで出力したかったのであるが,図1のような再現性は望めないであろう。いますぐProにアップグレードする気になれない。

 図3,図4は,サーバー内の3D オブジェクトを観察したものである。図3の脚部では写真撮影が失敗した結果であろう,オブジェクト情報が粗い。図4の脚部は明瞭で問題が無いが,背面上部には図1で述べた薄い茶色のガス状のものが見える。狭い空間で撮影していることや照明の真下で撮影しているために,撮影者から乱反射があった可能性がある。図4の脚部は明瞭な像を結んでおり,図3でと同様,iPhoneを逆さに撮影したのであるが,前面がテーブルとの間と異なり,比較的窮屈でない場での撮影が功を奏したものであろう。この撮影は,椅子の回りを二回ほど廻ってのものであった。

図3 椅子の前面
図4 椅子の背面

 試行錯誤しつつ,撮影を繰り返すことで,よりよい3Dオブジェクトが得られるであろうが,この程度のターゲットでも解析に1時間かかるところがなかなか,厳しい。

図5 価格区分


 図5では,ぼくに関係するのは,FreeとProだ。Proの場合は,Polycam for Educationが適用される可能性があるが,まだ調べていない。

1 LiDAR利用ではFreeとProに違いがない。Freeの,Unlimited LiDAR,は,このPolycamでは極めて重要だ。というのいは,これまで使用してきた3D scannerアプリでは使用時間の制限がある。Scaniverseも10分間以降だったか,旧に解像度が落ちるが,PolycamではFreeが無い時代だが,解像度が落ちなかった。Freeの時代になっても,これは変わらないだろう。

2 FreeとProの違いは,静止画や動画に現れている。Freeでは静止画150枚限定だ。Proでは,写真測量で静止画2000枚まで,gaussian splattingで1000枚まで。他のアプリでは有料版でシャッター撮影は自分で実行してゆくタイプで,静止画200枚までだった。静止画2000枚は驚くべきである。ただ,自動でどんどん撮影される?ので,2000枚と言っても,droneなどとは違って,歩いての場合,撮影範囲は広くはないだろう。

3 Proでの,3Dモデルの出力ファイル形式は,obj, fbx, stl, pdfなどの12+種類がある。アプリの説明には,メッシュとしては,OBJ, GLTF, DAE, FBX, USDZ, STL,点群ファイル形式としては,DXF, PLY, XYZ, LAS, PTSが列挙されている。ぼくがよく使うのは,点群ファイルとしてPLY, メッシュファイルとしてOBJ, FBXである。
 フリーヴァージョンで用意されている出力形式は,GLTFファイル形式だけだ。スキャン時にはProである必要性が無いことが多いだろうが,iPhoneに保存された3Dオブジェクトの出力の際には,Pro契約が必要になる。

4 Proの価格は,$18/月,$100/年,だから,月3000円か,年15000円。ぼくは使用頻度は極めて低いので,使い始める時に月単位で契約すれば良い,と思う。

4.2 使用実例に学ぶ

4.2.a 洞窟測量の実例コンテンツ

 洞窟測量におけるPolycam(3Dスキャンアプリ)操作マニュアル 関連の書誌は次のよう。
小竹祥太,林田敦,柏木健司,2023. iPhone Pro によるLiDAR 測量を活用した洞窟調査: 七久保の道穴(群馬県下仁田町青倉川上流)を例として.群馬県立自然史博物館研究報告, No. 27, pp. 171-179.
Kotake, S., Hayashida, A. and Kashiwagi, K., 2023. Cave survey using LiDAR measurements with the iPhone Pro: an example of Nanakubo-no-michiana Cave(limestone cave)in the upper reach of Aokura River, Gunma Prefecture of central Japan. Bull. Gunma Mus. Nat.Hist., No. 27, pp. 171-179.

<本論文の付ファイル01,02,03は群馬県立自然史博物館Webpageの下記アドレスで公開>
付ファイル01 洞窟測量におけるPolycam(3D スキャンアプリ)操作マニュアル
http://www.gmnh.pref.gunma.jp/wp-content/uploads/bulletin27_17_01.pdf
付ファイル02 Blender 3.0.1 で使うアドオンCave Mapper マニュアル;導入編
http://www.gmnh.pref.gunma.jp/wp-content/uploads/bulletin27_17_02.pdf
付ファイル03 七久保の道穴の3Dウォークスルー動画
http://www.gmnh.pref.gunma.jp/wp-content/uploads/bulletin27_17_03.mp4
 以上の3urlは,暗号化されていないので,Google関連ソフトなどではアクセスできない。Firefoxでは問題無くアクセスできる。

付ファイル02 Blender 3.0.1 で使うアドオンCave Mapper マニュアル;導入編,に関連しては,https://github.com/CaveMapper/CaveMapper/wiki/02_CaveMapper_Manual
に公開されている。これを見ると,
Blenderでの,モデルの位置合わせ,位置合わせしたモデルの一体化,データの軽量化,断面の作成,からなる。ぼくはCloudCompareでこの種の実行はしてきたので不要ではある。

 なお,ネット上で,修正前の群馬県自然史博物館のコンテンツのurlをただコピペした場合,次の画面が出てきて,ブラウザーを閉じることができなくなった。macのパワーキーを二回押し込んで,何とか離脱。大きな声と動画でかなりビビった。初めて経験した。アップルからのリアクションとは思えない下品な雰囲気が漂っていた。群馬県立自然史博物館のWebサイトはやられているようだ。

4.2.b これから参考になる点は

1 iPhone Pro によるLiDAR 測量を活用した洞窟調査: 七久保の道穴(群馬県下仁田町青倉川上流)を例として——————
 これを見ると,iPhone ProのLiDAR測量は便利やなあ,という感想,ということで,ぼくの体験や感想も同じだ。
p. 172右段の方法,では,「iPhoneに搭載されたLiDARは,搭載カメラが撮像可能な明るさ環境で,スキャン対象の色情報の取得が可能である.洞窟記載の基礎データとなる洞内測図を作成するため,洞内ではiPhoneにヘッドライトを固定してLiDAR測量を実施した」とあった。「色情報の取得」というか,明るくないとLiDAR測量はできない。
p. 174左段では,「LiDAR測量に要した時間は事前の下見を含み約15分であった.七久保の道穴周辺の地形断面の概略を把握するため,沢床から町道,洞口,および洞口上方の尾根まで,LiDAR測量を分割して実施した.全体を先ずは見渡し小崩壊地形を避けてルートを設定し,沢床から斜面を傾斜方向に登りながら測量した」,とあって,洞穴外の地形もLiDAR測量されている。ぼくもこの種の作業を実施したが,iPhoneのLiDAR測量能力は凄い。
p. 177の議論では,「iPhoneを利用したLiDAR測量は,iPhoneそのものが小型かつ片手で操作が可能であり,狭い空間を含む洞窟での測量において高い利便性を有する.一方,LiDAR測量に伴うiPhoneのバッテリーの消耗は大きく,複数の洞窟を対象とした筆者らのこれまでの試行では,3-4時間程度でバッテリーが低レベルの状態となった.考えうる現時点でのバッテリー対策としては,予備のモバイルバッテリーの準備,ないし車が近くにある場合はシガーソケットからの充電などが考えられる.また,複数名でLiDAR測量を行う場合,スキャンする空間を計画的に割り当てることで,一定規模の洞窟空間をカバーするLiDAR測量が可能である.計測範囲の5 mを越える平面的に広い空間については,洞床と洞壁を含みくまなく歩いてスキャンすることで,データ取得は可能である.一方,天井の高い空間については,自撮り棒や伸縮性ポールの先端にiPhoneを取り付け,長さと方向を調整しながらLiDAR測量を行うなどが想定できる」とある。まあバッテリーは安いので複数持参すれば問題はない。

 補助的な測量や公共基準点からの位置づけなどがされているのではと思ったが,無かった。

2 付ファイル01 洞窟測量におけるPolycam(3D スキャンアプリ)操作マニュアル——————
 この報告にはページ番号が振られていない。
 4枚目の,4.Polycam の応用的な使用方法,で,次の記述は参考になった。
「4.1 スキャンの一時停止および再開
Polycam のスキャンには一時停止機能がある.スキャン中を示す赤色の録画ボタンの右横の一時停止ボタン(図1 の④)をタップする.すると,画面下に「capture paused」が表示される.再開には「○に▷記号の入るアイコン」をタップし,終了時には赤い録画ボタンをタップする.一時停止機能は,狭洞など円滑な動きが難しい空間での測量に効果的で,一時停止後にスキャンし易い体制に体を入れ替え,スキャンを再開する.
Polycam には,スキャン終了後にスキャンを再開できる機能がある.再開する場所ないし対象物付近で過去のスキャンデータを開き,画面下部の「追加」アイコンをタップする.「追加」アイコンが見当たらない場合は,画面下を左右にタップしてアイコンを移動させる.過去にスキャンした3D データとスキャン中の3D 形状に,相互にオーバーラップする形状が認識されると,「relocalization successful! You can now proceed to scanning new areas」と表示され,白い録画ボタンを押すとスキャンが再開される(図1 の⑩).洞窟の分岐に加え,スキャンし忘れた箇所の補完に対応できる.なお,「追加」機能はデータサイズの増加につながり,ファイルサイズが大きくなることでアプリのエラーや強制終了が生じることがある.また,過去の3D データにオーバーラップする範囲が認識されない場合,「rescan the place you originally scanned to extend, targeting visually rich areas」として「iPhone を動かして開始」という表示が画面上に示される(図1 の⑪).我々の数度の経験では,同じ場所のスキャン再開は問題なくできたので,iPhone を様々な方向に動かしてもこの表示が消えない(再開に移行しない)場合は,スキャン対象である場所ないし対象物を間違っているか,同じ場所であっても改変が生じた可能性を考慮する必要がある.
4.2 スキャンの分割
一度にスキャンする空間の大きさやそれに伴うデータ量に依っては,取得データのサイズが大きくなり過ぎることでPolycam の処理にエラーが発生し,またはPolycam が強制終了することがある.どの程度の広さや長さを目安に,スキャンする空間を分割するのが適切ないし最適であるかは,調査目的に係
るスキャンの精度に紐付けされる取得データ量に左右され,数字で示すことは難しい.なお,一定以上の空間を対象に分割してスキャンする際,後の3D モデル結合処理の際の利便性を考慮して,目安として2-3 m 程度の重複を必ず確保しておく必要がある.また,特徴的な形状が含まれる空間で重複を取ることが望ましい.メモ:この赤字化した部分だが,ぼくの場合,紙で作ったマーカー(四分割対角黒白塗)を貼っている。
4.3 データの再処理
Polycam では,処理済みの3D データを繰り返し処理できる機能が備わっている.処理済みの画面下に並ぶアイコンのうち,左端の「処理」をタップ(図1 の⑦)すると,処理画面に移動する(図1 の⑤).ここで右下の「カスタム」をタップすると,深度範囲,ボクセルサイズ,簡略化,自動クロップ,LOOP CLOSURE について,処理条件を調整できる(図1 の⑫).処理条件を調整後に「処理」をタップすると,画面中央のダイアログボックス内に「Reprocess capture? This will overwrite the existing capture and erase your edits.」と表示される.以前に処理した3D 画像データは上書きされるので注意が必要である.処理を続ける際は「はい」をタップする.すると,新しい条件での処理が開始される

 赤字化した内容のうち,特に,「Polycam のスキャンには一時停止機能がある.スキャン中を示す赤色の録画ボタンの右横の一時停止ボタン(図1 の④)をタップする.すると,画面下に「capture paused」が表示される.再開には「○に▷記号の入るアイコン」をタップし,終了時には赤い録画ボタンをタップする.一時停止機能は,狭洞など円滑な動きが難しい空間での測量に効果的で,一時停止後にスキャンし易い体制に体を入れ替え,スキャンを再開する」,は気が付かなかった。

4.3 Scaniverseとの比較

 すでに両方を使った当方の感想をぼくは3年ほど前にまとめているが現在,大きく変わった。他のサイトでもScaniverseとPolycamの比較があるが,やはり古い。現在のところ,現在の両アプリを比較したサイトは存在しないようだ?この節については,今後,使用した結果を示したいと思う。

 

5. Luma AI

 Luma AIは,iPhone用のフリー3Dスキャナーである。NERFで3Dモデルを作る「Luma AI」無料での使い方や商用利用の可否を紹介! には,使用法が簡潔に書かれているが,小さなオブジェクトに限定されている印象だ。「Luma AIはNeRF(Neural Radiance Fields)という技術を使って3Dモデルを作成しています。NeRFとは簡単にいうと、複数枚の写真を用いて機械学習から三次元の状態に復元する技術のことです。Luma AIはNeRFを用いたスマートフォンからの3Dキャプションアプリの筆頭といえます。」,とあり,写真測量法やGaussian Splattingとも異なる。

 他のサイトも見たが,ぼくにとっては魅力を感じなかった。

以上,2024/04/21。