(57)【要約】【課題】  学習データにおける外れ値の影響の少ない学習結果を少ない計算コストで得ること。【解決手段】  学習装置は、学習に使用する複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果と弱判別器の判別学習の結果の信頼性を示すパラメータとを取得する学習部と、複数のサンプル画像のそれぞれについて、被検出対象が含まれている確からしさを示す値を、判別学習の結果とパラメータとを用いて算出する算出部と、一のサンプル画像について確からしさを示す値が、予め設定された学習閾値に比べて小さい場合に、複数のサンプル画像から一のサンプル画像を削除する削除部と、一のサンプル画像が削除された後の複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果から、当該判別学習の結果の信頼性を示すパラメータを取得する再学習部と、を備える。【選択図】  図５
2013117861.tif 000002
【特許請求の範囲】
【請求項１】
学習に使用する複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果と前記弱判別器の判別学習の結果の信頼性を示すパラメータとを取得する学習手段と、
前記複数のサンプル画像のそれぞれについて、被検出対象が含まれている確からしさを示す値を、前記判別学習の結果と前記パラメータとを用いて算出する算出手段と、
一のサンプル画像について前記確からしさを示す値が、予め設定された学習閾値に比べて小さい場合に、前記複数のサンプル画像から前記一のサンプル画像を削除する削除手段と、
前記一のサンプル画像が削除された後の複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果から、当該判別学習の結果の信頼性を示すパラメータを取得する再学習手段と、
を備えることを特徴とする学習装置。
【請求項２】
前記再学習手段によって取得された前記パラメータを用いて算出される識別閾値を用いて、判別処理の対象となる画像に前記被検出対象が含まれているか否かを判別する判別手段を更に備えることを特徴とする請求項１に記載の学習装置。
【請求項３】
前記算出手段によって算出された前記確からしさを示す値の中で最小値となる値と前記識別閾値とを用いて前記学習閾値を算出し、設定する設定手段を更に備えることを特徴とする請求項２に記載の学習装置。
【請求項４】
前記算出手段は、前記複数のサンプル画像のそれぞれについて、前記被検出対象の背景画像が含まれている確からしさを示す値を、前記判別学習の結果と前記判別学習の結果の信頼性を示すパラメータとを用いて算出することを特徴とする請求項１乃至３のいずれか１項に記載の学習装置。
【請求項５】
前記設定手段は、前記被検出対象の背景画像が含まれている確からしさを示す値の中で最大値となる値と前記識別閾値とを用いて算出される値を、前記学習閾値とは異なる第２学習閾値として設定し、
前記削除手段は、前記背景画像が含まれている確からしさを示す値が前記第２学習閾値より大きい場合、前記複数のサンプル画像から前記背景画像が含まれている一のサンプル画像を削除することを特徴とする請求項３に記載の学習装置。
【請求項６】
前記判別手段によって算出される前記識別閾値は、前記学習閾値よりも大きい値であることを特徴とする請求項２に記載の学習装置。
【請求項７】
前記学習手段および再学習手段は、AdaBoostによる学習処理により、前記弱判別器の判別学習の結果の信頼性を示すパラメータを取得することを特徴とする請求項1乃至６のいずれか1項に記載の学習装置。
【請求項８】
前記学習手段および再学習手段は、SVM(Support Vector Machine）による学習処理により、前記弱判別器の判別学習の結果の信頼性を示すパラメータを取得することを特徴とする請求項1乃至６のいずれか１項に記載の学習装置。
【請求項９】
コンピュータを、請求項１乃至８のいずれか１項に記載の学習装置の各手段として機能させるためのプログラム。
【請求項１０】
学習装置における学習方法であって、
前記学習装置の学習手段が、学習に使用する複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果と前記弱判別器の判別学習の結果の信頼性を示すパラメータとを取得する学習工程と、
前記学習装置の算出手段が、前記複数のサンプル画像のそれぞれについて、被検出対象が含まれている確からしさを示す値を、前記判別学習の結果と前記パラメータとを用いて算出する算出工程と、
前記学習装置の削除手段が、一のサンプル画像について前記確からしさを示す値が、予め設定された学習閾値に比べて小さい場合に、前記複数のサンプル画像から前記一のサンプル画像を削除する削除工程と、
前記学習装置の再学習手段が、前記一のサンプル画像が削除された後の複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果から、当該判別学習の結果の信頼性を示すパラメータを取得する再学習工程と、
を有することを特徴とする学習方法。
【請求項１１】
前記学習装置の判別手段が、前記再学習工程で取得された前記パラメータを用いて算出される識別閾値を用いて、判別処理の対象となる画像に前記被検出対象が含まれているか否かを判別する判別工程を更に有することを特徴とする請求項１０に記載の学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法およびプログラムに関する。特に、学習データにおける外れ値の影響を削減した学習装置に関する。ここで「外れ値」とは学習によって正しく識別できない学習データのことを指し、回帰分析などで言う「外れ値」（データ分布の中心から離れた点）とは意味が異なる。
【背景技術】
【０００２】
入力されたデータを識別する手法には様々なものがあり、例えば、Support Vector Machine (SVM)と呼ばれる手法がある。当初は、学習のためのデータが完全に識別可能である場合にしか適用できないものであったが、やがてソフトマージンSVMと言って学習データが完全識別不可能な場合にも適用できる手法が開発された(非特許文献１)。SVMは扱いやすく精度が高いために、多くの場面で使われている。
【０００３】
オリジナルのSVMは外れ値に弱いということが知られており、ソフトマージンSVMにおいていくらかその弱点が改善された。改善法のひとつは、学習の評価関数においてヒンジロスを導入することにあった。それ以外にも非特許文献１では、学習に利用したデータに対して識別器を適用し、誤識別したものを学習データセットから取り除き、再度学習するという方法が提示されている。
【０００４】
しかし、外れ値の影響を充分に除去するのは難しく、その後も改良が試みられている。例えば、非特許文献２では、識別境界に近い学習データが学習に悪影響を及ぼすと仮定している。学習によって得られた識別器を利用して学習に使用したデータの識別を試み、識別境界に近い（SVMの出力が０に近い）データを取り除いてから、再度学習をしている(BandSVM)。
【０００５】
また、評価関数の工夫によってロバスト性の改善が図られることもあった。例えば、非特許文献３ではロス関数の形状を工夫することによって外れ値の影響を小さくしている。あるいは、非特許文献４では外れ値判定をロス関数に組み込むような仕組みを導入している。尚、非特許文献５乃至７は、発明を実施するための形態で参照する文献であり、内容の説明は省略する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3).
【非特許文献２】Godbole, S., & Sarawagi, S. (2004). Discriminative Methods for Multi-labeled Classification. Advances in Knowledge Discovery and Data Mining.
【非特許文献３】L. Mason, J. Baxter, P.L. Bartlett, & M. Frean. (2000). Functional Gradient Techniques for Combining Hypotheses. Advances in Large-Margin Classifiers.
【非特許文献４】Xu, L., Crammer, K., & Schuurmans, D. (2006). Robust support vector machine training via convex outlier ablation. Proceedings of the 21st national conference on Artificial intelligence - Volume 1.
【非特許文献５】Viola, P., & Jones, M. (2001). Rapid object detection using a boosted cascade of simple features. Computer Vision and Pattern Recognition, 2001.
【非特許文献６】Dalal, N., & Triggs, B. (2005). Histograms of oriented gradients for human detection. Computer Vision and Pattern Recognition, 2005.
【非特許文献７】Chun-Fu Lin, & Sheng-De Wang. (2002). Fuzzy support vector machines. IEEE Transactions on Neural Networks, 13(2).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
これまで考え出されたアルゴリズムでは、それぞれに課題が残っている。まず非特許文献２ではBandSVMによる統計上有意な改善は報告されていない。また、評価関数を工夫する手法の多くは、評価関数が凸関数でなくなってしまうために、局所解に陥るという問題がある。非特許文献４による方法は、計算コストが高く、現実的には数百のデータまでしか学習できない。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を鑑みてなされたもので、外れ値の影響の少ない解を少ない計算コストで得られるようにする学習技術を提供することを目的とする。本発明に適用可能な学習アルゴリズムはAdaBoost、SVMに限らない。特に本発明では、学習閾値と識別閾値が異なるという点で、従来とは異なる範囲の誤識別データを除外している点が従来技術と相違している。
【０００９】
上記課題を解決する本発明の一つの側面にかかる学習装置は、学習に使用する複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果と前記弱判別器の判別学習の結果の信頼性を示すパラメータとを取得する学習手段と、
前記複数のサンプル画像のそれぞれについて、被検出対象が含まれている確からしさを示す値を、前記判別学習の結果と前記パラメータとを用いて算出する算出手段と、
一のサンプル画像について前記確からしさを示す値が、予め設定された学習閾値に比べて小さい場合に、前記複数のサンプル画像から前記一のサンプル画像を削除する削除手段と、
前記一のサンプル画像が削除された後の複数のサンプル画像のそれぞれに対する弱判別器の判別学習の結果から、当該判別学習の結果の信頼性を示すパラメータを取得する再学習手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、学習データにおける外れ値の影響の少ない学習結果を少ない計算コストで得ることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】学習装置のハードウェア構成の一例を示す図。
【図２】第１実施形態で顔を検出する際の処理の流れを表す図。
【図３】図２をデータフロー図として書き表した図。
【図４】第１実施形態における学習過程のフローチャート。
【図５】第２実施形態における学習過程のフローチャート。
【図６】第２実施形態において、画像情報の削除を行う前後の分布を示す図。
【図７】第３実施形態における学習過程のフローチャート。
【発明を実施するための形態】
【００１２】
＜第１実施形態＞
本発明の第１実施形態では、入力された画像に顔があるかどうかを判定する情報処理装置（学習装置）の構成例を示す。実施形態を簡単にするために、入力される画像は、顔があればパスポート写真のようにほぼ中央に決められた大きさで配置されているものと仮定する。画像を走査したり画像を拡大・縮小するなどしたりすれば、任意の位置にある任意の大きさの顔を検出できることは言うまでもない。
【００１３】
図１は、情報処理装置（学習装置）のハードウェア構成の一例を示す図である。ＣＰＵ（中央演算装置）１００は、実施形態で説明する情報処理方法をプログラムに従って実行する。プログラムメモリ１０１には、ＣＰＵ１００により実行されるプログラムが記憶されている。ＲＡＭ１０２は、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリである。本実施形態の画像情報は、一時的にＲＡＭ１０２上に保持される。ハードディスク１０３は、画像ファイル等を保存するための記録媒体である。なお、プログラムは、ハードディスク１０３に記憶されていてもよい。また、ＲＡＭ１０２の容量が許せば、本実施形態で説明する様々な情報はＲＡＭ１０２に保持しても良い。ディスプレイ１０４は、本実施形態の処理経過をユーザに提示する。バス１１０は、これら各部とＣＰＵ１００とを接続している制御バス、データバスである。なお、情報処理装置（学習装置）は、これ以外にもキーボードやポインティング デバイス等の入力機器等を備えていてもよい。
【００１４】
顔を検出する際の処理の流れを図２のフローチャートを参照して説明する。本処理はＣＰＵ１００の全体的な制御により実行される。まず、ステップＳ２０１で図１のハードディスク１０３より画像をＲＡＭ１０２に読み込む。ＲＡＭ１０２上において画像は２次元配列として保持される。次のステップＳ２０２では、後述する学習方法により作成した識別パラメータをＲＡＭ１０２に読み込む。ステップＳ２０３では、ステップＳ２０２で読み込んだ識別パラメータを使用して、判別処理の対象となる画像（ステップＳ２０１で読み込んだ画像）に被検出対象となる顔が含まれているか否かを判別する。その判別結果は次のステップＳ２０４でディスプレイ１０４に表示される。
【００１５】
図２の処理の流れをデータフロー図として書き表すと図３ようになる。画像３０５は図１のハードディスク１０３に保存されている。画像の読み込み処理Ｓ２０１（図２）によってハードディスク１０３に保存されている画像３０５が読み込まれ、ＲＡＭ１０２上に入力画像Iとして記憶される。識別パラメータ３０８はハードディスク１０３に保存されている。識別パラメータの読み込み処理Ｓ２０２（図２）によってハードディスク１０３内の識別パラメータ３０８が読み込まれ、ＲＡＭ１０２上に識別パラメータ３０９として記憶される。検出処理Ｓ２０３（図２）では、入力画像Iと識別パラメータ３０９とを使用して、入力画像Iの中に顔が検出されるかどうかを判定し、検出結果３０７がＲＡＭ１０２に書き込まれる。検出結果の表示処理Ｓ２０４（図２）ではＲＡＭ１０２に書き込まれた検出結果３０７の内容がディスプレイ１０４に表示される。
【００１６】
ハードディスク１０３に保存されている画像３０５は、例えば、顔画像をあるディレクトリに保存し、顔が写っていない（背景）画像を別のディレクトリに保存することにより区別される。画像３０５はそれぞれ、例えば、ＪＰＥＧフォーマットなどでハードディスク１０３に保存されている。ここでは、顔画像と背景画像の両方とも(Ｘj,Ｙj,Ｕj)と表現することにする。Ｘjは画像であり、Ｘjが顔画像であればＹj=１、背景画像であればＹj=０とする。また、Ｕjはその画像を学習に使用するかどうかを表すフラグ（識別情報）とし、１であればその画像を学習に使用し、０であれば学習に使用しないものとする。
【００１７】
Adaboostを利用した顔検出のアルゴリズムについては、非特許文献５に解説されているので、ここではその詳細には触れないが、入力画像に顔が写っているかどうかは、次の（１）式で判別できるということを引用する。この式が、図２のステップＳ２０３の顔検出処理で使用される。
【００１８】
【数１】
2013117861.tif 000003
【００１９】
ここで、ｘは入力画像、ｈtはt番目の弱判別器を表し、Ｔは弱判別器の個数を表す。ｈ（ｘ）は判別学習の結果を示している。非特許文献５における弱判別器は、入力画像Ｉを輝度画像に変換した後の２つの矩形領域の差に閾値処理をしたものである。ただし、本発明においては、他の種類の弱判別器を利用しても発明の本質には影響がない。ｈ(ｘ)＝１であれば、xに顔が存在し、ｈ（ｘ）＝０であれば顔が存在しないと判定する。αtは弱判別器の判別学習の結果の信頼性に関わる係数（識別パラメータ）である。θは識別パラメータを用いて算出される識別閾値で、以下の（２）式が使用される。
【００２０】
【数２】
2013117861.tif 000004
【００２１】
また、本実施形態では、以下の（３）式で表わされる値を確からしさと呼ぶことにする。
【００２２】
【数３】
2013117861.tif 000005
【００２３】
弱判別器ｈtの選択法とαtの求め方は非特許文献５に解説されている。ただし、本実施形態では、画像に付けられたフラグＵjによって、学習に使用するかどうか決める。そのため、AdaBoostで学習する際には、(Xj,Yj,Uj)の中からUj＝１なる画像を抽出し、連番となるように番号を振り直して(xi,yi)とし、学習に使用する画像情報とする。
【００２４】
学習過程のフローチャートを図４に示す。本処理はＣＰＵ１００の全体的な制御により実行される。まず、ステップＳ４０１において、ハードディスク１０３より学習用画像をＲＡＭ１０２に読み込む。この際、学習画像(Xj,Yj,Uj)が読み込まれるが、Ujの初期値は１とする。このときＪＰＥＧフォーマットを使用して保存されてある画像に対して、伸張処理が必要となる。例えば、Independent JPEG Groupによって提供されているlibjpegライブラリなどを利用してこの処理を行うことができる。
【００２５】
ステップＳ４０２では、先ほど説明したようにUjが１の画像情報（学習に使用するサンプル画像の情報）を使用してAdaBoostによる学習を行う。これにより、（３）式の計算に必要な識別パラメータαiと弱判別器の判別学習の結果としてhtが取得される。
【００２６】
次にステップＳ４０３からステップＳ４１０までのループを各画像情報jに対して繰り返す。ステップＳ４０４では、Uj＝１かどうかを確認し、Uj＝１の画像情報に対してステップＳ４０５からステップＳ４０８までの処理を実行する。ステップＳ４０５では、画像情報jに対して（３）式を適用し、被検出対象（例えば、顔画像や背景画像）が含まれているか否かを判別するための値（確からしさＬ(Xj)）を算出する。ここで予め定められた定数θfと比較して、Yj=1（顔画像）であり、かつＬ(Xj)＜θjであれば、処理をステップＳ４０７に進める。ステップＳ４０７では、顔画像（Xj）を削除して、Uj＝０（学習に使用しない）に設定する。
【００２７】
ステップＳ４０６の判定処理で、Yj＝０（背景画像）である場合、または、Ｌ(Xj)≧θｆの場合、処理をステップＳ４０８に進める。ステップＳ４０８では、予め定められた定数θbと比較して、Yj＝０（背景画像）、かつ、Ｌ(Xj)＞θbであれば、処理をステップＳ４０９に進める。
【００２８】
ステップＳ４０９では、背景画像（Xj）を削除して、Uj＝０（学習に使用しない）に設定する。Uj＝０に設定された画像情報は学習対象から外されて、ステップＳ４１１で、AdaBoostによる学習処理（再学習処理）が行われる。ステップＳ４１１で取得された識別パラメータαiと弱判別器htが、図２の顔検出処理（Ｓ２０３）に利用される。
【００２９】
上記θf、θbはいくつかの値を試し、交差検定によって確定するのが理想的である。しかし、学習時間を抑える必要がある場合には、例えば、次の（４）式で設定することもできる。（４）式によれば、学習サンプルの確からしさの分布より学習閾値を定めることができる。
【００３０】
【数４】
2013117861.tif 000006
【００３１】
ここで、minL1はサンプル画像に顔画像が含まれている確からしさの最小値であり、maxL0はサンプル画像に背景画像が含まれている確からしさの最大値である。rには、例えば０．５のような０＜ｒ＜１を満たす定数を利用する。
【００３２】
以上の学習方法では、正しく識別できない学習データの全てではなく一部だけを学習対象から外している。特に本実施形態では、AdaBoostを利用して外れ値を削減する例を示した。その際、識別時の閾値（識別閾値）とは異なる学習閾値θfとθbを利用して外れ値を削減する方法を提案した。顔の検出に用いる識別閾値は学習閾値（第１学習閾値（θf））よりも大きく、背景の検出に用いる識別閾値は学習閾値（第２学習閾値（θb））よりも小さい。
【００３３】
本実施形態にかかる学習方法によれば、学習によって正しく識別できない学習データ（外れ値）を学習対象から外しているため、外れ値の影響を受けにくい学習を行うことができる。
【００３４】
＜第２実施形態＞
本実施形態では、画像中に人体が存在するかどうかを判定する識別器のための識別パラメータを求める例を示す。その際、SVMを利用して学習する方法を提案する。言うまでもなく入力データが画像でなくても音声情報やテキスト情報など他の内容であっても、本発明の要点は変わらない。
【００３５】
本実施形態における検出処理の流れは、第１実施形態における図２の検出処理の流れと基本的に同じであるが、ステップＳ２０３の処理では顔を検出するのではなく、人体を検出する点で相違する。この際、検出処理の前に入力画像を画像特徴量に変換する。入力画像を画像特徴量に変換するための処理としては、例えば非特許文献６に提案されているHistogram of Oriented Gradients (ＨＯＧ)などを利用することができる。
【００３６】
ハードディスク１０３には、画像情報として(Ii,yi,si)が保存されているものとする。Iiは画像を表す。Iiが人物の写っている画像である場合には、ラベルyi＝１とする。逆に人物が写っていない背景画像である場合には、ラベルyi＝−１とする。siは各画像に割り当てられた重みであり、SVM学習においてその画像をどれほど重視するべきかを示す非負実数である。もし全ての画像を均等に扱うならば、全てのsiを１にすればよい。
【００３７】
更に、第１実施形態の図４の代わりに学習過程のフローチャートとして図５を利用する。本処理はＣＰＵ１００の全体的な制御により実行される。まず、ステップＳ５０１において、ハードディスク１０３より学習用画像をＲＡＭ１０２に読み込む。この際、学習画像情報(Ii, yi, si)が読み込まれるが、学習画像Iiは画像特徴量xiに変換される。ＲＡＭ１０２には(xi, yi, si)が記憶され、これらをまとめて学習画像情報群Ｗと呼ぶことにする。Ｗは後に説明する方法によって、徐々に要素数が減ることになる。
【００３８】
次に、ステップＳ５０２でSVM(Support Vector Machine）による学習処理を行う。重みsjを考慮した学習にはFuzzy Support Vector Machine (FSVM：非特許文献７)が使用できる。言うまでもなく、全てのsjが等しい場合には通常のSVMが使用できる。FSVMやSVM（まとめてSVMと呼ぶ）で取得される識別パラメータはラグランジュ乗数αjと定数項bである。線形カーネルを利用する場合には、数学的に等価で、より少ないパラメータによって表現できることは機械学習の専門家に知られている。これら識別パラメータを次の（５）式に代入することによって、入力画像Iに人物が写っているかどうか判定できる。
【００３９】
【数５】
2013117861.tif 000007
【００４０】
ここでlは学習画像情報群Ｗの要素数である。また、関数sign(L)は引数Ｌを識別閾値θ=0と比較して、大きければ＋１、小さければ−１を返す関数である。Ｌ＝０の場合は例えば＋１を返しても良い。Ｋ(z,y)はSVMに使用するカーネル関数である。
【００４１】
次にステップＳ５０３からステップＳ５１１までの処理をＲ回繰り返し実行する。例えば、Ｒ=4回のように有限の回数だけ実行する。
【００４２】
ステップＳ５０４では、直前のSVM学習によって得られた識別パラメータを利用して次の（６）式により、学習画像情報群Ｗのyi＝−１となる画像特徴量xjに対してＬ(xj)を求める。
【００４３】
【数６】
2013117861.tif 000008
【００４４】
Ｌ(xj)は入力画像Ijが人物画像である確からしさを表す。見方を変えると、-Ｌ(xj)は、入力画像Ijが背景画像である確からしさであると解釈することができる。そのため、ある閾値Ｍと比較してＬ(xi)＞Ｍということは、背景としての確からしさが−Ｍ未満であることになる。
【００４５】
次のステップＳ５０５において、yi＝−１、かつ、Ｌ(xi)＞Ｍなる画像情報を選び出し、画像情報群Sを形成する。Sの要素の個数を|Ｓ｜と表記する。Ｍ＝１とすれば、SVMのマージンと一致する。
【００４６】
次にステップＳ５０６において、画像情報群Ｓの画像情報をＬ(xi)が降順となるようにソートする。添え字kを使って、このソートされた画像情報群の要素を(Ｌ(xMk), xMk,sMk)と表現する。xM, sMはそれぞれ画像特徴量の配列と重みの配列であり、xMk,sMkは、それぞれの配列のk番目の要素を指す。画像情報群Sの画像は全て背景画像であるため、ラベル情報はソート対象から外す。
【００４７】
次にステップＳ５０７で、配列Ｃを用意する。配列Ｃの各要素Ｃmは次式に定義するとおりである。
【００４８】
【数７】
2013117861.tif 000009
【００４９】
次にステップＳ５０８では、Ｃmをｍ＝１,…,|Ｓ|の順にたどり、初めてＣm＞ｒＣ|S|を満たすｍを求める。ここでｒは、０＜ｒ≦１を満たす定数である。得られたｍを元に学習閾値θb=Ｌ（xMm）に設定する。ｒはなるべく小さく設定して、毎回少数の画像情報だけが削除対象として選ばれるようにして、ステップＳ５０３からステップＳ５１１までのループ回数Ｒを大きくするのが、理想的ではある。しかし現実にはこれでは学習時間が長くなるため、ｒをより大きくし、ループの回数Ｒを減らすことで、学習時間と精度のトレードオフを行う必要がある。
【００５０】
ステップＳ５０９において、学習画像情報群Ｗの要素の中で、yi＝−１、かつ、Ｌ（xi）＞θbなる画像情報をＷから削除する。ループの最後のステップＳ５１０では、要素が削除された学習画像情報群Ｗを使ってSVM(Support Vector Machine）による学習が行われる。
【００５１】
確からしさがどのように変わるかを明確にするために、図６に模式的に背景画像の確からしさの分布を示す。横軸は個々の背景画像を表す。縦軸はそれぞれの背景画像の確からしさである。図６（ａ）は削除前の分布を示し、図６（ｂ）が削除・学習後の分布である。図６（ａ）から背景画像の確からしさが広く分布しており、＋１を超えるものがいくつか存在するのが分かる。これらの一部を削除するのであるが、回帰分析の時に外れ値を外す場合とは異なり、分布の片側（この場合は上側）が削除対象である。また、識別器がSVMなどのmax-margin識別器（マージン最大化識別器）の場合、削除対象の範囲は分布の統計量（平均や分散）とは直接的な関係がない「マージン」を使って外れ値を定義する。図６の例では削除される画像が少ないが、マージンの設定次第ではかなり多くの数の外れ値が削除されることもあり得る。図５のフローチャートに従って背景画像の一部を削除し、SVMで再学習した後の確からしさの分布が図のようになる。削除時に、＋１を超えるものを集めてから一部を削除し、削除されなかった残りを右側に追加しているので、図の右側に学習の難しい（人物画像としての確からしさが大きい）背景画像が集まっている。本実施形態では、このように学習の難しい画像を少しずつ削除しながら、学習を繰り返していく。
【００５２】
以上の処理により、外れ値の影響を受けにくい学習を行うことができる。本実施形態では、SVMを利用して外れ値を削減する例を示した。その際、外れ値を取り除くための閾値をマージンの外側にある画像情報の分布から算出する方法を提案した。特にSVMの識別境界から遠く離れた外れ値は学習できる望みの小さい画像情報であることに着目している。外れ値を誤識別の度合いに応じて徐々に削減していくことにより、始めの学習によって多少誤差がある識別境界が得られたとしても、最終的にはより精確な境界を得ることができる。
【００５３】
図５で最後に実行されたSVMの学習によって得られた識別パラメータを利用して、図２の処理を人体検出に適用することが可能になる。本実施形態では背景の確からしさに着目して閾値を設定したが、当然のことながら人物の確からしさに着目して同様な方法により外れ値を取り除くこともできる。また、その両方を行って、人物画像・背景画像双方の外れ値を取り除くことも可能である。
【００５４】
＜第３実施形態＞
本実施形態では、第２実施形態で示した学習装置における外れ値除去のためのパラメータｒとＲを自動的に定めるための方法を示す。ハードウェア構成図（図１）は第１および第２実施形態と同じである。
【００５５】
図７を用いて、本実施形態での学習過程の流れを説明する。本処理はＣＰＵ１００の全体的な制御により実行される。第２実施形態の図５の処理と同様の処理には同一のステップ番号を付している。まず、ステップＳ５０１で、ハードディスク１０３より学習用画像をＲＡＭ１０２に読み込む。ここで、学習画像情報(Ii,yi,si)が読み込まれるが、学習画像Iiは画像特徴量xiに変換するのは第２実施形態と同じである。
【００５６】
次にステップＳ７０１で学習画像情報を２つのグループに分ける。具体的には、学習画像情報全体の例えば１/５をランダムに選び評価用画像情報群Ｃとして取り置く。残りの画像情報を学習画像情報群Ｗとする。
【００５７】
次にステップＳ７０２で仮のパラメータrの初期値を、例えば、０．５に設定する。また、後で説明する変数Ｈを(−１，０，０)に初期化する。次にステップＳ５０２でSVMによる学習を行う。これにより、（５）式の識別パラメータαiと定数項bが得られる。
【００５８】
そして、ステップＳ７０３からステップＳ７０６までの処理を制限時間まで繰り返す。例えば、開発者、学習装置のユーザが制限時間を設定することが可能である。また、ループを始める前のステップＳ７０３で、後で説明する変数Ｘを(−１,０,０)に初期化する。
【００５９】
ループ内のステップＳ５０４からステップＳ５１０までの処理は第２実施形態の図５の処理内容と同じであり、詳細な説明は省略する。ループ最後のステップＳ７０５では、評価用画像を用いて被検出対象が含まれているか否かの判別学習の結果を評価する。ステップＳ７０１で取り置いた、学習に使用する複数のサンプル画像（学習用画像）の一部を評価用の画像（評価用画像情報群Ｃ）として、識別を試みる。このとき識別パラメータとして、ステップＳ５１０で得られたものを利用する。ここで識別精度を求めるわけであるが、その際、ｆ（xi）=yiとなった画像情報の数を評価用画像情報群の要素数|Ｃ|で割った値を精度ｐと定義する。このｐとＸの第1要素X1を比較し、ｐの方が大きければXを(ｐ,ｒ,ｊ)に設定する。ここでｊは、ステップＳ７０３からステップＳ７０６までのループをそれまでに繰り返した回数である。Xは、それまで最高の精度を達成した時の精度とそのときのパラメータを保持するための変数である。
【００６０】
ステップＳ７０６までのループを繰り返した後は、ステップＳ７０７でXの第1要素X1とＨの第１要素H1とを比較し、X1が大きければ、ＨにXの内容をコピーし、ステップＳ７０８へと進む。評価用画像を用いた再学習の結果が所定の精度になるまで、ステップＳ５０２以下の処理が繰り返される。一方、ステップＳ７０７の判定で、H1の方が大きければ、ステップＳ７０９へと進む。
【００６１】
ステップＳ７０８ではｒをｒ／２に設定し直し、ステップＳ５０２からの処理を再び繰り返す。ステップＳ７０９では、ｒとしてHの第２要素H2、ＲとしてHの第３要素H3を設定し、第２実施形態の図５で説明した学習を行う。
【００６２】
以上の処理により、学習方法の繰り返し回数Ｒを決定することができる。本実施形態では、説明を分かりやすくするために最高精度のパラメータを保持し、これを随時更新する方法を採用した。これ以外にも、ステップＳ７０５で全ての(ｐ,ｒ,ｊ)を記録し、ｐをｒとＲの関数として平滑化した後に、最適なｒとＲを求めることもできる。
【００６３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013117861.tif 000010
【図２】
2013117861.tif 000011
【図３】
2013117861.tif 000012
【図４】
2013117861.tif 000013
【図５】
2013117861.tif 000014
【図７】
2013117861.tif 000015
【図６】
2013117861.tif 000016