説明

情報処理装置、情報処理方法、情報処理システム、プログラム及びデータ構造

【課題】 フィルタの適用順序や既に計算されている特徴量画像の存在を考慮して計算量を特定し、特定された計算量とフィルタの識別精度に基づきフィルタを選択する。
【解決手段】 計算順序グラフ生成部103は、記憶部に格納されたフィルタ集合から計算順序グラフを構築する。識別精度特定部104は、記憶部102に格納された学習データを利用して各フィルタの識別精度を計算する。計算量特定部105は、計算順序グラフ生成部103で生成された計算順序グラフを利用して計算量を特定する。フィルタ選択部107は、計算されたこれらの値に基づき、フィルタの選択を行う。計算順序グラフ更新部108は、フィルタ選択部107で選択されたフィルタに基づき、計算順序グラフに格納されている計算量の更新を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データから複数の特徴量を抽出し、それらと識別器に入力して画像データの特徴を識別する識別器に関する。
【背景技術】
【0002】
近年、顔検出や医療画像における病変部検出など、画像画像データから特定の領域のみを選択的に検出する識別処理技術が利用されている。
【0003】
この技術では、複数の学習用画像の夫々に対して、最大・最小値フィルタやWavelet等、画像の部分領域を強調可能なフィルタを複数組み合わせて複数の特徴量を求め、所定の学習アルゴリズムに適用して識別器を訓練する。ここでいう識別器とは、未知画像に対して適用すべき複数のフィルタによる複数の特徴量データを入力とし、識別の結果を出力とする一連の計算方法を示している。また、ここでの学習アルゴリズムは、AdaboostやSupportVectorMachine等が考えられる。
【0004】
これら識別処理を行うための識別器を作成するに当たっては、入力となる特徴量の選択が重要となる。これは学習段階における入力がその識別器の汎化能力即ち識別精度に大きく寄与するからである。また、画像に対するフィルタの適用処理が識別処理にかかる時間の大部分を占めるからである。特に、実用上は許容範囲内で適切な精度の識別を行うことが必要であり、フィルタの選択つまりは特徴量の選択が特に重要となる。
【0005】
特許文献1では、学習時のフィルタの選択基準として、抽出精度に加えてフィルタの計算量も考慮してフィルタを選択することで、未知のデータに適用する際の計算時間を削減する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−100121号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
識別器を訓練する場合において特徴量データを選択するときに、画像に対するフィルタ適用処理が重複する場合がある。例えば、ある特徴量Xを抽出するフィルタ群がA,B,A,Cであり、別の特徴量Yを抽出するためのフィルタ群がA,B,Dであるような場合である。このような場合に、フィルタA,Bを適用する処理は重複している。従来では、計算時間の評価を行う際にこのような重複を考慮せずに選択を行っていたため、結果として作成される識別器の処理に無駄があるか、または計算時間を正確に評価できていないこととなっていた。
【課題を解決するための手段】
【0008】
本発明はかかる課題を解決するためになされたものであり、学習データに対する特徴量を逐次選択して識別器を生成する情報処理装置であって、前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する取得手段と、前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する評価手段と、前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する生成手段と、を有することを特徴とする。
【発明の効果】
【0009】
かかる構成を有する本発明によれば、重複処理を回避して計算時間を評価し、識別器を作成するため、計算時間を正確に評価して識別器を作成することができる。
【図面の簡単な説明】
【0010】
【図1】情報処理システムの構成図である。
【図2】記憶部102に格納される計算順序グラフを示した図である。
【図3】特徴量選択に伴う計算順序グラフの操作の概要を示した図である。
【図4】情報処理装置10による識別器の生成処理の流れを示すフローチャートである。
【図5】SVMを適用する特徴量画像群を示す図である。
【図6】情報処理装置10による未知データの識別処理の流れを示すフローチャートである。
【図7】実施例2に係る情報処理装置10による識別器の生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
(実施例1) SVMによる識別器の学習と、識別処理
実施例1は、学習データから特徴量を逐次選択し、これにSVMを適用して識別器を生成する処理と、訓練された識別器を未知データに適用して特徴を識別する処理を行う情報処理システムについて説明する。識別器の生成処理においては、特徴量を算出する際の重複処理を考慮して計算時間を評価する。また、識別処理においては、重複処理を避けて未知データから特徴量を生成する。
【0012】
本実施例における処理を実行する情報処理システムの構成について図1に従い説明する。情報処理システムは、情報処理装置10とデータサーバ20からなり、これらはインターフェイスを介してデータサーバ20と接続されている。接続に用いるインターフェイスは、ローカル・エリア・ネットワーク(LAN)、IEEE1394、光ファイバ、USB等のいずれでもよい。
【0013】
データサーバ20は学習画像集合とフィルタ集合を蓄積する。学習画像集合とフィルタ集合は情報処理装置10の要求に応じて、情報処理装置10に送信される。またデータサーバ20は、情報処理装置10により選択されたフィルタの集合を蓄積する。ここでいう学習画像集合は、例えば人間の顔を含む撮影画像であり、これら画像から人間の顔画像を識別する識別器を生成するための学習データである。またフィルタ集合とは、画像データからエッジ、平均画素値、特定形状の個数等の特徴量を作成するための空間フィルタであり、変換行列等がある。
【0014】
情報処理装置10は以下の各部から構成される。即ち、データ取得部101、記憶部102、計算順序グラフ生成部103、識別精度特定部104、計算量特定部105、フィルタ評価値計算部106、フィルタ選択部107、計算順序グラフ更新部108、データ出力部109、識別部110である。
【0015】
かかる構成で、データ取得部101はデータサーバ20から学習画像集合とフィルタ集合を取得し、記憶部102に格納する。計算順序グラフ生成部103は、記憶部に格納されたフィルタ集合から計算順序グラフを構築する。計算順序グラフとは、原画像に対するフィルタの適用順序とそれにより順次得られる特徴量の関係を木構造で表現したデータである。このデータも記憶部102に格納される。計算順序グラフの詳細については後述する。
【0016】
識別精度特定部104は、記憶部102に格納された学習データを利用して各フィルタの識別精度を計算する。識別精度は、既に選択済みの特徴量と、計算順序グラフに示された各特徴量の夫々とにより識別器を生成し、全学習データに適用し、識別が正解した数と誤った数から識別精度を算出する。
【0017】
計算量特定部105は、計算順序グラフ生成部103で生成された計算順序グラフを利用して計算量を特定する。ここでいう計算量とは、原画像から特徴量を得るための計算にかかる時間のことを指す。画像の読み込み、特徴量の記憶部102への保存処理等は画像のフィルタ適用処理に対して十分に小さいため、計算量はフィルタの適用処理にかかる時間としてよい。
【0018】
フィルタ評価値計算部106は、識別精度特定部104で特定された識別精度と計算量特定部105で特定された計算量から、特徴量及びフィルタの選択に利用する評価値を計算する。フィルタ選択部107は、特徴量及びフィルタ選択のための評価値に基づき、特徴量及びフィルタの選択を行う。選択された特徴量及びフィルタは記憶部102に格納される。計算順序グラフ更新部108は、フィルタ選択部107で選択されたフィルタに基づき、計算順序グラフに格納されている計算量の更新を行う。選択された特徴量と、その算出過程で得られる特徴量を計算順序グラフから特定し、これら特徴量の計算量を0とする。この計算量の評価に基づいて、フィルタ選択部107は更に特徴量及びフィルタを選択する。これは、二以上の特徴量の作成過程に共通部分がある場合には、その共通部分の処理の重複を避けることが可能であることによる。この処理についても後述する。
【0019】
データ出力部109は記憶部102に格納されているフィルタに関する情報をデータサーバ20に送信する。これら空間フィルタとその適用時のパラメータが、識別器を構成する。
【0020】
識別部110は、記憶部102から学習画像集合に含まれない未知の画像を取得する。同時に識別部110は、フィルタ選択部107が選択したフィルタの集合である選択フィルタ集合とその選択順序も取得する。その後、識別部110は選択フィルタ集合を利用して識別処理を行う。この際、例えば一の特徴量がフィルタをA,B,Cの順で適用して得られる特徴量であり、他の特徴量がフィルタをA,B,Dの順で適用して得られる特徴量である場合に、一の特徴量の算出時にフィルタA,Bまでの適用結果を記憶部102に保存する。そして、他の特徴量の算出にこの保存された適用結果の特徴量を用いる。このように二以上の特徴量の算出過程が一部共通している場合、一の特徴量の算出時に共通部分の特徴量を保存しておき、他の特徴量の算出に用いることで、処理の重複を避けることができる。これにより共通部分の特徴量の保存処理を行う必要が発生するが、この保存処理にかかる時間は画像への空間フィルタの適用処理に要する時間に対して十分に小さいため、識別処理にかかる時間を短縮することができる。
【0021】
識別結果を記憶部102に格納する。データ出力部109は記憶部102に格納された識別結果に関する情報を、外部のデータサーバ20に出力する。
【0022】
上述の情報処理システムのデータサーバ20に記憶される学習データの画像及び空間フィルタと特徴量のデータ構造について、図2に従い説明する。計算順序グラフは、フィルタの適用順序や既に計算されている特徴量画像の存在を考慮して計算量を特定する際に有効な構造を有する木構造データである。なお、以下の説明では、フィルタの選択とは、フィルタとその結果として得られる特徴量画像の選択を意味するものとする。
【0023】
計算順序グラフとは、画像に対して適用するフィルタとフィルタの出力結果である特徴量画像の関係を木構造データで表現したものである(図2(a))。一つのグラフは画像を表すノードとフィルタを表すノードの2種類のノードからなる。図2(a)では、ノード201、203、205、207、209、211、213が画像ノードを表しており、ノード202、204、206、208、210、212がフィルタノードを表している。フィルタノードに向かう矢印はフィルタに対する入力を、またフィルタノードから出る矢印はフィルタの出力を表している。フィルタノード202の例でいえば、原画像がフィルタAの入力であり、その出力が特徴量画像A、すなわち原画像に対してフィルタAを適用することで特徴量画像Aが出力されることを意味している。あるフィルタから出力された画像は、更に他のフィルタの入力となることも可能である。更に画像ノード203とフィルタノード204、206との関係のように、一つの画像が複数のフィルタの入力となることもある。ここで、一つのフィルタノードは、入力となる特徴量画像または学習画像と、出力となる特徴量画像が等しい場合に同一のノードして取り扱っている。
【0024】
フィルタノードは対応するフィルタの名前に加えて、そのフィルタの適用にかかる計算時間、つまり特徴量の算出時間が関連付けられ格納されている。図2(a)において、フィルタノード内の丸括弧で括られた数字が、計算量を表している。この計算量は、入力画像に対して最初のフィルタを適用してから、注目しているフィルタの計算が終了するまでに必要な全体の算出時間を示している。図2(b)を参照しながら、具体的に説明する。図2(b)は、図2(a)で示したそれぞれのフィルタについて、フィルタ単体での計算量を示している。例えば、原画像に対してフィルタAを適用し、特徴量画像Aを出力するまでに必要な算出時間は2であることが分かる。また、特徴量画像Aに対してフィルタBを適用し、特徴量画像Bを適用するのには算出時間が4だけ必要である。
【0025】
それぞれのフィルタの単体での計算量から、計算順序グラフのフィルタノードが保持する計算量は容易に決定できる。例えば、フィルタノード204に格納する計算量は、原画像に対してフィルタAを適用するのに必要な計算量の2に、特徴量画像Aに対してフィルタBを適用するのに必要な計算量の4を加えた値2+4=6となる。同様に、フィルタノード208に格納する計算量は2+3+1=6、フィルタノード212に格納する計算量は3+2=5となる。このようにして構築した計算順序グラフを利用することにより、原画像が与えられてから注目するフィルタが特徴量画像を出力するまでに適用されるフィルタの順番と計算に必要な時間を、効率的に取得することが可能となる。なお、計算順序グラフはこれに限らず、特徴量画像のみをノードとし、空間フィルタをエッジ(リンク)とした木構造データであってもよい。また、フィルタのみをノードとした木構造データであってもよい。
【0026】
フィルタ選択処理でフィルタが一つ選択されるたびに、計算された特徴量画像に応じて、フィルタノードに格納されている計算量が更新される。詳細は後述するが、本件では、フィルタは抽出精度と計算量の組み合わせからなる指標に基づいて選択される。しかし説明の便宜上、ここではフィルタ選択の詳細には触れず、フィルタが選択された際の計算量の更新に注目して説明を行う。
【0027】
特徴量の算出時間に関するデータの操作の概要について、図3を用いて説明する。図3(a)は、フィルタが一つも選択されていない状況での計算順序グラフである。この状況において、1番目のフィルタとしてフィルタCが選択されたと仮定する。ここで、フィルタCの出力結果である特徴量画像Cを実際に生成する過程を考える。図3(a)の計算順序グラフを参照すると、フィルタCの入力画像は特徴量画像Aであることが分かる。そのため、フィルタCを計算するための前段階として、原画像に対してフィルタAを適用し、特徴量画像Aを取得しておかなければならない。これは逆に考えると、フィルタCの出力結果である特徴量画像Cを生成した段階で、フィルタAの計算はすでに完了しており、その出力である特徴量画像Aもすでに生成されていることを意味している。そこで、生成された特徴量画像Aを記憶領域等に格納しておき、フィルタAの計算が必要になった時に記憶領域等に格納された特徴量画像Aを利用すれば、フィルタAを今後計算する必要はないと考えられる。このような考えの下、計算順序グラフのフィルタノード302とフィルタノード305の計算量を0に設定する。
【0028】
更に図3(a)の計算順序グラフから、フィルタBの入力画像も特徴量画像Aであることが分かる。上述の通り、フィルタCを適用する際に生成した特徴量画像Aは、フィルタBの入力画像としても利用可能である。そのため、フィルタBの計算量は減少するはずである。計算順序グラフからフィルタノード304に格納されている計算量は6であるが、これはフィルタB単体での計算量4にフィルタA単体での計算量2を加えた値である。今、特徴量画像Aが再利用可能なことから、フィルタAの計算量は0である。そのため、入力画像から特徴量画像Bを算出するのに要する算出時間は、フィルタB単体での計算量に等しい。そこで、フィルタノード304には、元々フィルタノード304に格納されていた計算量6からフィルタノード302に格納されていた計算量2を引いた値4を格納する。
【0029】
以上をまとめると、1番目のフィルタとしてフィルタCが選択された時、計算順序グラフのフィルタノード302とフィルタノード306に計算量0を、またフィルタノード304に計算量4を格納する。図3(b)は、図3(a)のグラフにおいてフィルタCを選択した後のグラフを示している。フィルタAとフィルタCに対応するフィルタノード322、326の計算量が0に、またフィルタBに対応するフィルタノード304の計算量が4になっているのが分かる。
【0030】
2番目以降のフィルタが選択された際にも、同様の考え方に基づき、計算順序グラフに格納されている計算量を更新していく。
【0031】
このようにデータの更新処理を行うことで、特徴量またはフィルタ選択時の計算量の評価を適切に行うことができる。
【0032】
上述の構成を有する情報処理装置10が実行する識別器の処理の詳細を図4のフローチャートに従い説明する。
【0033】
ステップS401において、データ取得部101はデータサーバ20から学習画像集合と入力フィルタ集合を取得し、記憶部102に格納する。学習画像集合には、フィルタの抽出精度を評価するための複数の画像と、それぞれの画像について画像内の抽出すべき特定の領域のみをラベル付けしたラベル画像が含まれる。本実施例では、ラベル画像内の抽出すべき領域に含まれる画素には画素値1を、その他の領域の画素には画素値0を設定する。
【0034】
入力フィルタ集合とは、情報処理装置10がフィルタを選択する際の元となる集合のことであり、ノイズ抑制のためのフィルタや抽出対象領域を強調するフィルタが多数含まれる。領域抽出に有効なフィルタは、入力画像や抽出すべき領域の性質に応じて異なる。そのため、入力フィルタ集合に格納するフィルタの種類は、適用する問題に応じて実験的に決定される。入力フィルタ集合に格納するフィルタには、入出力の画像を示す一意な数字を付与しておく。
【0035】
ステップS402において、計算順序グラフ生成部103は計算順序グラフを構築する。はじめに、記憶部102から入力フィルタ集合を取得し、グラフを生成する。入力フィルタ集合に格納されているフィルタは、それぞれ入出力の画像を示す一意な数字を保持している。この数字を利用することで、公知のアルゴリズムにより容易にグラフを生成することが可能である。また、グラフ生成は全処理を通して一度だけ実行すればよいため、事前に手動でグラフを生成することも可能である。
【0036】
次に生成されたグラフに基づいて、フィルタノードに格納する計算量を取得する。そのために、まずフィルタ単体での計算量を取得する。フィルタ単体での計算量とは、画像を入力してから、フィルタの適用結果を出力するまでに要する処理時間とする。これは、学習データに含まれている各画像に対してフィルタを実際に適用して、画像毎に処理時間を計測し、更にそれらを平均することで得られる。フィルタ単体での計算量を取得したら、構築した計算順序グラフとフィルタ単体での計算量から、グラフのフィルタノードに計算量を格納する。フィルタノードに格納する計算量の求め方はすでに説明を終えているため、ここで繰り返して説明はしない。
【0037】
ステップS403において、識別精度特定部104は記憶部102に格納されている学習画像集合と入力フィルタ集合を読み込み、入力フィルタ集合に含まれている各フィルタについて識別精度を特定する。フィルタの識別精度は、学習画像集合の各画像について領域抽出を行い、抽出された領域を対応するラベル画像内の抽出対象領域と比較することで決定される。ここでは、Support Vector Machineを用いて領域抽出を行い、その結果を利用して識別精度を決定する手順を説明する。以下、ステップS203からS207までのt−1回の反復処理までに選択されたフィルタをf[1],…,f[t−1]と記述する。また、入力フィルタ集合内のある一つのフィルタをfと記述する。
【0038】
Support Vector Machineは、d次元のベクトルxが2つのクラス(例えば1または−1)のうちどちらに属しているかという識別問題に対する学習アルゴリズムの一つである。Support Vector Machineの学習アルゴリズム自体は公知であるため説明は省略し、ここではその入力と出力の説明を行う。Support Vector Machineは、入力としてn個のd次元のベクトルxとそのベクトルが属するクラスyI{1,−1}の組と、識別時のカーネルの型とパラメータを必要とする。まず前者であるが、本実施例ではベクトルxはフィルタf[1],…,f[t−1]が出力した特徴量画像F[1],…,F[t−1],Fの画素値を要素に持つベクトルとする。図5を参照して具体的に説明すると、ベクトルxはそれぞれ、
【0039】
【数1】

