Vision par ordinateurApprendre l'IAIngénierie IAVision par ordinateurApprendre l'IA
Vision par ordinateur8 min de lecture

Créer des vidéos animées réalistes en boucle à partir de photos

a) Image d’entrée, b) champ eulérien et c) mouvement nécessaire dans les images. Holynski, Aleksander et al., 2021.

Mis à jour le 01 sept. 2021
Créer des vidéos animées réalistes en boucle à partir de photos
Sommaire

Avez-vous déjà pris une magnifique photo de paysage, puis remarqué plus tard qu’elle n’était pas aussi belle que dans votre souvenir? C’est peut-être parce qu’il est impossible de figer un véritable paysage et de s’attendre à ce qu’il conserve la même apparence. Et si cette photo pouvait être animée, avec les particules qui bougent normalement en mouvement constant, comme au moment où vous l’avez prise? Vous pourriez observer l’eau s’écouler ou la fumée se disperser dans l’air.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

Exemple d’animation. Holynski, Aleksander et al., 2021.

Avez-vous déjà pris une magnifique photo de paysage, puis remarqué plus tard qu’elle n’était pas aussi belle que dans votre souvenir? C’est peut-être parce qu’il est impossible de figer un véritable paysage et de s’attendre à ce qu’il conserve la même apparence. Et si cette photo pouvait être animée, avec les particules qui bougent normalement en mouvement constant, comme au moment où vous l’avez prise? Vous pourriez observer l’eau s’écouler ou la fumée se disperser dans l’air. Eh bien, c’est exactement ce que fait un nouvel algorithme de Facebook et de l’Université de Washington. Il prend une photo, comprend quelles particules devraient bouger et les anime de façon réaliste dans une boucle infinie, tout en conservant le reste de la photo complètement immobile pour créer des vidéos impressionnantes comme celle-ci. Honnêtement, je ne sais pas pourquoi, mais j’ADORE le résultat et je voulais partager leur travail. Que pensez-vous de ces résultats et comment les utiliseriez-vous? Personnellement, dès que le code sera publié, je vais m’en servir comme arrière-plan d’ordinateur.

Maintenant que nous avons vu ce que le modèle peut accomplir, j’espère que vous êtes aussi enthousiaste que moi lorsque j’ai découvert cet article scientifique. Passons à ce qui est encore plus intéressant : comment peut-il partir d’une seule photo et créer une vidéo animée réaliste en boucle? Le processus comprend trois étapes importantes. La première consiste à distinguer ce qui doit être animé de ce qui doit rester immobile. Autrement dit, il faut trouver l’eau, la fumée ou les nuages à animer.

Détecter ces particules en mouvement est évidemment très facile pour les humains, puisque nous pouvons imaginer la vraie scène et son apparence. Mais comment un ordinateur qui voit seulement une photo et ne connaît rien du monde peut-il y parvenir? Eh bien, la réponse se trouve dans la question : nous devons lui enseigner un peu mieux comment le monde fonctionne, ou ici comment il bouge. Pour ce faire, les chercheurs entraînent un modèle d’intelligence artificielle sur des vidéos de vrais paysages plutôt que sur des photos. Il peut ainsi apprendre le comportement habituel de l’eau, de la fumée et des nuages sous la forme d’un champ de flux. Ce champ est une version de l’image d’entrée où la valeur de chaque pixel estime sa direction et sa vitesse à un instant figé. On l’appelle un champ de flux eulérien. Un tel champ examine le mouvement d’un fluide à un endroit fixe plutôt que de suivre ses particules.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

a) Image d’entrée, b) champ eulérien et c) mouvement nécessaire dans les images. Holynski, Aleksander et al., 2021.

Vous pouvez imaginer que vous êtes assis devant une chute et observez toujours exactement les mêmes positions pour voir comment l’eau y change, plutôt que de suivre cette eau jusqu’en bas. C’est précisément ce dont nous avons besoin ici, puisque l’image représente exactement cela : de l’eau qui coule dans une position fixe.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

Mouvement eulérien dans une image. L’approche se concentre sur le mouvement des particules dans un emplacement spatial fixe plutôt que de suivre les particules. Holynski, Aleksander et al., 2021.

À partir de nombreuses vidéos de paysages, les chercheurs commencent donc par identifier ces champs pour chaque vidéo. Cette tâche est assez simple puisque le contenu bouge réellement dans les vidéos et que des techniques bien connues permettent d’identifier les particules en mouvement dans chaque image. Ils utilisent ensuite le flux identifié pour chaque image comme repère afin d’entraîner leur algorithme. L’entraînement commence avec un réseau de traduction d’image à image qui reçoit les images vidéo. Les champs de flux identifiés servent à comparer les sorties et à enseigner au réseau, de façon supervisée, le résultat attendu. Le réseau est corrigé et amélioré de façon itérative selon la différence entre l’image générée et les champs de flux connus. Après cet entraînement, il peut générer ce champ sans aucune aide externe pour n’importe quelle image de paysage reçue. Le fonctionnement ressemble à celui de toute autre architecture de GAN, ou plus précisément d’un encodeur associé à un décodeur. Le modèle encode d’abord l’image d’entrée, puis la décode pour en générer une nouvelle version. Il préserve les caractéristiques spatiales tout en changeant le style de l’image. Ici, il remplace les couleurs par des valeurs de pixels qui représentent un champ de mouvement. Une fois entraîné, le réseau peut produire une carte comme celle-ci. Elle sert pendant toute l’animation, puisque la représentation du champ de flux eulérien n’a pas besoin de changer au fil de la vidéo. Elle indique déjà comment chaque pixel se comportera dans l’image suivante.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

