(57)【要約】【課題】認識対象のパターンに類似する輪郭パターンを含む認識対象外の輪郭パターンが誤認識されることがないようにする。【解決手段】認識対象物のモデルの画像を表示し、この表示ウィンドウ２０内で、認識対象パターンに類似する輪郭パターンと認識対象外のパターンを含むように指定領域２１を設定する。この設定に応じて、領域２１内の濃淡画像がエラーモデル画像として登録されるとともに、エラーモデル画像中のエッジ画素のうち、先に登録された基準エッジモデルに対応していないエッジ画素が特定され、これらのエッジ画素の位置および濃度勾配方向を表すエラーエッジモデルが登録される。パターン認識の際には、基準エッジモデルおよびエラーエッジモデルの双方に対する不一致度が算出され、前者の不一致度を、後者の不一致度が小さくなるほど値が大きくなるように調整する。【選択図】図３
2009043184.tif 000002
【特許請求の範囲】
【請求項１】
特定の輪郭パターンを認識対象として、この認識対象パターンのモデルを撮像することにより生成された基準モデル画像につき、エッジ画素の位置および濃度勾配方向を表す基準エッジモデルを登録しておき、照合対象の濃淡画像の前記基準エッジモデルに対する類似度に基づき、前記照合対象の濃淡画像に前記認識対象パターンが含まれているか否かを判別する画像処理方法において、
前記基準画像に含まれないエッジを含む濃淡画像を少なくとも１つ用意し、用意された画像毎に、当該画像に含まれるが基準モデル画像には含まれていないエッジ画素の位置および濃度勾配方向を表すデータを、エラーエッジモデルとして登録し、
前記照合対象の濃淡画像について、基準エッジモデルに対する類似度およびエラーエッジモデルに対する類似度の双方に基づいて前記認識対象パターンの有無を判別する、
ことを特徴とする画像処理方法。
【請求項２】
請求項１に記載された画像処理方法において、
前記判別処理では、基準エッジモデルに対する類似度を、エラーエッジモデルに対する類似度が高くなるほど大きく変化し、かつ変化前より低くなるように調整し、調整後の類似度を用いて前記照合対象の画像に認識対象パターンが含まれているか否かを判別する、画像処理方法。
【請求項３】
請求項１に記載された画像処理方法において、
前記エラーエッジモデルを登録する処理では、前記用意された濃淡画像において基準エッジモデルに対する類似度が最も高い領域を抽出し、抽出された領域内で基準エッジモデルに対応していないエッジ画素を特定して、その位置および濃度勾配方向を表すデータを前記エラーエッジモデルとして登録する画像処理方法。
【請求項４】
認識対象のパターンのモデルを用いて生成された基準モデル画像について、エッジ画素の位置および濃度勾配方向を示す基準エッジモデルを作成する第１のモデル作成手段、
前記基準モデル画像に含まれないエッジを含む濃淡画像を少なくとも１つ受け付けて、受け付けた画像毎にその画像に含まれるが基準モデル画像には含まれていないエッジ画素の位置および濃度勾配方向を表すエラーエッジモデルを作成する第２のモデル作成手段、
前記基準エッジモデルおよびエラーエッジモデルを記憶するモデル記憶手段、
照合対象の濃淡画像の入力を受け付けて、この濃淡画像につき、前記基準エッジモデルに対する類似度およびエラーエッジモデルに対する類似度を個別に算出する類似度算出手段、
前記類似度算出手段により算出された各類似度に基づき、前記照合対象の濃淡画像に前記認識対象パターンが含まれているか否かを判別する判別手段、
の各手段を具備する画像処理装置。
【請求項５】
前記判別手段は、各エッジモデルよりサイズの大きい濃淡画像を照合対象として、この画像に前記基準エッジモデルに対応する大きさの照合領域を走査し、照合領域の設定位置を変更する毎に前記類似度算出手段に前記２種類の類似度を算出させ、基準エッジモデルに対する類似度を、エラーエッジモデルに対する類似度が高くなるほど大きく変化し、かつ変化前より低くなるように調整し、調整後の類似度を用いて前記照合領域内の画像に認識対象パターンが含まれているか否かを判別する、請求項４に記載された画像処理装置。
【請求項６】
請求項４に記載された画像処理装置において、
画像表示用の表示部と設定操作用の操作部とを、さらに備え、
前記第２のモデル作成手段には、所定の濃淡画像を前記表示部に表示し、前記操作部により表示画像に対する領域指定操作が行われるのに応じて、その指定された領域内の画像をエラーエッジモデルの作成用画像として受け付け、受け付けた画像から前記基準エッジモデルに対する類似度が最も高い領域を特定し、特定された領域内で前記基準エッジモデルに対応しないエッジ画素の位置および濃度勾配方向を表すデータを前記エラーエッジモデルとして作成する、画像処理装置。
【請求項７】
請求項６に記載された画像処理装置において、
前記第２のモデル作成手段には、前記基準エッジモデルに対する類似度が最も高い領域について、前記基準エッジモデルに対応するエッジ画素と基準エッジモデルに対応しないエッジ画素とをそれぞれ異なる表示態様で表示部に表示する手段が含まれる、画像処理装置。
【請求項８】
請求項７に記載された画像処理装置において、
前記第２のモデル作成手段には、前記基準エッジモデルに対応しないエッジ画素として前記表示部に表示されたエッジ画素の一部を指定する操作を受け付けて、指定されたエッジ画素の情報が削除または無効化されたエラーエッジモデルを作成する、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、濃淡画像を対象に、この画像に特定の輪郭パターンが含まれているか否かを判別するための画像処理に関する。特にこの発明は、画像中のエッジ画素の位置および濃度勾配方向の組み合わせをあらかじめ登録したモデルデータと照合することによって、上記の判別を行う画像処理方法および画像処理装置に関する。
【背景技術】
【０００２】
出願人は、先般、特定の輪郭パターンを認識対象として、この認識対象パターンのモデルを撮像することにより生成された基準モデル画像について、各エッジ画素の位置および濃度勾配方向を表すモデルデータを作成して登録し、このモデルデータに対する最大の類似度をもって、認識対象パターンの有無や位置を判別する手法を提案した（特許文献１参照。）。
【０００３】
特許文献１に具体的に記載されている方法では、基準モデル画像を構成する画素毎に、濃度勾配方向を表す角度データ（エッジコード）や濃度勾配方向の大きさ（エッジ強度）を算出し、これらの算出値をそれぞれ座標に対応づけて登録する。そして、処理対象画像に基準モデル画像に対応する大きさの照合領域（マスク）を走査しながら、走査位置毎に、マスク内のエッジコードと登録されたエッジコードとの不一致度を画素単位で算出し、各算出値を累計したものを、モデルデータ全体に対する不一致度とする。さらに、このモデルデータ全体に対する不一致度が最小の値になったときのマスクの位置を、認識対象パターンに最も類似する領域として特定する。
【０００４】
なお、特許文献１に記載された発明では、画素単位でのエッジコードの不一致度を求める際に、基準モデル画像側のエッジ強度が所定のしきい値より小さくなる画素に対応する演算結果がゼロになるようにしている（段落００５０，００５３参照。）。これにより、実質的に、認識対象パターンに対応する画素のみが照合対象となり、背景模様やノイズ等による認識対象外のエッジがあっても、その影響を受けずに、認識対象パターンの存在を判別することができる。
【０００５】
【特許文献１】特開２００２−２３０５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記したように、エッジコードを用いた照合処理では、処理対象画像中に認識対象のパターンに対応するエッジがあれば、検出対象外のエッジが存在しても、認識対象のパターンに対応するエッジを高い確度で検出することができる。しかし、認識対象パターンに類似する輪郭パターンが含まれるが、認識対象パターンとは異なる輪郭パターンも構成要素に含む画像を処理する場合には、認識対象パターンに類似する部分が誤検出されるおそれがある。
【０００７】
図１１は、この種の誤認が起こりやすい画像の例として、アルファベット文字の「Ｐ」および「Ｒ」の各画像を示す。図中、上段は、各文字の印刷物を撮像することにより得た濃淡画像であり、下段は、これらの濃淡画像にエッジ抽出処理を施すことによって得たエッジ画像である。また「Ｒ」のエッジ画像中に一点鎖線で示す箇所は、「Ｐ」の画像に含まれていないエッジ（以下、この例において「非対応エッジ」という。）である。
【０００８】
ここで、「Ｐ」の画像を基準モデル画像として、「Ｒ」の画像について上記したエッジコードの不一致度を求めると、上記の非対応エッジ以外のエッジは「Ｐ」のパターンに対応するため、不一致度は非常に低い値になる。この結果、「Ｒ」のパターンが「Ｐ」のパターンとして誤認識される可能性がある。
【０００９】
この発明は上記の問題点に着目してなされたもので、認識対象のパターンに類似する輪郭パターンを含むが認識対象外の輪郭パターンが誤認されることがないような画像処理を行って、認識精度を向上することを課題とする。
【課題を解決するための手段】
【００１０】
この発明に係る画像処理方法は、特定の輪郭パターンを認識対象として、この認識対象パターンのモデルを撮像することにより生成された基準モデル画像につき、エッジ画素の位置および濃度勾配方向を表す基準エッジモデルを登録しておき、照合対象の濃淡画像の基準エッジモデルに対する類似度に基づき、照合対象の濃淡画像に認識対象パターンが含まれているか否かを判別するものである。
【００１１】
この方法が特徴とするところは、基準画像に含まれないエッジを含む濃淡画像を少なくとも１つ用意し、用意された画像毎に、当該画像に含まれるが基準モデル画像には含まれていないエッジ画素の位置および濃度勾配方向を表すデータを、エラーエッジモデルとして登録する点、および照合対象の濃淡画像について、基準エッジモデルに対する類似度およびエラーエッジモデルに対する類似度の双方に基づいて、認識対象パターンの有無を判別する点にある。
【００１２】
上記の方法では、たとえば認識対象パターンに類似する輪郭パターンと認識対象外の輪郭パターンとにより構成される対象物の画像について、この画像に含まれるが基準モデル画像には含まれていないエッジ画素の位置および濃度勾配方向を求め、これらを表すデータをエラーエッジモデルとして登録する。この登録によれば、エラーエッジモデルの登録に使用されたのと同様の輪郭パターンを含む画像を２種類のモデルにより照合すると、基準エッジモデルに対する類似度も、エラーエッジモデルに対する類似度も、ともに高い値になる。
【００１３】
一方、正しい認識対象パターンが照合対象になった場合には、基準エッジモデルに対する類似度は高くなるが、エラーエッジモデルに対する類似度はさほど高くならない。
【００１４】
このように、正しい認識対象パターンが照合対象となる場合と、このパターンに類似する輪郭パターンを含む認識対象外の輪郭パターンが照合対象となる場合とでは、エラーエッジモデルに対する類似度は異なるものになる。よって、基準エッジモデルに対する類似度が高い値を示した場合には、エラーエッジモデルに対する類似度の値に基づき、照合対象の画像に認識対象パターンが含まれているか否かを精度良く判別することが可能になる。
【００１５】
なお、類似度は不一致度として算出してもよい。またエラーエッジモデルの作成のために用意される濃淡画像は、認識対象パターンと認識対象外のパターンとを含むものに限らず、認識対象外のパターンのみを含むものであってもよい。または、認識対象のパターンの一部と認識対象外のパターンとを含むものであってもよい。
【００１６】
上記方法の好ましい態様では、基準エッジモデルに対する類似度を、エラーエッジモデルに対する類似度が高くなるほど大きく変化し、かつ変化前より低くなるように調整し、調整後の類似度を用いて照合対象の画像に認識対象パターンが含まれているか否かを判別する。このようにすれば、エラーエッジモデルの作成に使用された画像に含まれているのと同様の輪郭パターンを含む画像が照合対象となった場合には、基準エッジモデルに対する類似度が高い値を示しても、エラーエッジモデルに対する類似度により、基準エッジモデルに対する類似度が大幅に低くなるように調整することができ、誤認識が生じるのを防止することができる。
【００１７】
他の好ましい態様に係る方法では、エラーエッジモデルを登録する処理において、用意された濃淡画像で基準エッジモデルに対する類似度が最も高い領域を抽出し、この領域内で基準エッジモデルに対応していないエッジ画素を特定して、その位置および濃度勾配方向を表すデータをエラーエッジモデルとして登録する。
【００１８】
上記の処理によれば、エラーエッジモデルの登録用に用意された画像の中で、基準エッジモデルに対する領域が最も高い領域の画像を用いて基準エッジモデルに対応していないエッジ画素を特定するので、基準モデル画像に含まれていないエッジ画素を高い確度で特定でき、エラーエッジモデルの精度を高めることができる。また、エラーエッジモデルと基準エッジモデルとのサイズを同一にできるので、両モデルによる照合対象領域を完全に一致させることができ、判別の精度を高めることができる。
【００１９】
上記の方法が適用された画像処理装置は、認識対象のパターンのモデルを用いて生成された基準モデル画像について、エッジ画素の位置および濃度勾配方向を示す基準エッジモデルを作成する第１のモデル作成手段；基準モデル画像に含まれないエッジを含む濃淡画像を少なくとも１つ受け付けて、受け付けた画像毎にその画像に含まれるが基準モデル画像には含まれていないエッジ画素の位置および濃度勾配方向を表すエラーエッジモデルを作成する第２のモデル作成手段；基準エッジモデルおよびエラーエッジモデルを記憶するモデル記憶手段；照合対象の濃淡画像の入力を受け付けて、この濃淡画像につき、基準エッジモデルに対する類似度およびエラーエッジモデルに対する類似度を個別に算出する類似度算出手段；類似度算出手段により算出された各類似度に基づき、照合対象の濃淡画像に認識対象パターンが含まれているか否かを判別する判別手段；の各手段を具備する。これらの手段により上記した画像処理方法を実行することができ、認識対象パターンに類似するが、認識対象外のパターンが誤認されるのを防止することが可能になる。
【００２０】
好ましい態様による画像処理装置では、判別手段は、各エッジモデルよりサイズの大きい濃淡画像を照合対象として、この画像に基準エッジモデルに対応する大きさの照合領域を走査し、照合領域の設定位置を変更する毎に類似度算出手段に２種類の類似度を算出させて、基準エッジモデルに対する類似度を、エラーエッジモデルに対する類似度が高くなるほど大きく変化し、かつ変化前より低くなるように調整し、調整後の類似度を用いて照合領域内の画像に認識対象パターンが含まれているか否かを判別する。
【００２１】
上記の態様によれば、各モデルよりサイズが大きい画像を照合対象とする場合に、認識対象パターンに最も適合する領域を精度良く判別することができる。また、照合領域内の画像がエラーエッジモデルの登録に使用された画像と同様になった場合には、類似度を低い値に調整することができ、この照合領域が認識対象パターンの位置として誤認されるのを防止することができる。
【００２２】
さらに好ましい態様による画像処理装置は、画像表示用の表示部と設定操作用の操作部とを、さらに備える。また第２のモデル作成手段は、所定の濃淡画像を表示部に表示し、操作部により表示画像に対する領域指定操作が行われたのに応じて、その指定された領域内の画像をエラーエッジモデルの作成用画像として受け付け、受け付けた画像から基準エッジモデルに対する類似度が最も高い領域を特定し、特定された領域内で基準エッジモデルに対応しないエッジ画素の位置および濃度勾配方向を表すデータをエラーエッジモデルとして作成する。
【００２３】
上記の態様によれば、ユーザが誤認を防ぎたいパターンを含む画像を選択し、表示部に表示された画像中の目的物を含む領域を指定することにより、その領域内の画像がエラーエッジモデルの作成用画像として受け付けられる。さらにこの画像で基準エッジモデルに対する類似度が最も高い領域が自動抽出され、その領域内で基準エッジモデルに対応しないエッジ画素に基づきエラーエッジモデルが作成される。
このように、ユーザが登録対象の画像を選択して誤認を防ぎたい輪郭パターンを含む領域を指定するだけで、適切なエラーエッジモデルを自動登録することができるから、エラーエッジモデルを設定するための操作が非常に簡単になり、利便性が高められる。
【００２４】
さらに好ましい態様では、第２のモデル作成手段には、基準エッジモデルに対する類似度が最も高い領域について、基準エッジモデルに対応するエッジ画素と基準エッジモデルに対応しないエッジ画素とをそれぞれ異なる表示態様で表示部に表示する手段が含まれる。この態様によれば、ユーザは、指定した領域内のパターンのどの部分が基準エッジモデルに対応するかや、どの部分がエラーエッジモデルに採用されるのかを、容易に確認することができる。
【００２５】
さらに好ましい態様では、第２のモデル作成手段は、基準エッジモデルに対応しないエッジ画素として表示部に表示されたエッジ画素の一部を指定する操作を受け付けて、指定されたエッジ画素の情報が削除または無効化されたエラーエッジモデルを作成する。
【００２６】
たとえば、エラーエッジモデルの作成用の画像に、ノイズや背景模様のエッジなど、誤認対象のパターン以外のエッジが含まれていると、これらのエッジの情報もエラーエッジモデルに含まれてしまうが、このようなエラーエッジモデルでは、誤認対象のパターンを抽出する精度が低下してしまう。
上記の態様では、基準エッジモデルに対応しないエッジ画素として表示されたものの中から、エラーエッジモデルとして登録する必要のない部分を指定する操作により、エラーエッジモデルの精度を高められるから、誤認対象のパターンの抽出精度を確保することができる。
【発明の効果】
【００２７】
上記の画像処理方法および画像処理装置によれば、認識対象パターンに類似する輪郭形状を有する認識対象外の輪郭パターンが認識対象として誤認されるのを防止することができる。一方で、正しい認識対象パターンを含む画像であれば、ノイズ等による認識対象外のパターンが含まれていても、認識対象パターンの存在を認識することができる。よってパターン認識の精度を大幅に高めることができる。
【発明を実施するための最良の形態】
【００２８】
図１は、この発明が適用された画像処理装置の構成例を示す。
この画像処理装置１は、カメラ２により生成された濃淡画像を入力して処理することにより、特定の輪郭パターンがカメラ２の視野内に含まれているか否かを判別したり、当該輪郭パターンの位置を計測するものである。たとえば、工場の生産ラインでワークの位置や姿勢を認識したり、検査ラインで文字等の輪郭パターンの適否を判別する用途に使用される。
【００２９】
この実施例の画像処理装置１は、制御部１０、画像入力部１１、画像メモリ１２、操作部１３、表示部１４、出力部１５などを具備する。画像入力部１１には、カメラ２からの濃淡画像信号を取り込むためのインターフェース回路や、濃淡画像信号をディジタル変換するためのＡ／Ｄ変換回路などが含まれる。画像メモリ１２は、画像入力部１１によりディジタル変換された処理対象の濃淡画像データ（以下、「処理対象画像」という。）や、この処理対象画像に対するエッジ抽出処理により生成されたエッジ画像などが格納される。
【００３０】
制御部１０は、ＣＰＵ１０１を主体とするもので、記憶装置として、ＲＯＭ１０２、ＲＡＭ１０３、およびフラッシュディスク１０４（フラッシュメモリを用いたディスク装置）が含まれる。ＲＯＭ１０２にはＣＰＵ１０１の基本的な動作に関わるプログラムが格納され、フラッシュディスク１０４には、ＯＳ（オペレーションシステム）、画像処理用のプログラム、ＧＵＩ（グラフィカル・ユーザ・インターフェース）を構成するためのプログラムが格納される。さらに、フラッシュディスク１０４は、認識処理に使用する各種設定データ（モデル画像やエッジモデルを含む。）を登録するためのメモリとして、使用される。
【００３１】
ＣＰＵ１０１は、フラッシュディスク１０４内のプログラムや各種データに基づき、輪郭パターンを認識するための一連の画像処理（パターン認識処理）を実行し、認識対象のパターンに対する処理対象画像の類似度や、その類似するパターンの位置（マッチング位置）を算出する。これらの演算結果は、表示部１４に表示されるほか、出力部１５を介して図示しない外部装置に出力される。
【００３２】
上記構成の画像処理装置１では、あらかじめ認識対象のパターンについてモデル画像を登録するほか、認識対象のパターンとして誤認される可能性のあるパターン（以下、「誤認候補パターン」という。）についても、モデル画像を登録できるようにしている。これらのモデル画像は、登録対象の濃淡画像を表示部１４に表示し、ユーザの領域指定操作を受け付け、指定された領域内の画像を切り出すことにより設定される。以下では、認識対象のパターンのモデル画像を「基準モデル画像」と呼び、誤認候補パターンのモデル画像を「エラーモデル画像」と呼ぶ。
【００３３】
ＣＰＵ１０１は、各モデル画像につき、それぞれその画像の構成画素毎に、濃度勾配の方向を表す角度（エッジコード）および濃度勾配の大きさ（エッジ強度）を算出し、その処理結果を反映したモデルデータを作成する。作成されたモデルデータは、モデル画像とともにフラッシュディスク１０４内に登録される。
【００３４】
基準モデル画像から作成されるモデルデータ（以下、「基準エッジモデル」という。）は、基準モデル画像に現れる輪郭パターンを表すエッジ（以下、「基準エッジ」という。）に関する情報を表すものである。
【００３５】
一方、エラーモデル画像から作成されるモデルデータ（以下、「エラーエッジモデル」という。）は、基準モデル画像に現れていない輪郭パターンを表すエッジ（以下、「エラーエッジ」という。）に関する情報を表すように構成される。
【００３６】
図２は、基準モデル画像および基準エッジモデルの登録の際にユーザに提示される設定画面の例を示す。この画面は、画像表示用のウィンドウ２０の周囲に複数の設定ボタン２２〜２７を配置した構成のもので、上段の画面１が初期画面である。下段の画面２は登録されたモデルを確認したり、そのモデルを修正する作業に用いられるもので、画面１に表示されていた設定ボタン２２〜２７のうち、操作可能なもののみが表示される。
【００３７】
画面１のウィンドウ２０内には、認識対象物（この例ではプリント基板４０）のモデルの濃淡画像が表示される。ユーザは、この画像上に、基準モデル画像として登録すべき領域２１を設定し、マウス等によりこの領域２１の位置や大きさを調整する。図中の「ＯＫ」ボタン２２は、領域２１の設定を確定するためのものであり、「キャンセル」ボタン２３は、領域２１の設定を解除するためのものである。
【００３８】
領域２１の指定が確定され、さらに右上の「モデル登録」ボタン２４が操作されると、領域２１内の画像が切り出されて、基準モデル画像として登録される。またエッジコードやエッジ強度の算出処理が行われ、その算出結果に基づいて基準エッジモデルが作成され、登録される。このように、ユーザは、登録対象の領域を指定する操作を行うのみで、基準モデル画像および基準エッジモデルの登録を完了することができる。
【００３９】
画面２は、上記の登録後に、「モデル表示」ボタン２７を操作することにより呼び出される。この画面２中のウィンドウ２０では、ユーザが指定した領域２１に含まれるエッジ３０が基準エッジとして緑色（図中、極太実線で表現する。）で表示される。領域２１より外側のエッジは表示されないが、原画像の対応箇所と同じ位置にエッジ画像が表示されるので、ユーザは、原画像との照合を容易に行うことができる。また、基準エッジとして表示されたエッジの中にユーザが意図しないエッジが含まれていたり、認識対象のパターンの一部が欠けているなどの不備があった場合には、「キャンセル」ボタン２３の操作により登録を抹消したり、「マスク登録」ボタン２５の操作により、関係のないエッジの登録を無効にすることができる（この処理の詳細については後で図６を用いて説明する。）。
【００４０】
さらに、ここでは図示していないが、画面１の「エッジ抽出」ボタン２６が操作された場合には、画像全体に対するエッジ抽出処理が行われ、ウィンドウ２０内の表示もエッジ抽出結果を表す画面に切り替えられる。
【００４１】
図３は、エラーモデル画像およびエラーエッジモデルを登録する際の設定画面の例を示す。この設定画面も、基本的な構成は先の図２の例と同様であり、登録のための操作の方法も同様である。ただし、「モデル表示」ボタン２７の操作により画面２に切り替えられたときに表示されるエッジ画像では、基準エッジ３０と同形状のエッジ３１が緑色で表示される一方、基準モデル画像には現れていないエッジ３２がエラーエッジとして赤色で表示（図中、極太一点鎖線で表現する。）される。よってユーザは、この赤色表示が認識対象外とすべき輪郭パターンを反映しているか否かを確認することによって、適切なエラーエッジモデルが登録されたか否かを容易に確認することができる。
【００４２】
上記の図２および図３に示した認識対象のプリント基板４０は、端縁に沿って枠部４１が形成され、この枠部４１の色彩が内部４２より暗くなっている。また内部４２の角部の近傍には、枠部４１と同色の矩形マーク４３が形成されている。
この実施例では、基準モデル画像の登録時には、基板の端縁の角部を含むように領域２１を設定し、その結果、逆Ｌ字状の輪郭パターン３０が基準エッジとして抽出されている。一方、エラーモデル画像の登録時には、枠部４１と内部４２との境界部分の角部と矩形マーク４３とを含むように領域２１（この例では、基準モデル画像側の領域２１と同一サイズであるものとする。）が設定され、この結果、矩形マーク４３の輪郭パターンを表すエッジ３２がエラーエッジとして抽出されている。
【００４３】
図４および図５は、パッケージ４４に印字された文字を認識対象とする場合のモデルの登録例を示す。各図に示される設定画面は、図２，３の例と同様のものであるが、ウィンドウ２０内には、登録対象の文字パターンを含む画像が表示されている。この画像には、「Ｐ」「Ｒ」の各文字パターン４５，４６のほか、背景模様のパターン４７の一部が含まれている。
【００４４】
この実施例では、「Ｐ」のパターン４５を認識することを目的に、このパターン４５を含む画像を基準モデル画像として登録するとともに、「Ｐ」に誤認されやすい「Ｒ」のパターン４６を含む画像を、エラーモデル画像として登録するようにしている。
【００４５】
基準モデル画像の登録時は、図４（１）に示すように、「Ｐ」のパターン４５の全体が含まれるように領域２１を設定することにより、登録対象の領域を指定する。この領域指定により、図３の例と同様に、領域２１内の画像が基準モデル画像として登録される。さらに、この基準モデル画像に含まれるエッジ３３を基準エッジとして、基準エッジモデルが作成され、登録される。
【００４６】
エラーモデル画像の登録時にも、図５（１）に示すように、パターン４６の全体が含まれるように領域２１を設定するが、この実施例のパターン４６はパターン４５より若干大きいため、領域２１も、基準モデル画像の登録時のものより大きくなる。またこの領域２１には「Ｒ」のパターン４６のほかに、文字とは無関係の背景模様のパターン４７の一部が含まれている。
【００４７】
上記のように、エラーモデル画像の登録において基準モデル画像より大きなサイズの領域が指定された場合のモデル表示画面では、図５（２）に示すように、領域２１内に基準エッジに最も類似する領域（以下、「対応領域」という。）２９を示す枠が表示される。また基準エッジに対応するエッジ３４と対応しないエッジとの色分け表示は、この対応領域２９内でのみ行われ、対応領域２９より外側のエッジ３７は、白色（図中、極太点線により表現する。）で表示される。
【００４８】
上記の例では、対応領域２９内でエラーエッジとして赤色表示されたエッジ３５，３６のうち、３６は背景パターン３７のエッジであり、エラーエッジとすべき性質のものではない。このように誤認候補パターンとは無関係のエッジが赤色表示された場合には、ユーザは、「マスク登録」ボタン２５を用いて、この無関係のエッジに係る情報を無効化することができる。
【００４９】
図６は、「マスク登録」ボタン２５の操作による処理内容を明確にするために、図５の第２画面の領域２１内の画像を拡大して示したものである。この処理では、図６（Ａ）に示すように、赤色で表示されたエッジ３５，３６のうち、誤認候補パターンとは無関係のエッジ３６を含むようなマスク領域５０を設定し、「マスク登録」ボタン２５を操作する。この操作が行われると、図６（Ｂ）に示すように、対応領域２９とマスク領域５０とに共通に含まれるエッジ３６の色彩が赤色から白色に変化する。この表示色の変化は、マスク領域５０内のエッジ画素がエラーエッジと認識されないようにエラーエッジモデルのデータ構成を変更したことに連動するものである。このような処理により、誤認候補パターンを表すエッジのみをエラーエッジとして設定することができる。
【００５０】
上記の「マスク登録」ボタン２５の操作によるエッジモデルのデータ変更処理は、エラーエッジモデルに限らず、基準エッジモデルに対しても行うことができる。
【００５１】
この実施例では、処理対象画像について、上記の設定により登録された各エッジモデルに対する不一致度を求め、双方の不一致度に基づき、認識対象のパターンに対する処理対象画像の類似度を求めるようにしている。以下、エッジモデルのデータ構成や不一致度の算出方法について、順を追って説明する。
【００５２】
まず図７は、この実施例で求めるエッジコードの概念を示す。図中、Ｓは画像中のエッジを拡大して示したもので、点Ｅは、このエッジＳを構成する一エッジ画素であり、Ｆは、エッジ画素Ｅにおける濃度勾配方向を示すベクトルである。
【００５３】
上記のベクトルＦは、ｘ、ｙの各軸方向毎の濃度勾配の大きさを表すベクトルを合成することにより、得られるものである。
この実施例では、画素Ｅからｘ軸の正方向に向かうベクトルＢを基準の方向とし、ベクトルＦに直交するベクトルＣとし（ベクトルＦを時計回り方向に９０度回転させたものがベクトルＣとなる。）、ベクトルＣをベクトルＢから半時計回り方向に見たときの角度Ｅｃ（ｘ，ｙ）をエッジコードとする。ただし、エッジコードは上記に限らず、たとえばベクトルＦの方向をベクトルＢを基準に示した角度を、エッジコードとしてもよい。
【００５４】
この実施例では、基準モデル画像およびエラーモデル画像の各構成画素について、それぞれエッジコードを求めるとともに、各画素における濃度勾配の大きさ（エッジ強度）を求める。エッジ強度は、上記のベクトルＦの長さに相当するもので、ｘ，ｙの各方向の濃度勾配を用いて求めることができる。
【００５５】
各エッジモデルは、対応するモデル画像の構成画素の座標に、それぞれ当該画素のエッジコードおよびエッジ強度を対応づけたものとなる。エッジ強度が所定のしきい値以上となる画素の座標がエッジ画素の位置を表し、このエッジ画素の座標に対応づけられたエッジコードによって、エッジ画素の濃度勾配方向が表されることになる。
【００５６】
さらに、各エッジモデルには、画面２におけるエッジの表示色を決めるために、画素毎に設定されたフラグｖが含まれる。このフラグｖは、０，１，２のいずれかの値をとるので、表示色を緑色にする画素ではｖ＝０となり、表示色を赤色にする画素ではｖ＝１となり、表示色を白色にする画素ではｖ＝２となる。ただし、このｖの値に基づき表示されるのは、エッジ強度が所定のしきい値（以下「ｕ」とする。）を上回る画素のみになる。
【００５７】
この実施例では、基準エッジモデルのエッジコードと照合対象の画像との間で対応する画素の組毎に、下記の（ａ）式によりエッジコードの不一致度を求め、各組の不一致度を累計したものを、基準エッジモデルに対する不一致度とする。なお、不一致度は、値が小さくなるほど類似の度合いが高いことを示すもので、類似度の一態様に相当する。
ｈ（ｘ，ｙ）＝｜ｓｉｎ｛Ｉｃ（ｉ＋ｘ，ｊ＋ｙ）−Ｍｃ（ｘ，ｙ）｝｜
・・・（ａ）
【００５８】
上記（ａ）式において、（ｘ，ｙ）は基準エッジモデル中の任意の画素の座標であり、Ｍｃ（ｘ，ｙ）は、この座標における基準エッジモデル側のエッジコードを、ｈ（ｘ，ｙ）はこのエッジコードに対する不一致度を、それぞれ示す。（ｉ，ｊ）は、照合対象の画像において基準エッジモデルの原点（左上頂点）に対応づけされた点の座標であり、Ｉｃ（ｉ＋ｘ，ｊ＋ｙ）は、座標（ｘ，ｙ）に対応する画素におけるエッジコードである。
【００５９】
（ａ）式によれば、ｈ（ｘ，ｙ）は、エッジコードＩＣ（ｉ＋ｘ，ｊ＋ｙ）とＭｃ（ｘ，ｙ）との差が９０度または２７０度になったときに最大値１となり、エッジコードの差が０度または１８０度のときに最小値０となる。また上記のエッジコードの差が０度または１８０度に近づくにつれて、ｈ（ｘ，ｙ）の値も０に近づく。
【００６０】
この実施例では、基準エッジモデルに対応づけられた領域（以下、「照合領域」という。）において、基準エッジモデル側の対応画素のエッジ強度がしきい値ｕを上回り、フラグｖが０に設定されている画素を対象に、上記の（ａ）式を実行し、各算出値の総和ｕｒ（ｉ，ｊ）を求める。よって、この不一致度の総和ｕｒ（ｉ，ｊ）は、基準エッジとこれに対応する部分との間でのエッジコード分布の不一致度を表すことになる。
【００６１】
さらに（ａ）式によれば、照合対象の画像における明暗の関係が基準モデル画像と一致する場合のほか、基準モデル画像とは明暗の関係が逆になっている場合でも、不一致度ｈ（ｘ，ｙ）が最小値の０になる。したがって、基準エッジが示すのと同様の形状の輪郭パターンが現れている画像であれば、基準モデル画像とは明暗の関係が逆になっていても、不一致度ｕｒ（ｉ，ｊ）の値をもって、基準エッジに対応するエッジを検出することができる。
【００６２】
エラーエッジモデルについても、上記と同様に、（ａ）式により画素単位での不一致度を求め、各不一致度を累計することにより、不一致度ｕｒＥ（ｉ，ｊ）を求める。この場合の（ａ）式は、エラーエッジモデルのうち、エッジ強度がしきい値ｕを上回り、フラグｖが１に設定されている画素を対象に実行されるので、ｕｒＥ（ｉ，ｊ）は、エラーエッジとこれに対応する部分とのエッジコード分布の不一致度を示すものになる。
【００６３】
なお、図５の例で説明をしたように、エラーエッジモデルは、エラーモデル画像のうち、基準エッジモデルへの対応領域２９に最も類似する領域の画像を用いて作成されるが、この最も類似する領域も上記の一致度ｕｒ（ｉ，ｊ）を算出する処理により特定される。この特定に基づいて作成されたエラーエッジモデルは、基準エッジモデルと同一サイズになるから、各エッジモデルにより同一の領域を照合することが可能になる。
【００６４】
そこでこの実施例では、処理対象画像に各エッジモデルのサイズに相当する照合領域を走査しながら、毎時の走査位置（ｉ，ｊ）において、照合領域内の画像の基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）、およびエラーエッジモデルに対する不一致度ｕｒＥ（ｉ，ｊ）を算出する。さらに、エラーエッジモデルに対する不一致度ｕｒＥ（ｉ，ｊ）によって、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）を調整し、調整後の不一致度ｕｒ＊（ｉ，ｊ）を用いて認識対象のパターンの有無や位置を判別する。
【００６５】
不一致度ｕｒ（ｉ，ｊ）の調整は、下記の（ｂ）式により行われる。
ｕｒ＊（ｉ，ｊ）＝ｕｒ（ｉ，ｊ）＋（ＶＬ−ｕｒＥ（ｉ，ｊ））・・・（ｂ）
【００６６】
（ｂ）式において、（ＶＬ−ｕｒＥ（ｉ，ｊ））は、不一致度ｕｒ（ｉ，ｊ）に対する調整値である。このうちＶＬは固定の値であって、たとえば、エラーエッジモデル中の５０％の画素に対する不一致度ｈ（ｘ，ｙ）がそれぞれ最大値１となったとときの不一致度ｕｒＥ（ｉ，ｊ）に基づき設定される。照合領域内の画像のエラーエッジモデルに対する類似度が高まるほど、ｕｒＥ（ｉ，ｊ）の値は小さくなるが、上記の（ＶＬ−ｕｒＥ（ｉ，ｊ））の値は大きくなる方向に変化する。
【００６７】
特に、誤認候補パターンが照合対象となった場合には、各類似度ｕｒ（ｉ，ｊ），ｕｒＥ（ｉ，ｊ）はともに最小値になる。このとき、（ＶＬ−ｕｒＥ（ｉ，ｊ））は最大値になるため、調整後の不一致度ｕｒ＊（ｉ．ｊ）には大きな値が設定される。よって、誤認候補パターンが認識対象のパターンであると判別されるのを防止することができる。
【００６８】
一方、認識対象のパターンが照合対象となった場合には、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）が最小値になる一方で、エラーエッジモデルに対する類似度ｕｒＥ（ｉ，ｊ）は大きな値になる。よって、ｕｒ（ｉ，ｊ）に加算される値を小さくすることができる。また認識対象のパターンが照合対象である場合には、調整前の不一致度ｕｒ（ｉ，ｊ）は０に近似する値になるから、（ＶＬ−ｕｒＥ（ｉ，ｊ））としてある程度の値が加算されたとしても、認識対象外のパターンを含まない画像を照合する場合よりも不一致度ｕｒ＊（ｉ，ｊ）の値を小さくすることができる。したがって、認識対象のパターンが照合対象となったときの不一致度ｕｒ＊（ｉ，ｊ）を最小値にすることができ、精度の高いパターン認識処理を行うことができる。
【００６９】
図８は、基準モデル画像および基準エッジモデルを登録する処理の流れを、図９は、エラーモデル画像およびエラーエッジモデルを登録する処理の流れを、それぞれ示す。
なお、各図および以下の説明において、ＳＴは「ステップ」の略である。
【００７０】
まず、図８の処理では、ＳＴ１１，１２において、前出の設定用画面のウィンドウ２０に表示された画像に対する領域指定操作を受け付けて、その指定された領域２１内の画像を切り出し、基準モデル画像として登録する。つぎにＳＴ１３では、基準モデル画像の各構成画素につき、エッジコードおよびエッジ強度を算出する。さらにＳＴ１４では、各構成画素にフラグｖの初期値として、それぞれ「０」を設定する。
【００７１】
ＳＴ１５では、領域２１内の各画素のエッジコード、エッジ強度、フラグｖを、それぞれ当該画素の座標に対応づけて登録する。これら３種類のデータの集合体が、基準エッジモデルとして機能することになる。
【００７２】
さらに、「マスク登録」ボタン２５が操作された場合（ＳＴ１６が「ＹＥＳ」の場合）には、ＳＴ１７において、指定領域２１内にマスク領域が設定されたことを条件に、この設定されたマスク領域５０内に含まれる画素のフラグを「２」に変更する処理を実行する。
また、図８には記載していないが、「モデル表示」ボタン２７が操作された場合には、画面１を画面２に切り換えるとともに、登録された基準エッジモデルに基づき、エッジ強度がしきい値ｕを上回る画素をフラグｖの値に応じた色彩で表示する。また、この表示の後に「マスク登録」ボタン２５が操作された場合には、ＳＴ１６，１７の処理の後に、フラグｖの値が変更されたエッジ画素の色彩を緑色から白色に切り替える処理を実行する。
【００７３】
つぎに、図９の処理では、ＳＴ２１において、領域指定操作を受け付けた後、つぎのＳＴ２２において、指定された領域２１内の画像をエラーモデル画像として登録する。さらにＳＴ２３では、エラーモデル画像の各画素につき、それぞれエッジコードおよびエッジ強度を算出する。
【００７４】
つぎにＳＴ２４では、エラーモデル画像に基準エッジモデルに対応する照合領域を走査し、走査位置毎に、前出の（ａ）（ｂ）式に基づき、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）を算出する。そして、各走査位置での算出結果に基づき、不一致度ｕｒ（ｉ，ｊ）が最小になる領域、言い換えれば基準エッジモデルに最も類似する領域を抽出し、これを対応領域２９とする。さらにＳＴ２５では、この対応領域２９内の各画素に、フラグｖの初期値としてそれぞれ「０」を設定する。
【００７５】
ＳＴ２６では、対応領域２９においてエッジ強度がしきい値ｕ以上になる画素のうち、基準エッジモデル側の対応画素のエッジ強度がしきい値ｕ以下の画素を特定し、これらの画素のフラグｖを「１」に変更する。この処理は、対応領域２９内で基準エッジに対応していないエッジをエラーエッジとして設定する処理に該当する。
【００７６】
つぎのＳＴ２７では、対応領域２９内の各画素のエッジコード、エッジ強度、フラグｖを、それぞれ当該画素の座標に対応づけて登録する。この一群のデータにより、基準モデル画像に対応していないエッジ画素の位置および濃度勾配方向を表すエラーエッジモデルが登録されることになる。
【００７７】
さらにこの処理でも、「マスク登録」ボタン２５の操作があれば、対応領域２９内でマスク領域５０に含まれる画素のフラグｖを、「２」に変更する（ＳＴ２８，２９）。また、図示していないが、「モデル表示」操作があれば、画面２を立ち上げて、ウィンドウ２０内に、しきい値ｕを上回るエッジ強度を有する画素をフラグｖの値に応じた色彩で表示する処理を実行する。
【００７８】
図１０は、各モデル登録処理が終了した後に実行されるパターン認識処理の流れを示す。この処理の最初のステップであるＳＴ１０１では、最小の不一致度ｕｒ０として、０より大きい所定の初期値（たとえば５０％）を設定する。ＳＴ１０２では、処理対象画像を入力し、ＳＴ１０３では、その画像中の各画素につきエッジコードを算出する。
【００７９】
この後は、処理対象画像のあらかじめ設定されたサーチ範囲を対象に、照合領域を走査する。具体的にはＳＴ１０４，１０５において、照合領域の設定位置（ｉ，ｊ）をサーチ範囲の初期位置（ｘ１，ｙ１）に合わせた後、この（ｉ，ｊ）が、サーチ範囲の終点（ｘ２，ｙ２）になるまで１つずつ更新しながら、不一致度を算出する。ここでは、ＳＴ１０６で、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）を、ＳＴ１０７で、エラーエッジモデルに対する不一致度ｕｒＥ（ｉ，ｊ）を、それぞれ算出した後、ＳＴ１０８において、（ｂ）式に基づき、調整後の不一致度ｕｒ＊（ｉ，ｊ）を算出する。
【００８０】
この不一致度ｕｒ＊（ｉ，ｊ）が最小値ｕｒ０より小さくなった場合（ＳＴ１０９が「ＹＥＳ」の場合）には、ＳＴ１１０に進み、ｕｒ＊（ｉ，ｊ）の値により最小値ｕｒ０を更新する。また、このｕｒ＊（ｉ，ｊ）を得たときのｉ，ｊをそれぞれｓｘ，ｓｙにセットする。
【００８１】
上記の処理を繰り返すことにより、最終的に、ｕｒ０には、調整後の不一致度ｕｒ＊（ｉ，ｊ）の最も小さな値が格納される。また、ｓｘ，ｓｙは、このｕｒ＊（ｉ，ｊ）の最小値を得たときの位置を表すものとなる。
【００８２】
ＳＴ１０６，１０７では、それぞれ（ａ）式による画素単位での不一致度を算出しつつ、各算出値を累計することにより、ｕｒ（ｉ，ｊ）またはｕｒＥ（ｉ，ｊ）の値を更新する。ただし、ＳＴ１０６において、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）の途中累計値が所定のしきい値を上回った場合には、以下のＳＴ１０７，１０８を含めた演算を打ち切り、照合領域を次の操作位置に移動させる。このような処理により、基準エッジに全く対応していない領域が照合対象となった場合の演算時間を短縮して、処理を高速にすることができる。
【００８３】
ＳＴ１１５では、最小値ｕｒ０の値を、基準モデル画像に対する類似度Ｒに換算する。この後、ＳＴ１１６において、類似度Ｒを、ｓｘ，ｓｙの最終値とともに出力し、しかる後に処理を終了する。なお、ｓｘ，ｓｙはマッチング位置、すなわち認識対象のパターンの位置として出力される。
【００８４】
上記のパターン認識処理によれば、認識対象のパターンと同様の輪郭パターンのほぼ全体を含むパターンであっても、認識対象とは異なるパターンを誤認することがなくなり、認識精度を大幅に高めることができる。
【００８５】
さらに、エラーエッジモデルの登録は１つに限らず、複数のモデルを設定し、各エラーエッジモデル毎に算出した不一致度によって、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）を調整してもよい。この場合の調整処理も、（ｂ）式と同様の演算で行うことができる。
【００８６】
たとえばエラーエッジモデルを２つ登録した場合、これらのモデルに対する不一致度をそれぞれｕｒＥ１（ｉ，ｊ），ｕｒＥ２（ｉ，ｊ）とすれば、下記の（ｃ）式によりｕｒ（ｉ，ｊ）を調整することができる。
ｕｒ＊（ｉ，ｊ）
＝ｕｒ（ｉ，ｊ）＋｛ＶＬ−（ｕｒＥ１（ｉ，ｊ）＋ｕｒＥ１（ｉ，ｊ））｝
・・・（ｃ）
【００８７】
ところで、上記の（ｂ）（ｃ）式では、エラーエッジモデルに対する類似度が高くなるほど値が大きくなる調整値を設定し、この調整値を基準エッジモデルに対する不一致度に加算することにより、最終の不一致度ｕｒ＊（ｉ，ｊ）を求めたが、認識対象のパターンを判別するための方法は、このような演算に限定されるものではない。
【００８８】
たとえば、照合領域の走査を行う毎に、基準エッジモデルに対する不一致度ｕｒ（ｉ，ｊ）を算出し、このｕｒ（ｉ，ｊ）が所定のしきい値Ｔより小さくなったときのみ、エラーエッジモデルに対する不一致度ｕｒＥ（ｉ，ｊ）を算出する。ここで、この不一致度ｕｒＥ（ｉ，ｊ）もしきい値Ｔを下回った場合には、不一致度ｕｒ（ｉ，ｊ）の値を高い値（たとえば９０％）に変更する。そして、サーチ範囲の走査が終了した時点でのｕｒ（ｉ，ｊ）の最小値をもって、認識対象のパターンに対する類似度を算出する。
上記の処理によれば、エラーエッジモデルに対する類似度が高い領域でのｕｒ（ｉ，ｊ）の値が最小になることがないから、誤認候補パターンが認識対象のパターンとして誤認されるのを防止することができる。
【図面の簡単な説明】
【００８９】
【図１】画像処理装置の構成例を示すブロック図である。
【図２】基準モデル画像および基準エッジモデルの登録時の画面表示を示す説明図である。
【図３】エラーモデル画像およびエラーエッジモデルの登録時の画面表示を示す説明図である。
【図４】基準モデル画像および基準エッジモデルの登録時の画面表示を示す説明図である。
【図５】エラーモデル画像およびエラーエッジモデルの登録時の画面表示を示す説明図である。
【図６】図５の第２画面中の画像表示を拡大して、「マスク登録」操作に対する表示の変更処理の例を示す説明図である。
【図７】エッジコードの概念を示す説明図である。
【図８】基準モデル画像および基準エッジモデルの登録処理の流れを示すフローチャートである。
【図９】エラーモデル画像およびエラーエッジモデルの登録処理の流れを示すフローチャートである。
【図１０】パターン認識処理の流れを示すフローチャートである。
【図１１】パターンの誤認が生じる例を示す説明図である。
【符号の説明】
【００９０】
１    画像処理装置
１０  制御部
１２  画像メモリ
１３  操作部
１４  表示部
１０１  ＣＰＵ
１０４  フラッシュディスク
２０  （画像表示用）ウィンドウ
２１  指定領域
３０，３３  基準エッジ
３２，３６  エラーエッジ
【図１】
2009043184.tif 000003
【図２】
2009043184.tif 000004
【図３】
2009043184.tif 000005
【図４】
2009043184.tif 000006
【図５】
2009043184.tif 000007
【図６】
2009043184.tif 000008
【図７】
2009043184.tif 000009
【図８】
2009043184.tif 000010
【図９】
2009043184.tif 000011
【図１０】
2009043184.tif 000012
【図１１】
2009043184.tif 000013