【文献】
友納 正裕,二次元エッジ特徴と三次元エッジ形状の統合による物体認識,日本ロボット学会誌 第25巻 第6号,日本,社団法人日本ロボット学会,2007年09月15日,Vol.25 No.6,P.199-206,ISSN 0289-1824
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、一般に、2D画像は物体の大きさの変化、すなわちカメラの奥行方向の変化が現れにくいため、2D画像を用いてワークの位置姿勢を推定すると、カメラの奥行方向のパラメータである並進zと回転φ及び回転γの推定精度が低くなる。そのため、特許文献1のように、2D画像も用いてカメラの奥行方向を含むワークの位置姿勢を推定する手法の場合、推定された位置姿勢は、カメラの奥行方向の推定精度が低いという問題があった。
【0006】
本発明は、以上説明した事情を鑑みてなされたものであり、従来に比して、カメラの奥行方向に対する物体の位置姿勢の推定精度を向上することが可能な位置姿勢推定装置等を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る位置姿勢推定装置は、物体の位置姿勢を推定する推定装置であって、物体の二次元画像を取得する第1取得部と、物体の三次元形状をあらわす三次元モデルを取得する第2取得部と、物体について推定された更新前の位置姿勢をあらわす位置姿勢情報を取得する第3取得部と、三次元モデルと二次元画像とを用いて、二次元画像平面上の異なる2つの軸であるx軸及びy軸方向それぞれの並進と、当該x軸及びy軸に直交するz軸を中心とする回転とについて、位置姿勢情報を更新する第2の位置姿勢推定部と更新された位置姿勢情報によってあらわされる位置姿勢を、物体の位置姿勢として出力する出力部とを具備することを要旨とする。
かかる構成によれば、第2の位置姿勢推定部は、物体について推定された更新前の位置姿勢をあらわす位置姿勢情報を受け取ると、二次元画像で精度良く推定可能なx軸及びy軸方向それぞれの並進(すなわち並進x,y)と、x軸及びy軸に直交するz軸を中心とする回転(すなわち、回転θ)のみを最適化する。
これにより、二次元画像を用いた3次元位置姿勢推定の欠点である、カメラの奥行方向の位置(すなわち、並進z)と回転(すなわち、回転φ及び回転γ)の3パラメータについては精度良く推定できないという従来手法の問題を未然に防ぐことができ、従来に比して、カメラの奥行方向に対する物体の位置姿勢の推定精度を向上することが可能となる。
【0008】
上記構成にあっては、第2の位置姿勢推定部は、三次元モデルを、位置姿勢情報に基づいて、二次元画像と共通の平面に投影した二次元モデルを生成する二次元モデル生成部と、二次元画像と二次元モデルの位置合わせを行うことにより、x軸及びy軸方向それぞれの並進パラメータと、z軸を中心とする回転パラメータとを最適化する最適化部と、最適化された3つのパラメータを用いて、位置姿勢情報を更新する更新部とを具備する態様であってもよい。
【0009】
上記構成にあっては、物体について計測された物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部と、三次元モデルと三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部と、をさらに備え、第1の位置姿勢推定部には、第3取得部で取得した位置姿勢情報が入力され、第1の位置姿勢推定部で更新された位置姿勢情報は第2の位置姿勢推定部に渡される態様であってもよい。
【0010】
上記構成にあっては、物体について計測された物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部と、三次元モデルと三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部とをさらに備え、第1の位置姿勢推定部には、第2の位置姿勢推定部で更新された位置姿勢情報が入力され、第1の位置姿勢推定部で更新された位置姿勢情報は出力部に渡される態様であってもよい。
【0011】
上記構成にあっては、物体について計測された物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部と、三次元モデルと三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部とをさらに備え、第3取得部で取得された位置姿勢情報は、第1及び第2の位置姿勢推定部にそれぞれ渡され、第1及び第2の位置姿勢推定部でそれぞれ更新された位置姿勢情報は前記出力部に渡され、出力部は、第1及び第2の位置姿勢推定部で更新されたそれぞれの位置姿勢情報に基づいて、物体の位置姿勢を出力する態様であってもよい。
【0012】
上記構成にあっては、第1の位置姿勢推定部は、位置合わせを行う際、三次元座標データの各点に対応する三次元モデルの各点を、対応する三次元座標データの各点に近づけるように、x軸、y軸及びz軸方向それぞれの並進パラメータと、x軸、y軸及びz軸を中心とするそれぞれの回転パラメータとを最適化し、最適化された前記6つのパラメータを用いて、前記位置姿勢情報を更新する態様であってもよい。
【0013】
上記構成にあっては、第1の位置姿勢推定部は、位置合わせを行う際、三次元座標データの各点に対応する三次元モデルの各点を、対応する三次元座標データの各点に近づけるように、z軸方向の並進パラメータと、x軸及びy軸を中心とするそれぞれの回転パラメータとを最適化し、最適化された3つのパラメータを用いて、位置姿勢情報を更新する態様であってもよい。
【発明の効果】
【0014】
本発明によれば、3Dデータと2D画像の両方の情報を用いつつも、従来に比してワークの位置姿勢の推定精度を向上することが可能となる。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0017】
A.本実施形態
A−1.適用例
図1を参照して、本発明が適用される場面の一例について説明する。
【0018】
物体認識装置1は、ピッキングシステムを備えた生産ラインなどに設置され、カメラ11aから取り込まれた画像を用いて、テンプレートマッチングによりトレイ3上の物体2の位置・姿勢を認識(3次元の物体認識)するシステムである。トレイ3上には、認識対象の物体(すなわち、ワーク)2がバラ積みされている。物体認識装置1は、カメラ11aから所定の時間間隔で画像を取り込み、画像処理装置10によって画像に含まれる各ワーク2の位置及び姿勢を認識する処理を実行し、その結果を例えばPLC(プログラマブルロジックコントローラ)4やディスプレイ12などに出力する。物体認識装置1の出力である認識結果は、例えば、ピッキング・ロボットの制御、加工装置や印字装置の制御、ワーク2の検査や計測などに利用される。
【0019】
A−2.(ハードウェア構成)
図2を参照して、物体認識装置1のハードウェア構成を説明する。物体認識装置1は、概して、3Dセンサ11と画像処理装置10から構成される。
3Dセンサ11は、ワーク2を3次元計測するためのセンサであり、カメラ11aを備えている。カメラ11aは、ワーク2のデジタル画像を画像処理装置10に取り込むための撮像デバイスであり、例えばCMOS(Complementary Metal-Oxide-Semiconductor)カメラやCCD(Charge-Coupled Device)カメラを好適に用いることができる。解像度、カラー/モノクロ、静止画像/動画、階調、データ形式などの入力画像の形式は任意であり、ワーク2の種類やセンシングの目的に合わせて適宜選択することができる。X線画像やサーモ画像など、可視光像以外の特殊な画像を物体認識や検査に利用する場合には、その画像に合わせたカメラを用いてもよい。
【0020】
画像処理装置10は、CPU(中央演算処理装置)10aと、ワークメモリとして用いられるメインメモリ10bと、固定記憶部であるハードディスク10eと、カメラインターフェイス10cと、入力インターフェイス10fと、表示コントローラ10gと、PLCインターフェイス10hと、通信インターフェイス10iと、データリーダ/ライタ10jとを含む。これらの各部は、バス10kを介して、互いにデータ通信可能に接続されている。
【0021】
カメラインターフェイス10cは、CPU10aとカメラ11aとの間のデータ伝送を仲介する部分であり、カメラ11aからの画像データを一時的に蓄積するための画像バッファ10dを有していてもよい。入力インターフェイス10fは、CPU10aと入力部との間のデータ伝送を仲介する。入力部には、マウス13、キーボード、タッチパネル、ジョグコントローラなどが含まれていてもよい。表示コントローラ10gは、液晶モニタなどのディスプレイ12に接続され、当該ディスプレイでの表示を制御する。PLCインターフェイス10hは、CPU10aとPLC4との間のデータ伝送を仲介する。通信インターフェイス10iは、CPU10aとコンソール、あるいはパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。データリーダ/ライタ10jは、CPU10aと記録媒体であるメモリカード14との間のデータ伝送を仲介する。
【0022】
画像処理装置10は、汎用的なアーキテクチャを有するコンピュータで構成可能であり、CPU10aが、ハードディスク10e又はメモリカード14に格納されたプログラムを読み込むことで、各種処理を実行する。このようなプログラムは、メモリカード14や光ディスクなどのコンピュータ読取可能な記録媒体に格納された状態で流通するか、インターネットなどを通じて提供される。なお、本実施形態に係るプログラムは単体のアプリケーションプログラムとして提供されてもよいし、他のプログラムの一部に組み込まれるモジュールとして提供されてもよい。また、そのプログラムによって実行される処理の一部又は全部をASICなどの専用回路で実行してもよい。
【0023】
A−3.(画像処理装置の構成)
図3に、画像処理装置10の構成を示す。画像処理装置10は、CPU10aが、ハードディスク10e等に格納されたプログラムを読み込み、実行することで、テンプレート作成装置120、3次元概略位置姿勢認識装置130、3次元詳細位置姿勢推定装置140として動作する。
【0024】
<テンプレート作成装置120>
テンプレート作成装置120は、ワーク2の物体の輪郭の特徴や内部凹凸形状の特徴を表すテンプレートを作成する。詳述すると、テンプレート作成装置120は、対象物体2の3DCAD、もしくは3Dセンサ11から取得した3Dデータを用いて、様々な視点から見たワーク2の2D画像を生成する。そして、テンプレート作成装置120は、生成した輝度画像および距離画像に基づき、複数のテンプレートを作成する。テンプレート作成装置120は、作成した複数のテンプレートをテンプレート情報として3次元概略位置姿勢認識装置130及び3次元詳細位置姿勢推定装置140に供給する。なお、テンプレート(すなわち、3Dモデル)には任意の形式を用いることができ、例えば、テンプレートとして画像中の複数の特徴点の特徴量を記述した配列形式を用いることができる。特徴量としては、例えば、ピクセル値(輝度)、輝度勾配方向、量子化勾配方向、Hog(Histograms of Oriented Gradients)、HAAR−Like、SIFT(Scale-Invariant Feature Transform)のほか、距離画像を利用した特徴量として法線方向、法線方向分布などを用いることができる。
【0025】
<3次元概略位置姿勢認識装置130>
3次元概略位置姿勢認識装置130は、3Dセンサ11のカメラ11aから取り込まれた2D画像及び3Dデータに対し、テンプレート作成装置120から供給されるテンプレート情報を用いてテンプレートマッチングを行い、画像中の3次元物体(すなわち、ワーク2)の位置姿勢を認識する。詳述すると、3次元概略位置姿勢認識装置130は、まず、3Dセンサ11からワーク2の入力画像を取り込み、取り込んだ入力画像(元画像)から、異なる解像度を持つ画像の集合(いわゆる画像ピラミッド)を作成する。3次元概略位置姿勢認識装置130は、作成した画像ピラミッドに対し特徴抽出処理を施すことで、ワーク2の入力画像の特徴量を抽出する。ここで、抽出される特徴量は、テンプレートのものと同種の特徴であり、例えばピクセル値などが挙げられる。3次元概略位置姿勢認識装置130は、抽出したワーク2の入力画像の特徴量と、テンプレート作成装置120から供給されるワーク2のテンプレート情報とを用いてテンプレートマッチングを行う。3次元概略位置姿勢認識装置130は、テンプレートマッチングにより、3Dモデルの大まかな位置姿勢を認識し、認識結果を3Dモデルの更新前の位置姿勢をあらわす更新前位置姿勢情報として3次元詳細位置姿勢推定装置140に供給する。
【0026】
<3次元詳細位置姿勢推定装置140>
3次元詳細位置姿勢推定装置140は、テンプレート作成装置120から供給されるテンプレート情報及び3次元概略位置姿勢認識装置130から供給される更新前位置姿勢情報を利用して、ワーク2の3次元位置姿勢の推定を行う。3次元詳細位置姿勢推定装置140は、画像取得部141、3Dモデル取得部142、更新前位置姿勢取得部143、カメラパラメータ取得部144、第1の位置姿勢推定部145、第2の位置姿勢推定部146、3次元位置合わせ結果出力部147を備えている。
【0027】
3次元詳細位置姿勢推定装置140は、第1の位置姿勢推定部145において3Dデータを用いた3次元位置姿勢推定を行う一方、第2の位置姿勢推定部146において2D画像を用いた3次元位置姿勢推定を行う。ここで、第2の位置姿勢推定部146は、第1の位置姿勢推定部145における3Dデータを用いた3次元位置姿勢推定の結果を基に、2D画像で精度良く推定可能な並進x、yと回転θの3パラメータのみを最適化する点に1つの特徴がある(詳細は後述)。以下、各部について説明する。
【0028】
画像取得部(第1取得部、第4取得部)141は、3Dセンサ11からワーク2の3Dデータ(三次元座標データ)や2D画像を取得する。画像取得部141は、取得した3Dデータを第1の位置姿勢推定部145に出力するとともに、取得した2D画像を第2の位置姿勢推定部146に出力する。
【0029】
3Dモデル取得部(第2取得部)142は、テンプレート作成装置120から3Dモデルをあらわすテンプレート情報を取得すると、取得したテンプレート情報を3Dモデルデータとして、第1の位置姿勢推定部145及び第2の位置姿勢推定部146に出力する。
【0030】
更新前位置姿勢取得部(第3取得部)143は、3次元概略位置姿勢認識装置130において認識された3Dモデルの大まかな位置姿勢をあらわす更新前位置姿勢情報を取得し、取得した更新前位置姿勢情報を、第1の位置姿勢推定部145に出力する。なお、更新前位置姿勢情報は、3つの並進パラメータ(x,y,z)と、x軸、y軸、z軸まわりの3つの回転パラメータ(φ,γ,θ)とを含む6つのパラメータ(x,y,z,φ,γ,θ)で表現される。
【0031】
カメラパラメータ取得部144は、3Dセンサ11がワーク2の3Dデータや2D画像を生成する際に利用したカメラ11aの内部パラメータを、メインメモリ112などから取得し、取得した内部パラメータを、第1の位置姿勢推定部145及び第2の位置姿勢推定部146に出力する。内部パラメータとしては、例えばカメラ11aの焦点距離やカメラ11aの中心位置などが挙げられる。
【0032】
第1の位置姿勢推定部14は、カメラパラメータ取得部144から供給されるカメラ11aの内部パラメータとともに、更新前位置姿勢取得部143から供給される3Dモデルの更新前位置姿勢情報、3Dモデル取得部142から供給される3Dモデルデータ、画像取得部141から供給される3Dデータを利用して、3Dモデルデータの3D点群と3Dデータの3D点群の位置合わせを行う(以下、「第1の位置合わせ処理」という;詳細は後述)。なお、本実施形態では、第1の位置合わせ処理の際に、3D点群同士の位置合わせを行うための手法としてICP(Iterative Closest Point)アルゴリズムを利用する場合を想定するが、その他の手法を用いてもよい。第1の位置姿勢推定部14は、第1の位置合わせ処理を行うことで、3Dモデルの位置姿勢を更新し、更新後の3Dモデルの位置姿勢をあらわす更新3Dモデルデータ(第1の位置姿勢情報)を、第2の位置姿勢推定部15に出力する。
【0033】
第2の位置姿勢推定部15は、カメラパラメータ取得部144から供給されるカメラ11aの内部パラメータとともに、第1の位置姿勢推定部14から供給される更新3Dモデルデータ、画像取得部141から供給される2D画像を利用して、2D画像平面にあたる並進x、yと回転θの位置合わせを行う(以下、「第2の位置合わせ処理」という;詳細は後述)。第2の位置姿勢推定部15は、第2の位置合わせを行うことで、3Dモデルの位置姿勢を最終更新する。そして、第2の位置姿勢推定部15は、最終更新後の3Dモデルの位置姿勢をあらわす最終更新3Dモデルデータ(第2の位置姿勢情報)を、3次元位置合わせ結果出力部147に出力する。
【0034】
3次元位置合わせ結果出力部(出力部)147は、第2の位置姿勢推定部15から供給される最終更新3Dモデルデータを、外部装置や液晶パネルなどに出力する。最終更新3Dモデルデータは、例えば、ワークの検査・計測のほか、ワークの位置決めや組立、ピッキング・ロボットの制御などに利用される。
【0035】
A−4.(第1の位置合わせ処理)
以下、第1の位置姿勢推定部14によって実行される第1の位置合わせ処理を説明する。
図4は、第1の位置合わせ処理を示すフローチャートである。
【0036】
第1の位置姿勢推定部14は、3Dモデルデータと3Dデータを用いて、対応点探索を行う(ステップS100)。対応点探索は、3D空間上において、3Dモデルの各点(すなわち3D座標)につき、最近傍となる3Dデータの各点(すなわち3D座標)を探索していく処理を意味する。代表的な対応点探索方法として、下記第1及び第2の方法が知られているが、第2の方法は、第1の方法に比べて探索範囲が狭く、高速に処理できることから、本実施形態では第2の方法を採用する。
[第1の方法]
3D空間上において、直接、3Dモデルの各点について最近傍となる3Dデータの各点を探索していく方法。
[第2の方法]
カメラ11aの内部パラメータを用いて、3Dモデルの各点を3Dデータと同じ2D画像平面へ投影し、2D画像平面上において投影された3Dモデルの各点について、近い距離にある3Dデータの各点から、最近傍となる3Dデータの各点を探索していく方法。
【0037】
第1の位置姿勢推定部14は、上記対応点探索で見つかった3Dモデルの各点と3Dデータの各点のペア(以下、「対応点ペア」ともいう。)の間の誤差を、「点と点の距離」や「点と面の距離」などの誤差メトリック(差異を定量化するもの)を用いて算出する。そして、第1の位置姿勢推定部14は、目的関数(誤差関数)を最小化するように、3Dモデルの各点を、対応する3Dデータの各点に近づけるための6パラメータの差分(Δx,Δy,Δz,Δφ,Δγ,Δθ)を求める。そして、第1の位置姿勢推定部14は、求めた6パラメータの差分(Δx,Δy,Δz,Δφ,Δγ,Δθ)を用いて6パラメータを更新することで、最適化した6パラメータ(x+Δx,y+Δy,z+Δz,φ+Δφ,γ+Δγ,θ+Δθ)を求める(ステップS110)。
【0038】
第1の位置姿勢推定部14は、最適化した6パラメータを用いて、3Dモデルの更新前の位置姿勢を更新する(ステップS120)。すなわち、第1の位置姿勢推定部14は、更新前位置姿勢取得部143から受け取った更新前位置姿勢情報をもとに、3Dモデルの更新前の位置姿勢を把握し、把握した3Dモデルの更新前の位置姿勢を、最適化した6パラメータを用いて更新する。
【0039】
第1の位置姿勢推定部14は、3Dモデルの更新前の位置姿勢を更新すると、3Dモデルが、3Dデータに十分に近づいた状態で位置合わせができたか否かを判定(以下、「収束判定」ともいう。)する(ステップS130)。収束判定の方法について一例を挙げると、第1の位置姿勢推定部14は、3Dモデルの3D点群の前回の位置姿勢Pose(n−1)と、今回の位置姿勢Pose(n)とを比較し、位置姿勢の更新幅Lupを求め、求めた位置姿勢の更新幅Lupが設定されている収束閾値Dthを下回ったか否かを確認する。第1の位置姿勢推定部14は、求めた位置姿勢の更新幅Lupが設定されている収束閾値Dthを下回っている場合には、3Dモデルの3D点群が、3Dデータの点群に十分に近づいた状態で位置合わせができたと判断する一方、求めた位置姿勢の更新幅Lupが設定されている収束閾値Dthを超えている場合には、3Dモデルの3D点群が、3Dデータの点群に未だ十分に近づいていないと判断する。
【0040】
第1の位置姿勢推定部14は、3Dモデルの3D点群が、3Dデータの3D点群に未だ十分に近づいていないと判断すると(ステップS130;NO)、ステップS100に戻り、ステップS100→ステップS110→ステップS130といった一連の処理を繰り返し実行する。
【0041】
一方、第1の位置姿勢推定部14は、3Dモデルの3D点群が、3Dデータの3D点群に十分に近づいた状態で位置合わせができていると判断すると(ステップS130;YES)、更新後の3Dモデルの位置姿勢をあらわす更新3Dモデルデータを第2の位置姿勢推定部15に出力し、以上説明した第1の位置合わせ処理を終了する。
【0042】
なお、ステップS100→ステップS110→ステップS120→ステップS130といった一連の処理を、所定回数繰り返し実行したとしても、位置姿勢の更新幅Lupが、収束閾値Dthを下回らないケースが生じ得る。このようなケースに対処するべく、ステップS100→ステップS110→ステップS120→ステップS130といった一連の処理の繰り返し回数に、例えば上限回数N(N≧1)を設定しておき、一連の処理の繰り返し回数が上限回数Nに達した場合には、強制的に、第1の位置合わせ処理を終了してもよい。
【0043】
A−5.(第2の位置合わせ処理)
以下、第2の位置姿勢推定部15によって実行される第2の位置合わせ処理を説明する。
図5は、第2の位置合わせ処理を示すフローチャートである。
【0044】
第2の位置姿勢推定部(二次元モデル生成部)15は、例えば第1の位置姿勢推定部14による3Dの位置合わせの位置姿勢と、3Dモデルデータと、カメラ11aの内部パラメータとを用いて、3Dモデルを2D画像平面に投影し、2D画像の輪郭の勾配特徴量を算出することで、2Dモデルを生成する(ステップS200)。なお、本実施形態では、計測処理時にオンラインで2Dモデルを生成しているが、3Dテンプレートを作成するオフライン処理にて2Dモデルを生成することも可能である。このように、オフライン処理にて2Dモデルを事前生成している場合には、すでに生成された複数の2Dモデルのうち、現時点の姿勢に最も近い2Dモデルを選択し、選択した2Dモデルを使って位置合わせ(後述)を行うことになる。
【0045】
第2の位置姿勢推定部15は、2Dモデルを生成すると、2Dモデルデータと2D画像を用いて、対応点探索を行う(ステップS210)。具体的には、第2の位置姿勢推定部15は、2Dモデルの生成と同様な方法で、2D画像の勾配特徴を算出する。そして、第2の位置姿勢推定部15は、2Dモデルの勾配特徴と対応する2D画像上の画素(すなわち2D画像の勾配特徴)を、対応点として導出する。
【0046】
第2の位置姿勢推定部(最適化部)15は、2D画像上の対応点を基に、2D画像平面上で2D画像と2Dモデルの位置合わせを行うことで、2D画像上での並進x、y[単位:pixel]と回転θの3パラメータを最適化する(ステップS220)。第2の位置姿勢推定部15は、2D画像で最適化した2D空間の3パラメータ(並進x,y,[単位:pixel],回転θ)を、3D空間の3パラメータ(並進x,y,[単位:mm],回転θ)に変換する(ステップS230)。具体的には、上述した2Dモデル生成時に、2Dモデルの各2D座標[pixel]に対応する3Dモデルの3D座標[mm]が算出できるため、第2の位置姿勢推定部15は、“最適化した2D空間の3パラメータを用いて2Dモデルの位置姿勢を更新した2D座標”と“3Dモデルの3D座標”の対応関係とカメラ11aの内部パラメータを用いてPnP問題を解くことで、2D空間の位置姿勢を3D空間の位置姿勢へ変換する(ステップS230)。
【0047】
第2の位置姿勢推定部(更新部)15は、変換した3D空間の3パラメータ(並進x,y,[単位:mm],回転θ)を用いて、第1の位置姿勢推定部14によって更新された3Dモデルの位置姿勢(以下、「更新後の3Dモデルの位置姿勢」ともいう。)をさらに更新する(ステップS240)。すなわち、第2の位置姿勢推定部15は、まず、第1の位置姿勢推定部14から受け取った更新3Dモデルデータから、3Dモデルの位置姿勢を把握する。そして、第2の位置姿勢推定部15は、変換した3D空間の3パラメータ(並進x,y,[単位:mm],回転θ)を用いて、更新後の3Dモデルの位置姿勢をさらに更新する。その後、第2の位置姿勢推定部15は、ステップS130に示す第1の位置姿勢推定部15による収束判定と同様な方法で、収束判定を行う(ステップS250)。
【0048】
第2の位置姿勢推定部15は、収束判定において、位置姿勢の更新幅Lupが収束閾値Dthを超えていることから、3Dモデルの3D点群が、3Dデータの3D点群に未だ十分に近づいていないと判断すると(ステップS250;NO)、ステップS200に戻り、ステップS200→ステップS210→ステップS220→ステップS230→ステップS240→ステップS250といった一連の処理を繰り返し実行する。
【0049】
一方、第2の位置姿勢推定部15は、収束判定において、位置姿勢の更新幅Lupが収束閾値Dthを下回っていることから、3Dモデルの3D点群が、3Dデータの3D点群に十分に近づいていると判断すると(ステップS250;YES)、最終更新後の3Dモデルの位置姿勢をあらわす最終更新3Dモデルデータを、3次元位置合わせ結果出力部147に出力し(ステップS260)、以上説明した第2の位置合わせ処理を終了する。なお、ステップS260において、第2の位置姿勢推定部15は、最終更新3Dモデルデータとともに、最終更新後の3Dモデルの位置姿勢を得るためにステップS240において導出した位置姿勢の6パラメータを、最適パラメータ情報として3次元位置合わせ結果出力部147に出力してもよい。
【0050】
A−6.(比較例)
図6は、ワークの位置姿勢を例示した図であり、αは、3次元概略位置姿勢認識装置130によって認識されるワークの位置姿勢1、βは、位置姿勢1をもとに、3Dデータを用いて3次元位置姿勢推定(3D)を行った場合のワークの位置姿勢2、γは、位置姿勢2をもとに、さらに2D画像を用いて3次元位置姿勢推定(3D+2D)を行った場合のワークの位置姿勢3を示す。
【0051】
3次元概略位置姿勢認識装置130によって認識されるワークの位置姿勢は、X方向及びY方向では合っているものの、Z方向でズレが生じる(
図6のαに示す位置姿勢1参照)。
位置姿勢1をもとに、3Dデータのみを用いて3次元位置姿勢推定を行うと、Z方向では合っているものの、X方向及びY方向でズレが生じてしまう(
図6のβに示す位置姿勢2参照)。
この点、3Dデータを用いて3次元位置姿勢推定を行った後、位置姿勢2をもとに、さらに2D画像を用いて3次元位置姿勢推定を行うと、X方向、Y方向及びZ方向のいずれにおいてもズレが生じることなく、高精度に位置姿勢を検出できることがわかる(
図6のγに示す位置姿勢3参照)。
【0052】
以上説明したように、本実施形態によれば、第1の位置姿勢推定部145は、3Dデータを用いて6パラメータ(すなわち、並進x,y,z及び回転φ,γ,θ)を最適化する一方、第2の位置姿勢推定部146は、第1の位置姿勢推定部145における3Dデータを用いた3次元位置姿勢推定の結果を基に、2D画像で精度良く推定可能な3パラメータ(すなわち並進x,y及び回転θ)のみを最適化する。このように、2D画像で精度良く推定可能な並進x,yと回転θの3パラメータのみを最適化することで、2D画像を用いた3次元位置姿勢推定の欠点である、カメラの奥行方向の位置(並進z)と回転(回転φ及び回転γ)の3パラメータについては精度良く推定できないという問題を未然に防ぐことができ、3Dデータと2D画像の情報を一つの数式にまとめて6パラメータを最適化していた従来の3次元位置姿勢推定方法に比べて、精度良く3次元位置推定することが可能となる。
また、最適化に関しては、上記従来の3次元位置姿勢推定方法に比べて、処理を高速化することが可能となる。すなわち、従来手法においては、3Dデータと2D画像の情報を一つの数式にまとめて複雑な非線形最適化問題を解くことが必要であったのに対して、本実施形態においては、3Dデータを用いた6パラメータの最適化と2D画像を用いた3パラメータの最適化の2回の線形最適化問題を解けばよく、複雑な非線形最適化問題を解く必要がない分、処理を高速化することができる。
【0053】
B.変形例
上述した本実施形態は、本発明を説明するための例示にすぎず、その要旨を逸脱しない限り、さまざまな変形が可能である。
例えば、3Dデータを用いた3次元位置姿勢推定(以下、「3D推定」)と2D画像を用いた3次元位置推定(以下、「2D推定」)の組み合わせについて、様々なバリエーションが考えられる。本実施形態では、3D推定の後に2D推定を行う態様を例示したが、2D推定の後に3D推定を行ってもよく、また、3D推定と2D推定を並列に行ってもよい。例えば、2D推定の後に3D推定を行う場合、第1の位置姿勢推定部145には、第2の位置姿勢推定部146で更新された位置姿勢情報が入力され、第1の位置姿勢推定部145で更新された位置姿勢情報は3次元位置合わせ結果出力部147に出力される構成とすればよい。一方、3D推定と2D推定を並列に行う場合、更新前位置姿勢取得部143で取得された位置姿勢情報が第1の位置姿勢推定部145及び第2の位置姿勢推定部146に供給され、第1の位置姿勢推定部145及び第2の位置姿勢推定部146でそれぞれ更新された位置姿勢情報は3次元位置合わせ結果出力部147に供給され、3次元位置合わせ結果出力部147は、第1の位置姿勢推定部145及び第2の位置姿勢推定部146で更新されたそれぞれの位置姿勢情報に基づいて、物体の位置姿勢を出力するように構成すればよい。
【0054】
なお、本実施形態では、3D推定において6パラメータ(並進x、y、z及び回転φ,γ,θ)を最適化したが、これに限る趣旨ではない。例えば、2D推定において最適化されるのは並進x,yと回転θの3パラメータであることから、3D推定においては残りの3パラメータ(すなわち、並進z及び回転φ,γ)を最適化するようにしてもよい。具体的には、第1の位置姿勢推定部14は、目的関数(誤差関数)を最小化するように、3Dモデルの各点を、対応する3Dデータの各点に近づけるための3パラメータ(すなわち、並進z及び回転φ,γ)を最適化すればよい。
【0055】
C.その他
本明細書において、「部」とは、単に物理的構成を意味するものではなく、その「部」が実行する処理をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が実行する処理を2つ以上の物理的構成や装置により実現されても、2つ以上の「部」や装置が実行する処理を1つの物理的手段や装置により実現されてもよい。
【0056】
本明細書において上述した各処理におけるステップは、処理内容に矛盾を生じない範囲で任意に順番を変更し、または並列に実行することができる。
【0057】
本明細書において説明した各処理を実施するプログラムは、記録媒体に記憶させてもよい。この記録媒体を用いれば、画像処理装置10を構成する各装置に、上記プログラムをインストールすることができる。ここで、上記プログラムを記憶した記録媒体は、非一過性の記録媒体であっても良い。非一過性の記録媒体は特に限定されないが、例えば、CD−ROM等の記録媒体であっても良い。
【0058】
(付記1)
物体の位置姿勢を推定する推定装置であって、
前記物体の二次元画像を取得する第1取得部(141)と、
前記物体の三次元形状をあらわす三次元モデルを取得する第2取得部(142)と、
前記物体について推定された更新前の位置姿勢をあらわす位置姿勢情報を取得する第3取得部(143)と、
前記三次元モデルと前記二次元画像とを用いて、前記二次元画像平面上の異なる2つの軸であるx軸及びy軸方向それぞれの並進と、当該x軸及びy軸に直交するz軸を中心とする回転とについて、前記位置姿勢情報を更新する第2の位置姿勢推定部(146)と
前記更新された位置姿勢情報によってあらわされる位置姿勢を、前記物体の位置姿勢として出力する出力部(147)と、
を具備する位置姿勢推定装置。
(付記2)
前記第2の位置姿勢推定部(146)は、
前記三次元モデルを、前記位置姿勢情報に基づいて、前記二次元画像と共通の平面に投影した二次元モデルを生成する二次元モデル生成部(ステップS200)と、
前記二次元画像と前記二次元モデルの位置合わせを行うことにより、前記x軸及びy軸方向それぞれの並進パラメータと、前記z軸を中心とする回転パラメータとを最適化する最適化部(ステップS220)と、
最適化された前記3つのパラメータを用いて、前記位置姿勢情報を更新する更新部(ステップS240)と、
を具備する、付記1に記載の位置姿勢推定装置。
(付記3)
前記物体について計測された前記物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部(141)と、
前記三次元モデルと前記三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部(145)と、
をさらに備え、
前記第1の位置姿勢推定部には、前記第3取得部で取得した位置姿勢情報が入力され、前記第1の位置姿勢推定部で更新された位置姿勢情報は前記第2の位置姿勢推定部に渡される、
付記1又は2記載の位置姿勢推定装置。
(付記4)
前記物体について計測された前記物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部(141)と、
前記三次元モデルと前記三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部(145)と、
をさらに備え、
前記第1の位置姿勢推定部には、前記第2の位置姿勢推定部で更新された位置姿勢情報が入力され、前記第1の位置姿勢推定部で更新された位置姿勢情報は前記出力部に渡される、
付記1又は2記載の位置姿勢推定装置。
(付記5)
前記物体について計測された前記物体表面の三次元座標をあらわす三次元座標データを取得する第4取得部(141)と、
前記三次元モデルと前記三次元座標データとを用いて位置合わせを行うことによって、位置姿勢情報を更新する第1の位置姿勢推定部(145)と、
をさらに備え、
前記第3取得部で取得された位置姿勢情報は、前記第1及び第2の位置姿勢推定部にそれぞれ渡され、前記第1及び第2の位置姿勢推定部でそれぞれ更新された位置姿勢情報は前記出力部に渡され、
前記出力部は、前記第1及び第2の位置姿勢推定部で更新されたそれぞれの位置姿勢情報に基づいて、前記物体の位置姿勢を出力する
付記1又は2記載の位置姿勢推定装置。
(付記6)
前記第1の位置姿勢推定部(145)は、
前記位置合わせを行う際、前記三次元座標データの各点に対応する前記三次元モデルの各点を、対応する前記三次元座標データの各点に近づけるように、前記x軸、y軸及びz軸方向それぞれの並進パラメータと、前記x軸、y軸及びz軸を中心とするそれぞれの回転パラメータとを最適化し、最適化された前記6つのパラメータを用いて、前記位置姿勢情報を更新する、付記3〜5のいずれか1つの付記に記載の位置姿勢推定装置。
(付記7)
前記第1の位置姿勢推定部(145)は、
前記位置合わせを行う際、前記三次元座標データの各点に対応する前記三次元モデルの各点を、対応する前記三次元座標データの各点に近づけるように、前記z軸方向の並進パラメータと、前記x軸及びy軸を中心とするそれぞれの回転パラメータとを最適化し、最適化された前記3つのパラメータを用いて、前記位置姿勢情報を更新する、付記3〜5のいずれか1つの付記に記載の位置姿勢推定装置。