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

画像の準備

画像の一般的な要件
サポートされているファイル形式
  • JPEG
  • PNG
  • GIF
  • BMP
  • ICO
画像の種類

AutoML Vision Object Detection モデルは、現実世界のオブジェクトの写真に対して最適化されています。

トレーニング画像のファイルサイズ(MB) サイズ 30 MB 以下
予測画像ファイル* サイズ(MB) サイズ 1.5 MB 以下
画像サイズ(ピクセル)

推奨サイズ 1024 x 1024 ピクセル以下

1024 × 1024 ピクセルを大幅に超える画像の場合、AutoML Vision Object Detection の画像正規化処理で画質が低下する可能性があります。

ラベルと境界ボックスの要件
トレーニング用のインスタンスにラベルを付ける

10 個以上のアノテーション(インスタンス)。

アノテーションの要件

ラベルごとに、少なくとも 10 個の画像が必要です。また、それぞれの画像に 1 つ以上のアノテーション(境界ボックスとラベル)が必要です。

ただし、モデルのトレーニングでは、ラベルごとに約 1,000 個のアノテーションを使用することをおすすめします。一般に、ラベルあたりの画像が多いほど、モデルのパフォーマンスが向上します。

ラベル比率(最も一般的なラベルから最も一般的でないラベルまで)

モデルは、最も一般的なラベルの画像数が、最も一般的でないラベルの画像数よりも最大で 100 倍存在する場合に最適に動作します。

モデルのパフォーマンスを向上させるため、頻度の非常に低いラベルを削除することをおすすめします。

境界ボックスの辺の長さ 0.01 * 画像の一辺の長さ以上。たとえば、1,000 x 900 ピクセルの画像では、少なくとも 10 x 9 ピクセルの境界ボックスが必要です。
境界ボックスのサイズ(ピクセル) 最小 8 x 8 ピクセル
個別の画像の境界ボックス 最大 500
予測リクエストから返される境界ボックス

100(デフォルト)、最大 500

この値は、params.max_bounding_box_count フィールドの predict リクエストで指定できます。

トレーニング データとデータセットの要件
トレーニング画像の特徴

トレーニング用のデータは、予測を行うデータにできる限り近いものである必要があります。

たとえば、ユースケースに低解像度のぼやけた画像(セキュリティ カメラの画像など)が含まれている場合、トレーニング用のデータも低解像度でぼやけた画像から構成する必要があります。一般に、複数の視点、解像度、背景を持つトレーニング画像を用意することも検討します。

通常、AutoML Vision Object Detection モデルは、人間でも割り当てられないラベルを予測することはできません。そのため、画像を 1~2 秒間見てラベルを割り当てるように人間をトレーニングすることができなければ、モデルもそのようにトレーニングすることはできません。

各データセット内の画像 最大 150,000
各データセット内のアノテーション付き境界ボックスの合計数 最大 1,000,000
各データセットのラベル数 最小 1、最大 1,000

ベスト プラクティス ガイド

どのような画像データを使用できますか?

  • サポートされる画像ファイルの形式は JPEG、PNG、GIF、BMP、ICO です。
  • トレーニング用のデータは、予測を行うデータにできる限り近いものである必要があります。たとえば、スマートフォンのカメラで撮影した低解像度の画像を使用する場合、トレーニング データは低解像度の画像で構成する必要があります。一般に、複数の視点、解像度、背景を持つトレーニング画像を用意することも検討します。たとえば、高解像度画像の領域を検出する場合は、切り抜いた画像でモデルをトレーニングしないようにします。

データの最小要件は何ですか?

  • 使用するラベルは有効な文字列でなければなりません。カンマを含む文字列は使用できません。カンマを使用すると、CSV ベースのインポートで問題が発生します。この問題の対処方法は次のとおりです。"file_comma,path","label,comma",0,0,,,1,1,,
  • いずれの場合も、境界ボックスは 8 x 8 ピクセルより大きくする必要があります。これより小さい境界ボックスはフィルタリングされます。
  • 1,024 x 1,024 ピクセルを超える画像は自動的に縮小されるため、画質が低下する可能性があります。このため、最大画像サイズは 1,024 x 1,024 ピクセルに設定することをおすすめします。このサイズよりも小さい画像はアップスケーリングされません。
  • すべての境界ボックスは画像の内側に配置する必要があります。
  • 境界ボックスには完全なラベルを付ける必要があります。たどえば、画像内に 2 台の車が存在する場合、この 2 台の車にラベルを付ける必要があります。

