Vision par ordinateurVision par ordinateur
Vision par ordinateur10 min de lecture

L’IA synthétise des vidéos fluides à partir de quelques images !

Construisons des modèles 3D à partir de quelques photos…. Alors, devrions-nous utiliser ce genre de modèle lorsqu’il met en scène des humains ?

Mis à jour le 30 oct. 2021
L’IA synthétise des vidéos fluides à partir de quelques images !
Sommaire

Croyez-le ou non, ce que vous voyez n’est en fait pas une vidéo.
Le résultat a été créé à partir d’une simple collection de photos transformée en modèle en 3 dimensions ! Et le plus intéressant, c’est qu’il n’a même pas fallu mille images, seulement quelques-unes, pour ensuite créer l’information manquante ! Comme vous pouvez le voir, les résultats sont incroyables, mais ils ne sont pas faciles à générer et exigent un peu plus que les seules images comme inputs. Revenons un peu en arrière….

Imaginez que vous voulez générer un modèle 3D à partir d’un ensemble de photos que vous avez prises. En plus de ces images, vous devrez aussi fournir un nuage de points au modèle.

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

L’image d’un nuage de points représentant un tore. Image tirée de Wikipédia.

Un nuage de points est essentiellement la forme la plus simple d’un modèle 3D. Vous pouvez le voir comme une ébauche de votre modèle 3D, représentée par des points clairsemés dans l’espace 3D, exactement comme ceci. Ces points possèdent aussi les couleurs et la luminance appropriées provenant des images que vous avez prises. Un nuage de points est facile à créer à partir de plusieurs photos : il suffit de trianguler les points correspondants pour comprendre leur position dans l’espace 3D.

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Génération d’un nuage de points à partir de plusieurs vues de caméra. Image tirée de The Haskins Society.

Au fait, si vous trouvez cela intéressant, je vous invite à suivre gratuitement le blogue et à partager ces connaissances en envoyant l’article à un ami. Je suis certain que ça lui plaira et qu’il vous sera reconnaissant de lui avoir appris quelque chose de nouveau ! Sinon, aucun souci, merci d’avoir regardé !

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Les 3 modules. Image tirée de Rückert, D. et al., (2021), ADOP.

D’abord, vous prenez vos images et votre nuage de points, puis vous les envoyez au premier module, le rastériseur. Rappelez-vous que le nuage de points représente essentiellement notre reconstruction 3D initiale, notre première ébauche. Le rastériseur produit une première version de faible qualité de votre image 3D à partir des paramètres de caméra de vos photos et du nuage de points. En gros, il tente de remplir les trous dans la représentation initiale du nuage de points en approximant les couleurs et en comprenant la profondeur.

Cette tâche est très difficile, puisque le module doit comprendre les images, qui ne couvrent pas tous les angles, ainsi que la représentation 3D clairsemée du nuage de points. À cause de ce manque d’information, il pourrait ne pas réussir à remplir intelligemment toute l’image 3D. Voilà pourquoi le résultat ressemble à ceci.

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Qualité du premier rendu. Image tirée de Rückert, D. et al., (2021), ADOP.

Les pixels qui demeurent inconnus sont remplacés par l’arrière-plan, et tout le résultat reste en très faible résolution avec de nombreux artéfacts. Comme il est loin d’être parfait, ce traitement est effectué à plusieurs résolutions afin de fournir plus d’information au prochain module.

