Modèles SAM et modèles de base en vision par ordinateur

Si vous vous intéressez à la vision par ordinateur et à l'apprentissage profond, vous avez dû constater que l'espace de recherche est en plein essor en ce moment. Le modèle GPT-4 de l'OpenAI a ouvert la voie à de nombreuses grandes entreprises qui ont publié leurs dernières recherches. Après la publication du modèle GPT-4 en mars, le laboratoire d'IA de META a rapidement publié son premier modèle de base en vision par ordinateur, appelé SAM (Segment Anything Model). Ce modèle est considéré comme l'un des plus grands bonds en avant des modèles de base dans le domaine de la vision par ordinateur.
Aujourd'hui, nous allons parler des implications de ces percées pour l'industrie. Chez Picsellia, notre objectif est d'aider les entreprises à construire des pipelines de vision artificielle robustes. Il est donc essentiel pour nous de prendre le temps de nous pencher sur cette question.
Qu'est-ce qu'un modèle de fondation ?
Un modèle de base est un grand modèle pré-entraîné conçu pour apprendre des modèles généraux et des caractéristiques à partir de grandes quantités de données. Ces modèles sont généralement formés sur des quantités massives de données à l'aide de méthodes d'apprentissage non supervisées. Ils peuvent ensuite être affinés sur des tâches spécifiques avec des quantités de données beaucoup plus faibles.
Parmi les exemples de modèles de base en IA, on peut citer BERT, GPT-3 et T5 dans le domaine du traitement du langage naturel, et CLIP ou DALL-E dans le domaine de la vision par ordinateur. Ces modèles ont montré des améliorations significatives en termes de performance sur un large éventail de tâches et sont devenus des éléments de base importants pour de nombreuses applications d'IA de pointe.
Les modèles de fondation ont fait des progrès significatifs dans le traitement du langage naturel, en particulier depuis la publication de BERT en 2018 et la publication plus récente de GPT-4. En vision par ordinateur, cependant, il y a eu un manque de tâches de pré-entraînement non supervisées sémantiquement riches comparables au prochain masquage de jeton dans le texte. Bien que des pixels masqués aient été utilisés, ils n'ont pas été aussi efficaces. Les routines de pré-entraînement multi-modèles, comme CLIP, ont été les plus efficaces dans le domaine de la vision par ordinateur.
Pour relever ce défi, l'équipe de recherche Segment Anything a cherché à créer un modèle de base pour la vision par ordinateur en développant une tâche, un modèle et un ensemble de données. Cela a conduit à la création du modèle Segment Anything (SAM), un modèle de segmentation d'instance développé par Meta Research et publié en avril 2023. SAM a été entraîné sur 11 millions d'images et 1,1 milliard de masques de segmentation.
Comment META a-t-il construit SAM ?
Pour construire le Segment Anything Model (SAM), l'équipe de META a dû trouver une manière assez innovante de construire un ensemble de données, car il n'existe pas beaucoup d'annotations de masques disponibles sur le marché. À mon avis, ce processus est de loin l'étape la plus importante qu'ils ont réussi à atteindre.
La partie modélisation est un peu moins innovante car elle transpose les approches utilisées dans les modèles de texte de base dans l'espace de vision par ordinateur.
Ensemble de données
Ils ont entraîné le modèle à l'aide d'un ensemble de données de plus d'un milliard de masques de segmentation, collectés à l'aide d'un moteur de données à trois vitesses. Ils ont ainsi obtenu un ensemble de données 400 fois plus important que tout autre ensemble de données de segmentation antérieur, provenant de plusieurs pays, de diverses régions géographiques et de différents niveaux de revenus. Il s'agit d'une avancée majeure en termes de taille d'ensemble de données de segmentation et de stratégie de construction. Examinons ces trois étapes.