【0040】
とする。ここでF[i](x,y)は特徴量画像F[i]の座標値(x,y)での値を表している。学習画像データ1枚に対してベクトルが画像の画素数分作成される。これが、学習画像データの枚数Lだけ生成されるため、実際のベクトルの数はm×n×Lとなる。
【0041】
SVMでは、各特徴量画像、識別に用いる識別関数の型とパラメータ、学習画像集合に含まれている前画像とそれらに対応する正解画像(ラベル画像)を入力とし、識別関数を出力として得ることができる。この識別関数を全学習画像データに対して適用し、正解画像と比較して識別精度を算出する。
【0042】
なお、識別のための方法は、フィルタの出力結果である特徴量画像に対する単純なしきい値処理や、特徴量画像から計算されるマハラノビス距離値を利用した領域抽出法など、いずれの方法でもよい。また、fが出力する特徴量画像のみを利用した領域抽出法でも、f[1],…,f[t−1]とfが生成した特徴量画像を組み合わせて実行する領域抽出法でもよい。
【0043】
上述の処理を入力フィルタ集合に含まれるすべてのフィルタについて行い、各フィルタまたは特徴量の識別精度として取得する。
【0044】
ステップS704において、計算量特定部105は入力フィルタ集合の各フィルタfについて、計算順序グラフ内の対応するフィルタノードからフィルタの計算量T[t]を取得する。
【0045】
ステップS705において、フィルタ評価値計算部106はステップS703とステップS704で特定されたフィルタの識別精度と計算量からフィルタ評価値を計算する。フィルタ評価値は識別精度と計算量から決定される値であり、この値が小さいほど識別精度と計算量の両方の観点から有効なフィルタであることを示している。フィルタ評価値としてはさまざまな値が利用可能であるが、本実施形態では次式のように計算精度と計算量の重みつき線形和で計算されるフィルタ評価値を利用する。
【0046】
【数2】

