(57)【特許請求の範囲】
【請求項１】
ワークを撮像して得られた被探索画像から前記ワークの位置を画像処理により求める画像処理方法であって、
複数のモデルエッジを含むモデルを取得するモデル取得工程と、
前記被探索画像において、前記モデルとの一致度が高い位置を探索する粗探索工程と、
前記被探索画像の中で、前記粗探索工程にて探索した位置に前記モデルを移動させたときの前記モデルに含まれる複数のモデルエッジに応じてエッジ抽出領域を設定し、前記各エッジ抽出領域においてエッジを抽出する演算を行うエッジ抽出工程と、
前記エッジ抽出工程にて抽出したエッジを含むエッジ集合に対して所定形状でフィッティングを行い、前記ワークの位置を取得する精探索工程と、を備え、
前記エッジ抽出工程にてエッジを抽出できなかったエッジ抽出領域が存在する場合、前記粗探索工程にて探索した位置に移動させた前記モデルのうち、前記エッジ抽出工程にてエッジを抽出できなかったエッジ抽出領域に位置するモデルエッジを、前記エッジ集合に含めて、前記フィッティングを行うことを特徴とする画像処理方法。
【請求項２】
前記エッジ抽出工程にて前記複数のエッジ抽出領域のうち全てからエッジを抽出した場合は、前記エッジ抽出工程にて抽出した全てのエッジで前記エッジ集合を構成することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記エッジ抽出工程にて抽出したエッジの数と閾値との比較を行い、前記エッジ抽出工程にて抽出したエッジの数が前記閾値以上の場合に、前記精探索工程を行うと判断する、判断工程を更に備えることを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記所定形状が、円、楕円又は矩形であることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
ワークを撮像して得られた被探索画像から前記ワークの位置を画像処理により求める処理部を備えた画像処理装置であって、
前記処理部は、
複数のモデルエッジを含むモデルを取得するモデル取得処理と、
前記被探索画像において、前記モデルとの一致度が高い位置を探索する粗探索処理と、
前記被探索画像の中で、前記粗探索処理にて探索した位置に前記モデルを移動させたときの前記モデルに含まれる複数のモデルエッジに応じてエッジ抽出領域を設定し、前記各エッジ抽出領域においてエッジを抽出する演算を行うエッジ抽出処理と、
前記エッジ抽出処理にて抽出したエッジを含むエッジ集合に対して所定形状でフィッティングを行い、前記ワークの位置を取得する精探索処理と、を実行し、
前記エッジ抽出処理にてエッジを抽出できなかったエッジ抽出領域が存在する場合、前記粗探索処理にて探索した位置に移動させた前記モデルのうち、前記エッジ抽出処理にてエッジを抽出できなかったエッジ抽出領域に位置するモデルエッジを、前記エッジ集合に含めて、前記フィッティングを行うことを特徴とする画像処理装置。
【請求項６】
前記処理部は、前記エッジ抽出処理にて前記複数のエッジ抽出領域のうち全てからエッジを抽出した場合は、前記エッジ抽出処理にて抽出した全てのエッジで前記エッジ集合を構成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記処理部は、前記エッジ抽出処理にて抽出したエッジの数と閾値との比較を行い、前記エッジ抽出処理にて抽出したエッジの数が前記閾値以上の場合に、前記精探索処理を行うと判断する、判断処理を更に実行することを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記所定形状が、円、楕円又は矩形であることを特徴とする請求項５乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
コンピュータに請求項１乃至４のいずれか１項に記載の画像処理方法の各工程を実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被探索画像からワークの位置の計測する画像処理方法、画像処理装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ワークを撮像して得られた被探索画像の中からワークを見つける処理は、マシンビジョンで良く使われる機能の一つである。このように画像の中からパターンを探索するための画像処理として、一般的にテンプレートマッチングが知られている。テンプレートマッチングでは、探索したいパターンの特徴を事前にモデルとして用意しておく。そしてワークを撮像して得られた被探索画像の中からパターンを探索する場合は、被探索画像から抽出した特徴と事前に用意していたモデルの特徴とを照合する。特徴としては、ワークの輪郭情報であるエッジが使用されることが多い。ここで、「エッジ」とは、画像上で濃淡変化が急峻な画素、つまり濃淡勾配の絶対値が所定閾値以上となる画素の集合のことである。
【０００３】
テンプレートマッチングは事前に用意したモデルと相関が高い、被探索画像上の位置（姿勢を含む）を探索する方法である。そのため、エッジの付近にノイズとなるエッジが存在したり、エッジの一部に欠けや凹凸が発生したりすることがあった。このような場合、被探索画像上の正解位置でモデルとの相関値が最大にならず、位置姿勢計測の精度が低下する可能性があった。
【０００４】
この問題を解決する方法としてワークが円形や楕円形のような形状の場合に、テンプレートマッチング等でワークの仮位置を探索した後に、円フィッティングや楕円フィッティングを行うことでワークの位置をより高精度に計測する方法がある。特許文献１では、ワークの形状が円形の場合に、対象画像上の仮中心を設定して、対象画像から抽出したエッジに対して円フィッティングを行うことでワーク位置を計測する方法が記載されている。
【０００５】
また、ワークの外形に対応するエッジを用いることができない場合、ワークの外形以外の複数の特徴に対応する複数のエッジを用いることもある。このような場合には、各エッジの中心点に対して円フィッティングや楕円フィッティング等のフィッティングを行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１４０７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、撮像した画像に影等が写りこみ、特徴が隠れてエッジ抽出に失敗し、抽出されるエッジの数が減少することがあった。ワークの特徴として使用可能なエッジがそもそも少ない場合、抽出されたエッジの数が減少してしまうと、フィッティングの精度が低下したり、場合によってはフィッティングの計算が不可となったりすることがあった。
【０００８】
本発明は、被探索画像から抽出されたエッジの数が減少しても、高精度にワークの位置を計測することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ワークを撮像して得られた被探索画像から前記ワークの位置を画像処理により求める画像処理方法であって、複数のモデルエッジを含むモデルを取得するモデル取得工程と、前記被探索画像において、前記モデルとの一致度が高い位置を探索する粗探索工程と、前記被探索画像の中で、前記粗探索工程にて探索した位置に前記モデルを移動させたときの前記モデルに含まれる複数のモデルエッジに応じてエッジ抽出領域を設定し、前記各エッジ抽出領域においてエッジを抽出する演算を行うエッジ抽出工程と、前記エッジ抽出工程にて抽出したエッジを含むエッジ集合に対して所定形状でフィッティングを行い、前記ワークの位置を取得する精探索工程と、を備え、前記エッジ抽出工程にてエッジを抽出できなかったエッジ抽出領域が存在する場合、前記粗探索工程にて探索した位置に移動させた前記モデルのうち、前記エッジ抽出工程にてエッジを抽出できなかったエッジ抽出領域に位置するモデルエッジを、前記エッジ集合に含めて、前記フィッティングを行うことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、被探索画像から抽出されたエッジの数が減少しても、高精度にワークの位置を計測することができる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）は、第１実施形態に係る画像処理装置を備えた画像処理システムを示す説明図である。（ｂ）は、検出対象のワークを示す平面図である。
【図２】第１実施形態に係る画像処理装置を示すブロック図である。
【図３】第１実施形態に係る画像処理方法を示すフローチャートである。
【図４】被探索画像を示す模式図である。
【図５】（ａ）は、モデル生成用の画像を示す模式図である。（ｂ）は、モデル生成用画像から抽出したエッジ集合を示す模式図である。（ｃ）は、モデルを示す模式図である。
【図６】（ａ）は、被探索画像から抽出したエッジ集合を示す模式図である。（ｂ）は、モデルを被探索エッジ集合上でラスタ走査する例を示す模式図である。
【図７】（ａ）は、被探索画像にエッジ抽出領域を設定した状態を示す模式図である。（ｂ）は、全てのエッジ抽出領域からエッジを抽出した場合を示す模式図である。（ｃ）は、フィッティングの処理を説明するための模式図である。
【図８】（ａ）及び（ｂ）は、被探索画像においてエッジが抽出できなくなる状況を示す模式図である。
【図９】モデルエッジ集合のアフィン変換の一例を示す模式図である。
【図１０】第２実施形態に係る画像処理方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１３】
［第１実施形態］
図１（ａ）は、本発明の第１実施形態に係る画像処理装置を備えた画像処理システムを示す説明図である。図１（ｂ）は、検出対象のワークを示す平面図である。
【００１４】
図１（ａ）に示すように、画像処理システム１００は、光源１０２と、撮像装置であるカメラ１０５と、画像処理装置２００と、を備えている。光源１０２及びカメラ１０５は、画像処理装置２００に接続されている。検出対象物体（物体）であるワークＷは、トレイ１０７に保持されている。ワークＷを保持するトレイ１０７は、カメラ１０５と光源１０２との間に配置されている。
【００１５】
ワークＷは、図１（ｂ）に示すように、円筒形の円筒部ＷＡと、円筒部ＷＡの内側に突出する４個の突起部ＷＢとを有し、各突起部ＷＢに貫通穴ＷＨが形成された物体である。貫通穴ＷＨは、同一円の円周上に配置されている。
【００１６】
トレイ１０７は、ワークＷを載置する窪み部分１０７Ａが２つ形成されており、各窪み部分１０７Ａだけが光を透過する材質でできている。したがって、カメラ１０５にはトレイ１０７の窪み部分１０７Ａを透過した光のみが届くことになる。
【００１７】
光源１０２は、ワークＷに光を照射（照明）するバックライト照明装置である。光源１０２は、例えばＬＥＤやハロゲンランプ等、画像処理に必要な光量の光をワークＷに照射するものであればいかなるものでもよい。
【００１８】
カメラ１０５は、ワークＷからの光を受光して、撮像画像のデータを生成するデジタルカメラである。カメラ１０５は、撮像レンズ１０５Ａと、撮像素子（固体撮像素子）１０５Ｂとを有する。
【００１９】
撮像素子１０５Ｂは、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサ等のエリアセンサである。撮像レンズ１０５Ａは、倍率を調整する対物レンズユニットであり、撮像素子１０５ＢにおいてワークＷの全体が撮像されるように調整される。
【００２０】
画像処理装置２００は、カメラ１０５にワークＷを撮像させて得られた撮像画像に対して画像処理し、ワークＷの位置（姿勢を含む）を求める。
【００２１】
図２は、本発明の第１実施形態に係る画像処理装置を示すブロック図である。画像処理装置２００は、処理部（演算部）としてのＣＰＵ（Central  Processing  Unit）２４０を備えている。また、画像処理装置２００は、記憶部としてのメモリ２１０を備えている。メモリ２１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）等で構成されている。また、画像処理装置２００は、記録ディスクドライブ２０５、Ｉ／Ｆユニット２５０、通信ユニット２２０、制御ユニット２３０、バス２６０を備えている。ＣＰＵ２４０、メモリ２１０、記録ディスクドライブ２０５、Ｉ／Ｆユニット２５０、通信ユニット２２０及び制御ユニット２３０がバス２６０に接続されている。
【００２２】
記録ディスクドライブ２０５は、記録ディスク２８０に記録された各種データやプログラム等を読み出すことができる。
【００２３】
メモリ２１０は、ＣＰＵ２４０の演算処理結果や取得した各種データ（画像のデータやモデル８００のデータ）等を記憶する記憶装置であると共に、ＣＰＵ２４０に、各種演算処理を実行させるためのプログラム２９０を記録するものである。ＣＰＵ２４０は、ＨＤＤ２０４に記録（格納）されたプログラム２９０に基づいて画像処理方法の各工程（各処理）を実行する。つまり、第１実施形態の画像処理方法を実行するプログラム２９０が、メモリ２１０にロードされ、ＣＰＵ２４０にて実行される。
【００２４】
Ｉ／Ｆユニット２５０では、カメラ１０５や光源１０２、不図示のディスプレイなど各種デバイスと信号をやりとりする。通信ユニット２２０は、画像などのデータをネットワーク２７０経由で通信する。制御ユニット２３０は、画像処理装置全体を制御する。
【００２５】
なお、第１実施形態では、プログラム２９０が格納されたコンピュータ読み取り可能な記録媒体がメモリ２１０や記録ディスク２８０である場合について説明するが、これに限定するものではない。プログラム２９０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム２９０を供給するための記録媒体としては、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、ＵＳＢメモリ等の不揮発性メモリ、ＲＯＭ等を用いることができる。また、プログラム２９０は、ネットワーク２７０経由で画像処理装置２００に供給されるようにしてもよい。
【００２６】
画像処理装置２００のＣＰＵ２４０は、カメラ１０５と光源１０２を制御して、カメラ１０５にワークＷを撮像させ、画像（被探索画像）を取得する。第１実施形態では、ＣＰＵ２４０は、トレイ１０７上に設置されたワークＷの位置を計測する場合を例に説明する。
【００２７】
ワークＷの位置を計測する際には、ワークＷの形状特徴を使用してテンプレートマッチングなどの技術を適用することが多い。しかし、ワークＷの形状によっては位置の計測で使用可能な特徴量が少ない場合も多く、そのような場合でも高精度かつ安定的に位置を計測できなければならない。一般的にはワークＷの輪郭のエッジを使用することが考えられるが、たとえばワークＷが複雑な形状であったり、撮像する際にワークＷの背景の影響を受けたりすることがあるため、ワークＷの輪郭のエッジを使用できない場合もある。このような場合はワークＷ表面のわずかなエッジ特徴を使用しなければならない。第１実施形態では、このように使用可能なエッジ特徴が少ない場合の位置の計測について説明する。
【００２８】
具体的には、ワークＷの特徴として４個の貫通穴ＷＨのみが使用可能な場合を考え、４個の貫通穴ＷＨを通る円の中心つまり円形面の中心Ｃを算出することで、ワークＷの位置を計測する例を説明する。
【００２９】
図３は、本発明の第１実施形態に係る画像処理方法を示すフローチャートである。第１実施形態では、ＣＰＵ２４０がプログラム２９０に従って図３に示す画像処理方法の各工程（各処理）を実行する。
【００３０】
図４は、被探索画像を示す模式図である。ＣＰＵ２４０は、カメラ１０５にワークＷを撮像させて、カメラ１０５から、図４に示す被探索画像５００を取得する（Ｓ１０１：画像取得工程、画像取得処理）。ＣＰＵ２４０は、被探索画像５００をカメラ１０５から取得するだけでなく、別の装置で撮像した画像５００をネットワーク２７０経由で受信しても構わない。
【００３１】
次に、ＣＰＵ２４０は、予めメモリ２１０に記録しておいたモデル８００をメモリ２１０から取得する（Ｓ１０２：モデル取得工程、モデル取得処理）。
【００３２】
ここで、モデル８００の生成方法について説明する。図５（ａ）は、モデル生成用の画像を示す模式図である。モデル生成用画像６００は、理想の条件でワークＷを撮像したときの画像である。
【００３３】
図５（ｂ）は、モデル生成用画像から抽出したエッジ集合を示す模式図である。ＣＰＵ２４０は、モデル８００を生成する際に、モデル生成用画像６００に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、複数のエッジ７１０，７２０，７３０，７４０を含むエッジ集合７００を抽出する。図５（ｂ）において、エッジ７４０は、存在する画素である複数のエッジ点７４１からなる。各エッジ点７４１は、エッジ方向（矢印７４２の向き）とエッジ強度（矢印７４２の長さ）の情報をもつ。
【００３４】
図５（ｃ）は、モデル８００を示す模式図である。ＣＰＵ２４０は、エッジ集合７００からモデル８００に登録するエッジを選択してモデルエッジ８１０，８２０，８３０，８４０とする。モデル８００に含まれているモデルエッジ８１０，８２０，８３０，８４０は、ワークＷの貫通穴ＷＨに相当する。このようにして作成されたモデル（モデルエッジ集合）８００は、メモリ２１０に記憶（格納）される。
【００３５】
ステップＳ１０２では、ＣＰＵ２４０は、予めメモリ２１０に記憶されたモデル８００を読み出す。
【００３６】
次に、ＣＰＵ２４０は、事前に登録しておいたモデル８００を使用して粗探索を行い、ワークＷの位置（仮位置）を計測する（Ｓ１０３：粗探索工程、粗探索処理）。即ち、ＣＰＵ２４０は、ステップＳ１０３において、被探索画像中（具体的には被探索画像から抽出したエッジ集合中）、モデル８００と一致する位置をパターンマッチングにより探索する。ここで、第１実施形態では、モデル８００に含まれるモデルエッジの数が少ないので、求まる位置精度は低い。
【００３７】
以下、粗探索工程について詳細に説明する。図６（ａ）は、被探索画像から抽出したエッジ集合を示す模式図である。ＣＰＵ２４０は、被探索画像５００に対してＳｏｂｅｌフィルタやＣａｎｎｙフィルタなどのエッジ抽出フィルタを適用して、複数のエッジ（被探索エッジ）からなるエッジ集合（被探索エッジ集合）９００を抽出する。
【００３８】
図６（ｂ）は、モデル（モデルエッジ集合）８００の左上隅画素を基準点１０００として、その基準点１０００を被探索エッジ集合９００の左上隅からラスタ走査する例を示す模式図である。
【００３９】
ＣＰＵ２４０は、モデルエッジ集合８００と被探索エッジ集合９００を用いて、ワークＷの位置の候補点を探索する。具体的には、ＣＰＵ２４０は、モデルエッジ集合８００を被探索エッジ集合９００の左上隅からラスタ走査で平行移動／回転しながら一致度（類似度）を計算することで候補点の探索を行う。
【００４０】
２つのエッジ集合８００，９００の一致度が予め設定された閾値以上となるような基準点の位置（姿勢を含む）が候補点となるが、候補点は１個とは限らず複数個存在することもある。
【００４１】
ここで、被探索画像５００中、モデル８００が一致する位置とは、一致度（類似度）が閾値以上となる位置である。一致度が閾値以上となる位置が複数存在する場合は、これら複数の位置のうちの１つ、好ましくは一致度が最大となる位置とする。
【００４２】
２つのエッジ集合８００，９００の一致度は、エッジ方向を用いて式（１）のように計算する。
【００４３】
【数１】
0006659098.tif 000002
【００４４】
ここでＮＬはモデルエッジ集合８００におけるエッジ点の個数、ＴＬｎはモデルエッジ集合８００におけるｎ番目のエッジ点のエッジ方向、ＩＬｎはＴＬに対応する位置にある被探索エッジのエッジ点のエッジ方向である。式（１）はモデルエッジ集合８００と被探索エッジ集合９００とのエッジ方向の相違を計算しており、２つのエッジ集合が完全に一致する場合は１、不一致の場合は０となる。そして一致度（類似度）が閾値以上となる位置を候補点として抽出する。この位置が粗探索結果の仮位置となる。
【００４５】
次に、ＣＰＵ２４０は、被探索画像５００から貫通穴ＷＨに対応するエッジを抽出する演算を行う（Ｓ１０４：エッジ抽出工程、エッジ抽出処理）。つまり、ステップＳ１０３で計算した仮位置に基づいて、貫通穴ＷＨの被探索画像５００上の大まかな位置を知ることができる。被探索画像５００上にある貫通穴ＷＨのエッジを抽出するために、その位置にエッジ抽出の範囲を指定するエッジ抽出領域を設定する。
【００４６】
図７（ａ）は、被探索画像にエッジ抽出領域を設定した状態を示す模式図である。ステップＳ１０４において、ＣＰＵ２４０は、被探索画像５００中、ステップＳ１０３にて探索した位置にモデル８００を移動させたときの複数のモデルエッジ８１０〜８４０それぞれを包含する複数のエッジ抽出領域１１１０〜１１４０を設定する。ＣＰＵ２４０は、各エッジ抽出領域１１１０〜１１４０についてエッジを抽出する演算を行う。
【００４７】
次に、ＣＰＵ２４０は、ステップＳ１０４にて抽出したエッジのエッジ集合に対して所定形状、第１実施形態では円でフィッティングを行い、ワークＷの位置を計測する（Ｓ１０５〜Ｓ１０７：精探索工程、精探索処理）。
【００４８】
以下、精探索処理について具体的に説明する。まず、ＣＰＵ２４０は、全てのエッジ抽出領域１１１０〜１１４０からエッジを抽出できたか否か、即ち全てのエッジ抽出領域１１１０〜１１４０においてエッジの抽出に成功したか否かを判断する（Ｓ１０５）。第１実施形態では、４個の貫通穴ＷＨに対応する全てのエッジが抽出できたか否かを判断する。具体的には、ＣＰＵ２４０は、各エッジ抽出領域１１１０〜１１４０において、エッジ抽出フィルタを適用して濃淡勾配の絶対値が所定閾値以上となるエッジ点の個数をカウントし、その個数が所定閾値以上であればエッジ抽出できたと判定する。そしてＣＰＵ２４０は、全てのエッジ抽出領域１１１０〜１１４０についてエッジを抽出できていればステップＳ１０６の処理に、抽出できなかったエッジが存在すればステップＳ１０７の処理に進む。
【００４９】
図７（ｂ）は、全てのエッジ抽出領域からエッジを抽出した場合を示す模式図である。図７（ａ）のエッジ抽出領域１１１０，１１２０，１１３０，１１４０の範囲にエッジ抽出フィルタを適用することで、図７（ｂ）に示すような貫通穴ＷＨに対応するエッジ１２１０，１２２０，１２３０，１２４０が抽出される。
【００５０】
ＣＰＵ２４０は、複数のエッジ抽出領域１１１０〜１１４０のうち全てからエッジ１２１０〜１２４０を抽出した場合（Ｓ１０５：Ｙｅｓ）、エッジ１２１０〜１２４０を含むエッジ集合１２００に対して円でフィッティング（円フィッティング）を行う。ＣＰＵ２４０は、この円フィッティングの演算により、ワークＷの位置を計測する（Ｓ１０６）。
【００５１】
図７（ｃ）は、フィッティングの処理を説明するための模式図である。以下、ステップＳ１０６の処理について具体的に説明する。まず、ＣＰＵ２４０は、各エッジ１２１０，１２２０，１２３０，１２４０の中心点１４１０，１４２０，１４３０，１４４０を計算する。貫通穴ＷＨの形状を円形とすると、各エッジ１２１０〜１２４０は円形であるので、各エッジ１２１０〜１２４０に対して円フィッティングを行い、中心点１４１０，１４２０，１４３０，１４４０を計算する。次に、ＣＰＵ２４０は、４つの中心点１４１０，１４２０，１４３０，１４４０に対して更に円フィッティングを行い、図７（ｃ）に示すような近似円１３００と近似円１３００の中心点１３１０を計算する。計算した中心点１３１０の位置がワークＷの位置となる。
【００５２】
ＣＰＵ２４０は、ステップＳ１０４で抽出できなかったエッジが存在する場合（Ｓ１０５：Ｎｏ）、モデル８００に含まれるエッジで補完する（Ｓ１０７）。即ち、ＣＰＵ２４０は、抽出に失敗した部分のエッジを、粗探索で使用したモデル８００に含まれるモデルエッジで代用する。
【００５３】
図８（ａ）及び図８（ｂ）は、被探索画像においてエッジが抽出できなくなる状況を示す模式図である。被探索画像５００においてエッジが抽出できなくなる状況としては、例えば図８（ａ）のようにオクルージョンが発生したり、図８（ｂ）のように光源１０２からの光が弱いために貫通穴ＷＨのエッジ強度が低下したりすることが考えられる。
【００５４】
図８（ａ）及び図８（ｂ）のように４個の貫通穴の中、一部の貫通穴に対応するエッジの抽出ができなかったエッジ抽出領域が存在すると、抽出できたエッジだけで円フィッティングを実行した場合には、ワークＷの位置の計測精度が低下する。
【００５５】
そこで、第１実施形態では、ワークＷの位置の計測精度が低下するのを防ぐため、欠落した貫通穴に相当するエッジ１２４０をモデル８００のモデルエッジ８４０で補完した上で、円フィッティングを実行する。
【００５６】
つまり、ＣＰＵ２４０は、ステップＳ１０４にてエッジを抽出できなかったエッジ抽出領域が存在する場合、ステップＳ１０３にて探索した位置に移動させた状態のモデル８００のうちエッジを抽出できなかったエッジ抽出領域に位置するモデルエッジを求める。そして、ＣＰＵ２４０は、求めたモデルエッジをエッジ集合１２００に含めて、モデルエッジで補完したエッジ集合１２００に対し、円でフィッティングを行う。
【００５７】
図９は、モデルエッジ集合のアフィン変換の一例を示す模式図である。以下、具体的に説明すると、まずＣＰＵ２４０は、Ｓ１０３の粗探索結果に基づいて、モデルエッジ集合８００を被探索エッジ集合９００上のワーク位置に移動させるためのアフィン変換行列を算出する。算出したアフィン変換行列を使用して、モデルエッジ集合８００を構成する全エッジ点の座標をアフィン変換し、図９のようにアフィン変換済のモデルエッジ集合１５００を生成する。そしてエッジ１２４０の代わりとして、欠落した貫通穴の位置にアフィン変換されたエッジ１５４０（エッジ８４０に相当）に置き換える。つまり、ＣＰＵ２４０は、エッジ１５４０を、エッジ抽出領域１１４０で抽出されたエッジとして、円フィッティングに用いるエッジ集合１２００に含める。したがって、次のステップＳ１０６では、ＣＰＵ２４０は、エッジ１２１０，１２２０，１２３０、およびエッジ１５４０で構成されたエッジ集合１２００を使用して円フィッティングを行う。
【００５８】
以上、ＣＰＵ２４０は、ステップＳ１０３にて探索した位置に移動させた状態のモデル８００について、エッジ抽出に失敗したエッジ抽出領域１１４０に位置するモデルエッジ８４０を、エッジ集合１２００に含める。そして、ＣＰＵ２４０は、モデルエッジ８４０で補完したエッジ集合１２００に対してフィッティングを行う。
【００５９】
第１実施形態によれば、エッジ集合１２００に、エッジ抽出に失敗したエッジ１２４０に対応するエッジ８４０（エッジ１５４０）を含めたことで、被探索画像５００から抽出されたエッジの数が減少しても、高精度にワークＷの位置を計測することができる。
【００６０】
なお、図３に示すフローチャートの２巡目以降（２つ目以降のワークの位置計測）は、１巡目のステップＳ１０２にて取得したモデル８００を使用することで、ステップＳ１０２の処理を省略することができる。
【００６１】
［第２実施形態］
次に、本発明の第２実施形態に係る画像処理方法について説明する。図１０は、本発明の第２実施形態に係る画像処理方法を示すフローチャートである。なお、第２実施形態において、画像処理装置の構成は、第１実施形態と同様であり、ＣＰＵ２４０の処理、即ちプログラム２９０が第１実施形態と異なる。具体的には、第２実施形態では、図１０に示すように、第１実施形態の図３の画像処理方法のフローチャートに、ステップＳ１０８の処理（判断処理、判断工程）を更に追加したものである。
【００６２】
ステップＳ１０１〜Ｓ１０５は、第１実施形態で説明した通りの処理である。ＣＰＵ２４０は、ステップＳ１０５において、ステップＳ１０４にてエッジを抽出できなかったエッジ抽出領域が存在すると判断した場合（Ｓ１０５：Ｎｏ）、ステップＳ１０４にて抽出したエッジの数に対して閾値判断を行う（Ｓ１０８）。具体的には、ＣＰＵ２４０は、ステップＳ１０８において、抽出できたエッジの数が閾値以上であるか否か、即ちステップＳ１０６の処理を行うか否かを判断する。ＣＰＵ２４０は、抽出できたエッジの数が閾値以上であれば、即ちステップＳ１０６の処理を行うと判断した場合は（Ｓ１０８：Ｙｅｓ）、ステップＳ１０７の処理を行う。また、ＣＰＵ２４０は、抽出できたエッジの数が閾値より少なければ、即ちステップＳ１０６の処理を行わないと判断した場合は（Ｓ１０８：Ｎｏ）、ステップＳ１０７の処理を行わずに、処理を終了する。
【００６３】
よって、ＣＰＵ２４０は、ステップＳ１０５において、全てのエッジ抽出領域に対してエッジを抽出できたと判断した場合は、抽出した複数のエッジからなるエッジ集合１２００に対して円（所定形状）でフィッティングを行う（Ｓ１０６）。また、ＣＰＵ２４０は、ステップＳ１０５において、エッジを抽出できなかったエッジ抽出領域が存在すると判断した場合は、抽出したエッジの数に対して閾値判断を行い、ステップＳ１０６の処理（精探索処理）を行うか否かを判断する（Ｓ１０８）。ＣＰＵ２４０は、精探索処理を行うと判断した場合は、Ｓ１０３にて探索した位置にモデル８００を移動させ、この状態でエッジ抽出に失敗したエッジ抽出領域に位置するモデルエッジを、エッジ集合１２００に含めて、フィッティングを行う。
【００６４】
このように、第２実施形態では、エッジの置き換え個数が多くなると、位置計測の精度が粗探索と同等となってしまうため、エッジの置き換え個数の制限をしたものである。閾値は、必要とする位置計測の精度に応じた値に設定すればよい。
【００６５】
なお、ステップＳ１０８の閾値判断において、Ｓ１０４で抽出できなかったエッジの個数が所定閾値以下か否かを判断してもよい。もし閾値以下であればＳ１０７に進んでエッジ補完を行えばよい。もし閾値を超えていればエッジ補完を行わず、位置計測に失敗したとみなして処理を終了すればよい。例えば、４個の貫通穴のうち、エッジ抽出できなかった貫通穴が１個までであれば、エッジ補完を行うようにしてもよい。
【００６６】
以上、第２実施形態によれば、閾値で精探索処理を実行するか否かを判断し、抽出したエッジの数が少なすぎる場合には、位置計測が失敗したとして処理を終了することで、精度の低い計測結果が算出されるのを防ぐことができる。よって、算出されるワークＷの位置精度を確保することができる。
【００６７】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００６８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６９】
また、上記実施形態では、ワークの特徴として、貫通穴を用いる場合について説明したが、これに限定するものではなく、凹み穴等、あらゆる特徴を用いることが可能である。
【００７０】
また、上記実施形態では、精探索で円フィッティングを適用する場合の例を説明したが、円フィッティングに限定されるものではなく、ワークＷの特徴の配置に応じて所定形状にフィッティングすればよい。例えば、ワークＷの特徴が、楕円上に配列されている場合には、楕円フィッティングを適用して楕円の中心座標と回転角度を計測し、それぞれの計測結果をワークの位置としても構わない。また、矩形状に配列された特徴を有するワークであれば、矩形フィッティングを適用して矩形の中心座標と回転角度を計測し、それぞれの計測結果をワークの位置としても構わない。このように、ワークに存在する複数の特徴を結ぶ包絡線の形状に応じた形状でフィッティングすればよい。
【符号の説明】
【００７１】
２００…画像処理装置、２４０…ＣＰＵ（処理部）
【図１】
0006659098.tif 000003
【図２】
0006659098.tif 000004
【図３】
0006659098.tif 000005
【図４】
0006659098.tif 000006
【図５】
0006659098.tif 000007
【図６】
0006659098.tif 000008
【図７】
0006659098.tif 000009
【図８】
0006659098.tif 000010
【図９】
0006659098.tif 000011
【図１０】
0006659098.tif 000012