(57)【特許請求の範囲】
【請求項１】
計測対象の濃淡画像上に所定のモデル画像上の濃度勾配方向を示すモデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出する画像処理方法であって、
前記モデルデータとして、モデル画像に含まれる複数の画素についてそれぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群を構成しておき、
前記計測対象の濃淡画像とモデルデータとの画素単位での濃度勾配方向の不一致度を対応する画素間の濃度勾配方向の角度差に基づき求める関数として、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向かって徐々に値が増加するような関数を設定し、
前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との間の濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計するとともに、不一致度の累計結果が過去の走査位置で得られた最小の不一致度を上回ったときは累計処理を打ち切り、累計処理が完了した時点の不一致度が前記最小の不一致度を下回るときはその不一致度により最小の不一致度を更新し、
前記モデルデータの走査が終了したとき、この時点での最小の不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定することを特徴とする画像処理方法。
【請求項２】
計測対象の濃淡画像上に所定のモデル画像上の濃度勾配方向を示すモデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出する画像処理方法であって、
前記モデルデータとして、モデル画像に含まれる複数の画素についてそれぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群を構成しておき、
前記計測対象の濃淡画像とモデルデータとの画素単位での濃度勾配方向の不一致度を対応する画素間の濃度勾配方向の角度差に基づき求める関数として、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向けて徐々に値が増加するような関数を設定し、
前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との間の濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計するとともに、不一致度を累計する都度その累計結果を所定のしきい値と比較して、前記しきい値を上回る不一致度が得られたときは累計処理を打ち切り、累計処理が完了した時点の不一致度が前記しきい値を下回るときはその不一致度により前記しきい値を更新し、
前記モデルデータの走査が終了したとき、この時点のしきい値に相当する不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定することを特徴とする画像処理方法。
【請求項３】
請求項１または２に記載された画像処理方法において、
前記関数として、前記角度差の正弦の絶対値を求める関数を設定する画像処理方法。
【請求項４】
請求項１に記載された画像処理方法において、
前記モデルデータの走査が終了した時点の最小の不一致度に基づき前記モデル画像に対応する画像領域とモデル画像との類似度を算出する処理を実行する画像処理方法。
【請求項５】
濃淡画像を入力する画像入力手段と、
前記画像入力手段が入力した濃淡画像上における濃度勾配の方向を抽出する濃度勾配方向抽出手段と、
所定のモデル画像に含まれる複数の画素についてそれぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群を、モデルデータとして登録するモデルデータ登録手段と、
前記画像入力手段が入力した濃淡画像上に前記モデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出するマッチング手段とを具備し、
前記マッチング手段は、
前記濃淡画像とモデルデータとの間で対応づけた画素間の濃度勾配方向の角度差を、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向かって徐々に値が増加するような関数にあてはめることにより、前記対応づけた画素間の濃度勾配の不一致度を算出する機能を具備し、前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計する手段と、
前記不一致度が累計される都度、その累計結果を過去の走査位置で得られた最小の不一致度と比較する手段と、
前記累計処理の途中で前記最小の不一致度を上回る不一致度が得られたとき、累計処理を打ち切ってモデルデータをつぎの走査位置に移行させる手段と、
前記累計処理が完了した時点での不一致度が前記最小の不一致度を下回ったとき、その不一致度により最小の不一致度を更新する手段と、
前記モデルデータの走査が終了したとき、この時点での最小の不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する手段とを具備して成る画像処理装置。
【請求項６】
濃淡画像を入力する画像入力手段と、
前記画像入力手段が入力した濃淡画像上における濃度勾配の方向を抽出する濃度勾配方向抽出手段と、
所定のモデル画像に含まれる複数の画素についてそれぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群を、モデルデータとして登録するモデルデータ登録手段と、
前記画像入力手段が入力した濃淡画像上に前記モデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出するマッチング手段とを具備し、
前記マッチング手段は、
前記濃淡画像とモデルデータとの間で対応づけた画素間の濃度勾配方向の角度差を、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向かって徐々に値が増加するような関数にあてはめることにより、前記対応づけた画素間の濃度勾配の不一致度を算出する機能を具備し、前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計する手段と、
前記不一致度が累計される都度、その累計結果を所定のしきい値と比較する手段と、
前記累計処理の途中で前記しきい値を上回る不一致度が得られたとき、累計処理を打ち切ってモデルデータをつぎの走査位置に移行させる手段と、
前記累計処理が完了した時点での不一致度が前記しきい値を下回ったとき、その不一致度により前記しきい値を更新する手段と、
前記モデルデータの走査が終了したとき、この時点のしきい値に相当する不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する手段とを具備して成る画像処理装置。
【請求項７】
請求項６または７に記載された画像処理装置において、
前記関数として、前記角度差の正弦の絶対値を求める関数が設定されている画像処理装置。
【請求項８】
請求項６または７に記載された画像処理装置において、
前記不一致度の累計結果と比較されるしきい値を初期設定するためのデータを入力する手段と、この手段により入力されたデータに基づき前記しきい値の初期値を設定する手段とを具備して成る画像処理装置。
【請求項９】
請求項５に記載された画像処理装置において、
前記モデルデータの走査が終了した時点での最小の不一致度に基づき、前記モデル画像に対応する画像領域とモデル画像との類似度を算出する類似度算出手段を具備して成る画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータにより濃淡画像データを処理する分野に属するもので、特に、濃淡画像上で所定のモデル画像に類似する画像領域を抽出するための方法および装置に関連する。
【０００２】
【従来の技術】
濃淡画像上においてモデル画像に対する類似度を抽出するための代表的な方法として、各画素の濃度データを用いて正規化相関演算を行う方法が知られている。しかしながらこの方法は、シェーディングの発生や背景画像の変動による影響を受けやすいため、安定した計測を行うのは困難である。
【０００３】
上記の問題を解決するために、出願人は、先般、処理対象の濃淡画像とモデル画像との間で濃度勾配方向のパターンを比較することによって画像間の類似度を計測する方法を提案した（特開平９−５４８２８号公報）。この方法における類似度Ｒは、モデル画像上の各画素における濃度勾配方向Ｍθ（ｘ，ｙ）および濃度勾配の強度Ｍｗ（ｘ，ｙ）、計測対象の濃淡画像の各画素における濃度勾配方向Ｉθ（ｘ，ｙ）を用いてつぎの（１）式を実行することにより求められる。
【０００４】
【数１】
0004023096.tif 000002
【０００５】
上記（１）式において、ｍｘ，ｍｙは、ｘ，ｙの各軸方向におけるモデル画像の画素数（モデル画像のサイズ）であり、分母の部分はモデル画像における濃度勾配強度の総和を示す。また（１）式の分子の部分は、モデル画像と計測対象画像との間で対応する画素毎に濃度勾配方向の差に対する評価値ｆ（Ｉθ（ｘ，ｙ）−Ｍθ（ｘ，ｙ））を算出した上で、この評価値をモデル画像側の濃度勾配強度Ｍｗ（ｘ，ｙ）により重みづけし、さらに画素毎の算出結果を累計する処理を意味する。なお、前記評価値を求める関数ｆ（ω）は、ωの値が０に近いときに大きくなるように設定されており、たとえば
ｆ（ω）＝ｃｏｓω  と定義される。
【０００６】
上記（１）式の類似度Ｒによれば、計測対象の画像とモデル画像との各対応画素間において濃度勾配方向の差が小さい場合に大きな類似度が得られる。特にモデル画像上で濃度勾配強度が大きい画素に対応する評価値に大きな重みがかけられる一方、モデル画像上で濃度勾配強度が小さい画素に対応する評価値の重みは小さくなるので、計測対象の画像上にモデル画像と同様の輪郭パターンがあれば、シェーディングなどのノイズの影響を受けずに高い類似度を得ることができる。
【０００７】
さらに出願人は、上記方法による類似度の算出処理を高速化するために、前記（１）式の分子部分に相当する演算処理において、評価値の累計処理を行う都度、その累計結果を２種類のしきい値と比較し、累計結果がこれらしきい値により規定される数値範囲を外れた場合に累計処理を打ち切るようにすることを提案した（特開平１０−１６２１４３号公報）。
【０００８】
図１３は、特開平１０−１６２１４３号公報に開示された類似度の算出処理手順を示す。図中、ＳＴ２〜６のループでは、前記（１）式の分子部分の累計処理に相当する途中類似度ｒの算出処理を行うとともに、この途中類似度ｒを前記２種類のしきい値と比較している。ＳＴ３，４に示すしきい値Θ１（ｉ），Θ２（ｉ）は、それぞれ下記の（２）（３）式により求められるもので、たとえば（２）（３）式におけるθ１を０．８、θ２を０．６とすることにより、Θ１（ｉ）＞Θ２（ｉ）となるように設定される。
【０００９】
【数２】
0004023096.tif 000003
【００１０】
【数３】
0004023096.tif 000004
【００１１】
上記したアルゴリズムでは、モデル画像の濃度勾配強度により重みづけされたしきい値Θ１（ｉ）,Θ２（ｉ）により途中類似度ｒの値をチェックしている。途中類似度ｒが各しきい値の示す範囲内にある場合は、ＳＴ２〜６のループを続けて実行し、ループを終了した時点でＳＴ７に進む。ＳＴ７では、前記ループにおける途中類似度ｒの累計値をモデル画像のエッジ強度の総和ΣＭｗ（ｉ）で割ることにより、前記（１）式の演算結果に相当する類似度Ｒを算出する。
一方、途中類似度ｒが高い方のしきい値よりも大きくなった場合（ＳＴ３の判定が「ＮＯ」の場合）、または途中類似度ｒが低い方のしきい値よりも小さくなった場合（ＳＴ４の判定が「ＮＯ」の場合）は、途中類似度ｒの加算処理を打ち切ってＳＴ７に移行する。すなわち画像間における濃度勾配方向が十分に類似する場合、または類似度が低い場合には、演算処理が早い段階で打ち切られ、ＳＴ７においておよその類似度が算出されることになる。
【００１２】
【発明が解決しようとする課題】
上記のアルゴリズムでは、途中類似度ｒの加算処理を行う毎に（２）（３）式の演算によりしきい値Θ１（ｉ），Θ２（ｉ）を算出する必要がある。したがって入力画像上でモデル画像に類似する画像領域を抽出する処理を行う場合は、入力画像上に前記モデル画像を走査しながら図１３のアルゴリズムを繰り返し行わなければならないが、アルゴリズムを繰り返す都度、前記（２）（３）式も繰り返されることになるため、その繰り返し分だけ処理が遅くなる。すなわち、前記アルゴリズムには、濃淡画像上にモデル画像を走査しながら濃度勾配方向を順に比較してゆく場合に、各走査位置における演算処理を十分に高速化できないという欠点がある。
【００１３】
さらに上記のアルゴリズムでは、途中類似度ｒの演算処理を打ち切った場合は、類似度Ｒの値を正確に求めることは不可能となる。言い換えれば、モデル画像に対する類似度が最も高くなる画像領域を抽出する必要がある場合には、上記のアルゴリズムを使用できないということになる。
【００１４】
この発明は上記問題点に着目してなされたもので、モデル画像との濃度勾配方向の比較処理を順次行いながらモデル画像に対応する画像領域を抽出する処理について、比較処理のための演算を大幅に高速化するとともに、モデル画像に対する類似度が最大となる画像領域を高精度で求めることを目的とする。
【００１５】
【課題を解決するための手段】
この発明は、濃淡画像上に所定のモデル画像上の濃度勾配方向を示すモデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出する方法に適用される。
【００１６】
前記モデルデータは、モデル画像に含まれる複数の画素について、それぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群として構成される。たとえば、モデル画像の各構成画素毎にその画素を境とする濃度勾配の方向を示す角度データを抽出し、この角度データを各画素の配列に沿って並べたデータ列（通常の画像データと同様の構成のもの）をモデルデータとすることができる。
【００１７】
この発明では、計測対象の濃淡画像とモデルデータとの画素単位での濃度勾配方向の不一致度を対応する画素間の濃度勾配方向の角度差に基づき求める関数として、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向かって徐々に値が増加するような関数（たとえば、角度差の正弦の絶対値を求める関数）を設定する。そして前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との間の濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計するとともに、不一致度の累計結果が過去の走査位置で得られた最小の不一致度を上回ったときは累計処理を打ち切り、累計処理が完了した時点の不一致度が前記最小の不一致度を下回るときはその不一致度により最小の不一致度を更新し、前記モデルデータの走査が終了したとき、この時点での最小の不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する。
【００１８】
なお、画素単位での不一致度の算出においては、前記（１）式に示した従来の類似度の算出方法と同様に、モデル画像における濃度勾配強度により不一致度に重みづけを行うか、または、モデル画像上で濃度勾配強度が所定値以上の画素に対する不一致度のみが有効となるようにするのが望ましい。またモデルデータを作成する時点で濃度勾配強度の小さい画素におけるデータを除くようにすれば、不一致度の算出対象となるデータを削減して、演算処理に要する時間をより一層短縮することができる。
【００１９】
上記の方法によれば、不一致度の累計処理過程において、不一致度の累計結果がそれぞれ最小の不一致度を上回った時点で累計処理を打ち切るので、既に処理を終えた走査位置よりも不一致度が大きくなる走査位置に対する演算処理時間を短縮することができる。また前記図１３のアルゴリズムと比較すると、累計処理の都度、しきい値を求めるための演算処理を行う必要がなくなる分だけ演算処理を高速化することができる。
【００２０】
さらに、累計処理を最後まで実行した場合の不一致度が最小の不一致度を下回る場合には、その不一致度により最小の不一致度を更新するので、濃度勾配方向のパターンがモデルデータに類似する画像領域の出現によって不一致度の最小値が引き下げられる。よって、より高い類似度を持つ画像領域が出現する都度、不一致度の最小値が引き下げられて、不一致度の累計処理がより早い段階で打ち切られるようになり、演算処理時間をより短くすることが可能になる。
また走査が終了した時点での最小の不一致度が得られた走査位置は、モデルデータに最も類似する濃度勾配方向のパターンを有することになるから、この走査位置においてモデルデータに対応させた画像領域を抽出対象の画像領域として特定することにより、濃淡画像上においてモデル画像に最も類似する画像領域を高精度で抽出することができる。
【００２１】
なお、最小の不一致度を一旦更新した後に、他の走査位置においてこの最小の不一致度と同値の不一致度が得られた場合に、これら２箇所の走査位置をそれぞれ最小の不一致度を得た走査位置として記憶するようにすれば、モデル画像に対し最大の類似度を持つ画像領域が複数存在する場合にも、各画像領域を抽出することが可能となる。
【００２２】
さらにこの発明では、前記モデルデータの走査が終了した時点の最小の不一致度に基づき、前記モデル画像に対応する画像領域とモデル画像との類似度を算出することができる。なお、前記「画像領域とモデル画像との類似度」は、「画像領域内の濃度勾配方向とモデルデータとの類似度」と言い換えることができる。この類似度が高いほど、前記画像領域内の輪郭パターンは、モデル画像上の対象物の輪郭パターンに類似するものとなる。
【００２３】
前記したように、最小の不一致度の更新処理を行った走査位置では、モデルデータの全ての要素に対する不一致度の累計処理を行っているから、不一致度が精度良く求められていることになる。したがって前記モデル画像に対応する画像領域を特定した後に、前記最小のしきい値によりこの画像領域とモデル画像との類似度を求めることにより、前記モデル画像に対する類似度が最も高い画像領域について、その領域の位置およびモデル画像に対する類似度を精度良く求めることができる。
【００２４】
この発明の好ましい態様では、前記最小の不一致度をしきい値として設定して、各走査位置における比較処理を行う。すなわちモデルデータの走査開始時点でしきい値に所定の初期値を設定しておき、以後、各走査位置において、モデルデータ中の各画素と対応画素との間の濃度勾配方向の不一致度を前記関数を用いて画素単位で算出しつつ累計するとともに、不一致度を累計する都度その累計結果を前記しきい値と比較して、しきい値を上回る不一致度が得られたときは累計処理を打ち切り、累計処理が完了した時点の不一致度がしきい値を下回るときはその不一致度により前記しきい値を更新する。そしてモデルデータの走査が終了したとき、この時点のしきい値に相当する不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する。
【００２５】
上記態様によれば、モデルデータの走査開始時点で初期値を設定した後は、累計処理結果に応じて所定の走査位置でしきい値を更新するだけであり、前記図１３のアルゴリズムのようにしきい値を求めるための演算処理を行う必要はない。
このように最小の不一致度を示すしきい値を設定すると、走査を開始した直後からモデルデータに対する類似度が極端に低い走査位置に対する演算を途中で打ち切ることができるので、演算時間をより一層短縮することが可能となる。
【００２６】
さらにこの発明は、濃淡画像を入力する画像入力手段と、前記画像入力手段が入力した濃淡画像上における濃度勾配の方向を抽出する濃度勾配方向抽出手段と、所定のモデル画像に含まれる複数の画素についてそれぞれその画素における濃度勾配方向と画素の位置とを対応づけたデータ群を、モデルデータとして登録するモデルデータ登録手段と、画像入力手段が入力した濃淡画像上に前記モデルデータを走査しつつ前記濃淡画像上の濃度勾配方向とモデルデータとを比較し、各走査位置における比較結果に基づき前記濃淡画像上において前記モデル画像に対応する画像領域を抽出するマッチング手段とを具備する画像処理装置に適用することができる。この場合のマッチング手段には、前記濃淡画像とモデルデータとの間で対応づけた画素間の濃度勾配方向の角度差を、角度差が０度および１８０度の各値をとるときにそれぞれ最小値になり、角度差が９０度および２７０度の各値をとるときにそれぞれ最大値になり、最小値に対応する角度から最大値に対応する角度に向かって徐々に値が増加するような関数にあてはめることにより、前記対応づけた画素間の濃度勾配の不一致度を算出する機能を具備し、前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計する手段と、前記不一致度を累計する都度、その累計結果を過去の走査位置で得られた最小の不一致度と比較する手段と、前記累計処理の途中で前記最小の不一致度を上回る不一致度が得られたとき、累計処理を打ち切ってモデルデータをつぎの走査位置に移行させる手段と、前記累計処理が完了した時点での不一致度が前記最小の不一致度を下回ったとき、その不一致度により前記最小の不一致度を更新する手段と、前記モデルデータの走査が終了したとき、この時点での最小の不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する手段とが設定される。
【００２７】
前記画像入力手段は、たとえば撮像装置により撮像された画像を入力するためのインターフェースやＡ／Ｄ変換回路などにより構成される。また濃度勾配方向抽出手段およびマッチング手段は、各手段の処理を実行するためのソフトウェアが組み込まれたコンピュータにより構成することができる。ただし、各手段は、必ずしもソフトウェアに限らず、ハードウェアにより実現することもできる。（たとえば濃度勾配方向抽出手段は、濃淡画像上の局所領域内の濃度勾配方向を抽出するためのエッジ抽出用フィルタが設定された微分回路として構成可能である。またマッチング手段における不一致度の算出処理や比較処理も、それぞれ個別の演算回路により実行させることができる。）
【００２８】
なお、上記の画像処理装置には、画像入力手段により入力された濃淡画像について、濃度勾配方向抽出手段やマッチング手段の処理対象となる計測対象領域の指定を受け付ける手段を付加することができる。この場合、指定された計測対象領域内の画像のみが処理されて、その計測領域内においてモデル画像に最も類似する画像領域が抽出されるようになる。ただしこの手段は必須のものではなく、入力された濃淡画像全体を処理の対象としても差し支えない。
【００２９】
また上記の画像処理装置においても、前記したように、最小の不一致度を示すしきい値を設定し、各走査位置において不一致度の累計結果をしきい値と比較しつつ、最小の不一致度が得られる都度、その値によりしきい値を更新するように構成することができる。この場合のマッチング手段には、前記モデルデータの各走査位置において、モデルデータ中の各画素と対応画素との濃度勾配方向の不一致度を前記関数を用いて画素単位で順に算出しつつ累計する手段、前記不一致度が累計される都度その累計結果を所定のしきい値と比較する手段、前記累計処理の途中で前記しきい値を上回る不一致度が得られたとき、累計処理を打ち切ってモデルデータをつぎの走査位置に移行させる手段、前記累計処理が完了した時点での不一致度が前記しきい値を下回ったとき、その不一致度により前記しきい値を更新する手段、前記モデルデータの走査が終了したとき、この時点のしきい値に相当する不一致度が得られた走査位置により前記モデル画像に対応する画像領域を特定する手段、の各手段が設けられる。
【００３０】
さらに上記態様の画像処理装置においては、前記不一致度の累計結果と比較されるしきい値を初期設定するためのデータを入力する手段と、入力されたデータに基づき前記しきい値の初期値を設定する手段を設けることができる。なお入力されるデータは、不一致度のしきい値そのものでも良いが、モデル画像に対する類似度としてのしきい値を入力した後に、この入力データから不一致度のしきい値を初期設定してもよい。
上記構成を付加した装置においては、ユーザーが所望のしきい値を設定できるから、ノイズの混入などによりモデル画像との類似度が低い画像についても、設定の変更によってモデル画像に対応する画像領域を抽出することができる。しかも初期値よりも不一致度の小さい画像領域があれば、その画像領域を抽出することができるから、しきい値の初期値を厳密に設定しなくとも、モデル画像に最も類似する画像領域を抽出することが可能となる。
【００３１】
さらにこの発明の画像処理装置には、画像入力手段により入力された濃淡画像に対しモデル画像とする画像領域の指定を受け付ける手段と、指定された画像領域を切り出してモデル画像として登録する手段とを設けることができる。
この構成によれば、計測処理に先立ち、対象物のモデルを撮像して得た濃淡画像を取り込んで、その画像上の任意の画像領域をモデル画像として登録することができる。ただし、モデル画像を登録するための構成は上記に限らず、たとえば、他の装置で作成されたモデル画像を通信または所定の記録媒体を介して取り込んで登録するようにしてもよい。
【００３２】
【発明の実施の形態】
図１は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置１は、濃淡画像上において、あらかじめ登録されたモデルに輪郭パターンが類似する対象物を抽出するためのもので、画像入力部２，画像メモリ３，画像出力部４，タイミング制御部５，キャラクタ・グラフィックメモリ６，文字メモリ７，制御部８，モニタ９，Ｉ／Ｏポート１０などにより構成される。
【００３３】
画像入力部２は、図示しないアナログカメラからの濃淡画像信号を取り込むためのインターフェイス回路，前記濃淡画像信号をディジタル変換するためのＡ／Ｄ変換回路，ノイズカット用のフィルタ回路などにより構成される。なお前記カメラはアナログカメラに限らず、ディジタルカメラを用いてもよい。
【００３４】
前記画像メモリ３は、画像入力部２により取り込まれたディジタル量の濃淡画像データ（以下単に、「画像」という。）のほか、前記モデル画像や計測処理の過程で生成される処理結果を画像データの形式に編集したデータ（以下、「処理結果画像」という。）を記憶する。キャラクタ・グラフィックメモリ６には、一連の処理により抽出された対象物の位置を示すポインタなどのデータが、文字メモリ７には、前記対象物の抽出位置を示す座標やその対象物と前記モデルとの類似度などを示すテキストデータが、それぞれ格納される。
これらメモリ３，６，７は、それぞれアドレス／データバス１１を介して制御部８に接続され、制御部８からの指示に応じたデータを、タイミング制御部５からのタイミング信号に応じて画像出力部４またはアドレス／データバス１１に出力する。
【００３５】
前記制御部８は、ＣＰＵ１２，ＲＯＭ１３，ＲＡＭ１４を主体とし、このほかに後記する計測処理手順を示す制御プログラムがインストールされたハードディスク１５を具備する。ＣＰＵ１２は、ハードディスク１５内の制御プログラムに基づき、アドレス／データバス１１を介して各メモリに対する情報の読書きを行いつつ目的とする計測処理を実行する。
【００３６】
前記画像出力部４は、モニタ９に対し、画像入力部２より入力した画像のほか、モデル画像，処理結果画像，計測結果を示すポインタや文字情報などを単独または合成した状態で与え、画面上に表示させる。Ｉ／Ｏポート１０は、キーボード，マウスなどの入力部や、外部記憶装置，伝送部のような出力部に接続され、入力部からの各種設定データを入力したり、計測結果を外部に出力する際に用いられる。
【００３７】
この実施例では、計測処理に先立ち、前記モデルを撮像して得られた画像上でユーザーによる領域の指定を受け付け、この指定された画像領域内の画像データを切り出してモデル画像として登録するようにしている。さらにこの実施例では、前記モデル画像の各画素につき、濃度勾配強度や濃度勾配方向を抽出した後、これらの抽出結果を、それぞれ画素の位置に対応づけた形式の処理結果画像として編集した後、各処理結果画像をモデルデータとして画像メモリ３内に登録するようにしている。
【００３８】
一方、計測対象の画像については、ユーザーによる計測対象領域の指定を受け付けた後、この計測対象領域における各画素毎の濃度勾配方向を抽出する。この抽出結果は、前記モデルデータと同様の処理結果画像として編集され、画像メモリ３に保存される。
さらにこの実施例の計測処理では、前記計測対象領域における濃度勾配方向のパターンをモデルデータと比較し、モデルデータに類似度が最も高くなる画像領域を抽出するようにしている。
【００３９】
ここでこの実施例における濃度勾配強度、濃度勾配方向の抽出方法について説明する。なお、濃度勾配の抽出結果は、画像上のエッジの位置を表すものとなるので、以下の説明では、濃度勾配強度を「エッジ強度」、濃度勾配方向を示すデータを「エッジコード」と呼ぶことにする。
【００４０】
濃淡画像上の一画素における濃度勾配は、その画素を中心として濃度の変化する方向と変化量とを示すベクトルとして表される。この濃度勾配の抽出は、一般に、濃淡画像上に所定大きさのマスクを走査しつつ、このマスクにソーベルオペレータのようなエッジ抽出用フィルタを作用させてｘ，ｙの各軸方向毎に分解された濃度勾配を抽出することによって行われる。座標（ｘ，ｙ）の位置の画素におけるエッジ強度Ｅｉ（ｘ，ｙ）は、各軸方向毎の濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ，ｙ）をつぎの（４）式にあてはめることによって算出される。
【００４１】
【数４】
0004023096.tif 000005
【００４２】
つぎにこの実施例では、エッジコードとして、濃度勾配方向に直交する方向が所定の基準方向に対してなす角度を求めるようにしている。
図２は、対象物の輪郭部分の一部を拡大して示したものである。図中、Ｅは、着目対象の画素であり、Ｆはこの画素における濃度勾配の方向を、Ｃは前記ベクトルＦに直交する方向を、それぞれ示す。なお図示例では、濃度勾配の方向を、濃度の高い方から低い方へと向かう方向として表しているが、この方法を逆転して示しても良い。
【００４３】
この実施例では、画素Ｅからｘ軸の正方向に向かうベクトルＢを基準の方向とし、ベクトルＣをベクトルＢから半時計回り方向に見たときの角度Ｅｃ（ｘ，ｙ）をエッジコードとしている。このエッジコードＥｃ（ｘ，ｙ）は、濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ，ｙ）の値に応じて下記（a）〜（e）のいずれかの式によって求められる。
【００４４】
（a）Ｅｘ（ｘ，ｙ）＞０  および  Ｅｙ（ｘ，ｙ）≧０のとき、
Ｅｃ（ｘ，ｙ）＝ａｔａｎ（Ｅｙ（ｘ，ｙ）／Ｅｘ（ｘ，ｙ））
（b）Ｅｘ（ｘ，ｙ）＞０  および  Ｅｙ（ｘ，ｙ）＜０のとき、
Ｅｃ（ｘ，ｙ）＝３６０＋ａｔａｎ（Ｅｙ（ｘ，ｙ）／Ｅｘ（ｘ，ｙ））
（c）Ｅｘ（ｘ，ｙ）＜０のとき、
Ｅｃ（ｘ，ｙ）＝１８０＋ａｔａｎ（Ｅｙ（ｘ，ｙ）／Ｅｘ（ｘ，ｙ））
（d）Ｅｘ（ｘ，ｙ）＝０  および  Ｅｙ（ｘ，ｙ）＞０のとき、
Ｅｃ（ｘ，ｙ）＝０
（e）Ｅｘ（ｘ，ｙ）＝０  および  Ｅｙ（ｘ，ｙ）＜０のとき、
Ｅｃ（ｘ，ｙ）＝１８０
【００４５】
なおこの実施例では、ソフトウェア処理によりマスクを走査して前記濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ，ｙ）を抽出し、さらにエッジ強度Ｅｉ（ｘ，ｙ）やエッジコードＥｃ（ｘ，ｙ）を求めているが、これに限らず、専用の微分回路により、画像メモリ３への画像入力に並行させて濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ，ｙ）を求め、さらに専用の演算回路でエッジ強度Ｅｉ（ｘ，ｙ）やエッジコードＥｃ（ｘ、ｙ）を求めるようにしてもよい。
また濃度勾配方向を示すデータは、前記エッジコードＥｃ（ｘ，ｙ）に限らず、たとえばベクトルＦの方向そのものをベクトルＢに対する角度として表しても良い。
【００４６】
またエッジ抽出用のマスクの大きさは、計測目的によって任意の大きさに設定することができる。マスクが大きくなるほど濃度勾配の微小な変化がカットされるので、抽出されるエッジを対象物の主要な輪郭パターンに限定したい場合は、比較的大きなマスクを使用すればよい。
【００４７】
この実施例では、前記エッジコードの抽出結果を示す処理結果画像上にモデル画像に応じたサイズのマスクを走査しつつ、マスク内のエッジコードのパターンとモデルデータとの不一致度を算出してゆき、不一致度が最小となる走査位置を前記モデルデータに最も類似する画像領域の位置、すなわちモデル画像上のモデルの輪郭パターンに最も類似する輪郭パターンの位置として特定するようにしている。
【００４８】
前記エッジコードの不一致度は、マスク内の画素毎の不一致度を順に算出して累計した値に相当する。
画素単位でのエッジコードの不一致度は、マスク内の一画素におけるエッジコードとこの画素に対応するモデルデータとの差に基づいて算出される。具体的にはエッジコードの差が大きくなるほど不一致度が大きくなるのが望ましいが、前記エッジコードの差の大きさに応じて不一致度の値を段階的に変化させるようにしてもよい。
またエッジコードの不一致度を算出する処理の目的は、前記モデル画像上の輪郭パターンに類似する輪郭パターンを抽出することにあるから、モデル画像上でエッジ画素として認定できる画素に対する不一致度のみが有効となるのが望ましい。
【００４９】
上記の点に鑑み、この実施例では、一走査位置における不一致度ｕｒをつぎの（５）式により算出するようにしている。なお、以下の説明では、モデル画像上の各画素の座標を（Ｘ，Ｙ），モデル画像のサイズをＬＸ，ＬＹとし、計測対象の画像上のマスクの設定位置（マスクの先頭画素に対応する座標位置）を（ｉ，ｊ）とする。
【００５０】
【数５】
0004023096.tif 000006
【００５１】
上記（５）式において、Ｉｃ（Ｘ＋ｉ，Ｙ＋ｊ）は、マスク内の着目画素におけるエッジコードを、Ｍｃ（Ｘ，Ｙ）は着目画素に対応するモデルのエッジコードを、Ｍｗ（Ｘ，Ｙ）は着目画素に対応するモデルのエッジ強度を、それぞれ示す。
また関数ｈは、前記画素単位の不一致度を示すもので、（６）式または（７）式に示すように設定される。また関数ｇは、前記モデルのエッジ強度Ｍｗ（Ｘ，Ｙ）の値に基づき、不一致度ｈ（θ）を有効または無効にするためのもので、（８）式のように定義される。
【００５２】
【数６】
0004023096.tif 000007
【００５３】
【数７】
0004023096.tif 000008
【００５４】
【数８】
0004023096.tif 000009
【００５５】
上記（６）式によれば、着目画素におけるエッジコードとモデルのエッジコードとの差θが９０°または２７０°のとき、不一致度ｈ（θ）は最大値１となり、θが０°または１８０°に近づくにつれて、不一致度ｈ（θ）は最小値０に近くなる。また（７）式によれば、θが０°から±４５°までの範囲にあるとき、不一致度ｈ（θ）は最小値の−１となり、θが１３５°から２２５°までの範囲にあるとき、不一致度ｈ（θ）は最大値の１となる。
【００５６】
なお、不一致度ｕｒ（ｉ，ｊ）の算出式は、上記に限らず、つぎの（９）（１０）式を用いてもよい。この場合の不一致度ｈ´（θ）は、−１８０°から１８０°の間で変動することになる。
【００５７】
【数９】
0004023096.tif 000010
【００５８】
【数１０】
0004023096.tif 000011
【００５９】
以下、前記不一致度ｕｒ（ｉ，ｊ）を用いてモデルに類似する輪郭パターンを抽出するための具体的なアルゴリズムを説明する。
図３は、前記モデル画像およびモデルデータを設定、登録するための処理手順を示す。まずＳＴ１では、対象物のモデルを撮像して得た画像を取り込む。この画像は、画像メモリ３に一時保存されるとともにモニタ９に表示されるもので、ユーザーによる領域指定操作が行われると、ＳＴ２で、指定された領域をモデル画像の切り出し領域として設定する。
【００６０】
つぎのＳＴ３では、この領域内の画像データをモデル画像として切り出し、前記画像メモリ３内に登録する。そしてＳＴ４では、このモデル画像の各画素について前述した方法によりエッジ強度Ｍｗ（Ｘ，Ｙ），エッジコードＭｃ（Ｘ，Ｙ）を算出し、それぞれの算出結果をモデルデータとして画像メモリ３内に登録する。
【００６１】
図４は、計測処理の一連の手順を示す。なお、この手順は、前記図３の手順によりモデルデータを登録した後に、任意の回数だけ繰り返し実行することができる。
まずＳＴ５では処理対象の画像を入力する。この入力画像も、前記モデル画像登録時の入力画像と同様に、画像メモリ３に一時保存されるとともに、モニタ９に表示される。
【００６２】
つぎのＳＴ６では、ユーザによる領域の指定操作を受け付けて、指定された領域を計測対象領域として設定する。ついでＳＴ７では、この計測対象領域内の各画素につき、エッジコードＩｃ（ｘ，ｙ）を算出する。この算出結果は、前記エッジコードの処理結果画像として画像メモリ３内に保存される。
【００６３】
ＳＴ８では、前記エッジコード画像上にモデル画像に対応する大きさのマスクを走査しつつ、走査位置毎に前記（５）式に相当する累計演算処理を行って、モデルデータに対するエッジコードの不一致度ｕｒ（ｉ，ｊ）が最小となる走査位置およびその不一致度を求める。ＳＴ９では、この最小の不一致度に基づき、前記モデルデータに対するエッジコードの類似度を算出する。そしてＳＴ１０では、前記モニタ９上の入力画像に重ねて、ＳＴ８，９の処理結果を示すポインタや文字情報を表示し、しかる後に処理を終了する。
【００６４】
図５は、前記ＳＴ８のマッチング処理における詳細な手順を、ｓｔ１〜１０の符号により示す。なお、同図において、ｕｒは一走査位置における不一致度を、ｕｒ＿minは不一致度と比較するためのしきい値を、それぞれ示す。
【００６５】
図５では、まずｓｔ１で、前記しきい値ｕｒ＿minを初期設定した後、つぎのｓｔ２，３で、マスクの設定位置を示すカウンタｊ，ｉを計測対象領域の先頭画素の座標（ｘ１，ｙ１）を示す値に設定する。
【００６６】
つぎのｓｔ４は、前記（５）式に相当する累計演算処理を行うためのものである。この処理の詳細は図６に示しているので、以下、図６を用いて説明する。
図６の手順においては、まず最初のｓｔ４−１で不一致度ｕｒの初期値を０に設定した後、ｓｔ４−２，４−３でＹ，Ｘをそれぞれ０に設定することにより、マスク内の先頭画素に着目する。
【００６７】
つぎのｓｔ４−４におけるｕｒ＿XYは、前記着目画素における不一致度である。この不一致度ｕｒ＿XYは、具体的にはつぎの（１１）式により求められる。
【００６８】
【数１１】
0004023096.tif 000012
【００６９】
前記ｓｔ４−４では、この画素単位の不一致度ｕｒ＿XYを求めるとともに、この算出結果を前記不一致度ｕｒに加算して、その加算値により不一致度ｕｒの値を更新している。この更新された不一致度ｕｒが前記しきい値ｕｒ＿minよりも小さい場合は、つぎのｓｔ４−５が「ＹＥＳ」となり、ｓｔ４−６〜４−７またはｓｔ４−６〜４−９からｓｔ４−３の手順によって着目画素を動かした後、再びｓｔ４−４を実行する。上記の処理がＸ＝ＬＸ，Ｙ＝ＬＹとなるまで続いた場合は、マスク内のすべての画素について不一致度ｕｒ＿XYが累計されるので、マスク全体の不一致度ｕｒが精度良く求められることになる。
【００７０】
一方、ｓｔ４−３〜４−９のループが終了する前に、不一致度ｕｒが前記しきい値ｕｒ＿min以上になった場合は、ｓｔ４−５が「ＮＯ」となり、残りの累計処理を打ち切って処理を終了する。
【００７１】
図５に戻って、上記の手順により、一走査位置における不一致度ｕｒが求められると、ｓｔ５において、この不一致度ｕｒを再び前記しきい値ｕｒ＿minと比較する。ここで前記図６の手順において累計処理が打ち切られている場合は、ｕｒ≧ｕｒ＿minであるから、図５の判定は「ＮＯ」となり、ＳＴ７〜８またはＳＴ７〜１０からＳＴ３の手順により前記マスクをつぎの走査位置に移動させた後、上記と同様の不一致度演算処理を実行する。
【００７２】
一方、図６のｓｔ４−３〜４−９のループが最後まで実行されており、最終の不一致度ｕｒがしきい値ｕｒ＿minよりも小さい場合は、ｓｔ５の判定が「ＹＥＳ」となり、ｓｔ６を実行してからマスクを移動させてつぎの不一致度演算処理を行う。
ｓｔ６では、前記不一致度ｕｒによりしきい値ｕｒ＿minを更新するとともに、現在のマスクの設定位置（ｉ，ｊ）をモデルデータへのマッチング位置（ｓｘ，ｓｙ）として設定する。
【００７３】
以下同様にして、ｉ，ｊの値が計測対象領域の最後尾の画素（ｘ２，ｙ２）になるまでｓｔ３〜１０のループを実行する。これによりモデルデータへの不一致度ｕｒがより小さい値になる都度、この不一致度ｕｒによりしきい値ｕｒ＿minの値が引き下げられ、かつマッチング位置（ｓｘ，ｓｙ）が更新される。したがってマスクの走査が終了した時点のマッチング位置（ｓｘ，ｓｙ）は、前記計測対象領域において、モデルデータに最も類似するエッジコードのパターンを含む画像領域の位置を示すものとなる。
【００７４】
なお、上記手順には明記していないが、不一致度のしきい値ｕｒ＿minが一旦更新された後に、累計処理後の不一致度ｕｒがしきい値ｕｒ＿minと同値になる走査位置が出現した場合は、マッチング位置（ｓｘ，ｓｙ）を更新する際に、更新前のマッチング位置も保持するのが望ましい。さらに走査の終了した時点で複数のマッチング位置が保持されている場合は、これらのマッチング位置をすべて有効とするのが望ましい。
【００７５】
前記図１３に示した従来の手順では、累計処理の都度、しきい値を求めるための演算を行う必要があったが、この実施例では、しきい値ｕｒ＿minに所定の初期値を設定した後は、累計処理結果を用いてしきい値ｕｒ＿minを更新すれば良いので、演算処理をより高速化できる。しかも走査の過程でしきい値ｕｒ＿minが引き下げられるにつれて、累計処理が早い段階で打ち切られるようになるので、モデルデータに類似しない画像領域に対する演算処理時間をより一層短縮できる。また走査が終了した時点のしきい値ｕｒ＿minにより、前記モデルデータに最も類似する走査位置（ｓｘ，ｓｙ）における類似度Ｒを精度良く求めることができる。
【００７６】
なお前記図４のＳＴ９における類似度をＲとすると、この類似度Ｒは、（５）式の不一致度演算式を使用している場合は（１２）式により、（９）式の不一致度演算式を使用している場合は（１３）式により、それぞれ求めることができる。
【００７７】
【数１２】
0004023096.tif 000013
【００７８】
【数１３】
0004023096.tif 000014
【００７９】
ところで前記不一致度のしきい値ｕｒ＿minの初期値は固定値としても良いが、計測処理に先立ち、ユーザーが任意の値を設定できるようにするのが望ましい。このようにしきい値ｕｒ＿minを可変設定できるようにすれば、計測対象の画像とモデル画像との間に高い類似度が認められない場合でも、しきい値ｕｒ＿minを高めの値に設定することによって、画像上で最も類似度の高い画像領域を抽出することができ、ノイズの多い画像についての計測精度を高めることができる。（画像の状態によっては、しきい値値ｕｒ＿minをゼロ設定してもよい。）しかもしきい値ｕｒ＿minよりも不一致度が小さくなる画像領域を抽出できるので、しきい値ｕｒ＿minを厳密に設定しなくとも、計測対象領域内においてモデルに最も類似する輪郭パターンを抽出することができる。
なお、ユーザーが指定するしきい値は、不一致度そのもののしきい値に限らず、モデル画像に類似すると判定する場合の最小の類似度を指定しても良い。
【００８０】
さらに上記画像処理装置１においては、計測処理の一部を変更または新たな処理を付加することにより、演算処理をより高速化したり、計測処理におけるロバスト性を高めることができる。以下、実施可能な各態様について順に説明する。
図７は、エッジ強度に基づいてエッジコードのモデルデータの個数を削減する場合の手順である。なお、この手順は、前記図３と同様の処理を実行した後に行われるもので、ここでは各ステップをＳＴ４０１〜４１１の符号で示す。
【００８１】
図中のＮは、モデルデータの登録数を示すカウンタであり、Ｍｃ´（Ｎ）は、削減後のモデルデータを表す一次元配列である。この手順では、まずＳＴ４０１でカウンタＮを初期値の０に設定した後、ＳＴ４０２，４０３でＹ，Ｘの値をそれぞれ０に設定することによって、モデル画像の先頭画素に着目する。
【００８２】
つぎのＳＴ４０４では、前記着目画素のエッジ強度Ｍｗ（Ｘ，Ｙ）をしきい値ＭＬと比較する。ここでエッジ強度Ｍｗ（Ｘ，Ｙ）が前記しきい値ＭＬ以上であれば、ＳＴ４０４が「ＹＥＳ」となってＳＴ４０５に進み、前記着目画素のエッジコードＭｃ（Ｘ，Ｙ）を有効なモデルデータのＮ番目の要素Ｍｃ´（Ｎ）として設定する。
【００８３】
つぎのＳＴ４０６におけるＭＡ（Ｎ）は、モデル画像上において前記Ｎ番目のモデルデータに対応する画素の位置を表す１次元配列である。このＳＴ４０６では、ＭＡ（Ｎ）の値として、着目画素の画素位置（Ｘ，Ｙ）をＸ軸方向に沿う１次元配列上の位置に置き換えた値Ｙ＊ＬＸ＋Ｘを設定する。さらにＳＴ４０７では、つぎのモデルデータの登録に備えてＮの値をインクリメントする。
【００８４】
一方、前記エッジ強度Ｍｗ（Ｘ，Ｙ）がしきい値ＭＬを下回る場合には、ＳＴ４０５〜４０７の処理をスキップすることで、着目画素のモデルデータを登録対象から除外する。
【００８５】
以下、ＳＴ４０８〜４０９またはＳＴ４０８〜４１１からＳＴ４０３の手順により、着目画素を動かしながら同様の処理を繰り返す。こうしてＳＴ４０３〜４１０のループがＬＸ＊ＬＹ回実行されると、モデル画像上でエッジ強度がしきい値ＭＬを越える画素のエッジコードを順に配列したモデルデータが作成される。
【００８６】
つぎに、この実施例における計測処理の主要な流れは前記図４，５に示したのと同様であるが、図５のＳＴ４において、前記図６の手順に代えてつぎに示す図８の手順が実行される。（図８では、各手順をｓｔ´４−１〜ｓｔ´４−６の符号により示す。）
なお以下の説明では、図８の手順を実行するために、計測対象の画像上のエッジコードを、マスクの走査方向（ｘ軸方向）に沿って並べた一次元配列Ｉｃ´（Ｐ）を作成しているものとする。
【００８７】
図８では、ｓｔ´４−１において、不一致度ｕｒに初期値０を設定した後、ｓｔ´４−２で、カウンタＫに初期値０を設定する。つぎのｓｔ´４−３では、前記一次元配列Ｉｃ´（Ｐ）からモデルデータのＫ番目の要素ＭＣ´（Ｋ）に対応するデータＩｃ´（ｉ＊ｄｘ＋ｉ＋ＭＡ（Ｋ））を読み出して、つぎの（１４）式により不一致度ｕｒ＿Kを算出し、この値を不一致度ｕｒに加算した値により不一致度ｕｒを更新する。
なお、（１４）式において、ｄｘは、計測対象領域のｘ軸方向における画素数である。
【００８８】
【数１４】
0004023096.tif 000015
【００８９】
つぎのｓｔ´４−４では、加算後の不一致度ｕｒを前記しきい値ｕｒ＿minと比較する。ここで不一致度ｕｒがしきい値ｕｒ＿minを下回れば、ｓｔ´４−５，４−６においてＫの値を更新してｓｔ´４−３に戻り、つぎの要素に対応する不一致度ｕｒ＿Kを算出して前記不一致度ｕｒに加算する。
以下、同様にして、着目画素を順に動かしながら、モデルデータの各要素に対応する不一致度を算出しつつ累計する。ただしこの累計処理の過程で不一致度ｕｒがしきい値ｕｒ＿min以上になった場合は、ｓｔ´４−４が「ＹＥＳ」となって、累計処理が打ち切られる。
【００９０】
上記図７，８の手順によれば、モデルデータをエッジ強度がしきいを越える画素のデータに絞り込むので、不一致度の演算処理対象のデータ数を大幅に削減することができ、演算処理をさらに高速化することができる。
【００９１】
つぎに図９の実施例では、前記エッジ強度による選別に加え、あらかじめユーザーにより指定された画像領域内のデータをモデルデータから省くようにしている。なお、図９も、前記図７と同様のモデルデータの登録処理手順を示すもので、ここでは各手順をＳＴ´４０１〜４１２の符号により示す。
【００９２】
この実施例では、ＳＴ´４０１〜４０３において、前記図７の手順と同様にＮ，Ｙ，Ｘの値を初期設定した後に、ＳＴ´４０４でフラグＭｍ（Ｘ，Ｙ）の値をチェックしている。このフラグＭｍ（Ｘ，Ｙ）は、着目画素が前記ユーザーの指定した画像領域（以下、「計測除外領域」という。）に含まれるか否かを示すデータであって、計測除外領域内に含まれる場合はＭｍ（Ｘ，Ｙ）＝１に設定され、含まれない場合はＭｍ（Ｘ，Ｙ）＝０に設定される。
【００９３】
ＳＴ´４０４において、前記フラグＭｍ（Ｘ，Ｙ）が０であれば、ＳＴ´４０５に進んでエッジ強度Ｍｗ（Ｘ，Ｙ）をしきい値ＭＬと比較する。その後は、前記図７のＳＴ４０５以下と同様であり、着目画素のエッジ強度Ｍｗ（Ｘ，Ｙ）がしきい値ＭＬ以上であれば、その画素のエッジコードＭｃ（Ｘ，Ｙ）を有効なモデルデータとして登録する（ＳＴ´４０６〜４０８）。
一方、フラグＭｍ（Ｘ、Ｙ）が１の場合は、ＳＴ´４０４が「ＮＯ」となり、以下の処理をスキップすることで着目画素をモデルデータから除外する。
なお、このような手順によりモデルデータを作成した場合も、前記図７，８の実施例と同様の手順で計測処理を実行する。
【００９４】
図１０は、前記計測除外領域の設定例を示す。なお図中、Ｍ１，Ｍ２は、モデル画像であるが、ここでは画像上のエッジのみを模式化して示す。
図１０（１）のモデル画像Ｍ１には、矩形状の本体部分の両側に水平ラインが連結した構成の輪郭パターンが現れており、両側の水平ラインを含むように２つの計測対象領域２０ａ，２０ｂが設定されている。このような設定によれば、水平ラインを示すエッジがモデルデータから除去されるので、水平ラインの有無や位置にかかわらず、登録されたモデルデータと同様の矩形状の輪郭線を精度良く抽出することができる。
【００９５】
図１０（２）のモデル画像Ｍ２には、矩形状の輪郭パターンが現れており、この矩形の内側に計測対象領域２０ｃが設定されている。
この設定によれば、表面に地模様などによる濃度勾配のばらつきが見られる対象物についても、その表面の部分が計測対象から除外されるので、画像間における濃度勾配の差異による影響を受けずにモデルに類似する輪郭線を精度良く抽出することができる。
【００９６】
よってこの実施例では、処理の必要がない画像を除いたモデルデータを設定することにより、不一致度の算出回数を減らして処理を高速化することができる。また周囲環境やノイズの影響を受けずに、目的の対象物が含まれる画像領域を精度良く抽出することができる。
【００９７】
さらにつぎの実施例では、前記図７または図９の手順によりモデルデータを削減した後に、計測処理において、処理対象の画像上のエッジ強度に応じて不一致度の算出方法を変更することにより、計測処理のより一層の高速化とロバスト性の向上を実現したものである。
【００９８】
図１１は、計測処理において、各着目画素のエッジ強度に応じて不一致度を算出する手順を示す。なお、この実施例においても、計測処理の主要な手順は、図４，５と同様であり、図５のＳＴ４において図１１の手順を実行することになる。（図１１では、各手順をｓｔ＊４−１〜ｓｔ＊４−９の符号により示す。）ただしこの実施例では、図４に示した計測処理手順のＳＴ７において、エッジコードＩｃ（ｘ，ｙ）とともにエッジ強度Ｉｗ（ｘ，ｙ）を抽出する必要がある。
【００９９】
この実施例では、図１１の手順を実行する前に、計測対象の画像上のエッジ強度およびエッジコードの抽出結果を、それぞれマスクの走査位置に沿う一次元配列ＩＷ´（Ｐ），ＩＣ´（Ｐ）として保存する。
図１１では、まず不一致度ｕｒに初期値０を設定した後、カウンタＫに初期値０に設定する（ｓｔ＊４−１，２）。つぎのｓｔ＊４−３では、マスクの設定位置（ｉ，ｊ）と前記Ｋの値とに基づいて着目画素の位置Ｐを算出し、続くｓｔ＊４−４で、この画素のエッジ強度Ｉｗ´（Ｐ）を所定のしきい値ＩＬと比較する。
【０１００】
前記エッジ強度Ｉｗ´（Ｐ）がしきい値ＩＬ以上であれば、ｓｔ＊４−４が「ＹＥＳ」となってｓｔ＊４−５に移行する。このｓｔ＊４−５では、前記図８のｓｔ´４−３と同様に、前記（１４）式により着目画素に対する不一致度ｕｒ＿Kを求めた上で不一致度ｕｒに加算する処理を行う。
【０１０１】
一方、エッジ強度ＩＷ´（Ｐ）がしきい値ＩＬを下回る場合は、ｓｔ＊４−４が「ＮＯ」となってｓｔ＊４−６に進み、前記不一致度ｕｒに固定値ＶＬを加算する処理を行う。
なお、ＶＬの値は、（１４）式において得られる最大の不一致度に合わせて「１」とするのが望ましい。（ｓｔ＊４−５において、不一致度ｕｒ＿Ｋを前記（９）式に基づいて算出する場合は、ＶＬ＝１８０とするのが望ましい。）
【０１０２】
以下の手順は、図８のｓｔ´４−４〜ｓｔ´４−６と同様であり、ｓｔ＊４−３〜ｓｔ＊４−９の処理を所定回数繰り返すことにより、不一致度ｕｒがしきい値ｕｒ＿min以上になった場合は、累計処理を打ち切り、不一致度ｕｒがしきい値を下回る場合は、モデルデータの最後のデータに対応する画素になるまで不一致度ｕｒを累計する。
【０１０３】
上記図１１の手順は、既に、抽出すべきエッジに対応するデータのみから成るモデルデータが作成されていることを前提に実行されるので、たとえば背景部分の画像などエッジが含まれない領域においては、不一致度の算出式を使用せずに最大の不一致度「１」を加算することにより、不一致度ｕｒ＿Kを求める演算を実行する必要がなくなる。しかも最大の不一致度を加算することにより、早い段階で不一致度ｕｒをしきい値ｕｒ＿minに到達させて累計処理を打ち切ることができるから、演算処理をより一層高速化でき、精度の高い計測処理を行うことができる。
【０１０４】
さらに上記した各実施例においては、モデル画像や計測対象の画像を縮小した上で前記エッジ強度やエッジコードを抽出することで、データ数を削減し、処理をさらに高速化することができる。
なおデータ数の削減は、濃淡画像上でエッジ強度やエッジコードを算出してから間引き処理を行うことによっても可能であるが、このような処理を行った場合、エッジに相当する画素が間引かれて、計測に必要なデータが欠落してしまう虞がある。
【０１０５】
図１２は、濃淡画像について、エッジ強度の抽出結果を間引きした場合の処理（図中、（１）（２）（３）の流れにより示す。）と、原画像を縮小してからエッジ強度を抽出した場合の処理（図中、（１）（４）（５）の流れにより示す。）とにおける処理結果の違いを示す。図中、（１）（４）の濃淡画像において、各矩形はそれぞれ一画素分のデータに対応するもので、白抜きの矩形（□）は濃度の高い背景部分の画素を、黒塗りの矩形（■）は対象物に対応する濃度の低い画素を、それぞれ示す。また（２）（３）（５）のエッジ強度画像（エッジ強度の抽出結果を示す処理結果画像）については、エッジ強度がしきい値より低い画素を白抜きの矩形により示し、しきい値以上のエッジ強度を具備する画素を黒抜きの矩形により示す。
【０１０６】
図１２は、点線の○印に示すように、２画素おきに処理対象の画素を設定して他の画素を間引いた場合の処理結果を示している。濃淡画像上でエッジ強度を抽出してから間引き処理を行った場合、（２）のエッジ抽出画像上で２画素分の幅を持つエッジが抽出されているにも関わらず、このエッジの部分がすべて間引きされてしまい、最終の処理結果である（３）のエッジ強度画像では、計測に必要なエッジが全く含まれない状態となっている。
これに対し、濃淡画像を縮小してからエッジ強度を抽出した場合は、（４）の縮小画像に対象物，背景の双方に対応する画素が残されるから、（５）のエッジ強度画像上にもエッジの画素が残されるようになり、エッジコードによるマッチング処理を行うことが可能となる。
【０１０７】
なお、上記の方法でデータを削減した場合には、計測対象領域においてモデル画像に対応する位置を正確に抽出することはできないので、まず削減されたデータにより計測対象領域全体を処理して、モデルに対応する輪郭パターンのおよその位置を求めた後、この抽出位置の周辺について原画像データを用いた計測処理を行って前記輪郭パターンの位置を正確に求めるのが望ましい。このような処理によれば、計測対象領域全体に対し、詳細なサーチを行う必要がなくなるので、計測処理時間を大幅に短縮することができ、かつ計測精度も維持することができる。
【０１０８】
【発明の効果】
上記したようにこの発明では、計測対象の濃淡画像上にモデル画像上の濃度勾配方向を示すモデルデータを走査してモデルデータに類似する走査位置を抽出する場合に、各走査位置において画素単位での不一致度を求めつつ累計処理を行うとともに、この累計処理において過去の走査位置で得られた最小の不一致度を上回る不一致度が得られたときは累計処理を打ち切る一方、累計処理が完了した時点の不一致度が最小の不一致度を下回るときはその不一致度により不一致度の最小値を更新するようにした。よって不一致度の累計を行う都度、比較対象のしきい値を求める演算を行う必要がなくなるから、濃度勾配方向を比較するための演算を大幅に高速化することができる。しかもモデルデータとの類似度が高い画像領域の出現によって不一致度の最小値が引き下げられるようになるから、より高い類似度を持つ画像領域が出現する都度、不一致度の最小値が引き下げられて不一致度の累計処理が早い段階で打ち切られるようになり、演算処理時間をより一層高速化することができる。
また走査が終了した時点での最小の不一致度が得られた走査位置によりモデル画像に対応する画像領域を特定するので、画像上においてモデル画像に最も類似する輪郭パターンの位置を精度良く求めることができる。
【図面の簡単な説明】
【図１】  この発明の一実施例にかかる画像処理装置の構成を示すブロック図である。
【図２】  エッジコードの表し方を示す説明図である。
【図３】  モデル画像およびモデルデータの登録処理手順を示すフローチャートである。
【図４】  計測処理の手順を示すフローチャートである。
【図５】  図４のＳＴ８における詳細な手順を示すフローチャートである。
【図６】  図５のｓｔ４における詳細な手順を示すフローチャートである。
【図７】  モデルデータを削減する場合の処理手順を示すフローチャートである。
【図８】  図７の手順により登録されたモデルデータとの不一致度を求める場合の手順を示すフローチャートである。
【図９】  図７の処理に、計測除外領域の設定に応じてモデルデータを削減する処理を加味した場合の手順を示すフローチャートである。
【図１０】  計測除外領域の設定例を示す説明図である。
【図１１】  計測対象の画像上のエッジ強度に基づき不一致度の算出方法を変更する場合の手順を示すフローチャートである。
【図１２】  計測対象のデータ数を削減するための２種類の処理について、処理結果の違いを示す説明図である。
【図１３】  濃度勾配方向の類似度を算出するための従来の手順を示すフローチャートである。
【符号の説明】
１  画像処理装置
２  画像入力部
８  制御部
１２  ＣＰＵ
【図１】
0004023096.tif 000016
【図２】
0004023096.tif 000017
【図３】
0004023096.tif 000018
【図４】
0004023096.tif 000019
【図５】
0004023096.tif 000020
【図６】
0004023096.tif 000021
【図７】
0004023096.tif 000022
【図８】
0004023096.tif 000023
【図９】
0004023096.tif 000024
【図１０】
0004023096.tif 000025
【図１１】
0004023096.tif 000026
【図１２】
0004023096.tif 000027
【図１３】
0004023096.tif 000028