Les mondes augmentés et virtuels se développent rapidement, Apple va siffler la fin de la recréation et lancer un écosystème puissant, celui de l'AR. Les fonctionnalités ci-dessous vont changer la donne quand les lunettes seront présentes.
Voici une citation de Marcel Proust cité par Ori Inbar qui préside un organisme (Augmented Reality Consortium) pour la promotion des technologies et des usages de l’AR : « Le véritable voyage de découverte ne consiste pas à chercher de nouveaux paysages, mais à avoir de nouveaux yeux. » La phrase est belle, il est évident que l’AR offre une nouvelle vision de l’instantané d’information virtuelles sur le monde réel dans une profusion jamais atteinte, cela en devient épuisant 🙂
Le PDG d’Apple, Tim Cook, a déclaré que la réalité augmentée « est la prochaine grande chose », et qu’elle « imprègnera toute notre vie ». Et en effet, Apple s’est particulièrement concentré sur la réalité augmentée et l’apprentissage automatique depuis la sortie d’ARKit et de CoreML en 2017. Avec chaque version ultérieure d’iOS, Apple a toujours jeté les bases dans ce domaine, en développant des outils et des cadres d’expériences en constante évolution pour la future AR.
Je ne le dirai jamais assez, mais Apple a fait le rachat qu’il fallait pour construire sa stratégie AR. On dit par exemple que Metaio a été remarqué sur le MWC, leader sur la réalité augmentée qui a été racheté (2015) depuis par Apple qui, selon les rumeurs à l’époque, travaillait sur un projet avec plus de 1 000 développeurs sur le sujet en Israel ! La réalité augmentée pour le géant est un formidable atout s’il trouve le bon moyen de la rendre simple d’usage. Le nombre de personnes qui possèdent déjà un produit Apple tel qu’un iPhone ou un iPad est conséquent, si demain Apple libère un SDK sur l’AR, nous pourrions voir un écosystème naître 🙂
Cette article va mettre en avant des frameworks d’AR les plus utiles d’Apple, tels que ARKit, RealityKit et Vision. Il couvrira également des fonctionnalités précieuses, notamment le LiDAR, Motion Capture, la prise en charge de People Occlusion RealityKit pour la capture d’objets 3D. Les frameworks AR d’Apple sont capables de bien plus que ce qui est couvert ci-dessous. La liste des fonctionnalités ne cesse de s’allonger et il est clair qu’ARKit et RealityKit vont occuper une part importante dans l’avenir d’Apple.
Il est traduit du site Evilmartians.
ARKit 5 et RealityKit 2
ARKit 5 est le framework principal de la plate-forme AR d’Apple. Il utilise une technique appelée odométrie visuelle-inertielle pour créer une illusion AR montrant des objets virtuels placés dans un espace du monde réel. Pour faire apparaître ces objets comme s’ils existaient réellement dans le monde réel, ARKit utilise le matériel de détection de mouvement d’un appareil ainsi que l’analyse de vision par ordinateur et ainsi, nous pouvons superposer des objets animés 2D et 3D interactifs sur n’importe quelle surface tangible visible à travers la caméra sur le appareil. De plus, il fait tout cela en temps réel. Voici un exemple utilisant un élément de l’exemple de projet d’Apple :
Ce framework est livré avec une API simple pour les développeurs et des outils de création AR puissants mais faciles à utiliser pour les artistes AR, tels que Reality Composer et Reality Converter. Il offre de grands avantages : il est gratuit, puissant, en évolution rapide, facile à utiliser et il est hautement optimisé pour le matériel mobile d’Apple. Mais il semble que rien ne soit parfait, quelle que soit la réalité dans laquelle vous vous trouvez, car tout cela étant dit, l’un des inconvénients importants est qu’ARKit est actuellement limité à iOS et iPadOS. Pourtant, si vous avez les outils nécessaires à portée de main, il n’y a aucune raison pour que vous ne puissiez pas commencer à augmenter ces réalités, alors, examinons de plus près ce qu’ils peuvent faire.
Capture de mouvement du visage et du corps
La fonction de capture de mouvement de RealityKit nous permet de suivre les mouvements du corps et du visage d’une personne dans un espace. Le processus commence par l’exécution d’une ARSession avec une configuration correspondante, telle que ARBodyTrackingConfiguration ou ARFaceTrackingConfiguration. La fonction Body Motion Capture nous permet de suivre le mouvement du squelette de tout le corps comme une série d’articulations et d’os. Ceci est utilisé lors de la création d’applications qui analysent les performances sportives des personnes et peuvent avoir des applications telles que le suivi d’un swing de golf, des mouvements de danse, une posture correcte ou lors de la création d’une application qui oblige les utilisateurs à agiter leurs bras sans raison apparente. Le métavers aura besoin de telles fonctions ! RealityKit exécute la marionnette d’un modèle squelette automatiquement en temps réel. Il capture les mouvements du corps d’une personne via la caméra de l’appareil, puis il anime un personnage virtuel à l’écran avec le même ensemble de mouvements basé sur ces données.
Pour s’assurer que les proportions, la hiérarchie des articulations et les conventions de dénomination du personnage personnalisé ne diffèrent pas de manière significative de la compréhension du squelette de RealityKit, Apple recommande de configurer et de truquer un modèle pour la marionnette en utilisant son exemple de modèle de squelette comme base. Le modèle FBX 3D de l’exemple de personnage de robot (en cliquant sur ce lien pour télécharger le fichier) est disponible sur le portail des développeurs Apple.
Le suivi des mouvements du visage fournit un maillage du visage à l’aide de la caméra frontale de l’utilisateur. De plus, cette fonctionnalité peut même détecter des expressions faciales spécifiques, telles que des sourires narquois, des clins d’œil, des bouches ouvertes ou même des langues qui sortent. Consultez la documentation d’Apple sur ARBlendShapeLocation pour plus d’informations et pour trouver la liste complète des traits et expressions du visage qu’il est possible d’identifier. Face Motion Tracking est un mécanisme pratique à utiliser lors de la création d’expériences de réalité augmentée basées sur les visages. Pour illustrer cette idée, un cas d’utilisation courant pourrait être celui des masques faciaux superposés sur le vrai visage de l’utilisateur, comme ceux tirés de votre iPhone en utilisant Message 🙂 Les fonctionnalités de capture de mouvement sont disponibles sur les appareils dotés de processeurs A12 et versions ultérieures ; ceux-ci ont commencé à apparaître dans les iPhone en 2018.
People Occlusion
Pour augmenter les situations de la vie réelle qui contiennent des objets virtuels ensemble dans une scène aux côtés d’humains. Lors du rendu d’une scène AR, il est souvent souhaitable de faire apparaître des objets virtuels derrière les humains dans la scène de manière à ce que le corps de la personne recouvre de manière réaliste ces objets virtuels partiellement ou même complètement. C’est là que la fonction People Occlusion brille vraiment, comme dans l’image de droite :
L’occlusion des personnes d’ARKit peut reconnaître plusieurs humains dans un environnement, y compris leurs mains et leurs pieds. En utilisant le flux de la caméra comme source, ARKit obtient l’effet d’occlusion souhaité en identifiant les zones où se trouvent les personnes dans la prise de vue et, par conséquent, il empêche tout objet virtuel d’être dessiné sur les pixels de cette région.
Il existe plusieurs options disponibles pour le rendu des scènes AR :
- ARView : nous pouvons l’utiliser pour effectuer un rendu dans RealityKit ; c’est le moyen le plus rapide et le plus simple de créer une réalité augmentée sur iOS.
- ARSCNView avec SceneKit : nous pouvons également rendre l’AR à l’intérieur de ceux-ci.
- MTKView : les développeurs peuvent également utiliser toute la puissance du framework Metal avec ARKit pour créer un rendu personnalisé qui dessinera du contenu 3D à l’intérieur de MTKView. C’est l’approche de bas niveau la plus avancée.
Pour activer l’occlusion des personnes dans ARView ou ARSCNView, nous devrons transmettre les options sémantiques de cadre PersonSegmentation ou PersonSegmentationWithDepth lors de l’exécution d’un ARConfiguration.
Notez que tous les appareils iOS ne peuvent pas prendre en charge l’occlusion, c’est pourquoi il incombe au développeur de vérifier la prise en charge de ces options de sémantique de trame par l’appareil. Il est également possible d’utiliser l’occlusion de personnes lors de l’utilisation de rendus personnalisés. Metal a une classe spéciale appelée ARMatteGenerator qui nous permet de générer des caches pour chaque image AR pouvant être utilisée pour rendre nos compositions souhaitées.
Vision
C’est un autre excellent cadre qui aide les développeurs à exploiter la puissance de la vision par ordinateur et du traitement d’images sur les plates-formes Apple. Vision peut être utilisé pour détecter des personnes, du texte et des codes-barres, ainsi que des visages et des repères faciaux (un ensemble de points faciles à trouver sur un visage). Pensez à votre propre expérience en ligne : avez-vous déjà vu quelqu’un utiliser un arrière-plan virtuel lors d’un appel vidéo ? Le framework Vision peut nous aider à implémenter cette fonctionnalité exacte sur de nombreuses plates-formes Apple. De plus, contrairement à ARKit, Vision ne se limite pas à iOS et iPadOS. Son API permet à la fois le traitement en direct et le post-traitement des images à une seule image et cette fonctionnalité fait une grande différence dans les cas où le traitement en temps réel n’est pas nécessaire.
Pour continuer, VNGeneratePersonSegmentationRequest est un nouvel ajout ajouté aux appareils mobiles avec iOS 15, et qui est également apparu avec la sortie de Monterey sur macOS. Son utilisation nous permet de séparer facilement une personne de son environnement dans nos images et vidéos finales. Cette API est équipée d’un certain nombre de paramètres pour le niveau de précision. Pour l’optimisation, les niveaux « rapide » ou « équilibré » sont recommandés pour une utilisation avec des images vidéo, tandis que nous pouvons appliquer le paramètre « précis » lorsque nous avons besoin de photographies de haute qualité.
Avec CVPixelBuffer, nous avons également trois options disponibles pour définir le format de pixel de la sortie. La plupart du temps, cela sera défini sur le format entier 8 bits non signé, mais vous pouvez utiliser kCVPixelFormatType_OneComponent16Half si vous souhaitez utiliser Metal et décharger ainsi un traitement supplémentaire sur le GP.
Reality Composer
L’outil facilite la création, l’édition, le test et le partage de nos expériences AR et 3D. Même si vous n’êtes pas familier avec la réalité augmentée, c’est un excellent point de départ car il ne vous oblige pas à écrire de code. Reality Composer a été développé par Apple et est disponible gratuitement sur l’App Store. Les expériences de réalité augmentée qui ont été créées à l’aide de Reality Composer peuvent être importées dans vos projets Xcode, puis exécutées dans ARView. Cela affiche des expériences de réalité augmentée et intègre le contenu de RealityKit.
Alternativement, toute l’expérience AR peut être prévisualisée dans l’application Reality Composer elle-même à l’aide de votre iPhone ou iPad. Tirer parti de cette fonctionnalité pratique signifie que les développeurs n’ont pas besoin de créer et d’exécuter des projets à chaque fois qu’ils ont besoin d’apporter une modification.
Capture d’objets
En 2021, Apple a introduit la fonction de capture d’objets dans RealityKit. Object Capture permet aux développeurs de convertir des séquences d’images d’objets du monde réel en modèles 3D. Il utilise une technologie de vision par ordinateur appelée « photogrammétrie ». Il vous faudra capturer entre 20 et 200 images de l’objet prises sous tous les angles autour de l’objet. Ces images peuvent être prises sur un iPhone, un iPad ou un reflex numérique. Il faut ensuite convertir cette pile d’images en un objet 3D à l’aide des API de capture d’objets sur votre Mac. Les API de photogrammétrie ne sont disponibles que sur les Mac avec des GPU prenant en charge le lancer de rayons. Vous pouvez ainsi générer des objets 3D à partir d’images en quelques minutes à l’aide de n’importe quelle machine Apple équipée de puce Silicon.
LiDAR
ARKit permet également de faire des astuces assez intéressantes, comme la possibilité d’effectuer une détection d’avion presque instantanée et un placement AR lorsqu’ARKit est utilisé sur des appareils équipés de scanners LiDAR. Cette fonctionnalité est actuellement limitée à une poignée d’appareils Pro qui disposent d’un système LiDAR. La bonne nouvelle, c’est que ces fonctionnalités sont automatiquement activées sur les appareils le prenant en charge sans qu’il soit nécessaire de modifier le code.