【0047】
ここで、P[t]、T[t]はフィルタfの識別精度と計算量である。また、wは識別精度と計算量の間の重み係数である。この値は識別精度と計算量のどちらを重視するかに応じて事前に決定する。
なお本件で利用可能なフィルタ評価値は式(1)に限定されるものではなく、例えば、
【0048】
【数3】

【0049】
や、
【0050】
【数4】

【0051】
等で定義されるフィルタ評価値であってもよい。
【0052】
ステップS706において、フィルタ選択部107はステップS705で計算されたフィルタ評価値F[t]に基づき、フィルタを一つ選択する。ここでは単純に、F[t]が最も小さな値であるフィルタを選択する。選択されたフィルタf[t]は、記憶部102に格納される。
【0053】
ステップS707において、計算順序グラフ更新部108はステップS707で選択されたフィルタに基づき、計算順序グラフのフィルタノードに格納されている計算量を更新する。計算量の更新方法については既に述べたためため省略する。
【0054】
ステップS708において、フィルタ選択部107はステップS703からステップS707までのフィルタ選択処理を終了するかを判定する。選択されたフィルタの数tが反復回数に関するしきい値Niter1以上の場合には処理を終了し、ステップS709に移る。逆にフィルタ数tがNiter1より小さい場合には、tに1を加えた後、ステップS703に戻り、フィルタ選択処理を続行する。
【0055】
ステップS709において、データ出力部109は選択フィルタ集合f[1],…,f[Niter1]を記憶部102から読み出し、外部のデータサーバ20に出力する。
【0056】
上述の構成を有する情報処理装置10が実行する未知データの識別処理の詳細を図6のフローチャートに従い説明する。本実施例における情報処理装置は、選択フィルタ集合に加えて、フィルタの選択順番も出力する。識別部110は、学習画像集合に含まれない未知の画像に対してフィルタを順番通りに適用し、その出力結果である特徴量画像を利用して識別処理を行う。更に識別部110は、本装置の操作者により事前に指定された計算時間Tlimit2に基づき、フィルタの適用を終了する機能を有する。これにより、本実施例における情報処理装置は、学習画像集合に含まれない未知の画像に対して、事前に指定された計算時間の範囲内で、高い識別精度で識別が可能となる。
【0057】
ステップS601において、識別部110は記憶部102から識別対象である画像I、選択フィルタ集合f[1],…,f[Niter1]、フィルタ選択処理において特定されたフィルタの計算量T[1],…,T[Niter1]を取得する。
【0058】
ステップS602において、識別部110は記憶部102に保存すべき特徴量を判定する。ここでは、計算順序グラフを参照して、各特徴量の作成過程が共通する部分の有無を判定する。例えば、特徴量XがフィルタA,B,Cを適用して得られる特徴量であり、特徴量YがフィルタA,B,Dを適用して得られる特徴量である場合には、フィルタA,Bを適用して得られる特徴量Zを特徴量Xの作成過程において保存すべきと判定する。このように、全ての特徴量について保存すべき特徴量を判定する。判定結果を記憶部102に記憶し、特徴量の作成時に参照可能にしておく。
【0059】
ステップS603では、フィルタ計算の処理時間に関する上限Tlimit2を設定する。この値は、ユーザの入力により定められても、既定値を用いても良い。次にフィルタの計算量をT[1]から順番に積算する。この積算値とTlimit2を比較し、Tlimit2を超えるようなフィルタf[Niter2]を探す。そしてこのようなフィルタが見つかった時点で、それ以降のフィルタf[Niter2+1],…,f[Niter1]を選択フィルタ集合から除く。
【0060】
ステップS604において、識別部110は画像Iにフィルタf[1]を適用し、特徴量画像F[1]を生成する。この処理中は、作成過程で得られる特徴量を全て不図示の一時メモリに記憶しておく。ステップS605では、識別部110は作成過程にて保存すべき特徴量があると判定されているかを記憶部102の情報を参照して確認し、保存すべき特徴量を一時メモリから取り出して保存し、必要のない特徴量は破棄する。ステップS606では、識別部110は全ての特徴量画像を作成し終わったか否かを判定し、終わっていない場合にはステップS604の処理に進み次の特徴量画像を作成する。u回目の反復処理において、本ステップで生成した特徴量画像をF[u]と記述する。終了している場合にはステップS607の処理へと進む。以上の処理により識別部110は画像Iにフィルタf[1],…,f[Niter2]を適用し、特徴量画像F[1],…,F[Niter2]を生成する。
【0061】
ステップS607では、識別部110は生成された特徴量画像F[1],…,F[Niter2]を利用して識別処理を行う。ここでは、図7に示したフローチャートの処理でAdaboost法を用いて訓練された識別器を適用して識別処理を行う。なお、識別の方法は、実施例1のステップS203で説明したマハラノビス距離値に基づく方法や、Support Vector Machine(SVM)による方法など、公知の識別方法のいずれでもよい。
【0062】
ステップS608において、データ出力部109は識別部110が特定したデータを記憶部102から取得し、外部のデータサーバ20に出力する。
【0063】
以上で述べた構成によれば、本実施例における情報処理装置10は、学習画像集合に含まれない未知の画像に対して、特徴画像の算出時間に関して事前に指定された条件の範囲内で精度の高い識別処理を実施することが可能となる。そのため、「精度は低いが短時間で識別を終了したい」や「ある程度の時間を要するが高精度な識別を期待する」というように、時間と精度に関する条件に合わせた識別処理を実施することが可能となる。
【0064】
なお、本識別処理では計算順序グラフに格納されたフィルタの適用時間を用いて特徴量及びフィルタの数を制限したが、これに限らず、特徴量の作成処理を実行しながら時間の判定を行っても良い。この場合には、識別部110は、選択フィルタ集合に含まれるフィルタを実際に画像に適用することで、フィルタ適用処理に要する時間を取得する。そして取得した経過時間に基づいて、フィルタ適用を継続させるか終了させるかを判定する。これにより、本実施例における情報処理装置は、学習画像集合に含まれない未知の画像に対して、事前に指定された計算時間の範囲内で、高い識別精度で識別が可能となる。
【0065】
即ち、ステップS603の実行が終了した時点で識別部110は時間のカウントを開始し、ステップS606にて識別部110はそれまでのフィルタの適用処理の時間を取得して時間閾値を超えているか否かを判定する。ここで超えていなければ(ステップS606でNo)ステップS604の処理に進み特徴量の作成を行う。超えていると判定した場合には(ステップS606でYes)、そこで特徴量の作成処理を終了し、そこまでで作成済みの特徴量を用いて識別を行うこととすればよい。また、ステップS606にてそれまでのフィルタの適用処理の時間と、次のフィルタの適用時間を計算順序グラフから取得して和を取り、その時間が閾値を超えているか否かで処理の分岐を決定しても良い。このように実際の処理時間を用いて足切りの処理を行うことにより、より現実の識別時間への要求に対応した識別処理を行うことができる。
【0066】
(実施例2)
実施例2では、学習データから特徴量を逐次選択し、これにAdaboostを適用して識別器を生成する処理と、訓練された識別器を未知データに適用して特徴を識別する例を説明する。実施例1とは、生成処理において所定の時間閾値を設定し、この閾値を超えないように識別器の生成処理を行う。これにより、要求される識別時間を超えない識別器を生成することができる。これら処理を実行する情報処理システムの構成については図1と同様であるが、各機能ブロックにより実行される処理は異なる。
【0067】
実施例2に係る情報処理装置10が実行する識別器の生成処理について、図7に従い説明する。なお、実施例1と重複する処理については説明を省略する。
【0068】
本実施例における情報処理装置も実施例1の情報処理装置と同様に、フィルタの計算順序と計算量の双方を考慮したうえで最適なフィルタを選択する。これに加えて、本実施例では、入力フィルタ集合からフィルタを選択する際に、未知の画像に対して識別処理を実行する際にフィルタ計算に要する時間を推定する。そして、この推定計算時間の総和が事前に指定された時間Tlimit1を越えた時点で、フィルタ選択を終了する。これにより、未知の画像に対する識別処理に要する時間を、フィルタ選択段階で決定することが可能となる。また、本実施例では学習アルゴリズムとしてAdaboostを用い、特徴量の選択及び識別器の生成を行う。
【0069】
ステップS703では、データ取得部101は、データサーバ20からTlimit1を設定し、記憶部102に格納する。この設定値は、ユーザの入力により定めることとしても、既定値を用いることとしても良い。
【0070】
ステップS704において、識別精度特定部104は、フィルタの識別精度を特定する際に、学習画像集合に格納されている画像の各画素に付与されている重みD[t](x)に基づき、フィルタの識別精度を計算する。以下、具体的に説明する。
【0071】
まず、fが生成する特徴量画像F(x)をしきい値S[t]で2値化し、2値画像h[t](x)を生成する。
【0072】
【数5】

