ARKitを電車の中で使うと空間をうまく認識できず、置いたオブジェクトが流れて行ってしまいます。
ところが、11月29日にリリースされたばかりのテクテクテクテクで表示したポプ子やピピ美は流れていかないのです。
先日書いた記事のARKitはどうやって自己位置推定と環境マッピングを行なっているのか
では、この理由のヒントとなる内容を書きましたが、今回は「ARKitは電車で使えないけど、テクテクテクテクの「デプスAR」は使える理由」にフォーカスしてみたいと思います。
まずはARKitとテクテクテクテクのデプスARの事例をそれぞれ見てみましょう。
ARKitは電車の中で流れていく
走ってる電車でARは難しいという学びがあった。 #ARKit pic.twitter.com/U3qURVN8gZ
— sakusan393 (@sakusan393) 2017年9月21日
デプスARはバスの中で流れていかない
#テクテクテクテク ARだけどバス移動ができるのね pic.twitter.com/FQBApkO73o
— あいかちゃん (@aicayamazaki) 2018年12月1日
「ARKit」と「デプスAR」の違い
この違いは何でしょうか?
電車とバスの違いではありません。
ARKitとデプスARそれぞれARを実現するテクノロジーが異なるからです。それぞれの概要を確認してみましょう。
ARKit
Appleが開発したiOS開発者向けのARフレームワーク。
ARKitはVIO(visual-inertial odometry)と呼ばれるテクノロジーを使っています。この技術は、iOSデバイスのモーションセンサー情報と、カメラから得られる画像からの画像認識の結果を組み合わせて成り立っています。
https://qiita.com/k-boy/items/1de8e9ed1260834d02af
つまり、ARKitはカメラ画像だけではなくiPhoneの加速度センサやジャイロセンサを用いた自己推定も行なっているということです。
デプスAR
「デプスAR」はドワンゴ独自のAI技術を使ったAR。
2018年11月29日にドワンゴからリリースされた「テクテクテクテク」という、端末の位置情報を元にプレイヤーの周辺の地図を塗っていくRPGゲームで、この「デプスAR」が使われています。
画像出典: https://japan.cnet.com/article/35128403/この「デプスAR」には、ARKitにはできないオクリュージョンという実物の建物に3Dの物体が隠れる技術が実装されていたり(リアルタイムではないけど)、先ほど述べたようにバスの中で表示して流れていかないという特徴があります。
バスの中で流れていないことは、カメラの自己位置推定に加速度センサは使っていないことがわかります。
なんで加速度センサを使うと電車の中で物体が流れちゃうの?
前節で述べた通り、「ARKitでは電車の中で物体が流れてしまうのに、デプスARでは流れない」この理由は、ARに加速度センサを使っているか否かが影響していると考えられます。
https://www.slashgear.com/iphone-detects-earthquakes-seismologists-envision-universal-detection-grid-29299559/
ARKitは空間の把握した後のカメラの現在地の把握のためにジャイロセンサや加速度センサが使われているため、電車が動いていると「デバイスが動いている」と判断してしまって空間認識が乱れてしまうようです。
一方で、デプスARの場合は、おそらくカメラからの画像データを中心に空間認識が行われているため、バスが動いていてもカメラ画像が変わっていなければ動いていると判断しません。
(ぼくはAppleの人でもドワンゴの人でもないので細かい真相は分かりません)
まとめ
- ARKitは加速度センサを使っている
- ドワンゴのデプスARは多分加速度センサを使っていない
- ARと一言に言っても認識手法は異なる
空間認識の話については先日もまとめたので興味ある方は是非読んでみてください!