表示フィルタ

[ビューブラウザ] の [表示] フィールドを使用すると、[ビューブラウザ] のデフォルトのドロップダウンメニューの項目、または、キーワード、条件、演算子、変数、正規表現を使用して作成したカスタムフィルタに基づいて、[表示] をフィルタすることができます。[表示] フィルタは、ビューのラベル付けおよび結果の検証を行う時に有用であり、特定の条件に基づいて選択されたビューで操作できるようになります。

 

デフォルトの表示フィルタ

さまざまなツールの [ビューブラウザ] では、一般的な共通の選択フィルタのセットを使用できます。[表示] フィールドのドロップダウンメニューで使用できるこれらのフィルタを次の表に示します。

フィルタ 説明

all

データベースの [ビュー] のすべてを返します。

new

新しくインポートされた画像を返します。

labeled

ラベル付きビューを返します。

  • 位置決め (青) ツールと読み取り (青) ツール:少なくとも 1 つのラベル付き特徴を持つビュー。
  • 解析 (赤) ツール: 「良好」または「不良」のどちらかのラベルが付けられたビュー。
  • 分類 (緑) ツール: タグ付けされたクラスを含むビュー。

not labeled

ラベル付けされていないビューを返します。

trained

学習に使用されたビューを返します。

not trained

学習に使用されなかったビューを返します。

 

また、選択されている Deep Learning ツールに応じて、各ツールでツール特有のフィルタを使用することもできます。

ツール フィルタ 説明

解析 (赤)

good

bad

良好としてラベル付けされたビューを返します

不良としてラベル付けされたビューを返します

分類 (緑)

unknown

mismatch

不明なタグ/クラスを含むビューを返します。

予測されたタグ/クラスが実際のクラスと一致しないビューを返します。

解析 (赤) High Detail

分類 (緑) High Detail

validated

not validated

検証セットに含まれているビューのみを返します。

検証セットに含まれていないビューのみを返します。

位置決め (青)

読み取り (青)

no matches

モデルが検出されなかったビューを返します (モデルが定義されている場合)。

 

カスタム表示フィルタ

カスタムフィルタは、特定のキーワード、論理演算子、変数、メソッドや、演算子と条件を使用して指定することができます。また、正規表現を使用してカスタムフィルタを作成することもできます。

カスタムフィルタを作成する場合は、Boolean 結果を評価するようにフィルタを作成する必要があります。

 

表示フィルタのキーワード

カスタムフィルタを作成する場合はまず、[表示] ドロップダウンメニューでキーワードを指定してから、論理演算子と変数を追加します。

[表示] ドロップダウンメニューのキーワードに加えて、[表示] フィールドに次のキーワードを入力することができます。

  • positive:解析 (赤) ツールで使用され、欠陥のあるビューを返します。
  • negative:解析 (赤) ツールで使用され、欠陥のないビューを返します。
  • 'filename_word':ワードが含まれるファイル名を持つビューを返します。たとえば、「bad_head_001.png」、「bad_head_002.png」などの名前が付けられた学習セットの画像を抽出した場合などです。ファイル名にワード「bad_head」が含まれるビューのみが返されるようにするには、[表示] フィールドに「bad_head」と入力します。

 

表示フィルタの論理演算子

論理演算子と組み合わせてキーワード (および条件) を使用すると、カスタム選択フィルタを作成することができます。カスタムフィルタの作成に使用できる 3 つの基本的な論理演算子は、notandor です。

説明

not trained

学習に使用されないビューを返します。

good and not 'good'

良好としてラベル付けされ、かつ画像のファイル名にワード「good」が含まれないビューを返します。

labeled or not manual

ラベル付けされているビュー、および/または学習フラグが [自動] に設定されているビューを返します。

 

表示フィルタの変数

