Regardez la vidéo et découvrez plus d’exemples !




Variantes vidéo produites à partir de la vidéo originale, en haut à gauche. Exemples tirés de VGPNN [1].
Avez-vous déjà voulu modifier une vidéo ?
Retirer ou ajouter une personne, changer l’arrière-plan, prolonger un peu la vidéo ou modifier sa résolution afin qu’elle respecte un format précis sans la comprimer ni l’étirer. Si vous avez déjà mené des campagnes publicitaires, vous avez certainement voulu créer plusieurs versions de vos vidéos pour faire des tests A/B et découvrir ce qui fonctionne le mieux. Eh bien, cette nouvelle recherche de Niv Haim et de ses collègues peut vous aider à faire tout cela à partir d’une seule vidéo, et en HD ! En effet, à partir d’une simple vidéo, vous pouvez effectuer toutes les tâches que je viens de mentionner en quelques secondes, ou en quelques minutes pour des vidéos de grande qualité. Vous pouvez essentiellement l’utiliser pour toute application de manipulation ou de génération vidéo que vous avez en tête. La méthode surpasse même les GAN à tous les niveaux, sans utiliser de recherche sophistiquée en apprentissage profond ni exiger un jeu de données énorme et peu pratique ! Et surtout, la technique passe à l’échelle pour les vidéos en haute résolution. Elle ne sert pas seulement à la recherche avec des vidéos de 256x256 pixels ! Et bien sûr, vous pouvez aussi l’utiliser avec des images [2] ! Voyons comment elle fonctionne.
Comment fonctionne-t-elle ?

Figure tirée de VGPNN [1].
Le modèle s’appelle Video-Based Generative Patch Nearest Neighbors, ou VGPNN. Au lieu d’utiliser des algorithmes et des modèles complexes comme les GAN ou les transformers, les chercheurs qui ont créé VGPNN ont choisi une approche beaucoup plus simple, mais revisitée : l’algorithme des plus proches voisins.
Ils commencent par réduire la résolution de l’image sous forme de pyramide, où chaque niveau possède une résolution inférieure à celle du niveau supérieur. Ils ajoutent ensuite du bruit aléatoire au niveau le plus grossier afin de générer une image différente, comme le font les GAN dans l’espace comprimé après avoir encodé l’image.
Notez que je parlerai d’image par souci de simplicité. Comme le processus s’applique ici aux vidéos, il traite en réalité 3 trames en même temps et ajoute une dimension temporelle, mais l’explication demeure la même avec une étape supplémentaire à la fin.
L’image à l’échelle la plus grossière, à laquelle du bruit a été ajouté, est divisée en plusieurs petites régions carrées. Chaque région de l’image bruitée est remplacée par la région la plus semblable dans l’image initiale réduite, sans bruit. Comme nous le verrons, l’algorithme des plus proches voisins mesure cette similarité. La plupart des régions demeurent identiques, mais selon le bruit ajouté, certaines changent juste assez pour ressembler davantage à une autre région de l’image initiale.
Voici le résultat VPNN que vous voyez ci-dessus. Ces changements suffisent à générer une nouvelle version de l’image. Ce premier résultat est ensuite agrandi et comparé à l’image d’entrée de l’échelle suivante, pour jouer le rôle d’une version bruitée de celle-ci. Les mêmes étapes sont répétées à cette nouvelle itération. Nous divisons les images en petites régions et remplaçons celles générées précédemment par les régions les plus semblables à l’étape actuelle.
Regardons de plus près ce module VPNN que nous venons de présenter :

