AR Kit vs ARCoreのどっちを使おう?with Unity

2020.02.12

はじめに

ARことAugmented Realityは、筆者としても大注目の分野で、高性能化に加えて、技術的なハードルも下がりつつ、簡単に試せるようになってきています。

例えば、SparkARは、顔や画像検出をベースにしたARを簡単なGUI操作だけで作ることができ、オリジナルのInstargramフィルターを作ることができます。

もう少し本格的なARアプリ開発ツールとして、Appleが開発しているAR KitやGoogleが開発しているAR Coreなどがあります。
他にもVuforiaなど有名なAR開発向けのキットが用意されていますが、今回はAR KitとARCoreについて2020年2月現在の性能をまとめていきたいと思います。
現時点での最新モデルはAR Kit3 と AR Core v1.15.0になります。

※基本的にはUnityで開発する目線で書かれています。

提供プラットフォームの違い

Apple社のAR KitはiOSのみの提供です。
一方でAR CoreはAndroidとiOS両方をサポートしています。
ARCoreの対応端末は、こちらから確認できます。

開発プラットフォームの違い

ARKitは、Swift・Unity・Unreal EngineからSDKを呼び出すことができるようです。

ARCoreは、Swift・Andorid・Android NDK・Unity・Unreal EngineからSDKを呼び出すことができるようです。

UnityではARFoundationという公式パッケージを通して、ARKit・ARCoreを使うことができます。

機能の違い

AR Kit

・Plane Detection・・・カメラ画像から特徴点を解析して床や壁といった平面を検出します。

・Light Estimation・・・カメラ画像から光源を推測し、実空間と仮想空間の照明の具合を揃えることができる。

・Image Tracking・・・2D画像をマーカーにしたAR座標を取得できます。自前で用意した画像データをマーカーとして登録することができます。

・Face Tracking Enhancements・・・人の顔をマーカーにしたARの開発ができます。

・Collaborative Session・・・複数人で同一のAR空間座標を共有できます。ネットワーク接続が前提となるようです。

・Object Tracking・・・物体をマーカーにしたAR座標を取得できます。実空間の物体をマーカーとして登録することができます。

・Body Caputure・・・人の動きを認識させることができます。

・People Occlusion・・・人の写っているエリアを認識して、ピクセルを取得できます。これにより仮想空間の物体を人々の後ろに周りこませることができます。

AR Core


一部iOSでは提供されていない機能もあります。こちらで一覧を確認できます

・Plane Detection・・・ARKitのPlane Detectionと同じ

・Light Estimation・・・ARKitのLight Estimationと同じ

・Augmented Faces・・・ARKitのFace Tracking Enhancements と同じ

・Augmented Images・・・ARKitのImage Trackingと同じ

・Cloud Anchors・・・AR KitのCollaborative Sessionと同じ

※厳密には精度や手法などにはある程度差があると思いますが、できることベースで似た機能はARkitと同じとしています。

 

以下、表にしてみました。
単純に機能で比較するとAr Kitの方が優秀な感じがします。
しかしながら、端末の性能差もあるかもしれませんが、平面検出はAR Coreの方が早く解析が終わる印象があったりなど、単純に比較はできない感じもしています。

AR Kit3のObject Tracking・Body Tracking・People Occlusionは、ハードウェアも手掛けるAppleだからこそ実現していると言えますね。

  平面検出 光源推論 顔検出 画像認識 物体認識 座標共有 Body Traking People Occlusion
AR Kit3 ○  ○  ○  ○  ○  ○  ○ 
AR Core ○  ○  ○  ○  × ○  × ×

まとめ

結論としては、iOS ・Android両方が必須な場合は、ARCore。

物体認識や仮想空間の物体を実空間の人物で覆い隠したりしたい場合など、より先端な表現を取り入れたい場合はARKit3が良さそうな結論になりました。

一通り調査を終えて感じたことは、AR Kitは、高性能・高品質を目指し、AR Coreは誰しもがARを使うことを目指しているような印象を持ちました。
今後ますますのAR体験、特にビジュアルだけでなくサウンドを含むAR体験を作っていきたいですね!

参考

[1] AR Core Developer Document 

[2] Unity Blog AR Kit3

[3] Apple AR Kit 日本語ドキュメント