説明

情報処理装置および方法、並びにプログラム

【課題】処理速度、制度を向上させた画像認識を行う。
【解決手段】識別器を構成する複数の弱識別器を最適な配列とするために、各弱識別器にサンプル学習画像を処理させたときのスコアが取得される。ポジティブ画像が処理されたときのスコアのうち、最小値のスコアが抽出され、その最小値のスコアよりもさらに小さいネガティブ画像が処理されたときのスコアの数が数えられる。その数が多い順に、弱識別器が配置される。弱識別器の並び替えが行われることにより識別器が生成され、この識別器は、演算が早い段階で打ち切られる特徴を有する。本発明は、画像から対象物を認識する認識装置や認識装置のための学習を行う学習装置に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、画像から、より確実に、より高速に、対象物体を検出できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、画像から人を検出する技術は、主にセキュリティや車載用途のために研究開発されてきた。画像から人を検出(認識)するための主な特徴量として、エッジ抽出により得られる特徴量が用いられている。これらの技術においては、エッジ抽出で得られた特徴量の様々な変化形が新たな特徴量として定義されて、人の認識が行われる。また、認識するときの認識器として、ブースティング(Boosting)の統計学習により得られる判別器が用いられることがある。(特許文献1乃至4参照)
【先行技術文献】
【非特許文献】
【0003】
【特許文献1】Paul Viola & Michael JonesUS20040013304 A1System and method for detecting objects in images
【特許文献2】Paul Viola & Michael JonesUS20020102024 A1Method and system for object detection in digital imagesCOMPAQ INFORMATION TECHNOLOGIE
【特許文献3】Paul Viola & Michael JonesUS7099510 B2Method and system for object detection in digital images HEWLETT PACKARD DEVELOPMENT CO
【特許文献4】Paul Viola & Michael JonesUS7020337 B2System and method for detecting objects in imagesMITSUBISHI ELECTRIC RES LAB
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来、ブースティング統計学習により得られる判別器は、弱識別器は学習された順番に演算していた。特許文献1乃至4では、高速演算を行うために、ブースティングの各カスケードステージで打ち切りを行うことを提案している。しかしながら、打ち切りを行うだけでは、さらなる高速化を期待することができない。
【0005】
本発明は、このような状況に鑑みてなされたものであり、より精度良く、より高速に人などの対象物を検出できるようにするものである。
【課題を解決するための手段】
【0006】
本発明の一側面の第1の情報処理装置は、複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出する第1の算出手段と、前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出する第2の算出手段と、前記第2の算出手段により算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替える並び替え手段とを備える。
【0007】
本発明の一側面の第1の情報処理方法は、複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出し、前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出し、算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替えるステップを含む。
【0008】
本発明の一側面の第1のプログラムは、複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出し、前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出し、算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替えるステップを含む処理を実行するコンピュータが読み取り可能なプログラムである。
【0009】
本発明の一側面の第1の情報処理装置および方法、並びにプログラムにおいては、複数の弱識別器を含む識別器の弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアが算出され、ポジティブ画像が処理されたときのスコアのうちの最小値より小さい、ネガティブ画像を処理したときのスコアの個数が最大の弱識別器から順に、弱識別器が並び替えられることで、識別器が生成される。
【0010】
本発明の一側面の第2の情報処理装置は、複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出する第1の算出手段と、前記第1の算出手段で算出された前記スコアから学習誤差を算出する第2の算出手段と、前記第2の算出手段により算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替える並び替え手段とを備える。
【0011】
本発明の一側面の第2の情報処理方法は、複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出し、算出された前記スコアから学習誤差を算出し、算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替えるステップを含む。
【0012】
本発明の一側面の第2のプログラムは、複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出し、算出された前記スコアから学習誤差を算出し、算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替えるステップを含む処理を実行するコンピュータが読み取り可能なプログラムである。
【0013】
本発明の一側面の第2の情報処理装置および方法、並びにプログラムにおいては、複数の弱識別器を含む識別器の弱識別器毎に、サンプル画像毎のスコアが算出され、算出されたスコアから学習誤差が算出され、その学習誤差が最小の弱識別器から順に、弱識別器が並び替えられることで、識別器が生成される。
【0014】
本発明の一側面の第3の情報処理装置は、複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出する算出手段と、遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記算出手段により算出された前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成する生成手段とを備える。
【0015】
本発明の一側面の第3の情報処理方法は、複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出し、遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成するステップを含む。
【0016】
本発明の一側面の第3のプログラムは、複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出し、遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成するステップを含む処理を実行するコンピュータが読み取り可能なプログラムである。
【0017】
本発明の一側面の第3の情報処理装置および方法、並びにプログラムにおいては、複数の弱識別器を含む識別器であり、弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの弱識別器の平均個数が算出され、その平均個数と、遺伝的アルゴリズムに基づき、平均個数が最も小さくなる識別器が生成される。
【発明の効果】
【0018】
本発明の一側面によれば、精度良くかつ高速に対象物を検出することが可能となる。
【図面の簡単な説明】
【0019】
【図1】本発明を適用した識別システムの一実施の形態の構成を示す図である。
【図2】特徴量計算部の詳細な構成例を示す図である。
【図3】ステアラブルフィルタについて説明する図である。
【図4】識別器生成部の詳細な構成例を示す図である。
【図5】学習処理を説明するフローチャートである。
【図6】特徴量計算処理を説明するフローチャートである。
【図7】識別器生成処理を説明するフローチャートである。
【図8】識別器の生成について説明する図である。
【図9】特徴量を説明する図である。
【図10】特徴点のペア毎の特徴量のサンプリングについて説明する図である。
【図11】弱識別器の設定について説明する図である。
【図12】識別器の構成について説明する図である。
【図13】累積加算値と弱識別器との関係を示した図である。
【図14】第1の並び替えの処理について説明するフローチャートである。
【図15】検証結果を示す図である。
【図16】第2の並び替えの処理について説明するフローチャートである。
【図17】第3の並び替えの処理について説明するフローチャートである。
【図18】交叉について説明する図である。
【図19】認識処理を説明するフローチャートである。
【図20】記録媒体について説明するための図である。
【発明を実施するための形態】
【0020】
以下に、本発明の実施の形態について図面を参照して説明する。
【0021】
[システム構成について]
図1は、本発明を適用した物体識別システムの一実施の形態の構成例を示すブロック図である。この物体識別システムは、学習装置11、識別器記録部12、および認識装置13からなり、入力された画像における、対象物体として例えば人間の画像のある領域を認識させるものである。
【0022】
学習装置11は、入力された学習画像に基づいて、認識装置13において画像上における対象物体の有無を識別する処理を行うときに用いられる識別器を生成し、識別器記録部12に記録させる。認識装置13は、識別器記録部12に記録されている識別用特徴量および識別器を用いて、入力された入力画像に対象物体の画像が存在するか否かを識別し、その識別結果を出力する。
【0023】
学習装置11は、画像入力部21、多重解像度画像生成部22、特徴点抽出部23、特徴量計算部24、および識別器生成部25から構成される。
【0024】
多重解像度画像生成部22は、画像入力部21により入力された学習画像から、互いに解像度の異なる複数の画像を生成し、それらの画像を多重解像度画像として特徴点抽出部23に供給する。例えば、レベルL1乃至レベルL8までの8つの解像度の階層の多重解像度画像が生成される。ここでは、レベルL1の多重解像度画像が最も解像度が高く、レベルL1からレベルL8まで順番に多重解像度画像の解像度が低くなるものとする。
【0025】
特徴点抽出部23は、多重解像度画像生成部22で生成された多重解像度画像を構成する各画像(学習画像)から、その学習画像の画素のいくつかを識別器を生成するときに用いられる特徴点として抽出し、抽出した特徴点と学習画像とを特徴量計算部24に供給する。ここで、識別器とは、統計学習により生成された、複数の弱識別器からなる強い識別器であり、例えば物体の輪郭を利用して、入力された画像中に物体の画像の領域が存在するか否かを識別するときに用いられる。
【0026】
特徴量計算部24は、特徴点抽出部23からの学習画像に基づいて、例えばステアラブルフィルタ(Steerable Filter)を用いたフィルタ処理により、特徴点毎に、抽出された輪郭を示す特徴量を計算し、求められた特徴量と学習画像とを識別器生成部25に供給する。識別器生成部25は、特徴量計算部24から供給された学習画像および特徴量に基づいて、例えばAdaboostによる統計学習処理を行い、対象物体である例えば人を認識する識別器を生成する。また、識別器生成部25は、生成した識別器を識別器記憶部12に供給する。
【0027】
認識装置13は、画像入力部31、多重解像度画像生成部32、特徴点抽出部33、特徴量計算部34、識別計算部35、および識別結果出力部36から構成されている。認識装置13の画像入力部31乃至特徴量計算部34のそれぞれは、対象物体を認識しようとする入力画像に対して、学習装置11の画像入力部21乃至特徴量計算部24のそれぞれと同様の処理を行うものであるので、その詳細な説明は省略する。
【0028】
識別計算部35は、識別器記録部12に記録されている識別用特徴量および識別器を読み出す。また、識別計算部35は、特徴量計算部34からの特徴量のうちの識別用特徴量に対応するものを、読み出した識別器に代入して演算を行う。識別結果出力部36は、識別計算部35における演算結果を取得し、その演算結果に基づいて、対象物体が入力画像で認識されたか否かの識別結果を出力する。
【0029】
図2は、図1の特徴量計算部24のより詳細な構成例を示す図である。特徴量計算部34は、特徴量計算部24と同様の構成を有するため、ここでは、特徴量計算部24の構成を例にあげて説明する。特徴量計算部24は、1次フィルタ処理部51、2次フィルタ処理部52、3次フィルタ処理部53、および特徴量生成部54から構成される。また、特徴点抽出部23からの学習画像は、1次フィルタ処理部51乃至特徴量生成部54に供給され、特徴点は、1次フィルタ処理部51乃至3次フィルタ処理部53に供給される。
【0030】
1次フィルタ処理部51は、供給された特徴点毎に、特徴点に対してガウス関数Gの1次微分関数Gによりフィルタ処理を施して特徴量を抽出し、特徴量生成部54に供給する。ここで、ガウス関数G、および1次微分関数Gは、次式(1)および式(2)により示される。
【0031】
【数1】

