Trying RealityShiftAR at a Maker Faire booth, the headset's display showing a transformed face

Ingénierie

2023

RealityShiftAR

Un casque AR transparent fait maison qui transforme en temps réel, grâce à l’IA générative, le visage de la personne en face de vous — pour retirer le « bruit » de l’apparence et faciliter la conversation en face à face.

Raspberry Pi

Stable Diffusion

Mediapipe / OpenCV

Boîtier imprimé en 3D

Projet solo

Maker Faire Tokyo 2023

Plateforme

Un casque autonome fonctionnant uniquement sur Raspberry Pi, sans Unity

Pipeline

Capture du visage avec Mediapipe + OpenCV, génération img2img avec Stable Diffusion via Wi-Fi

Mon rôle

Projet solo : conception, logiciel, matériel et démonstration en direct

Présenté à

Maker Faire Tokyo 2023, sous le nom d’ailab*, aux côtés de XSA et SlipperX

Contexte et défi technique

En mai 2023, j’ai présenté à la Kyoto Maker Faire une création qui utilisait Python pour transformer la voix d’une personne — par conversion de formants — en voix de jeune fille, de « beau gosse » ou de méchant d’anime. La remarque lancée par un visiteur — « ce serait drôle si le visage changeait aussi, pas seulement la voix, non ? » — a été le point de départ de ce projet.

C’est devenu une idée plus large : l’apparence ou la voix d’une personne peuvent gêner la conversation en face à face. On se fige devant quelqu’un de mignon, on retient son avis sincère face à un aîné intimidant — l’apparence devient un « bruit » qui brouille ce qui est réellement dit, alors que c’est le contenu qui devrait compter. Puisqu’on ne peut pas changer l’autre, pourquoi ne pas refaire le monde que l’on voit ? En m’inspirant de Phénix : Résurrection d’Osamu Tezuka — où le protagoniste perçoit les humains comme des monstres informes, et les robots comme des humains —, j’ai entrepris de fabriquer des lunettes AR qui piratent la vision.

Le défi technique : en faire un appareil AR autonome qui tourne sur un seul Raspberry Pi, sans moteur lourd comme Unity, qui détecte les visages en temps réel et y superpose une image transformée par l’IA générative sans que cela paraisse manifestement faux.

Défi : Un casque AR autonome, sur Raspberry Pi uniquement, qui remplace un vrai visage par un visage généré, en temps réel — et de façon convaincante.

Rôle et périmètre

Un projet personnel. J’ai tout pris en charge moi-même — conception et définition des besoins, logiciel (détection de visage et pipeline de génération d’images), matériel (conception CAO et impression 3D du boîtier) et animation de la démonstration en direct.

Technologie et architecture

Exigences : un casque AR autonome qui tourne sur un seul Raspberry Pi, sans Unity, et qui transforme un visage avec l’IA générative — en conservant quelque chose des traits de la personne — plutôt que de simplement y plaquer une illustration toute faite.

1. Capture

La caméra du Raspberry Pi filme la scène devant le porteur.

2. Détection et recadrage du visage

Mediapipe détecte le visage ; OpenCV ne recadre que cette zone.

3. Envoi et génération

Le visage recadré est envoyé en Wi-Fi à un PC portable de jeu. Stable Diffusion WebUI, qui y tourne, génère l’image transformée via son API web img2img et la renvoie sur le Pi.

4. Composition et affichage

L’image générée est recomposée à la position du visage d’origine et affichée sur un écran LCD de 7 pouces comme vue AR — une conception où l’on regarde à travers l’écran, sans système optique à lentilles.

System architecture: Raspberry Pi 4 captures video, detects and crops the face, a gaming PC generates the character image with Stable Diffusion, and the Pi composites it onto the LCD

Matériel :

Conception CAO sous Fusion 360 ; la partie en contact avec le visage a été mise en volume par modélisation sculpt.

Le corps des lunettes et le couvercle ont été imprimés en deux pièces sur une imprimante 3D à stéréolithographie (plus d’un jour et 6 heures d’impression, 500 g de filament).

Hardware configuration: Raspberry Pi 4 with an HDMI LCD, camera, Bluetooth headphones and a directional microphone via USB adapterThe finished RealityShiftAR headset held in one hand

Ce qui a demandé du soin

Le délai de génération figeait l’image de la caméra. Stable Diffusion met 2 à 3 secondes par image, et attendre ce résultat de façon synchrone bloquait toute la vue caméra. Corrigé en utilisant le threading de Python pour envoyer en continu les requêtes de génération au PC de jeu sur un thread séparé, découplé de la boucle d’affichage de la caméra.

Essais et erreurs en impression 3D : sur le premier exemplaire, le Raspberry Pi butait contre le couvercle ; le deuxième corrigeait cela mais sortait avec une surface rugueuse. La cause : un filament dégradé — le remplacer par un filament neuf a résolu le problème (et m’a appris que le filament, sensible à l’humidité, demande du soin dans son stockage).

Le Raspberry Pi a surchauffé en pleine démonstration. Rien de tel pendant le débogage à la maison, mais sur deux jours consécutifs à la Maker Faire Tokyo 2023, le Pi a bridé ses performances à cause de la chaleur et a décroché à plusieurs reprises — une leçon sévère sur la nécessité de vrais dissipateurs ou d’un ventilateur.

Particularité de l’IA générative : des images que le créateur n’avait jamais prévues sont aussi apparues — et j’ai choisi de considérer cette surprise comme une partie de l’expérience, pas comme un bug.

Résultats et impact

Démo fonctionnelle

Sur un PC de jeu, j’ai validé un large éventail de transformations en changeant simplement le prompt — plus jeune, plus séduisant, homme âgé, femme âgée, etc.

Garçon façon anime

Fille façon anime

Vieillissement

Un casque terminé

J’ai terminé le boîtier AR transparent fait maison et l’ai partagé sur X (Twitter).

Wearing the finished red RealityShiftAR headset

Maker Faire Tokyo 2023

Présenté comme stand interactif sous le nom d’ailab*, aux côtés de XSA et SlipperX. Des groupes d’étudiants en visite éclataient de rire en voyant le visage transformé des uns et des autres, et les passants qui riaient d’abord s’arrêtaient souvent pour poser des questions.

The RealityShiftAR headset on the exhibit table at Maker Faire Tokyo 2023Visitors gathered around the ailab* booth at Maker Faire Tokyo 2023

Une base sans Unity

Construire sur Raspberry Pi + Python a permis d’intégrer facilement des technologies plus récentes — IA générative, reconnaissance vocale — sans jamais avoir besoin d’Unity.

Enseignements et prochaines étapes

Construire un casque AR fait maison de bout en bout : choisir une conception « regarder à travers l’écran » plutôt qu’un système AR optique complet avec un vrai design de lentilles a permis de garder la difficulté et le calendrier en équilibre.

Côté matériel, j’ai appris par l’expérience à quel point la qualité d’impression 3D dépend de la façon dont le matériau a été stocké.

Tenir deux jours d’affilée sur un salon m’a appris l’importance de la robustesse — la dissipation thermique, mais aussi le simple fait de concevoir les choses pour que débrancher et rebrancher l’alimentation règle la plupart des problèmes.

Je n’avais prévu qu’un seul visage à la maison ; sur le salon, « je veux essayer avec mon ami » revenait sans cesse, ce qui fait de la détection simultanée de plusieurs visages une vraie exigence, pas un simple plus.

Prochaine étape : m’appuyer sur cette base matérielle pour ajouter la conversion de voix et la synthèse vocale, et étendre l’expérience AR à l’ouïe autant qu’à la vue.