HALCONのマッチング機能は常に進化を続けており、従来の機能でもモデルの平行移動、回転、拡大縮小、透視歪に対応可能な高速・高精度にロバストなマッチング手法を提供しています。更に最新バージョンであるHALCON10では、より複雑な形状変化を引き起こすモデルの局所的な変形にも対応可能なMaxDeformation機能をサポートしました。
MaxDeformationを設定することにより、パターンマッチングに使用するモデルのエッジ上の各点に一定の許容範囲を持たせることが可能となり、様々な形状変化に柔軟に対応したマッチングを実現できます。
下図にてMaxDeformationの設定による形状ベースマッチング結果の差異を紹介します。下図左側では旧バージョンの結果(下図@AB)を、下図右側ではMaxDeformationの設定を行ったHALCON10の結果(下図CDE)を示しています。この例では「MVTec」という文字の形状をモデル登録し、各画像に対してマッチングで検出した結果を緑色の線で表示しています。
エッジ情報を用いる形状ベースマッチングではモデルと最もエッジが一致する位置を検出する為、下図@Aでは対象となる文字の片側のエッジに寄ってしまい、正確に対象の中心位置を検出することが出来ていません。また下図Bでは対象の文字の形状があまりにも歪んでいるために検出することが出来ていません。
一方、MaxDeformationの設定をすると、下図CDのように文字の片側のエッジに寄ってしまうことなく正確に対象の中心位置を検出することが出来ます。下図Eのように大きく形状が変化したようなケースでも、形状変化に対する許容量を大きく設定することで対象となる文字を検出することが可能になります。
MaxDeformationの設定は形状ベースマッチングの速度への影響も少なく、高速なマッチングが必要となる処理にも十分適用可能な実践的に有効な機能です。今まで対象の形状変化に対応するために'find_scaled_shape_model'や'find_aniso_shape_model'を使用していた方にもおすすめの機能です。
MaxDeformationの設定は形状ベースマッチングを実施するオペレーター'find_shape_model'のパラメーター'SubPixel'で行います。従来はマッチングの検出精度を決定するためのパラメーター'least_squares'や'least_squares_high'を設定するのに用いられていましたが、HALCON10よりMaxDeformationの設定も行えるようになりました。具体的な記述例を以下に記載します。(下図では実際に'find_shape_model'にパラメーターを設定した画面を示します。)
SubPixel : [ 'least_squares_high' , 'max_deformation 10' ]
MaxDeformationの設定は'max_deformation
XX'という形式で行います。XXは0〜32の整数値を設定でき、この値が形状変化の許容量のピクセル数となります。例えば、対象が登録したモデルの形状に対して最大2ピクセル変形する可能性がある場合、'max_deformation
2'と設定することで安定したマッチングを実現できます。また'max_deformation 0'を設定した場合は形状変化を許容しないマッチングとなり、MaxDeformationの設定を行わない場合と同じ挙動となります。
形状変化の許容量に大きな値を設定すると処理時間が長くなることに加え、誤認識の要因にもなりかねないため、できるだけ小さな値に設定いただくことをおすすめします。また許容量を大きくするとより多くのエッジが一致するため、Score値は通常の場合に比べて大きくなります。
実際にMaxDeformationを用いた例を紹介します。食品パッケージ表面に印刷された文字をマッチングしています。パッケージの形状は容易に変化し、それに伴いマッチングの対象となる文字の形状も様々に変化します。
このように形状が変化する対象をMaxDeformationの設定により安定して検出することが可能になります。また処理速度も速く、高速に次々と現れる対象物を逃すことなく検出しています。
|
|
|
[機器構成・処理結果]
■HALCON10
■acA1300-30gm
(130万画素GigEモノクロカメラ)
■白色ドーム照明
■CPU: Pentium 4 3.00GHz
■RAM: 512MB
■処理時間:60ms(3個検出時平均)
|
|