web-dev-qa-db-fra.com

Vuforia présente-t-il des limites par rapport à ARCore et ARKit?

Je suis un débutant dans le domaine de la réalité augmentée, travaillant sur des applications qui créent des plans de bâtiments (plan d'étage, plan de la pièce, etc. avec des mesures précises) à l'aide d'un smartphone. Je recherche donc le meilleur SDK AR pouvant être utilisé à cet effet. Il n'y a pas beaucoup d'articles opposant Vuforia à ARCore et ARKit.

Merci de suggérer le meilleur SDK à utiliser, avantages et inconvénients de chacun.

13
Kitwradr

Date de mise à jour: 15 septembre 2019 .

TL; DR

Google ARCore vous permet de créer des applications pour Android et iOS, avec Apple ARKit vous pouvez créer des applications pour iOS et iPadOS, ainsi que de super vieux PTC Vuforia a été conçu pour créer des applications pour Android et iOS également.

Une particularité cruciale de Vuforia est qu'il utilise la technologie ARCore/ARKit si le matériel sur lequel il s'exécute le prend en charge, sinon il utilise sa propre technologie et son moteur AR, connu sous le nom de solution logicielle sans matériel dépendant .

Cependant, lors du développement pour les smartphones OEM Android OEM, vous pouvez être confronté à un problème désagréable: des appareils de différents fabricants ont besoin d'un étalonnage de capteurs pour pouvoir observer la même expérience de RA. Heureusement, Apple ne présentent aucun inconvénient car tous les capteurs utilisés ont été calibrés dans des conditions identiques.

Mais pour répondre à cette question, commençons par les premières choses.

enter image description hereenter image description here

ARCore 1.12

ARCore est basé sur les trois principaux concepts fondamentaux : Motion Tracking, Environmental Understanding et Light Estimation. Ainsi, ARCore permet à un appareil mobile pris en charge de suivre sa position et son orientation par rapport au monde selon 6 degrés de liberté (6DOF) à l’aide d’une technique spéciale appelée Odométrie et cartographie concurrentes . COM nous aide également à détecter la taille et l'emplacement des surfaces suivies horizontales, verticales et inclinées (telles que le sol, les tables, les bancs, les murs, les pentes, etc.). Motion Tracking fonctionne de manière robuste grâce aux données optiques provenant d’une caméra à 60 ips , combinées à des données inertielles provenant de gyroscopes et d’accéléromètres à 1000 ips . Naturellement, ARKit et Vuforia fonctionnent approximativement de la même manière.

Lorsque vous déplacez votre téléphone dans l'environnement réel, ARCore surveille un espace environnant pour comprendre où se trouve un smartphone, par rapport aux coordonnées mondiales. Au stade du suivi, ARCore " semez" ainsi appelé feature points _ qui forme un nuage de points clairsemés et que ce nuage vit pendant que la session de suivi est active. Ces points caractéristiques sont visibles à travers l’appareil photo RVB arrière et ARCore les utilise pour calculer le changement d’emplacement du téléphone. Les informations visuelles doivent ensuite être combinées aux mesures de l'accéléromètre et du gyroscope ( unité de mesure inertielle ) pour estimer la position et l'orientation de la ArCamera dans le temps. ARCore recherche les grappes de points caractéristiques qui semblent se trouver sur des surfaces horizontales, verticales ou inclinées et les rend disponibles pour votre application en tant que plans (cette technique est appelée détection de plan ). Vous pouvez donc utiliser ces plans pour placer des objets 3D dans votre scène. Après cela, la géométrie virtuelle avec les shaders assignés sera rendue par le compagnon d'ARCore - Sceneform (supportant OBJ, FBX et glTF actifs), qui utilise un moteur de rendu en temps réel (ou PBR) - Filament .

La compréhension environnementale d'ARCore vous permet de placer des objets 3D et des annotations 2D de manière à s'intégrer au monde réel. Par exemple, vous pouvez placer une tasse de café virtuelle sur le coin de votre table du monde réel en utilisant ArAnchor .

ARCore peut également définir les paramètres d'éclairage d'un environnement réel et vous fournir l'intensité et la correction de couleur moyennes d'une image de caméra donnée. Ces données vous permettent d'éclairer votre scène virtuelle dans les mêmes conditions que l'environnement qui vous entoure, ce qui augmente considérablement le réalisme.

Les mises à jour majeures précédentes apportées dans ARCore, telles que les API significatives telles que Estimation d'éclairage avec Environmental HDR mode, Augmented Faces, Augmented Images, Sceneform Animations, Cloud Anchors et Multiplayer support. Le principal avantage d'ARCore dans Android Studio par rapport à ARKit dans Xcode est émulateur Android vous permettant d'exécuter et de déboguer des applications AR à l'aide d'un périphérique virtuel.

ARCore est plus vieux que ARKit. Vous souvenez-vous de Project Tango sorti en 2014? En gros, ARCore est juste un SDK Tango réécrit sans utilisation de la caméra de profondeur. Mais une acquisition judicieuse de FlyBy et de MetaIO a aidé Apple) à rattraper son retard. Je suppose que cela est extrêmement bon pour l’industrie de la RA.

