Cadres IOS AR: lequel choisir?

image
De nombreux développeurs utilisent depuis longtemps AR dans leurs applications. Une bonne aide pour cela est des solutions tierces comme OpenCV ou Wikitude. Avec la sortie d'iOS 11, les programmeurs ont accès à la structure du système ARKit. Voyons à quel point ces bibliothèques sont bonnes et lesquelles devraient être utilisées pour votre prochain projet de réalité augmentée.

ARKit


Les avantages incontestables d'ARKit incluent sa nativité. L'intégration et la configuration ne prennent que quelques minutes. Xcode effectue gentiment la moitié des opérations nécessaires pour vous, après quoi le framework «fonctionne tout simplement». Il est très facile d'organiser l'interaction entre ARKit et d'autres frameworks système (SpriteKit, SceneKit, Metal, CoreLocation, etc.).

La bibliothèque est bien optimisée et utilise au maximum les capacités matérielles des derniers modèles d'iPhone et d'iPad. Un grand nombre de calculs qui se produisent sous le capot, presque aucun effet sur l'UX. Je suis satisfait de la précision avec laquelle le cadre reconnaît les avions et les marqueurs. Ni un mauvais éclairage ni un mouvement brusque de l'appareil n'interfèrent avec cela. Grâce aux technologies complémentaires de VIO (Visual Inertial Odometry) et IMU (Inertial Measurement Unit), qui forment la base d'ARKit, les gars d'Apple ont réussi à minimiser les erreurs de calcul.

Bien sûr, non sans inconvénients. Tout d'abord, ARKit est disponible uniquement sur les appareils avec iOS 11+, n'est pris en charge que sur iPhone 6s et moins, iPad Pro (9.7, 10.5 ou 12.9). Malheureusement, cela peut aliéner les clients qui ont peur de perdre une partie de leur public cible.

ARKit est conçu de telle manière que les informations sur les objets du monde environnant et la position de l'appareil dans celui-ci soient constamment calibrées. Pour cette raison, au début de la session, alors que les données ne sont pas assez précises, un sentiment «d'instabilité» du travail se crée, dont il ne sera pas possible de se débarrasser. De plus, si la séance est assez longue, mineure, semble-t-il, des erreurs dans les indicateurs des capteurs s'accumuleront et deviendront plus visibles.

Lors de la reconnaissance des images, des problèmes surviennent avec le positionnement de l'objet AR, l'objet flotte et n'est pas fixé clairement au point indiqué. Un comportement similaire est observé dans l' exemple publié par Apple . Cependant, un objet placé à un point donné de l'espace ne bouge pratiquement pas.

Dans certains cas (petites images en noir et blanc de mauvaise qualité) le marqueur est reconnu, mais le système ne détermine pas correctement ses coordonnées. Par conséquent, l'objet AR est dessiné au mauvais endroit.

ARKit est très facile à apprendre, pour commencer, vous avez besoin d'un minimum de connaissances. Un nombre assez important d'articles de formation et d'exemples de code ont déjà été publiés sur le Web, et la communauté est vaste et réactive, il ne sera donc pas difficile de trouver des réponses aux questions posées lors de la rédaction du code.

Opencv


La bibliothèque OpenCV écrite en C ++ est distribuée gratuitement et vous donne la possibilité de télécharger le SDK iOS depuis le site officiel ou de le compiler vous-même.

Déjà au stade de l'introduction des fans, Swift attend une quête fascinante pour éliminer les erreurs de compilation, qui menace de s'étirer pendant plusieurs heures. Heureusement, des instructions étape par étape sont disponibles sur le Web publiées par nos camarades qui ont déjà surmonté un cadre intraitable (par exemple, OpenCV avec Swift - étape par étape ).

Après avoir finalement réussi à démarrer le projet avec la bibliothèque connectée, la question se posera, que faire ensuite. Vous décidez peut-être de rechercher des tutoriels sur le site officiel. Là, les développeurs iOS attendront trois exemples d'utilisation de l'ancienne version du framework dans des projets axés sur iOS 8. Il n'y a pas tellement d'articles modernes sur le développement mobile avec OpenCV. Apparemment, cela est dû au fait que tous ceux qui veulent maîtriser cette bibliothèque l'ont fait il y a longtemps et n'ont plus besoin d'explications.

