Accueil les sujets Segmentation d’instances Qu’est-ce que la segmentation d’instances ?
Découvrir IBM Maximo Visual Inspection
Une grille de conteneurs d’expédition

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 » (thing ou stuff), 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.

Segmentation d’instances et détection d’objets

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 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.

Contenu connexe

Abonnez-vous à la newsletter IBM

Segmentation d’instances et segmentation sémantique

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 (things), des classes d’entités dénombrables avec des formes distinctes, comme une « voiture » ou une « personne », et les ensembles (stuff), 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 chose (thing) 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 ces 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.

Segmentation d’instances et segmentation panoptique

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 de pyramides de fonctionnalités (FPN), pour l’extraction de caractéristiques : c’est l’isolation des données visuelles pertinentes. Cela entraîne des gains en efficacité et élimine les écarts.

Cas d’utilisation de la segmentation d’instances

La segmentation d’instances est essentielle à une variété de tâches de vision par ordinateur.

  •  Imagerie médicale : la segmentation d’instances est utilisée pour détecter les limites spécifiques des tissus et des pathologies, comme les tumeurs
  • Conduite autonome : la segmentation d’instances permet aux voitures autonomes de détecter et de classer avec précision les voitures, les objets, les personnes et les caractéristiques de la route (comme les feux de circulation).
  • Imagerie satellite : la segmentation d’instances peut permettre d’identifier et d’isoler les objets d’intérêt, par exemple distinguer plusieurs bâtiments le long d’une route à des fins d’utilisation dans un GPS.
  • Robotique: la segmentation d’instances permet de trier des éléments, de détecter des défauts, et à l’instar des voitures autonomes, elle permet aux robots de discerner les objets dans leur environnement et de naviguer autour.

 

 

Comment fonctionne la segmentation d’instances ?

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 type transformeurs sont devenus une alternative viable, la plupart des méthodes de segmentation d’images (y compris celles utilisées pour la segmentation d’instances) exploitent 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 en deux étapes, comme Mask R-CNN, effectuent d’abord la détection des objets, puis génèrent des masques de segmentation d’objets.
  • Les modèles one-shot (ou en une seule étape), comme YOLACT, exécutent ces deux tâches en parallèle.

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.

Réseaux neuronaux convolutifs (CNN)

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.

Regarder la vidéo  : « What are Convolutional Neural Networks (CNNs)? » sur YouTube
Réseau neuronal convolutif basé sur la région (R-CNN)

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 qu’au niveau de l’image), R-CNN introduit des propositions régionales : R-CNN utilise la recherche sélective (lien externe à ibm.com) pour proposer environ 2 000 zones superposées pouvant contenir un objet, puis transmet chaque « proposition d’objet » à un CNN pour l’extraction des caractéristiques. Les algorithmes SVM (Support Vector Machine) 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) entraînable pour remplacer l’algorithme de recherche sélective plus lent et non entraînable.

Lire le document : « Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks »
Réseaux entièrement convolutifs

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.

Lire le document : « Fully Convolutional Networks for Semantic Segmentation »
Mask R-CNN

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.

Lire le document : « Mask R-CNN »
Modèles one-shot (à une seule étape)

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.

Lire le document : « YOLACT++: Better Real Time Instance Segmentation »
modèles de transformation

Les innovations récentes dans la segmentation panoptique et la segmentation d’instances explorent des modèles de type transformeurs, 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.

Lire le document : « Swin Transformer: Hierarchical Vision Transformer using Shifted Windows »
Entraînement des modèles de segmentation d’instances

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.

Évaluation des modèles de segmentation d’instances

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 ».

Intersection over Union (IoU)
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 :

  • Il récompense les prédictions trop larges. Même si un masque de segmentation est beaucoup trop grand, il obtiendra un score d’IoU parfait de 1 s’il contient le masque de vérité terrain.
  • Il ne peut pas être utilisé comme fonction de perte. Pour les mauvaises prédictions sans chevauchement, qu’elles soient légèrement décalées ou très éloignées, IoU = 0. Cela signifie que l’IoU n’est pas différentiable, et qu’il ne peut donc pas aider un algorithme à optimiser un modèle. L’indicateur Generalized Intersection over Union (ou GIoU) (lien externe à ibm.com) rend l’IoU différentiable.

Average Precision (AP)
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).

  • La précision mesure la fréquence à laquelle les prédictions positives, dans ce cas, les pixels d’une instance segmentée, sont correctes : TP/(TP+FP). Cela présente l’inconvénient de récompenser les faux négatifs.
  • Le rappel mesure la fréquence à laquelle les prévisions positives sont capturées : TP/(TP+FN). Cela présente l’inconvénient de récompenser les faux positifs.

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.

 

 

Solutions connexes
IBM Maximo Visual Inspection

Exploitez la puissance de la vision par ordinateur sans code pour une inspection visuelle automatisée grâce à un ensemble d’outils intuitifs permettant l’étiquetage, l’entraînement et le déploiement de modèles de vision par intelligence artificielle.

Découvrir IBM Maximo Visual Inspection

Ressources pour la segmentation d’instances IBM Research : vision par ordinateur

Les systèmes modernes de vision par ordinateur font preuve d’une précision inégalée en matière de reconnaissance et d’analyse d’images, mais ils ne comprennent pas vraiment ce qu’ils voient. Chez IBM Research, nous concevons des systèmes d’IA capables de voir le monde comme nous.

Introduction à la vision par ordinateur et au traitement de l’image

Ce cours adapté aux débutants vous aidera à comprendre la vision par ordinateur et ses diverses applications dans de nombreux secteurs. Dans le cadre de ce cours, vous utiliserez Python, Pillow et OpenCV pour le traitement d’image de base, la classification des images et la détection d’objets.

Premiers pas avec IBM Maximo Visual Inspection

Lancez-vous avec IBM Maximo Visual Inspection afin de créer et d’entraîner des modèles basés sur l’IA pour inspecter vos actifs et vos produits, et identifiez les défauts qui peuvent poser des problèmes en matière de production et de qualité.

Passez à l’étape suivante

Exploitez la puissance de la vision par ordinateur sans code pour une inspection visuelle automatisée avec IBM Maximo Visual Inspection, un ensemble d’outils intuitifs permettant l’étiquetage, l’entraînement et le déploiement de modèles de vision par intelligence artificielle.

Découvrir IBM Maximo Visual Inspection Regarder la démo MVI