データセットはどのくらいのサイズにする必要がありますか?

  • サイズが大きいほど、よい結果が得られます。これは、ほとんどの場合に当てはまります。ただし、サンプルを追加しすぎると、不均衡やリークが発生する可能性があります(以下を参照)。
  • 良好なモデルのトレーニングに必要なデータ量は、以下のようなさまざまな要因によって異なります。
    • クラスの数。クラスの種類が多いほど、クラスあたりに必要なサンプル数も多くなります。
    • クラスの複雑さ、または多様性。人間の場合と同様です。人間は少数のサンプルでビールとワインを簡単に区別できるようになりますが、5~6 種類の赤ワインを区別するには、さまざまな種類のワインを何度も試す必要があります。また、50 種類の赤ワインを見分けるのは難しいでしょう。少なくとも多くの訓練が必要なことは間違いありません。ニューラル ネットワークの場合も同様で、ゾウとネコはすぐに区別できますが、30 種類の動物を分類するにはより多くのサンプルが必要になります。
  • 目安として、クラス数がわずかな場合は、1 つのクラスに少なくとも 100 個のトレーニング サンプルを用意することおすすめします。また、クラスがきめ細かく、50 種類以上を超える場合は、200 個を超えるトレーニング サンプルを用意する必要があります。

トレーニングと評価データセット

機械学習モデルをトレーニングする場合、通常、データセットを次の 3 つのデータセットに分類します。

  1. トレーニング用のデータセット
  2. 検証用のデータセット
  3. テスト用のデータセット

モデルの構築にはトレーニング データセットが使用されます。トレーニング中のモデルは、トレーニング用データ内のパターンを検索するときに、複数のハイパーパラメータを使用します。パターンの識別中、AutoML Vision Object Detection は検証用のデータセットを使用して、モデルのハイパーパラメータのテストを行います。AutoML Vision Object Detection は、トレーニング ステージで識別されたすべてのオプションの中から最適なアルゴリズムとパターンを選択します。

最適なアルゴリズムとパターンは、テスト データセットを使用してエラー率、品質、精度がテストされます。モデルを個別にテストできるように、個別のテスト用データセットを準備する必要があります。テスト用のデータセットは、ユーザーが設定したトレーニングに指定するか、トレーニング時に自動的に選択されるように設定します。

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

データセットのサンプルを手動で選択する場合は、同じ母集団を表すようにデータセットを構造化する必要があります。同様に、すべてが類似したラベル分布になるように、類似した画像を持つデータセット分割を行う必要があります。

データセット分割(手動 / 自動)

CSV ファイルのデータセットをインポートするときに、トレーニング、検証、テスト用に分割を手動で指定できます。

指定しないと、AutoML Vision Object Detection はデータをランダムに分割します。分割は次の方法で作成されます。

  • 80% の画像がトレーニングに使用されます。
  • 10% の画像が、ハイパーパラメータの調整と、トレーニングを停止するタイミングの決定に使用されます。
  • 10% の画像がモデルの評価に使用されます。これらの画像はトレーニングには使用されません。

一般的な問題

  • 不均衡なデータ: 多くの場合、クラス(ラベル)ごとのサンプル数は均等ではありません。通常、軽度の不均衡は問題になりませんが、クラス間で差異が大きくなると問題が発生します。不均衡が大きい場合、たとえば一部のクラスが他のクラスの 10 倍を超えていると、モデルの構築で問題となります。クラスの不均衡に対処する方法はありますが、モデルのトレーニングでは理想的な構成とは言えません。可能であれば、不均衡が大きいデータでモデルのトレーニングを行わないでください。

    一般的なルールとしては、最も一般的なクラスと最も一般的でないクラスの割合を 2 対 1 にします。

  • 不適切な分割: トレーニング用のデータを提供すると、AutoML Vision Object Detection はデータをトレーニング用、検証用、テスト用に自動的に分割します。トレーニング用の分割ラベルを手動で割り当てることもできます。

    同じデータを複数回インポートしても、同じ分割が行われる保証はありません。

    トレーニング、検証、テスト用のデータには強い相関関係はありません。たとえば、動画から抽出した画像の場合、非常によく似た画像が数多く存在します。データセット分割がランダムに行われると、トレーニング用データと検証用データの両方に非常によく似た画像が入る可能性があります。この場合、テストデータの精度が不正確になります。

  • データ漏洩: データ漏洩は、モデルに偏りが生じる重大な問題です。モデルのトレーニング中に、本来使用すべきでない情報や将来の予測で利用できない情報を使用できるようになっていると、データ漏洩が発生します。この場合、トレーニング用、検証用、テスト用のデータセットで過度に楽観的な結果が生成される可能性があります。将来の未知のデータを予測するときに、同様の結果が生成されるとは限りません。これは意図せず発生することが多いため、データの準備は慎重に行う必要があります。

    漏洩の例: さまざまな画像ソースや表示角度からの陽性と陰性。