(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、実施例を図面を用いて説明する。
図5は検査対象8であり、文字21aが赤色、背景21bが緑色となっている。これをモノクロカメラで撮像すると、明度と画素数の関係(以後ヒストグラムと呼ぶ)は、
図6のようになる。文字21aと背景21bは明度の差が少なく、ヒストグラム上で二値化閾値21cで分離することができない。
【0012】
図7はカラーカメラで検査対象8を撮像した結果の分布図であり、RGBの三次元空間では文字21aと背景21bが分離している。
【0013】
図8はRGB、それぞれの軸に射影したヒストグラムである。これは、モノクロカメラに各々赤、緑、青の色フィルターを装着した場合に得られるヒストグラムに相当する。この場合単純な各色単独の情報だけでは、文字21aと背景21bが分離できないことが分かる。従ってモノクロカメラと色フィルターの組み合わせでは、文字21aと背景21bを分離することができない。
【0014】
図1は文字21aと背景21bの重心を結ぶ軸を合成明度として設定したものである。この合成明度軸に射影すると
図2のヒストグラムが得られる。この場合文字21aと背景21bは二値化閾値21cで分離することができる。
【0015】
このような多次元での最適な合成軸(合成明度軸)は、多変量解析により統計的に求められることが知られている。本実施例では主成分分析を応用して合成明度軸を求めている。
【0016】
主成分分析では文字21aと背景21bを含む部分の分散共分散行列を求め、その最大固有値を算出する。最大固有値に対する固有ベクトルを求めると、その固有ベクトルが合成明度軸方向となる。最大固有値に対応した固有ベクトルで合成明度を定義すると、合成明度の分散は最大になり、最良のコントラストを得ることができる。
【0017】
一般的な主成分分析では、ここまでで計算が終了するが、合成明度をある一定の範囲内にするために、次の[数1]を用いる。
【0019】
ここに、I(i,j)は座標(i,j)の合成明度、R(i,j)、G(i,j)、B(i,j)は各々画素座標(i,j)のRGB成分、fr、fg、fbは固有ベクトルの一定係数倍、fnは原点を調整するための定数項である。fr、fg、fb、fnをフィルター係数として、撮像したカラー画像を変換することにより、常に最良のコントラストが得られる。
【0020】
図9は本実施例の全体構成図である。1は印字検査装置であり、印字文字の検査を行う。2はカラーカメラであり、画像の撮像を行う。このカラーカメラは、赤(R)、緑(G)、青(B)それぞれに対応した波長610nm、540nm、455nmにピークを持つフィルタを搭載しており、3波長の光を分離して撮像できる。3はストロボ照明装置であり、印字検査装置からの発光命令に従って、カラーカメラの撮像タイミングに合わせて発光する。4はタッチパネル付モニタであり、撮像した画像内容と操作メニューを表示し、タッチパネルにより操作者の指示を入力できる。5は光電センサであり、検査対象が来た時、信号を印字検査装置に送る。6はライン制御装置であり、コンベア9と排出機7の制御を行っている。7は排出機であり、検査対象が印字不良の場合、コンベアから排除する。8a、8b、8cはそれぞれ検査対象である。9はコンベアであり、検査対象を左から右へ一定速度で搬送する。
【0021】
コンベア9上を搬送された検査対象8は、光電センサ5に検出されると、一定時間後にストロボ3の発光と同期してカラーカメラ2により撮像され、印字検査装置1で印字内容を検査される。正常時はそのままコンベア上を流れていき、印字不良時は排出機7によってコンベア上から排除される。
【0022】
次に印字検査装置1の内部を中心に説明する。
図10はハードウエア構成図である。10はバスであり、各機器を接続している。11はCPUであり、この装置での全ての演算を行っている。12はROMであり、電源投入時の初期化プログラムが格納されている。13はRAMであり、この装置で実行するプログラムと演算の途中結果、カラーカメラから取り込んだ画像データ等が格納されている。14はシリアルI/Oであり、CPU11はここを介してタッチパネル付モニタ4のタッチパネルとの情報のやりとりを行う。15はカメラインターフェイスである。CPU11からの撮像命令が発行されると、カメラインターフェイス15はカラーカメラ2の撮像制御を行い、取り込んだ画像データをRAM13にバス10を介して転送する。16は照明用ストロボとのインターフェイスであり、CPU11からの発行命令により、カラーカメラ2の撮像タイミングと同期してストロボ3の点灯、消灯を行う。17はDISKインターフェイスであり、ハードディスク18とのデータの入出力を行う。ハードディスク18にはこの装置で実行するプログラムと印字文字登録データ、各種制御条件等が格納されている。この装置で実行するプログラムは電源投入時にROM12に格納されているプログラムによってRAM13に転送され、CPU11によって実行される。19はパラレルI/Oであり、光電センサからの信号入力と、ライン制御装置とのデータのやりとりを行う。
【0023】
図11はCPU11で実行されるプログラムの全体処理フローである。電源が投入されると、101で初期化が行われる。初期化ではハードディスク18に格納されているプログラムとすべての印字文字登録データ、制御条件設定ファイル等をRAM14に転送する。また、各I/Oとインターフェイスの初期化も行い、完了するとタッチパネル付モニタ4に初期メニューを表示する。
【0024】
次に102でタッチパネルからの入力をチェックする。終了メニューが選択されると、処理を終了する。調整メニューが選択されると、103の処理に進む。検査メニューが選択されると106の処理に進む。106の処理内容については、後で詳細に述べる。
【0025】
103では品種番号を入力する。この品種番号によって、フィルター値、二値化閾値、検査文字の設定データ等、検査対象によって異なる設定データが管理される。次に104に進む。104の処理内容については、後で詳細に述べる。その後、105に進む。105の処理内容についても、後で詳細に述べる。
【0026】
図12は104のフィルター調整の処理フローである。
まず201でカラーカメラ2で撮像を行う。撮像した画像情報はRAM13に格納される。
【0027】
次に202でタッチパネルを用いて、フィルターを計算するための範囲を指定する。
図13は範囲を指定した状態の表示画面である。背景部分以外の余計な印字や汚れ102を含まないように、範囲110を指定する。指定した範囲は左上の点Ps(is,js)と右下の点Pe(ie,je)の座標値として記憶される。
【0028】
203で実際のカラーフィルターの値を計算する。計算方法の詳細については、後で説明する。
【0029】
204では、203で求めたフィルター値を用いて、数1により合成明度画像を作成して、表示する。fr、fg、fb、fnは203で求めたフィルター値を用いる。
【0030】
次に205で操作者は表示された合成明度画像が適切かどうか判断する。文字部分と背景のコントラストが適切であれは、206に進む。コントラストが十分でなければ、202からやり直す。
【0031】
206では表示された合成明度画像に二値化閾値を設定し、二値画像を表示する。
【0032】
次に207で操作者は表示された二値画像で文字部分と背景が黒と白に分離されていることを確認する。分離されていれば、208でフィルター値と二値化閾値の結果を品種番号に対応させて記憶し、終了する。分離されていなければ、206をやり直す。
【0033】
図14は203の詳細を示したカラーフィルター計算の処理フローである。フィルター値はRGBの3次元で主成分分析を行い、その第一主成分を元にフィルター係数を決定する。
【0034】
まず301で指定範囲内110の分散共分散行列を演算する。計算では以下の式を用いる。まず、[数2]により各画素値の和、自乗和および面積を求める。
【0036】
次に、求めた値から、[数3]を用いて分散共分散行列の各要素を計算する。
【0038】
これらを要素とする、[数4]のAが求めた分散共分散行列である。
【0040】
次に[数5]により、この分散共分散行列の固有値と固有ベクトルを求める。
【0042】
これより、λを求める。ここにEは3×3の単位行列、detは行列式を求める関数である。3つの解が求まるので、絶対値が最大の物を最終的なλとする(第1主成分)。
【0043】
次にこのλに対する固有ベクトルを求める。
【0045】
この連立方程式を解いて、Fr、Fg、Fbを求める。これが第一主成分対する固有ベクトルである。次の[数7]で合成値を求めた場合、主成分分析の原理によって、指定範囲内の分散が最大になり、文字と背景が良好に分離可能となる。
【0047】
合成明度を求める場合、他の画像と統一的に扱うために、最小値と最大値を限定する必要がある。この実施例では、最小値を0、最大値を255としている。そのため定数項fnと倍率kを計算する。
【0048】
まず303で、指定範囲内の[数7]の最大値Tmaxと最小値Tminを求める。次に304で次の式により定数項fnと倍率kを求める。
【0050】
なお、文字と背景の黒と白の関係を入れ替えたい場合は、次の式で定数項fnと倍率kを求める。
【0052】
最後に304で最終的にフィルタ係数を決定する。
【0054】
ここで求めたfr、fg、fb、fnがフィルター値である。決定したフィルター値は品種番号に対応して、ハードディスク18に記憶する。
【0055】
このフィルター値を用いて数1により合成明度を算出すると、指定範囲内での分散が最大となるので最もコントラストの良い明暗画像が得られる。
【0056】
図15は、105の詳細を説明した検査文字設定処理フローである。
【0057】
まず、301でタッチパネルを使って検査文字を入力する。例えば、
図13の検査対象では、一行目に「2013.09.20」、二行目に「Lot N0235」を指定する。ただし、「2013.09.20」は製造日、「N0235」は製造番号なので、その属性も同時に指定する。
【0058】
次に302で基準となる検査対象を設置して、検査対象の撮像を行う。この時ストロボ3を同期して点灯させる。
【0059】
303で撮像したRGB画像を元に、数1により合成明度変換を行う。この実施例では、撮像した画像全体を変換して合成明度画像を作成している。数1を用いると合成明度値が0から255の範囲外になることがあるか、0未満は0、256以上は255に制限している。
【0060】
304では、合成明度画像を206で設定した二値化閾値を用いて二値化し、二値画像を作成する。305で文字の切り出し(セグメンテーション)を行う。306でそれを正規化し、307で基準のパターンとして登録する。登録した内容は、品種番号に対応してハードディスク18に記憶される。
【0061】
図16は、106の詳細を説明した検査処理フローである。
まず、401で入力を確認する。タッチパネルで終了がタッチされていれば、検査処理を終了する。光電センサ5からの入力があれば、402に進む。入力がなければ、この処理を繰り返す。
【0062】
402では、品種番号を取り込む。この実施例では、ライン制御装置6から検査する品種番号を受け取る。これ以降は、取り込んだ品種番号に応じた設定値で検査を行う。
【0063】
次に403で、指定された品種番号に対応したフィルター計算用係数に切り替えて、指定された品種に最適なフィルター計算方法になるようにする。
【0064】
404で光電センサ5の検出位置から撮像位置まで検査対象が移動するまで待った後、ストロボ3を点灯させて撮像する。
【0065】
405では、撮像したRGB画像を数1を用いて合成明度に変換し、合成明度画像を作成する。これによって
図2に示したように、文字部分と背景が分離したヒストグラムを持つ合成明度画像が得られる。
【0066】
406では合成明度画像を品種番号に対応した閾値で二値化する。407で文字の切り出しを行い、408で切り出された文字を正規化する。
【0067】
409で105で設定した標準文字と比較し、全文字が一致していれば不良なし、それ以外では不良有と判断する。
【0068】
410では、不良の有無を判断し、不良があれば、411でライン制御装置6に対して排出出力を行う。これにより、ライン制御装置6は排出機7を駆動して、不良品をコンベアから排除する。
【0069】
このようして、色のついた検査対象に対して、最適なコントラストで印字文字の検査を行うことができる。
【0070】
また、フィルター値は検査対象が切り替わった際も、ライン制御装置6からの品種番号の指定により、検査対象に最適に設定されるため、常に良好なコントラストが得られる。
【0071】
この実施例では、RGBのフィルターを搭載したカラーカメラを使用しているが、主成分分析を用いれば、任意次元の分布に対して主成分を求めることができるため、4波長(すなわち4色)以上の撮像が可能なカメラにも、簡単に拡張できる。またその波長は可視光の範囲に入っている必要はない。
【0072】
また、この実施例では、数1を用いてRGBの値から合成明度を計算しているが、あらかじめRGBと合成明度との関係テーブルを作成しておき、関係テーブルを用いて変換することも可能である。
【0073】
この実施例によれば、次のような効果もある。タッチパネルを用いてフィルター係数を計算する範囲を指定するので、文字と背景だけを含んだ領域を指定するのが、容易である。また、フィルター用の係数を計算した後、合成明度を表示して確認を行えるので、フィルター係数が誤っていないことを確認できる。また、フィルター係数は、計算結果が任意の範囲(この実施例では0から255)に入るように決定できるので、画像処理用のメモリサイズに応じて調整することが可能である。