変数、メソッド、および基本的な算術比較演算子 (=、>、<...) を使用して、ビューの特定のセットを選択する特別な条件を作成することができます。それぞれ 3 つのツールで使用可能な変数の要約を次の表に示します。

  • すべてのツール

    変数 説明

    random

    各ビューについて間隔 [0,1] でランダム変数を生成します。

  • 解析 (赤) ツール

    変数 説明

    score

    ビュー (最高領域得点) の総合得点を返します。

    T1,T2

    しきい値 (下限) (T1) と (上限) (T2) を返します ([得点] グラフと [しきい値] パラメータに表示されます)。

    region/score

    システムで検出された欠陥の領域の得点を返します。この変数は値のリストを返す可能性があります (詳細については、以下の [注] セクションを参照してください)。

    region/area

    欠陥領域の面積を返します。

    region/x

    欠陥領域の水平位置を返します。

    region/y

    欠陥領域の垂直位置を返します。

    region!/(score│area│x│y)

    ラベル付けされた領域の得点、面積、水平方向または垂直方向の値を返します。

    background/score

    背景の得点 (つまり、欠陥領域の範囲外の得点) を返します。

  • 分類 (緑) ツール

    変数 説明

    tag/score

    各タグ/クラスの確率得点を返します。この変数は値のリストを返します (詳細については、以下の [注] セクションを参照してください)。

    tag[Tag_Name]/score

    クラス「Tag_Name」に関する予測される確率得点を返します。

    tag![Tag_Name]

    タグ/クラス「Tag_Name」でラベル付けされたビューの場合、True を返します。タグ「Tag_Name」でラベル付けされたビューを選択する場合に、この変数を使用することもできます。

    tag!/score

    正しい (ラベル付けされた) クラスの確率得点を返します。

    tag![Tag_Name]/score

    タグ/クラス「Tag_Name」でラベル付けされたビューのみを選択する、正しいクラスの確率得点を返します。

  • 位置決め (青) ツールおよび読み取り (青) ツール

    変数 説明

    feature

    ビューで見つかった 1 つ以上の特徴を返し、特徴のサムネイルを表示します。

    feature[0]

    または

    feature[0,1]

    特定の特徴 (0) が検出されたビューを返します (1 つのステートメントとして使用された場合。それ以外の場合は、検出された特徴のリストを返します。詳細については、以下の [注] セクションを参照してください)。

    feature![0]

    または

    feature![0,1,2]

    ラベル付けされた指定された特徴の場合のみを除き、上記と同じ内容を返します。

    feature[0]/score

    0 としてマーク (予測) された特徴の確率得点を返します。

    feature[0]/x

    特徴 0 の水平位置を返します。

    feature[0]/y

    特徴 0 の垂直位置を返します。

    feature![0]/(score│x│y)

    ラベル付けされた特徴 0 の得点、水平位置または垂直位置を返します。

    match

    モデルが検出された場合は、True を返します。または検出されたモデルのリストを返します (詳細については、以下の [注] セクションを参照してください)。

    match[Model1]

    Model1 が検出された場合のみ、上記と同じ内容を返します。

    match![Model1]

    ラベル付けされた特徴の中で検出されたモデルの場合に、上記と同じ内容を返します。

    match[Model1]/score

    検出されたモデル (Model1) の得点を返します。

    この変数は値のリストを返す可能性があります。詳細については、以下の [注] セクションを参照してください。

    match[Model1]/angle

    検出されたモデルの角度を返します。

    match[Model1]/scale

    検出されたモデルのスケールを返します。

    match[Model1]/schear

    検出されたモデルのせん断歪を返します。

    match[Model1]/x

    検出されたモデルの水平位置を返します。

    match[Model1]/y

    検出されたモデルの垂直位置を返します。

    match![Model1]/(score│angle│scale│shear│x│y)

    ラベル付けされた特徴のモデルの場合に、上記と同じ内容を返します。

    match/features

    システムによって一致したモデルのマークされた特徴の数を返します (値のリストを返す可能性があります。詳細については、以下の [注] セクションを参照してください)。

    match[Model1]/features

    特定のモデル Model1 の場合に、上記と同じ内容を返します。

    match!/features

    ラベル付けされた特徴の中で一致したモデルの特徴の数です。

    match![Model1]/features

    特定のモデル Model1 の場合に、上記と同じ内容を返します。

Note:

一部の変数は、値のリストを返す場合があります (出力として可能な値が多い場合)。このような返されたリストの一部のプロパティ (要素の数、最大値、または最小値) は、以下で説明するメソッドで抽出できます。

ツール 注釈

解析 (赤)

region/(score│area│x│y)

検出された領域に対応する各値とともに、得点のリストを返します。

確率得点は常に、[0,1] の間隔に位置します。スーパーバイズドモードで使用される場合にのみ、解析 (赤) ツールは確率得点を返します (領域の欠陥となる確率など)。