Le deuxième module est le moteur de rendu neuronal. Ce moteur est simplement un U-Net comme ceux que nous avons présentés plusieurs fois sur ma chaîne, qui prend une image comme input et en génère une nouvelle version comme output. Il reçoit comme images les rendus incomplets à différentes résolutions, les comprend, puis produit une version en plus haute définition de chaque image en remplissant les trous. Il crée ainsi des images en haute résolution pour tous les points de vue manquants de la scène. Évidemment, lorsque je dis qu’il les comprend, cela signifie que les deux modules sont entraînés ensemble pour y arriver. Ce moteur de rendu neuronal produit de nouvelles images HDR du rendu, ou images à grande plage dynamique, qui sont essentiellement des images plus réalistes et en haute résolution de la scène 3D, avec un meilleur éclairage. Les résultats HDR ressemblent en gros à des images de la scène dans le monde réel. C’est parce que les images HDR offrent une plage de luminosité beaucoup plus large que les images encodées en JPEG traditionnelles, où la luminosité ne peut être encodée que sur 8 bits avec un rapport de 255:1. Le résultat ne serait donc pas très beau avec un format semblable.

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Un troisième et dernier module, le Tonemapper, est ajouté pour prendre cette plage plus large et apprendre une transformation intelligente qui convient mieux à l’encodage sur 8 bits. Ce troisième module prend ces nouvelles images HDR et les transforme en images LDR qui couvrent toute la scène, soit nos outputs finaux. Les images LDR sont des images à faible plage dynamique et paraissent bien meilleures avec les encodages d’image traditionnels. En gros, ce module apprend à imiter les propriétés physiques de la lentille et du capteur d’un appareil photo numérique afin de produire des outputs semblables à partir de nos précédentes images qui ressemblent au monde réel.

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Les 3 modules. Image tirée de Rückert, D. et al., (2021), ADOP.

Cet algorithme comporte essentiellement quatre étapes :
1. Créer un nuage de points à partir de vos images pour obtenir un premier rendu 3D de la scène.
2. Remplir le mieux possible les trous de ce premier rendu avec les images et les informations des caméras. Puis le faire pour plusieurs résolutions d’image.
3. Utiliser ces différentes résolutions du rendu 3D dans un U-Net afin de créer des images HDR de grande qualité de ce rendu pour n’importe quel point de vue.
4. Transformer les images HDR en images LDR pour améliorer la visualisation.

Et voilà ! Vous obtenez des vidéos saisissantes de la scène, exactement comme celle que nous avons vue dans l’exemple présenté plus haut. Comme les chercheurs le mentionnent, l’approche comporte certaines limites. L’une d’elles vient du fait que les résultats dépendent fortement de la qualité du nuage de points fourni, pour des raisons évidentes. De plus, si la caméra est très près d’un objet ou si le nuage de points est trop clairsemé, des trous comme celui-ci peuvent apparaître dans le rendu final. Les résultats demeurent tout de même assez incroyables, compte tenu de la complexité de la tâche ! Nous avons fait d’immenses progrès au cours de la dernière année ! Vous pouvez regarder les vidéos que j’ai réalisées sur d’autres techniques de rendu neuronal il y a moins d’un an et comparer la qualité des résultats. C’est fou !

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Bien sûr, ce n’était qu’un aperçu de ce nouvel article scientifique, qui aborde cette tâche super intéressante d’une manière inédite. Je vous invite à lire leur excellent article pour obtenir plus de détails techniques sur leur implémentation et à consulter leur dépôt GitHub, où se trouvent des modèles préentraînés. Les deux liens figurent dans les références ci-dessous. Merci beaucoup d’avoir lu l’article au complet !


Directement tiré de ma newsletter : le point de vue de Frédérique Godin sur l’éthique de l’IA

Exemple visuel de l’article « L’IA synthétise des vidéos fluides à partir de quelques images ! »

Une question importante qui sert généralement de point de départ à une réflexion éthique est : « devrions-nous le faire ? » Devrions-nous faire x, y, z ? Évidemment, ça dépend.

La première chose qui m’est venue à l’esprit en voyant ce résultat était : « et si des humains étaient concernés ? » En effet, dans ce cas-ci, générer des images de bateaux ou de parcs ne présente pas de grands enjeux… sauf si des personnes s’y trouvent.

Je tiens à insister sur un point. Tous les modèles ne conviennent pas à toutes les situations. Un modèle qui semble plutôt fiable peut entraîner de graves conséquences éthiques. Anticiper ces possibilités est une tâche importante, parfois complexe, qui demande de l’imagination (et de l’humilité, mais nous en reparlerons peut-être une autre fois).

