ARKit : le premier pas de géant d'Apple dans la réalité augmentée

Arnaud de la Grandière |

Lors de son annonce, ARKit a fait beaucoup de bruit, y compris dans le landerneau de la recherche de pointe sur la réalité augmentée. Il faut dire que le framework d’Apple dépasse de la tête et des épaules tout ce qui s’est fait dans le domaine jusqu’à aujourd’hui. En outre, la robustesse exceptionnelle de son tracking (suivi du mouvement des éléments dans l'image, ndlr) ouvre des perspectives bien plus alléchantes que ce qui a été fait jusqu’ici.

En quoi ça consiste ?

Tout le monde ou presque est aujourd’hui familier avec la réalité augmentée, à mi-chemin de la réalité virtuelle et de la réalité tout court, qui consiste à incruster dans l’image captée par la caméra de l’iPhone des éléments qui s’affichent de façon cohérente avec l’environnement. De nombreuses applications s’y sont essayées : Ikea pour simuler la présence de ses meubles dans votre salon ; des filtres photographiques qui vous rajoutent des appendices loufoques en trois dimensions ; des Pokémon du quartier à attraper ; encore des flèches pour vous indiquer la route à prendre jusqu’au prochain McDo et autres bouches de métro.

Un assortiment de méthodes a jusqu’ici été mis au point pour réaliser ces incrustations afin qu’elles soient positionnées et orientées correctement en tenant compte du GPS, de la boussole, de l’accéléromètre et du gyroscope.

Autre approche, de façon purement optique, que ce soit via la reconnaissance faciale pour les filtres photos susmentionnés, ou encore à l’aide de marqueurs fiduciaires, cette dernière méthode étant la plus précise et la plus fiable (fiduciaire signifiant "auquel on peut se fier").

Dans ce cas, il s’agit d’images en 2D, dont l’apparence est connue par un algorithme, qui sont placées dans l’environnement. L'algorithme “reconnaît” le marqueur dans l’image et déduit précisément sa position et son orientation dans l’espace en identifiant les déformations dues à la perspective, ce qui lui donne un point de référence dans l’espace auquel il pourra “ancrer” un objet tridimensionnel.


Ici, des cartes à jouer jouent le rôle de marqueurs fiduciaires

Les méthodes optiques, si elles sont plus précises, ne sont pas pour autant sans inconvénients : que le marqueur ou le visage soit partiellement recouvert et le système “panique”, faisant disparaître l’incrustation ou lui donnant des coordonnées farfelues. Un effet de “décalage/rattrapage” se produit également lorsqu'occasionnellement l’algorithme ne parvient pas à identifier le marqueur sur une trame du flux vidéo.

Et c’est bien là où ARKit fait fort : non seulement son tracking est aussi fiable que s’il utilisait un marqueur fiduciaire, ce dont il s’exempte pourtant, mais en outre il maintient les objets virtuels à leur place, que la caméra soit totalement obstruée ou que l’endroit “réel” auquel l’objet est attaché sorte entièrement du champ. S’il arrive qu’un léger décalage se produise au fil des mouvements de caméra, ARKit se réétalonne automatiquement et replace l’objet à l’endroit prévu.

Mais ARKit ne s’arrête pas en si bon chemin : il détecte les plans horizontaux visibles à l’image (sol, tables), permettant de positionner dessus les objets virtuels, et procède à une estimation de l’éclairage ambiant, autre élément déterminant pour le réalisme des incrustations. Le tout en ne se laissant pas abuser par les surfaces transparentes et/ou réfléchissantes, qui sont pourtant le cauchemar des systèmes de reconnaissance optique.

Les systèmes basés sur les marqueurs fiduciaires ne laissent pas toute liberté de mouvement : si vous vous approchez assez pour que le marqueur sorte partiellement du cadre, l’objet virtuel disparait. Avec ARKit, ce problème n’existe plus, on peut se positionner absolument n’importe comment, pénétrer à l’intérieur des objets virtuels et observer leurs moindres détails.

Comment ça marche ?

ARKit exploite non seulement la centrale inertielle de l’iPhone pour le situer dans l’espace, mais également la reconnaissance visuelle dans les images fournies par la caméra. ARKit identifie en permanence les points “intéressants” de l’image (c’est-à-dire ceux qui sont identifiables et qu’il est possible de tracker : contours, textures, angles, couleurs adjacentes, etc) et surveille leur déplacement relatif les uns aux autres.

En somme, ARKit transforme l’environnement lui-même en un gigantesque marqueur fiduciaire, le tout sans savoir à quoi il ressemble préalablement. Cependant, il ne suffit pas d’identifier et de tracker ces points pour y parvenir : en effet, la distance qui sépare deux points d’intérêt n’est pas susceptible d’être constante, étant donné les effets de la perspective, ou tout simplement de la présence d’un sujet en mouvement dans le cadre. Il faut donc non seulement identifier ces points, mais également déduire ce qu’il se passe dans l’image pour déterminer quoi en faire. C’est notamment par ce biais qu’ARKit détecte les plans horizontaux.

Aussi impressionnant soit-il, le système a malgré tout des limites : il suffit que l’image ne contienne pas de points intéressants (mur blanc uniforme, ou pas assez de luminosité) ou que trop d’éléments se déplacent à l’image (foule, reflets d’un plan d’eau…) pour qu’il devienne difficile de faire une estimation fiable. Cependant ARKit tient compte de ces cas de figure et indiquera à l’utilisateur ce qu’il peut faire pour arranger les choses.

Il résulte de cette analyse des images trois éléments exploitables par n’importe quel développeur tirant parti d’ARKit : la matrice de transformation de l’iPhone (c’est-à-dire un groupe de vecteurs tridimensionnels incluant sa position et son orientation), les plans horizontaux détectés, et l’illumination de la scène. Les paramètres de la caméra sont également transmis afin qu’ils soient appliqués à son homologue virtuel et que les deux images se correspondent en tout point.

ARKit permet donc la prouesse d’un tracking d’une robustesse inégalée, comparable, voire supérieure, à ce que Google a pu obtenir avec sa plateforme Tango.

Le précédent de Tango

Il faut ici faire un bref aparté sur cette initiative de Google, la première à sortir du labo Google X en 2012. Menée par Johnny Lee (qui s’était fait remarquer il y a quelques années pour ses hacks de la Wiimote), cette plateforme cumule d’une part un jeu d’API dédié à la réalité augmentée et d’autre part des composants matériels permettant de capter les distances. Il en résulte une modélisation 3D en temps réel de l’environnement : Tango a une représentation tridimensionnelle fidèle et fiable de l’environnement non pas en déduisant ce que la caméra voit, mais bien par le biais de véritables relevés topographiques.

Mais la fragmentation d’Android étant ce qu’elle est, Tango n’a pas fait florès pour l’heure : depuis son annonce officielle en 2014, il n’y a à ce jour que deux smartphones qui intègrent Tango : le Lenovo Phab 2 Pro lancé en août 2016 et l’Asus Zenfone AR prévu pour cet été. Et les quelques annonces consacrées à Tango lors du dernier Google I/O ne donnent pas le sentiment que la plateforme a particulièrement le vent en poupe.

En conséquence, il n’y a qu’une poignée d’applications qui tirent parti de la plateforme, et Google se retrouve dans le paradoxe de l’œuf et de la poule : les consommateurs n’achèteront pas les smartphones compatibles Tango s’il n’y a pas suffisamment d’applications qui en profitent, et les développeurs ne produiront pas d’application utilisant Tango s’il n’y a pas assez d’utilisateurs sur la plateforme… sans parler de convaincre d’autres fabricants de smartphones de se jeter à l’eau.

Apple a résolu cette quadrature du cercle en rendant chaque appareil iOS disposant au minimum d’un processeur A9 compatible avec la réalité augmentée d’ARKit. Elle démarre ainsi avec un parc existant déjà très conséquent : iPhone 6s et SE minimum ou iPad 5 et Pro.

L’iPhone un peu plus “aware”

L’une des révolutions les plus fondamentales de l’iPhone est qu’il a ouvert l’accès du “monde réel” à l’ordinateur, permettant des applications qui lui étaient autrefois inaccessibles à cause même de son facteur de forme. Le seul fait de pouvoir emporter son iPhone partout, et de pouvoir capter son environnement, a permis une quantité de nouveaux services qui relevaient, il n’y a pas si longtemps encore, de la pure science-fiction.

Au fil des ans, Apple n’a cessé de greffer des organes sensoriels à son smartphone : capteurs de proximité et de luminosité, accéléromètre, GPS, boussole, gyroscope trois axes, baromètre, deux voire trois caméras, bref, outre une véritable centrale inertielle digne d’un cockpit d’avion, tout ce qu’il est possible d’intégrer pour mettre l’environnement à portée d’analyse du processeur de l’iPhone.

Au-delà même de ces organes, diverses technologies comme la triangulation Wi-Fi ou encore les iBeacon exploitent les ondes radio pour améliorer encore la géo-localisation. Chacun de ces “sens” a offert à l’iPhone les moyens de rendre de nouveaux services. À l’aune des informations industrielles que l'on a (lire iPhone 8 : STMicroelectronics fournira des imageurs 3D à Apple), mais surtout de la présentation d’ARKit, il ne fait aucun doute que le prochain iPhone disposera d’un capteur de profondeur.

Mais… pour quoi faire ?

Pourquoi diable intégrer une caméra temps de vol à l’iPhone 8 si ARKit fait déjà aussi bien que Tango sans même avoir besoin d’un capteur de profondeur ? Pour plusieurs raisons.

D’abord pour la gestion des collisions : si ARKit est capable de détecter les plans horizontaux sur lesquels faire reposer les objets virtuels, il n’en est pas de même pour tous les autres angles, et si vous faites rouler un ballon virtuel au sol il ne rebondira pas sur les obstacles sur sa trajectoire, que ce soit vos murs ou votre canapé.

D’autre part, un capteur de profondeur est également nécessaire pour gérer les occlusions, faute de quoi, les objets virtuels s’afficheront en surimpression de tout objet passant à l’avant plan, de quoi ruiner l’illusion de l’incrustation. Enfin, un capteur de profondeur permettra à l’iPhone de percevoir tous les volumes de l’environnement et de pouvoir les traiter, permettant de libérer le plein potentiel de la réalité augmentée.

On pourrait considérer qu’il s’agit là d’une débauche de technologie s’il ne s’agit que d’afficher des oreilles de chien sur des selfies rigolos, mais si les applications de réalité augmentée n’ont jusqu’ici fait figure que de plaisants gadgets, ça n’est que par les limitations du tracking, limitations qui sont donc sur le point de s’envoler, comme les démos de mesure avec ARKit permettent de le… mesurer.

Et les applications en deviennent autrement plus intéressantes : navigation en intérieur ultra précise, éducation et formation, tourisme, et même… véhicules autonomes ! Le capteur de profondeur à lui seul permet également d’envisager des applications pour l’accessibilité, l’iPhone remplaçant la canne blanche ou le chien-guide pour les malvoyants et les équipant d’un sonar à moyenne portée, traduisant les volumes environnants en impulsions sonores.

Mais il ne s’agit là que d’un premier pan, qui ouvre la voie à nombre de problèmes plus ou moins compliqués, notamment en matière d’intelligence artificielle : lorsque votre chambre à coucher devient le niveau d’un jeu en réalité augmentée, il faut que le level design et les animations s’adaptent à la configuration physique des volumes pour fournir un contenu cohérent et fonctionnel. Apple a dans son escarcelle une petite poignée de sociétés innovantes en matière de réalité augmentée, dont MetaIO, acquise en 2015, qui permet de reconnaître des objets physiques pour en faire des marqueurs fiduciaires pour la réalité augmentée, mais également Flyby Media et indoor.io.

Metaio en fonctionnement avant son acquisition par Apple

Tim Cook a estimé que la réalité augmentée pourrait être une technologie aussi importante que l’iPhone à lui seul. Et les projections économiques vont également dans ce sens : elles accordent un marché de 120 milliards de dollars d’ici 2020 (contre 30 milliards pour la réalité virtuelle).

D’ici à la sortie d’iOS 11, les développeurs vont donc se précipiter avec gourmandise sur cette merveille de technologie, comme on peut le voir sur le site Made with ARKit consacré à leurs divers essais. Dans quelques mois, Apple disposera non seulement d’une plateforme mure pour la réalité augmentée, mais également d’un catalogue d’applications. Toutes les pièces du puzzle seront alors en place, il ne manquera plus qu’une paire de lunettes pour compléter le tableau…

Et la suite ?

Depuis les premières annonces d'Oculus en 2012, la réalité virtuelle se trouve un second souffle. L'idée, à vrai dire, ne date pas d'aujourd'hui : Jaron Lanier formalisait ses principes dès 1985 (à l'aide de Swivel 3D sur Macintosh), sans jamais que la technologie n'aboutisse à quoi que ce soit de bien probant commercialement parlant depuis.

Les choses avancent dorénavant : Facebook, Google, Sony et d'autres s'investissent sérieusement dans le domaine. Mais si l'on peut acquérir un casque de réalité virtuelle en bonne et due forme et trouver quelques jeux et applications pour cette nouvelle plateforme matérielle, la technologie demeure désespérément à quelques années de la maturité technique. Casques trop lourds et volumineux, gourmandise intimidante sur la puissance de calcul, tarifs élevés… elle se réserve encore aux early adopters. Tout indique cependant que les planètes sont sur le point de s'aligner.

La prochaine génération de lunettes VR/AR ne vous collera plus d'écrans LCD en face des yeux au travers de lentilles, mais passera à la projection de champs lumineux (light fields). Objet d'intenses recherches depuis quelques années (les premières publications du Siggraph qui s'y consacrent remontent à une vingtaine d'années), le principe est holographique au sens étymologique du terme, puisqu'il consiste à reproduire l'intégralité des rayons lumineux d'une scène dans l'espace, ce qui offre l'avantage de se passer des fameuses lentilles qui contribuent à l'épaisseur et au poids non négligeables des casques de réalité virtuelle.

Le tout en permettant à l'utilisateur de faire le point sur n'importe quelle distance comme il le ferait naturellement, un élément indispensable pour l'incrustation réaliste d'objets en réalité augmentée. C'est tout le propos du mystérieux projet de Magic Leap dans lequel Google a investi pas moins de 1,4 milliard de dollars, mais d'autres comme Avegant ou encore Nvidia travaillent sur des projets similaires.

Les avantages ne s'arrêtent pas là puisque le rendu light field peut également permettre de réduire considérablement les besoins en puissance de calcul : au lieu de calculer une quantité astronomique de polygones en 3D en temps réel, un simple polygone peut contenir l'équivalent de toute l'information d'un hologramme dans sa texture.

Et tout un pipeline de production est d'ores et déjà en place pour les contenus réalisés en light field : des caméras 6DoF (pour Six Degrees of Freedom, permettant de modifier le point de vue a volonté) de Lytro et de Facebook, aux logiciels dédiés d'Otoy en passant par les plateformes de diffusion. Un niveau de maturité dont Apple a pour habitude de se saisir pour changer la donne… et elle vient de poser ses premiers pions pour mettre en place son propre écosystème. Quoi qu'il en soit, une chose est sûre : ce nouveau champ de prospection technologique pourrait bien exploser dans les mois à venir.

Accédez aux commentaires de l'article