【文献】
市野 雄大、外6名,“アンサンブル分類木を用いたバラ積み工業部品の位置姿勢推定に関する研究”,SSII2011 第17回 画像センシングシンポジウム講演論文集,日本,画像センシング技術研究会,2011年 6月 8日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
前記決定手段は、更に、前記計測領域ごとに推定される前記検出候補物体の姿勢と前記特定される検出候補物体の姿勢との対応に基づいて、前記特定される検出候補物体の姿勢に対する信頼度を導出する導出手段とを備え、
前記導出される信頼度に基づいて、前記複数の検出候補物体から検出するべき物体を決定することを特徴とする請求項1に記載の情報処理装置。
更に、前記導出手段は、前記計測領域ごとに推定される前記検出候補物体の姿勢と前記特定される前記検出候補物体の姿勢との対応に基づいて、前記計測領域ごとに推定される前記検出候補物体の姿勢に対する尤度を前記計測領域または前記計測領域を含む領域ごとに導出し、該導出される尤度に基づいて前記信頼度を導出することを特徴とする請求項2に記載の情報処理装置。
前記導出手段は、前記計測領域または前記計測領域を含む領域ごとに導出される尤度を加算し、該加算された尤度に基づいて前記信頼度を導出することを特徴とする請求項3に記載の情報処理装置。
前記導出手段は、前記計測領域または前記計測領域を含む領域の前記物体上における位置に応じて、前記尤度の導出に重みづけを行うことを特徴とする請求項3または4のいずれか1項に記載の情報処理装置。
前記重みづけは、前記計測領域または前記計測領域を含む領域が、前記物体のエッジが存在する領域であった場合、前記物体のエッジが存在しない領域であった場合よりも重みを大きくすることにより行われることを特徴とする請求項5に記載の情報処理装置。
前記推定手段は、テンプレートマッチングまたは決定木により前記検出候補物体の姿勢を推定することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【発明を実施するための形態】
【0016】
(第1の実施形態)
本発明における第1の実施形態について説明する。本実施形態は山積みされた物体のピッキングタスクを想定しており、本発明における情報処理装置は、山積みされた物体を撮影した画像において、次にピッキングを行う対象物体の位置姿勢を提示する。このときに、撮影された画像に映っている複数の物体のうち、適切に見えている領域が大きい検出候補物体を優先的に提示することを目的とする。
【0017】
図1に本実施形態における情報処理装置100の構成を示す。本実施形態における情報処理装置100は、候補物体検出部110、検出尤度算出部120、検出信頼度算出部130を備える。
【0018】
情報処理装置100には、コンピュータが組み込まれている。コンピュータには、CPU等の主制御手段、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の記憶手段が具備される。また、コンピュータにはその他、キーボード、マウス、ディスプレイ、ボタン又はタッチパネル等の入出力手段、等も具備される。これら各構成手段は、バス等により接続され、主制御手段が記憶手段に記憶されたプログラムを実行することで制御される。
【0019】
候補物体検出部110は、入力された物体の山積み画像から複数の検出候補物体を検出する。
【0020】
検出尤度算出部120は、候補物体検出部110によって検出された各々の検出候補物体について検出尤度の算出を行う。検出尤度は、検出候補物体上の複数の局所領域における検出処理に用いた投票先情報に基づいて算出される。
【0021】
検出信頼度算出部130は、検出尤度算出部120で求めた検出尤度の分布に基づいて各々の検出候補物体の検出信頼度を算出する。
【0022】
以下でそれぞれの処理の流れについて詳細に説明する。
【0023】
候補物体検出部110は、撮像された山積み物体画像から複数の検出候補物体を検出する。本実施形態においては公知の技術であるRandomized Treeを用いて検出候補物体の位置姿勢を求める。
【0024】
Randomized Treeの学習過程では、分類木(決定木)の各ノードごとに、ランダムに2点を選択し、学習画像におけるその2点の画素値の大小関係を比較して比較結果に応じて分岐することで、その学習画像を分類木の末端ノードである各リーフに分類する。これらの分類木をT本(Tは2以上の定数)作成することで、学習画像を分類する分類木集合を作成する。
【0025】
検出過程では、入力画像における複数の局所領域において学習時に作成した分類木集合を用いて分類を行い、それらの結果を統合することで、対象物体の検出を行う。
【0026】
学習過程では、検出対象物体における複数の異なる姿勢画像群をあらかじめ用意しておく。姿勢画像群における各画像はそれぞれの画像内に表示されている物体の基準位置、物体の姿勢情報などを情報として保持している。
【0027】
これらは任意の形式で保持することが可能であり、例えば物体の基準位置は、画像中の物体の中心位置座標で、物体の姿勢情報は、回転行列で表現される。
【0028】
図2(a)に、用意された画像群の中の1枚である、検出対象物体が描画された画像200を示す。画像200は、姿勢Aである検出対象物体が1つ描画されており、物体の基準位置座標(X,Y),物体の姿勢情報Aを持っている。
【0029】
学習過程における学習画像としては、検出対象物体における複数の異なる姿勢画像群に含まれる全ての画像から抽出した複数の部分画像を用いる。ここで用いる部分画像は、抽出元の画像に含まれる検出対象物体の基準位置からのオフセット情報、および抽出元の画像に含まれる検出対象物体の姿勢情報を持っているものとする。
【0030】
オフセット情報は、例えば物体の基準位置座標と、部分画像の中心位置座標との差分で表現することができる。
【0031】
図2(b)に画像200から抽出した3つの部分画像210,220,230の例を示す。ここで、各部分画像の中心位置座標を(x1、y1)、(x2、y2)、(x3、y3)とすると、それぞれの部分画像が持つ検出対象物体の中心位置からのオフセット情報は(X−x1、Y−y1)、(X−x2、Y−y2)、(X−x3、Y−y3)となる。
【0032】
また、各部分画像は、全て画像200に描画された姿勢Aである検出対象物体を含む領域であるため、各部分画像が持つ姿勢情報はAとなる。これらの学習画像を用いて分類木集合を作成する。
【0033】
図2(c)に、部分画像210、220、230が、各分類木において分類木の末端ノードである各リーフに分類されている様子を示す。分類木t1においては部分画像210、220、230が異なるリーフ11、12、13に分類されている。
【0034】
また、分類木t2においては、各ノードでの参照点が分類木t1と異なるため、各部分画像も分類木t1とは異なるリーフへ分類されており、部分画像210がリーフ22へ、部分画像220がリーフ23へ、部分画像230がリーフ21へそれぞれ分類されている。
【0035】
分類木t3では、部分画像210と部分画像220が同一のリーフ31へ分類され、部分画像230だけがリーフ32に分類されている。
【0036】
このように、リーフによっては複数の学習画像が格納されるリーフもあり、逆に1つも学習画像が格納されないリーフも存在する。全ての部分画像をT本の分類木において各リーフに分類して、分類木集合を作成する。検出に用いる学習辞書3102には、各々の分類木における各ノードで比較する参照点の座標情報、および各リーフに格納された学習画像集合情報が含まれる。
【0037】
候補物体検出部110における複数の候補物体の検出処理について
図3に示すフローチャートおよび
図4に示す模式図を用いて説明する。
【0038】
図4(a)に山積みされた対象物体を撮像した入力画像の一部を示す。
図4(a)において、物体WAと物体WBが重なりあっており、物体WAの一部が、物体WBによって隠されている。また、物体WBの一部は、画像外に見切れている。このときの物体WAの姿勢情報をAとし、
図4(a)の画像からの検出候補物体の検出を例として説明する。
【0039】
(ステップS301)
ステップS301では、候補物体検出部110は、検出対象物体が含まれる入力画像3101に対して、分類対象点(計測領域)を設定する。ここで設定する分類対象点は、入力画像上の全ての画素であることが望ましいが、計算量削減のためサンプリングを行ってもよい。また分類対象点は、複数の画素からなる領域であってもよい。
【0040】
設定する各々の分類対象点における投票結果を用いて、検出尤度算出部120で、各々の局所領域における検出尤度が算出される。説明を簡単にするため、
図4(a)に示す分類対象点411、および412についてのみ説明する。
【0041】
(ステップS302)
ステップS302では、学習辞書3102を用いて、ステップS301で設定した全ての分類対象点を、分類木集合の各リーフに分類する。
図2(c)に示す分類木t1、t2、t3における分類対象点411および、412についての分類結果を
図4(b)に示す。
【0042】
分類対象点411は、
図2における部分画像210に類似しているため、各分類木では部分画像210が属するリーフである、リーフ11、リーフ22、リーフ31にそれぞれ分類されている。
【0043】
一方、分類対象点412は、
図2における部分画像220に類似しているため、分類木t1では部分画像220が属するリーフ12に分類されているが、分類木t2では、誤って部分画像220が属するリーフ23とは異なるリーフ21に分類されている。また、分類木t3では部分画像210と部分画像220が同一のリーフ31に分類されているため、分類対象点412も分類対象点411と同じリーフへと分類されている。
【0044】
(ステップS303)
ステップS303では、各分類対象点はそれぞれの分類木で分類されたリーフに含まれる学習画像が持つオフセット位置へ姿勢情報の投票を行う(推定)。
【0045】
各分類木のリーフに含まれる学習画像は、自分が属する画像に含まれる検出対象物体の姿勢情報および検出対象物体の基準位置からのオフセット情報を持っている。
【0046】
そのため、この投票処理により、ある姿勢の対象物体が存在する基準位置には。その姿勢の画像に含まれる部分画像からの投票が集中することが期待される。
【0047】
図2(b)に示す結果を受けて分類対象点411、412が投票を行う様子を
図4(c)に示す。
【0048】
分類木t1に基づく投票では、分類対象点411、412がそれぞれ部分画像210、220の持つオフセット情報と姿勢情報とに基づき、物体基準点413上へ姿勢情報Aを投票している。
【0049】
分類木t2に基づく投票では、分類対象点411は、物体基準点413へ姿勢情報Aを投票しているが、分類対象点412はリーフ21に属する部分画像230の情報を参照するため、異なる点414へ姿勢情報Aを投票している。
【0050】
また、分類木t3に基づく投票では、いずれの分類対象点もリーフ31に属する部分画像210、220の情報を参照して投票する。そのため、分類対象点411は、物体基準点413および点415へ、分類対象点412は、物体基準点413および点416へと、それぞれの分類対象点が2か所へ姿勢情報Aを投票する。
【0051】
このように全ての分類対象点がT本の分類木ごとに投票処理を実行する。
【0052】
(ステップS304)
ステップS304では入力画像内の各画素への投票を調べ、投票数が多い画素を検出候補物体の検出位置、投票された姿勢情報をその検出候補物体の姿勢とし、検出候補物体の位置姿勢の情報を出力する。
【0053】
例えば、
図4(c)では、物体基準点413へ姿勢情報Aが5票、点414、415、416へ姿勢情報Aが1票ずつ投票されているので、投票数の多い基準点413の位置に姿勢Aの物体が検出(特定)される。
【0054】
なお、出力する検出候補物体の数は1つでなくともよく、出力個数は数で定めてもよいし各画素における投票数で閾値を切ってもかまわない。
【0055】
これらの処理により、入力画像から複数の検出候補物体の位置姿勢を取得することができる。なお、候補物体検出部110における検出手法はRandomized Treeに限る必要はなく、既存の任意の検出手法を用いて検出候補物体を検出することが可能である。
【0056】
次に、検出尤度算出部120の処理について、
図5に示すフローチャート、および
図7に示す模式図を用いて説明する。
【0057】
候補物体検出部110では、各分類対象点からの投票に基づき、検出候補物体の位置姿勢を出力した。この場合、検出候補物体に部分的な遮蔽があり、その領域に含まれる分類対象点からの投票がない場合でも、他の分類対象点からの投票が多い場合は検出候補物体として検出されることが起こりうる。
【0058】
本発明では、検出された検出候補物体に対して再度異なる指標で評価することで、物体の領域全体から、投票されている検出候補物体を優先的に提示する。
【0059】
検出尤度算出部120は、候補物体検出部110で検出された全ての検出候補物体に対して以下のステップS501〜S503の処理を実行する。
【0060】
ここでは、具体的な処理の一例を示すため
図4(a)に示す入力画像3101において、物体WAの姿勢情報をA、物体WBの姿勢情報をB、その他の物体の姿勢情報をC,Dとして、物体WAが検出候補物体として検出された場合について説明する。
【0061】
(ステップS501)
まず、ステップS501で、検出候補物体に対して分割部分領域情報を設定する。なお、分割部分領域情報は、検出候補物体を検出した後に、それぞれの検出候補物体に対応するあらかじめ用意された姿勢画像に対して設定してもよい。また、あらかじめ用意された検出対象物体における複数の異なる姿勢画像全てに対して事前に設定しておいてもよい。
【0062】
分割部分領域は、各姿勢画像における検出対象物体が存在する領域を全て網羅するように設定され、かつ、全ての姿勢の物体における分割部分領域数は同程度であることが望ましい。
【0063】
図6に、あらかじめ用意された複数の姿勢画像に対して作成した分割部分領域の例を示す。
図6では、姿勢の異なる物体610、620、630、640について、グリッド状の矩形領域に分割している。
【0064】
なお、ここでは全ての姿勢の物体を30前後の矩形領域に分割するように設定されており、物体610、630は30個、物体620、640は33個の矩形領域に分割されている。
【0065】
各姿勢の物体ごとに矩形領域のサイズを変動することで、各々の姿勢の物体を、同数程度の矩形領域数に分割している。そして、各姿勢の物体ごとの分割部分領域情報には、各姿勢における分割部分領域の分割数、分割部分領域サイズ、各分割部分領域の位置座標情報が含まれる。
【0066】
なお、分割部分領域の分割の仕方は、矩形領域分割に限るものではなく、各姿勢の物体の表層全域を網羅するような分割であれば任意の分割を行ってかまわない。
【0067】
更に、
図4(a)に示す入力画像3101において検出された検出候補物体WAに、分割部分領域を設定する様子を
図7(a)に示す。物体WAの姿勢に対応する物体である物体610に対して設定された、分割部分領域を適用することで、物体WAの分割部分領域として2×2画素の30個の正方領域が設定される。
【0068】
(ステップS502)
ステップS502では、候補物体検出部110における、ステップS303で行った投票結果を参照し、各分類対象点の投票先情報として、それぞれの分類対象点が投票した姿勢情報を取得する。
【0069】
この姿勢情報と検出候補物体の姿勢とが一致している分類対象点は、検出候補物体の表層上の点である確率が高いと言える。
【0070】
逆に姿勢情報と検出候補物体の姿勢とが異なる分類対象点は、この物体の検出に寄与しておらず、他の物体と重なっている、照明がきちんとあたっていないなど、何らかの原因で検出候補物体が適切に見えていない点である可能性が高い。
【0071】
ステップS502における物体WAの分割部分領域上の各分類対象点が投票した姿勢情報の取得結果の模式図を、
図7(b)に示す。なお、ここでは分類対象点は入力画像上のすべての画素としている。
【0072】
簡単のため、入力画像3101の一部の領域700における各分類対象点が投票した姿勢情報を分類対象点上に表記する。
【0073】
例えば物体WA上の分類対象点703、704は、物体WAの姿勢情報であるAに正しく投票していることが分かる。同様に物体WB上の分類対象点である705は物体WBの姿勢情報であるBに正しく投票している。
【0074】
また、分類対象点701、702は、物体WA上の点であるが、誤った姿勢情報C、Dへ投票してしまっている。このように、物体WAの分割部分領域上の全ての分類対象点における姿勢情報を取得する。
【0075】
(ステップS503)
ステップS503では、ステップS501で設定した分割部分領域ごとに、ステップS502で取得した各分類対象点における姿勢情報を参照する。そして、分割部分領域内における検出された姿勢への投票の有無に応じて、各分割部分領域の検出寄与度として、0、または1を設定する。
【0076】
ステップS503において、分割部分領域内の姿勢Aへの投票の有無に応じて、各分割部分領域の検出寄与度を設定した結果を示す模式図を、
図7(c)に示す。姿勢Aへの投票が存在する分割部分領域の検出寄与度を1、Aへの投票が1つも存在しない分割部分領域の検出寄与度を0に設定している。
【0077】
例えば分割部分領域720の領域内に存在する4つの分類参照点は、
図7(b)を参照すると全てAに投票されている。また分割部分領域730の領域内における4つの分類参照点は2つが正しくAに投票しており2つは誤った姿勢情報B,Dへ投票している。
【0078】
しかし、いずれの場合も、分割部分領域内にAに投票した分類対象点が少なくとも1つ存在するため、分割部分領域720、730の検出寄与度は1に設定されている。
【0079】
一方、分割部分領域710、740の領域内における4つの分類参照点の投票先には、Aに投票された点が1つも存在しない。そのため、分割部分領域710、740の検出寄与度は0に設定されている。
【0080】
本実施形態においては、0、1の値が設定された検出寄与度を各分割部分領域における部分領域検出尤度とする。
【0081】
検出尤度算出部120では、既に位置姿勢が検出された対象物体に対して、各部分領域がその物体の検出に寄与しているか否かを調べている。そのため、正しい姿勢情報への投票総数は関係なく、その部分領域内部に正しい姿勢情報への投票が1つでも存在するかどうかだけを探索し、各部分領域における部分領域検出尤度を算出している。
【0082】
なお、正しい姿勢情報への投票数は1つに限定する必要はなく、分割部分領域内部の正しい姿勢への投票数がある閾値以上のときの検出寄与度を1としてもよい。
【0083】
最後に、検出信頼度算出部130の処理について説明する。検出信頼度算出部130は、候補物体検出部110で検出された全ての検出候補物体に対して、それぞれの物体の検出信頼度を算出する。
【0084】
検出信頼度は、候補物体検出部110で検出された検出候補物体のうち物体の領域全体からまんべんなく投票されている物体を、優先的に選択するための指標である。
【0085】
検出尤度算出部120では、物体領域を複数の部分領域に分割し各部分領域における正しい姿勢への投票の有無を検出尤度として算出した。すなわち、正しい姿勢への投票が存在する分割部分領域の数が多いほど、多くの物体領域から投票されていることになる。
【0086】
そこで、本実施形態では、検出信頼度は、検出尤度算出部120で算出した各分割部分領域における部分領域検出尤度を加算して得られた総和に基づいて算出する。
【0087】
分割部分領域の総数をN、分割部分領域iにおける部分領域検出尤度をPiとすると、検出信頼度Eの算出式は下記のように表わせる。
【0089】
このとき、例えば
図7に示す物体WAの検出信頼度は、22(部分領域検出尤度の総和)/30(総分割部分領域数)=0.73となる。ただし、検出信頼度の算出方法は、式1に限るものではなく、他の統計的指標を用いてもよい。
【0090】
更に、全ての検出候補物体に対して同様の処理を実行し、各々の検出候補物体の検出信頼度を算出する。
【0091】
情報処理装置100は、検出信頼度算出部130で算出した検出信頼度を用いて、検出された検出候補物体の中から検出信頼度が高い物体を優先的にピッキング対象物体として提示することができる。
【0092】
本実施形態では、候補物体検出部110で、局所領域からの投票処理を含むRandomized Treeを利用した検出手法を用いて、検出候補物体を検出する。検出尤度算出部120ではこれらの投票結果を用いて、検出尤度を設定し再評価することで高速に検出信頼度の算出を行っている。
【0093】
候補物体検出処理を行う際には、局所領域の情報を用いて検出を行うことで、対象物体の部分的な隠蔽や、照明方向などの要因による部分的な悪条件に対して、ロバストな検出を行うことができる。
【0094】
さらに、検出尤度算出処理により検出候補のうち着目物体以外の他の物体による部分的な隠蔽や照明方向などの要因による部分的な悪条件が少ない候補物体を算出することもできる。
【0095】
また、本実施形態では、分類対象点を含む部分分割領域を設定し、該部分分割設定領域ごとに検出尤度を算出(導出)したが、これに限られるものではない。例えば、部分分割設定領域を設定せずに、分類対象点に検出尤度を設定してもよい。その場合は、部分分割領域を設定する場合よりも、信頼度への局所的な投票の情報の寄与が大きくなるため、物体表面が全体的に見えているかを評価することは困難になるが、処理を簡易的に行うことができる。
【0096】
なお、本実施形態では、Randomized Treeを用いた検出について説明した。もっとも、候補物体検出部110における検出手法は、既存の任意の検出手法を用いて候補物体検出を行うことが可能であり、候補物体検出部110で用いた検出手法に応じて検出尤度算出部120における分割部分領域ごとの検出尤度の算出手法が選択される。
【0097】
例えば、候補物体検出部110において、テンプレートマッチングで候補物体を検出する場合は次のように処理が行われる。
【0098】
まず、検出尤度算出部120においては、作成した分割部分領域ごとに再度テンプレートマッチングを行い、あらかじめ用意された検出候補物体の姿勢画像と一致した分割部分領域の部分領域検出尤度を1に設定する。そして、一致しなかった分割部分領域の部分領域検出尤度を0に設定する。そして、検出信頼度算出部130において、部分領域検出尤度に基づいて検出信頼度を算出することができる。
【0099】
以上のように本実施形態によれば、検出された複数の物体に対して物体の領域全体が適切に見えている物体を優先的に選択することが可能となる。
【0100】
また、本発明は物体の検出以外にも適用可能であることは言うまでもなく、例えば撮影した画像中に複数の人物が存在するときに全身が写っている人物を優先的に検出することができる。
【0101】
(第2の実施形態)
本発明における第2の実施形態について説明する。本実施形態においては、局所領域からの投票において、投票先に応じた重みづけを行うことで特徴のない領域からの投票結果を有効に利用し、検出信頼度の精度を向上させることが可能となる。
【0102】
本実施形態における構成および候補物体検出部110における動作は第1の実施形態と同様であるため、説明を割愛する。
【0103】
本実施形態における検出尤度算出部120の処理の流れについて、
図8に示すフローチャート、および
図9に示す模式図を用いて説明する。
【0104】
検出尤度算出部120は、候補物体検出部110で検出された全ての検出候補物体に対して、以下のステップS801〜S803の処理を実行する。ここでは、具体的な処理の一例を示すため、
図4(a)に示す入力画像3101において、物体WAの姿勢情報をA、物体WBの姿勢情報をB、その他の物体の姿勢情報をC、Dとして、物体WAが検出候補物体として検出された場合について述べる。
【0105】
(ステップS801)
ステップS801では、検出候補物体に対して分割部分領域情報を設定する。ここでの処理は、第1の実施形態におけるステップS501の処理と同様である。
【0106】
図4(a)に示す画像を入力として受け取った場合、第1の実施形態で示した
図7(a)と同様に、あらかじめ用意された姿勢Aの物体の画像を用いて、物体WA上の領域を2×2画素の30個の正方領域に分割し、物体WAの分割部分領域として設定する。ただし、ここであらかじめ分割部分領域に対して重みづけを行っておいてもよい。
【0107】
例えば、あらかじめ用意された検出対象物体における複数の異なる姿勢画像に対して、それぞれエッジ抽出処理を行い、エッジが存在する分割部分領域の部分領域検出尤度に対して部分領域重みを1に設定する。そして、エッジが存在しない分割部分領域の部分領域検出尤度に対して部分領域重みをαに設定する。
【0108】
αには0<α<10の任意の値を設定することができる。
図7(a)に示す分割部分領域に対して部分領域重みを設定した結果について
図9(a)に示す。
【0109】
(ステップS802)
ステップS802の処理については、第1の実施形態におけるステップS502と同様に、検出対象物体上の各分類対象点が投票した姿勢情報を取得する。
【0110】
ところで、分類対象点における投票先には、正しい姿勢情報への投票、誤った姿勢情報への投票、投票がされていない場合の3種類があり得る。
【0111】
投票がされていない分類対象点としては、分類対象点が特徴のない(例えばテクスチャのない均一な平面上の)点であるため、分類されたリーフに学習画像が存在しない場合がある。
【0112】
また、検出候補物体の一部が画像外に出ており、分割部分領域内の分類対象点が、入力画像上に存在しない場合なども挙げられる。本実施形態では、この投票がされていない分類対象点に着目する。
【0113】
物体WA上の各分類対象点が投票した姿勢情報の取得結果の模式図を
図9(b)に示す。
【0114】
なお、ここでは分類対象点は入力画像上のすべての画素としている。簡単のため、入力画像3101の一部の領域900における各分類対象点が投票した姿勢情報を、分類対象点上に表記し、投票がなされていない分類対象点は空白としている。
【0115】
例えば、分類対象点901、902などが、投票のされていない分類対象点である。このように、物体WAの分割部分領域上の全ての分類対象点における姿勢情報を取得する。
【0116】
(ステップS803)
ステップS803では、投票先情報に応じて各分割部分領域の部分領域検出尤度を設定する処理を行う。第1の実施形態では正しい姿勢情報へ投票した分類対象点の有無にのみ着目して部分領域検出尤度を設定した。
【0117】
しかし、投票のなされていない分類対象点は、物体の検出には寄与していないものの、誤った姿勢情報に投票されている分類対象点と比較すると、検出候補物体上の点である可能性が高い。
【0118】
そこで、ステップS803では、分割部分領域内に1つでも正しい姿勢情報へ投票した分類対象点が存在する場合の部分領域検出尤度を1に設定する。
【0119】
そして、正しい姿勢情報への投票がなく、かつ、1つでも誤った姿勢情報への投票した分類対象点が存在する場合の部分領域検出尤度を0と設定する。
【0120】
そして、部分領域内の全ての分類対象点が投票をしていない場合の部分領域検出尤度をβとし、全ての分割部分領域に部分領域検出尤度を設定する。βには0<β<10の値域である任意の値を設定することができる。
【0121】
更に、ステップS801で、設定した分割部分領域に事前に部分領域重みを設定した場合、それらの部分領域重みとステップS803で設定した各分割部分領域における部分領域検出尤度とを統合した結果が、各分割部分領域における部分領域検出尤度となる。
【0122】
ステップS803において各分割部分領域内の投票先情報に基づいて設定された部分領域検出尤度の結果を示す模式図を
図9(c)に示す。
【0123】
正しい姿勢情報であるAへの投票が存在する分割部分領域920、930の部分領域検出尤度は1が設定されており、Aへの投票が存在せず、かつ、誤った姿勢情報への投票がされている分割部分領域940の部分領域検出尤度には0が設定されている。
【0124】
部分領域内の分類投票点がいずれも投票されていない点である分割部分領域910は部分領域検出尤度にβが設定されている。
【0125】
図9(c)で設定された部分領域検出尤度に対して、
図9(a)で設定した部分領域重みと統合した結果を、
図9(d)に示す。部分領域検出尤度に対して部分領域重みをかけ合わせた結果が最終的に各々の分割部分領域に設定された部分領域検出尤度となる。
【0126】
例えば、分割部分領域910は部分領域重みとしてα、部分領域検出尤度としてβが設定されているので、最終的に分割部分領域910に設定された部分領域検出尤度はα×β=αβとなる。
【0127】
検出信頼度算出部130は、候補物体検出部110で検出された全ての検出候補物体に対してそれぞれの物体の検出信頼度を算出する。本実施形態では、検出信頼度は、第1の実施形態と同様に、検出尤度算出部120で算出した各分割部分領域における部分領域検出尤度の総和に基づいて算出する。
【0128】
例えばα=0.8、β=0.5とすると
図9に示す物体WAの検出信頼度は22.4(部分領域検出尤度の総和)/30(総分割部分領域数)=0.747となる。
【0129】
更に、全ての検出候補物体に対して同様の処理を実行し、各々の検出候補物体の検出信頼度を算出する。
【0130】
また、検出候補物体の一部が画像外に出ており、分割部分領域が、入力画像上に存在しない場合には、入力画像外にある分割部分領域は総分割部分領域に含まないようにすることもできる。これにより、信頼度を不当に低くすることを防ぐことができる。また、入力画像外にある分割部分領域に対して、重みづけ(例えば、0.5など)をすることもできる。これにより、入力画像から見切れている物体の信頼度を、表面が見えている物体の次に高くすることができるため、検出物体の優先度付けを行うことができる。
【0131】
本実施形態においては、分割部分領域に対して投票先情報に応じた部分領域検出尤度の設定を行い、検出の阻害をしない分類対象点の投票結果を検出信頼度の算出に含めることで、検出信頼度の精度を高めることが可能となる。
【0132】
(第3の実施形態)
本発明における第3の実施形態について説明する。
【0133】
第1、第2の実施形態においては部分領域検出尤度の総和に基づいて検出信頼度を算出していた。
図10(a)に示す入力画像1010から対象ワークWA、WBが検出されたような場合、第1の実施形態においては他のワークが重なっている領域の面積が同一であるときには検出信頼度が等しくなる可能性が高い。しかし、実際にはワークの重なり位置によって優先的に検出したいワークが存在する。例えば、ワークの中心付近に重なりが存在するワークWBよりワークの端領域が隠れているワークWAを選択した方が、ピッキング時の崩れによる影響が小さい。
【0134】
本実施形態では、正しい姿勢情報への投票が存在する分割部分領域の分布状態に基づいて検出信頼度を求め、適切な候補物体を算出する。
【0135】
本実施形態における構成および候補物体検出部110、検出尤度算出部120における動作は、第1の実施形態、あるいは第2の実施形態と同様であるため、説明を割愛する。本実施形態における検出信頼度算出部130は、候補物体検出部110で検出された全ての検出候補ワークに対して、検出尤度算出部120から検出候補ワークにおける各分割部分領域の検出尤度を受け取る。
図10(b)に、それぞれ入力画像1010における検出候補ワークWA、WBの検出尤度を示す。
【0136】
本実施形態における、検出信頼度算出部130の処理の流れについて、
図11に示すフローチャートを用いて説明する。
【0137】
検出尤度算出部130は、候補物体検出部110で検出された全ての検出候補物体に対して、以下のステップS1101〜S1102の処理を実行する。
【0138】
(ステップS1101)
ステップS1101では、検出尤度算出部120で算出した各分割部分領域における投票先情報に基づき、分割部分領域の分布状態を評価する。本実施形態では、分布情報として各分割部分領域の相対座標情報と部分領域検出尤度情報を持つものとする。例えば
図10(b)に示す入力画像1010において、分割部分領域1001の位置をワークWAの基準点とすると、分割部分領域1001は相対座標情報(0,0)と検出尤度情報1を、分割部分領域1002は相対座標情報(3,2)と検出尤度情報0を持つ。
【0139】
例えば
図10(b)に示す入力画像1010において、分割部分領域1001の位置をワークWAの基準点とすると、分割部分領域1001は相対座標情報(0,0)と検出尤度情報1を、分割部分領域1002は相対座標情報(3,2)と検出尤度情報0を持つ。
【0140】
このときの分割部分領域分布状態の評価値として式2に示す指標Vを用いる。
【0142】
ただし、部分領域検出尤度情報が1である分割部分領域の総数をN、部分領域検出尤度情報が1である分割部分領域i(
【0144】
)の相対座標情報を(x
i、y
i)、部分領域検出尤度情報が1である分割部分領域の平均座標を(
【0149】
である。評価値Vのスコアは、正解投票が存在する分割部分領域が候補ワークの中心付近に多いときに高くなる。
図10(c)にワークWAとワークWBの分布状態の評価結果について示す。
【0150】
なお、本実施形態では分布状態の評価に式2に示す評価値を用いたが、本発明においてはこれに限るものではなく、分布状態の評価には任意の統計量を用いることが可能である。例えば、ワークのピッキングにおいて、姿勢ごとにピッキングポイントが定められている場合には式3、式4における平均座標を定められたピッキングポイントの相対座標に変更することで、ピッキングポイント周辺の遮蔽が少ないワークを優先的に選択することができる。
【0151】
(ステップS1102)
ステップS1102では、ステップS1001で算出した分布情報と検出候補物体の正解分布情報とに基づき、検出信頼度を算出する。
【0152】
分布基準値は、検出候補ワークの姿勢に対応するあらかじめ用意されたワークの画像に対して入力画像と同様の処理を行い算出する。具体的には、候補物体検出部110へあらかじめ用意されたワーク画像を入力して、ステップS301において分類対象点を設定し、ステップS302において学習辞書3102を用いて各分類対象点に対して分類処理を行う。次に検出尤度算出部120で、あらかじめ用意されたワーク画像に対して分割部分領域の設定および分割部分領域内の分類対象点が投票した姿勢情報の探索を行い、各分割部分領域の検出尤度を算出する。ここで設定される分割部分領域は入力画像において検出された検出候補ワークに設定された分割部分領域と同一の数・配置となる。
図12(a)にワークWA、WBに対応する姿勢のあらかじめ用意されたワーク画像1210を、
図12(b)にワーク画像1210に対して算出した検出尤度を示す。
【0153】
あらかじめ用意されたワーク画像における算出された部分領域検出尤度に基づき、検出信頼度算出部130におけるステップS1101において分布状態の評価を行い、算出された評価値を分布基準値として設定する。なお、分布基準値は、検出候補ワークを求めた後に、求めた検出候補ワークの姿勢に対応するワーク画像に対して算出してもよいし、あらかじめ全ての用意されたワーク画像に対して分布基準値を算出しておいてもよい。
図12(c)に、ワークWA、WBに対応する姿勢のあらかじめ用意されたワーク画像における分布基準値を示す。
【0154】
分布基準値とステップS1101で算出した検出候補ワークにおける評価値を用いて検出された全ての候補ワークの検出信頼度を算出する。分布基準値V
L、検出候補ワークの評価値Vとすると検出信頼度Eは式5で表わされる。
【0156】
例えば、
図10における検出候補ワークWA、WBの検出信頼度E
WA、E
WBはそれぞれ
【0159】
となる。なお、検出信頼度は、式5の算出法に限定されず、分布基準値と検出候補ワークにおける分布状態の評価値を比較する任意の手法で算出することができる。
【0160】
本実施形態においては、正しい姿勢情報への投票が存在する分割部分領域の分布状態に基づいて検出信頼度を求めることで、候補ワークの遮蔽領域の位置を考慮したワークの選択を行うことが可能となる。
【0161】
(その他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態
の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介し
てシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUや
MPU等)がプログラムを読み出して実行する処理である。