画像処理の基本は、撮像・きれいな画像(=ピントの合ったコントラストのはっきりした)を撮ることです。
加えて前処理フィルタの活用により、検査内容に最適な画像に加工ができます。傷検査・寸法計測などの本処理を設定する前に、撮像と前処理を最適に行なうことで安定した検査ができる可能性が高まります。
今回は最適な前処理フィルタの選定及び設定方法を原理から説明します。
前処理フィルタの中でも最も汎用的に使われる4種類を原理から解説します。以下のように、全画素に対して各画素を中心とする3×3での前処理計算を実施して、画像を加工しています。
3×3の中心画素の濃度を中心を含む9個の画素の中で、最大濃度(一番明るい値)に置き換える処理です。黒いノイズ成分を除去する効果があります。
3×3の中心画素の濃度を中心を含む9個の画素の最小濃度(一番暗い値)に置き換える処理です。黒い画素を強調し、黒点などの傷検査を安定させる効果があります。
3×3の中心画素の濃度を中心を含む9個の平均濃度に置き換える処理です。画像をぼかしてノイズ成分の影響を減らし、サーチを安定させる効果があります。
3×3の中心画素の濃度を中心を含む9個の中で、濃度順で5番目の濃度に置き換える処理です。平均化フィルタより画像をぼかさずにノイズ成分を除去する効果があります。
ポイント
画像処理では、人が見た画像を正確に再現するために、きれいに撮像することが重要ですが、検査の目的によっては見た目通りではなく、特長点を強調したり(膨張/収縮など)、逆にぼかしてノイズ成分を減らす(平均化/メディアンなど)方が最適な検査結果が出ることがあります。
前処理を理解するには、上記の前処理を全画素分実施していることを覚えてください。
元画像のコントラストが低い場合やライン情報を強調したい場合に、エッジ抽出やエッジ強調といった前処理フィルタを活用します。エッジ関連フィルタは目的別で種類が多いので、選定には原理を基にした知識が必要です。以下では活用頻度の高い「ソーベル」「プレヴィット」「エッジ抽出X方向」「エッジ抽出Y方向」の原理を解説します。加えて、「エッジ強調」のエッジ抽出系フィルタとの違いについても解説します。
ソーベル/プレヴィットはともに、XとY方向について別々にエッジ抽出を行ない、その両方の結果を合成するエッジ抽出処理です。3×3の中心画素を、9画素それぞれに以下のような係数をかけた後、合算した濃度値に置き換えます。ソーベルは中央部の画素に「2」がかかるので、プレヴィットと比較してコントラストの少ないエッジを強調する効果があります、そのかわりノイズも抽出してしまいます。
微分 | 横方向 | 縦方向 | 斜め方向 | その他 | |
---|---|---|---|---|---|
プレヴィット | 1次微分 | ○ | ○ | △ | |
ソーベル | 1次微分 | ◎ | ◎ | ○ | |
ロバーツ | 1次微分 | △ | △ | ○ | |
ラプラシアン | 2次微分 | △ | △ | △ | 方向に依存しない |
◎○△の記号は強度を表します。
強度が強い場合は、ノイズ的な変化も抽出されることもあります。
【参考】方向指定エッジ抽出フィルタ
エッジ抽出X方向/Y方向フィルタは、縦傷限定/横傷限定検出などで活用しますが、原理はソーベルフィルタの方向限定処理です。
エッジ強調はぼやけた画像をはっきりさせる処理です。
エッジ抽出フィルタとの違いは、9画素の合算結果を0ではなく1にすることで中心画素の濃度を強調します。
エッジ抽出なら9画素が同じデータなら合算して0(濃度ゼロ)になりますが、エッジ強調では中心画素が強調された濃度が残ります。
ポイント
エッジ抽出フィルタとは、一般的に3×3の中心画素の濃度をその上下(X方向)や左右(Y方向)から演算して置き換える処理のことです。強調したい方向やノイズの有無から種類を選定する必要があります。
また、エッジ強調フィルタは比較的均一な部分でも中心画素を強調するため、ノイズ成分が多くなることに注意してください。
弊社CV-3000/5000およびXGシリーズでは、1つの検査領域に複数の前処理フィルタを重ねて設定することができます。
それぞれのフィルタの原理を知れば、それぞれを組み合わせて最適な画像加工が可能になります。その例を紹介します。
同じ回数の膨張→収縮を適用することで、元の形を維持したまま、黒いバリ形状だけを除去します。
ソーベルおよび2値化で傷・汚れだけを抽出、膨張で拡大します。
ざらついた表面の影響によるノイズ成分をキャンセルさせるために、「平均化+メディアン」のフィルタをかけます。
エッジ検出での計測をさらに安定させることがでる有効なテクニックです。
フィルタなし | 6.27画素 |
---|---|
平均化+メディアン | 0.3画素 安定化 |
前処理フィルタ前編 まとめ
前処理に関しては以下の点を基本として覚えてください。
次のテーマは最適な処理結果の出る画像に加工する/前処理フィルタについて(後編)です。
今回の基本的な前処理フィルタに加えて、差分フィルタやリアルタイム差分フィルタなど新しく高度な前処理フィルタの効果を説明します。
印刷の絵柄がキャンセルされ、汚れのみが不良として抽出されています。
ワークが回転しても対応可能です。
差分フィルタとは、マスター登録した良品画像と入力画像を比較して、違いのある部分を抽出する前処理機能です。
良品の個体差を考慮し、どの程度の差を不良として捉えるかは任意に調整が可能です。
登録画像と入力画像の濃度値の差分絶対値を演算して、差分画像を出力するフィルタです。
従来、画像センサでの差分フィルタ活用ツールは傷、汚れ検査中心でしたが、弊社CV/XGシリーズでは傷検査の他にも正規化相関の相関値では難しかった形状変化判別などにも使用できます。
リアルタイム差分フィルタは、生画像に膨張収縮フィルタを掛けた画像と生画像自体の差分を取ることで、小さな黒点などの欠点だけを抽出するものです。
このフィルタを使用すると複雑な形状の対象物の輪郭に合わせて領域を設定する必要がなく、対象物の位置ズレを補正するための位置補正も不要になり非常に簡単な設定一つで検査を行なうことができます。
1の生画像を膨張することで、黒点が消えます。2を収縮して生画像と同じ大きさに戻します。
3の画像と1の画像を引き算することで黒点だけが残ります。この処理は、毎回撮像した画像に対して実行されるため、入力される生画像の形状が変わっても、安定した差分をとることが可能です。
濃淡差の小さい対象のコントラストをアップして、より安定した外観検査を行うための機能として、CV-3000シリーズ以降にはコントラスト変換フィルタが搭載されています。この前処理フィルタはカメラ設定におけるスパン/オフセット機能のみを前処理として独立させ、ウインドウごとに調節ができるようになっています。効果としては、生画像の特定の階調の濃淡差を強調することができます。
CV/XGシリーズには、様々な前処理フィルタが搭載されていますが、これらを一つの領域に対して複数組み合わせることで、外観検査によ り適した画像を作ることができます。下の例では、リアルタイム差分フィルタに、さらに、収縮、平均、コントラスト変換を組み合わせることで、ほぼ真っ白な背景に黒点だけを残す画像を作っています。
[この例での各フィルタの役割]
リアルタイム差分 | ワーク上の黒点だけを残すためのフィルタです。 |
---|---|
収縮 | 残った黒点を一回り大きくするためのフィルタです。 |
平均化 | 周囲のノイズを平滑化するためのフィルタです。 |
コントラスト変換 | 周囲と黒点のコントラストを大きくするためのフィルタです。 |
前処理フィルタ後編 まとめ
画像演算系、明るさ補正系の前処理フィルタに関しては以下のことを覚えてください。
次のテーマは実践編として、現場で使える外観検査設定方法を説明します。
ここまでのハード編、ソフト編の知識に加えて現場で使える知識、テクニックを説明します。