(57)【要約】【課題】作業対象物が撮像されたボケ画像から作業対象物の位置を検出する。【解決手段】作業対象物Ｗが撮像されたボケ画像Ｂから前記作業対象物Ｗの位置を検出する位置検出方法であって、前記作業対象物Ｗのモデルに第１のアフィン変換係数Ａ０でアフィン変換を施し仮定元画像Ｐを生成する仮定元画像生成工程Ｓ２と、ボケ特性を示す点拡散係数を求める点拡散係数算出工程Ｓ４と、前記仮定元画像Ｐに前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像Ｂａを生成する合成ボケ画像生成工程Ｓ３と、前記合成ボケ画像Ｂａと前記ボケ画像Ｂとを比較する画像比較工程Ｓ７と、比較され抽出された差異により前記第１のアフィン変換係数Ａ０を修正して第２のアフィン変換係数Ａ１を求めるアフィン変換係数修正工程Ｓ８と、前記第２のアフィン変換係数Ａ１より前記作業対象物Ｗの位置を検出する位置検出工程Ｓ１０とを有する。【選択図】図４
2010133718.tif 000002
【特許請求の範囲】
【請求項１】
作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出方法であって、
前記作業対象物のモデルに対して、第１のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成工程と、
ボケの特性を示す点拡散係数を求める点拡散係数算出工程と、
前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成工程と、
生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較工程と、
前記画像比較工程で抽出された差異に基づいて、前記第１のアフィン変換係数を修正して第２のアフィン変換係数を求めるアフィン変換係数修正工程と、
修正された前記第２のアフィン変換係数により、前記作業対象物の位置を検出する位置検出工程と、を有することを特徴とする作業対象物の位置検出方法。
【請求項２】
前記アフィン変換係数修正工程で修正された前記第２のアフィン変換係数により、前記仮定元画像を更新する仮定元画像更新工程を有し、
前記合成ボケ画像生成工程において、更新された前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い第２の合成ボケ画像を生成し、
前記画像比較工程において、前記第２の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、
前記アフィン変換係数修正工程において、前記画像比較工程で抽出された差異に基づいて前記第２のアフィン変換係数の修正値を求め、
前記第２のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする請求項１に記載の作業対象物の位置検出方法。
【請求項３】
前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心および前記ボケ画像に示される前記作業対象物の重心を推定し、前記重心同士間の相対位置を比較して、
前記位置検出工程において、前記重心同士間の相対位置から平行移動量を推定することを特徴とする請求項１または２に記載の作業対象物の位置検出方法。
【請求項４】
前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心からのモーメントおよび前記ボケ画像に示される前記作業対象物の重心からのモーメントを推定し、前記合成ボケ画像の前記モーメントの分布と前記ボケ画像の前記モーメントの分布とを比較して、
前記位置検出工程において、前記モーメントの分布位置の違いから回転量を推定することを特徴とする請求項１乃至３のいずれか一項に記載の作業対象物の位置検出方法。
【請求項５】
前記モデルは、前記モデルを撮像したモデル画像もしくは前記モデルを構成するデータであるモデルデータであることを特徴とする請求項１乃至４のいずれか一項に記載の作業対象物の位置検出方法。
【請求項６】
前記モデル画像もしくは前記モデルデータを格納するモデル格納手段を備え、前記モデル格納手段には、前記モデルの背景となる背景画像を格納して、
前記仮定元画像生成工程もしくは前記仮定元画像更新工程において、アフィン変換を施した前記モデルと前記背景画像とを合成して前記仮定元画像を作成することを特徴とする請求項１乃至５のいずれか一項に記載の作業対象物の位置検出方法。
【請求項７】
作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出装置であって、
前記作業対象物のモデルに対して、第１のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成部と、
ボケの特性を示す点拡散係数を求める点拡散係数算出部と、
前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成部と、
生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較部と、
前記画像比較部で抽出された差異に基づいて、前記第１のアフィン変換係数を修正して第２のアフィン変換係数を求めるアフィン変換係数修正部と、
修正された前記第２のアフィン変換係数により、前記作業対象物の位置を検出する位置検出部と、を備えることを特徴とする作業対象物の位置検出装置。
【請求項８】
前記アフィン変換係数修正部で修正された前記第２のアフィン変換係数により、前記仮定元画像を更新する仮定元画像更新部を有し、
前記合成ボケ画像生成部において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第２の合成ボケ画像を生成し、
前記画像比較部において、前記第２の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、
前記アフィン変換係数修正部において、前記画像比較部で抽出された差異に基づいて前記第２のアフィン変換係数の修正値を求め、
前記第２のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする請求項７に記載の作業対象物の位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業対象物の位置を検出する作業対象物の位置検出方法および位置検出装置に関する。
【背景技術】
【０００２】
各種生産現場において、作業の自動化や省力化のため産業用ロボットが多用されている。このような産業用ロボットは、カメラなどの撮像機器を備え作業対象物を撮像し、撮像された画像を画像処理して作業対象物の位置を検出する。作業対象物と撮像機器とが相対的に動いている場合は、撮像された画像に動きボケが発生する。近年、産業用ロボットによる作業の高速化や高度化に伴い、高精度な位置決めが求められている。そのため、撮像された画像における動きボケの補正が重要になっている。
【０００３】
このような動きボケの補正方法としては、どのようにボケているかを推定し、画像に対してその逆特性を演算することにより、ボケていない画像を復元する方法がある。その方法の例として、移動物の動きに関する情報を撮像機器に設けられた加速度センサで検出し、検出した情報に基づいて動きによるボケの特性を示す点拡散関数（ＰＳＦ：Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ）を求める。そして、この点拡散関数を用いてフーリエ変換、逆フーリエ変換などの演算処理を行いボケ補正、すなわち、ボケ画像から元画像を復元する方法が知られている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００８−１６５６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の方法では、フーリエ変換、逆フーリエ変換が必要とされ、これらは非常に大きな演算量を必要とされる。また、フーリエ変換、逆フーリエ変換を精度良く行うためには、高い演算精度が求められる。そのため、演算処理に多大な時間を要してしまうという課題がある。
【０００６】
また、撮像機器による画像撮像時に画像に撮像素子から発生するノイズなどが重畳される場合がある。多くの場合、このようなノイズは白色ノイズに近いと考えられる。上記の方法は、元画像を復元する演算の過程において、点拡散関数のフーリエ変換の逆数を用いる。そのため、点拡散関数のフーリエ変換に０、あるいは非常に小さい値がある場合、画像に含まれるノイズが非常に小さなものであるとしても、それが大きく拡大されてしまうことになる。つまりノイズの影響が大きくなり、復元される元画像の正確性が損なわれる可能性がある。すなわち、ノイズ等の影響を受けやすいという課題がある。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００８】
（適用例１）作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出方法であって、前記作業対象物のモデルに対して、第１のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成工程と、ボケの特性を示す点拡散係数を求める点拡散係数算出工程と、前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成工程と、生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較工程と、前記画像比較工程で抽出された差異に基づいて前記第１のアフィン変換係数を修正して第２のアフィン変換係数を求めるアフィン変換係数修正工程と、修正された前記第２のアフィン変換係数により、前記作業対象物の位置を検出する位置検出工程と、を有することを特徴とする作業対象物の位置検出方法。
【０００９】
この方法によれば、作業対象物および基本配置等を示すモデルに対して、平行移動、回転、拡大縮小等の任意の係数（第１のアフィン変換係数）でアフィン変換を行い仮定元画像を生成して、さらに、撮像して得られるボケ画像のボケ特性に近い点拡散係数の畳み込み演算を行い、作業対象物の合成ボケ画像を生成することができる。そして、撮像して得られる作業対象物の実際のボケ画像と上記の作業対象物の合成ボケ画像とを比較して位置的な差異を抽出することができる。その位置的な差異を、合成ボケ画像の元画像である仮定元画像を生成したときのアフィン変換の係数（第１のアフィン変換係数）の修正値（第２のアフィン変換係数）として表すことができる。なお、アフィン変換係数とは、特定の物体を平行移動させる平行移動量、回転させる回転量、および拡大縮小させる倍率等を示すことができる係数である。そのため、作業対象物のモデルの基本配置からの平行移動量、回転量および拡大縮小倍率等を知ることができ、作業対象物の位置を知ることができる。
【００１０】
この方法では、演算量の多いフーリエ変換や逆フーリエ変換を用いず、アフィン変換操作と点拡散係数との畳み込み演算で作業対象物の位置を知ることができる。そのため、フーリエ変換や逆フーリエ変換を必要とする方法と比較して、演算量を少なくすることができる。また、長いデータ長さの積和演算を必要とするフーリエ変換や逆フーリエ変換のような高い演算精度を必要としない。従って、演算処理に要する時間を低減することができるとともに、より容易に作業対象物の位置を検出することができる。また、この方法では、点拡散係数のフーリエ変換の逆数を用いない。すなわち、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を小さくすることができる。
【００１１】
（適用例２）前記アフィン変換係数修正工程で修正された前記第２のアフィン変換係数により前記仮定元画像を更新する仮定元画像更新工程を有し、前記合成ボケ画像生成工程において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第２の合成ボケ画像を生成し、前記画像比較工程において、前記第２の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、前記アフィン変換係数修正工程において、前記画像比較工程で抽出された差異に基づいて前記第２のアフィン変換係数の修正値を求め、前記第２のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする上記の作業対象物の位置検出方法。
【００１２】
この方法によれば、合成ボケ画像と撮像されたボケ画像との画像比較を、用いられるアフィン変換係数（修正値）が所定の値以下になるまで繰り返し行うことができる。すなわち、繰り返し処理により、逐次的に推定される位置検出精度を改善することが可能である。
【００１３】
（適用例３）前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心および前記ボケ画像に示される前記作業対象物の重心を推定し、前記重心同士間の相対位置を比較して、前記位置検出工程において、前記重心同士間の相対位置から平行移動量を推定することを特徴とする上記の作業対象物の位置検出方法。
【００１４】
この方法によれば、合成ボケ画像に示される作業対象物の重心および撮像されたボケ画像に示される作業対象物の重心を推定して、推定された重心の位置および重心同士間の距離を推定することができる。そのため、双方の作業対象物を重ね合わせるのに必要な平行移動量、回転量を推定することができる。その結果、平行移動に関するアフィン変換係数の修正値を知ることができる。
【００１５】
（適用例４）前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心からのモーメントおよび前記ボケ画像に示される前記作業対象物の重心からのモーメントを推定し、前記合成ボケ画像の前記モーメントの分布と前記ボケ画像の前記モーメントの分布とを比較して、前記位置検出工程において、前記モーメントの分布位置の違いから回転量を推定することを特徴とする上記の作業対象物の位置検出方法。
【００１６】
この方法によれば、合成ボケ画像に示される作業対象物および撮像されたボケ画像に示される作業対象物に対して、推定された重心回りのモーメントの分布を求めることができる。そして、それぞれの作業対象物における重心回りのモーメントの分布の違いを推定して、双方の作業対象物を重ね合わせるのに必要な回転量を推定することができる。そのため、回転に関するアフィン変換係数の修正値を知ることができる。
【００１７】
（適用例５）前記モデルは、前記モデルを撮像したモデル画像もしくは前記モデルを構成するデータであるモデルデータであることを特徴とする上記の作業対象物の位置検出方法。
【００１８】
この方法によれば、モデルとして実際に撮像されたモデル画像やＣＡＤ／ＣＡＭデータ等のモデルデータのいずれかを仮定元画像のベースとして使用することができる。
【００１９】
（適用例６）前記モデル画像もしくは前記モデルデータを格納するモデル格納手段を備え、前記モデル格納手段には、前記モデルの背景となる背景画像を格納して、前記仮定元画像生成工程もしくは前記仮定元画像更新工程において、アフィン変換を施した前記モデルと前記背景画像とを合成して前記仮定元画像を作成することを特徴とする上記の作業対象物の位置検出方法。
【００２０】
この方法によれば、背景画像の明度等を調整することにより、作業対象物をより鮮明に表すことができる。また、実際に撮像されるボケ画像の背景と同じ背景に合わせることができる。その結果、作業対象物を認識しやすくなり、画像比較工程での比較処理を容易に行うことができる。
【００２１】
（適用例７）作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出装置であって、前記作業対象物のモデルに対して第１のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成部と、ボケの特性を示す点拡散係数を求める点拡散係数算出部と、前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い、前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成部と、生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較部と、前記画像比較部で抽出された差異に基づいて前記第１のアフィン変換係数を修正して第２のアフィン変換係数を求めるアフィン変換係数修正部と、修正された前記第２のアフィン変換係数より前記作業対象物の位置を検出する位置検出部と、を備えることを特徴とする作業対象物の位置検出装置。
【００２２】
この装置によれば、作業対象物および基本配置等を示すモデルに対して、平行移動、回転、拡大縮小等の任意の係数（第１のアフィン変換係数）でアフィン変換を行い仮定元画像を生成して、さらに、撮像して得られるボケ画像のボケ特性に近い点拡散係数の畳み込み演算を行い、作業対象物の合成ボケ画像を生成することができる。そして、撮像して得られる作業対象物の実際のボケ画像と上記の作業対象物の合成ボケ画像とを比較して位置的な差異を抽出することができる。その位置的な差異を、合成ボケ画像の元画像である仮定元画像を生成したときのアフィン変換の係数（第１のアフィン変換係数）の修正値（第２のアフィン変換係数）として表すことができる。なお、アフィン変換係数とは、特定の物体を平行移動させる平行移動量、回転させる回転量、および拡大縮小させる倍率等を示すことができる係数である。そのため、作業対象物のモデルの基本配置からの平行移動量、回転量および拡大縮小倍率等を知ることができ、作業対象物の位置を知ることができる。
【００２３】
この装置において、演算量の多いフーリエ変換や逆フーリエ変換を用いず、アフィン変換操作と点拡散係数との畳み込み演算で作業対象物の位置を知ることができる。そのため、フーリエ変換や逆フーリエ変換を必要とする方法と比較して、演算量を少なくすることができる。また、長いデータ長さの積和演算を必要とするフーリエ変換や逆フーリエ変換のような高い演算精度を必要としない。従って、演算処理に要する計算時間を低減することができるとともに、より容易に作業対象物の位置を検出することができる。また、この方法では、点拡散係数のフーリエ変換の逆数を用いない。すなわち、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を小さくすることができる。
【００２４】
（適用例８）前記アフィン変換係数修正部で修正された前記第２のアフィン変換係数により前記仮定元画像を更新する仮定元画像更新部を有し、前記合成ボケ画像生成部において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第２の合成ボケ画像を生成し、前記画像比較部において、前記第２の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、前記アフィン変換係数修正部において、前記画像比較部で抽出された差異に基づいて前記第２のアフィン変換係数の修正値を求め、前記第２のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする上記の作業対象物の位置検出装置。
【００２５】
この装置によれば、合成ボケ画像と撮像されたボケ画像との画像比較を、用いられるアフィン変換係数（修正値）が所定の値以下になるまで繰り返し行うことができる。すなわち、繰り返し処理により、逐次的に推定される位置検出精度を改善することが可能である。
【発明を実施するための最良の形態】
【００２６】
（位置検出装置について）
本発明の作業対象物の位置検出方法を適用した作業対象物の位置検出装置について、図１を参照して説明する。図１は、位置検出装置の構成例を示す図である。
【００２７】
図１に示すように、位置検出装置１は、ロボット１０と制御部５０とを備える。ロボット１０は、いわゆる多関節型ロボットであり、ベース２５とアーム１７Ａ，１７Ｂと、ロボットハンド１９を含む手首部１８と、それぞれを回動自在に支持する関節部である第１軸１２と第２軸１４と第３軸１６と、撮像機器としてのカメラ２０とから構成されている。
【００２８】
ロボット１０は、設置面にベース２５により設置される。ベース２５は、第１回転軸１１を備え、ベース２５より上方のロボット１０本体を設置面との鉛直軸を中心に回転させることができる。ベース２５には、第１軸１２を介してアーム１７Ａが回動自在に取り付けられている。アーム１７Ａは、第２回転軸１３を備え、アーム１７Ａ自身が軸方向に回転することができる。アーム１７Ａには、第２軸１４を介してアーム１７Ｂが回動自在に取り付けられている。アーム１７Ｂは、第３回転軸１５を備え、アーム１７Ｂ自身が軸方向に回転することができる。アーム１７Ｂには、第３軸１６を介して手首部１８が回動自在に取り付けられている。
【００２９】
手首部１８の先端にはロボットハンド１９が設けられ、作業対象物としてのワークＷに作業を施す。また、手首部１８の先端部にはカメラ２０が装着されている。カメラ２０は、いわばロボット１０の眼として機能するものであり、例えば、ＣＣＤのような撮像素子によりロボットハンド１９が作業する方向を撮像する。
【００３０】
これらの第１〜３軸１２，１４，１６、第１〜３回転軸１１，１３，１５およびロボットハンド１９は、図示しないモータや空圧機器等により動作する複数の図示しないアクチュエータの駆動により回動するように構成されている。複数のアクチュエータは、制御部５０からケーブル８５を介して送られる制御信号に基づいて駆動するように構成されている。また、カメラ２０は所定の露出時間でワークＷ等を撮像し、撮像した画像信号はケーブル８６を介して制御部５０に送られる。
【００３１】
制御部５０は、少なくとも、画像処理装置３０と、記憶装置４０と、コンピュータ６０とから構成されている。画像処理装置３０は、少なくとも、画像入力部３１と、画像生成部３２と、画像比較処理部３３と、位置検出部３４とを備える。記憶装置４０は、少なくとも、モデル格納部４２と、検出結果格納部４４とを備える。画像生成部３２は、仮定元画像生成部３６と、仮定元画像更新部３７と、合成ボケ画像生成部３８と、点拡散係数（ＰＳＦ）算出部４６とを有する。画像比較処理部３３は、画像比較部４７と、アフィン変換係数修正部４８とを有する。
【００３２】
コンピュータ６０は、中央処理装置として機能し、図示しないＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、シーケンサおよびロボットコントローラ等からなるハードウェア資源と、ＲＯＭやＨＤＤ等に記憶された種々のソフトウェアとを有機的に協働させることにより、ロボット１０、画像処理装置３０、および記憶装置４０等を総括的に制御するものである。制御部５０の動作については後述する。
【００３３】
（ロボットの作業について）
上述のロボット１０の作業について、図１、図２および図３を参照して説明する。図２は、ワークの例を示す図であり、図３は、カメラで撮像されたワークの画像を示す図である。
【００３４】
ロボット１０は、図１に示すベルトコンベア５により矢印Ｃ方向に搬送される作業対象物としてのワークＷに対して、作業を実施する。本実施形態では、生産効率向上、設備の汎用化および簡素化のため、ワークＷの整列装置や位置決め装置を設けていない。そのため、ワークＷは、ランダムな順番および姿勢で搬送され、それぞれに固有の作業が実施される。そのため、ロボット１０は、作業を実施するワークＷの位置や姿勢を検出する必要がある。従って、ロボット１０は、図１に示すカメラ２０を用いて、ベルトコンベア５上を搬送されるワークＷｉ（ｉはワークＷの種類を表す自然数）を撮像してワークＷｉの位置検出を行う。
【００３５】
図２（ａ），（ｂ）に示すように、本実施形態では、ワークＷｉとして、例えば、２種類のワークＷ１，Ｗ２が用いられる。図２（ａ）に示すワークＷ１は、例えば、２つの長方形の板が直角に配置されるような、いわゆる「くの字」状の形状に形成され、それぞれの長方形の部分には２つの貫通穴が設けられている。図２（ｂ）に示すワークＷ２は、例えば、長方形の板状に形成され、平面には４つの貫通穴が設けられている。
【００３６】
これらのワークＷ１，Ｗ２は、ランダムな順番および姿勢で図１に示すベルトコンベア５により搬送され、ロボット１０の作業場所に到達する。例えば、図２（ｃ）に示すようなレイアウトで、ワークＷ１，Ｗ２がベルトコンベア５上に置かれ搬送されているとする。ワークＷ１およびワークＷ２の位置を検出するため、ロボット１０の手首部１８の先端部に設けられたカメラ２０を用いて、ベルトコンベア５上のワークＷ１およびワークＷ２を撮像する。このとき、ロボット１０の手首部１８の動きを静止させるか、ワークＷ１およびワークＷ２を静止、すなわちベルトコンベア５を動きを静止させることが好ましい。ところが、このような方法では作業や移動動作が中断されてしまい、作業効率が著しく低下する。そのため、一般には、双方が移動動作を行っている状態で撮像する。
【００３７】
そのため、図３に示すように、撮像された画像は、ワークＷ１およびワークＷ２の画像が動きボケを含んだ、いわゆるボケ画像Ｂｉ（ｉは対象のワークＷの種類を表す自然数）となってしまう場合が多い。そのままでは、ワークＷ１およびワークＷ２の位置を検出することができない。そのため、何らかの画像処理が必要である。従来の方法の一例として、ボケ画像がどのようにボケているかを推定し、ボケ画像に対してその逆特性を演算することにより、ボケていない元画像を復元する方法がある。ここで、本実施形態の位置検出方法との差異を明らかにするために、この方法を簡単に説明する。
【００３８】
従来の方法において、画像のボケは、下記の式（１）のようにモデル化される。この式（１）で示すように、元画像をＩｍａｇｅ、ボケ画像をＢｌｕｒ、画像がどのようにボケているのかを表すパラメーターである点拡散関数をＰＳＦとすると、ボケ画像（Ｂｌｕｒ）は点拡散関数（ＰＳＦ）と元画像（Ｉｍａｇｅ）との畳み込み演算で与えられる。点拡散関数（ＰＳＦ）は、名前のとおり、本来１点であるデータが、どのように拡がっているのかを表す関数である。
【００３９】
【数１】
2010133718.tif 000003
【００４０】
ここで、下記の式（２），（３），（４）のように、関数ｆに対するフーリエ変換操作をＦ［ｆ］と表すと、元画像（Ｉｍａｇｅ）のフーリエ変換はｉｍａｇｅ、ボケ画像（Ｂｌｕｒ）のフーリエ変換はｂｌｕｒ、点拡散関数（ＰＳＦ）のフーリエ変換はｐｓｆと表すことができる。畳み込み演算は、フーリエ変換により単なる乗算に変換されるため、式（１）のは下記の式（５）に変換される。
【００４１】
【数２】
2010133718.tif 000004
【００４２】
【数３】
2010133718.tif 000005
【００４３】
下記の式（６）のように、元画像のフーリエ変換（ｉｍａｇｅ）は、点拡散関数（ＰＳＦ）のフーリエ変換である（ｐｓｆ）の逆数と、ボケ画像（Ｂｌｕｒ）のフーリエ変換である（ｂｌｕｒ）との積により得られる。関数ｆの逆フーリエ変換操作をＩＦ［ｆ］とすると、ボケの無い元画像（Ｉｍａｇｅ）は、式（６）で得られた元画像のフーリエ変換（ｉｍａｇｅ）を、式（７）のように逆フーリエ変換することにより得られる。
【００４４】
【数４】
2010133718.tif 000006
【００４５】
【数５】
2010133718.tif 000007
【００４６】
上述のような演算処理は、数学的処理としては単純なものであり、その一例として、ウィーナフィルタ処理などがある。しかし、実用上、この方法には大きな課題がある。繰り返しになるが、この方法はフーリエ変換、逆フーリエ変換が必要とされ、これらは非常に大きな演算量を必要とされる。また、フーリエ変換、逆フーリエ変換を精度良く行うためには、高い演算精度が求められる。また、図１に示すカメラ２０による画像撮像時に画像に撮像素子から発生するノイズなどが重畳される場合がある。上記の方法は、元画像（Ｉｍａｇｅ）を復元する演算の過程において、点拡散関数（ＰＳＦ）のフーリエ変換の逆数（１／ｐｓｆ）を用いる。そのため、点拡散関数（ＰＳＦ）のフーリエ変換（ｐｓｆ）に０、あるいは非常に小さい値があった場合、画像に含まれるノイズが非常に小さなものとしても、それが非常に拡大されてしまうことになる。
【００４７】
（位置検出方法について）
ここで、本実施形態の位置検出方法について図４〜図６を参照して説明する。図４は、位置検出方法の流れを示すフローチャートであり、図５は、各画像の例を示す図である。図６は、位置検出方法、特に画像比較処理を説明する図である。
この位置検出方法は、上述のフーリエ変換や逆フーリエ変換を用いずに、演算量の少ない、かつ高い演算精度も必要としない畳み込み演算だけを用い、繰り返し演算により元画像を推定し、作業対象物としてのワークの位置を検出するものである。これらの処理は、図１に示す制御部５０の画像処理装置３０で、コンピュータ６０の指令、制御により行われる。
【００４８】
図４に示すように、この位置検出方法は、モデル読み込み工程Ｓ１と、仮定元画像生成工程Ｓ２と、合成ボケ画像生成工程Ｓ３と、ＰＳＦ算出工程Ｓ４と、実ボケ画像撮像工程Ｓ５と、実ボケ画像入力工程Ｓ６と、画像比較工程Ｓ７と、アフィン変換係数修正工程Ｓ８と、位置検出工程Ｓ１０と、仮定元画像更新工程Ｓ１１と、を有する。
【００４９】
まず、予め、位置検出の対象であるワークＷｉを、図１に示すカメラ２０で撮像することにより、モデルとしてのモデル画像Ｍｉ（ｉは対象のワークＷの種類を表す自然数）を作成する。このとき、モデル画像ＭｉにおけるワークＷｉの配置が、位置検出に置ける基本配置となる。このモデル画像Ｍｉは、制御部５０の記憶装置４０のモデル格納部４２に格納される。なお、以降説明の簡便のため、ワークＷ１に対する位置検出方法についてのみ説明する。ただし、ワークＷ２および他のワークＷｉであっても同様である。
【００５０】
図４に示すステップＳ１のモデル読み込み工程では、図１に示すモデル格納部４２に格納されるワークＷ１のモデル画像Ｍ１を画像生成部３２に読み込む。図５（ａ）に示すように、モデル画像Ｍ１はワークＷ１の基本配置を示す画像である。
【００５１】
ステップＳ２の仮定元画像生成工程では、読み込まれたモデル画像Ｍ１のワークＷ１の画像に対して、任意のアフィン変換係数Ａ０で平行移動、回転、拡大縮小等のアフィン変換操作を行い画像変換を施す。その結果、図５（ｂ）に示すように、アフィン変換係数Ａ０で変換された画像、すなわち仮定元画像Ｐ１を得る。このアフィン変換係数Ａ０は、例えば、前工程で実施されたロボット１０による作業の結果、ベルトコンベア５上に配置されるであろうワークＷ１の位置を想定して決定してもよいし、当初のモデル画像Ｍ１と同様な配置になるように決定してもよい。以降の作業が容易になるように考慮して任意に設定することができる。次いで、ステップＳ３に進む。
【００５２】
ステップＳ３の合成ボケ画像生成工程では、前述の式（１）を用いて、仮定元画像Ｐ１のワークＷ１の画像に対して所定の点拡散係数（ＰＳＦ）との畳み込み演算を行い、合成ボケ画像Ｂａ１を生成する。このとき用いられる点拡散係数は、ステップＳ４のＰＳＦ算出工程で公知の点拡散係数の算出方法により算出される。点拡散係数の算出方法は、特に限定しないが、後述する実ボケ画像Ｂ１のボケ特性とできるだけ近くなるような点拡散係数を算出することが好ましい。そのためには、ベルトコンベア５の実搬送速度、ロボット１０の手首部１８の実移動速度等を考慮して決定することが好ましい。なお、この点拡散係数は、事前に算出して、制御部５０の記憶装置４０に記憶させておいてもよい。その結果、アフィン変換操作をされたワークＷ１が表される仮定元画像Ｐ１（図５（ｂ）参照）をベースとした図５（ｃ）に示す合成ボケ画像Ｂａ１を得る。そして、ステップＳ７に進む。
【００５３】
上述のステップＳ１〜Ｓ３の作業とは別に、図４に示すステップＳ５およびステップＳ６の作業を実施する。ステップＳ５の実ボケ画像撮像工程では、図１に示すカメラ２０を用いて、ベルトコンベア５により搬送される作業対象のワークＷ１を撮像する。このとき、カメラ２０およびワークＷ１は双方とも静止状態ではないため、図５（ｄ）に示すような動きボケを含んだいわゆる実ボケ画像Ｂ１となってしまう。
ステップＳ６の実ボケ画像入力工程では、カメラ２０によって撮像された上記実ボケ画像Ｂ１を、図１に示す制御部５０の画像処理装置３０の画像入力部３１に取り込む。そして、ステップＳ７に進む。
【００５４】
図４に示すステップＳ７の画像比較工程では、上記の合成ボケ画像生成工程Ｓ３で得られた合成ボケ画像Ｂａ１と実ボケ画像撮像工程Ｓ５で得られた実ボケ画像Ｂ１とを、図１に示す画像比較部４７で比較して差異を抽出する。
【００５５】
図６（ａ）に示すように、実ボケ画像Ｂ１と合成ボケ画像Ｂａ１とは双方ともボケているため、このままでは比較することができない。そのため、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１の重心Ｇおよび合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１の重心Ｇａを推定する。
【００５６】
例えば、合成ボケ画像Ｂａ１については、図５（ａ）に示すモデル画像Ｍ１の段階で重心Ｇａを点Ｇａとして作成しておき、合成ボケ画像となった点Ｇａの明度の分布を観察してボケた状態のワークＷｂａ１の重心Ｇａを推定してもよい。また、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１および合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１のそれぞれについて、最外縁を線分でつなぎ１つの物体として重心Ｇおよび重心Ｇａを推定してもよい。公知のラベリング処理による重心位置測定を適用してもよい。このようにして、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１の重心Ｇと合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１の重心Ｇａを推定する。そして、重心Ｇおよび重心Ｇａの相対位置および距離ＤからＸ方向の平行移動量（距離）ｄｘ、Ｙ方向の平行移動量（距離）ｄｙを推定する。
【００５７】
次いで、図６（ｂ）に示すように、例えば、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１について、推定された重心ＧからワークＷｂ１の外縁の主だった位置まで線分を複数引き、重心回りのモーメントＮの分布を作成する。次に、同様に、合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１について、推定された重心ＧａからワークＷｂａ１の外縁の主だった位置まで線分を複数引き、重心回りのモーメントＮａの分布を作成する。そして、モーメントＮの分布およびモーメントＮａの分布に着目して、Ｘ軸，Ｙ軸からの角度をそれぞれ求める。
【００５８】
例えば、図６（ｂ）に示す実ボケ画像Ｂ１のワークＷｂ１の「くの字」形状の頂点に向かうモーメントＮ１に着目すると、モーメントＮ１は、Ｘ軸からα°の角度を有している。合成ボケ画像Ｂａ１のワークＷｂａ１の「くの字」形状の頂点に向かうモーメントＮａ１に着目すると、モーメントＮａ１は、Ｘ軸からβ°の角度を有している。従って、モーメントＮａ１は、モーメントＮ１に対して（β−α）°の角度差を有していることがわかる。このことにより、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１は、合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１に対して（β−α）°反時計方向に回転していることが推定される。このようにして、回転量θを推定する。
【００５９】
また、拡大縮小については、図１に示すロボット１０に設けられたカメラ２０を用いて画像を取得するため、ワークＷｉとカメラ２０との位置（距離）等の撮像条件を事前に知ることができる。そのため、拡大縮小の割合については、事前に求めておくものとする。ただし、例えば、実ボケ画像Ｂ１に示されるボケた状態のワークＷｂ１および合成ボケ画像Ｂａ１に示されるボケた状態のワークＷｂａ１について、最外縁に相当する面積をそれぞれ求めその面積を比較することによって拡大縮小の割合を求めることもできる。
【００６０】
図４に示すステップＳ８のアフィン変換係数修正工程では、上記の方法で推定したＸ方向の平行移動量（距離）ｄｘ、Ｙ方向の平行移動量（距離）ｄｙ、回転量θおよび拡大縮小の割合を用いて、仮定元画像生成工程Ｓ２で使用したアフィン変換係数Ａ０を修正し、新たなアフィン変換係数Ａ１を生成する。次いで、ステップＳ９において、修正されたアフィン変換係数Ａ１が所定の値以下か否かを判断する。なお、この所定の値（閾値）とは、ロボット１０の作業の内容、必要とされる精度、ワークＷｉの種類、大きさ等により任意に設定される。
【００６１】
アフィン変換係数Ａ１が所定の値以下でなければ（ＮＯ）、ステップＳ１１の仮定元画像更新工程に進む。仮定元画像更新工程Ｓ１１では、仮定元画像生成工程Ｓ２で生成された仮定元画像Ｐ１のワークＷ１の画像に対して、アフィン変換係数Ａ１で平行移動、回転、拡大縮小等の操作を行い画像変換を施して図５（ｅ）に示す仮定元画像Ｐ２を得る。そして、上述の合成ボケ画像生成工程Ｓ３、画像比較工程Ｓ７およびアフィン変換係数修正工程Ｓ８の作業を行い、再修正されたアフィン変換係数Ａ２を得る。その後、ステップＳ９において、再修正されたアフィン変換係数Ａ２が所定の値以下か否かを判断する。アフィン変換係数Ａ２が所定の値以上（ＮＯ）であれば、ステップＳ１１の仮定元画像更新工程に再度進み、アフィン変換係数Ａが所定の値以下になるまで上記の作業を繰り返す。
【００６２】
ステップＳ９において、アフィン変換係数Ａ１もしくは修正されたアフィン変換係数Ａ２が所定の値以下（ＹＥＳ）であれば、ステップＳ１０の位置検出工程に進む。アフィン変換係数Ａが、所定の値以下であると言うことは、合成ボケ画像Ｂａ１が実ボケ画像Ｂ１とがほぼ一致したと判断することができる。合成ボケ画像Ｂａ１の点拡散係数は、図１に示すＰＳＦ算出部４６で実ボケ画像Ｂ１のボケ特性とできるだけ近くなるように算出されている。すなわち、合成ボケ画像Ｂａ１と実ボケ画像Ｂ１とは、ボケの特性である点拡散係数がほぼ同一であると言える。従って、合成ボケ画像Ｂａ１の元となる仮定元画像Ｐｉと、実ボケ画像Ｂ１の元となる未知である真の元画像とは、ほぼ同一であると推定できる。
【００６３】
合成ボケ画像Ｂａ１の元となる仮定元画像Ｐｉは、ワークＷ１の基本配置を示す画像であるモデル画像Ｍ１に対して、アフィン変換係数Ａ０、アフィン変換係数Ａ１・・・と順次アフィン変換をして生成もしくは更新されている。すなわち、仮定元画像Ｐｉに表されるワークＷ１の位置は、アフィン変換係数Ａもしくはアフィン変換係数Ａの修正履歴から検出されることができる。合成ボケ画像Ｂａ１の元となる仮定元画像Ｐｉと、実ボケ画像Ｂ１の元となる未知である真の元画像とは、ほぼ同一であるため、仮定元画像Ｐｉで検出されたワークＷｉの位置は、未知である真の元画像に表されるワークＷｉの位置とほぼ同一であると判断できる。位置検出工程Ｓ１０では、このようにして、未知である真の元画像に表されるワークＷｉの位置を検出することができる。なお、位置検出の誤差については、修正されるアフィン変換係数Ａが限りなく小さくなるまで上記作業を繰り返すことによって、十分小さくすることができる。
【００６４】
次いで、ステップＳ１２に進み、次の位置検出を行うワークＷｉがあるか否かを判断する。次の位置検出を行うワークＷｉがある（ＹＥＳ）場合は、モデル読み込み工程Ｓ１および実ボケ画像撮像工程Ｓ５に戻り、上述の作業を繰り返す。次の位置検出を行うワークＷｉがない（ＮＯ）場合は、本作業を終了する。
【００６５】
以下、本実施形態の効果を記載する。
（１）上述の位置検出方法は、フーリエ変換、逆フーリエ変換を用いず、撮像されたボケ画像Ｂとモデル画像Ｍに対して、アフィン変換操作と点拡散係数との畳み込み演算を行って生成された合成ボケ画像Ｂａとの比較処理で差異を抽出する。そして、その差異に基づいてアフィン変換係数を修正して、その修正値からワークＷｉの位置を求めるという従来にはない方法である。このときの演算処理の大部分はアフィン変換操作と点拡散係数との畳み込み演算である。従って、繰り返し演算を行ったとしても、フーリエ変換、逆フーリエ変換を必要とする従来手法に比較して、少ない演算量でワークＷｉの位置を検出することができる。そのため、演算処理にかかる計算時間を低減することができ、ロボット１０による作業の効率化に寄与することができる。
【００６６】
（２）また、上述の位置検出方法は、修正されるアフィン変換係数Ａもしくはアフィン変換係数Ａの修正値が所定の値（閾値）以下になるまで繰り返し、演算処理が行われる。そのため、誤差を十分小さくすることができる。すなわち、ボケ画像Ｂ同士の比較であっても、ワークＷｉの位置を十分検出することができる。なお、この所定の値は、ロボット１０の作業の内容、必要とされる精度、ワークＷｉの種類、大きさ等により任意に設定することができるため、作業の無駄が低減される。
【００６７】
（３）上述の位置検出方法は、アフィン変換操作と点拡散係数との畳み込み演算でワークＷｉの位置を検出することができる。そのため、長いデータ長さの積和演算を必要とするフーリエ変換、逆フーリエ変換を行う従来手法に比較して、高い演算精度を必要としないでワークＷｉの位置を検出することができる。そのため、演算処理にかかる計算時間を低減することができ、ロボット１０による作業の効率化に寄与することができる。
【００６８】
（４）上述の位置検出方法は、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を逆に小さくすることができる。従って、ワークＷｉの位置をより正確に検出することができる。
【００６９】
（５）上述の位置検出方法は、元画像を推定する処理そのものにおいて、モデル画像Ｍに対するアフィン変換係数Ａ、つまり、モデルに対する平行移動、回転、拡大縮小に対応する係数を求める。すなわち、このアフィン変換係数Ａを用いることにより、モデルの位置からのワークＷｉの位置が自動的に求まる。つまり、元画像を推定する処理と、ワークＷｉの位置を推定する処理を同時に行うことができる。なお、従来手法においては、仮にボケの無い元画像が求まったとしても、ワークＷｉの位置を求めるのは、その画像を用いた別処理となる。そのため、処理にかかる時間を低減することができ、ロボット１０による作業の効率化に寄与することができる。
【００７０】
以上、本発明の実施形態について説明したが、上記実施形態に対しては、本発明の趣旨から逸脱しない範囲で様々な変形を加えることができる。例えば上記実施形態以外の変形例は、以下の通りである。
【００７１】
（変形例１）本発明の実施形態では、モデル画像Ｍｉとしては、ワークＷｉをカメラ２０により撮像した場合について、説明したがこれに限定されない。モデル画像Ｍｉの元になるモデルは、例えば、ワークＷｉのＣＡＤ／ＣＡＭデータであるモデルデータであってもよい。この場合でも同様な効果を奏することができる。
【００７２】
（変形例２）また、モデル画像Ｍｉの背景である背景画像は、別途生成して、図１に示す制御部５０の記憶装置４０のモデル格納部４２に格納し、図４に示すモデル読み込み工程Ｓ１でモデル画像Ｍｉとともに背景画像を読み込み、仮定元画像生成工程Ｓ２で、モデル画像Ｍｉと合成して仮定元画像Ｐを生成してもよい。この場合、背景画像は、モデル画像Ｍｉに表されるワークＷｉの画像が強調されるように明度差をつけてもよい。または、実ボケ画像撮像工程Ｓ５で撮像されるワークＷｉの背景、すなわちベルトコンベア５の表面と同様な背景画像を用意してもよい。このようにすることによって、画像比較工程Ｓ７でのボケ画像Ｂ，Ｂａ同士を容易に比較することができる。
【００７３】
なお、本実施形態では、ロボット１０として多関節型ロボットを採用したが、これに限定されるものではなく、スカラー型のロボットであってもよい。また、ロボット１０の用途は、ロボットハンド１９による部品の把持、ハンダ付けや溶接のような加工を行う等様々な用途が想定される。さらに、産業用ロボットに限らず、医療用ロボットや家庭用ロボットであってもよい。
【図面の簡単な説明】
【００７４】
【図１】位置検出装置の構成例を示す図。
【図２】ワークの例を示す図。
【図３】カメラで撮像されたワークの画像を示す図。
【図４】位置検出方法の流れを示すフローチャート。
【図５】各画像の例を示す図。
【図６】位置検出方法、特に画像比較処理を説明する図。
【符号の説明】
【００７５】
１…位置検出装置、１０…ロボット、２０…カメラ、３０…画像処理装置、３２…画像生成部、３３…画像比較処理部、３６…仮定元画像生成部、３７…仮定元画像更新部、３８…合成ボケ画像生成部、４２…モデル格納部、４７…画像比較部、４８…アフィン変換係数修正部、５０…制御部、Ａｉ…アフィン変換係数、Ｂｉ…実ボケ画像、Ｂａｉ…合成ボケ画像、Ｍｉ…モデル画像、Ｐｉ…仮定元画像、Ｗｉ…作業対象物としてのワーク、Ｇ，Ｇａ…重心、Ｎ，Ｎａ…モーメント、Ｓ１…モデル読み込み工程、Ｓ２…仮定元画像生成工程、Ｓ３…合成ボケ画像生成工程、Ｓ５…実ボケ画像撮像工程、Ｓ７…画像比較工程、Ｓ８…アフィン変換係数修正工程、Ｓ１０…位置検出工程、Ｓ１１…仮定元画像更新工程。
【図１】
2010133718.tif 000008
【図２】
2010133718.tif 000009
【図３】
2010133718.tif 000010
【図４】
2010133718.tif 000011
【図５】
2010133718.tif 000012
【図６】
2010133718.tif 000013