(57)【要約】【課題】簡易に過学習を検出し、効率的に学習を行うことを目的とする。【解決手段】記憶装置に保持されている学習データに基づいて、弱判別器について順次、学習を実行する学習手段と、学習の際に算出する弱判別器に対する評価値の推移に基づいて、過学習か否かを判定する判定手段と、過学習であると判定された場合、新たな学習データを追加し、弱判別器についての学習を継続させる制御手段とを有することによって課題を解決する。【選択図】図１１
2010257140.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に保持されている学習データに基づいて、弱判別器について順次、学習を実行する学習手段と、
前記学習の際に算出する弱判別器に対する評価値の推移に基づいて、過学習か否かを判定する判定手段と、
前記判定手段により過学習であると判定された場合、新たな学習データを追加し、前記学習手段に弱判別器についての学習を継続させる制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記評価値は、信頼度であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記評価値は、重み付き誤り率であることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記評価値は、前記弱判別器を構成する判別フィルタの判別結果に関する累積スコアの平均である平均累積スコアであることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記評価値は、前記弱判別器の打ち切り閾値であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記判定手段は、前記過学習であると判定した場合、検定用データを用いて弱判別器の性能を検定し、検定結果に基づいて学習データを追加するか否かを判定し、学習データを追加すると判定した場合、前記制御手段は、新たな学習データを追加し、前記学習手段に弱判別器についての学習を継続させることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記制御手段は、前記過学習であると判定された場合、過学習であると判定した弱判別器を含む、予め定められた数の弱判別器を廃棄し、新たに追加した学習データを含む学習データに基づいて、前記学習手段に廃棄した弱判別器に遡って学習を実行させることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
情報処理装置が行う情報処理方法であって、
記憶装置に保持されている学習データに基づいて、弱判別器について順次、学習を実行する学習ステップと、
前記学習の際に算出する弱判別器に対する評価値の推移に基づいて、過学習か否かを判定する判定ステップと、
前記判定ステップにおいて過学習であると判定された場合、新たな学習データを追加し、弱判別器についての学習を実行する追加学習ステップと、
を有することを特徴とする情報処理方法。
【請求項９】
前記評価値は、信頼度であることを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記評価値は、信頼度であることを特徴とする請求項８に記載の情報処理方法。
【請求項１１】
前記評価値は、重み付き誤り率であることを特徴とする請求項８に記載の情報処理方法。
【請求項１２】
前記評価値は、前記弱判別器を構成する判別フィルタの判別結果に関する累積スコアの平均である平均累積スコアであることを特徴とする請求項８に記載の情報処理方法。
【請求項１３】
前記評価値は、前記弱判別器の打ち切り閾値であることを特徴とする請求項８に記載の情報処理方法。
【請求項１４】
前記判定ステップでは、前記過学習であると判定した場合、検定用データを用いて弱判別器の性能を検定し、検定結果に基づいて学習データを追加するか否かを判定し、前記追加学習ステップでは、学習データを追加すると判定した場合、新たな学習データを追加し、弱判別器についての学習を実行することを特徴とする請求項８乃至１３の何れか１項に記載の情報処理方法。
【請求項１５】
前記追加学習ステップでは、前記過学習であると判定した場合、過学習であると判定した弱判別器を含む、予め定められた数の弱判別器を廃棄し、新たに追加した学習データを含む学習データに基づいて、廃棄した弱判別器に遡って学習を実行することを特徴とする請求項８乃至１４の何れか１項に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、画像データ中の特定オブジェクトを検出・識別する様々な手法が提案され実用に供されている。
その中でも、非特許文献１に開示されている手法はその高速性から注目を集めている。非特許文献１の手法は、ブースティング学習アルゴリズムにより生成する複数の弱判別器からなる強判別器をカスケードに接続し、強判別器毎に打ち切り判定（検出対象位置に対する処理の強制終了）を行いながら処理を進める手法である。図１は、非特許文献１に開示されている方式の構成概念を示す図である。３１〜３ｍは学習によって生成する判別器（Ｔｒｕｅ：検出対象オブジェクト有り、Ｆａｌｓｅ：検出対象オブジェクト無し）であり、処理負荷の低い複数の単純な判別フィルタにより構成される。それぞれの判別フィルタは判別能力がそれほど高く無いことから、弱判別器と呼ばれる。また、複数の弱判別器の結果を後述する信頼度値に基づいて統合した判別器（３１〜３ｍ）は強判別器と呼ばれる。以下説明のため、ブースティング学習アルゴリズムにより生成した複数の弱判別器からなる強判別器をブースティング判別器という。図２は、ブースティング判別器３１〜３ｍの内部構成を示す図である。４１１〜４１ｎは、弱判別器、４２０は、弱判別器の判定結果を統合して判定する閾値処理器である。
【０００３】
非特許文献１では矩形フィルタと呼ばれる極めて単純な判別フィルタで弱判別器４１１〜４１ｎを構成する。図３は、矩形フィルタの例を示す図である。５１ａ〜５１ｃは、検出対象となる画像ブロックであり、画像全体から切り出した所定サイズ（検出対象のオブジェクトを含む大きさ）の部分領域画像である。図４において６１は、検出対象の画像データ全体を示し、６２は、５１ａ〜５１ｃに対応する部分領域画像を示す。以下、部分領域画像を検出ウインドウという。弱判別器は、検出ウインドウを所定のステップサイズで走査し、検出ウインドウ単位に識別を行うことで画像中の特定オブジェクトの存在有無とその位置とを決定する。５２ａ〜５２ｃは、矩形フィルタの例である。弱判別器は、白領域と黒領域で示すそれぞれの領域の画素値総和の差分を検出ウインドウ内の局所領域特徴としてオブジェクトの存在を判定する。
【０００４】
図２及び図３に示す様に、ブースティング判別器は特性の異なる弱判別器を多数使用することで最終的に判別性能の高い識別機能（強判別）を実現する。
特許文献２ではこのようなブースティング判別器を効率的に学習するため手法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−３２９０３１号公報
【特許文献２】特開２００５−２８４３４８号公報
【非特許文献】
【０００６】
【非特許文献１】Ｖｉｏｌａ，Ｐ．；Ｊｏｎｅｓ，Ｍ．"Ｒａｐｉｄ  ｏｂｊｅｃｔ  ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  ｂｏｏｓｔｅｄ  ｃａｓｃａｄｅ  ｏｆ  ｓｉｍｐｌｅ  ｆｅａｔｕｒｅｓ"．  Ｐｒｏｃ．  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，  ２００１−１２，  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ．ｐ．５１１−５１８．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ブースティング判別器は数百から数千の弱判別器を学習により生成する必要があるため、学習に膨大な時間を要する。
特許文献２では、既に学習済みの判別器の出力に基づく判別基準値（後述する累積スコア値）に応じて、所定の条件を満たす学習データを学習データセットから順次削除する手法を提案している。特許文献２の手法では、過学習（汎化性能の劣化）を防止するために、予め十分に多数の学習データを用意し、更に弱判別器の学習毎に大量の検定データを使用して性能を評価する必要がある。また、特許文献２の手法では、評価の結果、過学習の状態であると判定した場合、手動で学習データの追加や入れ替えを行う必要があった。
【０００８】
本発明はこのような問題点に鑑みなされたもので、簡易に過学習を検出し、効率的に学習を行うことを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明は、記憶装置に保持されている学習データに基づいて、弱判別器について順次、学習を実行する学習手段と、前記学習の際に算出する弱判別器に対する評価値の推移に基づいて、過学習か否かを判定する判定手段と、前記判定手段により過学習であると判定された場合、新たな学習データを追加し、前記学習手段に弱判別器についての学習を継続させる制御手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、簡易に過学習を検出し、効率的に学習を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】非特許文献１に開示されている方式の構成概念を示す図である。
【図２】ブースティング判別器３１〜３ｍの内部構成を示す図である。
【図３】矩形フィルタの例を示す図である。
【図４】検出対象の画像データの一例を示す図である。
【図５】情報処理装置の構成の一例を示す図である。
【図６】判別処理部２０３の詳細を説明する図である。
【図７】パラメータメモリ９１０の内容の一例を説明するための図（その１）である。
【図８】矩形フィルタの一例を示す図である。
【図９】ＳＡＴデータから矩形領域を算出する一例を説明する図である。
【図１０】検出処理時の動作を説明する図である。
【図１１】複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その１）である。
【図１２】検出対象データのフィルタ出力ヒストグラム１１０２と非検出対象データのフィルタ出力ヒストグラム１１０１とを示す図である。
【図１３】弱判別器の段数（順に生成する弱判別器の番号）とその信頼度の推移との一例を説明する図である。
【図１４】過学習判定の様子を模式的に説明する図である。
【図１５】弱判別器の廃棄の例を説明する図である。
【図１６】複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その２）である。
【図１７】平均累積スコアの推移を模式的に示す図である。
【図１８】第３の実施形態における判別処理部２０３の構成を示す図である。
【図１９】検出処理時の動作を説明する図（その２）である。
【図２０】複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その３）である。
【図２１】閾値の決定法を説明するための累積ヒストグラムの例を模式的に説明する図である。
【図２２】パラメータメモリ９１０の内容の一例を説明するための図（その２）である。
【図２３】弱判別器の段数と対応する打ち切り閾値の推移の例を説明する図である。
【図２４】複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その４）である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。
【００１３】
＜実施形態１＞
図５は、情報処理装置の構成の一例を示す図である。情報処理装置は、画像データ中の特定のオブジェクト（画像パターン）を検出する機能を有し、更に、情報処理装置内で検出のための判別器を学習する機能を有する。
図５において２０１は画像入力部である。画像入力部２０１は、光学系、ＣＣＤ又はＣＭＯＳセンサー等の光電変換デバイス及びセンサーを制御するドライバー回路／ＡＤコンバーター／各種画像補正を司る信号処理回路／フレームバッファ等により構成される。なお、ここで、ＣＣＤとは、Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓの略である。また、ＣＯＭＳとは、Ｃｏｍｐｌｉｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒの略である。
【００１４】
２０２は、前処理部であり、検出処理を効果的に行うための各種前処理を実行する。より具体的に説明すると、前処理部２０２は、色変換処理／コントラスト補正処理／ＳＡＴ（Ｓａｍｍｅｄ  Ａｒｅａ  Ｔａｂｌｅ）データの生成等、各種画像データ変換をハードウェアで処理する。判別処理部２０３は、前処理部２０２の出力を参照して所定のオブジェクトを判別する機能を有する。判別処理部２０３は、学習によって生成したパラメータに基づいてブースティング判別処理を実行する。２０６は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）である。ＤＭＡＣ２０６は、画像バス２０４上の各処理部間及び画像バス２０４上のデバイスとＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）バス２０７上のＲＡＭ２１０／ＲＯＭ２０９との間のデータ転送等を司る。
【００１５】
２０５は、ブリッジであり、画像バス２０４とＣＰＵバス２０７との間のバスブリッジ機能を提供する。２０８は、ＣＰＵであり、実施形態に係る処理を実行すると共に本情報処理装置全体の動作を制御する。２０９は、ＲＯＭであり、ＣＰＵ２０８の動作を規定する命令（プログラム）を格納する。ＲＡＭ２１０は、ＣＰＵ２０８の動作に必要な作業メモリである。ＲＡＭ２１０は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）等の比較的容量の大きいメモリで構成する。ＣＰＵ２０８は、ブリッジ２０５を介して画像バス２０４上の各種処理部にアクセスすることができる。画像バス２０４とＣＰＵバス２０７とを分離することで、ハードウェアによる処理部２０１〜２０３とＣＰＵ２０８とは同時に動作することができる。２１１は、インターフェース部であり、例えば、操作者が情報処理装置の動作を指定する為の入出力インターフェースである。２１２は、記憶部であり、ハードディスクやフラッシュメモリ等の大容量データ記憶装置である。学習のためのデータセットは記憶部２１２に格納する。２１３は、通信部であり、処理部を介して学習のためのデータ群を外部の装置から記憶部２１２に転送することができる。
【００１６】
先ず始めに、本実施形態におけるオブジェクトの検出処理について説明する。
図６は、判別処理部２０３の詳細を説明する図である。９０１〜９０ｎ（ｎ：弱判別器の数）はそれぞれ１つの弱判別器とその周辺回路を示すブロックであり、物理的には１つの回路で構成する。即ち、９０１〜９０ｎは論理的な処理構成を示すものであり、実際には１つの処理ブロック９０１が弱判別演算単位で時分割に各弱判別器（９０１〜９０ｎ）の内容を処理する。もちろん、高速化を目的として、９０１〜９０ｎの全て或いは幾つかを物理的な回路として構成してもよい。
【００１７】
パラメータメモリ９１０は弱判別器を構成するためのパラメータ情報を格納するメモリである。図７は、パラメータメモリ９１０の内容の一例を説明するための図（その１）である。パラメータメモリの内容は事前に学習により生成されるものである。以下、弱判別器として非特許文献１に開示されている矩形フィルタを適用する場合について説明する。図７中「矩形数」は検出ウインドウ内の矩形の数を指定する情報であり、例えば、図８で示すフィルタの場合、矩形数が２となる。図８は、矩形フィルタの一例を示す図である。弱判別器は、検出ウインドウ８１内の２つの矩形領域８２、８３の総和の差分値を閾値処理する。「矩形座標」は８２、８３に示す矩形領域内の画像データの総和を算出するために必要な座標情報である。ここで、弱判別器は、矩形領域内の画像データの総和を、ＳＡＴデータを参照することで極めて高速に算出することが可能である。９５０は、ＳＡＴメモリであり、前処理部２０２が、算出したＳＡＴデータを格納する。情報処理装置は、１枚の画像データに対する検出処理の開始前に検出対象画像データからＳＡＴデータを作成し、矩形フィルタ処理においてＳＡＴデータを参照して処理する。ＳＡＴに関しては本実施形態の特徴に関連するものではないため詳細な説明は省略する。なお、ＳＡＴに関しては非特許文献１等に開示されている。
【００１８】
図９は、ＳＡＴデータから矩形領域を算出する一例を説明する図である。弱判別器は、入力データ領域７０１内の矩形領域７０２内データ総和を、ＳＡＴデータ領域内の４つの座標のＳＡＴデータ値Ｓ１〜Ｓ４を使用して、Ｓ４＋Ｓ１−（Ｓ２＋Ｓ３）により算出することができる。図７における「矩形座標」とは、ＳＡＴを利用して矩形領域の画像データ総和を算出するための座標値である。「矩形座標」の数は「矩形数」に応じて増減する。「フィルタ係数」は＋１又は−１である。「フィルタ閾値」は判別フィルタの一例である矩形フィルタの出力値（矩形フィルタ出力値）を閾値処理するための値である。「信頼度」は、対象とする弱判別器に対する信頼度（強判別器に対する弱判別器の寄与率）である。ブースティング判別は信頼度の符号付き総和をもって判別を行う。「識別閾値」はブースティング判別器の最終判定を行うための閾値である。
【００１９】
弱判別器の判定結果をｈj（ｘ）、「信頼度」をαj、「識別閾値」をＴghとした場合（ｘ：参照データ、ｊ：弱判別器番号）、最終判定処理部９６０は、式（１）に従って最終判定を行う。ここでｈｊ（ｘ）は検出対象オブジェクトと判断した場合は、１、非検出対象オブジェクトと判断した場合は、−１を出力する。
【数１】
2010257140.tif 000003
【００２０】
最終判定処理部９６０は、式（１）を満足する場合、検出ウインドウ内に検出対象オブジェクトが存在すると判断する。
弱判別器が図８に示す矩形フィルタの場合、８２の領域内データ総和をＳ１、８３の領域内データ総和をＳ２、矩形領域それぞれに対応する係数をフィルタ係数１、フィルタ係数２とすると、
【数２】
2010257140.tif 000004
の演算を実行する。ここで、フィルタ係数１を＋１、フィルタ係数２を−１とすることで２つの領域の差分値を算出する。弱判別器は式（２）を満足する場合は、１を出力し、満足しない場合は、−１を出力する。判別結果（判定結果）が式（１）のｈj（ｘ）に相当する。
【００２１】
式（２）は矩形数が２の場合の例であるが、一般的な矩形フィルタ構造の場合、次式で示す判定処理をもって弱判別器を構成する。
【数３】
2010257140.tif 000005
ここで、ｐ：矩形領域の数、Ｓi：矩形領域内の画素値総和、Ｃi：矩形領域に対する係数、ＷＴｈj：ｊ番目の弱判別器に対する判定閾値である。
矩形領域の形状や数、また、Ｃi及びＷＴｈj等は、学習時に決定されるパラメータである。
【００２２】
図６に示す弱判別器９２１〜９２ｎは、検出対象データに対して式（３）に示す所定の判定処理を実行し、対象領域が検出対象オブジェクトを含むか否かを判定する。なお、弱判別器９２１〜９２ｎは前記パラメータメモリに記された「矩形座標」や「フィルタ係数」等の情報に従って必要なＳＡＴデータをＳＡＴメモリ９５０から読み出し、フィルタ演算を行う。
９３１〜９３ｎは乗算器であり、弱判別器９２１〜９２ｎの出力（±１）にそれぞれパラメータメモリに格納する信頼度αjを乗じる。９４１〜９４０ｎは加算器（累積加算器）であり、信頼度を乗じた判別器出力値を累積加算する（式（１）の左辺値を算出）。９６０は最終判定処理部であり、累積加算結果を「識別閾値」で閾値処理する。以上の処理により、式（１）に示すブースティング判定処理を実行する。最終的に式（１）を満足する場合、最終判定処理部９６０は、検出ウインドウ内に検出対象オブジェクトが存在すると判定する。
９８０は制御部であり、パラメータメモリの内容を参照してアドレスカウンタ９７０を制御し、更に判別処理部２０３全体のシーケンスを制御する。
【００２３】
図１０は、検出処理時の動作を説明する図（その１）である。図１０では、ＣＰＵ２０８の動作と判別処理部２０３との動作を１つのフローチャートに記述している。
まず、検出処理の開始に先立ちＣＰＵ２０８は、ステップＳ１００１で各種初期化処理を実行する。各処理部はＣＰＵ２０８の初期化指示に従って内部のレジスタ・メモリ等を初期化する。
検出処理のための各種設定を終了するとＣＰＵ２０８は、ステップＳ１００２で画像入力部２０１、ステップ１００３で前処理部２０２を起動する。画像入力部２０１は撮像装置から１フレーム分の画像データを取得し、図示しない内部バッファに格納する。格納を終了するとＣＰＵ２０８に対して画像取得終了割り込みを発生する。ＣＰＵ２０８は、割り込みを検知すると、ＤＭＡＣ２０６を起動して取得した画像データを前処理部２０２の内部メモリ（図示しない）に転送する。前処理部２０２は、画像データの転送が終了すると、前処理を開始する。前処理部２０２では予め指定するコントラスト補正パラメータ等に従って画像データのコントラストを補正する（ステップＳ１００３）。前処理部２０２は、補正処理を終了するとＳＡＴデータの生成を開始する（ステップＳ１００４）。生成したＳＡＴデータは判別処理部２０３のＳＡＴメモリ９５０に格納される。ＳＡＴデータのＳＡＴメモリ９５０への転送を終了すると実際の判別処理が開始される。
【００２４】
以下、ステップＳ１００５〜Ｓ１０１２は、判別処理部２０３のハードウェア処理に関する動作を説明するフローである。
先ずステップＳ１００５で処理ブロックを決定する。処理ブロックは図４の６２に示す検出ウインドウであり、ウインドウを１画素或いは１ライン単位で走査させながら検出を行うことで全画像中の検出対象オブジェクトを抽出する。
処理ブロックを決定すると、順次、弱判別器演算処理を開始する。先ず、パラメータメモリを参照して、第１番目の弱判別器を構成するためのデータを読み出す（ステップＳ１００６）。制御部９８０はアドレスカウンタ９７０を制御することで弱判別器に対応するパラメータメモリの内容を順次読み出す。パラメータメモリの読み出しを完了すると、ステップＳ１００７で読み出した座標情報に従って、所定のＳＡＴデータを読み出す。次にステップＳ１００８で所定の矩形フィルタ演算処理を実行する。ここでの演算内容は式（３）の左辺値演算に相当する積和演算である。ステップＳ１００９ではフィルタ演算処理ステップ（Ｓ１００８）の結果と閾値とを比較し、その結果に基づいて累積スコアを算出する。より具体的に説明すると、式（３）に基づく閾値処理結果である弱判別器９２１〜９２ｎの出力値（対象物であると判定した場合＋１、非対象物であると判定した場合―１を出力）に信頼度１〜信頼度ｎを乗じた値を加算器９４１〜９４ｎで累積する。即ち累積スコアとは弱判別器の判定結果に基づく該弱判別器信頼度の累積値である。以上の処理を全ての弱判別器の数だけ繰り返す（ステップＳ１０１０）。ステップＳ１００９での処理は式（１）の左辺値を順次算出していることに相当する。
【００２５】
ステップＳ１０１１では、上記累積スコアと識別閾値とを比較する。識別閾値もパラメータメモリに格納されている。ステップＳ１０１１で、処理対象ブロックに検出対象オブジェクトが存在するか否かを閾値判定し、その結果を図示しないメモリに記録する。ステップＳ１０１１は式（１）の判定処理に相当する。
以上の処理（ステップＳ１００５〜ステップＳ１０１２）を繰り返すことで検出対象オブジェクトの存在有無とその位置を判定する。
判別処理部２０３は、１フレームの処理が終了するとＣＰＵ２０８の割り込み信号を有効化する。ＣＰＵ２０８は、割り込み信号に反応して、判別処理部２０３の検出結果をＲＡＭに２１０に転送する（ステップＳ１０１３）。未処理のフレームがあれば、ステップＳ１００２へ戻り（ステップＳ１０１４）、以上の処理を次のフレーム画像に対して繰り返し実行する。
このように、パラメータメモリ９１０に格納する弱判別器の処理内容指定情報に従って、所望のブースティング判別処理を実行し、検出対象となるオブジェクトを検出する。
【００２６】
次に、情報処理装置の学習処理に関して説明する。
図１１は、複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その１）である。以下の処理はＣＰＵ２０８の動作を示す。
学習に先立ち、記憶部２１２には学習に必要なデータ群が格納されているものとする。例えば、画像中から特定の物体を検出する場合、検出対象を含む複数の画像データと検出対象を含まない画像データとを複数用意し、それぞれ検出対象データ・非検出対象データとしてラベル付けしておく。
以下、Ａｄａｂｏｏｓｔアルゴリズムに従って弱判別器を学習するものとする。基本的な学習方法は非特許文献１に記載の手法と同一である。
まず、ステップＳ１０１でＣＰＵ２０８は、記憶部２１２に保持する学習データから学習に使用するデータを選択する。ここでは、検出対象画像と非検出対象画像を所定の比率でランダムに選択する。
【００２７】
ステップＳ１０２ではＣＰＵ２０８は、各学習データに対する重み係数を初期化する。重み係数とは学習データの学習処理に対する寄与率に相当する。学習データの総数がｍ個の場合、ＣＰＵ２０８は、全ての重み係数ｗt,i（ｔ：生成する弱判別器の番号、ｉ：学習データの番号）を以下の式（４）で初期化する。
【数４】
2010257140.tif 000006
ここでは、全ての学習データに対して共通の重みを与えることになる。
【００２８】
次に、ステップＳ１０３でＣＰＵ２０８は、式（５）に従って重み係数を正規化する。
【数５】
2010257140.tif 000007
以降の処理で重み係数が変更された場合、ＣＰＵ２０８は、このステップの処理で重み係数の総和が１になる様に正規化する。
【００２９】
次に、ステップＳ１０３〜Ｓ１１０でＣＰＵ２０８は、１つの弱判別器を学習する。まず、ステップＳ１０４でＣＰＵ２０８は、矩形フィルタ群の中から１つの矩形フィルタを選択する。矩形フィルタ群は予め定める形状の基本矩形フィルタに対してその大きさや検出ウインドウ内の位置に応じた変形を有する複数の矩形フィルタ候補である。例えば、図８に示す隣接領域差分フィルタの場合であってもその矩形領域の大きさや、検出ウインドウ内の位置に応じて複数の変形が考えられる。矩形フィルタ群は予め定める基本矩形フィルタを基準にしてその変形も含めた全ての組み合わせを用意しておく。このステップの処理では用意した矩形フィルタ候補を順に選択する。
【００３０】
次に、ステップＳ１０５でＣＰＵ２０８は、選択した矩形フィルタを用いて全ての学習データに対して矩形フィルタの判別性能評価を行う。まず、ＣＰＵ２０８は、全ての学習データに対してそのフィルタ出力値を算出し、検出対象と非検出対象を分離する閾値を決定する。ＣＰＵ２０８は、フィルタ出力値の算出は判別処理部２０３を利用してハードウェアで処理する。ＣＰＵ２０８は、閾値の決定を矩形フィルタ出力値のヒストグラムを利用して行う。図１２は、検出対象データのフィルタ出力ヒストグラム１１０２と非検出対象データのフィルタ出力ヒストグラム１１０１とを示す図である。ＣＰＵ２０８は、ヒストグラムを使用して検出対象と非検出対象とをよく分離する閾値Ｔｈを決定する。更に、ステップＳ１０５でＣＰＵ２０８は、決定した閾値Ｔhを用いて全ての学習データに対する検出誤り率を算出する。式（６）は全ての学習データに対する重み付き誤り率である。
【数６】
2010257140.tif 000008
ここで、ｊはフィルタ番号である。ｉは学習データ番号である。ｔは弱判別器番号である。
【００３１】
ｈj（ｘi）は選択した矩形フィルタによる判定出力であり、ＣＰＵ２０８は、前記閾値Ｔhを使用して入力対象データｘiが検出対象である場合は１を出力し、検出対象を含まない場合は０を出力する。ｙiは正解ラベルであり入力画像データが検出対象であるか否かによってそれぞれ１又は０が割り当てられている。矩形フィルタ評価ステップ（Ｓ１０５）ではＣＰＵ２０８は、式（６）の重みつき誤り率を算出する。ＣＰＵ２０８は、以上の処理（ステップＳ１０４、Ｓ１０５）を全ての矩形フィルタ候補に対して実行する。
【００３２】
矩形フィルタ候補に対する全ての重みつき誤り率Ｅjの算出が終了すると（ステップＳ１０６）、ＣＰＵ２０８は、最も誤り率Ｅjの小さい矩形フィルタ（即ち最も判別性能が高い矩形フィルタ）を弱判別器として選択する（ステップＳ１０７）。
次に、ＣＰＵ２０８は、選択した矩形フィルタのＥjから式（７）により弱判別器に対する信頼度を算出する（ステップＳ１０８）。
【数７】
2010257140.tif 000009
ここで、ｔは弱判別器段数である。
ＣＰＵ２０８は、算出した信頼度αtをステップＳ１０９でＲＡＭ２１０に記録する。
【００３３】
ステップＳ１１０ではＣＰＵ２０８は、学習データに対する重み係数を下記演算式（８）で更新する。
【数８】
2010257140.tif 000010
ここで、ｔは弱判別器段数、ｉは学習データ番号である。
但し、式（８）で更新する重み係数Ｗt,jは正しく検出できた学習データｉに付随する係数のみである。即ちＣＰＵ２０８は、正しく検出された学習データの重みが小さくなる様に更新する。つまり、ステップＳ１１０ではＣＰＵ２０８は、検出を誤った学習データに対する重みを相対的に大きくしていく。
ここまでの処理（ステップＳ１０３〜ステップＳ１１０）でＣＰＵ２０８は、１つの弱判別器を生成する。
【００３４】
次に、ステップＳ１１１でＣＰＵ２０８は、ＲＡＭ２１０に記録された各弱判別器に対する信頼度の推移に基づいて過学習の判定を行う。図１３は、弱判別器の段数（順に生成する弱判別器の番号）とその信頼度の推移との一例を説明する図である。横軸は順に生成する弱判別器の段数を示し、縦軸は弱判別器に対応する信頼度の値（信頼度値）を示す。ここでの推移とは順に生成する弱判別器の番号と番号に対応する弱判別器に付加される信頼度との関係を時系列データと見なした場合の様子を意味する。
【００３５】
図１３の場合、１２０１で示す付近の弱判別器で信頼度が急上昇している。ブースティング学習では学習データに対する重み係数を式（８）で更新していくことで苦手な学習データを検出する弱判別器を順次学習生成していく。従って学習初段を除いて信頼度は概ね一定（或いは緩やかな線形変化）の値を取る。しかしながら、生成されるブースティング判別器は弱判別器数の増加と共に判別性能が向上し、学習データの数が十分でない場合、重み付き誤り率Ｅｔが極端に小さな値になる場合がある。このような場合、データセットに対する過学習に陥っている可能性が高い。式（７）より、誤り率Ｅｔの急激な変化は信頼度αtの変化を引き起こす。本実施形態では、このような観点から、信頼度の推移を過学習の判定条件とする。より具体的に説明するとＣＰＵ２０８は、ステップＳ１０８で得られた信頼度とそれ以前に生成した弱判別器の信頼度から得られる予測値との差分量を判定し、差分量が予め定める閾値以上になった場合、過学習と判定する。
【００３６】
ステップＳ１１１１〜ステップＳ１１１３は信頼度推移判定処理（ステップＳ１１１）の詳細を示すステップである。ステップＳ１１１１ではＣＰＵ２０８は、ステップＳ１０９で記録された既に生成済みの弱判別器に対する信頼度を読み出す。ステップＳ１１１２ではＣＰＵ２０８は、読み出した複数の弱判別器の信頼度を基に弱判別器の信頼度を予測する。式（９）に単純な移動平均により信頼度の予測を行う場合の演算式を示す。
【数９】
2010257140.tif 000011
ここで、Ｐtは、信頼度の予測値である。ａは、移動平均を取る数である。
【００３７】
ステップＳ１１１２ではＣＰＵ２０８は、式（９）に示す演算で予測値Ｐｔを算出する。ステップＳ１１１３ではＣＰＵ２０８は、ここで得られたＰtと算出したｔ番目の弱判別器の信頼度αtとの差分値を算出する。即ちＣＰＵ２０８は、式（１０）の左辺値を算出する。
【数１０】
2010257140.tif 000012
【００３８】
ステップＳ１１２ではＣＰＵ２０８は、ステップＳ１１１３で算出した差分値と閾値とを比較して過学習か否かを判定する。即ちＣＰＵ２０８は、このステップで式（１０）により過学習か否かを判定する。
図１４は、過学習判定の様子を模式的に説明する図である。２１０１は内部パラメータである信頼度の推移を示す。２１０２はｔ番目の弱判別器生成時の信頼度予測値Ｐｔを示す。ＣＰＵ２０８は、予測値と実際の信頼度との差２１０３を閾値処理することで内部パラメータの推移の変化（変曲点）を検出する。
なお、ここでは、簡単のため式（９）で示す移動平均値を使用したが、他の様々な手法を適用してもよい。
【００３９】
ステップＳ１１２で過学習であると判断した場合、ＣＰＵ２０８は、ステップＳ１１３で学習に使用するデータを追加する。ここでは、ＣＰＵ２０８は、記憶部２１２に格納する学習データの中から学習に使用されていないデータをランダムに選択して学習に使用するデータとして登録する。ステップＳ１１４ではＣＰＵ２０８は、生成済みの弱判別器の中で、最後に生成した弱判別器からさかのぼって予め定める数の弱判別器を廃棄（又は論理的に生成した弱判別器を削除）する。これは、ステップＳ１１２で過学習と判定した時点で生成されている最新の強判別器は、既に過学習状態の強判別器を構成する可能性が高いためである。即ち、ＣＰＵ２０８は、学習データの追加後は、最後に生成した幾つかの弱判別器を廃棄し、弱判別器段数を遡って処理を再開する。
【００４０】
図１５は、弱判別器の廃棄の例を説明する図である。２２００１〜２２２００はＣＰＵ２０８が生成した弱判別器を示し、２２００１から順にＣＰＵ２０８が学習によって生成したものとする。２２２００で示す弱判別器の学習時に過学習を判定した場合、ＣＰＵ２０８は、２２１９７〜２２２００の弱判別器を廃棄して、２２１９７で示す弱判別器の学習から再開する。ステップＳ１１４では、ＣＰＵ２０８は、廃棄する弱判別器の数に応じて生成済み弱判別器数を管理するカウンタを減ずる。
次にＣＰＵ２０８は追加した学習データセットを用いてステップＳ１１４で残された弱判別器に対して順次検出処理を実行し、新たに生成する弱判別器の学習のための重み係数を再計算する（ステップＳ１１５）。即ち、ＣＰＵ２０８は、新たな学習データセットを用いて各弱判別器に対応する式（８）の演算のみを再計算する。以降、ＣＰＵ２０８は、ステップＳ１１５で再計算した重み係数を使用して、新たな弱判別器の追加学習処理を継続する。
【００４１】
ステップＳ１１６ではＣＰＵ２０８は、条件を満たすブースティング判別器が生成したか否かを判定し、条件を満たさない場合、ステップＳ１０３に戻って弱判別器の生成処理（学習処理）を継続する。ステップＳ１１６ではＣＰＵ２０８は、生成した弱判別器の数等の条件に従って処理の終了判定を行う。
以上、本実施形態によれば、弱判別器生成の際に算出する信頼度を基に過学習を判定し、学習データを自動的に追加することが可能になる。これにより、簡単な処理の追加で汎化性能の高い判別器を自動学習させることが可能になる。
【００４２】
＜実施形態２＞
実施形態１では式（７）に示す信頼度を評価値として、その推移で過学習を判定する場合について説明したが、本実施形態ではブースティング判別器の平均累積スコア値を評価値として、その推移に従って過学習を判定する場合について説明する。
本実施形態では、実施形態１との違いについてのみ説明する。図１６は、複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その２）である。ステップ１３０１〜ステップＳ１３０８は実施形態１におけるステップＳ１０１〜Ｓ１０８と同じであるため説明を省略する。但し、本実施形態では、ステップＳ１３１７で、ＣＰＵ２０８は、検出時と同様に、矩形フィルタ評価時（ステップＳ１３０５）のフィルタ判別結果を基に累積スコアを算出し、各学習データに対する累積スコア値の総和を記録する。ここで、累積スコアとは累積した加算器９４１〜９４ｎの出力であり、実施形態１で説明した様に、弱判別器９２１〜９２ｎの判定結果に信頼度１〜信頼度ｎを乗じた値の累積加算値である。平均累積スコアとは各学習データの検出時にステップＳ１３１７で算出する累積スコアを全学習データで平均した値である。式（１１）に平均累積スコア値
【数１１】
2010257140.tif 000013
の算出式を示す。
【数１２】
2010257140.tif 000014
ここで、ｔはフィルタ段数である。ｉは学習データ番号である。ｍは学習データ数である。
【００４３】
ステップＳ１３０９ではＣＰＵ２０８は、ステップＳ１３１７で記録した累積スコア総和値を使用して式（１１）の平均累積スコアを算出する。ステップＳ１３１０でＣＰＵ２０８は実施形態１のステップＳ１１０と同様に重み係数を更新する。
ステップＳ１３１１ではＣＰＵ２０８は、平均累積スコアの推移に基づいて過学習を判定する。図１７は、平均累積スコアの推移を模式的に示す図である。横軸は順に生成する弱判別器の番号、縦軸は弱判別器番号に対する平均累積スコアの値である。この場合、１４０１で示す付近で累積スコアの平均値が急上昇する。これは、累積スコアが信頼度を累積した値であるため、信頼度値の増加に応じて累積スコアも関連を持って変化していくことによりに生じる現象である。累積スコアは信頼度の累積加算値であることから、信頼度の増加をより高い尤度をもって判定することができる（信頼度の推移の変化が強調されるため）。
【００４４】
ステップＳ１３１１１〜ステップＳ１３１１３は平均累積スコア推移判定処理のステップ（Ｓ１３１１）の詳細を説明する動作フローである。ステップＳ１３１１１ではＣＰＵ２０８は、ステップＳ１３０９で算出し、記録した平均累積スコアを読み出す。ステップＳ１３１１２ではＣＰＵ２０８は、ステップＳ１３１１１で読み出した過去の平均累積スコアを用いで累積スコアを予測する。ここでも実施形態１と同様に単純な移動平均により予測を行う。
【数１３】
2010257140.tif 000015
ここで、Ｐtは平均累積スコアの予測値である。ａは移動平均を取る数である。
【００４５】
ステップＳ１３１１２ではＣＰＵ２０８は、式（１２）に示す演算で予測値Ｐtを算出する。ステップＳ１１１３では、ＣＰＵ２０８は、得られたＰtとＳtとの差分値を算出する。即ちＣＰＵ２０８は、（１３）式の左辺値を算出する。
【数１４】
2010257140.tif 000016
【００４６】
ステップＳ１３１２ではＣＰＵ２０８は、ステップＳ１３１１３で算出した差分値と予め定める閾値とを比較して過学習を判定する。即ちＣＰＵ２０８は、式（１３）により過学習を判定する。
以下、ステップＳ１３１３〜ステップＳ１３１６は実施形態１のステップＳ１１３〜ステップＳ１１６と同様であるため説明を省略する。
以上、本実施形態によれば、累積スコアの学習データに対する平均値の推移を判定することで過学習をより適切に判定することができる。
【００４７】
＜実施形態３＞
実施形態１では式（７）に示す信頼度を評価値として、その推移で過学習を判定する場合について説明したが、本実施形態では弱判別器の打ち切り閾値を評価値として、その推移に従って過学習を判定する場合について説明する。
本実施形態では、実施形態１との違いについてのみ説明する。図１８は、第３の実施形態における判別処理部２０３の構成を示す図である。実施形態１では、全ての弱判別器の累積スコアを最終判定処理部９６０で閾値処理することで検出対象が存在するか否かを判定していた。非特許文献１に開示の手法では、前述したように、このようなブースティング判別器をカスケードに接続しブースティング判別器単位で処理の打ち切りを判定することで高速化を実現していた。本実施形態では、図１８に示す様に、各弱判別器の累積スコア出力に対して打ち切りの有無を判定する打ち切り判定処理部１５９１〜１５９ｎ−１を設け、弱判別器単位で処理の打ち切りを判定する。なお、図１８において打ち切り判定処理部１５９１〜１５９ｎ−１以外の処理部ロックは図６の対応するブロックと同一であるため説明を省略する。また、図６と同様に、本実施形態の弱判別器１５０１〜１５０ｎも物理的には１つの弱判別器１５０１を時分割に使用して演算するものとする。図１９は、検出処理時の動作を説明する図（その２）である。
【００４８】
以下、図１８及び図１９を使用して、本実施形態に関するブースティング判別器の検出動作を説明する。ステップＳ１６０１〜ステップＳ１６０４は実施形態１におけるステップＳ１００１〜ステップＳ１００４と同一である。
以下、ステップＳ１６０５〜Ｓ１６１２は判別処理部２０３のハードウェア処理に関する動作を説明するフローである。
先ずステップＳ１６０５で処理ブロックを決定する。処理ブロックは図４の６２に示す検出ウインドウであり、ウインドウを１画素或いは１ライン単位で走査させながら検出を行うことで全画像中の検出対象オブジェクトを抽出する。
処理ブロックを決定すると、順次、弱判別器演算処理を開始する。先ず、パラメータメモリを参照して、第１番目の弱判別器を構成するためのデータを読み出す（ステップＳ１６０６）。制御部９８０はアドレスカウンタ９７０を制御することで弱判別器に対応するパラメータメモリの内容を順次読み出す。パラメータメモリの読み出しを完了すると、ステップＳ１６０６で読み出した座標情報に従って、所定のＳＡＴデータを読み出す（ステップＳ１６０７）。次にステップＳ１６０８で所定の矩形フィルタ演算処理を実行する。ここでの演算内容は式（３）の左辺値演算に相当する積和演算である。ステップＳ１６０９ではフィルタ演算処理ステップ（Ｓ１６０８）の結果と閾値とを比較し、その結果に基づいて累積スコアを算出する。より具体的に説明すると、式（３）に基づく閾値処理結果である弱判別器９２１〜９２ｎの出力値（対象物であると判定した場合は＋１、非対象物であると判定した場合は−１を出力）に信頼度１〜信頼度ｎを乗じた値を加算器９４１〜９４ｎで累積する。
【００４９】
次にステップＳ１６１０で累積スコア値と学習によって定める打ち切り閾値とを比較する（打ち切り判定処理部１５９１〜１５９ｎ−１）。ここでの打ち切り閾値は学習時に決定する値であり、パラメータメモリに記録されているものである。打ち切り閾値の詳細は後述する。累積スコア値が閾値以下の場合、処理ブロックは検出対象オブジェクトでは無いと判断して次のブロックの処理を継続する。累積スコア値が打ち切り閾値を超える場合、所定の数の弱判別器演算を繰り返す（ステップＳ１６０６〜ステップＳ１６１１）。弱判別器による打ち切りが発生しなかった場合、ステップＳ１６１２で、累積スコアを識別閾値と比較する。ここで、処理対象ブロックに検出対象オブジェクトが存在するか否かを最終閾値判定し、その結果を図示しないメモリに記録する。弱判別器による打ち切りが発生した場合、ステップＳ１６１２では、最終識別判定は実施せず、検出対象オブジェクトが存在しなかった旨の情報を記録する。
以上の処理を、検出ウインドウを走査しながら繰り返すことで検出対象オブジェクトの存在有無とその位置を判定する（ステップＳ１６０５〜ステップＳ１６１３）。
【００５０】
判別処理部２０３は、１フレームの処理が終了するとＣＰＵ２０８の割り込み信号を有効化する。ＣＰＵ２０８は、割り込み信号に反応して、判別処理部２０３の検出結果をＲＡＭに２１０に転送する（ステップＳ１６１４）。以上の処理を各フレームに対して順次繰り返し実行する。
このように、本実施形態のブースティング判別器では、弱判別器単位で検出処理の打ち切りを行うことでより高速な検出が可能になる。
次に、本実施形態に関するブースティング判別器の学習処理について説明する。図２０は、複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その３）である。ここでも、実施形態１との違いについてのみ説明する。ステップＳ１７０１〜ステップＳ１７０８は実施形態１におけるステップＳ１０１〜ステップＳ１０８と同一である。
【００５１】
ステップＳ１７０９ではＣＰＵ２０８は、弱判別器毎に打ち切りを判定するための閾値を決定する。ここでは矩形フィルタの判定閾値を決定した手法と同様に、ＣＰＵ２０８は、検出対象データに対する累積スコアのヒストグラムと、非検出対象データに対する累積スコアのヒストグラムとから閾値を決定する。
図２１は、閾値の決定法を説明するための累積ヒストグラムの例を模式的に説明する図である。１８０１は非検出対象データに対する累積スコアのヒストグラムである。１８０２は検出対象データに対する累積スコアのヒストグラムである。ＣＰＵ２０８は、打ち切り閾値を、検出対象データの誤打ち切り割合（誤って打ち切る検出対象データの打ち切り数÷検出対象データ数）が所定以下になる様に閾値を決定する。ＣＰＵ２０８は、例えば、ヒストグラムの積分値等を利用して簡単に決定することができる。ステップＳ１７０９でＣＰＵ２０８は、決定した打ち切り閾値を弱判別器番号に対応して記録する。
【００５２】
図２２は、パラメータメモリ９１０の内容の一例を説明するための図（その２）である。実施形態１におけるパラメータメモリ（図７）に対して、図２２のパラメータメモリでは、弱判別器１〜ｎ毎に「打ち切り閾値１〜ｎ」が追加されている。ＣＰＵ２０８は、検出時は前述したように、パラメータメモリ上の打ち切り閾値を使用して処理の打ち切りを判定する。
ステップＳ１７１０はステップＳ１１０と同一である。
ステップＳ１７１１ではＣＰＵ２０８は、打ち切り閾値の推移から過学習を判定する。
図２３は、弱判別器の段数と対応する打ち切り閾値の推移の例を説明する図である。横軸は順に生成する弱判別器の番号を示し、縦軸は弱判別器に対応する打ち切り閾値を示す。図２３の場合、１９０１で示す付近で打ち切り閾値が急上昇している。打ち切り閾値は、結果的に、実施形態２で説明した平均累積スコアに関連する値となるため（検出対象オブジェクトの打ち切り率を一定とした場合、平均累積スコアの上昇と共に打ち切り閾値も上昇する）、信頼度の急変に伴う平均累積スコアの急変と同様に変化する。本実施形態ではこの様な打ち切り閾値の推移を過学習の判定条件とする。より具体的に説明すると、ＣＰＵ２０８は、ステップＳ１７０９で決定した打ち切り閾値とそれ以前に生成した弱判別器の打ち切り閾値から得られる予測値とのずれを判定し、ずれが予め定める閾値以上になった場合、過学習と判定する。
【００５３】
ステップＳ１７１１１〜ステップＳ１７１１３は打ち切り閾値推移判定処理のステップＳ１７１１の内容を示すステップである。ステップＳ１７１１１ではＣＰＵ２０８は、ステップＳ１７０９で記録した既に生成済みの弱判別器に対する打ち切り閾値を読み出す。ステップＳ１７１１２ではＣＰＵ２０８は、読み出した複数の弱判別器の打ち切り閾値Ｔｈｔから生成した弱判別器の打ち切り閾値を予測する。式（１４）に単純な移動平均により打ち切り閾値の予測を行う場合の演算式を示す。
【数１５】
2010257140.tif 000017
Ｐtは打ち切り閾値の予測値である。ａは移動平均を取る数である。
【００５４】
ステップＳ１７１１２ではＣＰＵ２０８は、式（１４）に示す演算で予測値Ｐtを算出する。ステップＳ１７１１３では、ＣＰＵ２０８は、ここで得られたＰtとＴhtとの差分値を算出する。即ちＣＰＵ２０８は、式（１５）の左辺値を算出する。
【数１６】
2010257140.tif 000018
【００５５】
ステップＳ１７１２ではＣＰＵ２０８は、ステップＳ１７１１３で算出した差分値と閾値とを比較して過学習を判定する。即ちＣＰＵ２０８は、式（１５）により過学習を判定する。
以下ステップＳ１７１３〜ステップＳ１７１６は実施形態１のステップＳ１１３〜ステップＳ１１６と同一である。
以上、本実施形態によれば、弱判別器毎に決定する打ち切り閾値を利用して過学習を判定することが可能になる。この場合、平均累積スコアを基に判定する方式に比べて少ない処理機能の追加で同様の性能の判定を実現できる。
【００５６】
＜実施形態４＞
実施形態１では式（７）に示す信頼度を評価値として、その推移で過学習を判定する場合について説明したが、本実施形態では過学習の判定に更に検定データを用いた判定も組み合わせた場合について説明する。
本実施形態では、実施形態１との違いについてのみ説明する。図２４は、複数の弱判別器で構成する１つのブースティング判別器を学習する場合の例を説明するフローチャート（その４）である。ステップＳ２００１〜Ｓ２０１２及びステップＳ２０１１１〜Ｓ２０１１３は実施形態１の対応する処理ステップＳ１０１〜Ｓ１１２及びＳ１１１１〜Ｓ１１１３と同一であるため説明を省略する。
【００５７】
ステップＳ２０１２で過学習と判定した場合、ＣＰＵ２０８は、ステップＳ２０１７で性能検定処理を実行する。このステップでは、ＣＰＵ２０８は、記憶部２１２に保持された学習に未使用の画像データを使用して検出性能の検定を行う。より具体的に説明すると、ＣＰＵ２０８は、検定用データを使用した検出対象オブジェクトの検出率及び非検出対象オブジェクトの誤検出率等から弱判別器の性能を判断する。ステップＳ２０１８ではＣＰＵ２０８は、ステップ２０１７で評価した検出性能（検定結果）を基準にして追加学習データの有無を判定する。ここでの判定は様々な手法が適用可能である。例えば、ＣＰＵ２０８は、識別閾値を調整して検出率を一定にした場合の誤検出率等から判定を行う。より具体的に説明すると、ＣＰＵ２０８は、直前に生成した弱判別器迄の全ての弱判別器群を使用して算出した検出性能と直前に生成した弱判別器を含む幾つかの弱判別器を除く弱判別器群を用いて算出した検出性能とを比較して判定を行う。即ち、ＣＰＵ２０８は、弱判別器を追加したにもかかわらず性能の向上が見られない或いは性能が劣化する場合、データを追加すると判定する。データを追加すると判定した場合、ＣＰＵ２０８は、ステップＳ２０１３〜ステップＳ２０１５で学習データを追加する。ステップＳ２０１３〜ステップＳ２０１６は実施形態１のステップＳ１１３〜ステップＳ１１６と同一であるため説明を主略する。
【００５８】
以上本実施形態によれば、学習時に得られる内部パラメータである信頼度を用いて過学習の判定を行い、過学習の可能性が予想された場合にのみ検定処理を行うため、所定のタイミングで毎回検定処理を行う場合に比べて学習時間を短縮させることができる。
【００５９】
＜その他の実施形態＞
上述した実施形態は画像データに対して処理する場合について説明したがこれに限るわけではない。音声データ等の１次元データから特定のパターンを抽出する場合等にも適用することができる。
また、上述した実施形態では式（７）に示す信頼度αtを評価値として、その推移に基づいて、過学習の判定を行う場合について説明したが、αtがＥｔの関数であることからαtの代わりに誤り率Ｅｔを評価値として使用して過学習の判定を行ってもよい。
また、上述した実施形態ではブースティングアルゴリズムによる識別器を例に説明を行ったが、ブースティング判別器における信頼度と同様なパラメータを利用する他のアンサンブル学習アルゴリズムに適用してもよい。
【００６０】
また、上述した実施形態では弱判別器として矩形フィルタを用いた方式に適用した場合について説明したが、これに限るわけではなく、他の様々な弱判別器を用いた検出器に適用可能である。
また、上述した実施形態では内部パラメータ値の弱判別器段数に対する移動平均を使用して過学習の判定を行ったが、これに限るわけではなく従来提案されている様々な変曲点の算出手法を適用することができる。例えば、微分処理を利用する手法やその他の様々な予測手法を適用することもできる。また、高次の予測や非線形の予測手法を適用してもよい。更に、内部パラメータの推移から過学習パターンを検出する判別器を学習によって生成する等の方法でもよい。例えば複数の内部パラメータ値を入力ベクトルとしてＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）等により判別器を学習する方法を適用することもできる。この場合、過学習となった特定のパターンを学習データとして予め判別器を学習しておく。
【００６１】
また、上述した実施形態では信頼度、累積スコア、打ち切り閾値等の推移に基づいて過学習の判定を行ったが、このような時系列データを利用した判定ではなくその絶対値で判定を行ってもよい。この場合、判定精度は低下するが、より簡単な構成で過学習の判定を行うことができる。
また、上述した実施形態では選択した学習データセット中の全ての学習データを使用して学習を行う場合について説明した。しかしながら、特許文献１に開示されている様に、学習データそれぞれに付与される重み係数に従って学習データをサンプリングして学習するようにしてもよい。
【００６２】
また、上述した実施形態では判別処理部２０３をハードウェアにより実現する場合について説明したが、全てソフトウェアにより実現してもよい。
また、上述した実施形態で説明した機能は、学習専用の装置や汎用コンピュータのソフトウェアとしても適用することができる。
また、上述した実施形態では、学習データを情報処理装置の記録部に全て格納して選択的に利用する場合について説明したが、例えばネットワークに接続する通信部２１３を介して追加データを他の装置から取得、又は他の装置から転送するようにしてもよい。また、実施形態４で説明したように検定データを使用して性能解析を行う場合、通信部２１３を介して検定データを他の装置から情報処理装置に追加するようにしてもよい。
【００６３】
また、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを、装置の中央演算処理手段（ＣＰＵやＭＰＵ）が記憶媒体から読み出し実行することによっても達成される。
また、読み出したプログラムコードの指示に基づき、オペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行うことで上述した実施形態の機能が実現される場合も含まれる。
本発明を前記記憶媒体に適用する場合、その記憶媒体（コンピュータ読み取り可能な記憶媒体）には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００６４】
以上、上述した各実施形態によれば、簡易に過学習を検出し、効率的に学習を行うことができる。
【００６５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
なお、上述した各実施形態は任意に組み合わせて実行するようにしてもよい。
【符号の説明】
【００６６】
２０１  画像入力部、２０２  前処理部、２０３  判別処理部
【図１】
2010257140.tif 000019
【図２】
2010257140.tif 000020
【図３】
2010257140.tif 000021
【図４】
2010257140.tif 000022
【図５】
2010257140.tif 000023
【図６】
2010257140.tif 000024
【図７】
2010257140.tif 000025
【図８】
2010257140.tif 000026
【図９】
2010257140.tif 000027
【図１０】
2010257140.tif 000028
【図１１】
2010257140.tif 000029
【図１２】
2010257140.tif 000030
【図１３】
2010257140.tif 000031
【図１４】
2010257140.tif 000032
【図１５】
2010257140.tif 000033
【図１６】
2010257140.tif 000034
【図１７】
2010257140.tif 000035
【図１８】
2010257140.tif 000036
【図１９】
2010257140.tif 000037
【図２０】
2010257140.tif 000038
【図２１】
2010257140.tif 000039
【図２２】
2010257140.tif 000040
【図２３】
2010257140.tif 000041
【図２４】
2010257140.tif 000042