June 2015

Living Joconde

Livré en Juin 2015

Un moteur d’émotion pour Mona -IA- Lisa

Fin 2014, lors d’un événement parisien sur le jeu vidéo, les EIGD (European Indie Game Days), Carole Faure que j’avais déjà rencontrée auparavant, me met en contact avec deux de ses étudiants qui avaient des problèmes techniques en utilisant Unity. Déjà expert sur le sujet (cela fait déjà 7 ans que je l’utilise à ce moment là), je prends un peu de temps pour comprendre leur problématique et leur expliquer le chemin à suivre pour la résoudre. Ce furent les premiers “cours” donnés à des étudiants de l’IIM Paris (Institut Internet et Multimédia à La Défense), qui ont continués ensuite les années suivantes: Unity3D, direction technique, R&D, game jam.

Et courant 2015, une bourse aux projets - des projets portés par une équipe d’étudiants pour un client externe - dont le commanditaire était Florent Aziosmanoff, avait pour thème Mona Lisa. L’objectif était de rendre le tableau de Léonard de Vinci vivant, et l’auteur avait pour ambition de conserver le caractère émotionnel d’origine de la Mona Lisa et de le faire ressentir au visiteur.

Une relation intime avec Mona Lisa

Les étudiants ont donc démarré le projet, en ayant comme tuteur Jean-Claude Heudin, directeur de l’IIM à ce moment là et expert en Intelligence Articifielle, et Florent Aziosmanoff comme client. Les étudiants en création 3D sont également encadrés par le responsable pédagogique de cette section, et Jean-Claude Heudin fait appel à moi pour superviser les étudiants qui sont chargés du développement logiciel avec Unity3D.

Il reste 2 mois avant l’exposition, il faut aller vite !

Les étudiants ont des cours en parallèle et les premières semaines sur le projet montrent vite leurs limites: nous n’aurons jamais le temps de terminer le projet pour la date prévue de l’exposition ! Un (petit) devis plus tard, me voici engagé pour prendre le développement à bras le corps: au lieu de superviser les étudiants, je leur montre comment développer le système tout en effectuant le développement du système.

une Mona Lisa, deux Mona Lisa, trois Mona Lisa

L’idée de Florent n’est pas d’avoir uniquement un tableau interactif qui réagit au public, mais d’avoir un personnage virtuel qui ressent des émotions à partir de ce qu’il perçoit d’autant de lieux que possible: ainsi, s’il y a 10 tableaux exposés en 10 lieux différents, tous sont interconnectés pour que l’humeur de la Living Joconde prenne en compte tout ce qu’il se passe dans tous les environnements. Elle est donc composée d’un serveur central ayant une mini base de données, d’un “moteur d’émotion”, un réseau de neurones qui prend en compte les données reçues de tous les capteurs, et d’une application stand alone (un exécutable PC) qui est chargée à la fois d’afficher Mona Lisa vivante en grandeur nature (sur un écran 4K en portrait) et de capter son environnement (avec un capteur Kinect 2) : combien de personnes sont proches d’elle, est-ce qu’elles la regardent, est-ce qu’elles sont souriantes ?

Le réseau de neurones se nourrit des données et à l’aide de paramètres correspondant au “caractère” de Mona Lisa (est-elle plutôt introvertie ou non, etc), il transpose ces perceptions en alimentant des pseudo neurotransmetteurs: dopamine, norépinéphrine et sérotonine. A partir des niveaux de ces neurotransmetteurs virtuels, on va obtenir une “position” dans un cube dont chaque coin correspond à une humeur particulière: colère, joie, intérêt, surprise, dégoût, colère, peur et honte, et bien sûr tous les intermédiaires.

Côté application Unity3D, cela correspond à alimenter un animator avec toutes ces humeurs tout d’abord qui vont correspondre chacune d’elle à une animation spécifique du buste pour le tableau global, mais également à faire varier d’autres paramètres : le mouvement de ses yeux, le clignement des paupières, sa respiration. Car si vous vous approchez un peu, elle va vous suivre du regard, mais un peu trop, et elle va vous éviter au contraire: ce n’est donc pas uniquement une humeur = une animation. L’application doit également envoyer les informations du capteur Kinect (et plus tard d’une caméra, pour la version tablette), mais aussi récupérer les informations fournies par le réseau de neurones qui tourne sur le serveur, en javascript.

une Mona Lisa autonome, c’est bien aussi

Une fois l’exposition passée, nous tirons les conclusions de cette exposition: comme il fallait s’y attendre avec les expositions, la connection internet s’est révélée insuffisante, et nous avons finalement installé le serveur, la base de données et l’application sur une seule machine: celle qui présentait la Joconde au public.

Et comme cité plus haut, une version tablette grand format verra le jour également, une sorte de “mini tableau” à mettre chez soi.

Ce projet suscitera l’attention de nombreuses personnes durant les années de la société, et malgré des interactions très limitées et totalement indirectes (ce n’est pas la personne unique devant le tableau qui fait réagir Mona Lisa, mais toutes les personnes qui sont passées devant qui auront changé son humeur), ce projet créé de l’admiration parmi son public. Tous les ans, nous avions des demandes pour la présenter. Tout le monde était fasciné par ce tableau de Léonard de Vinci, et ces interactions si particulières. Certains venaient nous voir en disant:

Elle nous parle, vous savez

Crédits

  • Développement IA (JS) : Jean-Claude Heudin
  • Développement (autre + adaptation IA en C#) : Frédéric Rolland-Porché
  • Modélisation et animation 3D : IIM