FlexInspectorの検査手法(1)
改めてFlexInspectorの検査手法についてご紹介させていただきます。
基本的には「良品画像を登録し、良品と違うところを検出する」方法です。異物も寸法違いも傷もすべて「良品と違うところ」として検出され、結果的に「良品と同じもの」だけがOK判定されます。
ただここで問題となるのは「良品のバラツキ」です。
単純に1枚の良品画像と比べてまったく同じになることはまずあり得ないため、これを前提にする「差分」アルゴリズムでは、まずうまくいきません。これに対応するために、複数の画像から平均を取得してマスターとする方法や、複数の良品画像と比べる方法などが考えられます。しかし前者はバラツキの幅をどのように定義するかという問題があります。また後者は、「複数」と比べるため時間がかかるという問題があります。もっとも「バラツキ」が高々数枚の良品画像で吸収できるかという問題もあります。
FlexInspectorでは複数の良品画像を統計処理し、画素ごとの平均輝度と標準偏差σを取得し、そこから画素ごとの上限輝度、下限輝度を決定します。そして検査時にはその上下限内に入っているかを検査します。技術的には「マッチング」というより、画素ごとに最適化された二値化レベルを持つという点で「二値化の究極形」といえます。
「HALCONのVariationModelじゃないか!」と言われればその通りなのですが・・・6年もこの方法を突き詰めていくと、あのままでは答えにならないことも・・・