(57)【要約】【課題】  対象物の姿勢推定における推定精度を向上させることができる画像処理装置及び画像処理プログラムを提供する。【解決手段】  認識対象物体の姿勢を推定する場合、まず左画像及び右画像の両方について、認識対象物体の輪郭の複雑度（輪郭における勾配角度毎の不変量の次元数総和）を算出する。続いて、左画像及び右画像の各輪郭における勾配角度毎の不変量の次元数総和が非常に近いかどうかを判断し、両者の不変量の次元数総和が非常に近いときは、左画像及び右画像のうち類似度が高い方の画像を基準画像として設定し、両者の不変量の次元数総和がある程度異なっているときは、左画像及び右画像のうち不変量の次元数総和が大きい方の画像を基準画像として設定する。そして、選択された基準画像を用いて、認識対象物体の姿勢推定を行う。【選択図】  図６
2008003800.tif 000002
【特許請求の範囲】
【請求項１】
異なる２つの視点から対象物を撮像して第１画像及び第２画像を取得し、前記対象物の姿勢を推定する画像処理装置であって、
前記第１画像及び前記第２画像における前記対象物の複雑度をそれぞれ求める複雑度算出手段と、
前記複雑度算出手段により求めた前記対象物の複雑度に基づいて、前記第１画像及び前記第２画像のいずれか一方の画像を選択する画像選択手段と、
前記画像選択手段により選択された画像を用いて、前記対象物の姿勢を推定する第１姿勢推定手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記第１姿勢推定手段により前記対象物の姿勢を推定した後に、前記第１画像及び前記第２画像を用いて、前記対象物の姿勢を推定する第２姿勢推定手段を更に備えることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第２姿勢推定手段は、前記第１画像及び前記第２画像における前記対象物の輪郭のＤＴマップをそれぞれ作成するマップ生成手段と、前記ＤＴマップに基づいて前記第１画像及び前記第２画像における前記対象物の輪郭のＤＴ画像をそれぞれ作成し、前記輪郭のマッチング収束度を評価するための評価関数を用いて、前記各ＤＴ画像における前記対象物の輪郭のＤＴマッチングを行うマッチング手段とを有し、前記第１画像及び前記第２画像を徐々に拡大しながら、前記マップ生成手段及び前記マッチング手段を繰り返し行うことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記マップ生成手段は、前記輪郭のマッチング収束度に応じて、異なる形状を有する前記ＤＴマップを作成することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記第２姿勢推定手段は、前記第１画像及び前記第２画像における前記対象物の輪郭の勾配をそれぞれ抽出する手段を更に有し、
前記マッチング手段は、前記輪郭の勾配の要素を含む前記評価関数を用いて、前記ＤＴマッチングを行うことを特徴とする請求項３または４記載の画像処理装置。
【請求項６】
前記第２姿勢推定手段は、前記第１画像及び前記第２画像における前記対象物の輪郭の曲率をそれぞれ求める手段を更に有し、
前記マッチング手段は、前記輪郭の曲率の要素を含む前記評価関数を用いて、前記ＤＴマッチングを行うことを特徴とする請求項３または４記載の画像処理装置。
【請求項７】
異なる２つの視点から対象物を撮像して第１画像及び第２画像を取得し、前記対象物の姿勢を推定する画像処理をコンピュータに実行させる画像処理プログラムであって、
前記第１画像及び前記第２画像における前記対象物の複雑度をそれぞれ求める複雑度算出手順と、
前記複雑度算出手順で求められた前記対象物の複雑度に基づいて、前記第１画像及び前記第２画像のいずれか一方の画像を選択する画像選択手順と、
前記画像選択手順で選択された画像を用いて、前記対象物の姿勢を推定する第１姿勢推定手順とを前記コンピュータに実行させることを特徴とする画像処理プログラム。
【請求項８】
前記第１姿勢推定手順で前記対象物の姿勢を推定した後に、前記第１画像及び前記第２画像を用いて、前記対象物の姿勢を推定する第２姿勢推定手順を更に前記コンピュータに実行させることを特徴とする請求項７記載の画像処理プログラム。
【請求項９】
前記第２姿勢推定手順は、前記第１画像及び前記第２画像における前記対象物の輪郭のＤＴマップをそれぞれ作成するマップ生成手順と、前記ＤＴマップに基づいて前記第１画像及び前記第２画像における前記対象物の輪郭のＤＴ画像をそれぞれ作成し、前記輪郭のマッチング収束度を評価するための評価関数を用いて、前記各ＤＴ画像における前記対象物の輪郭のＤＴマッチングを行うマッチング手順とを含み、前記第１画像及び前記第２画像を徐々に拡大しながら、前記マップ生成手順及び前記マッチング手順を繰り返し行うことを特徴とする請求項８記載の画像処理プログラム。
【請求項１０】
前記マップ生成手順では、前記輪郭のマッチング収束度に応じて、形状の異なる前記ＤＴマップを作成することを特徴とする請求項９記載の画像処理プログラム。
【請求項１１】
前記第２姿勢推定手順は、前記第１画像及び前記第２画像における前記対象物の輪郭の勾配をそれぞれ抽出する手順を更に含み、
前記マッチング手順では、前記輪郭の勾配の要素を含む前記評価関数を用いて、前記ＤＴマッチングを行うことを特徴とする請求項９または１０記載の画像処理プログラム。
【請求項１２】
前記第２姿勢推定手順は、前記第１画像及び前記第２画像における前記対象物の輪郭の曲率をそれぞれ求める手順を更に含み、
前記マッチング手順では、前記輪郭の曲率の要素を含む前記評価関数を用いて、前記ＤＴマッチングを行うことを特徴とする請求項９または１０記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の撮像画像から対象物の姿勢を推定する画像処理装置及び画像処理プログラムに関するものである。
【背景技術】
【０００２】
従来の画像処理装置としては、例えば非特許文献１に記載されているように、物体の撮像画像を取り込み、ＤＴ（Distance Transforms）マッチングを用いて物体の姿勢を推定するものが知られている。
【非特許文献１】Sven Loncaric,et al.”’A Genetic Search-based Partial Image Matching”’.
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術においては、撮像画像の中に物体の一部を遮蔽する遮蔽物が存在していると、物体の姿勢の推定が困難になる。また、物体の姿勢によっては、姿勢の推定精度が低下してしまうことがある。
【０００４】
本発明の目的は、対象物の姿勢推定における推定精度を向上させることができる画像処理装置及び画像処理プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明は、異なる２つの視点から対象物を撮像して第１画像及び第２画像を取得し、対象物の姿勢を推定する画像処理装置であって、第１画像及び第２画像における対象物の複雑度をそれぞれ求める複雑度算出手段と、複雑度算出手段により求めた対象物の複雑度に基づいて、第１画像及び第２画像のいずれか一方の画像を選択する画像選択手段と、画像選択手段により選択された画像を用いて、対象物の姿勢を推定する第１姿勢推定手段とを備えることを特徴とするものである。
【０００６】
一般に、画像において対象物の輪郭等の複雑度が高くなると、その輪郭等の特徴量の次元数が増大するため、対象物の識別力が高くなる。そこで本発明の画像処理装置においては、第１画像及び第２画像における対象物の複雑度をそれぞれ求め、第１画像及び第２画像のうち対象物の複雑度が高いほうの画像を選択し、その選択した画像を用いて対象物の姿勢を推定する。つまり、第１画像及び第２画像のうち対象物の識別力が高いほうの画像を用いて、対象物の姿勢を推定する。これにより、対象物の姿勢の推定精度が向上するようになる。
【０００７】
好ましくは、第１姿勢推定手段により対象物の姿勢を推定した後に、第１画像及び第２画像を用いて、対象物の姿勢を推定する第２姿勢推定手段を更に備える。
【０００８】
この場合には、まず上記の複雑度算出手段、画像選択手段及び第１姿勢推定手段によって、第１画像及び第２画像のうち対象物の複雑度（識別力）が高いほうの画像のみを用いて、対象物の姿勢を粗推定する。そして、この時に対象物の姿勢推定がほぼ正しく収束するときには、第２姿勢推定手段によって、第１画像及び第２画像の両方を用いて対象物の姿勢を詳細に推定する。これにより、対象物の姿勢推定をより精度良く行うことができる。
【０００９】
このとき、好ましくは、第２姿勢推定手段は、第１画像及び第２画像における対象物の輪郭のＤＴマップをそれぞれ作成するマップ生成手段と、ＤＴマップに基づいて第１画像及び第２画像における対象物の輪郭のＤＴ画像をそれぞれ作成し、輪郭のマッチング収束度を評価するための評価関数を用いて、各ＤＴ画像における対象物の輪郭のＤＴマッチングを行うマッチング手段とを有し、第１画像及び第２画像を徐々に拡大しながら、マップ生成手段及びマッチング手段を繰り返し行う。
【００１０】
このようにＤＴマッチングを用いて対象物の姿勢を推定することにより、照明変動等が生じたり、多少の歪み等があっても、姿勢推定を柔軟に行うことができる。また、第１画像及び第２画像を徐々に拡大しながら、マップ生成手段及びマッチング手段を繰り返し行うことにより、輪郭のマッチング収束度が高くなっていくため、姿勢推定の誤収束を低減することができる。
【００１１】
マップ生成手段は、輪郭のマッチング収束度に応じて、異なる形状を有するＤＴマップを作成することが好ましい。
【００１２】
例えば、通常は輪郭（エッジ）からの距離に対して輝度が比例して変化するようなＤＴマップを作成し、輪郭のマッチング収束度が所定値よりも高くなると、輪郭（エッジ）の近傍で輝度が急峻に変化するようなＤＴマップを作成することにより、姿勢推定の誤収束を低減しつつ、姿勢推定の収束を早く行うことができる。
【００１３】
また、第２姿勢推定手段は、第１画像及び第２画像における対象物の輪郭の勾配をそれぞれ抽出する手段を更に有し、マッチング手段は、輪郭の勾配の要素を含む評価関数を用いて、ＤＴマッチングを行うことが好ましい。
【００１４】
このように輪郭（エッジ）からの距離だけでなく、輪郭の勾配も加味した評価関数を用いてＤＴマッチングを行うことにより、輪郭のマッチング収束度をより高くすることができる。これにより、例えば対象物の輪郭の一部分に隠れがあったり、対象物の輪郭の乱れが生じても、対象物の姿勢を安定して推定することができる。その結果、対象物の姿勢の推定精度を一層向上させることが可能となる。
【００１５】
また、第２姿勢推定手段は、第１画像及び第２画像における対象物の輪郭の曲率をそれぞれ求める手段を更に有し、マッチング手段は、輪郭の曲率の要素を含む評価関数を用いて、ＤＴマッチングを行っても良い。
【００１６】
対象物の輪郭に突起等のような曲率が大きい部分が存在すると、姿勢の推定が行いやすくなって有利である。そこで、第１画像及び第２画像における対象物の輪郭の曲率をそれぞれ求め、各輪郭の曲率に応じた重みを設定し、その重みを加味した評価関数を用いてＤＴマッチングを行う。これにより、例えば対象物の輪郭の一部分に隠れがあったり、対象物の輪郭の乱れが生じても、対象物の姿勢を安定して推定することができる。その結果、対象物の姿勢の推定精度を一層向上させることが可能となる。
【００１７】
また、本発明は、異なる２つの視点から対象物を撮像して第１画像及び第２画像を取得し、対象物の姿勢を推定する画像処理をコンピュータに実行させる画像処理プログラムであって、第１画像及び第２画像における対象物の複雑度をそれぞれ求める複雑度算出手順と、複雑度算出手順で求められた対象物の複雑度に基づいて、第１画像及び第２画像のいずれか一方の画像を選択する画像選択手順と、画像選択手順で選択された画像を用いて、対象物の姿勢を推定する第１姿勢推定手順とをコンピュータに実行させることを特徴とするものである。
【００１８】
一般に、画像において対象物の輪郭等の複雑度が高くなると、その輪郭等の特徴量の次元数が増大するため、対象物の識別力が高くなる。そこで本発明の画像処理プログラムの実行においては、第１画像及び第２画像における対象物の複雑度をそれぞれ求め、第１画像及び第２画像のうち対象物の複雑度が高いほうの画像を選択し、その選択した画像を用いて対象物の姿勢を推定する。つまり、第１画像及び第２画像のうち対象物の識別力が高いほうの画像を用いて、対象物の姿勢を推定する。これにより、対象物の姿勢の推定精度が向上するようになる。
【００１９】
好ましくは、第１姿勢推定手順で対象物の姿勢を推定した後に、第１画像及び第２画像を用いて、対象物の姿勢を推定する第２姿勢推定手順を更にコンピュータに実行させる。
【００２０】
この場合には、まず第１画像及び第２画像のうち対象物の複雑度（識別力）が高いほうの画像のみを用いて、対象物の姿勢を粗推定する。そして、この時に対象物の姿勢推定がほぼ正しく収束するときには、第１画像及び第２画像の両方を用いて、対象物の姿勢を詳細に推定する。これにより、対象物の姿勢推定をより精度良く行うことができる。
【００２１】
このとき、好ましくは、第２姿勢推定手順は、第１画像及び第２画像における対象物の輪郭のＤＴマップをそれぞれ作成するマップ生成手順と、ＤＴマップに基づいて第１画像及び第２画像における対象物の輪郭のＤＴ画像をそれぞれ作成し、輪郭のマッチング収束度を評価するための評価関数を用いて、各ＤＴ画像における対象物の輪郭のＤＴマッチングを行うマッチング手順とを含み、第１画像及び第２画像を徐々に拡大しながら、マップ生成手順及びマッチング手順を繰り返し行う。
【００２２】
このようにＤＴマッチングを用いて対象物の姿勢を推定することにより、照明変動等が生じたり、多少の歪み等があっても、姿勢推定を柔軟に行うことができる。また、第１画像及び第２画像を徐々に拡大しながら、マップ生成手段及びマッチング手段を繰り返し行うことにより、輪郭のマッチング収束度が高くなっていくため、姿勢推定の誤収束を低減することができる。
【００２３】
マップ生成手順では、輪郭のマッチング収束度に応じて、形状の異なるＤＴマップを作成することが好ましい。
【００２４】
例えば、通常は輪郭（エッジ）からの距離に対して輝度が比例して変化するようなＤＴマップを作成し、輪郭のマッチング収束度が所定値よりも高くなると、輪郭（エッジ）の近傍で輝度が急峻に変化するようなＤＴマップを作成することにより、姿勢推定の誤収束を低減しつつ、姿勢推定の収束を早く行うことができる。
【００２５】
また、第２姿勢推定手順は、第１画像及び第２画像における対象物の輪郭の勾配をそれぞれ抽出する手順を更に含み、マッチング手順では、輪郭の勾配の要素を含む評価関数を用いて、ＤＴマッチングを行うことが好ましい。
【００２６】
このように輪郭（エッジ）からの距離だけでなく、輪郭の勾配も加味した評価関数を用いてＤＴマッチングを行うことにより、輪郭のマッチング収束度をより高くすることができる。これにより、例えば対象物の輪郭の一部分に隠れがあったり、対象物の輪郭の乱れが生じても、対象物の姿勢を安定して推定することができる。その結果、対象物の姿勢の推定精度を一層向上させることが可能となる。
【００２７】
また、第２姿勢推定手順は、第１画像及び第２画像における対象物の輪郭の曲率をそれぞれ求める手順を更に含み、マッチング手順では、輪郭の曲率の要素を含む評価関数を用いて、ＤＴマッチングを行っても良い。
【００２８】
対象物の輪郭に突起等のような曲率が大きい部分が存在すると、姿勢の推定が行いやすくなって有利である。そこで、第１画像及び第２画像における対象物の輪郭の曲率をそれぞれ求め、各輪郭の曲率に応じた重みを設定し、その重みを加味した評価関数を用いてＤＴマッチングを行う。これにより、例えば対象物の輪郭の一部分に隠れがあったり、対象物の輪郭の乱れが生じても、対象物の姿勢を安定して推定することができる。その結果、対象物の姿勢の推定精度を一層向上させることが可能となる。
【発明の効果】
【００２９】
本発明によれば、対象物の撮像画像から対象物の姿勢を推定する際に、対象物の誤認識を低減し、推定精度を向上させることができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明に係わる画像処理装置及び画像処理プログラムの好適な実施形態について、図面を参照して詳細に説明する。
【００３１】
図１は、本発明に係わる画像処理装置の一実施形態の構成を示すブロック図である。本実施形態の画像処理装置１は、例えば認識対象物体として急須やマグカップ等の取っ手付き容器を把持するロボット（図示せず）に搭載されるものである。
【００３２】
同図において、画像処理装置１は、認識対象物体を撮像するカメラ２Ａ，２Ｂと、これらのカメラ２Ａ，２Ｂによる撮像画像を入力し、所定の画像処理を行い、認識対象物体の姿勢を推定する画像処理部３と、この画像処理部３の処理結果を表示するモニタ部４と、画像処理部３による画像処理に使用されるデータベースを蓄積記憶するデータ格納部５とを備えている。
【００３３】
カメラ２Ａ，２Ｂは、例えばＣＣＤカメラであり、異なる２つの視点から物体を撮像するようにロボットの両眼部（図示せず）に設けられている。
【００３４】
画像処理部３は、物体認識処理に特化した専用のハードウェアとして構成されていても良いし、或いはＣＰＵ、メモリ（記憶媒体）、入力部及び出力部を有するパーソナルコンピュータ等の汎用コンピュータを用い、この汎用コンピュータにソフトウェアとしての画像処理プログラムを実行させても良い。このとき、画像処理プログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記憶媒体または半導体メモリによって提供される。また、画像処理プログラムは、搬送波に重畳されたコンピュータデータ信号としてネットワークを介して提供されるものであっても良い。
【００３５】
また、画像処理部３の処理結果は、把持制御処理部６に送られる。把持制御処理部６は、画像処理部３で推定された認識対象物体の姿勢に基づいて、認識対象物体を把持するようにロボットハンド（図示せず）を制御する。
【００３６】
図２は、画像処理部３による処理手順の概略を示すフローチャートである。同図において、まずカメラ２Ａ，２Ｂによる撮像画像を取得する（手順１１）。カメラ２Ａ，２Ｂによる撮像画像の一例を図３に示す。図３（ａ）は、ロボットの左眼部に配置されたカメラ２Ａによる撮像画像（左画像）の概略を示し、図３（ｂ）は、ロボットの右眼部に配置されたカメラ２Ｂによる撮像画像（右画像）の概略を示している。
【００３７】
続いて、手順１１で取得した左画像及び右画像について、濃度値が一様とみなせる物体毎の領域に分割する（手順１２）。例えば図３に示す画像では、枠で囲まれた領域Ｒが認識対象物体を含む領域となる。
【００３８】
また、手順１２の領域分割処理と並行して、２次元の左画像及び右画像から３次元画像を復元する（手順１３）。この３次元画像の復元は、例えば両眼視差の考え方を利用して、ある点の左画像及び右画像での位置座標とカメラ２Ａ，２Ｂ間の距離とから当該点の奥行きを計算することにより行う。
【００３９】
続いて、手順１２で領域分割された２次元画像と手順１３で復元された３次元画像とに基づいて、エッジ検出等により領域Ｒ内に存在する物体の輪郭を抽出する（手順１４）。例えば図３（ａ）に示す左画像における認識対象物体は、図４に示すような輪郭Ｂとなる。
【００４０】
続いて、手順１４で得られた認識対象物体の輪郭Ｂの特徴量を抽出する（手順１５）。輪郭Ｂの特徴量としては、輪郭Ｂの位置、回転及び大きさに対して不変な不変量を用いる。この不変量としては、図５に示すように、輪郭Ｂにおける１つの勾配（接線の傾き）Ｈから他の勾配Ｈまでの距離ｄが挙げられる。例えば図５に示すような角度の勾配度では、不変量の次元数は３次元となる。なお、この特徴抽出処理は、左画像及び右画像の両方について行う。
【００４１】
続いて、手順１５で得られた認識対象物体の輪郭Ｂの特徴量を、データ格納部５にデータベースとして記憶されている特徴照合データとマッチングすることにより、特徴照合データに対する類似度を算出する（手順１６）。特徴照合データとしては、カメラにより認識対象物体をあらゆる角度（視点）から撮像した時の撮像画像から得られた多くのデータが登録されている。このマッチング処理は、左画像及び右画像の両方について行う。また、マッチング手法としては、例えばＤＰ（Dynamic Programming）マッチング等が採用される。
【００４２】
続いて、左画像及び右画像のうちのいずれか一方を基準画像として選択する（手順１７）。この画像選択処理については、後で詳述する。
【００４３】
続いて、選択された基準画像において、特徴照合データに対する最大類似度を算出する（手順１８）。そして、その最大類似度となる特徴照合データに対応する輪郭の形状を認識対象物体の初期姿勢位置に設定する（手順１９）。
【００４４】
続いて、まず基準画像のみを用いて、認識対象物体の姿勢を粗推定する（手順２０）。この単眼姿勢推定処理については、後で詳述する。続いて、その単眼姿勢推定の妥当性を判断する（手順２１）。この妥当性は、例えば姿勢推定された物体と手順１３で３次元復元して得られた物体とを重ね合わせた時の重なり程度から判断する。
【００４５】
このとき、姿勢推定が正しいと判定されたときは、引き続き左画像及び右画像の両方を用いて、認識対象物体の姿勢を詳細に推定する（手順２２）。この複眼姿勢推定処理についても、後で詳述する。続いて、その複眼姿勢推定の妥当性を判断する（手順２３）。この時の妥当性の判断手法は、手順２１と同様である。そして、姿勢推定が正しいと判定されたときは、その推定結果を把持制御処理部６に送出すると共にモニタ部４に表示させる（手順２４）。
【００４６】
一方、手順２１，２３において姿勢推定が正しくないと判断されたときは、認識対象物体を別の視点から撮像した時の撮像画像から得られた他の特徴照合データを用いて、認識対象物体の姿勢推定を行う。つまり、選択された基準画像において類似度が次に高くなるような特徴照合データを選択し、当該類似度となる特徴照合データに対応する輪郭の形状を認識対象物体の姿勢位置に設定する（手順２５）。そして、上記の手順２０〜２４を再度実行する。
【００４７】
図６は、上記の手順１７の画像選択処理の詳細を示すフローチャートである。同図において、まず左画像及び右画像の両方について、図２に示す手順１４で抽出された認識対象物体の輪郭Ｂの複雑度を求める（手順３１）。この輪郭Ｂの複雑度としては、当該輪郭Ｂにおける勾配角度毎の不変量の次元数総和を算出する。
【００４８】
勾配角度毎の不変量の次元数総和は、図７に示すような輪郭Ｂの次元分布から算出される。図７（ａ）は、左画像における輪郭Ｂの次元分布の一例を示し、図７（ｂ）は、右画像における輪郭Ｂの次元分布の一例を示している。また、図７において、横軸は輪郭Ｂの勾配角度を示し、縦軸は不変量の次元数を示している。
【００４９】
続いて、左画像及び右画像の各輪郭Ｂにおける勾配角度毎の不変量の次元数総和が非常に近い（両者の差が例えば５以下）かどうかを判断する（手順３２）。そして、両者の不変量の次元数総和が非常に近いときは、左画像及び右画像のうち、図２の手順１６で算出された類似度が高い方の画像を基準画像として設定する（手順３３）。一方、両者の不変量の次元数総和がある程度異なっているときは、左画像及び右画像のうち、手順３１で算出された不変量の次元数総和が大きい方の画像を基準画像として設定する（手順３４）。
【００５０】
このように特徴照合データに対する類似度だけでなく、認識対象物体の識別力に優れた輪郭Ｂの複雑度（不変量の次元数）を考慮して基準画像を決定するので、その後に実施する工程（図２に示す手順１８，１９）において、認識対象物体の初期姿勢位置の設定を高精度に行うことができる。その結果、更にその後に実施する姿勢推定処理（図２に示す手順２０，２２）に有利となる。
【００５１】
図８は、上記の手順２０の単眼姿勢推定処理の詳細を示すフローチャートである。同図において、まず単眼姿勢推定に関する各種の初期設定を行う（手順４１）。このとき、初期設定すべきパラメータとしては、画像の縮小率及び拡大率、回転・並進計算の初期値、処理ループ回数の上限等がある。
【００５２】
続いて、図６に示す処理で選択された基準画像を所定の縮小率で縮小する（手順４２）。そして、縮小された基準画像における輪郭のＤＴ（Distance Transforms）マップを作成する（手順４３）。ＤＴマップとは、図９に示すように、後述するＤＴ画像（輪郭のエッジまでの最近傍距離画像）を作成するためのマップである。ＤＴマップの横軸は、輪郭のエッジに対する距離を示し、ＤＴマップの縦軸は、輝度を示している。図９に示すＤＴマップは、輪郭のエッジに近くなるに従い輝度が線形的に大きくなるような分布（形状）を有している。
【００５３】
続いて、そのようなＤＴマップを基にして、縮小された基準画像から輪郭のＤＴ画像を作成する（手順４４）。例えば基準画像における輪郭が図１０（ａ）に示すようなものである場合、ＤＴマップに基づいてＤＴ画像を作成すると、図１０（ｂ）に示すように、輪郭のエッジから離れるに従ってぼやけた画像となる。
【００５４】
続いて、このＤＴ画像をデータ格納部５にデータベースとして記憶されている３次元の輪郭形状データとＤＴマッチング（最適化）することにより、マッチングエラー値を算出する（手順４５）。輪郭形状データとしては、例えばステレオレンジファインダにより認識対象物体の情報をあらゆる視点から測定して得られた多くのデータが登録されている。ＤＴマッチングは、例えば回転・並進計算を用いて、ＤＴ画像と輪郭形状データとを合わせ込むことにより行う。このとき、マッチングエラー値の算出には、例えば下記式のような輪郭のマッチング収束度を評価するための評価関数を用いる。
【数１】
2008003800.tif 000003
ただし、Dis：ＤＴ画像の輪郭上の点と輪郭形状データの輪郭上の対応する点との距離
【００５５】
このようなＤＴマッチングは、輪郭のエッジを利用するため、照明変化等の環境変動に強いという利点がある。また、ぼかしたＤＴ画像を用いるので、多少の歪みや傾きがあっても、柔軟に検出することが可能である。
【００５６】
続いて、単眼姿勢推定処理が終了タイミングであるかどうかを判断し（手順４６）、単眼姿勢推定処理が終了タイミングのときは、本処理を終了させる。一方、単眼姿勢推定処理が終了タイミングでないときは、手順４２で縮小済みの基準画像を所定の拡大率で若干拡大させ（手順４７）、手順４３に戻る。なお、手順４６における判断は、基準画像の拡大率が予め設定された閾値に達したかどうかや、手順４７の処理ループ回数が上限値に達したかどうかによって行う。また、この時の基準画像の拡大率は、手順４２における基準画像の縮小率に比べて十分小さいものである。
【００５７】
このような単眼姿勢推定処理では、まず最初に画像を小さくするので、その分だけ画素数が少なくなるだけでなく、輪郭に突部が存在する場合に、特にフィルタをかけなくても当該突部がぼやけるようになる。このため、余計な処理が不要となり、処理速度が上がる。また、その後で画像を徐々に大きくして、ＤＴマップ作成、ＤＴ画像作成及びＤＴマッチングを繰り返し行うので、マッチングエラー値が徐々に小さくなっていき、姿勢推定の誤収束が生じにくくなる。
【００５８】
図１１は、上記の手順２２の複眼姿勢推定処理の詳細を示すフローチャートである。同図において、まず複眼姿勢推定に関する各種の初期設定を行う（手順５１）。このとき、初期設定すべきパラメータとしては、単眼姿勢推定に関する初期設定と同様に、画像の縮小率及び拡大率、回転・並進計算の初期値、処理ループ回数の上限の他、マッチングエラー値の初期値等がある。
【００５９】
続いて、左画像及び右画像をそれぞれ所定の縮小率で縮小する（手順５２）。なお、縮小後の左画像及び右画像のサイズは、図８に示す手順４２における縮小後の基準画像のサイズよりも大きいことが望ましい。
【００６０】
続いて、縮小された各画像における輪郭のＤＴマップを作成する（手順５３）。ここでは、図１２（ａ）に示すような線形のＤＴマップ（図９と同様）と、図１２（ｂ）に示すような非線形のＤＴマップとが用意されてある。図１２（ｂ）に示すＤＴマップは、輪郭のエッジに近くなるに従って輝度が大きくなり、特に輪郭のエッジ近傍において輝度が急峻となるような分布（形状）を有している。
【００６１】
このような輪郭のＤＴマップを作成する処理の詳細を図１３に示す。同図において、まず最新のマッチングエラー値が予め設定された閾値よりも大きいかどうかを判断し（手順６１）、最新のマッチングエラー値が閾値よりも大きいときは、図１２（ａ）に示すような線形のＤＴマップを作成する（手順６２）。一方、最新のマッチングエラー値が閾値以下であるときは、図１２（ｂ）に示すような非線形のＤＴマップを作成する（手順６３）。
【００６２】
図１１に戻り、上記のようにＤＴマップを作成した後、そのＤＴマップを基にして、縮小された各画像から輪郭のＤＴ画像を作成する（手順５４）。続いて、このＤＴ画像を３次元の輪郭形状データとＤＴマッチングすることにより、マッチングエラー値を算出する（手順５５）。このＤＴマッチングの計算手法は、図８に示す手順４５と同様である。
【００６３】
続いて、複眼姿勢推定処理が終了タイミングかどうかを判断する（手順５６）。この判断手法は、図８に示す手順４６と同様である。そして、複眼姿勢推定処理が終了タイミングのときは、本処理を終了させ、複眼姿勢推定処理が終了タイミングでないときは、手順５２で縮小された各画像を所定の拡大率で若干拡大させ（手順５７）、手順５３に戻る。なお、この時の各画像の拡大率は、手順５２における各画像の縮小率に比べて十分小さいものである。
【００６４】
このような複眼姿勢推定処理においても、左画像及び右画像について最初に画像を小さくするので、上述したように処理速度が速くなる。また、その後で左画像及び右画像を徐々に大きくして、各画像についてＤＴマップ作成、ＤＴ画像作成及びＤＴマッチングを繰り返し行うので、上述したように姿勢推定の誤収束が一層生じにくくなる。
【００６５】
従って、本姿勢推定処理を実施すると、図１４に示すように、左画像及び右画像の何れにおいても、画像から抽出された物体の輪郭Ｂの位置及び姿勢を輪郭形状データに対してほぼ一致させることができ、結果的に物体の姿勢推定をうまく収束させることが可能となる。
【００６６】
また、最初は図１２（ａ）に示す線形のＤＴマップを基にＤＴ画像を作成して、ＤＴマッチングを行い、これを繰り返すことでマッチングエラー値が十分小さくなると、今度は図１２（ｂ）に示す非線形のＤＴマップを基にＤＴ画像を作成して、ＤＴマッチングを行うようになるので、姿勢推定の収束速度を速くすることができる。
【００６７】
以上において、図６に示す手順３１は、第１画像及び第２画像における対象物の複雑度をそれぞれ求める複雑度算出手段（複雑度算出手順）を構成する。図６に示す手順３２，３４は、複雑度算出手段により求めた対象物の複雑度に基づいて、第１画像及び第２画像のいずれか一方の画像を選択する画像選択手段（画像選択手順）を構成する。図２に示す手順２０は、画像選択手段により選択された画像を用いて、対象物の姿勢を推定する第１姿勢推定手段（第１姿勢推定手順）を構成する。図２に示す手順２２は、第１姿勢推定手段により対象物の姿勢を推定した後に、第１画像及び第２画像を用いて、対象物の姿勢を推定する第２姿勢推定手段（第２姿勢推定手順）を構成する。
【００６８】
以上のように本実施形態にあっては、左画像及び右画像について物体の輪郭Ｂの複雑度（不変量の次元数の総和）を求め、両者の不変量の次元数総和が非常に近いときには、類似度が高い方の画像を基準画像として設定し、そうでないときは、不変量の次元数総和が大きい方の画像を基準画像として設定する。従って、左画像及び右画像のうち物体の識別能力が高いほうの画像を使って、物体の初期姿勢位置を高精度に設定し、物体の姿勢推定を行うことができる。
【００６９】
また、単眼姿勢推定処理及び複眼姿勢推定処理を組み合わせるだけでなく、各姿勢推定処理において、画像を徐々に大きくしてマッチングを行う手法（粗いマッチング→詳細マッチング）を採用するので、物体の初期姿勢位置のズレが多少あっても、物体の姿勢推定の誤収束を低減することができる。
【００７０】
以上により、認識対象物体の姿勢に関係なく、姿勢の推定精度を向上させることが可能となる。また、画像において認識対象物体の一部を遮蔽する遮蔽物が写っている場合でも、姿勢の推定を精度良く行うことが可能となる。
【００７１】
図１５は、図２に示す手順２２の複眼姿勢推定処理の変形例を示すフローチャートである。図中、図１１に示すものと同一の処理には同じ符号を付し、その説明を省略する。
【００７２】
同図において、手順５３で左画像及び右画像における輪郭のＤＴマップを作成した後、各画像における輪郭の勾配マップを作成する（手順７０）。勾配マップとは、輪郭の勾配情報を有する画像のことである。例えば画像における輪郭が図１０（ａ）に示すようなものである場合、勾配マップは、例えば図１６に示すようになる。この勾配マップでは、勾配の角度を色の濃さで表している。なお、このような勾配マップの作成処理は、ＤＴマップの作成前に実施しても良いし、ＤＴマップの作成と同時に実施しても良い。
【００７３】
また、手順５４で左画像及び右画像における輪郭のＤＴ画像を作成した後、このＤＴ画像を３次元の輪郭形状データとＤＴマッチングすることにより、マッチングエラー値を算出する（手順７１）。ＤＴマッチングの手法は、図１１に示す手順５５と同様である。このとき、マッチングエラー値の算出には、例えば下記式のような評価関数を用いる。
【数２】
2008003800.tif 000004
ただし、Dis：ＤＴ画像の輪郭上の点と輪郭形状データの輪郭上の対応する点との距離
θ：ＤＴ画像の輪郭の勾配と輪郭形状データの輪郭の対応する勾配との角度差
α：係数
【００７４】
このように本処理では、輪郭上の点間の距離だけでなく、輪郭上の当該点の勾配も考慮して、ＤＴマッチングを行う。その他の処理については、図１１に示すものと同様である。
【００７５】
以上のような複眼姿勢推定処理では、図１７に示すように、ＤＴマップと勾配マップの値（ラジアン）とに基づいてＤＴマッチングを行うので、ＤＴ画像と輪郭形状データとのマッチングが一層正確に行われることになる。これにより、例えば認識対象物体の輪郭の一部分に隠れがあったり、ノイズや外乱等により認識対象物体の輪郭の乱れが生じても、物体の誤認識や姿勢推定の誤収束を低減することができる。従って、物体の姿勢推定をより安定化させることが可能となる。
【００７６】
図１８は、図２に示す手順２２の複眼姿勢推定処理の他の変形例を示すフローチャートである。図中、図１１に示すものと同一の処理には同じ符号を付し、その説明を省略する。
【００７７】
同図において、手順５３で左画像及び右画像における輪郭のＤＴマップを作成した後、ＤＴマッチングを行う時に付される重み係数を設定する（手順８０）。このような重み係数を設定する処理の詳細を図１９に示す。
【００７８】
図１９において、まず各画像における輪郭に対して平滑化を施す（手順９１）。続いて、図２０に示すように、その平滑化された輪郭Ｂの勾配から、輪郭Ｂの傾きの曲がり具合が変わるポイントとなる変曲点Ｑを算出する（手順９２）。続いて、輪郭Ｂにおける各変曲点Ｑ間の領域の曲率をそれぞれ算出する（手順９３）。このとき、図２０に示すように、輪郭Ｂにおける各変曲点Ｑ間の領域にほぼ一致するような円（図中の破線参照）を形成し、その時の円の半径Ｒによって輪郭Ｂにおける各変曲点Ｑ間の領域の曲率半径を求め、当該領域の曲率を得る。
【００７９】
続いて、得られた曲率に応じて、輪郭Ｂにおける各変曲点Ｑ間の領域の重み係数を決定する（手順９４）。このとき、輪郭Ｂの曲率分布を基にして、曲率が大きくなるほど、つまり曲率半径が小さくなるほど、重み係数を高くするように設定する。なお、重み係数としては、その全体の平均値が１となるように設定するのが望ましい。
【００８０】
図１８に戻り、手順５４で左画像及び右画像における輪郭のＤＴ画像を作成した後、このＤＴ画像を３次元の輪郭形状データとＤＴマッチングすることにより、マッチングエラー値を算出する（手順８１）。ＤＴマッチングの手法は、図１１に示す手順５５と同様である。このとき、マッチングエラー値の算出には、例えば下記式のような評価関数を用いる。
【数３】
2008003800.tif 000005
ただし、Dis：ＤＴ画像の輪郭上の点と輪郭形状データの輪郭上の対応する点との距離
β：重み係数
【００８１】
つまり、図１８に示す手順８０で求めた重み係数βと輪郭上の点間の距離Disとを掛け合わせた総和により、マッチングエラー値を求める。その他の処理については、図１１に示すものと同様である。
【００８２】
ところで、画像上の輪郭において突起部のような大きな曲率を有する部分では、特徴量（不変量）の次元数が多くなるため、姿勢の推定が行いやすくなる。ここでは、輪郭の曲率に応じた重み係数βを設定し、その重み係数βを加味してＤＴマッチングを行うので、例えば認識対象物体の輪郭の一部分に隠れがあったり、ノイズや外乱等により認識対象物体の輪郭の乱れが生じても、物体の誤認識や姿勢推定の誤収束を低減することができる。従って、この場合にも、物体の姿勢推定をより安定化させることが可能となる。
【００８３】
なお、本発明は、上記実施形態に限定されるものではない。例えば上記実施形態では、図２に示す手順１７の画像選択処理において、輪郭Ｂにおける勾配角度毎の不変量の次元数総和を輪郭Ｂの複雑度として算出したが、輪郭Ｂの次元分布の先鋭度などを輪郭Ｂの複雑度として算出しても良い。
【００８４】
また、上記実施形態では、図２に示す手順２０，２２の姿勢推定処理において、３軸方向に対する回転・並進計算によってＤＴマッチング（最適化）を行うものとしたが、他のマッチング手法として、例えば単純な輝度画像を用いたマッチング等といった公知の手法によって、姿勢推定を行っても良い。
【００８５】
さらに、上記実施形態は、物体を把持するロボットに適用されるものであるが、本発明の画像処理装置及び画像処理プログラムは、物体を認識して物体の姿勢を推定する他の装置やシステム等にも適用可能である。
【図面の簡単な説明】
【００８６】
【図１】本発明に係わる画像処理装置の一実施形態の構成を示すブロック図である。
【図２】図１に示す画像処理部による処理手順の概略を示すフローチャートである。
【図３】図１に示す２つのカメラで撮像して得られた左画像及び右画像の一例を示す図である。
【図４】図３（ａ）に示す左画像から抽出された物体の輪郭を示す図である。
【図５】輪郭の特徴量（不変量）として、物体の輪郭の各勾配間の距離を示す概念図である。
【図６】図２に示す画像選択処理手順の詳細を示すフローチャートである。
【図７】輪郭の次元分布の一例を示す図である。
【図８】図２に示す単眼姿勢推定処理手順の詳細を示すフローチャートである。
【図９】図８に示すＤＴマップ作成処理で作成されるＤＴマップの一例を示す図である。
【図１０】図８に示すＤＴ画像作成処理で作成されるＤＴ画像の一例を示す図である。
【図１１】図２に示す複眼姿勢推定処理手順の詳細を示すフローチャートである。
【図１２】図１１に示すＤＴマップ作成処理で作成されるＤＴマップの一例を示す図である。
【図１３】図１１に示すＤＴマップ作成処理手順の詳細を示すフローチャートである。
【図１４】物体の姿勢推定がうまく収束した様子を画像上に示した図である。
【図１５】図２に示す複眼姿勢推定処理手順の変形例を示すフローチャートである。
【図１６】図１５に示す勾配マップ作成処理で作成される勾配マップの一例を示す図である。
【図１７】輪郭のＤＴマップに輪郭の勾配を加えた概念図である。
【図１８】図２に示す複眼姿勢推定処理手順の他の変形例を示すフローチャートである。
【図１９】図１８に示す重み係数設定処理手順の詳細を示すフローチャートである。
【図２０】図１８に示す重み係数設定処理において、輪郭における各変曲点間の領域の曲率を求める手法の１つを示す図である。
【符号の説明】
【００８７】
１…画像処理装置、２Ａ，２Ｂ…カメラ、３…画像処理部（複雑度算出手段、画像選択手段、第１姿勢推定手段、第２姿勢推定手段、マップ生成手段、マッチング手段）。
【図１】
2008003800.tif 000006
【図２】
2008003800.tif 000007
【図３】
2008003800.tif 000008
【図４】
2008003800.tif 000009
【図５】
2008003800.tif 000010
【図６】
2008003800.tif 000011
【図７】
2008003800.tif 000012
【図８】
2008003800.tif 000013
【図９】
2008003800.tif 000014
【図１０】
2008003800.tif 000015
【図１１】
2008003800.tif 000016
【図１２】
2008003800.tif 000017
【図１３】
2008003800.tif 000018
【図１４】
2008003800.tif 000019
【図１５】
2008003800.tif 000020
【図１６】
2008003800.tif 000021
【図１７】
2008003800.tif 000022
【図１８】
2008003800.tif 000023
【図１９】
2008003800.tif 000024
【図２０】
2008003800.tif 000025