見出し画像

[iOS 17] iOSでLiDAR利用の3Dオブジェクトスキャンが可能に #WWDC23

iOSにおける3DオブジェクトスキャンAPIの歴史

ARKitではだいぶ前から3Dオブジェクトスキャンが可能だったが、しかし出来がかなり中途半端で、この機能でまともな3Dモデルを得ることは事実上不可能だった。

その後月日は流れ、iPhone/iPadにLiDARが搭載され、macOSではフォトグラメトリも標準APIで可能になった、というタイミングで調査してみたが、

3年経ち、ARKitもどんどん進化し、デプス周りのAPIもかなり充実し、iPhone/iPadにはLiDARまで搭載された。macOS Montereyではフォトグラメトリも可能になった。MLはアルゴリズム面でもハード面でも大幅に進化した。

さすがにそろそろ3D Object Detection/Scanも改善されているのではないか

結論、何も変わっていなかった…

iOS 17でのアップデート

WWDC23のセッション「Meet Object Capture for iOS」によると、ついにiOS向けの3Dオブジェクトスキャン(キャプチャー)周りが刷新されたようだ。

ARKitの従来のAPIのアップデートではなく、RealityKitに `ObjectCaptureSession` というクラスが追加された。またオブジェクトキャプチャー用のSwiftUI向けのビューとして `ObjectCaptureView` も追加されている。

これにより、次のようなインターフェースの3D物体キャプチャー機能の実装が可能となる。

"Meet Object Capture for iOS" より

スクショだとあまりARKit 2の頃のサンプルとあまり変わらない印象を受けるかもしれないが、内部的な処理も、標準で用意されているガイドUIも相当良さそうだ(後述する)

また2021年に発表されたObject Captureは、macOSで3Dモデルを生成するものだったが、

今回、このキャプチャーしたデータからのモデル再構築(Model Reconstruction)もiOSデバイス上で行えるようになった。

つまり撮影からモデル生成まですべてiOSアプリ内で完結するようになった。

LiDAR利用

今回追加されたObject Capture APIは、iPhone 12 Pro、iPad Pro 2021、およびそれ以降のモデルで利用可能、とのこと。

Object Capture is available on iPhone 12 Pro, iPad Pro 2021, and the later models.

"Meet Object Capture for iOS" より

つまり、LiDAR搭載端末に限定されている。

このLiDAR利用により、テクスチャの少ないオブジェクトもキャプチャー可能になった。

"Meet Object Capture for iOS" より
RGB撮影のみだとテクスチャーがない背面や底面の点群を得られない

なお、反射するオブジェクト、透明なオブジェクト、非常に薄い構造を持つオブジェクトは避けた方がよい、とのこと。

Guided capture

3Dオブジェクトスキャンを自分でやってみるとわかるのだけど、結構コツがいる。適切な撮影間隔で、対象物と一定の距離を保ち、対象物を常に画角の中心に収め続け、角度を変えながら撮影する際に影になったりしないように照明にも気を遣わないといけない。

この問題を緩和してくれるのが "Guided capture" (ガイド付きキャプチャ)という機能。

Automatic Capture

ガイド付きキャプチャにより、データキャプチャーの際に、手動で良いビューアングルを選びシャッターボタンを押す作業が自動化される。

"Meet Object Capture for iOS" より

対象物の周りを一周すると、シャープネス、鮮明度、露出に優れた画像ショットが自動的に選択され、さまざまなビューアングルからLiDARポイントが収集される。

「キャプチャダイヤル」と呼ばれるUI(スクショ下部にあるやつ)により、オブジェクトのどの部分に十分な画像があるかが示される。ユーザーは、これがいっぱいになるようにいろんな角度から撮影すればよい。

Capture feedback

ここから先は

3,166字 / 5画像
WWDC23だけでなく、WWDC22についても書いていきます。

WWDC 2023やiOS 17についてセッションやサンプルを見つつ勉強したことを記事にしていくマガジンです。また昨年キャッチアップをお休…

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/