(57)【特許請求の範囲】
【請求項１】
複数の弱識別器を有し、前記複数の弱識別器の各々において、画像データと識別対象との類似度を、設定された閾値と順次比較することによって、前記画像データに前記識別対象が含まれる否かを識別する強識別器を制御するための制御部と、
前記強識別器により前記識別対象が含まれると識別された画像データを抽出する抽出部と、
を備え、
前記強識別器の制御部は、前記抽出部により抽出された複数の画像データに対する前記複数の弱識別器の類似度の中で、最も低い類似度を前記複数の弱識別器の各々の閾値に設定し、
前記複数の弱識別器は、直列に接続され、
前記複数の弱識別器の各々は、複数の判別関数を加算するように構成され、
後段の前記弱識別器は、前段の前記弱識別器の出力を前記複数の判別関数に更に加算するように構成され、
前記判別関数は、その判別関数により新たに識別対象として正しく識別される画像データの数を、その判別関数により増加する計算量で割った値が大きいほど、前段の前記弱識別器に配置される
ことを特徴とする強識別器の学習装置。
【請求項２】
前記強識別器は、線形識別器であることを特徴とする請求項１に記載の強識別器の学習装置。
【請求項３】
前記強識別器は、サポートベクターマシンによって前記識別対象が含まれる否かを識別することを特徴とする請求項１または２に記載の強識別器の学習装置。
【請求項４】
複数の弱識別器の各々において、画像データと識別対象との類似度を、設定された閾値と順次比較することによって、前記画像データに前記識別対象が含まれる否かを識別する工程と、
前記識別する工程により前記識別対象が含まれると識別された画像データを抽出する工程と、
前記抽出された複数の画像データに対する前記複数の弱識別器の類似度の中で、最も低い類似度を前記複数の弱識別器の各々の閾値に設定する工程とを含み
前記複数の弱識別器は、直列に接続され、
前記複数の弱識別器の各々は、複数の判別関数を加算するように構成され、
後段の前記弱識別器は、前段の前記弱識別器の出力を前記複数の判別関数に更に加算するように構成され、
前記判別関数は、その判別関数により新たに識別対象として正しく識別される画像データの数を、その判別関数により増加する計算量で割った値が大きいほど、前段の前記弱識別器に配置される
ことを特徴とする強識別器の学習方法。
【請求項５】
コンピュータに、
複数の弱識別器の各々において、画像データと識別対象との類似度を、設定された閾値と順次比較することによって、前記画像データに前記識別対象が含まれる否かを識別する工程と、
前記識別する工程により前記識別対象が含まれると識別された画像データを抽出する工程と、
前記抽出された複数の画像データに対する前記複数の弱識別器の類似度の中で、最も低い類似度を前記複数の弱識別器の各々の閾値に設定する工程とを実行させるためのプログラムであって、
前記複数の弱識別器は、直列に接続され、
前記複数の弱識別器の各々は、複数の判別関数を加算するように構成され、
後段の前記弱識別器は、前段の前記弱識別器の出力を前記複数の判別関数に更に加算するように構成され、
前記判別関数は、その判別関数により新たに識別対象として正しく識別される画像データの数を、その判別関数により増加する計算量で割った値が大きいほど、前段の前記弱識別器に配置されること
とを特徴とする強識別器の学習プログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに識別対象が含まれる否かを識別する識別器を用いた強識別器の学習装置及びその方法並びに強識別器の学習プログラムに関する。
【背景技術】
【０００２】
画像からの物体検出において、デジタルカメラにおける顔検出や、自動車の運転支援における歩行者検出など、オンライン処理が必要とされる分野では、検出の正確さとともに処理の高速性も要求される。しかしながら、一般的に識別性能が高い識別器ほど計算量が多い傾向があるため、この２つの要求を同時に満たすことは困難である。
【０００３】
パターン認識を用いて画像から識別対象を高速に検出する方法に関して、識別性能の低い複数の弱識別器を組み合わせることにより、識別性能の高い強識別器を構成する技術が提案されている。
【０００４】
非特許文献１の技術では、強識別器が直列に並べられた複数の弱識別器で構成されており、弱識別器毎にその出力と設定された閾値の大小比較により顔と非顔を識別し、いずれかの弱識別器で非顔と識別された領域は非顔とし、それより後段の弱識別器の処理を省略している。画像のほとんどの領域は非顔領域であるため、このようなカスケード構造の識別器を用いることで、検出処理を高速化することができる。
【非特許文献１】Paul Viola and Michael Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features,”Proc. of CVPR2001, vol.1, pp. 511-518, 2001.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の方法では、各弱識別器の学習時に閾値を設定するため、最終的に誤識別される画像データであっても、後段の弱識別器に送られてしまう場合があり、無駄な画像データの処理が生ずるという問題が生じていた。
【０００６】
本発明は、上記問題点を解決するためになされたものであり、複数の弱識別器を有する強識別器において、無駄な画像データの処理を低減するとともに、識別処理を高速に行うことを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明による強識別器の学習装置は、複数の弱識別器を有し、前記複数の弱識別器の各々において、画像データと識別対象との類似度を、設定された閾値と順次比較することによって、前記画像データに前記識別対象が含まれる否かを識別する強識別器の制御部と、前記強識別器により前記識別対象が含まれると識別された画像データを抽出する抽出部と、を備え、前記強識別器の制御部は、前記抽出部により抽出された複数の画像データに対する前記複数の弱識別器の類似度の中で、最も低い類似度を前記複数の弱識別器の各々の閾値に設定し、前記複数の弱識別器は、直列に接続され、前記複数の弱識別器の各々は、複数の判別関数を加算するように構成され、後段の前記弱識別器は、前段の前記弱識別器の出力を前記複数の判別関数に更に加算するように構成され、前記判別関数は、その判別関数により新たに識別対象として正しく識別される画像データの数を、その判別関数により増加する計算量で割った値が大きいほど、前段の前記弱識別器に配置される。
【発明の効果】
【０００８】
本発明によれば、複数の弱識別器を有する強識別器において、無駄な画像データの処理を低減するとともに、識別処理を高速に行うことができる。
【発明を実施するための最良の形態】
【０００９】
（第１の実施形態）
以下、本発明の第１の実施形態に係る強識別器の学習方法について説明する。図１は、本実施形態に係る強識別器の学習方法のフローチャートを示す図であり、図２は、本発明の第１の実施形態に係る強識別器の学習装置の構成を示す図である。
【００１０】
まず、図２を参照して、本発明の第１の実施形態に係る強識別器の学習装置の構成について説明する。
【００１１】
強識別器の学習装置２００は、制御部２０１と、記憶部２０２と、抽出部２０３と、強識別器２０４と備える。制御部２０１は、強識別器の学習装置２００の各部を制御する。制御部２０１はまた、後述するように強識別器２０４内の各弱識別器の閾値の制御をも行う。記憶部２０２は、識別対象である画像データや学習サンプルなどの各種データを記憶する。強識別器２０４は、弱識別器１（２０５）と弱識別器２（２０６）とが直列に接続された識別器として機能し、画像データに識別対象（例えば、顔や歩行者など）が含まれる否かを識別する。以降では、画像データに識別対象が含まれていることをポジティブ、含まれていないことをネガティブと呼ぶ。強識別器２０４は、識別性能の低い弱識別器１（２０５）及び弱識別器２（２０６）を組み合わせることにより、識別性能の高いカスケード型の識別器として構成されている。弱識別器１（２０５）及び弱識別器２（２０６）は、画像データと識別対象との類似度を出力する。画像データと識別対象との類似度が高いほどポジティブである可能性が高いことを示し、画像データと識別対象との類似度が低いほどネガティブである可能性が高いことを示す。各弱識別器の出力はスカラー値であるが、出力の大小のどちらがポジティブ側に対応付けられていてもよい。つまり、出力値の大小と類似度の大小は一致していなくてもよい。弱識別器のパラメータは、非特許文献１と同様に、１段目から順にAdaboostにより、学習用のサンプル画像データ（以降、学習サンプルと呼ぶ）に対して、目標とする未検出率と過剰検出率を下回るまで学習を行う。２段目以降の弱識別器では、その前段まででポジティブと識別されたサンプルデータのみを用いて同様に学習を行う。なお、図２では、図示を簡略化するために、弱識別器の数を２つにしているが、本発明はこれに限定されず、弱識別器の数を３つ以上にしてもよい。
【００１２】
次いで、図１を参照して、本実施形態に係る強識別器の学習方法について説明する。
【００１３】
ステップ１０１では、制御部２０１は、学習サンプルの中で識別対象である画像データ１０１を記憶部２０２から読み出してｘに設定する。
【００１４】
ステップ１０２では、制御部２０１は、変数i（iは整数）を１に初期化する。
【００１５】
ステップ１０３では、制御部２０１は、弱識別器iの出力である弱識別器i（ｘ）をｙに設定する。
【００１６】
ステップ１０４では、制御部２０１は、ｙと閾値iとを比較し、弱識別器iにおけるポジティブとネガティブを識別する。制御部２０１は、ｙが閾値iよりも大きい場合には（ステップ１０４で「ｔｒｕｅ」）、識別対象が含まれる（ポジティブである）と判断し、ステップ１０５に進む。ｙが閾値i以下である場合には（ステップ１０４で「ｆａｌｓｅ」）、識別対象が含まれない（ネガティブである）と判断し、ステップ１０８に進む。閾値iは、後述の設定方法に基づいて、制御部２０１により設定される。なお、ステップ１０４で閾値iとの大小比較に用いる不等号の向きは、弱識別器の学習時に得られるものを用いる。
【００１７】
ステップ１０５では、制御部２０１は、変数iに１を加算する。
【００１８】
ステップ１０６では、制御部２０１は、変数iが弱識別器の数と等しいか否かを判断する。変数iが弱識別器の数と等しい場合には（ステップ１０６で「ｔｒｕｅ」）、ステップ１０７に進む。変数iが弱識別器の数と等しくない場合には（ステップ１０６で「ｆａｌｓｅ」）、ステップ１０３に戻る。ステップ１０３〜１０６までの処理は、変数iが弱識別器の数と等しくなるまで繰り返し行われる。全ての弱識別器でポジティブと識別された場合には、強識別器２０４の出力resultは、ポジティブとなる。いずれかの弱識別器でネガティブと識別された場合には、強識別器２０４の出力resultは、ネガティブとなり、後段の弱識別器では処理を行わない。
【００１９】
次いで、図１のステップ１０４における弱識別器iにおける閾値iの設定方法を、弱識別器が２つの場合と、一般的な場合（Ｎ個の弱識別器）とに分けて説明する。
【００２０】
図３は、２つの弱識別器により構成される強識別器における閾値の設定方法を例示的に示す図である。縦軸は、１段目の弱識別器１（２０５）の出力（ｙ＝弱識別器１（ｘ））であり、横軸は、２段目の弱識別器２（２０６）の出力（ｙ＝弱識別器２（ｘ））であり。「○」は、学習サンプルのうち、識別対象であることが予め分かっている画像データ（以下「ポジティブサンプル」という。）を表す。「＋」は、学習サンプルのうち、識別対象ではないことが予め分かっている画像データ（以下「ネガティブサンプル」という。）を表す。
【００２１】
例えば、学習サンプル中の１００個がポジティブサンプルであり、強識別器における未検出率を２％以下（つまり２個以下）にしたいとする。従来の方法で閾値を設定すると、１段目の弱識別器１（２０５）で未検出数を１個以下、２段目の弱識別器２（２０６）で未検出数を１個以下にする。１段目の弱識別器１（２０５）で未検出数を１個以下にする最も大きな閾値は閾値１（３０３）であり、次いで、２段目の弱識別器２（２０６）で未検出数を１個以下にする最も大きな閾値は閾値２（３０５）である。強識別器２０４でポジティブと識別されるポジティブサンプルは、閾値１（３０３）と閾値２（３０５）とで区切られた右上の領域に含まれるサンプルである。ここまでは、従来の閾値の設定方法である。
【００２２】
本発明の実施形態に係る閾値の設定方法では、更に以下の処理を行う。まず、閾値１（３０３）と閾値２（３０５）とで区切られた右上の領域に含まれるポジティブサンプルの中で、弱識別器１（２０５）の出力値が最も小さいサンプル３０２までを含む閾値を閾値３（３０４）とする。この場合、閾値１（３０３）と閾値３（３０４）との間にはポジティブサンプルが存在しない。そのため、閾値１（３０３）と閾値３（３０４）との間で閾値を変更しても、強識別器２０４の未検出率は変化しない。閾値１（３０３）から閾値３（３０４）に閾値を変更することによって、従来の方法で２段目の弱識別器２（２０６）でネガティブサンプルであると識別されるサンプル３０１を１段目の識別器１（２０５）でネガティブサンプルであると識別できる。これにより、２段目の弱識別器２（２０６）で処理するサンプル数が減少し、識別処理の計算量を低減することができる。ここでは２つの弱識別器の場合について述べたが、弱識別器の数が３以上である場合も、同様にして閾値を設定することができる。
【００２３】
図４は、弱識別器iにおける閾値iの設定方法のフローチャートを示す図である。
【００２４】
ステップ４０１では、制御部２０１は、記憶部２０２に記憶された学習サンプル中のポジティブサンプルｘの集合Ｓを設定する。
【００２５】
ステップ４０２では、抽出部２０３は、集合Ｓの中から強識別器２０４によってポジティブと識別されるサンプルｘの集合Ｐを抽出する。
【００２６】
ステップ４０３では、制御部２０１は、変数i（iは整数）を１に設定する。
【００２７】
ステップ４０４では、制御部２０１は、集合Ｐの各サンプルｘに対して弱識別器iの出力弱識別器ｉ（ｘ）を算出し、弱識別器ｉ（ｘ）に基づいて識別結果が変わらないぎりぎりの値を閾値iに再設定する。画像データと識別対象との類似度が高いほど弱識別器iの出力が大きくなる場合は、弱識別器ｉ（ｘ）の最小値を閾値iに再設定する。画像データと識別対象との類似度が高いほど弱識別器iの出力が小さくなる場合は、弱識別器ｉ（ｘ）の最大値を閾値iに再設定する。いずれの場合でも、画像データと識別対象との類似度が高いほどポジティブ側に対応付けられることから、ポジティブサンプルに対する弱識別器の類似度の中で、最も低い類似度に閾値iを再設定することになる。
【００２８】
この処理を弱識別器の数だけ繰り返し行うことにより（ステップ４０４〜４０６）、各弱識別器の閾値を設定することができる。
【００２９】
以上のように、本実施形態によれば、カスケード型の強識別器における識別性能の低下を抑えるとともに、識別処理の計算量を低減することができる。
【００３０】
（第２の実施形態）
図５及び図６を参照して、本発明の第２の実施形態に係る強識別器の学習装置について説明する。第２の実施形態では、非カスケード型の強識別器をカスケード型に変換し、変換されたカスケード型の強識別器において、弱識別器の閾値を設定する。
【００３１】
（１）非カスケード型の強識別器からカスケード型の強識別器への変換
まず、非カスケード型の強識別器をカスケード型の強識別器に変換する変換方法について、図５を参照して説明する。図５（ａ）は、非カスケード型の強識別器であり、図５（ｂ）は、図５（ａ）に示す非カスケード型の強識別器をカスケード型に変換したカスケード型の強識別器である。強識別器５０１の出力が、例えば、ベクトルの内積（ベクトルの要素同士の積の総和）で表わされる線形識別器のように、複数の判別関数５０２の和で表わされる場合を考える。なお、各判別関数は、特徴ベクトルと予め設定された辞書ベクトルとの内積計算における１要素の積で表される。この場合、再度学習処理を行うことなく、複数の弱識別器で構成されるカスケード型の強識別器に変換することができる。例えば、図５（ａ）に示すように４つの判別関数５０２の和で表わされる強識別器５０１を、図５（ｂ）に示すように２つの弱識別器で構成されるカスケード型の強識別器５０３へ変換する場合を考える。この場合、図５（ｂ）に示すように１段目の弱識別器１（５０４）の出力を２つの判別関数１、２（５０２）の和とし、２段目の弱識別器２（５０６）の出力を１段目の弱識別器１（５０４）で使われていない残りの２つの判別関数３、４と１段目の弱識別器１（５０４）の出力５０５との和とすればよい。ここで、２段目の弱識別器２（５０６）の出力は、図５（ａ）の強識別器５０１の出力と全く同じであり、１段目の弱識別器１（５０４）を全てのサンプルが通過するとすれば、変換前後で出力が全く変化しないことが分かる。弱識別器が３段以上の場合も同様に、各段の弱識別器の出力を、前段の弱識別器の出力と前段までで使われていない判別関数との和とし、全ての判別関数がいずれかの弱識別器で使われるように判別関数を割り当てればよい。
【００３２】
判別関数を割り当てる順番は、線形識別器の場合には、辞書ベクトルの各要素の絶対値が大きい順とすることが好ましい。すなわち、辞書ベクトルの要素の絶対値が大きい判別関数を、より前段に配置することが好ましい。また、特徴ベクトルの各要素の値域が異なる場合には、例えば、要素ごとの標準偏差、分散又は最大値から最小値を引いた値で特徴ベクトルの各要素を正規化し、辞書ベクトルの要素の絶対値が大きい判別関数がより前段になるように配置すればよい。弱識別器の閾値処理に用いる不等号の向きは、強識別器に対する不等号と同じ向きに設定される。このようにして得られるカスケード型の強識別器は、強識別器の識別計算の一部を各段の弱識別器で分担し、前段までの弱識別器の計算結果を流用して後段の弱識別器の計算を行う。そのため、全ての弱識別器を用いて識別処理を行ったとしても、強識別器による識別処理と比較して計算量はほとんど変わらない。
【００３３】
（２）閾値の設定方法
図６を参照して、図５（ｂ）に示すカスケード型の強識別器における閾値の設定方法について説明する。図６は、ｉ段目の弱識別器における閾値設定の過程を表している。縦軸は、ｉ段目の弱識別器の出力Ｗ_ｉ（ｘ）であり、横軸は、強識別器の出力Ｃ（ｘ）である。ポジティブサンプル及びネガティブサンプルについては、図３と同一の記号で表されている。閾値ｔｈ（６０４）より右側は、強識別器でポジティブ（識別対象）と識別されるサンプルである。強識別器でネガティブ（非識別対象）と識別されるポジティブサンプル６０１は、最終的に誤識別されるため、弱識別器によりネガティブと識別されても識別結果に悪影響を及ぼさない。そこで、ｉ番目の弱識別器は、画像データと識別対象との類似度が高いほど出力値が大きくなる弱識別器であれば、出力が最小となるサンプル６０２をぎりぎり含む閾値Ｔ_ｉ（６０３）を設定する。また、画像データと識別対象との類似度が低いほど出力値が大きくなる弱識別器であれば、出力が最大となるサンプルについて、同様に閾値設定することにより、効率良く識別処理を行うことができる。この場合も、画像データと識別対象との類似度が高いほどポジティブ側に対応付けられることから、ポジティブサンプルに対する弱識別器の類似度の中で、最も低い類似度に閾値Ｔ_ｉ（６０３）を再設定することになる。
【００３４】
（変形例）
本発明は、上記の各実施形態に限らず、その主旨を逸脱しない限り、種々の形態に変形することができる。
【００３５】
（１）変形例１
第１の実施形態に係る弱識別器は、入力がベクトルで出力がスカラーである任意の識別器を用いることができる。また、Adaboostに代えて、例えば、Logit BoostやReal Boost等の他のBoosting手法を用いてもよいし、例えば、パーセプトロンやサポートベクターマシンなどのBoosting以外の手法を用いてもよい。
【００３６】
（２）変形例２
第２の実施形態に係る非カスケード型の強識別器は、出力が複数の判別関数の和で表わされていればよい。そのため、線形識別器だけではなく、例えば、サポートベクターマシンやBoostingなど、一般的に広く使われている識別器の多くに適用することができる。サポートベクターマシンに適用する場合には、サポートベクター毎のカーネル計算、Boostingに適用する場合には、例えば、１つのHarr Wavelet特徴計算などが判別関数に該当する。弱判別関数の計算の順番が学習の過程で与えられない場合には、その判別関数を加えて、新たに識別対象として正しく識別される画像データの数が多い順にすることにより、効率良く識別を行うことができる。ただし、判別関数ごとに用いる特徴量が異なる場合や、判別関数の計算量に差がある場合には、上記の新たに識別対象として正しく識別される画像データの数を、その判別関数により増加する計算量（判別関数の計算量及びその特徴量の計算にかかる計算量の少なくとも一方）で割った値が大きい判別関数ほど、前段の弱識別器に配置することが好ましい。これにより、性能と計算量のトレードオフを考慮して、判別関数を配置することができる。
【００３７】
（３）変形例３
識別器のパラメータ設定に用いる学習サンプルと、閾値の設定に用いる学習サンプルとは、同じであってもよいし、異なっていてもよい。
【００３８】
なお、上記の各実施形態及び変形例における構成及び方法は、強識別器の学習プログラムによりコンピュータに実行させてもよい。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施形態に係る強識別器の学習方法のフローチャートを示す図である。
【図２】本発明の第１の実施形態に係る強識別器の学習装置の構成を示す図である。
【図３】２つの弱識別器により構成される強識別器における弱識別器の閾値設定方法を示す図である。
【図４】弱識別器iにおける閾値iの設定方法のフローチャートを示す図である。
【図５】本発明の第２の実施形態に係る非カスケード型の強識別器をカスケード型の強識別器に変換する変換方法を示す図である。（ａ）は、非カスケード型の強識別器を示している。（ｂ）は、（ａ）に示す非カスケード型の強識別器をカスケード型に変換したカスケード型の強識別器を示している。
【図６】本発明の第２の実施形態に係る弱識別器の閾値設定方法について示す図である。
【符号の説明】
【００４０】
２００  強識別器の学習装置
２０１  制御部
２０３  抽出部
２０４  強識別器
２０５  弱識別器１
２０６  弱識別器２
【図１】
0005171362.tif 000002
【図２】
0005171362.tif 000003
【図３】
0005171362.tif 000004
【図４】
0005171362.tif 000005
【図５】
0005171362.tif 000006
【図６】
0005171362.tif 000007