トレーニング データを CSV 形式でフォーマットする

十分なトレーニング データを準備し、これらの画像を Google Cloud Storage をアップロードしたら、境界ボックスとラベルを含む CSV ファイルを作成できます。このファイルは、データセットに画像をインポートする際に使用します。

このページでは、CSV ファイルのフォーマット方法について説明します。

CSV のフォーマット ガイドライン

importData メソッドを使用するには、CSV ファイルとそれが指す画像の両方を Google Cloud Storage バケットに入れる必要があります。

CSV ファイルは次の要件も満たす必要があります。

  • ファイル名には任意の名前を指定できますが、画像ファイルと同じバケットに格納する必要があります。
  • UTF-8 でエンコードする必要があります。
  • ファイル名の最後に .csv 拡張子を付ける必要があります。
  • アップロードするセット内の境界ボックスごとに 1 行を使用します。または境界ボックスのない画像ごとに 1 行を使用します(以下の行 4 を参照)。
  • 1 行に 1 つの画像を含めます。1 つの画像に複数の境界ボックスがある場合は、境界ボックスと同じ数の行数を使用します。

    たとえば、行 1 と 2 は同じ画像を参照していますが、この画像には 2 つのアノテーション(car,0.1,0.1,,,0.3,0.3,,bike,.7,.6,,,.8,.9,,)があります。行 3 が参照している画像にはアノテーション(car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3)が 1 つありますが、行 4 が参照している画像にはアノテーションがありません。

4 つのサンプル行:

 TRAIN,gs://folder/image1.png,car,0.1,0.1,,,0.3,0.3,,
 TRAIN,gs://folder/image1.png,bike,.7,.6,,,.8,.9,,
 UNASSIGNED,gs://folder/im2.png,car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3
 TEST,gs://folder/im3.png,,,,,,,,,

各行に次の列があります。

  1. この行内のコンテンツを割り当てるセット。このフィールドは必須で、次の値のいずれかを指定できます。

    • TRAIN - この画像を使用してモデルをトレーニングします。これらの画像はモデルの作成に使用されるため、このセットは最大になります。
    • VALIDATE - 画像を使用して、トレーニング中にモデルが返す結果を検証します(開発用データセットともいいます)。これらの画像は、AutoML Vision Object Detection がモデルのトレーニング プロセスを停止するタイミングを判断する際に使用されます。
    • TEST - 画像を使用して、トレーニング後のモデルの結果を数値化します(ホールドアウト データともいいます)。これらの画像は、前の 2 つのセットを使用してモデルを作成した後の評価で使用されます。
    • UNASSIGNED - これらの画像は、AutoML Vision Object Detection により上記のいずれかのセットに割り当てられます。画像を配置するセットを設定していない場合は、このセットのタグを使用します。
  2. アノテーションを付けるコンテンツ。このフィールドには、画像の Google Cloud Storage URI が含まれます。Google Cloud Storage URI では大文字と小文字が区別されます。

  3. オブジェクトの分類方法を識別するラベル。ラベルは文字で始まり、文字、数字、アンダースコア以外を含まないようにする必要があります。AutoML Vision Object Detection では、空白を含むラベルも使用できます。

    トレーニング用の画像をインポートしたら、UI でラベルを手動で設定できます。また、Google のヒューマン ラベリング サービスを利用して、トレーイング画像にラベルを設定することもできます。

  4. 動画フレーム内のオブジェクトの境界ボックス。オブジェクトの境界ボックスは、次の 2 つの方法で指定できます。

    • 頂点を 2 つだけ使用する(x,y 座標のセットで構成)。長方形の対角線上の点の場合(x_relative_min, y_relative_min,,,x_relative_max,y_relative_max,,)
    • 4 つの頂点をすべて使用(x_relative_min,y_relative_min,x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max)。

    vertex は x、y 座標値で指定します。この各座標は 0~1 の範囲の浮動小数点数です。0 は最小の x 値または y 値、1 は最大の x 値または y 値を表します。

    たとえば、(0,0)は左上の角、(1,1)は右下の角を表します。画像全体の境界ボックスは(0,0,,,1,1,,)または(0,0,1,0,1,1,0,1)として表します。

    AutoML API のオブジェクト トラッキングでは、頂点を特定の順序で指定する必要はありません。また、指定された 4 つの頂点では画像の縁に平行に沿う四角形が形成されない場合、AutoML API はそのような四角形を形成する頂点を計算して使用します。

例:

  • Not assigned to a set: UNASSIGNED,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,
  • Assigned to a set: TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,

    API は 2 つの頂点が正方形の対角線上にあること(左上の頂点と右下の頂点)を前提としているため、上の行では次の形式を使用しています。

    set,path,label,x_min,y_min,,,x_max,y_max,,

    同じ情報を伝達できるので次の形式も有効です。

    set,path,label,x_min,y_min,x_max,y_min,x_max,y_max,x_min,y_max

    上の「Assigned to a set」行は、4 つのすべての頂点を指定して表現することもできます。

    TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,0.97,0.25,0.97,0.50,0.56,0.50

画像座標オプション

コンテンツを CSV ファイルとして Google Cloud Storage バケットに保存します。

CSV の一般的なエラー

  • ラベルに Unicode 文字を使用する。たとえば、日本語の文字はサポートされていません。
  • ラベルに英数字以外の文字を使用する。
  • 空の行。
  • Cloud Storage の画像のパスの大文字と小文字が正しくない。
  • 画像ファイルに構成されたアクセス制御が正しくない。API を有効にするときに作成した AutoML サービス アカウントには、読み取り以上のアクセス権が必要です。
  • 画像以外のファイル(PDF や PSD などのファイル)を参照している。同様に、画像(JPEG、PNG、GIF、BMP または ICO)でないファイルの名前が画像の拡張子を使用して変更されている場合もエラーが発生します。
  • CSV 以外の形式のファイル。