(57)【要約】【課題】一般化ハフ変換による物体認識処理の高速化および高精度化を実現する。【解決手段】処理対象画像３１上で抽出されたエッジ点Ｅ毎に、あらかじめ登録されたＮ個のモデルエッジ点の情報を用いて、認識対象物の基準点Ｏの座標（Ｘ，Ｙ）および回転角度Θを算出する。さらに、２次元の投票平面Ｓ，Ｃの座標（Ｘ，Ｙ）に、それぞれｓｉｎΘ，ｃｏｓΘを投票するとともに、座標毎に投票された値の累計値を算出する。投票処理が終了すると、各平面の累計値を座標毎に対応づけてこれらの自乗和（Ｓ（Ｘ，Ｙ））２＋（Ｃ（Ｘ，Ｙ））２を求め、これを投票平面Ｐに投票する。そして、この投票平面Ｐにおいて最大値が得られる座標（ＸＰ，ＹＰ）を抽出し、これを基準点Ｏの座標として認識する。また平面Ｓ，Ｃの前記座標（ＸＰ，ＹＰ）における累計値を用いて、回転角度を算出する。【選択図】図３
2007128374.tif 000002
【特許請求の範囲】
【請求項１】
所定の輪郭形状を有するモデルを含む基準画像を用いて、基準点の座標を設定するとともに、前記モデルの輪郭を構成する複数のモデルエッジ点に個別に着目し、画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて前記着目画素における前記所定の変数の変化の方向を求め、その変化の方向に対応する方向であるエッジ方向と、前記基準点の前記エッジ方向に対する方位と、前記基準点からの距離とを示す情報を登録し、
前記画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える着目画素をエッジ点とする場合の当該エッジ点を含む画像を処理対象として、その処理対象画像上の複数のエッジ点に対し、当該エッジ点の座標およびエッジ方向を求めるとともに、前記複数のモデルエッジ点がそれぞれ前記エッジ点に該当するとしたときに前記登録情報から規定される基準点の座標、およびエッジ点のエッジ方向とモデルエッジ点のエッジ方向との差を示す角度を算出する処理と、算出された各値に基づく投票処理とを実行し、前記投票処理の結果を用いて前記モデルに対応する輪郭パターンの位置および前記モデルを基準にした輪郭パターンの回転角度を認識する方法であって、
前記投票処理として、前記処理対象画像上の各エッジ点につき、それぞれモデルエッジ点毎に求めた前記基準点の座標に、その座標とともに算出された角度に対応するベクトルを投票するとともに、投票のあった座標毎に、投票されたベクトルの合成ベクトルを示す数値情報を算出し、
前記投票処理および合成ベクトルを示す数値情報の算出処理が終了したことに応じて、前記数値情報を用いて前記投票のあった座標の中から前記合成ベクトルの長さが所定値を超える座標、もしくは各合成ベクトルを長さが最大のものから順にみた場合の所定数のベクトルに対応する座標を抽出し、この抽出結果を用いて前記輪郭パターンの位置および回転角度を認識することを特徴とする物体認識方法。
【請求項２】
請求項１に記載された物体認識方法において、
前記投票処理では、投票される座標毎に、前記回転角度の正弦および余弦の累積値を求め、これら２種類の累積値の自乗和を前記合成ベクトルの長さとして算出する物体認識方法。
【請求項３】
請求項１に記載された物体認識方法において、
前記投票処理では、投票される座標毎に、前記回転角度に対応するベクトルを水平および垂直の２方向に分解した場合の各ベクトルの向きおよび長さを表す数値情報を求め、これら２種類の累積値の自乗和を前記合成ベクトルの長さとして算出する物体認識方法。
【請求項４】
請求項１〜３のいずれかに記載された物体認識方法において、
前記合成ベクトルを示す数値情報を用いて抽出された座標に基づき前記物体の仮の位置および仮の回転角度を求めた後に、各モデルエッジ点について、前記仮の位置および仮の回転角度に基づき処理対象画像上の対応点を求めるステップａと、前記対応点を含む局所領域内に含まれるエッジ点につき、前記モデルエッジ点の登録情報を用いて基準点の座標および前記エッジ方向の差を示す角度を算出するステップｂとを実行し、
各モデルエッジ点につき前記ステップａ，ｂにより求めた基準点の座標を平均化するとともに、前記回転角度を示すベクトルを合成し、平均化された基準点の座標および前記合成ベクトルの示す角度に基づき、前記物体の位置および回転角度を認識する物体認識方法。
【請求項５】
請求項１〜３のいずれかに記載された物体認識方法において、
前記合成ベクトルを示す数値情報を用いて抽出された座標に基づき前記輪郭パターンの位置および回転角度を認識した後に、前記モデルに対応する輪郭形状を有する１または複数種の濃淡画像モデルを用いて、前記輪郭パターンの位置および回転角度を反映した正規化相関演算を実行する物体認識方法。
【請求項６】
請求項１〜５のいずれかに記載された物体認識方法において、
前記処理対象画像上のエッジ点毎に前記基準点の座標の値を求める処理では、モデルエッジ点毎に、前記エッジ方向に対する基準点の前記登録された方位とこれに反転する方位とについて、前記基準点の座標の候補を１つずつ算出する物体認識方法。
【請求項７】
請求項１〜６のいずれかに記載された物体認識方法において、
前記各モデルエッジ点についての登録処理が終了したことを条件に、前記基準画像上の各エッジ点につき、それぞれ前記各モデルエッジ点の前記登録情報を用いて基準点の座標およびエッジの方向の回転角度の値を求めた後、前記投票処理および前記合成ベクトルを示す数値情報の算出処理を実行してゆき、
すべてのエッジ点にかかる投票が終了したときの前記数値情報が表す合成ベクトルの長さが所定のしきい値を下回るとき、前記基準点を異なる座標に設定して、各モデルエッジ点についての登録処理を再度実行する物体認識方法。
【請求項８】
請求項１〜７のいずれかに記載された物体認識方法において、
複数の座標が異なる点を基準点に設定し、処理対象画像について、前記基準点の座標を求める処理および投票処理を基準点毎に実行する物体認識方法。
【請求項９】
所定の輪郭形状を有するモデルを含む基準画像を用いて、基準点の座標を設定するとともに、前記モデルの輪郭を構成する複数のモデルエッジ点に個別に着目し、画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて前記着目画素における前記所定の変数の変化の方向を求め、その変化の方向に対応する方向であるエッジ方向と、前記基準点の前記エッジ方向に対する方位と、前記基準点からの距離とを示す情報を登録する機能；および前記画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える着目画素をエッジ点として抽出する場合の当該エッジ点を含む画像を処理対象として、その処理対象画像上の複数のエッジ点に対し、前記エッジ点の座標およびエッジ方向を求める機能を有するコンピュータに対し、前記処理対象画像から前記モデルに対応する輪郭パターンの位置および前記モデルを基準にした輪郭パターンの回転角度を認識する機能を、設定するためのプログラムであって、
前記処理対象画像上の複数のエッジ点につき、それぞれ前記各モデルエッジ点の登録情報を用いて、登録された各モデルエッジ点がそれぞれ前記エッジ点に該当するとしたときに規定される基準点の座標、およびエッジ点のエッジ方向とモデルエッジ点のエッジ方向との差を示す角度を算出する候補値算出手段；
前記候補値算出手段が算出した角度に対応するベクトルを基準点の座標毎に合成した場合の当該合成ベクトルを表す数値情報を記憶するための記憶手段；
前記候補値算出手段により基準点の座標および角度の算出が行われる都度、算出された基準点の座標に対応する前記記憶手段内の数値情報を、算出された角度を用いて更新する情報更新手段；
前記候補値算出手段および情報更新手段による処理が終了したことに応じて、前記記憶手段に格納された数値情報を用いて前記合成ベクトルの長さが所定値を超える座標、もしくは各合成ベクトルを長さが最大のものから順にみた場合の所定数のベクトルに対応する座標を抽出する抽出手段；
前記抽出手段による抽出結果を用いて前記輪郭パターンの位置および回転角度を認識する認識手段；
の各手段として前記コンピュータを機能させるための物体認識処理用のプログラム。
【請求項１０】
請求項９に記載されたプログラムが記憶された記憶媒体。
【請求項１１】
画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える着目画素をエッジ点とする場合の当該エッジ点を含む画像を入力するための画像入力手段；
所定の輪郭形状を有するモデルを含む基準画像が前記画像入力手段から入力されたとき、この基準画像を用いて基準点の座標を設定するとともに、前記モデルの輪郭を構成する複数のモデルエッジ点について、前記所定の変数の変化の方向に対応する方向であるエッジ方向と、前記基準点の前記エッジ方向に対する方位と、前記基準点からの距離とを示す情報を登録する登録手段；
前記画像入力手段から処理対象画像が入力されたとき、その処理対象画像上の複数のエッジ点につき、それぞれ前記各モデルエッジ点の登録情報を用いて、登録された各モデルエッジ点がそれぞれ前記エッジ点に該当するとしたときに規定される基準点の座標、およびエッジ点のエッジ方向とモデルエッジ点のエッジ方向との差を示す角度を算出する候補値算出手段；
前記候補値算出手段が算出した角度に対応するベクトルを基準点の座標毎に合成した場合の当該合成ベクトルを表す数値情報を記憶するための記憶手段；
前記候補値算出手段により基準点の座標および角度の算出が行われる都度、算出された基準点の座標に対応する前記記憶手段内の数値情報を、算出された角度を用いて更新する情報更新手段；
前記候補値算出手段および情報更新手段による処理が終了したことに応じて、前記記憶手段に格納された数値情報を用いて前記合成ベクトルの長さが所定値を超える座標、もしくは各合成ベクトルを長さが最大のものから順にみた場合の所定数のベクトルに対応する座標を抽出する抽出手段；
前記抽出手段による抽出結果を用いて前記モデルに対応する輪郭パターンの位置および前記モデルを基準にした輪郭パターンの回転角度を認識する認識手段；
の各手段を具備する物体認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、処理対象画像において、あらかじめ登録されたモデルに対応する輪郭形状を有する認識対象物の位置や姿勢を認識するための画像処理技術に関する。特にこの発明は、処理対象の画像に含まれる複数のエッジ点およびそのエッジ方向を用いて「一般化ハフ変換」と呼ばれる処理を実行することにより、認識対象の物体の位置および回転角度を認識する技術に関する。
【背景技術】
【０００２】
従来の一般化ハフ変換では、あらかじめ前記モデルを含む基準画像を用いて認識対象物の基準点を特定するとともに、モデルの輪郭を構成する複数のエッジ点（以下、「モデルエッジ点」という。）毎に、エッジ方向、基準点に対する方位および距離を示す情報を登録する。計測時には、処理対象画像上のエッジ点につき、それぞれ各モデルエッジ点の登録情報を用いて基準点の座標および回転角度について複数の値を算出し、各値を仮想の３次元空間（投票空間）に投票する。そして、最も高い得票を得た座標に基づいて処理対象画像における物体の基準点の座標および物体の回転角度を認識するようにしている。
【０００３】
上記の処理を、図１２〜１６を用いて具体的に説明する。
図１２は、前記基準画像上の任意のモデルエッジ点の登録情報を示す。図中の３０は基準画像であり、点Ｏは前記モデルの基準点、点Ｍ（座標を（Ｘ０，Ｙ０）とする。）は前記モデルエッジ点である。基準点Ｏには、モデルの中心点が用いられることが多いが、これに限らず、ユーザーにより指定された任意の点を基準点Ｏにすることもできる。
【０００４】
角度αは、モデルエッジ点Ｍのエッジ方向を示すもので、この例では、モデルエッジ点Ｍにおける法線の方向（濃度勾配の方向）がＸ軸（水平方向の軸）の正方向に対してなす角度をαとしている。また、角度φは、基準点Ｏに対するモデルエッジ点Ｍの方位を示すもので、この例では、前記法線から線分ＯＭを反時計回りに見た角度をφとしている。また、Ｒは、前記基準点Ｏからモデルエッジ点Ｍまでの距離である。
【０００５】
一般化ハフ変換では、基準画像上の各モデルエッジ点について、それぞれ上記の角度α、角度φ、距離Ｒを求め、これらを図１３に示すようなテーブルに編集して登録する。
【０００６】
図１４は、処理対象画像の例を示したものである。図中の３１が処理対象画像であり、点Ｅはこの画像中の一エッジ点である。また角度βは、エッジ点Ｅにおけるエッジ方向を示すもので、前記角度αと同様の方法により求められる。
上記のエッジ点Ｅが前記モデルエッジ点Ｍに該当するならば、認識対象物の回転によりエッジ方向が変化しても、前記基準点Ｏに対する関係を表す角度φ、距離Ｒは、モデルエッジ点Ｍと同一になるはずである。よって、エッジ点Ｅの座標（ｘ，ｙ）、角度β、および登録された角度φ、距離Ｒを用いて、基準点Ｏの座標を特定することができる。またこのとき、エッジ方向を示す角度βと前記登録された角度αとの差Θ（Θ＝β−α）は、処理対象画像上の物体の回転角度に相当することになる。
【０００７】
しかし、処理対象画像３１上のエッジ点とモデルエッジ点との対応関係は不明である。しかも、処理対象画像３１には、ノイズ成分のエッジ点が含まれている可能性がある。このため、一般化ハフ変換では、処理対象画像３１上の各エッジ点Ｅにつき、それぞれ前記図１３のテーブルに登録されたＮ個のモデルエッジ点を順に対応づけて、対応づけられたモデルエッジ点の登録情報をエッジ点Ｅに適用して、基準点Ｏの座標（Ｘ，Ｙ）および回転角度Θを求める。そして、（Ｘ，Ｙ，Θ）の組が算出される都度、その組で表現される３次元の投票空間（図１５に示す）中の１点に、１票を投票する。この結果、投票空間では、正しい基準点Ｏおよび回転角度Θに対応する座標における得票が最も高くなるから、この最も高い得票を得た座標を抽出することによって、基準点Ｏの座標および物体の回転角度を求めることができる。
【０００８】
一方、下記の非特許文献１では、３次元の投票空間を設定する方法に代えて、複数の２次元の投票平面を用いた投票処理を行って、前記基準点Ｏの座標および物体の回転角度を認識するようにしている。
【０００９】
【非特許文献１】斉藤文彦，「２次元パラメータ空間を用いた一般化ハフ変換による回転図形の抽出」，画像電子学会誌，１９９６年４月，第２５巻，第２号，p.130-137
【００１０】
図１６は、上記非特許文献１に開示された投票処理の概要を示す。この方法では、基準点Ｏの座標（Ｘ，Ｙ）を投票するためのメモリ（基準点投票用メモリ）、前記回転角度Θの余弦および正弦の値を投票するためのメモリ（ｃｏｓ値メモリ，ｓｉｎ値メモリ）などを設定している。そして、算出された座標（Ｘｉ，Ｙｉ）に対応する基準点投票用メモリ中の座標に１を加算するとともに、ｃｏｓ値メモリ，ｓｉｎ値メモリの同一座標に、それぞれｃｏｓΘ、ｓｉｎΘの値を記憶する。さらに、ｃｏｓΘ、ｓｉｎΘの値を前回同じ座標に記憶された値と比較することによって、同一の座標に差の小さな値が連続して投票される回数を求め、この回数が所定値Ｒ以上であれば、投票された値が正しい（Ｘ，Ｙ，Θ）を反映すると判断するようにしている。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記した従来の一般化ハフ変換では、３次元の投票空間を設定する必要があるため、容量の大きなメモリが必要になる。また、メモリサイズが大きくなると、データの読み出しや書き込みのための時間も長くなり、処理に時間がかかるという問題がある。
【００１２】
これに対し、非特許文献１に示された方法では、２次元平面を用いた投票処理によって、メモリ容量を大幅に削減でき、処理を高速化することができる。ただし、正しい投票を判別するための連続投票回数Ｒが適切に設定されていないと、判別処理に誤りが生じるおそれがある。
たとえば、Ｒの値が最適値よりも小さく設定されている場合に処理対象画像に多数のノイズが含まれていると、ノイズに対しても、Ｒ回を超える連続投票が発生する可能性がある。反対にＲの値が最適値よりも大きく設定されている場合には、認識対象物のエッジ点でも連続投票回数がＲ回に達しない可能性がある。
【００１３】
この発明は上記の問題点に着目してなされたもので、投票処理のためのメモリ容量を削減できるとともに、ノイズの影響を受けにくい投票処理を行うことにより、一般化ハフ変換による物体認識処理の高速化および高精度化を実現することを目的とする。
【課題を解決するための手段】
【００１４】
この明細書において、「エッジ点」とは、画像上のエッジを構成する点を意味するもので、画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて、着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える画素を指す。また、細線化処理を行った後の輪郭線を構成する点もエッジ点の概念に含まれる。
【００１５】
たとえば、白黒の濃淡画像を対象とする場合には、濃度値の勾配が所定値を超える画素を、エッジ点として抽出することができる。
また、たとえば、カラー画像を対象とする場合には、互いに独立した３つの色変数（たとえばＲ，Ｇ，Ｂ）により規定された各画素の情報のうちの少なくとも１つの変数についての変化の勾配が所定値を超える画素を、エッジ点として抽出することができる。なお、変数は、明度や色相、Ｒ，Ｇ，Ｂの各強度のほか、その他の色彩を表現する３変数のいずれかや、それらを用いて得られる色情報であってもよい。
【００１６】
この発明にかかる物体認識方法では、所定の輪郭形状を有するモデルを含む基準画像を用いて、基準点の座標を設定するとともに、前記モデルの輪郭を構成する複数のモデルエッジ点に個別に着目し、画像情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて前記着目画素における前記所定の変数の変化の方向を求め、その変化の方向に対応するエッジ方向と、前記基準点の前記エッジ方向に対する方位と、前記基準点からの距離とを示す情報（たとえば、前記図１２に示したα，φ，Ｒである。）を登録する。
【００１７】
さらに、画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える着目画素をエッジ点とする場合の当該エッジ点を含む画像を処理対象として、その処理対象画像上の複数のエッジ点に対し、当該エッジ点の座標およびエッジ方向を求めるとともに、前記複数のモデルエッジ点がそれぞれ前記エッジ点に該当するとしたときに前記登録情報から規定される基準点の座標、およびエッジ点のエッジ方向とモデルエッジ点のエッジ方向との差を示す角度を算出する処理と、算出された各値に基づく投票処理とを実行し、前記投票処理の結果を用いて前記モデルに対応する輪郭パターンの位置および前記モデルを基準にした輪郭パターンの回転角度を認識する。
【００１８】
なお、エッジ方向を示す情報は、エッジ点の法線方向を表す角度αに限らず、これに直交する方向、すなわちエッジ点の接線の方向を示す角度であってもよい。また、「モデルに対応する輪郭パターン」は、モデルと同一の輪郭を有するパターンに限らず、その一部の輪郭のパターンであってもよい。
【００１９】
この発明にかかる物体認識方法は、投票処理および物体認識のための処理について、以下のような特徴を有する。
投票処理では、処理対象画像上の各エッジ点につき、それぞれモデルエッジ点毎に求めた前記基準点の座標に、その座標とともに算出された回転角度に対応するベクトルを投票するとともに、投票のあった座標毎に、投票されたベクトルの合成ベクトルを示す数値情報を算出する。さらに物体認識処理では、投票処理および合成ベクトルを示す数値情報の算出処理が終了したことに応じて、前記数値情報を用いて前記投票のあった座標の中から前記合成ベクトルの長さが所定値を超える座標、もしくは各合成ベクトルを長さが最大のものから順にみた場合の所定数のベクトルに対応する座標を抽出し、この抽出結果を用いて前記物体の位置および対象物の回転角度を認識する。
【００２０】
前記回転角度に対応するベクトルは、たとえばこのベクトルを２つの方向に分解した場合の各ベクトル成分により表される。または、ベクトル成分に代えて、回転角度の正弦の値（ｓｉｎΘ）および余弦の値（ｃｏｓΘ）により表してもよい。
【００２１】
前記投票処理では、たとえば、上記の数値情報の累積値を基準点の座標を引数にして格納する配列（たとえばｓｉｎΘ（Ｘ，Ｙ）、ｃｏｓΘ（Ｘ，Ｙ））を設定し、座標（Ｘ，Ｙ）および回転角度Θが算出される毎に、前記配列中の（Ｘ，Ｙ）に対応する数値情報に算出された回転角度Θに基づく値を加算する。
【００２２】
上記の投票処理によれば、投票の対象となる座標のうち、正しい基準点の座標においては、投票されるベクトルの方向の分散はきわめて小さくなると考えられるのに対し、その他の座標（誤ったモデルエッジ点が対応づけられたときに算出された座標、またはノイズのエッジ点から算出された座標）では、投票されるベクトルの方向の分散が大きくなる可能性が高い。したがって、投票された回転角度に対応するベクトルを合成すると、正しい基準点の座標における合成ベクトルは、その他の座標における合成ベクトルよりも長くなると考えられる。よって、たとえば、あらかじめ、同一の方向を向くベクトルを所定数合成した場合の合成ベクトルの長さを求め、これをしきい値として設定しておき、前記合成ベクトルの長さがこのしきい値を超えた座標を抽出することによって、ノイズの影響を受けることなく、基準点の正しい座標を求めることができる。また、その座標に投票されたベクトルの総和の方向から、認識対象物の回転角度を精度良く求めることができる。なお、抽出する座標は、合成ベクトルの長さが前記しきい値を超え、かつ最大値となる座標にするのが望ましい。
【００２３】
さらに上記の投票処理は、従来の一般化ハフ変換のような３次元の投票空間ではなく、２次元の投票平面を用いて行うことができる。また前記非特許文献１のように、多数の投票平面を設定する必要もないから、メモリ容量を大幅に削減することができ、演算を高速化することができる。
【００２４】
なお、投票処理におけるベクトルの合成は、ベクトルの投票の都度行うのが望ましいが、これに限らず、たとえば、座標毎にその座標に投票されるベクトルを蓄積してゆき、最終的にベクトルの合成処理を行ってもよい。
また、認識対象物を１つに限定できる場合には、前記投票のあった座標の中から前記合成ベクトルの長さが最大になる座標を抽出し、この座標に基づき、輪郭パターンの位置および回転角度を認識してもよい。
【００２５】
また、輪郭パターンの位置は、前記基準点の座標そのものにしてもよいが、これに限らず、たとえば、基準点から所定距離だけ離れた点の座標を、輪郭パターンの位置としてもよい。または、前記モデルエッジ点の登録情報に基づき、基準点に対して特定の位置関係にあるエッジ点の座標を求め、この座標を輪郭パターンの位置としてもよい。
一方、輪郭パターンの角度については、たとえば前記合成ベクトルの長さが所定値を超える座標における当該合成ベクトルから求めることができる。たとえば、水平方向（Ｘ軸方向）に対して合成ベクトルがなす角度を求めることができる。
【００２６】
上記物体認識方法の好ましい態様では、投票処理において、投票される座標毎に、前記回転角度の正弦および余弦の累積値を求め、これら２種類の累積値の自乗和を前記合成ベクトルの長さとして算出する。また、他の好ましい態様においては、前記投票処理において、投票される座標毎に、前記回転角度に対応するベクトルを水平および垂直の２方向に分解した場合の各ベクトルの向きおよび長さを表す数値情報を求め、これら２種類の累積値の自乗和を前記合成ベクトルの長さとして算出する。
【００２７】
上記の２つの態様によれば、たとえば、基準点の座標および回転角度が算出される都度、２種類の数値情報を更新してゆき、最終の各数値情報の自乗和により正しい基準点の座標および回転角度を求めることができる。
【００２８】
さらに、この発明にかかる物体認識方法には、以下のＡ〜Ｅの態様を設定することができる。
【００２９】
＜態様Ａ＞  
この態様では、前記合成ベクトルを示す数値情報を用いて抽出された座標に基づき前記物体の仮の位置および仮の回転角度を求めた後に、各モデルエッジ点について、前記仮の位置および仮の回転角度に基づき処理対象画像上の対応点を求めるステップａと、前記対応点を含む局所領域内に含まれるエッジ点につき、前記モデルエッジ点の登録情報を用いて基準点の座標およびモデルに対する回転角度を算出するステップｂとを実行する。そして、各モデルエッジ点につき前記ステップａ，ｂにより求めた基準点の座標を平均化するとともに、前記回転角度を示すベクトルを合成し、平均化された基準点の座標および前記合成ベクトルの示す角度に基づき、前記物体の位置および回転角度として認識する。
【００３０】
上記の態様において、ステップａで求める対応点の座標は、前記基準画像上のモデルエッジ点を、仮の位置および仮の回転角度に基づいて移動させた場合の座標に相当するが、その座標にエッジ点が存在しなくともよい。
ステップｂでは、たとえば前記対応点を中心とする局所領域（マスク）を設定し、その領域に含まれる各エッジ点に前記対応点の算出に使用したモデルエッジ点を対応づけ、基準点の座標および前記エッジ方向の差を示す角度を算出する。これら局所領域内のエッジ点は、前記モデルエッジ点に対応するか、モデルエッジ点にきわめて近い点である可能性が高いから、算出された座標や角度の分散もきわめて小さいと考えられる。よって、これらの基準点の座標を平均化することによって、真の基準点の座標を精度良く求めることができる。また、各基準点の座標とともに求められた角度による合成ベクトルによって、回転角度を精度良く求めることができる。
【００３１】
ただし、前記対応点を含む処理対象領域内にノイズが含まれていると、そのノイズから算出された値により前記座標や角度の平均値に狂いが生じる可能性がある。したがって、算出された座標および角度と前記合成ベクトルにより認識された座標および回転角度との間に、所定値を上回る差が認められる場合には、その算出値を平均値の算出対象から除外するのが望ましい。
なお、平均値を算出するのに代えて、前記局所領域において求めた座標および角度に対応するベクトルを、先の投票処理時よりスケールの細かい投票平面に投票してもよい。
【００３２】
＜態様Ｂ＞
この態様では、前記合成ベクトルを示す数値情報を用いて抽出された座標に基づき前記輪郭パターンの位置および回転角度を認識した後に、前記モデルに対応する輪郭形状を有する１または複数の濃淡画像を用いたモデルを用いて、前記輪郭パターンの位置および回転角度を反映した正規化相関演算を実行する。
【００３３】
この態様は、たとえば模様や色彩を有する対象物を認識する場合に適用することができる。通常、正規化相関演算を用いて物体の位置および回転角度を求める場合には、基準画像から複数の濃淡画像モデル（基準画像のモデルを所定角度ずつ回転させたもの）を作成して、モデル毎に処理対象画像全体を対象とした検索を実行しなければならない。
これに対し、上記の態様Ｂによれば、先に一般化ハフ変換によって、対象物のおよその位置および回転角度が求められているので、たとえば、認識された物体の位置に濃淡画像モデルを設定し、このモデルを前記回転角度を基準に回転補正して正規化相関演算を実行すれば良くなり、正規化相関演算にかかる処理時間を大幅に削減できる。しかも、その限定された処理時間において、精度の高い検索処理を実行することができる。
【００３４】
＜態様Ｃ＞
この態様では、処理対象画像上のエッジ点毎に前記基準点の座標の候補の値を求める処理において、前記エッジ方向に対する基準点の前記登録された方位とこれに反転する方位とについて、前記基準点の座標の候補を１つずつ算出する。
たとえば、前記図１４の処理対象画像３１の場合、エッジ点Ｅに対し、前記角度βが示すエッジ方向から角度φの方向、およびこの方向を１８０°回転させた方向において、それぞれエッジ点Ｅから距離Ｒだけ離れた点の座標を算出する。
【００３５】
この態様Ｃによれば、基準画像に対し、処理対象画像が白黒反転している場合やカラー画像を処理対象とする場合など、エッジ点におけるエッジ方向を一意に特定できない場合でも、投票処理によって、対象物の位置および角度を認識することが可能になる。
【００３６】
＜態様Ｄ＞
この態様では、前記各モデルエッジ点についての登録処理が終了したことを条件に、前記基準画像上の各エッジ点につき、それぞれ前記各モデルエッジ点の前記登録情報を用いて基準点の座標およびエッジの方向の回転角度の候補の値を求めた後、前記投票処理および前記合成ベクトルを示す数値情報の算出処理を実行する。そして、すべてのエッジ点にかかる投票が終了したときの前記数値情報が表す合成ベクトルの長さが所定のしきい値を下回るとき、前記基準点の設定および各モデルエッジ点についての登録処理を再度実行する。
【００３７】
たとえば、認識対象の物体の輪郭形状が点対称の図形にあたる場合に、物体の中心点が基準点として設定されていると、１つのモデルエッジ点に対し、点対称の関係にある２つのエッジ点において基準点の正しい座標が算出される一方、その座標に相反する方向を向くベクトルが投票されてしまう。この結果、正しい基準点に対応する合成ベクトルが短くなってしまい、対象物の位置や回転角度を正しく認識できない可能性が生じる。
【００３８】
上記の態様Ｄは、このような問題に対応するために、各モデルエッジ点についての登録処理が終了した時点で、基準画像を対象に、登録された情報を用いて処理対象画像に対して行うのと同様の算出処理および投票処理を実行する。この結果、得られるベクトルの長さが所定のしきい値を下回る場合には、基準点を再設定して、再度各モデルエッジ点についての登録処理を実行することになる。
このような処理によれば、対象物の位置および回転角度を求めるのに適した基準点を設定することができるから、認識対象物の形状に関わらず、精度の高い認識処理を実行することができる。
【００３９】
＜態様Ｅ＞
この態様では、複数の座標が異なる点を前記基準点に設定し、処理対象画像について、前記基準点の座標を求める処理および投票処理を基準点毎に実行する。
たとえば、モデルの中心点や重心のみが基準点に設定されていると、処理対象画像中に、モデルに対応する輪郭が複数重ね合わせられた形状の物体が存在する場合でも、モデルに対応する形状毎の基準点が重なって１点として抽出され、物体全体としての輪郭形状を正しく認識できない可能性がある。
【００４０】
これに対し、上記の態様Ｅによれば、中心点や重心が基準点に含まれていても、それ以外の基準点が、モデルに対応する輪郭毎に抽出されるので、これらの抽出結果に基づき、各輪郭の向きや位置関係を切り分けて判別できる。よって物体全体の輪郭形状を正しく認識することができる。
【００４１】
つぎに、この発明にかかる物体認識用のプログラムは、所定の輪郭形状を有するモデルを含む基準画像を用いて、基準点の座標を設定するとともに、前記モデルの輪郭を構成する複数のモデルエッジ点に個別に着目し、画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて前記着目画素における前記所定の変数の変化の方向を求め、その変化の方向に対応する方向であるエッジ方向と、前記基準点の前記エッジ方向に対する方位と、前記基準点からの距離とを示す情報を登録する機能；および前記画素情報を規定する１または複数の変数の中の所定の変数について、着目画素とその周辺の画素についての前記所定の変数に基づいて着目画素における前記所定の変数の変化の勾配を求めたときに、その勾配が所定値を超える着目画素をエッジ点として抽出する場合の当該エッジ点を含む画像を処理対象として、その処理対象画像上の複数のエッジ点に対し、前記エッジ点の座標およびエッジ方向を求める機能を有するコンピュータに対し、前記処理対象画像から前記モデルに対応する輪郭を有する輪郭パターンの位置および前記モデルを基準にした輪郭パターンの回転角度を認識する機能を設定するためのもので、候補値算出手段、記憶手段、情報更新手段、抽出手段、認識手段の各手段として前記コンピュータを認識させる。
【００４２】
前記候補値算出手段は、前記処理対象画像上の各エッジ点につき、それぞれ前記各モデルエッジ点の登録情報を用いて、登録された各モデルエッジ点がそれぞれ前記エッジ点に該当するとしたときに規定される基準点の座標、およびエッジ点のエッジ方向とモデルエッジ点のエッジ方向との差を示す角度を算出する。
【００４３】
記憶手段は、前記候補値算出手段が算出した角度に対応するベクトルを基準点の座標毎に合成した場合の当該合成ベクトルを表す数値情報を記憶するためのものである。たとえば、前記回転角度の正弦および余弦の値により回転角度に対応するベクトルを表す場合には、これらの数値情報の累積値を基準点の座標（Ｘ，Ｙ）に対応づけて格納する２次元配列が、記憶手段として機能する。
【００４４】
情報更新手段は、前記候補値算出手段により基準点の座標および角度の算出が行われる都度、算出された基準点の座標に対応する前記記憶手段内の数値情報を、算出された回転角度を用いて更新する。抽出手段は、前記候補値算出手段および情報更新手段による処理が終了したことに応じて、前記記憶手段に格納された数値情報を用いて前記合成ベクトルの長さが所定値を超える座標、もしくは各合成ベクトルを長さが最大になるものから順にみた場合の所定数のベクトルに対応する座標を抽出する。
認識手段は、前記抽出手段による抽出結果を用いて前記輪郭パターンの位置および回転角度を認識する。
【００４５】
上記のプログラムによれば、あらかじめ基準画像を用いて、前記基準点の設定、および複数のモデルエッジ点に関する情報が登録されていることを条件に、前記した物体認識方法を実行することが可能になる。
【００４６】
なお、このプログラムが記憶された記憶媒体には、上記の機能のほかに、処理対象画像上のエッジ点を抽出する機能や、前記輪郭パターンの位置および角度を認識した後の処理（計測、判別など）を実行するための機能を設定するためのプログラムを含めてもよい。
【００４７】
この発明にかかる物体認識装置は、前記エッジ点を含む画像を入力するための画像入力手段；所定の輪郭形状を有するモデルを含む基準画像が前記画像入力手段から入力されたとき、この基準画像を用いて基準点の座標を設定するとともに、この基準画像中のモデルの輪郭を構成する複数のモデルエッジ点について、エッジ方向、基準点に対する方位、前記基準点からの距離を示す情報を登録する登録手段；および上記した候補値算出手段、記憶手段、情報更新手段、抽出手段、認識手段の各手段を具備する。
【００４８】
上記構成のうち、画像入力手段を除く各手段は、それぞれの手段にかかるプログラムが設定されたコンピュータにより構成しても良いが、これに限らず、ＩＣなどの集積回路により構成してもよい。また、一部の手段をコンピュータにより構成し、他の手段をＩＣなどで構成してもよい。
【発明の効果】
【００４９】
この発明によれば、基準点や回転角度の正しい値を反映した得票が強められる一方、モデルエッジ点の対応づけの誤りやノイズに起因する得票が小さくなるような投票処理を実行できるので、ノイズの影響を受けることなく、対象物の位置や回転角度を精度良く求めることが可能になる。また投票処理のためのメモリ容量を大幅に削減できるので、認識処理を高速化することもできる。
【発明を実施するための最良の形態】
【００５０】
（１）画像処理装置の構成
図１は、この発明が適用された画像処理装置の設置例を示す。
この実施例の画像処理装置は、カメラ１、コントローラ２、モニタ３、コンソール４などにより構成されており、工場の検査ラインＬにおいて、搬送されてくるワークＷを順に撮像して画像を生成し、その画像を処理することによって、前記ワークＷ上の認識対象物７（この実施例では、文字列「ＡＢＣ」が印刷されたラベル）の適否を判別する。
【００５１】
図２は、前記画像処理装置の電気構成を示す。
前記コントローラ２は、ＣＰＵ２１を制御主体として、フラッシュメモリ２２、ＲＡＭ２３、グラフィックコントローラ２４、カメラ用インターフェース２５、入力用インターフェース２６、外部用インターフェース２７などを具備する。
【００５２】
フラッシュメモリ２２には、プログラムや処理に必要なパラメータなどが格納され、ＲＡＭ２３には、画像データや途中の演算結果などが一時保存される。
カメラ用インターフェース２５には、前記カメラ１の駆動回路、画像信号を受け付けるためのバッファ、Ａ／Ｄ変換回路（いずれも図示せず。）などが含まれる。入力用インターフェース２６は、前記コンソール４からの信号を受け付けるためのものである。外部用インターフェース２７は、図示しない外部機器（パーソナルコンピュータ、ＰＬＣなど）と通信する際に使用される。グラフィックコントローラ２４は、前記モニタに対する表示制御を実行する。
【００５３】
前記ＣＰＵ２１には、ワーク検出用のセンサ５（光電スイッチ、近接スイッチなど）が接続されている。ＣＰＵ２１は、このセンサ５からワークＷを検出した旨を示す信号を入力すると、カメラ用インターフェース２５を用いてカメラ１を駆動し、前記ワークＷを撮像させる。そして前記ワークＷの濃淡画像（以下、「処理対象画像」という。）が生成され、ＲＡＭ２３に保存されると、ＣＰＵ２１は、前記フラッシュメモリ２２に記憶されたプログラムに基づき、前記認識対象物７の位置および回転角度を求める。さらに、この処理結果に基づき、前記認識対象物７内の画像をあらかじめ登録された基準部分画像（前記文字列のモデルを撮像して得られた画像から切り出されたもの）と照合することにより、前記認識対象物７に位置ずれ、汚れ、めくれなどの不良がないか、文字列の印刷状態が適切であるか、認識対象物７が異なる種類のラベルでないか、などを判別する。
【００５４】
なお、上記図１，２に示したコントローラ２は、画像処理専用に開発された装置であるが、これに限らず、たとえば、画像処理用のプログラムがインストールされたパーソナルコンピュータを使用してもよい。この場合のプログラムは、ＣＤ−ＲＯＭなどの記憶媒体または通信回線を介してパーソナルコンピュータに提供される。またパーソナルコンピュータに代えて、モニタおよび入力部が一体化されたパネル式のコントローラを使用してもよい。
また、この実施例の画像処理装置は、モノクロ濃淡画像を処理するものであるが、これに代えて、カラー濃淡画像を生成して処理することも可能である。
【００５５】
（２）認識対象物の抽出方法
この実施例の画像処理装置では、前記ワークＷ毎に処理対象画像を生成し、各処理対象画像に一般化ハフ変換の手法を用いた物体認識処理を行うことによって、認識対象物７を抽出している。
一般化ハフ変換を行うには、従来と同様に、ワークＷのモデルを撮像して得られた画像を基準画像として、この基準画像を用いた登録処理を行う必要がある。たとえば、基準画像上のラベルのうち、前記「ＡＢＣ」の文字列を含む領域を指定して、その領域の任意の１点を基準点に設定する。また、前記指定領域中に含まれる複数のエッジ点（ラベルおよびＡ，Ｂ，Ｃの各文字の輪郭線を構成する点）をモデルエッジ点として抽出し、これらについて、エッジ方向を表す角度α、基準点に対する方位を示す角度φ、基準点との距離Ｒをそれぞれ算出し、ＲＡＭ２３に登録する。なお、この実施例におけるα，φ，Ｒは、いずれも前記図１２に示した従来例と同様に定義づけられ、前記図１３に示したのと同様の構成のテーブルに登録される（以下、このテーブルを「モデルテーブル」という。）。
【００５６】
検査時には、処理対象画像からエッジ点を抽出した後、各エッジ点について、前記モデルエッジ点の登録情報を用いて基準点Ｏの座標（Ｘ，Ｙ）および対象物の回転角度Θの候補の値を算出する。
【００５７】
具体的には、処理対象画像上の任意のエッジ点Ｅの座標を（ｘ，ｙ）、そのエッジ方向を示す角度をβとすると、中心点Ｏの座標（Ｘ，Ｙ）および回転角度Θは、下記の（１）〜（３）式により求められる。
Ｘ＝Ｒｉ＊ｃｏｓ（φｉ＋β）＋ｘ    ・・・（１）
Ｙ＝Ｒｉ＊ｓｉｎ（φｉ＋β）＋ｙ    ・・・（２）
Θ＝β−αｉ        ・・・（３）
【００５８】
この実施例では、処理対象画像上の各エッジ点につき、それぞれモデルテーブルに登録されたモデルエッジ点を順に対応づけて、上記の（１）〜（３）式を実行することにより、（Ｘ，Ｙ，Θ）の組み合わせをＮ個求める。この算出方法自体は、従来の一般化ハフ変換と同様であるが、この実施例では、算出された（Ｘ，Ｙ，Θ）を、従来とは異なる方法で投票することにより、認識対象物７の位置および回転角度の認識精度や処理速度を向上できるようにしている。
【００５９】
図３は、この実施例の投影処理の概要を示す。なお、この図３および後記する図８では、前記図１２，１４に示したのと同様の基準画像３０および処理対象画像３１を処理するものとして説明する。
【００６０】
この実施例では、３種類の投票平面Ｓ，Ｃ，Ｐが設定される。各平面Ｓ，Ｃ，Ｐとも、前記角度Θに基づく数値情報を基準点の座標（Ｘ，Ｙ）に投票するためのものである。具体的には、各平面Ｓ，Ｃ，Ｐは、それぞれ座標（Ｘ，Ｙ）を引数とする２次元配列Ｓ（Ｘ，Ｙ），Ｃ（Ｘ，Ｙ），Ｐ（Ｘ，Ｙ）として構成される。
【００６１】
平面Ｓ，Ｃへの投票は、処理対象画像３１上のエッジ点とモデルエッジ点との組み合わせ毎に行われる。平面Ｓには回転角度Θの正弦値ｓｉｎΘが投票され、平面Ｃには回転角度Θの余弦値ｃｏｓΘが投票される。また、投票される座標に既に値が格納されている場合には、その値に今回の値が加算される。
すなわち、各平面Ｓ，Ｃには、基準点の候補として算出された座標毎に、投票された値の累積値が格納されることになる。
【００６２】
一方、平面Ｐへの投票は、前記平面Ｓ，Ｃへのすべての投票が終了した時点で行われる。この平面Ｐには、各座標（Ｘ，Ｙ）毎に、平面Ｓ，Ｃの同一座標に格納された値Ｓ（Ｘ，Ｙ），Ｃ（Ｘ，Ｙ）の自乗和（（Ｓ（ｘ、ｙ））２＋（Ｃ（ｘ，ｙ））２）が投票される。
【００６３】
前記ｓｉｎΘは、前記回転角度Θに対応するベクトルの垂直成分を表し、ｃｏｓΘは、前記ベクトルの水平成分を表していると考えられる。したがって、ｓｉｎΘ，ｃｏｓΘの累積値は、前記ベクトルの合成ベクトルの垂直成分、水平成分に該当すると考えられる。また、これらの累積値の自乗和Ｐは、前記合成ベクトルの長さを表すと考えられる。
【００６４】
合成ベクトルの長さは、合成される各ベクトルの方向のばらつき（分散）が小さいほど大きくなる。したがって上記の投票処理においても、平面上の１座標に対応する合成ベクトルは、その座標に投票された角度Θの分散が小さいほど大きくなる。
ここで、座標（Ｘ，Ｙ）が基準点Ｏの正しい座標にあたらなければ、複数の投票があったとしても、各投票における角度Θの分散が大きくなり、その結果、合成ベクトルは小さくなると考えられる。これに対し、座標（Ｘ，Ｙ）が基準点Ｏの正しい座標であれば、各投票における角度Θの分散はきわめて小さくなり、その結果、合成ベクトルの長さは、他の座標で得られるものより大きくなると考えられる。
【００６５】
この実施例では、上記の考察に基づき、前記平面Ｐにおける得票が最大値Ｐｍａｘになる座標（ＸＰ，ＹＰ）を、前記処理対象画像における基準点Ｏの座標として抽出するようにしている。さらに、つぎの（４）式により、座標（ＸＰ，ＹＰ）における合成ベクトルの傾きをΘＰを求め、これを前記認識対象物７の回転角度として認識するようにしている。
【００６６】
【数１】
2007128374.tif 000003
【００６７】
上記の投票処理によれば、誤ったモデルエッジ点の対応づけやノイズに起因する得票を小さくできるので、基準点Ｏの座標や回転角度Θの正しい値を安定して求めることができる。また、この投票処理は、３種類の投票平面により実行できるから、従来の一般化ハフ変換よりも、投票処理のためのメモリ容量を大幅に削減することができ、処理を高速化することができる。
【００６８】
（３）検査について
以下、上記の一般化ハフ変換による認識対象物の抽出処理を中心に、前記画像処理装置で実行される検査の流れを説明する。
まず、図４は、検査時にコントローラ２で実施される処理手順を示す。
【００６９】
同手順の最初のＳＴ１（ＳＴは「ＳＴＥＰ（ステップ）」の略である。以下も同じ。）では、前記カメラ１およびカメラ用インターフェース２５により生成された処理対象画像をＲＡＭ２３内に入力する。
【００７０】
つぎのＳＴ２では、前記処理対象画像上のエッジ点を抽出する。具体的には、処理対象画像上にソーベルオペレータなどによるエッジ抽出フィルタを走査し、濃度勾配の大きさが所定値以上の画素をエッジ点として抽出する。なお、ここで抽出されたエッジ点の座標やエッジ抽出フィルタにより抽出された濃度勾配の大きさΔｘ，Δｙ（Δｘは水平方向における濃度勾配の大きさ、Δｙは垂直方向における濃度勾配の大きさ）は、ＲＡＭ２３の所定領域に保存される。
【００７１】
つぎのＳＴ３では、前記図３に示した方法を用いて、認識対象物７の位置および回転角度を抽出する処理（以下、「初期サーチ」という。）を実行する。続くＳＴ４では、初期サーチの結果を用いてより詳細な検索処理（以下、「詳細サーチ」という。）により、前記認識対象物７の位置および回転角度を特定する。これらの詳細な手順については、後で詳細に説明する。
【００７２】
ＳＴ５では、前記詳細サーチで求めた位置および回転角度に基づき、処理対象画像から前記認識対象物７を含む画像を切り出し、その回転ずれを補正する。ＳＴ６では、この補正後の画像に対し、前記基準部分画像との差分演算処理を実行する。この差分演算処理により、前記印字領域７内の文字列とモデルの文字列との間の差異を示す画像（差画像）が生成される。
【００７３】
ＳＴ７では、前記差画像に対し、２値化、ラベリングなどを実行して、前記差異に相当するパターンを抽出した後、このパターンの位置、面積などを計測する。ＳＴ８では、前記計測値を所定のしきい値と比較するなどして、前記計測対象の文字列の適否を判定する。さらにＳＴ９において、前記判定結果を外部機器などに出力した後、処理を終了する。
【００７４】
つぎに、上記の検査手順に先立って行われるモデル登録処理について、図５を用いて説明する。
この図５の処理では、前記初期サーチおよび詳細サーチに使用されるモデルエッジ点の情報とともに、前記差分演算処理に用いる基準部分画像が登録される。
【００７５】
まず最初のＳＴ１０１では、前記認識対象物のモデルの撮像によって生成された基準画像が入力され、ＲＡＭ２３に格納される。また、この入力画像は、モニタ３にも表示される。
【００７６】
つぎのＳＴ１０２では、前記モニタ３の表示画面に対する領域指定操作を受け付ける。ＳＴ１０３では、指定された領域内の画像について、前記図４のＳＴ２と同様の方法によりエッジ点を抽出する。
【００７７】
なお、ここでは図示していないが、ＳＴ１０３において、十分な数のエッジ点が抽出されなかった場合には、ＳＴ１０２に戻り、再度の領域指定操作を受け付けるのが望ましい。また、前記図１に示したようなラベルを認識対象物にする場合には、このラベル自体の輪郭を除き、文字列「ＡＢＣ」のみが含まれるような領域を指定するのが望ましい。ラベルの地の部分を背景として、その背景から文字の部分に向かう濃度勾配を抽出することによって、文字の輪郭を構成するエッジ点を抽出できるからである。
【００７８】
ＳＴ１０４では、基準点の設定を行う。この処理でも、ユーザーの指定操作を受け付けて、その指定された座標を基準点にすることができる。または、前記ＳＴ１０３のエッジ抽出結果を用いてモデルの重心などを自動抽出し、これを基準点に設定しても良い。
【００７９】
ＳＴ１０５では、エッジ点の抽出数をＮとする。ＳＴ１０６では、前記ＲＡＭ２３にＮ個分の領域を有するモデルテーブルを設定する。そして、以下、ＳＴ１０７〜１１３を実行することにより、各モデルエッジ点につき、前記角度αｉ、角度φｉ、距離Ｒｉ（０≦ｉ≦Ｎ−１）を求め、これらを前記モデルテーブルに登録する。
なお、角度αｉ、角度φｉ、距離Ｒｉは、いずれも図１２の従来例に示したのと同様の基準で算出される。
【００８０】
登録が完了すると、登録された情報が、基準点Ｏを抽出するのに適切であるかどうかを検証するための処理を実行する。このような処理を設けているのは、１つのモデルエッジ点に２以上のエッジ点が対応づけできるような場合には、基準点Ｏの正しい座標に対する得票が小さくなる可能性があり、その結果、基準点Ｏや回転角度Θの誤抽出が起こるおそれがあるためである。
【００８１】
たとえば、認識対象物の輪郭が点対称の図形である場合、その中心点が基準点Ｏに設定されていると、点対称の関係にある２つのエッジ点においては、前記基準点Ｏの正しい座標に対応するベクトルが相反する方向を向くので、ベクトルの合成処理時にこれらが打ち消され、合成ベクトルが小さくなってしまう。
【００８２】
上記の問題を解決するために、ＳＴ１１４では、前記基準画像に初期サーチを実行し、前記合成ベクトルの長さの最大値Ｐｍａｘを求める。さらにＳＴ１１５において、このＰｍａｘと所定の許容値Ｍ２との差を求め、この差が所定のしきい値ｔｈより大きいかどうかをチェックする。ここで、（Ｐｍａｘ−Ｍ２）の値がｔｈ以下であれば、ＳＴ１１６に進んでモデルテーブル内の全データをクリアし、基準点Ｏとして、ＳＴ１０４で設定されたのとは異なる点を再設定する。
この後は、ＳＴ１０７に戻り、新たに設定された基準点Ｏに基づき、各モデルエッジ点にかかる登録処理を再度実行する。
【００８３】
なお、許容値Ｍ２は、処理対象画像中に認識対象物が存在しない場合に対応するために設けたものである。初期サーチにおいて、合成ベクトルの最大値Ｐｍａｘがこの許容値Ｍ２より小さい場合には、認識対象物は存在しないと判断される。
【００８４】
したがって、（Ｐｍａｘ−Ｍ２）の値がｔｈを上回る場合には、認識対象物の基準点の座標を十分な精度で抽出できると考えられる。よって、この場合にはＳＴ１１７に進み、作成されたモデルテーブルを確定し、登録する。
さらにＳＴ１１８では、前記基準画像から前記ＳＴ１０２で指定された領域内の画像を切り出し、これを、前記画像間差分演算用の基準部分画像として登録する。
【００８５】
続いて、図６を用いて前記初期サーチの詳細な手順を説明する。
まず最初のＳＴ２０１では、前記３つの投票平面Ｓ，Ｃ，Ｐを構成する２次元配列を初期化（ゼロクリア）する。
【００８６】
ＳＴ２０２では、処理対象画像上の１エッジ点に着目し、その座標（ｘ，ｙ）を抽出する。ＳＴ２０３では、このエッジ点の抽出時に求められた濃度勾配の大きさΔｘ，Δｙを用いて、エッジ方向を示す角度βを算出する。
【００８７】
ＳＴ２０４では、モデルエッジ点を特定するためのカウンタｉに、初期値０をセットする。そして、前記モデルテーブルから、ｉ番目のモデルエッジ点の登録情報Ｒｉ，φｉ，αｉを読み出し、これらと前記ｘ，ｙ，βとを用いて前記（１）〜（３）式を実行することにより、基準点の座標（Ｘ，Ｙ）および回転角度Θを算出する。さらにＳＴ２０６では、Ｓ（Ｘ，Ｙ），Ｃ（Ｘ，Ｙ）に、それぞれｓｉｎΘ，ｃｏｓΘを加算する。
【００８８】
以下、カウンタｉを１つずつ更新することにより、対応するモデルエッジ点を変更し、ＳＴ２０５，２０６の処理を繰り返す。Ｎ−１番目のモデルエッジ点を用いた処理が終了すると、今度は処理対象画像の着目対象のエッジ点を変更し、ＳＴ２０２に戻って上記と同様の処理を繰り返し実行する。
この結果、すべてのエッジ点に対する処理が終了すると、ＳＴ２０９が「ＹＥＳ」となってＳＴ２１０に進み、前記平面Ｓ，Ｃのすべての座標毎に、Ｓ（Ｘ，Ｙ）とＣ（Ｘ，Ｙ）との自乗和を求め、これをＰ（Ｘ，Ｙ）に格納する。
【００８９】
ＳＴ２１１では、前記Ｐ（Ｘ，Ｙ）のうちの最大値Ｐｍａｘに相当する座標（ＸＰ，ＹＰ）を抽出する。さらにＳＴ２１２では、前記最大値Ｐｍａｘを前記許容値Ｍ２と比較する。ここでＰｍａｘ≧Ｍ２であれば、ＳＴ２１３に進み、前記（４）式により回転角度ΘＰを算出する。
【００９０】
他方、前記モデルに対応する輪郭形状が処理対象画像に含まれていない場合には、Ｐｍａｘ＜Ｍ２となる。この場合には、ＳＴ２１４に進み、サーチは失敗であるとして所定のエラー処理に移行する。
【００９１】
つぎに、前記詳細サーチについて説明する。
この実施例の詳細サーチでは、前記基準点Ｏの座標および回転角度をより正確に求めることを目的として、初期サーチの結果を用いて、モデルエッジ点毎に処理対象画像の限定された範囲のエッジ点を用いた処理を実行している。
【００９２】
以下、図７を用いて詳細サーチの具体的な手順について説明する。
まず最初のＳＴ３０１において、前記モデルエッジ点を特定するためのカウンタｉに初期値０をセットする。つぎにＳＴ３０２では、前記初期サーチで求めたＸＰ，ＹＰ，ΘＰを用いてつぎの（５）（６）式により、ｉ番目のモデルエッジ点に対応する座標（ｘｍ、ｙｍ）を求める。
【００９３】
ｘｍ＝Ｘｐ＋Ｒｉ＊ｃｏｓ（ΘＰ−φｉ）  ・・・（５）
ｙｍ＝Ｘｐ＋Ｒｉ＊ｓｉｎ（ΘＰ−φｉ）  ・・・（６）
【００９４】
図８は、基準画像３０上の任意のモデルエッジ点Ｍと処理対象画像３１上の対応点ｍとの関係を示す。また図８の（３）は、処理対象画像３１中の前記対応点ｍを含む領域３２の画像を拡大したものである。この例の対応点ｍはエッジ点ではないが、前記初期サーチで求めた（ＸＰ，ＹＰ，ΘＰ）の信頼性は高いと考えられるので、この対応点ｍの近傍に、モデルエッジ点Ｍの真の対応点に該当するエッジ点が存在すると考えられる。またその真の対応点の近傍のエッジ点でも、基準点Ｏに対する方位や距離は、モデルエッジ点で求められるものに近似すると考えられる。
【００９５】
そこで、詳細サーチでは、前記対応点ｍおよびその周囲近傍の数画素を含むマスク３３を設定し、このマスク３３に含まれる各エッジ点ｅにつき、それぞれ前記モデルエッジ点Ｍの登録情報を適用して、基準点Ｏの座標および回転角度を求め直すようにしている。
【００９６】
図７に戻って上記の処理を具体的に説明する。ＳＴ３０３において、前記マスク３３を設定すると、つぎのＳＴ３０４では、このマスク３３内の１エッジ点ｅの座標（ｘｊ，ｙｊ）を抽出する。さらにＳＴ３０５では、このエッジ点ｅについて、エッジ方向を示す角度βｊを求める。
【００９７】
ＳＴ３０６では、上記のｘｊ，ｙｊ，βｊとｉ番目のモデルエッジ点の登録情報を用いて下記の（７）〜（９）式を実行することにより、基準点Ｏの座標（ＸＶ，ＹＶ）および回転角度ΘＶを求める。
ＸＶ＝ｘｊ＋Ｒｉ＊ｃｏｓ（βｊ＋φｉ）    ・・・（７）
ＹＶ＝ｙｊ＋Ｒｉ＊ｓｉｎ（βｊ＋φｉ）    ・・・（８）
ΘＶ＝βｊ−αｉ      ・・・・（９）
【００９８】
前記したように、マスク３３内のエッジ点ｅは、基準点Ｏに対し、モデルエッジ点Ｍと同一またはきわめて近い関係を有していると考えられるから、上記のＸＶ，ＹＶ，ΘＶも、モデルエッジ点への真の対応点について算出されるものに近似すると考えられる。ただし、この考えは、認識対象物の輪郭を構成するエッジ点についてのみ適用できるもので、ノイズ成分から求められたＸＶ，ＹＶ，ΘＶにはあてはまらない。
このため、この実施例では、前記ＳＴ３０６で求めた（ＸＶ，ＹＶ，ΘＶ）と前記初期サーチで求めた（ＸＰ，ＹＰ，ΘＰ）とをそれぞれ３次元空間の１点として捉えて、これらの点の間の距離Ｄを求め、この距離を所定のしきい値Ｄ０と比較するようにしている（ＳＴ３０７，３０８）。ここで前記距離Ｄが距離Ｄ０より大きい場合には、（ＸＶ，ＹＶ，ΘＶ）は、ＳＴ３０９の演算の対象から除外される。
【００９９】
一方、距離Ｄが前記Ｄ０以下であれば、ＳＴ３０９に進み、変数Ｘｃ，Ｙｃを用いてＸＶ，ＹＶの累積処理を行うとともに、ΘＶについて、変数Ｓｃ，Ｃｃを用いて、前記初期サーチの投票平面Ｓ，Ｃで実行したのと同様のベクトルの合成処理を実行する。なお、ｎｃはこのＳＴ３０９の処理回数を記憶するためのカウンタである。
【０１００】
以下、同様に、マスク３３内のすべてのエッジ点ｅを順に抽出して、ＳＴ３０４〜３０９を実行する。マスク３３内の最後のエッジ点に対する処理が終了すると、ＳＴ３１２において、着目対象のモデルエッジ点を変更し、上記の処理を繰り返す。
かくして、すべてのモデルエッジ点について上記の処理が実行されると、ＳＴ３１３に進み、基準点Ｏの座標について、前記累積値Ｘｃ，Ｙｃおよび処理回数ｎｃを用いて平均値を算出し、これを最終の値ＸＲ，ＹＲとする。また回転角度についても、前記Ｓｃ，Ｃｃを用いて、前記合成ベクトルの角度を求め、これを最終の値ΘＲとする。
【０１０１】
このように、詳細サーチでは、処理対象のエッジ点を絞り込むとともに、基準点の座標について、算出される値のばらつきが小さいことを条件に平均値を求めるので、初期サーチのような平面を用いた投票処理を行う必要がなくなり、処理を高速化できる。
またいずれのモデルエッジ点についても、その対応点およびその近傍のエッジ点から求めた座標や回転角度を求めるので、最終的に算出されたＸＲ，ＹＲ，ΘＲは、初期サーチで求めたＸＰ，ＹＰ，ΘＰよりも精度の良いものとなる。
【０１０２】
また前記初期サーチでは、エッジ点毎にＮサイクル分の処理を行う必要があるので、ノイズ成分が多い場合などに、処理に多大な時間がかかる可能性がある。このような場合、処理の高速化のために初期サーチの処理対象のエッジ点を間引きしても、その後の詳細サーチによって、算出の精度を確保することができる。
【０１０３】
（５）その他の実施例
上記実施例に示した画像処理装置では、さらに以下のａ，ｂ，ｃ，ｄに示すような処理を実行することができる。
【０１０４】
ａ．正規化相関による認識処理
前記図４に示した検査の手順では、前記初期サーチや詳細サーチによって、基準点Ｏの座標（ＸＲ，ＹＲ）および認識対象物の回転角度ΘＲを特定した後は、画像間差分演算を実行しているが、この処理に代えて、またはこの処理に加えて、正規化相関演算による認識処理を実行してもよい。この場合、処理対象画像から基準部分画像に対応する画像を切り出して回転ずれ補正を実行し、その補正後の画像に前記基準部分画像を用いた正規化相関演算を実行することによって、基準部分画像に対する類似度を求めることができる。または、基準部分画像を前記回転角度ΘＲにより補正した後に、その基準点を前記処理対象画像上の座標（ＸＲ，ＹＲ）に合わせて正規化相関演算を実行してもよい。
また、基準部分画像を複数種登録しておき、基準部分画像毎に正規化相関演算を実行してもよい。
【０１０５】
上記の処理は、認識対象物の濃淡の度合い（カラー画像であれば色合いの違い）を抽出するような場合に有用となる。一般化ハフ変換による認識処理では、物体の輪郭形状を精度良く抽出することはできるが、濃淡の差異を判別することはできない。一方、従来の正規化相関演算による検索処理では、処理対象画像全体を走査する必要がある上、認識対象物の回転を考慮して複数の回転モデルによる検索を行う必要があり、処理に時間がかかるという問題がある。
しかし、一般化ハフ変換によって、認識対象物の位置や回転角度を求めておけば、正規化相関演算を実行する範囲を限定でき、また回転モデルを作成する必要もなくなるから、処理時間を大幅に短縮して、精度の高い認識処理を実行することができる。
【０１０６】
ｂ．複数の基準点の設定
前記図５に示したモデル登録処理では、認識対象物の形状に応じて複数の基準点を設定してもよい。
たとえば、図９（Ａ）に示すように、所定の形状を有するモデルについて、その中心点が基準点Ｏとして設定されている場合に、モデルと同じ形状とこれに反転する形状とが重なって点対称の形状になった認識対象物が存在すると、前記したように、基準点Ｏに対する得票が小さくなり、基準点Ｏを正しく抽出できなくなる可能性がある。また、基準点Ｏを抽出できた場合でも、モデルに対応する形状が２つ存在することまでは認識できない。
【０１０７】
一方、図９（Ｂ）に示すように、前記モデルについて、その中心点を第１の基準点Ｏ１とし、Ｏ１から所定距離を隔てた点を第２の基準点Ｏ２とすると、前記認識対象物について、基準点Ｏ１のほかに、２つの基準点Ｏ２１，Ｏ２２を抽出することができる。よって、これらの点の位置関係から、認識対象物の形状や姿勢を誤らずに判別することができる。
【０１０８】
ｃ．基準点Ｏの座標を２つ算出する方法
たとえば、図１０に示すように、モデルと認識対象物との間で明暗の関係が逆になっていると、処理対象画像のエッジ点における濃度勾配方向も基準画像とは反対の方向を向くことになる。このようなケースが想定される場合には、図１１に示すように、処理対象画像上の各エッジ点Ｅについて、前記角度βが示す方向ｈ１およびこれに反転する方向ｈ２からそれぞれ反時計回りに角度φ回転した方向において、基準点の候補点Ｏ１，Ｏ２の座標を求める必要がある。
【０１０９】
この場合、すべてのエッジ点について、それぞれ（Ｘ，Ｙ，Θ）の組を２組ずつ求めて投票処理を行うことになるが、前記ｈ１，ｈ２のうち、基準点Ｏへの方向とは異なる方向に対応する（Ｘ，Ｙ，Θ）の内容はエッジ点毎に異なるものとなる。よって、基準点Ｏへの方向とは異なる方向に対応する投票では、前記許容値Ｍ２を超える長さの合成ベクトルは作成されず、基準点Ｏへの方向において、その正しい座標および正しい回転角度を求めることができる.
【０１１０】
またカラー濃淡画像を処理する場合にも、図１１と同様の処理を行う必要がある。カラー濃淡画像上のエッジを抽出するには、濃度勾配の大きさに代えて色彩の変化量（色差）を求めなければならないが、色差は、Ｒ，Ｇ，Ｂの各色成分を軸とする３次元空間の距離として求められるため、色彩の変化量が大きい点をエッジ点として抽出できるだけになる。このため、基準点の位置が不明な処理対象画像においては、前記ｈ１，ｈ２のいずれの方向に基準点があるか特定できないから、両方向を処理対象とする必要がある。
【０１１１】
ｄ．投票処理の他の例
前記した実施例では、回転角度Θの正弦および余弦の値を投票するようにしたが、これに代えて、回転角度Θに対応するベクトルの水平成分および垂直成分を投票してもよい。この場合の各成分は、回転角度Θに応じた正または負の値で表されるから、前記図３に示したのと同様に、投票のあった座標（Ｘ，Ｙ）毎に各成分の累積値を求め、最終的な値の自乗和を求める方法によって、認識対象物の位置や回転角度を精度良く求めることができる。
【図面の簡単な説明】
【０１１２】
【図１】この発明が適用された画像処理装置の設置例を示す説明図である。
【図２】画像処理装置のブロック図である。
【図３】投票処理の概要を示す説明図である。
【図４】検査の手順を示すフローチャートである。
【図５】モデル登録処理の手順を示すフローチャートである。
【図６】初期サーチの手順を示すフローチャートである。
【図７】詳細サーチの手順を示すフローチャートである。
【図８】モデルエッジ点への対応点、およびマスクの設定例を示す説明図である。
【図９】基準点を複数設定する意義を説明するための図である。
【図１０】基準点の座標を２つ算出しなければならない事例を示す説明図である。
【図１１】基準点の座標を２つ算出する場合の算出方法を示す説明図である。
【図１２】一般化ハフ変換で使用する基準画像および登録情報を示す説明図である。
【図１３】モデルテーブルの構成例を示す説明図である。
【図１４】処理対象画像の一例を、モデルエッジ点との関係とともに示す説明図である。
【図１５】従来の一般化ハフ変換における投票処理を示す説明図である。
【図１６】非特許文献１に開示された投票処理を示す説明図である。
【符号の説明】
【０１１３】
２  コントローラ
７  認識対象物
２１  ＣＰＵ
２２  フラッシュメモリ
２３  ＲＡＭ
３０  基準画像
３１  処理対象画像
【図１】
2007128374.tif 000004
【図２】
2007128374.tif 000005
【図３】
2007128374.tif 000006
【図４】
2007128374.tif 000007
【図５】
2007128374.tif 000008
【図６】
2007128374.tif 000009
【図７】
2007128374.tif 000010
【図８】
2007128374.tif 000011
【図９】
2007128374.tif 000012
【図１０】
2007128374.tif 000013
【図１１】
2007128374.tif 000014
【図１２】
2007128374.tif 000015
【図１３】
2007128374.tif 000016
【図１４】
2007128374.tif 000017
【図１５】
2007128374.tif 000018
【図１６】
2007128374.tif 000019