La dernière version d'ARCore nécessite Android 7.0 Nougat ou une version ultérieure, prend en charge l'accélération OpenGL ES 3.1 et s'intègre aux applications Unity, Unreal et Web. À l'heure actuelle, les jeux de puces les plus puissants et les plus économes en énergie pour AR expérience sur Android plate-forme sont Kirin 980 (7nm), Snapdragon 855 Plus (7nm) et Exynos 9825 (7 nm).

Prix ARCore: GRATUIT .

|-----------------------------------|-----------------------------------|
|            ARCore PROS            |            ARCore CONS            | 
|-----------------------------------|-----------------------------------|
| //  Quick Plane Detection         |  Cloud Anchors are hosted online  |
|-----------------------------------|-----------------------------------|
| //  Long-distance-accuracy        |  Lack of rendering technologies   |
|-----------------------------------|-----------------------------------|
| //  Sloping Surfaces Detection    |  Poor developer documentation     | 
|-----------------------------------|-----------------------------------|
| //  High-quality Lighting API     |  No external camera support       |
|-----------------------------------|-----------------------------------|
| //  A lot of supported devices    |  No Z-Depth compositing for model |
|-----------------------------------|-----------------------------------|

Voici l'extrait de code ARCore écrit en Kotlin:

private fun addNodeToScene(fragment: ArFragment, anchor: Anchor, renderable: Renderable) {

    val anchorNode = AnchorNode(anchor)
    anchorNode.setParent(fragment.arSceneView.scene)

    val modelNode = TransformableNode(fragment.transformationSystem)
    modelNode.setParent(anchorNode)
    modelNode.setRenderable(renderable)
    modelNode.localPosition = Vector3(0.0f, 0.0f, -3.0f)
    fragment.arSceneView.scene.addChild(anchorNode)

    modelNode.select()
}

enter image description hereenter image description here

ARKit 3.0

Comme son concurrent, ARKit utilise également une technique spéciale, appelée Odométrie visuelle inertielle , pour suivre avec une très grande précision le monde qui entoure votre téléphone. VIO est assez similaire à COM found in ARCore. Il existe également trois concepts fondamentaux similaires dans ARKit: World Tracking, Scene Understanding (qui comprend trois étapes: détection de plan , test de hit et Estimation de la lumière ), et Rendering avec l'aide des compagnons ARKit - SceneKit framework, c’est en fait un moteur de jeu 3D, le framework RealityKit spécialement conçu pour AR, et le framework SpriteKit avec moteur 2D.

VIO fusionne les données du capteur RVB à 60 ips avec les données Core-Motion (IMU) à 1000 ips . En outre, SceneKit, par exemple, peut restituer toute la géométrie 3D à 30/60/120 fps. Donc, dans de telles circonstances, je pense qu’il convient de noter qu’en raison d’un impact énergétique très élevé (en raison d’un fardeau énorme pour le processeur et le processeur graphique), la batterie de votre iPhone sera épuisée assez rapidement.

ARKit dispose d'une poignée de méthodes utiles pour un suivi fiable et des mesures précises. Parmi son arsenal, vous pouvez trouver des fonctionnalités faciles à utiliser pour enregistrer et récupérer ARWorldMaps . La carte du monde est un "portail" indispensable pour persistant et expérience AR multi-utilisateur = qui vous permet de revenir au même environnement rempli du même contenu 3D choisi juste avant le moment où votre application est devenue inactive. Prise en charge de la capture de caméra simultanée front et back et prise en charge de collaborative sessions qui nous permet de partager des cartes du monde sont également formidables.

