Comment améliorer votre classifieurHow to improve your classifier

Dans ce guide, vous allez découvrir comment améliorer la qualité de votre classifieur Custom Vision.In this guide you will learn how to improve the quality of your Custom Vision Service classifier. La qualité d’un classifieur dépend de la quantité, de la qualité et de la variété des données étiquetées fournies, ainsi que de l’équilibre du jeu de données global.The quality of your classifier depends on the amount, quality, and variety of the labeled data you provide it and how balanced the overall dataset is. Un bon classifieur comporte un jeu de données d’entraînement équilibré et représentatif de ce qui lui sera soumis.A good classifier has a balanced training dataset that is representative of what will be submitted to the classifier. Le processus de création d’un tel classifieur est itératif ; il est normal de pratiquer plusieurs cycles d’entraînement pour atteindre les résultats escomptés.The process of building such a classifier is iterative; it's common to take a few rounds of training to reach expected results.

Voici un modèle général pour vous aider à créer un classifieur plus précis :The following is a general pattern to help you build a more accurate classifier:

  1. Effectuer le premier cycle d’apprentissage.First-round training
  2. Ajouter d’autres images et équilibrer les données ; réentraînerAdd more images and balance data; retrain
  3. Ajouter des images avec différents arrière-plans, éclairages, tailles d’objet, angles de vue et styles ; réentraînerAdd images with varying background, lighting, object size, camera angle, and style; retrain
  4. Utiliser de nouvelles images pour tester la prédictionUse new image(s) to test prediction
  5. Modifier les données d’entraînement existantes en fonction des résultats de la prédictionModify existing training data according to prediction results

Empêcher le surajustementPrevent overfitting

Un classifieur va parfois apprendre à faire des prédictions en fonction de caractéristiques arbitraires que vos images ont en commun.Sometimes, a classifier will learn to make predictions based on arbitrary characteristics that your images have in common. Par exemple, si vous créez un classifieur pommes/agrumes et que vous avez utilisé des images de pommes tenues dans des mains et des images d’agrumes posés dans des assiettes blanches, le classifieur risque de donner une trop grande importance à la distinction mains/assiettes, plutôt qu’à la distinction pommes/agrumes.For example, if you are creating a classifier for apples vs. citrus, and you've used images of apples in hands and of citrus on white plates, the classifier may give undue importance to hands vs. plates, rather than apples vs. citrus.

Image de classification inattendue

Pour corriger ce problème, suivez les instructions ci-après afin d’effectuer l’entraînement avec des images plus variées : fournissez des images prises selon différents angles, arrière-plans, tailles d’objet, groupes et autres variantes.To correct this problem, use the following guidance on training with more varied images: provide images with different angles, backgrounds, object size, groups, and other variations.

Quantité de donnéesData quantity

Le nombre d’images d’entraînement est le facteur le plus important.The number of training images is the most important factor. Nous recommandons d’utiliser au moins 50 images par étiquette pour commencer.We recommend using at least 50 images per label as a starting point. Avec moins d’images, il existe un risque plus élevé de surajustement. Et même si vos chiffres de performance suggèrent une bonne qualité, votre modèle aura peut-être du mal avec des données réelles.With fewer images, there's a higher risk of overfitting, and while your performance numbers may suggest good quality, your model may struggle with real-world data.

Équilibre des donnéesData balance

Il est également essentiel de prendre en compte les quantités relatives de vos données d’entraînement.It's also important to consider the relative quantities of your training data. Par exemple, l’utilisation de 500 images pour une seule étiquette et de 50 images pour une autre déséquilibre le jeu de données d’entraînement.For instance, using 500 images for one label and 50 images for another label makes for an imbalanced training dataset. Le modèle sera donc plus précis pour prédire une étiquette plutôt qu’une autre.This will cause the model to be more accurate in predicting one label than another. Les résultats seront très certainement meilleurs avec un ratio d’au moins 1:2 entre l’étiquette la moins bien dotée et l’étiquette la plus foisonnante.You're likely to see better results if you maintain at least a 1:2 ratio between the label with the fewest images and the label with the most images. Si, par exemple, l’étiquette la plus fournie comporte 500 images, la moins fournie doit inclure au moins 250 images pour l’entraînement.For example, if the label with the most images has 500 images, the label with the least images should have at least 250 images for training.

Variété des donnéesData variety

