Tendances IA – Retour sur CVPR 2021 !
Comme chaque année, CVPR se tenait cet été, et pandémie oblige, elle s’est déroulée à distance.. En véritable aficionado, Etienne Balit, Directeur R&D de Neovision, suit cet événement avec grande attention.
S’il nous fait déjà profiter de cette veille en interne en nous détaillant les articles marquants, nous souhaitions vous en partager quelques-uns en particulier!
Petite piqûre de rappel : CVPR, c’est quoi ?
CVPR – un acronyme pour Computer Vision and Pattern Recognition (Vision par ordinateur et Reconnaissance de Formes dans la langue de Molière) – est un événement américain qui regroupent les meilleurs chercheurs mondiaux au travers de conférences, d’ateliers et autres présentations de papiers scientifiques portant sur la computer vision.
Dans sa version physique, ce ne sont pas moins de 9000 participants, majoritairement des scientifiques issus des meilleurs laboratoires publics comme privés. Pourtant, et comme pour bon nombre d’événements depuis 2020, les habitués ont dû le suivre via écrans interposés.
Autant vous dire qu’Etienne et Neovision s’y sentent comme des poissons dans l’eau !
CVPR 2021 : les faits marquants
Contrairement à ce que nous avons présenté en 2019, nous explorerons les tendances au travers d’articles qui ont marqué notre lead R&D ! Ils en valent le détour.
Nous vous avons donc concocté un Top 3 des articles scientifiques présentés à CVPR 2021 et nous vous les présenterons comme nous avons l’habitude de le faire dans nos articles de veille vulgarisée.
C’est parti !
Article n°1 : Transformer pré-entraîné pour le traitement d’images.
Article original et auteurs :
Article original : Pre-trained Image Processing Transformer
Par : Hanting Chen, Yunhe Wang, Tianyu Guo, Chang Xu, Yiping Deng, Zhenhua Liu, Siwei Ma, Chunjing Xu, Chao Xu, Wen Gao
Contexte :
Pour introduire ce papier scientifique, nous devons commencer par introduire le concept de Transformer. Ce type de modèles, initialement créé pour des applications de traitement du langage, est aujourd’hui utilisé sur des tâches de plus en plus variées, et notamment de plus en plus pour des tâches de vision par ordinateur.
Les Transformers utilisent une architecture qui n’est pas basée sur des convolutions contrairement à la grande majorité des modèles utilisés en vision par ordinateur ces dernières années. Pour faire un rappel très rapide, une convolution pourrait être illustrée par une petite fenêtre mobile qui va regarder une zone de l’image, puis une autre, et ainsi de suite. L’information est donc d’abord intégrée de façon locale. L’intégration d’informations de plus en plus éloignées sur l’image est obtenue en réduisant progressivement la dimension spatiale au fil des couches du réseau de neurones grâce à des opérations d’agrégation spatiale (ou “pooling” en anglais).
Dans un Transformer, le mécanisme d’agrégation de l’information n’est pas spatial, mais passe par un système d’attention. Chaque neurone va émettre une clé, une valeur ainsi qu’une requête. Cette requête va ensuite être comparée aux clés émises par les autres neurones pour sélectionner les valeurs à agréger, en sélectionnant celles des neurones dont les clés correspondent à la requête émise. Cela permet donc de venir récupérer de l’information sur la totalité de l’image à chaque étape du réseau. L’analyse est donc plus holistique et moins locale qu’avec un réseau de neurones convolutif.
L’avancée présentée :
Cet article propose une architecture de type Transformer pour viser des applications de traitement d’image comme, par exemple, de la super-résolution ou du débruitage. Les chercheurs s’intéressent en particulier à la façon dont l’entraînement sur différentes tâches de traitement d’image peuvent bénéficier l’une de l’autre. Leur hypothèse est qu’en définissant un modèle multi-tâche, ils pourraient faire en sorte que lorsque le modèle progresse en débruitage, il progresse également super-résolution.
Pour mener à bien leur expérimentation et l’entraînement du modèle, les chercheurs ont sélectionné des images de bonne qualité tirées d’ImageNet. Ils les ont ensuite volontairement dégradées de plusieurs façons différentes : en diminuant leur résolution, en effaçant des portions de l’image ou encore en ajoutant du bruit sur celles-ci. Puis ils ont pré-entraîné le modèle à restaurer l’image à sa version originale non-dégradée en lui donnant comme information supplémentaire le type de dégradation qui avait été effectuée.
Une fois ce pré-entraînement fait sur des tâches de traitement d’image variées, le modèle peut ensuite être entraîné sur la tâche finale en utilisant cette fois-ci un jeu de données adapté à ce cas d’usage précis.
Pourquoi c’est cool ?
Tout d’abord, les résultats présentés sont très concluants. Les chercheurs ont atteint leur objectif et prouvent que leur approche est pertinente, et notamment que ces différentes tâches de traitement d’image bénéficient bien d’un entraînement commun.
Le modèle obtient ainsi de très bonnes performances sur différentes tâches de traitement d’images. Et plus particulièrement sur la super-résolution. Il pourrait donc devenir un modèle de référence et généraliste pour le traitement d’image, rien que ça !
Cette expérimentation montre également la flexibilité de l’architecture Transformer qui peut être adaptée à plusieurs tâches aux formats d’entrées et de sorties diverses, flexibilité qui est très bien utilisée dans ce papier mais également dans de nombreux travaux présentés à cette édition de CVPR.
Article n°2 : DatasetGAN : une fabrique de données labellisées avec un minimum d’effort humain.
Article original et auteurs :
Article original : DatasetGAN : Efficient Labeled Data Factory With Minimal Human Effort
Par : Yuxuan Zhang, Huan Ling, Jun Gao, Kangxue Yin, Jean-Francois Lafleche, Adela Barriuso, Antonio Torralba, Sanja Fidler
Contexte :
La très grande majorité des projets d’IA mettent en œuvre des méthodes d’apprentissage dites supervisées, c’est-à-dire qui sont entraînées à partir d’une base d’apprentissage consistant entre un jeu de données d’entrées et de sorties correspondantes. Afin de créer un tel jeu de données, il est souvent nécessaire de passer par une étape d’annotation demandant beaucoup d’effort et de temps et sur laquelle il faut être particulièrement méticuleux. Seulement, il y a un problème : c’est aussi long que rébarbatif ! Les professionnels cherchent donc des solutions pour rendre cette tâche plus efficace.
Les modèles génératifs font quant à eux partie d’une deuxième catégorie de méthodes d’apprentissage, qui ne sont pas entraînées à effectuer une tâche à partir d’exemple d’entrées et de sorties, mais à pouvoir modéliser la distribution d’un jeu de données (et n’ont donc pas besoin des sorties correspondantes). Les GAN (Generative Adversarial Network), dont nous avions parlé précédemment, font partie de ces algorithmes génératifs. Or les performances de ces modèles génératifs ont explosé ces dernières années.
Ces deux éléments motivent la recherche de la meilleure méthode permettant d’utiliser ces modèles génératifs afin de limiter le besoin d’annotation et dont DatasetGAN est un des derniers exemples.
L’avancée présentée :
Voici l’idée à la base de cet article : un modèle génératif d’image doit apprendre ce à quoi correspond chaque pixel qu’il va dessiner dans l’image. Pourquoi ne pas utiliser cette même capacité en l’entraînant à prédire également une carte de segmentation sémantiques afin de générer des paires d’images annotées ?
L’équipe de chercheurs a donc utilisé un GAN entraîné sur des images non-annotées, par exemple sur une base de données de portrait. Ils ont ensuite généré quelques images qu’ils ont annotées manuellement, créant des masques de segmentation sémantiques (chaque pixel étant coloré selon sa classe, voir image ci-dessous).
Par la suite, ces images enrichies de masques de segmentation annotés ont été utilisées pour entraîner une nouvelle branche du GAN, appelée Style Interpreter. Comprenez par là que, suite à ce nouvel entraînement, le GAN générera des images via sa première branche et autre chose via la seconde. Mais que va donc générer cette seconde branche ? Si vous avez bien suivi, vous avez déjà la réponse : des annotations !
Le GAN est donc en mesure de générer des paires d’images et d’annotations en grande quantité. Ces duos images/annotations générés par le GAN sont ensuite utilisés comme jeu d’entraînement pour des modèles de segmentation sémantique classiques qui pourront par la suite être utilisés sur des images réelles pour réaliser une segmentation sémantique !
Pourquoi c’est cool ?
Les premiers bénéfices apportés par cette avancée sautent aux yeux. Elle porte tout d’abord une très belle promesse : celle de réduire les annotations manuelles. Ce point est tellement important que nous pourrions nous en tenir là.
Mais il y a plus à dire. Cet article montre le potentiel des modèles génératifs pour créer des jeux de données synthétiques. En effet, le modèle est entraîné sur des données de synthèse issues d’un modèle génératif mais est ensuite testé, avec succès, sur des données réelles. Il ouvre donc la voie de l’IA aux entreprises ne disposant que de peu de données.
Article n°3 : MeanShift++: Recherche de mode extrêmement rapide pour la segmentation d’image et le tracking d’objet
Article original et auteurs :
Article original : MeanShift++: Extremely Fast Mode-Seeking With Applications to Segmentation and Object Tracking
Par : Jennifer Jang, Heinrich Jiang
Contexte :
MeanShift est un vieil algorithme statistique. Ce dernier date de 1975.
A priori, nous avons affaire à un dinosaure. Mais ce saurien nous a rendu de fiers services et à même fait du dépassement de fonction puisqu’il fut largement utilisé sur des tâches de computer vision, qui n’étaient pourtant pas dans son giron originel. Il était particulièrement intéressant pour des tâches de segmentation et de tracking.
Toutefois, nous l’utilisons beaucoup moins récemment puisque les méthodes basées sur du Machine Learning ont été largement adoptées en Computer Vision. Mais la donne pourrait bien changer !
L’utilisation principale de MeanShift est de faire du clustering, c’est-à-dire de grouper les données similaires entre elles. Son avantage principal est de ne pas avoir besoin d’a priori sur le nombre de clusters contenus dans un jeu de données ainsi que sur la forme de ces clusters, contrairement à beaucoup de méthodes de clustering.
Mais revenons-en à MeanShift et son fonctionnement. Attention, ça va devenir un peu technique. Pour simplifier les explications, nous allons prendre l’exemple de points sur un plan 2D.
1. On commence par fixer une fenêtre autour de chaque point de données.
2. On calcule la position moyenne des points qui tombent dans chaque fenêtre.
3. On déplace chaque fenêtre vers sa position moyenne (d’où MeanShift)
4. On répète les étapes 2 et 3 jusqu’à ce que les fenêtres convergent à des positions stables
Les clusters sont formés en regroupant les points dont les fenêtres ont fini aux mêmes positions.
Cette explication est légèrement simplifiée mais donne une indication du principal désavantage de MeanShift : son coût prohibitif en temps de calcul.
L’avancée présentée :
L’article présenté propose une nouvelle version de MeanShift, beaucoup – BEAUCOUP – plus rapide appelée MeanShift++. Les auteurs ont eux-aussi marqué le coup en doublant le “+” !
La version ++ est en fait une approximation de MeanShift. Or qui dit approximation, dit donc résultats plus approximatifs et donc moins précis ? Que nenni, enfin, pas dans ce cas là.
Voici l’idée : plutôt que de calculer la position moyenne en cherchant tous les points dans chaque fenêtre, les auteurs pré-calculent une grille de densité qui va pouvoir être utilisée pour calculer la moyenne de chaque fenêtre.
Sur un exemple tiré du papier, MeanShift++ segmente une image haute résolution à partir de la couleur en 1,22 secondes quand MeanShift met une heure et quarante minutes !
Pourquoi c’est cool ?
Tout d’abord, et de manière générale, quand on optimise ou accélère un processus, on y gagne. Voilà ce que propose cet article.
Au-delà de ça, cette avancée remet au goût du jour un superbe algorithme qui pourrait être à nouveau plébiscité sur certaines tâches de vision.
MeanShift se révélait trop lent bien que très précis. Toutefois, son inconvénient prenait le pas sur sa précision, et plus particulièrement sur les tâches de tracking. Dans le tracking d’objet sur une vidéo, plus l’analyse d’une image est lente, plus les images comparées seront différentes. En effet, une vidéo est une suite d’images, et l’analyse se fait image par image. Or si une vidéo est composée de 100 images par seconde et que l’analyse d’une image se fait en 1 seconde, cela veut dire qu’on analyse une image sur cent seulement. Problématique.
Mais avec la vitesse d’exécution de MeanShift++, le tracking d’objet se fait de manière très précise !
Cet article met également en lumière deux autres choses. La première, c’est qu’en certaines circonstances, il suffit d’optimiser l’existant pour innover. Il ne faut pas jeter aux orties tous les vieux outils, surtout les plus robustes. La seconde, c’est qu’avoir une connaissance générale et profonde du machine learning et de la computer vision est plus importante que de seulement être informé des dernières méthodes les plus tendances.
Vous l’aurez compris, CVPR 2021 nous a réservé un beau lot de diversité et nous espérons que les avancées scientifiques que nous vous avons présentées vous donneront envie d’assister à cet événement l’année prochaine.
En attendant, vous pouvez également découvrir d’autres papiers présentés dont on a déjà parlé avec, notamment la Compréhension Holistique de Scènes 3D !