説明

画像処理装置、画像処理方法、把持ロボットおよびプログラム

【課題】処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現する技術を提供する。
【解決手段】画像処理装置10は、テンプレート画像の特徴量を算出する特徴量算出部130と、前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定部140と、前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成部170とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、把持ロボットおよびプログラムに関するものである。
【背景技術】
【0002】
製造ラインでは、製品を構成する部品を抽出・選択し、抽出・選択した部品を把持して所望の位置へ据え付けることで製品の組み立てが実施される。また、部品を抽出・選択し、形状や状態を観察し、不具合の有無を検査する外観検査が行われている。所望の部品を抽出・選択する作業は、従来は、作業員による目視作業であったが、近年は、デジタルカメラで撮影した撮像画像を画像処理し、自動的に部品を抽出・選択する画像処理装置による作業へと置き換えが進展している。画像処理装置への置き換えの流れは、今後予想される画像処理装置のデータ処理能力の向上や、デジタルカメラの感度向上・画素数増大に応じて加速すると予想される。
【0003】
画像処理における部品の抽出・選択は、一般に、テンプレートマッチング処理を用いる(例えば、特許文献1および特許文献2参照)。つまり、画像処理装置は、一般に、抽出・選択すべきオブジェクト、即ち検出すべきオブジェクトを含むテンプレート画像と、デジタルカメラで撮像した撮像画像との相関を計算し、最も強い相関関係のある撮像画像上の位置を、検出すべきオブジェクトの位置として特定する。
【0004】
なお、特許文献1には、テンプレート画像に2値化エッジ画像を用い、入力画像にエッジ画像を用いるテンプレートマッチング処理が開示されている。また、特許文献2には、標準画像(テンプレート画像)および識別対象画像(入力画像)を分割し、分割領域毎に設定した重み係数を用いるテンプレートマッチング処理が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−173649号公報
【特許文献2】特開2005−322139号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、テンプレートマッチング処理は、入力画像(撮像画像)の画素数、テンプレート画像の画素数および種類が大きくなればなるほど演算量が増大する。従って、画像処理装置のデータ処理能力が向上しているとはいえ、例えば、一のオブジェクトを入力画像から複数検出する場合、あるいは、異なる複数のオブジェクトを入力画像から夫々検出する場合には、処理時間が長くなるという問題がある。
【0007】
また、特許文献1に係る技術では、テンプレート画像と入力画像との双方をエッジ画像に変換するため、相関計算の精度、即ち、テンプレートマッチング処理の精度に問題がある。また、特許文献2に係る技術では、分割領域の特徴量から重み係数を設定するが、分割領域のスケールと分割領域に含まれる特徴量のスケールとを適切に設定するのが困難である(例えば、分割領域の大きさに対する特徴量の広がりが適切でないと、重み係数の広がりも不適切な設定になる)。
【0008】
本発明はこのような事情に鑑みてなされたものであって、処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記問題を解決するために、本発明の一態様である画像処理装置は、テンプレート画像の特徴量を算出する特徴量算出部と、前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定部と、前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成部とを備えることを特徴とする。
上記構成によれば、テンプレート画像よりも画素数が少なく、テンプレート画像の特徴量が反映された子テンプレート画像が簡便に生成される。従って、当該子テンプレート画像を用いれば、処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現することができる。
【0010】
上記画像処理装置は、テンプレート画像に加工を行うテンプレート画像加工部を更に備え、前記特徴量算出部は、前記加工後のテンプレート画像の特徴量を算出するようにしてもよい。また、前記テンプレート画像加工部は、前記加工として、テンプレート画像にフィルタ処理を行うようにしてもよい。
上記構成によれば、フィルタ処理などの加工処理後のテンプレート画像を用いて、より画素数の少ない子テンプレート画像が生成される場合がある。従って、テンプレートマッチング処理の処理時間を更に短縮することができる場合がある。
【0011】
上記画像処理装置において、前記特徴量算出部は、前記テンプレート画像の各画素位置の画素値を少値化し、各画素位置の少値化後の画素値を前記特徴量として算出するようにしてもよい。
上記構成によれば、簡便に、子テンプレート画像を生成することができる。
【0012】
上記画像処理装置において、前記共通領域特定部は、夫々の前記共通領域を構成する画素位置の少値化後の画素値の範囲を前記共通領域毎に定義した定義情報と、前記特徴量算出部によって算出された各画素位置の少値化後の画素値とに基づいて、前記少値化後の画素値が前記定義情報において同一の前記範囲内にある画素位置を共通領域として特定してもよい。
上記構成によれば、簡便に、子テンプレート画像を生成することができる。
【0013】
上記画像処理装置は、前記共通領域特定部によって特定された夫々の前記共通領域を膨張または収縮する共通領域加工部を更に備え、前記子テンプレート画像生成部は、前記テンプレート画像から膨張後または収縮後の前記共通領域を抽出した複数の前記子テンプレート画像を生成するようにしてもよい。
上記構成によれば、収縮処理により、より画素数の少ない子テンプレート画像が生成される。従って、テンプレートマッチング処理の処理時間を更に短縮することができる。また、膨張処理により、テンプレートマッチング処理の精度を更に向上させることができる。
【0014】
上記問題を解決するために、本発明の他の態様である画像処理装置は、オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成部と、前記子テンプレート画像生成部によって生成された複数の子テンプレート画像を記憶する子テンプレート画像記憶部と、検査対象画像を取得する画像取得部と、前記子テンプレート画像記憶部に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択する子テンプレート画像選択部と、前記画像取得部によって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択部によって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出部と、前記高相関画素位置検出部において夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定部と、前記収束判定部によって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定部とを備え、前記高相関画素位置検出部は、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、前記収束判定部は、前記高相関画素位置検出部による次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする。
上記構成によれば、テンプレート画像の特徴量を正確に反映し、テンプレート画像よりも画素数が少ない子テンプレート画像を用いて、テンプレートマッチング処理を行うため、処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現することができる。
【0015】
上記問題を解決するために、本発明の他の態様である画像処理方法は、テンプレート画像の特徴量を算出する特徴量算出手順と、前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定手順と、前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成手順とを有することを特徴とする。
【0016】
上記問題を解決するために、本発明の他の態様である画像処理方法は、オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成手順と、検査対象画像を取得する画像取得手順と、前記子テンプレート画像生成部によって生成された複数の子テンプレート画像のなかから子テンプレート画像を順次選択する子テンプレート画像選択手順と、前記画像取得手順によって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択手順によって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出手順と、前記高相関画素位置検出手順において夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定手順と、前記収束判定手順によって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定手順とを有し、前記高相関画素位置検出手順は、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、前記収束判定手順は、前記高相関画素位置検出手順による次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする。
【0017】
上記問題を解決するために、本発明の他の態様であるロボットは、オブジェクトを把持する把持部と、オブジェクトを撮像する撮像部と、オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成部と、前記子テンプレート画像生成部によって生成された複数の子テンプレート画像を記憶する子テンプレート画像記憶部と、前記把持部を制御する制御部とを備え、前記制御部は、前記撮像部によってオブジェクトが撮像された場合に、前記子テンプレート画像記憶部に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択し、順次選択した前記子テンプレート画像との相関が高い撮像画像の画素位置である高相関画素位置を検出し、夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定し、前記高相関画素位置が収束したと判定した場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記撮像画像のオブジェクトの位置を特定し、前記把持部にオブジェクトを把持させることを特徴とする。
上記構成によれば、例えば、製造ラインにおいて、オブジェクトを撮像すれば、処理時間が短く、かつ、精度の高いテンプレートマッチング処理が行われ、オブジェクトの位置を簡便に測定されるため、オブジェクトを素早く正確に把持することができる。
【0018】
上記ロボットにおいて、前記制御部は、既に検出した前記高相関画素位置に基づいて前記高相関画素位置の次回の検出対象領域を決定し、次回の前記検出対象領域が前回の前記検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定してもよい。
【0019】
上記問題を解決するために、本発明の他の態様であるプログラムは、テンプレート画像を記憶する画像処理装置のコンピュータに、前記テンプレート画像の特徴量を算出する特徴量算出ステップと、前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定ステップと、前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成ステップとを実行させることを特徴とする。
【0020】
上記問題を解決するために、本発明の他の態様であるプログラムは、オブジェクトを示すテンプレート画像を記憶する画像処理装置のコンピュータに、前記テンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成ステップと、検査対象画像を取得する画像取得ステップと、前記子テンプレート画像生成ステップによって生成された複数の前記子テンプレート画像のなかから前記子テンプレート画像を順次選択する子テンプレート画像選択ステップと、前記画像取得ステップによって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択ステップによって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出ステップと、前記高相関画素位置検出ステップにおいて夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定ステップと、前記収束判定ステップによって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定ステップとを実行させ、前記高相関画素位置検出ステップは、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、前記収束判定ステップは、前記高相関画素位置検出ステップによる次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態に係る画像処理装置10の機能ブロック図である。
【図2】本発明の第1の実施形態に係る画像処理装置10の処理を説明するための説明図である。
【図3】本発明の第1の実施形態に係る画像処理装置10の処理を説明するための説明図である。
【図4】本発明の第1の実施形態に係る画像処理装置10の処理を説明するための説明図である。
【図5】本発明の第1の実施形態に係る画像処理装置10の処理を説明するための説明図である。
【図6】本発明の第1の実施形態に係る画像処理装置10の動作の一例を示すフローチャートである。
【図7】本発明の第2の実施形態に係る画像処理装置20の機能ブロック図である。
【図8】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図9】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図10】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図11】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図12】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図13】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図14】本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。
【図15】本発明の第2の実施形態に係る画像処理装置20の動作の一例を示すフローチャートである。
【図16】本発明の第3の実施形態に係る把持ロボット1の概略斜視図である。
【図17】本発明の第3の実施形態に係る把持ロボット1の制御装置30の機能ブロック図である。
【発明を実施するための形態】
【0022】
(第1の実施形態)
以下、本発明の第1の実施形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態に係る画像処理装置10の機能ブロック図である。図2から図5は、本発明の第1の実施形態に係る画像処理装置10の処理を説明するための説明図である。本発明の第1の実施形態に係る画像処理装置10は、図1に示すように、テンプレート画像取得部100、テンプレート画像記憶部110、テンプレート画像加工部120、特徴量算出部130、共通領域特定部140、共通領域画像記憶部150、共通領域加工部160および子テンプレート画像生成部170を備える。
【0023】
テンプレート画像取得部100は、外部からテンプレート画像を取得する。テンプレート画像取得部100は、外部から取得したテンプレート画像をテンプレート画像記憶部110に記憶する。
【0024】
テンプレート画像記憶部110は、テンプレート画像取得部100によって取得されたテンプレート画像、および、テンプレート画像加工部120によってフィルタ処理されたテンプレート画像を記憶する。
【0025】
なお、以下の説明において、テンプレート画像取得部100によって取得されたテンプレート画像とテンプレート画像加工部120によって加工されたテンプレート画像とを区別して用いる場合には、前者を「未加工テンプレート画像」といい、後者を「加工済テンプレート画像」という。両者を区別して用いない場合には、単に「テンプレート画像」といい、その場合、「未加工テンプレート画像」および「加工済テンプレート画像」の両方を表している。
【0026】
テンプレート画像加工部120は、テンプレート画像記憶部110に記憶されている未加工テンプレート画像を読み出して加工する。例えば、テンプレート画像加工部120は、図3に示すように、未加工テンプレート画像にフィルタ処理を施し、加工済テンプレート画像を生成する。フィルタ処理に用いるフィルタは、例えば、線形一次微分フィルタ、線形二次微分フィルタ(図3の例は、画面水平方向の線形一次微分フィルタ)などである。テンプレート画像加工部120は、加工済テンプレート画像をテンプレート画像記憶部110に記憶する。
【0027】
特徴量算出部130は、テンプレート画像記憶部110に記憶されているテンプレート画像を読み出して特徴量を算出する。例えば、特徴量算出部130は、テンプレート画像上の各画素位置の画素値を少値化し、各画素位置の少値化後の画素値を特徴量として算出する。より詳細には、特徴量算出部130は、図2および図3に示すように、特徴量算出条件として少値化変換関数を用いて、テンプレート画像に少値化処理を施し、特徴量を示す情報である少値化済テンプレート画像を生成する。なお、少値化処理とは、例えば、X階調で表現される画素値を、所定の閾値を用いて、Y階調で表現し直す処理である(但し、X、Yは整数、X>Yである)。例えば、8ビットを用いて256階調で表現される画素値を、画素値64の閾値1、画素値128の閾値2、画素値192の閾値3を用いて、2ビットの4階調で表現し直す処理である。上記例の場合、例えば、256階調において閾値1未満の画素値0〜63は4階調において例えば画素値0として表現され、256階調において閾値1以上閾値2未満の画素値64〜127は4階調において例えば画素値64として表現され、256階調において閾値2以上閾値3未満の画素値128〜191は4階調において例えば画素値128として表現され、256階調において閾値3以上の画素値192〜255は4階調において例えば画素値192として表現される。なお、上記例では等間隔の値を閾値としているが、閾値は任意に設定可能である。また、上記例では表現し直す画素値は元の画素値の範囲内としているが、表現し直す画素値は任意に設定可能である。また、図2および図3に示す少値化変換関数の横軸は元の画素値、縦軸は少値化後の画素値である。特徴量算出部130は、特徴量を示す情報(少値化済テンプレート画像)を共通領域特定部140に出力する。
【0028】
共通領域特定部140は、特徴量算出部130からテンプレート画像の特徴量を示す情報を取得する。共通領域特定部140は、テンプレート画像の特徴量を示す情報を取得した場合、当該テンプレート画像において、特徴量が共通する領域を共通領域として特定する。例えば、共通領域特定部140は、図2および図3に示すように、夫々の共通領域を構成する画素位置の少値化後の画素値の範囲を共通領域毎に定義した定義情報と、少値化済テンプレート画像とに基づいて、少値化後の画素値が定義情報において同一の範囲内にある画素位置を共通領域として特定する。具体的には、共通領域特定部140は、上記定義情報を用いて、少値化済テンプレート画像から、夫々の共通領域を特定する情報である夫々の共通領域画像を生成する。共通領域特定部140は、共通領域を特定する情報(共通領域画像)を共通領域画像記憶部150に記憶する。
【0029】
なお、図2は、一つのテンプレート画像Aから4個の共通領域画像B、C、D、Eを生成する例、図3は、図2と同一のテンプレート画像Aから3個の共通領域画像F、G、Hを生成する他の例である。
【0030】
共通領域画像記憶部150は、共通領域特定部140によって特定された夫々の共通領域画像、および、共通領域加工部160によって加工された夫々の共通領域画像を記憶する。
【0031】
なお、以下の説明において、共通領域特定部140によって特定された共通領域(共通領域特定部140によって生成された共通領域画像)と、共通領域加工部160によって加工された共通領域(共通領域加工部160によって加工された共通領域画像)とを区別して用いる場合には、前者を「未加工共通領域画像」といい、後者を「加工済共通領域画像」という。両者を区別して用いない場合には、単に「共通領域画像」といい、その場合、「未加工共通領域画像」および「加工済共通領域画像」の両方を表している。
【0032】
共通領域加工部160は、共通領域画像記憶部150に記憶されている共通領域画像を読み出して加工する。例えば、共通領域加工部160は、図4に示すように、共通領域画像に膨張処理(dilation)または収縮処理(erosion)を施し、加工済共通領域画像(膨張処理後の共通領域画像#3−1、収縮処理後の共通領域画像#3−2)を生成する。共通領域加工部160は、加工済共通領域画像を共通領域画像記憶部150に記憶する。なお、膨張処理とは、背景又は穴(以下、背景等という)に接する画素に、画素をひとまわり加える処理であるが、共通領域加工部160は、輪郭追跡などによって、背景等を構成する画素のうち共通領域を構成する画素に隣接する画素を、共通領域を構成する画素に変換する(当該隣接する画素の画素値を共通領域の画素値に書き換える)。また、収縮処理とは、背景等に接する画素をひとまわりはぎとる処理であるが、共通領域加工部160は、輪郭追跡などによって、共通領域を構成する画素のうち背景等を構成する画素に隣接する画素を、背景等を構成する画素に変換する(当該隣接する画素の画素値を背景等の画素値に書き換える)。
【0033】
なお、収縮処理を施した場合には、テンプレートマッチング処理の処理時間を更に短縮することができる。一方、膨張処理を施した場合には、テンプレートマッチング処理の精度を更に向上させることができる。
【0034】
子テンプレート画像生成部170は、テンプレート画像記憶部110に記憶されている未加工テンプレート画像と、共通領域画像記憶部150に記憶されている夫々の共通領域とを読み出して、未加工テンプレート画像から夫々の共通領域を抽出した複数の子テンプレート画像を生成する。例えば、子テンプレート画像生成部170は、図5に示すように、未加工テンプレート画像と夫々の共通領域画像との論理積から、夫々の子テンプレート画像を生成する。換言すれば、共通領域画像は、未加工テンプレート画像から子テンプレート画像を抽出するためのマスク画像であって、子テンプレート画像生成部170は、未加工テンプレート画像と、夫々のマスク画像である共通領域画像とから、夫々の子テンプレート画像を生成する。子テンプレート画像生成部170は、生成した子テンプレート画像を出力する。
【0035】
続いて、図6を用いて画像処理装置10の処理の流れを説明する。図6は、本発明の第1の実施形態に係る画像処理装置10の動作の一例を示すフローチャートである。
【0036】
図6において、テンプレート画像取得部100は、未加工テンプレート画像を取得する(ステップS10)。未加工テンプレート画像を取得したテンプレート画像取得部100は、テンプレート画像記憶部110に記憶する。
【0037】
テンプレート画像加工部120は、テンプレート画像記憶部110に記憶されている未加工テンプレート画像にフィルタ処理を施し、加工済テンプレート画像を生成する(ステップ12)。徴量算出部130は、加工済テンプレート画像に少値化処理を施し、少値化済テンプレート画像を生成する(ステップ14)。特徴量算出部130は、少値化済テンプレート画像を共通領域特定部140に出力する。
【0038】
特徴量算出部130から少値化済テンプレート画像を取得した共通領域特定部140は、少値化済テンプレート画像から、夫々の共通領域画像を生成する(ステップ16)。夫々の共通領域画像を生成した共通領域特定部140は、共通領域画像記憶部150に記憶する。
【0039】
共通領域加工部160は、共通領域画像記憶部150に記憶されている共通領域画像に膨張処理または収縮処理を施し、膨張処理後または収縮処理後の共通領域画像(加工済共通領域画像)を生成する(ステップ18)。共通領域加工部160は、加工済共通領域画像を共通領域画像記憶部150に記憶する。
【0040】
子テンプレート画像生成部170は、テンプレート画像記憶部110に記憶されている未加工テンプレート画像と、共通領域画像記憶部150に記憶されている夫々の加工済共通領域画像とを読み出して、未加工テンプレート画像から夫々の加工済共通領域画像を抽出した複数の子テンプレート画像を生成する(ステップS20)。そして本フローチャートは終了する。
【0041】
なお、図6に示すフローチャートにおいて、テンプレート画像加工部120によるフィルタ処理(ステップS120)は省略してもよい。フィルタ処理を省略した場合、徴量算出部130は、未加工テンプレート画像に少値化処理を施し、少値化済テンプレート画像を生成する(ステップ14)。
【0042】
また、図6に示すフローチャートにおいて、共通領域加工部160による膨張処理または収縮処理(ステップ18)は省略してもよい。膨張処理または収縮処理を省略した場合、子テンプレート画像生成部170は、未加工テンプレート画像から夫々の未加工共通領域画像を抽出した複数の子テンプレート画像を生成する(ステップS20)。
【0043】
(第2の実施形態)
以下、本発明の第2の実施形態について図面を参照して詳細に説明する。図7は、本発明の第2の実施形態に係る画像処理装置20の機能ブロック図である。本発明の第2の実施形態に係る画像処理装置20は、図7に示すように、子テンプレート画像記憶部200、検出対象領域指定情報記憶部210、画像取得部220、設定部230、子テンプレート画像選択部240、高相関画素位置検出部250、高相関画素位置記憶部260、収束判定部270およびオブジェクト位置特定部280を備える。
【0044】
子テンプレート画像記憶部200は、テンプレート画像から生成された複数の子テンプレート画像(未加工テンプレート画像の特徴量が共通する夫々の共通領域に基づいて生成された複数の子テンプレート画像)を記憶する。なお、子テンプレート画像は、例えば、上記の本発明の第1の実施形態に係る画像処理装置10によって生成される。
【0045】
検出対象領域指定情報記憶部210は、検査対象画像上の画素位置であって子テンプレート画像との相関が高い画素位置(「高相関画素位置」という)の検出対象領域を指定する検出対象領域指定情報を記憶する。なお、検出対象領域指定情報は、設定部30によって生成される。
【0046】
画像取得部220は、検査対象画像を取得する。検査対象画像の一例は、オブジェクトが撮像された撮像画像である。画像取得部220は、検査対象画像を取得した場合、検査対象画像を高相関画素位置検出部250に出力するとともに、検査対象画像を取得した旨を設定部230に通知する。
【0047】
設定部230は、検出対象領域を指定する。即ち、設定部230は、検出対象領域指定情報記憶部210に記憶する検出対象領域指定情報を生成する。具体的には、設定部230は、画像取得部220から検査対象画像を取得した旨を通知された場合、検出対象領域指定情報記憶部210内の検出対象領域指定情報を初期化(初期値として画像の全領域を検出対象領域に指定)し、収束判定部270からの要求に応じて新たな検出対象領域を指定(決定)し、指定情報記憶部210内の現在の検出対象領域と異なれば、指定情報記憶部210内の検出対象領域指定情報を更新する。なお、検出対象領域は、既に検出された高相関画素位置に基づき指定(決定)されるが、検出対象領域の指定に関する詳細は後述する。
【0048】
また、設定部230は、高相関画素位置記憶部260に記憶されている高相関画素位置を初期化する。具体的には、設定部230は、画像取得部220から検査対象画像を取得した旨を通知された場合、高相関画素位置記憶部260に記憶されている高相関画素位置を初期化(クリア)する。
【0049】
子テンプレート画像選択部240は、子テンプレート画像記憶部200に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択する。具体的には、子テンプレート画像選択部240は、高相関画素位置検出部250から子テンプレート画像を要求される都度、子テンプレート画像記憶部200に記憶されている複数の子テンプレート画像のなかから、当該検査対象画像の検査において未だ選択していない子テンプレート画像を順次選択する。子テンプレート画像選択部240は、選択した子テンプレート画像を高相関画素位置検出部250に出力する。
【0050】
高相関画素位置検出部250は、画像取得部220から検査対象画像を取得する。また、高相関画素位置検出部250は、子テンプレート画像選択部240に子テンプレート画像を要求し、子テンプレート画像選択部240から子テンプレート画像を取得する。具体的には、高相関画素位置検出部250は、画像取得部220から検査対象画像を取得した場合、または、収束判定部270から高相関画素位置が収束していない旨を通知された場合に、子テンプレート画像選択部240に子テンプレート画像を要求し、子テンプレート画像選択部240から子テンプレート画像を取得する。
【0051】
高相関画素位置検出部250は、子テンプレート画像選択部240から子テンプレート画像を取得した場合、検査対象画像上の画素位置であって当該子テンプレート画像との相関が高い高相関画素位置を検出する。具体的には、高相関画素位置検出部250は、検出対象領域指定情報記憶部210に記憶されている検出対象領域指定情報を参照し、検査対象画像上の画素位置のうち検出対象領域指定情報によって指定された領域上から高相関画素位置を検出する。換言すれば、高相関画素位置検出部250は、検出対象領域指定情報によって指定された検査対象画像上の領域を対象として、子テンプレート画像選択部240によって選択された子テンプレート画像を用いて、テンプレートマッチング処理を行う。
【0052】
高相関画素位置検出部250は、高相関画素位置を検出した場合、高相関画素位置の検出に用いた子テンプレート画像毎に、当該高相関画素位置を示す情報(例えば、座標)を高相関画素位置記憶部260に記憶する。また、高相関画素位置検出部250は、当該子テンプレート画像による高相関画素位置の検出処理が終了した旨を収束判定部270に通知する。
【0053】
高相関画素位置記憶部260は、高相関画素位置の検出に用いた子テンプレート画像毎に、高相関画素位置を示す情報を記憶する。高相関画素位置を示す情報は、設定部230によって初期化(クリア)され、高相関画素位置検出部250によって子テンプレート画像毎の高相関画素位置が検査される度に追加される。
【0054】
収束判定部270は、高相関画素位置検出部250から子テンプレート画像による高相関画素位置の検出処理が終了した旨を取得した場合、高相関画素位置記憶部260に記憶されている夫々の高相関画素位置、即ち、夫々の子テンプレート画像から検出された夫々の高相関画素位置が収束したか否かを判定する。なお、収束したか否かの収束判定に関する詳細は後述する。
【0055】
収束判定部270は、夫々の高相関画素位置が収束したと判定した場合、夫々の子テンプレート画像から検出した夫々の高相関画素位置を示す情報(例えば、座標)をオブジェクト位置特定部280に通知する。収束判定部270は、夫々の高相関画素位置が収束していないと判定した場合、高相関画素位置が収束していない旨を高相関画素位置検出部250に通知する。
【0056】
オブジェクト位置特定部280は、収束判定部270から夫々の子テンプレート画像から検出した夫々の高相関画素位置を示す情報を取得した場合、即ち、高相関画素位置が収束した場合、夫々の子テンプレート画像から検出した夫々の高相関画素位置に基づいて検査対象画像上のオブジェクトの位置を特定する。オブジェクト位置特定部280は、特定したオブジェクトの位置を出力する。なお、オブジェクトの位置の特定に関する詳細は後述する。
【0057】
続いて、具体例を用いて検出対象領域の指定および収束判定について詳細に説明する。図8から図14は、本発明の第2の実施形態に係る画像処理装置20の処理を説明するための説明図である。なお、上記説明では、テンプレート画像から3個若しくは4個の子テンプレート画像を生成する例を示したが、テンプレート画像から生成される子テンプレート画像の数は5個以上であってもよい。
【0058】
(収束判定に関して)
収束判定部270は、高相関画素位置検出部250からN番目(Nは1以上の整数)に選択した子テンプレート画像による高相関画素位置の検出処理が終了した旨を取得した場合、即ち、高相関画素位置記憶部260にN回目のテンプレートマッチング処理による高相関画素位置が記憶された場合、新たな検出対象領域である(N+1)回目の検出対象領域を指定すべき旨の要求を設定部230に通知する。
【0059】
設定部230は、上記要求に応じて、新たな検出対象領域である(N+1)回目の検出対象領域を指定し、検出対象領域指定情報記憶部210に記憶されている現在の検出対象領域であるN回目の検出対象領域を参照し、新たな検出対象領域(N+1)回目の検出対象領域が現在の検出対象領域であるN回目の検出対象領域と同一であるか否かを示す比較結果を収束判定部270に通知する。
【0060】
収束判定部270は、設定部230から通知された比較結果を参照し、新たな検出対象領域である(N+1)回目の検出対象領域が現在の検出対象領域であるN回目の検出対象領域と同一である場合には、N回目迄のテンプレートマッチング処理による夫々の高相関画素位置は収束したと判定したと判定する。
【0061】
収束判定部270は、新たな検出対象領域(N+1)回目の検出対象領域が現在の検出対象領域であるN回目の検出対象領域と異なる場合には、N回目迄のテンプレートマッチング処理による夫々の高相関画素位置は収束していないと判定する。但し、1回目のテンプレートマッチング処理後には、テンプレートマッチング処理は1回しか行っていないため、収束判定部270は、常に、収束していないと判定する。換言すれば、常に、設定部230は、2回目の検出対象領域が1回目の検出対象領域と異なる旨の比較結果を収束判定部270に通知する。
【0062】
なお、収束判定部270は、夫々の高相関画素位置が収束していないと判定した場合には、上述の如く、高相関画素位置が収束していない旨を高相関画素位置検出部250に通知する。その後、相関画素位置検出部250は、次の子テンプレート画像によるテンプレートマッチング処理を実行する。一方、収束判定部270は、夫々の高相関画素位置が収束したと判定した場合には、上述の如く、高相関画素位置を示す情報をオブジェクト位置特定部280に通知する。即ち、相関画素位置検出部250による以降のテンプレートマッチング処理を実行されない。つまり、収束判定は、テンプレートマッチング処理の終了判定でもある。
【0063】
(検出対象領域の指定に関して)
設定部230は、画像取得部220から検査対象画像を取得した旨を通知された場合、即ち、1回目のテンプレートマッチング処理においては、図8(a)に示すように、検査対象画像上のすべての画素位置を検出対象領域として指定する。図8(a)に示す検出対象領域の画素数は17×10=170画素である。
【0064】
設定部230は、2回目以降のテンプレートマッチング処理の終了後、収束判定部270から新たな検出対象領域を指定すべき旨の要求を取得した場合、高相関画素位置記憶部260を参照し、新たな検出対象領域を指定(決定)する。即ち、設定部230は、既に行ったテンプレートマッチング処理の結果に基づいて、新たな検出対象領域を指定する。
【0065】
具体的には、設定部230は、2回目以降のテンプレートマッチング処理では、以下の条件(条件1および条件2)に従って、検出対象領域を指定する。
[検出対象領域の指定条件(決定条件)]
条件1:テンプレートマッチング処理の結果、高相関画素位置が単独で存在する場合(8近傍画素に他の高相関画素が存在しない場合)、該単独の高相関画素位置の24近傍画素を検出対象領域とする。
条件2:テンプレートマッチング処理の結果、複数の高相関画素位置が8連結で存在する場合、該8連結の各高相関画素位置の8近傍を検出対象領域とする。
【0066】
例えば、1回目のテンプレートマッチング処理の結果、図8(b)のように、左上右下斜線にて示す5つの画素位置(2,2)、(3,8)、(10,4)、(14,8)、(15,1)が高相関画素位置である場合、設定部230は、上記条件1に従って、図9(a)に示すように、2回目のテンプレートマッチング処理の検出対象領域を指定する。図9(a)の破線は、図8(b)に示す各高相関画素位置を注目画素位置とする24近傍画素を表したものである。図9(a)に示す検出対象領域の画素数は105画素である。
【0067】
なお、設定部230は、2回目の検出対象領域(図9(a))が1回目の検出対象領域(図8(a))と異なる旨の比較結果を収束判定部270に通知する。また、設定部230は、2回目の検出対象領域(図9(a))が1回目の検出対象領域(図8(a))と異なるため、検出対象領域指定情報記憶部210に記憶されている1回目の検出対象領域を指定する検出対象領域指定情報を2回目の検出対象領域を指定する検出対象領域指定情報に更新する。これにより、収束判定部270は収束していないと判定し、相関画素位置検出部250は、2回目の検出対象領域において2番目に選択された子テンプレート画像を用いて2回目のテンプレートマッチング処理を実行する。
【0068】
また、2回目迄のテンプレートマッチング処理の結果、例えば、図9(b)に示す画素位置が高相関画素位置であったとする。図9(b)において、右上左下斜線にて示す3つの画素位置(1,3)、(11,7)、(14,1)は2回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、網掛けにて示す1つの画素位置(3,8)は2回目迄の複数回の処理による重複した高相関画素位置である。なお、左上右下斜線にて示す4つの画素位置(2,2)、(10,4)、(14,8)、(15,1)は、1回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)である。
【0069】
設定部230は、2回目迄のテンプレートマッチング処理による高相関画素位置が図9(b)に示す画素位置である場合、上記条件1および上記条件2に従って、図10(a)に示すように、3回目のテンプレートマッチング処理の検出対象領域を指定する。図10(a)に示す破線は、図9(b)に示す各高相関画素位置を注目画素位置とする24近傍画素または8近傍画素を表したものである。図10(a)に示す検出対象領域の画素数は100画素である。
【0070】
なお、設定部230は、3回目の検出対象領域(図10(a))が2回目の検出対象領域(図9(a))と異なる旨の比較結果を収束判定部270に通知する。また、設定部230は、3回目の検出対象領域(図10(a))が2回目の検出対象領域(図9(a))と異なるため、検出対象領域指定情報記憶部210に記憶されている2回目の検出対象領域を指定する検出対象領域指定情報を3回目の検出対象領域を指定する検出対象領域指定情報に更新する。これにより、収束判定部270は収束していないと判定し、相関画素位置検出部250は、3回目の検出対象領域において3番目に選択された子テンプレート画像を用いて3回目のテンプレートマッチング処理を実行する。
【0071】
3回目迄のテンプレートマッチング処理の結果、例えば、図10(b)に示す画素位置が高相関画素位置であったとする。図10(b)において、縦線にて示す5つの画素位置(1,2)、(2,8)、(10,5)、(13,7)、(14,2)は3回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、網掛けにて示す1つの画素位置(3,8)は3回目迄の複数回の処理による重複した高相関画素位置である。なお、左上右下斜線にて示す4つの画素位置(2,2)、(10,4)、(14,8)、(15,1)は、1回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、右上左下斜線にて示す3つの画素位置(1,3)、(11,7)、(14,1)は2回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)である。
【0072】
設定部230は、3回目迄のテンプレートマッチング処理による高相関画素位置が図10(b)に示す画素位置である場合、上記条件1および上記条件2に従って、図11(a)に示すように、4回目のテンプレートマッチング処理の検出対象領域を指定する。図11(a)に示す破線は、図10(b)に示す各高相関画素位置を注目画素位置とする24近傍画素または8近傍画素を表したものである。図11(a)に示す検出対象領域の画素数は80画素である。
【0073】
なお、設定部230は、4回目の検出対象領域(図11(a))が3回目の検出対象領域(図10(a))と異なる旨の比較結果を収束判定部270に通知する。また、設定部230は、4回目の検出対象領域(図11(a))が3回目の検出対象領域(図10(a))と異なるため、検出対象領域指定情報記憶部210に記憶されている3回目の検出対象領域を指定する検出対象領域指定情報を4回目の検出対象領域を指定する検出対象領域指定情報に更新する。これにより、収束判定部270は収束していないと判定し、相関画素位置検出部250は、4回目の検出対象領域において4番目に選択された子テンプレート画像を用いて4回目のテンプレートマッチング処理を実行する。
【0074】
4回目迄のテンプレートマッチング処理の結果、例えば、図11(b)に示す画素位置が高相関画素位置であったとする。図11(b)において、横線にて示す2つの画素位置(0,3)、(13,8)は4回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、網掛けにて示す3つの画素位置(3,8)、(10,5)、(14,1)は4回目迄の複数回の処理による重複した高相関画素位置である。なお、左上右下斜線にて示す4つの画素位置(2,2)、(10,4)、(14,8)、(15,1)は、1回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、右上左下斜線にて示す2つの画素位置(1,3)、(11,7)は2回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)、縦線にて示す4つの画素位置(1,2)、(2,8)、(13,7)、(14,2)は3回目の処理による高相関画素位置(但し、重複する高相関画素位置は除く)である。
【0075】
設定部230は、4回目迄のテンプレートマッチング処理による高相関画素位置が図11(b)に示す画素位置である場合、上記条件1および上記条件2に従って、図12に示すように、5回目のテンプレートマッチング処理の検出対象領域を指定する。図12に示す破線は、図11(b)に示す各高相関画素位置を注目画素位置とする24近傍画素または8近傍画素を表したものである。
【0076】
なお、設定部230は、5回目の検出対象領域(図12)が4回目の検出対象領域(図11(a))と同一である旨の比較結果を収束判定部270に通知する。これにより、収束判定部270は、4回目迄のテンプレートマッチング処理による夫々の高相関画素位置は収束したと判定し、オブジェクト位置特定部280は、1番目から4番目迄に選択された夫々の子テンプレート画像から検出した夫々の高相関画素位置に基づいて検査対象画像上のオブジェクトの位置を特定する。
【0077】
(オブジェクトの位置の特定に関して)
1番目から4番目迄の夫々の子テンプレート画像から検出した夫々の高相関画素位置を取得したオブジェクト位置特定部280は、図13(b)に破線にて示す連結している高相関画素位置群G1、G2、G3、G4、G5、G6毎に、下記式(1)に従って、図13(a)に示すように、各高相関画素位置群内の平均位置(座標)を算出する。なお、図13(b)の各高相関画素位置は、図11(b)の各高相関画素位置と同一である。
【0078】
また、図13(a)において、検出数は、各高相関画素位置群内の何れかの高相関画素位置を検出した子テンプレート画像の数である。例えば、高相関画素位置群G1の場合、子テンプレート画像#1が高相関画素位置群G1内の画素位置(2,2)を検出し、子テンプレート画像#2が高相関画素位置群G1内の画素位置(1,3)を検出し、子テンプレート画像#3が高相関画素位置群G1内の画素位置(1,2)を検出し、子テンプレート画像#4が高相関画素位置群G1内の画素位置(0,3)を検出しているため、検出数は、子テンプレート画像#1、#2、#3、#4の合計4である。また、例えば、高相関画素位置群G2の場合、子テンプレート画像#1、#2、#4が夫々、高相関画素位置群G2内の画素位置(3,8)を検出し、子テンプレート画像#3が高相関画素位置群G2内の画素位置(2,8)を検出しているため、検出数は、子テンプレート画像#1、#2、#3、#4の合計4である。また、例えば、高相関画素位置群G3の場合、子テンプレート画像#1が高相関画素位置群G3内の画素位置(10,4)を検出し、子テンプレート画像#3、#4が高相関画素位置群G3内の画素位置(10,5)を検出しているため、検出数は、子テンプレート画像#1、#3、#4の合計3である。高相関画素位置群G4、G5、G6についても同様である。
【0079】
平均位置=高相関画素位置群内の画素位置の和÷検出数…(1)
【0080】
例えば、高相関画素位置群G1の平均位置は、x座標が(2+1+1+0)/4=1.00、y座標が(2+3+2+3)/4=2.50となる。また、例えば、高相関画素位置群G2の平均位置は、x座標が(3+3+2+3)/4=2.75、y座標が(8+8+8+8)/4=8.00となる。また、例えば、高相関画素位置群G3の平均位置は、x座標が(10+10+10)/3=10.00、y座標が(4+5+5)/3=4.67となる。高相関画素位置群G4、G5、G6についても同様である。
【0081】
そして、オブジェクト位置特定部280は、高相関画素位置群毎G1、G2、G3、G4、G5、G6について算出したそれぞれ平均位置を、図14に示すように、オブジェクト位置a、b、c、d、e、fとして特定する。
【0082】
なお、検出数に閾値を設定し、閾値以上の検出数である高相関画素位置群からオブジェクト位置を特定してもよい。閾値を設定すれば、オブジェクト位置特定部280は、より相関の高い画素位置のみをオブジェクト位置として特定することができる。例えば、高相関画素位置群G4内の画素は、図13(a)(b)に示すように、高相関画素位置として1度検出(2回目のテンプレートマッチング処理時に検出)されただけである。1回目から4回目迄のテンプレートマッチング処理全体を通して見た場合、少なくとも3度検出されている他の高相関画素位置群と同程度に相関が高いとは言えない。従って、例えば、閾値を、テンプレートマッチング処理の処理回数4回の半分の2回に設定し、オブジェクト位置dを特定しないようにしてもよい。
【0083】
続いて、図15を用いて画像処理装置20の処理の流れを説明する。図15は、本発明の第2の実施形態に係る画像処理装置20の動作の一例を示すフローチャートである。
【0084】
図15において、画像取得部220は、検査対象画像を取得する(ステップS30)。検査対象画像を取得した画像取得部220は、検査対象画像を高相関画素位置検出部250に出力するとともに、検査対象画像を取得した旨を設定部230に通知する。
【0085】
画像取得部220から検査対象画像を取得した旨を通知された設定部230は、画像取得部220から検査対象画像を取得した旨を通知された場合、高相関画素位置記憶部260に記憶されている高相関画素位置を初期化(クリア)し(ステップS32)、検出対象領域指定情報記憶部210に記憶されている検出対象領域指定情報を初期化(初期値として画像の全領域を検出対象領域に指定)する(ステップS34)。
【0086】
画像取得部220から検査対象画像を取得した高相関画素位置検出部250は、子テンプレート画像選択部240に子テンプレート画像を要求する。高相関画素位置検出部250から子テンプレート画像を要求された子テンプレート画像選択部240は、子テンプレート画像記憶部200に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を選択する(ステップS36)。子テンプレート画像選択部240は、選択した子テンプレート画像を高相関画素位置検出部250に出力する。
【0087】
子テンプレート画像選択部240から子テンプレート画像を取得した高相関画素位置検出部250は、検出対象領域指定情報記憶部210に記憶されている検出対象領域指定情報を参照し、検査対象画像上の画素位置のうち検出対象領域指定情報によって指定された領域上から高相関画素位置を検出する(ステップS38)。高相関画素位置検出部250は、高相関画素位置の検出に用いた子テンプレート画像毎に、各子テンプレート画像によって検出した高相関画素位置を高相関画素位置記憶部260に記憶する。また、高相関画素位置検出部250は、当該子テンプレート画像による高相関画素位置の検出処理が終了した旨を収束判定部270に通知する。
【0088】
子テンプレート画像選択部240から当該子テンプレート画像による高相関画素位置の検出処理が終了した旨を通知された収束判定部270は、夫々の高相関画素位置が収束したか否かを判定する(ステップS40)。具体的には、収束判定部270は、新たな検出対象領域を指定すべき旨の要求を設定部230に通知し、設定部230は、上記要求に応じて、新たな検出対象領域を指定し、新たな検出対象領域が現在の検出対象領域と同一であるか否かを示す比較結果を収束判定部270に通知する。そして、収束判定部270は、収束判定部270から通知された比較結果を参照し、新たな検出対象領域が現在の検出対象領域と同一である場合には、夫々の高相関画素位置は収束したと判定し、新たな検出対象領域が現在の検出対象領域と異なる場合には、夫々の高相関画素位置は収束していないと判定する。
【0089】
収束判定部270は、夫々の高相関画素位置が収束していないと判定した場合(ステップS40)、ステップS36に戻る。即ち、収束判定部270は、高相関画素位置が収束していない旨を高相関画素位置検出部250に通知する。収束判定部270から高相関画素位置が収束していない旨を通知された高相関画素位置検出部250は、子テンプレート画像選択部240に子テンプレート画像を要求する。相関画素位置検出部250から子テンプレート画像を要求された子テンプレート画像選択部240は、子テンプレート画像記憶部200に記憶されている複数の子テンプレート画像のなかから、当該検査対象画像の検査において未だ選択していない子テンプレート画像を選択する(ステップS36)。
【0090】
一方、収束判定部270は、夫々の高相関画素位置が収束していないと判定した場合(ステップS40)、夫々の子テンプレート画像から検出した夫々の高相関画素位置をオブジェクト位置特定部280に出力する。夫々の高相関画素位置を取得したオブジェクト位置特定部280は、夫々の高相関画素位置に基づいて検査対象画像上のオブジェクトの位置を特定する(ステップS44)。そして、本フローチャートは終了する。
【0091】
(第3の実施形態)
以下、本発明の第3の実施形態について図面を参照して詳細に説明する。図16は、本発明の第3の実施形態に係る把持ロボット1の概略斜視図である。本発明の第3の実施形態に係る把持ロボット1は、図16に示すように、固定部2、アーム部3、ハンド部4、指部5および撮像部6を備える。アーム部3、ハンド部4および指部5は把持部を構成する。
【0092】
固定部2は、例えば床、壁、天井に固定される。固定部2は、内部に、制御装置30(破線にて図示)を備える。制御装置30は、把持部(アーム部3、ハンド部4、指部5)および撮像部6を制御する。制御装置30の詳細は後述する。
【0093】
アーム部3は、回転軸を介して接続される、第1フレーム3a、第2フレーム3b、第3フレーム3c、第4フレーム3dおよび第5フレーム3eから構成される。アーム部3は、制御装置30の制御によって、各フレーム3a〜3eが各回転軸を中心に複合的に回転し、動く。
【0094】
アーム部3の第5フレーム3eには、1対のハンド部4が設けられている。ハンド部4は、回転軸を介して接続される、第1フレーム4a、第2フレーム4b、第3フレーム4cおよび押し当て部4dから構成される。ハンド部4は、制御装置30の制御によって、各フレーム4a〜4cが各回転軸を中心に複合的に回転し、動く。
【0095】
それぞれのハンド部4の押し当て部4dには、指部5が設けられている。指部5は、第1フレーム5a、第2フレーム5bおよび第3フレーム5cから構成される。指部5は、制御装置30の制御によって、各フレーム5a〜5cが各回転軸を中心に複合的に回転し、動く。なお、指部5は、直接的に、対象物を把持する部材である。
【0096】
また、アーム部3の第5フレーム3eには、撮像部6が設けられている。撮像部6は、制御装置30の制御によって、対象物(オブジェクト)を撮像する。
【0097】
続いて、制御装置30について説明する。図17は、把持ロボット1の制御部の機能ブロック図である。本発明の第3の実施形態に係る把持ロボット1の制御装置30は、図17に示すように、テンプレート画像取得部300、テンプレート画像記憶部310、テンプレート画像加工部320、特徴量算出部330、共通領域特定部340、共通領域画像記憶部350、共通領域加工部360、子テンプレート画像生成部370、子テンプレート画像記憶部400、検出対象領域指定情報記憶部410、画像取得部420、設定部430、子テンプレート画像選択部440、高相関画素位置検出部450、高相関画素位置記憶部460、収束判定部470およびオブジェクト位置特定部480を備える。
【0098】
制御装置30内の各部のうち、テンプレート画像取得部300、テンプレート画像記憶部310、テンプレート画像加工部320、特徴量算出部330、共通領域特定部340、共通領域画像記憶部350、共通領域加工部360および子テンプレート画像生成部370は、上述の第1の実施形態に係る画像処理装置10のテンプレート画像取得部100、テンプレート画像記憶部110、テンプレート画像加工部120、特徴量算出部130、共通領域特定部140、共通領域画像記憶部150、共通領域加工部160および子テンプレート画像生成部170と同様である。
【0099】
制御装置30内の各部のうち、子テンプレート画像記憶部400、検出対象領域指定情報記憶部410、画像取得部420、設定部430、子テンプレート画像選択部440、高相関画素位置検出部450、高相関画素位置記憶部460、収束判定部470およびオブジェクト位置特定部480は、上述の第2の実施形態に係る画像処理装置20の子テンプレート画像記憶部200、検出対象領域指定情報記憶部210、画像取得部220、設定部230、子テンプレート画像選択部240、高相関画素位置検出部250、高相関画素位置記憶部260、収束判定部270およびオブジェクト位置特定部280と同一である。なお、テンプレート画像取得部300は、外部からテンプレート画像を取得するが、取得態様は特に限定しない。例えば、把持ロボット1は通信部(非図示)を備え、テンプレート画像取得部300は、通信部を介して受信したテンプレート画像を取得してもよい。また、把持ロボット1は外部記憶媒体の接続部(非図示)を備え、テンプレート画像取得部300は、接続部を介して接続した記憶媒体内のテンプレート画像を取得してもよい。
【0100】
即ち、把持ロボット1は、撮像部6によってオブジェクトが撮像された場合に、子テンプレート画像記憶部370に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択し、順次選択した子テンプレート画像との相関が高い高相関画素位置を検出する。そして、把持ロボット1は、夫々の子テンプレート画像から検出した夫々の高相関画素位置が収束したか否かを判定し、高相関画素位置が収束したと判定した場合に、夫々の子テンプレート画像から検出した夫々の高相関画素位置に基づいて撮像画像上のオブジェクトの位置を特定し、把持部(アーム部3、ハンド部4、指部5)にオブジェクトを把持させる。
【0101】
以上、上記第1、2、3によれば、処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現することができる。つまり、上記第2の実施形態による画像処理装置20によれば、テンプレート画像の特徴量を正確に反映し、テンプレート画像よりも画素数が少ない子テンプレート画像を用いて、また、処理対象範囲を狭くして、テンプレートマッチング処理を行うため、処理時間が短く、かつ、精度の高いテンプレートマッチング処理を簡便に実現することができる。なお、図8(a)、図9(a)、図10(a)、図11(a)に示す例によれば、処理対象範囲の画素数は、次の子テンプレート画像を用いる度に、170画素、105画素、100画素、80画素と段々と狭くなっている。
【0102】
また、上記第1の実施形態による画像処理装置10によれば、テンプレート画像から、上記第2の実施形態による画像処理装置20に用いる子テンプレート画像を簡便に生成することができる。
【0103】
また、上記第3の実施形態による把持ロボット1によれば、例えば、製造ラインにおいて、オブジェクトを撮像すれば、処理時間が短く、かつ、精度の高いテンプレートマッチング処理が行われ、オブジェクトの位置を簡便に測定されるため、オブジェクトを素早く正確に把持することができる。
【0104】
なお、実施形態1に係る画像処理装置10について、テンプレート画像加工部120を備える態様を説明したが、画像処理装置10は、テンプレート画像加工部120を備えない態様であってもよい。画像処理装置10が、テンプレート画像加工部120を備えない場合、特徴量算出部130は、未加工テンプレート画像に少値化処理を施し、少値化済テンプレート画像を生成する。実施形態3に係る把持ロボット1も同様である。
【0105】
また、実施形態1に係る画像処理装置10について、共通領域加工部160を備える態様を説明したが、画像処理装置10は、共通領域加工部160を備えない態様であってもよい。画像処理装置10が、共通領域加工部160を備えない場合、子テンプレート画像生成部170は、未加工テンプレート画像から夫々の未加工共通領域画像を抽出した複数の子テンプレート画像を生成する。
【0106】
また、上記実施形態3に係る把持ロボット1の制御装置30は、第1の実施形態に係る画像処理装置10および第2の実施形態に係る画像処理装置20の両方の機能を備える態様を説明したが、把持ロボット1の制御装置30は、第2の実施形態に係る画像処理装置20の機能(図17に点線内の機能)のみを備える態様としてもよい。
【0107】
なお、本発明の一実施形態による画像処理装置10、20の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の一実施形態による画像処理装置10、20に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0108】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0109】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0110】
1…把持ロボット
2…固定部
3…アーム部
4…ハンド部
5…指部
6…撮像部
10、20…画像処理装置
30…制御装置
100、300…テンプレート画像取得部
110、310…テンプレート画像記憶部
120、320…テンプレート画像加工部
130、330…特徴量算出部
140、340…共通領域特定部
150、350…共通領域画像記憶部
160、360…共通領域加工部
170、370…子テンプレート画像生成部
200、400…子テンプレート画像記憶部
210、410…検出対象領域指定情報記憶部
220、420…画像取得部
230、430…設定部
240、440…子テンプレート画像選択部
250、450…高相関画素位置検出部
260、460…高相関画素位置記憶部
270、470…収束判定部
280、480…オブジェクト位置特定部

