テクテクテクテクの「デプスAR」は電車で使えるのにARKitは使えない理由

ARKitを電車の中で使うと空間をうまく認識できず、置いたオブジェクトが流れて行ってしまいます。

**ところが、11月29日にリリースされたばかりの[テクテクテクテク](https://www.teku4.jp/)で表示したポプ子やピピ美は流れていかないのです。**

先日書いた記事の[ARKitはどうやって自己位置推定と環境マッピングを行なっているのか
](https://qiita.com/k-boy/items/1de8e9ed1260834d02af)では、この理由のヒントとなる内容を書きましたが、今回は「**ARKitは電車で使えないけど、テクテクテクテクの「デプスAR」は使える理由**」にフォーカスしてみたいと思います。

まずはARKitとテクテクテクテクのデプスARの事例をそれぞれ見てみましょう。

# ARKitは電車の中で流れていく

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">走ってる電車でARは難しいという学びがあった。 <a href="https://twitter.com/hashtag/ARKit?src=hash&amp;ref_src=twsrc%5Etfw">#ARKit</a> <a href="https://t.co/U3qURVN8gZ">pic.twitter.com/U3qURVN8gZ</a></p>&mdash; sakusan393 (@sakusan393) <a href="https://twitter.com/sakusan393/status/910665775458873345?ref_src=twsrc%5Etfw">2017年9月21日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# デプスARはバスの中で流れていかない

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%83%86%E3%82%AF%E3%83%86%E3%82%AF%E3%83%86%E3%82%AF%E3%83%86%E3%82%AF?src=hash&amp;ref_src=twsrc%5Etfw">#テクテクテクテク</a>  ARだけどバス移動ができるのね <a href="https://t.co/FQBApkO73o">pic.twitter.com/FQBApkO73o</a></p>&mdash; あいかちゃん (@aicayamazaki) <a href="https://twitter.com/aicayamazaki/status/1068778468551213056?ref_src=twsrc%5Etfw">2018年12月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 「ARKit」と「デプスAR」の違い

この違いは何でしょうか？

**電車とバスの違いではありません。**

ARKitとデプスARそれぞれARを実現するテクノロジーが異なるからです。それぞれの概要を確認してみましょう。

## ARKit

Appleが開発したiOS開発者向けのARフレームワーク。

![arkit](https://www.apple.com/newsroom/videos/arkit-eve/posters/ARKit_Eve_571x321.jpg.large.jpg)

>ARKitはVIO(visual-inertial odometry)と呼ばれるテクノロジーを使っています。この技術は、iOSデバイスのモーションセンサー情報と、カメラから得られる画像からの画像認識の結果を組み合わせて成り立っています。
https://qiita.com/k-boy/items/1de8e9ed1260834d02af

つまり、**ARKitはカメラ画像だけではなくiPhoneの加速度センサやジャイロセンサを用いた自己推定も行なっている**ということです。

## デプスAR

「デプスAR」は**ドワンゴ独自のAI技術を使ったAR。**

2018年11月29日にドワンゴからリリースされた「[テクテクテクテク]((https://www.teku4.jp/))」という、端末の位置情報を元にプレイヤーの周辺の地図を塗っていくRPGゲームで、この「デプスAR」が使われています。

<img width="482" alt="スクリーンショット 2018-12-02 15.27.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/111366/0b76cdee-7361-873f-7cc7-37f8c1b1c2a3.png">
画像出典: https://japan.cnet.com/article/35128403/

この「デプスAR」には、ARKitにはできないオクリュージョンという実物の建物に3Dの物体が隠れる技術が実装されていたり(リアルタイムではないけど)、先ほど述べたようにバスの中で表示して流れていかないという特徴があります。

![teku4](https://pbs.twimg.com/media/DtUQWJ7UcAAJBAC.jpg)

バスの中で流れていないことは、**カメラの自己位置推定に加速度センサは使っていないことがわかります。**

# なんで加速度センサを使うと電車の中で物体が流れちゃうの？

前節で述べた通り、「**ARKitでは電車の中で物体が流れてしまうのに、デプスARでは流れない**」この理由は、ARに加速度センサを使っているか否かが影響していると考えられます。

![image](https://c.slashgear.com/wp-content/uploads/2013/09/accelerometer_2-580x384.jpg)
https://www.slashgear.com/iphone-detects-earthquakes-seismologists-envision-universal-detection-grid-29299559/

ARKitは空間の把握した後のカメラの現在地の把握のためにジャイロセンサや加速度センサが使われているため、**電車が動いていると「デバイスが動いている」と判断してしまって空間認識が乱れてしまう**ようです。

一方で、デプスARの場合は、おそらくカメラからの画像データを中心に空間認識が行われているため、**バスが動いていてもカメラ画像が変わっていなければ動いていると判断しません。**

（ぼくはAppleの人でもドワンゴの人でもないので細かい真相は分かりません）

# まとめ

- ARKitは加速度センサを使っている
- ドワンゴのデプスARは**多分**加速度センサを使っていない
- ARと一言に言っても認識手法は異なる

空間認識の話については先日もまとめたので興味ある方は是非読んでみてください！

[ARKitはどうやって自己位置推定と環境マッピングを行なっているのか
](https://qiita.com/k-boy/items/1de8e9ed1260834d02af)