Bildtrainingsdaten für die Klassifizierung vorbereiten

Auf dieser Seite wird beschrieben, wie Sie Bildtrainingsdaten zur Verwendung in einem Vertex AI-Dataset vorbereiten, um ein Bildklassifizierungsmodell zu trainieren.

Die folgenden Zielabschnitte enthalten Informationen zu Datenanforderungen, zur Eingabe/Ausgabe-Schemadatei und zum Format der Datenimportdateien (JSON Lines und CSV), die vom Schema definiert werden.

Klassifizierung mit einem einzigen Label

Datenanforderungen

  • Trainingsdaten: Die folgenden Bildformate werden beim Trainieren Ihres Modells unterstützt. Nachdem die Vertex AI API die importierten Bilder vorverarbeitet hat, dienen sie als Daten, die zum Trainieren eines Modells verwendet werden. Die maximale Dateigröße beträgt 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Vorhersagedaten: Die folgenden Bildformate werden unterstützt, wenn Sie eine Vorhersage (für die Abfrage) Ihres Modells anfordern. Die maximale Dateigröße beträgt 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Best Practices für Bilddaten zum Trainieren von AutoML-Modellen

    Die folgenden Best Practices gelten für Datasets, die Modelle mithilfe von AutoML trainieren.

  • AutoML-Modelle sind für Fotos von Objekten aus dem richtigen Leben optimiert.
  • Die Trainingsdaten sollten den Daten, für die Vorhersagen getroffen werden sollen, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung (etwa von einer Überwachungskamera) beinhaltet, sollten Ihre Trainingsdaten aus verschwommenen Bildern mit niedriger Auflösung bestehen. Sie sollten außerdem mehrere Blickwinkel, Auflösungen und Hintergründe für Ihre Trainingsbilder bereitstellen.
  • Vertex AI-Modelle können in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht darin unterwiesen werden kann, beim Betrachten eines Bildes innerhalb von 1 bis 2 Sekunden ein Label zuzuweisen, kann Ihr Modell wahrscheinlich auch nicht darin trainiert werden.
  • Wir empfehlen ca. 1.000 Trainingsbilder pro Label. Die Mindestanzahl pro Label ist 10. Im Allgemeinen sind mehr Beispiele pro Label nötig, um Modelle mit mehreren Labels pro Bild zu trainieren. Die Ergebnisse sind dann schwieriger zu interpretieren.
  • Das Modell funktioniert am besten, wenn für das am häufigsten verwendete Label höchstens 100 Mal mehr Bilder vorhanden sind als für das am wenigsten verwendete Label. Es wird empfohlen, Labels mit sehr geringer Häufigkeit zu entfernen.
  • Schließen Sie nach Möglichkeit ein Label vom Typ None_of_the_above und Bilder ein, die keinem Ihrer definierten Labels entsprechen. Beispielsweise können Sie bei einem Blumen-Dataset Bilder von Blumen einschließen, die keinem der definierten Labels entsprechen, und dann ihnen das Label None_of_the_above geben.

YAML-Schemadatei

Verwenden Sie die folgende öffentlich zugängliche Schemadatei, um Annotationen für ein einzelnes Label zu importieren. Diese Schemadatei bestimmt das Format der Dateneingabedateien. Die Struktur dieser Datei folgt dem OpenAPI-Schema.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

Vollständige Schemadatei

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

Eingabedateien

JSON Lines

JSON in jeder Zeile:


{
  "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"
  }
}

Feldhinweise:

  • imageGcsUri: Das einzige Pflichtfeld.
  • annotationResourceLabels: Kann beliebig viele Schlüssel/Wert-Stringpaare enthalten. Das einzige vom System reservierte Schlüssel/Wert-Paar ist:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    Dabei ist value einer der Anzeigenamen der vorhandenen Annotationssätze im Dataset.

  • dataItemResourceLabels: Kann beliebig viele Schlüssel/Wert-Stringpaare enthalten. Das einzige vom System reservierte Schlüssel/Wert-Paar ist das im Folgenden aufgeführte Paar, das den Nutzungssatz des Datenelements für das maschinelle Lernen angibt:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Beispiel für 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

CSV-Format:

[ML_USE],GCS_FILE_PATH,[LABEL]
Liste der Spalten
  • ML_USE (optional) – Für das Aufteilen von Daten beim Training eines Modells. Verwenden Sie TRAINING, TEST oder VALIDATION. Weitere Informationen zur manuellen Datenaufteilung finden Sie unter Datenaufteilungen für AutoML-Modelle.
  • GCS_FILE_PATH. Dieses Feld enthält den Cloud Storage-URI für das Video. Bei Cloud Storage-URIs wird zwischen Groß- und Kleinschreibung unterschieden.
  • LABEL (Optional) - Labels müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Zahlen und Unterstriche enthalten.

