見出し画像

Metashapeアライメントを活用した3D Gaussian Splatting生成及び撮影手法の検討と手順

はじめに


こんにちは、3Dスキャン技術者のふにゅんです。
Gaussian-Splattingは、簡単に表すとカメラのキャリブレーションで得られた点を基にガウス分布を行い、頂点に対象物のサイズや向き、球面調和関数を持たせて3D形状をつくる技術。​

つまり、オブジェクトと表面をガウス分布の集合として表現することで,ジオメトリと外観特性の効率的かつ正確な表現を可能としているわけです。​
3Dスキャンで従来広く浸透しているPhotogrammetryでは、技術的に、再現が難しい透過や、光沢面などの再現がこのGaussian-Splattingだと可能となると期待されています。​

特に、文化財などのデジタルアーカイブでは、これまで漆や金箔など、反射防止スプレー等は厳禁なこともあり、データ化が困難で条件によっては撮影不可になることも多かったのですが、本技術を用いることで、WEBでの3Dビューイングができる可能性があるため、 PhotogrammetryとGaussian-Splattingを実際に撮影した画像データを利用して再現性の比較検証をしていきます。

作成ツール



Photogrammetry・・・Metashape 


Gaussian-Splatting・・・postshot

Gaussian-Splatting編集・・SuperSplat

対象物・・・・全体に光沢感の強い金箔と銀箔があしらわれ、底面は漆塗り重箱


フォトグラメトリ撮影

今回はジオメトリ作成にあたり底面を裏返し撮影しました。​
合計144枚の撮影を行っています。​

Photogrammetryで光沢のある物体を3Dデータ生成する場合、物体表面の反射が原因でテクスチャにむらが出てしまうことがあります。そのため、最終のアウトプットの仕様に合わせて撮影におけるライティング方法を考える必要があります。​

例えば、CGソフトでの後処理においてライティングやマテリアル設定を調整する場合は、反射を極力除去する目的で偏光フィルターを使用して撮影し、反射を減らすことが有効です。​

今回はライティングの反射感をそのまま生かしつつ、テクスチャのみで極力イメージを再現できるよう撮影しました。​

アライメント画像

フォトグラメトリの結果は上記のsketchfabにアップしています。
やはり黑の底面は特徴点が取れずデータが生成できていない状態が確認できます。

裏面は特徴点が取れず抜けてしまう。

3D Gaussian Splatting


今回Metashapeで作成したアライメントをcolmapに書き換えpostshotにエクスポートします。
colmapでのアライメントは、風景空間では問題ないのですが、物の撮影ではオーバーラップと特徴点が取りにくくアライメントが難しい場合があります。
このような場合は、 Metashape​のアライメントをそのまま使うことで解決します。

フォーラムにて有志の方がスクリプトを公開されていたいので
そちらを使用しました。
計算時間も短くて非常にお勧めです

https://www.agisoft.com/forum/index.php?topic=15861.msg68879#msg68879

※scriptingはProfessional Edition版が必要になります。


postshotの設定ははデフォルトで計算。
データ編集はSuperSplat を使用
Gaussian Splattingのノイズ処理はSuperSplat にて選択削除し調整していますが、
可能なら事前に写真にマスクし調整しておくほうがよさそうです。

SuperSplatではこのように頂点選択削除などの編集が可能。

結果

Gaussian-SplattingとPhotogrammetryの比較検証

このように、Photogrammetryで抜けてしまった底面はGaussian-Splattingだと、底面ふくめ再現されている状態が確認できます。

左:Photogrammetry          右:Gaussian-Splatting

しかし、課題としてGaussian-Splattingは撮影したカメラの方向のビューはそれっぽく構成されますが、撮影画像カットが不足している部分については再現されないので注意が必要です。​

今回の重箱の真下からの撮影カットはないため、再現性が怪しくなっています。

真下から見るとすこしボケた感じに見えている。

底面を撮影するときに裏返して撮った部分の映り込みが再現されてしまい違和感のある部分が出ています。Photogrammetryでは、このくらいの映り込みはそこまで違和感のある仕上がりにならないのですが、Gaussian‐Splattingではほんのり反映されてしまいました。​

右替えしたときの写真:映り込みがある
Gaussian Splattingデータ:ほんのり映り込みがみえる
フォトグラメトリデータ:そこまで映り込みは出ない。

そのため、「映り込みを正しく再現したいのであれば、裏返して撮らないほうがベター」であり、「全体の形状を再現したいのであれば、裏返す必要がある」、つまり、Gaussian-SplattingではPhotogrammetry以上に最終クオリティをどこに合わせるか?というディレクションが重要と思われます。

まとめ

Gaussian-Splattingは、オブジェクトと表面をガウス分布の集合として表現することで,ジオメトリと外観特性の効率的かつ正確な表現を可能としているという特徴と強みがあり、これまでPhotogrammetryでは難しかった光沢質感を再現することには、長けた技術といえる。​

ただし、Photogrammetryでは光沢面の映り込みについてはテクスチャが周囲と平均的にならされた表現になるのに対し、映り込みをそのまま再現するため、技術の違いによる再現される特徴傾向を十分に理解把握した上で取り入れるのがよいと思われます。