(57)【要約】  画像処理システムは、測定対象を撮影して撮影画像を取得する撮影装置と、測定対象の配置状態を検知し、撮影装置に対する測定対象のあおり角を決定する配置検知部と、テンプレート画像を記憶する記憶部と、配置検知部により決定されたあおり角に基づいて撮影画像を補正することで傾き補正画像を生成する傾き補正部と、傾き補正画像とテンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像を補正することでスケール補正画像を生成するスケール補正部と、スケール補正画像に対して、テンプレート画像を用いたテンプレートマッチングを行なうことで、撮影画像上のテンプレート画像に対応する位置を決定する位置探索部とを含む。
2014061372.tif 000002
【特許請求の範囲】
【請求項１】
画像処理システムであって、
測定対象を撮影して撮影画像を取得する撮影装置と、
前記測定対象の配置状態を検知し、前記撮影装置に対する前記測定対象のあおり角を決定する配置検知部と、
テンプレート画像を記憶する記憶部と、
前記配置検知部により決定されたあおり角に基づいて前記撮影画像を補正することで傾き補正画像を生成する傾き補正部と、
前記傾き補正画像と前記テンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて前記傾き補正画像を補正することでスケール補正画像を生成するスケール補正部と、
前記スケール補正画像に対して、前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定する位置探索部とを備える、画像処理システム。
【請求項２】
前記配置検知部は、前記測定対象の表面の複数点に対する距離を測定する測距部を含み、
前記配置検知部は、前記測定対象の表面の複数点についての測距結果に基づいて、前記測定対象の測定面を推定する、請求項１に記載の画像処理システム。
【請求項３】
前記配置検知部は、前記撮影装置と前記測定対象との間の距離を出力する、請求項１に記載の画像処理システム。
【請求項４】
前記スケール補正部は、前記傾き補正部が前記傾き補正画像を生成する際の回転中心に対応する位置の情報に基づいて、前記スケールずれ量を算出する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記スケール補正部は、Fourier-Mellin  invariantを用いて、前記スケールずれ量を算出する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項６】
前記スケール補正部は、前記傾き補正画像および前記テンプレート画像から特徴点をそれぞれ抽出するとともに、抽出した特徴点間の距離の比に基づいて、前記スケールずれ量を算出する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項７】
前記撮影画像から前記テンプレート画像を生成するテンプレート生成部をさらに備え、前記テンプレート生成部は、生成したテンプレート画像に対応する撮影画像を撮影した際の測定対象の配置状態を当該生成したテンプレート画像に関連付けて前記記憶部に格納する、請求項１〜６のいずれか１項に記載の画像処理システム。
【請求項８】
前記テンプレート画像を補正するテンプレート補正部をさらに備える、請求項１〜７のいずれか１項に記載の画像処理システム。
【請求項９】
前記配置検知部は、ステレオカメラを含む、請求項１〜８のいずれか１項に記載の画像処理システム。
【請求項１０】
前記ステレオカメラの一方のカメラが前記撮影装置によって構成される、請求項９に記載の画像処理システム。
【請求項１１】
前記配置検知部は、前記撮影装置との相対位置が固定された光学測距装置を含む、請求項１〜８のいずれか１項に記載の画像処理システム。
【請求項１２】
前記配置検知部は、前記測定対象の表面に対応する位置情報として、前記撮影装置に最も近い点、前記撮影装置から所定距離内に存在する点、測定領域において所定範囲内に存在する点、のいずれかを示すデータを抽出する、請求項１〜１１のいずれか１項に記載の画像処理システム。
【請求項１３】
前記配置検知部は、前記測定対象の表面に対応する位置情報として、測定領域内の３次元データの全体を用いて前記測定対象の表面形状を推定し、この推定された表面形状に関して所定距離内に存在する３次元データを抽出する、請求項１〜１１のいずれか１項に記載の画像処理システム。
【請求項１４】
前記位置探索部は、前記テンプレート画像を用いたテンプレートマッチングによって特定された前記スケール補正画像上の位置に対応する前記撮影画像上の位置を算出する結果出力部を含む、請求項１〜１３のいずれか１項に記載の画像処理システム。
【請求項１５】
前記結果出力部は、前記撮影画像上の位置についての算出結果と、前記配置検知部により検知された配置状態とに基づいて、前記測定対象の３次元位置を算出する、請求項１４に記載の画像処理システム。
【請求項１６】
前記位置探索部は、前処理として、前記傾き補正部および前記スケール補正部によって生成された第１のスケール補正画像に対して前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定し、
前記スケール補正部は、前処理において決定された前記撮影画像上の前記テンプレート画像に対応する位置を中心として、前記傾き補正部が前記撮影画像を補正することで生成した傾き補正画像に対して、スケール補正を行なうことで第２のスケール補正画像を生成し、
前記位置探索部は、本処理として、前記第２のスケール補正画像に対して前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定する、請求項１〜１５のいずれか１項に記載の画像処理システム。
【請求項１７】
測定対象を撮影して撮影画像を取得する撮影装置と、前記測定対象の配置状態を検知し、前記撮影装置に対する前記測定対象のあおり角を決定する配置検知部とを含む画像処理システムにおいて用いられる画像処理装置であって、
テンプレート画像を記憶する記憶部と、
前記配置検知部により決定されたあおり角に基づいて前記撮影画像を補正することで傾き補正画像を生成する傾き補正部と、
前記傾き補正画像と前記テンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて前記傾き補正画像を補正することでスケール補正画像を生成するスケール補正部と、
前記スケール補正画像に対して、前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定する位置探索部とを備える、画像処理装置。
【請求項１８】
予め登録されたテンプレート画像を用いたテンプレートマッチングを行なう画像処理方法であって、
撮影装置によって撮影された測定対象の撮影画像を取得するステップと、
前記測定対象の配置状態を検知し、前記撮影装置に対する前記測定対象のあおり角を決定するステップと、
前記あおり角に基づいて前記撮影画像を補正することで傾き補正画像を生成するステップと、
前記傾き補正画像と前記テンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて前記傾き補正画像を補正することでスケール補正画像を生成するステップと、
前記スケール補正画像に対して、前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定するステップとを備える、画像処理方法。
【請求項１９】
予め登録されたテンプレート画像を用いたテンプレートマッチングを行なう画像処理プログラムであって、前記画像処理プログラムはコンピューターに、
撮影装置によって撮影された測定対象の撮影画像を取得するステップと、
配置検知部によって決定された前記撮影装置に対する前記測定対象のあおり角を取得するステップと、
前記あおり角に基づいて前記撮影画像を補正することで傾き補正画像を生成するステップと、
前記傾き補正画像と前記テンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて前記傾き補正画像を補正することでスケール補正画像を生成するステップと、
前記スケール補正画像に対して、前記テンプレート画像を用いたテンプレートマッチングを行なうことで、前記撮影画像上の前記テンプレート画像に対応する位置を決定するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレート画像を用いたテンプレートマッチングを用いた位置検出を行なう画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
従来から、予め登録されたテンプレート画像に対応する位置を撮影画像の中から探索するテンプレートマッチングが様々な分野で利用されている。このようなテンプレートマッチングにおいて、撮影装置（カメラ）に対する測定対象（ワーク）の配置の精度がそれほど高くない場合には、カメラとワークとの間の相対位置関係が一定にはならず、テンプレートマッチングが失敗する場合がある。このような課題に関して、以下のような先行技術が知られている。【０００３】
特開２００９−１２８２６１号公報（特許文献１）は、検査対象物の外観検査方法を開示する。より具体的には、本方法は、検査対象物の検査表面の３次元形状データとＣＣＤカメラとの相対位置を予め入力するステップと、検査表面の全体を、少なくとも一部を重複させて複数のＣＣＤカメラで撮像して複数の画像を取得するステップと、各画像の歪みを３次元形状データを基に補正して平面に展開し、少なくとも一部が重複した複数の平面画像を作成するステップとを含む。【０００４】
特開２００７−３０９８０８号公報（特許文献２）は、パターンマッチングにより対象物の位置を検出する対象物の位置検出方法を開示する。より具体的には、本方法では、基板認識カメラで基板を撮像し、その画像の一部がテンプレート画像として登録される。テンプレート画像を取得したときのカメラの取り付け角度とパターンマッチングのために基板を撮像するときのカメラの取り付け角度とに差があるときには、該取り付け角度の差に応じて登録したテンプレート画像が補正され、補正したテンプレート画像とのパターンマッチングにより基板の位置検出が行なわれる。【０００５】
特開２００４−２９５２２３号公報（特許文献３）は、視覚センサで得られる画像を処理して、対象物の位置及び／又は姿勢に関する情報を取得する画像処理装置を開示する。より具体的には、本装置は、モデルパターンに２次元の幾何学的変換を施すことにより、基準相対姿勢と３次元的に異なる相対姿勢での対象物の見え方を表す変換モデルパターンを作成する手段と、画像データに対して変換モデルパターンを使用してパターンマッチングを行なう手段と、複数の３次元的な相対姿勢について、変換モデルパターンの作成とパターンマッチングを繰り返すことにより、適合する変換モデルパターンを選択し、画像データにおける対象物の位置情報を得る手段と、画像データにおける対象物の位置情報と、選択された変換モデルパターンに対応する相対姿勢情報に基づいて対象物の３次元位置及び／又は３次元姿勢を認識する手段とを含む。【０００６】
Q.Chen  et  al.  "Symmetric  Phase-Only  Matched  Filtering  of  Fourier-Mellin  Transforms  for  Image  Registration  and  Recognition"（非特許文献１）は、Fourier-Mellin  invariantを用いた、スケール・ロール変動に対応したテンプレートマッチング手法を開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１２８２６１号公報
【特許文献２】特開２００７−３０９８０８号公報
【特許文献３】特開２００４−２９５２２３号公報
【非特許文献】
【０００８】
【非特許文献１】Q.Chen,  M.Defrise,  and  F.  Deconinck,  "Symmetric  Phase-Only  Matched  Filtering  of  Fourier-Mellin  Transforms  for  Image  Registration  and  Recognition",  IEEE  TRANSACTIONS  ON  PATTERN  ANALYSIS  AND  MACHINE  INTELLIGENCE,  VOL.  16,  NO.  12,  DECEMBER  1994
【発明の概要】
【発明が解決しようとする課題】
【０００９】
カメラに対してワークが大まかに配置されるような場合には、カメラに対してワーク表面が傾きをもつ場合がある。この場合、そのワーク表面の傾きによって、撮影画像に変形が発生し、テンプレートマッチングが失敗することがある。また、カメラに対するワーク表面の距離が異なると、撮影画像とテンプレート画像との間にスケールずれが発生し、テンプレートマッチングが失敗することがある。【００１０】
しかしながら、上述の先行技術では、このような課題を解決することはできなかった。すなわち、特許文献１に記載の検査対象物の外観検査方法では、ＣＣＤカメラと検査対象物との間の位置が厳密に決まっている場合が前提となっており、カメラに対してワークが大まかに配置されるような場合にはうまく適用できない。また、特許文献２に記載の位置検出方法では、カメラの取り付け角度のみが考慮されてテンプレート画像が補正されるため、ワークの配置状態のずれについては対応できない。また、特許文献３に記載の画像処理装置は、多くのテンプレートについてテンプレートマッチングを行なう必要があり、計算コストが大きく、実用に不適である。また、非特許文献１は、単にＸＹ等倍変動を想定した手法であり、ワーク表面の傾きにより生じる台形歪みなどについては想定されていない。【００１１】
本発明の目的は、撮影装置に対する測定対象の配置状態にばらつきがある場合であっても、より高い精度でテンプレート画像に対応する位置を決定できる画像処理装置、画像処理方法および画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明のある局面に従う画像処理システムは、測定対象を撮影して撮影画像を取得する撮影装置と、測定対象の配置状態を検知し、撮影装置に対する測定対象のあおり角を決定する配置検知部と、テンプレート画像を記憶する記憶部と、配置検知部により決定されたあおり角に基づいて撮影画像を補正することで傾き補正画像を生成する傾き補正部と、傾き補正画像とテンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像を補正することでスケール補正画像を生成するスケール補正部と、スケール補正画像に対して、テンプレート画像を用いたテンプレートマッチングを行なうことで、撮影画像上のテンプレート画像に対応する位置を決定する位置探索部とを含む。【００１３】
本発明の別の局面に従えば、測定対象を撮影して撮影画像を取得する撮影装置と、測定対象の配置状態を検知し、撮影装置に対する測定対象のあおり角を決定する配置検知部とを含む画像処理システムにおいて用いられる画像処理装置が提供される。画像処理装置は、テンプレート画像を記憶する記憶部と、配置検知部により決定されたあおり角に基づいて撮影画像を補正することで傾き補正画像を生成する傾き補正部と、傾き補正画像とテンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像を補正することでスケール補正画像を生成するスケール補正部と、スケール補正画像に対して、テンプレート画像を用いたテンプレートマッチングを行なうことで、撮影画像上のテンプレート画像に対応する位置を決定する位置探索部とを含む。【００１４】
本発明のさらに別の局面に従えば、予め登録されたテンプレート画像を用いたテンプレートマッチングを行なう画像処理方法が提供される。画像処理方法は、撮影装置によって撮影された測定対象の撮影画像を取得するステップと、測定対象の配置状態を検知し、撮影装置に対する測定対象のあおり角を決定するステップと、あおり角に基づいて撮影画像を補正することで傾き補正画像を生成するステップと、傾き補正画像とテンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像を補正することでスケール補正画像を生成するステップと、スケール補正画像に対して、テンプレート画像を用いたテンプレートマッチングを行なうことで、撮影画像上のテンプレート画像に対応する位置を決定するステップとを含む。【００１５】
本発明のさらに別の局面に従えば、予め登録されたテンプレート画像を用いたテンプレートマッチングを行なう画像処理プログラムが提供される。画像処理プログラムはコンピューターに、撮影装置によって撮影された測定対象の撮影画像を取得するステップと、配置検知部によって決定された撮影装置に対する測定対象のあおり角を取得するテップと、あおり角に基づいて撮影画像を補正することで傾き補正画像を生成するステップと、傾き補正画像とテンプレート画像との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像を補正することでスケール補正画像を生成するステップと、スケール補正画像に対して、テンプレート画像を用いたテンプレートマッチングを行なうことで、撮影画像上のテンプレート画像に対応する位置を決定するステップとを実行させる。
【発明の効果】
【００１６】
本発明によれば、撮影装置に対する測定対象の配置位置にばらつきがある場合であっても、より高い精度でテンプレート画像に対応する位置を決定できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に従う画像処理装置を備えた画像処理システムを示す模式図である。
【図２】本発明の実施の形態に従う画像処理装置をパーソナルコンピューターにより実現した場合の構成を示すブロック図である。
【図３】本発明の実施の形態に従う画像処理装置の機能構成の一例を示す模式図である。
【図４】本発明の実施の形態に従う画像処理装置の配置検知部が検知する測定対象の配置状態を示す模式図である。
【図５】測定対象の配置状態の一例を示す模式図である。
【図６】測定対象の配置状態の別の一例を示す模式図である。
【図７】本発明の実施の形態に従う配置検知部によるデータ抽出処理の一例を示す模式図である。
【図８】配置検知部としてレーザー測距装置を用いた構成例を示す模式図である。
【図９】本発明の実施の形態に従う画像処理装置の傾き補正部における処理内容を説明するための図である。
【図１０】本発明の実施の形態に従う画像処理装置の傾き補正の処理を説明するための模式図である。
【図１１】図１０に示す処理に対応する処理結果の一例を示す図である。
【図１２】本発明の実施の形態に従う画像処理装置の３次元位置算出の処理を説明するための模式図である。
【図１３】本発明の実施の形態に従う画像処理装置の機能構成の変形例１を示す模式図である。
【図１４】本発明の実施の形態に従う画像処理装置の機能構成の変形例２を示す模式図である。
【図１５】本発明の実施の形態に従う画像処理装置の機能構成の変形例３を示す模式図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１９】
［Ａ．概要］
本実施の形態は、ステレオカメラや光学測距装置などを用いて、ワーク表面の姿勢を測定し、撮影装置（カメラ）とワーク表面との間の傾きを特定するとともに、この傾きに起因する撮影画像の歪みを補正することで、安定したテンプレートマッチングを実現する。このとき、傾き補正に起因するスケール（倍率）変動も併せて補正することで、テンプレートマッチングをより安定させる。
【００２０】
［Ｂ．システム構成］
まず、本発明の実施の形態に従う画像処理装置１００について説明する。
【００２１】
《ｂ１：適用例》
図１は、本発明の実施の形態に従う画像処理装置を備えた画像処理システムを示す模式図である。図１（ａ）および図１（ｂ）などに示すように、本実施の形態に従う画像処理装置は、ロボットアーム８などによって適宜配置される測定対象（以下「ワーク４」と称す。）を撮影することで取得される画像（以下「撮影画像１０」と称す。）に対して、予め登録されたテンプレート画像１８を用いたテンプレートマッチングを行なう。このテンプレートマッチングによって、画像処理装置１００は、撮影画像１０上のテンプレート画像に対応する位置を決定する。
【００２２】
画像処理システム１Ａ，１Ｂは、画像処理装置１００と、測定対象（ワーク４）を撮影して撮影画像１０を取得するための撮影装置（カメラ１）と、測定対象の配置状態を検知する配置検知部とを備えている。配置検知部は、複数点の測距機能を有しており、複数点の測距結果から測定面を推定することで、ワーク４表面（測定対象面）のカメラに対するあおり角を検知する。この配置検知部の具現化例として、図１（ａ）に示す画像処理システム１Ａでは、一対のカメラ１および２からなるステレオカメラを採用しており、図１（ｂ）に示す画像処理システム１Ｂでは、レーザー測距装置等の測距装置３を採用している。本実施の形態においては、撮影画像１０は、カメラ１によって生成されるものとする。図１（ａ）に示す構成においては、ステレオカメラを構成するカメラの１つが撮影装置としても機能する。
【００２３】
《ｂ２：パーソナルコンピューターによる実現例》
図２は、本発明の実施の形態に従う画像処理装置１００をパーソナルコンピューターにより実現した場合の構成を示すブロック図である。
【００２４】
図２を参照して、パーソナルコンピューターにより実現される画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。図２を参照して、画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Central  Processing  Unit）１０２と、ＲＡＭ（Random  Access  Memory）１０４と、ＲＯＭ（Read  Only  Memory）１０６と、ネットワークインターフェイス（Ｉ／Ｆ）１０８と、補助記憶装置１１０と、表示部１２０と、入力部１２２と、メモリーカードインターフェイス（Ｉ／Ｆ）１２４と、カメラインターフェイス（Ｉ／Ｆ）１２８と、センサーインターフェイス（Ｉ／Ｆ）１３２とを含む。各コンポーネントは、バス１３０を介して、互いに通信可能に接続されている。
【００２５】
ＣＰＵ１０２は、ＲＯＭ１０６や補助記憶装置１１０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）、テンプレートマッチング処理プログラム１１２などの各種プログラムを実行する。ＲＡＭ１０４は、ＣＰＵ１０２でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。ＲＯＭ１０６は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００２６】
ネットワークインターフェイス１０８は、各種の通信媒体を介して、他の装置（サーバー装置など）とデータを遣り取りする。より具体的には、ネットワークインターフェイス１０８は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００２７】
補助記憶装置１１０は、典型的には、ハードディスクなどの大容量磁気記録媒体などからなり、本実施の形態に従う各種処理を実現するための画像処理プログラム（テンプレートマッチング処理プログラム１１２など）およびテンプレート画像１８などを格納する。さらに、補助記憶装置１１０には、オペレーティングシステムなどのプログラムが格納されてもよい。
【００２８】
表示部１２０は、オペレーティングシステムが提供するＧＵＩ（Graphical  User  Interface）画面に加えて、テンプレートマッチング処理プログラム１１２の実行によって生成される画像などを表示する。
【００２９】
入力部１２２は、典型的には、キーボード、マウス、タッチパネルなどからなり、ユーザーから受付けた指示の内容をＣＰＵ１０２などへ出力する。
【００３０】
メモリーカードインターフェイス１２４は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記録媒体）１２６との間で、データの読み書きを行なう。
【００３１】
カメラインターフェイス１２８は、ワーク４などの測定対象を撮影することで取得される撮影画像をカメラ１から取り込む。カメラ１は、測定対象を撮影して撮影画像を取得する撮影装置として機能する。但し、画像処理装置１００としては、カメラ１に直接接続されていなくてもよい。具体的には、カメラで測定対象を撮影することで取得される撮影画像を、メモリーカード１２６を介して取り込むようにしてもよい。すなわち、この場合には、メモリーカードインターフェイス１２４にメモリーカード１２６が装着され、メモリーカード１２６から撮影画像が読み出されて補助記憶装置１１０などへ格納（コピー）される。
【００３２】
センサーインターフェイス１３２は、測距装置３により測定された測距結果などを取り込む。図２には、測定対象の配置状態を検知する配置検知部として、ステレオカメラ（カメラ１およびカメラ２）を用いる場合、および、測距装置３を用いる場合の両方に対応できる構成例を示すが、ステレオカメラのみを用いる場合には、センサーインターフェイス１３２を設けなくともよく、測距装置３のみを用いる場合には、カメラインターフェイス１２８は、カメラ１のみと接続されるようにしてもよい。
【００３３】
補助記憶装置１１０に格納される、テンプレートマッチング処理プログラム１１２は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記録媒体に格納されて流通し、あるいは、ネットワークを介してサーバー装置などから配信される。テンプレートマッチング処理プログラム１１２は、画像処理装置１００（パーソナルコンピューター）で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、テンプレートマッチング処理プログラム１１２自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。また、テンプレートマッチング処理プログラム１１２は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、プログラム自体には、他のプログラムと共通に利用されるようなモジュールは含まれず、当該他のプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない形態であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。
【００３４】
さらに、テンプレートマッチング処理プログラム１１２によって提供される機能の一部または全部を専用のハードウェアによって実現してもよい。
【００３５】
《ｂ３：その他の構成による実現例》
上述したパーソナルコンピューターにより実現する例に加えて、少なくとも１つのサーバー装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、クライアント装置が処理対象の撮影画像および必要な情報をサーバー装置（クラウド側）へ送信し、当該送信された撮影画像に対して、サーバー装置側で必要な処理を実行するような構成が想定される。さらに、サーバー装置側が必要なすべての機能（処理）を行なう必要はなく、クライエント装置とサーバー装置とが協働して、必要な処理を実現するようにしてもよい。
【００３６】
［Ｃ．機能構成］
次に、本発明の実施の形態に従う画像処理装置１００の機能構成の一例について説明する。図３は、本発明の実施の形態に従う画像処理装置１００の機能構成の一例を示す模式図である。図３を参照して、本実施の形態に従う画像処理装置１００は、その機能構成として、配置検知部３０と、傾き補正部１５０と、スケール補正部１５２と、テンプレートマッチング部１５８と、結果出力部１６０とを含む。これらの機能構成は、典型的には、図２に示す画像処理装置１００において、ＣＰＵ１０２がテンプレートマッチング処理プログラム１１２を実行することで実現される。なお、配置検知部３０は、上述のように、ステレオカメラ（カメラ１およびカメラ２）または測距装置３を含むが、その機能の一部はＣＰＵ１０２によって実現されるものであるため、ここでは画像処理装置１００の機能構成に含めて説明する。以下、各機能構成について説明する。
【００３７】
配置検知部３０は、ステレオカメラ（カメラ１およびカメラ２）または測距装置３を含み、その出力に基づいて、カメラ１に対する測定対象（ワーク４）の姿勢や距離を検知し、配置状態１２として出力する。この配置状態１２の情報には、カメラ１に対する測定対象（ワーク４）のあおり角が含まれる。
【００３８】
傾き補正部１５０には、カメラ１によって生成された撮影画像１０が入力されるとともに、配置検知部３０により検知されたワーク４の配置状態１２の情報が入力される。傾き補正部１５０は、配置検知部３０により検知された測定対象のカメラ１に対するあおり角の情報を用いて、このあおり角を補正した測定対象の傾き補正画像１４を生成する。すなわち、傾き補正部１５０は、カメラ１により撮影されたワーク４の撮影画像１０について、配置検知部３０で得たカメラ１に対するワーク４表面（測定対象面）のあおり角を補正する処理を行ない、傾き補正画像１４を生成する。
【００３９】
テンプレート画像１８は、基本的には、カメラ１と基準となるワークの表面（測定対象面）とが正対する形で撮影された画像から、位置検出したい領域を含む部分画像を抽出することで生成される。テンプレート画像１８に加えて、テンプレート画像１８の撮影時における配置検知部３０からの出力結果（配置状態１２の情報）を含む距離情報２０が保持されている。
【００４０】
すなわち、画像処理装置１００は、撮影画像１０からテンプレート画像１８を生成するテンプレート生成部を有しており、このテンプレート生成部は、生成したテンプレート画像１８に対応する撮影画像１０を撮影した際の配置状態を当該生成したテンプレート画像１８に関連付けて格納する。言い換えれば、テンプレート画像１８は、カメラ１で撮影された撮影画像１０を用いて設定される。このとき、テンプレート画像１８（撮影画像１０）の撮影時における配置検知部３０から出力される配置状態１２と併せて格納される。このように、テンプレート画像１８とテンプレート撮影時のワーク４の配置状態１２の情報を併せて保持することで、カメラ１に対して測定対象面が傾いた状態でテンプレート画像１８（撮影画像１０）を撮影したとしても、テンプレート画像１８を補正できるようになり、テンプレートマッチングをより安定して実行できる。
【００４１】
スケール補正部１５２は、傾き補正画像１４とテンプレート画像１８との間のスケールずれ量を算出するとともに、当該算出したスケールずれ量に基づいて傾き補正画像１４を補正することでスケール補正画像１６を生成する。スケール補正部１５２には、傾き補正部１５０によって生成された傾き補正画像１４が入力されるとともに、テンプレート画像１８が入力される。スケール補正部１５２は、スケールずれ量算出部１５４およびスケール補正画像生成部１５６を含む。スケールずれ量算出部１５４は、傾き補正画像１４について、配置検知部３０で得たカメラ１からワーク４表面（測定対象面）までの距離情報と、テンプレート画像１８の撮影時における距離情報２０とに基づいて、傾き補正画像１４とテンプレート画像１８との間のスケールずれ量を算出する。続いて、スケール補正画像生成部１５６は、スケールずれ量算出部１５４で算出されたスケールずれ量の情報に基づいて、傾き補正画像１４に対してスケール補正を行ない、スケール補正画像１６を生成する。
【００４２】
テンプレートマッチング部１５８は、スケール補正画像１６に対して、テンプレート画像１８を用いたテンプレートマッチングを行なう。すなわち、テンプレートマッチング部１５８は、スケール補正画像１６とテンプレート画像１８との間でテンプレートマッチング処理を行ない、スケール補正画像１６上でのテンプレート画像１８に対応する位置検出結果を取得する。
【００４３】
結果出力部１６０は、撮影画像１０上のテンプレート画像１８に対応する位置を決定する。すなわち、結果出力部１６０は、スケール補正画像１６上でのテンプレート画像１８に対応する位置検出結果に基づいて、その位置に対応する撮影画像１０上の位置を算出する。結果出力部１６０は、撮影画像１０上の位置についての算出結果と、配置検知部３０により検知された配置状態１２とに基づいて、ワーク４の３次元位置を算出する。
【００４４】
より具体的には、結果出力部１６０は、補正前位置算出部１６２および３次元位置算出部１６４を含む。補正前位置算出部１６２は、テンプレートマッチング部１５８による位置検出結果を撮影画像１０上での位置に変換する。３次元位置算出部１６４は、撮影画像１０上でのテンプレート位置と配置検知部３０による配置状態１２の情報とに基づいて、テンプレート位置に対応するカメラ１から見たワーク４の３次元位置を算出し、位置算出結果として出力する。
【００４５】
以上のように、図１に示す画像処理装置１００は、カメラ１に対するワーク４表面（測定対象面）の傾きで発生する歪みを補正する。このことでテンプレート画像１８に近い画像を取得でき、テンプレートマッチングを安定化できる。
【００４６】
以下、各機能構成の詳細について説明する。
［Ｄ．配置検知部］
配置検知部３０としては、典型的には、ステレオカメラ（カメラ１およびカメラ２）を用いる方法、または、測距装置３を用いる方法を採用できる。
【００４７】
図４は、本発明の実施の形態に従う画像処理装置１００の配置検知部３０が検知する測定対象の配置状態を示す模式図である。図４（ａ）は、カメラ１と測定対象とが正対している例を示す。この例では、カメラ１に対する測定対象（ワーク４）のあおり角を０°と定義できる。図４（ｂ）は、カメラ１と測定対象とが正対している状態からずれている例を示す。この例では、カメラ１の距離方向軸と測定対象の平面の向き（法線方向）との間の角度をあおり角θと定義できる。なお、あおり角をカメラ１の距離方向軸と測定対象の平面方向（接線方向）との間の角度を用いて定義してもよい。
【００４８】
配置検知部３０は、配置状態１２の情報として、カメラ１とワーク４との間の距離を出力する。また、配置検知部３０は、ワーク４の表面の複数点に対する距離を測定する測距部を含み、ワーク４の表面の複数点についての測距結果に基づいて、ワーク４の測定面を推定することで、カメラ１に対するワーク４のあおり角を決定する。本実施の形態においては、配置検知部３０は、測距部（またはその一部）として、ステレオカメラまたは光学測距装置（レーザー測距装置またはミリ波レーダー測距装置）などを含む。
【００４９】
測距部を用いてワーク４の表面上の複数点を測定すると、ワーク４の表面に対応する位置情報として複数のデータが取得される。これらの取得される複数のデータのうち、後述するような処理によって必要なデータを抽出することで、ワーク４の表面を適切に推定する。このような配置検知部３０を用いることで、ワーク４の表面を推定し、カメラ１に対するワーク４の姿勢や距離を把握できる。以下、配置検知部３０に、ステレオカメラおよび測距装置を採用した場合について説明する。
【００５０】
《ｄ１：ステレオカメラ》
図５は、配置検知部３０にステレオカメラを採用した場合の一例を示す図である。配置検知部３０は、カメラ１およびカメラ２からなるステレオカメラを用いた３次元測定により、測定範囲にある被写体を示す３次元点群を取得する。そして、配置検知部３０は、取得した測定範囲にある３次元点群について、測定対象に相当するデータを抽出する。
【００５１】
測定対象の表面が平面であれば、配置検知部３０は、抽出したデータについて平面近似を行ない、平面近似により算出された平面方程式から、測定対象の平面の向き（法線ベクトル）、およびカメラ１と当該平面との間の距離（撮影画像１０上の１または複数の点に対応するカメラからの距離）を取得する。
【００５２】
測定対象の表面が平面でない場合、例えば、測定対象がかまぼこのような半円筒型である場合には、配置検知部３０は、抽出したデータについて円筒近似を行ない、円筒面の向き（水平面に対する近似円筒軸の角度）、およびカメラと当該円筒面との間の距離（撮影画像１０上の円筒面の１または複数の点に対応するカメラからの距離）を算出する。
【００５３】
測定対象に相当するデータの抽出方法としては、以下のような処理を用いることができる。
【００５４】
（１）データ抽出方法（その１）
例えば、図５に示すように、測定対象がバラ積みされているような場合を考える。配置検知部３０は、ステレオカメラで測定した被写体を示す３次元点群から、３次元点の各々について、その周辺にある３次元点との位置関係から法線ベクトルをそれぞれ算出する。すなわち、３次元点の各々についての法線ベクトルが算出される。配置検知部３０は、３次元点群のうち、カメラに最も近い３次元点を探索するとともに、その周辺の３次元点を抽出することで、カメラに最も近い３次元点およびその周辺の３次元点の各点についての法線ベクトルとステレオカメラの距離方向軸ベクトルとの間の角度をそれぞれ算出する。さらに、配置検知部３０は、角度が互いに同一とみなせる３次元点の数をカウントする。すなわち、法線ベクトルと距離方向軸ベクトルとの間の角度が互いに同一であるグループ毎にそれに含まれる３次元点の数がカウントされる。
【００５５】
続いて、配置検知部３０は、カウント数が最大となる角度のグループに属する３次元点を３次元点群から抽出し、抽出した３次元点に基づいて暫定的に平面近似を行なう。さらに、配置検知部３０は、算出した暫定的な近似平面に対する各３次元点の距離をそれぞれ算出し、近似平面から所定距離内にある３次元点群を、測定対象面を構成する３次元点群として抽出する。
【００５６】
最終的に、配置検知部３０は、測定対象面を構成する３次元点群として抽出した３次元点群について平面近似を行なうことで、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。
【００５７】
このような抽出処理によって、図５に示すように、カメラに最も近接しかつ面積が広い平面上に存在する３次元点が抽出され、ワーク４の測定対象面５が平面近似される。
【００５８】
（２）データ抽出方法（その２）
図６は、測定対象の配置状態の別の一例を示す模式図である。例えば、図６に示すように、ロボットアーム８で測定対象（ワーク４）を把持するような場合を考える。この場合、測定対象面はカメラに対してある程度決まった位置（距離）に存在することになるので、ステレオカメラで測定した３次元点群のうち、カメラに対して所定距離（図６の測定対象面抽出範囲）内に存在する３次元点を測定対象面に相当する３次元点であるとして抽出できる。すなわち、カメラ１から所定距離内に存在する画像中の点を示すデータが抽出される。配置検知部３０は、この抽出した３次元点について平面近似を行なうことで、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。
【００５９】
このような抽出処理によって、図６に示すように、カメラから所定距離内にある３次元点が抽出され、ワーク４の測定対象面５が平面近似される。
【００６０】
（３）データ抽出方法（その３）
例えば、測定対象とカメラとの相対位置がおおよそ決まっている場合を考える。この場合、撮影画像１０上でテンプレート画像に対応する被写体が写ると想定されている領域を予め設定しておく。配置検知部３０は、ステレオカメラで測定した３次元点群のうち、設定された領域に対応する３次元点群を抽出し、この抽出した３次元点について近似平面を行なうことで、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。すなわち、撮影画像１０において所定範囲内にある３次元点が抽出され、ワーク４の測定対象面５が平面近似される。
【００６１】
（４）データ抽出方法（その４）
例えば、撮影画像１０の画角いっぱいに測定対象が配置されると想定される場合を考える。図７は、本発明の実施の形態に従う配置検知部３０によるデータ抽出処理の一例を示す模式図である。
【００６２】
配置検知部３０は、図７（ａ）に示すように、ステレオカメラで測定した３次元点群のすべてを用いて平面近似を行ない、近似平面６に対する３次元点の各々の距離を算出する。このとき、測定された３次元点群のほとんどが測定対象面上の点であると考えられるが、例えば床面など、測定対象ではない面上の点が３次元点として測定されていることが考えられる。これにより、算出された近似平面６が実際の測定対象面に対してずれた結果となっていることも想定される。
【００６３】
そこで、配置検知部３０は、図７（ｂ）に示すように、近似平面６に対し、所定距離（図中ｄ）内に含まれる３次元点のみを測定対象面を構成する３次元点群として抽出する。この抽出した３次元点について近似平面を行なうことで、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。
【００６４】
すなわち、配置検知部３０は、ワーク４に相当する位置について、３次元点群の全体で近似平面６を推定した上で、近似平面に対して所定距離内にある３次元点を抽出する。画像全域にワーク４が写っているような場合では、範囲制限せずにこのような抽出処理を行なうことで、測定対象面に相当する箇所を特定できる。このようなデータ抽出処理により、測定対象面外の３次元点を排除でき、より精度の高い近似平面の推定ができる。
【００６５】
《ｄ２：レーザー測距装置》
図８は、配置検知部としてレーザー測距装置を用いた構成例を示す模式図である。上述のステレオカメラに代えて、図８に示すようなレーザー測距装置３−１，３−２，３−３を用いてもよい。具体的には、撮影部であるカメラ１の周辺に、複数（好ましくは、３つ以上）のレーザー測距装置３−１，３−２，３−３を配置する。このとき、レーザー測距装置３−１，３−２，３−３のカメラ１に対する相対位置は既知であり、レーザー測距装置３−１，３−２，３−３の測距方向は、カメラ１の光軸方向と平行になるように配置される。配置検知部３０は、レーザー測距装置３−１，３−２，３−３の各測距結果と、レーザー測距装置間の相対位置の情報とを用いて、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。図８に示す構成では、例えば、ワーク４の測定対象面５が測定される。
【００６６】
なお、配置検知部（レーザー測距装置３−１，３−２，３−３）は、カメラ１からワーク４までの距離も合わせて出力してもよい。このような情報を用いることで、カメラ１とワーク４との間の距離を取得でき、距離のずれに起因するスケールずれを算出できる。
【００６７】
《ｄ３：ミリ波レーダー測距装置》
図８に示すレーザー測距装置に代えて、ミリ波レーダー測距装置を用いてもよい。この場合も、ミリ波レーダー測距装置は、撮影部であるカメラ１に対して既知の相対位置に配置される。配置検知部３０は、ミリ波レーダー測距装置による測距結果を、当該既知の相対位置の情報を用いて変換することで、カメラで撮影される撮影画像１０の各ピクセル位置に関連付けることができ、この関連付けた情報に基づいて、測定対象面の近似平面を決定し、さらにこの近似平面の法線ベクトルからカメラに対する測定対象面の傾き（あおり角）を算出する。
【００６８】
［Ｅ．傾き補正部］
傾き補正部１５０は、配置検知部３０によって取得される、カメラに対する測定対象面の傾き（あおり角）に基づいて撮影画像１０を補正し、測定対象がカメラに対して正対した状態に相当する補正画像を生成する。
【００６９】
図９は、本発明の実施の形態に従う画像処理装置１００の傾き補正部１５０における処理内容を説明するための図である。図９を参照して、カメラから所定距離にある点（回転中心Ｏ）を通り、配置検知部３０によって検知された傾きをもつ仮想平面７を設定する。この回転中心Ｏの画像面内の位置は、画像中央に相当する位置である（Ｘ，Ｙ）＝（０，０）とし、Ｚ方向の距離Ｚ＝１（所定距離）とする。傾き補正部１５０は、撮影画像１０上の所定の点（例えば、画像の四隅、図９の点Ａ）に対応する仮想平面７上の３次元点を算出する。
【００７０】
そして、傾き補正部１５０は、仮想平面７の法線ベクトル向きをカメラ１の光軸方向（Ｚ方向）と一致させる回転行列を算出し、先に算出した仮想平面７上の点に対して、回転中心Ｏをその中心として算出した回転行列を適用する。傾き補正部１５０は、回転行列の適用により回転させた仮想平面７上の点を画像上に投影することで、傾き補正後の画像上の位置（図９の点Ｂ）を算出し、点Ａを点Ｂに変換させるHomography（変換行列）を決定する。
【００７１】
傾き補正部１５０は、このようにして決定されたHomographyを撮影画像１０に適用することで傾き補正画像１４を生成する。
【００７２】
なお、後述するように、テンプレートマッチングの結果をフィードバックする形での再補正も可能であるため、回転中心Ｏは画像中央に相当する位置に限られず、画像上の任意の点（ＸＹ位置）に設定できる。なお、基準点（受光面から焦点距離に対応する点）までの距離は所定値（例えば、Ｚ＝１）で固定することが好ましい。
【００７３】
［Ｆ．スケールずれ量算出部（スケール補正部）］
《ｆ１：スケールずれ》
上述の傾き補正において、回転中心がテンプレート画像１８に対応する位置として検出したい位置とは一致していない場合には、傾き補正画像１４において、テンプレート画像１８に対応する領域が拡大または縮小された状態になる。すなわち、テンプレート画像１８と傾き補正画像１４との間にスケールずれが生じる。スケールずれ量算出部１５４は、これを補正するためのスケールずれ量を算出する。
【００７４】
図１０は、本発明の実施の形態に従う画像処理装置１００の傾き補正の処理を説明するための模式図である。図１１は、図１０に示す処理に対応する処理結果の一例を示す図である。
【００７５】
図１０には、傾き補正時の回転中心（図中では●で示す）の違いによる傾き補正後の仮想平面位置を示す。具体的には、図１０には、３つの回転中心Ｏ１，Ｏ２，Ｏ３のそれぞれで撮影画像１０に対して傾き補正を行なった結果を示す。撮影画像１０上のテンプレート画像１８に対応するテンプレート相当領域９は、回転中心Ｏ１，Ｏ２，Ｏ３に関する傾き補正によって、それぞれ仮想空間上の仮想位置９−１，９−２，９−３に移動する。
【００７６】
このような傾き補正時の回転中心の違いによって、図１１に示すように傾き補正画像に相違が生じる。すなわち、仮想位置９−１，９−２，９−３への移動に伴って、カメラ１との仮想的な距離が変化するので、テンプレート位置として検出したい領域が拡大または縮小される。具体的には、図１１（ａ）には、撮影画像１０の一例を示し、図１１（ｂ）〜（ｄ）には、それぞれ仮想位置９−１，９−２，９−３に対応する傾き補正画像１４の一例を示す。図１０および図１１に示すように、傾き補正を行った仮想平面の位置のずれに起因して、傾き補正画像１４にスケールの違いが生じる。
【００７７】
《ｆ２：スケールずれ量算出》
スケールずれ量算出部１５４は、テンプレート画像１８の撮影時における配置検知部３０からの出力結果（テンプレート画像１８を生成するための測定対象の平面位置および向き：図２の配置状態１２の情報）と、テンプレート画像１８として設定した領域の撮影画像１０上の位置とから、測定対象面上でのテンプレート画像１８と対応する領域の３次元位置を算出する。そして、スケールずれ量算出部１５４は、この３次元位置から算出されるカメラ１と測定対象（ワーク４）との距離（Ｄｔ）と、ワーク４の撮影時に取得される配置検知部３０からの出力結果と、傾き補正時の回転中心の位置（例えば、画像中央に相当する位置）とから、スケールずれ量を算出する。
【００７８】
スケールずれ量算出部１５４は、回転中心の３次元位置から算出される傾き補正時の回転中心の位置とカメラ１との距離（Ｄｉ）を基準とした距離Ｄｔの比（Ｄｔ／Ｄｉ）を算出し、この算出された比をスケールずれ量として決定する。すなわち、スケールずれ量算出部１５４は、ワーク４のテンプレート画像１８に対応する位置の距離（テンプレート画像１８の撮影時に配置検知部３０で取得されたワーク４のテンプレート位置でのカメラ１とワーク４までの距離）と、傾き補正部１５０が傾き補正画像１４を生成する際に用いて回転中心に対応する位置の距離（ワーク４の撮影時に配置検知部３０で取得された傾き補正処理の回転中心の位置でのカメラ１とワーク４までの距離）とに基づいて、スケールずれ量を算出する。このような処理を採用することで、カメラ１とワーク４との間の距離ずれにより生じるスケールずれを補正でき、これによって、テンプレートマッチングを安定化できる。
【００７９】
《ｆ３：スケールずれ量算出の変形例１》
変形例として、傾き補正画像１４とテンプレート画像１８とに対してFourier-Mellin  Invariant法を適用して、スケールずれを算出してもよい（詳細は、Q.Chen  et  al.  "Symmetric  Phase-Only  Matched  Filtering  of  Fourier-Mellin  Transforms  for  Image  Registration  and  Recognition"（非特許文献１）を参照）。
【００８０】
このように、スケールずれ量算出部１５４は、Fourier-Mellin  invariantを用いて、スケールずれ量を算出する。テンプレートマッチング手法として、ＰＯＣ（Phase  Only  Correlation）などの周波数空間情報を用いる方法を採用する場合には、同じく周波数空間情報を用いるFourier-Mellin  invariant法と相性がよく、テンプレートマッチングをより安定化できる。
【００８１】
《ｆ４：スケールずれ量算出の変形例２》
別の変形例として、傾き補正画像１４とテンプレート画像１８との間で特徴点について対応付けを行なうことで、スケールずれ量を算出してもよい。
【００８２】
具体的には、スケールずれ量算出部１５４は、傾き補正画像１４およびテンプレート画像１８のそれぞれについて、Ｓｏｂｅｌフィルタ等を適用してエッジ点を抽出するとともに、コーナーなどの特徴点を抽出する。傾き補正画像１４から抽出された特徴点群をＰａと示し、テンプレート画像１８から抽出された特徴点群をＰｔと示す。続いて、スケールずれ量算出部１５４は、傾き補正画像１４およびテンプレート画像１８のそれぞれから抽出された特徴点について、ＳＩＦＴ（Scale-Invariant  Feature  Transform）特徴量などに基づいて対応付けを行なう。例えば、スケールずれ量算出部１５４は、互いに類似した特徴量を示す特徴点Ｐｔｉと特徴点Ｐａｉとを対応付ける。その上で、スケールずれ量算出部１５４は、それぞれの画像上における特徴点間の距離（例えば、傾き補正画像１４についての‖Ｐｔｉ−Ｐｔｊ‖、および、テンプレート画像１８についての‖Ｐａｉ−Ｐａｊ‖）を算出し、特徴点間の距離が所定値以上の組み合わせを抽出する。最終的に、スケールずれ量算出部１５４は、テンプレート画像１８上での特徴点間の距離と傾き補正画像１４上での特徴点間の距離との比（‖Ｐｔｉ−Ｐｔｊ‖／‖Ｐａｉ−Ｐａｊ‖）の平均値をスケールずれ量として決定する。
【００８３】
このように、スケール補正部１５２は、傾き補正画像１４およびテンプレート画像１８の双方に対して特徴点抽出処理を行ない、傾き補正画像１４およびテンプレート画像１８から特徴点をそれぞれ抽出するとともに、抽出した特徴点間の距離の比に基づいて、スケールずれ量を算出する。本変形例によれば、画像間の情報からスケールずれを算出できる。
【００８４】
《ｆ５：スケールずれ量算出の変形例３》
さらに別の変形例として、基準のテンプレート画像１８に対して異なる倍率変動を適用して複数のテンプレート画像を生成しておき、スケールずれ量算出部１５４は、これらのテンプレート画像と傾き補正画像１４との間で、テンプレートマッチングを行なう。このテンプレートマッチングには、例えばＳＡＤ（Sum  of  Absolute  Differences）法を用いることができる。そして、スケールずれ量算出部１５４は、テンプレートマッチングの結果、複数のテンプレート画像のうちＳＡＤ値が最小となるテンプレート画像に対応する倍率をスケールずれ量として決定する。
【００８５】
［Ｇ．スケール補正画像生成部（スケール補正部）］
スケール補正画像生成部１５６は、スケールずれ量算出部１５４によって算出されたスケールずれ量に基づいて、テンプレート画像１８のスケールと同等のスケールになるように、傾き補正画像１４からスケール補正画像１６を生成する。
【００８６】
［Ｈ．テンプレートマッチング部］
テンプレートマッチング部１５８は、スケール補正画像生成部１５６（スケール補正部１５２）によって生成されたスケール補正画像１６に対して、テンプレート画像１８を用いてテンプレートマッチングを行ない、スケール補正画像１６上のテンプレート画像１８に対応する位置を検出する。
【００８７】
上述したように、スケール補正画像１６は、測定対象面の傾き（あおり角）およびスケールのいずれもが補正されているので、基本的には、任意のテンプレートマッチング方法を適用できる。
【００８８】
例えば、テンプレートマッチング部１５８は、ＲＩＰＯＣ（Rotation  Invariant  Phase  Only  Correlation）法によるパターンマッチングを実行する。ＲＩＰＯＣ法を採用することで、スケール補正画像１６とテンプレート画像１８との間で回転方向のずれが存在していたとしても、高い精度でマッチング処理を実現できる。ＲＩＰＯＣのように画像の周波数成分を用いるパターンマッチングの方法がマッチング精度やロバスト性の点で好適である。なお、テンプレートマッチングに画像の周波数成分を用いる場合には、矩形のテンプレートを用いることが望ましい。
【００８９】
スケールずれ量算出部１５４がFourier-Mellin  Invariant法を適用してスケールずれ量を算出する場合には、回転方向のずれに関する情報も取得できる。このような場合には、例えば、テンプレート画像１８とスケール補正画像１６との間の回転方向のずれ量を補正した上で、ＰＯＣ（Phase  Only  Correlation）法やＳＡＤ（Sum  of  Absolute  Difference）法によるテンプレートマッチングを実行してもよい。特に、画像の周波数成分を用いるＰＯＣ法が好適である。
【００９０】
［Ｉ．結果出力部］
テンプレートマッチング部１５８によって検出される位置は、スケール補正画像１６上のテンプレート画像１８に対応する位置であるので、結果出力部１６０は、当該検出された位置から撮影画像１０上の位置を算出して出力する。結果出力部１６０は、スケール補正画像１６上での位置に対応する補正前画像（撮影画像１０）上での位置を算出する。本実施の形態においては、撮影画像１０を補正した上で、テンプレートマッチングを行なうので、補正前の画像上の位置に換算しないと、撮影画像１０上でのテンプレート対応位置を特定できない。
【００９１】
《ｉ１：補正前位置算出部》
補正前位置算出部１６２は、テンプレートマッチング部１５８によって取得されたスケール補正画像１６上での位置検出結果を補正前の画像位置に換算する。より具体的には、補正前位置算出部１６２は、スケール補正画像生成部１５６で適用されたスケール補正、および、傾き補正部１５０で適用されたHomographyをそれぞれ逆変換し、傾き補正部１５０に入力された撮影画像１０上での位置に換算する。
【００９２】
《ｉ２：３次元位置算出部》
３次元位置算出部１６４は、補正前位置算出部１６２によって取得された撮影画像１０上での位置（補正前画像上での位置）と、配置検知部３０によって取得された測距結果とに基づいて、撮影画像１０上での位置（補正前画像上での位置）に対応する３次元空間内での位置を算出する。例えば、３次元位置算出部１６４は、撮影画像１０上での位置に対応するステレオカメラでの測定の結果を採用して、３次元空間内での位置を決定する。
【００９３】
図１２は、本発明の実施の形態に従う画像処理装置１００の３次元位置算出の処理を説明するための模式図である。図１２（ａ）および図１２（ｂ）において、×印は、撮影画像１０上のテンプレート位置を示し、配置検知部３０によって決定された近似平面６上の３次元位置の計算結果を●印で示す。
【００９４】
図１２に示す例において、３次元位置算出部１６４は、撮影画像１０上での位置（図１２（ａ）の×印の位置）から算出される視線ベクトル１１（図１２（ｂ）参照）と配置検知部３０によって推定された近似平面６との交点として、３次元空間内での位置（図１２（ｂ）の●印の位置）を算出する。
【００９５】
このように、結果出力部１６０は、補正前画像（撮影画像１０）上での位置算出結果と、配置検知部３０の出力する情報とから、測定対象の３次元位置を算出する。このように、測定対象面と補正前画像上での位置とがあれば、視線と平面の交点としてテンプレート位置に相当する３次元位置を算出できる。さらに、配置検知部３０としてステレオカメラを採用した場合には、補正前画像上での位置に対応する３次元測定結果を取得することで、テンプレート位置に相当する３次元位置を決定できる。
【００９６】
［Ｊ．その他の機能構成］
《ｊ１：変形例１》
図１３は、本発明の実施の形態に従う画像処理装置１００の機能構成の変形例１を示す模式図である。図１３を参照して、本変形例に従う画像処理装置１００は、その機能構成として、配置検知部３０と、傾き補正部１５０と、スケール補正部１５２Ａと、テンプレートマッチング部１５８と、結果出力部１６０Ａとを含む。これらの機能構成は、典型的には、図２に示す画像処理装置１００において、ＣＰＵ１０２がテンプレートマッチング処理プログラム１１２を実行することで実現される。
【００９７】
図１３に示す機能構成は、図３に示す機能構成と比較して、スケール補正部１５２Ａ（スケールずれ量算出部１５４Ａおよびスケール補正画像生成部１５６Ａ）および結果出力部１６０Ａ（補正前位置算出部１６２Ａおよび３次元位置算出部１６４Ａ）において、配置検知部３０により検知された配置状態１２の情報を用いない点が異なっている。すなわち、スケール補正部１５２Ａは、傾き補正画像１４とテンプレート画像１８および距離情報２０とに基づいて、スケールずれ量を算出する。また、結果出力部１６０Ａは、テンプレートマッチング部１５８による位置検出結果に基づいて位置算出結果を出力する。このとき、スケール補正部１５２Ａおよび結果出力部１６０Ａは、Fourier-Mellin  Invariant法を用いる。
【００９８】
《ｊ２：変形例２》
撮影画像１０およびテンプレート画像１８のいずれについても、カメラ１に対して正対していない状態で撮影された場合には、以下に示すような構成を採用してもよい。すなわち、撮影画像１０およびテンプレート画像１８のいずれについても、傾き補正およびスケールずれ補正を行なった上で、テンプレートマッチングを行なうことで、マッチング精度を高めることができる。
【００９９】
図１４は、本発明の実施の形態に従う画像処理装置１００の機能構成の変形例２を示す模式図である。図１４を参照して、本変形例に従う画像処理装置１００は、その機能構成として、配置検知部３０と、傾き補正部１５０Ｂと、スケール補正部１５２Ｂ（スケールずれ量算出部１５４Ｂおよびスケール補正画像生成部１５６Ｂ）と、テンプレートマッチング部１５８Ｂと、結果出力部１６０Ｂ（補正前位置算出部１６２Ｂおよび３次元位置算出部１６４Ｂ）とを含む。これらの機能構成は、典型的には、図２に示す画像処理装置１００において、ＣＰＵ１０２がテンプレートマッチング処理プログラム１１２を実行することで実現される。
【０１００】
具体的には、傾き補正部１５０Ｂは、配置検知部３０により検知された配置状態１２の情報に基づいて撮影画像１０を補正することで傾き補正画像１４を生成するとともに、距離情報２０に基づいてテンプレート画像１８を補正することで傾き補正テンプレート画像２４を生成する。スケール補正部１５２Ｂは、傾き補正画像１４および傾き補正テンプレート画像２４に対して、算出されるスケールずれ量に基づいてスケール補正を行なうことで、スケール補正画像１６およびスケール補正テンプレート画像２６を生成する。テンプレートマッチング部１５８Ｂは、スケール補正画像１６とスケール補正テンプレート画像２６とを用いてテンプレートマッチングを実行する。結果出力部１６０Ｂは、テンプレートマッチング部１５８Ｂによる位置検出結果から位置算出結果を出力する。
【０１０１】
このように、本変形例に従う画像処理装置１００は、スケール補正画像１６の生成と並行して、テンプレート画像１８を補正するテンプレート補正部（スケール補正部１５２Ｂ）を有している。このように、本変形例では、スケール補正画像１６の生成時に、テンプレート画像１８も併せて補正する。これによって、登録されているテンプレート画像１８がカメラ１に対して傾いていたとしても、テンプレート画像１８を補正することで、より安定したテンプレートマッチングが実現できる。
【０１０２】
《ｊ３：変形例３》
図１０を参照して説明したように、傾き補正処理においては、回転中心の位置とテンプレート位置とを一致させることが好ましい。これは、傾き補正処理の回転中心の位置がテンプレート位置とずれている場合、生成される傾き補正画像１４上のテンプレート位置において拡大または縮小が発生することになり、これにより情報量の減少が懸念されるためである。そこで、テンプレートマッチング後に、テンプレートマッチングによって取得したテンプレート位置を傾き補正処理の回転中心の位置として用いて、傾き補正処理およびテンプレートマッチングを再度実行し、この結果に基づいて位置算出結果を出力するようにしてもよい。このような構成を採用することで、テンプレート位置を回転中心の位置として傾き補正を実行できる。これによって、傾き補正による情報量の減少を回避することができ、より高精度なテンプレートマッチング結果を取得できる。
【０１０３】
図１５は、本発明の実施の形態に従う画像処理装置１００の機能構成の変形例３を示す模式図である。図１５を参照して、本変形例に従う画像処理装置１００は、配置検知部３０と、傾き補正部１５０と、スケール補正部１５２Ａ（スケールずれ量算出部１５４Ａおよびスケール補正画像生成部１５６Ａ）と、テンプレートマッチング部１５８と、補正前位置算出部１６２と、傾き補正部１５０Ｃと、スケール補正部１５２Ｃ（スケールずれ量算出部１５４Ｃおよびスケール補正画像生成部１５６Ｃ）と、テンプレートマッチング部１５８Ｃと、結果出力部１６０Ｃ（補正前位置算出部１６２Ｃおよび３次元位置算出部１６４Ｃ）とを含む。これらの機能構成は、典型的には、図２に示す画像処理装置１００において、ＣＰＵ１０２がテンプレートマッチング処理プログラム１１２を実行することで実現される。
【０１０４】
図１５において、配置検知部３０、傾き補正部１５０、スケール補正部１５２Ａ、テンプレートマッチング部１５８、および、補正前位置算出部１６２は、前処理に相当する部分であり、撮影画像１０上のテンプレート画像１８に対応する位置（テンプレート位置）を暫定的に算出する。このとき、スケール補正部１５２Ａおよび補正前位置算出部１６２Ａは、Fourier-Mellin  Invariant法を用いる。
【０１０５】
続いて、傾き補正部１５０Ｃは、算出したテンプレート位置を回転中心として傾き補正を行なうことで、傾き補正画像１４Ｃを生成する。スケール補正部１５２Ｃは、傾き補正画像１４Ｃに対してスケール補正を行なうことでスケール補正画像を生成する。テンプレートマッチング部１５８Ｃは、スケール補正画像に対してテンプレートマッチングを実行する。結果出力部１６０Ｃは、テンプレートマッチング部１５８Ｃによる位置検出結果から位置算出結果を出力する。
【０１０６】
このように、本変形例に従う画像処理装置１００は、ワーク４を撮影して得られる撮影画像１０に対して補正を行ない、テンプレートマッチング結果として得られた位置を、撮影画像１０上での位置に変換したものを新たな傾き補正時の回転中心の位置に設定し、この設定した回転中心に基づいて、撮影画像１０を再度傾き補正して傾き補正画像１４Ｃを生成し、再びテンプレートマッチングを行った結果を最終的なテンプレートマッチング結果として出力する。
【０１０７】
すなわち、補正前位置算出部１６２Ａは、前処理として、傾き補正部１５０およびスケール補正部１５２Ａによって生成されたスケール補正画像１６に対してテンプレート画像１８を用いたテンプレートマッチングを行なうことで、撮影画像１０上のテンプレート画像１８に対応する位置を決定する。そして、傾き補正部１５０Ｃは、前処理において決定された撮影画像１０上のテンプレート画像１８に対応する位置を中心として、撮影画像１０を補正することで傾き補正画像１４Ｃを生成する。スケール補正部１５２Ｃは、傾き補正部１５０Ｃによって生成された傾き補正画像１４Ｃに対して、スケール補正を行なうことでスケール補正画像１６Ｃを生成する。テンプレートマッチング部１５８Ｃは、本処理として、スケール補正画像１６Ｃに対してテンプレート画像１８を用いたテンプレートマッチングを行なうことで、撮影画像１０上のテンプレート画像１８に対応する位置を決定する。
【０１０８】
傾き補正時にテンプレート画像１８に対応する位置と、傾き補正時の回転中心位置とが離れていると、テンプレート画像１８に対応する傾き補正画像１４は拡大または縮小された形になるため、情報が失われる可能性もある。テンプレート位置の周辺を中心として、傾き補正を行なうことで情報が失われることを回避できる。より高精度なテンプレート位置検出結果を取得できる。
【０１０９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１０】
１，２  カメラ、１Ａ，１Ｂ  画像処理システム、３  測距装置、４  ワーク、５  測定対象面、６  近似平面、７  仮想平面、８  ロボットアーム、１０  撮影画像、１２  配置状態、１４  傾き補正画像、１６，１６Ｃ  スケール補正画像、１８  テンプレート画像、２０  距離情報、２４  傾き補正テンプレート画像、２６  スケール補正テンプレート画像、３０  配置検知部、１００  画像処理装置、１０２  ＣＰＵ、１０４  ＲＡＭ、１０６  ＲＯＭ、１０８  ネットワークインターフェイス、１１０  補助記憶装置、１１２  テンプレートマッチング処理プログラム、１２０  表示部、１２２  入力部、１２４  メモリーカードインターフェイス、１２６  メモリーカード、１２８  カメラインターフェイス、１３０  バス、１３２  センサーインターフェイス、１５０，１５０Ｂ，１５０Ｃ  傾き補正部、１５２，１５２Ａ，１５２Ｂ，１５２Ｃ  スケール補正部、１５４，１５４Ａ，１５４Ｂ，１５４Ｃ  スケールずれ量算出部、１５６，１５６Ａ，１５６Ｂ，１５６Ｃ  スケール補正画像生成部、１５８，１５８Ｂ，１５８Ｃ  テンプレートマッチング部、１６０，１６０Ａ，１６０Ｂ，１６０Ｃ  結果出力部、１６２，１６２Ａ，１６２Ｂ，１６２Ｃ  前位置算出部、１６４，１６４Ａ，１６４Ｂ，１６４Ｃ  ３次元位置算出部。
【図１】
2014061372.tif 000003
【図２】
2014061372.tif 000004
【図３】
2014061372.tif 000005
【図４】
2014061372.tif 000006
【図５】
2014061372.tif 000007
【図６】
2014061372.tif 000008
【図７】
2014061372.tif 000009
【図８】
2014061372.tif 000010
【図９】
2014061372.tif 000011
【図１０】
2014061372.tif 000012
【図１１】
2014061372.tif 000013
【図１２】
2014061372.tif 000014
【図１３】
2014061372.tif 000015
【図１４】
2014061372.tif 000016
【図１５】
2014061372.tif 000017
【国際調査報告】
2014061372.tif 000018
2014061372.tif 000019
2014061372.tif 000020
2014061372.tif 000021