Les sections suivantes portent sur ces différents objectifs et contiennent des informations sur les exigences applicables aux données, le fichier de schéma d'entrée/sortie et le format des fichiers d'importation de données (JSON Lines et CSV) définis par le schéma.
Classification à étiquette unique
Exigences en matière de données
- Données d'entraînement : les formats d'image suivants sont compatibles avec l'entraînement d'un modèle. Une fois que l'API Vertex AI a prétraité les images importées, elles servent de données pour l'entraînement d'un modèle. La taille de fichier maximale est de 30 Mo.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Données de prédiction : les formats d'image suivants sont compatibles avec les demandes de prédiction (requête) à partir de votre modèle. La taille de fichier maximale est de 1,5 Mo.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- Les modèles AutoML 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 seront effectué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 également recommandé de fournir différents angles, résolutions et arrière-plans pour vos images d'entraînement.
- Les modèles Vertex AI 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 libellé. Le nombre minimum par étiquette est de 10. 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.
- 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 vous recommandons de supprimer les étiquettes les moins fréquentes.
- Pensez à inclure une étiquette None_of_the_above et des images qui ne correspondent à aucune des étiquettes définies. Par exemple, pour un ensemble de données sur les fleurs, incluez des images de fleurs ne faisant pas partie des variétés étiquetées et attribuez-leur l'étiquette None_of_the_above.
Bonnes pratiques pour les données d'image utilisées afin d'entraîner des modèles AutoML
Les bonnes pratiques suivantes s'appliquent aux ensembles de données qui entraînent des modèles avec AutoML.
Fichier de schéma YAML
Utilisez le fichier de schéma publiquement accessible suivant pour importer des annotations de classification d'images portant sur une seule étiquette. Ce fichier de schéma détermine le format des fichiers de données d'entrée. La structure de ce fichier suit le schéma OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
Fichier de schéma complet
title: ImageClassificationSingleLabel description: > Import and export format for importing/exporting images together with single-label classification annotation. Can be used in Dataset.import_schema_uri field. type: object required: - imageGcsUri properties: imageGcsUri: type: string description: > A Cloud Storage URI pointing to an image. Up to 30MB in size. Supported file mime types: `image/jpeg`, `image/gif`, `image/png`, `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`. classificationAnnotation: type: object description: Single classification Annotation on the image. properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name, i.e. the name of the label/class. annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Fichiers d'entrée
JSON Lines
JSON sur chaque ligne :
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotation": { "displayName": "LABEL", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Remarques sur les champs :
imageGcsUri
: seul champ obligatoire.annotationResourceLabels
: peut contenir un nombre indéfini de paires clé/valeur. La seule paire clé-valeur réservée par le système est la suivante :- "aiplatform.googleapis.com/annotation_set_name" : "value"
où value est l'un des noms à afficher des ensembles d'annotations existants dans l'ensemble de données.
dataItemResourceLabels
: peut contenir un nombre indéfini de paires clé/valeur. La seule paire clé-valeur réservée par le système est la suivante, qui spécifie l'ensemble d'utilisation de machine learning de l'élément de données :- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Exemple JSON Lines – image_classification_single_label.jsonl
:
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
CSV
Format CSV :
[ML_USE],GCS_FILE_PATH,[LABEL]
ML_USE
(facultatif) : pour la répartition des données lors de l'entraînement d'un modèle. Utilisez TRAINING (entraînement), TEST ou VALIDATION. Pour en savoir plus sur la répartition manuelle des données, consultez la page À propos de la répartition des données pour les modèles AutoML.GCS_FILE_PATH
: ce champ contient l'URI Cloud Storage de l'image. Les URI Cloud Storage sont sensibles à la casse.LABEL
(facultatif) : les libellés doivent commencer par une lettre et ne contenir que des lettres, des chiffres et des traits de soulignement.
Exemple de fichier CSV - image_classification_single_label.csv
:
test,gs://bucket/filename1.jpeg,daisy training,gs://bucket/filename2.gif,dandelion gs://bucket/filename3.png gs://bucket/filename4.bmp,sunflowers validation,gs://bucket/filename5.tiff,tulips ...
Classification multi-étiquette
Exigences en matière de données
- Données d'entraînement : les formats d'image suivants sont compatibles avec l'entraînement d'un modèle. Une fois que l'API Vertex AI a prétraité les images importées, elles servent de données pour l'entraînement d'un modèle. La taille de fichier maximale est de 30 Mo.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Données de prédiction : les formats d'image suivants sont compatibles avec les demandes de prédiction (requête) à partir de votre modèle. La taille de fichier maximale est de 1,5 Mo.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- Les modèles AutoML 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 seront effectué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 également recommandé de fournir différents angles, résolutions et arrière-plans pour vos images d'entraînement.
- Les modèles Vertex AI 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 libellé. Le nombre minimum par étiquette est de 10. 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.
- 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 vous recommandons de supprimer les étiquettes les moins fréquentes.
- Pensez à inclure une étiquette None_of_the_above et des images qui ne correspondent à aucune des étiquettes définies. Par exemple, pour un ensemble de données sur les fleurs, incluez des images de fleurs ne faisant pas partie des variétés étiquetées et attribuez-leur l'étiquette None_of_the_above.
Bonnes pratiques pour les données d'image utilisées afin d'entraîner des modèles AutoML
Les bonnes pratiques suivantes s'appliquent aux ensembles de données qui entraînent des modèles avec AutoML.
Fichier de schéma YAML
Utilisez le fichier de schéma publiquement accessible suivant pour importer des annotations de classification d'images portant sur plusieurs étiquettes. Ce fichier de schéma détermine le format des fichiers de données d'entrée. La structure de ce fichier suit le schéma OpenAPI.
Fichier de schéma complet
title: ImageClassificationMultiLabel description: > Import and export format for importing/exporting images together with multi-label classification annotations. Can be used in Dataset.import_schema_uri field. type: object required: - imageGcsUri properties: imageGcsUri: type: string description: > A Cloud Storage URI pointing to an image. Up to 30MB in size. Supported file mime types: `image/jpeg`, `image/gif`, `image/png`, `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`. classificationAnnotations: type: array description: Multiple classification Annotations on the image. items: type: object description: Classification annotation. properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name, i.e. the name of the label/class. annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Fichiers d'entrée
JSON Lines
JSON sur chaque ligne :
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotations": [ { "displayName": "LABEL1", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "flower_type" } }, { "displayName": "LABEL2", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "image_shot_type" } } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Remarques sur les champs :
imageGcsUri
: seul champ obligatoire.annotationResourceLabels
: peut contenir un nombre indéfini de paires clé/valeur. La seule paire clé-valeur réservée par le système est la suivante :- "aiplatform.googleapis.com/annotation_set_name" : "value"
où value est l'un des noms à afficher des ensembles d'annotations existants dans l'ensemble de données.
dataItemResourceLabels
: peut contenir un nombre indéfini de paires clé/valeur. La seule paire clé-valeur réservée par le système est la suivante, qui spécifie l'ensemble d'utilisation de machine learning de l'élément de données :- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Exemple JSON Lines – image_classification_multi_label.jsonl
:
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
CSV
Format CSV :
[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
ML_USE
(facultatif) : pour la répartition des données lors de l'entraînement d'un modèle. Utilisez TRAINING (entraînement), TEST ou VALIDATION. Pour en savoir plus sur la répartition manuelle des données, consultez la page À propos de la répartition des données pour les modèles AutoML.GCS_FILE_PATH
: ce champ contient l'URI Cloud Storage de l'image. Les URI Cloud Storage sont sensibles à la casse.LABEL
(facultatif) : les libellés doivent commencer par une lettre et ne contenir que des lettres, des chiffres et des traits de soulignement.
Exemple de fichier CSV - image_classification_multi_label.csv
:
test,gs://bucket/filename1.jpeg,daisy,full_shot training,gs://bucket/filename2.gif,dandelion,medium_shot gs://bucket/filename3.png gs://bucket/filename4.bmp,sunflowers,closeup validation,gs://bucket/filename5.tiff,tulips,extreme_closeup ...