以下、図面を参照して、本発明を適用した実施の形態について説明する。
図1は、本発明を適用した人識別システムの一実施の形態の構成例を示すブロック図である。この人識別システムは、学習装置11、識別器記録部12、および認識装置13からなり、入力された画像から、対象物体として人間の画像のある領域を検出(識別)するものである。
学習装置11は、入力された学習画像に基づいて、認識装置13において画像上における対象物体の有無を識別する処理を行うときに用いられる、識別用特徴量および統合識別器を統計的な学習(機械学習)により生成し、識別器記録部12に記録させる。認識装置13は、識別器記録部12に記録されている識別用特徴量および統合識別器を用いて、入力された入力画像に対象物体である人の画像が存在するか否かを識別し、その識別結果を出力する。
学習装置11は、服装特徴点抽出部21、服装特徴量計算部22、服装識別器生成部23、輪郭特徴点抽出部24、輪郭特徴量計算部25、輪郭識別器生成部26、仮統合識別器生成部27、および統合識別器生成部28から構成される。
服装特徴点抽出部21は、入力された学習画像から、その学習画像の画素のいくつかを服装識別器を生成するときに用いられる服装特徴点として抽出し、抽出した服装特徴点と学習画像とを服装特徴量計算部22に供給する。ここで、服装識別器とは、統計学習により生成された、複数の弱識別器からなる比較的強い識別器であり、人の服装の特徴を利用して、入力された画像中に人の画像の領域が存在するか否かを識別するときに用いられる。
服装特徴量計算部22は、服装特徴点抽出部21からの各服装特徴点について、その服装特徴点と、他の服装特徴点とを1つのペアとするペアリングを行う。また、服装特徴量計算部22は、服装特徴点抽出部21からの学習画像に基づいて、服装特徴点のペアごとに、服装特徴点を含む2つの領域のテクスチャの距離を示す服装特徴量を計算し、求められた服装特徴量と学習画像とを服装識別器生成部23に供給する。
服装識別器生成部23は、服装特徴量計算部22から供給された学習画像および服装特徴量に基づいて、例えばAdaboostによる統計学習処理を行い、画像中における対象物体である人を認識する服装識別器を生成する。また、服装識別器生成部23は、学習画像、服装特徴量、および生成した服装識別器を仮統合識別器生成部27に供給する。
輪郭特徴点抽出部24は、入力された学習画像から、その学習画像の画素のいくつかを輪郭識別器を生成するときに用いられる輪郭特徴点として抽出し、抽出した輪郭特徴点と学習画像とを輪郭特徴量計算部25に供給する。ここで、輪郭識別器とは、統計学習により生成された、複数の弱識別器からなる比較的強い識別器であり、人の輪郭を利用して、入力された画像中に人の画像の領域が存在するか否かを識別するときに用いられる。
輪郭特徴量計算部25は、輪郭特徴点抽出部24からの学習画像に基づいて、例えばステアラブルフィルタ(Steerable Filter)を用いたフィルタ処理により、輪郭特徴点ごとに、抽出された輪郭を示す輪郭特徴量を計算し、求められた輪郭特徴量と学習画像とを輪郭識別器生成部26に供給する。輪郭識別器生成部26は、輪郭特徴量計算部25から供給された学習画像および輪郭特徴量に基づいて、例えばAdaboostによる統計学習処理を行い、画像中における対象物体である人を認識する輪郭識別器を生成する。また、輪郭識別器生成部26は、学習画像、輪郭特徴量、および生成した輪郭識別器を仮統合識別器生成部27に供給する。
仮統合識別器生成部27は、服装識別器生成部23からの服装識別器と、輪郭識別器生成部26からの輪郭識別器とを統合して、仮の統合識別器である仮統合識別器を生成し、生成した仮統合識別器、服装特徴量、輪郭特徴量、および学習画像を統合識別器生成部28に供給する。
統合識別器生成部28は、仮統合識別器生成部27から供給された仮統合識別器を構成するいくつかの弱識別器、つまり服装識別器または輪郭識別器を構成する弱識別器を任意に選択し、選択した弱識別器からなる関数である特徴関数を生成する。また、統合識別器生成部28は、生成した特徴関数に、仮統合識別器生成部27から供給された服装特徴量または輪郭特徴量を代入して得られる値を学習画像の新たな特徴量として、例えば、Adaboostによる統計学習処理を行い、最終的な統合識別器を生成する。
統合識別器生成部28は、生成した統合識別器を識別器記録部12に供給して記録させる。また、統合識別器生成部28は、統合識別器を用いて対象物体の認識を行うときに用いられる服装特徴点のペアの服装特徴量、および輪郭特徴点の輪郭特徴量を、識別用特徴量として識別器記録部12に供給し、記録させる。識別用特徴量は、統合識別器を構成する弱識別器に対応する服装特徴点または輪郭特徴点における、服装特徴量または輪郭特徴量であり、この識別用特徴量により、統合識別器の各弱識別器に代入される特徴量が求められるべき、画像上の特徴点が特定されることになる。
また、認識装置13は、服装特徴点抽出部31、服装特徴量計算部32、輪郭特徴点抽出部33、輪郭特徴量計算部34、識別計算部35、および識別結果出力部36から構成される。なお、認識装置13の服装特徴点抽出部31乃至輪郭特徴量計算部34のそれぞれは、対象物体を認識しようとする入力画像に対して、学習装置11の服装特徴点抽出部21、服装特徴量計算部22、輪郭特徴点抽出部24、および輪郭特徴量計算部25のそれぞれと同様の処理を行うものであるので、その説明は省略する。
識別計算部35は、識別器記録部12に記録されている識別用特徴量および統合識別器を読み出す。また、識別計算部35は、服装特徴量計算部32からの服装特徴量、および輪郭特徴量計算部34からの輪郭特徴量のうちの識別用特徴量に対応するものを、読み出した統合識別器に代入して演算を行う。識別結果出力部36は、識別計算部35における演算結果を取得し、その演算結果に基づいて、対象物体が入力画像で認識(検出)されたか否かの識別結果を出力する。
次に、図2を参照して、図1の輪郭特徴量計算部25のより詳細な構成例について説明する。輪郭特徴量計算部25は、1次フィルタ処理部61、2次フィルタ処理部62、3次フィルタ処理部63、および特徴量生成部64から構成される。また、輪郭特徴点抽出部24からの学習画像は、1次フィルタ処理部61乃至特徴量生成部64に供給され、輪郭特徴点は、1次フィルタ処理部61乃至3次フィルタ処理部63に供給される。
1次フィルタ処理部61は、供給された輪郭特徴点ごとに、輪郭特徴点に対してガウス関数Gの1次微分関数G1によりフィルタ処理を施して特徴量を抽出し、特徴量生成部64に供給する。ここで、ガウス関数G、および1次微分関数G1は、次式(1)および式(2)により示される。
なお、式(1)において、σはガウス幅を示しており、また式(2)において、θは任意の角度、つまり計算したいフィルタの方向を示している。
例えば、1次フィルタ処理部61は、ガウス関数Gのガウス幅σを3つの所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させ、ガウス幅σごとに所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について式(2)を計算する。なお、方向θは4方向に限らず、8方向、例えばpiを8方向に等分したときの各方向などとしてもよい。
2次フィルタ処理部62は、供給された輪郭特徴点ごとに、輪郭特徴点に対してガウス関数Gの2次微分関数G2によりフィルタ処理を施して特徴量を抽出し、特徴量生成部64に供給する。次式(3)は、2次微分関数G2を示しており、式(3)においてθは任意の角度を示している。
また、式(3)における係数k2i(θ)(但し、i=1,2,3)は、次式(4)で示される関数である。
例えば、2次フィルタ処理部62は、ガウス関数Gのガウス幅σを3つの所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させ、ガウス幅σごとに所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について式(3)を計算する。
3次フィルタ処理部63は、供給された輪郭特徴点ごとに、輪郭特徴点に対してガウス関数Gの3次微分関数G3によりフィルタ処理を施して特徴量を抽出し、特徴量生成部64に供給する。次式(5)は、3次微分関数G3を示しており、式(5)においてθは任意の角度を示している。
また、式(5)における係数k3i(θ)(但し、i=1,2,3,4)は、次式(6)で示される関数である。
例えば、3次フィルタ処理部63は、ガウス関数Gのガウス幅σを3つの所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させ、ガウス幅σごとに所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について、式(5)を計算する。
特徴量生成部64は、1次フィルタ処理部61、2次フィルタ処理部62、および3次フィルタ処理部63のそれぞれから供給された、3種類のガウス幅σごとに、4つの方向θについて計算された各輪郭特徴点の特徴量の供給を受け、供給された合計36個(=3(次数)×4(方向)×3(ガウス幅))の特徴量を並べて輪郭特徴点における輪郭特徴量とする。また、特徴量生成部64は、生成した輪郭特徴量と、供給された学習画像とを輪郭識別器生成部26に供給する。
このように、輪郭特徴量計算部25では、ガウス関数を微分して得られる、方向および周波数、つまり方向θおよびガウス幅σに選択性を持つフィルタ(基底関数)が用いられて、微分の次数ごとに異なる特徴量(輪郭)が抽出され、輪郭特徴量とされている。輪郭特徴量の抽出にステアラブルフィルタを用いる場合、方向θおよびガウス幅σの異なるフィルタを用意すれば、それらのフィルタの線形結合により、任意の方向θのフィルタ、つまりガウス関数Gの微分関数Gn(但し、n=1,2,3)を表現することができる。
次に、図3は、図1の服装識別器生成部23のより詳細な構成例を示すブロック図である。服装識別器生成部23は、サンプリング部101、重み設定部102、並び替え部103、識別器設定部104、識別器選択部105、および重み更新部106から構成される。服装識別器生成部23では、服装特徴量計算部22からの服装特徴量および学習画像は、サンプリング部101、識別器設定部104、および識別器選択部105に供給される。
サンプリング部101は、重み設定部102により設定される学習画像単位の重みに応じて、服装特徴点のペアごとに、複数の学習画像のそれぞれの同じ位置の服装特徴点のペアの服装特徴量から、M個の服装特徴量をサンプリングして並び替え部103に供給する。
並び替え部103は、各服装特徴点のペアについて、サンプリングされたM個の服装特徴量を昇べきの順、または降べきの順に並び替えて識別器設定部104に供給する。
識別器設定部104は、服装特徴量が抽出された学習画像に認識しようとする対象物体が含まれているか否かを示す正誤情報に基づいて、昇べきの順、または降べきの順に並び替えられた各ペアの服装特徴量のそれぞれについて、閾値を変化させながら誤り率計算部104aを制御して、誤り率を計算させ、誤り率が最小となるように閾値を設定する(この閾値が、弱識別器として設定される)。さらに、識別器設定部104は、弱識別器ごとの誤り率を識別器選択部105に供給する。
なお、より詳細には、学習画像には、その学習画像に対象物体が含まれているか否かを示す正誤情報(ラベル)が付加されており、識別器設定部104は、服装特徴量計算部22から供給された学習画像に付加されている正誤情報に基づいて、弱識別器の設定を行う。
識別器選択部105は、設定された弱識別器のうち、誤り率が最小となる弱識別器を選択して、弱識別器からなる服装識別器を更新し、学習画像、最終的な服装識別器、およびその服装識別器を構成する各弱識別器に対応する服装特徴量を仮統合識別器生成部27に供給する。さらに、識別器選択部105は、選択した弱識別器の誤り率に基づいて、その弱識別器の信頼度を計算し、重み更新部106に供給する。
重み更新部106は、供給された信頼度に基づいて学習画像ごとの重みを再計算するとともに、重みを正規化して更新し、更新結果を重み設定部102に供給する。重み設定部102は、重み更新部106より供給されてくる重みの更新結果に基づいて、学習画像単位の重みを設定する。
なお、図1の輪郭特徴量計算部34は、図2に示した輪郭特徴量計算部25と同様の構成とされ、図1の輪郭識別器生成部26は、図3に示した服装識別器生成部23と同様の構成とされるため、その図示および説明は省略する。
さらに、図1の統合識別器生成部28は、より詳細には図4に示すように構成される。すなわち、統合識別器生成部28は、特徴関数生成部131、サンプリング部132、重み設定部133、並び替え部134、識別器設定部135、識別器選択部136、および重み更新部137から構成される。なお、サンプリング部132乃至重み更新部137のそれぞれは、図3のサンプリング部101乃至重み更新部106のそれぞれと同様であるので、その説明は、適宜省略する。
特徴関数生成部131は、仮統合識別器生成部27から供給された仮統合識別器に基づいて、任意の数、例えばP個(但し、Pは自然数)の特徴関数を生成し、生成した特徴関数を構成する弱識別器に、対応する服装特徴量または輪郭特徴量を代入して得られる値を、新たな特徴量とする。特徴関数生成部131は、各学習画像について、特徴関数ごとに求められた新たな特徴量と、仮統合識別器生成部27からの学習画像とをサンプリング部132に供給する。
サンプリング部132乃至識別器選択部136は、特徴関数生成部131により生成された新たな特徴量と、学習画像とを用いて統計学習処理を行い、最終的な統合識別器を生成する。そして、生成された統合識別器と、識別用特徴量とされた服装特徴量および輪郭特徴量とが識別器記録部12に供給されて記録される。
ところで、学習装置11に学習画像が入力され、統合識別器の生成が指示されると、学習装置11は、学習処理を開始して統計学習により統合識別器を生成する。以下、図5のフローチャートを参照して、学習装置11による学習処理について説明する。
ステップS11において、服装特徴点抽出部21は、入力された学習画像から服装特徴点を抽出して、抽出した服装特徴点および学習画像を服装特徴量計算部22に供給する。
ステップS12において、服装特徴量計算部22は、服装特徴点抽出部21から供給された服装特徴点と学習画像とに基づいて、各服装特徴点について、服装特徴点のペアリングを行う。
ステップS13において、服装特徴量計算部22は、ペアリングによりペアとされた服装特徴点の各ペアについて服装特徴量を計算し、これにより得られた服装特徴量および学習画像を服装識別器生成部23に供給する。
例えば、図6に示す学習画像が服装特徴点抽出部21に入力された場合、服装特徴点抽出部21は、予め定められたマージン(のりしろ)と、サンプリングスキップ数とに基づいて、学習画像から服装特徴点を抽出する。なお、図6において、学習画像上の円は、服装特徴点とされた画素を示している。
ここで、マージンとは、学習画像において、学習画像の端から服装特徴点の抽出の対象となる領域までの画素数をいう。また、サンプリングスキップ数とは、服装特徴点とされる学習画像上の画素と画素との間隔をいう。
したがって、例えばマージンが5画素であり、サンプリングスキップ数が5画素である場合、服装特徴点抽出部21は、学習画像の端から5画素以内の位置にある画素からなる領域を学習画像から除外し、残りの領域E11を服装特徴点の抽出の対象とする。そして、服装特徴点抽出部21は、領域E11内の画素のうち、互いに5画素だけ離れている位置の画素を服装特徴点として抽出する。つまり、図中、縦方向または横方向に互いに隣り合う服装特徴点間の距離は5画素とされ、各服装特徴点は、領域E11内の画素とされる。
次に、服装特徴量計算部22は、予め定められた最小半径および最大半径に基づいて、各服装特徴点のペアリングを行う。例えば、最小半径がR11であり、最大半径がR12である場合、所定の服装特徴点KT1に注目したとき、服装特徴量計算部22は、服装特徴点KT1からの距離が、最小半径R11以上であり、かつ最大半径R12以内である全ての服装特徴点について、その服装特徴点と、服装特徴点KT1とを1つのペアとする。
したがって、例えば、服装特徴点KT1からの距離が、最小半径R11以上であり、かつ最大半径R12以内である服装特徴点がN個存在する場合、服装特徴点KT1について、N個の服装特徴点のペアが得られることになる。服装特徴量計算部22は、全ての服装特徴点について、他の服装特徴点とのペアリングを行う。
さらに、服装特徴量計算部22は、ペアリングにより得られた服装特徴点の各ペアについて、ペアとなる各服装特徴点を中心とする所定の形の所定の大きさの領域同士のテクスチャの距離を服装特徴量として計算する。
例えば、図6に示す服装特徴点KT1と服装特徴点KT2とのペアについての服装特徴量をSSD(Sum of Square Distance)により求める場合、服装特徴量計算部22は、服装特徴点KT1を中心とする所定の領域を領域TX1とし、服装特徴点KT2を中心とする領域TX1と同じ大きさの領域を領域TX2とする。そして、服装特徴量計算部22は、領域TX1内の画素の画素値と、その画素に対応する領域TX2内の画素の画素値との差分の自乗和を求め、求められた差分の自乗和を服装特徴量とする。
なお、服装特徴量は、SSDに限らず、SAD(Sum of Absolute Distance)や、正規化相関などとされてもよい。
このようにして、服装特徴量計算部22は、学習画像から抽出された服装特徴点の各ペアについて、服装特徴量を求める。なお、より詳細には、学習装置11には、対象物体が含まれているいくつかの学習画像と、対象物体が含まれていないいくつかの学習画像とからなる複数の学習画像が入力される。そして、入力された学習画像ごとに、服装特徴点の抽出および服装特徴量の計算が行われる。
したがって、例えばM個(但し、Mは自然数)の学習画像PI1乃至学習画像PIMが学習装置11に入力された場合には、図7に示すように、M個の学習画像PIi(但し、1≦i≦M)について、服装特徴点のペアごとの服装特徴量が得られる。
図7では、1つの四角形は、1つの服装特徴点のペアの服装特徴量を表している。また、図中、縦方向に並べられた四角形の列は、1つの学習画像PIi(但し、1≦i≦M)から得られた服装特徴量の列を表しており、1つの列には、その学習画像PIiから得られた服装特徴点のペアの数だけ服装特徴量が並んでいる。つまり、1つの学習画像PIiから得られた服装特徴点のペアの数が、その学習画像PIiの服装特徴量(服装特徴量を要素とするベクトル)の次元数となる。
さらに、各学習画像PIiの服装特徴量の列の図中、下側には、その学習画像PIiに対象物体が含まれているか否かを示すラベル(正誤情報)が示されている。例えば、学習画像PI1の服装特徴量の列の図中、下側に示されるラベル「+1」は、学習画像PI1に対象物体が含まれることを表しており、学習画像PIMの服装特徴量の列の図中、下側に示されるラベル「−1」は、学習画像PIMに対象物体が含まれていないことを表している。
図5のフローチャートの説明に戻り、ステップS13において、服装特徴量が求められると、ステップS14において、服装識別器生成部23は、服装識別器生成処理を行って、服装識別器を生成し、服装特徴量、学習画像、および生成した服装識別器を仮統合識別器生成部27に供給する。なお、服装識別器生成処理の詳細は後述する。
ステップS15において、輪郭特徴点抽出部24は、入力された学習画像から輪郭特徴点を抽出し、学習画像と、抽出した輪郭特徴量とを輪郭特徴量計算部25に供給する。
例えば、輪郭特徴点抽出部24に図8Aに示す学習画像が入力された場合、輪郭特徴点抽出部24は、図8Bに示すように、学習画像において所定の間隔で並んでいる画素を、輪郭特徴点として抽出する。なお、図8Bにおいて、学習画像上の円は輪郭特徴点とされた画素を表している。
図8Aおよび図8Bに示す学習画像は、図中、横方向に32画素、縦方向に64画素からなる学習画像であり、輪郭特徴点抽出部24は、学習画像上の画素を、横方向および縦方向に2画素おきに輪郭特徴点とする画素として選択する。これにより、学習画像において、図中、横方向に12画素、縦方向に28画素、合計336(=12×28)画素が輪郭特徴点として選択される。
ステップS16において、輪郭特徴量計算部25は、輪郭特徴量計算処理を行い、輪郭特徴点抽出部24から供給された輪郭特徴点および学習画像に基づいて、各輪郭特徴点の輪郭特徴量を計算する。求められた輪郭特徴量、および学習画像は、輪郭特徴量計算部25から輪郭識別器生成部26に供給される。なお、輪郭特徴量計算処理の詳細は後述する。
ステップS17において、輪郭識別器生成部26は、輪郭特徴量計算部25から供給された学習画像および輪郭特徴量に基づいて、輪郭識別器生成処理を行い、輪郭識別器を生成する。なお、この輪郭識別器生成処理として、服装識別器生成処理と同様の処理が行われる。
ステップS18において、仮統合識別器生成部27は、服装識別器生成部23から供給された服装識別器と、輪郭識別器生成部26から供給された輪郭識別器とを統合して仮統合識別器を生成する。
例えば、Adaboostによる統計学習処理により得られた識別器は、弱識別器の線形結合により表現されるので、仮統合識別器生成部27は、服装識別器と輪郭識別器とをLate Fusion方式により統合する。
すなわち、仮統合識別器生成部27は、次式(7)を計算することで、服装識別器R(x)と、輪郭識別器T(x)とを線形結合して、仮統合識別器U(x)を求める。
U(x)=α・R(x)+β・T(x) ・・・(7)
なお、式(7)において、αおよびβは所定の定数、つまりチューニングパラメータであり、例えば統計学習処理に用いられる学習画像に対する識別率などにより求められる。
仮統合識別器生成部27は、仮統合識別器を生成すると、仮統合識別器、服装特徴量、輪郭特徴量、および学習画像を統合識別器生成部28に供給する。
ステップS19において、統合識別器生成部28は、仮統合識別器生成部27からの仮統合識別器、服装特徴量、輪郭特徴量、および学習画像を用いて統合識別器生成処理を行い、統合識別器を生成する。そして、統合識別器生成部28は、生成した統合識別器と、識別用特徴量としての服装特徴量および輪郭特徴量とを、識別器記録部12に供給して記録させ、学習処理は終了する。なお、統合識別器生成処理の詳細は後述する。
以上のようにして、学習装置11は、服装特徴点のペアの服装特徴量を求めて服装識別器を生成するとともに、輪郭特徴量を求めて輪郭識別器を生成する。そして、学習装置11は、服装識別器と輪郭識別器とを線形結合により統合して、仮統合識別器とし、仮統合識別器から得られる特徴量を新たな特徴量として、最終的な統合識別器を生成する。
このように、服装識別器と輪郭識別器とを統合して仮統合識別器を生成することで、画像からより確実に対象物体を検出できる統合識別器を提供することができる。すなわち、仮統合識別器は、対象物体の服装の特徴を利用した服装識別器と、対象物体の輪郭を利用した輪郭識別器とが統合されたものであるので、入力された画像から、少なくとも一方の特徴量を充分に抽出することができれば、画像から対象物体を検出することができる。
具体的には、学習装置11では、人の服装の特徴を利用した、人の服装のパターンの変化に対して不変な服装特徴量が画像からの人の検出に用いられている。この服装特徴量は、統計的に、人が上半身(シャツ)で同じテクスチャの繰り返しのパターンであり、下半身(ズボン)で同じテクスチャの繰り返しのパターンである洋服を着用することが多いことに着目し、新たに定義された特徴量である。
つまり、服装特徴量は、画像上の任意の2つの領域のテクスチャ、すなわち輝度のパターンの似ている度合い(類似度)を示している。例えば、人の上半身の2つの領域間のテクスチャの類似度は高く、上半身と下半身や、人の服装と背景とのテクスチャの類似度は低い。学習装置11では、このような2つの領域のテクスチャの類似度を利用して、画像から人を検出する服装識別器が生成され、統合識別器の生成に用いられる。
したがって、例えば、入力された画像から輪郭が充分に抽出できなくても、画像から2つの領域のテクスチャの類似の特徴を充分に抽出できれば、統合識別器を用いて、画像から人を検出することができる。逆に、画像中において、人の着用している洋服が繰り返しでないパターンの服であったり、バッグなどで洋服が部分的に隠れていたりする場合には、画像からテクスチャの類似の特徴を充分に抽出できない恐れがあるが、画像から輪郭を充分に抽出することができれば、統合識別器により画像から人を検出することができる。
さらに、学習装置11では、仮統合識別器から得られる特徴関数に、服装特徴量または輪郭特徴量を代入して得られる値を新たな特徴量として定義し、最終的な統合識別器を生成することで、過学習が防止されている。
すなわち、特に、統計学習用のサンプルとされる学習画像の数が少ない場合、過学習が生じることが多いが、特徴関数から得られる値を新たな特徴量とし、統計学習に複数の特徴量を入れ込むことで、学習処理に一種のノイズが入った状態とすることができ、過学習が生じにくくなる。したがって、新たに定義された、任意の数の特徴量を用いて統計学習を行えば、サンプルとしての学習画像に含まれていた対象物体と似た対象物体だけでなく、あまり似ていない対象物体も検出できるようになり、より識別精度の高い統合識別器が得られる。
また、仮統合識別器を構成する弱識別器を任意の個数だけ組み合わせて特徴関数を生成すれば、任意の数の新たな特徴量が得られるので、認識タスクに応じたスパースな空間を構成することができ、問題を解き易くすることができる。
次に、図9のフローチャートを参照して、図5のステップS14の処理に対応する、服装識別器生成処理について説明する。
ステップS51において、重み設定部102は、例えば、図7で示される学習画像PIi(1≦i≦M)毎の重みWiを全て1/Mに初期化し、識別器選択部105は、カウンタjを1に、弱識別器の和からなる服装識別器R(x)を0にそれぞれ初期化する。
ここで、iは、図7における学習画像PIiを識別するものであり、1≦i≦Mである。ステップS51の処理により、全ての学習画像PIiの重みWiは、いずれも正規化された同一の重み(=1/M)とされる。また、カウンタjは、予め定められた、服装識別器R(x)を更新する回数を示している。
ステップS52において、サンプリング部101は、各服装特徴点のペアごとに、複数の学習画像PIiのそれぞれの同じ位置の服装特徴点のペアの服装特徴量から、学習画像PIiの重みWiに応じて、M個の服装特徴量を選択し、並び替え部103に供給する。
例えば、服装特徴量計算部22からサンプリング部101に、図10に示すように、M個の学習画像PI1乃至学習画像PIMの服装特徴量が供給されたとする。図10では、図中、横方向に学習画像PIi(但し、1≦i≦M)から得られた服装特徴量が並べられており、学習画像を表す文字PIiの図中、左側の数字「+1」または「−1」は、その学習画像PIiに付加されたラベル(正誤情報)を示している。
すなわち、例えば図中、一番上側に横方向に並んでいる(A1,A2,A3,・・・,AN)は、学習画像PI1の服装特徴点の各ペアの服装特徴量のそれぞれを表しており、学習画像PI1を示す文字「PI1」の図中、左側の文字「+1」は、学習画像PI1に対象物体が含まれている旨のラベルを表している。
また、例えば図中、上から三番目の横方向に並んでいる(C1,C2,C3,・・・,CN)は、学習画像PI3の服装特徴点の各ペアの服装特徴量のそれぞれを表しており、文字「PI3」の図中、左側の文字「−1」は、学習画像PI3に対象物体が含まれていない旨のラベルを表している。
このように、図10の例では、1つの学習画像PIiからは、服装特徴点のN個のペアのそれぞれの服装特徴量が得られる。また、図10では、縦方向に並んだM個の服装特徴量Ak乃至服装特徴量Mk(但し、1≦k≦N)が1つのグループGrkとされており、このグループGrkに属す服装特徴量は、各学習画像PIiにおける同じ位置の服装特徴点のペアの服装特徴量とされている。
例えば、グループGr1は、縦方向に並んだ服装特徴量A1乃至服装特徴量M1からなり、服装特徴量A1が求められる学習画像PI1のペアとなる2つの服装特徴点と、グループGr1に属す他の服装特徴量、例えば服装特徴量M1が求められる学習画像PIMのペアとなる2つの服装特徴点とは、学習画像上の同じ位置にある。なお、以下において、各学習画像PIiにおける服装特徴点のペアであって、グループGrk(1≦k≦N)に属す服装特徴量が求まめられるペアをペアkと称する。
サンプリング部101に、図10に示される学習画像PIiごとの服装特徴量が供給された場合、サンプリング部101は、ペアkごと、つまりグループGrkごとに、そのグループに属す服装特徴量から学習画像PIiの重みWiに応じて、M個の服装特徴量を抽選で選択する。例えば、サンプリング部101は、重みWiに応じて、グループGr1に属す服装特徴量A1乃至服装特徴量M1から、M個の服装特徴量を選択する。なお、最初の処理においては、いずれの重みWiも1/Mであり、等しいため、M個が抽選されると、確率的には全ての服装特徴量が選択されることになる。そのため、ここでは、最初の処理では各グループGrkにおいて、全ての服装特徴量が選択されたものとする。もちろん、実際には、同一の服装特徴量が重複して選択されることもある。
なお、重みWiは、服装特徴点のペアごとのエラー計算に用いることもできる。この場合、データ重み係数(重みWi)がエラー値に掛け合わされてエラー計算が行われる。
ステップS53において、並び替え部103は、N個のグループGrkのそれぞれについて、グループGrk、つまりペアkごとに選択されたM個の服装特徴量を昇べきの順、または降べきの順に並び替えて、識別器設定部104に供給する。例えば、図10のグループGr1に属す服装特徴量から選択された、M個の服装特徴量が順番に並び替えられる。
ステップS54において、識別器設定部104は、服装特徴量計算部22から供給された学習画像に付加されている正誤情報(ラベル)に基づいて、グループGrkごと、つまり服装特徴点のペアkごとに、閾値を変化させながら誤り率計算部104aを制御して誤り率ejkを計算させ、誤り率ejkが最小となるように閾値を設定する。
ここで、服装特徴点のペアkごとの閾値thjkが、1個の弱識別器fjk(x)となり、識別器設定部104は、弱識別器fjk(x)ごとの誤り率ejkを識別器選択部105に供給する。すなわち、N個のペアkのそれぞれに対して、N個の弱識別器fjk(x)のそれぞれが設定され、N個の弱識別器fjk(x)のそれぞれについて誤り率ejkが求められることになる。
なお、弱識別器fjk(x)は、認識対象の画像の特徴点の領域に、認識しようとする対象物体を含む場合に、所定の値(ajk+bjk)を出力し、認識しようとする対象物体を含まない場合、所定の値bjkを出力する関数である。
例えば、図11に示すように、j=1であって、服装特徴点のペアk=1の服装特徴量がL1,A1,C1,B1,・・・,M1に昇べき、または、降べきの順に並べられた場合、閾値th11が服装特徴量A1とC1の間に設定される。そして、閾値th11より小さい範囲では、認識しようとする対象物体がないと認識され(「b11」で示されている範囲)、閾値th11より大きい範囲では、認識しようとする対象物体があると認識される(「a11+b11」で示されている範囲)とき、図中の点線で囲まれた服装特徴量A1は、認識しようとする対象物体が含まれた学習画像の服装特徴量であるので、エラーであるとみなされる。また、服装特徴量C1,M1は、逆に、認識しようとする対象物体が含まれていない学習画像の服装特徴量であるので、エラーであるとみなされる。
図11の例では、閾値th11は、ペアkにおける対象物体の認識の誤り率e11が最小となる位置に設定されている。例えば、図11に示す閾値th11が、誤り率e11の最小となる位置ではない場合には、識別器設定部104は、閾値th11の位置を変化させて、各位置における誤り率e11を参照しながら、誤り率e11が最小となる閾値th11の位置を探し出し、その位置を閾値th11の位置とする。
誤り率計算部104aは、以下の式(8)で示されるように、学習画像の正誤情報(ラベル)に基づいて、エラーであるとみなされた服装特徴量が抽出された学習画像の重みWiを加算し、誤り率ejkを計算する。
なお、式(8)において、y≠fjkはエラーとなっている服装特徴点のペアkの条件を示しており、Ewは、エラーの発生した学習画像に対する重みが加算されることを示している。
また、識別器設定部104は、誤り率計算部104aにより求められた誤り率ejk、および閾値thjkを用いて、弱識別器fjk(x)を求める。例えば、弱識別器fjk(x)がregression stumpと呼ばれる関数とされる場合、次式(9)により弱識別器fjk(x)が求められる。なお、弱識別器は、regression stumpに限らず、stumpなどの関数とされてもよい。
fjk(x)=ajk(x[dimk]>thjk)+bjk ・・・(9)
なお、式(9)において、「x[dimk]」は、服装特徴点のペアkの服装特徴量を示している。また、「ajk(x[dimk]>thjk)」は、服装特徴量x[dimk]が、閾値thjkよりも大きい場合に値がajkとなり、服装特徴量x[dimk]が、閾値thjk未満である場合に値が0となる関数である。
さらに、式(9)における値ajkおよび値bjkは、例えば、誤り率ejkから求められる。具体的には、例えば、値ajkは、後述する信頼度cjとされる。この信頼度cjは、誤り率ejkから求められる。なお、値ajkおよび値bjkは、予め求められた値とされてもよい。
このようにして、グループGrkごとに弱識別器fjk(x)が設定され、誤り率ejkが識別器設定部104から識別器選択部105に供給されると、処理はステップS54からステップS55に進む。
ステップS55において、識別器選択部105は、識別器設定部104から供給されたペアkごとのN個の誤り率ejkに基づいて、N個の弱識別器fjk(x)のうち、誤り率ejkが最小となる弱識別器fjk(x)を選択する。そして、識別器選択部105は、識別器設定部104から選択した弱識別器fjk(x)を取得する。
ステップS56において、識別器選択部105は、選択した弱識別器fjk(x)の誤り率ejkに基づいて、以下の式(10)で示される弱識別器fjk(x)の信頼度cjを計算し、その計算結果を重み更新部106に供給する。
なお、式(10)において、ejは、誤り率ejkのうち、選択された弱識別器fjk(x)の誤り率ejk、つまりN個の誤り率ejkのうちの最小の誤り率ejkを示している。また、以下において、ステップS55の処理において選択されたペアkの弱識別器を、弱識別器fj(x)とも称し、その弱識別器fj(x)の誤り率ejkを誤り率ejとも称する。
ステップS57において、重み更新部106は、供給された信頼度cjに基づいて、以下の式(11)を計算することで、学習画像PIiごとに重みWiを再計算すると共に、全ての重みWiを正規化して更新し、更新結果を重み設定部102に供給する。重み設定部102は、重み更新部106より供給されてくる重みの更新結果に基づいて、学習画像ごとの重みを設定する。
すなわち、式(11)においては、エラーの発生した服装特徴量を含む学習画像の重みWiが大きくなることが示されている。
ステップS58において、識別器選択部105は、新たに求められた弱識別器fj(x)を用いて、保持している服装識別器R(x)を更新する。すなわち、識別器選択部105は、次式(12)を計算することで服装識別器R(x)を更新する。
R(x)=R’(x)+fj(x) ・・・(12)
なお、式(12)において、R’(x)は、識別器選択部105が保持している更新前の服装識別器を表しており、fj(x)は、新たに求められた弱識別器fj(x)を表している。すなわち、識別器選択部105は、保持している服装識別器R’(x)に、新たに求められた弱識別器fj(x)を加算することで服装識別器を更新する。
ステップS59において、識別器選択部105は、誤り率ejkが最小となる弱認識器fj(x)に対応する服装特徴点のペアkの服装特徴量を、弱認識器fj(x)に代入されるべきペアkにおける特徴量である仮識別用特徴量として保持する。
ステップS60において、識別器選択部105は、カウンタjがL以上であるか否かを判定する。ステップS60において、カウンタjがL以上でないと判定された場合、ステップS61において、識別器選択部105は、カウンタjをインクリメントする。そして、その後、処理はステップS52に戻り、上述した処理が繰り返される。
すなわち、新たに設定された学習画像ごとの重みWiが用いられて、N個のペアkについて、新たな弱識別器fjk(x)が設定され、それらの弱識別器fjk(x)から誤り率ejkが最小となる弱認識器fjk(x)が選択される。そして、選択された弱認識器fjk(x)により、服装識別器が更新される。
これに対して、ステップS60において、カウンタjがL以上であると判定された場合、ステップS62において、識別器選択部105は、保持している服装識別器および仮識別用特徴と、学習画像とを仮統合識別器生成部27に出力する。そして、その後、処理は図5のステップS15に進む。
以上の処理により、L個の比較的誤り率の低い弱識別器fj(x)(1≦j≦L)からなる服装識別器が仮統合識別器生成部27に供給されるとともに、それぞれの弱識別器fj(x)で使用されるべき服装特徴点のペアkの服装特徴量、つまり仮識別用特徴量が仮統合識別器生成部27に供給される。ここでLは、L≦Nである。
なお、式(12)の服装識別器は、L個の弱識別器の出力により、画像における認識しようとする対象物体の有無、より詳細には、対象物体が含まれている画像らしさの度合いを出力する関数であると言える。また、図9のフローチャートを参照して説明した、弱識別器を付加することを繰り返し、識別器を生成する学習処理は、Descrete Adaboost Algorithmと呼ばれている。
服装識別器生成処理では、誤り率の高い学習画像の服装特徴量の重みが順次大きくなり、誤り率の低い服装特徴量の重みが小さくなるように、服装特徴点のペアごとに弱識別器と誤り率が計算される処理が繰り返されることになる。したがって、繰り返し処理(ステップS52乃至S61の処理)の中で、弱識別器を設定する際に選択される服装特徴量(ステップS52で選択される服装特徴量)は、徐々に誤り率の高い学習画像のものが選択されやすくなる。そのため、認識し難い学習画像の服装特徴量がより多く選択されることになり、最終的に画像中の対象物体の認識率を高くすることが可能となる。
また、繰り返し処理(ステップS52乃至S61の処理)の中で、識別器選択部105は、常に誤り率の最も低いペアに対応する弱識別器を選択することになるので、学習処理の繰り返しにより、常に信頼度の最も高い服装特徴点のペアについての弱識別器が選択されて服装識別器に加算されることになり、処理が繰り返されるごとに精度の高い弱識別器が順次加算されることになる。
さらに、服装識別器は、服装特徴量を用いて画像に対象物体としての人が含まれているか否かを識別する識別器である。そして、服装識別器を構成する各弱識別器に代入される服装特徴量に対応する服装特徴点のペアは、服装特徴点のペアのうち、入力された画像から対象物体を検出するのに適したペアである。
例えば、服装識別器に代入される服装特徴量に対応するペアは、図12に示すように、画像中の対象物体としての人の周囲にある服装特徴点のペアとされている。図12では、点線の直線は、ペアとなる2つの服装特徴点を結ぶ直線を表しており、その点線の端を中心とする四角形は、服装特徴量を求めるときに用いられるテクスチャの領域を表している。
図12の例では、画像上の人が身に着けている、その人の上半身の洋服内にある2つの服装特徴点からなり、テクスチャ間の距離、つまり服装特徴量が小さくなるペアや、人の洋服内の服装特徴点と、人ではなく背景上の服装特徴点とからなり、服装特徴量が大きくなるペアなどが選択されていることが分かる。
次に、図13のフローチャートを参照して、図5のステップS16の処理に対応する輪郭特徴量計算処理について説明する。この輪郭特徴量計算処理は、入力された学習画像上の各輪郭特徴点における輪郭特徴量を求める処理である。
ステップS101において、輪郭特徴量計算部25、より詳細には、輪郭特徴量計算部25の1次フィルタ処理部61、2次フィルタ処理部62、および3次フィルタ処理部63は、それぞれ輪郭特徴点抽出部24から供給されてきた輪郭特徴点のうち、未処理の輪郭特徴点の1つを注目画素として選択する。
ステップS102において、輪郭特徴量計算部25は、方向θqを示すカウンタqを1とする。これにより、方向θqはθ1とされる。
ステップS103において、輪郭特徴量計算部25は、ガウス幅σpを示すカウンタpを1とする。これにより、ガウス幅σpはσ1とされる。
ステップS104において、1次フィルタ処理部61は、1次フィルタ処理を行う。すなわち、1次フィルタ処理部61は、処理対象となる注目画素の画素値に基づいて、ガウス幅をσpとし、かつ方向をθqとして式(2)を演算し、フィルタ処理した結果を特徴量生成部64に供給する。つまり、式(2)における方向θがθqとされて演算が行われ、輪郭が抽出される。
ステップS105において、2次フィルタ処理部62は、2次フィルタ処理を行う。すなわち、2次フィルタ処理部62は、注目画素の画素値に基づいて、ガウス幅をσpとし、かつ方向をθqとして式(3)を演算し、フィルタ処理した結果を特徴量生成部64に供給する。つまり、式(3)における方向θがθqとされて演算が行われ、輪郭が抽出される。
ステップS106において、3次フィルタ処理部63は、3次フィルタ処理を行う。すなわち、3次フィルタ処理部63は、注目画素の画素値に基づいて、ガウス幅をσpとし、かつ方向をθqとして式(5)を演算し、フィルタ処理した結果を特徴量生成部64に供給する。つまり、式(5)における方向θがθqとされて演算が行われ、輪郭が抽出される。
ステップS107において、輪郭特徴量計算部25は、ガウス幅σpがσ3であるか、つまりカウンタp=3であるか否かを判定する。ステップS107において、ガウス幅σpがσ3でないと判定された場合、ステップS108において、輪郭特徴量計算部25は、カウンタpをインクリメントする。例えば、カウンタp=1であった場合、カウンタpがインクリメントされてp=2とされ、これによりガウス幅σpはσ2とされる。カウンタpがインクリメントされると、処理はステップS104に戻り、上述した処理が繰り返される。
一方、ステップS107において、ガウス幅σpがσ3であると判定された場合、ステップS109において、輪郭特徴量計算部25は、方向θqがθ4であるか否か、つまりカウンタq=4であるか否かを判定する。
ステップS109において、方向θqがθ4でないと判定された場合、ステップS110において、輪郭特徴量計算部25は、カウンタqをインクリメントする。例えば、カウンタq=1であった場合、カウンタqがインクリメントされてq=2とされ、これにより方向θqはθ2とされる。カウンタqがインクリメントされると、処理はステップS103に戻り、上述した処理が繰り返される。
これに対して、ステップS109において、方向θqがθ4であると判定された場合、ステップS111において、特徴量生成部64は、1次フィルタ処理部61、2次フィルタ処理部62、および3次フィルタ処理部63から供給された演算結果を輪郭特徴量として合成し、1つの輪郭特徴点に対する輪郭特徴量を生成する。
ステップS112において、輪郭特徴量計算部25は、全ての輪郭特徴点について処理が終了したか否かを判定する。例えば、輪郭特徴点抽出部24から供給された全ての輪郭特徴点について、輪郭特徴量が求められた場合、処理が終了したと判定される。
ステップS112において、全ての輪郭特徴点について処理が終了していないと判定された場合、処理はステップS101に戻り、次の輪郭特徴点が注目画素として選択される。
これに対して、ステップS112において、全ての輪郭特徴点について処理が終了したと判定された場合、特徴量生成部64は、輪郭特徴点抽出部24から供給された学習画像と、生成された各輪郭特徴点の輪郭特徴量とを輪郭識別器生成部26に供給する。そして、その後、処理は図5のステップS17に進む。
なお、学習画像からの輪郭特徴量の抽出には、ステアラブルフィルタに限らず、ガボアフィルタなどが用いられるようにしてもよい。
また、図5を参照して説明した学習処理では、ステップS16の輪郭特徴量計算処理において、各輪郭特徴点の輪郭特徴量が求められると、ステップS17において、輪郭識別器生成処理が行われる。この輪郭識別器生成処理では、輪郭識別器生成部26は、輪郭特徴量計算部25から供給された学習画像および輪郭特徴量に基づいて、輪郭識別器T(x)を生成する。なお、この輪郭識別器生成処理は、図9を参照して説明した服装識別器生成処理と同様であるので、その説明は省略する。
すなわち、服装識別器生成処理と輪郭識別器生成処理とは、処理対象となる特徴量が服装特徴量であるか、または輪郭特徴量であるかという点のみが異なる。したがって、輪郭識別器生成処理においては、最も誤り率の低い輪郭特徴点の輪郭特徴量に対応する弱識別器の和が求められ、その和が輪郭識別器T(x)とされる。そして、輪郭識別器生成部26は、生成した輪郭識別器、仮識別用特徴量とされた輪郭特徴量、および学習画像を仮統合識別器生成部27に出力する。
さらに、学習処理において、仮統合識別器生成部27により、服装識別器R(x)と、輪郭識別器T(x)とが統合されて仮統合識別器U(x)が求められる。そして、仮統合識別器生成部27から統合識別器生成部28に、学習画像、仮統合識別器U(x)、および仮識別用特徴量(服装特徴量および輪郭特徴量)が供給されると、ステップS19の統合識別器生成処理が行われる。
以下、図14のフローチャートを参照して、図5のステップS19の処理に対応する処理である統合識別器生成処理について説明する。
ステップS141において、特徴関数生成部131は、仮統合識別器生成部27から供給された仮統合識別器U(x)を用いて、任意の個数の特徴関数を生成する。
例えば、上述した式(7)に示した仮統合識別器U(x)が、合計S個(但し、Sは自然数)の弱識別器からなり、次式(13)で表されるものとする。
なお、式(13)における弱識別器us(x)(但し、1≦s≦S)は、定数αが乗算された、服装識別器R(x)を構成する弱識別器、または定数βが乗算された、輪郭識別器T(x)を構成する弱識別器である。
また、式(13)の弱識別器us(x)における「as(x[dims]>ths)」は、仮識別用特徴量に対応する特徴点から得られた特徴量x[dims]が、閾値thsよりも大きい場合に値がasとなり、特徴量x[dims]が、閾値ths未満である場合に値が0となる関数である。ここで、特徴量とは服装特徴量または輪郭特徴量であり、閾値thsは、服装識別器R(x)または輪郭識別器T(x)を構成する弱識別器における閾値である。
したがって、例えば、弱識別器us(x)が、服装識別器R(x)を構成する弱識別器fj(x)に定数αが乗算されたものである場合、閾値thsは、弱識別器fj(x)の閾値thjとされ、特徴量x[dims]は、弱識別器fj(x)に代入されるべき服装特徴量とされる。
特徴関数生成部131は、このような仮統合識別器U(x)を用いて、任意のP個(但し、Pは自然数)の特徴関数Zp(x)(但し、1≦p≦P)を生成する。
具体的には、特徴関数生成部131は、仮統合識別器U(x)を構成するS個の弱識別器us(x)のなかから、任意のR個(但し、Rは自然数)の弱識別器us(x)を選択し、選択したR個の弱識別器us(x)の線形和を1つの特徴関数Zp(x)とする。特徴関数生成部131は、そのような処理をP回繰り返し、P個の特徴関数Z1(x)乃至特徴関数ZP(x)を生成する。
なお、特徴関数Zp(x)を構成する弱識別器の個数Rは、各特徴関数Zp(x)を生成するたびに任意の数に変更される。つまり、各特徴関数Zp(x)を構成する弱識別器の個数は同じであるとは限らない。
例えば、図15に示すように、仮統合識別器U(x)がS個の弱識別器us(x)からなるとすると、それらのS個の弱識別器us(x)のうちのいくつかが選択されて、選択された弱識別器us(x)の和が特徴関数Zp(x)とされる。
図15の例では、2つの弱識別器u1(x)および弱識別器u3(x)が選択されて、それらの弱識別器の和が特徴関数Z1(x)とされている。また、2つの弱識別器u2(x)および弱識別器us(x)が選択されて、それらの弱識別器の和が特徴関数Z2(x)とされている。
ステップS142において、特徴関数生成部131は、生成したP個の特徴関数Zp(x)を用いて、仮統合識別器生成部27からの学習画像PIi(1≦i≦M)ごとの新たな特徴量Zpi(但し、1≦p≦P,1≦i≦M)を生成する。
すなわち、特徴関数生成部131は、特徴関数Zp(x)に、その特徴関数Zp(x)を構成する弱識別器us(x)に対応する、学習画像PIiの仮識別用特徴量を代入して得られた値を、学習画像PIiの1つの新たな特徴量Zpiとする。これにより、1つの学習画像PIiに対して、合計P個の新たな特徴量Z1i乃至特徴量ZPiが得られることになる。
したがって、例えば、学習画像PI1の特徴量Z11乃至特徴量ZP1は、図10における学習画像PI1の服装特徴量A1乃至服装特徴量ANに相当する。但し、新たな特徴量の個数Pは、服装特徴量や輪郭特徴量の個数と同じである必要はない。
特徴関数生成部131は、各学習画像PIiの特徴量Zpiを求めると、それらの特徴量Zpiをサンプリング部132に供給する。
ステップS143において、重み設定部133は、例えば、学習画像PIi(1≦i≦M)毎の重みWi’を全て1/Mに初期化し、識別器選択部136は、カウンタqを1に、弱識別器の和からなる統合識別器G(x)を0にそれぞれ初期化する。
ここで、iは学習画像PIiを識別するものであり、1≦i≦Mである。ステップS143の処理により、全ての学習画像PIiの重みWi’は、いずれも正規化された同一の重み(=1/M)とされる。また、カウンタqは、予め定められた、統合識別器G(x)を更新する回数を示している。
ステップS144において、サンプリング部132は、特徴関数Zp(x)(但し、1≦p≦P)ごとに、複数の学習画像PIiのそれぞれの特徴量Zpiから、学習画像PIiの重みWi’に応じて、M個の特徴量Zpiを選択し、並び替え部134に供給する。
例えば、特徴関数生成部131からサンプリング部132に、M個の学習画像PI1乃至学習画像PIMの特徴量Zpiが供給されたとし、同じ特徴関数から得られた各学習画像PIiの特徴量Zpiが1つのグループGrp(但し、1≦p≦P)とされるとする。
この場合、サンプリング部132は、特徴関数Zp(x)ごと、つまりグループGrpごとに、そのグループに属す特徴量Zpiから学習画像PIiの重みWi’に応じて、M個の特徴量Zpiを抽選で選択する。例えば、サンプリング部132は、重みWi’に応じて、グループGr1に属す特徴量Z11乃至特徴量Z1Mから、M個の特徴量Z1iを選択する。なお、最初の処理においては、いずれの重みWi’も1/Mであり、等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになる。そのため、ここでは、最初の処理では各グループGr1において、全ての特徴量が選択されたものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
ステップS145において、並び替え部134は、P個のグループGrpのそれぞれについて、グループGrp、つまり特徴関数Zp(x)ごとに選択されたM個の特徴量Zpiを昇べきの順、または降べきの順に並び替えて、識別器設定部135に供給する。
ステップS146において、識別器設定部135は、仮統合識別器生成部27から供給された学習画像に付加されている正誤情報(ラベル)に基づいて、グループGrpごと、つまり特徴関数Zp(x)ごとに、閾値を変化させながら誤り率計算部135aを制御して誤り率eqpを計算させ、誤り率eqpが最小となるように閾値を設定する。
ここで、特徴関数Zp(x)ごとの閾値thqpが、1個の弱識別器gqp(x)となり、識別器設定部135は、弱識別器gqp(x)ごとの誤り率eqpを識別器選択部136に供給する。すなわち、P個の特徴関数Zp(x)のそれぞれに対して、P個の弱識別器gqp(x)のそれぞれが設定され、P個の弱識別器gqp(x)のそれぞれについて誤り率eqpが求められることになる。
なお、弱識別器gqp(x)は、認識対象の画像に、認識しようとする対象物体を含む場合に、所定の値(aqp+bqp)を出力し、認識しようとする対象物体を含まない場合、所定の値bqpを出力する関数である。例えば、特徴関数Z1(x)から得られた特徴量Z1iが昇べき、または、降べきの順に並べられた場合、図11を参照して説明した場合と同様に閾値thq1が設定される。
誤り率計算部135aは、上述した式(8)と同様の計算を行って、学習画像の正誤情報(ラベル)に基づいて、エラーであるとみなされた特徴量Zpiが抽出された学習画像の重みWi’を加算し、誤り率eqpを計算する。すなわち、Ew[1(y≠gqp)]を計算することにより、誤り率eqpが求められる。
また、識別器設定部135は、誤り率計算部135aにより求められた誤り率eqpと、閾値thqpとを用いて弱識別器gqp(x)を求める。例えば、弱識別器gqp(x)がregression stumpと呼ばれる関数とされる場合、次式(14)により弱識別器gqp(x)が求められる。なお、弱識別器は、regression stumpに限らず、stumpなどの関数とされてもよい。
gqp(x)=aqp(Zp(x)>thqp)+bqp ・・・(14)
なお、式(14)において、「Zp(x)」は、特徴関数Zp(x)を示している。また、「aqp(Zp(x)>thqp)」は、特徴関数Zp(x)に、仮識別用特徴量に対応する服装特徴点または輪郭特徴点における服装特徴量または輪郭特徴量を代入して得られる値x[dimp]が、閾値thqpよりも大きい場合に値がaqpとなり、値x[dimp]が、閾値thqp未満である場合に値が0となる関数である。
さらに、式(14)における値aqpおよび値bqpは、例えば、誤り率eqpから求められる。具体的には、例えば、値aqpは、後述する信頼度cqとされる。この信頼度cqは、誤り率eqpから求められる。なお、値aqpおよび値bqpは予め求められた値とされてもよい。
このようにして、グループGrpごとに弱識別器gqp(x)が設定され、誤り率eqpが識別器設定部135から識別器選択部136に供給されると、処理はステップS146からステップS147に進む。
ステップS147において、識別器選択部136は、識別器設定部135から供給された特徴関数Zp(x)ごとのP個の誤り率eqpに基づいて、P個の弱識別器gqp(x)のうち、誤り率eqpが最小となる弱識別器gqp(x)を選択する。そして、識別器選択部136は、識別器設定部135から選択した弱識別器gqp(x)を取得する。
ステップS148において、識別器選択部136は、選択した弱識別器gqp(x)の誤り率eqpに基づいて、上述した式(10)と同様の計算を行って信頼度cqを求め、計算結果を重み更新部137に供給する。
なお、この場合、誤り率eqpのうち、選択された弱識別器gqp(x)の誤り率eqp、つまりP個の誤り率eqpのうちの最小の誤り率eqpをeqとすると、上述した式(10)におけるejがeqとされて信頼度cqが求められる。また、以下において、ステップS147の処理において選択されたグループGrpの弱識別器を、弱識別器gq(x)とも称し、その弱識別器gq(x)の誤り率eqpを誤り率eqとも称する。
ステップS149において、重み更新部137は、供給された信頼度cqに基づいて、上述した式(11)と同様の計算を行って、学習画像PIiごとに重みWi’を再計算すると共に、全ての重みWi’を正規化して更新し、更新結果を重み設定部133に供給する。すなわち、Wi’exp[−cq・1(y≠gq)]が計算されて重みWi’が更新される。重み設定部133は、重み更新部137より供給されてくる重みの更新結果に基づいて、学習画像ごとの重みを設定する。
ステップS150において、識別器選択部136は、新たに求められた弱識別器gq(x)を用いて、保持している統合識別器G(x)を更新する。すなわち、識別器選択部136は、次式(15)を計算することで統合識別器G(x)を更新する。
G(x)=G’(x)+gq(x) ・・・(15)
なお、式(15)において、G’(x)は、識別器選択部136が保持している更新前の統合識別器を表しており、gq(x)は、新たに求められた弱識別器gq(x)を表している。すなわち、識別器選択部136は、保持している統合識別器G’(x)に、新たに求められた弱識別器gq(x)を加算することで統合識別器を更新する。
ステップS151において、識別器選択部136は、誤り率eqpが最小となる弱認識器gq(x)に対応する仮識別特徴量、つまり服装特徴点のペアkの服装特徴量、または輪郭特徴点の輪郭特徴量の少なくとも何れか一方からなる特徴量を、弱認識器gq(x)に代入されるべきペアkの服装特徴点または輪郭特徴点における特徴量である識別用特徴量として保持する。
ステップS152において、識別器選択部136は、カウンタqがQ以上であるか否かを判定する。ステップS152において、カウンタqがQ以上でないと判定された場合、ステップS153において、識別器選択部136は、カウンタqをインクリメントする。そして、その後、処理はステップS144に戻り、上述した処理が繰り返される。
すなわち、新たに設定された学習画像ごとの重みWi’が用いられて、P個の特徴関数Zp(x)について、新たな弱識別器gqp(x)が設定され、それらの弱識別器gqp(x)から誤り率eqpが最小となる弱認識器gqp(x)が選択される。そして、選択された弱認識器gqp(x)により、統合識別器が更新される。
これに対して、ステップS152において、カウンタqがQ以上であると判定された場合、ステップS154において、識別器選択部136は、保持している統合識別器および識別用特徴を識別器記録部12に供給して記録させる。そして、その後、統合識別器生成処理は終了し、図5の学習処理に戻って、学習処理も終了する。
以上の処理により、Q個の比較的誤り率の低い弱識別器gq(x)(1≦q≦Q)からなる統合識別器が識別器記録部12に供給されるとともに、それぞれの弱識別器gq(x)で使用されるべき服装特徴点のペアkの服装特徴量と、輪郭特徴点の輪郭特徴量とが識別用特徴量として識別器記録部12に供給される。ここでQは、Q≦Pであり、任意の数とされる。すなわち、統合識別器G(x)は、任意のQ個の弱識別器gq(x)の線形和とされる。
このようにして、学習装置11は、統計学習して得られた仮統合識別器を構成する弱識別器のいくつか選択し、それらの弱識別器の和からなる特徴関数を生成する。そして、学習装置11は、特徴関数に特徴量を代入して得られる値、つまり一度、統計学習した弱識別器による、対象物体の識別のスコアを新たな特徴量として定義し、さらに、それらの新たな特徴量を用いた統計学習により、最終的な統合識別器を生成する。
例えば、1つの特徴関数Zp(x)が、1つの弱識別器u1(x)から構成される場合、図16に示すように、特徴関数Zp(x)に、弱識別器u1(x)に対応する特徴量(仮識別用特徴量)を代入して得られる特徴量ZPの取り得る値は、(a1+b1)またはb1の2通りである。なお、図16において、縦方向は特徴量ZPの値を示しており、横方向は特徴量x[dim1]の値を示している。
図16では、特徴量ZPの値は、対象物体が含まれている画像らしさの度合いを示している。そして、特徴量ZPの値が、所定の基準となる閾値TH以上である場合には、画像に対象物体が含まれているとされ、特徴量ZPの値が閾値TH未満の場合には、画像に対象物体が含まれていないとされる。
また、例えば、1つの特徴関数Zp(x)が、2つの弱識別器u1(x)および弱識別器u2(x)から構成される場合、図17に示すように、特徴関数Zp(x)に、弱識別器u1(x)および弱識別器u2(x)に対応する特徴量を代入して得られる特徴量ZPの取り得る値は、4通りである。なお、図17において、縦方向は特徴量ZPの値を示しており、横方向は特徴量の値を示している。
図17では、特徴量ZPの値は、対象物体が含まれている画像らしさの度合いを示しており、その値は(b1+b2)、(a1+b1+a2+b2)、(a1+b1+b2)、または(b1+a2+b2)の何れかとなる。また、特徴量ZPの値が、所定の基準となる閾値TH以上である場合には、画像に対象物体が含まれているとされ、特徴量ZPの値が閾値TH未満の場合には、画像に対象物体が含まれていないとされる。したがって、特徴量ZPの値が(a1+b1+a2+b2)、(a1+b1+b2)、または(b1+a2+b2)である場合には、画像に対象物体が含まれているとされる。
さらに、1つの特徴関数Zp(x)が、N個の弱識別器us(x)から構成される場合には、特徴関数Zp(x)に、各弱識別器に対応する仮識別用特徴量を代入して得られる特徴量ZPの取り得る値は、2N通りとなる。また、特徴量ZPの値は、対象物体が含まれている画像らしさの度合いを示しているので、その値が大きいほど、画像に対象物体としての人が含まれていることの確からしさは大きいことになる。
このように、特徴関数Zp(x)を構成する弱識別器us(x)の個数を多くすると、特徴関数Zp(x)から得られる新たな特徴量ZPの取り得る値の数も、より多くなる。したがって、特徴関数Zp(x)を構成する弱識別器us(x)の個数を多くするほど、特徴量空間上における複雑なサンプル(対象物体)の特徴量分布を記述できるようになる。つまり、特徴量空間上における、画像中に対象物体がある場合に得られる特徴量(の値)からなる領域を、より正確に求めることができる。これにより、特徴量(統合識別器)による対象物体の検出精度を向上させることができる。
以上のようにして生成された統合識別器は、識別器記録部12に記録されて、認識装置13に提供されることになる。認識装置13において、この統合識別器を用いて対象物体の検出を行えば、より確実に入力画像から対象物体としての人を検出できるようになる。
なお、ここで注意すべき点は、図16および図17の例では、同じ次元の特徴量、つまり同じ特徴点から得られる特徴量(服装特徴量または輪郭特徴量)を例に説明したが、実際には、特徴関数Zp(x)には、異なる次元の特徴量が代入されることになる。
ここで、Real Adaboostと、学習装置11による統計的な学習処理とを比較すると、Real Adaboostでは、サンプル(対象物体)の特徴量分布を学習画像から直接、求める。つまり、Real Adaboostでは、ある一次元の特徴量分布が学習される。これに対して、学習装置11での学習処理は、最も切れやすい次元の特徴量分布、つまり学習に最も適した次元の特徴量の分布をいくつか組み合わせて、それらの特徴量分布を学習することに対応する。
ところで、認識装置13に入力画像が入力され、対象物体としての人の検出が指示されると、認識装置13は、人検出処理を開始して、入力画像から対象物体を検出する。以下、図18のフローチャートを参照して、認識装置13による人検出処理について説明する。
なお、ステップS201の処理乃至ステップS203の処理のそれぞれは、図5のステップS11の処理乃至ステップS13の処理のそれぞれと同様であるので、その説明は省略する。すなわち、服装特徴点抽出部31は、入力された入力画像から服装特徴点を抽出し、服装特徴量計算部32は、服装特徴点抽出部31により抽出された服装特徴点のペアリングを行って、各ペアの服装特徴量を計算する。そして、服装特徴量計算部32は、各ペアについて求めた服装特徴量を識別計算部35に供給する。
ステップS204において、輪郭特徴点抽出部33は、図5のステップS15の処理と同様の処理を行い、入力された入力画像から輪郭特徴点を抽出し、入力画像とともに輪郭特徴量計算部34に供給する。
ステップS205において、輪郭特徴量計算部34は、輪郭特徴点抽出部33からの入力画像および輪郭特徴点に基づいて、輪郭特徴量計算処理を行い、各輪郭特徴点の輪郭特徴量を計算する。そして、輪郭特徴量計算部34は、求められた輪郭特徴量を識別計算部35に供給する。なお、この輪郭特徴量計算処理は、図13を参照して説明した輪郭特徴量計算処理と同様の処理であるため、その説明は省略する。
ステップS206において、識別計算部35は、識別器記録部12から識別用特徴量および統合識別器を読み出して、読み出した統合識別器に特徴量を代入して計算する。すなわち、識別計算部35は、服装特徴量計算部32からの服装特徴量、および輪郭特徴量計算部34からの輪郭特徴量のうちの識別用特徴量に対応するものを、識別器記録部12から取得した統合識別器G(x)に代入して演算を行う。したがって、統合識別器G(x)を構成する各弱識別器gq(x)に、識別用特徴量に対応する服装特徴量または輪郭特徴量が代入されて演算が行われる。
ここで、統合識別器を構成する弱識別器に代入される特徴量は、識別用特徴量とされた特徴量が求められた、学習画像の服装特徴点のペアまたは輪郭特徴点と同じ位置にある、入力画像上の服装特徴点のペアまたは輪郭特徴点から求められた特徴量(服装特徴量または輪郭特徴量)である。
統合識別器に特徴量が代入されて演算が行われると、その演算の結果として、入力画像に対する、対象物体が含まれている画像らしさの度合いを示す値が得られる。識別計算部35は、統合識別器での演算結果を識別結果出力部36に供給する。
ステップS207において、識別結果出力部36は、識別計算部35からの演算結果に基づいて、人の検出結果を出力し、人検出処理は終了する。すなわち、対象物体が入力画像で認識されたか否か(入力画像から人が検出されたか否か)の識別結果が出力される。例えば、識別計算部35から供給された演算結果の値が、予め定められた閾値以上である場合、入力画像から対象物体としての人が検出された旨のメッセージが識別結果として出力される。また、例えば、入力画像における、対象物体としての人が検出された領域が枠などで囲まれて、その枠の表示された入力画像が、識別結果として表示されてもよい。
このようにして、認識装置13は、入力画像から服装特徴点を抽出して、服装特徴点のペアの服装特徴量を求めるとともに、入力画像から輪郭特徴点を抽出して輪郭特徴量を求める。そして、認識装置13は、求めた服装特徴量および輪郭特徴量と、識別器記録部12に記録されている統合識別器とを用いて、入力画像から対象物体を検出する。
このように、服装特徴量および輪郭特徴量を用いて入力画像から対象物体を検出することで、より確実に画像から対象物体を検出することができる。すなわち、入力画像から服装特徴量または輪郭特徴量の少なくとも何れか一方を充分に抽出することができれば、入力画像から対象物体を確実に検出することができる。
さらに、特徴関数から得られた新たな特徴量を用いて求められた統合識別器を用いることで、入力画像からより確実に対象物体を検出することができる。
なお、以上においては、画像から検出される対象物体が人である例について説明したが、対象物体は、人に限らず、どのようなものであってもよい。また、画像から抽出される特徴量もどのようなものであってもよい。
例えば、学習画像から輝度情報、色情報、エッジ情報などを特徴量として抽出し、抽出された特徴量と、予め用意された、対象物体の含まれるモデル画像から抽出された特徴量との相関値を求めて、その相関値を学習処理の特徴量としてもよい。そのような場合、相関値が特徴量とされて、統計学習により複数の弱識別器からなる仮の識別器が生成され、その仮の識別器を構成する弱識別器のいくつかの線形和が、1つの特徴関数とされる。さらに、その特徴関数から得られる特徴量が用いられて、統計学習により最終的な識別器が得られる。
この場合も、一度、学習により得られた仮の識別器を構成するいくつかの弱識別器からなる特徴関数により、新たな特徴量が定義されて、再度の学習により、最終的な識別器が得られるので、過学習を防止するとともに、より確実に対象物体を検出することのできる識別器が得られる。
また、図1の学習装置11においても、服装識別器または輪郭識別器の何れか一方だけを生成して、服装識別器または輪郭識別器の何れかから特徴関数が生成されてもよい。
このように、一度、学習されて得られた識別器を構成する弱識別器を用いて新たな特徴量を定義し、再度の学習により最終的な識別器を得る方法は、汎化性能の高い学習方法であるので、画像認識に限らず、音声や運動学習などの様々な統計学習タスクに対して有効である。また、この学習方法は、カスケード接続のBoostingの各カスケードの出力は勿論のこと、任意の弱識別器のスコアを利用することができるので、Boosting学習一般に適用可能である。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図19は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507、ハードディスクや不揮発性のメモリなどよりなる記録部508、ネットワークインターフェースなどよりなる通信部509、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア511を駆動するドライブ510が接続されている。
以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU501)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア511に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 学習装置, 12 識別器記録部, 13 認識装置, 21 服装特徴点抽出部, 22 服装特徴量計算部, 23 服装識別器生成部, 24 輪郭特徴点抽出部, 25 輪郭特徴量計算部, 26 輪郭識別器生成部, 27 仮統合識別器生成部, 28 統合識別器生成部, 35 識別計算部, 36 識別結果出力部, 131 特徴関数生成部, 135 識別器設定部, 136 識別器選択部