【0032】
【数2】

【0033】
式(1)において、σはガウス幅を示している。式(2)において、θは任意の角度を示し、計算したいフィルタの方向を示している。
【0034】
例えば、1次フィルタ処理部51は、ガウス関数Gのガウス幅σを3つの所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させ、ガウス幅σ毎に所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について式(2)を計算する。
【0035】
なお、方向θは4方向に限らず、8方向、例えばpiを8方向に等分したときの各方向などとしてもよい。また、従来は、上記したように、複数のガウス幅を用いて処理を行っていたが、本実施の形態においては、後述するように、ガウス幅は1つだけ用意しておけば良い。換言すれば、ガウス幅を変化させる必要がない。よって、上記では、“ガウス幅を3つの所定値に変化させ、ガウス幅σ毎に所定の4方向について式(2)を計算する”と記載したが、本実施の形態においては、設定されているガウス幅σにおいて所定の方向の4方向について式(2)を計算するだけでよい。
【0036】
よって、複数のガウス幅毎に計算する必要がないため、計算量を低減させることが可能となる。このようなことは、他のフィルタ、例えば、2次フィルタ処理部52、3次フィルタ処理部53においても同様である。
【0037】
2次フィルタ処理部52は、供給された特徴点毎に、特徴点に対してガウス関数Gの2次微分関数Gによりフィルタ処理を施して特徴量を抽出し、特徴量生成部54に供給する。次式(3)は、2次微分関数Gを示しており、式(3)においてθは任意の角度を示している。
【0038】
【数3】

【0039】
また、式(3)における係数k2i(θ)(但し、i=1,2,3)は、次式(4)で示される関数である。
【0040】
【数4】

【0041】
例えば、2次フィルタ処理部52は、ガウス関数Gの所定のガウス幅σにおいて、所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について式(3)を計算する。
【0042】
3次フィルタ処理部53は、供給された特徴点毎に、特徴点に対してガウス関数Gの3次微分関数Gによりフィルタ処理を施して特徴量を抽出し、特徴量生成部54に供給する。次式(5)は、3次微分関数Gを示しており、式(5)においてθは任意の角度を示している。
【0043】
【数5】

【0044】
また、式(5)における係数k3i(θ)(但し、i=1,2,3)は、次式(6)で示される関数である。
【0045】
【数6】

【0046】
例えば、3次フィルタ処理部53は、ガウス関数Gの所定のガウス幅σにおいて、所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について、式(5)を計算する。
【0047】
特徴量生成部54は、1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53のそれぞれから供給された、4つの方向θについて計算された各特徴点の特徴量の供給を受け、供給された合計12個(=3(次数)×4(方向))の特徴量を並べて特徴点における特徴量とする。
【0048】
また、各フィルタ処理部には、多重解像度画像生成部22から異なる解像度の複数の画像が供給されるため、各画像から4つの方向θについて計算された各特徴点の特徴量も供給される。この供給される特徴量は、多重解像度画像生成部22が生成する画像の枚数に依存し、例えば、レベル1からレベル8までの8枚の画像が生成される場合、8枚分の4つの方向θについて計算された各特徴点の特徴量が供給されることになる。
【0049】
また、特徴量生成部54は、生成した特徴量と、供給された学習画像とを識別器生成部25に供給する。
【0050】
このように、特徴量計算部24では、ガウス関数を微分して得られる、方向θに選択性を持つフィルタ(基底関数)が用いられて、微分の次数毎に異なる特徴量(輪郭)が抽出され、特徴量とされている。
【0051】
特徴量の抽出にステアラブルフィルタを用いる場合、図3に示すように、方向θおよびガウス幅σの異なるフィルタを用意すれば、それらのフィルタの線形結合により、任意の方向θのフィルタ、すなわちガウス関数Gの微分関数G(但し、n=1,2,3)を表現することができる。
【0052】
図3において、図中、左側の一番上の列の画像は、図中、左から順番にガウス幅σ=2である場合における1次微分関数G(0°)および1次微分関数G(90°)を表している。また、図中、左側の真ん中の列の画像は、図中、左から順番にガウス幅σ=2である場合における2次微分関数G(0°)、2次微分関数G(60°)、2次微分関数G(120°)、およびラプラシアンを表している。さらに、図中、左側の一番下の列の画像は、図中、左から順番にガウス幅σ=2である場合における3次微分関数G(0°)、3次微分関数G(45°)、3次微分関数G(90°)、および3次微分関数G(135°)を表している。
【0053】
また、図中、右側の横方向の列のうちの一番上の列の画像は、図中、左側から順番に、ガウス幅σ=1である場合における1次微分関数G(θ)のθを0,1/8pi,2/8pi,3/8pi,4/8pi,5/8pi,6/8pi,7/8piとしたものを表している。
【0054】
同様に、図中、右側の横方向の各列の画像は、図中、上から二番目から下方向に順番に、ガウス幅σ=2である場合における1次微分関数G(θ)、ガウス幅σ=4である場合における1次微分関数G(θ)、ガウス幅σ=1である場合における2次微分関数G(θ)、ガウス幅σ=2である場合における2次微分関数G(θ)、ガウス幅σ=4である場合における2次微分関数G(θ)、ガウス幅σ=1である場合における3次微分関数G(θ)、ガウス幅σ=2である場合における3次微分関数G(θ)、およびガウス幅σ=4である場合における3次微分関数G(θ)を示している。そして、それらの各列の画像は、図中、左側から順番に微分関数の方向θを0,1/8pi,2/8pi,3/8pi,4/8pi,5/8pi,6/8pi,7/8piとしたものを表している。
【0055】
例えば、図中、左側のフィルタである1次微分関数G(0°)および1次微分関数G(90°)を用いることで、図中、右側の上から二番目の列の各方向θにおける1次微分関数G(θ)を表すことができる。同様に、図中、左側の2次微分関数Gを用いて、図中、右側の上から5番目の列に示す各方向θにおける2次微分関数G(θ)を表すことができ、図中、左側の3次微分関数Gを用いて、図中、右側の上から8番目の列に示す各方向θにおける3次微分関数G(θ)を表すことができる。すなわち、各次元の任意の方向の微分関数は、その次元より1だけ多い数の基底関数があれば、それらの基底関数の線形結合により表現することができる。
【0056】
[識別器生成部の構成について]
図4は、図1の識別器生成部25のより詳細な構成例を示すブロック図である。識別器生成部25は、サンプリング部61、重み設定部62、並び替え部63、識別器設定部64、識別器選択部65、および重み更新部66から構成される。
【0057】
サンプリング部61は、重み設定部62により設定される学習画像単位の重みに応じて、特徴点のペア毎に、複数の学習画像のそれぞれの同じ位置の特徴点のペアの特徴量から、M個の特徴量をサンプリングして並び替え部63に供給する。
【0058】
並び替え部63は、各特徴点のペアについて、サンプリングされたM個の特徴量を昇順、または降順に並び替えて識別器設定部64に供給する。
【0059】
識別器設定部64は、特徴量が抽出された学習画像に認識しようとする対象物体が含まれているか否かを示す正誤情報に基づいて、昇順、または降順に並び替えられた各ペアの特徴量のそれぞれについて、閾値を変化させながら誤り率計算部64aを制御して、誤り率を計算させ、誤り率が最小となるように閾値を設定する(この閾値が、弱識別器として設定される)。さらに、識別器設定部64は、弱識別器毎の誤り率を識別器選択部65に供給する。
【0060】
学習画像には、その学習画像に対象物体が含まれているか否かを示す正誤情報(ラベル)が付加されており、識別器設定部64は、特徴量計算部24から供給された学習画像に付加されている正誤情報に基づいて、弱識別器の設定を行う。
【0061】
識別器選択部65は、弱識別器のうち、誤り率が最小となる弱識別器を選択して、弱識別器からなる識別器を更新し、最終的な識別器および各弱識別器に対応する特徴量を識別器記憶部12に供給する。さらに、識別器選択部65は、選択した弱識別器の誤り率に基づいて信頼度を計算し、重み更新部66に供給する。
【0062】
重み更新部66は、供給された信頼度に基づいて学習画像毎の重みを再計算するとともに、重みを正規化して更新し、更新結果を重み設定部62に供給する。重み設定部62は、重み更新部66より供給されてくる重みの更新結果に基づいて、学習画像単位の重みを設定する。
【0063】
[学習処理について]
次に、学習装置11で行われる学習処理について説明を加える。学習装置11に学習画像が入力され、識別器の生成が指示されると、学習装置11は、学習処理を開始して統計学習により識別器を生成する。以下、図5乃至7のフローチャートを参照して、学習装置11による学習処理について説明する。
【0064】
ステップS11において、多重解像度画像生成部22は、入力された学習画像から、多重解像度画像を生成する。上記したように、多重解像度画像生成部22は、例えば、レベルL1乃至レベルL8までの8つの解像度の階層の多重解像度画像を生成し、その生成した画像を特徴点抽出部23に供給する。特徴点抽出部23は、それぞれ、供給される多重解像度画像(異なる解像度の複数の画像)のうちの1つの画像を、処理対象の学習画像として、ステップS11以下の処理を実行し、複数の画像毎に繰り返しステップS11以下の処理を実行する。
【0065】
ステップS12において、特徴点抽出部23は、入力された学習画像から特徴点を抽出する。例えば、特徴点抽出部23に図8Aに示す学習画像が入力された場合、特徴点抽出部23は、図8Bに示すように、学習画像において所定の間隔で並んでいる画素を、特徴点として抽出する。なお、図8Bにおいて、学習画像上の円は特徴点とされた画素を表している。
【0066】
図8Aおよび図8Bに示す学習画像は、図中、横方向に32画素、縦方向に64画素からなる学習画像であり、特徴点抽出部23は、学習画像上の画素を、横方向および縦方向に2画素おきに特徴点とする画素として選択する。これにより、学習画像において、図中、横方向に12画素、縦方向に28画素、合計336(=12×28)画素が特徴点として選択される。
【0067】
特徴点抽出部23は、学習画像から特徴点を抽出すると、抽出した特徴点と、入力された学習画像とを特徴量計算部24に供給する。
【0068】
ステップS13において、特徴量計算部24は、特徴量計算処理を行い、特徴点抽出部23から供給された特徴点および学習画像に基づいて、各特徴点の特徴量を計算する。ここで、図7のフローチャートを参照して、ステップS13の処理に対応する特徴量計算処理について説明する。
【0069】
ステップS51において、特徴量計算部24、より詳細には、特徴量計算部24の1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53は、それぞれ特徴点抽出部23から供給されてきた特徴点のうち、未処理の特徴点の1つを注目画素として選択する。
【0070】
ステップS52において、特徴量計算部24は、方向θqを示すカウンタqを1とする。これにより、方向θqはθ1とされる。
【0071】
ステップS53において、1次フィルタ処理部51は、1次フィルタ処理を行う。すなわち、1次フィルタ処理部51は、処理対象となる注目画素の画素値に基づいて、ガウス幅をσ=1とし、かつ方向をθqとして式(2)を演算し、フィルタ処理した結果を特徴量生成部54に供給する。すなわち、式(2)における方向θがθqとされて演算が行われ、輪郭が抽出される。
【0072】
なお、“ガウス幅をσ=1として”と記述したが、本実施の形態の場合、ガウス幅は、σ=1と固定されている(予め1つのガウス幅のフィルタが設定されている)ため、この“ガウス幅をσ=1として”という処理は省略することが可能である。すなわち、本実施の形態においては、ガウス幅σが1のフィルタの方向をθqとして式(2)を演算するという処理が、ステップS53において実行されることになる。また、ここでは、ガウス幅σをσ=1として説明を続けるが、予め用意されているフィルタのガウス幅は、σ=1以外のガウス幅でも勿論良い。
【0073】
ステップS54において、2次フィルタ処理部52は、2次フィルタ処理を行う。すなわち、2次フィルタ処理部52は、注目画素の画素値に基づいて、ガウス幅σ=1のフィルタの方向をθqとして式(3)を演算し、フィルタ処理した結果を特徴量生成部54に供給する。すなわち、式(3)における方向θがθqとされて演算が行われ、輪郭が抽出される。
【0074】
ステップS55において、3次フィルタ処理部53は、3次フィルタ処理を行う。すなわち、3次フィルタ処理部53は、注目画素の画素値に基づいて、ガウス幅σ=1のフィルタの方向をθqとして式(5)を演算し、フィルタ処理した結果を特徴量生成部54に供給する。すなわち、式(5)における方向θがθqとされて演算が行われ、輪郭が抽出される。
【0075】
ステップS56において、特徴量計算部24は、方向θqがθ4であるか否か、すなわちカウンタq=4であるか否かを判定する。ステップS56において、方向θqがθ4でないと判定された場合、ステップS57において、特徴量計算部24は、カウンタqをインクリメントする。例えば、カウンタq=1であった場合、カウンタqがインクリメントされてq=2とされ、これにより方向θqはθ2とされる。カウンタqがインクリメントされると、処理はステップS53に戻り、上述した処理が繰り返される。
【0076】
これに対して、ステップS56において、方向θqがθ4であると判定された場合、ステップS58において、特徴量生成部54は、1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53から供給された演算結果を特徴量として合成し、1つの特徴点に対する特徴量を生成する。
【0077】
特徴量は、以下の式(7)または式(8)で求められる。
【数7】

