学習セットとテストセットの準備

 

VisionPro Deep Learningフォーカス ツールの学習にはまず 2 種類の画像データセットが必要です:学習セットとテストセット。

 

 

学習セットの準備

VisionPro Deep Learning ツールは、ネットワークデータを取り入れ、マシンに達成すべき内容を学習データから演繹させることで、ニューラルネットワークを学習させるディープラーニングに基づいています。そのため、ネットワークに取り入れるデータが非常に重要となります。ネットワークの学習フェーズに影響を与える最大で唯一の決定要素は、学習画像セットの構成です。つまり、機械学習の分野で有名な「garbage in, garbage out (無意味なデータをコンピュータに入力すると無意味な結果が返される)」という言葉は、VisionPro Deep Learning ツールの学習においても当てはまるのです。正しくラベル付けされた意味のある画像をニューラルネットワークに入力すれば、良い学習結果が得られるかもしれませんが、そうでなければ、良い結果が得られる見込みはありません。「ネットワークに何を学習させているか?」と自問することが最も優先されます。

ネットワークに何を学習させるかは、学習セットに基づきます。学習セットは、ネットワークにフィードするデータを表します。VisionPro Deep Learning ツールの場合、画像は、ツールの学習に使用されるデータセットのバックボーンを構成します。ディープラーニングでは、大量のデータセットがシステムに読み込まれ、システムはデータから達成しようとしている内容を演繹します。そのため、データ (このコンテキストでは画像) が非常に重要となります。

ディープラーニングのレルム内では、学習画像セットはネットワークに渡されるデータを表します。学習画像セットを作成する場合は次の点を検討してください。

  • 自分の学習画像セットはランタイム画像の表現であるか?これには、以下が含まれます。

    • 照明 – 照明にバリエーションがある場合、学習セットに、ランタイムに予測される照明のバリエーションを含める必要があります。
    • 色 – ランタイム時に部品は色が変化するか?変化がある場合、さまざまな色のバリエーションのすべてを含める必要があります。
    • 回転/スケール – 部品がカメラに表されたときに、回転されたり、スケールが変わって表されるか?その場合、それらバリエーションを含める必要があります。
    • 部品間のバリエーション – 検査される部品にわずかなバリエーションがある可能性がある場合、それらバリエーションを学習セットに含める必要があります。
    • 背景 – 多くの場合、部品の画像はデスク上でキャプチャされる可能性があります。しかし、部品は最終的にコンベアベルト上で動作するため、Deep Learning ツールでは背景が重要な要素となります。このような場合、コンベアベルト上で部品の学習セットを取得する必要があります。検査で背景が重要ではない場合、背景をマスクすることができます。膨大な情報に関してネットワークに学習させることがないため、背景をマスクすると、一般的にツールのパフォーマンスが向上します。
  • 自分の学習画像セットは十分なデータを提供しているか?Deep Learning ツールのプログラミング中に発生する多くの問題は、提供する画像やデータを増やし、ツールを再学習させることで解決できます。
Tip: 画像に注釈を付けると (つまり、「良好」、「不良」などファイル名にわかりやすい情報を提供すると)、画像のラベル付けのプロセスを高速化できます。

 

画像サンプルセットの構築

画像を収集したら、それらをサンプルセットで編成することができます。画像サンプルセットには、画像のデータベースを管理および編成するために役立つメカニズムが用意されています。画像セットを使用すると、学習、テスト、実験、および検証に使用できるカテゴリに画像のコレクションを分類することができます。これらのセットは、定義した画像の特定のタイプに対してツールを実行することで、結果の信頼性を確立するうえで役立ちます。

 

たとえば、画像のデータベースをカテゴリに分けることができます。

  • 学習 – ライン 1 (04082019)
  • 学習 – ライン 1 (04222019)
  • 学習 – ライン 2 (03292019)
  • テスト – ライン 1 (04092019)
  • テスト – ライン 2 (03302019)
  • テスト – 不良な部品

 

Note: 画像サンプルセットの設定の詳細については、「セットを作成および編集する」を参照してください。
Tip: 画像サンプルセットが生成されたら、[表示とデータベースの概要] フィルタ (表示フィルタ) を使用して、画像を簡単にフィルタしてソートすることができます。

 

学習セットの構築

画像を分類して収集したら、画像サンプルセットを作成して、学習セットでこれらを使用することができます。すべてのツールのデフォルトの動作では、ランダムに選択された画像とともに、画像セット内の画像の 50% を使用して学習します。テスト/学習画像セットの分割は、学習とテストに使用されるラベル付き画像の割合を指します。デフォルトでは、VisionPro Deep Learning は、[学習セット] ダイアログで 50% のテスト/学習分割を使用します。ただし、これはアプリケーションのニーズに基づいて変更できます。

 

 