Veillez à utiliser des images représentatives de ce qui va être soumis au classifieur en utilisation normale.Be sure to use images that are representative of what will be submitted to the classifier during normal use. Sinon, votre classifieur risque d’apprendre à faire des prédictions en fonction de caractéristiques arbitraires que vos images ont en commun.Otherwise, your classifier could learn to make predictions based on arbitrary characteristics that your images have in common. Par exemple, si vous créez un classifieur pommes/agrumes et que vous avez utilisé des images de pommes tenues dans des mains et des images d’agrumes posés dans des assiettes blanches, le classifieur risque de donner une trop grande importance à la distinction mains/assiettes, plutôt qu’à la distinction pommes/agrumes.For example, if you are creating a classifier for apples vs. citrus, and you've used images of apples in hands and of citrus on white plates, the classifier may give undue importance to hands vs. plates, rather than apples vs. citrus.

Image de classification inattendue

Pour corriger ce problème, incluez des images très diverses pour garantir une correcte généralisation par votre classifieur.To correct this problem, include a variety of images to ensure that your classifier can generalize well. Voici quelques moyens de rendre un jeu d’apprentissage plus varié :Below are some ways you can make your training set more diverse:

  • Contexte : Fournissez des images de votre objet devant différents arrière-plans.Background: Provide images of your object in front of different backgrounds. Les photos prises dans des contextes naturels sont plus performantes que celles dont l’arrière-plan est neutre, car elles apportent davantage d’informations au classifieur.Photos in natural contexts are better than photos in front of neutral backgrounds as they provide more information for the classifier.

    Exemples d’images (arrière-plan)

  • Éclairage : Fournissez des images présentant des éclairages variés (autrement dit, prises avec flash, avec exposition élevée, etc.), en particulier si les images utilisées pour la prédiction sont diversifiées de ce point de vue.Lighting: Provide images with varied lighting (that is, taken with flash, high exposure, and so on), especially if the images used for prediction have different lighting. Il est également conseillé d’utiliser dont la saturation, la teinte et la luminosité varient.It is also helpful to use images with varying saturation, hue, and brightness.

    Exemples d’images (éclairage)

  • Taille de l'objet : Fournissez des images dans lesquelles les objets varient en taille et en nombre (par exemple, une photo de régime de bananes et un gros plan sur une banane isolée).Object Size: Provide images in which the objects vary in size and number (for example, a photo of bunches of bananas and a closeup of a single banana). Les différences de taille permettent au classifieur de mieux généraliser.Different sizing helps the classifier generalize better.

    Exemples d’images (taille)

  • Angle de vue : fournissez des images prises avec différents angles de vue.Camera Angle: Provide images taken with different camera angles. Par ailleurs, si toutes vos photos doivent être prises par des caméras fixes (par exemple, des caméras de surveillance), veillez à attribuer une étiquette différente à chaque objet revenant régulièrement pour éviter tout surajustement (interprétation des objets non connexes comme étant la caractéristique).Alternatively, if all of your photos must be taken with fixed cameras (such as surveillance cameras), be sure to assign a different label to every regularly-occurring object to avoid overfitting—interpreting unrelated objects (such as lampposts) as the key feature.

    Exemples d’images (angle)

  • Style : Fournissez des images de styles différents de la même classe (par exemple, des variétés différentes du même fruit).Style: Provide images of different styles of the same class (for example, different varieties of the same fruit). En revanche, si vous avez des objets de styles radicalement différents (par exemple, Mickey Mouse et une vraie souris), nous vous recommandons de les étiqueter comme des classes distinctes afin de mieux représenter leurs caractéristiques distinctes.However, if you have objects of drastically different styles (such as Mickey Mouse vs. a real-life mouse), we recommend you label them as separate classes to better represent their distinct features.

    Exemples d’images (style)

Images négativesNegative images

À un moment donné dans votre projet, il peut être nécessaire d’ajouter des exemples négatifs pour rendre votre classifieur plus précis.At some point in your project, you may need to add negative samples to help make your classifier more accurate. Les exemples négatifs sont ceux qui ne correspondent à aucune des autres balises.Negative samples are those which do not match any of the other tags. Quand vous chargez ces images, appliquez l’étiquette spéciale Negative (Négatif) à celles-ci.When you upload these images, apply the special Negative label to them.

Notes

Le service Vision personnalisée prend en charge un traitement automatique des images négatives.The Custom Vision Service supports some automatic negative image handling. Par exemple, si vous générez un classifieur raisins/bananes et que vous soumettez une image de chaussure à la prédiction, il devra lui donner un score proche de 0 % aussi bien pour les raisins que pour les bananes.For example, if you are building a grape vs. banana classifier and submit an image of a shoe for prediction, the classifier should score that image as close to 0% for both grape and banana.

