Regardez la vidéo et soutenez-moi sur YouTube :
Je suis certain que vous avez déjà cliqué sur une miniature vidéo de The Slow Mo Guys pour voir l’eau flotter dans les airs lorsqu’un ballon rempli d’eau éclate, ou pour regarder un autre ralenti vraiment cool filmé avec des caméras extrêmement coûteuses. Nous avons maintenant la chance de pouvoir faire quelque chose qui n’est pas vraiment comparable, mais tout de même assez intéressant, avec nos téléphones. Et si vous pouviez atteindre la même qualité sans disposer d’une installation aussi coûteuse ?
Eh bien, c’est exactement ce que TimeLens, un nouveau modèle publié par Tulyakov et al., peut faire avec une précision extrême. Regardez seulement ça ! Il a généré des vidéos au ralenti de plus de 900 images par seconde à partir de vidéos enregistrées à seulement 50 images par seconde ! Cela devient possible en devinant à quoi pourraient ressembler les images situées entre les vraies images, une tâche incroyablement difficile. Plutôt que de l’aborder avec l’idée classique qui consiste à utiliser le flux optique des vidéos pour estimer le mouvement des particules, les chercheurs ont utilisé une installation simple dotée de deux caméras, dont une très particulière.

Exemple de ralenti. Image tirée de Tulyakov et al., TimeLens, (2021)
La première caméra est une caméra classique qui enregistre les images RVB comme vous les connaissez. La deuxième est plutôt une caméra événementielle. Ce type de caméra utilise de nouveaux capteurs qui signalent uniquement les changements d’intensité des pixels, plutôt que leur intensité actuelle comme le fait une caméra ordinaire, et le résultat ressemble à ceci. Cette caméra fournit de l’information entre les images classiques grâce à la représentation comprimée qu’elle produit. En effet, elle signale uniquement les pixels qui ont changé et le fait à une résolution plus faible. Elle peut donc enregistrer beaucoup plus rapidement, ce qui en fait une caméra à haute résolution temporelle, mais à faible définition. Vous pouvez voir cela comme un compromis où la caméra sacrifie la qualité des images captées en échange d’un plus grand nombre d’images. Heureusement, l’autre caméra classique corrige ce manque de qualité, comme nous le verrons dans quelques secondes.

Affichage d’une image et des événements. Image tirée de Tulyakov et al., TimeLens, (2021)
TimeLens exploite ces deux types de caméras, la caméra classique et la caméra événementielle, en utilisant l’apprentissage automatique pour maximiser les deux types d’information et mieux reconstruire ce qui s’est réellement produit entre les images. Quelque chose que même nos yeux ne peuvent pas voir. En fait, il obtient des résultats que nos téléphones intelligents et aucun autre modèle ne pouvaient atteindre auparavant.

Exemple de ralenti 2. Image tirée de Tulyakov et al., TimeLens, (2021)
Voici comment ils y sont parvenus… Comme vous le savez, nous commençons avec les images habituelles provenant de la caméra ordinaire, qui filme entre 20 et 60 images par seconde. Cela ne suffit pas, puisqu’il faut beaucoup plus d’images dans une seconde pour obtenir un effet de ralenti comme celui-ci. Plus précisément, il faut au moins 300 images par seconde pour produire un résultat intéressant, ce qui signifie 300 images pour une seule seconde de vidéo. Mais comment passer d’environ 20 images à 300 ? Nous ne pouvons pas simplement créer les images manquantes. Il y a trop peu d’information pour les interpoler. Eh bien, nous utilisons la caméra événementielle, qui contient beaucoup plus d’information sur ce qui se produit dans le temps.

Les images manquantes à créer pour produire des effets de ralenti. Image tirée de Tulyakov et al., TimeLens, (2021)
Comme vous pouvez le voir ici, elle contient essentiellement des images incomplètes entre les vraies images. Elles fournissent toutefois juste assez d’information pour nous aider à comprendre le mouvement des particules, tout en nous permettant de saisir l’image globale à l’aide des vraies images qui les entourent.
L’information des événements et des images est envoyée dans deux modules pour apprendre à interpoler les images intermédiaires : le module d’interpolation par déformation et celui d’interpolation par synthèse.

