ARCore Depth APIとは
Googleの拡張現実(AR)に関するアップデートであり、ARCoreに追加された新しいAPI。
Depthセンサなどの専用の機器を用いることで、デバイスに搭載されたRGBカメラを用いた深度マップの生成を行うことが可能になっています。
そもそもDepthセンサとは何か
Depth = を測定するセンサ。
これによって深度を目に見える形(色など)で表現したものがDepth Map(深度マップ)。
Depth APIはサーモグラフィのような色で表現されています。
Depth APIのここがすごい!
大きく分けて2点
- オクルージョンの表現
- 専用の機器を追加で取り付ける必要がない
オクルージョンの表現
遮蔽の表現のこと。手前のものが後ろのものを隠す表現をオクルージョンといいます。
現実の世界では当たり前にあるものではあるが、ARの場合、現実世界のオブジェクトや他の3Dオブジェクトとの距離を考慮しながら3Dモデルの表示をコントロールしなければ、適切な遮蔽表現はできません。
ARの現実感に影響する重要な要素でもあります。
←:オクルージョンなし →:オクルージョンあり
引用元:https://japanese.engadget.com/jp-2019-12-25-google-3d-ar-arcore.html
専用の機器を追加で取り付ける必要がない
公式の記事によると、センサが搭載されている方が精度は高くなるものの、必須ではないようです。
ARCoreに対応した機器である必要はあるものの、新規に専用のセンサが搭載されたデバイスを買う必要もなく、自由度がかなり高くなっています。
ARCore Android向けのDepth APIの概要:
https://developers.google.com/ar/develop/java/depth/overview
実際に使ってみる
環境
Pixel 3a
Andorid 10
Android Studio 4.0.1
公式がサンプルを出してくれているため、これを使います。
詳しくはこちらのサイトをご参考にしてください。
サンプルプロジェクトを開く
次のコマンドでサンプルプロジェクトを持ってこれます。
git clone https://github.com/google-ar/arcore-android-sdk.git
Android Studioで、arcore-android-sdk/samples/hello_ar_javaを開きます。
サンプルを実行する
Andorid Studioからサンプルを実行することで、サンプルアプリを使うことができます。
エミュレータでの起動はできないため、注意してください。
サンプルの実行結果
サンプルの内容としては、タップした場所にドロイドくんを設置できるものになっています。
平面の検知をしてくれるので、きれいに床の上に設置されます。
※白い三角形のメッシュが出ているところが検知された平面部分
設置したドロイドくんはオクルージョンが適応されているため、ドロイドくんを物の後ろに設置すると見えなくなります。
Depth APIを体験できるアプリ
APIの紹介動画で紹介されているアプリ