【0073】
なお、h[t](x)とF(x)は学習画像集合に格納されている画像毎に与えられる点、一方、S[t]は一つのフィルタについて一つ与えられる点に注意されたい。
【0074】
次に、h[t](x)と学習画像集合に格納されているラベル画像L(x)から、フィルタfの誤り率e[t]を計算する。
【0075】
【数6】

【0076】
式(5)は学習画像集合に含まれる画像の画素のうち、h[t](x)1L(x)である画素について、D[t](x)の和をとることを意味している。AdaBoostの場合、ラベル画像L(x)は、抽出すべき画素には値1が、その他の画素には値−1が格納されている。なお、D[1](x)は、学習画像集合に含まれる画像の全画素数Nvoxelsを用いて、
【0077】
【数7】

【0078】
で初期化されているものとする。
【0079】
誤り率e[t]から、識別精度P[t]は、
【0080】
【数8】

【0081】
として計算される。以上の処理でフィルタの識別精度を特定する。
【0082】
ステップS707において、フィルタ選択部107がフィルタを選択した後、選択されたフィルタに基づき、そのフィルタの信頼度と学習サンプルの重みを更新する。選択されたフィルタf[t]の信頼度a[t]は次式で計算される。
【0083】
【数9】

【0084】
ここでe[t]は、フィルタf[t]の誤り率である。式(6)で計算された信頼度a[t]に基づき、学習サンプルの重みを更新する。
【0085】
【数10】

