説明

学習装置、学習装置の制御方法、検出装置、検出装置の制御方法、およびプログラム

【課題】対象物の状態に適した重みの学習を行い、対象物の検出性能を向上する。
【解決手段】画像から対象物の一部または全部を検出して複数の検出結果を出力する複数の検出部と、複数の検出結果の少なくとも1つに基づいて対象物の状態を推定する推定部と、対象物の状態に基づいて画像を複数のグループに分類する分類部と、検出結果に基づいて、複数の検出部のそれぞれに対する重み情報をグループごとに算出する重み算出部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習装置の制御方法、検出装置、検出装置の制御方法、およびプログラムに関し、特に画像から対象物体を検出する際に、複数の既存の検出器を用い、対象物体の状態に応じて当該対象物体を検出するための学習装置、学習装置の制御方法、検出装置、検出装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
画像中から対象物体を検出する際、対象物体の全体もしくは対象物体の一部分を検出する検出器を用いて検出を行うのが一般的である。この際、複数の検出器を使用することで、単一の検出器のみでは検出できなかった対象物体を検出することが可能となるため、複数の検出器を用いることが一般的である。複数の検出器を使用した場合、各検出器の出力を統合し、最終的な検出結果を出力する必要がある。
【0003】
特許文献1では、複数の検出結果の出力を統合する方法が開示されている。特許文献1では、電子部品に設けられた対象物の形状を判別する方法が記載されている。具体的には、まず対象物を撮像し、当該対象物の形状を判別するための2つの評価値を算出する。対象物の形状サイズと形状判別条件により、これら2つの評価値に対する重みを変動させ、重み付き和を求め、形状判別を行う。この手法では形状判別時に、対象物の形状サイズと予め設定された形状判別条件とによって、評価値に対する重みを決定する。この手法により、対象物の形状と形状判別条件とに合わせた判別が可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4566686号公報
【非特許文献】
【0005】
【非特許文献1】C. P. Papageorgiou、M. Oren、and T. Poggio、A general framework for object detection、IEEE Computer Vision and Pattern Recognition、pp.511-562、1998
【非特許文献2】N. Dalal and B. Triggs、Histograms of Oriented Gradients for Human Detection、IEEE Computer Vision and Pattern Recognition、pp.886-893、2005
【非特許文献3】J. Friedman、T. Hastie、 and R. Tibshirani、Additive Logistic Regression: a Statistical View of Boosting、The Annals of Statistics 2000、Vol. 28、No. 2、pp.337-407
【発明の概要】
【発明が解決しようとする課題】
【0006】
形状判別条件とその際の重みをどのように設定するかが重要であり、この重みの設定の仕方が形状判別の性能に大きく影響を与える。しかしながら、特許文献1は、重みの効率的な設定について言及していない。適切に重みの設定がなされない場合、対象物に合った重み付けが各評価値に対してできなくなり、最終的な形状判別結果も不正確なものとなってしまう。
【0007】
すなわち、複数の出力を統合する際に、状況に合わせてそれぞれの出力に対する適切な重みを求めることができないと、出力を統合しても効果的な結果は得られにくい。そのため、状況に合わせて適切に重みを設定することが課題となる。
【0008】
上記の課題に鑑み、本発明は、対象物の状態に適した重みの学習を行い、対象物の検出性能を向上することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成する本発明に係る学習装置は、
画像から対象物の一部または全部を検出して複数の検出結果を出力する複数の検出手段と、
前記複数の検出結果の少なくとも1つに基づいて前記対象物の状態を推定する推定手段と、
前記対象物の状態に基づいて前記画像を複数のグループに分類する分類手段と、
前記検出結果に基づいて、前記複数の検出手段のそれぞれに対する重み情報を前記グループごとに算出する重み算出手段と、
を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、対象物の状態に適した重みの学習を行い、対象物の検出性能を向上することができる。
【図面の簡単な説明】
【0011】
【図1】第1および第2実施形態に係る物体検出装置の構成を示す図。
【図2】第1および第2実施形態に係る物体検出装置の処理の手順を示すフローチャート。
【図3】第1実施形態における人物検出の例を示す図。
【図4】第1実施形態における対象状態推定部1120および分類部1130により、対象物の状態として対象物の頭部の大きさを推定し、推定値に基づいて学習画像を分類することを説明する図。
【図5】第1実施形態における対象状態推定部1120および対象状態推定部1320により、対象物の状態を対象物の頭部の大きさとする場合の推定方法を説明する図。
【図6】第1実施形態における対象状態推定部1120および対象状態推定部1320により、対象物の状態を画像からの対象物の見切れの程度とする場合の推定方法を説明する図。
【図7】第1実施形態における対象状態推定部1120および対象状態推定部1320により、対象物の状態を画像からの対象物の遮蔽の程度とする場合の推定方法を説明する図。
【図8】図2のS114およびS123において、複数の検出器による検出結果を組み合わせて検出対象候補とすることを説明する図。
【図9】第1実施形態における検出器重み算出部1140により分類ごとに算出される各検出器の重みの例を示す図。
【発明を実施するための形態】
【0012】
(第1実施形態)
<概要;検出器は顔・頭部・全身検出器、対象の状態は大きさ・見切れ・遮蔽>
本実施形態に係る物体検出装置は、画像中の対象物を検出するための学習処理と、画像中の対象物の検出処理とを行う。以下の例では、検出対象物を人物として説明するが、検出対象物は人物のみに限定されるものではない。例えば、動物や植物、乗り物などの物体など、様々な対象物に対して本発明を適用できる。
【0013】
図3は、入力された画像に人物が複数存在しており、画像中で各人物の大きさが大きく異なる場合の人物検出の一例である。以下で説明する本発明によれば、図3のようなケースで、それぞれの人物に対して適した検出器を組み合わせた検出が可能となる。例えば、既存の検出器である顔検出器と頭部検出器と全身検出器とを使用する場合に、画像中で、頭部検出器と全身検出器とにより対象人物301が検出され、顔検出器と頭部検出器とにより対象人物302が検出されたものとする。この場合、対象人物301に対しては画像上での人物の大きさが小さすぎて、顔検出器では検出が困難であり、たとえ顔検出器で検出できたとしてもその信頼性は低いと考えられる。他方、対象人物302に対しては、画像上での人物の大きさが大きすぎて、画像から見切れてしまっており全身が見えない状態であるため、全身検出器での検出が困難であり、たとえ全身検出器で検出できたとしても、その信頼性は低いと考えられる。このように、画像上での対象人物の大きさによって信頼性の高い検出器が変化するので、様々な状態をとりうる対象物を検出するためには、対象物の状態に合わせて使用する検出器の重みを変化させ、検出器の出力を統合する必要がある。つまり、図3の対象人物301に対しては頭部検出器と全身検出器との各重みを高くして統合し、対象人物302に対しては顔検出器と頭部検出器との各重みを高くして統合する。これにより、対象物の状態に適した検出が可能となる。
【0014】
次に図4を参照して、学習画像の分類について説明する。ここで学習に使用する画像は、人物、当該人物のパーツの位置および大きさが既知であるものとする。学習時には、画像上での人物の大きさが様々である学習画像を複数枚使用して、入力された複数の学習画像に対して、顔検出器、頭部検出器、および全身検出器などの既存の複数の検出器を使用し、人物を検出する。そして、それら複数の検出器の検出結果である、顔検出器での検出結果411、頭部検出器での検出結果412、および全身検出器での検出結果413から、画像上の対象物の大きさなどの対象物の状態を推定する。図4では対象物の大きさを人物の頭部の大きさとし、真の頭部401の大きさを推定している。推定した対象物の大きさに基づいて、入力されたそれぞれの学習画像を、例えば学習画像集合421〜425までの5つの集合(グループ)に分類する。
【0015】
この対象物の大きさに従って5つに分類された学習画像集合ごとに、使用した複数の検出器、つまり図4の例では顔検出器と頭部検出器と全身検出器との各重みを算出する。重みの算出方法については後述する。
【0016】
図9(a)は、人物の大きさの分類ごとの各検出器に対する重みの例である。学習画像集合ごとに算出されたこれらの重みを不図示の記憶部に記憶しておく。検出時においては、新たに入力された画像に対し、学習時に用いた複数の検出器と同様の複数の検出器、つまり顔検出器と頭部検出器と全身検出器とを使用して検出を行う。そして、これらの検出器による1または複数の検出結果から、学習時の分類の基準となった検出対象物の状態、すなわち、人物の頭部の大きさを推定する。そして、推定した人物の頭部の大きさに対応した複数の検出器の重み、すなわち図9(a)のような重みを記憶部より取得する。これらの取得した重みで各検出器の検出結果を重み付けして足し合わせることにより最終的な検出結果を出力する。
【0017】
<物体検出装置の構成>
図1を参照して、本実施形態に係る物体検出装置1000の構成を説明する。物体検出装置1000は、学習装置1100と、検出器重み情報記憶部1200と、検出装置1300とを備える。学習装置1100は、検出部1110と、対象状態推定部1120と、分類部1130と、検出器重み算出部1140とを備える。また、検出装置1300は、検出部1310と、対象状態推定部1320と、重み参照部1350と、結果出力部1360とを備える。各構成要素は、ROM、RAM等に格納されたプログラムを読み出して事項する不図示のCPUにより制御される。
【0018】
まず、学習装置1100について説明する。検出部1110は、学習画像が入力されると、学習画像中の人物および人物の一部を検出し、その検出情報を出力する。検出情報とは、例えば、検出した人物および人物の一部の位置と大きさ、人物および人物の一部である尤度である。人物の一部とは、例えば、顔、頭部、肩、胴体、手足などである。つまり、人物全体を検出する検出器とは全身検出器であり、人物の一部分を検出する検出器は、顔検出器、頭部検出器、肩検出器、胴体検出器、手足検出器などである。さらに、人物の一部は明示的なパーツである必要はない。例えば、人物の一部は上半身であってもよく、この場合の検出器は上半身検出器となる。また、ここで使用する検出器は必要とする検出情報を出力するのであれば、どのようなものを使用してもよく、ここでは、検出器で使用する手法は一般的に知られたものを使用する。例えば、Haar-like特徴量(非特許文献1)やHOG特徴量(非特許文献2)を使用した検出器などがある。なお、検出部1110で使用する検出器の数は図1では、検出器1111、検出器1112、検出器1113の3個として表現しているが、実際には使用する数は限定しない。
【0019】
対象状態推定部1120は、検出部1110により検出された検出情報から、対象物の状態を推定する。対象物の状態とは、例えば、画像上における対象物の大きさである。ここでは、さらに対象物の大きさを対象物の頭部の大きさとして考える。対象物の頭部の大きさを推定するために、検出部1110で使用した1つの検出器の検出結果を利用してもよいし、複数の結果を利用してもよい。検出器の検出結果は、例えば、顔検出器の検出結果、頭部検出器の検出結果、全身検出器の検出結果などである。
【0020】
ここで図5を参照して、対象状態推定部1120が対象物の頭部の大きさを推定する方法について説明する。真の頭部の位置および大きさが既知である学習用の人物画像を用意して、各検出器でその学習用画像に対して検出を行い、各検出器の検出結果と真の頭部の大きさとの相対的な関係を学習しておく。これにより、検出部1110は人物の全部もしくは一部分の大きさの情報を保持しているので、人物の頭部の大きさを推定することができる。具体的には、図5に示されるように、予め真の頭部の大きさSが既知である学習画像に対して顔検出器で検出した顔の大きさSfと、真の頭部の大きさSとの関係を学習する。同様に、真の頭部の大きさSと頭部検出器で検出した頭部の大きさShとの関係、真の頭部の大きさSと全身検出器で検出した全身の大きさSwとの関係を学習する。これらの関係は、例えば、線形回帰手法により求めることができる。これにより、新たに画像が与えられたとき、各検出器の検出結果から人物の頭部の大きさを推定することができる。この推定を行う際、各検出器から人物の頭部の大きさをそれぞれ求めて平均値を算出したり、尤度を考慮した重み付き平均値を算出したりすればよい。また、ここでは複数の検出結果から人物の頭部の大きさを推定する方法を述べたが、1つの検出器の検出結果のみから推定してもよく、例えば、尤度の最も高い検出器の推定値を使用する方法などが考えられる。つまり、図5を参照して説明すると、単一の検出器のみの結果を利用する場合、顔検出器による対象物の顔の大きさSf、頭部検出器による対象物の頭部の大きさSh、全身検出器による対象物の全身の大きさSwの何れか1つから求めた対象物の頭部の大きさを推定値として使用する。なお、ここでは推定する対象物の状態を人物の頭部の大きさとして説明したが、特にこれに限定したものではない。
【0021】
分類部1130は、対象状態推定部1120により推定された対象物の状態により、学習画像を分類する。概要説明で使用した図4を参照すると、具体的には、対象状態推定部1120により推定された対象物の頭部の大きさを5段階に分類し、該当する学習画像集合(学習画像集合421〜425)に振り分ける。図1および図4では説明のため分類数を5個としているが、実際には分類数は限定しない。また、学習画像と学習画像集合との関係は、必ずしも1対1である必要はなく、1枚の学習画像が1つの学習画像集合に属してもよいし、どの学習画像集合にも分類されずに分類から除外されてもよい。
【0022】
検出器重み算出部1140は、分類部1130により分類された学習画像集合ごとに、検出部1110で使用した各検出器の重みを算出する。ここで、検出器重み算出部1140は、検出器重み算出部1141と、検出器重み算出部1142と、検出器重み算出部1143と、検出器重み算出部1144と、検出器重み算出部1145とを備える。これらはそれぞれ学習画像集合421〜425に対応している。学習画像集合が5つに分類されたため、検出器重み算出部も5つあるが、必ずしもこの場合に限定されない。
【0023】
検出器重み算出部1140は、ここでは重みをboostingにより求める。具体的な算出方法は非特許文献3に記載の通りであるため、ここでは簡単に説明する。概要説明で使用した図1および図4を参照して説明すると、まず、分類部1130により分類された学習画像集合の1つ、例えば、図4における学習画像集合421に着目する。学習画像集合421に含まれる学習画像を使用して、学習画像集合421に対応する検出器重み算出部1141は、学習画像集合421に対応する対象物の頭部の大きさの状態における検出器の重みを各検出器の検出結果に基づいて算出する。学習画像集合421に含まれる学習画像中の人物について、当該人物の位置および大きさ、当該人物のパーツの位置および大きさが既知である。そのため、すべての学習画像の人物に対して、複数の検出器で検出した検出結果がそれぞれ正しいか否かを示す判定結果が得られる。Boostingにより各検出器の重みを算出する際に、各検出器を弱識別器として使用し、このとき検出器の出力する尤度が所定値以上であるか否かという2値を出力する。そして、先も述べた通り、この出力の正誤は学習画像において既知である。今、すべての学習画像の人物サンプルN個に対し、均等に重み1/Nを付ける。すべての弱識別器に対し、人物サンプルの重み付きの誤検出率を算出し、当該誤検出率が最小となる弱識別器を選択する。この時の誤検出率から、選択した弱識別器に対する重みを算出する。また、選択した弱識別器で検出できた人物サンプルに対する重みを小さく設定し、選択した弱識別器で検出できなかった人物サンプルに対する重みを大きく設定する。その後は選択した弱識別器を除外した残りの弱識別器の中で同様に、誤検出率を算出し、弱識別器を選び、識別器に対する重みを算出し、人物サンプルの重みを更新するという手順を検出器の数だけ繰り返す。この際、途中で算出される誤検出率の大きさにより処理を打ち切るなどしてもよい。この手順で得られた弱識別器の重みが、各検出器の重みである。
【0024】
図9(a)は、各分類における、各検出器の重みの例を示したものである。図9(a)では、横軸は人物の大きさを示し、縦軸に各検出器の重みの値を示す。検出器重み算出部1140は、最終的に図9(a)に示されるような重み情報を得る。なお、重みの算出方法は、boostingに限定しない。例えば、線形回帰などその他の方法を使用することも可能である。
【0025】
次に、検出器重み情報記憶部1200について説明する。検出器重み情報記憶部1200は、検出器重み算出部1140により算出された複数の学習画像集合における各検出器の重み情報を記憶する。このとき、学習画像集合の帰属する状態クラス情報として、状態クラスの番号だけでなく、状態の付随データとして、例えば、人物の頭部の大きさなどを一緒に記憶してもよい。なお、本実施形態では、学習装置の一部に含めていないが、検出器重み情報記憶部1200を学習装置が含んでもよい。また、検出器重み情報記憶部1200を後述の検出装置1300が含んでもよい。さらに、検出器重み情報記憶部1200は、物体検出装置1000の外部のメモリとして設けられてもよい。
【0026】
続いて、学習装置1100の学習結果を使用して実際に人物を検出する検出装置1300について説明する。新たな入力画像に対し、検出部1310は、学習時に使用した検出部1110で使用した検出器と同様の検出器を用いて、画像中の人物および人物の一部分を検出し、その検出情報を出力する。ここでは検出部1310は、検出器1311、検出器1312、検出器1313を備えており、これらは、検出器1111、検出器1112、検出器1113のそれぞれに対応している。
【0027】
対象状態推定部1320は、検出部1310により検出された検出情報から、検出対象物の状態を推定する。対象状態推定部1320は学習時に使用した対象状態推定部1120と同じである必要はないが、推定する対象物の状態については同様の状態を推定する必要がある。また、検出部1310を構成する1つの検出器の結果を利用してもよいし、複数の検出器の結果を利用してもよい。これらの具体的な方法については既に学習装置1100の説明で述べた方法と同様であるため、説明を省略する。さらに、検出部1310を構成する何れの検出器の結果も使用せずに、他の対象物に関する情報を取得する方法を用いて対象物情報を取得することにより対象物の状態を推定してもよい。例えば、対象物の大きさを推定するのであれば、対象物情報取得部として距離センサを用いて、対象物情報としての距離を得る。そしてこの距離に基づいて対象物の状態、すなわち、例えば、対象物の頭部の大きさを推定することも可能である。このときの推定に必要な距離と対象物の頭部の大きさとの関係はあらかじめ学習画像を用いて学習しておくことができる。
【0028】
重み参照部1350は、対象状態推定部1320により推定された対象物の状態と、検出器重み情報記憶部1200に記憶されている対象物の状態とを比較し、該当する状態の重み情報を取得する。このとき、検出器重み情報記憶部1200が記憶している状態が学習画像集合の状態クラスの番号のみである場合は、離散値で重みを取得することになる。一方、検出器重み情報記憶部1200が記憶している状態が学習画像集合の帰属する状態クラスの番号のみではなく、例えば人物の頭部の大きさを共に記憶している場合、各学習画像集合間の対象物の状態の重みの値を補間することができる。そのため、対象状態推定部1320により推定された状態に対して連続値で重みを取得することが可能である。図9(a)のように横軸が状態クラスの番号としての人物の大きさではなく、例えば、図9(b)のように横軸が画像上での頭部の推定の画素数となる場合を考える。検出時に、頭部の推定画素数として図9(b)の画素数901で示される大きさが対象状態推定部1320により求まった場合を考える。学習時に求めておいた各分類における各検出器の重み、つまり、それぞれの頭部の大きさに対する各検出器の重みから、図9(b)の画素数901の箇所に対応する各検出器の重みを補間して算出することができる。このように連続値での頭部の大きさの値に対して、各検出器の重みが取得可能となる。
【0029】
結果出力部1360は、検出部1310により検出された各検出器の検出情報と、重み参照部1350により参照された各検出器の重みとに基づいて最終的な検出結果を出力する。検出情報とは、例えば、人物および人物の一部分であるという尤度である。この各検出器の尤度に重み付けを行い、足し合わせた検出結果を算出する。出力の仕方は特に限定しないが、例えば、この算出した値をそのまま出力してもよい。また閾値との比較により、人物か否かを判断して2値で出力してもよい。
【0030】
以上、対象物の状態を人物の大きさ、具体的には人物の頭部の大きさとして説明してきたが、実際には人物の大きさだけに限定せず、他の状態でもよい。例えば、対象物の状態を画像からの見切れ具合としてもよい。見切れ具合とは、画像における人物または人物の一部分が当該画像に収まりきれておらず、欠けている具合である。対象物の状態を画像からの見切れ具合とした場合、検出部1110および検出部1310で検出した検出対象の人物の全部もしくは一部分の位置と、さらに画像の幅と高さとから、人物のどの部分が画像からどのくらい見切れているかが推定できる。
【0031】
図6を参照して、画像からの対象物の見切れ具合の求め方を説明する。頭部検出器により検出された頭部領域Rhと、頭部領域Rhのうちの画像枠から見切れている領域Rh_outとの比をとることで、頭部の見切れ度thが求まる。同様に、顔検出器により検出された顔領域Rfと、顔領域Rfのうちの画像枠から見切れている領域Rf_outとの比をとることで、顔の見切れ度tfが求まる。この見切れ度により、対象物の各部位の見切れ具合を推定できる。なお、ここでは顔および頭部の見切れについてのみ例に挙げたが、上半身や全身についても同様に見切れ具合を求めることができる。図1の分類部1130は、例えば、人体全体としての見切れ度や、各パーツの見切れ度を状態クラスとしてM個の学習画像集合に分類し、検出器重み算出部1140は、その分類した学習画像集合ごとに、前述したboosting等の方法により検出器の重みを算出することができる。見切れ具合ごとに分類される学習画像集合とは、具体的には、全身の見切れのない画像集合、手足のみ見切れていて顔や頭部の見切れのない画像集合、顔のみ見切れのない画像集合などの分類が考えられる。
【0032】
さらに対象物の状態を遮蔽の具合としてもよい。対象物の状態を遮蔽の具合とした場合、検出部1110および検出部1310により検出された、人物の全部もしくは一部分である尤度から、人物のどの部分が遮蔽されているかが推定できる。
【0033】
図7を参照して、対象物の遮蔽具合の求め方を説明する。顔検出器により検出された顔の尤度lfと、頭部検出器により検出された頭部の尤度lhと、全身検出器により検出された全身の尤度lwとが得られたものとする。全く遮蔽されていない環境下における各尤度と比較すると、図7における各尤度は、遮蔽の生じている頭部検出器の尤度が明らかに低くなり、同じく少し遮蔽されている全身の尤度が少し低くなる。遮蔽されていない環境下における尤度と、遮蔽されている環境下における尤度とを比較することにより、対象物の遮蔽の程度oを推定できる。ここでは、顔と頭部と全身との各遮蔽についての例を挙げたが、手足や上半身などについても同様に遮蔽具合を求めることができる。図1の分類部1130は、例えば、人体全体としての遮蔽具合や、各パーツの遮蔽具合を状態クラスとしてM個の学習画像集合に分類し、検出器重み算出部1140は、その分類した学習画像集合ごとに、前述の方法により検出器の重みを算出することができる。遮蔽具合ごとに分類される学習画像集合には、例えば以下のようなものがある。人物が後ろ向きである場合やサングラスをしている場合など、顔が遮蔽されている状態の画像集合や、机などにより足のみ遮蔽されている状態の画像集合、遮蔽のない状態の画像集合などである。
【0034】
以上のように、推定した対象物の状態に従って、分類部1130により学習画像集合の分類を行い、検出器重み算出部1140で重みを算出する。対象物の状態が様々なケースに対して本発明は適用可能である。
【0035】
<処理手順>
続いて、図2(a)−(c)の各フローチャートを参照して、本実施形態に係る物体検出装置1000の処理の手順を説明する。なお、各フローチャートに従ったプログラムは、物体検出装置1000内の、不図示のRAMやROMなどのメモリ内に格納され、不図示のCPUにより読み出されて実行される。
【0036】
ここでは学習処理と検出処理とを続けて説明するが、学習処理と検出処理とは連続して実行される必要はなく、一度学習処理を行っておけば、任意のタイミングで何度でも検出処理のみを行うことができる。
【0037】
図2(a)では、まずS110において、学習装置1100は、学習画像が準備されると学習処理を行う。次にS120において、検出装置1300は、入力画像に対して対象物の検出処理を行う。
【0038】
図2(a)のS110の学習処理の詳細について図2(b)のフローチャートを参照して説明する。
【0039】
S111において、学習装置1100は、準備された全ての学習画像を処理したか否かを判定する。全ての学習画像を処理したと判定された場合(S111;YES)、S117へ進む。一方、全ての学習画像を処理していないと判定された場合(S111;NO)、S112へ進む。
【0040】
S112において、学習装置1100は、準備された学習画像のうちの1つを入力する。
【0041】
S113において、検出部1110は、複数の検出器を使用して、S112で入力された学習画像に対して、画像中の人物および人物の一部を検出する。ここでは、複数の検出器を顔検出器、頭部検出器、全身検出器として、以下の説明を進める。ただし、使用する検出器はこれらに限定するものではない。
【0042】
S114において、検出部1110は、複数の検出器による検出結果を関連付ける。ここでの検出結果の関連付けとは、各検出器間の検出位置の相互関係を結びつけることであり、対象物に対してすべての検出器により正しく検出が行われた場合における検出位置同士の関係を予め学習しておくことにより関連付けを行うことができる。例えば、複数の検出器を顔検出器、頭部検出器、全身検出器の3つであると仮定する。仮に、図8(a)のように、画像中で顔検出器の出力が2つ、頭部検出器の出力が2つ、全身検出器の出力が2つ、得られた場合を考える。顔検出器と頭部検出器と全身検出器との3つの出力を関連付けることで、対象人物候補801、対象人物候補802を得ることができる。それぞれの検出結果から対象人物候補を得ることで関連付けが完了し、画像中における関連付けされた対象人物候補の位置および各検出器の位置と尤度とが、対象状態推定部1120に送信される。
【0043】
S115において、対象状態推定部1120は、対象物の状態、例えば頭部の大きさを推定する。なお、ここでは対象物の頭部の大きさを利用したが、頭部の大きさに限定しない。対象状態推定部1120により求められた頭部の大きさは分類部1130へ送信される。
【0044】
S116において、分類部1130は、S115で推定された頭部の大きさに基づいて、学習画像を分類する。その後、S111へ戻る。
【0045】
S117において、検出器重み算出部1140は、分類部1130により分類された全ての学習画像集合に対して、各検出器の重みを算出する処理が終了したか否かを判定する。全ての学習画像集合に対して処理が終了したと判定された場合(S117;YES)、処理を終了する。一方、全ての学習画像集合に対して処理が終了していないと判定された場合(S117;NO)、S118へ進む。
【0046】
S118において、検出器重み算出部1140は、分類部1130により分類された学習画像集合のうちの1つにおいて、検出部1110で使用した複数の検出器のそれぞれに対する重みを算出する。重みを算出する処理には、前述したboosting学習や線形回帰などの手法を用いることができる。
【0047】
S119において、検出器重み算出部1140は、算出された複数の検出器のそれぞれに対する重みと、当該重みに対応する学習画像集合のクラス情報とを、検出器重み情報記憶部1200に記憶する。クラス情報とは、既に説明したように学習画像集合の状態クラスの番号や、分類された対象物の頭部の大きさの平均値などである。その後、S117に戻る。
【0048】
以上で学習処理が終了する。
【0049】
次に、図2(b)におけるS120の検出処理の詳細について図2(c)のフローチャートを参照して説明する。
【0050】
S121において、検出装置1300は、検出処理の対象となる画像を入力する。
【0051】
S122において、検出部1310は、学習時と同じ複数の検出器を使用して、S121で入力された画像に対して、画像中の人物および人物の一部を検出する。
【0052】
S123において、検出部1310は、学習時と同様に、複数の検出器の検出結果を関連付ける。それぞれの検出結果の関連付けが完了すると、関連付けされた検出結果は対象状態推定部1320へ送信される。
【0053】
S124において、対象状態推定部1320は、対象物の状態を推定する。ここで対象物の状態クラス推定に必要なデータは、対象状態推定部1120で利用した状態の分類に用いたデータと同じものである必要がある。つまり先に挙げた例の場合、頭部の大きさを使用する必要がある。ただし、ここでの推定方法は対象状態推定部1120と異なっていてもよい。対象状態推定部1320により求められた頭部の大きさは、重み参照部1350へ送信される。
【0054】
S125において、重み参照部1350は、対象状態推定部1320により求められた対象物の頭部の大きさに基づいて、検出器重み情報記憶部1200から、対応する学習画像集合の状態クラス番号における各検出器の重みを取得する。もしくは学習画像集合に含まれる画像の平均値等の付随データ情報から、対象物の頭部の大きさに対する各検出器の重みを補間して取得する。重み参照部1350により取得された各検出器の重み情報は、結果出力部1360へ送信される。
【0055】
S126において、結果出力部1360は、検出部1310により検出された各検出器の検出結果と、S125で取得された各検出器の重み情報とから、最終的な検出結果を算出する。各検出器の結果とは、人物あるいは人物の一部である尤度である。例えば、検出部1310において、顔検出器、頭部検出器、全身検出器を使用していたと仮定し、顔検出器の尤度をρ_f、頭部検出器の尤度をρ_h、全身検出器の尤度をρ_wとする。対象物の頭部の大きさに基づいて検出器重み情報記憶部1200から取得された顔検出器の重みをw_f、頭部検出器の重みをw_h、全身検出器の重みをw_wとすると、最終的な検出結果fは、尤度と重みの積の和として、以下の式(1)によりで求めることができる。
【0056】
f = ρ_f * w_f + ρ_h * w_h + ρ_w + w_w …(1)
最終検出結果fの値が閾値以上であるか否かを判定することにより、例えば対象物が特定の人物であるか否かを判定することができる。
【0057】
以上により、検出処理が終了する。以上説明したように、本実施形態によれば、対象物の状態に適した重みの学習を行うことで、対象物の検出性能を向上することができる。
【0058】
(第2実施形態)
本実施形態に係る物体検出装置は、第1実施形態で説明した物体検出装置1000の構成と同様のものを使用する。ただし、使用する検出器と、推定する状態とが異なる。つまり、使用する検出器は人物の一部を検出するものではなく、異なる姿勢の人物全体を検出するものである点と、推定する状態が人物の向きである点である。第1実施形態と異なり、各検出器が検出する対象物は、基本的には互いに十分異なる姿勢を有しており、検出器により異なる姿勢を有する対象物を検出し、そこから対象物の向きを推定し、各検出器に対して重み付き統合を行う。図9(c)は、各向きにおける、各検出器の重みの例を示したものであり、図9(c)のような重みにより、姿勢ごとの検出器の検出結果を統合する。
【0059】
<物体検出装置の構成>
第1実施形態に係る物体検出装置1000との差異は、学習装置1100が備える検出部1110および対象状態推定部1120の各処理内容、および、検出装置1300が備える検出部1310および対象状態推定部1320の各処理内容である。
【0060】
まず学習装置1100について説明する。検出部1110は、学習画像が入力されると、各検出器が学習画像中の各姿勢を有する人物を検出し、その検出情報を出力する。この検出情報とは、例えば、画像における位置および大きさ、人物の向き、ある特定の姿勢を持つ人物である尤度である。ここで、ある特定の姿勢とは、例えば、立位、座位、臥位といった姿勢クラスなどの他にも、正面、横向き、背面などの向きクラスに関する情報も含む。つまり、ここで用いる検出器は、例えば、立位正面検出器、座位正面検出器、立位横向き検出器、座位横向き検出器などである。また、ここで使用する検出器は必要とする検出情報を出力するのであれば、どのようなものを使用してもよい。ここでは、第1実施形態でも例に挙げたHaar-like特徴量やHOG特徴量などを使用したよく知られた検出器を用いる。さらに、検出部1310で使用する検出器の数は複数あるものとするが、具体的な数については限定しない。
【0061】
対象状態推定部1120は、検出部1110により検出された検出情報から、検出対象物の状態を推定する。対象物の状態とは、例えば、人物の向きである。具体的には、対象物の状態は、正面、背面、側面を含み、斜め45度の向きなどの中間的な向きをさらに含んでもよい。
【0062】
対象物の向きの推定は、例えば以下のような方法で実現できる。真の対象物の向きが既知である学習用の人物画像を用意して、各検出器によりその画像に対して検出処理を行う。そして各検出器の検出結果、すなわち、どの検出器により検出されたかと、真の対象物の向きとの関係、を学習しておく。これにより、検出部1110において人物を検出した検出器がわかっているので、人物の向きを推定することができる。このとき、検出部1110で使用した1つの検出器の検出結果のみから推定してもよいし、複数の検出器の検出結果から推定してもよい。複数の検出器の検出結果から推定する場合は、複数の検出器で推定した人物の向きの平均値や、尤度を考慮した加重平均、尤度の最も高い検出器の推定値を使用する方法などが考えられる。
【0063】
分類部1130、検出器重み算出部1140、および検出器重み情報記憶部1200については、第1実施形態と同様であるため説明を省略する。
【0064】
次に、検出装置1300について説明する。検出部1310は、新たな入力画像に対して、学習時に検出部1110で使用した検出器と同様の検出器を使用し、画像においてある姿勢を持つ人物を検出し、その検出情報を出力する。
【0065】
対象状態推定部1320は、検出部1310により検出された検出情報から、検出対象物の状態を推定する。対象状態推定部1320は、学習時に使用した対象状態推定部1120と同じである必要はないが、推定する対象物の状態が同じ、つまり先に挙げた例では、対象物の状態として対象物の向きを推定する必要がある。また、検出部1310が備える1つの検出器の検出結果を利用してもよいし、複数の検出器の複数の検出結果を利用してもよい。さらに、検出部1310のいずれの検出器の検出結果も使用せずに、対象物に対する情報を取得する他の方法を用いて、対象物の向きを推定してもよい。例えば、動画を利用する場合、動き検出器を用い、対象物の動きの向きから人物の向きを推定することが可能である。
【0066】
重み参照部1350および結果出力部1360については、第1実施形態と差異がないため、説明を省略する。
【0067】
<処理手順>
本実施形態に係る物体検出装置が行う処理について、第1実施形態で用いた図2(a)−(c)の各フローチャートを参照して説明する。第1実施形態とはいくつかのステップが異なるのみで他は同様であるため、共通の処理については詳しい説明は省略する。
【0068】
ここでは、学習処理と検出処理とを続けて説明するが、学習処理と検出処理とは連続して実行する必要はなく、一度学習処理を行っておけば、任意のタイミングで何度でも検出処理のみを行うことができる。
【0069】
図2(a)のフローチャートについては第1実施形態と同様であるため、図2(b)のフローチャートについて第1実施形態との差異を説明していく。
【0070】
S111およびS112の各処理は、第1実施形態と同様である。S113において、検出部1110は、S112で入力された学習画像から、複数の姿勢検出器のそれぞれが画像中である姿勢を有する人物を検出する。
【0071】
S114において、検出部1110は、複数の姿勢検出器による検出結果を関連付ける。ここでの検出結果の関連付けとは、各検出器間の検出位置の相互関係のことであり、これは、対象物に対してすべての検出器の検出結果が妥当であった場合における検出位置の関係をあらかじめ学習することにより求めることができる。例えば、複数の検出器を立位正面検出器、座位正面検出器であると仮定する。仮に、図8(b)のように、画像中で立位正面検出器の出力が2つ、座位正面検出器の出力が2つ得られた場合、立位正面検出器と座位正面検出器との出力をそれぞれ関連付けることにより、対象人物候補811、対象人物候補812を得ることができる。ここで、使用している検出器は基本的には互いに異なる姿勢に対する検出器であるため、関連付けの方法はいくつか考えられる。例えば、図8(b)で示したように、検出結果の位置と大きさのみに注目して、使用したすべての検出器の検出結果を関連付ける方法が考えられる。他にも、似た見かけを持つ姿勢の検出器の検出結果についてのみを関連付け、ある閾値以上に異なる見かけを持つ姿勢の検出器の検出結果については関連付けない、というように選択的に関連付ける方法もある。例えば、図8(c)のように、画像中で立位正面検出器の出力が2つ、座位正面検出器の出力が2つ、座位横向き検出器の出力が1つ得られたと仮定する。
【0072】
座位横向き検出器の検出結果は他の検出器の出力とは関連付けられず、対象人物候補821が得られる。そして、立位正面検出器の出力と座位正面検出器の出力とのみが関連付けられ、対象人物候補822、対象人物候補823が得られる。ここでは、関連付けるべき検出器を手動で一意に決めたが、なんらかの特徴量に基づいて自動で決めてもよい。このようにして各検出結果から対象人物候補を得ることにより関連付けが完了する。関連付けられた対象人物候補の位置および各検出器の位置および尤度が対象状態推定部1120に送信される。
【0073】
S117において、検出器重み算出部1140は、分類部1130により分類された全ての学習画像集合に対して、各検出器の重みを算出する処理が終了したか否かを判定する。分類された学習画像集合とは、例えば、正面向き画像、正面から真横の斜め45度向き画像、横向き画像、真横から背面の斜め45度向き画像、背面向き画像などの画像集合である。全ての学習画像集合に対して処理が終了したと判定された場合(S117;YES)、処理を終了する。一方、全ての学習画像集合に対して処理が終了していないと判定された場合(S117;NO)、S118へ進む。
【0074】
S118およびS119の各処理は、第1実施形態と同様である。以上で処理が終了する。
【0075】
次に図2(c)のフローチャートについて第1実施形態との差異を説明していく。S121の処理は、第1実施形態と同様である。S122において、検出部1310は、学習時と同じ複数の姿勢検出器を使用して、S121で入力された画像に対して、画像中で各姿勢を持つ人物を検出する。
【0076】
S123において、検出部1310は、学習時と同様に、複数の姿勢検出器の検出結果を関連付ける。それぞれの検出結果の関連付けが完了すると、関連付けされた検出結果は対象状態推定部1320へ送信される。
【0077】
S124およびS125の各処理は、第1実施形態と同様である。S126において、結果出力部1360は、検出部1310により検出された各検出器の検出結果と、S125で取得された各検出器の重みとから、最終的な検出結果を算出する。各検出器の結果とは、ある姿勢を持つ人物である尤度である。その後、処理が終了する。
【0078】
以上により、検出処理が終了する。以上説明したように、本実施形態によれば、対象物の状態に適した重みの学習を行うことで、対象物の検出性能を向上することができる。
【0079】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
画像から対象物の一部または全部を検出して複数の検出結果を出力する複数の検出手段と、
前記複数の検出結果の少なくとも1つに基づいて前記対象物の状態を推定する推定手段と、
前記対象物の状態に基づいて前記画像を複数のグループに分類する分類手段と、
前記検出結果に基づいて、前記複数の検出手段のそれぞれに対する重み情報を前記グループごとに算出する重み算出手段と、
を備えることを特徴とする学習装置。
【請求項2】
前記重み情報を記憶する記憶手段をさらに備えることを特徴とする請求項1に記載の学習装置。
【請求項3】
前記記憶手段は、前記重み情報と、前記対象物の状態とを関連付けて記憶することを特徴とする請求項2に記載の学習装置。
【請求項4】
請求項1乃至3の何れか1項に記載の学習装置による学習結果を用いて入力画像から対象物を検出する検出装置であって、
前記入力画像における前記対象物の状態に基づいて、前記重み算出手段により算出された前記複数の検出手段のそれぞれに対する重み情報を参照する重み参照手段と、
前記複数の検出手段により出力された前記入力画像に対する複数の検出結果と、前記重み参照手段により参照された重み情報と、に基づいて前記対象物の最終検出結果を出力する結果出力手段と、
を備えることを特徴とする検出装置。
【請求項5】
前記重み参照手段は、前記重み情報の値を連続値として補間することにより、前記入力画像における前記対象物の状態に応じた重み情報の値を取得することを特徴とする請求項4に記載の検出装置。
【請求項6】
前記対象物の検出結果は、前記対象物の画像における位置、大きさ、および前記対象物の尤度であることを特徴とする請求項1乃至3の何れか1項に記載の学習装置。
【請求項7】
前記対象物の検出結果は、前記対象物の画像における位置、大きさ、前記対象物の尤度、および姿勢であることを特徴とする請求項1乃至3の何れか1項に記載の学習装置。
【請求項8】
前記対象物は、人物であり、
前記対象物の状態は、前記人物の大きさを示す情報、または前記人物の頭部の大きさ示す情報のうち少なくとも1つを含むことを特徴とする請求項1乃至3の何れか1項に記載の学習装置。
【請求項9】
前記対象物の状態は、前記対象物の大きさを示す情報、前記対象物が画像に収まりきれていない程度を示す情報、前記対象物が遮蔽されている程度を示す情報、または前記対象物の姿勢を示す情報のうち少なくとも1つを含むことを特徴とする請求項1乃至3の何れか1項に記載の学習装置。
【請求項10】
検出手段と、推定手段と、分類手段と、重み算出手段とを備える学習装置の制御方法であって、
前記検出手段が、画像から対象物の一部または全部を検出して複数の検出結果を出力する複数の検出工程と、
前記推定手段が、前記複数の検出結果の少なくとも1つに基づいて前記対象物の状態を推定する推定工程と、
前記分類手段が、前記対象物の状態に基づいて前記画像を複数のグループに分類する分類工程と、
前記重み算出手段が、前記検出結果に基づいて、前記複数の検出手段のそれぞれに対する重み情報を前記グループごとに算出する重み算出工程と、
を有することを特徴とする学習装置の制御方法。
【請求項11】
重み参照手段と、結果出力手段とを備え、請求項10項に記載の学習装置の制御方法による学習結果を用いて入力画像から対象物を検出する検出装置の制御方法であって、
前記重み参照手段が、前記推定工程により推定された前記入力画像における前記対象物の状態に基づいて、前記重み算出工程により算出された前記複数の検出手段のそれぞれに対する重み情報を参照する重み参照工程と、
前記結果出力手段が、前記複数の検出手段により出力された前記入力画像に対する複数の検出結果と、前記重み参照手段により参照された重み情報と、に基づいて前記対象物の最終検出結果を出力する結果出力工程と、
を有することを特徴とする検出装置の制御方法。
【請求項12】
請求項10に記載の学習装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項13】
請求項11に記載の検出装置の制御方法の各工程をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate