22 mars 2023

Comment étiqueter efficacement les images pour les projets de vision par ordinateur ?

Les contributeurs
Thomas Janssens
Ingénieur Machine Learning Senior | Chef d'équipe
Aucun élément trouvé.
S'abonner à la newsletter
Partager cet article

ML6 est souvent contact√©e par des clients ayant un probl√®me qui semble pouvoir √™tre r√©solu avec quelques cam√©ras et une solution intelligente d'apprentissage automatique. Parfait, mais par o√Ļ commencer ? Il nous faut encore une chose : des donn√©es √©tiquet√©es. Actuellement, la mani√®re la plus pratique et la plus robuste de mettre en Ňďuvre un algorithme de vision artificielle dans le monde r√©el consiste √† lui enseigner les motifs qu'il doit √™tre capable de reconna√ģtre. Cela signifie qu'il faut cr√©er un ensemble de donn√©es d'entra√ģnement, c'est-√†-dire une collection de donn√©es d'exemple √©tiquet√©es sur lesquelles les param√®tres du mod√®le peuvent √™tre r√©gl√©s pour apprendre √† r√©soudre le probl√®me.

Notre exp√©rience des projets impliquant des donn√©es √©tiquet√©es r√©v√®le une v√©rit√© constante : il est essentiel de disposer d'un ensemble d'entra√ģnement bien annot√© pour r√©ussir. Comme le dit le proverbe : " garbage in, garbage out". Dans ce billet, nous nous concentrons sur les probl√®mes les plus courants dans les applications de vision par ordinateur. La plupart des probl√®mes que nous traitons pour nos clients entrent dans l'une des cat√©gories suivantes : Classification d'images, D√©tection d'objets ou Segmentation d'instances.

‚Äć

Illustration des t√Ęches de vision par ordinateur abord√©es ici.
Illustration des t√Ęches de vision par ordinateur abord√©es ici.

‚Äć

Comment rassembler un ensemble de données de formation

Pour avoir une bonne id√©e de ce √† quoi doit ressembler votre ensemble d'entra√ģnement, vous devez r√©fl√©chir au probl√®me que vous essayez de r√©soudre. Quelles sont les diff√©rences entre les diff√©rents √©l√©ments que vous souhaitez d√©tecter ? Y a-t-il beaucoup de variations dans leur apparence, leur √©clairage, l'angle sous lequel l'image est prise ? Utilise-t-on un seul type de cam√©ra ou plusieurs mod√®les diff√©rents ?

Bien qu'il existe diverses techniques permettant de tirer le meilleur parti de l'annotation dans un budget-temps limit√©, il est toujours bon de constituer un ensemble d'entra√ģnement couvrant des images de toutes les vari√©t√©s susmentionn√©es qui s'appliquent √† votre probl√®me. Un mod√®le d'apprentissage automatique aura plus de facilit√© √† g√©n√©raliser ce qu'il sait √† un nouvel exemple ressemblant √©troitement √† celui sur lequel il a √©t√© form√©, plut√īt qu'√† quelque chose d'enti√®rement nouveau. Par exemple, si vous rassemblez un ensemble d'entra√ģnement pour un mod√®le de d√©tection de voitures, vous souhaitez √©tiqueter des exemples pr√©sentant autant de couleurs, de marques, d'angles et de conditions d'√©clairage diff√©rents que ce que vous attendez du mod√®le. Si vous n'√©tiquetez que des voitures citadines compactes, le mod√®le ne sera pas en mesure de d√©tecter un camion g√©ant. Bien entendu, il n'est pas n√©cessaire que toutes les combinaisons possibles d'attributs figurent dans l'ensemble de donn√©es, mais seulement un m√©lange sain de la vari√©t√© du monde r√©el.

Avant de proc√©der √† l'√©tiquetage, passez en revue l'ensemble de donn√©es afin de rep√©rer les sch√©mas qui pourraient vous obliger √† prendre des d√©cisions difficiles dans le cadre de votre approche de l'√©tiquetage. Avez-vous pens√© √† toutes les cat√©gories pertinentes ? Existe-t-il un certain type d'objet qui se situe entre deux cat√©gories ? Certaines images contiennent-elles des objets partiellement visibles ? Est-il impossible de reconna√ģtre certains objets dans certaines conditions (par exemple, des objets sombres dans des images sombres) ? R√©fl√©chissez √† ces questions et d√©cidez √† l'avance d'un plan appropri√©. Si votre √©tiquetage n'est pas coh√©rent, la qualit√© du mod√®le form√© sur vos donn√©es en sera affect√©e. Vous devrez peut-√™tre laisser de c√īt√© les images qui ne sont pas suffisamment claires. Une bonne r√®gle empirique consiste √† utiliser votre propre Ňďil : si vous pouvez prendre une d√©cision en une fraction de seconde pour une t√Ęche visuelle, un mod√®le d'apprentissage automatique peut g√©n√©ralement apprendre √† la reproduire. Toutefois, si l'image ne contient pas suffisamment d'informations visuelles, le mod√®le ne sera pas en mesure de les extraire de nulle part.

D'après notre expérience, il est essentiel d'inclure les experts en apprentissage automatique et les experts du domaine dès le début du projet, et d'élaborer une approche ensemble. Il est préférable de commencer par annoter un petit lot d'images et de les examiner dans le cadre d'un processus itératif. Cela permet d'éviter les malentendus et de travailler ensemble pour tirer le meilleur parti du temps consacré à l'annotation.

Dans le monde de l'apprentissage automatique, il existe de nombreux ensembles de donn√©es accessibles au public. Ceux-ci contiennent souvent des millions d' images et des dizaines, voire des centaines de classes de toutes sortes. ImageNet et COCO en sont des exemples. De m√™me, de nombreux mod√®les peuvent √™tre r√©utilis√©s. M√™me si votre probl√®me ne se recoupe pas exactement avec ces ensembles de donn√©es, il existe toujours, √† un niveau de base, des connaissances visuelles similaires li√©es √† la "d√©tection de choses" qui sont n√©cessaires dans les deux t√Ęches. Nous pouvons utiliser cela √† notre avantage en adaptant un mod√®le aussi puissant √† notre t√Ęche, au lieu de partir de z√©ro.

‚Äć

Classification des images

Dans la classification d'images, l'objectif est d'attribuer une étiquette unique à l'ensemble de l'image. C'est intéressant si vous disposez d'une collection d'images qui appartiennent à une ou plusieurs catégories, ou si vous souhaitez prendre une décision oui/non sur la base d'une caractéristique importante de l'image. Ce type de modèle pourrait être utilisé pour détecter le type de pièce qui passe devant la caméra d'une usine, ou pour suggérer une catégorie d'article à partir d'une photo téléchargée par un vendeur sur une place de marché d'occasion.

Une étiquette de classe est attribuée à chaque image

Il s'agit g√©n√©ralement de la t√Ęche la plus facile √† √©tiqueter. Veillez √† cr√©er des cat√©gories clairement distinctes et bien d√©finies. Par exemple, si vous √©tiquetez des pi√®ces d√©fectueuses dans une cha√ģne de production, r√©fl√©chissez soigneusement aux diff√©rents d√©fauts qui peuvent survenir et examinez le nombre de cat√©gories qui peuvent √™tre d√©finies et qui sont clairement distinctes sur le plan visuel. Il est √©galement conseill√© d'examiner votre ensemble de donn√©es et de r√©fl√©chir aux cas qui pourraient s'av√©rer difficiles, et d'√©laborer une strat√©gie coh√©rente pour les traiter.

Détection d'objets

Si nous nous intéressons à un certain nombre d'objets, à leur emplacement général dans les images, ou si nous recherchons un objet relativement petit dans une image plus grande, la détection d'objets est le nom du jeu.

√Ä cette fin, nous formons un algorithme pour d√©tecter les r√©gions rectangulaires contenant les objets ou les r√©gions d'int√©r√™t. Comme pr√©c√©demment, un mod√®le peut apprendre √† distinguer de nombreuses cat√©gories d'objets. Ce mod√®le pourrait √™tre utilis√© pour d√©tecter les pi√©tons, les cyclistes et les voitures dans une sc√®ne de rue (pensez aux voitures autonomes ou √† la vid√©osurveillance), pour localiser et identifier les d√©fauts sur les produits dans une cha√ģne de production, ou pour suivre un ballon et des joueurs dans un match de sport.

L'annotation de vos données d'apprentissage consiste à dessiner des cases sur les objets intéressants de vos images. Une étiquette de classe est également attribuée à chaque case. Les cases peuvent se chevaucher.

‚Äć

Annotations rectangulaires dans une scène de rue. Notez l'ajustement généralement serré et le chevauchement entre les objets proches.

En g√©n√©ral, il est bon de tracer les limites de la bo√ģte de mani√®re raisonnablement serr√©e autour de l'objet. Des annotations incoh√©rentes et l√Ęches rendent le processus d'apprentissage du mod√®le inutilement difficile. En outre, cela signifie que vos mesures d'√©valuation seront moins informatives, car le mod√®le sera p√©nalis√© pour avoir dessin√© les limites √† un endroit diff√©rent.

‚Äć

Segmentation des instances

Si votre probl√®me consiste √† localiser avec pr√©cision un objet dans l'image, jusqu'aux pixels exacts, vous voudrez passer √† la segmentation de l'instance. Cela peut √™tre n√©cessaire pour calculer des mesures telles que la surface ou la section transversale de l'objet, ou pour utiliser les informations pour des t√Ęches en aval, telles que l'√©dition automatis√©e d'images. Cela peut parfois √™tre utile pour les objets complexes qui ne sont pas facilement approxim√©s par un rectangle, par exemple les objets minces laissent souvent trop d'espace non pertinent dans la bo√ģte pour que la d√©tection simple d'un objet fonctionne bien. La segmentation des instances est √©galement utile pour distinguer les objets √©troitement empil√©s en √©l√©ments individuels.

En gros, il existe deux approches pour cette t√Ęche : l'annotation polygonale et l'annotation bas√©e sur les pixels. La premi√®re consiste essentiellement √† dessiner une s√©rie de points autour du contour de l'objet, qui sont reli√©s par des segments de ligne. La seconde consiste en des approches bitmap, similaires √† l'outil pinceau d'un logiciel d'√©dition d'images. L'approche la plus facile d√©pend de votre probl√®me, de la forme des objets que vous souhaitez reconna√ģtre et des outils propos√©s par votre logiciel d'annotation. (Certains proposent des outils similaires √† ceux de Photoshop, tels que le remplissage, le lasso magique, etc.) Ces annotations de forme sont √©galement accompagn√©es d'une √©tiquette de classe.

De nombreux logiciels d'étiquetage plus avancés proposent également des approches semi-automatiques indépendantes du problème, telles que DEXTR, qui vous permet d'extraire un masque détaillé à partir de quatre points clés seulement. Ces méthodes sont également très pratiques pour étiqueter rapidement de grandes quantités d'objets.

Comme pour les annotations de rectangles, vous devez trouver un bon équilibre entre l'annotation d'un seul objet, suffisamment serrée pour fournir un signal d'apprentissage cohérent à l'algorithme, et le fait d'avancer suffisamment rapidement pour pouvoir étiqueter de nombreux exemples dans le temps dont vous disposez pour l'annotation.

√Čtiquetage manuel d'instances bas√© sur des polygones (√† gauche) et annotation DEXTR semi-manuelle, g√©n√©r√©e √† partir de quatre points extr√™mes (√† droite).

Autres t√Ęches

Les catégories ci-dessus ne constituent pas une liste exhaustive de tous les types d'annotation possibles. Pour certains problèmes, la segmentation sémantique, qui consiste à étiqueter des pixels individuels de l'image sans détecter d'objets distincts, est plus appropriée. Il y a aussi l'annotation des points clés, qui consiste à annoter les points clés d'un objet, par exemple les articulations d'une personne qui danse ou une pièce de machine en mouvement.

En outre, tous les probl√®mes ne sont pas mod√©lis√©s de mani√®re appropri√©e √† l'aide d'√©tiquettes de classes discr√®tes. Dans certains cas, une √©tiquette continue ou num√©rot√©e est plus appropri√©e. Vous pourriez vouloir √©tiqueter une maison dans une image satellite avec une valeur de vente estim√©e, classer une image de microscopie de biopsie avec un grade de maladie, ou estimer l'√Ęge d'une personne √† partir d'une image. La saisie d'√©tiquettes continues de forme libre est g√©n√©ralement moins bien prise en charge par les outils d'annotation ; vous devrez donc vous assurer qu'elle est prise en charge par l'outil de votre choix.

