La segmentation d’instances est une tâche de vision par ordinateur axée sur l’apprentissage profond qui prédit les limites exactes par pixel de chaque instance d’objet individuel dans une image.
La segmentation d’instances, un sous-ensemble du champ plus large de la segmentation d’images, fournit une sortie plus détaillée et plus sophistiquée que les algorithmes conventionnels de détection d’objets. Parmi les autres tâches de segmentation d’images, nous pouvons citer la segmentation sémantique, qui catégorise chaque pixel d’une image par classe sémantique, ou par catégorie de « chose » ou « ensemble » représenté, et la segmentation panoptique, qui regroupe à la fois les objectifs de la segmentation d’instances et de la segmentation sémantique.
La segmentation d’instances comporte une grande variété de cas d’utilisation dans le domaine du traitement d’images pour de nombreux secteurs, de l’analyse des images médicales à la détection d’objets d’intérêt dans l’imagerie satellite, en passant par la navigation dans les voitures autonomes.
La principale différence entre les tâches de segmentation d’instances et la détection conventionnelle d’objets, c’est que la segmentation d’instances prédit les limites au niveau du pixel de chaque objet, tandis que la détection d’objets prédit uniquement l’emplacement approximatif d’un objet.
Les méthodes de détection d’objets conventionnelles utilisent une combinaison évoluée de classification d’images et de localisation d’objets. Un modèle de détection d’objets est entraîné à partir de divers algorithmes de machine learning pour reconnaître les schémas visuels des catégories d’objets pertinentes (par exemple, un modèle de conduite autonome peut être entraîné à reconnaître des éléments comme une « voiture » ou un « piéton »). Il analyse les données visuelles d’une image en entrée pour annoter toutes les instances d’objets pertinentes et générer des régions rectangulaires, appelées « cadres de délimitation », pour chaque instance.
Les systèmes de segmentation d’instances détectent également les objets dans une image, mais de manière beaucoup plus détaillée : au lieu d’un cadre de délimitation indiquant l’emplacement approximatif d’une instance d’objet, les algorithmes de segmentation d’instances génèrent un « masque de segmentation » pixel par pixel de la forme et de la surface précises de chaque instance.
Nombre d’architectures de modèles de segmentation d’instances de premier plan, comme Mask R-CNN, effectuent une détection d’objets conventionnelle préliminaire dans le cadre du processus de génération de masques de segmentation. Ces modèles « en deux étapes » permettent généralement d’obtenir une précision de pointe, mais en faisant un compromis sur la vitesse.
La segmentation sémantique est une tâche moins complexe que la segmentation d’instances. Contrairement à la segmentation d’instances, la segmentation sémantique ne s’attarde pas sur la comptabilisation ou la distinction des instances : le seul objectif de la segmentation sémantique est d’annoter chaque pixel d’une image avec une étiquette de classe sémantique.
Les modèles de segmentation sémantique ne font aucune distinction entre les choses, des classes d’entités dénombrables avec des formes distinctes, comme une « voiture » ou une « personne », et les ensembles , les classes d’entités indénombrables de formes variables, comme « ciel » ou « route »).
Si plusieurs instances d’objet de la même classe de choses sont vraiment adjacentes ou si elles se chevauchent, un modèle de segmentation sémantique les regroupera simplement dans un seul segment d’image. Voyons par exemple comment un modèle de segmentation sémantique traite les voitures garées à proximité les unes des autres de chaque côté de la rue dans cette image.
À l’inverse, les modèles de segmentation d’instances se concentrent exclusivement sur la détection et la génération de masques de segmentation pour les choses individuelles. Un modèle de segmentation d’instances doit être capable de délimiter chaque instance d’objet différente, même pour les instances occluses de la même classe d’objet.
La segmentation panoptique englobe à la fois la classification sémantique de chaque pixel d’une image et la délimitation de chaque instance d’objet distincte.
Les modèles de segmentation panoptique peuvent théoriquement exécuter la segmentation d’instances, mais cela à un coût de calcul beaucoup plus élevé (car la sortie inclut des informations supplémentaires qui ne sont pas nécessairement pertinentes pour les tâches de segmentation d’instances).
Les tentatives initiales de segmentation panoptique se contentaient d’exécuter la segmentation d’instances et la segmentation sémantique séparément, puis elles combinaient leurs sorties lors d’une étape de post-traitement. Cette méthode est inefficace en termes de calcul et elle ne parvient pas facilement à résoudre les écarts entre les sorties de données du modèle de segmentation sémantique et celles du modèle de segmentation d’instances.
Des approches plus récentes relient une « tête » de segmentation sémantique et une « tête » de segmentation d’instances à une « épine dorsale » partagée, souvent un réseau pyramidal de caractéristiques (FPN), pour l’extraction de caractéristiques : c’est l’isolation des données visuelles pertinentes. Cela permet de gagner en efficacité et d’éliminer les divergences.
La segmentation d’instances est essentielle à une variété de tâches de vision par ordinateur.
L’apprentissage profond est devenu essentiel à la segmentation d’instances : presque toutes les méthodes modernes de segmentation d’images utilisent des réseaux neuronaux. Même si ces dernières années, les modèles de transformation sont devenus une alternative viable, la plupart des méthodes de segmentation d’images (y compris celles utilisées pour la segmentation d’instances) tirent parti d’une certaine forme de réseau neuronal convolutif (CNN).
Les modèles de segmentation d’instances basés sur des réseaux neuronaux convolutifs se divisent en deux catégories :
Les modèles de segmentation d’instances basés sur des réseaux neuronaux convolutifs et des transformeurs utilisent une structure encodeur-décodeur, dans laquelle un réseau d’encodage est utilisé pour extraire les données pertinentes de l’image en entrée et un réseau de décodage utilise ces données de caractéristiques extraites pour reconstruire l’image avec une carte de segmentation.
Pour comprendre les modèles de segmentation d’instances, il est utile de connaître leurs composants.
Les CNN simples peuvent effectuer la classification des images et (pour les images contenant un seul objet) la classification des objets.
Pour que les algorithmes mathématiques soient compatibles avec une image, ils doivent la représenter dans un format numérique. Les CNN traitent une image en entrée RVB sous la forme d’une matrice de pixels en trois dimensions (3D), dans laquelle les trois dimensions du pixel représentent respectivement ses valeurs R(ouge), V(ert) et B(leu).
Les CNN conventionnels contiennent trois types de couches :
Les couches convolutives utilisent des filtres à deux dimensions, appelés noyaux, pour extraire les caractéristiques pertinentes de l’image par convolutions. Après chaque convolution, le noyau se déplace vers une région adjacente, répétant ce processus jusqu’à avoir parcouru toute l’image. La sortie de cette extraction est une carte de caractéristiques.
Les couches de pooling compressent les données de la carte de caractéristiques. Ce processus, également appelé sous-échantillonnage ou réduction de la dimensionnalité, augmente l’efficacité des calculs et réduit le risque de surajustement dans l’entraînement des modèles.
Les couches entièrement connectées reçoivent et rassemblent les données visuelles de chaque nœud du réseau neuronal (d’où le terme « entièrement connecté ») et prédisent si l’image correspond à des catégories qu’elles ont été entraînées à reconnaître.
Bien que des couches convolutives supplémentaires puissent améliorer la précision, l’ajout d’un nombre de couches excessif entraîne la disparition de gradients, qui empêche l’optimisation du modèle. L’architecture ResNet a résolu ce problème, ouvrant la voie à des CNN pouvant contenir des centaines (voire des milliers) de couches.
R-CNN a été développé pour résoudre des tâches complexes de détection d’objets multiples non réalisables avec des CNN standard. Son évolution, Faster R-CNN, fait partie intégrante de nombreux modèles de segmentation d’instances.
Pour faire des prédictions au niveau de l’objet (plutôt que de l’image), R-CNN a introduit des propositions de régions : R-CNN utilise la recherche sélective pour proposer environ 2 000 boîtes superposées susceptibles de contenir un objet, puis alimente chaque « proposition d’objet » dans un CNN pour l’extraction des caractéristiques. Les algorithmes de machine à vecteurs de support (SVM) classifient ensuite les objets et génèrent des cadres de délimitation.
Fast R-CNN améliore considérablement la vitesse de R-CNN en introduisant d’abord l’image entière dans un CNN pour l’extraction des caractéristiques, puis en utilisant la carte des caractéristiques qui en résulte pour identifier les régions d’intérêt (RoI). Peu après, Faster R-CNN a encore amélioré la vitesse et la précision en introduisant un réseau de propositions de régions (RPN) pouvant être entraîné pour remplacer l’algorithme de recherche sélective plus lent et ne pouvant pas être entraîné.
Les FCN remplacent les couches fixes entièrement connectées d’un CNN simple par d’autres couches convolutives et de pooling, d’où le terme « entièrement convolutif ». L’avènement des FCN a marqué le début de l’ère moderne de la segmentation d’images.
Comme les CNN classiques, les FCN utilisent un réseau d’encodage, par exemple ResNet ou VGG, pour l’extraction des caractéristiques et le sous-échantillonnage. Mais au lieu de transmettre les données encodées à une couche entièrement connectée pour classer l’image entière, les FCN font passer les données encodées par les couches d’un réseau de « décodage » qui classe et sur-échantillonne les données compressées pour reconstruire l’image d’origine avec des masques de segmentation pixel par pixel.
Naturellement, certaines données sont perdues lors du processus de sous-échantillonnage. Les variantes ultérieures des FCN, comme U-Net, ont introduit des connexions résiduelles qui contournent sélectivement certaines couches convolutives pour conserver plus de détails.
En associant la détection d’objets de Faster R-CNN aux capacités de segmentation des FCN, l’architecture de Mask R-CNN a révolutionné la segmentation d’instances.
Une fois que le RPN génère les cadres de délimitation des objets proposés, et que le reste du réseau Faster R-CNN valide les propositions de régions qui contiennent des objets (et exécute des régressions pour améliorer la précision des cadres de délimitation de ces objets), le FCN crée un masque de segmentation des objets contenus dans chaque cadre.
Ce processus est efficace même avec des objets occlus, car le réseau Faster R-CNN est capable de différencier chaque instance d’objet et peut s’assurer que chacun est segmenté individuellement.
Certaines applications de la segmentation d’instances, comme la détection de composants défectueux dans une chaîne d’assemblage de fabrication, nécessitent des résultats en temps réel. Les modèles à une seule étape ont été développés pour les cas d’utilisation dans lesquels la rapidité est de mise.
Les modèles en deux étapes comme Mask R-CNN sont très précis, mais leur approche séquentielle par nature peut difficilement être accélérée. Les modèles de segmentation d’instances one-shot tels que YOLACT (You Only Look At CoefficienTs) s’appuient plutôt sur des modèles de détection d’objets en une seule étape comme YOLO (You Only Look Once).
Dans le modèle YOLACT, un FPN crée des cartes de caractéristiques haute résolution, qui alimentent deux branches parallèles : une branche du FCN propose k « masques prototypes » d’instances d’objets potentielles ; et simultanément, une branche de couches entièrement connectées produit de multiples « boîtes d’ancrage », similaires aux propositions de régions, et prédit également k « coefficients de masque », un pour chaque masque prototype, représentant la probabilité qu’un objet proposé corresponde au masque de segmentation proposé. La suppression non maximale (NMS) permet de filtrer les instances proposées avec les coefficients de masque les plus élevés.
Les innovations récentes dans la segmentation panoptique et la segmentation d’instances explorent des modèles de transformation, inspirés par leur application efficace dans des domaines tels que le traitement automatique du langage naturel. Des modèles comme Vision Transformers (ViT) utilisent l’auto-attention plutôt que la convolution, ce qui permet une analyse holistique du contexte visuel d’une image.
Le principal défi à relever a été celui des exigences de calcul : la complexité computationnelle de l’auto-attention augmente de manière quadratique par rapport à la taille de l’image. Les transformeurs Swin utilisent des fenêtres décalées (au lieu des glissements traditionnels) pour créer des couches d’auto-attention qui ne se chevauchent pas. La complexité computationnelle augmente donc de manière linéaire, et non plus quadratique, par rapport à la taille de l’image. Les modèles basés sur l’architecture Swin rivalisent désormais avec la précision des principaux frameworks basés sur des CNN.
Les algorithmes de machine learning, y compris les algorithmes d’apprentissage profond utilisés pour la segmentation d’instances, doivent être entraînés. Les modèles basés sur des CNN et sur des transformeurs sont entraînés par rétropropagation : les modèles appliquent une ingénierie inverse sur des images d’entraînement annotées pour apprendre les poids et les biais appropriés pour la tâche à accomplir.
L’annotation des données d’apprentissage doit être très précise pour maximiser l’efficacité du machine learning et servir de référence de type « vérité terrain » par rapport à laquelle les modèles entraînés peuvent être évalués et optimisés. Comme les capacités humaines dépassent largement les modèles de vision par ordinateur les plus précis, cette annotation est effectuée manuellement, un processus coûteux qui requiert énormément de main-d’œuvre.
Pour économiser le temps et les coûts associés aux jeux de données personnalisés, la plupart des modèles utilisent de grands jeux de données d’apprentissage open source ou affinent un réseau d’encodage pré-entraîné pour des tâches visuelles plus spécifiques. Voici des jeux de données d’images open source courants :
COCO (Common Objects in Context) :un jeu de données énorme contenant plus de 330 000 images avec des segments annotés dans 80 catégories de choses et 91 catégories d’ ensembles .
ADE20K : un jeu de données de segmentation de scènes créé par le MIT, contenant plus de 20 000 images et plus de 150 classes sémantiques.
Cityscapes : un jeu de données à grande échelle axé sur les rues des villes, contenant des images de 50 villes à divers moments de la journée, différentes saisons et dans diverses conditions météorologiques.
Les indicateurs les plus couramment appliqués pour les performances en matière de segmentation d’instances et de détection d’objets sont Intersection over Union (IoU) et Average Precision (AP). Ces indicateurs sont généralement exprimés en termes de performances par rapport à un jeu de données de référence, comme « une AP de 54,4 sur le jeu de données COCO ».
L’IoU mesure le chevauchement au niveau des pixels entre un masque de vérité terrain et la prédiction d’un modèle, exprimé sous la forme d’un pourcentage ou d’un entier compris entre 0 et 1. Pour les images avec plusieurs instances, l’IoU moyen (mIoU) est utilisé.
Même si l’IoU est intuitif, il présente des limites importantes :
L’AP est calculée comme l’aire sous la courbe précision-rappel. Elle équilibre les compromis entre deux indicateurs, la précision et le rappel, calculés à l’aide de valeurs de résultat discrètes telles que les vrais positifs (TP), les vrais négatifs (TN), les faux positifs (FP) et les faux négatifs (FN).
Pour maximiser la pertinence, l’AP est souvent calculée dans les limites de seuils d’IoU spécifiques. Par exemple, « AP50 » calcule l’AP uniquement pour les prédictions avec un IoU supérieur à 50 %. L’Average Precision moyenne (mAP) est utilisée de manière situationnelle comme la valeur AP moyenne pour tous les seuils calculés.
Nous avons interrogé 2 000 entreprises à propos de leurs initiatives d’IA pour découvrir ce qui fonctionne, ce qui ne fonctionne pas et comment progresser.
IBM Granite est notre famille de modèles d’IA ouverts, performants et fiables, conçus pour les entreprises et optimisés pour dimensionner vos applications d’IA. Explorez les options de langage, de code, de séries temporelles et de garde-fous.
Accédez à notre catalogue complet de plus de 100 cours en ligne en souscrivant aujourd’hui un abonnement individuel ou multiutilisateur afin d’élargir vos compétences dans certains de nos produits à un prix avantageux.
Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io