説明

作業対象物の位置検出方法および位置検出装置

【課題】作業対象物が撮像されたボケ画像から作業対象物の位置を検出する。
【解決手段】作業対象物Wが撮像されたボケ画像Bから前記作業対象物Wの位置を検出する位置検出方法であって、前記作業対象物Wのモデルに第1のアフィン変換係数A0でアフィン変換を施し仮定元画像Pを生成する仮定元画像生成工程S2と、ボケ特性を示す点拡散係数を求める点拡散係数算出工程S4と、前記仮定元画像Pに前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像Baを生成する合成ボケ画像生成工程S3と、前記合成ボケ画像Baと前記ボケ画像Bとを比較する画像比較工程S7と、比較され抽出された差異により前記第1のアフィン変換係数A0を修正して第2のアフィン変換係数A1を求めるアフィン変換係数修正工程S8と、前記第2のアフィン変換係数A1より前記作業対象物Wの位置を検出する位置検出工程S10とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業対象物の位置を検出する作業対象物の位置検出方法および位置検出装置に関する。
【背景技術】
【0002】
各種生産現場において、作業の自動化や省力化のため産業用ロボットが多用されている。このような産業用ロボットは、カメラなどの撮像機器を備え作業対象物を撮像し、撮像された画像を画像処理して作業対象物の位置を検出する。作業対象物と撮像機器とが相対的に動いている場合は、撮像された画像に動きボケが発生する。近年、産業用ロボットによる作業の高速化や高度化に伴い、高精度な位置決めが求められている。そのため、撮像された画像における動きボケの補正が重要になっている。
【0003】
このような動きボケの補正方法としては、どのようにボケているかを推定し、画像に対してその逆特性を演算することにより、ボケていない画像を復元する方法がある。その方法の例として、移動物の動きに関する情報を撮像機器に設けられた加速度センサで検出し、検出した情報に基づいて動きによるボケの特性を示す点拡散関数(PSF:Point Spread Function)を求める。そして、この点拡散関数を用いてフーリエ変換、逆フーリエ変換などの演算処理を行いボケ補正、すなわち、ボケ画像から元画像を復元する方法が知られている(例えば、特許文献1参照)。
【0004】
【特許文献1】特開2008−165657号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の方法では、フーリエ変換、逆フーリエ変換が必要とされ、これらは非常に大きな演算量を必要とされる。また、フーリエ変換、逆フーリエ変換を精度良く行うためには、高い演算精度が求められる。そのため、演算処理に多大な時間を要してしまうという課題がある。
【0006】
また、撮像機器による画像撮像時に画像に撮像素子から発生するノイズなどが重畳される場合がある。多くの場合、このようなノイズは白色ノイズに近いと考えられる。上記の方法は、元画像を復元する演算の過程において、点拡散関数のフーリエ変換の逆数を用いる。そのため、点拡散関数のフーリエ変換に0、あるいは非常に小さい値がある場合、画像に含まれるノイズが非常に小さなものであるとしても、それが大きく拡大されてしまうことになる。つまりノイズの影響が大きくなり、復元される元画像の正確性が損なわれる可能性がある。すなわち、ノイズ等の影響を受けやすいという課題がある。
【課題を解決するための手段】
【0007】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【0008】
(適用例1)作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出方法であって、前記作業対象物のモデルに対して、第1のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成工程と、ボケの特性を示す点拡散係数を求める点拡散係数算出工程と、前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成工程と、生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較工程と、前記画像比較工程で抽出された差異に基づいて前記第1のアフィン変換係数を修正して第2のアフィン変換係数を求めるアフィン変換係数修正工程と、修正された前記第2のアフィン変換係数により、前記作業対象物の位置を検出する位置検出工程と、を有することを特徴とする作業対象物の位置検出方法。
【0009】
この方法によれば、作業対象物および基本配置等を示すモデルに対して、平行移動、回転、拡大縮小等の任意の係数(第1のアフィン変換係数)でアフィン変換を行い仮定元画像を生成して、さらに、撮像して得られるボケ画像のボケ特性に近い点拡散係数の畳み込み演算を行い、作業対象物の合成ボケ画像を生成することができる。そして、撮像して得られる作業対象物の実際のボケ画像と上記の作業対象物の合成ボケ画像とを比較して位置的な差異を抽出することができる。その位置的な差異を、合成ボケ画像の元画像である仮定元画像を生成したときのアフィン変換の係数(第1のアフィン変換係数)の修正値(第2のアフィン変換係数)として表すことができる。なお、アフィン変換係数とは、特定の物体を平行移動させる平行移動量、回転させる回転量、および拡大縮小させる倍率等を示すことができる係数である。そのため、作業対象物のモデルの基本配置からの平行移動量、回転量および拡大縮小倍率等を知ることができ、作業対象物の位置を知ることができる。
【0010】
この方法では、演算量の多いフーリエ変換や逆フーリエ変換を用いず、アフィン変換操作と点拡散係数との畳み込み演算で作業対象物の位置を知ることができる。そのため、フーリエ変換や逆フーリエ変換を必要とする方法と比較して、演算量を少なくすることができる。また、長いデータ長さの積和演算を必要とするフーリエ変換や逆フーリエ変換のような高い演算精度を必要としない。従って、演算処理に要する時間を低減することができるとともに、より容易に作業対象物の位置を検出することができる。また、この方法では、点拡散係数のフーリエ変換の逆数を用いない。すなわち、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を小さくすることができる。
【0011】
(適用例2)前記アフィン変換係数修正工程で修正された前記第2のアフィン変換係数により前記仮定元画像を更新する仮定元画像更新工程を有し、前記合成ボケ画像生成工程において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第2の合成ボケ画像を生成し、前記画像比較工程において、前記第2の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、前記アフィン変換係数修正工程において、前記画像比較工程で抽出された差異に基づいて前記第2のアフィン変換係数の修正値を求め、前記第2のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする上記の作業対象物の位置検出方法。
【0012】
この方法によれば、合成ボケ画像と撮像されたボケ画像との画像比較を、用いられるアフィン変換係数(修正値)が所定の値以下になるまで繰り返し行うことができる。すなわち、繰り返し処理により、逐次的に推定される位置検出精度を改善することが可能である。
【0013】
(適用例3)前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心および前記ボケ画像に示される前記作業対象物の重心を推定し、前記重心同士間の相対位置を比較して、前記位置検出工程において、前記重心同士間の相対位置から平行移動量を推定することを特徴とする上記の作業対象物の位置検出方法。
【0014】
この方法によれば、合成ボケ画像に示される作業対象物の重心および撮像されたボケ画像に示される作業対象物の重心を推定して、推定された重心の位置および重心同士間の距離を推定することができる。そのため、双方の作業対象物を重ね合わせるのに必要な平行移動量、回転量を推定することができる。その結果、平行移動に関するアフィン変換係数の修正値を知ることができる。
【0015】
(適用例4)前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心からのモーメントおよび前記ボケ画像に示される前記作業対象物の重心からのモーメントを推定し、前記合成ボケ画像の前記モーメントの分布と前記ボケ画像の前記モーメントの分布とを比較して、前記位置検出工程において、前記モーメントの分布位置の違いから回転量を推定することを特徴とする上記の作業対象物の位置検出方法。
【0016】
この方法によれば、合成ボケ画像に示される作業対象物および撮像されたボケ画像に示される作業対象物に対して、推定された重心回りのモーメントの分布を求めることができる。そして、それぞれの作業対象物における重心回りのモーメントの分布の違いを推定して、双方の作業対象物を重ね合わせるのに必要な回転量を推定することができる。そのため、回転に関するアフィン変換係数の修正値を知ることができる。
【0017】
(適用例5)前記モデルは、前記モデルを撮像したモデル画像もしくは前記モデルを構成するデータであるモデルデータであることを特徴とする上記の作業対象物の位置検出方法。
【0018】
この方法によれば、モデルとして実際に撮像されたモデル画像やCAD/CAMデータ等のモデルデータのいずれかを仮定元画像のベースとして使用することができる。
【0019】
(適用例6)前記モデル画像もしくは前記モデルデータを格納するモデル格納手段を備え、前記モデル格納手段には、前記モデルの背景となる背景画像を格納して、前記仮定元画像生成工程もしくは前記仮定元画像更新工程において、アフィン変換を施した前記モデルと前記背景画像とを合成して前記仮定元画像を作成することを特徴とする上記の作業対象物の位置検出方法。
【0020】
この方法によれば、背景画像の明度等を調整することにより、作業対象物をより鮮明に表すことができる。また、実際に撮像されるボケ画像の背景と同じ背景に合わせることができる。その結果、作業対象物を認識しやすくなり、画像比較工程での比較処理を容易に行うことができる。
【0021】
(適用例7)作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出装置であって、前記作業対象物のモデルに対して第1のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成部と、ボケの特性を示す点拡散係数を求める点拡散係数算出部と、前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い、前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成部と、生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較部と、前記画像比較部で抽出された差異に基づいて前記第1のアフィン変換係数を修正して第2のアフィン変換係数を求めるアフィン変換係数修正部と、修正された前記第2のアフィン変換係数より前記作業対象物の位置を検出する位置検出部と、を備えることを特徴とする作業対象物の位置検出装置。
【0022】
この装置によれば、作業対象物および基本配置等を示すモデルに対して、平行移動、回転、拡大縮小等の任意の係数(第1のアフィン変換係数)でアフィン変換を行い仮定元画像を生成して、さらに、撮像して得られるボケ画像のボケ特性に近い点拡散係数の畳み込み演算を行い、作業対象物の合成ボケ画像を生成することができる。そして、撮像して得られる作業対象物の実際のボケ画像と上記の作業対象物の合成ボケ画像とを比較して位置的な差異を抽出することができる。その位置的な差異を、合成ボケ画像の元画像である仮定元画像を生成したときのアフィン変換の係数(第1のアフィン変換係数)の修正値(第2のアフィン変換係数)として表すことができる。なお、アフィン変換係数とは、特定の物体を平行移動させる平行移動量、回転させる回転量、および拡大縮小させる倍率等を示すことができる係数である。そのため、作業対象物のモデルの基本配置からの平行移動量、回転量および拡大縮小倍率等を知ることができ、作業対象物の位置を知ることができる。
【0023】
この装置において、演算量の多いフーリエ変換や逆フーリエ変換を用いず、アフィン変換操作と点拡散係数との畳み込み演算で作業対象物の位置を知ることができる。そのため、フーリエ変換や逆フーリエ変換を必要とする方法と比較して、演算量を少なくすることができる。また、長いデータ長さの積和演算を必要とするフーリエ変換や逆フーリエ変換のような高い演算精度を必要としない。従って、演算処理に要する計算時間を低減することができるとともに、より容易に作業対象物の位置を検出することができる。また、この方法では、点拡散係数のフーリエ変換の逆数を用いない。すなわち、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を小さくすることができる。
【0024】
(適用例8)前記アフィン変換係数修正部で修正された前記第2のアフィン変換係数により前記仮定元画像を更新する仮定元画像更新部を有し、前記合成ボケ画像生成部において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第2の合成ボケ画像を生成し、前記画像比較部において、前記第2の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、前記アフィン変換係数修正部において、前記画像比較部で抽出された差異に基づいて前記第2のアフィン変換係数の修正値を求め、前記第2のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする上記の作業対象物の位置検出装置。
【0025】
この装置によれば、合成ボケ画像と撮像されたボケ画像との画像比較を、用いられるアフィン変換係数(修正値)が所定の値以下になるまで繰り返し行うことができる。すなわち、繰り返し処理により、逐次的に推定される位置検出精度を改善することが可能である。
【発明を実施するための最良の形態】
【0026】
(位置検出装置について)
本発明の作業対象物の位置検出方法を適用した作業対象物の位置検出装置について、図1を参照して説明する。図1は、位置検出装置の構成例を示す図である。
【0027】
図1に示すように、位置検出装置1は、ロボット10と制御部50とを備える。ロボット10は、いわゆる多関節型ロボットであり、ベース25とアーム17A,17Bと、ロボットハンド19を含む手首部18と、それぞれを回動自在に支持する関節部である第1軸12と第2軸14と第3軸16と、撮像機器としてのカメラ20とから構成されている。
【0028】
ロボット10は、設置面にベース25により設置される。ベース25は、第1回転軸11を備え、ベース25より上方のロボット10本体を設置面との鉛直軸を中心に回転させることができる。ベース25には、第1軸12を介してアーム17Aが回動自在に取り付けられている。アーム17Aは、第2回転軸13を備え、アーム17A自身が軸方向に回転することができる。アーム17Aには、第2軸14を介してアーム17Bが回動自在に取り付けられている。アーム17Bは、第3回転軸15を備え、アーム17B自身が軸方向に回転することができる。アーム17Bには、第3軸16を介して手首部18が回動自在に取り付けられている。
【0029】
手首部18の先端にはロボットハンド19が設けられ、作業対象物としてのワークWに作業を施す。また、手首部18の先端部にはカメラ20が装着されている。カメラ20は、いわばロボット10の眼として機能するものであり、例えば、CCDのような撮像素子によりロボットハンド19が作業する方向を撮像する。
【0030】
これらの第1〜3軸12,14,16、第1〜3回転軸11,13,15およびロボットハンド19は、図示しないモータや空圧機器等により動作する複数の図示しないアクチュエータの駆動により回動するように構成されている。複数のアクチュエータは、制御部50からケーブル85を介して送られる制御信号に基づいて駆動するように構成されている。また、カメラ20は所定の露出時間でワークW等を撮像し、撮像した画像信号はケーブル86を介して制御部50に送られる。
【0031】
制御部50は、少なくとも、画像処理装置30と、記憶装置40と、コンピュータ60とから構成されている。画像処理装置30は、少なくとも、画像入力部31と、画像生成部32と、画像比較処理部33と、位置検出部34とを備える。記憶装置40は、少なくとも、モデル格納部42と、検出結果格納部44とを備える。画像生成部32は、仮定元画像生成部36と、仮定元画像更新部37と、合成ボケ画像生成部38と、点拡散係数(PSF)算出部46とを有する。画像比較処理部33は、画像比較部47と、アフィン変換係数修正部48とを有する。
【0032】
コンピュータ60は、中央処理装置として機能し、図示しないCPU、RAM、ROM、HDD、シーケンサおよびロボットコントローラ等からなるハードウェア資源と、ROMやHDD等に記憶された種々のソフトウェアとを有機的に協働させることにより、ロボット10、画像処理装置30、および記憶装置40等を総括的に制御するものである。制御部50の動作については後述する。
【0033】
(ロボットの作業について)
上述のロボット10の作業について、図1、図2および図3を参照して説明する。図2は、ワークの例を示す図であり、図3は、カメラで撮像されたワークの画像を示す図である。
【0034】
ロボット10は、図1に示すベルトコンベア5により矢印C方向に搬送される作業対象物としてのワークWに対して、作業を実施する。本実施形態では、生産効率向上、設備の汎用化および簡素化のため、ワークWの整列装置や位置決め装置を設けていない。そのため、ワークWは、ランダムな順番および姿勢で搬送され、それぞれに固有の作業が実施される。そのため、ロボット10は、作業を実施するワークWの位置や姿勢を検出する必要がある。従って、ロボット10は、図1に示すカメラ20を用いて、ベルトコンベア5上を搬送されるワークWi(iはワークWの種類を表す自然数)を撮像してワークWiの位置検出を行う。
【0035】
図2(a),(b)に示すように、本実施形態では、ワークWiとして、例えば、2種類のワークW1,W2が用いられる。図2(a)に示すワークW1は、例えば、2つの長方形の板が直角に配置されるような、いわゆる「くの字」状の形状に形成され、それぞれの長方形の部分には2つの貫通穴が設けられている。図2(b)に示すワークW2は、例えば、長方形の板状に形成され、平面には4つの貫通穴が設けられている。
【0036】
これらのワークW1,W2は、ランダムな順番および姿勢で図1に示すベルトコンベア5により搬送され、ロボット10の作業場所に到達する。例えば、図2(c)に示すようなレイアウトで、ワークW1,W2がベルトコンベア5上に置かれ搬送されているとする。ワークW1およびワークW2の位置を検出するため、ロボット10の手首部18の先端部に設けられたカメラ20を用いて、ベルトコンベア5上のワークW1およびワークW2を撮像する。このとき、ロボット10の手首部18の動きを静止させるか、ワークW1およびワークW2を静止、すなわちベルトコンベア5を動きを静止させることが好ましい。ところが、このような方法では作業や移動動作が中断されてしまい、作業効率が著しく低下する。そのため、一般には、双方が移動動作を行っている状態で撮像する。
【0037】
そのため、図3に示すように、撮像された画像は、ワークW1およびワークW2の画像が動きボケを含んだ、いわゆるボケ画像Bi(iは対象のワークWの種類を表す自然数)となってしまう場合が多い。そのままでは、ワークW1およびワークW2の位置を検出することができない。そのため、何らかの画像処理が必要である。従来の方法の一例として、ボケ画像がどのようにボケているかを推定し、ボケ画像に対してその逆特性を演算することにより、ボケていない元画像を復元する方法がある。ここで、本実施形態の位置検出方法との差異を明らかにするために、この方法を簡単に説明する。
【0038】
従来の方法において、画像のボケは、下記の式(1)のようにモデル化される。この式(1)で示すように、元画像をImage、ボケ画像をBlur、画像がどのようにボケているのかを表すパラメーターである点拡散関数をPSFとすると、ボケ画像(Blur)は点拡散関数(PSF)と元画像(Image)との畳み込み演算で与えられる。点拡散関数(PSF)は、名前のとおり、本来1点であるデータが、どのように拡がっているのかを表す関数である。
【0039】
【数1】