Cependant, les débutants ont encore une chance de maîtriser sans aucun doute cet outil puissant. Cependant, cela prendra beaucoup de temps et d'efforts. Comme toute autre bibliothèque de bas niveau, OpenCV nécessite une étude approfondie et approfondie, une analyse détaillée de la documentation, passant en revue des milliers de discussions sur les forums à la recherche d'une réponse à votre question et des expériences sans fin.

Soit dit en passant, n'oubliez pas d'ajouter à cela un peu plus de temps pour restaurer le cours universitaire de mathématiques en mémoire, car OpenCV n'affichera pas les formules pour vous.

Wikitude


Pour commencer, Wikitude est un framework payant et nullement bon marché . La version gratuite contient des filigranes, vous ne pouvez donc pas l'utiliser pour les versions.

Néanmoins, la bibliothèque en vaut la peine. Contrairement à ARKit, il prend en charge des appareils et des versions de système encore plus anciens. Le produit est bien documenté, contient de nombreux articles, leçons et exemples de code, de sorte que l'intégration et la mise en œuvre des tâches les plus simples pour un programmeur non préparé ne prendront que quelques heures.

La portée principale de la bibliothèque est la reconnaissance des marqueurs. Comme ce dernier, toutes les images sans canal alpha peuvent être utilisées. Certes, Wikitude ne fonctionne qu'avec des formats natifs. Les images des marqueurs doivent être emballées au format .wtc, les modèles 3D doivent être convertis en fichiers .wt3. En toute équité, il convient de noter que Wikitude fournit des outils de conversion sur son site Web.

En général, le cadre remplit bien sa tâche: les marqueurs sont reconnus, les objets AR sont placés là où vous l'aviez prévu, ne nagent pas lorsque vous changez l'angle de vue ou déplacez la caméra. Publier une photo, une vidéo ou un modèle 3D n'est pas difficile, ainsi que d'assurer leur interactivité. Le travail simultané avec plusieurs marqueurs est pris en charge, mais lors de la configuration des classes de bibliothèque, il est préférable de limiter leur nombre pour améliorer les performances.

Cependant, je note que dans des conditions d'éclairage médiocres, ainsi que des mouvements imprécis de l'appareil, il y a des problèmes de reconnaissance des marqueurs même si des images source de haute qualité ont été utilisées pour les créer.

Wikitude prend en charge JS et la version native du SDK.

Si vous choisissez la version JS pour l'intégration, préparez-vous à rejeter la pratique Swift ou Objective-C qui vous tient à cœur et concentrez-vous sur l'écriture de code JavaScript. Et puisque ce dernier est assez pénible lorsque vous travaillez dans Xcode, installez Sublime ou l'un de ses substituts en même temps. Et essayez d'écrire tout de suite, car le processus de débogage et de correction des erreurs ne sera pas facile.

Un autre point concerne l'optimisation. Lorsque vous interagissez avec des objets JS AR pendant n'importe quelle durée, la version du framework commence à ralentir sensiblement, fps draine beaucoup, ce qui n'est pas surprenant, cependant.

La version native du SDK, avec toute sa convivialité, est pratiquement dépourvue de «magie». En fait, il vous informe uniquement que le marqueur est reconnu, rapporte son identifiant et ses coordonnées dans l'espace, après quoi il vous passe le drapeau. Ensuite, vous êtes libre d'utiliser votre outil préféré, par exemple, OpenGL, pour dessiner des objets AR.

Conclusion


Donc, si vous êtes un débutant qui a décidé de s'essayer à la réalité augmentée, tout dépend de votre client et de ses besoins. Si le client n'est pas désolé de dépenser plusieurs milliers d'euros sur un framework payant de haute qualité, et que vous n'avez pas peur de JavaScript ou d'OpenGL, prenez Wikitude. Sinon, commencez avec ARKit. Grâce à de nombreux exemples et au support de la communauté, vous pouvez rapidement mettre en œuvre des tâches simples et «tester» cette technologie. Ensuite, lorsque vous commencerez à comprendre ce qui est quoi et à vous y habituer un peu, il sera possible de prendre d'assaut l'OpenCV de bas niveau et de conquérir des pics auparavant inaccessibles.

Source: https://habr.com/ru/post/fr413401/


All Articles