【0086】
[t]は次式で計算される正規化項である。
【0087】
【数11】

【0088】
ステップS709において、フィルタ選択部107はステップS704からステップS708までのフィルタ選択の反復処理の終了を判定するが、この終了条件としてTlimit1を利用する。t−1回目までの反復処理で選択されたフィルタの計算量の総和T[t−1]estimateに、t回目の反復処理で選択したフィルタf[t]の計算量T[t]を加え、T[t]estimateとする。T[t]として、計算順序グラフのフィルタノードに格納されている計算量を利用する。T[t]estimateとTlimit1を比較し、T[t]estimateがTlimit1を越えた時点で、フィルタ選択を終了する。もしそうでなければ、ステップS704に戻り、フィルタ選択を続行する。
【0089】
以上の処理により、情報処理装置10は選択されたフィルタの信頼度と計算し、更に学習画像集合の各画素について、重みを更新する。
【0090】
上述の処理により、本特許をAdaBoostと組み合わせてフィルタを選択することが可能となる。
【0091】
最後に、上述の処理で選択されたフィルタf[1],…,f[Niter1]を利用して、学習画像集合に含まれていない未知の画像から領域を抽出する際の処理について述べる。
【0092】
まず選択フィルタ集合のそれぞれのフィルタf[1],…,f[Niter1]を未知画像に適用し、特徴量画像G[1],…,G[Niter1]を生成し、更に特徴量画像から2値画像g[1],…,g[Niter1]を生成する。この計算の過程は、式(3)を用いて2値画像h[1],…,h[Niter1]を生成した時と同様である。なお2値画像を生成する際のしきい値は、h[1],…,h[Niter1]を生成する際に用いたしきい値S[1],…,S[Niter1]を用いる。生成した2値画像g[1],…,g[Niter1]を用いて、未知画像内の各画素について、次式を計算する。
【0093】
【数12】