【数8】

【0078】
式(7)、式(8)において、Gd,θは、式(2)などと同じく、任意の角度θにおけるガウス関数Gのd次微分関数である。また、I(x,y,s)のうち、(x,y)は、処理対象とされている特徴点の画像内での座標を表し、(s)は、多重解像度画像を構成する画像のうち、処理対象とされている画像のスケールを表す。
【0079】
式(7)は、任意の角度θにおけるガウス関数Gのd次微分関数と特徴量を畳込み演算し、その絶対値をΣで総和を演算する式である。式(8)は、任意の角度θにおけるガウス関数Gのd次微分関数と特徴量を畳込み演算し、その絶対値をmaxで最大値をとる式である。
【0080】
式(7)と式(8)は、ともに、特徴量を算出する式であるが、式(7)は、局所的なエネルギーを計算する式であり、式(8)は、局所的な最大値を計算する式である。ここで、この式の意味ついて説明を加える。
【0081】
上記したような処理により、任意の角度における関数とスケールで抽出されたフィルタ係数を特徴量として、教師あり統計学習を行い、人などの対象物を検出する検出識別器を生成できる。しかしながら、この検出識別器では、例えば、人の着ている服装と背景の関係に依存する特徴量となってしまう。また、人のように歪みや変形の大きな認証対象に関しては、特徴量として選択性がありすぎる。よって、これらのことを吸収して処理する必要があり、それぞれの特徴量を不変性のある特徴量にする必要がある。
【0082】
“人の着ている服装と背景に関係に依存する特徴量”を、不変性のある特徴量にするには、フィルタ処理後の出力値の絶対値を演算することで解決することができる。絶対値を演算することで、人の輪郭に近い特徴量が抽出できる。さらに本実施の形態においては、1次微分関数、2次微分関数、さらに3次微分関数を演算し、それぞれ絶対値の演算を行っている。よって、1次微分関数による絶対値だけで演算を行う場合に比べて、はるかに精度を良くすることができ、不変性を有する特徴量を算出できるようになる。
【0083】
また、“人のように歪みや変形の大きな認証対象に関しては、特徴量として選択性がありすぎる”といったことに対しては、位置ずれによる不変演算を行うことで、そのようなこと吸収した特徴量を演算できるようになる。位置ずれによる不変演算とは、例えば、人の顔の輪郭を検出したとき、顔の形によらずその輪郭の長さはほぼ同じになるといったことを利用した演算である。換言すれば、輪郭の所定の部分に注目したとき、その部分が位置的にずれても、例えば、ほぼ丸顔の人の輪郭が位置的に移動し、細長い顔の人の輪郭に重なるようにしたときに、位置がずれただけで、その長さなどの値は不変であるとみなせる演算である。
【0084】
このような演算として、式(7)のように、総和が演算される。総和を演算することにより、例えば、人の顔の輪郭の総和が演算されることになる。または、式(8)のように、最大値が演算される。最大値を演算することにより、例えば、人の顔の輪郭のうちの最大値が演算されることになる。
【0085】
ここでは、総和と最大値という2つの演算を示した。換言すれば、上記したように、式(7)に基づき、局所的なエネルギーを計算する演算か、式(8)に基づき、局所的な最大値を計算する演算を示した。この他にも、局所的な最大値を有する点の周辺の局所的なエネルギーを計算する演算が行われるようにしても良い。これは、式(8)の演算結果を受けて、式(7)の演算を行うようなイメージである。または、局所的なエネルギーの周辺の最大値を計算する演算が行われるようにしても良い。これは、式(7)の演算結果を受けて、式(8)の演算を行うようなイメージである。具体的な式は示さないが、このような演算で特徴量が算出されるようにしても良い。
【0086】
図6に示したフローチャートの説明に戻る。ステップS58において、このような演算により、各特徴点から特徴量が算出される。そして、ステップS59において、特徴量計算部24は、全ての特徴点について処理が終了したか否かを判定する。例えば、特徴点抽出部23から供給された全ての特徴点について、特徴量が求められた場合、処理が終了したと判定される。
【0087】
ステップS59において、全ての特徴点について処理が終了していないと判定された場合、処理はステップS51に戻り、次の特徴点が注目画素として選択される。これに対して、ステップS59において、全ての特徴点について処理が終了したと判定された場合、特徴量生成部54は、特徴点抽出部23から供給された学習画像と、生成された各特徴点の特徴量とを識別器生成部25に供給する。そして、その後、処理は図5のステップS14に進む。
【0088】
なお、学習画像からの特徴量の抽出には、ステアラブルフィルタに限らず、ガボアフィルタなどが用いられるようにしてもよい。
【0089】
図5のフローチャートの説明に戻り、各特徴点の特徴量が求められると、ステップS14において、識別器生成部25は、特徴量計算部24から供給された学習画像および特徴量に基づいて、識別器生成処理を行い、識別器を生成する。このステップS14において実行される識別器生成処理について、図7のフローチャートを参照して説明する。
【0090】
ステップS101において、重み設定部62は、例えば、図9で示される学習画像PI(1≦i≦M)毎の重みWiを全て1/Mに初期化し、識別器選択部65は、カウンタjを1に、弱識別器の和からなる識別器R(x)を0にそれぞれ初期化する。
【0091】
ここで、iは、図9における学習画像PIを識別するものであり、1≦i≦Mである。ステップS101の処理により、全ての学習画像PIの重みWiは、いずれも正規化された同一の重み(=1/M)とされる。また、カウンタjは、予め定められた、識別器R(x)を更新する回数を示している。
【0092】
ステップS102において、サンプリング部61は、各特徴点のペア毎に、複数の学習画像PIのそれぞれの同じ位置の特徴点のペアの特徴量から、学習画像PIの重みWiに応じて、M個の特徴量を選択し、並び替え部63に供給する。
【0093】
例えば、特徴量計算部24からサンプリング部61に、図10に示すように、M個の学習画像PI乃至学習画像PIの特徴量が供給されたとする。図10では、図中、横方向に学習画像PI(但し、1≦i≦M)から得られた特徴量が並べられており、学習画像を表す文字PIの図中、左側の数字「+1」または「−1」は、その学習画像PIに付加されたラベル(正誤情報)を示している。
【0094】
すなわち、図中、一番上側に横方向に並んでいる(A,A,A,・・・,A)は、学習画像PIの特徴点の各ペアの特徴量のそれぞれを表しており、学習画像PIを示す文字「PI」の図中、左側の文字「+1」は、学習画像PIに対象物体が含まれている旨のラベルを表している。
【0095】
同様に、図中、上から二番目の横方向に並んでいる(B,B,B,・・・,B)は、学習画像PIの特徴点の各ペアの特徴量のそれぞれを表しており、学習画像PIを示す文字「PI」の図中、左側の文字「+1」は、学習画像PIに対象物体が含まれている旨のラベルを表している。
【0096】
また、図中、上から三番目の横方向に並んでいる(C,C,C,・・・,C)は、学習画像PIの特徴点の各ペアの特徴量のそれぞれを表しており、文字「PI」の図中、左側の文字「−1」は、学習画像PIに対象物体が含まれていない旨のラベルを表している。さらに、図中、上からM番目の横方向に並んでいる(M,M,M,・・・,M)は、学習画像PIの特徴点の各ペアの特徴量のそれぞれを表しており、文字「PI」の図中、左側の文字「−1」は、学習画像PIに対象物体が含まれていない旨のラベルを表している。
【0097】
このように、図10の例では、1つの学習画像PIからは、特徴点のN個のペアのそれぞれの特徴量が得られる。また、図10では、縦方向に並んだM個の特徴量A乃至特徴量M(但し、1≦k≦M)が1つのグループGrとされており、このグループGrに属す特徴量は、各学習画像PIにおける同じ位置の特徴点のペアの特徴量とされている。
【0098】
例えば、グループGrは、縦方向に並んだ特徴量A乃至特徴量Mからなり、特徴量Aが求められる学習画像PIのペアとなる2つの特徴点と、グループGrに属す他の特徴量、例えば特徴量Mが求められる学習画像PIのペアとなる2つの特徴点とは、学習画像上の同じ位置にある。なお、以下において、各学習画像PIにおける特徴点のペアであって、グループGr(1≦k≦N)に属す特徴量が求まめられるペアをペアkと称する。
【0099】
サンプリング部61に、図10に示される学習画像PI毎の特徴量が供給された場合、サンプリング部61は、ペアk毎、すなわちグループGr毎に、そのグループに属す特徴量から学習画像PIの重みWiに応じて、M個の特徴量を抽選で選択する。例えば、サンプリング部61は、重みWiに応じて、グループGrに属す特徴量A乃至特徴量Mから、M個の特徴量を選択する。なお、最初の処理においては、いずれの重みWiも1/Mであり、等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになる。そのため、ここでは、最初の処理では各グループGrにおいて、全ての特徴量が選択されたものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
【0100】
なお、重みWiは、特徴点のペア毎のエラー計算に用いることもできる。この場合、データ重み係数(重みWi)がエラー値に掛け合わされてエラー計算が行われる。
【0101】
ステップS103において、並び替え部63は、N個のグループGrのそれぞれについて、グループGr、すなわちペアk毎に選択されたM個の特徴量を昇順、または降順に並び替えて、識別器設定部64に供給する。例えば、図10のグループGrに属す特徴量から選択された、M個の特徴量が順番に並び替えられる。
【0102】
ステップS104において、識別器設定部64は、特徴量計算部24から供給された学習画像に付加されている正誤情報(ラベル)に基づいて、グループGr毎、すなわち特徴点のペアk毎に、閾値を変化させながら誤り率計算部64aを制御して、以下の式(11)で示すように誤り率ejkを計算させ、誤り率ejkが最小となるように閾値を設定する。
【0103】
ここで、特徴点のペアk毎の閾値thjkが、1個の弱識別器fjkとなる。識別器設定部64は、弱識別器fjkごとの誤り率ejkを識別器選択部65に供給する。すなわち、N個のペアkのそれぞれに対して、N個の弱識別器fjkのそれぞれが設定され、N個の弱識別器fjkのそれぞれについて誤り率ejkが求められることになる。なお、弱識別器fjkは、認識しようとする対象物体を含む場合「+1」を出力し、認識しようとする対象物体を含まない場合「−1」を出力する関数である。
【0104】
例えば、図11に示すように、j=1であって、特徴点のペアk=1の特徴量がL,A,C,B,・・・,Mに昇順、または、降順に並べられた場合、閾値th11が特徴量AとCの間に設定される。そして、閾値th11より小さい範囲では、認識しようとする対象物体がないと認識され(「−1」で示されている範囲)、閾値th11より大きい範囲では、認識しようとする対象物体があると認識される(「+1」で示されている範囲)とき、図中の点線で囲まれた特徴量Aは、認識しようとする対象物体が含まれた学習画像の特徴量であるので、エラーであるとみなされる。また、特徴量C,Mは、逆に、認識しようとする対象物体が含まれていない学習画像の特徴量であるので、エラーであるとみなされる。
【0105】
図11の例では、閾値th11は、誤り率ejkが最小となる位置に設定されている。例えば、図11に示す閾値th11が、誤り率ejkの最小となる位置ではない場合には、識別器設定部64は、閾値th11の位置を変化させて、各位置における誤り率ejkを参照しながら、誤り率ejkが最小となる閾値th11の位置を探し出し、その位置を閾値th11の位置とする。
【0106】
誤り率計算部64aは、以下の式(9)で示されるように、学習画像の正誤情報(ラベル)に基づいて、エラーであるとみなされた特徴量が抽出された学習画像の重みWiを加算し、誤り率ejkを計算する。
【0107】
【数9】

