Photogrammetryでなんかやってる人

Photogrammetryから心理学、人類学までいろいろ話したかった

iPhoneのフォトグラメトリapp及びmacOSのAPI「ObjectCapture」は実務に使えるか

2021/11/23 時点
f:id:fft_kedar:20211127164016p:plain
[ObjectCapture, Marmoset Toolbag 4, 3DScannerApp]



Metascan, Polycam, WiDAR など「ObjectCapture」を使ったiPhoneアプリには

カメラの

  • マニュアル撮影モードがなく、
  • RAW撮影、ピーキング、フラッシュ、ホワイトバランス固定、
  • 撮影してあった写真のアップロード機能もないため

その時点ですでに、ゲーム業界や映像業界でのスキャン業務では、
アプリ単体で使うのが難しいかと思う。

それらが実装されたらむしろカメラアプリとしても超有能になる。
参考として優秀なカメラアプリHalide Mark IIの値段は年間1300円/買い切り6100円なので期待薄か。

ただ、3D Scanのプレビューとして使うだけであれば問題ないはず。
どのアプリも中身が同じAPIなので、RawやObjectMaskingなどの設定が使えるかどうかの違いだけ。(厳密にいうとマーカーモードのQlone以外は同じアルゴリズムか)
(また自動でシャッター切ってくれたりする便利機能もアプリによってあったり)
クオリティもMetashapeやRealityCaptureとそんなに差がないし、

ObjectCaptureで生成したメッシュのクオリティは必ず
MetashapeやRealityCaptureの「最高精度」「高精度」に敵わない。


ObjectCaptureアプリ:3DScannerApp(Raw/Full)


例:靴、a7r4, AR400で撮影
以下全てRaw Mesh、最高クオリティで生成する場合 
細かいディテールについてはObjectCaptureが両者より劣る。

Metashape
f:id:fft_kedar:20211219215944p:plain
Realitycapture
f:id:fft_kedar:20211219220002p:plain
ObjectCapture
f:id:fft_kedar:20211220001425p:plain
f:id:fft_kedar:20211220001614p:plain

例:お椀、a7r4、AR400
Realitycapture(sketchfab)
f:id:fft_kedar:20211220004914p:plain
ObjectCapture
f:id:fft_kedar:20211220004416p:plain

例:里芋、iphone 13pro 純正カメラappでjpg撮影
Metashape
f:id:fft_kedar:20211219220240p:plain
f:id:fft_kedar:20211219220340p:plain
ObjectCapture
f:id:fft_kedar:20211219220402p:plain



- ObjectCaptureの処理過程と生成物について

  • Alignment Reportがほぼない
  • 途中経過が見れない
  • Alignmentを調整できない
  • ソースコード読んでわかったが、そもそもRealitycaptureやMetashapeのようにパラメーターをいじれない
  • ObjectCaptureの生成物、Rawには最大8K*N枚のTextureが入ってて、
  • Fullのほうには最大8K 1枚ずつDiffuse Map, Roughness Map, Tangent Normal Map, AO Mapが入ってる。
  • Displacement mapもあったが現状使えてない。(自分がテストしたいくつの事例)
  • メッシュのポリゴン数がかなり少ない。どこかの段階で画像をDownscaleしたかとの憶測。automaticDownsampling
  • Raw→ Full へのsimplifyではエッジ(ディテール)が失われる、
  • NormalMapでは復元できないエッジが。

- ObjectCaptureを使うメリットとして、

  • 特に執筆すべきところは、Roughness Mapそれなりに感触が良かった点。
  • Object MaskingをOnにすれば背景が雑でもかなりの確率でマスキングしてくれる点。
  • iPhoneでHEIC形式で撮影すれば距離データとDepth Mapが画像に入ってくるので、自動的にモデルにスケールを与えることができる点。


もし
iPhoneとObjectCaptureでスキャンする(するしかない)シチュエーションに遭遇したら、

  • 「Halide Mark II」とか買って、
  • マニュアルモードに切り替えて、場合よってフラッシュ焚いて、
  • Rawで撮影して (Apple ProRAWと標準的なRAWどっちがいいか確信を持っていないが、標準的なRAWに一票)
  • カラコレして現像した写真をObjectCaptureに投げるほうが無難。


まとめ的に

もしモデルのクオリティを求めないのであればObjectCaptureを使っても大丈夫だろう。


デジカメとスマホの使い分けみたいに。


ジオメトリをあたりとして使って、
テクスチャはカラコレ無視か完全に張り替え前提であれば、
むしろObjectCaptureのほうが色々楽。
必要十分なクオリティが得られる。



またさらに何かテストしたら本記事を更新していく予定。

TODO
 ObjectCaptureのiPhoneアプリの活用方法
 macOS ObjectCaptureのさらなる検証


他、ObjectCaptureのレンダリングサンプル
悪くはない


f:id:fft_kedar:20211223010106p:plain

f:id:fft_kedar:20211223010127p:plain