欠陥検査 – 画像差分(EasyBuilder)

In-Sight EasyBuilder で、画像差分を使った、欠陥検査ができます。スプレッドシートならば、より高精度な FFD が使えます。

前もってチェッカーボードのキャリブレーションを行って、レンズの歪みを補正すれば、より精度良く検査できます。

位置と角度を合わせるために、[位置決めツール]-[PatMax パターン] で、対象物を検出します。

[画像フィルタツール]-[比較]で、良品との画像差分を行います。[比較]ツールでは、モデル領域と、比較領域を、指定します。モデル領域と比較領域は、基準とした画像で最初に設定するときは、通常同じ位置とサイズですが、後から調整するときなど、ずれてしまうことがあります。そのときは、キーボードの矢印ボタンで数値を確認しながら、同じ位置とサイズに合わせます。(下図では結果数を減らすために対象物の半分の領域を指定しています。)

モデルにした良品画像は、後から再調整できるように、ビットマップファイルに保存します。

デフォルトで、ツールフィクスチャにパターン_1.フィクスチャが指定されているので、比較領域は対象物の移動に追従します。

精度を上げるために、[設定]-[ピクセル比較]は、[バイリニア]にします(処理時間は増えます)。

[寸法測定ツール]-[ブロブ面積(1-10)]で、欠陥を検出します。[計数ツール]-[ブロブ]でも検出できますが、[ブロブ面積 (1-10)]のほうが、結果を見ながらパラメータを調整できます。ブロブツールの[ツール画像]に、比較ツールの出力画像(「フィルタ_1.画像」)を指定します。ブロブツールの検査領域は、比較ツールの検査領域より若干狭くします。

[ブロブ面積(1-10)]は、ブロブ検出数が零のとき(欠陥が無いとき)、エラーを出力するので、「総合判定に含める」のチェックを外します。そして、[検査]-[演算&ロジックツール]-[演算]を追加します。式に、ブロブ面積_1.検出数、を指定し、制限範囲を、最大=0、最小=0、にします。[ブロブ面積(1-10)]で、1個以上、検出したときに、Fail を報告するようになります。

画像差分後のブロブ検出なので、[ブロブ面積(1-10)]のパラメータは、しきい値モード=手動、ブロブしきい値=任意(例えば50)、ブロブの色=白、境界ブロブ=任意(通常はチェックですが、今回は結果数を減らすために未チェックにしています)、最小面積制限=任意(例えば20)、検出する数=10、にします。制限範囲は、最小=0、最大=9999999、にします。最小面積制限とブロブしきい値で、欠陥の抽出を調整します。

ブロブでの欠陥の抽出で、対象物の輪郭線が多く現れるようでしたら、[比較]ツールの[設定]-[エッジ範囲]の値を大きくします(例えば3→5)。

歯車やベアリングなどで、全体の位置を決める円に対し、角度を決めるマークや文字が、小さいときがあります。PatMax は、大きな特徴が優位になり、小さな特徴は影響が限定される、特性があるので、そのときは、2つの位置決めツール(PatMax パターン)を用意します。1個目の PatMax で外側(または内側)の輪郭をモデル登録して(x, y)を検出します。2個目の PatMax でマークや文字をモデル登録して θ を検出します。[位置決めツール]-[フィクスチャ計算]を追加し、X=パターン_1.フィクスチャX、Y=パターン_1.フィクスチャY、角度結果=パターン_2.フィクスチャ角度結果、を指定します。または、円中心とマークを直線で結んで角度を決めます。

位置と角度が正確に求まれば、良品との画像差分を行って、欠陥を検査できます。画像差分のために、四角形の領域を回転するので、対象物は少し小さく撮像します。

従来より、簡単な欠陥検査で、ボトムハットとトップハットの画像フィルタが使われています。ボトムハットは、指定したフィルタサイズより小さい黒の欠陥を検出します。トップハットは、指定したフィルタサイズより小さい白の欠陥を検出します。他には、大きなフィルタサイズのメディアン処理した画像を、元の画像から引算し、欠陥を検出する方法があります。