【0108】
ここで、y≠fjkはエラーとなっている特徴点のペアkの条件を示しており、Eは、エラーの発生したペアkにおける重みが加算されることを示している。
【0109】
ステップS105において、識別器選択部65は、識別器設定部64から供給されたペアk毎のN個の誤り率ejkに基づいて、N個の弱識別器fjkのうち、誤り率ejkが最小となる弱識別器fjkを選択する。そして、識別器選択部65は、識別器設定部64から選択した弱識別器fjkを取得する。
【0110】
ステップS106において、識別器選択部65は、選択した弱識別器fjkの誤り率ejkに基づいて、以下の式(10)で示される信頼度cを計算し、計算結果を重み更新部66に供給する。
【0111】
【数10】

【0112】
なお、式(10)において、eは、誤り率ejkのうち、選択された弱識別器fjkの誤り率ejk、すなわちN個の誤り率ejkのうちの最小の誤り率ejkを示している。また、以下において、ステップS105の処理において選択されたペアkの弱識別器を、弱識別器fとも称し、その弱識別器fの誤り率ejkを誤り率eとも称する。
【0113】
ステップS107において、重み更新部66は、供給された信頼度cに基づいて、以下の式(11)を計算することで、学習画像PI毎に重みWiを再計算するとともに、全ての重みWiを正規化して更新し、更新結果を重み設定部62に供給する。重み設定部62は、重み更新部66より供給されてくる重みの更新結果に基づいて、学習画像毎の重みを設定する。
【0114】
【数11】

