VisionPro Deep Learning ツールチェーン
各 Cognex Deep Learning ツールは一意の出力を行い、その出力は別のツールの入力として使用できます。これはツールチェーンと呼ばれます。以下の画像では、位置決め (青) ツールには 3 つの特徴 (H, B and T) で構成される、位置を示すノードモデルがあります (これは従来のビジョンアプリケーションでフィクスチャを作成するためにパターンツールを使用するのと似ています)。
位置決め (青) ツールによる位置の出力は、そのビューを回転させて作成するために解析 (赤) ツールで使用され、位置決め (青) ツールによるノードモデルの出力に基づいて、画像の同じ領域内で検出分析を実行できるようにします。最後に分類 (緑) ツールが使用され、分類 (緑) ツールに指定されている分類基準に基づいて解析 (赤) ツールの出力が分類されます。
VisionPro Deep Learning ツールチェーンの作成
-
ツールのチェーンを作成するには、ツールを追加した後に、ツールのアイコン上の [追加] アイコンを押します。
-
こうすると、各ツールが前のツールにリンクされた、一連のツールを作成することができます。
後に続くツールの ROI の定義
ツールがチェーンでつながっている場合、ツールの対象領域 (ROI) ツールバーオプションは、その前の後に続くツールのオプションによって決定されます。
位置決め (青) ツールの後の ROI オプション
位置決め (青) ツールが前のツールである場合、このツールは後に続くツールが使用できるトランスフォームをフィクスチャに提供し、そこでツールの対象領域を画像に配置することができます。
後に続くツールの対象領域を指定するためのオプションを以下に示します。
- 1 つ以上の特徴
- 一致
- ノードモデル
- レイアウトモデル
特徴からの ROI
位置決め (青) ツールで定義されている個々の特徴を使用して、後に続くツール用の対象領域を指定することもできます。各特徴は、5 つの自由度 (DOF) のトランスフォーム (X 変換、Y 変換、回転、X スケール、および Y スケール) を提供します。
特徴によって ROI のサイズも決定されます。ROI のパーセンテージは、特徴の幅と高さに基づきます。
-
特徴を選択します。
-
[ターゲット] の横にある下向き矢印を押して、ツールによって定義されている特徴のリストを含むドロップダウンメニューと、モデルの一部である特徴のみを返す [Matched Only] を表示します。
Note: ロックアイコンを押してそれを無効にすると、特徴に対して独自の式や、使用する特徴を決める一致フィルタを作成することができます。構文内のカスタムフィルタは、feature[] または match[] (feature[id='featurename'] など) または (match[name='modelname'] など) を使用して作成できます。空のフィルタ (デフォルト設定) はすべての特徴に一致します。 -
1 つ以上の特徴を選択するか、[Matched Only] を選択します。
-
[ターゲット] フィールドに、ビューを生成するために適用されているフィルタが表示されます。その後、検査する領域に合うように ROI を調整できます。
一致からの ROI
[Matched Only] オプションを使用すると、一致するノードまたはレイアウトモデルが前の位置決め (青) ツールによって生成される場合にのみ、ROI を作成することを指定できます。
ノードまたはレイアウトモデルからの ROI
ノードモデルまたはレイアウトモデルが設定されている場合、位置決め (青) ツールの後のツールでは、ノードまたはレイアウトモデルを使用して、対象領域 (ROI) の角度を調整できます。
ノードモデルは、5 つの自由度 (DOF) のトランスフォーム (X 変換、Y 変換、回転、X スケール、および Y スケール) を提供します。ノードモデルによって ROI のサイズも決定されます。ROI のパーセンテージは、ノードモデルの幅と高さに基づきます。
後に続くツールのビューとしてモデルのさまざまな領域を提示するレイアウトモデルを使用することもできます。
[エキスパートモード] では、モデル参照フレームに合わせて ROI をスケールするための [スケール] 設定を使用できます。デフォルトでは ROI はスケールせず、画像の元のピクセルサイズを使用します。また、一致のみが適用されるように指定することもできます。
ロックアイコンを押してそれを無効にすると、特徴に対して独自の式や、使用する特徴を決める一致フィルタを作成することができます。構文内のカスタムフィルタは、feature[] または match[] (feature[id='featurename'] など) または (match[name='modelname'] など) を使用して作成できます。空のフィルタ (デフォルト設定) はすべての特徴に一致します。
分類 (緑) ツールに続く ROI オプション
分類 (緑) ツールが前のツールである場合、次のツールに対して特定のタグに一致するビューのみを表示するためのフィルタを適用できます。緑ツールの後の ROI は、検査のニーズに合わせてサイズ変更できます。
たとえば、タグ '5' として分類されている画像に基づいてさらに画像を解析する必要がある場合は、2 つの式を [フィルタ] フィールドに入力できます。
- best_tag='5' and score > threshold
- tag![5]/score > threshold
フィルタとしてこれらの式を指定することで、得点がしきい値パラメータ設定を超えている、'5' としてタグ付けされているビューのみが返されます。フィルタ構文の定義に基づき、しきい値パラメータを超える最大値を含むビューのみが分類 (緑) ツールによって「検出」されるためです。
解析 (赤) ツールの後の ROI オプション
解析 (赤) ツールが前のツールである場合は、後に続くツールを設定するためのオプションがいくつかあります。
-
ROI は、画像内の ROI を調整することで手動で設定できます。デフォルトの ROI ツールバーが以下に示されています。ツールバーのいずれのオプションも選択せずに、ROI のサイズと場所を手動で設定することで、ビューを作成できます。
- 前のツールが見つけた欠陥ごとに、ツールが個々の ROI を作成するように設定できます。
-
前のツールが欠陥を見つけた場合に、ROI を作成しないようにツールを設定することもできます。
- ROI 内の欠陥にはマスクを適用できます。
- マスクは前のツールからを再使用できます。
以下の例では、[領域を個々の ROI として抽出します] オプションが選択されています。このオプションでは、見つかった欠陥が個々の領域として画像から抽出され、ビューに変換されます。
オプションを組み合わせて ROI 内にマスクを追加することで、背景を除外し、欠陥のみを示すこともできます。
欠陥の外側の領域に対象がある場合は、マスクを反転させて、欠陥ではなく、背景に焦点を当てることができます。
後に続くツール用マスクの定義
Cognex Deep Learning ツールがツールチェーン内で互いに接続されているときは、前のツールに対して作成されたマスクが次のツールによって使用されます。このシナリオでは、マスクがツール 1 で作成されており、ツール 2 がツール 1 にチェーンでつながっている場合、ツール 2 はツール 1 のマスクを継承します。ツール 2 の編集中にさらにマスクをツール 2 に追加した場合、ツール 2 は両方のマスクを使用するようになります。ツール 2 が使用するツール 1 のマスクを編集するには、ツール 1 がアクティブになっている間に [マスクの編集] を選択する必要があります。
ツールチェーンのチュートリアル: ネジの位置決めと検査
検査中は、ネジやその他の円柱状のオブジェクトを回転させる必要があります。回転軸に沿った特定の 1 本の線だけではなく、複数の画像にわたるオブジェクト全体を見ると、カメラと照明に対して異なる角度で表面と欠陥を見ることができるという利点があります。たとえば、中心線上にあるときに最もよくわかる欠陥もあれば、側面からわずかに外れているときにわかりやすくなる欠陥もあります。
解析 (赤) ツールは、オブジェクトの正確な位置や向きに依存しないため、基本的にはオープンループで動作します。つまり、回転しているオブジェクトの一連の画像 (動画) を撮り、解析 (赤) ツールに直接表示できます。ただし、この特定の画像セットでは、ネジが画像全体に移動しているため、ネジを位置決めして切り取るには、解析 (赤) ツールに送る前にまず、位置決め (青) ツールを使用することをお勧めします。
このチュートリアルの目的は、以下の通りです。
-
位置決め (青) ツールを使用して、あいまいな特徴を位置決めして追跡する。
-
ネジのポーズを見つけるための幾何学的モデルを生成する。
-
セグメンタを設定して解析 (赤) ツールでネジを処理する。
-
[合格の学習中] パラメータを実装して、検出結果を改善します。
- [ネジ] チュートリアルの画像を追加します。
- 学習モードの間に、ワークスペースが追加されるか、開かれた後で、[データベース] メニューから ([画像の追加] を選択して)、GUI の表示スペースにある [画像の追加] を押す、または Windows エクスプローラーから画像をドラッグしてビューブラウザにドロップすることで、画像を追加することができます。
- 位置決め (青) ツールを追加します。
- ROI を調整して画像を分割した後、[はさみ] アイコンを押し、新しい ROI に基づいて画像を処理します。
- [特徴のサイズ] パラメータを 80 に設定します。
- 少なくとも 3 つの画像に 2 つ以上の特徴 (ネジの先端と末端など) を定義します。
- [ブレイン] アイコンを押して、システムを学習させます。次に、結果を確認し、特徴が正しく見つからなかった画像に手動でラベル付けします。
- 新しい画像に手動でラベルを付ける必要がある場合は、システムを再度学習させて、結果を確認します。
- 2 つの特徴を持つ画像で右クリックし、「ネジ」という名前のモデルを作成します。
- 画像を再処理して、モデルが正しく検出されたことを確認します。
- 解析 (赤) ツールを追加して、[アンスーパーバイズドモード] のままにします。
- 「ネジ」モデルを選択して、解析 (赤) ツールの画像を分割します。
- ROI のサイズを 700 x 250 に変更します。
- [中心] チェックボックスをオフにし、マウスを使って ROI をネジの上に移動します。
- [適用] を押してすべての画像を分割した後、データベース内の画像が正しく分割されていることを確認します。
- 欠陥が見られない場合は「良好」、欠陥が見られる場合は「不良」と、すべての画像にラベルを付けます。
- ツールを学習させて、結果を確認します。
- 結果が不十分である場合は、[学習の合格] パラメータを大きくして対話型学習の数を増やし、再度学習させます。
ツールチェーンのチュートリアル: 時計の文字盤の向きの位置決めと検査
時計の文字盤やその他多数の印刷部品は、高い品質が求められます。したがって、多くの場合、パッド印刷 (またはタンポグラフィ) が使用されますが、検査に関する課題が生じます。複数のパッドを使用すると、位置合わせは通常不完全になります。塗布されるインクの量が変わると、線の太さが変わる可能性があります。このすべてが視覚を妨げるわけではありませんが、容認する必要があります。しかし、インクの欠け、こぼれ、基板上の問題など、実際の欠陥は検出する必要があります。
このチュートリアルの画像は、ランダムな向きで時計の文字盤を示しています。最初に、位置決め (青) ツールを使用して、文字盤の中心と向きを決める必要があります。その結果得られた切り取られた画像と方向を変更された画像は、解析 (赤) ツールで解析できます。文字盤には、その下にある表示グリッドが見えるようにする穴もあり、解析 (赤) ツールがそれらの領域を検査できないようにするマスクを使用する必要があります。
このチュートリアルの目的は、以下の通りです。
- 位置決め (青) ツールを使用し、ダイヤルの向きを位置決めして修正します。
- 解析 (赤) ツールを取り付けて検査を実行します。
- マスクを追加して、検査する領域と検査しない領域を制御します。
- [文字盤] チュートリアルの画像を追加します。
- 位置決め (青) ツールを追加します。
- 時計の文字盤を囲むように、位置決め (青) ツールの ROI を調整して画像を分割します。
- [特徴のサイズ] パラメータを 100 に設定します。
- 少なくとも 2 つの特徴 (中心と "B" の下の穴など) を選択し、3 つ以上の画像でそれらにラベル付けします。
- [回転] の摂動パラメータの間隔を [0,360] に変更することで、学習段階でいくつかの回転を追加して、文字盤の向きのばらつきを補正します。
- システムを学習させて、結果を確認します。
- 特徴が正しく見つからなかった画像に手動でラベル付けします。
- 新しい画像に手動でラベルを付ける必要がある場合は、システムを再度学習させて、結果を再確認します。
- いずれかの画像で、ラベル付きの 2 つの特徴を選択します。ビューで右クリックして、メニューから [モデルの作成] を選択し、「文字盤」という名前のモデルを作成します。
- 画像を再処理して、モデルが正しく検出されたことを確認します。
- 解析 (赤) ツールを追加し、ROI 設定を構成して「文字盤」モデルを使用し、ROI のサイズを 1850 x 1850 に設定します。
- すべての画像を分割し、データベース内の画像が正しく分割されていることを確認します。
- すべての画像に [良好] とラベル付けした後、表示フィルタを使用して、ファイル名に "bad" という単語が含まれている画像に [不良] とラベルを付けます。
- 背景、表面の小さな円、および半月の形を隠すマスクを作成します。
- 画像表示領域で、右クリックしてメニューから [マスクの編集] を選択します。
[円ツール] を選択し、文字盤の中心から端に向かって外側に円を描きます。
円マスクを配置した状態で、[反転] ボタンを押すと、マスクが円の外側を覆います。
[円ツール] を選択し、画像内の他のそれぞれの円形の特徴に円マスクを適用します。
[マジックワンド] ツールを選択し、Shift キーを押しながら、ワンドを図形の上にドラッグして塗りつぶします。
すべてのマスクを配置した状態で、[適用] ボタンを押すと、[マスクの適用] ダイアログが開き、すべての画像にマスクを適用できます。
[閉じる] ボタンを押して、[マスクの編集] フェーズを閉じます。これで、すべての画像にマスクが適用されます。
- ツールを学習させて結果を確認し、ツールが欠陥を正しくマスクしていることを確認します。学習に関連付けられているパラメータを調整する必要がある場合、または画像にラベルを付け直す必要がある場合は、ツールを再度学習させて結果を再検証してください。