「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
近年、半導体や自動車、防犯、食品などといった様々な分野で、画像処理を利用したシステムの普及が進んでいます。ソフテックでもお客様のご依頼を受け、画像処理ツールHALCONを使用し、画像処理アプリケーションを作成しています。
HALCONは、過去のソフテックだよりでも紹介させていただきましたが、ドイツのMVTec社が開発した画像処理ツールです。ライブラリ関数の組み合わせにより効率的に画像処理システムを開発でき、汎用性にも優れ、世界で高い評価を得ています。ソフテックは、HALCONの輸入販売を行っている株式会社リンクスとパートナー契約を結んでおり、強力なサポートを受けながら開発を行っています。
今回のソフテックだよりでは、HALCONの機能と使い方をご紹介させていただきます。
検査対象の良/不良判定を行うための、「良品モデルとの比較検査」の手順の一例を、モデル画像生成、検査範囲絞り込み、比較検査実行の順に説明します。
前回HALCON実践記事では「パターンマッチング」機能について紹介していますので、そちらもご参照いただければと思います。
まずは、比較対象とするモデル画像を生成します。モデル画像生成は、良品画像を複数用意し、合成することによって行われます。
今回のサンプルプログラムでは図1のような良品画像を使用しました。ある金属部品の画像です。9枚それぞれ対象の映り方が少しずつ異なっていますが、パターンマッチングにより角度・位置補正を行い、合成します。
図1. モデル生成に使用する良品画像
これらの画像を合成しモデル画像を生成します。
合成の結果として、図2のような2つの画像が生成されます。左が理想画像、右がバリエーション画像と呼ばれるものです。
バリエーション画像は、良品の中でも明度の違いが出易い箇所ほど明るくなっている画像です。
明るい部分では検査対象と理想画像に多少の差があっても良品と判断し、暗い部分では小さな差でも不良と判断します。
図2. モデル画像(左:理想画像、右:バリエーション画像)
生成された理想画像とバリエーション画像です。
これらのモデル情報は、パターンマッチングと同様にHALCONが管理しているので、アプリケーション側からはモデル生成時に渡されたIDでアクセスします。
画像全体を検査してしまうと処理時間が長くなり、背景部分などの意図しない箇所で不良判定が行われてしまうケースも出てくるので、比較検査を行う範囲を絞り込みます。
図3の検査対象画像を、モデル画像に合わせて回転・移動させ、検査範囲を円形のプレート部分に絞り込んだものが図4の画像です。
図3. 検査対象画像
比較検査対象の画像です。
図4. 検査範囲絞り込み画像
回転・移動処理を行った上で、検査範囲を絞り込みました。
生成したモデル情報のIDと、検索対象の画像を入力としHALCON標準の比較関数を実行すると、理想画像から許容範囲以上差分がある箇所が出力されます。
あとはその差分箇所の大きさや数などから良品/不良品判定を行い、結果を画面に表示する処理などを追加していけば、比較検査プログラムが完成します。
今回の例ではシンプルにOK/NGの文字表記を行い、NG時は原因箇所を赤枠で囲うようにしました。(図5)
図5. 結果表示
良品/不良品判定結果を表示しています。
モデル画像との比較検査について紹介させていただきましたが、これはモデル生成の部分も含め実画像のみを入力とするので、サンプルプログラム作成の段階だとパラメータ調整が少なくて済みます。だた、実際の運用に向けては、判定の境界をユーザーの意図通りにするため、モデル生成に利用する画像や差分箇所の面積の許容範囲など、細かい調整が必要になってきます。
また、平均的な良品と少し差があるが良品と判定したい、という画像がある場合に、それをモデル生成時の画像に含めて学習させるという方法もあります。
十分な数と種類の良品画像が用意できれば、今回の例のような良品/不良品判定を行う処理には便利で有効な機能ですので、各種システムの開発に役立てていきたいと思います。
(N.N.)
関連ページへのリンク
関連するソフテックだより