式(11)においては、エラーの発生した特徴量を含む学習画像の重みWiが大きくなることが示されている。
【0115】
ステップS108において、識別器選択部65は、新たに求められた弱識別器fを用いて、保持している識別器R(x)を更新する。すなわち、識別器選択部65は、次式(12)を計算することで識別器R(x)を更新する。
【0116】
R(x)=R’(x)+c×f(x) ・・・(12)
【0117】
式(12)において、R’(x)は、識別器選択部65が保持している更新前の識別器を表しており、f(x)は、新たに求められた弱識別器fを表している。すなわち、識別器選択部65は、保持している識別器に、信頼度cが乗算されて重み付けされた、新たに求められた弱識別器を加算することで識別器を更新する。
【0118】
ステップS109において、識別器選択部65は、誤り率ejkが最小となる弱認識器fjkに対応する特徴点のペアkの特徴量を、識別用特徴量として保持する。
【0119】
ステップS110において、識別器選択部65は、カウンタjがL以上であるか否かを判定する。ステップS110において、カウンタjがL以上でないと判定された場合、ステップS111において、識別器選択部65は、カウンタjをインクリメントする。そして、その後、処理はステップS102に戻り、上述した処理が繰り返される。
【0120】
すなわち、新たに設定された学習画像毎の重みWiが用いられて、N個のペアkについて、新たな弱識別器fjkが設定され、それらの弱識別器fjkから誤り率ejkが最小となる弱認識器fjkが選択される。そして、選択された弱認識器fjkにより、識別器が更新される。
【0121】
これに対して、ステップS110において、カウンタjがL以上であると判定された場合、ステップS112において、識別器選択部65は、保持している識別器および識別用特徴を識別器記憶部12に出力する。
【0122】
以上の処理により、L個の比較的誤り率の低い弱識別器f(1≦j≦L)からなる識別器が識別器記憶部12に供給されるとともに、それぞれの弱識別器fで使用されるべき特徴点のペアkの特徴量が識別器記憶部12に供給される。ここでLは、L≦Nである。
【0123】
なお、式(12)の識別器を用いて、特徴量を代入した識別器が正である場合に「+1」を出力し、識別器が負である場合に「−1」を出力する識別器(関数)を生成すると、その識別器は、L個の弱識別器の多数決により、認識しようとする対象物体の有無を出力する関数であると言える。また、図6のフローチャートを参照して説明した弱識別器を学習処理により重み付けしつつ付加することを繰り返し、識別器を生成する学習処理は、Discrete Adaboost Algorithmと呼ばれている。
【0124】
すなわち、以上の識別器生成処理により、誤り率の高い学習画像の特徴量の重みが順次大きくなり、誤り率の低い特徴量の重みが小さくなるように、特徴点のペア毎に弱識別器と誤り率が計算される処理が繰り返されることになる。したがって、繰り返し処理(ステップS102乃至S111の処理)の中で、弱識別器を設定する際に選択される特徴量(ステップS102で選択される特徴量)は、徐々に誤り率の高いものが選択されやすくなるので、認識し難い特徴量が繰り返されるほどに選択されて学習が繰り返されることになるため、認識し難い学習画像の特徴量がより多く選択されることになり、最終的に高い認識率にすることが可能となる。
【0125】
また、繰り返し処理(ステップS102乃至S111の処理)の中で、識別器選択部65は、常に誤り率の最も低いペアに対応する弱識別器を選択することになるので、学習処理の繰り返しにより、常に信頼度の最も高い特徴点のペアについての弱識別器が選択されて識別器に加算されることになり、繰り返される毎に精度の高い弱識別器が順次加算されることになる。
【0126】
さらに、識別器は、特徴量を用いて画像に対象物体としての人が含まれているか否かを識別する識別器である。そして、識別器を構成する各弱識別器に代入される特徴量に対応する特徴点のペアは、特徴点のペアのうち、入力された画像から対象物体を検出するのに適したペアである。
【0127】
上述したように、入力された画像を、異なる解像度の画像にし、その異なる解像度の画像に対してフィルタ処理を施すことにより、計算効率を向上させることが可能となり、処理速度を向上させることが可能となる。よって、例えば、リアルタイムに人などの対象物を認識することが可能となる。
【0128】
例えば、複数のスケールの画像に、複数のフィルタを用いた処理を行うと、多くのフィルタ演算を必要とし、処理時間や処理能力が増大してしまう可能性があった。しかしながら本実施の形態のように、複数のスケールの画像に、1つのフィルタを用いた処理を行うため、換言すれば、畳み込みが1スケールですむため、多くの演算を必要とせず処理を行えるため、処理速度を向上させることが可能となる。
【0129】
また、マルチスケールフィルタの場合、周波数が低くなる(ガウス幅σが大きくなる)と、畳み込み演算に時間がかかるが、本実施の形態によれば、上記したように、1つのガウス幅でフィルタを構成することが可能であり、複数のガウス幅のフィルタを用意する必要がなく、複数のガウス幅のフィルタで演算する必要がない。よって、本実施の形態によれば、仮に、最も高周波のフィルタを1つだけ用意して処理したとしても、マルチスケールフィルタの場合に比べて、はるかに処理速度を向上させることが可能となる。
【0130】
[ブースティングの打ち切り演算の最適化について]
このようにして、識別器が生成されると、さらに最適化が行われる。生成された識別器は、図12に示すように、複数の弱識別器から構成される。図12に示した識別器100は、N個の弱識別器101−1乃至101−Nから構成されている。識別器100は、弱識別器101−1での処理が終了すると、弱識別器101−2での処理が開始され、弱識別器101−2での処理が終了すると、弱識別器101−3での処理が開始されというように、順次、弱識別器101での処理が行われることで、最終的な識別結果が出される構成とされている。
【0131】
具体的には、以下の式(13)に基づく演算が、識別器100で行われる。
F(x)=f1(x)+f2(x)+f3(x)+・・・+fn(x) ・・・(13)
式(13)において、F(x)は、識別器100から出力される演算結果を示す。f1(x)は、弱識別器101−1での演算結果を示し、f2(x)は、弱識別器101−2での演算結果を示し、f3(x)は、弱識別器101−3での演算結果を示し、fn(x)は、弱識別器101−Nでの演算結果を示す。
【0132】
識別器100は、弱識別器101からの出力を順次加算する演算を行う。弱識別器101からの値を順次加算した値(累積加算値)が、閾値以下になった時点で、式(13)における演算を停止することで、識別器100における演算時間を短縮することができる。
【0133】
例えば、弱識別器101−1における演算結果が、
f1(x)<th1
が満たすとき、弱識別器101−1での演算で識別器100における演算が打ち切られ、弱識別器101−2以降の演算は行われない。
【0134】
また例えば、弱識別器101−2における演算結果が、
f1(x)+f2(x)<th2
が満たすとき、弱識別器101−2での演算で識別器100における演算が打ち切られ、弱識別器101−3以降の演算は行われない。
【0135】
このように、各弱識別器101における和演算が、所定の閾値以下になった時点で、その弱識別器101で演算を停止し、それ以降の弱識別器101での演算を行わないことで、識別器100において高速な演算を行うことが可能となる。各弱識別器101において適用される閾値を適切な値とすることで、演算の打ち切りのタイミングを適切なものとすることができる。
【0136】
ここで、図13に、上記した式(13)に基づく演算が行われたときのスコア(累積加算値)と弱識別器の数との関係を示すグラフを示す。図13に示したグラフは、所定の個数、例えば100個の弱識別器101−1乃至101−100を用いたときのグラフであり、各弱識別器101に、ポジティブ画像とネガティブ画像を識別させたときのスコアをトレースしたグラフである。換言すれば、各弱識別器101における式(13)で示される演算が終了した時点で、その時のF(x)の値を弱識別器101と対応付けてトレースしたのが、図13に示したグラフである。
【0137】
ポジティブ画像が処理されたときのスコアをトレースしたときの線(以下、適宜、ポジティブ線と記述する)とし、ネガティブ画像が処理されたときの累積加算値をトレースしたときの線(以下、適宜、ネガティブ線と記述する)とする。図13に示したグラフにおいて、対象物体が写っているポジティブ画像が処理対象とされたときには、順次、弱識別器101での処理が終了するごとにスコアは増大する傾向にある。一方、対象物体が写っていないネガティブ画像が処理対象とされたときには、順次、弱識別器101での処理が終了するごとにスコアは減少する傾向にある。
【0138】
ネガティブ画像が処理されたときの最大値のスコアをトレースした線(以下、適宜、ネガティブ最大値線と記述する)を、図13中に太い線で示す。また、ポジティブ画像が処理されたときの最小値のスコアをトレースした線(以下、適宜、ポジティブ最小値線と記述する)を、図13中に太い線で示す。
【0139】
このようなグラフが作成されたとき、ポジティブ最小値線の下側に、ネガティブ線が来た時点で、その処理対象とされているサンプル画像に対する演算は打ち切られる。なお、実際の認識時には計算が打ち切られているので、スコアが足されることはない(打ち切られた以降に累積加算値が算出されることはない)が、図13では、性質を理解するために、全部のサンプルに対して、累積加算値を求めて表示している。
【0140】
スコアを累積していくと、一度ポジティブ最小値線を下回ったネガティブなサンプル画像でも、スコアが上昇し、ポジティブ最小値線を越えることがあるが、演算が打ち切られることで、決してポジティブ画像であるという識別結果が出力されることはない。
【0141】
上記したポジティブ最小値線の下側に、ネガティブ線が来た時点における状況について説明を加える。例えば、識別器100が、“手”を識別する識別器であったとする。このような場合、ポジティブ画像は、“手”が写っている画像であり、ネガティブ画像は、“手”が写っていない画像である。ポジティブ最小値線は、ポジティブ画像が処理されたときに、弱識別器101の累積加算値が取り得る最小値である。よって、ポジティブ最小値線よりも下側のスコア(最小値よりも小さいスコア)となるのは、ネガティブ画像が処理されたときである。
【0142】
よって、ポジティブ最小値線よりも下側のスコアとなったときには、処理対象とされたサンプル画像は、ネガティブ画像であると判断することができる。このことを利用すると、ポジティブ最小値線よりも下側のスコアとなったときには、その画像はネガティブ画像であると判断できるため、その時点で演算を打ち切り、ネガティブ画像であるとの識別結果を出力することができる。
【0143】
このように、ポジティブ最小値線よりも下側のスコアになった時点で、演算を打ち切ることで、識別器100の演算時間を短縮することが可能となる。早い段階で演算を打ち切ることができれば、より高速化をはかることができる。上記したように、識別器100は、複数の弱識別器101から構成され、それらの弱識別器101は、演算の順番が規定されている。よって、演算順序における先頭部分に配置された弱識別器101で打ち切りが行われれば、識別器100の演算を高速化することができる。
【0144】
このようなことを考慮すると、弱識別器101の演算を行う順番を最適な順番とすることで、打ち切りを早い段階で行える識別器100を生成することができる。例えば、打ち切りを行いやすい特徴を有する弱識別器101が先頭部分にあると、演算の打ち切りを先頭部分で行えるようになり、後半部分にある弱識別器101まで演算を行わなくても良くなる。このように、弱識別器101の最適な配置が、識別器100の演算効率にかかわってくる。
【0145】
[第1の並び替えの処理について]
以下に、先頭部分に打ち切りを行いやすい弱識別器101がくるような配置に最適化する際の処理について説明する。第1の並び替えの方法として、ポジティブ最小値線より下側にネガティブ線がより多くくる弱識別器101が先頭部分に配置されるように最適化する際の処理について、図14のフローチャートを参照して説明する。
【0146】
ステップS201において、サンプル学習画像が用意される。サンプル学習画像として、ポジティブ画像とネガティブ画像が用意される。この時点では、既に識別器100が生成されているが、この識別器100を生成したときに用いられたポジティブ画像やネガティブ画像がサンプル学習画像として用意されても良い。
【0147】
ステップS202において、識別器100を構成する各弱識別器101の各サンプル学習画像に対するスコアが求められる。例えば、100個の弱識別器101−1乃至101−100で識別器100が構成され、サンプル学習画像が1000枚用意された場合、弱識別器101−1乃至101−100のそれぞれに対して、1000枚のサンプル学習画像が入力され、スコアが算出される。
【0148】
例えば、弱識別器101−1に、1000枚のサンプル学習画像が入力され、処理されることにより、それぞれのサンプル学習画像に対する弱識別器101−1における1000個のスコアが算出される。すなわち、f1(x)が、サンプル学習画像毎に算出されるため、1000個のf1(x)が存在する。同様に、他の弱識別器101も、f(x)を1000個有することになる。この1000個のスコアは、ポジティブ画像に対するスコアとネガティブ画像に対するスコアから構成される。後段の処理において、ポジティブ画像が処理されたときのスコアの最小値より小さいネガティブ画像のスコアが数えられ、その数値が、弱識別器101を選択する際に参照される数値とされる。
【0149】
同様に、弱識別器101−2乃至101−100のそれぞれも、1000個のスコアが算出され、ポジティブ画像が処理されたときのスコアの最小値より小さいネガティブ画像のスコアが数えられ、その数値が、弱識別器101を選択する際に参照される数値とされる。
【0150】
ステップS203において、i=0に初期化が行われる。iは、弱識別器101の処理した個数を示す値である。よってステップS203において初期化され、0に設定される。ステップS204において、ポジティブ画像のスコアの最下限値よりも低いスコアのネガティブ画像の数が、最も多くなる弱識別器101が、まだ選択されていない弱識別器101の中から選択される。この選択には、上記した数値が参照される。
【0151】
上記したように、まず弱識別器101−1のポジティブ画像が処理されたときのスコアのうちの最小値が求められ、その最小値よりもスコアが低くなるネガティブ画像の個数が数えられる。次に、弱識別器101−2のポジティブ画像が処理されたときのスコアのうちの最小値が求められ、その最小値よりもスコアが低くなるネガティブ画像の個数が数えられる。このような処理、すなわち、ポジティブ画像が処理されたスコアのうちの最小のスコアより小さいスコアのネガティブ画像の数が数えられるという処理が、弱識別器101−100まで順次行われる。よってこの場合、このような処理が100回繰り返される。
【0152】
その結果、各弱識別器101において、ポジティブ画像が処理されたスコアのうちの最小のスコアより小さいスコアのネガティブ画像の数(上記した数値)が決定されると、その決定された数のうち、最大値を有する弱識別器101が選択される。このようにして、1つの弱識別器101が選択されると、iの値が1だけインクリメントされ、ステップS205に処理が進められる。
【0153】
ステップS205において、i>弱識別器の数であるか否かが判断される。換言すれば、全ての弱識別器101に対して処理が終了され、最適化の処理(並び替えの処理)が終了したか否かが判断される。そして、ステップS205において、まだ処理は終了していないと判断された場合、ステップS204に処理が戻され、それ以降の処理が繰り返される。
【0154】
ステップS204に処理が戻されたときに処理対象とされる弱識別器101は、選択された弱識別器101を除く弱識別器101である。例えば、100個の弱識別器101が処理対象とされていた場合、その100個のうちの1個が選択された状態であれば、残りの99個の弱識別器101が、以降の処理対象とされる。
【0155】
このような処理が繰り返されることで、識別器100を構成する弱識別器101の演算順序が、先頭部分から順次決定される。このような処理が繰り返されることで、弱識別器101の並び替えが行われた識別器100においては、比較的打ち切りが行われやすい弱識別器101が先頭部分に配置されているため、識別器100として打ち切りが早く行え、演算時間を短縮できる識別器100とすることが可能となる。
【0156】
ここで、並び替えが行われる前の識別器100と並び替えが行われた後の識別器100の検証結果を示す。図15は、並び替えが行われる前の識別器100におけるポジティブ最小値線(図中、ポジティブ最小値線A)と、並び替えが行われた識別器100におけるポジティブ最小値線(図中、ポジティブ最小値線B)とを、同一のグラフに示した図である。
【0157】
図15に示したグラフのうち、丸で囲った部分、すなわち、識別器100を構成する弱識別器101のうち、先頭部分におけるスコアを比較する。ポジティブ最小値線Aは、先頭部分のスコアが低いのに対し、ポジティブ最小値線Bは、先頭部分のスコアが高く、平坦になっていることが図15から読み取れる。ポジティブ最小値線Aのようにスコアが低いと、そのスコアよりもさらに低いスコアとなる確率は低いことが読み取れる。よって、ポジティブ最小値線Aのような特徴を有する識別器100において、先頭部分に配置された弱識別器101で打ち切りが行われる可能性は低いことになる。
【0158】
ポジティブ最小値線Aに対してポジティブ最小値線Bは、先頭部分のスコアが高いため、そのスコアより低いスコアが算出される可能性は高いことが読み取れる。また、スコアが平坦であるため、スコアが累積されれば(弱識別器101での演算が進めば)、ポジティブ最小値線Bよりも下回る確率も高くなることが読み取れる。よって、ポジティブ最小値線Aよりもポジティブ最小値線Bの方が、より早く打ち切りが行われる可能性が高いことが、図15からも読み取れる。
【0159】
このように、弱識別器101の並び替えを、上記したように行うことで、打ち切りが早い段階で実行される識別器100を構成することが可能であることが実証された。
【0160】
上述した並び替えは、ポジティブ最小値線、すなわち、ポジティブ画像が処理されたときに取り得る最小値よりも小さいスコアを出すネガティブ画像の数(ネガティブ線の数)を基準として、並び替えを行う例であった。この場合、ポジティブ画像が処理されたときに取り得る最小値よりも小さいスコアであれば、ポジティブ画像ではない、すなわち、ネガティブ画像であるとして、打ち切りを行う例であった。
【0161】
ネガティブ最大値線、すなわち、ネガティブ画像が処理されたときに取り得る最大値よりも大きいスコアを出すポジティブ画像の数(ポジティブ線の数)を基準として、並び替えが行われるようにしても良い。この場合、ネガティブ画像が処理されたときに取り得る最大値よりも大きいスコアであれば、ネガティブ画像ではない、すなわち、ポジティブ画像であるとして、打ち切りが行われることを意味する。このように、ネガティブ画像が処理されたときに取り得る最大値が基準とされて、弱識別器101の並び替えが行われるようにしても良い。
【0162】
またそのようにした場合であっても、上記した処理と同様の処理で弱識別器101の並び替えを行うことが可能であるため、その説明は省略する。ただし、ステップS204においては、ネガティブ画像の最大値よりも大きいスコアのポジティブ画像の数が最も多くなる弱識別器101を選択する処理とされる点が、上述した説明の処理とは異なる。
【0163】
ポジティブ画像が処理されたときに取り得る最小値を基準とした並び替えの処理と、ネガティブ画像が処理されたときに取り得る最大値を基準として並び替えの処理を同時に行っても良い。この場合、ポジティブ最小値線よりも小さいスコアのネガティブ線の数が算出され、ネガティブ最大値線よりも大きいスコアのポジティブ線の数が算出され、その算出された数が最大の弱識別器101から順次配列される。
【0164】
[他の並び替えの処理について]
さらに他の並び替えの処理(第2の並び替えの処理)について説明する。上述したようにポジティブ最小値線やネガティブ最大値線を考慮した並び替えではなく、学習誤差を考慮した並び替えが行われるようにしても良い。学習誤差を考慮した並び替えを行う場合について、図16に示したフローチャートを参照して説明する。
【0165】
ステップS251において、サンプル学習画像が用意され、ステップS252において、各弱識別器101における各サンプル学習画像に対するスコアが算出される。そして、ステップS253において、iが0に初期化される。このステップS251乃至S253の各ステップにおける処理は、図14のフローチャートを参照して説明したステップS201乃至S203の処理と同様に行われるので、その詳細な説明は省略する。
【0166】
ステップS254において、学習誤差が最小となる弱識別器101が、まだ選択されていない弱識別器101のなかから1つ選択される。学習誤差が小さいということは、ネガティブ画像が入力されたときには、ネガティブ画像であるとの識別結果(スコア)を出し、ポジティブ画像が入力されたときには、ポジティブ画像であるとの識別結果(スコア)を出す可能性が高いことを意味している。よって、そのような弱識別器101が先頭部分に配置されるように、ステップS254の処理が行われる。
【0167】
学習誤差は、例えば、以下のように求めることができる。サンプル学習画像の総数がN枚であるとする。また、ポジティブ画像を処理したにもかかわらず、ネガティブ画像であると誤った判断がされてしまったサンプル学習画像の数をA枚とする。逆に、ネガティブ画像を処理したにもかかわらず、ポジティブ画像であると誤った判断がされてしまったサンプル学習画像の数をB枚とする。このような場合、学習誤差は、(A+B)/Nとされる。
【0168】
ステップS254において、学習誤差が最小となる弱識別器101が選択されると、iが1だけインクリメントされ、ステップS255の処理が実行される。ステップS255において、iが弱識別器の数以上になったか否かが判断される。ステップS255において、iが弱識別器の数以上になっていないと判断された場合、ステップS254に処理が戻され、それ以降の処理が繰り返される。
【0169】
このようにして、学習誤差が最小となる順に、弱識別器101を並び替えることで、早い段階で打ち切りを行える識別器100を生成することが可能となる。
【0170】
[さらに他の並び替えの処理について]
上述した第1の並び替えの処理と、第2の並び替えの処理においては、弱識別器101毎のスコアを基準に並び替えを行う例であったが、次に、識別器100のスコアを基準に並び替えを行う例を説明する。
【0171】
上記した式(13)を再度記載する。
F(x)=f1(x)+f2(x)+f3(x)+・・・+fn(x) ・・・(13)
上述した第1の並び替えの処理と、第2の並び替えの処理においては、式(13)において、f1(x)、f2(x)、f3(x)、・・・、fn(x)を基準に並び替えを行ったが、以下に説明する並び替えは、F(x)を基準として並び替えが行われる例である。
【0172】
早い段階で打ち切りが行われる識別器100を生成するならば、弱識別器101の配列で、考えられる全ての配列を試し、評価することが好ましい。例えば、弱識別器101の配列毎に、平均的な打ち切りの数を算出し、最も数が少ない弱識別器101の配列が選択されるようにする。しかしながら、例えば、100個の弱識別器101の配列を全て評価する場合、
100×99×98×・・・×1
通りの配列が存在し、それら全ての配列を評価するのは効率的ではない。
【0173】
そこで、以下に示すように、遺伝的アルゴリズムを適用して、弱識別器101の全ての配列を評価しなくても、全ての配列を評価したときと同等の結果が出せるような処理について説明する。遺伝的アルゴリズムはデータ(解の候補)を遺伝子で表現した「個体」を複数用意し、適応度の高い個体を優先的に選択して交叉(組み換え)・突然変異などの操作を繰り返しながら解を探索するアルゴリズムである。
【0174】
遺伝的アルゴリズムでは、主に、選択(淘汰、再生)、交叉(組み換え)、突然変異といった遺伝的操作が用いられる。「選択」は、生物の自然淘汰をモデル化したもので、適応度にもとづいて個体を増やしたり削除したりする操作である。「交叉(組み換え)」は、生物が交配によって子孫を残すことをモデル化したもので、個体の遺伝子の一部を入れ換える操作である。「突然変異」は、生物に見られる遺伝子の突然変異をモデル化したもので、個体の遺伝子の一部を変化させる操作である。
【0175】
遺伝的アルゴリズムを適用して弱識別器101の並び替えを行う場合の処理について、図17のフローチャートを参照して説明する。ステップS301において、初期インデックス列が生成される。ここでは、100個のインデックスが生成されるとして説明を続ける。インデックスとは、弱識別器101の配列が異なる識別器100である。すなわち、ここでは、弱識別器101の配列が異なる識別器100−1乃至100−100が生成される。
【0176】
100個の識別器100のうち、1つは学習の処理が行われた結果、生成された識別器100とされる。この識別器100は、弱識別器101の並び替えが行われる前の識別器100である。残りの99個は、ランダムに生成された識別器100とされる。ランダムに生成された識別器100とは、弱識別器101の配列が異なる識別器100のことである。なお、残りの99個の弱識別器101の1つとして、上記した処理で弱識別器101の並び替えが行われた識別器100が含まれるようにしても良い。
【0177】
このようにして生成された100個の識別器100は、現世代の個体として扱われる。そして、ステップS302において、各個体(各識別器100)に対する評価が行われる。ここでは、各識別器100に同一のサンプル学習画像を処理させ、その時の演算の平均打ち切り弱識別器101の数により評価が行われるとする。平均打ち切り弱識別器101の数が少ないほど良い評価が付けられる。また、個数の少ない順にソートされる。
【0178】
ステップS303において、遺伝的アルゴリズムの遺伝的操作である「選択」が実行される。ステップS303においては、エリートが選択される。ここでのエリートとは、打ち切りの個数が少ない識別器100(早い段階で打ち切りが行われる識別器100)のことである。ステップS302における評価で、打ち切りの個数が少ない順にソートされているため、その上位のNe個が選択される。ここでは、Ne個は10個であるとして説明を続ける。
【0179】
ステップS304において、選択確率pが求められる。選択確率pは、例えば、後段のステップS305で交叉が行われるときに、処理対象とされる個体(この場合、識別器100)が選択されるが、この選択のときに、選択されやすい個体と、そうでない個体を設けるために用いられる値である。選択確率pは、次式(14)に基づいて算出される。
【数14】

