エッジ
マシンビジョンの用語では、エッジは、対照的なグレースケール値を持つ 2 つの隣接するピクセルグループ間の境界 (線、円弧、円のいずれか) と定義されています。In-Sight エッジツールを使用して、検出されたエッジに関する統計を検出して処理します。
In-Sight ビジョンシステムでは、エッジツールの次の関数を使用して、エッジの検出と処理を実行します。
- Caliper 関数: エッジモデルに基づいて、対象領域 (ROI) 内でエッジ間の幅を計測し、エッジおよびエッジペアの位置と間隔を探します。
- FindCircle 関数: 円環 ROI 内で単一の円形状エッジを探します。
- FindCircleMinMax 関数: 連続するエッジの循環性を検査します。
- FindCurve 関数: 曲がった ROI 内で単一の円弧状エッジを探します。
- FindLine 関数: ROI 内で単一の直線エッジを探します。
- FindMultiLine 関数: ROI 内で複数の直線エッジを探します。
- FindSegment 関数: ROI 内で複数の直線エッジのペアを探します。
- PairEdges 関数: エッジの配列をエッジペアの配列にソートします。
- PairDistance 関数: 2 つのエッジ間の距離を計算します。
- PairMaxDistance 関数: 最大エッジペア距離を検出します。
- PairMeanDistance 関数: 平均エッジペア距離を計算します。
- PairMinDistance 関数: 最小エッジペア距離を検出します。
- PairSDevDistance 関数: エッジペアの長さの標準偏差を計算します。
- PairsToEdges 関数: エッジペアの配列を (平均化によって) エッジの配列に変換します。
- SortEdges 関数: 特定の基準でエッジをソートします。
In-Sight エッジツールについて
In-Sight エッジツールを使用して、検出されたエッジに関する統計を検出して処理します。
エッジ検出とは
In-Sight エッジツール関数で、ピクセル極性の不連続に関する対象領域 (ROI)、つまり白黒 (またはその逆) のピクセル間に急激な変化がある画像内のエリアを検査することによって、エッジを検出します。エッジは 2、3、または数個のピクセルのみに広がっていることもあります。
エッジの例
エッジは単一のエッジまたはエッジのペアで構成することができ、黒から白、または白から黒への 2 つの遷移で構成されています。次の図は、エッジのタイプを示しています。
Caliper、FindLine、または FindCircle 関数などのエッジツールをスプレッドシートに挿入すると、ROI でピクセル値の不連続がスキャンされます。下記の図は、矩形および円環の領域でエッジの特徴がスキャンされる方向を示しています。矩形の領域では、スキャン方向 (スキャン方向は、2 つの方向指示の矢印で示されます) が左上隅から開始し、右端まで進み、その後右下隅に到達するまでこのパターンを続行します。
スキャン方向 - 矩形および円環の領域
このプロセスで、グレースケールヒストグラムで ROI および高コントラスト (ROI 内で検出されたグレースケール値の差異) によって定義されたエリアを計算し、指定したその他のパラメータと合わせてエッジを定義します。
エッジのレスポンスチャート ([表示] パラメータが [すべて表示: 入力、結果、およびチャート] に設定されている場合に表示されます) に、ROI 内で検出されたグレースケール値の一次微分が表示されます。下記の図に示すように、大きなエッジ遷移を示す山と谷が表示されています。[アクセプトしきい値/最小コントラスト] パラメータを使用して、最小ピーク高さ (コントラストしきい値) を設定します。この設定で、最小ピーク高さより低いピークは結果から除外されます。これによって、検査の分析の対象を、画像内の特定の強度のエッジのみに限定することができます。関数のエッジのレスポンスチャートを使用して、正しいコントラストしきい値を判断します。
エッジのレスポンスチャートの例
- [得点] 軸は、このツールに対して設定されている [得点] (100 および -100) と [アクセプトしきい値] パラメータによって定義されます。山 (つまり正の得点) は、エッジが黒から白へ遷移していることを示しており、谷 (つまり負の得点) は、エッジが白から黒へ遷移していることを示しています (得点 0 は、エッジが検出されなかったことを示します)。
- [オフセット] 軸は、エッジの特徴を検出する ROI を指しています。ここで、0 は領域の開始位置を表し、右端の値は領域の最大幅をピクセル単位でマークしています。[オフセット] 軸沿いになる山または谷の頂点が、ROI 内で検出されたエッジの位置を示します。
エッジ幅 - エッジのフィルタ
[エッジ幅] パラメータを使用して、入力画像からノイズを除去し、エッジプロファイルのピークを強調します。[エッジ幅] パラメータのサイズは、画像内のエッジのサイズと厳密に一致し、ピークは低く緩やかであるのに対して、シャープで急勾配であるように指定する必要があります。エッジのサイズとは、エッジ幅のピクセル数です。エッジが 1 または 2 ピクセルにのみ広がっている場合はエッジがシャープであることがあり、複数のピクセルに広がっている場合は鈍いことがあります。エッジサイズに近い [エッジ幅] 設定を指定して、画像内のエッジのピークをより強くすることができます。一方で、[エッジ幅] 設定が大きすぎるかまたは小さすぎると、画像内に広く低いピークが作成されます。
エッジの結果
エッジが定義されると、エッジツール関数によって、自動的にエッジデータ構造体および定義されたエッジに関するデータを含んでいる結果テーブルが作成されます。返される情報は、その他の In-Sight ビジョンツールによってフィクスチャ入力として使用するか、その他のエッジツール関数で使用して、エッジに関連するデータをさらに推定することができます。
エッジツールを使用する場合
次の状況では、エッジツールを使用する必要があります。
- エッジでピクセルの白黒の差がはっきりしており、高コントラストになっている。
- アプリケーションで特徴を迅速に検出する必要がある。エッジツールは高速な In-Sight ビジョンツールの中にあり、例えば、パターンよりも高速にエッジの特徴を検出する機能を備えています。
エッジツールを使用する理由
エッジの検出およびデータの推定は、次のアプリケーションで非常に有用です。
- 計測アプリケーション。ガスケットなどのパーツ上の円形状の特徴の半径を測定したり、回路基板上の回路の長さを測定したりします。
- パーツ上の特徴を探すアプリケーション。パーツの円形状の特徴や平坦な終端などを探し、In-Sight ビジョンツールでフィクスチャ入力として使用します。
- 有無を調べるアプリケーション。ここでエッジツールを使用して、エッジの特徴が存在するかしないかを判定します。
- 計数およびソートを行うアプリケーション。ここでエッジツールを使用して、確立されているパラメータに基づいて、エッジの計数とソートを行います。
エッジツールの使用方法
エッジツールは通常、次の方法で使用されます。
- ステップ 1 - 画像を検査し、エッジツールがアプリケーションの要件を満たすかどうかを判定します。
- ステップ 2 - Caliper、FindCircle、FindCircleMinMax、FindCurve、FindLine、FindMultiLine、または FindSegment などのエッジツールの 1 つをスプレッドシートに挿入し、画像内のエッジまたはエッジペアを定義して検出するように、パラメータを設定します。
- ステップ 3 - PairDistance、PairEdges、PairMaxDistance、PairMeanDistance、PairMinDistance、PairSDevDistance、PairsToEdges、または SortEdges などのエッジツールをもう 1 つ挿入し、検出されたエッジまたはエッジペアを、特定の基準に基づいてフィルタ、計算、またはソートします。