La segmentation d’image est une technique de vision par ordinateur qui divise une image numérique en groupes de pixels distincts (segments d’image) afin de faciliter la détection d’objets et les tâches connexes. En décomposant les données visuelles complexes d’une image en segments de forme spécifique, la segmentation d’image permet un traitement de l’image plus rapide et plus avancé.
Les techniques de segmentation d’image vont de l’analyse heuristique simple et intuitive à l’implémentation élaborée de l’apprentissage profond. Les algorithmes de segmentation d’image conventionnels traitent des caractéristiques visuelles de haut niveau de chaque pixel, telles que la couleur ou la luminosité, pour identifier les limites des objets et les régions en arrière-plan. Le machine learning, qui s’appuie sur des ensembles de données annotés, est utilisé pour entraîner des modèles afin de classer avec précision les types spécifiques d’objets et de régions qu’une image contient.
La segmentation d'image est une méthode très polyvalente et très pratique de vision par ordinateur. Elle s'applique dans de nombreux cas d'utilisation de l'intelligence artificielle, depuis l'aide au diagnostic en imagerie médicale jusqu'à l'automatisation de la locomotion pour la robotique et les voitures sans conducteur, en passant par l'identification d'objets d'intérêt dans les images satellite.
La segmentation d'image représente une évolution poussée de la classification des images et de la détection d'objets ; c'est aussi un ensemble distinct de capacités uniques de vision par ordinateur.
La classification d’images applique une étiquette de classe à une image entière. Par exemple, un simple modèle de classification d’images peut être entraîné à catégoriser les images des véhicules comme « voiture » ou « camion ». Les systèmes de classification d’images conventionnels sont généralement peu sophistiqués, car ils ne traitent pas séparément les caractéristiques d’image individuelles.
La détection d’objets associe la classification d’images et la localisation d’objets. Elle génère des régions rectangulaires, appelées « cadres de délimitation », à l’endroit où les objets se trouvent. Ainsi, au lieu de simplement étiqueter une image de véhicule comme « voiture » ou « camion », un modèle de détection d’objets pourrait indiquer où se trouvent ces objets dans l’image. Bien que la détection d’objets puisse classer plusieurs éléments d’une image et déterminer approximativement la largeur et la hauteur de chacun, elle ne peut pas discerner des formes ou des contours précis. Cela restreint la capacité des modèles conventionnels de détection d’objets à délimiter les objets très rapprochés dont les cadres de délimitation se chevauchent.
La segmentation d’image traite les données visuelles au niveau du pixel, en utilisant diverses techniques pour annoter des pixels individuels comme appartenant à une classe ou une instance spécifique. Les techniques de segmentation d’image dites classiques déterminent les annotations en analysant les qualités inhérentes à chaque pixel (« l’heuristique ») telles que la couleur et l’intensité, tandis que les modèles d’apprentissage profond utilisent des réseaux neuronaux complexes pour une reconnaissance de formes sophistiquée. Les résultats de ce processus d’annotation sont des masques de segmentation, qui représentent la limite et la forme spécifiques, pixel par pixel, de chaque classe, correspondant généralement à différents objets, entités ou régions au sein de l’image.
D’une manière générale, la segmentation d’image est utilisée pour trois types de tâches : la segmentation sémantique, la segmentation d’instances et la segmentation panoptique.
La différence entre les divers types de segmentation d'image réside dans la façon dont ils traitent les classes sémantiques : les catégories spécifiques auxquelles il détermine qu'un pixel donné appartient.
Dans le langage de la vision par ordinateur, il existe deux types de classes sémantiques. Chacun se prête à différentes techniques pour une segmentation précise et efficace.
Les choses (things) sont des classes d’objets aux formes caractéristiques, comme « voiture », « arbre » ou « personne ». En général, les choses ont des instances clairement définies et dénombrables. Leur taille varie relativement peu d’une instance à l’autre, ainsi que leurs éléments constitutifs distincts : par exemple, toutes les voitures ont des roues, mais une roue n’est pas une voiture.
Les ensembles (stuff) font référence à des classes sémantiques de forme amorphe et de taille très variable, comme « ciel », « eau » ou « herbe ». En règle générale, les ensembles n’ont pas d’instances individuelles clairement définies et dénombrables. Contrairement aux choses, les ensembles n’ont pas de parties distinctes : un brin d’herbe et un champ d’herbe sont tous deux désignés par « herbe ».
Certaines classes, dans certaines conditions d’image, peuvent être à la fois des choses et des ensembles. Par exemple, un grand groupe de personnes peut être interprété comme plusieurs « personnes », chacune ayant une forme distincte et pouvant être dénombrée en tant que chose, ou comme une « foule » singulière et sans forme particulière.
Bien que la plupart des efforts de détection d'objets se concentrent principalement sur les classes d'objets, il est important de prendre en compte que les ensembles (ciel, murs, étages, sol) constituent la majeure partie de notre contexte visuel. Les ensembles constituent un point de données essentiel pour identifier des objets, et vice versa : une chose métallique sur une route est généralement une voiture ; le fond bleu derrière un bateau est probablement de l'eau, tandis que le fond bleu derrière un avion est probablement le ciel. Ceci est particulièrement important pour les modèles d’apprentissage profond.
La segmentation sémantique est le type de segmentation d'image le plus simple. Un modèle de segmentation sémantique attribue une classe sémantique à chaque pixel, mais ne génère aucun autre contexte ni aucune information (comme les objets).
La segmentation sémantique traite tous les pixels comme des ensembles; elle ne fait aucune différence entre des ensembles et des choses.
Ainsi, un modèle de segmentation sémantique conçu pour identifier certaines classes dans une rue de la ville produirait des masques de segmentation indiquant les limites et les contours de chaque catégorie pertinente de choses (véhicules, lampadaires) et d'ensembles (routes, trottoirs), sans faire de distinction entre les instances multiples de la même classe ni les décompter. Par exemple, les voitures garées l'une devant l'autre peuvent être simplement traitées comme un long segment « voiture ».
La segmentation d'instance inverse les priorités de la segmentation sémantique : alors que les algorithmes de segmentation sémantique prédisent uniquement la classification sémantique de chaque pixel (sans tenir compte des instances individuelles), la segmentation d'instance, elle, délimite la forme exacte de chaque instance d'objet distincte.
La segmentation d'instance isole les choses des ensembles (qu'elle ignore) et peut donc être comprise comme une forme très évoluée de détection d'objets, qui génère un masque de segmentation précis au lieu d'un cadre de délimitation approximatif.
C'est une tâche plus difficile que la segmentation sémantique : même lorsque des éléments de la même classe se touchent ou se chevauchent, les modèles de segmentation d'instance doivent être capables de les séparer et de déterminer leur forme, alors que la segmentation sémantique peut se contenter de les regrouper. Prenons par exemple la façon dont les deux modèles différents traitent les voitures garées dans cette image de la rue d'une ville.
Les algorithmes de segmentation d’instance adoptent généralement une approche du problème en deux étapes ou one-shot. Les modèles en deux étapes, comme les réseaux neuronaux convolutifs basés sur les régions (R-CNN), effectuent une détection d’objets conventionnelle pour générer des cadres de délimitation pour chaque instance proposée, puis effectuent une segmentation et une classification plus affinées au sein de chaque cadre de délimitation. Les modèles ponctuels, comme YOLO (You Only Look Once), réalisent une segmentation d’instance en temps réel en effectuant simultanément la détection, la classification et la segmentation des objets.
Les approches one-shot sont plus rapides (mais un peu moins précises), tandis que les approches en deux étapes offrent une plus grande précision (mais sont moins rapides).
Les modèles de segmentation panoptique déterminent à la fois la classification sémantique de tous les pixels et différencient chaque instance d'objet au sein d'une même une image, combinant les avantages de la segmentation sémantique et d'instance.
Dans une tâche de segmentation panoptique, chaque pixel doit se voir attribuer à la fois une étiquette sémantique et un « ID d’instance ». Les pixels partageant le même libellé et le même ID appartiennent au même objet ; pour les pixels déterminés comme ensembles, l’ID d’instance est ignoré.
La segmentation panoptique fournit ainsi aux systèmes de vision par ordinateur une compréhension globale et exhaustive d'une image donnée. Bien qu'il soit tentant de l'utiliser, réaliser une segmentation panoptique de manière cohérente et efficace sur le plan informatique constitue un défi de taille.
La difficulté réside dans l'unification de deux méthodologies contradictoires : les modèles de segmentation sémantique traitent tous les pixels comme des ensembles, en ignorant les instances individuelles de choses ; de leur côté, les modèles de segmentation isolent les choses individuelles, ignorant les ensembles. Aucun type de modèle ne peut correctement absorber les responsabilités de l'autre.
Les premières tentatives de modèles de segmentation panoptique ont simplement combiné les deux modèles, en effectuant chaque tâche séparément, puis en combinant leur résultat dans une phase de post-traitement. Cette approche présente deux inconvénients majeurs : elle nécessite beaucoup de temps de calcul et a du mal à résoudre les écarts entre les points de données produits par le réseau de segmentation sémantique et les points de données générés par le réseau de segmentation d'instance.
Les nouvelles architectures de segmentation panoptiques visent à éviter ces inconvénients grâce à une approche plus unifiée de l’apprentissage profond. La plupart d’entre elles reposent sur un réseau « principal », tel qu’un réseau pyramidal de caractéristiques (FPN), qui extrait les caractéristiques de l’image d’entrée, introduit les données extraites dans des branches parallèles (par exemple une « branche de premier plan » et une « branche d’arrière-plan » ou une « tête sémantique » et une « tête d’instance ») et fusionne les résultats de chaque branche à l’aide d’un système de pondération. Les architectures panoptiques proposées comprennent EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet et SpatialFlow.
Les techniques traditionnelles de segmentation d'image utilisent les informations provenant des valeurs de couleur d'un pixel (et des caractéristiques associées telles que la luminosité, le contraste ou l'intensité) afin d'extraire les caractéristiques. Elles peuvent être rapidement entraînées à l'aide d'algorithmes de machine learning simples pour des tâches telles que la classification sémantique.
Si les méthodes de segmentation basées sur l'apprentissage profond sont capables d'une plus grande précision et d'une analyse d'image plus sophistiquée, en particulier les tâches comme la segmentation panoptique qui nécessitent beaucoup d'informations contextuelles, les méthodes traditionnelles sont beaucoup moins coûteuses et exigeantes en termes de calcul, et peuvent résoudre certains problèmes de manière plus efficace.
Les techniques les plus répandues de segmentation d'images traditionnelles (dites « classiques ») comprennent :
Entraînés sur un ensemble d’images annotées, les réseaux neuronaux des modèles de segmentation d’image par apprentissage profond peuvent découvrir des modèles sous-jacents dans les données visuelles et discerner les caractéristiques saillantes les plus pertinentes pour la classification, la détection et la segmentation.
Malgré les compromis en termes d'exigences informatiques et de temps d'apprentissage, les modèles d'apprentissage profond sont toujours plus performants que les modèles traditionnels et constituent la base de la plupart des progrès actuels dans le domaine de la vision par ordinateur.
Les modèles d'apprentissage profond les plus importants utilisés dans la segmentation d'image sont les suivants :
Afin de cartographier les contours des segments d'image, mais également de prédire quel ensemble ou quelle chose représente chaque segment, les modèles d'apprentissage profond sont entraînés sur de grands ensembles de données annotés afin de reconnaître des classes sémantiques spécifiques. À partir de ces images pré-étiquetées, les modèles d'apprentissage profond déduisent les modèles et les valeurs de pixel typiques pour chaque étiquette.
Des tâches différentes nécessitent des données d’entraînement différentes : un système de vision par ordinateur pour véhicule autonome est entraîné sur des images étiquetées à l’aide de classes sémantiques telles que « personne », « voiture », « voie » et « panneau stop », tandis que les modèles pour l’imagerie médicale nécessitent une optimisation pour reconnaître des classes spécifiques de tissus physiques, de tumeurs ou d’autres pathologies.
Les ensembles de données d'entraînement doivent être soigneusement pré-étiquetés par des experts humains, ce qui peut être extrêmement laborieux. La plupart des modèles de segmentation d'image utilisent de grands ensembles de données open source. Ces ensembles de données publics servent également de « vérité terrain » lors de l'évaluation du succès des modèles entraînés : les indicateurs de performance sont souvent exprimés en pourcentage des résultats correspondant avec précision aux annotations de l'ensemble de données d'entraînement.
Les jeux de données d'entraînement les plus populaires pour les modèles de segmentation des images par apprentissage profond sont les suivants :
La segmentation d'image est devenue un outil essentiel dans de nombreux domaines.
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