【特許請求の範囲】
【請求項1】
テンプレート画像の特徴量を算出する特徴量算出部と、
前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定部と、
前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成部と
を備えることを特徴とする画像処理装置。
【請求項2】
テンプレート画像に加工を行うテンプレート画像加工部を
更に備え、
前記特徴量算出部は、前記加工後のテンプレート画像の特徴量を算出する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記テンプレート画像加工部は、前記加工として、テンプレート画像にフィルタ処理を行うことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記特徴量算出部は、前記テンプレート画像の各画素位置の画素値を少値化し、各画素位置の少値化後の画素値を前記特徴量として算出する
ことを特徴とする請求項1から請求項3の何れかに記載の画像処理装置。
【請求項5】
前記共通領域特定部は、夫々の前記共通領域を構成する画素位置の少値化後の画素値の範囲を前記共通領域毎に定義した定義情報と、前記特徴量算出部によって算出された各画素位置の少値化後の画素値とに基づいて、前記少値化後の画素値が前記定義情報において同一の前記範囲内にある画素位置を共通領域として特定することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記共通領域特定部によって特定された夫々の前記共通領域を膨張または収縮する共通領域加工部を
更に備え、
前記子テンプレート画像生成部は、
前記テンプレート画像から膨張後または収縮後の前記共通領域を抽出した複数の前記子テンプレート画像を生成する
ことを特徴とする請求項1から請求項5の何れかに記載の画像処理装置。
【請求項7】
オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成部と、
前記子テンプレート画像生成部によって生成された複数の子テンプレート画像を記憶する子テンプレート画像記憶部と、
検査対象画像を取得する画像取得部と、
前記子テンプレート画像記憶部に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択する子テンプレート画像選択部と、
前記画像取得部によって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択部によって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出部と、
前記高相関画素位置検出部において夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定部と、
前記収束判定部によって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定部と
を備え、
前記高相関画素位置検出部は、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、
前記収束判定部は、前記高相関画素位置検出部による次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする画像処理装置。
【請求項8】
テンプレート画像の特徴量を算出する特徴量算出手順と、
前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定手順と、
前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成手順と
を有することを特徴とする画像処理方法。
【請求項9】
オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成手順と、
検査対象画像を取得する画像取得手順と、
前記子テンプレート画像生成部によって生成された複数の子テンプレート画像のなかから子テンプレート画像を順次選択する子テンプレート画像選択手順と、
前記画像取得手順によって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択手順によって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出手順と、
前記高相関画素位置検出手順において夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定手順と、
前記収束判定手順によって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定手順と
を有し、
前記高相関画素位置検出手順は、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、
前記収束判定手順は、前記高相関画素位置検出手順による次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする画像処理方法。
【請求項10】
オブジェクトを把持する把持部と、
オブジェクトを撮像する撮像部と、
オブジェクトを示すテンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成部と、
前記子テンプレート画像生成部によって生成された複数の子テンプレート画像を記憶する子テンプレート画像記憶部と、
前記把持部を制御する制御部と
を備え、
前記制御部は、
前記撮像部によってオブジェクトが撮像された場合に、前記子テンプレート画像記憶部に記憶されている複数の子テンプレート画像のなかから子テンプレート画像を順次選択し、
順次選択した前記子テンプレート画像との相関が高い撮像画像の画素位置である高相関画素位置を検出し、
夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定し、
前記高相関画素位置が収束したと判定した場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記撮像画像のオブジェクトの位置を特定し、前記把持部にオブジェクトを把持させる
ことを特徴とする把持ロボット。
【請求項11】
前記制御部は、既に検出した前記高相関画素位置に基づいて前記高相関画素位置の次回の検出対象領域を決定し、次回の前記検出対象領域が前回の前記検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とする請求項10に記載の把持ロボット。
【請求項12】
テンプレート画像を記憶する画像処理装置のコンピュータに、
前記テンプレート画像の特徴量を算出する特徴量算出ステップと、
前記テンプレート画像において、前記特徴量が共通する領域を共通領域として特定する共通領域特定ステップと、
前記テンプレート画像から夫々の前記共通領域を抽出した複数の子テンプレート画像を生成する子テンプレート画像生成ステップと
を実行させることを特徴とするプログラム。
【請求項13】
オブジェクトを示すテンプレート画像を記憶する画像処理装置のコンピュータに、
前記テンプレート画像の特徴量が共通する夫々の共通領域に基づいて、当該テンプレート画像から複数の子テンプレート画像を生成する子テンプレート画像生成ステップと、
検査対象画像を取得する画像取得ステップと、
前記子テンプレート画像生成ステップによって生成された複数の前記子テンプレート画像のなかから前記子テンプレート画像を順次選択する子テンプレート画像選択ステップと、
前記画像取得ステップによって取得された前記検査対象画像の画素位置であって、前記子テンプレート画像選択ステップによって選択された前記子テンプレート画像との相関が高い高相関画素位置を検出する高相関画素位置検出ステップと、
前記高相関画素位置検出ステップにおいて夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置が収束したか否かを判定する収束判定ステップと、
前記収束判定ステップによって前記高相関画素位置が収束したと判定された場合に、前記夫々の前記子テンプレート画像から検出した夫々の前記高相関画素位置に基づいて前記検査対象画像のオブジェクトの位置を特定するオブジェクト位置特定ステップと
を実行させ、
前記高相関画素位置検出ステップは、既に検出した前記高相関画素位置に基づき決定される検出対象領域において前記高相関画素位置を検出し、
前記収束判定ステップは、前記高相関画素位置検出ステップによる次回の検出の検出対象領域が、前回の検出の検出対象領域と同一である場合に、前記高相関画素位置が収束したと判定することを特徴とするプログラム。

【図1】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−233059(P2011−233059A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−104912(P2010−104912)
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】