(57)【要約】【課題】対象物の形状が複雑で部分領域が小さい場合であっても、対象物のより正確な回転量および移動量を求めることができる画像処理装置等を提供できる。【解決手段】対象物を撮影した画像である撮影画像を取得する撮影画像取得部２０１と、対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から撮影画像に近似するものを選択する３次元モデル選択部２０２と、選択された３次元モデルを平面上に投影した投影画像を作成する投影画像作成部２０４と、撮影画像と投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出部２０５と、撮影画像と３次元モデルとを比較し、第１の回転量および第１の移動量を基に、第１の回転量および第１の移動量より正確な第２の回転量および第２の移動量を求める第２の回転移動量導出部２０９と、を備える画像処理装置２０。【選択図】図２
2018156412.tif 000002
【特許請求の範囲】
【請求項１】
対象物を撮影した画像である撮影画像を取得する撮影画像取得部と、
対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択部と、
選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成部と、
前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出部と、
前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出部と、
を備える画像処理装置。
【請求項２】
前記撮影画像から対象物の画像を抽出する対象物抽出部をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記対象物抽出部は、
前記撮影画像を予め定められた領域に分割した領域分割画像を作成する領域分割画像作成部と、
前記投影画像と前記領域分割画像とを比較し、当該領域分割画像から対象物以外の非対象物の領域の画像を削除することで、当該撮影画像から対象物の画像を抽出する非対象物削除部と、
を備えることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記対象物抽出部は、前記投影画像を前記第１の回転移動量導出部で求められた第１の回転量および第１の移動量で変換する回転移動部をさらに備え、
前記非対象物削除部は、前記回転移動部で変換した後の前記投影画像を使用して非対象物の領域の画像を削除することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記撮影画像取得部は、前記撮影画像として対象物に対する距離の情報を含む距離画像を取得することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記第２の回転移動量導出部は、ＩＣＰ（Iterative Closest Point）アルゴリズムを使用して前記距離画像と前記３次元モデルとを比較し、対象物の回転量および移動量をさらに正確に求めることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
対象物の画像を撮影する撮影装置と、
前記撮影装置が撮影した撮影画像を基に、対象物の回転量および移動量を求める画像処理装置と、
を備え、
前記画像処理装置は、
前記撮影装置から対象物を撮影した画像である撮影画像を取得する撮影画像取得部と、
対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択部と、
選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成部と、
前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出部と、
前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出部と、
を備える画像処理システム。
【請求項８】
前記画像処理装置により求められた対象物の前記第２の回転量および前記第２の移動量に基づき、対象物の把持を行なう把持装置をさらに備えることを特徴とする請求項７に記載の画像処理システム。
【請求項９】
コンピュータに、
対象物を撮影した画像である撮影画像を取得する撮影画像取得機能と、
対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択機能と、
選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成機能と、
前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出機能と、
前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理システム、プログラムに関する。
【背景技術】
【０００２】
近年、製品の組み立てをする際に、人に代わりロボット等を使用して行なう場合がある。このとき製品を構成する部品等の対象物をロボット等により把持する必要がある。そしてロボット等が対象物を把持するためには、対象物の３次元的な位置や移動量を正確に把握する必要がある。
対象物の３次元的な位置や移動量を正確に把握するのに、ＩＣＰ（Iterative Closest Point）アルゴリズムを用いて行なうことがある。これは入力として与えられる２つの点群の位置合わせを、一方の点群を構成する各点に対し他方の点群における最近傍点を探索し、このような対応点間の距離を最小化するような対象物の回転量および移動量を推定する方法である。
【０００３】
特許文献１には、前処理として画像の雑音除去を行い、把持可能領域を探索し、この情報をもとにＩＣＰアルゴリズムを適用するモデルの初期値を決定し、モデル全体の位置姿勢を推定する画像処理方法が開示されている。そして収束した評価関数がある閾値より小さければ、対象物体に対して他の物体との重なりをチェックし、把持可能と判断された物体について推定された位置姿勢にロボットを移動させ、ハンドリングする。
また特許文献２には、物体を撮影した距離画像上で物体に相当する物体領域に基づいて、この物体の位置姿勢を計測する位置姿勢計測方法が開示されている。ここでは距離画像の領域を分割した部分領域群のうち少なくとも１つの部分領域を物体領域として設定し、物体領域に物体の形状モデルを当て嵌めて、物体の位置姿勢を推定する。また当て嵌めの誤差に基づいて、物体領域を更新する。
さらに特許文献３には、粗い位置姿勢推定を行う第１のステップと、その結果を受けて詳細な位置姿勢を行う第２のステップによる２段階の位置姿勢推定を行う３次元物体照合装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２７７１８４号公報
【特許文献２】特開２０１１−１７４８７８号公報
【特許文献３】特開２００７−３２２３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながらＩＣＰアルゴリズムでは、２つの点群のデータにノイズが含まれると、回転量および移動量を正確に求めるのが困難である。またＩＣＰアルゴリズムを使用する前におおまかな位置合わせができていないと、同様に回転量および移動量を正確に求めるのが困難である。さらに対象物の３次元的な位置や移動量を把握するためのＩＣＰアルゴリズムを含む従来の方法は、対象物の形状が複雑で部分領域が小さい場合や、対象物に似たような平面や曲面が複数現れるような場合も対応できないという問題が全般的に存在する。さらに対象物の姿勢の概略値をユーザ等が予め与える必要がある場合もある。
本発明は、対象物の形状が複雑で部分領域が小さい場合であっても、対象物のより正確な回転量および移動量を求めることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、対象物を撮影した画像である撮影画像を取得する撮影画像取得部と、対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択部と、選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成部と、前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出部と、前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出部と、を備える画像処理装置である。
請求項２に記載の発明は、前記撮影画像から対象物の画像を抽出する対象物抽出部をさらに備えることを特徴とする請求項１に記載の画像処理装置である。
請求項３に記載の発明は、前記対象物抽出部は、前記撮影画像を予め定められた領域に分割した領域分割画像を作成する領域分割画像作成部と、前記投影画像と前記領域分割画像とを比較し、当該領域分割画像から対象物以外の非対象物の領域の画像を削除することで、当該撮影画像から対象物の画像を抽出する非対象物削除部と、を備えることを特徴とする請求項２に記載の画像処理装置である。
請求項４に記載の発明は、前記対象物抽出部は、前記投影画像を前記第１の回転移動量導出部で求められた第１の回転量および第１の移動量で変換する回転移動部をさらに備え、前記非対象物削除部は、前記回転移動部で変換した後の前記投影画像を使用して非対象物の領域の画像を削除することを特徴とする請求項３に記載の画像処理装置である。
請求項５に記載の発明は、前記撮影画像取得部は、前記撮影画像として対象物に対する距離の情報を含む距離画像を取得することを特徴とする請求項１に記載の画像処理装置である。
請求項６に記載の発明は、前記第２の回転移動量導出部は、ＩＣＰ（Iterative Closest Point）アルゴリズムを使用して前記距離画像と前記３次元モデルとを比較し、対象物の回転量および移動量をさらに正確に求めることを特徴とする請求項５に記載の画像処理装置である。
請求項７に記載の発明は、対象物の画像を撮影する撮影装置と、前記撮影装置が撮影した撮影画像を基に、対象物の回転量および移動量を求める画像処理装置と、を備え、前記画像処理装置は、前記撮影装置から対象物を撮影した画像である撮影画像を取得する撮影画像取得部と、対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択部と、選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成部と、前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出部と、前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出部と、を備える画像処理システムである。
請求項８に記載の発明は、前記画像処理装置により求められた対象物の前記第２の回転量および前記第２の移動量に基づき、対象物の把持を行なう把持装置をさらに備えることを特徴とする請求項７に記載の画像処理システムである。
請求項９に記載の発明は、コンピュータに、対象物を撮影した画像である撮影画像を取得する撮影画像取得機能と、対象物を回転させることで得られる複数の姿勢を反映した３次元モデルの中から前記撮影画像に近似するものを選択する３次元モデル選択機能と、選択された前記３次元モデルを平面上に投影した投影画像を作成する投影画像作成機能と、前記撮影画像と前記投影画像とを比較し、対象物の近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出機能と、前記撮影画像と前記３次元モデルとを比較し、前記第１の回転量および前記第１の移動量を基に、当該第１の回転量および当該第１の移動量より正確な対象物の回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出機能と、を実現させるためのプログラムである。
【発明の効果】
【０００７】
請求項１の発明によれば、対象物の形状が複雑で部分領域が小さい場合であっても、対象物のより正確な回転量および移動量を求めることができる画像処理装置を提供することができる。
請求項２の発明によれば、求められる対象物の回転量および移動量の精度がより向上する。
請求項３の発明によれば、非対象物の削除をより容易に行なうことができる。
請求項４の発明によれば、非対象物の削除の精度がより向上する。
請求項５の発明によれば、撮影画像と３次元モデルとの比較がより容易になる。
請求項６の発明によれば、対象物の回転量および移動量の算出がより高速化する。
請求項７の発明によれば、対象物の形状が複雑で部分領域が小さい場合であっても、対象物のより正確な回転量および移動量を求めることができる画像処理システムを提供することができる。
請求項８の発明によれば、画像処理装置により求められた対象物の回転量および移動量を基に対象物を把持することができる。
請求項９の発明によれば、対象物の形状が複雑で部分領域が小さい場合であっても、対象物のより正確な回転量および移動量を求めることができる機能をコンピュータにより実現できる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態に係る画像処理システムの全体構成の一例を示す図である。
【図２】画像処理装置の機能構成について説明したブロック図である。
【図３】（ａ）〜（ｂ）は、３次元モデルについて説明した図である。
【図４】画像処理装置の動作について説明したフローチャートである。
【図５】（ａ）〜（ｄ）は、図４の各ステップにおける具体的な内容について示した概念図である。
【図６】（ａ）〜（ｄ）は、図４の各ステップにおける具体的な内容について示した概念図である。
【図７】（ａ）〜（ｃ）は、図４の各ステップにおける具体的な内容について示した概念図である。
【図８】（ａ）〜（ｃ）は、図４の各ステップにおける具体的な内容について示した概念図である。
【発明を実施するための形態】
【０００９】
＜画像処理システムの全体構成の説明＞
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態に係る画像処理システムの全体構成の一例を示す図である。
図示する画像処理システム１は、３次元センサ１０と、画像処理装置２０と、ロボット３０とを備える。また画像処理システム１を構成するものではないが、ここでは対象物の一例である部品Ｂが複数個箱に入っている様子を併せて図示している。
【００１０】
３次元センサ１０は、部品Ｂの画像を撮影する撮影装置の一例である。３次元センサ１０は、部品Ｂを撮影し、撮影画像として距離画像を作成する。ここで距離画像とは、対象物に対する距離の情報を含む画像である。距離画像は、例えば、対象物に対する距離が近いほど階調値を大きく（明るく）、対象物に対する距離が遠いほど階調値を小さく（暗く）したグレー画像である。階調値が、例えば、８ｂｉｔで表される場合、階調値は、０〜２５５の整数値となる。また他に対象物の色の情報を含んでいてもよい。この色の情報は、例えば、ＲＧＢ（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ）データとすることができる。この場合、ＲＧＢデータは、（Ｒｅｄ）色、Ｇ（Ｇｒｅｅｎ）色、Ｂ（Ｂｌｕｅ）色のそれぞれの単色の階調値として表される。この階調値も例えば、８ｂｉｔ（０〜２５５）で表すことができる。
３次元センサ１０は、例えば、複数の部品Ｂがバラ積みになった箱の中を上方から撮影し、距離画像を作成する。よって高い位置にある部品Ｂの表面ほど大きい階調値となる。
【００１１】
３次元センサ１０が対象物に対する距離を測定する方法は、特に限られるものではない。
例えば、発光強度が変調された信号光を部品Ｂに放射し、部品Ｂからの反射光の位相遅延を受光素子の画素毎に検出して距離情報を得るＴＯＦ（Time Of Flight：光飛行時間）方式により対象物に対する距離を測定することができる。この場合、３次元センサ１０は、例えば、信号光として赤外光などを発するＬＥＤ（Light Emitting Diode）等の光源と、部品Ｂからの反射光を受光するＣＣＤ（Charge Coupled Device）センサ等の受光素子と、距離演算を行い距離画像を作成する演算部とを備える。
また赤外線レーザーで構造化光の単一のパターンを赤外線カメラで部品Ｂに投影し、この状態で対象物を撮影する。そして三角測量により画像上の各点の距離を算出することで対象物に対する距離を測定することができる。この場合、３次元センサ１０は、例えば、上記パターンを対象物に投影する赤外線レーザー等の光源と、対象物に投影されたパターンの画像を撮影するカメラと、三角測量を行なう演算部とを備える。
【００１２】
画像処理装置２０は、３次元センサ１０が撮影した距離画像を基に、部品Ｂの回転量および移動量を求める。またこれは画像処理装置２０は、３次元センサ１０が撮影した距離画像を基に、部品Ｂの位置および姿勢を求めると言うこともできる。画像処理装置２０の詳しい構成については後述する。
【００１３】
ロボット３０は、対象物である部品Ｂの把持を行なう把持装置の一例である。
ロボット３０は、実際に部品Ｂの把持を行なうハンド部３１と、ハンド部３１の位置決めを行なう腕部３２と、ハンド部３１および腕部３２の動作を制御する制御部３３とを備える。
【００１４】
以上説明した画像処理システム１は、次のように動作する。
まず３次元センサ１０が部品Ｂの距離画像を撮影する。この距離画像は、画像処理装置２０が取得し、画像処理装置２０がこの距離画像を基に、部品Ｂの回転量および移動量を求める。そして画像処理装置２０が求めた部品Ｂの回転量および移動量は、ロボット３０の制御部３３に送られる。制御部３３は、部品Ｂの回転量および移動量に基づき、ハンド部３１と腕部３２とを制御し、部品Ｂの把持を行なう。部品Ｂが把持された後は、例えば、ロボット３０がこの部品Ｂを予め定められた位置に並べたり、製品の組み立てを行なうために、部品Ｂの組み付けを行なう。
【００１５】
＜画像処理装置２０の説明＞
次に画像処理装置２０について詳述する。
図２は、画像処理装置２０の機能構成について説明したブロック図である。
画像処理装置２０は、撮影画像取得部２０１と、３次元モデル選択部２０２と、３次元モデル保持部２０３と、投影画像作成部２０４と、第１の回転移動量導出部２０５と、回転移動部２０６と、領域分割画像作成部２０７と、非対象物削除部２０８と、第２の回転移動量導出部２０９とを備える。
【００１６】
撮影画像取得部２０１は、３次元センサ１０から対象物である部品Ｂを撮影した画像である撮影画像を取得する。この撮影画像は、上述の通り例えば、距離画像である。
【００１７】
３次元モデル選択部２０２は、部品Ｂを回転させることで得られる複数の姿勢を反映した３次元モデルの中から距離画像に近似するものを選択する。ここで３次元モデルは、部品Ｂを複数の姿勢に回転させた複数の場合について用意されている。
【００１８】
図３（ａ）〜（ｂ）は、３次元モデルについて説明した図である。
このうち図３（ａ）は、部品Ｂの一例について示した図であり、部品Ｂの基本姿勢モデルを示している。
そして図３（ａ）の状態から、部品Ｂを軸回りに回転させた場合と、軸の傾きを加えた場合を考える。軸回りの回転は、例えば、図３（ａ）の矢印に示すような回転である。本実施の形態では、軸回りの回転として３０度ずつ回転させた場合を考える。この場合３６０度／３０度＝１２通りの３次元モデルが考えられる。また軸の傾きは、図３（ｂ）に示すような正１２面体が有する２０個の頂点方向に軸を傾けた場合を考える。結局ここでは部品Ｂを軸回りに回転させた場合と軸の傾きを加えた場合とで、１２×２０＝２４０通りの３次元モデルを設定することになる。
【００１９】
３次元モデル選択部２０２は、例えば、距離画像の中央近くに位置する物体について、３次元モデル中の何れの姿勢に近いかを識別する。具体的には、２４０通りの３次元モデルにおける部品Ｂの姿勢と様々な部品Ｂの姿勢で撮影された画像を比較した結果、その正解クラスとのペアを機械学習により３次元モデル選択部２０２に予め学習させる。そして３次元モデル選択部２０２は、その学習に基づき、３次元モデル中の何れの姿勢に近いかを識別する。
【００２０】
３次元モデル保持部２０３は、３次元モデルを記憶する。３次元モデルは、例えば、部品Ｂの表面の各部分の座標を表す数値データである。３次元モデル保持部２０３では、軸の傾き番号として０〜１９（２０通り）を設定し、軸回りの回転番号として０〜１１（１２通り）を設定する。そして軸の傾き番号および軸回りの回転番号の組み合わせで３次元モデルを管理する。３次元モデル選択部２０２は、３次元モデル保持部２０３を参照し、識別の結果、選択した３次元モデルを取得する。
【００２１】
なお３次元モデル保持部２０３は、３次元モデルとして全ての場合（上述した場合では、２４０通り）を記憶していてもよいが、例えば、部品Ｂの基本姿勢モデルのみを記憶するようにしてもよい。この場合、他の３次元モデルは、３次元モデル選択部２０２が、基本姿勢モデルの３次元モデルを基に算出する。これにより３次元モデル保持部２０３に必要な記憶容量が削減できる。
【００２２】
投影画像作成部２０４は、３次元モデル選択部２０２により選択された３次元モデルを平面上に投影した投影画像を作成する。このとき高さに相当する値を階調値とみなして画像を作成する。即ち、高さが高いほど階調値はより大きくなり、高さが低いほど階調値はより小さくなる画像が投影画像として作成される。
【００２３】
第１の回転移動量導出部２０５は、距離画像と投影画像作成部２０４により作成された投影画像とを比較し、部品Ｂの近似的な回転量および移動量である第１の回転量および第１の移動量を求める。
第１の回転移動量導出部２０５は、例えば、投影画像をテンプレートとし、距離画像との間でテンプレートマッチング（パターンマッチング）を行なう。これによりそれらが最も一致する回転量と位置を求める。テンプレートマッチングを用いることにより処理をより高速化することができる。なおこのときテンプレートマッチングを行なう際の回転量は、正１２面体の隣接する頂点同士間の角度が４１．４９度であることより、±２０．７４５度の範囲内で計算すればよい。つまり第１の回転移動量導出部２０５は、３次元モデル選択部２０２により選択された３次元モデルに基づき計算の範囲を制限する。これによりさらに処理を高速化することができる。
【００２４】
回転移動部２０６は、投影画像を第１の回転移動量導出部で求められた第１の回転量および第１の移動量で変換する。
これにより投影画像は、距離画像中に撮影されている部品Ｂの姿勢に類似するものとなる。ただし第１の回転移動量導出部２０５で求められた部品Ｂの第１の回転量および第１の移動量は、近似的なものである。そのため回転移動部２０６により変換された後の投影画像と、距離画像中に撮影されている部品Ｂの形状とを比較した場合、多少の誤差があり、一致するわけではない。
【００２５】
領域分割画像作成部２０７は、距離画像を予め定められた領域（分割領域）に分割した領域分割画像を作成する。領域分割画像作成部２０７は、例えば、距離画像から求めた隣接する局所領域の法線方向が予め定められた値以内である場合に同じ領域とする。よってこの場合、予め定められた領域は、法線方向が予め定められた値以内の局所領域を連結したものとなる。
【００２６】
非対象物削除部２０８は、回転移動部２０６で変換された後の投影画像と領域分割画像作成部２０７で求めた領域分割画像とを比較する。そして領域分割画像から対象物である部品Ｂ以外の非対象物の領域の画像を削除する。これにより距離画像から部品Ｂの画像を抽出する。具体的には、非対象物削除部２０８は、回転移動部２０６で変換された後の投影画像と領域分割画像とを重ねて比較する。そしてこの投影画像と領域分割画像におけるそれぞれの分割領域とが予め定められた割合以上重なっていない場合は、非対象物削除部２０８は、この分割領域を削除する。そしてこの結果を距離画像に反映させる。これにより距離画像には、部品Ｂの画像がほぼ残ることになり、距離画像から部品Ｂの画像を抽出することができる。
【００２７】
なおこの場合、第１の回転移動量導出部２０５で求めた部品Ｂの第１の回転量および第１の移動量は、近似的なものであり、多少の誤差を含む。そのためこれを基に回転移動部２０６で変換された後の投影画像についても領域分割画像とは一致しない箇所が存在する。そのため分割領域を削除したときに、部品Ｂの周辺部が僅かに削れたり、逆に非対象物の一部が僅かに残ることもある。しかし距離画像から部品Ｂの画像をほとんど抽出することができ、この後の第２の回転移動量導出部２０９の処理には、ほとんど影響を及ぼさない。
【００２８】
第２の回転移動量導出部２０９は、距離画像と３次元モデルとを比較し第１の回転移動量導出部２０５で求められた第１の回転量および第１の移動量を基に、第１の回転量および第１の移動量より正確な部品Ｂの回転量および移動量として第２の回転量および第２の移動量を求める。このとき使用される距離画像は、非対象物削除部２０８で求めた対象物である部品Ｂが抽出されたものである。
【００２９】
本実施の形態では、第２の回転移動量導出部２０９は、ＩＣＰ（Iterative Closest Point）アルゴリズムを使用して距離画像と３次元モデル選択部２０２で選択された３次元モデルとを比較し、部品Ｂの回転量および移動量をさらに正確に求める。つまり第２の回転移動量導出部２０９は、第１の回転移動量導出部２０５で求められた第１の回転量および第１の移動量を初期状態として、ＩＣＰアルゴリズムを実行し、部品Ｂのさらに正確な回転量および移動量として第２の回転量および第２の移動量を求める。なおＩＣＰアルゴリズムは、剛体変換（回転および移動）の関係にある２つの点群データ間の回転および移動量を求めるアルゴリズムである。そのため距離画像については、ＩＣＰアルゴリズムを適用する前にこの点群データに変換する必要がある。あるいは３次元モデルを、初めから点群データとして作成しておけば変換の必要はなくなる。
【００３０】
ＩＣＰアルゴリズムを用いた場合、部品Ｂの回転量および移動量は、３次元モデル選択部２０２で選択された３次元モデルに対する回転行列Ｒと移動行列Ｔとして求まる。
【００３１】
＜画像処理装置２０の動作の説明＞
次に画像処理装置２０の動作について説明する。
図４は、画像処理装置２０の動作について説明したフローチャートである。また図５（ａ）〜（ｄ）、図６（ａ）〜（ｄ）、図７（ａ）〜（ｃ）、および図８（ａ）〜（ｃ）は、図４の各ステップにおける具体的な内容について示した概念図である。
【００３２】
まず撮影画像取得部２０１が、３次元センサ１０から対象物である部品Ｂを撮影した画像である撮影画像として距離画像を取得する（ステップ１０１）。この距離画像は、例えば、図５（ａ）の画像である。図５（ａ）の距離画像は、複数の部品Ｂがバラ積みになった箱の中を上方から撮影したものである。
【００３３】
次に３次元モデル選択部２０２が、距離画像の中央近くに位置する物体について、３次元モデル保持部２０３に記憶されている３次元モデル中の何れの姿勢に近いかを識別することで、近似するものを選択する（ステップ１０２）。実際の３次元モデルは、数値データであるが、図５（ｂ）に、このとき選択された３次元モデルを画像化したものを示す。
【００３４】
そして投影画像作成部２０４が、３次元モデル選択部２０２により選択された３次元モデルを平面上に投影した投影画像を作成する（ステップ１０３）。図５（ｃ）は、この投影画像の一例を示した図である。図５（ｃ）では、上述したように高さに相当する値を階調値とみなして投影画像を作成しており、高さが高いほど階調値をより大きく、高さが低いほど階調値をより小さくしている。
【００３５】
さらに第１の回転移動量導出部２０５が、距離画像と投影画像とを比較し、部品Ｂの近似的な回転量および移動量として第１の回転量および第１の移動量を求める（ステップ１０４）。このとき上述したようにテンプレートマッチングを用いて部品Ｂの第１の回転量および第１の移動量を求める。図６（ａ）〜（ｃ）は、この処理を概念的に図示したものである。つまり図６（ａ）に示す投影画像と図６（ｂ）に示す距離画像とを比較し、図６（ｃ）に示すように第１の回転量および第１の移動量を求める。
【００３６】
そして回転移動部２０６が、投影画像を第１の回転移動量導出部２０５で求められた第１の回転量および第１の移動量で変換する（ステップ１０５）。図６（ｄ）は、変換後の投影画像を示している。
【００３７】
一方、領域分割画像作成部２０７は、距離画像を予め定められた領域（分割領域）に分割した領域分割画像を作成する（ステップ１０６）。図５（ｄ）は、距離画像から領域分割画像を生成した様子を示している。
【００３８】
次に非対象物削除部２０８が、回転移動部２０６で変換された後の投影画像と領域分割画像作成部２０７で求めた領域分割画像とを比較する。そして非対象物削除部２０８は、領域分割画像から対象物である部品Ｂ以外の非対象物の領域の画像を削除する（ステップ１０７）。さらに非対象物削除部２０８は、削除結果に基づき、距離画像から部品Ｂの画像を抽出する（ステップ１０８）。図７（ａ）〜（ｃ）は、この処理を概念的に図示したものである。つまり図７（ａ）に示す回転移動部２０６で変換された後の投影画像と図７（ｂ）に示す領域分割画像とを比較し、部品Ｂ以外の非対象物の領域の画像を削除する。そして図７（ｃ）に示すように距離画像から部品Ｂの画像を抽出する。
【００３９】
なおステップ１０５〜ステップ１０８の処理を行なう回転移動部２０６、領域分割画像作成部２０７および非対象物削除部２０８は、撮影画像の一例である距離画像から対象物である部品Ｂの画像を抽出する対象物抽出部であると捉えることもできる。
【００４０】
そして第２の回転移動量導出部２０９が、部品Ｂの画像を抽出した距離画像と３次元モデルとを比較し第１の回転移動量導出部２０５で求められた第１の回転量および第１の移動量を基に、部品Ｂの第２の回転量および第２の移動量を求める（ステップ１０９）。ここで求められる第２の回転量および第２の移動量は、第１の回転移動量導出部２０５で近似的に求めた第１の回転量および第１の移動量よりもさらに正確なものになる。このとき第２の回転移動量導出部２０９は、上述したようにＩＣＰアルゴリズムを用いて部品Ｂの第２の回転量および第２の移動量を求める。図８（ａ）〜（ｃ）は、この処理を概念的に図示したものである。つまり図８（ａ）に示す部品Ｂの画像を抽出した距離画像と図８（ｂ）に示す３次元モデルとを比較し、図８（ｃ）に示すように第２の回転量および第２の移動量を正確に求める。
【００４１】
以上詳述した例では、対象物である部品Ｂについて、まず３次元モデル選択部２０２が、３次元モデルを選択することで、おおまかな姿勢を求める。そして第１の回転移動量導出部２０５が、距離画像と投影画像とを比較し、部品Ｂの回転量および移動量を近似的に求める。さらに第２の回転移動量導出部２０９が、部品Ｂの回転量および移動量をさらに正確に求める。本実施の形態では、このように段階的に部品Ｂの回転量および移動量を求める方法を取る。
【００４２】
これにより第２の回転移動量導出部２０９においてＩＣＰアルゴリズムで部品Ｂの回転量および移動量を求めるときに、２つの点群のデータにノイズが含まれていてもその影響を受けにくい。また３次元モデル選択部２０２や第１の回転移動量導出部２０５においておおまかな位置合わせを行なうことができる。そのため対象物の姿勢の概略値をユーザ等が予め与える必要はない。その結果、より正確に部品Ｂの回転量および移動量を求めることができるとともに、より利便性が向上する。
【００４３】
またＩＣＰアルゴリズムを含む従来の方法では、対象物の形状が複雑で部分領域が小さい場合や対象物に似たような平面や曲面が複数現れるような場合には、対応できないという問題があったが、本実施の形態では、この場合でも対応が可能であり、より正確に部品Ｂの回転量および移動量を求めることができる。さらに従来の方法では、何度も最適化手法を繰り返して部品Ｂの回転量および移動量を求めるため、処理速度が低下しやすい問題があったが、本実施の形態では、そのような手法は取らないので、処理速度が向上しやすい。
【００４４】
さらに本実施の形態では、回転移動部２０６、領域分割画像作成部２０７および非対象物削除部２０８を設けることで、距離画像から部品Ｂの画像を抽出する。これによりさらに正確に部品Ｂの回転量および移動量を求めることができる。なお他の部品等がなく部品Ｂが単独で存在する場合は、距離画像から部品Ｂの画像を抽出する処理は必ずしも必要ではない。
【００４５】
なお以上詳述した例では、画像処理装置２０は、独立した装置であったが、３次元センサ１０やロボット３０に内蔵してもよい。
【００４６】
＜プログラムの説明＞
ここで以上説明を行った本実施の形態における画像処理装置２０が行なう処理は、ソフトウェアとハードウェア資源とが協働することにより実現される。例えば、画像処理装置２０内部の図示しない制御用ＣＰＵが、画像処理装置２０の各機能を実現するプログラムを図示しないメモリにロードして実行することにより行なわれる。
【００４７】
よって画像処理装置２０が行なう処理は、コンピュータに、対象物である部品Ｂを撮影した画像である撮影画像の一例である距離画像を取得する撮影画像取得機能と、部品Ｂを回転させることで得られる複数の姿勢を反映した３次元モデルの中から距離画像に近似するものを選択する３次元モデル選択機能と、選択された３次元モデルを平面上に投影した投影画像を作成する投影画像作成機能と、距離画像と投影画像とを比較し、部品Ｂの近似的な回転量および移動量である第１の回転量および第１の移動量を求める第１の回転移動量導出機能と、距離画像と３次元モデルとを比較し、第１の回転量および第１の移動量を基に、第１の回転量および第１の移動量より正確な部品Ｂの回転量および移動量として第２の回転量および第２の移動量を求める第２の回転移動量導出機能と、を実現させるためのプログラムとして捉えることもできる。
【００４８】
なお、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【００４９】
以上、本実施の形態について説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【符号の説明】
【００５０】
１…画像処理システム、１０…３次元センサ、２０…画像処理装置、３０…ロボット、２０１…撮影画像取得部、２０２…３次元モデル選択部、２０３…３次元モデル保持部、２０４…投影画像作成部、２０５…第１の回転移動量導出部、２０６…回転移動部、２０７…領域分割画像作成部、２０８…非対象物削除部、２０９…第２の回転移動量導出部
【図１】
2018156412.tif 000003
【図２】
2018156412.tif 000004
【図３】
2018156412.tif 000005
【図４】
2018156412.tif 000006
【図５】
2018156412.tif 000007
【図６】
2018156412.tif 000008
【図７】
2018156412.tif 000009
【図８】
2018156412.tif 000010