Segmentation sémantique : les pixels ont des classes, mais ne sont pas regroupés en objets individuels.
Annotation des points clés pour l'estimation de la pose

Logiciels d'étiquetage et services d'étiquetage de tiers

Le choix du bon logiciel d'√©tiquetage est essentiel pour am√©liorer l'efficacit√© de vos efforts d'√©tiquetage. Assurez-vous que votre logiciel permet un √©tiquetage facile pour votre t√Ęche sp√©cifique, avec aussi peu d'actions manuelles par annotation. Veillez √† apprendre tous les raccourcis pertinents : les petites fractions de temps gagn√©es sur chaque annotation s'ajouteront √† des gains de temps significatifs sur l'ensemble de l'ensemble des donn√©es.

Si vous travaillez sur un projet de grande envergure, v√©rifiez si le logiciel dispose d'une m√©thode intelligente pour t√©l√©charger et g√©rer les ensembles de donn√©es. Si vous avez plusieurs personnes qui √©tiquettent, la possibilit√© d'attribuer des r√īles, des autorisations et des t√Ęches d'√©tiquetage √† des utilisateurs individuels peut √©galement s'av√©rer n√©cessaire pour que tout reste g√©rable. Certains outils vous permettent de d√©finir un pipeline d'√©tiquetage plus complexe, ce qui permet de gagner en efficacit√© en divisant un probl√®me en plusieurs √©tapes plus petites et plus rapides, ou en utilisant un algorithme d'apprentissage automatique pr√©alablement form√© pour g√©n√©rer une premi√®re approximation des contours de l'objet.

Il existe de nombreux outils gratuits à code source ouvert qui possèdent un grand nombre de ces fonctions, par exemple CVAT, Label Studio ou LOST. Il existe également des solutions commerciales qui peuvent être accompagnées d'implémentations propriétaires de ces fonctionnalités et d'autres extras.

Réfléchissez également à la manière dont ce logiciel sera déployé. Certains logiciels plus anciens ou plus petits fonctionnent comme une application normale, d'autres peuvent être déployés comme un service. Certains, comme les deux susmentionnés, disposent de conteneurs Docker pour un déploiement rapide.

‚Äć

Une interface d'étiquetage typique (CVAT), avec les outils (à gauche), la navigation dans les données (en haut) et la gestion des étiquettes (à droite).

‚Äć

Si vous disposez d'un ensemble de donn√©es particuli√®rement volumineux qui doit √™tre √©tiquet√©, il peut √™tre int√©ressant de prendre contact avec des fournisseurs de services d'√©tiquetage tiers. Vous pouvez √©galement mettre en place votre propre t√Ęche de crowdsourcing en utilisant une plateforme de crowdsourcing. Cette approche peut permettre une augmentation massive du d√©bit d'√©tiquetage, mais elle introduit √©galement des frais g√©n√©raux et des temps d'installation, et n√©cessite une partie suppl√©mentaire pour comprendre pleinement le domaine du probl√®me. Il est particuli√®rement important de garder un Ňďil sur la qualit√© de l'√©tiquetage, √† la fois entre les individus et dans le temps.

Nous avons ainsi couvert les aspects les plus importants de la résolution d'un problème de vision par ordinateur en étiquetant vos propres données. Si vous avez un problème qui pourrait être automatisé à l'aide de l'une des techniques ci-dessus, nous vous encourageons à nous contacter chez ML6. Nous pouvons vous aider à trouver le flux de travail optimal pour votre projet de vision par ordinateur.

‚Äć

Postes connexes

Voir tout le contenu
Aucun résultat n'a été trouvé.
Il n'y a pas de résultats correspondant à ces critères. Essayez de modifier votre recherche.
Grand modèle linguistique
Modèles de fondation
Entreprise
Personnes
Données Structurées
Chat GPT
Durabilité
Voix et son
Développement frontal
Protection des données et sécurité
IA responsable/éthique
Infrastructure
Hardware et capteurs
MLOps
IA générative
Natural Language Processing
Vision par ordinateur