【0040】
ここで、下記の式(2),(3),(4)のように、関数fに対するフーリエ変換操作をF[f]と表すと、元画像(Image)のフーリエ変換はimage、ボケ画像(Blur)のフーリエ変換はblur、点拡散関数(PSF)のフーリエ変換はpsfと表すことができる。畳み込み演算は、フーリエ変換により単なる乗算に変換されるため、式(1)のは下記の式(5)に変換される。
【0041】
【数2】

【0042】
【数3】

【0043】
下記の式(6)のように、元画像のフーリエ変換(image)は、点拡散関数(PSF)のフーリエ変換である(psf)の逆数と、ボケ画像(Blur)のフーリエ変換である(blur)との積により得られる。関数fの逆フーリエ変換操作をIF[f]とすると、ボケの無い元画像(Image)は、式(6)で得られた元画像のフーリエ変換(image)を、式(7)のように逆フーリエ変換することにより得られる。
【0044】
【数4】

【0045】
【数5】

【0046】
上述のような演算処理は、数学的処理としては単純なものであり、その一例として、ウィーナフィルタ処理などがある。しかし、実用上、この方法には大きな課題がある。繰り返しになるが、この方法はフーリエ変換、逆フーリエ変換が必要とされ、これらは非常に大きな演算量を必要とされる。また、フーリエ変換、逆フーリエ変換を精度良く行うためには、高い演算精度が求められる。また、図1に示すカメラ20による画像撮像時に画像に撮像素子から発生するノイズなどが重畳される場合がある。上記の方法は、元画像(Image)を復元する演算の過程において、点拡散関数(PSF)のフーリエ変換の逆数(1/psf)を用いる。そのため、点拡散関数(PSF)のフーリエ変換(psf)に0、あるいは非常に小さい値があった場合、画像に含まれるノイズが非常に小さなものとしても、それが非常に拡大されてしまうことになる。
【0047】
(位置検出方法について)
ここで、本実施形態の位置検出方法について図4〜図6を参照して説明する。図4は、位置検出方法の流れを示すフローチャートであり、図5は、各画像の例を示す図である。図6は、位置検出方法、特に画像比較処理を説明する図である。
この位置検出方法は、上述のフーリエ変換や逆フーリエ変換を用いずに、演算量の少ない、かつ高い演算精度も必要としない畳み込み演算だけを用い、繰り返し演算により元画像を推定し、作業対象物としてのワークの位置を検出するものである。これらの処理は、図1に示す制御部50の画像処理装置30で、コンピュータ60の指令、制御により行われる。
【0048】
図4に示すように、この位置検出方法は、モデル読み込み工程S1と、仮定元画像生成工程S2と、合成ボケ画像生成工程S3と、PSF算出工程S4と、実ボケ画像撮像工程S5と、実ボケ画像入力工程S6と、画像比較工程S7と、アフィン変換係数修正工程S8と、位置検出工程S10と、仮定元画像更新工程S11と、を有する。
【0049】
まず、予め、位置検出の対象であるワークWiを、図1に示すカメラ20で撮像することにより、モデルとしてのモデル画像Mi(iは対象のワークWの種類を表す自然数)を作成する。このとき、モデル画像MiにおけるワークWiの配置が、位置検出に置ける基本配置となる。このモデル画像Miは、制御部50の記憶装置40のモデル格納部42に格納される。なお、以降説明の簡便のため、ワークW1に対する位置検出方法についてのみ説明する。ただし、ワークW2および他のワークWiであっても同様である。
【0050】
図4に示すステップS1のモデル読み込み工程では、図1に示すモデル格納部42に格納されるワークW1のモデル画像M1を画像生成部32に読み込む。図5(a)に示すように、モデル画像M1はワークW1の基本配置を示す画像である。
【0051】
ステップS2の仮定元画像生成工程では、読み込まれたモデル画像M1のワークW1の画像に対して、任意のアフィン変換係数A0で平行移動、回転、拡大縮小等のアフィン変換操作を行い画像変換を施す。その結果、図5(b)に示すように、アフィン変換係数A0で変換された画像、すなわち仮定元画像P1を得る。このアフィン変換係数A0は、例えば、前工程で実施されたロボット10による作業の結果、ベルトコンベア5上に配置されるであろうワークW1の位置を想定して決定してもよいし、当初のモデル画像M1と同様な配置になるように決定してもよい。以降の作業が容易になるように考慮して任意に設定することができる。次いで、ステップS3に進む。
【0052】
ステップS3の合成ボケ画像生成工程では、前述の式(1)を用いて、仮定元画像P1のワークW1の画像に対して所定の点拡散係数(PSF)との畳み込み演算を行い、合成ボケ画像Ba1を生成する。このとき用いられる点拡散係数は、ステップS4のPSF算出工程で公知の点拡散係数の算出方法により算出される。点拡散係数の算出方法は、特に限定しないが、後述する実ボケ画像B1のボケ特性とできるだけ近くなるような点拡散係数を算出することが好ましい。そのためには、ベルトコンベア5の実搬送速度、ロボット10の手首部18の実移動速度等を考慮して決定することが好ましい。なお、この点拡散係数は、事前に算出して、制御部50の記憶装置40に記憶させておいてもよい。その結果、アフィン変換操作をされたワークW1が表される仮定元画像P1(図5(b)参照)をベースとした図5(c)に示す合成ボケ画像Ba1を得る。そして、ステップS7に進む。
【0053】
上述のステップS1〜S3の作業とは別に、図4に示すステップS5およびステップS6の作業を実施する。ステップS5の実ボケ画像撮像工程では、図1に示すカメラ20を用いて、ベルトコンベア5により搬送される作業対象のワークW1を撮像する。このとき、カメラ20およびワークW1は双方とも静止状態ではないため、図5(d)に示すような動きボケを含んだいわゆる実ボケ画像B1となってしまう。
ステップS6の実ボケ画像入力工程では、カメラ20によって撮像された上記実ボケ画像B1を、図1に示す制御部50の画像処理装置30の画像入力部31に取り込む。そして、ステップS7に進む。
【0054】
図4に示すステップS7の画像比較工程では、上記の合成ボケ画像生成工程S3で得られた合成ボケ画像Ba1と実ボケ画像撮像工程S5で得られた実ボケ画像B1とを、図1に示す画像比較部47で比較して差異を抽出する。
【0055】
図6(a)に示すように、実ボケ画像B1と合成ボケ画像Ba1とは双方ともボケているため、このままでは比較することができない。そのため、実ボケ画像B1に示されるボケた状態のワークWb1の重心Gおよび合成ボケ画像Ba1に示されるボケた状態のワークWba1の重心Gaを推定する。
【0056】
例えば、合成ボケ画像Ba1については、図5(a)に示すモデル画像M1の段階で重心Gaを点Gaとして作成しておき、合成ボケ画像となった点Gaの明度の分布を観察してボケた状態のワークWba1の重心Gaを推定してもよい。また、実ボケ画像B1に示されるボケた状態のワークWb1および合成ボケ画像Ba1に示されるボケた状態のワークWba1のそれぞれについて、最外縁を線分でつなぎ1つの物体として重心Gおよび重心Gaを推定してもよい。公知のラベリング処理による重心位置測定を適用してもよい。このようにして、実ボケ画像B1に示されるボケた状態のワークWb1の重心Gと合成ボケ画像Ba1に示されるボケた状態のワークWba1の重心Gaを推定する。そして、重心Gおよび重心Gaの相対位置および距離DからX方向の平行移動量(距離)dx、Y方向の平行移動量(距離)dyを推定する。
【0057】
次いで、図6(b)に示すように、例えば、実ボケ画像B1に示されるボケた状態のワークWb1について、推定された重心GからワークWb1の外縁の主だった位置まで線分を複数引き、重心回りのモーメントNの分布を作成する。次に、同様に、合成ボケ画像Ba1に示されるボケた状態のワークWba1について、推定された重心GaからワークWba1の外縁の主だった位置まで線分を複数引き、重心回りのモーメントNaの分布を作成する。そして、モーメントNの分布およびモーメントNaの分布に着目して、X軸,Y軸からの角度をそれぞれ求める。
【0058】
例えば、図6(b)に示す実ボケ画像B1のワークWb1の「くの字」形状の頂点に向かうモーメントN1に着目すると、モーメントN1は、X軸からα°の角度を有している。合成ボケ画像Ba1のワークWba1の「くの字」形状の頂点に向かうモーメントNa1に着目すると、モーメントNa1は、X軸からβ°の角度を有している。従って、モーメントNa1は、モーメントN1に対して(β−α)°の角度差を有していることがわかる。このことにより、実ボケ画像B1に示されるボケた状態のワークWb1は、合成ボケ画像Ba1に示されるボケた状態のワークWba1に対して(β−α)°反時計方向に回転していることが推定される。このようにして、回転量θを推定する。
【0059】
また、拡大縮小については、図1に示すロボット10に設けられたカメラ20を用いて画像を取得するため、ワークWiとカメラ20との位置(距離)等の撮像条件を事前に知ることができる。そのため、拡大縮小の割合については、事前に求めておくものとする。ただし、例えば、実ボケ画像B1に示されるボケた状態のワークWb1および合成ボケ画像Ba1に示されるボケた状態のワークWba1について、最外縁に相当する面積をそれぞれ求めその面積を比較することによって拡大縮小の割合を求めることもできる。
【0060】
図4に示すステップS8のアフィン変換係数修正工程では、上記の方法で推定したX方向の平行移動量(距離)dx、Y方向の平行移動量(距離)dy、回転量θおよび拡大縮小の割合を用いて、仮定元画像生成工程S2で使用したアフィン変換係数A0を修正し、新たなアフィン変換係数A1を生成する。次いで、ステップS9において、修正されたアフィン変換係数A1が所定の値以下か否かを判断する。なお、この所定の値(閾値)とは、ロボット10の作業の内容、必要とされる精度、ワークWiの種類、大きさ等により任意に設定される。
【0061】
アフィン変換係数A1が所定の値以下でなければ(NO)、ステップS11の仮定元画像更新工程に進む。仮定元画像更新工程S11では、仮定元画像生成工程S2で生成された仮定元画像P1のワークW1の画像に対して、アフィン変換係数A1で平行移動、回転、拡大縮小等の操作を行い画像変換を施して図5(e)に示す仮定元画像P2を得る。そして、上述の合成ボケ画像生成工程S3、画像比較工程S7およびアフィン変換係数修正工程S8の作業を行い、再修正されたアフィン変換係数A2を得る。その後、ステップS9において、再修正されたアフィン変換係数A2が所定の値以下か否かを判断する。アフィン変換係数A2が所定の値以上(NO)であれば、ステップS11の仮定元画像更新工程に再度進み、アフィン変換係数Aが所定の値以下になるまで上記の作業を繰り返す。
【0062】
ステップS9において、アフィン変換係数A1もしくは修正されたアフィン変換係数A2が所定の値以下(YES)であれば、ステップS10の位置検出工程に進む。アフィン変換係数Aが、所定の値以下であると言うことは、合成ボケ画像Ba1が実ボケ画像B1とがほぼ一致したと判断することができる。合成ボケ画像Ba1の点拡散係数は、図1に示すPSF算出部46で実ボケ画像B1のボケ特性とできるだけ近くなるように算出されている。すなわち、合成ボケ画像Ba1と実ボケ画像B1とは、ボケの特性である点拡散係数がほぼ同一であると言える。従って、合成ボケ画像Ba1の元となる仮定元画像Piと、実ボケ画像B1の元となる未知である真の元画像とは、ほぼ同一であると推定できる。
【0063】
合成ボケ画像Ba1の元となる仮定元画像Piは、ワークW1の基本配置を示す画像であるモデル画像M1に対して、アフィン変換係数A0、アフィン変換係数A1・・・と順次アフィン変換をして生成もしくは更新されている。すなわち、仮定元画像Piに表されるワークW1の位置は、アフィン変換係数Aもしくはアフィン変換係数Aの修正履歴から検出されることができる。合成ボケ画像Ba1の元となる仮定元画像Piと、実ボケ画像B1の元となる未知である真の元画像とは、ほぼ同一であるため、仮定元画像Piで検出されたワークWiの位置は、未知である真の元画像に表されるワークWiの位置とほぼ同一であると判断できる。位置検出工程S10では、このようにして、未知である真の元画像に表されるワークWiの位置を検出することができる。なお、位置検出の誤差については、修正されるアフィン変換係数Aが限りなく小さくなるまで上記作業を繰り返すことによって、十分小さくすることができる。
【0064】
次いで、ステップS12に進み、次の位置検出を行うワークWiがあるか否かを判断する。次の位置検出を行うワークWiがある(YES)場合は、モデル読み込み工程S1および実ボケ画像撮像工程S5に戻り、上述の作業を繰り返す。次の位置検出を行うワークWiがない(NO)場合は、本作業を終了する。
【0065】
以下、本実施形態の効果を記載する。
(1)上述の位置検出方法は、フーリエ変換、逆フーリエ変換を用いず、撮像されたボケ画像Bとモデル画像Mに対して、アフィン変換操作と点拡散係数との畳み込み演算を行って生成された合成ボケ画像Baとの比較処理で差異を抽出する。そして、その差異に基づいてアフィン変換係数を修正して、その修正値からワークWiの位置を求めるという従来にはない方法である。このときの演算処理の大部分はアフィン変換操作と点拡散係数との畳み込み演算である。従って、繰り返し演算を行ったとしても、フーリエ変換、逆フーリエ変換を必要とする従来手法に比較して、少ない演算量でワークWiの位置を検出することができる。そのため、演算処理にかかる計算時間を低減することができ、ロボット10による作業の効率化に寄与することができる。
【0066】
(2)また、上述の位置検出方法は、修正されるアフィン変換係数Aもしくはアフィン変換係数Aの修正値が所定の値(閾値)以下になるまで繰り返し、演算処理が行われる。そのため、誤差を十分小さくすることができる。すなわち、ボケ画像B同士の比較であっても、ワークWiの位置を十分検出することができる。なお、この所定の値は、ロボット10の作業の内容、必要とされる精度、ワークWiの種類、大きさ等により任意に設定することができるため、作業の無駄が低減される。
【0067】
(3)上述の位置検出方法は、アフィン変換操作と点拡散係数との畳み込み演算でワークWiの位置を検出することができる。そのため、長いデータ長さの積和演算を必要とするフーリエ変換、逆フーリエ変換を行う従来手法に比較して、高い演算精度を必要としないでワークWiの位置を検出することができる。そのため、演算処理にかかる計算時間を低減することができ、ロボット10による作業の効率化に寄与することができる。
【0068】
(4)上述の位置検出方法は、逆数演算を行わないために、ノイズの影響を拡大するようなことはない。むしろ相関演算などにおいてはある領域の積和が行われるために、ノイズの影響を逆に小さくすることができる。従って、ワークWiの位置をより正確に検出することができる。
【0069】
(5)上述の位置検出方法は、元画像を推定する処理そのものにおいて、モデル画像Mに対するアフィン変換係数A、つまり、モデルに対する平行移動、回転、拡大縮小に対応する係数を求める。すなわち、このアフィン変換係数Aを用いることにより、モデルの位置からのワークWiの位置が自動的に求まる。つまり、元画像を推定する処理と、ワークWiの位置を推定する処理を同時に行うことができる。なお、従来手法においては、仮にボケの無い元画像が求まったとしても、ワークWiの位置を求めるのは、その画像を用いた別処理となる。そのため、処理にかかる時間を低減することができ、ロボット10による作業の効率化に寄与することができる。
【0070】
以上、本発明の実施形態について説明したが、上記実施形態に対しては、本発明の趣旨から逸脱しない範囲で様々な変形を加えることができる。例えば上記実施形態以外の変形例は、以下の通りである。
【0071】
(変形例1)本発明の実施形態では、モデル画像Miとしては、ワークWiをカメラ20により撮像した場合について、説明したがこれに限定されない。モデル画像Miの元になるモデルは、例えば、ワークWiのCAD/CAMデータであるモデルデータであってもよい。この場合でも同様な効果を奏することができる。
【0072】
(変形例2)また、モデル画像Miの背景である背景画像は、別途生成して、図1に示す制御部50の記憶装置40のモデル格納部42に格納し、図4に示すモデル読み込み工程S1でモデル画像Miとともに背景画像を読み込み、仮定元画像生成工程S2で、モデル画像Miと合成して仮定元画像Pを生成してもよい。この場合、背景画像は、モデル画像Miに表されるワークWiの画像が強調されるように明度差をつけてもよい。または、実ボケ画像撮像工程S5で撮像されるワークWiの背景、すなわちベルトコンベア5の表面と同様な背景画像を用意してもよい。このようにすることによって、画像比較工程S7でのボケ画像B,Ba同士を容易に比較することができる。
【0073】
なお、本実施形態では、ロボット10として多関節型ロボットを採用したが、これに限定されるものではなく、スカラー型のロボットであってもよい。また、ロボット10の用途は、ロボットハンド19による部品の把持、ハンダ付けや溶接のような加工を行う等様々な用途が想定される。さらに、産業用ロボットに限らず、医療用ロボットや家庭用ロボットであってもよい。
【図面の簡単な説明】
【0074】
【図1】位置検出装置の構成例を示す図。
【図2】ワークの例を示す図。
【図3】カメラで撮像されたワークの画像を示す図。
【図4】位置検出方法の流れを示すフローチャート。
【図5】各画像の例を示す図。
【図6】位置検出方法、特に画像比較処理を説明する図。
【符号の説明】
【0075】
1…位置検出装置、10…ロボット、20…カメラ、30…画像処理装置、32…画像生成部、33…画像比較処理部、36…仮定元画像生成部、37…仮定元画像更新部、38…合成ボケ画像生成部、42…モデル格納部、47…画像比較部、48…アフィン変換係数修正部、50…制御部、Ai…アフィン変換係数、Bi…実ボケ画像、Bai…合成ボケ画像、Mi…モデル画像、Pi…仮定元画像、Wi…作業対象物としてのワーク、G,Ga…重心、N,Na…モーメント、S1…モデル読み込み工程、S2…仮定元画像生成工程、S3…合成ボケ画像生成工程、S5…実ボケ画像撮像工程、S7…画像比較工程、S8…アフィン変換係数修正工程、S10…位置検出工程、S11…仮定元画像更新工程。

