(57)【要約】【課題】対象物の位置をサブピクセル単位で抽出できるようにする。【解決手段】対象物の良品モデルを撮像して得たモデル画像から、その画像上のエッジ画素、その濃度勾配方向、およびサブピクセル単位のエッジ位置が抽出されて、ハードディスク１４に登録される。処理対象画像が入力されると、ＣＰＵ１１は、モデル画像に対応する画像領域の位置をピクセル単位で求めた後、その画像領域において、モデル画像側の対応画素にサブピクセル単位のエッジ位置が対応づけられているエッジ画素を抽出する。そして、これらのエッジ画素につき、サブピクセル単位のエッジ位置を抽出し、その抽出位置とモデル画像側のエッジ位置とのずれ量を算出する。さらに各エッジ画素毎に求めたずれ量の平均値により前記ピクセル単位の位置を修正し、対象物の真の位置とする。【選択図】図１
2006294003.tif 000002
【特許請求の範囲】
【請求項１】
所定大きさの濃淡画像を処理対象として、この処理対象画像からあらかじめ特定されたモデルに対応する対象物の位置を抽出する方法において、
前記モデルを撮像して得られたモデル画像に対し、その画像中のエッジからエッジ画素を抽出するステップＡと、抽出された各エッジ画素につき、それぞれそのエッジ画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出するステップＢと、前記ステップＢでエッジ位置が抽出されたエッジ画素について、その抽出位置および抽出に用いた濃度勾配方向を当該エッジ画素に対応づけて登録するステップＣとを、あらかじめ実行した後に、前記処理対象画像に対して第１、第２、第３の各ステップを実行し、
前記第１ステップでは、前記モデル画像と同サイズの検索領域を処理対象画像にピクセル単位で走査して、走査位置毎に前記検索領域の画像とモデル画像との類似度を算出し、その算出結果を用いて前記モデル画像への対応領域を抽出し、
前記第２ステップでは、前記第１ステップで抽出された対応領域において、前記サブピクセル単位でのエッジ位置が登録されているモデル画像中のエッジ画素に対応するエッジ画素を、前記ステップＣで登録された濃度勾配方向および前記対応領域内の濃度勾配方向を用いて抽出し、抽出された各エッジ画素に対し、それぞれ前記ステップＢと、そのステップＢにより得たサブピクセル単位でのエッジ位置と前記ステップＣで登録されたエッジ位置とのずれ量を算出する処理とを実行し、
前記第３ステップでは、前記第２ステップで算出されたずれ量により前記対応領域の位置を修正し、修正後の対応領域の位置を前記対象物の位置として特定することを特徴とする画像処理方法。
【請求項２】
前記第１ステップでは、前記検索領域の各走査位置において、前記モデル画像の各エッジ画素における濃度勾配方向の分布パターンと前記検索領域内の各エッジ画素における濃度勾配方向の分布パターンとの類似度を算出する請求項１に記載された画像処理方法。
【請求項３】
前記第１ステップでは、前記検索領域が合わせられた処理対象画像上の領域のうち、前記類似度が最も高くなった領域を対応領域として抽出する請求項１に記載された画像処理方法。
【請求項４】
視野が互いに重なるように配置された複数台の撮像手段により生成される複数の画像からそれぞれ計測対象点を抽出し、各画像上の計測対象点の座標を用いてこれら計測対象点に対応する３次元座標を算出する方法において、
前記エッジを表す特徴点の抽出処理では、前記複数の画像のそれぞれについて、あらかじめ用意されたモデル画像を用いてステップａ，ｂ，ｃを実行し、
前記モデル画像には、サブピクセル単位でのエッジ位置と濃度勾配方向とが対応づけられた複数のエッジ画素と少なくとも１つの代表点とが含まれており、
前記ステップａでは、前記モデル画像と同サイズの検索領域をピクセル単位で走査して、走査位置毎に前記検索領域の画像とモデル画像との類似度を算出し、その算出結果を用いて前記モデル画像への対応領域を抽出し、
前記ステップｂでは、ステップａで抽出された対応領域において、前記モデル画像中のサブピクセル単位のエッジ位置が対応づけられたエッジ画素に対応するエッジ画素を、前記モデル画像側のエッジ画素に対応づけられた濃度勾配方向および前記対応領域内の濃度勾配方向を用いて抽出し、抽出された各エッジ画素に対し、そのエッジ画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出する処理と、当該エッジ位置と前記モデル画像に対応づけられたサブピクセル単位のエッジ位置とのずれ量を算出する処理を実行し、
前記ステップｃでは、前記ステップａで抽出された対応領域につきモデル画像との間の画素の対応関係に基づき前記代表点に対応する点を計測対象点として抽出し、抽出した計測対象点の座標を前記ステップｂで算出されたずれ量により修正することを特徴とする３次元計測方法。
【請求項５】
濃淡画像を入力するための画像入力手段と、
前記画像入力手段から入力した濃淡画像について、その画像中のエッジからエッジ画素を抽出するとともに、そのエッジ画素における濃度勾配方向を抽出するエッジ抽出手段と、
前記エッジ抽出手段の抽出結果に基づき、前記濃淡画像上のエッジ画素について、その画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出するエッジ位置抽出手段と、
対象物のモデルを含むモデル画像およびそのモデル画像から抽出されたデータを保存するためのメモリと、
前記画像入力手段から前記モデル画像を含む画像が入力されたとき、この入力画像に対する前記エッジ抽出手段およびエッジ位置抽出手段の処理結果をエッジ抽出手段により抽出された各エッジ画素に対応づけたデータを作成して、前記メモリに登録する登録手段と、
前記画像入力手段から前記モデルに対応する対象物を含む処理対象画像が入力されたとき、この処理対象画像に前記モデル画像と同サイズの検索領域をピクセル単位で走査して、走査位置毎に前記検索領域内の画像とモデル画像との類似度を算出し、その算出結果に基づき前記モデル画像への対応領域を抽出する対応領域抽出手段と、
前記対応領域抽出手段により抽出された対応領域において、前記エッジ抽出手段の処理結果に基づき、前記メモリにエッジ位置が登録されているモデル画像中のエッジ画素に対応するエッジ画素を抽出する対応エッジ画素抽出手段と、
前記対応エッジ画素抽出手段により抽出されたエッジ画素およびその近傍の画像を前記エッジ位置抽出手段に処理させて、この処理により抽出されたサブピクセル単位のエッジ位置と前記メモリに登録されたエッジ位置とのずれ量を算出するずれ量算出手段と、
前記ずれ量算出手段により算出されたずれ量により前記対応領域の設定位置を修正し、修正後の対応領域の位置を前記対象物の位置として特定する位置特定手段とを、具備している画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、所定の対象物の計測や検査などを目的として、前記対象物を含む濃淡画像データを処理し、画像上における前記対象物の位置を抽出する方法、およびその方法を用いて対象物に対する３次元計測処理を行う方法、ならびに画像処理装置に関する。
【背景技術】
【０００２】
濃淡画像から対象物を抽出する一般的な方法では、あらかじめこの対象物のモデルを撮像して得られた画像（この明細書では「モデル画像」という。）を登録しておき、処理対象画像からこのモデル画像に対応する画像領域を抽出する処理を行っている。
モデル画像に対応する画像領域を抽出するための代表的な方法として、各構成画素の濃度データを用いた正規化相関演算を行う方法が知られている。また、処理対象画像、モデル画像のそれぞれについて、画像中のエッジ画素（エッジを構成する一画素を意味する。）における濃度の変化の方向（濃度勾配方向）を求め、その変化の方向の分布パターンを比較する方法（特許文献１参照）も提案されている。
【０００３】
【特許文献１】特開２００２−２３０５４９号  公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の正規化相関演算による方法では、シェーディングが発生したり、背景が複雑であったり、コントラストが低い画像を処理する場合に、抽出精度が確保できないという問題がある。また、対象物に欠けやバリなどの形状の不具合があると、モデル画像に対応する画像領域を抽出できなくなるおそれがある。
また、この方法は、処理対象画像に対し、モデル画像を１画素ずつ走査しながら相関演算を実行するものであるため、対象物の位置をピクセル単位でしか求めることができない。サブピクセル単位での位置を求めるために、各走査位置で得られる類似度の変化を放物線に近似すると仮定し、その放物線の頂点を算出する方法も提案されているが、この種の類似度の変化が放物線に近似するとは必ずしも言えないため、信頼度の高い計測を行えないという問題がある。
【０００５】
一方、濃度勾配方向のパターンを比較する方法では、シェーディング等のノイズによる影響を受けにくく、また欠けやバリなどの不良を含む対象物でも抽出できるというメリットがある。しかしながら、この方法でも、処理対象画像とモデル画像との比較はピクセル単位で行われるため、対象物のエッジの位置がサブピクセルレベルで変化しても、そのエッジにかかる画素における濃度勾配方向は変化せず、前記位置の変化を抽出するのは困難である。
【０００６】
この発明は、上記の問題点に着目してなされたもので、対象物の位置をサブピクセル単位で抽出することにより、高精度の位置決めや計測処理を行えるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る画像処理方法は、あらかじめ特定されたモデルを撮像して得られたモデル画像に対し、その画像中のエッジからエッジ画素を抽出するステップＡと、抽出された各エッジ画素につき、それぞれそのエッジ画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出するステップＢと、前記ステップＢでエッジ位置が抽出されたエッジ画素について、その抽出位置および抽出に用いた濃度勾配方向を当該エッジ画素に対応づけて登録するステップＣとを、処理対象画像に対する処理に先立って実行するようにしている。
【０００８】
上記において、モデル画像は、計測すべき対象物のモデルを撮像し、得られた画像から前記モデルを含む所定大きさの画像を切り出したものであるのが望ましい。ステップＡでは、たとえば、前記モデル画像にエッジ抽出フィルタを走査するなどして、濃度勾配の大きさが所定値以上の画素をエッジ画素として抽出する。なお、エッジ抽出処理をハードウェアにより行う場合には、前記モデル画像を含む全体画像に対してエッジ抽出処理を行うようにしてもよい。
【０００９】
ステップＢでは、たとえば、前記エッジ画素を始点にその濃度勾配方向を検索して、その方向における濃度の変化量が所定のしきい値を超えた位置をエッジ位置として抽出する。または、前記濃度の変化量を微分して、濃度変化の起点もしくは終点、またはこれらの中間点を求め、これをエッジ位置としてもよい。
なお、検索方向に複数のエッジ画素があり、これらのエッジ画素の濃度勾配方向が共通する場合（すなわち各濃度勾配方向間の角度差が所定値以内である場合）には、これら複数のエッジ画素につき１つのエッジ位置を求めてもよい。この場合、ステップＣでは、前記複数のエッジ画素のそれぞれに同じエッジ位置および濃度勾配方向を対応づけてもよい。
【００１０】
前記ステップＣでは、たとえば、ステップＡの抽出結果に基づき、モデル画像上のエッジ画素の座標を登録するとともに、前記サブピクセル単位でのエッジ位置や濃度勾配方向を、対応するエッジ画素の座標を付したデータとして登録する。なお、濃度勾配方向は、その方向を表すベクトルの所定の基準ベクトルに対する角度として表すことができる。
【００１１】
この発明にかかる画像処理方法では、上記のモデル画像に関する登録処理が終了すると、処理対象画像に対して、つぎの第１、第２、第３の各ステップを実行する。
第１ステップでは、前記モデル画像と同サイズの検索領域を処理対象画像にピクセル単位で走査して、走査位置毎に前記検索領域の画像とモデル画像との類似度を算出し、その算出結果を用いて前記モデル画像への対応領域を抽出する。
類似度の算出は、たとえば濃淡画像データを対象とする正規化相関演算や、前記した特許文献１の方法を用いて行われる。すなわち、この第１ステップは、従来のピクセル単位でのマッチング処理に相当するものであって、たとえば、抽出された対応領域内の任意の代表点の位置のピクセル単位の座標を、対象物の位置として求めることができる。
【００１２】
前記モデル画像への対応領域としては、前記検索領域が合わせられた処理対象画像上の領域のうち、前記類似度が最も高くなったときの領域を抽出するのが望ましい。ただし、これに限らず、たとえば類似度が所定のしきい値より大きくなったときの検索領域の設定位置を抽出してもよい（この場合、複数の位置が抽出されることがある。）。また、類似度が高いものから順に所定数の位置を抽出してもよい。
【００１３】
第２ステップでは、前記第１ステップで抽出された対応領域にいて、前記サブピクセル単位でのエッジ位置が登録されているモデル画像中のエッジ画素に対応するエッジ画素を、前記ステップＣで登録された濃度勾配方向および前記対応領域内の濃度勾配方向を用いて抽出し、抽出された各エッジ画素に対し、それぞれ前記モデル画像に対して実行したステップＢと、そのステップＢにより得たサブピクセル単位のエッジ位置と前記ステップＣで登録されたエッジ位置とのずれ量を算出する処理とを実行する。
【００１４】
たとえば、検索領域に含まれるエッジ画素のうち、モデル画像における対応画素もエッジ画素であり、かつそのエッジ画素に前記ピクセル単位でのエッジ位置が対応づけられており、そのエッジ画素に対する濃度勾配方向の差が所定の角度範囲にある画素を対象にして、それぞれモデル画像に対して行ったのと同じ手法でサブピクセル単位のエッジ位置を抽出する。この場合にも、検索方向に複数のエッジ画素がある場合には、これら数画素の中から１つのエッジ位置を求め、算出されたエッジ位置を前記複数のエッジ画素のそれぞれに対応づけることができる。
また、エッジ位置のずれ量の算出処理では、たとえばエッジ位置を抽出したエッジ画素毎に、それぞれそのエッジ位置とモデル画像側のエッジ位置との座標の差を算出し、その差の平均値を求める。
【００１５】
第３ステップでは、前記第２ステップで算出されたずれ量により前記対応領域の位置を修正し、修正後の対応領域の位置を前記対象物の位置として特定する。なお、対応領域の位置は、たとえば領域内の代表点の座標により表される。
これにより第１ステップで求めた対象物の大まかな位置をサブピクセル単位で修正することが可能になり、対象物の位置を精度良く求めることができる。
【００１６】
上記画像処理方法の好ましい態様では、前記第１ステップにおいて、前記検索領域の走査位置毎に、前記モデル画像の各エッジ画素における濃度勾配方向の分布パターンと前記検索領域内の各エッジ画素における濃度勾配方向の分布パターンとの類似度を算出する。
「各エッジ画素における濃度勾配方向の分布パターン」は、たとえば、各エッジ画素における濃度勾配方向を示す角度データをそれぞれ当該エッジ画素の座標に対応づけた疑似画像として構成される。また、処理対象画像についても、同様の疑似画像を作成し、その画像に前記モデル画像側の疑似画像を走査しつつ、各走査位置におけるパターンの類似度を算出し、類似度が最大になるときに前記モデル画像側の疑似画像に重なる画像領域を抽出してもよい。
【００１７】
すなわち上記の態様では、前記特許文献１に記載された方法により第１ステップを実行することになる。このようにすれば、シェーディングなどのノイズが生じていたり、対象物側に欠けやバリなどの不良が生じていても、ピクセル単位での対応領域の抽出を精度良く行うことができる。すなわち、サブピクセル単位での位置ずれはあっても、ピクセル単位で見れば、対象物の位置を正確に特定することができる。よって、以下の第２、第３のステップを実行することにより、対象物の位置をより正確に求めることが可能になる。
【００１８】
この発明に係る画像処理方法は、対象物の位置を高精度で計測する用途や対象物の位置決め処理などに適用することができる。
【００１９】
つぎに、この発明にかかる３次元計測方法は、視野が互いに重なるように配置された複数の撮像手段により生成された複数の画像からそれぞれ計測対象点を抽出し、各画像上の計測対象点の座標を用いてこれら計測対象点に対応する３次元座標を算出するもので、前記エッジを表す特徴点の抽出処理では、前記複数の画像のそれぞれについて、あらかじめ用意されたモデル画像を用いてステップａ，ｂ，ｃを実行する。
【００２０】
前記モデル画像には、サブピクセル単位でのエッジ位置と濃度勾配方向とが対応づけられた複数のエッジ画素と、少なくとも１つの代表点（ただし、前記のエッジ画素と重複する点であってもよい。）とが含まれる。このモデル画像に対応づけられるエッジ位置および濃度勾配方向は、たとえば前記ステップＡ，Ｂの処理によりあらかじめ求められる。
なお、各撮像手段に対応する画像毎に前記モデル画像を用意しても良いが、各画像に共通のモデル画像を１つ用意してもよい。または、特定の撮像手段に対応する画像に対してのみモデル画像を用意し、その画像に対するステップａで抽出した対応領域の画像を、その他の撮像手段に対するモデル画像としてもよい。
【００２１】
ステップａでは、前記モデル画像と同サイズの検索領域をピクセル単位で走査して、走査位置毎に前記検索領域の画像とモデル画像との類似度を算出し、その算出結果を用いて前記モデル画像への対応領域を抽出する。すなわち、このステップａでは、前記画像処理方法の第１ステップと同様の処理が実行される。
【００２２】
ステップｂでは、ステップａで抽出された対応領域において、前記モデル画像中のサブピクセル単位のエッジ位置が対応づけられたエッジ画素に対応するエッジ画素を、前記モデル画像側のエッジ画素に対応づけられた濃度勾配方向および前記対応領域内の濃度勾配方向を用いて抽出する。また抽出された各エッジ画素に対し、そのエッジ画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出する処理と、当該エッジ位置と前記モデル画像に対応づけられたサブピクセル単位のエッジ位置とのずれ量を算出する処理とを実行する。すなわち、このステップでは、前記画像処理方法の第２ステップと同様の処理が実行される。
【００２３】
ステップｃでは、前記ステップａで抽出された対応領域につきモデル画像との間の画素の対応関係に基づき前記代表点に対応する点を計測対象点として抽出し、抽出した計測対象点の座標を前記ステップｂで算出されたずれ量により修正する。
【００２４】
上記の処理によれば、各撮像手段により生成された画像毎に、前記画像処理方法と同様の処理を行うことにより、計測対象点の座標をサブピクセル単位で求めることができる。よって計測対象点の３次元座標についても、精度の高い座標算出処理を行うことができるので、実際の空間における対象物の位置を精度良く求めることができる。
【００２５】
つぎに、この発明に係る画像処理装置は、濃淡画像を入力するための画像入力手段；前記画像入力手段から入力した濃淡画像について、その画像中のエッジからエッジ画素を抽出するとともに、そのエッジ画素における濃度勾配方向を抽出するエッジ抽出手段；前記エッジ抽出手段の抽出結果に基づき、前記濃淡画像上のエッジ画素について、その画素を基準に濃度勾配方向を検索して、サブピクセル単位でのエッジ位置を抽出するエッジ位置抽出手段；対象物のモデルを含むモデル画像およびそのモデル画像から抽出されたデータを保存するためのメモリ；前記画像入力手段から前記モデル画像を含む画像が入力されたとき、この入力画像に対する前記エッジ抽出手段およびエッジ位置抽出手段の処理結果をエッジ抽出手段により抽出された各エッジ画素に対応づけたデータを作成して、前記メモリに登録する登録手段；前記画像入力手段から前記モデルに対応する対象物を含む処理対象画像が入力されたとき、この処理対象画像に前記モデル画像と同サイズの検索領域をピクセル単位で走査して、走査位置毎に前記検索領域内の画像とモデル画像との類似度を算出し、その算出結果に基づき前記モデル画像への対応領域を抽出する対応領域抽出手段；前記対応領域抽出手段により抽出された対応領域において、前記エッジ抽出手段の処理結果に基づき、前記メモリにエッジ位置が登録されているモデル画像中のエッジ画素に対応するエッジ画素を抽出する対応エッジ画素抽出手段；前記対応エッジ画素抽出手段により抽出されたエッジ画素およびその近傍の画像を前記エッジ位置抽出手段に処理させて、この処理により抽出されたサブピクセル単位のエッジ位置と前記メモリに登録されたエッジ位置とのずれ量を算出するずれ量算出手段；前記ずれ量算出手段により算出されたずれ量により前記対応領域の設定位置を修正し、修正後の対応領域の位置を前記対象物の位置として特定する位置特定手段；の各手段を具備する。
さらにこの画像処理装置には、画像格納用のメモリ（以下、「画像メモリ」という。）を設けるのが望ましい。
【００２６】
上記において、画像入力手段には、たとえばカメラなどの外部装置から画像信号を受け付けるインターフェース回路やＡ／Ｄ変換回路などが含まれる。
画像入力手段およびメモリを除く各手段は、たとえばそれぞれその手段の処理を実行するためのソフトウェアが組み込まれたコンピュータにより構成される。ただし、いずれの手段も、コンピュータに限らず、トランジスタなどを含む論理回路として構成してもよい。特に、エッジ抽出手段を論理回路にして、画像入力手段から入力された画像をダイレクト入力して処理するようにすれば、その他の手段による処理を迅速に進めることができ、処理時間の短縮化をはかることができる。
【００２７】
画像入力手段からモデル画像を含む画像が入力されると、エッジ抽出手段、エッジ位置抽出手段、および登録手段により前記画像処理方法のステップＡ，Ｂ，Ｃにあたる処理が実行される。また、画像入力手段から処理対象画像が入力されると、類似度算出手段により第１ステップが、エッジ抽出手段、エッジ位置抽出手段、対応エッジ画素抽出手段、およびずれ量算出手段により第２ステップが、位置特定手段により第３ステップが、それぞれ実行される。なお、エッジ抽出手段を論理回路として構成する場合には、画像入力と同時にこの回路を動作させ、各画素の濃度勾配の大きさや濃度勾配方向を座標に対応づけた疑似画像を作成して、前記画像メモリなどに格納しておいてもよい。この場合、その他の手段は、メモリ内の疑似画像にアクセスして、エッジ画素の位置や濃度勾配方向を取得することができる。
【００２８】
上記の画像処理装置には、さらに、位置特定手段により特定された対象物の位置を出力する手段や、特定された位置を基準に計測領域を設定し、その領域内で所定の計測処理を実行する手段などを設けることができる。
【発明の効果】
【００２９】
この発明によれば、対象物の位置をピクセル単位で抽出した後に、その位置を基準にしたモデル画像との位置関係に基づき、サブピクセル単位でのエッジ位置のずれ量を求め、そのずれ量により最初に求めた対象物の位置を修正するので、対象物の位置を精度良く抽出することが可能になる。
【発明を実施するための最良の形態】
【００３０】
図１は、この発明の一実施例にかかる画像処理装置の構成を示す。
この画像処理装置１は、所定形状の対象物を撮像して得られた濃淡画像を処理対象として、その画像上の対象物の位置を計測する処理を行うもので、画像入力部２、エッジ抽出部３、画像メモリ４、入出力インターフェース５、画像出力部６、モニタ７、制御部１０などを含んでいる。
【００３１】
画像入力部２は、カメラ用のインターフェースやＡ／Ｄ変換回路を含むもので、図示しないアナログカメラからの濃淡画像信号を入力してディジタル変換する。変換後のディジタル画像は画像メモリ４に格納されるとともに、エッジ抽出部３に与えられる。
【００３２】
この実施例のエッジ抽出部３には、前記ディジタル画像を微分処理して濃度勾配の大きさを画素毎に算出する回路と、前記濃度勾配の方向を示す角度データを画素毎に算出する回路とが含められる。すなわち、入力画像を構成するすべての画素について、濃度勾配の大きさと濃度勾配方向とが求められることになる。これらの算出結果は、それぞれ画素の座標に対応づけられた疑似画像に編集され、画像メモリ４に格納される。
なお、以下では、特許文献１の記載に倣って、濃度勾配の大きさを「エッジ強度」、濃度勾配方向を示す角度データを「エッジコード」と呼び、これらによる疑似画像を「エッジ強度画像」「エッジコード画像」と呼ぶ。
【００３３】
入出力インターフェース５は、図示しない入力部（キーボード，マウスなど）や外部機器に接続される。なお、入力部は、計測に先立ち、各種の設定条件（後記するモデル画像の切り出しのための領域の指定を含む。）を入力するために用いられる。
【００３４】
前記画像出力部６には、Ｄ／Ａ変換回路やモニタ７へのインターフェース回路などが含められる。この画像出力部６は、制御部１０からの指令に応じて画像メモリ４から所定の種類の画像データを読み出し、これをモニタ７に表示させることができる。加えて、制御部１０から計測結果などのデータの供給を受けて、これを前記モニタ７に表示させることもできる。
【００３５】
前記制御部１０は、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３、およびハードディスク１４により構成される。ハードディスク１４には、計測処理のためのプログラムや設定データが格納されており、ＣＰＵ１１はこれらを用いて一連の計測処理を実行する。さらに前記ハードディスク１４には、対象物の抽出に使用するモデルデータを登録するための領域が設定される（以下、この領域を「登録エリア」という。）。
【００３６】
以下、上記画像処理装置１における計測処理について、詳細に説明する。
図２は、前記モデル画像の登録に使用される濃淡画像（以下、「登録対象画像」という。）、および計測対象の濃淡画像（以下、「処理対象画像」という。）の例を示す。
【００３７】
登録対象画像は、計測対象物の良品モデルを撮像して得られたものである。前記ＣＰＵ１１は、この登録対象画像をモニタ７に表示させ、ユーザーによる領域指定操作を受け付ける。そして指定操作が行われると、その指定された領域２１内の画像をモデル画像Ｍとして抽出する。このモデル画像Ｍは、前記領域２１の左上頂点Ａの座標（ｍｘ１，ｍｙ１）および右上頂点Ｂの座標（ｍｘ２，ｍｙ２）とともに、前記ハードディスク１４の登録エリアに登録される。
【００３８】
計測処理では、図２（２）に示すように、処理対象画像から前記モデル画像Ｍに対応する画像領域２２を抽出する（以下、この領域２２を「対応領域２２」という。）。そして、この対応領域２２の左上頂点Ｓの座標（Ｓｘ，Ｓｙ）、すなわち対応領域２１の点Ａに対応する位置を、対象物の仮の位置とする。さらにこの実施例では、前記対応領域２２におけるエッジとモデル画像中におけるエッジとのサブピクセル単位の位置ずれ量を抽出し、前記仮の位置Ｓから前記位置ずれ量分だけ離れた点を、対象物の真の位置として設定するようにしている。（以下では、この真の位置の座標を（Ｏｘ，Ｏｙ）とする。）。
【００３９】
上記の対象物の仮の位置Ｓを求める処理および前記エッジ間の位置ずれ量を求める処理には、いずれも、画像上のエッジ画素やその濃度勾配方向に基づくデータが使用される。以下、一連の処理で使用されるデータについて、順に説明する。
【００４０】
まず、基本となるデータは、前記したエッジコード画像およびエッジ強度画像である。これらの画像は、前記したように、エッジ抽出部３により生成される。
エッジ抽出部３は、画像入力部２から入力された画像に所定大きさのマスクを走査しつつ、各走査位置において、前記マスク内の画像にソーベルオペレータなどのエッジ抽出用フィルタを作用させて、画素毎に、ｘ軸（水平方向に沿う軸）およびｙ軸（垂直方向に沿う軸）の濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ、ｙ）を抽出する。さらに、エッジ抽出部３は、これらの濃度勾配Ｅｘ（ｘ，ｙ），Ｅｙ（ｘ，ｙ）を用いて、前記したエッジ強度およびエッジコードを算出する。
【００４１】
なお、エッジ強度およびエッジコードの算出については、前出の特許文献１に記載の方法を適用することができる。よって、ここでは詳細な説明は省略するが、エッジ強度は、前記濃度勾配Ｅｘ（ｘ、ｙ），Ｅｙ（ｘ，ｙ）の合成ベクトルの長さを表すものである。また、エッジコードは、前記合成ベクトルの向きであって、所定の基準方向（たとえばｘ軸の正方向）から見た角度により表される（特許文献１では、濃度勾配方向に直交する方向をエッジコードとした点において本実施例と異なるが、いずれの方向をエッジコードとしても、概念は同様であると考えることができる。）。
【００４２】
画素毎に算出されたエッジ強度およびエッジコードは、それぞれその画素の座標に対応づけられて、Ｅｉ（ｘ，ｙ）、Ｅｃ（ｘ，ｙ）のように表される。よって、これらのデータＥｉ（ｘ，ｙ）、Ｅｃ（ｘ，ｙ）を構成画素とする画像が、それぞれエッジ強度画像、エッジコード画像として設定されることになる。
【００４３】
処理対象画像から生成されたエッジ強度画像およびエッジコード画像は、前記処理対象画像とともに画像メモリ４に格納される。
一方、前記登録対象画像から生成されたエッジ強度画像およびエッジコード画像からは、それぞれ前記モデル画像に対応する領域内のデータが抽出され、前記登録エリアに格納される。以下、登録されたエッジ強度画像を、エッジ強度モデル画像として、各画素をＭＥｉ（ｘ，ｙ）と表し、登録されたエッジコード画像を、エッジコードモデル画像として、各画素をＭＥｃ（ｘ，ｙ）と表すことにする。
【００４４】
さらに、この実施例では、濃淡画像に現れるエッジの位置を、サブピクセル単位で抽出する（以下、このエッジの位置を「濃淡エッジ位置」という。）。モデル画像について抽出された濃淡エッジ位置は、前記登録エリアに登録される。
【００４５】
図３（Ａ）は、前記対象物の画像を含む濃淡画像、この濃淡画像から変換されたエッジ画像、このエッジ画像上のエッジを前記濃淡エッジ位置を用いて細線化した濃淡エッジ画像を、順に示している。なお、３種類の画像のうち、エッジ画像や濃淡エッジ画像は、エッジ画素や濃淡エッジ位置を説明するために設定したもので、この実施例においては生成されるものではない。
【００４６】
エッジ画像は、前記したエッジ強度画像を変換して生成することができる。具体的には、エッジ強度が所定のしきい値Ｅｉ０以上となる画素をエッジ画素として黒画素にし、エッジ強度が前記しきい値Ｅｉ０を下回る画素を白画素にする。なお、図中のエッジモデル画像においては、エッジにおける濃度勾配方向が矢印により示されている。
【００４７】
図３の（Ｂ）は、エッジ画像中の任意のエッジ画素Ｋ（座標は（ｘｋ，ｙｋ）とする。）の濃淡エッジ位置を求める方法を示す。この例では、前記エッジ画素Ｋを始点に、その濃度勾配方向を検索し、エッジ画素Ｋから見た濃淡値の変化量が変化量全体の５０％に達した点Ｌを抽出し、この点Ｌの座標（ｘＬ，ｙＬ）を前記濃淡エッジ位置としている。なお、この濃淡エッジ位置を決める基準は適宜変更することができる。
【００４８】
図３（Ａ）に示した濃淡エッジ画像は、各エッジ画素毎に、上記の方法により求めた濃淡エッジ位置を表すものである（実際には、サブピクセル単位の位置であるため、画像として表すことはできない。）。
なお、図３の画像では、濃度勾配方向がｘ軸またはｙ軸に沿っているため、濃淡エッジ位置の座標（ｘＬ，ｙＬ）のうちの一方は、着目中のエッジ画素と同じになる。もし斜め方向に濃度勾配が現れている場合には、その方向に沿うエッジ強度の変化を用いて、ｘ，ｙの各方向とも濃淡エッジ位置を求める必要がある。
【００４９】
また、エッジ画像におけるエッジは、通常、数画素分の幅を有するので、濃淡エッジ位置を求める処理でも、濃淡エッジ位置の検索方向に、その方向と同様の濃度勾配方向を有するエッジ画素が存在する可能性がある。このような場合には、濃度勾配方向が共通の複数のエッジ画素を１組として、その組につき１点の濃淡エッジ位置を求めるのが望ましい。または、あらかじめエッジ画像におけるエッジ幅が１画素になるように細線化処理を施してから、その細線化されたエッジに対する濃淡エッジ位置を求めるようにしてもよい。この場合、濃淡エッジ位置を検索する処理では、細線化処理により残されたエッジ画素を始点に、その濃度勾配方向の正逆両方向を検索するのが望ましい。
【００５０】
この実施例では、エッジ強度画像およびエッジコード画像を用いて、エッジ強度が前記しきい値Ｅｉ０以上となる画素に順に着目しつつ、上記図３（Ｂ）の方法に基づき濃淡エッジ位置（ｘＬ，ｙＬ）を抽出する。さらに、モデル画像については、抽出された濃淡エッジ位置（ｘＬ，ｙＬ）を、前記エッジ画素の座標（ｘ，ｙ）を用いた２次元配列データＭＸＬ（ｘ，ｙ）、ＭＹＬ（ｘ，ｙ）に格納することにより、エッジ画素と濃淡エッジ位置とを対応づけるようにしている。すなわち、ＭＸＬ（ｘ，ｙ）＝ｘＬ、ＭＹＬ（ｘ，ｙ）＝ｙＬとなる。
なお、前記したように、数画素分のエッジ画素の組につき１つの濃淡エッジ位置を求めた場合には、その組を構成するすべての画素に前記濃淡エッジ位置を対応づけることができる。
【００５１】
さらにモデル画像については、エッジ画素以外の画素も含む全ての構成画素について、それぞれ前記濃淡エッジ位置が設定されたか否かを示すフラグデータＭＬ（ｘ，ｙ）が設けられる。このモデル画像の濃淡エッジ位置ＭＸＬ（ｘ，ｙ）、ＭＹＬ（ｘ，ｙ）、およびフラグデータＭＬ（ｘ，ｙ）は、いずれも登録エリアに登録され、計測処理において使用される。
【００５２】
前記したように、ハードディスク１４の登録エリアには、前記モデル画像に加えて、エッジ強度モデル画像ＭＥｉ（ｘ，ｙ）、エッジコードモデル画像ＭＥｃ（ｘ，ｙ）、濃淡エッジ位置ＭＸＬ（ｘ，ｙ）、ＭＹＬ（ｘ，ｙ）、およびフラグデータＭＬ（ｘ，ｙ）が登録される。また、処理対象画像についても、画像入力と同時に、エッジ抽出部３によりエッジ強度画像Ｅｉ（ｘ，ｙ）、エッジコード画像Ｅｃ（ｘ，ｙ）が生成され、画像メモリ４に格納される。
【００５３】
つぎに、上記の各種データを用いた計測処理の具体例を説明する。
処理対象画像から対象物の仮の位置Ｓを抽出する処理では、エッジ強度画像Ｅｉ（ｘ，ｙ）、エッジコード画像Ｅｃ（ｘ，ｙ）、エッジ強度モデル画像ＭＥｉ（ｘ，ｙ）およびエッジコードモデル画像ＭＥｃ（ｘ，ｙ）を使用して、モデル画像に最も類似する領域を対応領域２２として抽出する。具体的には、処理対象画像にモデル画像と同サイズの検索領域をピクセル単位で走査しながら、走査位置毎に、検索領域とモデル画像との間でのエッジコードの分布パターンの類似度を求め、類似度が最も大きい位置での検索領域を対応領域２２とし、その左上頂点を仮の位置Ｓとする。
なお、この抽出処理は、特許文献１に記載されているのと同様の方法により行われるものであるため、ここでは詳細な説明を省略する。
【００５４】
つぎに、前記対応領域２２においてモデル画像に対するエッジの位置ずれ量を求め、そこから対象物の真の位置を求める。以下、この処理について、図４を用いて詳細に説明する。なお、図４中のｄｘは、ｘ軸方向における位置ずれ量であり、ｄｙはｙ軸方向における位置ずれ量である。またｎは、濃淡エッジ位置の抽出数である。また、（Ｓｘ，Ｓｙ）は前記対象物の仮の位置を示す点Ｓの座標であり、（ｘ，ｙ）は、この点Ｓに対する着目画素の相対位置を示す。モデル画像側の着目画素の対応点は、この（ｘ，ｙ）により示されると考えられる。
【００５５】
まず最初のＳＴ１０１（ＳＴは「ステップ」の略である。以下も同じ。）において、前記ｎ，ｄｘ，ｄｙに初期値０をセットし、前記点Ｓを起点に着目画素を１画素ずつ動かしながら（ＳＴ１０２，ＳＴ１０３，ＳＴ１０４，ＳＴ１１１，ＳＴ１１２，ＳＴ１１３，ＳＴ１１４の各ステップによる。）、各着目画素につき、以下のような処理を実行する。なお、ＳＴ１１１、ＳＴ１１３では、ｘ，ｙの値が前記図２に示したモデル画像のサイズ（ｍｘ２−ｍｘ１），（ｍｙ２−ｍｙ１）に達したか否かを判別している（後述する図５のＳＴ２１８、２２０も同様である。）。
【００５６】
最初に、モデル画像側の対応画素について、前記フラグデータＭＬ（ｘ，ｙ）がオン設定されているか否かを判別する（ＳＴ１０５）。なお、この例では、フラグデータＭＬ（ｘ，ｙ）が「１」のときをオン状態としている。
前記ＭＬ（ｘ，ｙ）＝１、すなわちモデル画像側の対応画素に濃淡エッジ位置（ＭＸＬ（ｘ，ｙ），ＭＹＬ（ｘ，ｙ））が対応づけられている場合には、ＳＴ１０５が「ＹＥＳ」となってＳＴ１０６に進み、着目画素がエッジ画素であるか否かを判別する。具体的には、処理対象画像から生成されたエッジ強度画像の画素Ｅｉ（Ｓｘ＋ｘ，Ｓｙ＋ｙ）が前記したしきい値Ｅｉ０以上であれば、着目画素はエッジ画素であると判断する。
【００５７】
ＳＴ１０６が「ＹＥＳ」であれば、つぎのＳＴ１０７において、着目画素のエッジコードＥｃ（Ｓｘ＋ｘ，Ｓｙ＋ｙ）をモデル画像側の対応画素のエッジコードＭＥｃ（ｘ，ｙ）と比較する。ここで、Ｅｃ（Ｓｘ＋ｘ，Ｓｙ＋ｙ）とＭＥｃ（ｘ，ｙ）との差の絶対値が所定値以下であれば、双方のエッジコードは一致していると判断し、ＳＴ１０８に進む。
【００５８】
ＳＴ１０８では、着目画素につき、前記濃淡エッジ位置（ｘＬ，ｙＬ）を抽出する。さらに、つぎのＳＴ１０９では前記抽出数ｎをインクリメントし、ＳＴ１１０に進む。
ＳＴ１１０では、ＳＴ１０８で求めた濃淡エッジ位置（ｘＬ，ｙＬ）、モデル画像側の対応画素の濃淡エッジ位置（ＭＸＬ（ｘ，ｙ），ＭＹＬ（ｘ，ｙ））、および前記点Ｓの座標（Ｓｘ，Ｓｙ）を用いて、ｘ，ｙの各軸方向毎に、モデル側の濃淡エッジ位置に対する処理対象画像側の濃淡エッジ位置のずれ量ｄｘ，ｄｙを求める。同時にＳＴ１１０では、画素毎のずれ量ｄｘ，ｄｙを加算する処理も実行する。
【００５９】
前記モデル画像に対応する画像領域内の全ての画素について実行することにより、モデル画像に対する前記画像領域内の濃淡エッジ位置のずれ量ｄｘ，ｄｙの総和が求められる。なお、前記ＳＴ１０５，ＳＴ１０６，ＳＴ１０７のいずれかのステップにおける判別結果が「ＮＯ」となった場合には、ＳＴ１０８〜１１０はスキップされる。
【００６０】
モデル画像に対応する画像領域内のすべての画素に対する処理が終了すると、ＳＴ１１５では、前記ｎを用いてずれ量ｄｘ，ｄｙの平均値ｄｘ／ｎ、ｄｙ／ｎを算出する。そして、前記点Ｓの座標（Ｓｘ，Ｓｙ）に平均化されたずれ量を加算して得られる座標を、対象物の真の位置を示す座標（Ｏｘ，Ｏｙ）とする。
【００６１】
上記一連の処理によれば、ピクセル単位で求められた対象物の位置を基準に、モデル画像に対するエッジ位置のずれ量をサブピクセル単位で抽出し、そのずれ量分だけ前記対象物の位置を修正することができる。このようにして、対象物の位置をサブピクセル単位で求めることが可能になるから、位置計測にかかる精度を従来よりも大幅に高めることができる。
【００６２】
図５は、前記対象物の真の位置（Ｏｘ，Ｏｙ）を求める処理の他の例を示す。
この実施例も、基本的な処理の内容は図４と同様であるが、エッジコードの示す方向によってずれ量の算出方法を変更した点に特徴がある。この方法を実行するために、この実施例では、濃淡エッジ位置の抽出数を、ｘ，ｙの方向毎に個別に計数するようにしている。図中、ｘｎはｘ方向における抽出数であり、ｙｎはｙ方向における抽出数である。
その他のパラメータは、前記図４と同様である。
【００６３】
まずＳＴ２０１〜２０４において、前記図４のＳＴ１０１〜１０４と同様の設定を行った後、ｘ，ｙを１つずつ動かしながら、モデル画像に対応する領域２２内の各画素につき、それぞれ以下の処理を実行する。
ＳＴ２０５〜２０７では、前記図４のＳＴ１０５〜１０７と同様に、モデル画像側の対応画素に濃淡エッジ位置が設定されているか否か、着目画素がエッジ画素であるか否か、着目画素のエッジコードがモデル画素の対応画素におけるエッジコードに一致するか否かを判別する。ＳＴ２０５〜２０７の判別結果がすべて「ＹＥＳ」となれば、ＳＴ２０８に進み、着目画素について濃淡エッジ位置（ｘＬ，ｙＬ）を抽出する。
【００６４】
つぎのＳＴ２０９では、着目画素のエッジコードＥｃ（Ｓｘ＋ｘ，Ｓｙ＋ｙ）を水平方向を示す１８０°で除算し、その剰余数をθとする。さらに、このθが９０°より大きい場合には、ＳＴ２１１において、１８０°からθを差し引いた値により前記θの値を更新する。つぎのＳＴ２１２では、θが２２°より大きいか否かを判別し、判別結果が「ＮＯ」であれば、ＳＴ２１４に進む。判別結果が「ＹＥＳ」であれば、さらにＳＴ２１３において、｜θ−９０｜の値を２２°と比較し、｜θ−９０｜≦２２°であればＳＴ２１５を実行し、｜θ−９０｜＞２２°であればＳＴ２１６およびＳＴ２１７を実行する。
【００６５】
すなわち、着目画素のエッジコードが示す方向とｘ軸方向（０°または１８０°の方向）との角度差が２２°以内であれば、着目画素の濃度勾配方向はｘ軸方向に沿っているものとしてＳＴ２１４に進み、ｘ方向にかかるずれ量ｄｘおよび抽出数ｘｎを更新する。また着目画素のエッジコードが示す方向とｙ軸方向（９０°または２７０°の方向）との角度差が２２°以内であれば、着目画素の濃度勾配方向はｙ軸方向に沿っているものとしてＳＴ２１５に進み、ｙ軸方向にかかるずれ量ｄｙおよび抽出数ｙｎを算出する。また、ｘ軸およびｙ軸に対応する４方向（０°，９０°，１８０°，２７０°の各方向）のいずれに対しても、着目画素のエッジコードが２２°より大きな角度差を持つ場合（たとえば、２２°＜θ＜６８°）には、ＳＴ２１６において、ｘ，ｙ双方の抽出数ｘｎ，ｙｎを更新し、ＳＴ２１７において，ｘ，ｙ双方のずれ量ｄｘ，ｄｙを更新する。
【００６６】
モデル画像に対応する画像領域内のすべての画素を処理し終えると、ＳＴ２２２において、前記ずれ量ｄｘ，ｄｙをそれぞれ抽出数ｘｎ，ｙｎにより平均化し、その平均値により前記点Ｓの座標（Ｓｘ，Ｓｙ）を補正した座標を、対象物の真の位置（Ｏｘ，Ｏｙ）とする。
【００６７】
上記の手順によれば、モデルに対するずれが発生している方向でのみ抽出数がカウントされるので、位置ずれ量ｄｘ，ｄｙの平均値の信頼度をより高めることができる。よって、対象物の位置をより精度良く求めることが可能になる。
【００６８】
上記の画像処理によれば、画像における対象物の位置をサブピクセル単位で求めることができるから、対象物の位置計測や位置決め処理などの精度を大幅に高めることができる。また、複数のカメラを用いた３次元計測処理に上記の画像処理を適用すれば、３次元計測の精度を大幅に高めることができる。
【００６９】
図６は、３次元計測処理機能を備えた検査装置の構成を示す。この検査装置は、工場の検査ラインを搬送される検査対象物（以下、「ワーク」という。）に対する３次元計測を行い、その計測値を用いて前記ワークの形状や高さなどの適否を判定するものである。
【００７０】
前記検査装置には、一対のカメラＣ０，Ｃ１を含む撮像部６０１が設けられる。各カメラＣ０，Ｃ１は、前記検査ラインの上方に設置されて、搬送されてくるワークを順に撮像する。なお、ここでは図示を省略するが、前記撮像部６０１のうち、カメラＣ０は、その光軸を鉛直方向に向けた状態で設置され、カメラＣ１は、前記カメラＣ０と視野が重なるように、光軸を傾斜させた状態で設置される。よって、カメラＣ０により、ワークを正面から見た状態の画像が生成され（以下、この画像を「正面視画像」という。）、カメラＣ１により前記ワークを斜め方向から見た状態の画像が生成される（以下、この画像を「斜め画像」という。）。
【００７１】
前記検査装置には、前記撮像部６０１のほか、本体部６０２、モニタ６０３、コンソール６０４などにより構成される。本体部６０２には、カメラＣ０，Ｃ１に対する画像入力部６１０，６１１、カメラ駆動部６１２，演算処理部６２０、出力部６２８などが設けられる。
【００７２】
前記カメラ駆動部６１２は、図示しないワーク検出用のセンサからの検知信号を受けて各カメラＣ０，Ｃ１を同時に駆動する。各カメラＣ０，Ｃ１により生成された画像信号は、それぞれの画像入力部６１０，６１１に入力され、ディジタル変換される。これにより、前記正面視画像および斜め画像が生成される。
【００７３】
前記演算処理部６２０は、コンピュータにより構成されるもので、前記正面視画像および斜め画像を用いた３次元計測処理を実行した後、その処理結果からワークの適否を判定する。出力部６２８は、前記計測処理や判定処理の結果を、ＰＬＣなどの外部機器に出力するための出力用インターフェースである。
【００７４】
演算処理部６２０には、画像メモリ６２１、画像処理部６２２，計測処理部６２３、判定部６２４、表示制御部６２５、パラメータ記憶部６２７などが設けられる。なお、画像メモリ６２１およびパラメータ記憶部６２７以外の各部は、専用のプログラムにより前記コンピュータに設定された機能であり、画像メモリ６２１やパラメータ記憶部６２７は、前記コンピュータのメモリ（ＲＡＭ、ハードディスクなど）に設定される。
【００７５】
前記画像メモリ６２１には、前記正面視画像、斜め画像、および後記する被検査部位毎のモデル画像や、これらの画像に対応するエッジ強度画像およびエッジコード画像などが格納される。
【００７６】
前記画像処理部６２２には、前記図１のエッジ抽出部３の機能、エッジコードを用いてモデル画像への対応領域を抽出する機能、濃淡エッジ位置を求める機能などが組み込まれている。さらにこの実施例の画像処理部６２２には、前記カメラＣ１からの斜め画像を、カメラＣ０によるものと同様の正面視画像に変換する機能が設定されている
【００７７】
パラメータ記憶部６２７には、３次元計測処理や斜め画像Ａ１の変換処理のための演算式に含まれる各種係数（以下、「パラメータ」という。）が保存される。
この実施例では、検査に先立ち、複数の特徴点を有するキャリブレーション用ワークをカメラＣ０，Ｃ１により撮像し、前記画像処理部６２２や計測処理部６２３の機能を用いて、生成された正面視画像および斜め画像上の特徴点を抽出し、これらの特徴点の座標と前記キャリブレーションワーク上の各特徴点の既知の位置関係に基づき、各パラメータの値を算出するようにしている。
【００７８】
図７は、前記ワークの具体例を携帯電話として、その操作部の正面視画像および斜め画像を示す。図中Ａ０が正面視画像であり、Ａ１が斜め画像である。
この実施例のワークには複数の被検査部位（操作部のキー）が含まれており、これら被検査部位毎に個別のモデル画像が登録されている。またモデル画像毎に、最初の実施例と同様のエッジ強度モデル画像ＭＥｉ（ｘ，ｙ）、エッジコードモデル画像ＭＥｃ（ｘ，ｙ）、濃淡エッジ位置ＭＸＬ（ｘ，ｙ）、ＭＹＬ（ｘ，ｙ）、ならびにフラグデータＭＬ（ｘ，ｙ）が登録される。なお、この実施例のモデル画像は、良品モデルの正面視画像から切り出される。
【００７９】
図７では、各画像Ａ０，Ａ１に特定の被検査部位（「２」の文字キー）用のモデル画像への対応領域７０，７１を示している。各対象領域７０，７１内の点８０，８１は、モデル画像上の代表点（この実施例ではモデル画像の中心点とする。）に対応する点である。
【００８０】
この実施例では、前記モデル画像上の代表点への対応点８０，８１を計測対象点として、それぞれの座標をサブピクセル単位で求める。なお、以下では、正面視画像Ａ０の計測対象点８０の座標を（Ｏｘ０，Ｏｙ０）、斜め画像Ａ１の計測対象点８１の座標を（Ｏｘ１，Ｏｙ１）とする。
【００８１】
前記計測処理部６２３は、各計測対象点８０，８１の座標（Ｏｘ０，Ｏｙ０）（Ｏｘ１，Ｏｙ１）と前記パラメータとを用いた演算を行って、前記計測対象点８０，８１に対応する３次元座標を求める。
前記判定部６２４は、前記計測処理部６２３が算出した３次元座標のうち、高さを表すＺ座標を所定の判定基準値と比較することにより、被検査部位であるキーの高さの適否を判定する。この判定結果は出力部６２８および表示制御部６２５に出力される。
【００８２】
図８は、前記図７に示したワークについて、各キーの高さを検査する場合の処理手順を示す。この手順は、１つのワークに対して行われるもので、まず最初のＳＴ３０１では、カメラＣ０，Ｃ１を同時駆動して画像を生成する。
【００８３】
つぎのＳＴ３０２では、前記正面視画像Ａ０からエッジ画素およびエッジコードを抽出する。なお、エッジ画素の抽出は前記エッジ強度画像Ｅｉ（ｘ，ｙ）を生成することにより行われ、エッジコードの抽出は前記エッジコード画像Ｅｃ（ｘ，ｙ）を生成することにより行われる。
【００８４】
つぎのＳＴ３０３では、正面視画像Ａ０を処理対象として、前記モデル画像への対応領域７０を抽出し、その領域７０内の中心点を計測代表点８０として仮設定する。なお、対応領域７０の抽出は、正面視画像Ａ０に前記モデル画像に対応する大きさの検索領域をピクセル単位で走査し、走査位置毎に検索領域内のエッジコードのパターンをモデル画像におけるエッジコードのパターンと比較することにより行われる。
【００８５】
つぎのＳＴ３０４では、エッジ強度画像やエッジコード画像のうちの前記対応領域７０に対応するデータを用いて、前記図４または図５と同様の処理を実行することにより、前記計測対象点８０の真の座標（Ｏｘ０，Ｏｙ０）を算出する。
【００８６】
つぎのＳＴ３０５では、斜め画像Ａ１を正面視画像に変換する。この変換で生成される画像（以下、「変換後画像」という。）は、前記正面視画像Ａ０の結像面と同一の平面上に斜め画像Ａ１を投影したものに相当する。
この変換処理は公知であるので簡単に言うと、まず前記パラメータ記憶部６２７に登録されたパラメータを用いて、変換後画像の各画素毎に、斜め画像Ａ１上で当該画素に対応する矩形領域の頂点を求める。さらに、前記矩形領域の各頂点を含む４つの画素の濃度を、それぞれその画素と前記矩形領域との重なり部分が矩形領域全体に占める割合により重み付けし、重み付けされた４画素の濃度を加算して得られる値を、前記矩形領域に対応する画素の濃度に設定する。
【００８７】
ＳＴ３０６では、前記ＳＴ３０５で生成された変換後画像に対し、前記ＳＴ３０２と同様の処理によりエッジ画素およびエッジコードを抽出する。ＳＴ３０７では、前記変換後画像に前記ＳＴ３０３と同様の処理を行って、モデル画像への対応領域を求め、その中心点を計測対象点として仮設定する。ただし、この対応領域は前記正面視画像Ａ０の対応領域７０に対応するものであるので、エピポーララインに沿ってサーチを行えばよい。
変換後画像は正面視画像Ａ０と同一平面上にあることから、エピポーララインはｘ軸またはｙ軸に平行になる。したがって、たとえばエピポーララインがｘ軸に平行であれば、ｙ座標の範囲が前記対応領域７０に対応する帯状の検索領域を設定してサーチを行えばよい。
【００８８】
つぎに、ＳＴ３０８では、前記ＳＴ３０７で抽出した対応領域について、図４または図５と同様の処理を行うことにより、計測対象点について、サブピクセル単位の座標（Ｏｘ１´，Ｏｙ１´）を算出する。
さらにＳＴ３０９では、座標（Ｏｘ１´，Ｏｙ１´）を斜め画像上の座標（Ｏｘ１，Ｏｙ１）に変換し、変換後の座標が示す点を斜め画像Ａ１の計測対象点８１として設定する。この変換処理も、前記斜め画像Ａ１の変換処理で使用したパラメータを用いた演算により行われるので、変換後の座標（Ｏｘ１，Ｏｙ１）としてもサブピクセル単位の座標を得ることができる。
このように、斜め画像Ａ１を正面視画像に変換することで、モデル画像の代表点に対応する点を簡単に求めた後に、その座標を元の斜め画像Ａ１に反映させることにより、斜め画像Ａ１についても、サブピクセル単位の計測対象点８１を求めることができる。
【００８９】
ＳＴ３１０では、各計測代表点８１，８１の座標（Ｏｘ０，Ｏｙ０）（Ｏｘ１，Ｏｙ１）を用いて、これらに対応する３次元座標を算出する。ＳＴ３１１では、前記３次元座標のうちのＺ座標を所定のしきい値と比較することにより、キーの高さの適否を判定する。
【００９０】
以下、ＳＴ３１２が「ＮＯ」となってＳＴ３０２に戻り、つぎの被検査部位について、同様にＳＴ３０２〜３１１を実行する。すべての被検査部位に対する処理が終了すると、ＳＴ３１２が「ＹＥＳ」となってＳＴ３１３に進み、前記判定結果を出力し、前記ワークに対する検査を終了する。
【００９１】
なお、上記のＳＴ３０７およびＳＴ３０８では、前記モデル画像との照合により対応領域や計測対象点を抽出したが、これに代えて、前記正面視画像Ｃ０から抽出した対応領域７０内の画像を用いた照合を行っても良い。
【００９２】
また、上記の処理では、計測対象領域内の代表点を１つにしているが、これに限らず、複数の代表点を抽出してもよい。また上記の処理では、エッジ画素であるか否かに関わらず、計測対象領域内の中心点を代表点としたが、これに代えて、各対応領域内のエッジに含まれる点を代表点としてもよい。またＳＴ３０９では、高さ情報の判定ではなく、たとえば３次元座標が表す点と所定の基準点との距離を求め、その距離が設定範囲内であるかどうかを判定してもよい。
【００９３】
また、エッジ上の複数の点を計測対象点とするのであれば、これらの点に対応する３次元座標を用いて被検査部位の３次元形状の適否（たとえば前記文字キーの表面の凹凸状態）を判定してもよい。
【図面の簡単な説明】
【００９４】
【図１】この発明が適用された画像処理装置のブロック図である。
【図２】登録対象画像と処理対象画像との例を示す説明図である。
【図３】エッジ画素、濃淡エッジ位置、および濃淡エッジ位置の抽出方法をイメージ化して示す説明図である。
【図４】対象物の位置をサブピクセル単位で抽出する処理の流れの例を示すフローチャートである。
【図５】対象物の位置をサブピクセル単位で抽出する処理の流れの他の例を示すフローチャートである。
【図６】この発明が適用された検査装置のブロック図である。
【図７】図６の検査装置の処理対象画像の例を示す説明図である。
【図８】検査の流れを示すフローチャートである。
【符号の説明】
【００９５】
１  画像処理装置
２  画像入力部
３  エッジ抽出部
４  画像メモリ
１０  制御部
１１  ＣＰＵ
１４  ハードディスク
２２，７０，７１  モデル画像への対応領域
８０，８２  計測対象点
６２０  演算処理部
６２２  画像処理部
６２３  計測処理部
Ｃ０，Ｃ１  カメラ
Ｍ  モデル画像
Ｓ  仮の位置
【図１】
2006294003.tif 000003
【図２】
2006294003.tif 000004
【図３】
2006294003.tif 000005
【図４】
2006294003.tif 000006
【図５】
2006294003.tif 000007
【図６】
2006294003.tif 000008
【図７】
2006294003.tif 000009
【図８】
2006294003.tif 000010