[学習セットの選択] ダイアログは、VisionPro Deep Learning ツールの学習に使用するサンプルの作成を決定するために使用します。これを行うため、[学習セットの選択] ダイアログを使用すると、画像データベース内のすべてのビューまたは 1 つ以上の画像セット、およびそれらの画像/ビューの割合 (パーセンテージ) に基づいてツールの学習セットを定義できます。ツールでは指定された選択のパーセンテージを使用して、ラベル付けされている画像の一部を学習のためにランダムに選択する一方で、画像の残りはツールに関する結果の統計を計算するために使用されます。つまり、画像の残りは、自動的にテストセットとなります。

学習セット内のビューのメンバーシップは、画像表示ビューの右上隅にある Train インジケータによってグラフィックで示されます (以下参照)。

Note:
  • ツールを学習する前に、すべてのビューにラベルを付ける必要があります。
  • できればツールの学習前に画像サンプルセットを設定しておくのが理想です。
  • 学習セットはストリームレベルで設定されます。各ストリームには独自の画像データベースがあるためです。
  • デフォルトの表示フィルタの「学習済み」を使用して、学習フラグセットがあるすべてのビューを表示することもできます。

 

学習セットを初期化するステップを次に示します。

  1. 初めてツールを追加し、学習セットがまだ定義されていないときに [学習] アイコンをクリックすると、次の画面が表示されます。

    Note: [学習] アイコンをクリックする前に、1 つ以上のビューにラベル付けする必要があります。

  2. [学習セットの選択] ダイアログが表示されます。

    Note: [学習セットの選択] ダイアログは、[ツールのパラメータ] パネルで [編集] リンクをクリックして表示することもできます。
  3. まだ画像サンプルセットを定義していない場合は、[すべてのビューから学習セットを選択する] オプションを選択します。
  4. 次に、[選択割合] を定義します。ここでは、学習セットからランダムに選択されてツールの学習に使用されるラベル付き画像/ビューの割合 (パーセンテージ) を指定します。
  5. 画像サンプルセットを既に定義している場合は、[画像セットから学習セットを選択する] オプションを選択します。

  6. リストから以前定義した画像サンプルセットを選択します。
  7. [選択割合] を定義します。ここでは、学習セットからランダムに選択されてツールの学習に使用されるラベル付き画像/ビューの割合 (パーセンテージ) を指定します。

    Note: [画像セットから学習セットを選択する] オプションを使用する場合、選択割合は個々のセットからの割合ではなく、選択された画像セットからの画像/ビューを組み合わせた総数に基づきます。学習対象のすべてのクラスが最大限含まれるように選択が行われます。たとえば、3 つの学習画像セットがあり、A には 20 個のサンプル、B には 10 個のサンプル、C には 40 個のサンプル (合計 70 個) が含まれていて、[選択割合] がデフォルトの 50% に設定されている場合は、A から 5 個、B から 8 個、C から 22 個の画像 (35 個のビュー) がランダムに選択される場合があります。
  8. [OK] ボタンをクリックして、学習セットの設定を受け入れます。
  9. 学習セットに含まれている画像が、画像表示ビューの右上隅に表示されます。

 

学習セットの変更

画像セットの作成後にデータベースに新しい画像/ビューを追加しても、それらの画像は学習セットに追加されません。つまり、[学習セットの選択] ダイアログで [OK] ボタンをクリックした後に、データベースまたは画像セットに画像/ビューを追加しても、それらの画像/ビューは学習セットに追加されません。以前設定した学習セットを変更するには、いくつかの方法があります。新しく追加した画像/ビューを選択して学習セットに追加する必要がある場合は、[学習セットの選択] ダイアログをもう一度開いて [OK] ボタンをクリックします。これにより、現在の学習セットが破棄され、ランダムに選択された新しいセットが作成されます。または、以下で説明する方法を使用して、画像/ビューを手動で追加できます。

Note: 学習セットに対してどのような手動調整を行っても、次回 [学習セットの選択] ダイアログを開いて [OK] ボタンをクリックすると上書きされます。

 

次のいずれかの方法を使用すると、学習セットに対して画像/ビューの明示的な追加/削除を行うことができます。

  • 画像表示領域で画像/ビューを右クリックすると、その画像/ビューが学習セットに含まれていない場合は学習セットに追加するか、またはその画像/ビューが学習セットで使用されている場合は学習セットから削除できます。

    ]

  • ビューブラウザで表示フィルタを使用すると、[N ビューのアクション] メニューオプションの [選択したビューを学習セットに追加する] または [ビューを学習セットから削除する] を選択して、学習セットに対して複数のビューを追加または削除できます。

  • [データベース] メニューから [学習セットの選択] ダイアログを開くことができます。

 

テストセットの準備

学習セットと同様に、テストセットには、ランタイム中に生じる可能性がある表現上のバリエーションが含まれるようにすることをお勧めします。学習セットとテストセット間の主な差異は、ツールの学習中にテストセットが含まれないことです。その代わり、テストセットは学習の結果を評価するために使用されるため、評価セットとも呼ばれます。学習セットから除外された画像の残りは、自動的にテストセットとなります。

学習セットにラベル付けする場合と同じ方法でテストセットにラベル付けすることもできます。これにより、学習セットの統計分析を実行して、どの程度ツールで結果が汎化されているかを特定することができます。