【特許請求の範囲】
【請求項1】
作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出方法であって、
前記作業対象物のモデルに対して、第1のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成工程と、
ボケの特性を示す点拡散係数を求める点拡散係数算出工程と、
前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成工程と、
生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較工程と、
前記画像比較工程で抽出された差異に基づいて、前記第1のアフィン変換係数を修正して第2のアフィン変換係数を求めるアフィン変換係数修正工程と、
修正された前記第2のアフィン変換係数により、前記作業対象物の位置を検出する位置検出工程と、を有することを特徴とする作業対象物の位置検出方法。
【請求項2】
前記アフィン変換係数修正工程で修正された前記第2のアフィン変換係数により、前記仮定元画像を更新する仮定元画像更新工程を有し、
前記合成ボケ画像生成工程において、更新された前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い第2の合成ボケ画像を生成し、
前記画像比較工程において、前記第2の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、
前記アフィン変換係数修正工程において、前記画像比較工程で抽出された差異に基づいて前記第2のアフィン変換係数の修正値を求め、
前記第2のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする請求項1に記載の作業対象物の位置検出方法。
【請求項3】
前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心および前記ボケ画像に示される前記作業対象物の重心を推定し、前記重心同士間の相対位置を比較して、
前記位置検出工程において、前記重心同士間の相対位置から平行移動量を推定することを特徴とする請求項1または2に記載の作業対象物の位置検出方法。
【請求項4】
前記画像比較工程において、前記合成ボケ画像に示される前記作業対象物の重心からのモーメントおよび前記ボケ画像に示される前記作業対象物の重心からのモーメントを推定し、前記合成ボケ画像の前記モーメントの分布と前記ボケ画像の前記モーメントの分布とを比較して、
前記位置検出工程において、前記モーメントの分布位置の違いから回転量を推定することを特徴とする請求項1乃至3のいずれか一項に記載の作業対象物の位置検出方法。
【請求項5】
前記モデルは、前記モデルを撮像したモデル画像もしくは前記モデルを構成するデータであるモデルデータであることを特徴とする請求項1乃至4のいずれか一項に記載の作業対象物の位置検出方法。
【請求項6】
前記モデル画像もしくは前記モデルデータを格納するモデル格納手段を備え、前記モデル格納手段には、前記モデルの背景となる背景画像を格納して、
前記仮定元画像生成工程もしくは前記仮定元画像更新工程において、アフィン変換を施した前記モデルと前記背景画像とを合成して前記仮定元画像を作成することを特徴とする請求項1乃至5のいずれか一項に記載の作業対象物の位置検出方法。
【請求項7】
作業対象物を撮像機器で撮像して得られたボケ画像から前記作業対象物の位置を検出する作業対象物の位置検出装置であって、
前記作業対象物のモデルに対して、第1のアフィン変換係数でアフィン変換を施し仮定元画像を生成する仮定元画像生成部と、
ボケの特性を示す点拡散係数を求める点拡散係数算出部と、
前記仮定元画像に対して、前記点拡散係数との畳み込み演算を行い前記仮定元画像の合成ボケ画像を生成する合成ボケ画像生成部と、
生成された前記合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出する画像比較部と、
前記画像比較部で抽出された差異に基づいて、前記第1のアフィン変換係数を修正して第2のアフィン変換係数を求めるアフィン変換係数修正部と、
修正された前記第2のアフィン変換係数により、前記作業対象物の位置を検出する位置検出部と、を備えることを特徴とする作業対象物の位置検出装置。
【請求項8】
前記アフィン変換係数修正部で修正された前記第2のアフィン変換係数により、前記仮定元画像を更新する仮定元画像更新部を有し、
前記合成ボケ画像生成部において、更新された前記仮定元画像に対して前記点拡散係数との畳み込み演算を行い第2の合成ボケ画像を生成し、
前記画像比較部において、前記第2の合成ボケ画像と撮像された前記ボケ画像とを比較して差異を抽出して、
前記アフィン変換係数修正部において、前記画像比較部で抽出された差異に基づいて前記第2のアフィン変換係数の修正値を求め、
前記第2のアフィン変換係数の修正値が所定の値以上である場合は、所定の値以下になるまで上記作業を繰り返すことを特徴とする請求項7に記載の作業対象物の位置検出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−133718(P2010−133718A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−307109(P2008−307109)
【出願日】平成20年12月2日(2008.12.2)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】