分類 (緑)

tag/score

各クラスの確率のリストを返します。

確率得点は常に、[0,1] の間隔に位置します。また、tag/score によって返された値のリストは最大 1 を追加します。

位置決め (青)

読み取り (青)

feature, match

1 つのステートメントとして true を返します。それ以外の場合は、検出された特徴またはモデルのリストを返します。

feature![0]/(score│x│y)

ラベル付けされた特徴 0 の得点、水平位置または垂直位置を返します。

match[Model1]/(score│angle│scale│shear│x│y)

検出されたモデル (Model1) の得点、角度、スケール、せん断歪、水平位置または垂直位置のリストを返します。

 

表示フィルタのメソッド

変数によって返される、値のリストのプロパティの一部にアクセスするため、いくつかのメソッドを使用できます。

メソッド 説明

count()

リスト内の項目の数を返します。

max()

リスト内の最大値を返します。

min()

リスト内の最小値を返します。

 

表示フィルタの演算子と条件

変数と組み合わせて基本的な算術比較演算子を使用して、フィルタ条件を作成します。

シンボル 説明

=

count(feature![h])=3

「h」のラベル ID を持つ、正確に 3 つの特徴が含まれるビューを返します。

!=

count(match)!=0

検出されたモデルの数が 0 と等しくないビューを返します。

< >

feature[t]/score>0.9

特徴「t」が検出され、確率得点が 90% より大きいビューを返します。

<=

min(region/x)<=50

欠陥領域の左端が、左側の画像の境界から最大で 50 ピクセル離れているビューを返します。

>=

random>=0.8

ビューのほぼ 80% を返します。

in

not score in [0.28,0.43]

得点が [0.28,0.43] の間隔 (ここで、0.28 = しきい値 1、0.43 = しきい値 2) の範囲外に位置するビューを返します。

 

表示フィルタとソートの例

このセクションのトピックでは、Cognex Deep Learning ツールのさまざまなフィルタ条件を説明する例を示します。

 

位置決め (青) ツールフィルタの例

次の例では、位置決め (青) ツールとともに使用する一般的な表示フィルタについて説明します。

表示フィルタ 説明

count(match)=0

このフィルタは、[表示] ドロップダウンメニューの no matches オプションに対応しています。一致したモデルを含まないビューのみが表示されます。

count(feature[t]/x in [500,600]) > 0 and count(feature[t]/y in [300,400]) > 0

1 つ以上の特徴 (ID = t) が水平位置と垂直位置の指定範囲内で検出されたビューを返します。

count(match[Model1]/scale in [0.9,1])>0 and count(match[Model1]/angle in [0,90]) > 0

マークされた特徴の中で少なくとも 1 つのモデル (モデル名 = Model1) が検出され、指定された値の範囲のスケールと方位角を持つビューを返します。

match[Model1]/features<5

モデル (モデル名 = Model1) が検出され、5 未満のマーク済みと一致するビューを返します。

features.min(match/features)=2

モデルとの一致に使用される特徴の最小数が正確に 2 であるビューを返します。

min(feature[h]/x) > 500

左端の特徴 (h) が左側の境界から少なくとも 500 ピクセル離れて位置しているビューを返します。

 

分類 (緑) ツールフィルタの例

次の例では、分類 (緑) ツールとともに使用する一般的な表示フィルタについて説明します。

表示フィルタ 説明

tag!/score < max(tag/score) or score < threshold

tag!/score < score or score < threshold

これらのフィルタは実際には、threshold が処理しきい値である場合、そのドロップダウンメニューとの表示フィルタのミスマッチに相当します。

このフィルタは、すべてのクラスの最大確率より実際のクラス (指定されたタグ) の確率が低い場合のビュー (得点が max(tag/score) と等しい、つまり、正しくないタグ/クラスが予測された場合)、および最大確率得点が処理しきい値より低い (つまりタグ/クラスが予測されない場合) ビューをフィルタします。

not trained and tag![cat] and tag[dog]/score = max(tag/score)

not trained and tag![cat] and tag[dog]/score = score

学習に使用されず、catタグでラベル付けされているのに、dogタグが予測されているビューをフィルタします。

 

解析 (赤) ツールフィルタの例

次の例では、解析 (赤) ツールとともに使用する一般的な表示フィルタについて説明します。