L’éthique et la technique sont intrinsèquement liées. En effet, le caractère éthique d’un modèle ou d’un logiciel repose en partie sur sa dimension technique. Les données sont ici une composante technique pertinente. Sont-elles assez diversifiées ? D’où viennent-elles ? Combien de points de données avons-nous ? Maintenant, avec ces questions en tête, et il y en a d’autres, essayons d’imaginer ce qui pourrait arriver si ce modèle servait à générer des images qui contiennent des humains.

Un dataset peu diversifié pourrait générer des images homogènes dans lesquelles seule une certaine partie de la population est représentée. Cela ferait apparaître la notion de biais, que nous apprenons tous à connaître, mais pourrait aussi altérer notre capacité à représenter fidèlement la réalité.

Voici ce que je veux dire : le modèle ne peut pas générer des éléments sur lesquels il n’a pas été entraîné, des choses qu’il ne connaît pas. Or, la réalité est remplie de diversité, énormément même. Si nous disposons d’une quantité très limitée de données peu diversifiées à partir desquelles extrapoler et générer des images, le réseau profond risque de « remplir le trou » assez maladroitement. Cela pourrait mener à des représentations nuisibles et discriminatoires de personnes, ou à l’absence complète de représentation des minorités. Nous ne pouvons pas effacer des gens de la réalité parce que la technologie n’est pas encore au point. C’est profondément invalidant pour les personnes non représentées et contraire à l’éthique.

Sur une note plus personnelle, je crois que nous devrions faire attention aux technologies que nous déployons et à la place qu’elles occupent dans nos vies. Cela peut sembler exagéré, mais je crains de vivre dans un environnement numérisé produit par des algorithmes. En effet, une prédiction n’est pas la vérité, et j’ai peur que cela soit sur le point de changer.

Alors, dans ce cas, pensons-nous que ce genre de modèle pourrait être utilisé d’une façon nuisible pour des individus ? Clairement, oui.

Par conséquent, devrions-nous utiliser ce genre de modèle lorsqu’il met en scène des humains ? Peut-être pas.

- Segment sur l’éthique de l’IA par Frédérique Godin, M. Sc.


Si vous aimez mon travail et souhaitez rester au courant de l’IA, vous devriez absolument me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à ma newsletter hebdomadaire sur l’IA !

Pour me soutenir :

  • La meilleure façon de me soutenir est de devenir membre de ce site Web ou de vous abonner à ma chaîne YouTube si vous aimez le format vidéo.
  • Soutenez financièrement mon travail sur Patreon
  • Suivez-moi ici ou sur Medium
  • Vous voulez vous lancer en IA ou améliorer vos compétences ? Lisez ceci !

Références

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Comment un modèle peut-il créer une vue fluide à partir de seulement quelques photos ?

Il utilise les images disponibles pour déduire une scène tridimensionnelle, puis rend de nouveaux points de vue qui relient les positions originales des caméras.

Le résultat est-il une vidéo enregistrée de façon conventionnelle ?

Non. Le mouvement apparent de la caméra est synthétisé à partir d’une représentation 3D construite avec une collection de photos fixes.

Pourquoi l’encodage des images est-il important pour le résultat ?

Différentes plages dynamiques préservent l’information visuelle différemment. La représentation doit donc convenir aux images sources et au pipeline de rendu.

Quelle préoccupation éthique apparaît lorsque les scènes générées incluent des personnes ?

Un système techniquement convaincant peut créer des vues qui n’ont jamais été enregistrées, ce qui soulève des questions de consentement, d’authenticité et d’utilisation malveillante lorsque des personnes sont représentées.

Comment les équipes devraient-elles évaluer un modèle comme celui-ci avant de le déployer ?

Évaluez à la fois la qualité de la reconstruction et les utilisations malveillantes plausibles, en vérifiant surtout si des images générées de personnes pourraient être prises pour un véritable enregistrement.

Quel est l’apport du nuage de points à la reconstruction ?

Il fournit une première ébauche clairsemée de la géométrie 3D, des couleurs et des relations entre les caméras de la scène. Si cette ébauche est mauvaise ou trop clairsemée, le rendu final peut laisser des trous visibles.