(57)【要約】【課題】撮影画像の撮影パラメータが変化した場合に、テンプレート画像を再生成することなく、撮影パラメータの変化に対応したパターンマッチングを実行できるパターンマッチング装置を提供する。【解決手段】検出対象を撮影可能なカメラと、検出対象のテンプレート画像Ｘと、カメラにより撮影された検出対象を含む撮影画像Ｙ１，Ｙ２と、に基づいた画像同士でパターンマッチングを実行する演算部と、を備えるパターンマッチング装置において、演算部は、テンプレート画像Ｘを撮影画像Ｙ１，Ｙ２に対してパターンマッチング可能に補正する撮影パラメータＱ１，Ｑ２を利用して、テンプレート画像Ｘから補正テンプレート画像Ｘ／Ｑ１，Ｘ／Ｑ２を生成し、補正テンプレート画像Ｘ／Ｑ１，Ｘ／Ｑ２と撮影画像Ｙ１，Ｙ２とでパターンマッチングする。【選択図】図５
2015005093.tif 000002
【特許請求の範囲】
【請求項１】
検出対象を撮影可能なカメラと、
前記検出対象のテンプレート画像と、前記カメラにより撮影された前記検出対象を含む撮影画像と、に基づいた画像同士でパターンマッチングを実行する演算部と、を備えるパターンマッチング装置において、
前記演算部は、前記テンプレート画像を前記撮影画像に対してパターンマッチング可能に補正する補正パラメータを利用して、前記テンプレート画像から補正テンプレート画像を生成し、前記補正テンプレート画像と前記撮影画像とでパターンマッチングする、
ことを特徴とするパターンマッチング装置。
【請求項２】
前記補正パラメータは、前記カメラの前記検出対象に対する傾斜を補正する前記撮影画像の歪情報を含む、
ことを特徴とする請求項１記載のパターンマッチング装置。
【請求項３】
前記検出対象に対して作業可能なロボット本体と、
請求項１又は２に記載のパターンマッチング装置を有し、該パターンマッチング装置により前記パターンマッチングを実行した結果に基づき、前記検出対象の位置姿勢を演算し、得られた前記検出対象の位置姿勢に基づいて前記ロボット本体の動作を制御する制御装置と、を備える、
ことを特徴とするロボット装置。
【請求項４】
前記検出対象に対して作業可能な生産装置と、
請求項１又は２に記載のパターンマッチング装置を有し、該パターンマッチング装置により前記パターンマッチングを実行した結果に基づいて、前記生産装置の動作を制御する制御装置と、を備える、
ことを特徴とする生産設備。
【請求項５】
検出対象のテンプレート画像と、カメラにより撮影された前記検出対象を含む撮影画像と、に基づいた画像同士でパターンマッチングを実行するパターンマッチング方法において、
演算部が、前記テンプレート画像を前記撮影画像に対してパターンマッチング可能に補正する補正パラメータを利用して、前記テンプレート画像から補正テンプレート画像を生成する補正画像生成工程と、
前記演算部が、前記補正テンプレート画像と前記撮影画像とでパターンマッチングするパターンマッチング工程と、を備える、
ことを特徴とするパターンマッチング方法。
【請求項６】
前記補正パラメータは、前記カメラの前記検出対象に対する傾斜を補正する前記撮影画像の歪情報を含む、
ことを特徴とする請求項５記載のパターンマッチング方法。
【請求項７】
請求項５又は６に記載のパターンマッチング方法の各工程をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のパターンマッチング方法の各工程をコンピュータに実行させるためのプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出対象のテンプレート画像と、カメラにより撮影された検出対象を含む撮影画像と、に基づいた画像同士でパターンマッチングを行うパターンマッチング装置及びパターンマッチング方法に関する。
【背景技術】
【０００２】
従来、画像処理の分野において、検出対象であるワーク等の位置を検出する方法として、パターンマッチング方法が周知である。その中でも、形状パターンマッチングは、照明変化、物体の隠れ、欠けにも強く、ロバスト性が高い手法であることから、広く普及している。パターンマッチングにおける類似度の計算方法としては、輝度差の二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等、様々な手法があるが、いずれもワークのテンプレート画像と撮影画像とを画像座標上で比較することが多い。撮影画像からテンプレート画像を検出するためには、テンプレート画像が撮影画像の検出部位に正確に重なる必要があるので、レンズの位置及び方向やカメラとワークとの距離を一定にして設置しなければならない。
【０００３】
しかし、このパターンマッチング方法を生産装置等で利用する場合、経時変化やカメラやレンズの交換、カメラ及びワークに対する装置や作業者の衝突等により、レンズの位置及び方向やカメラとワークとの距離等の撮影パラメータが変化する場合がある。ここで、撮影パラメータとは、撮影カメラに関する内部パラメータ（レンズ歪み、焦点距離、画素ピッチ・画素数、画像光軸中心位置等）及び外部パラメータ（カメラとワークとの距離、相対位置姿勢）を意味する。テンプレート画像の撮影時と撮影画像の撮影時とで撮影パラメータが変化すると、各画像でのワークの歪みや大きさが変化してしまい、テンプレート画像と撮影画像とを重ねても類似度が低くなり、ワークを検出する精度が低下してしまう。
【０００４】
また、このように撮影画像の撮影時の撮影パラメータが変化した場合に、テンプレート画像を再生成することも考えられる。ところが、高精度なパターンマッチングを行えるようなテンプレート画像を生成するには、画像処理の知識を持つ作業者が長い時間を費やして生成する必要があるので、テンプレート画像を頻繁に再作成するには時間と労力が掛かってしまう。
【０００５】
そこで、従来、以下のような手法を用いたパターンマッチング装置が知られている（特許文献１参照）。このパターンマッチング装置では、テンプレートとなるワークを撮影して得られた画像の解像度や歪み等を補正して、理想的なテンプレートが表示されたテンプレート画像を生成する。また、検出対象であるワークを撮影して得られた画像の解像度や歪み等を補正して、理想的なワークが表示された撮影画像を生成する。そして、これらテンプレート画像及び撮影画像の補正された画像同士で、パターンマッチングを行う。このパターンマッチング装置によれば、撮影画像の撮影時の撮影パラメータが変化した場合でも、テンプレート画像はそのままで再作成することなく、撮影パラメータを調整することで高精度のパターンマッチングを維持できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２４１１２０号公報
【非特許文献】
【０００７】
【非特許文献１】Zhengyou  Zhang.  A  flexible  new  technique  for  camera  calibration.  IEEE  Transactions  on  Pattern  Analysis  and  Machine  Intelligence,  Vol.  22,  No.  11,  pp.  1330-1334,  2000.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載されたパターンマッチング装置は、撮影画像の解像度を、テンプレート画像の解像度と同じになるように補正するため、補正後の撮影画像の解像度は補正後のテンプレート画像の解像度と同じに固定されてしまう。
【０００９】
これにより、撮影画像を撮影するカメラを低解像度のカメラに交換して、低解像度の画像同士のパターンマッチングで処理の高速化を図ろうとしても、撮影画像の解像度はテンプレート画像の解像度にまで上げられてしまうので、高速化は困難であった。逆に、撮影画像を撮影するカメラを高解像度のカメラに交換して、高解像度の画像同士のパターンマッチングで検出の高精度化を図ろうとしても、撮影画像の解像度はテンプレート画像の解像度にまで下げられてしまうので、高精度化は困難であった。
【００１０】
本発明は、撮影画像の撮影パラメータが変化した場合に、テンプレート画像を再生成することなく、撮影パラメータの変化に対応したパターンマッチングを実行できるパターンマッチング装置及びパターンマッチング方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、検出対象を撮影可能なカメラと、前記検出対象のテンプレート画像と、前記カメラにより撮影された前記検出対象を含む撮影画像と、に基づいた画像同士でパターンマッチングを実行する演算部と、を備えるパターンマッチング装置において、前記演算部は、前記テンプレート画像を前記撮影画像に対してパターンマッチング可能に補正する補正パラメータを利用して、前記テンプレート画像から補正テンプレート画像を生成し、前記補正テンプレート画像と前記撮影画像とでパターンマッチングすることを特徴とする。
【００１２】
また、本発明は、検出対象のテンプレート画像と、カメラにより撮影された前記検出対象を含む撮影画像と、に基づいた画像同士でパターンマッチングを実行するパターンマッチング方法において、演算部が、前記テンプレート画像を前記撮影画像に対してパターンマッチング可能に補正する補正パラメータを利用して、前記テンプレート画像から補正テンプレート画像を生成する補正画像生成工程と、前記演算部が、前記補正テンプレート画像と前記撮影画像とでパターンマッチングするパターンマッチング工程と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、演算部が、テンプレート画像を撮影画像に対してパターンマッチング可能に補正する補正パラメータを利用して、テンプレート画像から補正テンプレート画像を生成し、補正テンプレート画像と撮影画像とでパターンマッチングする。このため、撮影画像の撮影パラメータが変化した場合に、撮影画像を補正しないので、撮影パラメータの変化に対応したパターンマッチングを実行できる。
【００１４】
例えば、撮影画像を撮影するカメラを低解像度のカメラに交換した場合、テンプレート画像が補正パラメータにより低解像度の補正テンプレート画像に補正されるので、低解像度の画像同士のパターンマッチングで処理の高速化を図ることができる。また、撮影画像を撮影するカメラを高解像度のカメラに交換した場合、テンプレート画像が補正パラメータにより高解像度の補正テンプレート画像に補正されるので、高解像度の画像同士のパターンマッチングで検出の高精度化を図ることができる。
【００１５】
また、撮影画像の撮影パラメータが変化した場合に、テンプレート画像を補正パラメータにより補正テンプレート画像に補正しているので、テンプレート画像を再生成する必要がない。これにより、テンプレート画像を何度も再作成する場合に比べて、作業者の時間と労力の浪費を防止できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るロボット装置の制御装置の概略構成を示す説明図である。
【図３】本発明の第１実施形態に係るパターンマッチング装置の演算部の概略構成を示す説明図である。
【図４】本発明の第１実施形態に係るパターンマッチング装置で撮影画像の補正を行う際の説明図であり、（ａ）（ｂ）（ｄ）はカメラと計測平面との位置関係を示し、（ｃ）は（ｂ）で撮影画面からワーク部分を切り出す様子を示す。
【図５】本発明の第１実施形態に係るパターンマッチング装置によりテンプレート画像を補正する際の説明図である。
【図６】従来のパターンマッチング装置により撮影画像を補正する際の説明図である。
【図７】本発明の第１実施形態に係るパターンマッチング装置によりパターンマッチングを実行する際の手順を示すフローチャートである。
【図８】本発明の第２実施形態に係るパターンマッチング装置の演算部の概略構成を示す説明図である。
【図９】本発明の第２実施形態に係るパターンマッチング装置によりパターンマッチングを実行する際の手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１８】
［第１実施形態］
図１に示すように、ロボット装置１は、ロボット本体２と、ロボット本体２から離隔して配置されロボット本体２が移動させるワーク（検出対象）Ｗを上方から撮影可能なカメラ４と、ロボット本体２及びカメラ４を制御する制御装置３と、を備えている。
【００１９】
ロボット本体２は、６軸の垂直多関節アーム（以下、アームと呼ぶ）２１と、エンドエフェクタであるハンド２２とを有している。本実施形態では、アーム２１として６軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド２２を適用しているが、これには限られず、ワークＷに対して作業可能なツールの全般を含めることができる。
【００２０】
アーム２１は、７つのリンク６１〜６７と、各リンク６１〜６７を揺動又は回動可能に連結する６つの関節７１〜７６とを備えている。各リンク６１〜６７としては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。各関節７１〜７６には、各関節７１〜７６を各々駆動するモータと、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節７１〜７６のトルクを検知するトルクセンサと、が設けられている。
【００２１】
ハンド２２は、アーム２１の先端リンク６７に取り付けられて支持され、アーム２１の動作により位置及び姿勢の少なくとも一自由度が調整されるようになっている。ハンド２２は、２本の指２３と、これら指２３の間隔を開閉可能に支持するハンド本体２４とを備え、指２３同士が接近する閉動作によりワークＷを把持可能になっている。
【００２２】
図２に示すように、制御装置３は、コンピュータにより構成され、ロボット本体２及びカメラ４を制御するようになっている。制御装置３を構成するコンピュータは、例えばＣＰＵ３０と、データを一時的に記憶するＲＡＭ３１と、各部を制御するためのプログラムを記憶するＲＯＭ３２と、を備えている。ＣＰＵ３０は、後述するパターンマッチング装置５を備え（図１参照）、後述する画像処理やパターンマッチングに関する演算処理を行うようになっている。ＲＡＭ３１は、ＣＰＵ３０にて処理中のデータや、カメラインタフェース３３から取り込まれた画像等を一時的に記憶するようになっている。ＲＯＭ３２は、ＣＰＵ３０が行うロボット装置１の制御や画像処理、パターンマッチングやワークの位置姿勢演算に関する演算プログラムや設定パラメータ、カメラ４の撮影パラメータ、パターンマッチング用のテンプレート画像等を保存している。ＲＯＭ３２に記憶されたデータは、ＣＰＵ３０からの書き込みや消去を除き、制御装置３の電源がオフ状態にされても保持されるようになっている。
【００２３】
また、制御装置３は、カメラ４に接続されるカメラインタフェース３３と、モニタ３４に接続されるモニタインタフェース３５と、マウス３６に接続される入力装置インタフェース３７と、通信インタフェース３８と、を備えている。カメラインタフェース３３は、カメラ４で撮影された画像を取り込み、ＲＡＭ３１に転送するようになっている。モニタインタフェース３５は、モニタ３４にロボット装置１の状態や画像処理結果等を表示するようになっている。入力装置インタフェース３７は、作業者がモニタ３４を見ながらマウス３６で行う操作信号を受信し、ＣＰＵ３０に送信するようになっている。通信インタフェース３８は、ロボット装置１の上位システムに接続され、演算で得られたワークＷの位置姿勢等の情報の通信を行うようになっている。
【００２４】
図１に示すように、制御装置３は、テンプレート画像と撮影画像とに基づいた画像に対してパターンマッチングを実行するパターンマッチング装置５を備えている。パターンマッチング装置５は、後述する補正パラメータを利用して、テンプレート画像から補正テンプレート画像を生成し、補正テンプレート画像と撮影画像とでパターンマッチングする演算部５０を備えている。パターンマッチング装置５は本実施形態では制御装置３に内蔵されており、演算部５０はＣＰＵ３０により構成されている。
【００２５】
図３に示すように、演算部５０は、カメラ校正部５１と、パラメータ管理部５２と、歪み補正部５３と、テンプレート生成部５４と、テンプレート補正部５５と、パターンマッチ部５６と、三次元復元部５７と、を備えている。
【００２６】
カメラ校正部５１は、歪み補正部５３にて補正するために必要な撮影パラメータ４０及び補正後撮影パラメータ４１を算出するようになっている。尚、これら撮影パラメータ４０及び補正後撮影パラメータ４１は、テンプレート画像４２を実際の撮影画像に対してパターンマッチング可能に補正する補正パラメータである。歪み補正部５３は、カメラ校正部５１で算出された撮影パラメータ４０及び補正後撮影パラメータ４１を用いて、カメラ４で撮影された撮影画像の補正を行うようになっている。テンプレート生成部５４は、テンプレートにすべきワークＷを撮影した画像を用いて、パターンマッチ部５６でパターンマッチングを行うためのテンプレート画像４２を作成するようになっている。
【００２７】
テンプレート補正部５５は、テンプレート生成時の補正後撮影パラメータ４１ａと、実際の撮影時の補正後撮影パラメータ４１ｂと用いて、テンプレート画像４２の変換を行い、補正テンプレート画像４３を作成し、パラメータ管理部５２に保存する。パターンマッチ部５６は、歪み補正を行った撮影画像と、補正テンプレート画像４３とでパターンマッチングを行い、撮影画像でのワークＷの位置を算出するようになっている。三次元復元部５７は、パターンマッチ部５６より出力された画像上のワークＷの位置と補正後撮影パラメータ４１とを用いて、画像上の位置を三次元座標上の位置に変換し、三次元位置データを出力して、計測結果として上位システムへ送信するようになっている。
【００２８】
上述したパターンマッチング装置５の演算部５０での各画像生成及びパターンマッチングの処理を、図３及び図４を用いて説明する。
【００２９】
カメラ４により、計測平面６に設置したカメラ校正用マーカ（不図示）が撮影され、撮影された画像は、カメラインタフェース３３を経由してＲＡＭ３１に取り込まれ、更にカメラ校正部５１及び歪み補正部５３に入力される。カメラ校正部５１は、撮影パラメータ４０及び補正後撮影パラメータ４１をカメラ４で撮影された画像から算出して、パラメータ管理部５２に記憶する。
【００３０】
ここで、撮影パラメータ４０及び補正後撮影パラメータ４１は、内部パラメータ及び外部パラメータに関する情報となっている。図４のピンホールカメラモデルに示すように、内部パラメータは、レンズ歪み、焦点距離ｆｏ、画素ピッチｃｘ，ｃｙ、画素数、画像光軸中心Ｃ等となっている。画像光軸中心Ｃは、センサ面４ａ上で光軸Ｌと交わる点であり、レンズ歪みの画像への影響は画像光軸中心Ｃを中心に放射状に発生する。
【００３１】
また、外部パラメータは、計測平面６及びカメラ４の距離、相対位置姿勢等となっている。これにより、計測平面６とカメラ４との相対位置関係、更にはカメラ４のセンサ面４ａ（画像）上の位置と計測平面６上の位置との相対関係が表される。尚、センサ面４ａと計測平面６との相対位置関係には、両者の相対的な傾斜を含んでおり、この傾斜を補正するための傾斜情報（歪情報）も外部パラメータに含まれている。
【００３２】
カメラ校正部５１は、入力された撮影画像に基づき、非特許文献１に記載された手法を用いて撮影パラメータ４０を算出する。この場合、カメラ校正用マーカの姿勢を変えながら、数十枚程度の画像を撮影し、これらの画像を用いて撮影パラメータ４０を算出する。詳細な算出方法については、非特許文献１に記載されているので、ここでは説明を省略する。尚、撮影パラメータ４０の算出方法としては、非特許文献１の方法には限られず、他の既存の又は新規の方法を適用することができる。
【００３３】
カメラ校正部５１は、算出した撮影パラメータ４０に基づき、レンズ歪みが無く、計測平面６とカメラ４のセンサ面４ａとの相対位置姿勢を平行にした補正後撮影パラメータ４１を算出する。即ち、補正後撮影パラメータ４１は、カメラ４の画像光軸中心Ｏと計測平面６との距離を変えずに、計測平面６に対してカメラ４の光軸Ｌが垂直に位置して、レンズ歪みの無いカメラ４が設置された場合の撮影パラメータである。この算出処理は、カメラインタフェース３３経由でカメラ４からＲＡＭ３１に取り込んだ撮影画像を用いて、ＣＰＵ３０にてＲＯＭ３２のカメラ校正プログラムを実行することで行う。
【００３４】
カメラ校正部５１は、算出した撮影パラメータ４０及び補正後撮影パラメータ４１を、テンプレート生成時と実際の撮影時とで別々にして、パラメータ管理部５２に登録する。カメラ校正部５１は、テンプレート生成時には撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａを登録し、実際の撮影時には撮影パラメータ４０ｂ及び補正後撮影パラメータ４１ｂを登録する。パラメータ管理部５２に登録された各撮影パラメータは、ＲＯＭ３２に記録される。
【００３５】
パラメータ管理部５２は、テンプレート生成時の撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａと、実際の撮影時の撮影パラメータ４０ｂ及び補正後撮影パラメータ４１ｂと、について、登録されたデータを管理する。更に、パラメータ管理部５２は、パターンマッチング用のテンプレート画像４２及び補正テンプレート画像４３についても、登録されたデータを管理する。パラメータ管理部５２における処理は、ＣＰＵ３０でＲＯＭ３２のパラメータ管理プログラムを実行することにより実現され、登録されたデータはＲＯＭ３２に記録される。
【００３６】
歪み補正部５３は、カメラ校正部５１で算出された撮影パラメータ４０及び補正後撮影パラメータ４１を用いて、カメラ４で撮影された画像の補正を行う。ここでの補正方法を、図４（ｂ）を用いて説明する。尚、同図中、符号１４０は撮影パラメータ４０であるカメラ４のセンサ面４ａの位置姿勢、符号１４１は補正後撮影パラメータ４１であるカメラ４のセンサ面４ａの位置姿勢をそれぞれ示す。
【００３７】
歪み補正部５３は、元画像の点Ｐ１について、撮影パラメータ４０を利用して計測平面６に投影して、対応する点Ｐ３を求める。そして、歪み補正部５３は、点Ｐ３を、補正後撮影パラメータ４１の利用により歪み補正画像に投影することで、点Ｐ２を求める。このような補正方法で、歪み補正画像の全画素について画像間で対応する点を求めることで、歪み補正を行う。
【００３８】
具体的には、元画像の点Ｐ１の画像座標を（ｕ，ｖ）とし、レンズ歪みを補正した仮想点の画像座標を（ｕ１，ｖ１）とし、撮影パラメータ４０の内部パラメータのうちレンズ歪み係数をＫとし、画像光軸中心Ｏを（ｕ０，ｖ０）とする。これらの関係により、数式１が得られる。
【００３９】
【数１】
2015005093.tif 000003
【００４０】
また、撮影パラメータ４０の内部パラメータのうちレンズ歪み以外をＡとし、撮影パラメータ４０の外部パラメータを［Ｒ  ｔ］とし、座標（ｕ１，ｖ１）に基づいて最後に１の要素を加えたベクトルをｍ＝［ｕ１  ｖ１  １］とする。更に、点Ｐ３の三次元座標を（ｘ，ｙ，ｚ）とし、それに基づいて最後に１の要素を加えたベクトルをＭ＝［ｘ  ｙ  ｚ  １］とすると、ベクトルｍ及びベクトルＭの関係は数式２となる。
【００４１】
【数２】
2015005093.tif 000004
【００４２】
同様に、補正後撮影パラメータ４１によって表現される歪み補正画像の座標上の点Ｐ２の画像座標を（ｕ’，ｖ’）とし、それに基づいて最後に１の要素を加えたベクトルをｎ＝［ｕ’  ｖ’  １］とする。また、補正後撮影パラメータ４１の内部パラメータをＡ’とし、外部パラメータを［Ｒ’  ｔ’］とする。これにより、点Ｐ３の三次元座標に関するベクトルＭ＝［ｘ  ｙ  ｚ  １］とベクトルｎとの関係は、数式３となる。
【００４３】
【数３】
2015005093.tif 000005
【００４４】
数式２及び数式３により、ベクトルｍとベクトルｎとの関係は、数式４となる。
【００４５】
【数４】
2015005093.tif 000006
【００４６】
尚、カメラ校正部５１に非特許文献１の手法を用いた場合、ｆ（ｕ，ｖ，ｕ０，ｖ０，Ｋ）と、内部パラメータＡと、外部パラメータ［Ｒ  ｔ］とは、それぞれ数式５〜数式８で示されるようになる。
【００４７】
【数５】
2015005093.tif 000007
但し、ｘ＝（ｕ−ｕ０）ｃｘ及びｙ＝（ｖ−ｖ０）ｃｙ
【００４８】
ここで、ｃｘ及びｃｙは、撮影パラメータ内で定義されたカメラ４のセンサ上でのｕ及びｖの各方向の画素ピッチである。
【００４９】
【数６】
2015005093.tif 000008
【００５０】
【数７】
2015005093.tif 000009
【００５１】
【数８】
2015005093.tif 000010
【００５２】
このようにして、歪み補正画像の各画素について対応する元画像の画素を求め、元画像の各画素の輝度を当てはめることにより、歪み補正画像を得る。尚、対応する画素が複数ある場合、バイリニア補間等の方法により複数の対応する画素の輝度値を混合して求めても良い。歪み補正部５３により歪み補正された結果、歪みの無いレンズで補正後撮影パラメータ４１のカメラ４の位置姿勢、即ち計測平面６に平行な位置から撮影したかのような画像が得られる。また、得られた画像は、補正後撮影パラメータ４１で表現されている解像度になる。
【００５３】
歪み補正部５３での処理は、ＲＡＭ３１に取り込んだ撮影画像と、パラメータ管理部５２によりＲＯＭ３２に記憶された撮影パラメータ４０とを用いて、ＣＰＵ３０にてＲＯＭ３２に記録された歪み補正プログラムを実行することで行われる。補正して得られた歪み補正画像はＲＡＭ３１に一時記憶する。歪み補正部５３で補正された画像は、テンプレート生成部５４及びパターンマッチ部５６に入力される。
【００５４】
テンプレート生成部５４は、ワークＷを撮影した画像を用いて、パターンマッチ部５６でパターンマッチングを行うためのテンプレート画像４２を作成する。具体的には、テンプレート生成部５４は、ＲＡＭ３１に一時記憶された歪み補正画像を、モニタインタフェース３５を介してモニタ３４に表示する。図４（ｃ）に示すように、作業者がモニタ３４の画像３４ａを見ながらワークＷの画像３４ｂの全体や、ワークＷの画像３４ｂの特徴的な部分を切り出し部３４ｃとしてマウス３６の使用により指定する。
【００５５】
そして、作業者がマウス３６を用いて入力した操作信号は、入力装置インタフェース３７を介してＣＰＵ３０が受信し、テンプレート生成部５４が歪み補正画像からテンプレート画像４２を生成する。作成されたテンプレート画像４２は、パラメータ管理部５２へテンプレート画像４２として登録することで、ＲＯＭ３２に記録される。また、テンプレート画像４２の生成時の画像３４ａでのテンプレート画像４２の位置も合わせて保存する。尚、このテンプレート画像４２は、画像データで作成することには限られず、エッジを構成する点の情報（例えば、画像座標の配列、直線や円弧を表す方程式等）で作成しても良い。
【００５６】
尚、テンプレート生成部５４でのテンプレート生成処理は、ＲＯＭ３２上のモデル作成プログラムを実行するＣＰＵ３０と、モニタインタフェース３５及びモニタ３４と、入力装置インタフェース３７及びマウス３６とにより実現される。また、テンプレート画像４２の登録時に、パラメータ管理部５２は、テンプレート画像４２の生成時の撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａとテンプレート画像４２とを関連付けて管理する。尚、テンプレート画像４２を再生成する等のためカメラ校正が再度行われることで撮影パラメータ４０ａが変更され、撮影パラメータ４０ａとテンプレート画像４２との関連が無くなる場合がある。この場合、パラメータ管理部５２は、テンプレート画像４２及び補正テンプレート画像４３を消去する。
【００５７】
テンプレート補正部５５は、テンプレート画像４２の生成時の補正後撮影パラメータ４１ａと、撮影時の補正後撮影パラメータ４１ｂとを用いて、テンプレート画像４２の変換を行い、補正テンプレート画像４３を生成し、パラメータ管理部５２に保存する。ここでの補正方法を、図４（ｄ）を用いて説明する。尚、同図中、符号１４０ａは撮影パラメータ４０ａであるカメラ４のセンサ面４ａの位置姿勢、符号１４１ａは補正後撮影パラメータ４１ａであるカメラ４のセンサ面４ａの位置姿勢をそれぞれ示す。また、符号１４０ｂは撮影パラメータ４０ｂであるカメラ４のセンサ面４ａの位置姿勢、符号１４１ｂは補正後撮影パラメータ４１ｂであるカメラ４のセンサ面４ａの位置姿勢をそれぞれ示す。
【００５８】
テンプレート補正部５５は、テンプレート画像４２の点Ｐ５について、補正後撮影パラメータ４１ａを利用して計測平面６に投影して対応する点Ｐ４を求める。そして、テンプレート補正部５５は、点Ｐ４を、補正後撮影パラメータ４１ｂの利用により補正テンプレート画像４３に投影することで、対応する点Ｐ６を求める。このような補正方法で、補正テンプレート画像４３の全画素について画像間で対応する点を求めることで、テンプレート補正を行う。尚、テンプレート画像４２の点Ｐ５の座標系は、テンプレート画像４２にテンプレート生成部５４で保存されたテンプレート生成時の生成用画像上のテンプレートの位置を用いて、テンプレート生成時の画像座標系を用いる。
【００５９】
具体的には、テンプレート画像４２の点Ｐ５の画像座標を（ｕｐ５，ｖｐ５）とし、それに基づいて最後に１の要素を加えたベクトルをｍｐ５＝［ｕｐ５  ｖｐ５  １］とする。また、補正後撮影パラメータ４１ａの内部パラメータをＡｐ５とし、外部パラメータを［Ｒｐ５  ｔｐ５］とする。更に、点Ｐ４の三次元座標を（ｘｐ４，ｙｐ４，ｚｐ４）とし、それに基づいて最後に１の要素を加えたベクトルをＭｐ４＝［ｘｐ４  ｙｐ４  ｚｐ４  １］とすると、ベクトルｍｐ５及びベクトルＭｐ４の関係は数式９となる。
【００６０】
【数９】
2015005093.tif 000011
【００６１】
同様に、補正後撮影パラメータ４１ｂによって表現される補正テンプレート画像４３の座標上の点Ｐ６の画像座標を（ｕｐ６，ｖｐ６）とし、それに基づいて最後に１の要素を加えたベクトルをｎｐ６＝［ｕｐ６  ｖｐ６  １］とする。また、補正後撮影パラメータ４１ｂの内部パラメータをＡｐ６とし、外部パラメータを［Ｒｐ６  ｔｐ６］とする。これにより、点Ｐ４の三次元座標に関するベクトルＭｐ４＝［ｘｐ４  ｙｐ４  ｚｐ４  １］とベクトルｎｐ６との関係は、数式１０となる。
【００６２】
【数１０】
2015005093.tif 000012
【００６３】
数式９及び数式１０により、ベクトルｍｐ５とベクトルｎｐ６との関係は、数式１１となる。
【００６４】
【数１１】
2015005093.tif 000013
【００６５】
尚、非特許文献１の手法を用いた場合、各係数は、歪み補正部５３での場合と同様に数式５〜数式８で示されるようになる。
【００６６】
このようにして、補正テンプレート画像４３の各画素について対応するテンプレート画像４２の画素を求め、テンプレート画像４２の各画素の輝度を当てはめることにより、補正テンプレート画像４３を得る。尚、対応する画素が複数ある場合、バイリニア補間等の方法により複数の対応する画素の輝度値を混合して求めても良い。また、形状ベースマッチング等、エッジ構成点群で表現されるテンプレート画像を用いる際は、テンプレート画像を構成する各点について、数式１１を用いて変換することで補正テンプレート画像４３を得るようにする。
【００６７】
テンプレート補正部５５での処理は、ＣＰＵ３０にてＲＯＭ３２に記録されたテンプレート補正プログラムを実行することで行われる。このテンプレート補正プログラムでは、ＲＯＭ３２に記録されたテンプレート画像４２と、テンプレート生成時の補正後撮影パラメータ４１ａと、実際の撮影時の補正後撮影パラメータ４１ｂとをパラメータ管理部５２から読み出しＲＡＭ３１に展開する。そして、テンプレート補正プログラムでは、ＣＰＵ３０にて前述の補正演算を行い、生成された補正テンプレート画像４３をパラメータ管理部５２に登録し、ＲＯＭ３２に記録する。
【００６８】
パターンマッチ部５６は、実際の撮影時にカメラ４により撮影された撮影画像の歪み補正画像と補正テンプレート画像４３とでパターンマッチングを行い、撮影画像におけるテンプレートの位置を算出する。パターンマッチングの具体的な方法については、正規化相関法や形状ベースマッチング等の既存の又は新規の画像座標ベースのマッチング方法を用いる。
【００６９】
パターンマッチ部５６での処理は、ＲＯＭ３２のパターンマッチングプログラムをＣＰＵ３０で実行することにより実現される。パターンマッチ部５６は、ＲＡＭ３１に一時記憶された歪み補正画像と、パラメータ管理部５２を介してＲＯＭ３２より読み出した補正テンプレート画像４３とについて、マッチングを行う。パターンマッチ部５６は、マッチング結果として得られる歪み補正画像の座標上のワークＷの位置を、ＲＡＭ３１に一時記憶する。
【００７０】
三次元復元部５７は、パターンマッチ部５６より出力されたワークＷの画像上の位置と、補正後撮影パラメータ４１ｂとを用いて、画像上の位置を三次元座標上の位置に変換し、三次元位置データを出力し、計測結果として上位システムへ送信する。
【００７１】
三次元復元部５７の処理は、ＲＯＭ３２の三次元座標変換プログラムをＣＰＵ３０で実行することにより実現する。三次元復元部５７は、ＲＡＭ３１に一時記憶されたパターンマッチング結果の画像座標を、パラメータ管理部５２を介してＲＯＭ３２より読み出した撮影時の補正後撮影パラメータ４１ｂを用いて三次元座標に変換する。三次元復元部５７は、得られた三次元位置データをＲＡＭ３１に一時記憶した後、ＣＰＵ３０からの指令により通信インタフェース３８を介して上位システムに送信する。
【００７２】
ここで、テンプレート画像Ｘと撮影画像Ｙとでパターンマッチングを実行するための補正について、解像度のみに着目して図５及び図６を用いて説明する。尚、図５及び図６では、説明のためにテンプレート画像を符号Ｘ、実際の組立等の作業中にワークＷを撮影した撮影画像を符号Ｙで示す。
【００７３】
パターンマッチングの１つの手法として、図６に示すように、テンプレート画像Ｘの解像度はそのままで、撮影画像Ｙ１（又はＹ２）を撮影パラメータＱ１（又はＱ２）により補正して、テンプレート画像Ｘの解像度に合わせる手法が考えられる。即ち、この手法では、ＸとＱ１・Ｙ１（又はＱ２・Ｙ２）とのマッチングになる。
【００７４】
しかし、この手法では、例えば、撮影画像Ｙ１の解像度がテンプレート画像Ｘの生成時に比べて２倍になった場合でも、テンプレート画像Ｘに合わせた解像度に補正する必要があるため、１／２倍に縮小し離散化した補正画像に対してマッチングを行う。このため、マッチングの精度は、テンプレート画像Ｘの生成時の解像度と同等になってしまい、撮影画像Ｙ１を撮影するカメラを高解像度のカメラに交換してもパターンマッチングの高精度化は困難である。
【００７５】
また、この手法では、例えば、撮影画像Ｙ２の解像度がテンプレート画像Ｘの生成時に比べて１／２倍になった場合でも、テンプレート画像Ｘに合わせた解像度に補正する必要があるため、２倍に拡大した補正画像に対してマッチングを行う。このため、撮影画像Ｙ２を撮影するカメラを低解像度のカメラに交換しても、パターンマッチングの高速化は困難である。
【００７６】
そこで、本実施形態では、図５に示すように、撮影画像Ｙ１（又はＹ２）の解像度はそのままで、テンプレート画像Ｘを撮影パラメータＱ１（又はＱ２）により補正して、撮影画像Ｙ１（又はＹ２）の解像度に合わせるようにしている。即ち、本実施形態の手法では、Ｘ／Ｑ１（又はＸ／Ｑ２）とＹ１（又はＹ２）とのマッチングになる。
【００７７】
このように、本実施形態の手法によれば、テンプレート画像Ｘを撮影画像Ｙ１の解像度に合わせて補正するため、撮影画像Ｙ１の解像度を維持したままマッチングを行うことができる。このため、マッチング時の精度も撮影画像Ｙ１の解像度になり、テンプレート画像Ｘの生成時の解像度に比べて２倍になり、高解像度の画像同士のパターンマッチングで検出の高精度化を図ることができる。
【００７８】
また、本実施形態の手法によれば、テンプレート画像Ｘを撮影画像Ｙ２の解像度に合わせて補正するため、撮影画像Ｙ２の解像度を維持したままマッチングを行うことができる。このため、検索する範囲が面積比で１／４になるため、テンプレート画像Ｘの生成時の解像度に比べて検出速度が４倍になり、低解像度の画像同士のパターンマッチングで処理の高速化を図ることができる。
【００７９】
上述したパターンマッチング装置５によりワークＷのパターンマッチングを実行する処理手順について、図７に示すフローチャートに沿って説明する。
【００８０】
まず、テンプレート画像４２を生成する前に、カメラ４の校正を行う（ステップＳ１）。ここでは、計測平面６に設置したカメラ校正用マーカ（不図示）をカメラ４で撮影し、演算部５０のカメラ校正部５１に入力する。これにより、テンプレート画像４２の生成時の撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａが算出され、パラメータ管理部５２に登録される。
【００８１】
そして、テンプレート画像４２となるワークＷが計測平面６に設置され、カメラ４で撮影され、その撮影画像が演算部５０に入力される（ステップＳ２）。入力された撮影画像は、歪み補正部５３により、ステップＳ１にて校正した撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａを用いて補正される（ステップＳ３）。
【００８２】
歪み補正部５３から出力された補正後撮影画像は、テンプレート生成部５４に入力され、テンプレート画像４２が生成される。ここでは、例えば、制御装置３がモニタ３４に補正後撮影画像を表示し（ステップＳ４）、作業者に補正後撮影画像上の切り出し部３４ｃを選択させる（ステップＳ５）。
【００８３】
そして、テンプレート生成部５４は、補正後撮影画像及び切り出し部３４ｃからテンプレート画像４２を生成し、パラメータ管理部５２に登録する（ステップＳ６）。その際、パラメータ管理部５２では、テンプレート画像４２と、撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａとを関連付けして登録する。
【００８４】
ここで、ステップＳ６でのテンプレート画像４２の生成後に、経時変化や、カメラ４の交換や、カメラ４への何かの衝突等により撮影パラメータ４０ａが変化したか否かを判断する（ステップＳ７）。撮影パラメータ４０ａが変化していないと判断された場合は、テンプレート画像４２をそのまま利用して、後述するパターンマッチング処理（ステップＳ１０）を実行する。
【００８５】
撮影パラメータ４０ａが変化したと判断された場合は、パターンマッチング処理の前に、テンプレート画像４２を補正する。まず、カメラ校正部５１が、ステップＳ１と同様の処理手順にて、撮影パラメータ４０ｂ及び補正後撮影パラメータ４１ｂを算出して、パラメータ管理部５２に登録する（ステップＳ８）。そして、テンプレート補正部５５は、テンプレート画像４２に対して、撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａと、撮影パラメータ４０ｂ及び補正後撮影パラメータ４１ｂとを用いて、補正テンプレート画像４３を生成する（ステップＳ９）。当該ステップＳ９が、本発明の補正画像生成工程に相当する。これにより、現在の撮影パラメータ４０ｂ及び補正後撮影パラメータ４１ｂに適したテンプレートが生成される。テンプレート補正部５５は、補正テンプレート画像４３をパラメータ管理部５２に登録する。
【００８６】
そして、実際に撮影されたワークＷの画像を利用して、パターンマッチング処理が実行される（ステップＳ１０、パターンマッチング工程）。ここでは、カメラ４により計測平面６のワークＷを撮影した画像は、歪み補正部５３に送られ、歪み補正部５３は、当該画像を補正後撮影パラメータ４１ａ及び補正後撮影パラメータ４１ｂを用いて補正して、歪み補正画像を生成する。その後、パターンマッチ部５６が、歪み補正画像と、補正テンプレート画像４３とのパターンマッチングを実行し、歪み補正画像でのワークＷの位置を算出する。三次元復元部５７は、パターンマッチ部５６で算出された位置と、補正後撮影パラメータ４１ｂとから、ワークＷの三次元位置データを算出する。
【００８７】
上述したように、本実施形態のパターンマッチング装置５によれば、テンプレート画像４２を撮影画像と同じになるように変換してからパターンマッチングを行っている。このため、テンプレート画像４２の生成後に撮影パラメータ４０ａ及び補正後撮影パラメータ４１ａが変化しても、テンプレート画像４２の再生成は不要になる。これにより、テンプレート画像４２を何度も再生成する場合に比べて、作業者の時間と労力の浪費を防止できる。
【００８８】
また、本実施形態のパターンマッチング装置５によれば、撮影画像の撮影パラメータが変化した場合に、撮影画像の補正時に撮影画像の解像度をテンプレート画像に合わせなくて良いので、撮影パラメータの変化に対応したパターンマッチングを実行できる。
【００８９】
例えば、撮影画像を撮影するカメラ４を高解像度に交換した場合、テンプレート画像４２が補正パラメータにより高解像度の補正テンプレート画像４３に補正されるので、高解像度の画像同士のパターンマッチングで検出の高精度化を図ることができる。
【００９０】
また、撮影画像を撮影するカメラ４を低解像度に交換した場合、テンプレート画像４２が補正パラメータにより低解像度の補正テンプレート画像４３に補正されるので、低解像度の画像同士のパターンマッチングで処理の高速化を図ることができる。尚、図６に示す例では、撮影画像Ｙ２をテンプレート画像Ｘの生成時の解像度に高解像度化してからパターンマッチングを行っているため、本実施形態に比べて見かけの検出精度は高くなる。しかし、実際には撮影画像Ｙ２の解像度で離散化され、情報量が決定しているため、実質的な検出精度は撮影画像Ｙ２の解像度によることになり、本実施形態の検出精度と同等になる。
【００９１】
尚、本実施形態のパターンマッチング装置５では、図６に示す例と比べ、テンプレート画像４２の生成時の撮影パラメータを登録する領域が必要になる。しかし、撮影パラメータのデータは、焦点距離、レンズ歪み、センサの画素ピッチ、解像度、計測平面６とカメラ４の三次元相対位置姿勢等、数十個程度の値であるので、登録領域の大幅な増加を招くことは無い。例えば、一辺２００画素の画像、即ち４万画素の画像のテンプレート画像４２の登録に必要なデータ領域に比べ、撮影パラメータの登録に必要なデータ領域は極めて小さい。このため、本実施形態によるパターンマッチング装置５のコスト等への影響は、小さく抑えることができる。
【００９２】
［第２実施形態］
次に、本発明の第２実施形態に係るパターンマッチング装置５の演算部２５０について説明する。
【００９３】
第２実施形態の演算部２５０は、第１実施形態と比較して、図８に示すように、歪み補正部５３を省略している点で構成を異にしている。それ以外の構成は、第１実施形態と同様であるので同一符号を付して説明を省略する。
【００９４】
カメラ校正部２５１は、第１実施形態のカメラ校正部５１と同様に、入力された撮影画像に基づき、非特許文献１に記載された手法を用いて撮影パラメータ４０を算出する。但し、カメラ校正部２５１は、第１実施形態のカメラ校正部５１と異なり、補正後撮影パラメータ４１は算出しない。カメラ校正部２５１は、算出した撮影パラメータ４０を、テンプレート生成時と実際の撮影時とで別々にして、パラメータ管理部２５２に登録する。
【００９５】
パラメータ管理部２５２は、テンプレート生成時の撮影パラメータ４０ａ及び実際の撮影時の撮影パラメータ４０ｂと、パターンマッチング用のテンプレート画像２４２及び補正テンプレート画像２４３とについて、登録されたデータを管理する。パラメータ管理部５２における処理は、ＣＰＵ３０でＲＯＭ３２のパラメータ管理プログラムを実行することにより実現され、登録されたデータはＲＯＭ３２に記録される。
【００９６】
テンプレート補正部２５５は、テンプレート画像２４２の生成時の撮影パラメータ４０ａと、撮影時の撮影パラメータ４０ｂとを用いて、テンプレート画像２４２の変換を行い、補正テンプレート画像２４３を生成し、パラメータ管理部２５２に保存する。
【００９７】
テンプレート補正部２５５は、図４（ｄ）に示すように、符号１４０ａのテンプレート画像２４２の点Ｐ７について、撮影パラメータ４０ａを利用して計測平面６に投影して対応する点Ｐ４を求める。そして、テンプレート補正部２５５は、点Ｐ４を、撮影パラメータ４０ｂの利用により符号１４０ｂの補正テンプレート画像２４３に投影することで、対応する点Ｐ８を求める。このような補正方法で、補正テンプレート画像２４３の全画素について画像間で対応する点を求めることで、テンプレート補正を行う。
【００９８】
具体的には、テンプレート画像２４２の点Ｐ７の画像座標を（ｕｐ７，ｖｐ７）とし、それに基づいて最後に１の要素を加えたベクトルをｍｐ７＝［ｕｐ７  ｖｐ７  １］とする。また、撮影パラメータ４０ａの内部パラメータをＡｐ７とし、外部パラメータを［Ｒｐ７  ｔｐ７］とする。更に、点Ｐ４の三次元座標を（ｘｐ４，ｙｐ４，ｚｐ４）とし、それに基づいて最後に１の要素を加えたベクトルをＭｐ４＝［ｘｐ４  ｙｐ４  ｚｐ４  １］とすると、ベクトルｍｐ７及びベクトルＭｐ４の関係は数式１２となる。
【００９９】
【数１２】
2015005093.tif 000014
【０１００】
同様に、撮影パラメータ４０ｂによって表現される補正テンプレート画像２４３の座標上の点Ｐ８の画像座標を（ｕｐ８，ｖｐ８）とし、それに基づいて最後に１の要素を加えたベクトルをｎｐ８＝［ｕｐ８  ｖｐ８  １］とする。また、撮影パラメータ４０ｂの内部パラメータをＡｐ８とし、外部パラメータを［Ｒｐ８  ｔｐ８］とする。これにより、点Ｐ４の三次元座標に関するベクトルＭｐ４＝［ｘｐ４  ｙｐ４  ｚｐ４  １］とベクトルｎｐ８との関係は、数式１３となる。
【０１０１】
【数１３】
2015005093.tif 000015
【０１０２】
数式１２及び数式１３により、ベクトルｍｐ７とベクトルｎｐ８との関係は、数式１４となる。
【０１０３】
【数１４】
2015005093.tif 000016
【０１０４】
尚、非特許文献１の手法を用いた場合、各係数は、第１実施形態での歪み補正部５３の場合と同様に数式５〜数式８で示されるようになる。
【０１０５】
このようにして、補正テンプレート画像２４３の各画素について対応するテンプレート画像２４２の画素を求め、テンプレート画像２４２の各画素の輝度を当てはめることにより、補正テンプレート画像２４３を得る。尚、対応する画素が複数ある場合、バイリニア補間等の方法により複数の対応する画素の輝度値を混合して求めても良い。また、形状ベースマッチング等、エッジ構成点群で表現されるテンプレート画像を用いる際は、テンプレート画像を構成する各点について、数式１４を用いて変換することで補正テンプレート画像を得るようにする。
【０１０６】
テンプレート補正部２５５での処理は、ＣＰＵ３０にてＲＯＭ３２に記録されたテンプレート補正プログラムを実行することで行われる。このテンプレート補正プログラムでは、ＲＯＭ３２に記録されたテンプレート画像２４２と、テンプレート生成時の撮影パラメータ４０ａと、実際の撮影時の撮影パラメータ４０ｂとをパラメータ管理部２５２から読み出しＲＡＭ３１に展開する。そして、テンプレート補正プログラムでは、ＣＰＵ３０にて前述の補正演算を行い、生成された補正テンプレート画像２４３をパラメータ管理部２５２に登録し、ＲＯＭ３２に記録する。
【０１０７】
三次元復元部２５７は、パターンマッチ部５６より出力されたワークＷの画像上の位置と、撮影パラメータ４０ｂとを用いて、画像上の位置を三次元座標上の位置に変換し、三次元位置データを出力し、計測結果として上位システムへ送信する。
【０１０８】
三次元復元部２５７の処理は、ＲＯＭ３２の三次元座標変換プログラムをＣＰＵ３０で実行することにより実現する。三次元復元部２５７は、ＲＡＭ３１に一時記憶されたパターンマッチング結果の画像座標を、パラメータ管理部２５２を介してＲＯＭ３２より読み出した撮影時の撮影パラメータ４０ｂを用いて三次元座標に変換する。三次元復元部２５７は、得られた三次元位置データをＲＡＭ３１に一時記憶した後、ＣＰＵ３０からの指令により通信インタフェース３８を介して上位システムに送信する。
【０１０９】
上述したパターンマッチング装置５によりワークＷのパターンマッチングを実行する処理手順について、図９に示すフローチャートに沿って説明する。
【０１１０】
まず、テンプレート画像２４２を生成する前に、カメラ４の校正を行う（ステップＳ１１）。ここでは、計測平面６に設置したカメラ校正用マーカ（不図示）をカメラ４で撮影し、演算部２５０のカメラ校正部２５１に入力する。これにより、テンプレート画像２４２の生成時の撮影パラメータ４０ａが算出され、パラメータ管理部２５２に登録される。
【０１１１】
そして、テンプレート画像２４２となるワークＷが計測平面６に設置され、カメラ４で撮影され、その撮影画像が演算部２５０に入力される（ステップＳ１２）。撮影画像は、テンプレート生成部５４に入力され、テンプレート画像２４２が生成される。ここでは、例えば、制御装置３がモニタ３４に撮影画像を表示し（ステップＳ１３）、作業者に撮影画像上の切り出し部３４ｃを選択させる（ステップＳ１４）。
【０１１２】
そして、テンプレート生成部５４は、撮影画像及び切り出し部３４ｃからテンプレート画像２４２を生成し、パラメータ管理部２５２に登録する（ステップＳ１５）。その際、パラメータ管理部２５２では、テンプレート画像２４２と、撮影パラメータ４０ａとを関連付けして登録する。
【０１１３】
ここで、ステップＳ１５でのテンプレート画像２４２の生成後に、経時変化や、カメラ４の交換や、カメラ４への何かの衝突等により撮影パラメータ４０ａが変化したか否かを判断する（ステップＳ１６）。撮影パラメータ４０ａが変化していないと判断された場合は、テンプレート画像２４２をそのまま利用して、後述するパターンマッチング処理（ステップＳ１９）を実行する。
【０１１４】
撮影パラメータ４０ａが変化したと判断された場合は、パターンマッチング処理の前に、テンプレート画像２４２を補正する。まず、カメラ校正部２５１が、ステップＳ１１と同様の処理手順にて、撮影パラメータ４０ｂを算出して、パラメータ管理部２５２に登録する（ステップＳ１７）。そして、テンプレート補正部２５５は、テンプレート画像２４２に対して、撮影パラメータ４０ａと、撮影パラメータ４０ｂとを用いて、補正テンプレート画像２４３を生成する（ステップＳ１８、補正画像生成工程）。これにより、現在の撮影パラメータ４０ｂに適したテンプレートが生成される。テンプレート補正部２５５は、補正テンプレート画像２４３をパラメータ管理部２５２に登録する。
【０１１５】
そして、実際に撮影されたワークＷの画像を利用して、パターンマッチング処理が実行される（ステップＳ１９、パターンマッチング工程）。ここでは、パターンマッチ部５６が、カメラ４により計測平面６のワークＷを撮影した画像と補正テンプレート画像２４３とのパターンマッチングを実行し、撮影画像でのワークＷの位置を算出する。三次元復元部２５７は、パターンマッチ部５６で算出された位置と、撮影パラメータ４０ｂとから、ワークＷの三次元位置データを算出する。
【０１１６】
上述したように、本実施形態のパターンマッチング装置５によれば、第１実施形態と同様に、テンプレート画像２４２を撮影画像と同じになるように変換してからパターンマッチングを行っている。このため、テンプレート画像２４２の生成後に撮影パラメータ４０ａが変化しても、テンプレート画像２４２の再生成は不要になるので、テンプレート画像２４２を何度も再生成する場合に比べて、作業者の時間と労力の浪費を防止できる。
【０１１７】
また、本実施形態のパターンマッチング装置５によれば、第１実施形態と同様に、撮影画像の撮影パラメータが変化した場合に、撮影画像を補正しないので、撮影パラメータの変化に対応したパターンマッチングを実行できる。
【０１１８】
また、本実施形態のパターンマッチング装置５によれば、撮影画像の歪み補正が不要になる。このため、例えば、カメラ４のレンズ歪みが小さく、またセンサ面４ａが計測平面６に対してほぼ平行に置かれている場合等、カメラ４とワークＷとの距離の変化にのみ対応でき歪み補正が不要な場合に好適である。この場合、撮影画像の歪み補正が不要になることから、パターンマッチング処理を高速に実行できる。
【０１１９】
上述した第１及び第２実施形態では、テンプレート画像４２，２４２はワークＷをカメラ４により撮影して生成する場合について説明したが、これには限られない。例えば、テンプレート画像４２，２４２は、ワークＷの３次元ＣＡＤモデルを２次元に投影することで生成してもよい。この場合も、得られたテンプレート画像４２，２４２を補正テンプレート画像４３，２４３に補正して、撮影画像とパターンマッチングすることができる。
【０１２０】
また、上述した第１及び第２実施形態では、テンプレート画像４２，２４２と撮影画像とをパターンマッチングするために、常にテンプレート画像４２，２４２の方を補正する場合について説明したが、これには限られない。例えば、状況に応じて、図６の例と同様に、撮影画像の方を補正してテンプレート画像４２，２４２に合うように補正画像を生成するようにしてもよい。これにより、例えば、テンプレート画像４２，２４２よりも高解像度の撮影画像を得た場合で高いマッチング精度が必要ない場合は、撮影画像を低解像度のテンプレート画像４２，２４２に合わせることで、マッチング時間を短縮することができる。即ち、パターンマッチング精度及び速度に求められる条件により、テンプレート画像４２，２４２と撮影画像とのいずれを補正するか適宜選択するようにできる。
【０１２１】
また、上述した第１及び第２実施形態では、パターンマッチングの対象をテンプレート画像４２，２４２と撮影画像とにした場合について説明したが、これには限られない。例えば、複数の検出対象をそれぞれ撮影して得られた複数の画像同士をパターンマッチングする等、２枚以上の画像同士のパターンマッチングの全般に適用することができる。
【０１２２】
また、上述した第１及び第２実施形態では、パターンマッチング装置５がロボット装置１の制御装置３に内蔵されている場合について説明したが、これには限られない。例えば、パターンマッチング装置をＮＣ機器や生産ラインに配置される機器等の生産装置を備える生産設備にも適用することができる。この場合、例えば、生産設備のカメラがワークを撮影し、撮影で得られた情報に基づきパターンマッチング装置がワークの位置姿勢や真贋等を判定し、その結果に基づいて制御装置が生産装置に対して動作を制御するようにできる。
【０１２３】
尚、以上述べた第１及び第２実施形態の各処理動作は具体的には演算部５０，２５０により実行されるものである。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を演算部５０，２５０に供給し、演算部５０，２５０を構成するＣＰＵ３０が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１２４】
また、第１及び第２実施形態では、コンピュータ読み取り可能な記録媒体がＲＯＭ３２であり、ＲＯＭ３２にプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１２５】
１…ロボット装置、２…ロボット本体、３…制御装置、４…カメラ、５…パターンマッチング装置、４０ａ，４１ａ…撮影パラメータ（補正パラメータ）、４０ｂ，４１ｂ…補正後撮影パラメータ（補正パラメータ）、４２，２４２…テンプレート画像、４３，２４３…補正テンプレート画像、５０，２５０…演算部、Ｑ１，Ｑ２…撮影パラメータ（補正パラメータ）、Ｗ…ワーク（検出対象）、Ｘ…撮影画像、Ｙ１，Ｙ２…テンプレート画像
【図１】
2015005093.tif 000017
【図２】
2015005093.tif 000018
【図３】
2015005093.tif 000019
【図４】
2015005093.tif 000020
【図５】
2015005093.tif 000021
【図６】
2015005093.tif 000022
【図７】
2015005093.tif 000023
【図８】
2015005093.tif 000024
【図９】
2015005093.tif 000025