Il y a de bonnes nouvelles pour les joueurs: jusqu'à 6 personnes peuvent jouer simultanément au même jeu d'AR. Pour la géométrie 3D, vous pouvez utiliser un tout nouveau format de fichier USDZ , développé et pris en charge par Pixar, idéal pour les modèles virtuels sophistiqués dotés de nombreux shaders PBR. . Vous pouvez aussi utiliser les formats 3D suivants pour ARKit.

ARKit peut non seulement vous aider à suivre la position et l’orientation de votre appareil par rapport au monde dans 6DOF, mais vous aide également à effectuer la technique Occlusion des personnes (basée sur ) et profondeur segmentation des canaux), Motion Capture tracking, 2D tracking, vertical and horizontal Planes detection, Image detection, 3D Object detection et 3D Object scanning. Avec l’outil People Occlusion, votre contenu d’AR passe de manière réaliste derrière et devant des personnes du monde réel, ce qui rend les expériences de RA encore plus immersives. Également, Realistic reflections, qui utilise des algorithmes d’apprentissage automatique et Face-based AR experience qui permet de suivre jusqu'à 3 visages à la fois sont disponibles pour vous maintenant.

En utilisant iBeacons avec ARKit, vous aidez une application prenant en charge iBeacon à savoir dans quelle pièce elle se trouve et à afficher le contenu 3D/2D correct choisi pour cette pièce. En travaillant avec ARKit, vous devez exploiter de manière intensive la classe ARAnchor et toutes ses sous-classes, de la même manière que vous l’avez utilisée dans ARCore.

Pour créer des applications AR reposant sur la dernière version d'ARKit 3.0 (y compris toutes les innovations prises en charge), vous devez disposer de macOS 10.15 Catalina, Xcode 11 et iPhone exécutant iOS 13. Une triste nouvelle: ARKit 3.0 Les fonctionnalités principales sont limitées aux appareils équipés de Apple processeurs A12 et A13 . ARKit 3.0 est également un candidat digne d’épouser le framework Metal pour l’accélération GPU. Et n’oubliez pas: ARKit s'intègre étroitement avec Unity et Unreal: à l'heure actuelle, les jeux de puces les plus puissants et les plus économes en énergie pour l'expérience de la RA sur les plateformes iOS et iPadOS sont A13 (7 nm) et A12 bionique (7 nm).

Prix ARKit: GRATUIT .

|-----------------------------------|-----------------------------------|
|             ARKit PROS            |            ARKit CONS             | 
|-----------------------------------|-----------------------------------|
| //  Stable 6DoF World Tracking    |  No angled-surface detection      |
|-----------------------------------|-----------------------------------|
| //  Collaborative Sessions        |  ARKit 3 restrictions (A12, A13)  |
|-----------------------------------|-----------------------------------|
| //  World Maps, iBeacon-awareness |  No macOS Simulator for ARKit     |
|-----------------------------------|-----------------------------------|
| //  4 rendering technologies      |  No external camera support       |
|-----------------------------------|-----------------------------------|
| //  Rich developer documentation  |                                   |
|-----------------------------------|-----------------------------------|

Voici l'extrait de code ARKit écrit en Swift:

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

    guard let planeAnchor = anchor as? ARPlaneAnchor else { return }
    let planeNode = tableTop(planeAnchor)
    node.addChildNode(planeNode)
}

func tableTop(_ anchor: ARPlaneAnchor) -> SCNNode {

    let x = CGFloat(anchor.extent.x)
    let z = CGFloat(anchor.extent.z)

    let tableNode = SCNNode()
    tableNode.geometry = SCNPlane(width: x, height: z)
    tableNode.position = SCNVector3(anchor.center.x, 0, anchor.center.z)
    return tableNode
} 

enter image description hereenter image description here

Vuforia 8.4

PTC Vuforia Engine offre à peu près les mêmes fonctionnalités principales que celles des dernières versions d'ARKit et d'ARCore, ainsi que ses propres nouvelles fonctionnalités, telles que les modèles de cibles avec apprentissage profond, VISLAM pour une expérience AR sans marqueur et la prise en charge d'appareils photo externes pour iOS, et nouvelles API expérimentales pour ARCore et ARKit. Le principal avantage de Vuforia sur ARKit et ARCore réside dans le fait qu'il a liste plus étendue de périphériques pris en charge .

