次の目標セクションには、データ要件、入出力スキーマ ファイル、スキーマによって定義されるデータ インポート ファイル(JSON Lines と CSV)の形式に関する情報が含まれています。
単一ラベル分類
データ要件
- トレーニング データ: モデルをトレーニングするときにサポートされる画像形式は次のとおりです。Vertex AI API は、インポートした画像を前処理して、モデルのトレーニングに使用するデータとして使用します。ファイルの最大サイズは 30 MB です。
- JPEG
- GIF
- PNG
- BMP
- ICO
- 予測データ: モデルから予測(クエリ)をリクエストする場合、次の画像形式がサポートされます。最大ファイルサイズは 1.5 MB です。
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- AutoML モデルは、現実世界にある物体の写真に対して最も効果的に動作します。
- トレーニング用のデータは、予測を行うデータにできる限り近いものである必要があります。たとえば、ユースケースに低解像度のぼやけた画像(セキュリティ カメラの画像など)が含まれている場合、トレーニング用のデータも低解像度でぼやけた画像から構成する必要があります。一般に、複数の視点、解像度、背景を持つトレーニング画像を用意することも検討します。
- 一般的に、Vertex AI モデルは、人間が割り当てることができないラベルを予測することはできません。そのため、画像を 1~2 秒間見てラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。
- ラベルごとに約 1,000 個のトレーニング画像をおすすめします。ラベルあたりの最小数は 10 です。一般的に、画像ごとに複数のラベルを使用してモデルをトレーニングする場合は、各ラベルにより多くのサンプルが必要になります。また、結果として得られるスコアは、より解釈が難しくなります。
- モデルは、最も一般的なラベルの画像数が、最も一般的でないラベルの画像数よりも最大で 100 倍存在する場合に最適に動作します。非常に低い頻度のラベルは削除することをおすすめします。
- None_of_the_above ラベルと、定義されたラベルのいずれとも一致しない画像を含めることを検討してください。たとえば、花のデータセットの場合、ラベルが付けられた品種以外の花の画像を含め、それらに None_of_the_above のラベルを付けます。
AutoML モデルのトレーニングに使用する画像データに関するベスト プラクティス
以下のベスト プラクティスは、AutoML を使用してモデルをトレーニングするデータセットに適用されます。
YAML スキーマ ファイル
単一ラベルの画像分類アノテーションをインポートするには、一般公開されている次のスキーマ ファイルを使用します。このスキーマ ファイルにより、データ入力ファイルの形式が決まります。このファイルの構造は OpenAPI スキーマに準拠しています。
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
完全なスキーマ ファイル
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
入力ファイル
JSON Lines
各行の JSON:
{ "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" } }
フィールドに関する注意事項:
imageGcsUri
- 必須フィールドです。annotationResourceLabels
- 任意の数の Key-Value の文字列ペアを含めることができます。システム予約の Key-Value ペアは次のとおりです。- "aiplatform.googleapis.com/annotation_set_name" : "value"
value は、データセット内の既存のアノテーション セットの表示名の 1 つです。
dataItemResourceLabels
- 任意の数の Key-Value の文字列ペアを含めることができます。システム予約の Key-Value ペアは次のとおりです。これにより、機械学習が使用するデータ項目のセットが指定されます。- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
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 形式:
[ML_USE],GCS_FILE_PATH,[LABEL]
ML_USE
(省略可) - モデルをトレーニングする場合のデータ分割に使用します。TRAINING、TEST、または VALIDATION を使用します。手動データ分割の詳細については、AutoML モデルのデータ分割についてをご覧ください。GCS_FILE_PATH
- このフィールドには、画像の Cloud Storage URI が含まれます。Cloud Storage URI では大文字と小文字が区別されます。LABEL
(省略可) - ラベルは文字で始まり、文字、数字、アンダースコア以外を含まないようにする必要があります。
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 ...
マルチラベル分類
データ要件
- トレーニング データ: モデルをトレーニングするときにサポートされる画像形式は次のとおりです。Vertex AI API は、インポートした画像を前処理して、モデルのトレーニングに使用するデータとして使用します。ファイルの最大サイズは 30 MB です。
- JPEG
- GIF
- PNG
- BMP
- ICO
- 予測データ: モデルから予測(クエリ)をリクエストする場合、次の画像形式がサポートされます。最大ファイルサイズは 1.5 MB です。
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- AutoML モデルは、現実世界にある物体の写真に対して最も効果的に動作します。
- トレーニング用のデータは、予測を行うデータにできる限り近いものである必要があります。たとえば、ユースケースに低解像度のぼやけた画像(セキュリティ カメラの画像など)が含まれている場合、トレーニング用のデータも低解像度でぼやけた画像から構成する必要があります。一般に、複数の視点、解像度、背景を持つトレーニング画像を用意することも検討します。
- 一般的に、Vertex AI モデルは、人間が割り当てることができないラベルを予測することはできません。そのため、画像を 1~2 秒間見てラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。
- ラベルごとに約 1,000 個のトレーニング画像をおすすめします。ラベルあたりの最小数は 10 です。一般的に、画像ごとに複数のラベルを使用してモデルをトレーニングする場合は、各ラベルにより多くのサンプルが必要になります。また、結果として得られるスコアは、より解釈が難しくなります。
- モデルは、最も一般的なラベルの画像数が、最も一般的でないラベルの画像数よりも最大で 100 倍存在する場合に最適に動作します。非常に低い頻度のラベルは削除することをおすすめします。
- None_of_the_above ラベルと、定義されたラベルのいずれとも一致しない画像を含めることを検討してください。たとえば、花のデータセットの場合、ラベルが付けられた品種以外の花の画像を含め、それらに None_of_the_above のラベルを付けます。
AutoML モデルのトレーニングに使用する画像データに関するベスト プラクティス
以下のベスト プラクティスは、AutoML を使用してモデルをトレーニングするデータセットに適用されます。
YAML スキーマ ファイル
マルチラベルの画像分類アノテーションをインポートするには、一般公開されている次のスキーマ ファイルを使用します。このスキーマ ファイルにより、データ入力ファイルの形式が決まります。このファイルの構造は OpenAPI スキーマに準拠しています。
完全なスキーマ ファイル
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
入力ファイル
JSON Lines
各行の JSON:
{ "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" } }
フィールドに関する注意事項:
imageGcsUri
- 必須フィールドです。annotationResourceLabels
- 任意の数の Key-Value の文字列ペアを含めることができます。システム予約の Key-Value ペアは次のとおりです。- "aiplatform.googleapis.com/annotation_set_name" : "value"
value は、データセット内の既存のアノテーション セットの表示名の 1 つです。
dataItemResourceLabels
- 任意の数の Key-Value の文字列ペアを含めることができます。システム予約の Key-Value ペアは次のとおりです。これにより、機械学習が使用するデータ項目のセットが指定されます。- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
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 形式:
[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
ML_USE
(省略可) - モデルをトレーニングする場合のデータ分割に使用します。TRAINING、TEST、または VALIDATION を使用します。手動データ分割の詳細については、AutoML モデルのデータ分割についてをご覧ください。GCS_FILE_PATH
- このフィールドには、画像の Cloud Storage URI が含まれます。Cloud Storage URI では大文字と小文字が区別されます。LABEL
(省略可) - ラベルは文字で始まり、文字、数字、アンダースコア以外を含まないようにする必要があります。
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 ...