【0094】
ここでsign(p)はp30なら1を、そうでなければ-1を返す関数である。式(9)で計算された値が1ならばその画素は抽出対象の画素であり、-1であれば抽出対象外の画素を表す。
【0095】
(その他の実施例)
上述の実施例では計算順序グラフを用いて特徴量の算出時間を求めたが、必ずしも計算順序グラフによる必要はない。フィルタの適用順序を参照することができるデータを有していれば同様の処理が可能であることは言うまでもない。
【0096】
上述の実施例では、学習アルゴリズムとしてSVMやAdaboostを用いたが、これら以外のアルゴリズムを用いて識別器の生成処理を行っても良い。
【0097】
上記のそれぞれの実施例は、本発明を情報処理装置として実現したものである。しかしながら、本発明の実施例は情報処理装置のみに限定されるものではない。本発明をコンピュータ上で動作するソフトウェアとして実現することも可能である。情報処理装置のCPUは、RAMやROMに格納されたコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。また、情報処理装置の各部に対応するソフトウェアの実行を制御して、各部の機能を実現する。
【符号の説明】
【0098】
10 情報処理装置
20 データサーバ
101 データ取得部
102 記憶部
103 計算順序グラフ生成部
104 識別精度特定部
105 計算量特定部
106 フィルタ評価値計算部
107 フィルタ選択部
108 計算順序グラフ更新部
109 データ出力部

