(57)【要約】【課題】マルチクラスの判別を行う判別器を生成するに際し、学習収束、安定性および判別性能が低い、並びに木構造判別器に応用できないというJoint Boostの欠点を解決して、学習の収束性および判別器の判別性能を向上させる。【解決手段】検出対象画像から抽出した特徴量を用いて、検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する。その際に、複数のクラス間における弱判別器に、特徴量のみを共有する学習を行って判別器を生成する。【選択図】図１
2011181016.tif 000002
【特許請求の範囲】
【請求項１】
検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成装置において、
前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有する学習を行って前記判別器を生成する学習手段を備えたことを特徴とする判別器生成装置。
【請求項２】
前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、
前記学習データから前記特徴量を抽出する複数のフィルタを記憶するフィルタ記憶手段とをさらに備え、
前記学習手段は、該フィルタ記憶手段から選択されたフィルタにより、前記学習データから前記特徴量を抽出し、該特徴量により前記学習を行う手段であることを特徴とする請求項１記載の判別器生成装置。
【請求項３】
前記学習手段は、前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度により、学習を安定させるためにラベリングを行って、前記学習を行う手段であることを特徴とする請求項２記載の判別器生成装置。
【請求項４】
前記学習手段は、前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、すべての前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定するように、前記学習を行う手段であることを特徴とする請求項３項記載の判別器生成装置。
【請求項５】
検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成方法において、
前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有する学習を行って前記判別器を生成することを特徴とする判別器生成方法。
【請求項６】
コンピュータを、検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成装置として機能させるためのプログラムにおいて、
前記プログラムを、前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有する学習を行って前記判別器を生成する学習手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチクラスのオブジェクト判別を行うための判別器を生成する判別器生成装置および方法並びに判別器生成方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像あるいはデジタル映像から人物を検出する必要があるため、人物を検出するための様々な手法がこれまでに提案されている。その中で、とくにマシンラーニングの手法を用いて構築したアピアレンスモデルによる検出手法が知られている。アピアレンスモデルによる検出手法は、膨大な数のサンプル画像を用いて、マシンラーニングの学習により複数の弱い判別器を結合したものであることから、検出精度およびロバスト性が優れている。
【０００３】
デジタル画像中の画像を検出する手法として、このアピアレンスモデルによる検出手法を説明する。この手法は、複数の異なる顔のサンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像とからなる非顔サンプル画像群とを学習データとして用いて、顔であることの特徴を学習させ、ある画像が顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔の検出対象となる画像（以下、検出対象画像という）において部分画像を順次切り出し、その部分画像が顔であるか否かを上記の判別器を用いて判別し、顔であると判別した部分画像の領域を抽出することにより、検出対象画像上の顔を検出する手法である。
【０００４】
ところで、上述した判別器には、顔が正面を向いた画像のみならず、顔が画像平面上において回転している（以下「面内回転」という）画像や、顔が画像平面内において回転している（以下、「面外回転」という）画像が入力される。様々な向きの顔の（顔のマルチビュー）からなる学習データを用いて学習を行う場合、顔の向きのばらつきが大きいため、すべての向きの顔を検出できる汎用的な判別器を実現することは困難である。例えば、１つの判別器が判別可能な顔の回転範囲は限られており、面内回転している画像では３０度程度、面外回転している画像では３０度〜６０度程度回転した顔のみしか判別することがでない。このため、顔という検出対象の統計的な特徴を効率的に抽出するため、および顔の向きの情報を取得するために、顔の判別器は、複数の顔の向き毎に各顔の向きの顔を判別する複数の強判別器から構成される。具体的には、それぞれの向きの画像を判別可能にマルチクラスの学習を行った複数の強判別器を用意し、すべての強判別器に、特定の向きの顔であるか否かの判別を行わせ、最終的な各強判別器の出力から顔であるか否かを判定するマルチクラス判別手法が提案されている。
【０００５】
ここで、マルチクラスの学習を行わせる際に、各クラスの強判別器を構成する複数の弱判別器の学習を効率よく行うためには、特徴量を得るための複数のフィルタから、マルチクラスの学習に最適な特徴量を選択する必要がある。このため、有効な特徴量とクラス間における特徴量の共有関係を探索することにより、マルチクラスの学習に最適な特徴量を高速に選択する手法が提案されている（特許文献１参照）。また、マルチクラス判別手法において、各クラスの判別器を構成する複数の弱判別器について、前段の弱判別器をクラス間で共有するように弱判別器を所定数接続し、その後クラス数に応じて弱判別器を分岐させる手法も提案されている（特許文献２参照）。
【０００６】
さらに、マルチクラス学習の手法として、Joint Boostなる手法が提案されている。Joint Boostの手法は、各クラス間において弱判別器を共有させることにより、全体の弱判別器数を少なくして、判別器の判別性能を高めるための手法である（非特許文献１参照）。また、Joint Boostの手法において、学習の対象となる対象クラスに属する正の教師データには１のラベルを、対象クラスに属さない正の教師データには０または−１のラベルを付与することにより、正の教師データを分類して弱判別器の学習を行う手法も提案されている（非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２５１９５５号公報
【特許文献２】特開２００９−１１６４０１号公報
【非特許文献１】「Antonio Torralba, Kevin P. Murphy and William T. Freeman,  Sharing Visual Features for Multiclass and Mutliview Object Detection, Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), pp762-769, 2004」
【非特許文献２】「Boostingに基づく分割統治的戦略による高精度な識別器構築手法の提案(信学技報, vol. 109, no. 182, PRMU2009-66, pp. 81-86, 2009年8月)」
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、弱判別器は、与えられた入力パターンから特徴量を得、その特徴量を判断材料として、弱判別器に含まれる判別機構により、入力パターンがある属性を有するか否かを判断するものである。ここで、上記Joint Boostの手法においては、対象のクラスにおける正の学習データを１、他のクラスの正の学習データを−１にラベリングして学習を行い、学習により得られる分類損失係数が最小となるように特徴量を選択するようにしている。
【０００９】
しかしながら、上記Joint Boostの手法は、クラス間において特徴量のみならず弱判別器そのものを共有しているため、同一の弱判別器にラベリングが異なる正の学習データが入力されるという、学習上の矛盾がある。Joint Boostの手法はこのような矛盾が存在するため、分類損失係数を最小とするように学習を収束させることが困難となる。また、この矛盾の存在により、学習の効果が弱められ、構築される強判別器の性能が、最初の段階のいくつかの弱判別器の性能に限定されたものとなる。また、弱判別器を共有しているため、クラス間におけるオブジェクトの判別を精度良く行うことが困難なものとなる。さらに、木構造のような複雑な判別構造を構築する際、弱判別器を共有しているため、クラス間の区別ができなくなり、その結果、木の分岐設計が困難なものとなっている。
【００１０】
本発明は上記事情に鑑みなされたものであり、マルチクラスの判別を行う判別器を生成するに際し、Joint Boostの手法の欠点を解決して、学習の収束性および判別器の性能を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
本発明による判別器生成装置は、検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成装置において、
前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有する学習を行って前記判別器を生成する学習手段を備えたことを特徴とするものである。
【００１２】
ここで、弱判別器は、オブジェクトの判別を行うために、画像から取得した特徴量についてオブジェクトであるか否かを判別するものである。上記Joint Boostの手法においては、学習の際に、特徴量のみならず、弱判別器、より詳細には弱判別器における判別の仕方を規定する判別機構をもクラス間において共有している。本発明による判別器生成装置における「特徴量のみを共有する学習」は、Joint Boostの手法とは異なり、特徴量のみを共有し、弱判別器における判別機構を共有しないものである。
【００１３】
なお、本発明による判別器生成装置においては、前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、
前記学習データから前記特徴量を抽出する複数のフィルタを記憶するフィルタ記憶手段とをさらに備えるものとし、
前記学習手段を、該フィルタ記憶手段から選択されたフィルタにより、前記学習データから前記特徴量を抽出し、該特徴量により前記学習を行う手段としてもよい。
【００１４】
「特徴量を抽出するフィルタ」としては、画像上における特徴量算出のために用いる画素の位置、その画素の位置における画素値を用いた特徴量の算出方法を定義するものである。また、本発明においては、クラス間において特徴量を共有することから、特徴量を抽出するフィルタは、いずれのクラスにおいて特徴量を共有させるかについての共有情報も定義する。
【００１５】
また、本発明による判別器生成装置においては、前記学習手段を、前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度に応じて学習を安定させるためにラベリングを行って、前記学習を行う手段としてもよい。
【００１６】
また、本発明による判別器生成装置においては、前記学習手段を、前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、すべての前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定するように、前記学習を行う手段としてもよい。
【００１７】
本発明による判別器生成方法は、検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成方法において、
前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有する学習を行って前記判別器を生成することを特徴とするものである。
【００１８】
本発明によるプログラムは、本発明による判別器生成装置の機能をコンピュータに実行させることを特徴とするものである。
【発明の効果】
【００１９】
本発明は、複数のクラス間における弱判別器に、特徴量のみを共有して弱判別器を共有しないように学習を行って、判別器を生成するようにしたものである。このため、マルチクラスの学習を行う際に、Joint Boostの手法のように学習が収束しなくなるようなことがなくなり、その結果、Joint Boostの手法と比較して、学習の収束性を向上させることができる。また、弱判別器を共有していないため、クラス間の判別も精度よく行うことができる。
【００２０】
さらに、特徴量を共有しているクラスの弱判別器がそれぞれ異なるため、木構造のような複雑な判別構造を構築する際に、木の分岐設計が容易になる。このため、本発明による判別器生成装置および方法は、木構造の判別器の作成に適したものとなる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態による判別器生成装置の構成を示す概略ブロック図
【図２】ｍ＋１分（Ｃ１〜Ｃｍおよび背景）のクラスの学習データを示す図
【図３】学習データの例を示す図
【図４】フィルタの例を示す図
【図５】本発明の実施形態による判別器生成装置において行われる処理の概念図
【図６】クラス数が９（Ｃ１〜Ｃ７および背景）の場合の学習データのラベリング結果を示す図
【図７】本実施形態により構成されるマルチクラスの判別器を模式的に示す図
【図８】学習の処理を示すフローチャート
【図９】ヒストグラム型判別関数の例を示す図
【図１０】ヒストグラムの量子化を示す図
【図１１】作成したヒストグラムの例を示す図
【図１２】本実施形態により生成された判別器の構成を示す図
【図１３】Joint Boostの手法における弱判別器の共有を示す図
【図１４】Joint Boostの手法により構築された判別器の構成を示す図
【図１５Ａ】Joint Boostの手法により構築された判別器と本実施形態により構築された判別器とを比較して示す図（その１）
【図１５Ｂ】Joint Boostの手法により構築された判別器と本実施形態により構築された判別器とを比較して示す図（その２）
【図１６】決定木に対する入力と出力との関係を示す図
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の実施形態による判別器生成装置の構成を示す概略ブロック図である。図１に示すように本発明による判別器生成装置１は、学習データ入力部１０、特徴量プール２０、初期化部３０および学習部４０を備える。
【００２３】
学習データ入力部１０は、判別器の学習に使用する学習データを判別器生成装置１に入力するためのものである。ここで、本実施形態による生成される判別器は、マルチクラスの判別を行う判別器である。例えば、判別対象のオブジェクトが顔である場合、画像平面上における向きが異なる顔および画像内における向きが異なる顔をそれぞれ判別するマルチクラスの判別を行う判別器である。したがって、本実施形態による判別器生成装置１は、例えば判別可能な顔の向きが異なるｍクラスの判別器を生成するためのものである。このため、学習データ入力部１０からは、クラス毎に異なる（すなわち顔の向きが異なる）学習データｘiCu（ｉ＝１〜ＮCu、ｕ＝１〜ｍ、ＮCuはクラスＣｕに対応する学習データの数）が入力される。なお、本実施形態においては、学習データはサイズおよび含まれるオブジェクトにおける特徴点（例えば目および鼻等）の位置が正規化された画像データである。
【００２４】
また、本実施形態においては、ｍクラスの学習データに加えて、判別対象のオブジェクトのいずれのクラスにも属さない背景のオブジェクトの学習データｘibkg（データ数Ｎbkg）も入力される。したがって、本実施形態においては、図２に示すようにｍ＋１クラス分の学習データが入力され、判別器の生成に使用される。
【００２５】
図３は学習データの例を示す図である。なお、図３は顔を判別するための判別器に使用する学習データを示すものである。図３に示すように学習データは、あらかじめ定められた画像サイズを有し、そのサイズの画像の設定位置（例えば中央）に配置された顔が３０°ずつ回転した１２種類の画像からなる面内回転（in-plane）画像（図３（ａ））、および設定位置（例えば中央）に配置された顔の向きが０°および±３０°ずつ回転した３種類の画像からなる面外回転（out-plane）画像（図３（ｂ））からなる。このように学習データを用意することにより、１２×３＝３６クラスの判別器が生成されることとなる。なお、各クラスの判別器は複数の弱判別器が結合されてなるものである。以降の説明においては、各クラスの判別器を「強判別器」と称するものとし、各クラスの強判別器からなる判別器、すなわち本実施形態により生成される判別器と区別するものとする。
【００２６】
特徴量プール２０は、弱判別器の学習に使用する、判別対象の画像データが所定のクラスに属するか否かを判別するために用いる特徴量を、学習データから抽出する複数のフィルタｆｔをあらかじめ記憶する。このフィルタｆｔは、学習データにおける特徴量抽出のための画素位置、およびその画素位置の画素値からの特徴量の算出方法を定義する。図４はフィルタの例を示す図である。図４に示すフィルタｆｔは、判別対象の画像データにおけるあらかじめ定められたｋ点またはｋ個のブロック（α１〜αｋ）の画素値を取得し、取得した画素値についてα１〜αｋ間においてフィルタ関数ψを用いて演算を行うことを定義している。なお、画素値α１〜αｋがフィルタｆｔの入力、フィルタ関数ψによる演算結果がフィルタｆｔの出力となる。
【００２７】
また、本実施形態においてはクラス間において特徴量を共有するものであるため、フィルタｆｔはクラス間の共有関係も定義する。例えばクラスＣ１〜Ｃ３の３つのクラスの場合、クラスの共有関係は、（Ｃ１，Ｃ２，Ｃ３）、（Ｃ１，Ｃ２）、（Ｃ１，Ｃ３）、（Ｃ２，Ｃ３）、（Ｃ１）、（Ｃ２）、（Ｃ３）の７通りあることから、この７通りのうちのいずれかの共有関係をフィルタｆｔは定義する。なお、学習データおよび特徴量プール２０のフィルタｆｔは、あらかじめユーザにより定義されて用意されてなるものである。
【００２８】
図５は本発明の実施形態による判別器生成装置１において行われる処理の概念図である。図５に示すように、本実施形態においては、判別対象であるオブジェクトについて、マルチクラスの学習データおよび特徴量プール２０からのフィルタｆｔを用いて、本実施形態の特徴である特徴量のみを共有する学習アルゴリズムにより学習を行って、マルチクラスの判別器を生成するものである。
【００２９】
初期化部３０は、学習データのラベリング、学習データ数の正規化、学習データの重み設定および判別器の初期化の処理を行う。以下、初期化部３０が行う各処理について説明する。まず、学習データのラベリングについて説明する。学習データのラベリングは、学習データを用いて各クラスの弱判別器の学習を行う際に、学習データが学習対象のクラスに属するか否かを示すためのものであり、下記に示すように、１つの学習データｘiCに対して、全クラス分のラベルが設定される。なお、全クラス分のラベルを設定するのは、与えられた学習データｘiC（クラスＣに属する）について、学習データが、クラスＣｕの学習時に正の教師データとして扱われるか、負の教師データとして扱われるかを明確にするためである。学習データが正の教師データとして扱われるか、負の教師データとして扱われるかは、ラベルにより決定されることとなる。
【００３０】
ｘiC→（ｚiC1，ｚiC2，・・・ｚiCm）
ここで、Ｃ∈｛Ｃ１，Ｃ２，・・・Ｃｍ、ｂｋｇ｝であるとすると、Ｃ＝Ｃｕ（ｕ＝１〜ｍ、すなわち学習データが背景以外）の場合、初期化部３０は、ラベルの値を＋１（ｚiCu＝＋１）に、Ｃ＝ｂｋｇ（すなわち学習データが背景）の場合、ラベルの値を−１（ｚiCu＝−１）に設定する。また、学習データが背景以外の場合においては、さらに以下のようにラベルの値を設定する。例えば、学習する対象の判別器のクラスがＣ１である場合に、学習に使用する学習データのクラスがＣ３である場合（例えば学習データｘiC3）のように、学習対象の弱判別器のクラスと、学習に使用する学習データのクラスとが一致しない場合は、学習対象の弱判別器のクラスの学習データと他のクラスの学習データとの類似度に応じてラベルの値を設定する。例えば学習対象の弱判別器のクラスがＣ３である場合に、学習に使用する学習データのクラスがＣ２またはＣ４である場合のように、学習対象の弱判別器のクラスの学習データと、他のクラスの学習データとが類似する場合にはラベルの値を０（ｚiCu＝０）に設定する。また、学習対象の弱判別器のクラスがＣ３である場合に、学習に使用する学習データのクラスがＣ１またはＣ６である場合のように、学習対象の弱判別器のクラスの学習データと他のクラスの学習データとが類似しない場合には、ラベルの値を−１（ｚiCu＝−１）に設定する。なお、ラベルの値を＋１に設定された学習データは正の教師データ、−１に設定された学習データは負の教師データとなる。
【００３１】
なお、学習対象の弱判別器のクラスの学習データと他のクラスの学習データとが類似するか否かの判定は、学習対象の弱判別器のクラスに隣接するクラスの学習データについては類似すると判定し、それ以外のクラスの学習データについては、類似しないと判定するようにする。したがって、学習対象の弱判別器のクラスがＣ３である場合、クラスＣ３の学習データのラベルｚiC3の値は＋１、クラスＣ１，Ｃ２の学習データのラベルｚiC1，ｚiC2の値は０、それ以外のクラスの学習データのラベルの値は−１に設定される。よって、本実施形態においては、ラベルｚiCuの値は、−１，０，＋１の３通りとなる。学習データｘiCを用いてクラスＣｕの判別器を学習する際、上述したようにラベルを設定することにより、学習の安定性を高めることができる。ここで、顔検出および顔の向きの検出の判別のためには、左に向く真横顔から右を向く真横顔まで、顔の向きを２０度毎に割り当てる７クラスの学習を行うことが必要であり、その場合の学習データのラベリング結果を図６に示す。
【００３２】
なお、学習データが類似するか否かの判定は、クラス間の学習データ同志の相関を算出し、相関が一定以上の場合に類似すると判定するようにしてもよく、ユーザがマニュアル操作により類似するか否かを判定するようにしてもよい。
【００３３】
次いで、学習データ数の正規化について説明する。学習データは上述したようにクラス毎に用意されているが、クラス毎に学習データの数が異なる場合がある。また、本実施形態による判別器生成装置１においては、弱判別器の学習の際には、学習対象の弱判別器のクラスについて、＋１および−１のラベルｚiCuの値が設定されたクラスの学習データのみが使用され、０のラベルｚiCuの値が設定されたクラスの学習データは後述するように重みが０とされることから使用されない。ここで、あるクラスＣｕについて値が＋１のラベルｚiCuが設定された学習データを正の学習データ、値が−１のラベルｚiCuが設定された学習データを負の学習データとし、あるクラスＣｕの正の学習データ数Ｎ+Cu、負の学習データ数Ｎ-Cuとすると、あるクラスＣｕの学習データ数ＮtchrCuは、Ｎ+Cu＋Ｎ-Cuと表すことができる。
【００３４】
本実施形態においては、すべてのクラスＣｕの学習データ数ＮtchrCuのうち、最も少ない学習データ数minＮtchrCuとなるように、すべてのクラスＣｕの学習データ数ＮtchrCuを正規化する。なお、最も少ない学習データ数minＮtchrCuとなるクラス以外は、学習データ数ＮtchrCuを少なくする必要があるが、その際、背景のオブジェクトの学習データｘibkgからランダムに選択した学習データを、負の学習データから除外することにより、学習データ数を少なくする。そして、正規化した数の学習データにより、各クラスＣｕの学習データ数ＮtchrCuを更新して、学習データの正規化処理を終了する。
【００３５】
次いで、学習データの重み設定について説明する。重みとは、各クラスＣｕの弱判別器の学習を行う場合における学習データに対する重みであり、下記に示すように、１つの学習データｘiCに対して、ｍクラス分の重みが設定される。
【００３６】
ｘiC→ｗi（ｗiC1 ，ｗiC2 ，・・・ｗiCm）
ここで、Ｃ∈｛Ｃ１，Ｃ２，・・・Ｃｍ、ｂｋｇ｝であるとすると、クラスＣｕにおけるある学習データｘiCuに対する重みｗiCuを、重み付ける学習データｘiCuのラベルｚiCuの値に応じて設定する。具体的には、あるクラスＣｕにおいて、ラベルｚiCuの値が＋１である正の学習データについてはｗiCu＝１／２Ｎ+Cuに、ラベルｚiCuの値が−１である負の学習データについてはｗiCu＝１／２Ｎ-Cuに、ラベルｚiCuの値が０である学習データについてはｗiCu＝０に設定する。したがって、ラベルの値が０の学習データは、そのクラスの学習に使用されないこととなる。なお、Ｎ+CuはあるクラスＣｕの正の学習データ数、Ｎ-CuはあるクラスＣｕの負の学習データ数である。
【００３７】
なお、判別器の初期化は各クラスＣｕについて、複数の弱判別器からなる判別器ＨCuにおいて、弱判別器の数を０、すなわち弱判別器が全く存在しないものとなるように初期化する。
【００３８】
次いで、学習部４０が行う学習の処理について説明する。本実施形態において生成されるマルチクラスの判別器は、各クラスＣｕの強判別器ＨCu（すなわちＨC1，ＨC2…ＨCm）からなり、各クラスＣｕの強判別器ＨCuは、複数の弱判別器ｈtCu（ｔ＝１〜ｎ、ｎは弱判別器の段数）を結合したものとなる。図７はこのように構成されるマルチクラスの判別器を模式的に示す図である。図７において、特徴量を共有する関係で各強判別器が繋がっている。
【数１】
2011181016.tif 000003
【００３９】
図８は学習の処理を示すフローチャートである。なお、ステップＳＴ１における学習データのラベリング、学習データ数の正規化、学習データの重み設定および判別器の初期化の処理（初期化処理）は初期化部３０が行うものとする。学習部４０が行う学習は、判別器ＨCuの各段における弱判別器ｈtCuをクラス毎に順次決定することにより進められる。まず、学習部４０は特徴量プール２０から任意の１つのフィルタｆｔを選択する。そして選択したフィルタｆｔにより定義された共有関係を参照し、特徴量を共有するクラスを決定する。また、すべてのクラスについて、フィルタｆｔを用いて、すべての学習データｘｉから特徴量ｆｔ（ｘi）を抽出する。ここで、弱判別器ｈtCuにおける特徴量ｆｔ（ｘi）から判別のためのスコアを算出するための判別機構をｇtCuとすると、学習データｘiが入力された弱判別器ｈtCuが、特徴量を用いて行う処理は、ｈtCu（ｘi）＝ｇtCu（ｆｔ（ｘi））と表すことができる。なお、ｈtCu（ｘi）は選択されたフィルタｆｔを用いて算出された特徴量によりその弱判別器ｈtCuが出力するその学習データについてスコアである。
【００４０】
なお、本実施形態においては、判別機構としてヒストグラム型判別関数を使用するものとし、学習データから得た特徴量の値に対するスコアを決定するようにヒストグラムを作成することにより、弱判別器を決定する。ヒストグラム型判別関数の判別機構においては、スコアが正の方向に大きいほど判別対象のクラスのオブジェクトである可能性が高く、負の方向に大きいほど判別対象のクラスのオブジェクトでない可能性が高いこととなる。
【００４１】
ここで、学習は、弱判別器を決定することを目的とするものである。このため学習部４０は、弱判別器を決定するために、各クラスＣｕの学習データｘiに対するラベルｚiCuおよび重みｗiCuを用いて、各クラスＣｕ毎に、ラベルｚiCuとスコアとの重み付け二乗誤差を損失誤差として定義し、すべての学習データｘiについての損失誤差の総和を定義する。例えば、クラスＣ１についての損失誤差ＪC1は下記の式（１）により定義することができる。なお、式（１）におけるNtchrは学習データの総数である。
【数２】
2011181016.tif 000004
【００４２】
そして、学習部４０は、すべてのクラスについての損失誤差ＪCuの総和を、分類損失誤差Ｊwseとして、下記の式（２）により定義する。
【数３】
2011181016.tif 000005
【００４３】
ここで、クラス数ｍ＝３であり、特徴量を算出するフィルタｆｔにおいて、クラスＣ１，Ｃ２の共有が定義されている場合、分類損失誤差Ｊwseは下記のように定義される。
【数４】
2011181016.tif 000006
【００４４】
クラスＣ１，Ｃ２については特徴量を共有しているため、
ｈtC1（ｘi）＝ｇtC1（ｆｔ（ｘi））
ｈtC2（ｘi）＝ｇtC2（ｆｔ（ｘi））
と表すことができる。一方、クラスＣ３については特徴量を共有していないため、クラスＣ３のみ別にフィルタを選択して特徴量を算出する必要があることから、演算量が多くなり、好ましくない。このため、本実施形態においては、特徴量を共有しないクラスについては、定数型判別関数として分類損失誤差Ｊwseを定義するものとする。定数の算出については後述する。
【００４５】
そして学習部４０は、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuを決定する（ステップＳＴ２）。本実施形態においては、判別機構がヒストグラム型判別関数であるため、学習データから得た特徴量に対するスコアを決定するようにヒストグラムを作成することにより弱判別器ｈtCuを決定する。なお、弱判別器ｈtCuの決定については後述する。このようにして弱判別器ｈtCuを決定した後、下記の式（３）に示すように学習データｘiCuに対する重みｗiCuを更新する（ステップＳＴ３）。なお、更新した重みｗiCuは下記の式（４）に示すように正規化される。式（３）において、ｈtCuは、学習データｘiCuにより弱判別器が出力するスコアを意味する。
【数５】
2011181016.tif 000007
【００４６】
ここで、ある学習データについて、弱判別器ｈtCuが出力するスコアが正の場合には判別対象のクラスのオブジェクトである可能性が高く、負の場合には判別対象のクラスのオブジェクトである可能性が低い。このため、ラベルｚiCuの値が＋１の場合においてスコアが正の場合には、その学習データの重みｗiCuは小さくなるように更新され、スコアが負の場合には重みｗiCuは大きくなるように更新される。一方、ラベルｚiCuの値が−１の場合においてスコアが正の場合には、その学習データの重みｗiCuは大きくなるように更新され、スコアが負の場合には重みｗiCuは小さくなるように更新される。これは、正の学習データを用いてその弱判別器ｈtCuにより判別を行った場合において、スコアが正の場合にはその学習データに対する重みがより小さくされ、スコアが負の場合にはその学習データに対する重みがより大きくされることを意味する。また、負の学習データを用いてその弱判別器ｈtCuにより判別を行った場合においてスコアが正の場合には、その学習データの重みがより大きくされ、スコアが負の場合にはその学習データの重みがより小さくされる。
【００４７】
このようにして、弱判別器ｈtCuを決定し、重みｗiCuを更新した後、学習部４０は、各クラスの強判別器ＨCuに決定した弱判別器ｈtCuを組み合せることにより、強判別器ＨCuを更新する（ステップＳＴ４）。なお、１回目の処理においては、強判別器ＨCu＝０に初期化されているため、１回目の処理により、各クラスの強判別器ＨCuにおける１段目の弱判別器ｈtCuが決定される。また、２回目以降の処理により、各クラスの強判別器ＨCuに、決定された弱判別器が追加される。
【００４８】
このように、各クラスの強判別器ＨCuを更新した後、学習部４０は、各クラスの強判別器ＨCuについて、それまでに決定した弱判別器ｈtCuの組み合せの正答率、すなわち、それまでに決定した弱判別器ｈtCuを組み合せて使用して（学習段階では、弱判別器ｈtCuは必ずしも線形に結合させる必要はない）、各クラスについての正の学習データを判別した結果が、実際に判別対象のクラスのオブジェクトであるか否かの答えと一致する率が、所定の閾値Ｔｈ１を超えたか否かを判定する（ステップＳＴ５）。正答率が所定の閾値Ｔｈ１を超えた場合は、それまでに決定した弱判別器ｈtCuを用いれば判別対象のオブジェクトを十分に高い確率で判別できるため、判別器を確定し（ステップＳＴ６）、学習は終了する。正答率が所定の閾値Ｔｈ１以下である場合は、それまでに決定した弱判別器ｈtCuと結合するための追加の弱判別器ｈtCuを決定するために、ステップＳＴ２に戻って処理を繰り返す。なお、２回目以降の学習における特徴量のフィルタｆｔは任意に選択される。このため、学習が完了するまでに同じフィルタｆｔが再度選択されることもあり得る。
【００４９】
なお、決定された弱判別器ｈtCuは、決定された順に線形結合されることにより１つの強判別器ＨCuが構成される。なお、決定された弱判別器ｈtCuを正答率が高い順に線形結合して判別器を構成してもよい。また、各弱判別器ｈtCuについては、それぞれ作成されたヒストグラムを基に、特徴量に応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。このようにして、クラス毎に判別器の学習を行うことにより、マルチクラスの判別器が作成される。
【００５０】
次いで、弱判別器の決定の処理について説明する。本実施形態においては、判別機構としてヒストグラム型判別関数を使用するものである。図９はヒストグラム型判別関数の例を示す図である。図９に示すように弱判別器ｈtCuの判別機構としてのヒストグラムは、横軸が特徴量の値であり、縦軸がその特徴量が対象とするオブジェクトであることを示す確率、すなわちスコアである。なお、スコアは−１〜＋１の間の値をとる。本実施形態においては、判別機構であるヒストグラムを作成すること、より具体的にはヒストグラムにおける各特徴量に対応するスコアを決定することにより、弱判別器を決定する。以下、ヒストグラム型判別関数の作成について説明する。
【００５１】
本実施形態においては、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuの判別機構であるヒストグラムを作成することにより、弱判別器ｈtCuを決定するものである。ここで、本実施形態においては、強判別器の各段の弱判別器ｈtCuはクラス間において特徴量を共有するものと特徴量を共有しないものとが存在する。このため、上記式（２）の分類損失誤差Ｊwseは、下記の式（５）のように、特徴量を共有するクラスについての損失誤差Ｊshareと特徴量を共有しないクラスについての損失誤差Ｊunshareとの和となるように変形することができる。なお、ｈtCu（ｘi）＝ｇtCu（ｆｔ（ｘi））であることから、式（５）においては、ヒストグラムの横軸の値を簡易に示すために、ｆｔ（ｘi）＝ｒiに置き換えている。また、式（５）において、Σの下に付与されている「share」および「unshare」は、特徴量を共有しているクラスについての損失誤差の総和、および特徴量を共有していないクラスについての損失誤差の総和を算出することをそれぞれ示している。
【数６】
2011181016.tif 000008
【００５２】
式（５）において、分類損失誤差Ｊwseを最小とするためには、損失誤差Ｊshareおよび損失誤差Ｊunshareの双方を最小とすればよいこととなる。このため、まず特徴量を共有するクラスについての損失誤差Ｊshareを最小とすることを考える。特徴量を共有するクラスの数がｋであるとすると、損失誤差Ｊshareは下記の式（６）により表すことができる。なお、式（６）において、ｓ１〜ｓｋは、判別器全体のクラスＣｕのうちの、特徴量を共有するクラスについて改めて付与したクラスの番号を示す。式（６）において、右辺の各項をそれぞれＪCs1share〜ＪCskshareと表すと、式（６）は式（７）となる。
【数７】
2011181016.tif 000009
【００５３】
式（７）において、損失誤差Ｊshareを最小とするためには、式（７）の右辺の各項である、特徴量を共有する各クラスについての損失誤差ＪCs1share〜ＪCskshareをそれぞれ最小とすればよいこととなる。ここで、損失誤差ＪCs1share〜ＪCskshareを最小とするための演算は、各クラスにおいて同一であることから、以降の説明においては、ある１つのクラスＣｓｊ（ｊ＝１〜ｋ）についての損失誤差ＪCsjshareを最小とするための演算について説明する。
【００５４】
ここで、特徴量がとり得る値は所定範囲に限定されている。膨大な数の学習データから、特徴量の統計的な情報を効率的に表すために、および判別器を実装する場合におけるメモリや検出速度の要求等に応じて、本実施形態においては、ヒストグラムの横軸の範囲を、図１０に示すように適当な数値幅で区切ってＰ１〜Ｐｖの区分に量子化する（例えばｖ＝１００）。なお、ヒストグラムの縦軸は、すべての学習データから特徴量を算出し、後述する式（１１）により算出される統計情報により決定される。これにより、作成したヒストグラムは、判別対象のオブジェクトの統計的な情報が反映されるため、判別能力が高くなる。また、ヒストグラムを作成するための演算および判別時の演算量を低減することができる。損失誤差ＪCsjshareは、ヒストグラムにおける各区分Ｐ１〜Ｐｖ毎の損失誤差の総和となることから、損失誤差ＪCsjshareは、下記の式（８）に示すように変形できる。なお、式（８）において、Σの下に付与されているｒi∈Ｐｑ（ｑ＝１〜ｖ）等は、特徴量ｒiが区分Ｐｑに属する場合の損失誤差の総和を算出することを意味する。
【数８】
2011181016.tif 000010
【００５５】
ヒストグラムは図１０に示すように区分Ｐ１〜Ｐｖに量子化されているため、各区分におけるスコアの値ｇtCsj（ｒi）は各区分においては定数となる。したがって、ｇtCsj（ｒi）＝θqCsjと表すことができ、これにより式（８）を下記の式（９）に変形することができる。
【数９】
2011181016.tif 000011
【００５６】
ここで、式（９）におけるラベルｚiCsjの値は＋１または−１である。したがって、式（９）の（ｚiCsj−θqCsj）は、（１−θqCsj）または（−１−θqCsj）のいずれかとなる。したがって、式（９）は下記の式（１０）のように変形することができる。
【数１０】
2011181016.tif 000012
【００５７】
損失誤差ＪCsjshareを最小とするためには、式（１０）が最小となるようにすればよい。式（１０）を最小とするためには、式（１０）をθqCsjにより偏微分した値が０となるように各区分ＰｑにおけるθqCsjの値を決定すればよい。したがって、θqCsjは、下記の式（１１）のように算出することができる。
【数１１】
2011181016.tif 000013
【００５８】
ここで、ＷqCsj+は、特徴量を共有するクラスＣｓｊにおいて、ラベルの値が１に設定された学習データ、すなわち正の学習データｘiに対する重みｗiCsjの、ヒストグラムの区分Ｐｑにおける総和、ＷqCsj-は、特徴量を共有するクラスＣｓｊにおいて、ラベルの値が−１に設定された学習データ、すなわち負の学習データｘiに対する重みｗiCsjの、ヒストグラムの区分Ｐｑにおける総和である。重みｗiCsjは既知であるため、ＷqCsj+およびＷqCsj-は算出することができ、よって、区分Ｐｑにおけるヒストグラムの縦軸すなわちスコアθqCsjは上記式（１１）により算出することができる。
【００５９】
以上より、特徴量を共有するクラスＣｓｊについては、弱判別器ｈtCuの判別機構であるヒストグラムのすべての区分Ｐ１〜Ｐｖにおける縦軸の値、すなわちスコアθqCsjを式（１１）により算出することにより、損失誤差ＪCsjshareを最小とするようにヒストグラムを作成して、弱判別器ｈtCuを決定することができる。作成したヒストグラムの例を図１１に示す。なお、図１１において、区分Ｐ１，Ｐ２，Ｐ３のスコアをそれぞれθ１，θ２，θ３として示している。
【００６０】
次に特徴量を共有しないクラスについての損失誤差Ｊunshareを最小とすることを考える。特徴量を共有しないクラスのうちのあるクラスＣｓｊについての損失係数ＪCsjunshareは、下記の式（１２）により表すことができる。ここで、本実施形態においては、特徴量を共有することを特徴とするものであるため、特徴量を共有しないクラスについては、スコアｇtCu（ｒi）を式（１３）に示すように定数ρCsjとして、損失誤差ＪCsjunshareを最小とする定数ρCsjを決定するものとする。
【数１２】
2011181016.tif 000014
【００６１】
損失誤差ＪCsjunshareを最小とするためには、式（１３）が最小となるようにすればよい。式（１３）を最小とするためには、式（１３）をρCsjにより偏微分した値が０となるようにρCsjの値を決定すればよい。したがって、ρCsjは、下記の式（１４）のように算出することができる。ここで、重みｗiCsjおよびスコアｚiCsjは既知であるため、定数ρCsjを式（１４）により算出することができる。
【数１３】
2011181016.tif 000015
【００６２】
以上のように生成された判別器の構成を図１２に示す。なお、図１２においては４クラスの強判別器を３段目まで図示している。図１２に示すように１段目の弱判別器については、すべてのクラスＣ１〜Ｃ４において特徴量ｆ１を共有しており、すべてのクラスＣ１〜Ｃ４について弱判別器ｈの判別機構ｇ1C1、ｇ1C2、ｇ1C3、ｇ1C4が作成されている。それぞれの判別機構ｇ1Cj（ｊ＝１〜４）の作成には、使用する学習データ（ラベリング値および重み）が異なることから、式（１１）により算出した判別関数も異なるものとなっている。したがって、すべてのクラスの弱判別器ｈ1C1〜ｈ1C4はそれぞれ異なるものとなる。２段目の弱判別器については、クラスＣ１，Ｃ３，Ｃ４において特徴量ｆ２を共有しており、クラスＣ１，Ｃ３，Ｃ４のそれぞれについて弱判別器ｈの判別機構ｇ2C1、ｇ2C3、ｇ2C4が作成されている。したがって、クラスＣ１，Ｃ３，Ｃ４の弱判別器ｈ1C1、ｈ1C3、ｈ1C4はそれぞれ異なるものとなる。３段目の弱判別器については、クラスＣ１，Ｃ３において特徴量ｆ３を共有しており、クラスＣ１，Ｃ３のそれぞれについて弱判別器ｈの判別機構ｇ3C1、ｇ3C3が作成されている。したがって、クラスＣ１，Ｃ３の弱判別器ｈ1C1、ｈ1C3はそれぞれ異なるものとなる。
【００６３】
本実施形態により構築された判別器とJoint Boostの手法により作成された判別器とを比較する。図１３は、Joint Boostの手法における弱判別器の共有を示す図、図１４はJoint Boostの手法により構築された判別器の構成を示す図である。図１４においては図１２と同様に４クラスの強判別器を３段目まで図示している。図１４に示すように１段目の弱判別器については、すべてのクラスＣ１〜Ｃ４において特徴量ｆ１を共有しており、すべてのクラスＣ１〜Ｃ４について弱判別器ｈの判別機構ｇ1も共有している。したがって、すべてのクラスの弱判別器ｈ1C1〜ｈ1C4は同一となる。２段目の弱判別器については、クラスＣ１，Ｃ３，Ｃ４において特徴量ｆ２および判別機構ｇ2の双方を共有している。したがって、クラスＣ１，Ｃ３，Ｃ４の弱判別器ｈ1C1、ｈ1C3、ｈ1C4は同一となる。３段目の弱判別器ｈ３については、クラスＣ１，Ｃ３において特徴量ｆ３および判別機構ｇ3の双方を共有している。したがって、クラスＣ１，Ｃ３の弱判別器ｈ1C1、ｈ1C3は同一となる。図１５に、Joint Boostの手法により構築された判別器と本実施形態により構築された判別器とを比較して示す。
【００６４】
このように、本実施形態によれば、複数のクラス間における弱判別器に、特徴量のみを共有する学習を行って、弱判別器を共有しないようにしたものである。このため、マルチクラスの学習を行う際に、特徴量および判別機構の双方を共有するJoint Boostの手法のように、学習が収束しなくなるようなことがなくなるため、Joint Boostの手法と比較して、学習の収束性を向上させることができる。また、判別機構を共有していないため、マルチクラスの判別も精度よく行うことができる。さらに、木構造のような複雑な判別構造を構築する際、特徴量を共有しているクラスの弱判別器がそれぞれ異なるものとなるため、木の分岐設計が容易となり、その結果、本実施形態による判別器の生成は、木構造の判別器の作成に適したものとなる。
【００６５】
また、本出願人による実験の結果、本発明により作成された判別器はJoint Boostの手法により作成された判別器と比較して、学習の安定性および柔軟性が高いことが分かった。また、作成された判別器の精度および検出速度も、本発明の判別器の方が高いことが分かった。
【００６６】
なお、上記実施形態においては、判別機構としてヒストグラム型判別関数を用いているが、判別機構として決定木を用いることも可能である。以下、判別機構を決定木とした場合の弱判別器の決定について説明する。ここで、判別機構として決定木を用いた場合においても、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuを決定することには変わりはない。このため、判別器を決定木とした場合においても、説明のために、式（７）における、特徴量を共有するある１つのクラスＣｓｊについての損失誤差ＪCsjshareを最小とするための演算について説明する。なお、以下の説明においては、決定木を下記の式（１５）に示すように定義するものとする。式（１５）におけるφtCsjは閾値であり、特徴量のフィルタに定義されているものである。またδ（）は、ｒi＞φtCsjの場合に１、それ以外の場合に０となるデルタ関数である。また、ａtCsjおよびｂtCsjはパラメータである。このように決定木を定義することにより、決定木に対する入力と出力との関係は図１６に示すものとなる。
【数１４】
2011181016.tif 000016
【００６７】
判別機構が決定木の実施形態において、特徴量を共有するクラスＣｓｊの損失誤差ＪCsjshareは、下記の式（１６）となる。
【数１５】
2011181016.tif 000017
【００６８】
損失誤差ＪCsjshareを最小とするためには、式（１６）を最小となるようにすればよい。式（１６）を最小とするためには、式（１６）をパラメータａtCsjおよびｂtCsjのそれぞれにより偏微分した値が０となるように、ａtCsj＋ｂtCsjおよびｂtCsjの値を決定すればよい。ａtCsj＋ｂtCsjの値は、式（１６）をａtCsjにより偏微分することにより、下記の式（１７）に示すように決定することができる。なお、式（１７）におけるΣの下のｒi＞φtCsjは、ｒi＞φtCsjの時における重みｗiCsjの総和、および重みｗiCsjとラベルｚiCsjの乗算値の総和を算出することを意味する。したがって、式（１７）は式（１８）と同義である。
【数１６】
2011181016.tif 000018
【００６９】
一方、ｂtCsjの値は、式（１６）をｂtCsjにより偏微分した値が０となるように、下記の式（２０）に示すように決定することができる。
【数１７】
2011181016.tif 000019
【００７０】
なお、判別機構を決定木とした場合における特徴量を共有しないクラスについては、判別機構をヒストグラムとした場合と同様に、決定木が出力する値を定数ρCsjとし、損失誤差ＪCsjunshareを最小とする定数ρCsjを決定すればよい。この場合、定数ρCsjは上記式（１４）と同様に決定することができる。
【００７１】
このように、判別機構を決定木とした場合においても、本実施形態は、特徴量のみを共有するマルチクラス学習を行うものであるため、特徴量および判別機構の双方を共有するJoint Boostの手法のように、学習が収束しなくなるようなことがなくなり、その結果、Joint Boostの手法と比較して、学習の収束性を向上させることができる。また、判別機構を共有していないため、マルチクラスの判別も精度よく行うことができる。
【００７２】
以上、本発明の実施形態に係る装置１について説明したが、コンピュータを、上記の学習データ入力部１０、特徴量プール２０、初期化部３０および学習部４０に対応する手段として機能させ、図８に示すような処理を行わせるプログラムも、本発明の実施形態の１つである。また、そのようなプログラムを記録したコンピュータ読取り可能な記録媒体も、本発明の実施形態の１つである。
【符号の説明】
【００７３】
１    判別器生成装置
１０  学習データ入力部
２０  特徴量プール
３０  初期化部
４０  学習部
【図１】
2011181016.tif 000020
【図２】
2011181016.tif 000021
【図３】
2011181016.tif 000022
【図４】
2011181016.tif 000023
【図５】
2011181016.tif 000024
【図６】
2011181016.tif 000025
【図７】
2011181016.tif 000026
【図８】
2011181016.tif 000027
【図９】
2011181016.tif 000028
【図１０】
2011181016.tif 000029
【図１１】
2011181016.tif 000030
【図１２】
2011181016.tif 000031
【図１３】
2011181016.tif 000032
【図１４】
2011181016.tif 000033
【図１５Ａ】
2011181016.tif 000034
【図１５Ｂ】
2011181016.tif 000035
【図１６】
2011181016.tif 000036