Étape 1 : Segmentation de l'homme dans la boucle
Une première version de SAM a été entraînée sur un ensemble de données de segmentation accessibles au public afin de fournir une base que les annotateurs professionnels peuvent utiliser comme outil de segmentation interactif alimenté pour étiqueter les masques en identifiant les points d'objets d'avant-plan et d'arrière-plan.
Les annotations ont été faites sans contraintes sémantiques et elles ont donné la priorité aux objets proéminents. SAM a d'abord été entraîné sur des ensembles de données de segmentation publics et a subi six itérations de réentraînement à l'aide de masques nouvellement annotés.
L'annotation assistée par un modèle s'est déroulée en temps réel, ce qui a permis de réduire le temps moyen d'annotation par masque de 34 à 14 secondes et d'augmenter le nombre moyen de masques par image de 20 à 44. Cette étape a permis d'obtenir 4,3 millions de masques à partir de 120 000 images.
Étape 2 : Édition et fixation des pré-annotations
Au cours de la phase semi-automatique, les masques fiables ont été automatiquement détectés et présentés aux annotateurs avec des images pré-remplies. Les annotateurs ont ensuite ajouté des annotations pour les objets non annotés. Un détecteur de boîtes englobantes a été entraîné sur les masques de la première étape à l'aide d'une catégorie générique "objet". Cette étape a permis de collecter 5,9 millions de masques supplémentaires à partir de 180 000 images, ce qui porte le total à 10,2 millions de masques. Le modèle a été réentraîné cinq fois sur les nouvelles données collectées. Le temps d'annotation est passé à 34 secondes pour les objets les plus difficiles, et le nombre moyen de masques par image est passé de 44 à 72, y compris les masques automatiques.
Étape 3 : Annotation entièrement non supervisée
Au cours de la phase entièrement automatique, l'annotation est devenue entièrement automatique grâce au développement du modèle sensible à l'ambiguïté et à un plus grand nombre de masques collectés. Le modèle a prédit un ensemble de masques pour des objets valides en utilisant une grille de 32x32 points. Le module de prédiction de l'IoU a été utilisé pour sélectionner des masques fiables, et seuls les masques stables ont été retenus. La suppression non maximale (NMS) a été appliquée pour filtrer les doublons, et les images zoomées qui se chevauchent ont été traitées pour améliorer la qualité des petits masques. Cette étape a permis de générer 1,1 milliard de masques de haute qualité pour l'ensemble des 11 millions d'images.
Modèle d'architecture