【特許請求の範囲】
【請求項1】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理装置であって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する取得手段と、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する評価手段と、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する生成手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記選択された特徴量の算出時間の総和が所定の閾値を超えるか否かに応じて前記選択を更に行うか否かの判定を行う判定手段を有することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記生成手段は、前記特徴量の一つが選択されることより前記特徴量の算出時間の総和が所定の閾値を超える場合には該特徴量を選択しないことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記評価手段は、前記選択された特徴量と前記取得されたノードに対応する特徴量の夫々により生成される識別器の識別精度を、前記取得されたノードに対応する特徴量の識別精度として算出することを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記選択された特徴量を得るために前記木構造に従い算出した各ノードに対応する特徴量とは、学習データに少なくとも一つのフィルタを順に適用する過程で得られる各特徴量であることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記識別器は、前記逐次選択された夫々の特徴量を作成するためのフィルタと、該フィルタから得られる複数の特徴量に基づいて決定される識別関数を有することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記識別器は、SVMまたはAdaboostのいずれかを用いて識別器を作成することを特徴とする請求項1に記載の情報処理装置。
【請求項8】
学習データに複数の空間フィルタを適用する過程で順次得られる複数の特徴量から逐次選択して識別器を生成する情報処理装置であって、
前記複数の特徴量の夫々を、既に前記選択された特徴量を作成する過程で順次得られる特徴量からの算出時間と、前記学習データに対する識別精度とに基づき評価する評価手段と、
前記評価に基づき前記複数の特徴量から少なくとも一つの特徴量を選択する選択手段と、
を有することを特徴とする情報処理装置。
【請求項9】
未知データに対して少なくとも一つのフィルタを適用して取得する複数の特徴量を用いて前記データの識別を行う情報処理装置であって、
前記特徴量の少なくとも一つを取得する過程で得られる特徴量を保存する保存手段と、
前記保存された情報に基づいて前記特徴量の一つとは異なる前記特徴量を算出する算出手段と
を有することを特徴とする情報処理装置。
【請求項10】
前記特徴量の一つとは異なる前記特徴量の作成に利用されるか否かに応じて、前記特徴量の少なくとも一つを取得する過程で得られる特徴量を保存手段により保存するか否かを制御する制御手段と
を有することを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記算出手段が前記複数の特徴量を算出する際の算出時間が所定の閾値を超えるか否かに応じて前記特徴量の作成を止める制御を行う制御手段と
を有することを特徴とする請求項9または10に記載の情報処理装置。
【請求項12】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理方法であって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得するステップと、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価するステップと、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成するステップと、
を有することを特徴とする情報処理方法。
【請求項13】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理であって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する処理と、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する処理と、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する処理と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項14】
学習データに少なくとも一つのフィルタを適用して作成される特徴量を逐次選択する際に用いるデータ構造であって、
学習データの特徴量を得るための複数のフィルタに含まれるフィルタとその順序を、前記複数のフィルタに含まれる入出力が等しいフィルタを同一のノードとする木構造で格納する木構造データと、
前記木構造データのノードとして格納されたフィルタに関連付けられ、前記複数のフィルタの選択に用いる評価値である前記フィルタの計算時間のデータとを有し、
選択された前記複数のフィルタに含まれるフィルタについての前記計算時間のデータは0である
ことを特徴とするデータ構造。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−113550(P2011−113550A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−272570(P2009−272570)
【出願日】平成21年11月30日(2009.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】