いまさら聞けない?PatInspectのコツ

PatInspectは良品画像と検査画像を比較して不良品を検出するツールです。

PatInspectの3大特徴

  1. 単純な画像差分ではない
  2. 良品のばらつきを考慮した欠陥抽出ができる
  3. 検査画像の明暗が変化しても安定した欠陥抽出ができる

PatInspectの3大特徴を詳しく説明します

かしこい画像差分

単純な「検査画像」-「モデル画像」では、良品のばらつきで、偽の欠陥が大量に発生してしまい現場での実用は難しいです。偽の欠陥を含む欠陥画像では、Blobツールなどの機能を駆使して偽の欠陥を排除する必要があります。これはとても難しい処理です。

PatInspectでは、「検査画像(明るさ調整済み)」-「モデル画像(統計的)」-「しきい値画像」で欠陥を抽出します。
検査画像の明るさをモデル画像の明るさに合わせこむ調整と、良品のばらつきを吸収する「しきい値画像」の存在により、偽の欠陥を極力へらすことができます。
そのため、PatInspectの出力する欠陥部分のみの差分画像は、Blobツールを組み合わせるだけで簡単に欠陥を見つけられます。

モデルの統計的登録により良品のばらつきを吸収

一般的に良品にもある程度ばらつきがあります。このばらつきを考慮しないと、検査対象が良品でもばらつき部分を欠陥として検出して不良品と判断してしまいます。
PatInspectでは、検査画像からモデル画像を引いた結果から、さらに「しきい値画像」を差し引くことで良品のばらつきを吸収します。

しきい値は画像はモデル登録時に自動的に作成されます。モデルの登録は2種類の方法から選べます。

  1. 統計的登録
  2. 1枚だけ登録

統計的登録では、モデル画像を登録する際に、ばらつきを持った複数の良品画像を登録することで、平均的な画像を「モデル画像」に、ばらつき部分を「しきい値画像」として登録します。
これは5回統計登録したモデルの画像です。

これはその時のしきい値画像です。キャップの周辺部分が陰になったり明るくなったりで変動が大きいです。

上の画像ではほとんど真っ黒で見えにくいのでしきい値が画像を強調しました。キャップの周辺部分が明るくなって大きなしきい値を持っていることが解ります。

また、モデル画像を作る際に1枚しか画像が用意できない場合、良品が一つしか用意できない場合があります。
そのような場合は、モデル画像に含まれる輪郭をしきい値画像として利用します。輪郭が強い部分ほどしきい値画像でも大きな値になります。
良品のばらつきは多くの場合輪郭部分の変化として現れます。その特性を利用して、1枚だけのモデル画像でも適切なしきい値画像を作り出すことができます。
1枚のモデル画像から作ったしきい値画像です。上の統計登録で作ったしきい値画像と違って文字の輪郭部分が変動が予想される部分として登録されました。

検査画像の明るさをモデル画像に合わせこむかしこい正規化処理

モデル画像と検査画像を比べる際に明るさがそろっていなければ、画像の引き算の結果多くの偽の欠陥がでてしまいます。
そのためPatInspectでは、検査画像をモデル画像の明るさに合わせこむ「正規化」処理が用意してあります。
正規化処理は6種類の補正アルゴリズムが用意してあります。明るさの変動の仕方や予想される欠陥のサイズにあわせて適切な正規化アルゴリズムを選ぶことで安定した欠陥検出ができるようになります。基本的には賢い正規化ほど、処理時間が長くなるので時間との兼ね合いの側面もあります。

正規化手法の詳しい説明は長くなるので別のエントリーにしますね。

PatInspectの苦手なこと

こんなカシコイPatInspectですが、あらゆる欠陥が検出できる万能ツールではありません。

  • 高画素画像ではそこそこ処理時間がかかる
  • 領域内全体の面を均一に検査するので場所によっては甘くするような設定はできない
  • 輪郭上の微小な欠陥の検出と良品バラつきの許容はトレードオフの関係にある

輪郭上の微小欠陥はちょっとわかりにくいかもしれないので少し詳しく説明します。
しきい値画像のところに書きましたが、良品のばらつきは基本的に輪郭部分に現れます。
そのため、しきい値画像は輪郭部分は大きな値になり、輪郭上に微細な欠陥があってもしきい値画像を差し引く段階で消えてしまい、検出されにくくなります。
このように良品のばらつき具合と、輪郭上の微細な欠陥の検出能力はトレードオフの関係にあります。

ちょっと寄り道

輪郭上の微細な欠陥の検出には、CVLにしかないのですが、Boundary Inspection Tool(BIT)という輪郭の欠陥に的をしぼったツールがあります。
BITは良品のばらつきのような大まかな輪郭の変動は見逃すけれど、輪郭上の微細な変化は見逃さないユニークなツールです。
ただ、高画素の画像を使ってしまうと恐ろしく処理時間が長くなるので、用途は選びます。
詳しいことはまたいずれ。

PatInspect豆知識

CVLでは2種類のモードがあります。
Intensity(明るさの強度)モードと、Bundary(輪郭)モードです。
VisionProではIntensityモードのみ搭載利用できます。
CVLにしかないBoudaryモードはそれなりの理由があってVisionProには移植されていません。
Boundaryモードは、欠陥抽出後に差分のエッジ情報が得られます。エッジの情報のため単純にBlobツールなどで欠陥を検出することはできず、アプリケーションごとに専用の処理を作る必要があります。そんなわけで用途が限定されます。
その点Intensityモードは汎用性があり多くの欠陥検査で利用されています。
そんなわけで、VisionProには汎用性の高い、使いやすいIntensityモードが移植されたのです。

まとめ

輪郭上の微細な欠陥は苦手ですが、多くの概観検査で正しく欠陥を検査できています。
PatMaxの陰に隠れていまひとつメジャーではないイメージがありますが、とても有用なツールです。
ただ、欠陥検査というのは「位置決め=PatMax」のようにシンプルな答えがありません。
見つけなければならない欠陥の特性によって、さまざまな手法から最適な手法を選び出さなければなりません。
そんな難しい欠陥検査でも結構汎用的に使ってしまえるのがPatInspectのいいところです。