ARKit : une révolution pour la réalité augmentée mobile ?

Après l’avoir présenté lors de sa conférence pour développeurs WWDC en juin, Apple a déployé le 19 septembre dernier son nouveau framework de réalité augmentée, ARKit.

Cette annonce a eu un impact énorme puisque beaucoup de démos et d’applications ont vu le jour, démontrant la puissance de ce framework. En effet, c’est le premier outil permettant à un développeur de concevoir une application utilisant la réalité augmentée, sans réellement avoir besoin de comprendre les algorithmes qu’il y a derrière. Alors effectivement, pour l’avoir testée au KZS LAB, la solution proposée par Apple est assez impressionnante, mais est-elle réellement nouvelle ? Pour cela, essayons de comprendre comment cette technologie fonctionne.

Les systèmes d’odométrie visuelle et inertielle

Techniquement, ARKit repose sur un système d’odométrie visuelle et inertielle (VIO). Cette technologie permet de suivre votre position dans l’espace (votre pose, i.e. votre position et votre orientation) en temps réel, en utilisant pour seuls capteurs une caméra et une centrale inertielle (IMU), deux capteurs embarqués dans la majorité des Smartphones actuels. Cela permet donc d’adapter votre point de vue sur la scène virtuelle en fonction de votre pose, rendant ainsi l’expérience plus réelle. Les systèmes de VIO réalisent deux estimations de pose en parallèle : l’une utilisant uniquement la caméra, et l’autre utilisant uniquement l’IMU. Ces deux estimations sont ensuite fusionnées à l’aide d’un filtre de Kalman pour fournir une estimation la plus proche possible de la pose réelle.

Adaptation du point de vue en fonction de la pose

Ces deux techniques d’estimation de pose (par caméra et par IMU) possèdent chacune leurs forces et faiblesses. Celle utilisant la caméra est très dépendante de l’environnement puisqu’elle utilise la détection de points clés (angles, points saillants) du monde réel pour estimer son déplacement. Cette technique devient donc peu efficace dans un environnement peu texturé par exemple. De plus, l’estimation de pose est réalisée sur chaque nouvelle image de la caméra, soit généralement 30 fois par seconde. A cette fréquence, des mouvements rapides de la caméra provoquent des flous dans les images qui rendent alors l’estimation moins fiable. Au contraire, les IMU fonctionnent à une fréquence beaucoup plus élevée (de l’ordre de 1000 données par seconde), ce qui leur permet d’être insensibles aux mouvements rapides. Par contre, l’estimation de pose par une IMU repose sur une double intégration des données brutes du capteur, les erreurs s’accumulent donc rapidement avec le temps.

La force des systèmes de VIO repose donc sur l’utilisation combinée de ces deux types de technique. En effet, les forces de chaque système compense les faiblesses de l’autre. Par exemple, si la caméra vise une zone comportant peu de points clés nécessaire à l’estimation de pose, l’IMU permettra de conserver une estimation correcte. De la même manière, lors d’une situation immobile, le système visuel fournira une meilleure estimation que le système inertiel qui sera instable à cause du bruit des capteurs.

Et ARKit dans tout ça ?

Les systèmes de VIO sont étudiés depuis de nombreuses années. Les technologies associées sont donc très connues, mais peu d’implémentations grand public existent aujourd’hui. Avec ARKit, Apple a su combler ce manque et permet ainsi à n’importe quel développeur de concevoir une application mobile utilisant la réalité augmentée. Pourtant, d’autres outils ont fait parler d’eux dans le milieu de la réalité augmentée, bien avant l’arrivée d’ARKit : Tango de Google et Hololens de Microsoft.

Ces deux produits reposent sur des spécifications matérielles strictes, comme une caméra de profondeur pour Tango, ou des unités de calcul spécifiques pour Hololense. Ce sont des contraintes fortes qui ont permis à Apple de rattraper son retard dans le domaine. En effet, Tango et Hololens intègrent tous les deux un système de VIO très similaire à celui utilisé par ARKit qui ne nécessite qu’une caméra et une IMU pour fonctionner. Google et Microsoft possèdent donc déjà la brique logicielle nécessaire à la création d’un système de VIO comme ARKit. Il leur suffisait donc d’extraire ce module de leurs produits respectifs pour s’abstreindre des contraintes matérielles et fournir un système de VIO pour les Smartphones Android et Windows. Alors pourquoi ne l’ont-ils pas fait ?

Synchronisation entre une caméra et une IMU

Les raisons sont probablement purement commerciales. En effet, pour fournir de très bons résultats, les systèmes de VIO s’appuient essentiellement sur une calibration parfaite de la caméra avec la centrale inertielle, notamment pour synchroniser les deux capteurs. Cette phase de calibration doit par exemple permettre au système de savoir quelle donnée de l’IMU correspond au début d’une capture de la caméra et laquelle correspond à la fin. C’est une étape très délicate qui se passe au niveau matériel, et qui est spécifique à chaque modèle de capteur. Il y a donc une dépendance très forte entre les couches matérielles et logicielles nécessaire à la conception d’un bon système de VIO.

On comprend donc l’avantage d’Apple sur ce point. Avec un nombre limité de dispositifs distribués à grande échelle et une maîtrise complète des chaînes logicielles et matérielles, la marque à la pomme a pu se permettre de passer beaucoup de temps (et surement aussi d’argent) à réaliser parfaitement cette phase de calibration pour ces dispositifs. Là où Google et Microsoft devaient se confronter à une multitude de dispositifs avec un volume de vente moins important pour chacun, rendant ainsi l’opération beaucoup plus coûteuse.

Un concurrent : ARCore

Quelques semaines seulement après l’annonce d’ARKit par Apple, Google a à son tour annoncé la sortie d’ARCore, un produit similaire à ARKit. Il semblerait donc que Google ait finalement décidé de proposer plus largement son système de VIO. Pour des raisons relatives à la complexité de l’étape de calibration des capteurs évoquée dans le paragraphe précédent, ARCore n’est pour l’instant compatible qu’avec le Samsung S8 et le Google Pixel. L’annonce a donc fait un peu moins de bruit que celle d’Apple, puisque le public visé est moins large, mais il ne fait nul doute que Google va tenter de combler son « retard », et que la majorité des prochains dispositifs Android seront compatibles avec ARCore.

Conclusion

Techniquement, ARKit n’est donc pas vraiment une révolution. ARCore possède par exemple des capacités similaires et est utilisé depuis plusieurs années dans le projet Tango. Apple a su se différencier en intégrant sa technologie à iOS 11, la rendant accessible à tous les dispositifs compatibles avec cette version d’iOS, alors que Google reste brider par des contraintes matérielles ne permettant pas d’adapter sa technologie à tous les dispositifs Android. Les systèmes de VIO sont donc aujourd’hui largement assez matures pour être intégrés facilement dans des applications grand public. La difficulté n’est donc plus de concevoir des applications de ce type, mais plutôt de concevoir des applications qui aient du sens. Il est en tout cas certains qu’il y a un marché énorme pour ce type d’applications, et que les technologies associées vont continuer d’évoluer dans les prochaines années pour créer une expérience utilisateur toujours meilleure.

 

1 réaction sur “ ARKit : une révolution pour la réalité augmentée mobile ? ”

  1. Ping ARKit – ARCore – Vuforia – KZSLAB : Kaizen Solutions

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.