(57)【要約】【課題】高速に対象物の位置姿勢を検出する装置を提供する。【解決手段】画像処理装置は、特徴領域検出部と、選択部と、位置姿勢決定部とを備える。特徴領域検出部は、ワークを撮像することにより得られた２次元画像から、ワークの表面を構成する１つの面要素に含まれる特徴領域を検出する。選択部は、ワークを３次元計測することにより得られた３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを選択する。位置姿勢決定部は、少なくとも３つの点のデータと面要素の形状に関する事前情報とを用いて、面要素の位置姿勢に関する位置姿勢情報を決定する。【選択図】図４
2020180914.tif 000002
【特許請求の範囲】
【請求項１】
対象物の位置姿勢を検出する装置であって、
前記対象物を撮像することにより得られた２次元画像から、前記対象物の表面を構成する１つの面要素に含まれる特徴領域を検出するための検出部と、
前記対象物を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するための選択部と、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するための位置姿勢決定部とを備える、装置。
【請求項２】
前記少なくとも３つの点のデータは、前記特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点のデータを含む、請求項１に記載の装置。
【請求項３】
前記所定の条件は、前記少なくとも１つの第１点を前記特徴領域に投影した点と前記特徴領域の位置を代表する代表点との距離を規定する条件である、請求項２に記載の装置。
【請求項４】
前記所定の条件は、前記少なくとも１つの第１点を前記特徴領域に投影した点および前記代表点を通る直線と前記特徴領域の姿勢を代表する代表方向とのなす角度を規定する条件である、請求項３に記載の装置。
【請求項５】
前記少なくとも３つの点のデータは、前記少なくとも１つの第１点のデータの他に、少なくとも１つの第２点のデータを含み、
前記少なくとも１つの第２点と前記少なくとも１つの第１点との距離が規定範囲内である、請求項２から４のいずれか１項に記載の装置。
【請求項６】
前記少なくとも３つの点のデータは、前記３次元点群データで示される各点を前記２次元画像に投影したときに前記特徴領域内に属する点のデータである、請求項１に記載の装置。
【請求項７】
前記検出部は、前記面要素に存在する特徴部分および前記２次元画像における前記面要素の輪郭の少なくとも一方を用いて前記特徴領域を検出する、請求項１から６のいずれか１項に記載の装置。
【請求項８】
前記面要素は、平面または曲率が一定である曲面である、請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記対象物を撮像するための撮像部と、
前記対象物に予め定められたパターン光を照射する照射部とをさらに備え、
前記２次元画像は、前記パターン光が照射されていない状態で前記撮像部が撮像することにより得られ、
前記３次元点群データは、前記パターン光が照射されている状態で前記撮像部が撮像することにより得られる画像から生成される、請求項１から８のいずれか１項に記載の装置。
【請求項１０】
前記位置姿勢情報は、前記面要素内の１つの点における法線ベクトルを示す、請求項１から９のいずれか１項に記載の装置。
【請求項１１】
前記法線ベクトルに基づいて、前記対象物をピッキングするロボットへの動作指示を生成する動作指示生成部をさらに備える、請求項１０に記載の装置。
【請求項１２】
対象物の位置姿勢を検出する方法であって、
前記対象物を撮像することにより得られた２次元画像から前記対象物の表面を構成する１つの面要素に含まれる特徴領域を検出するステップと、
前記対象物を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するステップと、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するステップとを備える、方法。
【請求項１３】
対象物の位置姿勢を検出する方法をコンピュータに実行させるプログラムであって、
前記方法は、
前記対象物を撮像することにより得られた２次元画像から前記対象物の表面を構成する１つの面要素に含まれる特徴領域を検出するステップと、
前記対象物を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するステップと、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するステップとを備える、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、対象物の位置姿勢を検出する装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来、対象物をピッキングするロボットの位置決めのために、対象物を撮像することにより得られる三次元点群データに基づいて、対象物の位置姿勢を検出する技術が知られている。
【０００３】
例えば、特開２０１７−４２８９７号公報（特許文献１）には、対象物の三次元点群であるシーン点群からシーン特徴点を検出し、検出したシーン特徴点を用いて対象物の位置姿勢を算出するロボット制御装置が開示されている。当該ロボット制御装置は、特徴量に対応付けられた領域を示す領域情報を生成し、生成した領域情報に基づいてシーン点群の第１点の特徴量に対応付けられた領域に含まれるシーン点群の一部からシーン特徴点を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−４２８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術は、シーン点群の一部からシーン特徴点を検出するため、シーン点群の全体からシーン特徴点を検出する場合に比べて、シーン点群からシーン特徴点を検出ために要する時間が短縮される。しかしながら、シーン点群の当該一部は、特徴量に対応付けられた領域を示す領域情報に基づいて決定される。領域情報は、対象物の三次元モデルを示す三次元モデル点群から検出されるモデル特徴点に基づいて生成される。そのため、領域情報の生成に要する時間がかかり、対象物の位置姿勢の検出の高速化は十分ではない。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、高速に対象物の位置姿勢を検出する装置、方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本開示の一例によれば、対象物の位置姿勢を検出する装置は、検出部と、選択部と、位置姿勢決定部とを備える。検出部は、対象物を撮像することにより得られた２次元画像から、対象物の表面を構成する１つの面要素に含まれる特徴領域を検出する。選択部は、対象物を３次元計測することにより得られた３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを選択する。位置姿勢決定部は、少なくとも３つの点のデータと面要素の形状に関する事前情報とを用いて、面要素の位置姿勢に関する位置姿勢情報を決定する。
【０００８】
この開示によれば、２次元画像からの特徴領域の検出は、例えば、２次元のテンプレートを用いたテンプレートマッチングによって行なわれる。２次元のテンプレートマッチングで用意すべきテンプレートの数は、３次元のテンプレートマッチングで用意すべきテンプレートの数よりも少ない。そのため、マッチングに要する処理時間を抑制できる。
【０００９】
さらに、ワークＷの位置姿勢を特定する面要素の位置姿勢は、３次元点群データの中から選択された少なくとも３つの点に基づいて決定される。当該少なくとも３つの点は、２次元画像から検出された特徴領域に関連付けられた点である。そのため、３次元点群データから当該少なくとも３つの点のデータの選択に要する時間は短い。以上から、高速に対象物の位置姿勢を検出できる。
【００１０】
上述の開示において、少なくとも３つの点のデータは、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点のデータを含む。この開示によれば、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点は、面要素の位置を特定するために利用できる。
【００１１】
上述の開示において、所定の条件は、少なくとも１つの第１点を特徴領域に投影した点と特徴領域の位置を代表する代表点との距離を規定する条件である。この開示によれば、少なくとも１つの第１点は、面要素の位置を特定するために利用できる。
【００１２】
上述の開示において、所定の条件は、少なくとも１つの第１点を特徴領域に投影した点および代表点を通る直線と特徴領域の姿勢を代表する代表方向とのなす角度を規定する条件である。この開示によれば、特徴領域の姿勢を考慮して、３次元点群データから点を選択することができる。
【００１３】
上述の開示において、少なくとも３つの点のデータは、少なくとも１つの第１点のデータの他に、少なくとも１つの第２点のデータを含む。少なくとも１つの第２点と少なくとも１つの第１点との距離が規定範囲内である。この開示によれば、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点に基づいて、３次元点群データから第２点を容易に選択することができる。
【００１４】
上述の開示において、少なくとも３つの点のデータは、３次元点群データで示される各点を２次元画像に投影したときに特徴領域内に属する点のデータである。この開示によれば、３次元点群データの中から、面要素に含まれる点のデータを容易に選択できる。
【００１５】
上述の開示において、検出部は、面要素に存在する特徴部分および２次元画像における面要素の輪郭の少なくとも一方を用いて特徴領域を検出する。この開示によれば、検出部は、テンプレートマッチングなどの公知の技術を用いて容易に特徴領域を検出できる。
【００１６】
上述の開示において、面要素は、平面または曲率が一定である曲面である。この開示によれば、面要素は、３次元空間における方程式によって表される。そのため、位置姿勢決定部は、方程式に含まれる係数を求めることにより、面要素の位置姿勢を決定することができる。
【００１７】
上述の開示において、装置は、対象物を撮像するための撮像部と、対象物に予め定められたパターン光を照射する照射部とをさらに備える。２次元画像は、パターン光が照射されていない状態で撮像部が撮像することにより得られる。３次元点群データは、パターン光が照射されている状態で撮像部が撮像することにより得られる画像から生成される。
【００１８】
この開示によれば、撮像部の視野領域内の任意の１点の２次元画像におけるｘ，ｙ座標値は、３次元点群データにおける当該１点のデータのｘ，ｙ座標値とそれぞれ一致する。したがって、選択部は、３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを容易に選択できる。
【００１９】
上述の開示において、位置姿勢情報は、面要素内の１つの点における法線ベクトルを示す。この開示によれば、例えば対象物をピッキングするロボットの動作を指示するために、法線ベクトルを利用することができる。
【００２０】
上述の開示において、装置は、法線ベクトルに基づいて、対象物をピッキングするロボットへの動作指示を生成する動作指示生成部をさらに備える。この開示によれば、ロボットは、ワークＷの位置姿勢に応じたピッキング動作を行なうことができる。
【００２１】
本開示の一例によれば、対象物の位置姿勢を検出する方法は、第１〜第３のステップを備える。第１のステップは、対象物を撮像することにより得られた２次元画像から対象物の表面を構成する１つの面要素に含まれる特徴領域を検出するステップである。第２のステップは、対象物を３次元計測することにより得られた３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを選択するステップである。第３のステップは、少なくとも３つの点のデータと面要素の形状に関する事前情報とを用いて、面要素の位置姿勢に関する位置姿勢情報を決定するステップである。
【００２２】
本開示の一例によれば、プログラムは、上記の方法をコンピュータに実行させる。これらの開示によっても、高速に対象物の位置姿勢を検出することができる。
【発明の効果】
【００２３】
本開示によれば、高速に対象物の位置姿勢を検出することができる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態に係る制御システムの全体構成を示す概略図である。
【図２】薄板状のワークＷの３次元画像（距離画像）を示す図である。
【図３】図１に示す画像処理装置のハードウェア構成の一例を示す概略図である。
【図４】図１に示す画像処理装置の機能構成の一例を示すブロック図である。
【図５】画像処理部による第１の処理例を示す図である。
【図６】平面の法線ベクトルの算出方法を示す図である。
【図７】画像処理部による第２の処理例を示す図である。
【図８】画像処理部による第３の処理例を示す図である。
【図９】画像処理部による第４の処理例を示す図である。
【図１０】ワークが傾斜したときの第４の処理例を示す図である。
【図１１】画像処理部による第５の処理例を示す図である。
【図１２】面要素上の特徴部分の一例を示す図である。
【図１３】制御システムにおける処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２６】
§１  適用例
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、実施の形態に係る制御システムの全体構成を示す概略図である。図１に例示される制御システムＳＹＳは、生産ラインなどに組み込まれ、トレーなどに載置されたワークＷを１個ずつピッキングするような制御を行う。ワークＷは、図示しない上流側の製造装置などから搬送されるため、そのトレー内での位置姿勢はランダムになっている。
【００２７】
図１に例示される制御システムＳＹＳは、画像処理装置１００と、ロボットコントローラ２００と、ロボット３００とを備える。画像処理装置１００には、照明装置７および撮像装置８が接続されている。
【００２８】
ロボット３００は、ワークＷをピッキングする動作を行なう。ロボット３００は、ワークＷを把持するエンドエフェクタと、指示に従ってエンドエフェクタの位置姿勢を変更するための多関節アームとを含む。ロボット３００の動作は、ロボットコントローラ２００によって制御される。
【００２９】
ロボットコントローラ２００は、画像処理装置１００からの動作指示を受けて、ロボット３００の多関節アームを移動し、ロボット３００にワークＷをピッキングさせる。
【００３０】
照明装置７は、一種の面光源として機能するとともに、画像処理装置１００からの指示に従って任意の濃淡パターンの照明光を照射できるものとする。この任意の濃淡パターンは、照射面内で明るさが均一であるパターンおよび照射面内の所定方向に沿って明るさが周期的に変化するパターンを含む。
【００３１】
照明装置７は、主要なコンポーネントとして、ＬＥＤ（Light Emitting Diode）やハロゲンランプなどの光源と、照明装置７の照射面の側に配置されたフィルタとを含む。また、フィルタは、後述するような三次元形状の計測に必要な濃淡パターンを発生させるものであり、画像処理装置１００からの指令に従って、面内の透光率を任意に変化させることができる。
【００３２】
撮像装置８は、視野領域にトレー上のワークＷが含まれるように設置され、照明装置７によって照射された照明光がワークＷの表面で反射した光を撮像する。撮像装置８は、撮像により得られた画像を画像処理装置１００に出力する。
【００３３】
撮像装置８は、主要なコンポーネントとして、レンズなどの光学系と、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサといった撮像素子とを含む。
【００３４】
画像処理装置１００は、撮像装置８から受けた画像に基づいて、撮像装置８の視野に存在するワークＷの位置姿勢を検出する。画像処理装置１００は、検出したワークＷの位置姿勢に基づいて、当該ワークＷをピッキングするために取るべきエンドエフェクタの位置姿勢を算出し、算出した位置姿勢に移動する動作指示を生成する。画像処理装置１００は、生成した動作指示をロボットコントローラ２００に出力する。
【００３５】
具体的には、画像処理装置１００は、照明装置７によって濃淡パターンの照明光が照射されている状態において撮像装置８によって撮像された画像に基づいて、撮像装置８の視野領域を３次元計測する。当該３次元計測によって、視野領域に存在する物体（ワークＷを含む）における撮像装置８に対向する表面上の複数の点の３次元座標値を示す３次元点群データが生成される。
【００３６】
３次元点群データからワークＷの位置姿勢を検出する方法として、様々な視点からワークＷを見たときの姿勢ごとの３次元形状を示すテンプレートを用意し、３次元点群データに対してこれらのテンプレートのマッチングを行なう探索処理方法が考えられる。テンプレートは、ワークＷの３次元形状を示す３Ｄ−ＣＡＤデータから生成される。
【００３７】
しかしながら、上記の探索処理方法では、２次元のテンプレートマッチングと比べて用意すべきテンプレートの数が非常に多くなり、マッチングのための処理時間が増大する。
【００３８】
さらに、上記の探索処理方法では、３次元的な特徴の少ない形状（例えば薄板）のワークＷの場合に、ワークＷの位置姿勢の検出精度が低下する。
【００３９】
図２は、薄板状のワークＷの３次元画像（距離画像）を示す図である。図２の上段には、薄板状のワークＷの斜視図が示され、下段には上段のワークＷの距離画像が示される。距離画像は、撮像装置８の各画素の値として、撮像装置８から被写体表面までの距離に対応する情報が反映された画像であり、３次元点群データから生成される。図２に示されるように、薄板状のワークＷの場合、ワークＷと背景物体との境界における画素の値の変化が小さくなる。そのため、上記の探索処理方法では、ワークＷの位置姿勢の検出精度が低下する。
【００４０】
本実施の形態に係る画像処理装置１００は、このような検出時間の増大および検出精度の低下を抑制するために、３次元点群データに加えて２次元画像を用いて、ワークＷの位置姿勢を検出する。２次元画像は、濃淡パターンの照明光が照射されていない状態における撮像装置８の撮像によって得られる。
【００４１】
画像処理装置１００は、２次元画像から、ワークＷの表面を構成する１つの面要素に含まれる特徴領域を検出する。画像処理装置１００は、３次元点群データの中から、検出された特徴領域に関連付けられた少なくとも３つの点のデータを選択する。画像処理装置１００は、選択された少なくとも３つの点のデータと上記の面要素の形状に関する事前情報とを用いて、面要素の位置姿勢に関する位置姿勢情報を決定する。ワークＷの位置姿勢は、ワークＷの面要素の位置姿勢によって特定される。
【００４２】
２次元画像からの特徴領域の検出は、例えば、２次元のテンプレートを用いたテンプレートマッチングによって行なわれる。ワークＷの面要素を様々な視点から見た姿勢ごとの複数のテンプレートが予め用意される。ただし、２次元のテンプレートマッチングで用意すべきテンプレートの数は、３次元のテンプレートマッチングで用意すべきテンプレートの数よりも少ない。そのため、マッチングに要する処理時間を抑制できる。
【００４３】
さらに、ワークＷの位置姿勢を特定する面要素の位置姿勢は、３次元点群データの中から選択された少なくとも３つの点に基づいて決定される。当該少なくとも３つの点は、２次元画像から検出された特徴領域に関連付けられた点である。そのため、３次元点群データから当該少なくとも３つの点のデータの選択に要する時間は短い。
【００４４】
２次元画像からの特徴領域の検出には、当該特徴領域に対応する面要素に形成された模様、当該面要素と当該面要素の周囲との境界であるエッジなどを利用することができる。そのため、３次元的な特徴の少ない形状（例えば薄板）のワークＷであっても、２次元画像からの特徴領域を精度良く検出できる。その結果、ワークＷの位置姿勢の検出精度の低下を抑制できる。
【００４５】
このように、本実施の形態の画像処理装置によれば、ワークＷの位置姿勢の検出時間の増大を抑制することができる。さらに、３次元的な特徴の少ない形状（例えば薄板）のワークＷであっても、ワークＷの位置姿勢の検出精度の低下を抑制できる。
【００４６】
§２  具体例
次に、本実施の形態に係る制御システムの具体例について説明する。
【００４７】
＜Ａ．画像処理装置のハードウェア構成例＞
画像処理装置１００は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム（命令コード）を実行することで、本実施の形態に係る画像処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して画像処理装置１００にインストールされる。
【００４８】
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る画像処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、ＯＳと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【００４９】
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００５０】
図３は、図１に示す画像処理装置のハードウェア構成の一例を示す概略図である。図３に示されるように、画像処理装置１００は、演算処理部であるＣＰＵ（Central Processing Unit）１１０と、記憶部としてのメインメモリ１１２およびハードディスク１１４と、カメラインターフェイス１１６と、入力インターフェイス１１８と、表示コントローラ１２０と、プロジェクタインターフェイス１２２と、通信インターフェイス１２４と、データリーダ／ライタ１２６とを含む。これらの各部は、バス１２８を介して、互いにデータ通信可能に接続される。
【００５１】
ＣＰＵ１１０は、ハードディスク１１４にインストールされたプログラム（コード）をメインメモリ１１２に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１１４から読み出されたプログラムに加えて、撮像装置８によって取得された画像、キャリブレーションデータ、計測結果に関する情報などを保持する。さらに、ハードディスク１１４には、各種設定値などが格納されてもよい。なお、ハードディスク１１４に加えて、あるいは、ハードディスク１１４に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００５２】
カメラインターフェイス１１６は、ＣＰＵ１１０と撮像装置８との間のデータ伝送を仲介する。すなわち、カメラインターフェイス１１６は、撮像装置８と接続される。カメラインターフェイス１１６は、撮像装置８からの画像を一時的に蓄積するための画像バッファ１１６ａを含む。そして、カメラインターフェイス１１６は、画像バッファ１１６ａに所定コマ数の画像が蓄積されると、その蓄積された画像をメインメモリ１１２へ転送する。また、カメラインターフェイス１１６は、ＣＰＵ１１０が発生した内部コマンドに従って、撮像装置８に対して撮像コマンドを与える。
【００５３】
入力インターフェイス１１８は、ＣＰＵ１１０とマウス１０４、タッチパネル、キーボードなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス１１８は、ユーザが入力部を操作することで与えられる操作指令を受付ける。
【００５４】
表示コントローラ１２０は、ディスプレイ１０２と接続され、ＣＰＵ１１０における処理結果などをユーザに通知する。すなわち、表示コントローラ１２０は、ディスプレイ１０２での表示を制御する。
【００５５】
プロジェクタインターフェイス１２２は、ＣＰＵ１１０と照明装置７との間のデータ伝送を仲介する。より具体的には、プロジェクタインターフェイス１２２は、ＣＰＵ１１０が発生した内部コマンドに従って、照明装置７に対して照明コマンドを与える。
【００５６】
通信インターフェイス１２４は、ＣＰＵ１１０とロボットコントローラ２００などの外部装置との間のデータ伝送を仲介する。通信インターフェイス１２４は、典型的には、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）などからなる。
【００５７】
データリーダ／ライタ１２６は、ＣＰＵ１１０と記録媒体であるメモリカード１０６との間のデータ伝送を仲介する。すなわち、メモリカード１０６には、画像処理装置１００で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１２６は、このメモリカード１０６からプログラムを読出す。また、データリーダ／ライタ１２６は、ＣＰＵ１１０の内部指令に応答して、撮像装置８によって取得された入力画像および／または画像処理装置１００における処理結果などをメモリカード１０６へ書込む。なお、メモリカード１０６は、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体や、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体等からなる。
【００５８】
＜Ｂ．画像処理装置の機能構成例＞
図４は、図１に示す画像処理装置の機能構成の一例を示すブロック図である。図４に示されるように、画像処理装置１００は、撮像制御部１０と、記憶部１１と、画像処理部１２とを備える。
【００５９】
撮像制御部１０は、照明装置７および撮像装置８の動作を制御する。撮像制御部１０は、３次元撮像モードおよび２次元撮像モードのいずれかのモードに従って照明装置７および撮像装置８の動作を制御する。
【００６０】
３次元撮像モードの場合、撮像制御部１０は、濃淡パターンの照明光を照射するように照明装置７を制御し、予め定められた濃淡パターンの照明光（パターン光）が照射されている状態で撮像装置８に撮像指示を出力する。
【００６１】
２次元撮像モードの場合、撮像制御部１０は、照明装置７からパターン光が照射されていない状態で撮像装置８に撮像指示を出力する。このとき、撮像制御部１０は、オフ状態に照明装置７を制御してもよいし、撮像装置８の視野領域に対して均一な光を照射するように照明装置７を制御してもよい。
【００６２】
記憶部１１は、ワークＷの表面を構成する１つの面要素を様々な視点から見たときの姿勢ごとの画像を示すテンプレート１１ａを記憶する。ワークＷが直方体形状である場合、面要素は６個の平面のうちのいずれかである。ワークＷが円柱状である場合、面要素は、２個の底面および側面のうちのいずれかである。ワークＷが球状である場合、面要素は球面である。ワークＷが基板である場合、面要素は、電子部品が実装される面であってもよい。
【００６３】
記憶部１１は、さらに、テンプレート１１ａに対応する面要素の形状に関する事前情報１１ｂを記憶する。例えば、面要素が直方体形状のワークＷの面や円柱形状のワークＷの底面である場合、事前情報１１ｂは、面要素が平面であることを示す。面要素が円柱形状のワークＷの側面である場合、事前情報１１ｂは、面要素が円柱側面であることを示す。円柱形状のワークＷの半径が既知である場合、事前情報１１ｂはさらに当該半径を示してもよい。ワークＷが球状である場合、事前情報１１ｂは、面要素が球面であることを示す。球状のワークＷの半径が既知である場合、事前情報１１ｂはさらに当該半径を示してもよい。
【００６４】
画像処理部１２は、撮像装置８の撮像により得られた画像に対する処理を行なう。図４に示されるように、画像処理部１２は、２Ｄ画像取得部１３と、３Ｄ画像生成部１４と、特徴領域検出部１５と、選択部１６と、位置姿勢決定部１７と、動作指示生成部１８と、通信部１９とを含む。
【００６５】
２Ｄ画像取得部１３は、２次元撮像モードで撮像装置８によって撮像された２次元画像を撮像制御部１０から取得する。
【００６６】
３Ｄ画像生成部１４は、３次元撮像モードで撮像装置８によって撮像された画像に基づいて、撮像装置８の視野領域に３次元計測を行ない、３次元点群データを生成する。３次元点群データは、撮像装置８の視野領域に存在する物体表面上の各点の三次元座標を示す。
【００６７】
３次元計測処理として、例えば三角測距方式、同軸方式が採用され得る。三角測距方式は、撮像と灯光との光軸を基線長分だけ離間させ、視差を距離に変換する方式である。三角測距方式には、アクティブ法とパッシブ法とが含まれる。アクティブ法には、構造化照明法、位相シフト法、空間コード法が含まれる。同軸方式は、撮像と測距手段との光軸を同一に設定する方式である。測距手段として、ＴＯＦ（Time of Flight）方式、焦点方式が含まれる。３Ｄ画像生成部１４は、これらの方式のいずれかを用いて３次元計測処理を実行すればよい。例えば位相シフト法を用いて３次元計測処理が行なわれる。
【００６８】
位相シフト法は、照射面内において正弦波状に濃淡を変化させた濃淡パターンを有する照明光を照射した状態で撮像された画像（正弦波投影画像）を用いる方法である。照射面内の濃淡の変化周期や位相を異ならせた濃淡パターンが複数用意され、照明装置７は、撮像装置８の視野領域に対して、当該複数の濃淡パターンを順次照射する。３Ｄ画像生成部１４は、複数の濃淡パターンが照射されたときにそれぞれ撮像される画像を正弦波投影画像群として取得する。そして、３Ｄ画像生成部１４は、これらの正弦波投影画像間における対応する部分の明るさ（輝度や明度）の変化に基づいて、三次元座標を算出する。
【００６９】
特徴領域検出部１５は、公知のテンプレートマッチング手法を用いて、２Ｄ画像取得部１３によって取得された２次元画像から、テンプレート１１ａに対応する面要素に含まれる特徴領域を検出する。
【００７０】
選択部１６は、３Ｄ画像生成部１４によって生成された３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを選択する。２次元画像および３次元点群データの両者は、撮像装置８の撮像によって生成される。そのため、撮像装置８の視野領域内の任意の１点の２次元画像におけるｘ，ｙ座標値は、３次元点群データにおける当該１点のデータのｘ，ｙ座標値とそれぞれ一致する。したがって、選択部１６は、３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを容易に選択できる。３次元点群から選択される点の個数は、面要素の形状に応じて定められる。
【００７１】
位置姿勢決定部１７は、選択部１６によって選択された少なくとも３つの点のデータと事前情報１１ｂとに基づいて、面要素の位置姿勢に関する位置姿勢情報を決定する。位置姿勢情報は、例えば、面要素内の１つ点である対象点と、当該対象点における当該面要素に対する法線ベクトルとを示す。
【００７２】
動作指示生成部１８は、位置姿勢情報（例えば、対象点および法線ベクトル）に基づいて、ロボット３００に対する動作指示を生成する。例えば、動作指示生成部１８は、法線ベクトルを把持方向として決定し、エンドエフェクタが対象点に向かって法線ベクトルに沿って移動するような動作指示を生成する。
【００７３】
通信部１９は、ロボットコントローラ２００と通信可能であり、動作指示生成部１８によって生成された動作指示をロボットコントローラ２００に送信する。
【００７４】
＜Ｃ．画像処理部の処理例＞
次に、画像処理部１２の具体的な処理例について説明する。
【００７５】
（Ｃ−１．第１の処理例）
第１の処理例は、円柱形状のワークＷの底面（面要素）の位置姿勢を決定する例である。この例では、記憶部１１は、ワークＷの底面を様々な視点から見た姿勢ごとのテンプレート１１ａと、面要素が円形の平面であることを示す事前情報１１ｂとを記憶している。テンプレート１１ａは、ワークＷの底面の輪郭となるエッジ画素の位置を示す。
【００７６】
図５は、画像処理部による第１の処理例を示す図である。図５に示されるように、特徴領域検出部１５は、２次元画像においてエッジ画素３１を抽出する。特徴領域検出部１５は、２次元画像から抽出したエッジ画素３１とテンプレート１１ａとを照合することにより、２次元画像からワークＷの底面である面要素全体を特徴領域３０として検出する。このように、特徴領域検出部１５は、面要素の輪郭を用いて、２次元画像における面要素全体を特徴領域として検出する。
【００７７】
選択部１６は、３次元点群データから、特徴領域３０に対する相対位置が以下の条件（１）を満たす点Ｐb1のデータを選択する。
条件（１）：特徴領域の重心とｘ，ｙ座標値が一致する。言い換えると、点Ｐb1を２次元画像に投影した点と特徴領域の重心との距離が０である。
【００７８】
選択部１６は、特徴領域３０の重心である特徴点Ｐa1(ｘ1，ｙ1）を抽出する。特徴点Ｐa1(ｘ1，ｙ1）は、特徴領域３０の位置を代表する点である。選択部１６は、３次元点群データから特徴点Ｐa1に対応する点b1のデータを選択する。上述したように、２次元画像における点のｘ，ｙ座標値は、３次元点群データにおける当該点のデータのｘ，ｙ座標値と一致する。そのため、選択部１６は、ｘ，ｙ座標値が特徴点Ｐa1のｘ、ｙ座標値と一致する点Ｐb1（ｘ1，ｙ1，ｚ1）のデータを選択すればよい。
【００７９】
さらに、選択部１６は、３次元点群データから、特徴領域３０に対する相対位置が以下の条件（２）〜（４）を満たす点Ｐb2，Ｐb3のデータを選択する。
条件（２）：点Ｐb2，Ｐb3を２次元画像にそれぞれ投影した特徴点Ｐa2，Ｐa3が特徴領域内である。
条件（３）：特徴点Ｐa2，Ｐa3と特徴領域の重心との距離が規定距離（例えば底面の半径ｒの１／２）である。
条件（４）：特徴領域の重心と特徴点Ｐa2とを結ぶ線と、特徴領域の重心と特徴点Ｐa3とを結ぶ線とが平行ではない（典型的には直交する）。
【００８０】
選択部１６は、特徴領域３０の中から、条件（２）〜（４）で規定される特徴点Ｐa2（ｘ2，ｙ2），Ｐa3（ｘ3，ｙ3）を抽出する。そして、選択部１６は、３次元点群データから、ｘ，ｙ座標値が特徴点Ｐa2のｘ、ｙ座標値と一致する点Ｐb2（ｘ2，ｙ2，ｚ2）のデータを選択する。さらに、選択部１６は、３次元点群データから、ｘ，ｙ座標値が特徴点Ｐa3のｘ、ｙ座標値と一致する点Ｐb3（ｘ3，ｙ3，ｚ3）のデータを選択する。
【００８１】
このように、選択部１６は、特徴領域３０内の特徴点Ｐa1，Ｐa2，Ｐa3にそれぞれ対応する点Ｐb1，Ｐb2，Ｐb3のデータを選択する。特徴領域３０は、２次元画像における面要素の領域である。そのため、点Ｐb1，Ｐb2，Ｐb3は、面要素上の点となる。
【００８２】
位置姿勢決定部１７は、特徴領域３０の重心である特徴点Ｐa1に対応する点Ｐb1を、円形の平面である面要素の中心として決定する。
【００８３】
さらに、位置姿勢決定部１７は、面要素が平面であるという事前情報に従って、面要素を含む平面を決定する。点Ｐb1（ｘ1，ｙ1，ｚ1）を通る平面の方程式は、ａ（ｘ−ｘ1）＋ｂ（ｙ−ｙ1）＋ｃ（ｚ−ｚ1）＝０で表される。ベクトル（ａ，ｂ，ｃ）は、平面の法線ベクトルである。
【００８４】
図６は、平面の法線ベクトルの算出方法を示す図である。平面の法線ベクトルは、当該平面に沿った２つのベクトルの外積である。そこで、位置姿勢決定部１７は、点Ｐb1から点Ｐb2に向かうベクトルＰb1Ｐb2と、点Ｐb1から点Ｐb3に向かうベクトルＰb1Ｐb3との外積を法線ベクトルとして算出する。すなわち、位置姿勢決定部１７は、以下の式に従って、係数ａ，ｂ，ｃを算出する。
ａ＝（ｙ2−ｙ1）（ｚ3−ｚ1）−（ｙ3−ｙ1）（ｚ2−ｚ1）
ｂ＝（ｚ2−ｚ1）（ｘ3−ｘ1）−（ｚ3−ｚ1）（ｘ2−ｘ1）
ｃ＝（ｘ2−ｘ1）（ｙ3−ｙ1）−（ｘ3−ｘ1）（ｙ2−ｙ1）
もしくは、選択部１６は、３次元点群データの中から、特徴領域３０内の４つ以上の特徴点にそれぞれ対応する４つの以上の点のデータを選択してもよい。位置姿勢決定部１７は、最小二乗法に従って、選択部１６によって選択された４つ以上の点のデータを用いて上記の係数ａ，ｂ，ｃを算出してもよい。
【００８５】
このようにして、位置姿勢決定部１７は、半径ｒの円形の平面である面要素の位置姿勢を示す位置姿勢情報として、当該面要素の中心と、当該面要素の法線ベクトル（ａ，ｂ，ｃ）とを示す情報を生成する。
【００８６】
（Ｃ−２．第２の処理例）
図７は、画像処理部による第２の処理例を示す図である。第２の処理例は、第１の処理例と比較して、選択部１６の選択処理のみ異なる。
【００８７】
選択部１６は、第１の処理例と同様に、条件（１）を満たす点Ｐb1のデータを選択する。さらに、選択部１６は、条件（２）〜（４）の代わりに、以下の条件（５）（６）を満たす点Ｐb2，Ｐb3のデータを選択する。
条件（５）：点Ｐb1からの距離が規定範囲内である。規定範囲は、面要素の半径ｒを用いて規定され、例えばｒ／２〜ｒである。
条件（６）：点Ｐb1と点Ｐb2とを結ぶ線と点Ｐb1と点Ｐb3と結ぶ線とが平行ではない（典型的には直交する）。
【００８８】
特徴領域検出部１５により、２次元画像から円形の平面である面要素全体が特徴領域として検出されている。そのため、特徴領域の重心とｘ，ｙ座標値が一致する点Ｐb1は、面要素の中心となる。３次元点群において点Ｐb1からの距離が半径ｒ以内である点は、面要素上の点となる。従って、条件（５）を満たす点Ｐb2，Ｐb3は面要素上の点となる。さらに、条件（６）を満たすため、点Ｐb1から点Ｐb2に向かうベクトルＰb1Ｐb2と、点Ｐb1から点Ｐb3に向かうベクトルＰb1Ｐb3とは直交する。そのため、ベクトルＰb1Ｐb2とベクトルＰb1Ｐb3とを用いて、面要素の法線ベクトル（ａ，ｂ，ｃ）を算出することができる。
【００８９】
（Ｃ−３．第３の処理例）
第３の処理例は、平面視矩形の薄板であるワークＷの上面（面要素）の位置姿勢を決定する例である。この例では、記憶部１１は、ワークＷの上面を様々な視点から見た姿勢ごとのテンプレート１１ａと、面要素が矩形の平面であることを示す事前情報１１ｂとを記憶している。テンプレート１１ａは、ワークＷの上面の輪郭となるエッジ画素の位置を示す。
【００９０】
図８は、画像処理部による第３の処理例を示す図である。図８に示されるように、特徴領域検出部１５は、２次元画像においてエッジ画素３１を抽出する。特徴領域検出部１５は、２次元画像から抽出したエッジ画素３１とテンプレート１１ａとを照合することにより、２次元画像からワークＷの上面である面要素全体を特徴領域３０として検出する。
【００９１】
選択部１６は、第１の処理例と同様に、条件（１）を満たす点Ｐb1のデータを選択する。さらに、選択部１６は、３次元点群データから、特徴領域３０に対する相対位置が以下の条件（７）（８）をそれぞれ満たす点Ｐb2，Ｐb3のデータを選択する。
条件（７）：点Ｐb2を２次元画像に投影した特徴点Ｐa2は、特徴領域の１つの角から規定距離（矩形の面要素の対角線の長さの１／２よりも十分に小さい距離）だけ特徴点Ｐa1（重心）側に位置する。
条件（８）：点Ｐb3を２次元画像に投影した点は、特徴領域において、特徴点Ｐa2に対応する角に隣り合う角から規定距離（矩形の面要素の対角線の長さの１／２よりも十分に小さい距離）だけ特徴点Ｐa1（重心）側に位置する。
【００９２】
このようにして、選択部１６は、特徴領域３０内の特徴点Ｐa1，Ｐa2，Ｐa3にそれぞれ対応する点Ｐb1，Ｐb2，Ｐb3のデータを選択する。特徴領域３０は、２次元画像における面要素の領域である。そのため、点Ｐb1，Ｐb2，Ｐb3は、面要素上の点となる。
【００９３】
位置姿勢決定部１７は、特徴領域３０の重心である特徴点Ｐa1に対応する点Ｐb1を面要素の中心として決定する。
【００９４】
さらに、位置姿勢決定部１７は、面要素が平面であるという事前情報に従って、第１の処理例と同様に、面要素の中心と、当該面要素の法線ベクトルとを決定する。
【００９５】
さらに、位置姿勢決定部１７は、点Ｐb1から点Ｐb2に向かうベクトルＰb1Ｐb2と、点Ｐb1から点Ｐb3に向かうベクトルＰb1Ｐb3とを、面要素における２つの対角線の方向として決定する。対角線の方向は、矩形の面要素の姿勢を示す。
【００９６】
このようにして、位置姿勢決定部１７は、矩形の平面である面要素の位置姿勢を示す位置姿勢情報として、当該面要素の中心と当該面要素の法線ベクトルと２つの対角線の方向とを示す情報を生成する。
【００９７】
なお、対角線の方向を特定する必要がない場合には、選択部１６は、２次元画像から検出された特徴領域をラベリングし、特徴領域内であることを示すラベルを有する点から、同一直線上にない少なくとも３つの特徴点を選択してもよい。選択部１６は、３次元点群データの中から、少なくとも３つの特徴点に対応する点のデータを選択すればよい。
【００９８】
（Ｃ−４．第４の処理例）
図９は、画像処理部による第４の処理例を示す図である。図９に示されるように、第４の処理例は、平面視矩形の基板であるワークＷの上面（面要素）の位置姿勢を決定する例である。なお、ワークＷは、トレー内において、上面４０が水平面に略平行となるように積まれるものとする。
【００９９】
ワークＷの上面４０には、複数の電子部品４１が搭載されている。図９に示す例では、複数の電子部品４１は、ワークＷの上面４０の1つの辺付近に搭載される円柱形状の電子部品４１ａを含む。第４の処理例では、記憶部１１は、ワークＷの上面を様々な視点から見た姿勢ごとのテンプレート１１ａと、面要素が矩形の平面であることを示す事前情報１１ｂとを記憶している。テンプレート１１ａは、ワークＷの上面４０の輪郭となるエッジ画素と、ワークＷの上面４０に搭載された各電子部品４１の輪郭となるエッジ画素との位置を示す。
【０１００】
図９に示されるように、特徴領域検出部１５は、２次元画像においてエッジ画素３１を抽出する。特徴領域検出部１５は、２次元画像から抽出したエッジ画素３１とテンプレート１１ａとを照合することにより、２次元画像からワークＷの上面４０である面要素全体を特徴領域３０として検出する。
【０１０１】
テンプレート１１ａは、ワークＷの上面４０の輪郭となるエッジ画素だけでなく、各電子部品４１の輪郭となるエッジ画素の位置も示す。そのため、特徴領域検出部１５は、特徴領域３０の姿勢を検出できる。すなわち、特徴領域検出部１５は、特徴領域３０の輪郭を構成する４つの辺のうち、円柱形状の電子部品４１ａに最も近い辺３２の両端である特徴点Ｐa5，Ｐa6のｘ，ｙ座標値を検出する。なお、辺３２の両端の点のうち、電子部品４１ａに近い側の点を特徴点Ｐa5とし、電子部品４１ａに遠い側の点を特徴点Ｐa6とする。辺３２は、特徴領域３０の姿勢を代表する代表方向を表す。
【０１０２】
ワークＷの上面４０の重心Ｇには電子部品４１が搭載されている。そのため、上記の条件（１）を満たす点Ｐb1は、面要素である上面４０上の点ではなく、電子部品４１上の点となる。また、上記の条件（２）〜（４）を満たす点Ｐb2，Ｐb3も電子部品４１上の点になる可能性がある。
【０１０３】
そのため、第４の処理例では、選択部１６は、３次元点群データから、特徴領域３０に対する相対位置が以下の条件（９）〜（１１）を満たす点Ｐb1，Ｐb2，Ｐb3のデータを選択する。
条件（９）：点Ｐb1，Ｐb2，Ｐb3を２次元画像にそれぞれ投影した特徴点Ｐa1，Ｐa2，Ｐa3が特徴領域内である。
条件（１０）：特徴点Ｐa1，Ｐa2，Ｐa3と特徴点Ｐa5との距離がそれぞれ規定距離ｄ１，ｄ２，ｄ３である。
条件（１１）：特徴点Ｐa5と特徴点Ｐa1とを通る直線と、特徴点Ｐa5，Ｐa6を通る直線（辺３２を含む直線）とのなす角度が規定角度θ１である。特徴点Ｐa5と特徴点Ｐa2とを通る直線と、特徴点Ｐa5，Ｐa6を通る直線（辺３２を含む直線）とのなす角度が規定角度θ２である。特徴点Ｐa5と特徴点Ｐa3とを通る直線と、特徴点Ｐa5，Ｐa6を通る直線（辺３２を含む直線）とのなす角度が規定角度θ３である。
【０１０４】
規定距離ｄ１，ｄ２，ｄ３および規定角度θ１，θ２，θ３は、電子部品４１の配置に応じて、特徴点Ｐa1，Ｐa2，Ｐa3が電子部品４１の位置と重ならないように予め定められる。また、規定距離ｄ２，ｄ３および規定角度θ２，θ３は、特徴点Ｐa2と特徴点Ｐa3とが上面４０の一方の対角線上であり、かつ、特徴点Ｐa2と特徴点Ｐa3との中点が特徴領域の重心Ｇに一致するように定められる。さらに、規定距離ｄ１および規定角度θ１は、特徴点Ｐa1が上面４０の他方の対角線上となるように定められる。
【０１０５】
このように、選択部１６は、特徴領域３０内の特徴点Ｐa1，Ｐa2，Ｐa3にそれぞれ対応する点Ｐb1，Ｐb2，Ｐb3のデータを選択する。特徴点Ｐa1，Ｐa2，Ｐa3は、電子部品４１の位置と重ならない位置である。そのため、点Ｐb1，Ｐb2，Ｐb3は、面要素である上面４０上の点となる。
【０１０６】
図１０は、ワークＷが傾斜したときの第４の処理例を示す図である。図１０に示されるように、選択部１６は、ワークＷが傾斜したとしても、特徴領域３０の姿勢を考慮して、電子部品４１を重ならない特徴点Ｐa1，Ｐa2，Ｐa3を選択することができる。
【０１０７】
位置姿勢決定部１７は、面要素が平面であるという事前情報に従って、第１の処理例と同様に、面要素を含む平面を決定する。
【０１０８】
さらに、位置姿勢決定部１７は、決定した平面上において、点Ｐb2と点Ｐb3との中点Ｐb4を、面要素の中心として決定する。位置姿勢決定部１７は、第１の処理例と同様に、面要素の法線ベクトル（ａ，ｂ，ｃ）を決定する。
【０１０９】
さらに、位置姿勢決定部１７は、点Ｐb2から点Ｐb3に向かうベクトルＰb2Ｐb3と、点Ｐb1から面要素の中点Ｐb4に向かうベクトルＰb1Ｐb4とを、面要素における２つの対角線の方向として決定する。対角線の方向は、矩形の面要素の姿勢を示す。
【０１１０】
このようにして、位置姿勢決定部１７は、矩形の平面である面要素の位置姿勢を示す位置姿勢情報として、当該面要素の中心と当該面要素の法線ベクトルと２つの対角線の方向とを示す情報を生成する。
【０１１１】
なお、トレー内において、ワークＷの上面４０が水平面に対して傾斜する可能性がある場合、２次元画像において、矩形状の上面４０は、射影変換された歪んだ四角形に見える。この場合、射影変換を考慮したテンプレートマッチングにより、ワークＷのロールおよびピッチの回転角度を認識することができる。選択部１６は、当該回転角度に応じて規定距離ｄ１，ｄ２，ｄ３および規定角度θ１，θ２，θ３を適宜補正することにより、３次元点群データの中から、電子部品４１の位置と重ならない位置の上面４０上の点のデータを選択することができる。このように、トレー内において、ワークＷの上面４０が水平面に対して傾斜していても、画像処理装置１００は、上面４０の位置姿勢を決定することができる。
【０１１２】
（Ｃ−５．第５の処理例）
面要素は、平面に限定されず、例えば曲率が一定である曲面であってもよい。第５の処理例は、球形のワークＷの球面（面要素）の位置姿勢を決定する例である。この例では、記憶部１１は、ワークＷをある視点から見たときのテンプレート１１ａと、面要素が半径ｒの球面であることを示す事前情報１１ｂとを記憶している。テンプレート１１ａは、ワークＷをある視点から見たときの球面の稜線となるエッジ画素の位置を示す。
【０１１３】
図１１は、画像処理部による第５の処理例を示す図である。図１１に示されるように、特徴領域検出部１５は、２次元画像においてエッジ画素３１を抽出する。特徴領域検出部１５は、２次元画像から抽出したエッジ画素３１とテンプレート１１ａとを照合することにより、２次元画像からワークＷの球面に含まれる特徴領域３０を検出する。
【０１１４】
選択部１６は、３次元点群データの中から、２次元画像に投影したときに特徴領域３０内に属する３つの点Ｐb1，Ｐb2，Ｐb3のデータを選択する。具体的には、選択部１６は、３次元点群データの中から、特徴領域３０内の特徴点Ｐa1，Ｐa2，Ｐa3にそれぞれ対応する点Ｐb1，Ｐb2，Ｐb3のデータを選択する。
【０１１５】
位置姿勢決定部１７は、面要素が半径ｒの球面であるという事前情報に従って、面要素の位置姿勢を決定する。球面を示す方程式は、
ｘ2＋ｙ2＋ｚ2＋ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０
で表される。
ここで、係数ａ，ｂ，ｃ，ｄと半径ｒとは、以下の式（１）を満たす。
ａ2＋ｂ2＋ｃ2−４ｄ＝４ｒ2  ・・・式（１）。
【０１１６】
位置姿勢決定部１７は、点Ｐb1（ｘ1，ｙ1，ｚ1），点Ｐb2（ｘ2，ｙ2，ｚ2），点Ｐb3（ｘ3，ｙ3，ｚ3）の座標を上記の方程式にそれぞれ代入した以下の式（２）〜（４）と上記の式（１）との連立方程式を解くことにより、係数ａ，ｂ，ｃ，ｄを算出する。
ｘ12＋ｙ12＋ｚ12＋ａｘ1＋ｂｙ1＋ｃｚ1＋ｄ＝０・・・式（２）
ｘ22＋ｙ22＋ｚ22＋ａｘ2＋ｂｙ2＋ｃｚ2＋ｄ＝０・・・式（３）
ｘ32＋ｙ32＋ｚ32＋ａｘ3＋ｂｙ3＋ｃｚ3＋ｄ＝０・・・式（４）。
【０１１７】
このようにして、位置姿勢決定部１７は、面要素である球面の方程式を示す位置姿勢情報を生成する。
【０１１８】
位置姿勢決定部１７は、例えば、位置姿勢情報で示される球面の最上点を対象点として決定する。位置姿勢決定部１７は、位置姿勢情報で示される球面の方程式から算出される当該球面の中心点（−ａ／２，−ｂ／２，−ｃ／２）から対象点に向かうベクトルを、対象点における法線ベクトルとして決定すればよい。
【０１１９】
なお、ワークＷの半径ｒが既知ではない場合（事前情報１１ｂに半径ｒが含まれない場合）、選択部１６は、２次元画像に投影したときに特徴領域３０内に属する４つの点を選択すればよい。位置姿勢決定部１７は、当該４つの点の座標を代入した４つの連立方程式を解くことにより、係数ａ，ｂ，ｃ，ｄを算出できる。
【０１２０】
（Ｃ−６．他の処理例）
上記の例では、特徴領域検出部１５は、面要素の輪郭または稜線となるエッジ画素に基づいて、２次元画像から特徴領域を検出するものとした。しかしながら、面要素に特徴部分が存在する場合、特徴領域検出部１５は、当該特徴部分に基づいて、２次元画像から面要素に含まれる特徴領域を検出してもよい。
【０１２１】
図１２は、面要素上の特徴部分の一例を示す図である。図１２に示す例では、円柱形状のワークＷの底面（面要素）４２上に、特徴部分として４つのマーク４３が印刷されている。特徴領域検出部１５は、テンプレート１１ａを用いて、面要素上の４つのマーク４３を検出し、４つのマーク４３を頂点とする矩形を特徴領域として検出してもよい。
【０１２２】
特徴部分としては、印刷されマークの他に、印刷された文字、ねじなどの部品、凹部または凸部、などが含まれる。
【０１２３】
また、曲率が一定の面要素は、第５の処理例の球面の他に、円柱の側面であってもよい。円柱の側面上の点は、円柱の軸に下した垂線の長さが半径ｒに等しい。３次元空間における直線（軸）の方程式は、（ｘ−ｘ0）／ａ＝（ｙ−ｙ0）／ｂ＝（ｚ−ｚ0）／ｃで表される。そのため、半径ｒが既知である場合（事前情報１１ｂに半径ｒが含まれる場合）、選択部１６は、３次元点群データの中から、面要素（円柱の側面）に含まれる特徴領域に関連付けられる６つの点を選択すればよい。これにより、位置姿勢決定部１７は、上記の方程式のａ，ｂ，ｃ，ｘ0，ｙ0，ｚ0を算出できる。
【０１２４】
面要素は、平面、球面、円柱の側面に限定されず、任意の形状であってもよい。この場合、画像処理装置１００には、面要素のモデルデータを事前情報として予め登録しておく。位置姿勢決定部１７は、登録されたモデルデータと、選択部１６によって選択された点のデータとのマッチングを行なうことにより、面要素の位置姿勢を特定すればよい。
【０１２５】
＜Ｄ．処理の流れ＞
図１３は、制御システムにおける処理の流れを示すフローチャートである。まず、撮像装置８は、所定の濃淡パターンの照明光が照射された状態（３次元撮像モード）で、視野領域を撮像する（ステップＳ１）。画像処理装置１００のＣＰＵ１１０は、ステップＳ１で得られた画像に基づいて、撮像装置８の視野領域に存在する物体表面上の点のｘ，ｙ，ｘ座標値を示す３次元点群データを生成する（ステップＳ２）。
【０１２６】
次に、撮像装置８は、濃淡パターンの照明光が照射されていない状態（２次元撮像モード）で、視野領域を撮像する（ステップＳ３）。ＣＰＵ１１０は、ステップＳ２で得られた２次元画像から、ワークＷの面要素に含まれる特徴領域を検出する（ステップＳ４）。
【０１２７】
ＣＰＵ１１０は、ステップＳ２で生成された３次元点群データの中から、特徴領域に関連付けられた少なくとも３つの点のデータを選択する（ステップＳ５）。
【０１２８】
ＣＰＵ１１０は、選択された少なくとも３つの点のデータと面要素の形状を示す事前情報１１ｂとに基づいて、面要素の位置姿勢（たとえば、面要素上の対象点、および、対象点における面要素に対する法線ベクトル）を決定する（ステップＳ６）。
【０１２９】
ＣＰＵ１１０は、面要素の位置姿勢に基づいて、ロボット３００に対する動作指示を生成する（ステップＳ７）。生成された動作指示に従って、ロボットコントローラ２００は、ロボットの動作を制御する。これにより、制御システムＳＹＳの処理が終了する。
【０１３０】
＜Ｅ．作用・効果＞
以上のように、本実施の形態に係る画像処理装置１００は、ワークＷの位置姿勢を検出する。画像処理装置１００は、特徴領域検出部１５と、選択部１６と、位置姿勢決定部１７とを備える。特徴領域検出部１５は、ワークＷを撮像することにより得られた２次元画像から、ワークＷの表面を構成する１つの面要素に含まれる特徴領域を検出する。選択部１６は、ワークＷを３次元計測することにより得られた３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを選択する。位置姿勢決定部１７は、少なくとも３つの点のデータと面要素の形状に関する事前情報１１ｂとを用いて、面要素の位置姿勢に関する位置姿勢情報を決定する。
【０１３１】
２次元画像からの特徴領域の検出は、例えば、２次元のテンプレートを用いたテンプレートマッチングによって行なわれる。２次元のテンプレートマッチングで用意すべきテンプレートの数は、３次元のテンプレートマッチングで用意すべきテンプレートの数よりも少ない。そのため、マッチングに要する処理時間を抑制できる。
【０１３２】
さらに、ワークＷの位置姿勢を特定する面要素の位置姿勢は、３次元点群データの中から選択された少なくとも３つの点に基づいて決定される。当該少なくとも３つの点は、２次元画像から検出された特徴領域に関連付けられた点である。そのため、３次元点群データから当該少なくとも３つの点のデータの選択に要する時間は短い。ワークＷの位置姿勢の検出時間の増大を抑制することができる。
【０１３３】
また、２次元画像からの特徴領域の検出には、当該特徴領域に対応する面要素に形成された模様、当該面要素と当該面要素の周囲との境界であるエッジなどを利用することができる。そのため、３次元的な特徴の少ない形状（例えば薄板）のワークＷであっても、２次元画像からの特徴領域を精度良く検出できる。
【０１３４】
少なくとも３つの点のデータは、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つのの第１点のデータを含む。
【０１３５】
これにより、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点は、面要素の位置を特定するために利用できる。
【０１３６】
例えば、上記の条件（１）（３）（７）（８）（１０）は、少なくとも１つの第１点を特徴領域に投影した点と特徴領域の位置を代表する代表点との距離を規定する条件である。代表点は、例えば、特徴領域の重心、角、辺の中点などである。これにより、少なくとも１つの第１点は、面要素の位置を特定するために利用できる。
【０１３７】
上記の条件（１１）は、少なくとも１つの第１点および代表点を通る直線と特徴領域の姿勢を代表する代表方向とのなす角度を規定する条件である。代表方向は、例えば、矩形状の特徴領域の辺の方向である。これにより、特徴領域の姿勢を考慮して、３次元点群データから点を選択することができる。
【０１３８】
少なくとも３つの点のデータは、上記の少なくとも１つの第１点のデータの他に、少なくとも１つの第２点のデータを含む。上記の条件（５）では、少なくとも１つの第２点と少なくとも１つの第１点との距離が規定範囲内となる。これにより、特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点に基づいて、３次元点群データから第２点を選択することができる。
【０１３９】
上記の条件（２）（９）に従って選択されることにより、少なくとも３つの点のデータは、３次元点群データで示される各点を２次元画像に投影したときに特徴領域内に属する点のデータである。これにより、３次元点群データの中から、面要素に含まれる点のデータを容易に選択できる。
【０１４０】
特徴領域検出部１５は、面要素に存在する特徴部分および２次元画像における面要素の輪郭の少なくとも一方を用いて特徴領域を検出する。これにより、特徴領域検出部１５は、テンプレートマッチングなどの公知の技術を用いて容易に特徴領域を検出できる。
【０１４１】
面要素は、平面または曲率が一定である曲面である。これにより、面要素は、３次元空間における方程式によって表される。そのため、位置姿勢決定部１７は、方程式に含まれる係数を求めることにより、面要素の位置姿勢を決定することができる。
【０１４２】
２次元画像は、パターン光が照射されていない状態で撮像装置８が撮像することにより得られる。３次元点群データは、パターン光が照射されている状態で撮像装置８が撮像することにより得られる画像から生成される。これにより、撮像装置８の視野領域内の任意の１点の２次元画像におけるｘ，ｙ座標値は、３次元点群データにおける当該１点のデータのｘ，ｙ座標値とそれぞれ一致する。したがって、選択部１６は、３次元点群データから、特徴領域に関連付けられた少なくとも３つの点のデータを容易に選択できる。
【０１４３】
位置姿勢情報は、面要素内の１つの点における法線ベクトルを示してもよい。これにより、例えばワークＷをピッキングするロボットの動作を指示するために、法線ベクトルを利用することができる。
【０１４４】
画像処理装置１００は、法線ベクトルに基づいて、ワークＷをピッキングするロボットへの動作指示を生成する動作指示生成部１８をさらに備える。これにより、ロボットは、ワークＷの位置姿勢に応じたピッキング動作を行なうことができる。
【０１４５】
＜Ｆ．変形例＞
上記の説明では、照明装置７、撮像装置８および画像処理装置１００が別体として構成されるものとした。しかしながら、照明装置７、撮像装置８および画像処理装置１００が視覚センサ装置として一体化されてもよい。この場合、照明装置７および撮像装置８は、視覚センサ装置における照明部および撮像部としてそれぞれ動作する。
【０１４６】
また、上記の説明では、動作指示生成部１８は、画像処理装置１００に備えられるものとした。しかしながら、動作指示生成部１８は、画像処理装置１００の外部の装置（例えばＰＬＣ（プログラマブルロジックコントローラ）に備えられていてもよい。
【０１４７】
＜Ｇ．付記＞
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１４８】
（構成１）
対象物（Ｗ）の位置姿勢を検出する装置（１００）であって、
前記対象物（Ｗ）を撮像することにより得られた２次元画像から、前記対象物（Ｗ）の表面を構成する１つの面要素に含まれる特徴領域を検出するための検出部（１５）と、
前記対象物（Ｗ）を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するための選択部（１６）と、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するための位置姿勢決定部（１７）とを備える、装置（１００）。
【０１４９】
（構成２）
前記少なくとも３つの点のデータは、前記特徴領域に対する相対位置が所定の条件を満たす少なくとも１つの第１点のデータを含む、構成１に記載の装置（１００）。
【０１５０】
（構成３）
前記所定の条件は、前記少なくとも１つの第１点を前記特徴領域に投影した点と前記特徴領域の位置を代表する代表点との距離を規定する条件である、構成２に記載の装置（１００）。
【０１５１】
（構成４）
前記所定の条件は、前記少なくとも１つの第１点を前記特徴領域に投影した点および前記代表点を通る直線と前記特徴領域の姿勢を代表する代表方向とのなす角度を規定する条件である、構成３に記載の装置（１００）。
【０１５２】
（構成５）
前記少なくとも３つの点のデータは、前記少なくとも１つの第１点のデータの他に、少なくとも１つの第２点のデータを含み、
前記少なくとも１つの第２点と前記少なくとも１つの第１点との距離が規定範囲内である、構成２から４のいずれかに記載の装置（１００）。
【０１５３】
（構成６）
前記少なくとも３つの点のデータは、前記３次元点群データで示される各点を前記２次元画像に投影したときに前記特徴領域内に属する点のデータである、構成１に記載の装置（１００）。
【０１５４】
（構成７）
前記検出部（１５）は、前記面要素に存在する特徴部分および前記２次元画像における前記面要素の輪郭の少なくとも一方を用いて前記特徴領域を検出する、構成１から６のいずれかに記載の装置（１００）。
【０１５５】
（構成８）
前記面要素は、平面または曲率が一定である曲面である、構成１から７のいずれかに記載の装置（１００）。
【０１５６】
（構成９）
前記対象物を撮像するための撮像部（８）と、
前記対象物に予め定められたパターン光を照射する照射部（７）とをさらに備え、
前記２次元画像は、前記パターン光が照射されていない状態で前記撮像部（８）が撮像することにより得られ、
前記３次元点群データは、前記パターン光が照射されている状態で前記撮像部が撮像することにより得られる画像から生成される、構成１から８のいずれかに記載の装置（１００）。
【０１５７】
（構成１０）
前記位置姿勢情報は、前記面要素内の１つの点における法線ベクトルを示す、構成１から９のいずれかに記載の装置（１００）。
【０１５８】
（構成１１）
前記法線ベクトルに基づいて、前記対象物をピッキングするロボットへの動作指示を生成する動作指示生成部（１９）をさらに備える、構成１０に記載の装置（１００）。
【０１５９】
（構成１２）
対象物（Ｗ）の位置姿勢を検出する方法であって、
前記対象物（Ｗ）を撮像することにより得られた２次元画像から前記対象物（Ｗ）の表面を構成する１つの面要素に含まれる特徴領域を検出するステップと、
前記対象物（Ｗ）を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するステップと、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するステップとを備える、方法。
【０１６０】
（構成１３）
対象物（Ｗ）の位置姿勢を検出する方法をコンピュータに実行させるプログラムであって、
前記方法は、
前記対象物（Ｗ）を撮像することにより得られた２次元画像から前記対象物（Ｗ）の表面を構成する１つの面要素に含まれる特徴領域を検出するステップと、
前記対象物（Ｗ）を３次元計測することにより得られた３次元点群データから、前記特徴領域に関連付けられた少なくとも３つの点のデータを選択するステップと、
前記少なくとも３つの点のデータと前記面要素の形状に関する事前情報とを用いて、前記面要素の位置姿勢に関する位置姿勢情報を決定するステップとを備える、プログラム。
【０１６１】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６２】
７  照明装置、８  撮像装置、１０  撮像制御部、１１  記憶部、１１ａ  テンプレート、１１ｂ  事前情報、１２  画像処理部、１３  画像取得部、１４  画像生成部、１５  特徴領域検出部、１６  選択部、１７  位置姿勢決定部、１８  動作指示生成部、１９  通信部、３０  特徴領域、３１  エッジ画素、３２  辺、４０  上面、４１，４１ａ  電子部品、４２  底面、４３  マーク、１００  画像処理装置、１０２  ディスプレイ、１０４  マウス、１０６  メモリカード、１１０  ＣＰＵ、１１２  メインメモリ、１１４  ハードディスク、１１６  カメラインターフェイス、１１６ａ  画像バッファ、１１８  入力インターフェイス、１２０  表示コントローラ、１２２  プロジェクタインターフェイス、１２４  通信インターフェイス、１２６  データリーダ／ライタ、１２８  バス、２００  ロボットコントローラ、３００  ロボット、ＳＹＳ  制御システム、Ｗ  ワーク。
【図１】
2020180914.tif 000003
【図２】
2020180914.tif 000004
【図３】
2020180914.tif 000005
【図４】
2020180914.tif 000006
【図５】
2020180914.tif 000007
【図６】
2020180914.tif 000008
【図７】
2020180914.tif 000009
【図８】
2020180914.tif 000010
【図９】
2020180914.tif 000011
【図１０】
2020180914.tif 000012
【図１１】
2020180914.tif 000013
【図１２】
2020180914.tif 000014
【図１３】
2020180914.tif 000015