【0180】
式(14)において、rankとは、ソートされた順(打ち切り個数が少ない順)に付けられた値であり、ここでは、打ち切り個数が少ない順に、1、2・・・100とのrankが付けられているとする。よって、式(14)によれば、打ち切り個数が少ない方(rankが上位の方)の識別器100の選択確率pが大きい値となり、選択されやすい識別器100とされる。
【0181】
ステップS305において、遺伝的アルゴリズムの遺伝的操作である「交叉」が実行される。交叉は、選択確率pで選択したNc組を交叉させることで行われる。ここで、Nc組は、30組であるとして説明を続ける。30組の識別器100が選択されるため、60個の識別器100(個体)が選択されることになる。60個の識別器100(親の識別器100)が選択され、交叉が行われた場合、60個の識別器100(子の識別器100)が生成される。
【0182】
識別器100は、複数の弱識別器101(ここでは、100個の弱識別器101)から構成されているが、これらの弱識別器101は、それぞれ異なる弱識別器101である。交叉の結果、生成される識別器100に、同一の弱識別器101が含まれることは好ましくない。よって、同一の識別器100に、同一の弱識別器101が含まれないように交叉が行われる必要がある。
【0183】
ここでは、交叉の一例として、Order Based Crossoverという方式が適用されるとする。ここで、Order Based Crossover方式について、図18を参照して説明する。図18Aに示すように、親1と親2が存在し、この親1と親2を交叉し、子1と子2を生成する場合を考える。図18Aに示すように、親1は、“25036147”との配列であり、親2は、“34072516”との配列である。
【0184】
まず親1からランダムにいくつかの遺伝子が選択される。ここでは、3個の遺伝子が選択されるとする。図18Aに示したように、遺伝子として、“5”、“0”、“1”が選択されたとする。次に、図18Bに示すように、親1から選択された遺伝子を親2から除き、その遺伝子が除かれた親2を、子1に与える。この時点で、子1は、“34*72**6”との配列を有する。*は、未確定な遺伝子を表す。
【0185】
次に、図18Cに示すように、親1から選択した遺伝子を順番を保存したまま、順次、子1に割り当てる。親1から選択した遺伝子を順番を保存すると、その順番は、“5”、“0”、“1”となる。よって、この順で子1の“34*72**6”の*の部分に、順次“5”、“0”、“1”を割り当てるため、子1は、“34572016”となる。このようにすることで、子1が生成される。
【0186】
同様な処理が行われることで、図18Dに示すような子2が生成される。子2は、“24036157”との配列を有する。このような処理により交叉が行われることで、同一の遺伝子が同一の子に存在するようなことがない交叉を実行することが可能となる。このような処理により交叉が行われることで、同一の弱識別器101が同一の識別器100に存在するようなことがないような交叉を実現することができる。
【0187】
図17のフローチャートの説明に戻り、ステップS306において、遺伝的アルゴリズムの遺伝的操作である「突然変異」が実行される。突然変異は、選択確率pで選択したNm個を突然変異させることで行われる。ここで、Nm個は、20個であるとして説明を続ける。突然変異は、例えば、所定の確率で、ランダムに数箇所を入れ替えることで行われる。例えば、2.5%でランダムに2箇所の弱識別器101が入れ替えられることで、突然変異後の識別器100が生成される。
【0188】
ステップS307において、Nr個の識別器100がランダムに生成される。ステップS307においては、ステップS301において生成された初期インデックス列(この場合、100個の識別器100)とは異なる識別器100が、Nr個生成される。ここで、Nr個は、10個であるとして説明を続ける。
【0189】
ステップS308において、次世代が評価対象とされ、ステップS302以降の処理が繰り返される。次世代は、ステップS303で選択された10個の識別器100、ステップS305で交叉により生成された60個の識別器100、ステップS306で突然変異により生成された20個の識別器100、およびステップ307でランダムに生成された10個の識別器100から構成される。すなわち、合計100個の識別器から次世代の個体が構成される。
【0190】
このような現世代の100個の識別器100から、次世代の100個の識別器100が生成され、その生成された次世代の100個の識別器100が新たな現世代の識別器100とされ、処理が行われるといった処理が繰り返される。このような処理が繰り返されることで、結果が収束したと判断されるときに、図17に示した第3の並び替えの処理は終了される。結果が収束したと判断されるのは、例えば、ステップS302における評価が行われた結果、最も打ち切りの個数が少ないとされた識別器100の、その個数に、変化がなくなった時点とされる。
【0191】
このように、遺伝的アルゴリズムを適用して識別器100を生成するようにした場合、識別器100を構成する弱識別器101の全ての並び替えを評価して、最も良い識別器100を見つけ出したときと同等の精度で、識別器100を生成することができる。しかしながら、識別器100を構成する弱識別器101の全ての並び替えを評価して、最も良い識別器100を見つけ出すときと異なり、効率良く識別器100を生成することが可能である。
【0192】
なお、上述した個数、例えば、Ne個、Nc組、Nm個、Nr個といった個数は、一例であり、そのような個数に限定されるわけでなく、また、そのような個数の比率に限定されるわけでもない。
【0193】
上述した第1の並び替えの処理、第2の並び替えの処理、および第3の並び替えの処理は、学習装置11(図1)の学習の結果、生成された識別器100に対して行われる。よって、第1乃至第3の並び替えの処理は、学習装置11が、一度生成した識別器100を最適化するために行う処理として、学習装置11が行うようにしても良い。または、第1乃至第3の並び替えの処理は、認識装置13が、既存の識別器100を最適化するために行う処理として、認識装置13が行うようにしても良い。
【0194】
[認識処理について]
次に、学習の結果を用いて、例えば、人などの対象物を検出(認識)するときの処理について説明を加える。認識装置13に入力画像が入力され、対象物体としての人の検出が指示されると、認識装置13は、人検出処理を開始して、入力画像から対象物体を検出する。以下、図19のフローチャートを参照して、認識装置13による人検出処理について説明する。
【0195】
なお、認識装置13の画像入力部31乃至特徴量計算部34は、学習装置11の画像入力部21乃至特徴量計算部24と同様に構成することが可能である。よって、上述した学習装置11の画像入力部21乃至特徴量計算部24に関する説明や、フィルタなどの説明は、認識装置13に対しても適用できる説明であり、同様の説明となるため、その詳細な説明は省略する。
【0196】
ステップS501において、認識装置13の画像入力部31(図1)に認識対象となる画像が入力され、多重解像度画像生成部32に供給されると、多重解像度画像生成部32により、多重解像度画像が生成される。この処理は、例えば、上述したステップS11(図5)の処理と同様に行われ、その詳細な説明は既にしたので、ここではその説明を省略する。
【0197】
なお、多重解像度画像生成部32で多重解像度画像を生成するとき、学習装置11の多重解像度画像生成部22が生成する多重解像度画像と同じスケール(解像度)の画像を生成するようにする。このように学習時のスケール係数(解像度に関する情報)と、認識時のスケール係数を合わせておくことで、認識時に効率の良いスキャンを行うことが可能となる。
【0198】
ステップS502において、特徴点抽出部33は、図5のステップS12の処理と同様の処理を行い、入力された入力画像から特徴点を抽出し、入力画像とともに特徴量計算部34に供給する。よって、どのようなフィルタが用いられているかにより、抽出される特徴点の位置や、個数などは異なる。また、適用される多重解像度画像も、フィルタに適した画像が適用される。
【0199】
ステップS503において、特徴量計算部34は、特徴点抽出部33からの入力画像および特徴点に基づいて、特徴量計算処理を行い、各特徴点の特徴量を計算する。そして、特徴量計算部34は、求められた特徴量を識別計算部35に供給する。なお、この特徴量計算処理は、図6を参照して説明した特徴量計算処理と同様の処理であるため、その説明は省略する。
【0200】
ステップS504において、識別計算部35は、識別器記録部12から識別用特徴量および識別器を読み出して、読み出した識別器に特徴量を代入して計算する。すなわち、識別計算部35は、特徴量計算部34からの特徴量のうちの識別用特徴量に対応するものを、式(7)または式(8)により示される識別器に代入して演算を行う。
【0201】
ここで、識別器を構成する弱識別器に代入される特徴量は、識別用特徴量とされた特徴量が求められた、学習画像の特徴点のペアまたは特徴点と同じ位置にある、入力画像上の特徴点のペアまたは特徴点から求められた特徴量である。また、識別用特徴量とされる特徴量は、統計学習処理時において、識別器を構成する弱識別器の設定に用いられた特徴量である。
【0202】
例えば、式(7)の演算が行われると、その演算の結果として、入力画像中に対象物体としての人が存在することを示す「+1」、または入力画像中に対象物体としての人が存在しないことを示す「−1」が得られる。識別計算部35は、識別器での演算結果を識別結果出力部36に供給する。
【0203】
ステップS505において、識別結果出力部36は、識別計算部35からの演算結果に基づいて、物体(人)の検出結果を出力し、物体検出処理は終了する。すなわち、対象物体が入力画像で認識されたか否かの識別結果が出力される。
【0204】
例えば、対象物体が入力画像で認識されたか否かの識別結果として、対象物体としての人が検出された領域に枠が表示された入力画像などが、識別結果出力部36に表示されるようにしてもよい。
【0205】
このようにして、認識装置13は、入力画像から特徴点を抽出して、特徴点のペアの特徴量を求めるとともに、入力画像から特徴点を抽出して特徴量を求める。そして、認識装置13は、求めた特徴量および特徴量と、識別器記録部12に記録されている識別器とを用いて、入力画像から対象物体を検出する。
【0206】
このように、特徴量を用いて入力画像から対象物体を検出することで、より確実に画像から対象物体を検出することができる。
【0207】
[記録媒体について]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0208】
図20は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
【0209】
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア1011を駆動する。
【0210】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0211】
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0212】
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
【0213】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0214】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0215】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0216】
11 学習装置, 12 識別器記録部, 13 認識装置, 21 画像入力部, 22 多重解像度画像生成部, 23 特徴点抽出部, 24 特徴量計算部, 25 識別器生成部, 31 画像入力部, 32 多重解像度画像生成部, 33 特徴点抽出部, 34 特徴量計算部, 35 識別計算部, 36 識別結果出力部