CSV-Beispieldatei - 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
...
    

Klassifizierung mit mehreren Labels

Datenanforderungen

  • Trainingsdaten: Die folgenden Bildformate werden beim Trainieren Ihres Modells unterstützt. Nachdem die Vertex AI API die importierten Bilder vorverarbeitet hat, dienen sie als Daten, die zum Trainieren eines Modells verwendet werden. Die maximale Dateigröße beträgt 30 MB.
    • JPEG
    • GIF
    • PNG
    • BMP
    • ICO
  • Vorhersagedaten: Die folgenden Bildformate werden unterstützt, wenn Sie eine Vorhersage (für die Abfrage) Ihres Modells anfordern. Die maximale Dateigröße beträgt 1,5 MB.
    • JPEG
    • GIF
    • PNG
    • WEBP
    • BMP
    • TIFF
    • ICO

    Best Practices für Bilddaten zum Trainieren von AutoML-Modellen

    Die folgenden Best Practices gelten für Datasets, die Modelle mithilfe von AutoML trainieren.

  • AutoML-Modelle sind für Fotos von Objekten aus dem richtigen Leben optimiert.
  • Die Trainingsdaten sollten den Daten, für die Vorhersagen getroffen werden sollen, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung (etwa von einer Überwachungskamera) beinhaltet, sollten Ihre Trainingsdaten aus verschwommenen Bildern mit niedriger Auflösung bestehen. Sie sollten außerdem mehrere Blickwinkel, Auflösungen und Hintergründe für Ihre Trainingsbilder bereitstellen.
  • Vertex AI-Modelle können in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht darin unterwiesen werden kann, beim Betrachten eines Bildes innerhalb von 1 bis 2 Sekunden ein Label zuzuweisen, kann Ihr Modell wahrscheinlich auch nicht darin trainiert werden.
  • Wir empfehlen ca. 1.000 Trainingsbilder pro Label. Die Mindestanzahl pro Label ist 10. Im Allgemeinen sind mehr Beispiele pro Label nötig, um Modelle mit mehreren Labels pro Bild zu trainieren. Die Ergebnisse sind dann schwieriger zu interpretieren.
  • Das Modell funktioniert am besten, wenn für das am häufigsten verwendete Label höchstens 100 Mal mehr Bilder vorhanden sind als für das am wenigsten verwendete Label. Es wird empfohlen, Labels mit sehr geringer Häufigkeit zu entfernen.
  • Schließen Sie nach Möglichkeit ein Label vom Typ None_of_the_above und Bilder ein, die keinem Ihrer definierten Labels entsprechen. Beispielsweise können Sie bei einem Blumen-Dataset Bilder von Blumen einschließen, die keinem der definierten Labels entsprechen, und dann ihnen das Label None_of_the_above geben.

YAML-Schemadatei

Verwenden Sie die folgende öffentlich zugängliche Schemadatei, um Annotationen für die Bildklassifizierung mit mehreren Labels zu importieren. Diese Schemadatei bestimmt das Format der Dateneingabedateien. Die Struktur dieser Datei folgt dem OpenAPI-Schema.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

Vollständige Schemadatei

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

Eingabedateien

JSON Lines

JSON in jeder Zeile:


{
  "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"
  }
}

Feldhinweise:

  • imageGcsUri: Das einzige Pflichtfeld.
  • annotationResourceLabels: Kann beliebig viele Schlüssel/Wert-Stringpaare enthalten. Das einzige vom System reservierte Schlüssel/Wert-Paar ist:
    • "aiplatform.googleapis.com/annotation_set_name" : "value"

    Dabei ist value einer der Anzeigenamen der vorhandenen Annotationssätze im Dataset.

  • dataItemResourceLabels: Kann beliebig viele Schlüssel/Wert-Stringpaare enthalten. Das einzige vom System reservierte Schlüssel/Wert-Paar ist das im Folgenden aufgeführte Paar, das den Nutzungssatz des Datenelements für das maschinelle Lernen angibt:
    • "aiplatform.googleapis.com/ml_use" : "training/test/validation"

Beispiel für 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

CSV-Format:

[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
Liste der Spalten
  • ML_USE (optional) – Für das Aufteilen von Daten beim Training eines Modells. Verwenden Sie TRAINING, TEST oder VALIDATION. Weitere Informationen zur manuellen Datenaufteilung finden Sie unter Datenaufteilungen für AutoML-Modelle.
  • GCS_FILE_PATH. Dieses Feld enthält den Cloud Storage-URI für das Video. Bei Cloud Storage-URIs wird zwischen Groß- und Kleinschreibung unterschieden.
  • LABEL (Optional) - Labels müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Zahlen und Unterstriche enthalten.

CSV-Beispieldatei - 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
...