表示フィルタ 説明

bad and count(region!/score > T2) <= 2

得点がしきい値 (上限) (T2) より高い 2 つ以下のラベル付き欠陥領域がある、不良としてラベル付けされたビューを返します。

count(region) > 1 and max(region/area) < 200

複数のマークされた (システムによって検出された) 欠陥領域と 200 ピクセルより小さい最大欠陥領域を持つビューを返します。

count(region/x in [100,200]) >= 2

水平位置の特定の範囲内にその中心が位置する、少なくとも 2 つの欠陥領域を持つビューを返します。

 

正規表現使用した表示フィルタ

正規表現 (別名 regex または regexp) を使用してより複雑なフィルタを作成することもできます。「01.png」、「02.png」、または「03.png」で終わるファイル名に基づいて画像をフィルタする場合、次の正規表現: /0[1-3].png$/.test(filename) を使用することができます。この例で、「filename」はキーワードであり、そのまま使用されます。次の表では、VisionPro Deep Learning GUI 内で正規表現を使用するためのいくつかの基本について説明します。

アンカー

^

先頭の文字列またはラインを指定します。たとえば、^0 は 0 で始まる文字列を照合します。

Note: かっこ内で ^ 文字を使用すると (つまり、[^0])、^ は先頭ではないことを意味します。

$

末尾の文字列またはラインを指定します。たとえば、0$ は 0 で終わる文字列を照合します。

基本的な照合

.

単一の文字を照合します。

Note: ピリオドを照合するには、バックスラッシュを使用してドットをエスケープする必要があります。たとえば、「\.」のように入力します。

\d

0123456789 の範囲の任意の数字を照合します。

実際の数字、0~9 は数字を入力することで表現することもできます。

\w

任意の文字、数字、およびアンダースコア文字 (_) を照合します。

実際の文字は大文字と小文字が区別され、文字 a~z または A ~ Z を入力することで表現することができます。

\s

空白を照合します。

特定の文字

[...]

特定の文字の照合には、角かっこ [ ] が使用されます。特定の文字は角かっこ内で定義されます。たとえば、[a-z] は a から z までの小文字を照合し、T[ao]p は Tap または Top を照合します。かっこは、[A-C][0-3][g-i] などの複合構造体で使用できます。この場合、A0g、A0h、B1i、および C3g の文字列を照合します。

繰り返し

{...} 中かっこ { } は、繰り返しを示すために使用されます。たとえば、t{2} は 2 つの「t」を返します。[def]{3} は「d」、「e」、または「f」が含まれる 3 文字を返します。.{1,4} は任意の 1 文字と 4 文字間を照合します。

*

文字または数字の 0 以上のインスタンスを示します。たとえば、a* は 0 以上の文字を照合します。

+

文字の 1 つ以上のインスタンスを示します。たとえば、[nop]+ は、1 つ以上の「n」、「o」、または「p」文字を照合します。

オプションの文字

?

疑問符「?」は 0 または 1 つの先行する文字またはグループの照合に使用されます。たとえば、12?3 は「123」または「13」を照合します。

Note: 疑問符を照合するには、スラッシュを使用して疑問符をエスケープする必要があります。たとえば、「\?」のように入力します。

グループ分け

(...)

かっこは、1 ペアのかっこ内のサブパターンがグループを構成するように、文字のグループを定義するために使用されます。これは、画像のファイル名から情報を抽出する場合に非常に有用です。たとえば、Good_0001.png のような特定の命名規則を使用する画像を抽出し、それら画像のみを返すようにしたい場合、^(Good.+)\.png$ を使用することができます。

また、かっこを使用して、ネストされたグループをキャプチャすることもできます。上記の例を使用した場合、^(Good(\d+))\.png$ などで、数字に基づいて検索を絞り込むことができます。

また、前述の量指定子をかっこ内で使用して、パターンをキャプチャすることもできます。たとえば、1000 より大きい領域の候補をキャプチャする場合、(\d{4})x(\d{4}) を使用することができます。

論理的 OR 識別子 | を使用すると、異なる文字セットの候補を示すことができます。たとえば、ファイル名のセットで「scratch」、「dent」、または「hole」を返すようにしたい場合、^(Bad(\d+)(scratch|dent|hole))\.png$ を使用することができます。