物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システム
【課題】対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識する。
【解決手段】対象物体を検出する検出器の学習方法は、対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、選択工程で選択された特定領域を検出する検出器の学習を行う学習工程と、学習工程で学習された検出器により複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、評価工程における認識処理の結果の認識精度に従って、検出器の出力に対する投票重みを設定する正規化工程とを有する。
【解決手段】対象物体を検出する検出器の学習方法は、対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、選択工程で選択された特定領域を検出する検出器の学習を行う学習工程と、学習工程で学習された検出器により複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、評価工程における認識処理の結果の認識精度に従って、検出器の出力に対する投票重みを設定する正規化工程とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
視覚情報を使った物体認識の分野において、物体の三次元的な位置や姿勢を推定する問題に関して、さまざまな研究開発が行われている。産業用ロボットや実験的なヒューマノイドロボットなどの分野ではランダムピッキングなどの用途で三次元情報を利用することも多く、その必要性は高くなってきている。
【0003】
既知の形状の対象物体に関しては、単眼カメラによる対象物体の位置姿勢推定も行われている。単眼カメラによる三次元姿勢推定の一つの手法として、さまざまな姿勢を別のクラスとして識別する方法がある。また、ステレオカメラやレーザレンジファインダなどの三次元センサを用いて得られた三次元特徴量を利用する方法もある。この方法では、モデル上の複数の特徴点と三次元特徴量との対応関係を求め、剛体変換を用いて物体の位置および姿勢を算出する。複数の検出器の投票もしくは統合処理による対象物体の認識手法では、投票の重みを調整する方法も提案されている。例えば、特許文献 1では、複数の木構造フィルタによる認識器の出力を統合することで画像全体を認識している。認識器を組替える、もしくは統合時の重みを選択することで、認識システム全体を環境に適応させて更新していく。
【0004】
また、特許文献 2では、量子化された特徴点を入力画像から検出し、得られた特徴点からの重み付き一般化ハフ変換を用いて対象物体の位置と姿勢を求めている。この際、各特徴点での特徴量によるヒストグラムから特徴点の重みを予め計算している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−204103号公報
【特許文献2】特許第03346679号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献 1では、認識器の重みバリエーションを予め用意しておき、その組み合わせの中で最も検出結果の良い重みを選択している。重み決定は離散的に行われるため、探索速度と重みバリエーションの粒度はトレードオフの関係にある。任意の姿勢における対象物体の認識を考えると、対象物体上の同一部分であっても、視点変化によって特徴量は変化する。
【0007】
特許文献 2の手法では、三次元的な任意の姿勢における対象物体の認識に拡張しようとすると、特徴量ヒストグラムから投票重みの決定を行うことは難しい。
【課題を解決するための手段】
【0008】
上記の課題を鑑み、本発明は、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能な学習技術および物体認識技術の提供を目的とする。
【0009】
上記の目的を達成する本発明の一つの側面にかかる学習方法は、対象物体を検出する検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する検出器の学習を行う学習工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化工程と、
を有することを特徴とする。
【0010】
また、上記の学習方法は、前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする。
【0011】
上記の目的を達成する本発明の他の側面にかかる物体認識方法は、上記の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
上記の学習方法の学習工程で生成された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して上記の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能になる。あるいは、信頼度の低い姿勢の領域組からの投票の重みは、信頼度の高い姿勢の領域組からの投票に比べて弱くなるため、誤検出が発生しにくくなり、そのため、対象物体の認識精度の向上が可能になる。
【図面の簡単な説明】
【0013】
【図1】実施形態にかかる情報処理システムの全体的な構成を例示する図。
【図2】実施形態にかかる物体認識処理を行うための装置構成を例示する図。
【図3】実施形態にかかる物体認識処理の流れを説明する図。
【図4】特定領域と領域組を説明する図。
【図5】特定領域検出工程における処理を説明する図。
【図6】検出位置と検出姿勢の定義を説明する図。
【図7】実施形態にかかる学習処理の流れを説明する図。
【図8】三次元モデル上の点と画像座標の関係を示す図。
【図9】学習データ取得に関する測地ドームの視点を説明する図。
【図10】第1および第2実施形態における正規化工程の流れを説明する図。
【図11】モデル座標系と画像上の点の関係を示す図。
【図12】第3実施形態における学習方法の流れを説明する図。
【図13】第4実施形態における学習方法の流れを説明する図。
【発明を実施するための形態】
【0014】
(第1実施形態)
図1の参照により、本発明の実施形態にかかる情報処理システムの全体的な構成を説明する。撮像部300で撮像された撮像データが座標対応算出部400に送られる。座標対応算出部400は三次元モデル記憶部600において記憶されている三次元モデル上の各点と撮像データとの対応関係を算出する。座標対応算出部400で算出された撮像データと三次元モデルとの対応関係を用いて、学習装置200は後述する学習処理を行い、得られた学習結果(学習パラメータ)を学習結果記憶部700に記憶する。
【0015】
撮像部300で撮像された撮像データが物体認識装置100に送られ、学習結果記憶部700に記憶された学習パラメータに従って後述する認識処理を撮像データに対して行うことにより、撮像データの認識処理結果が得られる。ここで、認識処理とは、撮像部300より得られた撮像データから検出対象物体である三次元物体の三次元的な位置姿勢を求める位置姿勢推定処理である。
【0016】
(物体認識方法)
物体認識処理を行うための基本的な装置構成の例を図2に示し、物体認識装置で実行される処理フローを図3に示す。
A500は認識の対象となる対象物体である。A300は対象物体A500を載せるためのステージである。A100は対象物体A500を撮像し、画像データを取得するためのカメラである。A110はカメラA100と連動して、光切断法によって対象物体A500の距離マップデータを得るために、ガルバノミラーなどで稼動するレーザ投光部(レーザ投光器)である。カメラA100およびレーザ投光器A110は、図1における撮像部300に相当する。カメラA100およびレーザ投光器A110は、光切断法による距離測定を行うための校正が行われているものとする。ここで、認識処理を行うための装置構成として光切断法による距離測定を例示したが、距離測定手法は光切断法に限定されるものではない。例えば、レーザ投光器A110の替わりにプロジェクタを用いた空間コード化、もしくは複数のカメラを用いたステレオ計測など、さまざまな距離測定手法を適用することが可能である。A200は、三次元物体検出処理を行うための情報処理装置であり、図1における物体認識装置100に相当する。
【0017】
また、後述する学習処理による学習結果は情報処理装置A200の図示しない内部メモリに格納されているものとする。この内部メモリは図1における学習結果記憶部700に相当する。認識処理を行う物体認識装置100(情報処理装置A200)はこの例のようなカメラA100と独立した装置に限定されるものではない。例えば、カメラA100に物体認識装置100(情報処理装置A200)の機能を搭載することによってカメラ自体が認識処理を行う構成でもよい。
【0018】
図2のような装置構成を想定した場合を例として、本実施形態にかかる物体認識処理を図3に従って説明する。本処理は、物体認識装置100(情報処理装置A200)の全体的な動作を司る制御部により実行される。まず、入力情報取得工程S1010では、撮像部300で撮像された対象物体の画像を取得する。カメラA100およびレーザ投光器A110によって、認識処理に用いる入力情報として、入力画像Iおよび距離マップZmapを取得する。距離マップZmapは、カメラA100から入力画像I上の各画像座標点pまでのカメラ座標系の奥行き方向(Z方向)の距離として得られる。距離マップの算出に関しては既存の三角測量法などで算出することが可能であるため、ここでは特に説明しない。距離マップZmapと距離測定の校正値から、カメラ座標系における奥行き方向(Z方向)に直交する水平方向を示すX座標のマップ、Z方向およびX方向に直交する水平方向を示すY座標のマップも算出することができる。これらのマップをXmap、Ymapとする。
【0019】
次に、特定領域検出工程S1020では、入力情報取得工程S1010で取得された画像から、画像に含まれる部分領域の画像として複数の特定領域を検出する。本工程において、後述する学習処理によって既に得られている物体上の特定領域を特定領域検出器により検出する。ここで特定領域とは、三次元モデルとして得られている対象物体上の、所定サイズの局所領域(部分領域)である。例えば、図4(a)に示される三次元モデルA510において、A511−1〜A511−Mのように三次元モデル上の特定の位置を示している。ここでMは特定領域の総数である。これらの特定領域は、それぞれモデル座標系における位置情報を持っており、特定領域iのモデル座標位置をPmi=[Xmi,Ymi,Zmi]Tとする。 ここで上付き添字mは「モデル」を意味し、Tは行列の転置を表す。特定領域検出工程S1020において、特定領域検出器は、図5のようにして入力画像Iに対してラスタスキャンしながら注目位置psを中心とした部分画像を抽出し、その部分画像において抽出された特徴量を用いて特定領域を検出する。部分画像の切り出しサイズrは、予め決められたモデル座標系における固定サイズRと、注目位置psの奥行き距離から次式により算出される。
【0020】
【数1】
【0021】
δはカメラの画素サイズ、fはカメラの焦点距離である。例えば、切り出しサイズがR=20mmと設定されているとき、f=24mm、δ=0.03mm/pixelのカメラにて Zmap(ps)=800mmであれば、r=20pixelであるため、20pixel×20pixelの領域を部分画像として切り出せばよい。部分画像において抽出する特徴量としては、例えば、HOG(Histograms of Oriented Gradients)のようなものが考えられるが、本発明の趣旨は特徴量の種類に限定されるものではない。例えば、Spin Imageのような、入力画像Iの替わりに認識対象の物体の三次元情報を用いた三次元特徴量でもよい。
【0022】
特定領域検出器による画像探索によって検出された特定領域iの検出領域の集合をAi={xi1,xi2・・・xiNi}とする。ここでxilは特定領域検出器によって検出された特定領域iのl番目の検出領域の画像上の位置であって、画像座標系上の点である。Niは、特定領域検出器によって検出された特定領域iの検出点の総数である。各検出領域位置pilのカメラ座標系における位置はPil=[Xil,Yil,Zil]=[Xmap(pil),Ymap(pil),Zmap(pil)]として得ることができる。
【0023】
領域組生成工程S1030では、特定領域検出工程S1020で検出された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。特定領域検出工程S1020で検出された特定領域に対して、予め定義された特定領域の組み合わせによる領域組を生成する。領域組とは、認識対象の物体の位置および姿勢を推定するために用いる特定領域の組み合わせである。予め定義されたT個のそれぞれの領域組に対して、領域組tを構成する特定領域を、t1、t2、・・・tMtとする。ここでMTは領域組tを構成する特定領域の総数である。距離計測などによって各検出領域のカメラ座標系位置が求まる場合には、位置および姿勢を決定するために最低限、三点のカメラ座標系における位置がわかればよい。三つの特定領域による領域組をトリプレットと呼ぶこととするが、領域組は三点で構成されることに限定されるわけではない。
【0024】
図4(b)に、MT=3として領域組をトリプレットの例を示す。領域組tの構成要素である特定領域が特定領域検出工程S1020で検出されていた場合、領域組生成工程S1030では、ステップS1020で検出された特定領域の相対的な位置関係が幾何拘束条件を満たしているかどうかを判定する。幾何拘束条件の判定は、例えば、以下のようにして行う。まず、領域組tを構成する特定領域ペアの組み合わせに関して、特定領域ペア間の距離をカメラ座標系にて算出する。得られた距離を、対応する既知の3次元モデル上の特定領域ペアの特定領域間の距離(モデル上の距離)と比較して距離の誤差を算出し、算出された距離の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、モデル上の距離の10%の範囲内(±5%の範囲内)であれば、検出された特定領域ペアの距離関係は正しいとし、検出領域組の候補として残す。次に、検出領域組候補として残った領域組tを構成する検出された特定領域ペアの組み合わせに関して、特定領域ペア間におけるその成す角度をカメラ座標系にて算出する。得られた角度を、対応する既知の3次元モデル上の特定領域の成す角度と比較し、角度の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、15degの範囲内(±7.5deg)であれば検出された特定領域の相対的な位置関係は正しいとし、領域組を構成すると判定する。
【0025】
統合工程S1100では、検出されたそれぞれの領域組における位置および姿勢(角度)の推定結果を算出し、その結果を統合して、対象物体の認識結果を得る。統合工程S1100は、領域組の位置姿勢を推定する領域組推定工程S1040、投票工程S1050および対象物体の位置姿勢を推定する対象物体推定工程S1060の3つの工程を有する。
【0026】
領域組推定工程S1040では、領域組生成工程S1030にて絞り込まれた領域組(検出物体)の位置および姿勢を推定する。領域組生成工程S1030で生成された領域組について、撮像部の座標系を基準とした検出位置情報および対象物体の3次元モデル上の座標位置情報を求める。そして、検出位置情報と座標位置情報との差分を最小にする位置と、その位置に対応する姿勢とを領域組の推定位置および推定姿勢とする。検出物体の位置および姿勢は、図6に示すように、検出物体をモデル座標系とカメラ座標系が一致している状態から観測状態へと平行移動および単回転させたときの平行移動ベクトル、単回転軸および単回転角で表現されるものとする。検出された領域組(検出領域組)から推定される検出物体の位置を平行移動ベクトルTk、姿勢ベクトルΘk=BkNkで表す。ここでNkは単回転軸およびBkは単回転角で、NkはNk=[nX,nY,nZ]Tで表される長さ1の正規化ベクトルである。このとき、Rkを、NkおよびBkで得られる回転変換であるとすれば、モデル上の任意の点Pmは、上記の位置姿勢パラメータTk、NkおよびBkによって以下の数2式の位置P’に移動する。
【0027】
【数2】
【0028】
検出領域組kを構成する特定領域をk1・・・ku・・・kMkとする。ここでMkは領域組kを構成する特定領域の数で、例えば領域組がトリプレットとして定義されているならばMk=3である。検出領域組kの位置姿勢推定問題は、以下の数3式の関数の最小化問題となる。
【0029】
【数3】
【0030】
ただし、Pkuは検出領域組kにおける特定領域kuのカメラ座標系検出位置(撮像部の座標系を基準とした検出位置情報)、P’ kuは特定領域kuのモデル座標位置(対象物体の3次元モデルの座標位置情報)Pmkuが数 4式に従って変換されたときの変換後のカメラ座標系位置である。回転変換Rkの四元数表現qと平行移動Tkの要素をそれぞれq=(q0,q1,q2,q3)、Tk=[q4,q5,q6]Tとする。このとき、検出領域組kの各検出領域の検出位置重心μと、領域組tの特定領域重心の移動後の位置μ’は、それぞれ以下のようにして得られる。
【0031】
【数4】
【0032】
【数5】
【0033】
領域組tの特定領域位置と、検出領域組kの各検出領域位置の共分散行列Skは以下の数6式のようにして求められる。
【0034】
【数6】
【0035】
ここでSkの循環要素をAij=(Sk−SkT)ijとしたときに列ベクトルΔ=[A23,A32,A12]Tを定義する。これを使って表される次の数7式のような対称行列Q(Sk)の固有値解析によって得られた最大固有値に対応する固有ベクトルは、回転変換Rの四元数表現qの要素列(q0,q1,q2,q3)の最適解となることが非特許文献1にて知られている。
【0036】
【数7】
【0037】
ここでI3×3は、3×3単位行列である。
【0038】
非特許文献1 P.J.Besl and N.D.McKay,“A Method for Recognition of 3−D Shapes”,IEEE Trans.PAMI,Vol.14,No.2,1992.
回転変換Rの四元数表現である四元数qは、単回転軸Nkおよび単回転角Bkとの間に以下の数8式の関係があるため、NkおよびBkの値が求まる。
【0039】
【数8】
【0040】
また、検出領域組kにおける検出対象物体の位置を表す平行移動ベクトルTkの最適解は、以下の数9式のようにして得られる。
【0041】
【数9】
【0042】
ただしμmは検出領域組kを構成する特定領域のモデル座標系位置の重心を回転変換させたものであって、以下の数10式のようにして得られる。
【0043】
【数10】
【0044】
投票工程S1050では、得られた各検出領域組における推定姿勢に対して、位置および姿勢の投票空間に投票を行う。領域組推定工程S1040で推定された領域組の位置および推定姿勢に対して、後に説明する図7(b)の収束判断工程S2470で確定された投票重みを、特定領域検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う。検出されたそれぞれの領域組kはそれぞれ検出姿勢Θkによって決まる投票重みwk(Θk)が割り当てられており、領域組kからの投票値をカウントする際には、投票重みwk(Θk)を乗じる。投票重みは後述する学習処理において決定される。
【0045】
投票の方法としてはいくつかの手法が考えられる。例えば、位置パラメータPおよび姿勢パラメータΘに関する投票空間を所定間隔のビンに分割して、領域組推定工程S1040にて得られた推定位置姿勢パラメータPk、Θkの含まれるビンに投票するといった方法でもよい。あるいは、位置パラメータP、姿勢パラメータΘに関するパラメータ空間に対して、推定位置姿勢パラメータPk、Θkを中心としたガウシアンなどで近似した確率投票としてもよい。位置P、姿勢Θのビンへの投票数、あるいは各領域組による確率投票値の累積確率を求め、位置P、姿勢Θにおける検出物体の位置姿勢累積投票値をPr(P,Θ)とする。
対象物体推定工程S1060では、投票工程S1050の演算処理で、位置および姿勢の投票値に投票重みが乗じられた値を全ての領域組について加算した位置および姿勢の累積投票値(位置姿勢累積投票値)を算出する。そして、加算により求められる累積投票値(位置姿勢累積投票値)が極大となる位置および姿勢を算出する。累積投票値(位置姿勢累積投票値)が極大となる位置および姿勢における累積投票値の値が所定の閾値以上であるときに、その位置および姿勢を対象物体の位置および姿勢と推定する。本工程では、領域組からの投票の集計結果である位置姿勢累積投票値Pr(P,Θ)から検出物体の位置および姿勢の推定値を算出する。具体的には、Pr(P,Θ)が極大となる位置P、姿勢Θを求め、そのときのPr(P,Θ)の値が閾値η以上であるときに、その位置P、姿勢Θを認識の対象となる対象物体の推定位置姿勢であるとする。閾値ηは位置姿勢累積投票値Pr(P,Θ)に関する下限値である。閾値ηは、例えばη=0.9などと設定する。
【0046】
認識処理として、投票による三次元物体の位置姿勢を推定する処理を説明したが、このような処理を行う場合に、位置姿勢の推定に用いる領域組の投票重みをどのように定義すれば有効であるか、という問題がある。特に任意姿勢における領域組検出では、同じ領域組でも見る角度によって検出難易度は変化する。本実施形態はこの課題に対して有効な領域組の投票重みを設定する方法を提供するものであり、その学習方法を以下に説明する。
【0047】
本実施形態にかかる学習方法の処理を図7(a)に従い説明する。図7(a)における学習データ収集工程S2100では、対象物体に関する複数視点v=1・・・Vから得られる対象物体情報である学習画像Iv、カメラ座標系マップXmapv、Ymapv、およびZmapvを、学習に用いるデータとして取得する。これら対象物体情報の取得におけるカメラや距離計測は検出処理時と同じ設定であることが望ましいが、必ずしも同じである必要はない。例えば、様々な視点における対象物体情報を、三次元モデルを元にして画像及び三次元情報をコンピュータグラフィックス等で作成し、学習画像Iv、カメラ座標系マップXmapv、Ymapv、及びZmapvとして利用してもよい。
座標対応算出工程S2200において、座標対応算出部400は三次元モデル記憶部600から対象物体の三次元モデルを取得する。座標対応算出部400には、撮像部300から撮像データ(学習画像)が送られてきており、座標対応算出部400は三次元モデル上の各点と撮像データ(学習画像)との対応関係を算出する。まず、学習画像における対象物体のカメラ座標空間における位置および姿勢を、手動もしくは公知技術によるトラッキングツールなどを使ったマッチング処理によって算出する。これにより学習画像における対象物体のカメラ座標空間における位置と姿勢が求まるため、透視投影することにより画像上における対象物体領域が得られる。図8のように対象物体領域における各画像座標点pjと対応する三次元モデル上の点のカメラ座標系位置Pjが得られる。座標対応算出部400は、各学習画像Ivにおける対象物体領域内の画像座標点とカメラ座標点との対応関係をすべて算出して学習装置200へ送る。対応関係を算出(マッチング)によって得られた対象物体の単回転表現による姿勢パラメータである回転軸単位ベクトルnv,回転角度βv,さらに物体の位置を示す平行移動ベクトルPcvも併せて学習装置200へ送る。これらの情報を全視点v=1・・・Vに関してまとめたものを学習データS={Iv,Xmapv,Ymapv,Zmapv,nv,βv,Pcv}とする。なお、学習データが三次元モデルから人工的に生成され、各視点における物体の位置および姿勢が既知であるならば、上記マッチング処理は必要ない。
学習データ分割工程S2300では、学習データ収集工程S2100および座標対応算出工程S2200で得られた複数視点v=1・・・Vからの学習データを、特定領域検出器学習データと評価データに分割する。まず、各データに対する視点インデックスvをvL=1・・・VL、vW=1・・・VWと振りなおす。振りなおされた視点インデックスに従い、学習画像Iv、カメラ座標系マップXmapv、Ymapv、及びZmapvと、各データにおける物体の位置姿勢パラメータnv,βv,Pcvを二つのグループに分割する。すなわち、特定領域検出器学習データは、特定領域検出器学習データSL={IvL,XmapvL,YmapvL,ZmapvL,nvL,βvL,PcvL}とする。また、評価データは、評価データSW={IvW,XmapvW,YmapvW,ZmapvW,nvW,βvW,PcvW}である。ただし、分割した二つのグループにおけるデータは重複していても、重複しないように分割しても、いずれでもよく、データの重複度によって限定されるものではない。学習結果による姿勢推定性能を視点に偏りなく得たい場合には、特定領域検出器学習データSLと評価データSWそれぞれの視点分布は図9(a)のように測地ドーム近似されて偏りが少ないことが望ましい。測地ドームとは、正多面体の三角形面素を再帰的に同一面積の三角形に分割していくことで球面を均一に離散化表現する、公知の手法である。ただし、検出対象物体の配置条件による姿勢に関する事前分布が既知である場合には、その分布に従った視点密度で学習データを準備してもよい。例えば、必ず表側を向いて供給されることがわかっている物体を検出器の検出対象とするのであれば、図9(b)のように表側に関するデータだけを収集して使ってもよい。これらのデータを用いた学習装置200における学習方法は、以下の学習工程S2400で説明される。
【0048】
学習工程S2400の処理フローの詳細な処理の内容を図7(b)に示す。まず、特定領域初期選択工程S2410では、対象物体の既知の三次元モデル表面からN0個所の点または部分領域をランダムに選択し、これを初期の選択領域(選択された特定領域)とする。選択領域の数N0は、例えば、N0=200と設定する。N0の値としては、この例に限定されるものではなく、任意の自然数を設定することが可能である。
【0049】
次に特定領域検出器学習工程S2420にて、選択されたN0個の特定領域の検出器を学習する。特定領域初期選択工程S2410で選択された特定領域を検出する検出器の学習に用いる学習データを生成し、学習データを用いた学習により検出器を生成する。図7(c)に、特定領域検出器学習工程S2420を詳細に示したフローを示す。まず選択領域モデル座標変換工程S2421では、選択領域aのモデル座標系における座標値を算出する。視点vの評価画像Ivにおける選択領域aの画像座標系位置がpav=[xa,ya]Tであったとする。そのカメラ座標系位置はPav=[Xmapv(pav),Ymapv(pav),Zmapv(pav)]として得ることができる。これに対して位置姿勢パラメータnv,βv,Pcvから、図11のように選択領域aのモデル座標系位置Pamを算出できる。
【0050】
【数11】
【0051】
ここでR(nv,βv)は単回転軸nvおよび単回転角βvによる回転変換行列である。これにより得られた選択領域aのモデル座標系位置Pamに関して、選択領域カメラ座標変換工程S2422では、特定領域検出器学習データSLの各視点vLにおけるカメラ座標系位置PavLを計算する。
【0052】
【数12】
【0053】
選択領域画像座標変換工程S2423では、学習データ取得時のカメラパラメータより、カメラ座標系位置PavLをさらに画像座標系位置pavLへと変換する。
【0054】
【数13】
【0055】
ここでδおよびfは前述のカメラパラメータであり、δはカメラの画素サイズ、fはカメラ焦点距離である。選択領域可視判定工程S2424では、ZavLとZmapvL(pavL)の値を比較し、ZavL>ZmapvL(pavL)であれば、視点vLから選択領域aは不可視であると判断する。このようにして特定領域検出器学習データSLの全視点に関して選択領域の可視判定を行う。
【0056】
選択領域特徴量抽出工程S2425では、可視である視点vLから、その画像座標系位置pavLを中心とした部分画像を検出時の処理と同様の方法で切り出して特徴量を抽出し、特定領域検出器を学習するためのデータとする。用いている特徴量が回転不変特徴量でない場合には、切り出してきた部分画像を面内回転させることで面内回転時の特徴量とし、データに追加してもよい。
【0057】
学習計算工程S2426では、選択されたN0個の特定領域に関して上記処理により特定領域検出器の学習に用いるデータを生成し、これらのデータを用いて各特定領域に関する検出器(特定領域検出器)を生成する。特定領域検出器は既存のどのような手法でも構わないが、例えば、公知技術であるSVM(Support Vector Machine)やRandomized Treeによる識別器としてもよい。特定領域検出器は、各領域を別クラスとして分類するマルチクラス分類器として学習させてもよい。更に、別の検出器として、例えば公知技術のOne−Class SVMを用いて、それぞれの特定領域に関して検出器を学習させ、特定領域数だけ検出器を作ってもよい。
【0058】
説明を図7(b)に戻し、特定領域検出器学習工程S2420にて特定領域検出器が得られた後、領域組生成工程S2430では、選択領域の組み合わせによる領域組の候補を複数生成する。例えば、特定領域初期選択工程S2410で選択された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。領域組を三領域によるトリプレットとした場合、選択領域数N0に対して領域組の候補は全部でN0C3個存在する。ただし、先の可視判定結果を用いることで、同時に可視とならない領域の組み合わせは事前に領域組の候補として排除することができる。また、可視な領域どうしの組み合わせをすべて生成する必要はなく、同一直線状に乗る特定領域の組み合わせを利用しない、デロネイ三角形分割によって稜線の重複を防ぐ、などにより領域組を絞り込んでもよい。
【0059】
評価工程S2440では、学習により生成された特定領域検出器を用いて、領域組の位置および姿勢の認識を行う。評価データSWのすべての視点におけるデータを入力データとして、先に説明したS1010からS1060による認識処理による三次元位置姿勢推定を行う。後述する正規化工程S2450を行う前であれば、前述の投票工程S1050にて用いられる投票重みはすべて一定の値、例えば1に初期化しておく。評価結果として位置姿勢推定結果が所定の誤差範囲内で得られた場合、正しい認識結果が得られたとする。位置、姿勢の推定結果が得られても所定誤差範囲内でなければ誤認識、位置、姿勢の推定結果が得られなかった場合を未検出とする。評価データSWのすべての視点vWにおける位置姿勢推定の評価結果と、領域組の検出結果とを保持しておく。
【0060】
正規化工程S2450では、評価工程S2440における認識結果に基づき、認識の結果により求められる領域組の位置および姿勢の認識精度に従って、検出器の出力に対する投票重みを設定する。すなわち、本工程では前述の投票工程S1050にて用いられる投票重みwt(Θt)を正規化する。本実施形態における正規化工程S2450内の処理に関する詳細フローを図10(a)に示す。
【0061】
累積投票値算出工程S2451では、評価工程S2440で得られた領域組の検出結果を基に、全視点vWにおける二種類の累積投票値を計算する。一つは所定の誤差範囲内の検出精度で正しく検出された領域組の投票値の累積値(正検出累積投票値)ET(vW)であって、正解値である位置姿勢に対する累積投票値から次のように定義する。
【0062】
【数14】
【0063】
ただし、表記を簡単にするため以下のように表現するものとする。
【0064】
【数15】
【0065】
ここでKは視点vWにおける検出領域組の集合、Θkは同視点における検出領域組kの推定姿勢である。PvWおよびΘvWは座標対応算出工程S2200にて得られた同視点における対象物体の位置および姿勢に関する真値である。Prk(P、Θ)は検出領域組kの、位置P、姿勢Θに対する重みなし投票値である。もう一つは誤差範囲を超えて誤って検出された領域組の投票重みの値の累積値(誤検出累積投票値)EFj(vW)であって、誤検出位置に関する累積投票値から次のように定義する。
【0066】
【数16】
【0067】
ただし、表記を簡単にするため以下のように表現するものとする。
【0068】
【数17】
【0069】
ここでj=1、・・・NvWFは視点vWにおいて誤検出された対象物体のインデックスで、NvWFは同視点において発生した誤検出の数である。PjおよびΘjは誤検出jにおいて得られた推定位置および推定姿勢である。
【0070】
投票重み更新工程S2452では、算出された累積投票値を基に投票値の重みを更新する。投票重みの値は、正検出累積投票値ET(vW)が投票閾値以上(η:投票閾値)、かつ、誤検出累積投票値EFj(vW)が投票閾値未満になるような値でなければならない。正検出累積投票値ET(vW)の最適化を最急上昇法で解くとすれば、数14式のwk(Θk)に関する偏微分から、投票重みwk(Θk)の更新式が次のように得られる。
【0071】
【数18】
【0072】
ここでζTは学習係数で、例えば、ζT=0.2と設定する。また、δは重み係数の更新を行うかどうかを決定するデルタ関数で、例えば、投票重みの最大値を、例えば、0.3に抑えるという制約を加えるのであれば以下の数19式のように定義すればよい。
【0073】
【数19】
【0074】
あるいは、すでに正しく対象物体の領域組が検出されている場合には重み係数の更新をしない、という制約を加えたいのであれば、以下の数20式のように定義すればよい。
【0075】
【数20】
【0076】
誤検出累積投票値EFj(vW)の最適化を最急降下法で解くとすれば、数16式のwk(Θk)に関する偏微分から、投票重みwk(Θk)の更新式が次の数21式のように得られる。
【0077】
【数21】
【0078】
ここでζFは学習係数で、例えば、ζF=0.1と設定する。上記の数20式および数21式を適用し、投票重みを更新する。投票重みwk(Θ)は、Θを量子化したLUT(ルックアップテーブル)の形式で保持してもよいし、多項式近似したΘの関数として保持してもよい。
【0079】
説明を図7(b)に戻し、ステップS2470では、評価データSWのすべての視点vWに関して投票重みの更新を適用した結果、更新前(既に設定済みの投票重み)と更新後の投票重み(正規化工程S2450で新たに設定された投票重み)に変化がなければ収束したものと判断する(S2470-Yes)。例えば、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値を超える場合(S2470−No)、評価工程(S2440)および正規化工程(S2450)の処理が繰り返し実行される。一方、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値以内の場合は投票重みに変化が無く、収束したものと判断し、その投票重みを確定する(S2470−Yes)。そして、投票重みを学習結果記憶部700に記憶させ、学習処理を終了する。一方、投票重みが変化した場合には収束しなかったものとして、評価工程S2440に戻り、新たに設定され、更新された投票重みを用いて再度、評価工程および正規化工程の処理を実行する。
【0080】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化される。同じ領域組でも、精度良く検出され易い姿勢では強く投票され、認識精度が低くなりがちな姿勢では、信頼度の高い姿勢の領域組からの投票に比べて弱く投票することとなるため誤検出が発生しにくくなり、対象物体の認識精度の向上が可能になる。
【0081】
(第2実施形態)
本実施形態では、第1実施形態において説明した学習方法に対して、さらに不要な領域組の削除と不足した特定領域の追加を実行する方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1の実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0082】
本実施形態における学習工程S2400の詳細フローを図7(b)の参照により説明する。特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。まず、特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択する。初期特定領域数N0は大きな値である必要はなく、例えば、N0=10といった小さな値で設定してもよい。特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
正規化工程S2450では、投票重みを正規化し、不要な領域組の削除と不足した特定領域の追加を行う。本実施形態における正規化工程S2450内の処理に関する詳細フローを図10(b)に示す。図10(b)に示す詳細フローにおいて、累積投票値算出工程S2451および投票重み更新工程S2452では、図10(a)の各工程と同様の処理が行われ、投票重みが更新される。
領域削除工程S2453では不要な領域組と特定領域を削除する。それぞれの領域組に関して、投票重み更新工程S2452で更新された投票重みの最大値が所定の閾値未満であれば、該当する領域組を削除する。それぞれの領域組kに関して、領域組kの領域組有効度w’k(Θ)として、全姿勢における投票重みの最大値を数22式により算出する。
【0083】
【数22】
【0084】
領域組有効度w’ k(Θ)の値が0に近い所定の閾値未満、例えば0.1未満であれば、領域組kは投票に対する寄与度が低いため不要であると判断し、領域組kを選択領域組から削除する。不要な領域組をすべて削除した後、構成要素として属する領域組が存在しなくなった特定領域は選択特定領域から削除する。領域組有効度w’ k(Θ)は全姿勢における最大値に限定されるものではなく、平均値、中央値などで設定してもよい。
【0085】
領域追加工程S2454では、評価工程S2440にて得られた評価結果において、対象物体の領域組の位置および姿勢が未検出となる視点が存在する場合は特定領域および領域組が不足していると判断し、新たな特定領域を追加する。追加された特定領域により新たな領域組が追加される。未検出の発生した評価データSWにおける視点の中から任意に視点vFNを選択し、視点vFNから可視な対象物体表面から追加特定領域を選定し、選択特定領域に追加する。選定方法はランダムに行ってもよいし、既に選択されている特定領域の検出結果から、特定領域検出器が反応しなかった画像領域から選択してもよい。追加する特定領域は一つ以上とし、同時に複数の特定領域を追加してもよいし、視点vFNを複数選択してもよい。新規に追加された選択特定領域と、削除されずに残っている選択特定領域の組み合わせから、領域組生成工程S2430と同様の処理により、新規の領域組を生成して選択された領域組に追加し、選択領域組を新規に生成する。新規に生成された選択領域組の投票重みは、他領域組の投票重みの平均値などで初期化する。
【0086】
次に特定領域検出器追加学習工程S2455では、領域追加工程S2454にて追加された特定領域も含めて特定領域検出器を学習する。特定領域検出器学習工程S2420と同様の処理にて、追加された特定領域の特徴量を抽出して、特定領域検出器を学習するためのデータに追加し、各特定領域に関する検出器を学習させ、特定領域検出器を生成する。
説明を図7(b)に戻し、正規化工程S2450の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断する(S2470−Yes)。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。それ以外の場合は収束しなかったものとして(S2470−No)、評価工程S2440に戻り、再度評価を行う。
【0087】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化され、さらに選択特定領域と選択領域組はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となり、対象物体の認識精度の向上が可能になる。
【0088】
(第3実施形態)
本実施形態では、第1実施形態において説明した認識処理に必要な領域組に関して、検出結果を改善するように領域組の構成特定領域を更新していく方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0089】
本実施形態における学習工程S2400の詳細フローを図12(a)の参照により説明する。図12(a)において、特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。まず、特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択する。特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
特定領域選択工程S2460では、領域組の同時検出率に従って領域組を構成する特定領域を選択する。特定領域選択工程S2460の処理に関する詳細フローを図12(b)に示す。
【0090】
図12(b)の同時検出率算出工程S2456では、撮像部の複数の撮像位置から複数の領域組を撮像した場合の検出結果のうち、同一の撮像位置で同時に所定の誤差範囲内の位置、姿勢として複数の領域組が検出される同時検出率を算出する。領域組kと領域組lが、同一視点(同一の撮像位置)で同時に正しい位置姿勢への投票に寄与する同時正投票寄与率RTS(k、l)を以下のように定義する。
【0091】
【数23】
【0092】
ただし、表記を簡単にするため以下のように表現するものとする。
【0093】
【数24】
【0094】
ここでPvWおよびΘvWは座標対応算出工程S2200にて得られた視点vWにおける対象物体の位置および姿勢に関する真値、VWは評価データSWにおける視点総数である。 Prk(P、Θ)は同視点における検出領域組kの、位置X、姿勢Θに対する重みなし投票値である。ただし、領域組kが同視点において検出されなかった場合には、Prk(P、Θ)=0とおく。
【0095】
これに対して、領域組kと領域組lのいずれか一方だけが正しい位置姿勢への投票に寄与する排他正投票寄与率RTX(k、l)を以下のように定義する。
【0096】
【数25】
【0097】
ここで、領域組kと領域組lの同時正検出率RT(k、l)は以下のように定義する。
【0098】
【数26】
【0099】
同様にして領域組kと領域組lが、同一視点で同時に誤検出位置姿勢へ投票する同時誤投票寄与率RFS(k、l)を数27式により求める。また、領域組kと領域組lのいずれか一方だけが誤検出位置姿勢へ投票する排他誤投票寄与率RFX(k、l)を数28式により求める。
【0100】
【数27】
【0101】
【数28】
【0102】
ただし、表記を簡単にするため以下のように表現するものとする。
【0103】
【数29】
【0104】
領域組kと領域組lの同時誤検出率RF(k、l)を以下のように定義する。
【0105】
【数30】
【0106】
同時正検出率RT(k、l)と同時誤検出率RF(k、l)の比を、領域組kと領域組lの同時検出率R(k、l)として定義する。
【0107】
【数31】
【0108】
同時検出率R(k、l)はすべての領域組kおよび領域組lに対して求めてもよいが、組み合わせ的に計算コストが高くなるため、一部の視点に限定して算出してもよい。例えば、評価工程S2440の結果における正解位置姿勢への累積投票値が大きい視点だけを選択し、その視点において検出された領域組に関してのみ、同時検出率を算出してもよい。
【0109】
領域組再構成工程S2457では、先の同時検出率算出工程S2456で算出された同時検出率に基づいて選択領域組を更新する。同時検出率算出工程S2456で算出された同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択する。そして、選択された特定領域から新規の領域組を生成して、領域組生成工程S2430で生成された領域組に追加する。同時検出率R(k、l)が所定の閾値より大きくなる領域組kおよび領域組lは、同じ視点において正しく同時検出される確率が高く、かつ、同時に誤検出されにくいものである。この領域組kと領域組lを構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、新規の領域組を生成し、領域組に追加する。選択された領域組の例を図4(b)に、新規に生成された領域組の例を図4(c)に示す。領域組kおよび領域組lはそのまま残しても良いが、計算量的に冗長な領域組となるため選択領域組から削除することが望ましい。新しい領域組を生成するための同時検出率R(k、l)の閾値は固定の閾値としてもよいし、パーセンタイル法によって一定割合の上位の組み合わせを選んでもよい。あるいは、最も高い値を出した組み合わせだけを選んでもよい。
【0110】
領域組の構成に変化がなかった場合には収束したものと判断し、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。領域組の構成が変化した場合には収束しなかったものとして(S2470−No)、評価工程S2440に戻り、再度評価を行う。一方、領域組の構成が変化しなかった場合には収束したものとして(S2470−Yes)、処理を終了する。
【0111】
以上のような学習方法により、領域組の同時検出率に従って領域組が再構成される。視点によって同時に検出されやすい特定領域は同じ領域組に組み込まれることになる。従って、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【0112】
(第4実施形態)
本実施形態では、第3実施形態において説明した学習方法に対して、さらに領域組の投票重みを設定する方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1の実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0113】
本実施形態における学習工程S2400の詳細フローを図13(a)の参照により説明する。図13(a)において、特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択し、特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
正規化工程S2450では領域組の投票重みを正規化し、特定領域選択工程S2460では同時検出率に従って領域組を構成する特定領域を選択する。本実施形態における正規化工程S2450と特定領域選択工程S2460内の処理に関する詳細フローを図13(b)に示す。図13(b)における正規化工程S2450の累積投票値算出工程S2451および投票重み更新工程S2452では、第1実施形態と同様にして正検出累積投票値ET(vW)と誤検出累積投票値EF(vW)を求め、投票重みを更新する。
【0114】
図13(b)における特定領域選択工程S2460の領域削除工程S2453では、第 2実施形態と同様にして不要な特定領域組および領域組を削除する。同時検出率算出工程S2456では、第 3実施形態と同様にして同時検出率を求める。ただし、同時正投票寄与率RTS(k、l)、排他正投票寄与率RTX(k、l)、同時誤投票寄与率RFS(k、l)および排他誤投票寄与率RFX(k、l)は、投票重みを考慮して以下の数32式から数35式のように求める。
【0115】
【数32】
【0116】
【数33】
【0117】
【数34】
【0118】
【数35】
【0119】
領域組再構成工程S2457では、第 3実施形態と同様にして、同時検出率に基づいて選択領域組を更新する。
【0120】
領域追加工程S2454および特定領域検出器追加学習工程S2455では、第2実施形態と同様にして特定領域と領域組の追加と、それに伴う特定領域検出器の追加学習を行う。
【0121】
上記の正規化工程S2450および特定領域選択工程S2460の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断し(S2470−Yes)。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。一方、収束判断工程S2470において、投票重み、選択特定領域または選択領域組に変化が生じた場合は収束していないものと判断し(S2470−No)、処理を評価工程S2440に戻して再度評価を行う。
【0122】
以上のような学習方法により、領域組の投票重みが正規化され、さらに選択特定領域と選択領域組の数とその構成はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となる。また、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【0123】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、物体認識装置、物体認識方法、学習装置、学習方法、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
視覚情報を使った物体認識の分野において、物体の三次元的な位置や姿勢を推定する問題に関して、さまざまな研究開発が行われている。産業用ロボットや実験的なヒューマノイドロボットなどの分野ではランダムピッキングなどの用途で三次元情報を利用することも多く、その必要性は高くなってきている。
【0003】
既知の形状の対象物体に関しては、単眼カメラによる対象物体の位置姿勢推定も行われている。単眼カメラによる三次元姿勢推定の一つの手法として、さまざまな姿勢を別のクラスとして識別する方法がある。また、ステレオカメラやレーザレンジファインダなどの三次元センサを用いて得られた三次元特徴量を利用する方法もある。この方法では、モデル上の複数の特徴点と三次元特徴量との対応関係を求め、剛体変換を用いて物体の位置および姿勢を算出する。複数の検出器の投票もしくは統合処理による対象物体の認識手法では、投票の重みを調整する方法も提案されている。例えば、特許文献 1では、複数の木構造フィルタによる認識器の出力を統合することで画像全体を認識している。認識器を組替える、もしくは統合時の重みを選択することで、認識システム全体を環境に適応させて更新していく。
【0004】
また、特許文献 2では、量子化された特徴点を入力画像から検出し、得られた特徴点からの重み付き一般化ハフ変換を用いて対象物体の位置と姿勢を求めている。この際、各特徴点での特徴量によるヒストグラムから特徴点の重みを予め計算している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−204103号公報
【特許文献2】特許第03346679号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献 1では、認識器の重みバリエーションを予め用意しておき、その組み合わせの中で最も検出結果の良い重みを選択している。重み決定は離散的に行われるため、探索速度と重みバリエーションの粒度はトレードオフの関係にある。任意の姿勢における対象物体の認識を考えると、対象物体上の同一部分であっても、視点変化によって特徴量は変化する。
【0007】
特許文献 2の手法では、三次元的な任意の姿勢における対象物体の認識に拡張しようとすると、特徴量ヒストグラムから投票重みの決定を行うことは難しい。
【課題を解決するための手段】
【0008】
上記の課題を鑑み、本発明は、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能な学習技術および物体認識技術の提供を目的とする。
【0009】
上記の目的を達成する本発明の一つの側面にかかる学習方法は、対象物体を検出する検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する検出器の学習を行う学習工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化工程と、
を有することを特徴とする。
【0010】
また、上記の学習方法は、前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする。
【0011】
上記の目的を達成する本発明の他の側面にかかる物体認識方法は、上記の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
上記の学習方法の学習工程で生成された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して上記の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、対象物体の姿勢に対応した信頼度の高い領域組からの投票を重視することで、対象物体を精度よく認識することが可能になる。あるいは、信頼度の低い姿勢の領域組からの投票の重みは、信頼度の高い姿勢の領域組からの投票に比べて弱くなるため、誤検出が発生しにくくなり、そのため、対象物体の認識精度の向上が可能になる。
【図面の簡単な説明】
【0013】
【図1】実施形態にかかる情報処理システムの全体的な構成を例示する図。
【図2】実施形態にかかる物体認識処理を行うための装置構成を例示する図。
【図3】実施形態にかかる物体認識処理の流れを説明する図。
【図4】特定領域と領域組を説明する図。
【図5】特定領域検出工程における処理を説明する図。
【図6】検出位置と検出姿勢の定義を説明する図。
【図7】実施形態にかかる学習処理の流れを説明する図。
【図8】三次元モデル上の点と画像座標の関係を示す図。
【図9】学習データ取得に関する測地ドームの視点を説明する図。
【図10】第1および第2実施形態における正規化工程の流れを説明する図。
【図11】モデル座標系と画像上の点の関係を示す図。
【図12】第3実施形態における学習方法の流れを説明する図。
【図13】第4実施形態における学習方法の流れを説明する図。
【発明を実施するための形態】
【0014】
(第1実施形態)
図1の参照により、本発明の実施形態にかかる情報処理システムの全体的な構成を説明する。撮像部300で撮像された撮像データが座標対応算出部400に送られる。座標対応算出部400は三次元モデル記憶部600において記憶されている三次元モデル上の各点と撮像データとの対応関係を算出する。座標対応算出部400で算出された撮像データと三次元モデルとの対応関係を用いて、学習装置200は後述する学習処理を行い、得られた学習結果(学習パラメータ)を学習結果記憶部700に記憶する。
【0015】
撮像部300で撮像された撮像データが物体認識装置100に送られ、学習結果記憶部700に記憶された学習パラメータに従って後述する認識処理を撮像データに対して行うことにより、撮像データの認識処理結果が得られる。ここで、認識処理とは、撮像部300より得られた撮像データから検出対象物体である三次元物体の三次元的な位置姿勢を求める位置姿勢推定処理である。
【0016】
(物体認識方法)
物体認識処理を行うための基本的な装置構成の例を図2に示し、物体認識装置で実行される処理フローを図3に示す。
A500は認識の対象となる対象物体である。A300は対象物体A500を載せるためのステージである。A100は対象物体A500を撮像し、画像データを取得するためのカメラである。A110はカメラA100と連動して、光切断法によって対象物体A500の距離マップデータを得るために、ガルバノミラーなどで稼動するレーザ投光部(レーザ投光器)である。カメラA100およびレーザ投光器A110は、図1における撮像部300に相当する。カメラA100およびレーザ投光器A110は、光切断法による距離測定を行うための校正が行われているものとする。ここで、認識処理を行うための装置構成として光切断法による距離測定を例示したが、距離測定手法は光切断法に限定されるものではない。例えば、レーザ投光器A110の替わりにプロジェクタを用いた空間コード化、もしくは複数のカメラを用いたステレオ計測など、さまざまな距離測定手法を適用することが可能である。A200は、三次元物体検出処理を行うための情報処理装置であり、図1における物体認識装置100に相当する。
【0017】
また、後述する学習処理による学習結果は情報処理装置A200の図示しない内部メモリに格納されているものとする。この内部メモリは図1における学習結果記憶部700に相当する。認識処理を行う物体認識装置100(情報処理装置A200)はこの例のようなカメラA100と独立した装置に限定されるものではない。例えば、カメラA100に物体認識装置100(情報処理装置A200)の機能を搭載することによってカメラ自体が認識処理を行う構成でもよい。
【0018】
図2のような装置構成を想定した場合を例として、本実施形態にかかる物体認識処理を図3に従って説明する。本処理は、物体認識装置100(情報処理装置A200)の全体的な動作を司る制御部により実行される。まず、入力情報取得工程S1010では、撮像部300で撮像された対象物体の画像を取得する。カメラA100およびレーザ投光器A110によって、認識処理に用いる入力情報として、入力画像Iおよび距離マップZmapを取得する。距離マップZmapは、カメラA100から入力画像I上の各画像座標点pまでのカメラ座標系の奥行き方向(Z方向)の距離として得られる。距離マップの算出に関しては既存の三角測量法などで算出することが可能であるため、ここでは特に説明しない。距離マップZmapと距離測定の校正値から、カメラ座標系における奥行き方向(Z方向)に直交する水平方向を示すX座標のマップ、Z方向およびX方向に直交する水平方向を示すY座標のマップも算出することができる。これらのマップをXmap、Ymapとする。
【0019】
次に、特定領域検出工程S1020では、入力情報取得工程S1010で取得された画像から、画像に含まれる部分領域の画像として複数の特定領域を検出する。本工程において、後述する学習処理によって既に得られている物体上の特定領域を特定領域検出器により検出する。ここで特定領域とは、三次元モデルとして得られている対象物体上の、所定サイズの局所領域(部分領域)である。例えば、図4(a)に示される三次元モデルA510において、A511−1〜A511−Mのように三次元モデル上の特定の位置を示している。ここでMは特定領域の総数である。これらの特定領域は、それぞれモデル座標系における位置情報を持っており、特定領域iのモデル座標位置をPmi=[Xmi,Ymi,Zmi]Tとする。 ここで上付き添字mは「モデル」を意味し、Tは行列の転置を表す。特定領域検出工程S1020において、特定領域検出器は、図5のようにして入力画像Iに対してラスタスキャンしながら注目位置psを中心とした部分画像を抽出し、その部分画像において抽出された特徴量を用いて特定領域を検出する。部分画像の切り出しサイズrは、予め決められたモデル座標系における固定サイズRと、注目位置psの奥行き距離から次式により算出される。
【0020】
【数1】
【0021】
δはカメラの画素サイズ、fはカメラの焦点距離である。例えば、切り出しサイズがR=20mmと設定されているとき、f=24mm、δ=0.03mm/pixelのカメラにて Zmap(ps)=800mmであれば、r=20pixelであるため、20pixel×20pixelの領域を部分画像として切り出せばよい。部分画像において抽出する特徴量としては、例えば、HOG(Histograms of Oriented Gradients)のようなものが考えられるが、本発明の趣旨は特徴量の種類に限定されるものではない。例えば、Spin Imageのような、入力画像Iの替わりに認識対象の物体の三次元情報を用いた三次元特徴量でもよい。
【0022】
特定領域検出器による画像探索によって検出された特定領域iの検出領域の集合をAi={xi1,xi2・・・xiNi}とする。ここでxilは特定領域検出器によって検出された特定領域iのl番目の検出領域の画像上の位置であって、画像座標系上の点である。Niは、特定領域検出器によって検出された特定領域iの検出点の総数である。各検出領域位置pilのカメラ座標系における位置はPil=[Xil,Yil,Zil]=[Xmap(pil),Ymap(pil),Zmap(pil)]として得ることができる。
【0023】
領域組生成工程S1030では、特定領域検出工程S1020で検出された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。特定領域検出工程S1020で検出された特定領域に対して、予め定義された特定領域の組み合わせによる領域組を生成する。領域組とは、認識対象の物体の位置および姿勢を推定するために用いる特定領域の組み合わせである。予め定義されたT個のそれぞれの領域組に対して、領域組tを構成する特定領域を、t1、t2、・・・tMtとする。ここでMTは領域組tを構成する特定領域の総数である。距離計測などによって各検出領域のカメラ座標系位置が求まる場合には、位置および姿勢を決定するために最低限、三点のカメラ座標系における位置がわかればよい。三つの特定領域による領域組をトリプレットと呼ぶこととするが、領域組は三点で構成されることに限定されるわけではない。
【0024】
図4(b)に、MT=3として領域組をトリプレットの例を示す。領域組tの構成要素である特定領域が特定領域検出工程S1020で検出されていた場合、領域組生成工程S1030では、ステップS1020で検出された特定領域の相対的な位置関係が幾何拘束条件を満たしているかどうかを判定する。幾何拘束条件の判定は、例えば、以下のようにして行う。まず、領域組tを構成する特定領域ペアの組み合わせに関して、特定領域ペア間の距離をカメラ座標系にて算出する。得られた距離を、対応する既知の3次元モデル上の特定領域ペアの特定領域間の距離(モデル上の距離)と比較して距離の誤差を算出し、算出された距離の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、モデル上の距離の10%の範囲内(±5%の範囲内)であれば、検出された特定領域ペアの距離関係は正しいとし、検出領域組の候補として残す。次に、検出領域組候補として残った領域組tを構成する検出された特定領域ペアの組み合わせに関して、特定領域ペア間におけるその成す角度をカメラ座標系にて算出する。得られた角度を、対応する既知の3次元モデル上の特定領域の成す角度と比較し、角度の誤差が所定の閾値誤差の範囲内であるか否かを判定する。例えば、15degの範囲内(±7.5deg)であれば検出された特定領域の相対的な位置関係は正しいとし、領域組を構成すると判定する。
【0025】
統合工程S1100では、検出されたそれぞれの領域組における位置および姿勢(角度)の推定結果を算出し、その結果を統合して、対象物体の認識結果を得る。統合工程S1100は、領域組の位置姿勢を推定する領域組推定工程S1040、投票工程S1050および対象物体の位置姿勢を推定する対象物体推定工程S1060の3つの工程を有する。
【0026】
領域組推定工程S1040では、領域組生成工程S1030にて絞り込まれた領域組(検出物体)の位置および姿勢を推定する。領域組生成工程S1030で生成された領域組について、撮像部の座標系を基準とした検出位置情報および対象物体の3次元モデル上の座標位置情報を求める。そして、検出位置情報と座標位置情報との差分を最小にする位置と、その位置に対応する姿勢とを領域組の推定位置および推定姿勢とする。検出物体の位置および姿勢は、図6に示すように、検出物体をモデル座標系とカメラ座標系が一致している状態から観測状態へと平行移動および単回転させたときの平行移動ベクトル、単回転軸および単回転角で表現されるものとする。検出された領域組(検出領域組)から推定される検出物体の位置を平行移動ベクトルTk、姿勢ベクトルΘk=BkNkで表す。ここでNkは単回転軸およびBkは単回転角で、NkはNk=[nX,nY,nZ]Tで表される長さ1の正規化ベクトルである。このとき、Rkを、NkおよびBkで得られる回転変換であるとすれば、モデル上の任意の点Pmは、上記の位置姿勢パラメータTk、NkおよびBkによって以下の数2式の位置P’に移動する。
【0027】
【数2】
【0028】
検出領域組kを構成する特定領域をk1・・・ku・・・kMkとする。ここでMkは領域組kを構成する特定領域の数で、例えば領域組がトリプレットとして定義されているならばMk=3である。検出領域組kの位置姿勢推定問題は、以下の数3式の関数の最小化問題となる。
【0029】
【数3】
【0030】
ただし、Pkuは検出領域組kにおける特定領域kuのカメラ座標系検出位置(撮像部の座標系を基準とした検出位置情報)、P’ kuは特定領域kuのモデル座標位置(対象物体の3次元モデルの座標位置情報)Pmkuが数 4式に従って変換されたときの変換後のカメラ座標系位置である。回転変換Rkの四元数表現qと平行移動Tkの要素をそれぞれq=(q0,q1,q2,q3)、Tk=[q4,q5,q6]Tとする。このとき、検出領域組kの各検出領域の検出位置重心μと、領域組tの特定領域重心の移動後の位置μ’は、それぞれ以下のようにして得られる。
【0031】
【数4】
【0032】
【数5】
【0033】
領域組tの特定領域位置と、検出領域組kの各検出領域位置の共分散行列Skは以下の数6式のようにして求められる。
【0034】
【数6】
【0035】
ここでSkの循環要素をAij=(Sk−SkT)ijとしたときに列ベクトルΔ=[A23,A32,A12]Tを定義する。これを使って表される次の数7式のような対称行列Q(Sk)の固有値解析によって得られた最大固有値に対応する固有ベクトルは、回転変換Rの四元数表現qの要素列(q0,q1,q2,q3)の最適解となることが非特許文献1にて知られている。
【0036】
【数7】
【0037】
ここでI3×3は、3×3単位行列である。
【0038】
非特許文献1 P.J.Besl and N.D.McKay,“A Method for Recognition of 3−D Shapes”,IEEE Trans.PAMI,Vol.14,No.2,1992.
回転変換Rの四元数表現である四元数qは、単回転軸Nkおよび単回転角Bkとの間に以下の数8式の関係があるため、NkおよびBkの値が求まる。
【0039】
【数8】
【0040】
また、検出領域組kにおける検出対象物体の位置を表す平行移動ベクトルTkの最適解は、以下の数9式のようにして得られる。
【0041】
【数9】
【0042】
ただしμmは検出領域組kを構成する特定領域のモデル座標系位置の重心を回転変換させたものであって、以下の数10式のようにして得られる。
【0043】
【数10】
【0044】
投票工程S1050では、得られた各検出領域組における推定姿勢に対して、位置および姿勢の投票空間に投票を行う。領域組推定工程S1040で推定された領域組の位置および推定姿勢に対して、後に説明する図7(b)の収束判断工程S2470で確定された投票重みを、特定領域検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う。検出されたそれぞれの領域組kはそれぞれ検出姿勢Θkによって決まる投票重みwk(Θk)が割り当てられており、領域組kからの投票値をカウントする際には、投票重みwk(Θk)を乗じる。投票重みは後述する学習処理において決定される。
【0045】
投票の方法としてはいくつかの手法が考えられる。例えば、位置パラメータPおよび姿勢パラメータΘに関する投票空間を所定間隔のビンに分割して、領域組推定工程S1040にて得られた推定位置姿勢パラメータPk、Θkの含まれるビンに投票するといった方法でもよい。あるいは、位置パラメータP、姿勢パラメータΘに関するパラメータ空間に対して、推定位置姿勢パラメータPk、Θkを中心としたガウシアンなどで近似した確率投票としてもよい。位置P、姿勢Θのビンへの投票数、あるいは各領域組による確率投票値の累積確率を求め、位置P、姿勢Θにおける検出物体の位置姿勢累積投票値をPr(P,Θ)とする。
対象物体推定工程S1060では、投票工程S1050の演算処理で、位置および姿勢の投票値に投票重みが乗じられた値を全ての領域組について加算した位置および姿勢の累積投票値(位置姿勢累積投票値)を算出する。そして、加算により求められる累積投票値(位置姿勢累積投票値)が極大となる位置および姿勢を算出する。累積投票値(位置姿勢累積投票値)が極大となる位置および姿勢における累積投票値の値が所定の閾値以上であるときに、その位置および姿勢を対象物体の位置および姿勢と推定する。本工程では、領域組からの投票の集計結果である位置姿勢累積投票値Pr(P,Θ)から検出物体の位置および姿勢の推定値を算出する。具体的には、Pr(P,Θ)が極大となる位置P、姿勢Θを求め、そのときのPr(P,Θ)の値が閾値η以上であるときに、その位置P、姿勢Θを認識の対象となる対象物体の推定位置姿勢であるとする。閾値ηは位置姿勢累積投票値Pr(P,Θ)に関する下限値である。閾値ηは、例えばη=0.9などと設定する。
【0046】
認識処理として、投票による三次元物体の位置姿勢を推定する処理を説明したが、このような処理を行う場合に、位置姿勢の推定に用いる領域組の投票重みをどのように定義すれば有効であるか、という問題がある。特に任意姿勢における領域組検出では、同じ領域組でも見る角度によって検出難易度は変化する。本実施形態はこの課題に対して有効な領域組の投票重みを設定する方法を提供するものであり、その学習方法を以下に説明する。
【0047】
本実施形態にかかる学習方法の処理を図7(a)に従い説明する。図7(a)における学習データ収集工程S2100では、対象物体に関する複数視点v=1・・・Vから得られる対象物体情報である学習画像Iv、カメラ座標系マップXmapv、Ymapv、およびZmapvを、学習に用いるデータとして取得する。これら対象物体情報の取得におけるカメラや距離計測は検出処理時と同じ設定であることが望ましいが、必ずしも同じである必要はない。例えば、様々な視点における対象物体情報を、三次元モデルを元にして画像及び三次元情報をコンピュータグラフィックス等で作成し、学習画像Iv、カメラ座標系マップXmapv、Ymapv、及びZmapvとして利用してもよい。
座標対応算出工程S2200において、座標対応算出部400は三次元モデル記憶部600から対象物体の三次元モデルを取得する。座標対応算出部400には、撮像部300から撮像データ(学習画像)が送られてきており、座標対応算出部400は三次元モデル上の各点と撮像データ(学習画像)との対応関係を算出する。まず、学習画像における対象物体のカメラ座標空間における位置および姿勢を、手動もしくは公知技術によるトラッキングツールなどを使ったマッチング処理によって算出する。これにより学習画像における対象物体のカメラ座標空間における位置と姿勢が求まるため、透視投影することにより画像上における対象物体領域が得られる。図8のように対象物体領域における各画像座標点pjと対応する三次元モデル上の点のカメラ座標系位置Pjが得られる。座標対応算出部400は、各学習画像Ivにおける対象物体領域内の画像座標点とカメラ座標点との対応関係をすべて算出して学習装置200へ送る。対応関係を算出(マッチング)によって得られた対象物体の単回転表現による姿勢パラメータである回転軸単位ベクトルnv,回転角度βv,さらに物体の位置を示す平行移動ベクトルPcvも併せて学習装置200へ送る。これらの情報を全視点v=1・・・Vに関してまとめたものを学習データS={Iv,Xmapv,Ymapv,Zmapv,nv,βv,Pcv}とする。なお、学習データが三次元モデルから人工的に生成され、各視点における物体の位置および姿勢が既知であるならば、上記マッチング処理は必要ない。
学習データ分割工程S2300では、学習データ収集工程S2100および座標対応算出工程S2200で得られた複数視点v=1・・・Vからの学習データを、特定領域検出器学習データと評価データに分割する。まず、各データに対する視点インデックスvをvL=1・・・VL、vW=1・・・VWと振りなおす。振りなおされた視点インデックスに従い、学習画像Iv、カメラ座標系マップXmapv、Ymapv、及びZmapvと、各データにおける物体の位置姿勢パラメータnv,βv,Pcvを二つのグループに分割する。すなわち、特定領域検出器学習データは、特定領域検出器学習データSL={IvL,XmapvL,YmapvL,ZmapvL,nvL,βvL,PcvL}とする。また、評価データは、評価データSW={IvW,XmapvW,YmapvW,ZmapvW,nvW,βvW,PcvW}である。ただし、分割した二つのグループにおけるデータは重複していても、重複しないように分割しても、いずれでもよく、データの重複度によって限定されるものではない。学習結果による姿勢推定性能を視点に偏りなく得たい場合には、特定領域検出器学習データSLと評価データSWそれぞれの視点分布は図9(a)のように測地ドーム近似されて偏りが少ないことが望ましい。測地ドームとは、正多面体の三角形面素を再帰的に同一面積の三角形に分割していくことで球面を均一に離散化表現する、公知の手法である。ただし、検出対象物体の配置条件による姿勢に関する事前分布が既知である場合には、その分布に従った視点密度で学習データを準備してもよい。例えば、必ず表側を向いて供給されることがわかっている物体を検出器の検出対象とするのであれば、図9(b)のように表側に関するデータだけを収集して使ってもよい。これらのデータを用いた学習装置200における学習方法は、以下の学習工程S2400で説明される。
【0048】
学習工程S2400の処理フローの詳細な処理の内容を図7(b)に示す。まず、特定領域初期選択工程S2410では、対象物体の既知の三次元モデル表面からN0個所の点または部分領域をランダムに選択し、これを初期の選択領域(選択された特定領域)とする。選択領域の数N0は、例えば、N0=200と設定する。N0の値としては、この例に限定されるものではなく、任意の自然数を設定することが可能である。
【0049】
次に特定領域検出器学習工程S2420にて、選択されたN0個の特定領域の検出器を学習する。特定領域初期選択工程S2410で選択された特定領域を検出する検出器の学習に用いる学習データを生成し、学習データを用いた学習により検出器を生成する。図7(c)に、特定領域検出器学習工程S2420を詳細に示したフローを示す。まず選択領域モデル座標変換工程S2421では、選択領域aのモデル座標系における座標値を算出する。視点vの評価画像Ivにおける選択領域aの画像座標系位置がpav=[xa,ya]Tであったとする。そのカメラ座標系位置はPav=[Xmapv(pav),Ymapv(pav),Zmapv(pav)]として得ることができる。これに対して位置姿勢パラメータnv,βv,Pcvから、図11のように選択領域aのモデル座標系位置Pamを算出できる。
【0050】
【数11】
【0051】
ここでR(nv,βv)は単回転軸nvおよび単回転角βvによる回転変換行列である。これにより得られた選択領域aのモデル座標系位置Pamに関して、選択領域カメラ座標変換工程S2422では、特定領域検出器学習データSLの各視点vLにおけるカメラ座標系位置PavLを計算する。
【0052】
【数12】
【0053】
選択領域画像座標変換工程S2423では、学習データ取得時のカメラパラメータより、カメラ座標系位置PavLをさらに画像座標系位置pavLへと変換する。
【0054】
【数13】
【0055】
ここでδおよびfは前述のカメラパラメータであり、δはカメラの画素サイズ、fはカメラ焦点距離である。選択領域可視判定工程S2424では、ZavLとZmapvL(pavL)の値を比較し、ZavL>ZmapvL(pavL)であれば、視点vLから選択領域aは不可視であると判断する。このようにして特定領域検出器学習データSLの全視点に関して選択領域の可視判定を行う。
【0056】
選択領域特徴量抽出工程S2425では、可視である視点vLから、その画像座標系位置pavLを中心とした部分画像を検出時の処理と同様の方法で切り出して特徴量を抽出し、特定領域検出器を学習するためのデータとする。用いている特徴量が回転不変特徴量でない場合には、切り出してきた部分画像を面内回転させることで面内回転時の特徴量とし、データに追加してもよい。
【0057】
学習計算工程S2426では、選択されたN0個の特定領域に関して上記処理により特定領域検出器の学習に用いるデータを生成し、これらのデータを用いて各特定領域に関する検出器(特定領域検出器)を生成する。特定領域検出器は既存のどのような手法でも構わないが、例えば、公知技術であるSVM(Support Vector Machine)やRandomized Treeによる識別器としてもよい。特定領域検出器は、各領域を別クラスとして分類するマルチクラス分類器として学習させてもよい。更に、別の検出器として、例えば公知技術のOne−Class SVMを用いて、それぞれの特定領域に関して検出器を学習させ、特定領域数だけ検出器を作ってもよい。
【0058】
説明を図7(b)に戻し、特定領域検出器学習工程S2420にて特定領域検出器が得られた後、領域組生成工程S2430では、選択領域の組み合わせによる領域組の候補を複数生成する。例えば、特定領域初期選択工程S2410で選択された複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する。領域組を三領域によるトリプレットとした場合、選択領域数N0に対して領域組の候補は全部でN0C3個存在する。ただし、先の可視判定結果を用いることで、同時に可視とならない領域の組み合わせは事前に領域組の候補として排除することができる。また、可視な領域どうしの組み合わせをすべて生成する必要はなく、同一直線状に乗る特定領域の組み合わせを利用しない、デロネイ三角形分割によって稜線の重複を防ぐ、などにより領域組を絞り込んでもよい。
【0059】
評価工程S2440では、学習により生成された特定領域検出器を用いて、領域組の位置および姿勢の認識を行う。評価データSWのすべての視点におけるデータを入力データとして、先に説明したS1010からS1060による認識処理による三次元位置姿勢推定を行う。後述する正規化工程S2450を行う前であれば、前述の投票工程S1050にて用いられる投票重みはすべて一定の値、例えば1に初期化しておく。評価結果として位置姿勢推定結果が所定の誤差範囲内で得られた場合、正しい認識結果が得られたとする。位置、姿勢の推定結果が得られても所定誤差範囲内でなければ誤認識、位置、姿勢の推定結果が得られなかった場合を未検出とする。評価データSWのすべての視点vWにおける位置姿勢推定の評価結果と、領域組の検出結果とを保持しておく。
【0060】
正規化工程S2450では、評価工程S2440における認識結果に基づき、認識の結果により求められる領域組の位置および姿勢の認識精度に従って、検出器の出力に対する投票重みを設定する。すなわち、本工程では前述の投票工程S1050にて用いられる投票重みwt(Θt)を正規化する。本実施形態における正規化工程S2450内の処理に関する詳細フローを図10(a)に示す。
【0061】
累積投票値算出工程S2451では、評価工程S2440で得られた領域組の検出結果を基に、全視点vWにおける二種類の累積投票値を計算する。一つは所定の誤差範囲内の検出精度で正しく検出された領域組の投票値の累積値(正検出累積投票値)ET(vW)であって、正解値である位置姿勢に対する累積投票値から次のように定義する。
【0062】
【数14】
【0063】
ただし、表記を簡単にするため以下のように表現するものとする。
【0064】
【数15】
【0065】
ここでKは視点vWにおける検出領域組の集合、Θkは同視点における検出領域組kの推定姿勢である。PvWおよびΘvWは座標対応算出工程S2200にて得られた同視点における対象物体の位置および姿勢に関する真値である。Prk(P、Θ)は検出領域組kの、位置P、姿勢Θに対する重みなし投票値である。もう一つは誤差範囲を超えて誤って検出された領域組の投票重みの値の累積値(誤検出累積投票値)EFj(vW)であって、誤検出位置に関する累積投票値から次のように定義する。
【0066】
【数16】
【0067】
ただし、表記を簡単にするため以下のように表現するものとする。
【0068】
【数17】
【0069】
ここでj=1、・・・NvWFは視点vWにおいて誤検出された対象物体のインデックスで、NvWFは同視点において発生した誤検出の数である。PjおよびΘjは誤検出jにおいて得られた推定位置および推定姿勢である。
【0070】
投票重み更新工程S2452では、算出された累積投票値を基に投票値の重みを更新する。投票重みの値は、正検出累積投票値ET(vW)が投票閾値以上(η:投票閾値)、かつ、誤検出累積投票値EFj(vW)が投票閾値未満になるような値でなければならない。正検出累積投票値ET(vW)の最適化を最急上昇法で解くとすれば、数14式のwk(Θk)に関する偏微分から、投票重みwk(Θk)の更新式が次のように得られる。
【0071】
【数18】
【0072】
ここでζTは学習係数で、例えば、ζT=0.2と設定する。また、δは重み係数の更新を行うかどうかを決定するデルタ関数で、例えば、投票重みの最大値を、例えば、0.3に抑えるという制約を加えるのであれば以下の数19式のように定義すればよい。
【0073】
【数19】
【0074】
あるいは、すでに正しく対象物体の領域組が検出されている場合には重み係数の更新をしない、という制約を加えたいのであれば、以下の数20式のように定義すればよい。
【0075】
【数20】
【0076】
誤検出累積投票値EFj(vW)の最適化を最急降下法で解くとすれば、数16式のwk(Θk)に関する偏微分から、投票重みwk(Θk)の更新式が次の数21式のように得られる。
【0077】
【数21】
【0078】
ここでζFは学習係数で、例えば、ζF=0.1と設定する。上記の数20式および数21式を適用し、投票重みを更新する。投票重みwk(Θ)は、Θを量子化したLUT(ルックアップテーブル)の形式で保持してもよいし、多項式近似したΘの関数として保持してもよい。
【0079】
説明を図7(b)に戻し、ステップS2470では、評価データSWのすべての視点vWに関して投票重みの更新を適用した結果、更新前(既に設定済みの投票重み)と更新後の投票重み(正規化工程S2450で新たに設定された投票重み)に変化がなければ収束したものと判断する(S2470-Yes)。例えば、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値を超える場合(S2470−No)、評価工程(S2440)および正規化工程(S2450)の処理が繰り返し実行される。一方、既に設定済みの投票重みと、新たに設定された投票重みとの差分が所定の閾値以内の場合は投票重みに変化が無く、収束したものと判断し、その投票重みを確定する(S2470−Yes)。そして、投票重みを学習結果記憶部700に記憶させ、学習処理を終了する。一方、投票重みが変化した場合には収束しなかったものとして、評価工程S2440に戻り、新たに設定され、更新された投票重みを用いて再度、評価工程および正規化工程の処理を実行する。
【0080】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化される。同じ領域組でも、精度良く検出され易い姿勢では強く投票され、認識精度が低くなりがちな姿勢では、信頼度の高い姿勢の領域組からの投票に比べて弱く投票することとなるため誤検出が発生しにくくなり、対象物体の認識精度の向上が可能になる。
【0081】
(第2実施形態)
本実施形態では、第1実施形態において説明した学習方法に対して、さらに不要な領域組の削除と不足した特定領域の追加を実行する方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1の実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0082】
本実施形態における学習工程S2400の詳細フローを図7(b)の参照により説明する。特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。まず、特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択する。初期特定領域数N0は大きな値である必要はなく、例えば、N0=10といった小さな値で設定してもよい。特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
正規化工程S2450では、投票重みを正規化し、不要な領域組の削除と不足した特定領域の追加を行う。本実施形態における正規化工程S2450内の処理に関する詳細フローを図10(b)に示す。図10(b)に示す詳細フローにおいて、累積投票値算出工程S2451および投票重み更新工程S2452では、図10(a)の各工程と同様の処理が行われ、投票重みが更新される。
領域削除工程S2453では不要な領域組と特定領域を削除する。それぞれの領域組に関して、投票重み更新工程S2452で更新された投票重みの最大値が所定の閾値未満であれば、該当する領域組を削除する。それぞれの領域組kに関して、領域組kの領域組有効度w’k(Θ)として、全姿勢における投票重みの最大値を数22式により算出する。
【0083】
【数22】
【0084】
領域組有効度w’ k(Θ)の値が0に近い所定の閾値未満、例えば0.1未満であれば、領域組kは投票に対する寄与度が低いため不要であると判断し、領域組kを選択領域組から削除する。不要な領域組をすべて削除した後、構成要素として属する領域組が存在しなくなった特定領域は選択特定領域から削除する。領域組有効度w’ k(Θ)は全姿勢における最大値に限定されるものではなく、平均値、中央値などで設定してもよい。
【0085】
領域追加工程S2454では、評価工程S2440にて得られた評価結果において、対象物体の領域組の位置および姿勢が未検出となる視点が存在する場合は特定領域および領域組が不足していると判断し、新たな特定領域を追加する。追加された特定領域により新たな領域組が追加される。未検出の発生した評価データSWにおける視点の中から任意に視点vFNを選択し、視点vFNから可視な対象物体表面から追加特定領域を選定し、選択特定領域に追加する。選定方法はランダムに行ってもよいし、既に選択されている特定領域の検出結果から、特定領域検出器が反応しなかった画像領域から選択してもよい。追加する特定領域は一つ以上とし、同時に複数の特定領域を追加してもよいし、視点vFNを複数選択してもよい。新規に追加された選択特定領域と、削除されずに残っている選択特定領域の組み合わせから、領域組生成工程S2430と同様の処理により、新規の領域組を生成して選択された領域組に追加し、選択領域組を新規に生成する。新規に生成された選択領域組の投票重みは、他領域組の投票重みの平均値などで初期化する。
【0086】
次に特定領域検出器追加学習工程S2455では、領域追加工程S2454にて追加された特定領域も含めて特定領域検出器を学習する。特定領域検出器学習工程S2420と同様の処理にて、追加された特定領域の特徴量を抽出して、特定領域検出器を学習するためのデータに追加し、各特定領域に関する検出器を学習させ、特定領域検出器を生成する。
説明を図7(b)に戻し、正規化工程S2450の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断する(S2470−Yes)。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。それ以外の場合は収束しなかったものとして(S2470−No)、評価工程S2440に戻り、再度評価を行う。
【0087】
以上のような学習方法により、領域組の位置、姿勢の認識精度に従って投票重みが正規化され、さらに選択特定領域と選択領域組はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となり、対象物体の認識精度の向上が可能になる。
【0088】
(第3実施形態)
本実施形態では、第1実施形態において説明した認識処理に必要な領域組に関して、検出結果を改善するように領域組の構成特定領域を更新していく方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0089】
本実施形態における学習工程S2400の詳細フローを図12(a)の参照により説明する。図12(a)において、特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。まず、特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択する。特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
特定領域選択工程S2460では、領域組の同時検出率に従って領域組を構成する特定領域を選択する。特定領域選択工程S2460の処理に関する詳細フローを図12(b)に示す。
【0090】
図12(b)の同時検出率算出工程S2456では、撮像部の複数の撮像位置から複数の領域組を撮像した場合の検出結果のうち、同一の撮像位置で同時に所定の誤差範囲内の位置、姿勢として複数の領域組が検出される同時検出率を算出する。領域組kと領域組lが、同一視点(同一の撮像位置)で同時に正しい位置姿勢への投票に寄与する同時正投票寄与率RTS(k、l)を以下のように定義する。
【0091】
【数23】
【0092】
ただし、表記を簡単にするため以下のように表現するものとする。
【0093】
【数24】
【0094】
ここでPvWおよびΘvWは座標対応算出工程S2200にて得られた視点vWにおける対象物体の位置および姿勢に関する真値、VWは評価データSWにおける視点総数である。 Prk(P、Θ)は同視点における検出領域組kの、位置X、姿勢Θに対する重みなし投票値である。ただし、領域組kが同視点において検出されなかった場合には、Prk(P、Θ)=0とおく。
【0095】
これに対して、領域組kと領域組lのいずれか一方だけが正しい位置姿勢への投票に寄与する排他正投票寄与率RTX(k、l)を以下のように定義する。
【0096】
【数25】
【0097】
ここで、領域組kと領域組lの同時正検出率RT(k、l)は以下のように定義する。
【0098】
【数26】
【0099】
同様にして領域組kと領域組lが、同一視点で同時に誤検出位置姿勢へ投票する同時誤投票寄与率RFS(k、l)を数27式により求める。また、領域組kと領域組lのいずれか一方だけが誤検出位置姿勢へ投票する排他誤投票寄与率RFX(k、l)を数28式により求める。
【0100】
【数27】
【0101】
【数28】
【0102】
ただし、表記を簡単にするため以下のように表現するものとする。
【0103】
【数29】
【0104】
領域組kと領域組lの同時誤検出率RF(k、l)を以下のように定義する。
【0105】
【数30】
【0106】
同時正検出率RT(k、l)と同時誤検出率RF(k、l)の比を、領域組kと領域組lの同時検出率R(k、l)として定義する。
【0107】
【数31】
【0108】
同時検出率R(k、l)はすべての領域組kおよび領域組lに対して求めてもよいが、組み合わせ的に計算コストが高くなるため、一部の視点に限定して算出してもよい。例えば、評価工程S2440の結果における正解位置姿勢への累積投票値が大きい視点だけを選択し、その視点において検出された領域組に関してのみ、同時検出率を算出してもよい。
【0109】
領域組再構成工程S2457では、先の同時検出率算出工程S2456で算出された同時検出率に基づいて選択領域組を更新する。同時検出率算出工程S2456で算出された同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択する。そして、選択された特定領域から新規の領域組を生成して、領域組生成工程S2430で生成された領域組に追加する。同時検出率R(k、l)が所定の閾値より大きくなる領域組kおよび領域組lは、同じ視点において正しく同時検出される確率が高く、かつ、同時に誤検出されにくいものである。この領域組kと領域組lを構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、新規の領域組を生成し、領域組に追加する。選択された領域組の例を図4(b)に、新規に生成された領域組の例を図4(c)に示す。領域組kおよび領域組lはそのまま残しても良いが、計算量的に冗長な領域組となるため選択領域組から削除することが望ましい。新しい領域組を生成するための同時検出率R(k、l)の閾値は固定の閾値としてもよいし、パーセンタイル法によって一定割合の上位の組み合わせを選んでもよい。あるいは、最も高い値を出した組み合わせだけを選んでもよい。
【0110】
領域組の構成に変化がなかった場合には収束したものと判断し、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。領域組の構成が変化した場合には収束しなかったものとして(S2470−No)、評価工程S2440に戻り、再度評価を行う。一方、領域組の構成が変化しなかった場合には収束したものとして(S2470−Yes)、処理を終了する。
【0111】
以上のような学習方法により、領域組の同時検出率に従って領域組が再構成される。視点によって同時に検出されやすい特定領域は同じ領域組に組み込まれることになる。従って、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【0112】
(第4実施形態)
本実施形態では、第3実施形態において説明した学習方法に対して、さらに領域組の投票重みを設定する方法を説明する。学習処理のフローは図7(a)のとおりである。学習データ収集工程S2100、座標対応算出工程S2200および学習データ分割工程S2300では、第1の実施形態と同様の処理を行い、特定領域検出器学習データSLと評価データSWを生成する。
【0113】
本実施形態における学習工程S2400の詳細フローを図13(a)の参照により説明する。図13(a)において、特定領域初期選択工程S2410から評価工程S2440までは、第1実施形態と同様の処理を行う。特定領域初期選択工程S2410において、初期特定領域数として、N0個の特定領域を選択し、特定領域検出器学習工程S2420において、特定領域の検出器を学習し、領域組生成工程S2430において、選択領域の組み合わせによる領域組の候補を生成する。そして、評価工程S2440にて評価データSWのすべての視点に関して三次元位置姿勢推定を行う。
正規化工程S2450では領域組の投票重みを正規化し、特定領域選択工程S2460では同時検出率に従って領域組を構成する特定領域を選択する。本実施形態における正規化工程S2450と特定領域選択工程S2460内の処理に関する詳細フローを図13(b)に示す。図13(b)における正規化工程S2450の累積投票値算出工程S2451および投票重み更新工程S2452では、第1実施形態と同様にして正検出累積投票値ET(vW)と誤検出累積投票値EF(vW)を求め、投票重みを更新する。
【0114】
図13(b)における特定領域選択工程S2460の領域削除工程S2453では、第 2実施形態と同様にして不要な特定領域組および領域組を削除する。同時検出率算出工程S2456では、第 3実施形態と同様にして同時検出率を求める。ただし、同時正投票寄与率RTS(k、l)、排他正投票寄与率RTX(k、l)、同時誤投票寄与率RFS(k、l)および排他誤投票寄与率RFX(k、l)は、投票重みを考慮して以下の数32式から数35式のように求める。
【0115】
【数32】
【0116】
【数33】
【0117】
【数34】
【0118】
【数35】
【0119】
領域組再構成工程S2457では、第 3実施形態と同様にして、同時検出率に基づいて選択領域組を更新する。
【0120】
領域追加工程S2454および特定領域検出器追加学習工程S2455では、第2実施形態と同様にして特定領域と領域組の追加と、それに伴う特定領域検出器の追加学習を行う。
【0121】
上記の正規化工程S2450および特定領域選択工程S2460の処理によって、投票重み、選択特定領域および選択領域組に変化がなければ収束したものと判断し(S2470−Yes)。そして、投票重み、選択特定領域、選択領域組を学習結果記憶部700に記憶させ、学習処理を終了する。一方、収束判断工程S2470において、投票重み、選択特定領域または選択領域組に変化が生じた場合は収束していないものと判断し(S2470−No)、処理を評価工程S2440に戻して再度評価を行う。
【0122】
以上のような学習方法により、領域組の投票重みが正規化され、さらに選択特定領域と選択領域組の数とその構成はその有効性に従って調整される。そのため、必要な特定領域および領域組のみが選択され、かつ検出領域組の姿勢による信頼度を考慮した重み付き投票となる。また、少ない特定領域によって構成される領域組による誤投票の発生を抑制することができ、対象物体の認識精度の向上が可能になる。
【0123】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
対象物体を検出する検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する検出器の学習を行う学習工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化工程と、
を有することを特徴とする学習方法。
【請求項2】
前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする請求項1に記載の学習方法。
【請求項3】
前記正規化工程は、
前記評価工程における前記認識処理の結果から、所定の誤差範囲内の検出精度で正しく検出された領域組の投票重みの値の累積値と、前記誤差範囲を超えて誤って検出された領域組の投票重みの値の累積値とを算出する算出工程と、
前記算出工程で算出された前記正しく検出された領域組の投票重みの値の累積値が閾値以上になり、かつ、前記誤って検出された領域組の投票重みの値の累積値が閾値未満になるように、前記投票重みを更新する更新工程と、
を有することを特徴とする請求項1に記載の学習方法。
【請求項4】
前記正規化工程は、
それぞれの領域組に関して、前記更新工程で更新された前記投票重みの最大値が所定の閾値未満であれば、前記領域組を削除する領域削除工程と、
前記評価工程における前記認識処理の結果により、前記領域組の位置および姿勢が得られない場合に、新たな特定領域を追加する領域追加工程と、
を更に有することを特徴とする請求項3に記載の学習方法。
【請求項5】
前記学習装置の特定領域選択手段が、前記評価工程における前記認識処理の結果から、所定の誤差範囲内の検出精度で正しく検出された領域組を再構成する特定領域を選択する特定領域選択工程を更に有し、
前記特定領域選択工程は、
前記評価工程により求められる、複数の撮像位置から複数の領域組を撮像した場合の認識結果のうち、同一の撮像位置で同時に所定の誤差範囲内の位置、姿勢として複数の領域組が検出される同時検出率を算出する同時検出率算出工程と、
前記同時検出率算出工程で算出された前記同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、選択された特定領域から新規の領域組を生成して、前記領域組に追加する領域組再構成工程と、
を有することを特徴とする請求項1に記載の学習方法。
【請求項6】
請求項1または2に記載の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
請求項1に記載の学習方法の学習工程で学習された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して請求項2に記載の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、
を有することを特徴とする物体認識方法。
【請求項7】
対象物体の既知の三次元モデルから複数の特定領域を選択する選択手段と、
前記選択手段で選択された前記特定領域を検出する検出器の学習を行う学習手段と、
前記学習手段で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価手段と、
前記評価手段における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化手段と、
を備えることを特徴とする学習装置。
【請求項8】
既に設定済みの投票重みと、前記正規化手段で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価手段および前記正規化手段の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化手段で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断手段を更に備えることを特徴とする請求項7に記載の学習装置。
【請求項9】
請求項7または8に記載の学習装置で学習された検出器を用いて対象物体の認識処理を行う物体認識装置であって、
撮像手段で撮像された対象物体の画像を取得する取得手段と、
請求項7に記載の学習装置の学習手段で学習された検出器を用いて、前記取得手段で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出手段と、
前記検出手段で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成手段と、
前記生成手段で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定手段と、
前記領域組推定手段で推定された前記領域組の推定位置および推定姿勢に対して請求項8に記載の学習装置の収束判断手段で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票手段と、
前記投票手段の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記累積投票値が極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定手段と、
を有することを特徴とする物体認識装置。
【請求項10】
コンピュータを、請求項7に記載の学習装置の各手段として機能させるためのプログラム。
【請求項11】
コンピュータを、請求項9に記載の物体認識装置の各手段として機能させるためのプログラム。
【請求項12】
検出器の学習を行う請求項7に記載の学習装置と、
前記学習装置で学習された検出器を用いて対象物体の認識処理を行う請求項9に記載の物体認識装置と、
を有することを特徴とする情報処理システム。
【請求項1】
対象物体を検出する検出器の学習方法であって、
学習装置の選択手段が、前記対象物体の既知の三次元モデルから複数の特定領域を選択する選択工程と、
前記学習装置の学習手段が、前記選択工程で選択された前記特定領域を検出する検出器の学習を行う学習工程と、
前記学習装置の評価手段が、前記学習工程で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価工程と、
前記学習装置の正規化手段が、前記評価工程における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化工程と、
を有することを特徴とする学習方法。
【請求項2】
前記学習装置の収束判断手段が、既に設定済みの投票重みと、前記正規化工程で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価工程および前記正規化工程の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化工程で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断工程を更に有することを特徴とする請求項1に記載の学習方法。
【請求項3】
前記正規化工程は、
前記評価工程における前記認識処理の結果から、所定の誤差範囲内の検出精度で正しく検出された領域組の投票重みの値の累積値と、前記誤差範囲を超えて誤って検出された領域組の投票重みの値の累積値とを算出する算出工程と、
前記算出工程で算出された前記正しく検出された領域組の投票重みの値の累積値が閾値以上になり、かつ、前記誤って検出された領域組の投票重みの値の累積値が閾値未満になるように、前記投票重みを更新する更新工程と、
を有することを特徴とする請求項1に記載の学習方法。
【請求項4】
前記正規化工程は、
それぞれの領域組に関して、前記更新工程で更新された前記投票重みの最大値が所定の閾値未満であれば、前記領域組を削除する領域削除工程と、
前記評価工程における前記認識処理の結果により、前記領域組の位置および姿勢が得られない場合に、新たな特定領域を追加する領域追加工程と、
を更に有することを特徴とする請求項3に記載の学習方法。
【請求項5】
前記学習装置の特定領域選択手段が、前記評価工程における前記認識処理の結果から、所定の誤差範囲内の検出精度で正しく検出された領域組を再構成する特定領域を選択する特定領域選択工程を更に有し、
前記特定領域選択工程は、
前記評価工程により求められる、複数の撮像位置から複数の領域組を撮像した場合の認識結果のうち、同一の撮像位置で同時に所定の誤差範囲内の位置、姿勢として複数の領域組が検出される同時検出率を算出する同時検出率算出工程と、
前記同時検出率算出工程で算出された前記同時検出率が所定の閾値より大きくなる複数の領域組をそれぞれ構成する特定領域を、新規の一つの領域組を構成する特定領域として選択し、選択された特定領域から新規の領域組を生成して、前記領域組に追加する領域組再構成工程と、
を有することを特徴とする請求項1に記載の学習方法。
【請求項6】
請求項1または2に記載の学習方法で学習された検出器を用いて対象物体の認識処理を行う物体認識方法であって、
取得手段が、撮像手段で撮像された対象物体の画像を取得する取得工程と、
請求項1に記載の学習方法の学習工程で学習された検出器が、前記取得工程で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出工程と、
生成手段が、前記検出工程で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成工程と、
領域組推定手段が、前記生成工程で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定工程と、
投票手段が、前記領域組推定工程で推定された前記領域組の推定位置および推定姿勢に対して請求項2に記載の学習方法の収束判断工程で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票工程と、
対象物体推定手段が、前記投票工程の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記累積投票値が極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定工程と、
を有することを特徴とする物体認識方法。
【請求項7】
対象物体の既知の三次元モデルから複数の特定領域を選択する選択手段と、
前記選択手段で選択された前記特定領域を検出する検出器の学習を行う学習手段と、
前記学習手段で学習された前記検出器により前記複数の特定領域のうち所定の領域の位置および姿勢の認識処理を行う評価手段と、
前記評価手段における前記認識処理の結果の認識精度に従って、前記検出器の出力に対する投票重みを設定する正規化手段と、
を備えることを特徴とする学習装置。
【請求項8】
既に設定済みの投票重みと、前記正規化手段で新たに設定された投票重みとの差分が所定の閾値を超える場合に、前記評価手段および前記正規化手段の処理を繰り返し実行させ、前記差分が所定の閾値以内の場合に、前記正規化手段で設定された投票重みは収束したものと判断し、前記投票重みを確定する収束判断手段を更に備えることを特徴とする請求項7に記載の学習装置。
【請求項9】
請求項7または8に記載の学習装置で学習された検出器を用いて対象物体の認識処理を行う物体認識装置であって、
撮像手段で撮像された対象物体の画像を取得する取得手段と、
請求項7に記載の学習装置の学習手段で学習された検出器を用いて、前記取得手段で取得された前記画像から、前記画像に含まれる部分領域の画像として複数の特定領域を検出する検出手段と、
前記検出手段で検出された前記複数の特定領域のうち所定の距離の範囲内にある特定領域を組み合わせた領域組を生成する生成手段と、
前記生成手段で生成された前記領域組について、前記撮像手段の座標系を基準とした検出位置情報および前記対象物体の3次元モデル上の座標位置情報を求め、前記検出位置情報と前記座標位置情報との差分を最小にする位置と、前記位置に対応する姿勢とを、前記領域組の推定位置および推定姿勢とする領域組推定手段と、
前記領域組推定手段で推定された前記領域組の推定位置および推定姿勢に対して請求項8に記載の学習装置の収束判断手段で確定された投票重みを、前記検出器から出力される位置および姿勢の投票値に乗じる演算処理を行う投票手段と、
前記投票手段の演算処理で前記検出器から出力される位置および姿勢の投票値に前記投票重みを乗じた値を全ての領域組について演算し、前記演算の結果を加算することにより求められる累積投票値が極大となる位置および姿勢を演算し、前記累積投票値が極大となる位置および姿勢における前記累積投票値の値が所定の閾値以上であるときに、前記極大となる位置および姿勢を前記対象物体の位置および姿勢と推定する対象物体推定手段と、
を有することを特徴とする物体認識装置。
【請求項10】
コンピュータを、請求項7に記載の学習装置の各手段として機能させるためのプログラム。
【請求項11】
コンピュータを、請求項9に記載の物体認識装置の各手段として機能させるためのプログラム。
【請求項12】
検出器の学習を行う請求項7に記載の学習装置と、
前記学習装置で学習された検出器を用いて対象物体の認識処理を行う請求項9に記載の物体認識装置と、
を有することを特徴とする情報処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−128744(P2012−128744A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−281008(P2010−281008)
【出願日】平成22年12月16日(2010.12.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月16日(2010.12.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]