Première étape, premier réseau. Holynski, Aleksander et al., 2021.

La deuxième étape consiste à animer ces sections de l’image de façon réaliste. Pour y parvenir, nous avons seulement besoin de deux choses : l’image d’entrée et l’estimation du flux eulérien, donc statique, que nous venons de trouver. Grâce à cette information, nous savons où les pixels devraient se déplacer selon leur vitesse et leur direction. Mais appliquer directement ce déplacement pose certains problèmes, car quelques pixels pourraient ne recevoir aucune valeur après la transformation. Des trous noirs apparaîtraient alors à l’endroit où le mouvement commence dans l’image. Cela se produit parce que :

  1. le champ de mouvement prédit n’est pas parfait et
  2. certains pixels se retrouveront au même emplacement après leur déplacement

ce qui signifie que le problème s’aggravera avec le temps et produira un résultat semblable à celui-ci.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

Exemple de trous noirs. Holynski, Aleksander et al., 2021.

Comment rendre le processus plus intelligent? Encore une fois, les chercheurs utilisent un encodeur et un décodeur, avec une étape supplémentaire entre les deux. Ils encodent une deuxième fois l’image d’entrée avec un autre encodeur entraîné précisément pour cette tâche, ce qui produit ce qu’ils appellent des caractéristiques profondes. Ces caractéristiques sont les encodages de l’image d’entrée, donc une concentration de l’information importante pour cette tâche. Ce qui est considéré comme important dépend de l’objectif optimisé pendant l’entraînement. À partir de ces caractéristiques, contrôlées par les champs de déplacement qui indiquent l’apparence de l’image suivante, un décodeur entraîné génère la prochaine image avec cette information condensée sur l’image et le champ de flux que nous lui fournissons.

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

L’architecture complète. Holynski, Aleksander et al., 2021.

Pendant l’entraînement, les chercheurs utilisent deux images différentes, la première et la dernière, pour apprendre le mouvement réaliste des fluides et tenter d’éviter la formation de ces trous noirs. Vient ensuite la troisième et dernière étape : créer la boucle. En partant de la même image, ils génèrent une animation dans deux directions, un mouvement vers l’avant et un autre vers l’arrière, jusqu’à atteindre la deuxième image. Ils produisent ainsi l’effet de boucle en fusionnant les deux vidéos, puisque l’une commence là où l’autre se termine et qu’elles se rencontrent au centre. Au moment de l’inférence, donc lorsque vous utilisez réellement le modèle, celui-ci réalise la même opération avec une seule image de départ, soit celle que vous lui donnez. Et voilà, vous avez votre image animée!

Exemple visuel tiré de Créer des vidéos animées réalistes en boucle à partir de photos

Fonctionnement de la boucle vidéo. Holynski, Aleksander et al., 2021.

J’espère que vous avez aimé cet article autant que j’ai aimé découvrir cette technique. Si c’est le cas, je vous invite à lire leur article scientifique pour obtenir plus de détails techniques sur ce modèle vraiment cool. Il est extrêmement bien fait!

Merci de m’avoir lu!


Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et vos meilleurs cours, trouvez des coéquipiers pour Kaggle et bien plus encore!

Si vous aimez mon travail et souhaitez rester à jour dans le domaine de l’IA, vous devriez absolument me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA!

Pour me soutenir :

  • La meilleure façon de me soutenir est de devenir membre de ce site ou de vous abonner à ma chaîne YouTube si vous préférez le format vidéo.
  • Soutenez financièrement mon travail sur Patreon

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 une seule photo peut-elle devenir une animation en boucle?

Le modèle estime un champ de flux stable qui décrit comment chaque pixel doit se déplacer d’une image à la suivante.

Qu’est-ce qu’un champ de flux eulérien dans cette méthode?

Il s’agit d’une carte fixe du mouvement local qui prédit comment le contenu visuel s’écoule d’une image à l’autre.

Quelles images fonctionnent naturellement avec cette approche?

Les scènes qui contiennent des mouvements répétés, comme l’eau qui coule, conviennent à une représentation conçue pour un mouvement local continu.

Quelles entrées sont nécessaires après l’estimation du flux?

L’étape d’animation utilise la photo originale et son champ de flux statique prédit.

Pourquoi la même carte de flux peut-elle être réutilisée dans toute la boucle?

La carte décrit un comportement récurrent des pixels, elle n’a donc pas besoin de changer à chaque image générée.