Préparer les données d'entraînement

Préparer vos images

  • Les images doivent utiliser un type de fichiers compatibles (voir la liste ci-dessous).

  • Les modèles AutoML Vision sont optimisés pour les photographies d'objets dans le monde réel.

  • Les données d'entraînement doivent être aussi proches que possible des données sur lesquelles les prédictions sont fondées. Par exemple, si votre cas pratique implique des images floues en basse résolution (comme celles d'une caméra de sécurité), vos données d'entraînement doivent être composées d'images floues à basse résolution. En général, il est recommandé de fournir également différents angles, résolutions et arrière-plans pour vos images d'entraînement.

  • Les modèles AutoML Vision ne sont généralement pas capables de prédire les étiquettes qu'un humain ne serait pas en mesure d'attribuer. Ainsi, si un humain ne peut pas apprendre à attribuer des étiquettes en regardant l'image pendant 1 à 2 secondes, le modèle ne pourra probablement pas être entraîné à le faire non plus.

  • Nous vous recommandons d'avoir environ 1 000 vidéos d'entraînement par étiquette. Le nombre minimal d'images requis par étiquette est de 10, ou 50 pour les modèles avancés. En général, l'entraînement de modèles avec plusieurs étiquettes par image nécessite davantage d'exemples par étiquette, et les résultats sont plus difficiles à interpréter.

  • Les formats d'image suivants sont compatibles avec l'entraînement du modèle. La taille de fichier maximale est de 30 Mo.

    • JPEG
    • PNG
    • GIF
    • BMP
    • ICO

    Les formats d'image suivants sont compatibles avec une demande de prédiction à partir (de l'interrogation) de votre modèle. La taille de fichier maximale est de 1,5 Mo.

    • JPEG
    • PNG
    • GIF
  • Le modèle fonctionne mieux lorsqu'il existe au maximum 100 fois plus d'images pour l'étiquette la plus courante que pour la plus rare. Nous recommandons de supprimer les libellés les moins fréquents.

  • Vous pouvez inclure un libellé None_of_the_above et des images qui ne correspondent à aucun des libellés définis. Par exemple, pour un ensemble de données sur les fleurs, incluez des images de fleurs ne faisant pas partie des variétés libellées, et attribuez-leur le libellé None_of_the_above. Cela peut améliorer la précision du modèle. Notez que, même si n'importe quel nom de libellé peut fonctionner, le libellé None_of_the_above est traité de manière spécifique par le système. Il apparaît toujours en dernier dans la liste de libellés sur l'UI.

Ensembles de données d'entraînement et d'évaluation

Lors de l'entraînement d'un modèle, les données d'un ensemble de données sont divisées en trois ensembles : un ensemble de données d'entraînement, un ensemble de données de validation et un ensemble de données de test.

Un ensemble de données d'entraînement est utilisé pour construire un modèle. Le modèle essaie plusieurs algorithmes et paramètres lors de la recherche de schémas dans les données d'entraînement. Lorsque le modèle identifie des schémas, il utilise l'ensemble de données de validation pour tester les algorithmes et les schémas. Les algorithmes et les schémas les plus performants sont choisis parmi ceux identifiés lors de la phase d’entraînement.

Une fois que les algorithmes et les schémas les plus performants ont été identifiés, leur taux d'erreur, leur qualité et leur précision sont testés à l'aide de l'ensemble de données de test.

Afin d'éviter les biais dans le modèle, un ensemble de données de validation ainsi qu'un ensemble de données de test sont utilisés. Au cours de la phase de validation, des paramètres de modèle optimaux sont utilisés, ce qui peut produire des statistiques biaisées. L'utilisation de l'ensemble de données de test pour évaluer la qualité du modèle après l'étape de validation permet d'obtenir une évaluation non biaisée de la qualité du modèle.

Par défaut, AutoML Vision divise l'ensemble de données de manière aléatoire en 3 ensembles distincts :

  • 80 % des images sont utilisées pour l'entraînement.
  • 10 % des images sont utilisées pour le réglage des hyperparamètres et/ou pour décider à quel moment il convient d'arrêter l'entraînement.
  • 10 % des images sont utilisées pour évaluer le modèle. Ces images ne sont pas exploitées à l'étape d'entraînement.

Si vous souhaitez spécifier à quel ensemble de données chaque image du fichier CSV doit être associée, vous pouvez utiliser votre fichier CSV comme indiqué dans la section suivante.

Créer un fichier CSV contenant les URI des images et des libellés

Une fois vos fichiers importés dans Cloud Storage au format requis (gs://bucket-name-vcm), vous pouvez créer un fichier CSV répertoriant toutes les données d'entraînement, ainsi que les étiquettes de catégorie correspondant à ces données. Vous pouvez attribuer n'importe quel nom au fichier CSV. Toutefois, ce fichier doit se trouver dans le même bucket que vos fichiers image, être encodé en UTF-8 et se terminer par une extension .csv. Le fichier comporte une ligne pour chaque image de l'ensemble à importer, ainsi que les colonnes suivantes pour chaque ligne :

  1. L'ensemble auquel assigner le contenu de cette ligne. Ce champ est facultatif et peut contenir l'une de ces valeurs :

    • TRAIN : utilisez les données de type image pour entraîner le modèle.
    • VALIDATION : utilisez les données de type image pour valider les résultats renvoyés par le modèle pendant l'entraînement.
    • TEST : utilisez les données de type image pour vérifier les résultats du modèle après l'entraînement.

    Si vous ne spécifiez pas d'ensemble pour l'image dans une ligne, AutoML Vision la place automatiquement dans l'un des trois ensembles pour garantir un contenu suffisant pour l'entraînement, la validation et le test. AutoML Vision utilise 80 % de vos contenus à des fins d'entraînement, 10 % à des fins de validation et 10 % à des fins de test. La taille maximale d'un ensemble de données de test est de 50 000 images, même si 10 % de l'ensemble de données total dépasse ce maximum.

  2. Les contenus à classifier. Ce champ contient l'URI Google Cloud Storage pour l'image. Les URI Google Cloud Storage sont sensibles à la casse.

  3. Les libellés qui identifient la manière dont les images sont classifiées, répertoriés sous la forme d'une liste de valeurs séparées par une virgule. Les noms de modèles doivent commencer par une lettre et ne peuvent contenir que des lettres, des chiffres et des traits de soulignement. Vous pouvez inclure jusqu'à 20 étiquettes par image. Vous pouvez également laisser les étiquettes vierges si vous prévoyez une opération manuelle via l'interface utilisateur ou le service d'étiquetage.

Exemple :

  • Avec libellé : gs://my-storage-bucket-vcm/flowers/images/img100.jpg,daisy
  • Sans libellé : gs://my-storage-bucket-vcm/flowers/images/img403.jpg
  • Multi-libellé : gs://my-storage-bucket-vcm/flowers/images/img384.jpg,dandelion,tulip,rose
  • Attribution à un ensemble : TEST,gs://my-storage-bucket-vcm/flowers/images/img805.jpg,daisy

Enregistrez le contenu sous forme de fichier CSV dans votre bucket Cloud Storage.

Générer un fichier CSV pour les images sans libellé stockées dans Cloud Storage

Si vous avez déjà importé des images sans libellé dans Cloud Storage et que vous souhaitez générer un fichier CSV pointant vers celles-ci, exécutez le code suivant dans Cloud Shell :

for f in $(gsutil ls gs://YOUR_BUCKET/YOUR_IMAGES_FOLDER/);
do echo UNASSIGNED,$f;
done >> labels.csv;

Copiez ensuite le fichier CSV généré dans un bucket Google Storage :

gsutil cp labels.csv gs://YOUR_BUCKET/labels.csv

Erreurs courantes relatives aux fichiers CSV

  • Utilisation de caractères unicode dans les libellés. Par exemple, les caractères japonais ne sont pas compatibles.
  • Utilisation d'espaces et de caractères non alphanumériques dans les étiquettes.
  • Lignes vides.
  • Colonnes vides (lignes avec deux virgules successives).
  • Mise en majuscule incorrecte des chemins d'accès aux images de Cloud Storage.
  • Contrôle d'accès configuré de manière incorrecte pour vos fichiers images. Votre compte de service doit avoir un accès en lecture ou plus étendu, ou les fichiers doivent être accessibles publiquement.
  • Références à des fichiers autres que des fichiers images (fichiers PDF ou PSD, par exemple). De même, les fichiers qui ne sont pas des fichiers images, mais qui ont été renommés avec une extension image, génèreront une erreur.
  • L'URI de la vidéo pointe vers un bucket différent de celui du projet actuel. Seuls les fichiers présents dans le bucket du projet sont accessibles.
  • Fichiers non CSV