【特許請求の範囲】
【請求項1】
複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出する第1の算出手段と、
前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出する第2の算出手段と、
前記第2の算出手段により算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替える並び替え手段と
を備える情報処理装置。
【請求項2】
複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出し、
前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出し、
算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替える
ステップを含む情報処理方法。
【請求項3】
複数の弱識別器を含む識別器の前記弱識別器毎に、識別対象とされる物体の領域があるポジティブ画像と、前記識別対象とされる物体の領域がないネガティブ画像を含むサンプル画像毎のスコアを算出し、
前記ポジティブ画像を処理したときのスコアのうちの最小のスコアより小さいスコアである、前記ネガティブ画像を処理したときのスコアの個数を前記弱識別器毎に算出し、
算出された前記個数が最大の前記弱識別器から順に、前記弱識別器を並び替える
ステップを含む処理を実行するコンピュータが読み取り可能なプログラム。
【請求項4】
複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出する第1の算出手段と、
前記第1の算出手段で算出された前記スコアから学習誤差を算出する第2の算出手段と、
前記第2の算出手段により算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替える並び替え手段と
を備える情報処理装置。
【請求項5】
複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出し、
算出された前記スコアから学習誤差を算出し、
算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替える
ステップを含む情報処理方法。
【請求項6】
複数の弱識別器を含む識別器の前記弱識別器毎に、サンプル画像毎のスコアを算出し、
算出された前記スコアから学習誤差を算出し、
算出された前記学習誤差が最小の前記弱識別器から順に、前記弱識別器を並び替える
ステップを含む処理を実行するコンピュータが読み取り可能なプログラム。
【請求項7】
複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出する算出手段と、
遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記算出手段により算出された前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成する生成手段と
を備える情報処理装置。
【請求項8】
複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出し、
遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成する
ステップを含む情報処理方法。
【請求項9】
複数の弱識別器を含む識別器であり、前記弱識別器の配列が異なる識別器毎に、サンプル画像を処理させたときの演算が打ち切られるときの前記弱識別器の平均個数を算出し、
遺伝的アルゴリズムに基づく操作を行うことで、また、前記操作を行うときに、前記平均個数を用いることで、前記平均個数が最も小さくなる前記識別器を生成する
ステップを含む処理を実行するコンピュータが読み取り可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate