トレーニング データの準備

このページでは、AutoML Video Object Tracking モデルをトレーニングするためのデータを準備する方法について説明します。

動画の準備

このページでは、AutoML Video Intelligence Objexct Trackingでの動画アノテーション モデルの作成に向けてトレーニング データとテストデータを準備する方法を説明します。

  • AutoML Video Object Tracking では、モデルのトレーニングや予測のリクエストに次の動画形式を使用できます。

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • トレーニング動画の最大ファイルサイズは 50 GB(長さは 3 時間まで)です。コンテナ内に含まれる個々の動画ファイルのうち、タイム オフセットが誤った形式または空となっている動画ファイルはサポートされません。

  • トレーニング用のデータは、予測を行うデータにできる限り近いものである必要があります。たとえば、低解像度のぼやけた動画(防犯カメラの動画など)で予測を行う場合は、トレーニング用のデータも低解像度のぼやけた動画で構成する必要があります。一般に、視点、解像度、背景が異なる動画をトレーニング用に準備することも検討する必要があります。

  • 一般的に、AutoML Video Object Tracking モデルは、人間が割り当てることができないラベルを予測することはできません。たとえば、動画を 1~2 秒間見てラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。

  • 境界ボックスの最小サイズは 10 ピクセル x 10 ピクセルです。

  • 動画のフレーム解像度が 1,024 x 1,024 ピクセルを大幅に超える場合、AutoML Video Object Tracking で使用されるフレーム正規化プロセス中に画質が低下する可能性があります。

  • モデルは、最も一般的なラベルのフレーム数が、最も一般的でないラベルのフレーム数よりも最大で 100 倍存在する場合に最適に動作します。非常に低い頻度のラベルは、データセットから削除することを検討してください。

  • 一意の各ラベルはそれぞれ少なくとも 3 つの動画フレームに存在します。また、最低でも 10 のアノテーションを含む必要があります。

  • 各データセット内のラベル付きの動画フレームの最大数は、現在 150,000 に制限されています。

  • 各データセット内のアノテーション付き境界ボックスの合計数の最大値は、現在 1,000,000 に制限されています。

  • 各データセット内の一意のラベルの最大数は現在 1,000 に制限されています。

  • トレーニング データには少なくとも 1 つのラベルが必要です。

  • ラベルあたりのトレーニング動画フレームを少なくとも 100 個用意して、フレームごとに対象となるすべてのオブジェクトにラベルを付ける必要があります。オブジェクトが表示されるすべてのフレームにラベルを付ける必要はありませんが、ラベルを付けるフレームの数が多いほど、モデルの精度が高くなります。連続していないフレームを選択することをおすすめします。そうすることで、異なるサイズ、角度、背景、照明条件などに対応できるようになります。

トレーニング、検証、テスト用のデータセット

データセットのデータは、モデルをトレーニングするときに、トレーニング データセット、検証データセット(任意)、テスト データセットの 3 つのデータセットに分割されます。

  • モデルの構築にはトレーニング データセットが使用されます。トレーニング データのパターンを探している間、複数のアルゴリズムとパラメータが試行されます。
  • パターンが特定されると、検証データセットを使用してアルゴリズムとパターンがテストされます。トレーニング ステージで特定されたものから、最適なアルゴリズムとパターンが選択されます。
  • 最適なアルゴリズムとパターンが特定されたら、テスト データセットを使用してエラーレート、品質、および精度がテストされます。

モデルのバイアスを避けるために、検証データセットとテスト データセットの両方が使用されます。検証ステージでは最適なモデル パラメータが使用されますが、指標に偏りが生じる可能性があります。検証ステージの後でテスト データセットを使用してモデルの品質を評価することにより、モデル品質を偏りなく評価できます。

トレーニング データセットとテスト データセットを特定するには、CSV ファイルを使用します。

動画の URI とラベルを含む CSV ファイルの作成

ファイルを Cloud Storage にアップロードしたら、すべてのトレーニング データとそのデータのカテゴリラベルをリストした CSV ファイルを作成できます。CSV ファイルのファイル名は任意に指定できますが、UTF-8 でエンコードする必要があり、拡張子は必ず .csv とします。

モデルのトレーニングと検証には、次の 3 つのファイルを使用できます。

ファイル 説明
モデル トレーニング ファイルリスト

トレーニングおよびテスト CSV ファイルへのパスが含まれます。

このファイルは、トレーニング データとテストデータを記述する個別の CSV ファイルの場所を識別するために使用されます。

ファイルリスト CSV ファイルの内容の例をいくつか示します。

例 1:


TRAIN,gs://automl-video-demo-data/traffic_videos/traffic_videos_train.csv
TEST,gs://automl-video-demo-data/traffic_videos/traffic_videos_test.csv

例 2:


UNASSIGNED,gs://automl-video-demo-data/traffic_videos/traffic_videos_labels.csv
トレーニング データ

モデルのトレーニングに使用されます。 動画ファイルへの URI、オブジェクト カテゴリを識別するラベル、動画の動画フレーム全体にあるオブジェクト インスタンスを識別するインスタンス ID(任意)、ラベル付き動画フレームのタイム オフセット、オブジェクトの境界ボックスの座標が含まれます。

トレーニング データの CSV ファイルを指定する場合は、テストまたは割り当てされていないデータの CSV ファイルも指定する必要があります。

テストデータ

トレーニング段階でモデルをテストするために使用されます。 トレーニング データと同じフィールドが含まれます。

テストデータの CSV ファイルを指定する場合は、トレーニングまたは割り当てされていないデータの CSV ファイルも指定する必要があります。

未割り当てのデータ

モデルのトレーニングとテストの両方に使用されます。 トレーニング データと同じフィールドが含まれます。 未割り当てのファイルの行は、トレーニング データとテストデータに自動的に分割されます。通常、80% がトレーニングに、20% がテストに使用されます。

トレーニング データとテストデータの CSV ファイルを指定せずに、未割り当てのデータの CSV ファイルのみを指定できます。未割り当てのデータの CSV ファイルを指定せずに、トレーニング データとテストデータの CSV ファイルのみを指定することもできます。

トレーニング、テスト、未割り当ての各ファイルには、アップロードするセット内にそれぞれ 1 行のオブジェクト境界ボックスがあり、各行には次の列があります。

  1. 分類またはアノテーション付けするコンテンツ。 このフィールドには、動画の Cloud Storage URI が含まれます。Cloud Storage URI では大文字と小文字が区別されます。

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

  3. 動画の動画フレーム全体にあるオブジェクト インスタンスを識別するインスタンス ID(任意)。 インスタンス ID は整数です。この ID が指定されている場合、AutoML Video Object Tracking でオブジェクト トラッキングの調整、トレーニング、評価にこの ID が使用されます。異なる動画フレームに存在する同じオブジェクト インスタンスの境界ボックスには、同じインスタンス ID としてラベルが付けられます。インスタンス ID が一意であるのは、データセット内ではなく各動画の中だけです。たとえば、異なる動画にある 2 つのオブジェクトのインスタンス ID が同じであっても、それらのオブジェクトが同じオブジェクト インスタンスであるとは言えません。

  4. 動画の先頭からの時間を示す動画フレームの時間オフセット。時間オフセットは浮動小数点数で、単位は秒です。

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

    • x,y 座標のセットで構成される 2 つの頂点を使用する。長方形の対角線上の点の例は、次のとおりです。

      Bounding_box

    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 Video Object Tracking API では、頂点を特定の順序で指定する必要はありません。また、指定された 4 つの頂点では画像の縁に平行に沿う四角形が形成されない場合、AutoML Video Object Tracking API のオブジェクト トラッキングによってそのような四角形を形成する頂点が指定されます。

CSV データセット ファイルの例

次の行は、データセット内のデータを指定する方法を示しています。この例には、Cloud Storage 内の動画へのパス、オブジェクトのラベル、トラッキングを開始するタイム オフセット、2 つの対角点が含まれています。

video_uri,label,instance_id,time_offset,x_relative_min,y_relative_min,
x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max
gs://folder/video1.avi,car,,12.90,0.8,0.2,,,0.9,0.3,,
gs://folder/video1.avi,bike,,12.50,0.45,0.45,,,0.55,0.55,,

最初の行では、

  • VIDEO_URIgs://folder/video1.avi
  • LABELcar
  • INSTANCE_ID は指定なし、
  • TIME_OFFSET12.90
  • X_RELATIVE_MIN,Y_RELATIVE_MIN0.8,0.2 です。
  • X_RELATIVE_MAX,Y_RELATIVE_MIN は指定されていません。
  • X_RELATIVE_MAX,Y_RELATIVE_MAX0.9,0.3 です。
  • X_RELATIVE_MIN,Y_RELATIVE_MAX は指定なし

前に説明したとおり、次の例のように 4 つの頂点すべてを指定して境界ボックスを指定することもできます。

gs://folder/video1.avi,car,,12.10,0.8,0.8,0.9,0.8,0.9,0.9,0.8,0.9
gs://folder/video1.avi,car,,12.90,0.4,0.8,0.5,0.8,0.5,0.9,0.4,0.9
gs://folder/video1.avi,car,,12.10,0.4,0.2,0.5,0.2,0.5,0.3,0.4,0.3

トレーニングされたモデルの結果の検証用データを指定する必要はありません。AutoML Video Object Tracking では、トレーニング用として識別された行がトレーニング データと検証データに自動的に分割されます。80% がトレーニングに、20% が検証に使用されます。

CSV データセットの問題のトラブルシューティング

CSV ファイルを使用してデータセットを指定するときに問題が発生した場合は、CSV ファイルに次の一般的なエラーがないか確認してください。

  • ラベルに Unicode 文字を使用する。たとえば、日本語の文字はサポートされていません。
  • ラベルにスペースと英数字以外の文字が使用されている。
  • 空の行。
  • 空の列(2 つの連続するカンマを含む行)。
  • Cloud Storage の動画のパスの大文字と小文字が正しくない。
  • 動画ファイルに構成されたアクセス制御が正しくない。サービス アカウントに読み取り以上のアクセス権があるか、ファイルが一般公開されている必要があります。
  • 動画以外のファイル(PDF や PSD などのファイル)を参照している。同様に、動画ファイルでないファイルが動画の拡張子を使用して名前変更されている場合もエラーが発生します。
  • 動画の URI が現在のプロジェクトとは異なるバケットを指している。 プロジェクト バケット内の動画にのみアクセスできます。
  • CSV 以外の形式のファイル。