見出し画像

LiDAR + ARKit 3.5 を調査してみました!

LiDAR とARKit 3.5でどれくらい ARKit の精度が上がったのかを調査してみました。

LiDAR ってなに?

画像1

2020年3月に発売された iPad Pro。
個人的な目玉はなんと言ってもLiDARスキャナの搭載です!
LiDAR は「Light Detection and Ranging」の略で、約5m先に赤外線を照射し、反射して戻るまでの時間から距離や物質の性質を分析するセンシング技術のことです。

元々は車の自動運転などで使われている技術みたいですね。

ARKit が 3.5 にバージョンアップ 

LiDAR 搭載の発表は衝撃的でしたが、それと同時期に ARKit 3.5 のリリースも発表されています。

画像2

イントロダクションから ARKit 3.5 は LiDAR を生かすためのフレームワークだということが分かります。
ARKit 3.5 の特徴としては以下の3つがあげられています。

1. Scene Geometry
2. Instant AR
3. Improved Motion Capture and People Occlusion

1. Scene Geometry
空間を計測したときに 床、壁、天井 といったような具合で、平面が空間で何の役割を果たしているのかを識別することができるようになりました。
この機能だけはLiDARスキャナ非搭載の端末でも利用できるようです。

2. Instant AR
LiDARスキャナのおかげで平面を高速で検出できるようになりました。
これまでは平面検出をしようとすると、端末で周りを見渡して空間の情報を与えてあげる必要がありましたが、その作業がほぼなくなりました。

3. Improved Motion Capture and People Occlusion
LiDARスキャナのおかげで ARKit 3 から出来るようになったモーションキャプチャとオクルージョンの精度が上がりました。

計測

LiDAR + ARKit 3.5 によってiOSのARがどれくらい良くなったのかを、以下の3つの観点で調べてみました。

1. 空間認識(平面・垂直面、凹凸の認識)
2. オクルージョン
3. 人の姿勢推定

今回は、iPad Pro 2020 の比較対象として iPhone 11 Pro を用意しました。OSはどちらも ver 13.4 のものを使用しています。
(以降、iPad Pro 2020 は「iPad」、iPhone 11 Pro は「iPhone」と省略させてもらいます。)

空間認識

平面・垂直面の認識
部屋の状態をどれくらいうまく測定できるかを検証してみます。
こちらのサンプルを使用させてもらいました。

iPad (LiDARスキャナあり)

iPhone (LiDARスキャナなし)

結果
iPad での平面認識がものすごく早いことが分かると思います!
どちらも最初 に「Move the device around to detect horizontal and vertical surfaces」 と表示されますが、iPad はそれが一瞬で終わってます。
この素早く平面認識する機能をAppleさんでは「インスタントAR」と名付けているようです。

認識精度についても、iPhone では椅子や天井の認識ができていませんが、iPad はできるようになっています。

凸凹の認識
こちらの検証は、以下のコードを使用します。

import UIKit
import ARKit
import RealityKit
class ViewController: UIViewController {
   @IBOutlet var arView: ARView!
   override func viewDidLoad() {
       super.viewDidLoad()
       let configuration = ARWorldTrackingConfiguration()
       configuration.sceneReconstruction = .meshWithClassification
       arView.debugOptions.insert(.showSceneUnderstanding)
       arView.session.run(configuration)
   }
}

iPad (LiDARスキャナあり)

iPhone (LiDARスキャナなし)

こちらは iPhone だと動きませんでした。
メッシュ化は LiDAR がないとダメみたいですね…。

オクルージョン

ARKit 3 から3Dオブジェクトを人物の前後に出せるようになりましたが、LiDAR + ARKit 3.5 でどのくらいバージョンアップしたか検証してみたいと思います。
こちらのサンプルを使用させてもらいます。

iPad (LiDARスキャナあり)

iPhone (LiDARスキャナなし)

結果
iPad は距離感がかなり正確だと感じました。iPhone も悪くないのですが、花瓶よりかなり手前で手が裏にいってしまう…ということがありました。

他にも、iPhone はたまに判定をすり抜けて、花瓶がチラつくことがあったのですが、iPad ではそれが起きませんでした。

モーションキャプチャー

ARKit 3 から人物の姿勢を取れるようになりました。こちらも LiDAR + ARKit 3.5 でのバージョンアップを確認してみたいと思います。
こちらのサンプルを使用させてもらいます。

iPad (LiDARスキャナあり)

iPhone (LiDARスキャナなし)

結果
これに関しては iPad、iPhone どちらもよく、大きな差分はありませんでした。ちゃんと体の動きをとれています。
細かいところで言うと、iPad の方が大きなブレはなかった気がします。

最初は物が多い部屋で検証を行っていたのですが、そのときは iPad、iPhone ともに体の動きがうまく撮れず、アバターの関節が変に曲がってしまうことが多くありました。

モーションキャプチャーを行いたい場合は、障害物の少ない部屋でやった方がよさそうです。また、カメラの死角になる部分は当然キャプチャーなので、カメラに対して垂直に体を向けるのはできるだけ避けた方がいいです。

おまけ

空間認識について面白いサンプルがあったのでこちらもご紹介します。

現状は、iPad Pro 2020 でしか動きませんが、なんと、メッシュ化した空間をタップすると、その部分を以下の種類に分類して表示してくれます。

・ 天井
・ ドア
・ 床
・ 椅子
・ テーブル
・ 壁
・ 窓
・ その他

… ARKit 最強ですね!

まとめ

LiDARスキャナの性能はとても高く、これまでのARではできなかったことを可能にしてくれそうです。

スマートフォン端末にどんどん LiDARスキャナが搭載されれば、もっと手元でのARの表現幅が増えるのでたのしみです!

この記事が気に入ったらサポートをしてみませんか?