Figure tirée de VGPNN [1].
Comme vous pouvez le voir, la seule différence avec l’étape initiale, où nous ajoutions du bruit, est que nous comparons l’image générée et agrandie, notée Q, à une version agrandie de l’image précédente, notée K, afin qu’elles aient le même niveau de détail et de netteté. En gros, nous utilisons le niveau inférieur comme référence. Nous comparons Q et K, puis sélectionnons les régions correspondantes dans l’image du niveau actuel, V, pour générer la nouvelle image de cette étape. Celle-ci servira à la prochaine itération. Comme l’indiquent les petites flèches, K est simplement une version agrandie de l’image que nous avons créée en réduisant V à la première étape de l’algorithme, lors de la création des différentes échelles pyramidales. Cela permet de comparer deux images ayant le même niveau de netteté. L’image générée et agrandie depuis la couche précédente, Q, serait autrement beaucoup plus floue que l’image de l’étape actuelle, V, ce qui compliquerait la recherche de régions semblables. Le processus se répète jusqu’au sommet de la pyramide, où nous retrouvons des résultats en haute résolution. Toutes ces régions générées sont enfin repliées pour former une vidéo.
Résumé
Résumons rapidement :
L’image est réduite à plusieurs échelles. Du bruit est ajouté à l’image de l’échelle la plus grossière, qui est divisée en petites régions carrées. Chaque région bruitée est ensuite remplacée par la région la plus semblable de la même image comprimée sans bruit. Quelques changements aléatoires apparaissent ainsi dans l’image tout en préservant son réalisme. La nouvelle image générée et l’image sans le bruit de cette étape sont toutes deux agrandies et comparées afin de trouver encore une fois les régions les plus semblables avec l’algorithme des plus proches voisins. Ces régions sont alors choisies dans l’image de la résolution actuelle pour produire une nouvelle image à cette étape. Nous répétons les étapes d’agrandissement et de comparaison jusqu’à revenir au sommet de la pyramide avec des résultats en haute résolution.
Et voilà ! Vous pouvez répéter le processus avec différents bruits ou différentes modifications afin de générer toutes les variantes désirées de vos vidéos !
Limites




Limites des générations produites à partir de la vidéo initiale, en haut à gauche. Image tirée de VGPNN [1].
Bien sûr, les résultats ne sont pas parfaits. Nous pouvons encore voir certains artéfacts, comme des personnes qui apparaissent et disparaissent à des endroits étranges, ou parfois une personne simplement copiée et collée, ce qui devient très évident lorsqu’on s’y attarde. Malgré tout, il s’agit du premier article scientifique qui applique l’algorithme des plus proches voisins à la manipulation vidéo tout en passant à l’échelle pour les vidéos en haute résolution. C’est toujours génial de voir des approches différentes. J’ai très hâte de découvrir l’article suivant qui améliorera celui-ci !
Les résultats demeurent assez impressionnants. Grâce à leur très faible temps d’exécution, ils pourraient servir d’outil d’augmentation de données pour les modèles qui travaillent avec des vidéos. D’autres modèles pourraient alors s’entraîner sur des jeux de données plus grands et plus variés sans coûts importants.
Si vous souhaitez en apprendre davantage sur cette technique, je vous recommande fortement de lire l’article scientifique [1].
Merci de m’avoir lu !
Si vous aimez mon travail et souhaitez rester au courant de l’IA, suivez-moi sur mes autres réseaux sociaux (LinkedIn, Twitter) et abonnez-vous à mon infolettre 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 préférez le format vidéo.
- Soutenez financièrement mon travail sur Patreon.
- Suivez-moi ici sur Medium ou sur mon blogue.
Références
[1] Article présenté : Haim, N., Feinstein, B., Granot, N., Shocher, A., Bagon, S., Dekel, T. et Irani, M. (2021). Diverse Generation from a Single Video Made Possible. ArXiv, abs/2109.08591.
[2] Technique adaptée des images aux vidéos : Niv Granot, Ben Feinstein, Assaf Shocher, Shai Bagon et Michal Irani. Drop the gan: In defense of patches nearest neighbors as single image generative models. Prépublication arXiv:2103.15545, 2021.
[3] Code (bientôt accessible) : https://nivha.github.io/vgpnn/
FAQ
Que génère VGPNN ?
VGPNN crée de nouvelles variantes d’une vidéo en recombinant les régions visuelles récurrentes trouvées dans une seule vidéo source.
La méthode a-t-elle besoin d’un jeu de données d’entraînement distinct ?
Non. Elle utilise les statistiques visuelles internes de la vidéo fournie plutôt qu’un grand jeu de données externe.
Comment adapte-t-elle les méthodes fondées sur les régions d’image à la vidéo ?
Elle fait correspondre de petits blocs spatiotemporels sur trois trames, ce qui ajoute le mouvement comme dimension supplémentaire.
Quel rôle joue le bruit ?
Le bruit modifie certaines correspondances entre les régions, ce qui produit des variantes tout en préservant une grande partie de la structure de la vidéo originale.
Quelles sont les principales limites ?
La méthode ne peut pas inventer du contenu très éloigné de la source et peut avoir du mal avec les mouvements à long terme ou les changements sémantiques.