Vuforia a une version autonome et une version cuite directement dans Unity. Il présente les fonctionnalités suivantes: cibles de modèle avancées 360 (reconnaissance générée par l’IA), cibles de modèle avec apprentissage en profondeur (permet de reconnaître des objets par forme à l'aide de modèles 3D préexistants et d'algorithmes d'apprentissage approfondi), Cibles d'image (le moyen le plus simple de placer un contenu RA sur des objets plats), Cibles multiples (pour les objets ayant des surfaces planes et de multiples côtés), Cibles cylindriques (pour placer du contenu AR sur des objets de formes cylindriques), Plan de masse (en tant que partie de Smart Terrain, cette fonctionnalité permet de placer du contenu numérique sur des sols et des surfaces de table), VuMarks (permet d’identifier et d’ajouter du contenu à une série d’objets), Cibles d'objet (pour balayer un objet) et Fusion .

Vuforia Fusion est une fonctionnalité conçue pour résoudre le problème de la fragmentation dans les technologies permettant la RA, telles que les caméras, les capteurs, les jeux de puces et les infrastructures logicielles telles qu'ARKit. Avec Vuforia Fusion, votre application fournira automatiquement la meilleure expérience possible sans aucun travail supplémentaire requis de votre côté.

La fonctionnalité Caméra externe fait partie du framework de pilote Vuforia Engine. La caméra externe offre une nouvelle perspective sur les possibilités de la réalité augmentée. Il permet à Vuforia Engine d’accéder à des sources vidéo externes au-delà de l’appareil photo équipé de téléphones et de tablettes. En utilisant une caméra indépendante, les développeurs peuvent créer une expérience AR qui offre une vue à la première personne à partir de jouets, de robots ou d'outils industriels.

Occlusion Management est l’un des éléments clés permettant de créer une expérience de RA réaliste. Lorsque vous utilisez Occlusion Management, Vuforia Engine détecte et suit les cibles, même lorsqu'elles sont partiellement cachées derrière des barrières quotidiennes, comme votre main. La gestion spéciale des occlusions permet aux applications d'afficher des graphiques comme s'ils apparaissaient à l'intérieur d'objets physiques.

Vuforia prend en charge l'accélération Metal pour les appareils iOS. Vous pouvez également utiliser les échantillons Vuforia pour vos projets. Par exemple: le Vuforia Core Samples library comprend diverses scènes utilisant les fonctions de Vuforia, notamment une scène de reconnaissance d'objet préconfigurée que vous pouvez utiliser comme référence et point de départ pour l'application de reconnaissance d'objet.

enter image description here

Vuforia SDK Prix (il y a quatre options): gratuit (vous devez vous inscrire pour un clé de licence de développement gratuite) ), 499 USD per Licence classique (pour les applications conçues pour les entreprises générant un chiffre d'affaires inférieur à 10 millions USD/an), 99 $/mois par Licence Cloud et PTC fournit également un Licence Pro avec prix personnel (sans restriction de revenus).

[~ # ~] conclusion [~ # ~] :

Vuforia ne présente aucune limite significative en termes de développement par rapport à ARCore et ARKit. Vuforia est un excellent produit qui prend en charge les séries iPhone 5/6 ainsi que certains Android modèles non pris en charge par ARCore. Mais, à mon avis, ARKit a une précision de mesure bien supérieure à besoin d'étalonnage et ARKit 3.0 possède personnellement un ensemble de fonctionnalités utiles qui éliminent les erreurs accumulées au fil du temps. La précision des mesures de Vuforia dépend donc de la plateforme pour laquelle vous développez.

Portez une attention particulière: Vuforia Chalk L’application a été construite sur Apple ARKit.

enter image description here

Pour des informations plus détaillées, veuillez lire Pourquoi ARKit est-il meilleur que les alternatives? article.

enter image description here

enter image description here

37
ARGeo

Excellente information. Cependant, j'aimerais ajouter quelques points basés sur l'expérience d'utilisation d'ARCore et d'ARkit. En ce qui concerne la cartographie, ARCore est capable de gérer des cartes plus grandes par rapport à ARkit. ARcore suit plus de points caractéristiques que ARkit. ARKit est un autre point qui différencie mieux la détection horizontale et verticale des surfaces que l’ARcore.

1
shri