Considérant le document de recherche publié par META,
SAM est composé de trois éléments :
- un codeur d'images (MAE pré-entraîné (ViT))
- un codeur d'invites flexible
- un décodeur de masques rapide.
Les auteurs considèrent deux ensembles d'invites pour la segmentation : éparses (points, boîtes, texte) et denses (masques). Les points et les boîtes sont représentés à l'aide d'encodages positionnels combinés à des encastrements appris pour chaque type d'invite, tandis que le texte de forme libre utilise un encodeur de texte de CLIP. Les invites denses, telles que les masques, sont intégrées à l'aide de convolutions et additionnées par élément avec l'intégration de l'image.
On pourrait dire qu'il est assez difficile de comprendre ce que cela signifie, alors essayons de le disséquer.
Dans le contexte de ce texte, les "invites" font référence aux indices ou aux conseils donnés au modèle pendant le processus de segmentation. Ici, ils ont considéré deux types d'invites : les invites "éparses" et les invites "denses".
Invite l'encodeur
Les invites éparses comprennent des points, des boîtes et du texte, qui servent d'indications approximatives sur l'emplacement des objets dans l'image. Par exemple, les annotateurs peuvent marquer le coin supérieur gauche d'un objet à l'aide d'un point ou dessiner une boîte autour de l'objet entier. Les points et les cases sont représentés à l'aide d'"encodages positionnels", qui encodent les informations relatives à l'emplacement de l'invite, combinés à des encodages appris qui représentent le type d'invite.
Le texte de forme libre est un autre type d'invite clairsemée, et il est traité différemment des points et des boîtes. Les auteurs utilisent un encodeur de texte de CLIP, qui est un réseau neuronal pré-entraîné capable de comprendre le langage naturel. L'encodeur de texte est utilisé pour coder les invites textuelles de forme libre en un vecteur de caractéristiques qui peut être utilisé par le modèle.
D'autre part, les invites denses s'appuient sur des indications plus détaillées pour la segmentation, telles que les masques. Les masques sont des annotations au niveau des pixels indiquant quelles parties de l'image appartiennent au premier plan et lesquelles appartiennent à l'arrière-plan. Les auteurs utilisent des convolutions pour intégrer les invites denses (par exemple, les masques) et les ajoutent par élément à l'intégration de l'image (par exemple, une représentation de haut niveau de l'image apprise par le modèle). Cela permet au modèle de mieux comprendre la relation entre les invites denses et l'image, ce qui améliore la précision de la segmentation.
Décodeur de masque
Le décodeur de masque prend en entrée l'image et les incrustations promptes, ainsi qu'un jeton de sortie, et les met en correspondance de manière efficace avec un masque. Le bloc décodeur est basé sur une architecture Transformer modifiée, qui est un type de réseau neuronal utilisé dans les tâches de traitement du langage naturel. Le bloc décodeur dispose d'une auto-attention rapide et d'une attention croisée dans les deux sens. Cela lui permet de mettre à jour tous les enchâssements.
Après deux blocs, l'image incorporée est suréchantillonnée et un perceptron multicouche (MLP) transmet le jeton de sortie à un classificateur linéaire dynamique. Ce classificateur calcule la probabilité de premier plan du masque à chaque emplacement de l'image. Le modèle est conçu pour prédire plusieurs masques de sortie pour une seule invite ambiguë, trois masques s'avérant suffisants dans la plupart des cas. Pendant l'apprentissage, le modèle utilise la perte minimale sur les masques, et un score de confiance est prédit pour chaque masque.
La prédiction des masques est supervisée à l'aide d'une combinaison linéaire de la perte focale et de la perte de dés, qui sont des fonctions de perte couramment utilisées dans les tâches de vision par ordinateur. Enfin, la tâche de segmentation avec prompteur est entraînée à l'aide d'un mélange de prompteurs géométriques et d'une configuration interactive avec 11 tours par masque. Cela permet une intégration transparente dans le moteur de données.
Limites et conclusion

Bien que l'approche décrite dans l'article ait donné des résultats impressionnants pour un large éventail de tâches de segmentation d'images, elle présente encore certaines limites.

L'une de ses limites est qu'il peut ne pas donner de bons résultats sur des images présentant des textures ou des motifs complexes.
En effet, le modèle repose sur l'identification et la distinction d'objets sur la base des motifs et des couleurs de l'image, plutôt que sur des informations de texture plus détaillées.
En outre, le modèle peut ne pas être en mesure de segmenter avec précision des objets très petits ou peu contrastés par rapport à l'arrière-plan.

Une approche classique de segmentation supervisée, en revanche, peut être plus efficace pour certains cas d'utilisation spécifiques. Par exemple, si la tâche à accomplir consiste à segmenter un type d'objet spécifique qui n'est pas présent dans un modèle pré-entraîné, il peut être plus efficace d'utiliser la segmentation classique supervisée avec un plus petit ensemble de données d'images annotées qui sont spécifiques à l'objet cible. En outre, si l'ensemble de données comporte un grand nombre d'images présentant des textures ou des motifs complexes, une approche de segmentation supervisée classique peut être plus efficace pour identifier et segmenter ces objets.
En résumé, si SAM est un outil puissant pour un large éventail de tâches de segmentation d'images, il peut ne pas être le meilleur choix pour des cas d'utilisation très spécifiques ou des images présentant des textures ou des motifs complexes. Dans certains cas, une approche classique de segmentation supervisée peut être plus efficace.