L’architecture complète. Image tirée de Tulyakov et al., TimeLens, (2021)
Le premier module, celui de déformation, constitue l’outil principal pour estimer le mouvement à partir des événements plutôt qu’à partir des images, comme le fait le module de synthèse. Il prend les images et les événements, puis les traduit en une représentation du flux optique avec un réseau classique en forme de U-Net. Ce réseau reçoit simplement des images, les encode, puis les décode dans une nouvelle représentation. Il peut le faire parce que le modèle a été entraîné à réaliser cette tâche sur d’immenses jeux de données. Comme vous le savez peut-être, j’ai déjà présenté de nombreuses fois des architectures semblables sur ma chaîne, avec différentes applications si vous souhaitez obtenir plus de détails.
En bref, vous pouvez voir ce module comme un outil de traduction d’image à image qui change simplement le style de l’image. Dans ce cas, il reçoit les événements et les images, puis trouve la représentation optimale du flux optique pour créer une nouvelle image pour chaque événement. Il traduit essentiellement une image d’événements en une vraie image en tentant de comprendre ce qui s’y passe à l’aide du flux optique.
Si vous ne connaissez pas le flux optique, je vous recommande fortement de regarder ma vidéo qui présente un excellent article à ce sujet, publié à la même conférence un an plus tôt.
Le module d’interpolation par synthèse est plutôt simple. Il est utilisé parce qu’il peut gérer les nouveaux objets qui apparaissent entre les images et les changements d’éclairage, comme le reflet de l’eau montré ici. Il repose sur un réseau semblable en forme de U-Net pour comprendre les images avec les événements et générer une nouvelle image fictive. Dans ce cas, l’U-Net reçoit les événements entre deux images et génère directement une nouvelle image possible pour chaque événement, sans passer par le flux optique.
Son principal inconvénient est que du bruit peut apparaître à cause du manque d’information sur le mouvement dans l’image, et c’est là que l’autre module devient utile. Le premier module est ensuite raffiné avec encore plus d’information provenant de l’interpolation par synthèse que je viens de présenter. Il extrait essentiellement l’information la plus importante des deux images générées pour le même événement afin de raffiner la représentation déformée et de produire une troisième version de chaque événement, encore une fois avec un réseau U-Net.
Enfin, ces trois images candidates sont envoyées dans un module de moyenne basé sur l’attention. Ce dernier module prend simplement les trois nouvelles images et les combine en une image finale qui conserve seulement les meilleures parties des trois représentations possibles. Cette combinaison est elle aussi apprise en entraînant le réseau à réaliser cette tâche. Si le concept d’attention ne vous est pas familier, je vous recommande fortement de regarder la vidéo dans laquelle j’explique son fonctionnement avec les images.

L’architecture complète avec ses entrées et sa sortie. Image tirée de Tulyakov et al., TimeLens, (2021)
Vous avez maintenant une image en haute définition pour le premier événement situé entre vos images classiques. Il suffit de répéter ce processus pour tous les événements fournis par la caméra événementielle. Et voilà ! C’est ainsi que l’intelligence artificielle permet de créer des vidéos au ralenti réalistes et impressionnantes.
Comme toujours, si ce modèle vous intéresse, les liens vers le code et l’article scientifique se trouvent dans la description ci-dessous.
Merci de m’avoir lu !
Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques, 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 :
►Lisez l’article complet : /fr/timelens
►Code officiel : https://github.com/uzh-rpg/rpg_timelens
►Référence : Stepan Tulyakov*, Daniel Gehrig*, Stamatios Georgoulis, Julius Erbach, Mathias Gehrig, Yuanyou Li, Davide Scaramuzza, TimeLens: Event-based Video Frame Interpolation, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, 2021, https://rpg.ifi.uzh.ch/docs/CVPR21_Gehrig.pdf
FAQ
Que fait TimeLens ?
TimeLens reconstruit les images intermédiaires d’une vidéo en combinant des images ordinaires avec les données à haute résolution temporelle d’une caméra événementielle.
Qu’est-ce qu’une caméra événementielle ?
Elle enregistre les changements de luminosité de façon asynchrone, ce qui lui permet de capter les mouvements rapides sans produire d’images complètes classiques.
Pourquoi combiner une caméra classique et une caméra événementielle ?
Les images classiques fournissent une apparence détaillée, tandis que les événements donnent une chronologie précise du mouvement entre ces images.
Comment cette approche crée-t-elle un ralenti ?
Le modèle estime les moments manquants afin que la lecture puisse contenir beaucoup plus d’images pour chaque seconde d’action enregistrée.
Qu’est-ce qui peut mal fonctionner dans un ralenti généré ?
Les occlusions, les changements rapides d’éclairage, le manque d’événements et les mouvements ambigus peuvent produire des détails intermédiaires déformés ou inventés.