À l’inverse, dans les cas où les images négatives représentent simplement une variante des images utilisées pour l’apprentissage, il est probable que le modèle les catégorise comme une classe étiquetée en raison des grandes similitudes qu’elles présentent.On the other hand, in cases where the negative images are just a variation of the images used in training, it is likely that the model will classify the negative images as a labeled class due to the great similarities. Par exemple, si vous avez un classifieur oranges/pamplemousses et que vous fournissez une image de clémentine, il est possible qu’il l’évalue comme étant une orange car la clémentine présente des caractéristiques similaires à l'orange.For example, if you have an orange vs. grapefruit classifier, and you feed in an image of a clementine, it may score the clementine as an orange because many features of the clementine resemble those of oranges. Si vos images négatives sont de cette nature, nous vous conseillons de créer une ou plusieurs balises supplémentaires (comme Autre) et d’étiqueter ainsi les images négatives pendant l’apprentissage pour permettre au modèle de mieux faire la distinction entre ces classes.If your negative images are of this nature, we recommend you create one or more additional tags (such as Other) and label the negative images with this tag during training to allow the model to better differentiate between these classes.

Utiliser des images de prédiction à des fins de réentraînementUse prediction images for further training

Quand vous utilisez ou testez le classifieur d’images en soumettant des images au point de terminaison de prédiction, le service Custom Vision stocke ces images.When you use or test the image classifier by submitting images to the prediction endpoint, the Custom Vision service stores those images. Vous pouvez alors les utiliser pour améliorer le modèle.You can then use them to improve the model.

  1. Pour voir les images soumises au classifieur, ouvrez la page web Custom Vision, accédez à votre projet et sélectionnez l’onglet Prédictions. La vue par défaut montre des images à partir de l’itération active.To view images submitted to the classifier, open the Custom Vision web page, go to your project, and select the Predictions tab. The default view shows images from the current iteration. Vous pouvez utiliser le menu déroulant Iteration pour voir les images envoyées au cours des précédentes itérations.You can use the Iteration drop down menu to view images submitted during previous iterations.

    Capture d’écran de l’onglet des prédictions, avec des images dans la vue

  2. Pointez sur une image pour lire les mots clés qui ont été prédits par le classifieur.Hover over an image to see the tags that were predicted by the classifier. Les images sont triées de sorte à ce que celles susceptibles d’apporter le plus d’améliorations au classifieur soient listées en premier.Images are sorted so that the ones which can bring the most improvements to the classifier are listed the top. Pour utiliser une autre méthode de tri, effectuez une sélection dans la section Sort.To use a different sorting method, make a selection in the Sort section.

    Pour ajouter une image à vos données d’entraînement existantes, sélectionnez-la, sélectionnez les étiquettes correspondantes et cliquez sur Save and close.To add an image to your existing training data, select the image, set the correct tag(s), and click Save and close. L’image est supprimée de Prédictions et ajoutée à l’ensemble d’images d’entraînement.The image will be removed from Predictions and added to the set of training images. Vous pouvez la voir en sélectionnant l’onglet Training Images (Images d’entraînement).You can view it by selecting the Training Images tab.

    Image de la page d’étiquetage

  3. Utilisez ensuite le bouton Train (Entraîner) pour réentraîner le classifieur.Then use the Train button to retrain the classifier.

Inspecter visuellement les prédictionsVisually inspect predictions

Pour examiner les prédictions d’images, accédez à l’onglet Training Images, sélectionnez votre itération d’entraînement précédente dans le menu déroulant Iteration et cochez une ou plusieurs balises sous la section Tags.To inspect image predictions, go to the Training Images tab, select your previous training iteration in the Iteration drop-down menu, and check one or more tags under the Tags section. La vue doit à présent montrer une zone rouge autour de chacune des images pour lesquelles le modèle n’a pas réussi à prédire correctement la balise donnée.The view should now display a red box around each of the images for which the model failed to correctly predict the given tag.

Image de l’historique des itérations

Parfois, un examen visuel permet d’identifier des modèles pouvant être rectifiés en ajoutant des données d’entraînement supplémentaires ou en modifiant les données existantes.Sometimes a visual inspection can identify patterns that you can then correct by adding more training data or modifying existing training data. Par exemple, un classifieur pommes/citrons verts risquerait d’étiqueter à tort toutes les pommes vertes comme des citrons verts.For example, a classifier for apples vs. limes may incorrectly label all green apples as limes. Vous pourriez alors corriger ce problème en ajoutant et en fournissant des données d’entraînement comportant des images étiquetées de pommes vertes.You can then correct this problem by adding and providing training data that contains tagged images of green apples.

Étapes suivantesNext steps

Dans ce guide, vous avez découvert plusieurs techniques permettant de rendre plus précis votre modèle de classification d’images personnalisé.In this guide, you learned several techniques to make your custom image classification model more accurate. Découvrez ensuite comment tester des images programmatiquement en les soumettant à l’API de prédiction.Next, learn how to test images programmatically by submitting them to the Prediction API.