(57)【特許請求の範囲】
【請求項１】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理装置であって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する取得手段と、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する評価手段と、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する生成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記選択された特徴量の算出時間の総和が所定の閾値を超えるか否かに応じて前記選択を更に行うか否かの判定を行う判定手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、前記特徴量の一つが選択されることより前記特徴量の算出時間の総和が所定の閾値を超える場合には該特徴量を選択しないことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記評価手段は、前記選択された特徴量と前記取得されたノードに対応する特徴量の夫々により生成される識別器の識別精度を、前記取得されたノードに対応する特徴量の識別精度として算出することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記選択された特徴量を得るために前記木構造に従い算出した各ノードに対応する特徴量とは、学習データに少なくとも一つのフィルタを順に適用する過程で得られる各特徴量であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記識別器は、前記逐次選択された夫々の特徴量を作成するためのフィルタと、該フィルタから得られる複数の特徴量に基づいて決定される識別関数を有することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記識別器は、ＳＶＭまたはＡｄａｂｏｏｓｔのいずれかを用いて識別器を作成することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
学習データに複数の空間フィルタを適用する過程で順次得られる複数種類の特徴量から逐次選択して識別器を生成する情報処理装置であって、
前記複数種類の特徴量の夫々を、既に前記選択された種類の特徴量を作成する過程で順次得られる特徴量からの算出時間と、前記学習データに対する識別精度とに基づき評価する評価手段と、
前記評価に基づき前記複数種類の特徴量から少なくとも一種類の特徴量を選択する選択手段と、
を有することを特徴とする情報処理装置。
【請求項９】
未知データから特徴量を算出し、該算出される特徴量を用いて前記データの識別を行う情報処理装置であって、
請求項８の情報処理装置により選択された種類の特徴量を未知データから算出する第一の算出手段と、
前記特徴量の少なくとも一つが算出される過程で得られる特徴量を保存する保存手段と、
前記保存された情報に基づいて前記特徴量の一つとは異なる前記特徴量を算出する第二の算出手段と、
を有することを特徴とする情報処理装置。
【請求項１０】
前記特徴量の一つとは異なる前記特徴量の作成に利用されるか否かに応じて、前記特徴量の少なくとも一つを取得する過程で得られる特徴量を保存手段により保存するか否かを制御する制御手段と
を有することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記算出手段が前記複数の特徴量を算出する際の算出時間が所定の閾値を超えるか否かに応じて前記特徴量の作成を止める制御を行う制御手段と
を有することを特徴とする請求項９または１０に記載の情報処理装置。
【請求項１２】
学習データに複数の空間フィルタを適用する過程で順次得られる複数種類の特徴量から逐次選択して識別器を生成し、未知データの識別を行う情報処理システムであって、
前記複数種類の特徴量の夫々を、既に前記選択された種類の特徴量を作成する過程で順次得られる特徴量からの算出時間と、前記学習データに対する識別精度とに基づき評価する評価手段と、
前記評価に基づき前記複数種類の特徴量から少なくとも一種類の特徴量を選択する選択手段と、
前記選択された種類の特徴量を未知データから算出する第一の算出手段と、
前記特徴量の少なくとも一つが算出される過程で得られる特徴量を保存する保存手段と、
前記保存された情報に基づいて前記特徴量の一つとは異なる前記特徴量を算出する第二の算出手段と、
を有することを特徴とする情報処理システム。
【請求項１３】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理方法であって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得するステップと、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価するステップと、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成するステップと、
を有することを特徴とする情報処理方法。
【請求項１４】
学習データに複数の空間フィルタを適用する過程で順次得られる複数種類の特徴量から逐次選択して識別器を生成する情報処理方法であって、
前記複数種類の特徴量の夫々を、既に前記選択された種類の特徴量を作成する過程で順次得られる特徴量からの算出時間と、前記学習データに対する識別精度とに基づき評価するステップと、
前記評価に基づき前記複数種類の特徴量から少なくとも一種類の特徴量を選択するステップと、
を有することを特徴とする情報処理方法。
【請求項１５】
学習データに対する特徴量を逐次選択して識別器を生成する情報処理をコンピュータに実行させるためのプログラムであって、
前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する処理と、
前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する処理と、
前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する処理と、
をコンピュータに実行させるためのプログラム。
【請求項１６】
学習データに複数の空間フィルタを適用する過程で順次得られる複数種類の特徴量から逐次選択して識別器を生成する情報処理をコンピュータに実行させるためのプログラムであって、
前記複数種類の特徴量の夫々を、既に前記選択された種類の特徴量を作成する過程で順次得られる特徴量からの算出時間と、前記学習データに対する識別精度とに基づき評価する処理と、
前記評価に基づき前記複数種類の特徴量から少なくとも一種類の特徴量を選択する処理と、
をコンピュータに実行させるためのプログラム。
【請求項１７】
学習データに少なくとも一つのフィルタを適用して作成される特徴量を逐次選択する際に用いるデータ構造であって、
学習データの特徴量を得るための複数のフィルタに含まれるフィルタとその順序を、前記複数のフィルタに含まれる入出力が等しいフィルタを同一のノードとする木構造で格納する木構造データと、
前記木構造データのノードとして格納されたフィルタに関連付けられ、前記複数のフィルタの選択に用いる評価値である前記フィルタの計算時間のデータとを有し、
選択された前記複数のフィルタに含まれるフィルタについての前記計算時間のデータは０である
ことを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データから複数の特徴量を抽出し、それらと識別器に入力して画像データの特徴を識別する識別器に関する。
【背景技術】
【０００２】
近年、顔検出や医療画像における病変部検出など、画像画像データから特定の領域のみを選択的に検出する識別処理技術が利用されている。
【０００３】
この技術では、複数の学習用画像の夫々に対して、最大・最小値フィルタやＷａｖｅｌｅｔ等、画像の部分領域を強調可能なフィルタを複数組み合わせて複数の特徴量を求め、所定の学習アルゴリズムに適用して識別器を訓練する。ここでいう識別器とは、未知画像に対して適用すべき複数のフィルタによる複数の特徴量データを入力とし、識別の結果を出力とする一連の計算方法を示している。また、ここでの学習アルゴリズムは、ＡｄａｂｏｏｓｔやＳｕｐｐｏｒｔＶｅｃｔｏｒＭａｃｈｉｎｅ等が考えられる。
【０００４】
これら識別処理を行うための識別器を作成するに当たっては、入力となる特徴量の選択が重要となる。これは学習段階における入力がその識別器の汎化能力即ち識別精度に大きく寄与するからである。また、画像に対するフィルタの適用処理が識別処理にかかる時間の大部分を占めるからである。特に、実用上は許容範囲内で適切な精度の識別を行うことが必要であり、フィルタの選択つまりは特徴量の選択が特に重要となる。
【０００５】
特許文献１では、学習時のフィルタの選択基準として、抽出精度に加えてフィルタの計算量も考慮してフィルタを選択することで、未知のデータに適用する際の計算時間を削減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１００１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
識別器を訓練する場合において特徴量データを選択するときに、画像に対するフィルタ適用処理が重複する場合がある。例えば、ある特徴量Ｘを抽出するフィルタ群がＡ，Ｂ，Ａ，Ｃであり、別の特徴量Ｙを抽出するためのフィルタ群がＡ，Ｂ，Ｄであるような場合である。このような場合に、フィルタＡ，Ｂを適用する処理は重複している。従来では、計算時間の評価を行う際にこのような重複を考慮せずに選択を行っていたため、結果として作成される識別器の処理に無駄があるか、または計算時間を正確に評価できていないこととなっていた。
【課題を解決するための手段】
【０００８】
本発明はかかる課題を解決するためになされたものであり、学習データに対する特徴量を逐次選択して識別器を生成する情報処理装置であって、前記学習データに対して適用する空間フィルタ及び計算時間をノードに関連付け空間フィルタの適用順序と計算時間を木構造として表現し、前記適用順序に従い前記空間フィルタを適用して得られる特徴量を前記木構造のノードに対応して取得する取得手段と、前記取得されたノードに対応する特徴量の夫々を、選択された特徴量を得るために前記木構造に従い適用したフィルタに対応する各ノードからの算出時間と前記学習データに対する識別精度とに基づき評価する評価手段と、前記評価に基づき前記ノードに対応する特徴量を逐次選択して識別器を生成する生成手段と、を有することを特徴とする。
【発明の効果】
【０００９】
かかる構成を有する本発明によれば、重複処理を回避して計算時間を評価し、識別器を作成するため、計算時間を正確に評価して識別器を作成することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの構成図である。
【図２】記憶部１０２に格納される計算順序グラフを示した図である。
【図３】特徴量選択に伴う計算順序グラフの操作の概要を示した図である。
【図４】情報処理装置１０による識別器の生成処理の流れを示すフローチャートである。
【図５】ＳＶＭを適用する特徴量画像群を示す図である。
【図６】情報処理装置１０による未知データの識別処理の流れを示すフローチャートである。
【図７】実施例２に係る情報処理装置１０による識別器の生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
（実施例１）  ＳＶＭによる識別器の学習と、識別処理
実施例１は、学習データから特徴量を逐次選択し、これにＳＶＭを適用して識別器を生成する処理と、訓練された識別器を未知データに適用して特徴を識別する処理を行う情報処理システムについて説明する。識別器の生成処理においては、特徴量を算出する際の重複処理を考慮して計算時間を評価する。また、識別処理においては、重複処理を避けて未知データから特徴量を生成する。
【００１２】
本実施例における処理を実行する情報処理システムの構成について図１に従い説明する。情報処理システムは、情報処理装置１０とデータサーバ２０からなり、これらはインターフェイスを介してデータサーバ２０と接続されている。接続に用いるインターフェイスは、ローカル・エリア・ネットワーク（ＬＡＮ）、ＩＥＥＥ１３９４、光ファイバ、ＵＳＢ等のいずれでもよい。
【００１３】
データサーバ２０は学習画像集合とフィルタ集合を蓄積する。学習画像集合とフィルタ集合は情報処理装置１０の要求に応じて、情報処理装置１０に送信される。またデータサーバ２０は、情報処理装置１０により選択されたフィルタの集合を蓄積する。ここでいう学習画像集合は、例えば人間の顔を含む撮影画像であり、これら画像から人間の顔画像を識別する識別器を生成するための学習データである。またフィルタ集合とは、画像データからエッジ、平均画素値、特定形状の個数等の特徴量を作成するための空間フィルタであり、変換行列等がある。
【００１４】
情報処理装置１０は以下の各部から構成される。即ち、データ取得部１０１、記憶部１０２、計算順序グラフ生成部１０３、識別精度特定部１０４、計算量特定部１０５、フィルタ評価値計算部１０６、フィルタ選択部１０７、計算順序グラフ更新部１０８、データ出力部１０９、識別部１１０である。
【００１５】
かかる構成で、データ取得部１０１はデータサーバ２０から学習画像集合とフィルタ集合を取得し、記憶部１０２に格納する。計算順序グラフ生成部１０３は、記憶部に格納されたフィルタ集合から計算順序グラフを構築する。計算順序グラフとは、原画像に対するフィルタの適用順序とそれにより順次得られる特徴量の関係を木構造で表現したデータである。このデータも記憶部１０２に格納される。計算順序グラフの詳細については後述する。
【００１６】
識別精度特定部１０４は、記憶部１０２に格納された学習データを利用して各フィルタの識別精度を計算する。識別精度は、既に選択済みの特徴量と、計算順序グラフに示された各特徴量の夫々とにより識別器を生成し、全学習データに適用し、識別が正解した数と誤った数から識別精度を算出する。
【００１７】
計算量特定部１０５は、計算順序グラフ生成部１０３で生成された計算順序グラフを利用して計算量を特定する。ここでいう計算量とは、原画像から特徴量を得るための計算にかかる時間のことを指す。画像の読み込み、特徴量の記憶部１０２への保存処理等は画像のフィルタ適用処理に対して十分に小さいため、計算量はフィルタの適用処理にかかる時間としてよい。
【００１８】
フィルタ評価値計算部１０６は、識別精度特定部１０４で特定された識別精度と計算量特定部１０５で特定された計算量から、特徴量及びフィルタの選択に利用する評価値を計算する。フィルタ選択部１０７は、特徴量及びフィルタ選択のための評価値に基づき、特徴量及びフィルタの選択を行う。選択された特徴量及びフィルタは記憶部１０２に格納される。計算順序グラフ更新部１０８は、フィルタ選択部１０７で選択されたフィルタに基づき、計算順序グラフに格納されている計算量の更新を行う。選択された特徴量と、その算出過程で得られる特徴量を計算順序グラフから特定し、これら特徴量の計算量を０とする。この計算量の評価に基づいて、フィルタ選択部１０７は更に特徴量及びフィルタを選択する。これは、二以上の特徴量の作成過程に共通部分がある場合には、その共通部分の処理の重複を避けることが可能であることによる。この処理についても後述する。
【００１９】
データ出力部１０９は記憶部１０２に格納されているフィルタに関する情報をデータサーバ２０に送信する。これら空間フィルタとその適用時のパラメータが、識別器を構成する。
【００２０】
識別部１１０は、記憶部１０２から学習画像集合に含まれない未知の画像を取得する。同時に識別部１１０は、フィルタ選択部１０７が選択したフィルタの集合である選択フィルタ集合とその選択順序も取得する。その後、識別部１１０は選択フィルタ集合を利用して識別処理を行う。この際、例えば一の特徴量がフィルタをＡ，Ｂ，Ｃの順で適用して得られる特徴量であり、他の特徴量がフィルタをＡ，Ｂ，Ｄの順で適用して得られる特徴量である場合に、一の特徴量の算出時にフィルタＡ，Ｂまでの適用結果を記憶部１０２に保存する。そして、他の特徴量の算出にこの保存された適用結果の特徴量を用いる。このように二以上の特徴量の算出過程が一部共通している場合、一の特徴量の算出時に共通部分の特徴量を保存しておき、他の特徴量の算出に用いることで、処理の重複を避けることができる。これにより共通部分の特徴量の保存処理を行う必要が発生するが、この保存処理にかかる時間は画像への空間フィルタの適用処理に要する時間に対して十分に小さいため、識別処理にかかる時間を短縮することができる。
【００２１】
識別結果を記憶部１０２に格納する。データ出力部１０９は記憶部１０２に格納された識別結果に関する情報を、外部のデータサーバ２０に出力する。
【００２２】
上述の情報処理システムのデータサーバ２０に記憶される学習データの画像及び空間フィルタと特徴量のデータ構造について、図２に従い説明する。計算順序グラフは、フィルタの適用順序や既に計算されている特徴量画像の存在を考慮して計算量を特定する際に有効な構造を有する木構造データである。なお、以下の説明では、フィルタの選択とは、フィルタとその結果として得られる特徴量画像の選択を意味するものとする。
【００２３】
計算順序グラフとは、画像に対して適用するフィルタとフィルタの出力結果である特徴量画像の関係を木構造データで表現したものである（図２（ａ））。一つのグラフは画像を表すノードとフィルタを表すノードの２種類のノードからなる。図２（ａ）では、ノード２０１、２０３、２０５、２０７、２０９、２１１、２１３が画像ノードを表しており、ノード２０２、２０４、２０６、２０８、２１０、２１２がフィルタノードを表している。フィルタノードに向かう矢印はフィルタに対する入力を、またフィルタノードから出る矢印はフィルタの出力を表している。フィルタノード２０２の例でいえば、原画像がフィルタＡの入力であり、その出力が特徴量画像Ａ、すなわち原画像に対してフィルタＡを適用することで特徴量画像Ａが出力されることを意味している。あるフィルタから出力された画像は、更に他のフィルタの入力となることも可能である。更に画像ノード２０３とフィルタノード２０４、２０６との関係のように、一つの画像が複数のフィルタの入力となることもある。ここで、一つのフィルタノードは、入力となる特徴量画像または学習画像と、出力となる特徴量画像が等しい場合に同一のノードして取り扱っている。
【００２４】
フィルタノードは対応するフィルタの名前に加えて、そのフィルタの適用にかかる計算時間、つまり特徴量の算出時間が関連付けられ格納されている。図２（ａ）において、フィルタノード内の丸括弧で括られた数字が、計算量を表している。この計算量は、入力画像に対して最初のフィルタを適用してから、注目しているフィルタの計算が終了するまでに必要な全体の算出時間を示している。図２（ｂ）を参照しながら、具体的に説明する。図２（ｂ）は、図２（ａ）で示したそれぞれのフィルタについて、フィルタ単体での計算量を示している。例えば、原画像に対してフィルタＡを適用し、特徴量画像Ａを出力するまでに必要な算出時間は２であることが分かる。また、特徴量画像Ａに対してフィルタＢを適用し、特徴量画像Ｂを適用するのには算出時間が４だけ必要である。
【００２５】
それぞれのフィルタの単体での計算量から、計算順序グラフのフィルタノードが保持する計算量は容易に決定できる。例えば、フィルタノード２０４に格納する計算量は、原画像に対してフィルタＡを適用するのに必要な計算量の２に、特徴量画像Ａに対してフィルタＢを適用するのに必要な計算量の４を加えた値２＋４＝６となる。同様に、フィルタノード２０８に格納する計算量は２＋３＋１＝６、フィルタノード２１２に格納する計算量は３＋２＝５となる。このようにして構築した計算順序グラフを利用することにより、原画像が与えられてから注目するフィルタが特徴量画像を出力するまでに適用されるフィルタの順番と計算に必要な時間を、効率的に取得することが可能となる。なお、計算順序グラフはこれに限らず、特徴量画像のみをノードとし、空間フィルタをエッジ（リンク）とした木構造データであってもよい。また、フィルタのみをノードとした木構造データであってもよい。
【００２６】
フィルタ選択処理でフィルタが一つ選択されるたびに、計算された特徴量画像に応じて、フィルタノードに格納されている計算量が更新される。詳細は後述するが、本件では、フィルタは抽出精度と計算量の組み合わせからなる指標に基づいて選択される。しかし説明の便宜上、ここではフィルタ選択の詳細には触れず、フィルタが選択された際の計算量の更新に注目して説明を行う。
【００２７】
特徴量の算出時間に関するデータの操作の概要について、図３を用いて説明する。図３（ａ）は、フィルタが一つも選択されていない状況での計算順序グラフである。この状況において、１番目のフィルタとしてフィルタＣが選択されたと仮定する。ここで、フィルタＣの出力結果である特徴量画像Ｃを実際に生成する過程を考える。図３（ａ）の計算順序グラフを参照すると、フィルタＣの入力画像は特徴量画像Ａであることが分かる。そのため、フィルタＣを計算するための前段階として、原画像に対してフィルタＡを適用し、特徴量画像Ａを取得しておかなければならない。これは逆に考えると、フィルタＣの出力結果である特徴量画像Ｃを生成した段階で、フィルタＡの計算はすでに完了しており、その出力である特徴量画像Ａもすでに生成されていることを意味している。そこで、生成された特徴量画像Ａを記憶領域等に格納しておき、フィルタＡの計算が必要になった時に記憶領域等に格納された特徴量画像Ａを利用すれば、フィルタＡを今後計算する必要はないと考えられる。このような考えの下、計算順序グラフのフィルタノード３０２とフィルタノード３０５の計算量を０に設定する。
【００２８】
更に図３（ａ）の計算順序グラフから、フィルタＢの入力画像も特徴量画像Ａであることが分かる。上述の通り、フィルタＣを適用する際に生成した特徴量画像Ａは、フィルタＢの入力画像としても利用可能である。そのため、フィルタＢの計算量は減少するはずである。計算順序グラフからフィルタノード３０４に格納されている計算量は６であるが、これはフィルタＢ単体での計算量４にフィルタＡ単体での計算量２を加えた値である。今、特徴量画像Ａが再利用可能なことから、フィルタＡの計算量は０である。そのため、入力画像から特徴量画像Ｂを算出するのに要する算出時間は、フィルタＢ単体での計算量に等しい。そこで、フィルタノード３０４には、元々フィルタノード３０４に格納されていた計算量６からフィルタノード３０２に格納されていた計算量２を引いた値４を格納する。
【００２９】
以上をまとめると、１番目のフィルタとしてフィルタＣが選択された時、計算順序グラフのフィルタノード３０２とフィルタノード３０６に計算量０を、またフィルタノード３０４に計算量４を格納する。図３（ｂ）は、図３（ａ）のグラフにおいてフィルタＣを選択した後のグラフを示している。フィルタＡとフィルタＣに対応するフィルタノード３２２、３２６の計算量が０に、またフィルタＢに対応するフィルタノード３０４の計算量が４になっているのが分かる。
【００３０】
２番目以降のフィルタが選択された際にも、同様の考え方に基づき、計算順序グラフに格納されている計算量を更新していく。
【００３１】
このようにデータの更新処理を行うことで、特徴量またはフィルタ選択時の計算量の評価を適切に行うことができる。
【００３２】
上述の構成を有する情報処理装置１０が実行する識別器の処理の詳細を図４のフローチャートに従い説明する。
【００３３】
ステップＳ４０１において、データ取得部１０１はデータサーバ２０から学習画像集合と入力フィルタ集合を取得し、記憶部１０２に格納する。学習画像集合には、フィルタの抽出精度を評価するための複数の画像と、それぞれの画像について画像内の抽出すべき特定の領域のみをラベル付けしたラベル画像が含まれる。本実施例では、ラベル画像内の抽出すべき領域に含まれる画素には画素値１を、その他の領域の画素には画素値０を設定する。
【００３４】
入力フィルタ集合とは、情報処理装置１０がフィルタを選択する際の元となる集合のことであり、ノイズ抑制のためのフィルタや抽出対象領域を強調するフィルタが多数含まれる。領域抽出に有効なフィルタは、入力画像や抽出すべき領域の性質に応じて異なる。そのため、入力フィルタ集合に格納するフィルタの種類は、適用する問題に応じて実験的に決定される。入力フィルタ集合に格納するフィルタには、入出力の画像を示す一意な数字を付与しておく。
【００３５】
ステップＳ４０２において、計算順序グラフ生成部１０３は計算順序グラフを構築する。はじめに、記憶部１０２から入力フィルタ集合を取得し、グラフを生成する。入力フィルタ集合に格納されているフィルタは、それぞれ入出力の画像を示す一意な数字を保持している。この数字を利用することで、公知のアルゴリズムにより容易にグラフを生成することが可能である。また、グラフ生成は全処理を通して一度だけ実行すればよいため、事前に手動でグラフを生成することも可能である。
【００３６】
次に生成されたグラフに基づいて、フィルタノードに格納する計算量を取得する。そのために、まずフィルタ単体での計算量を取得する。フィルタ単体での計算量とは、画像を入力してから、フィルタの適用結果を出力するまでに要する処理時間とする。これは、学習データに含まれている各画像に対してフィルタを実際に適用して、画像毎に処理時間を計測し、更にそれらを平均することで得られる。フィルタ単体での計算量を取得したら、構築した計算順序グラフとフィルタ単体での計算量から、グラフのフィルタノードに計算量を格納する。フィルタノードに格納する計算量の求め方はすでに説明を終えているため、ここで繰り返して説明はしない。
【００３７】
ステップＳ４０３において、識別精度特定部１０４は記憶部１０２に格納されている学習画像集合と入力フィルタ集合を読み込み、入力フィルタ集合に含まれている各フィルタについて識別精度を特定する。フィルタの識別精度は、学習画像集合の各画像について領域抽出を行い、抽出された領域を対応するラベル画像内の抽出対象領域と比較することで決定される。ここでは、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅを用いて領域抽出を行い、その結果を利用して識別精度を決定する手順を説明する。以下、ステップＳ２０３からＳ２０７までのｔ−１回の反復処理までに選択されたフィルタをｆ［１］，…，ｆ［ｔ−１］と記述する。また、入力フィルタ集合内のある一つのフィルタをｆｉと記述する。
【００３８】
Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅは、ｄ次元のベクトルｘが２つのクラス（例えば１または−１）のうちどちらに属しているかという識別問題に対する学習アルゴリズムの一つである。Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅの学習アルゴリズム自体は公知であるため説明は省略し、ここではその入力と出力の説明を行う。Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅは、入力としてｎ個のｄ次元のベクトルｘｉとそのベクトルが属するクラスｙｉI｛１，−１｝の組と、識別時のカーネルの型とパラメータを必要とする。まず前者であるが、本実施例ではベクトルｘｉはフィルタｆ［１］，…，ｆ［ｔ−１］，ｆｉが出力した特徴量画像Ｆ［１］，…，Ｆ［ｔ−１］，Ｆｉの画素値を要素に持つベクトルとする。図５を参照して具体的に説明すると、ベクトルｘｉはそれぞれ、
【００３９】
【数１】
0005448758.tif 000002
【００４０】
とする。ここでＦ［ｉ］（ｘ，ｙ）は特徴量画像Ｆ［ｉ］の座標値（ｘ，ｙ）での値を表している。学習画像データ１枚に対してベクトルが画像の画素数分作成される。これが、学習画像データの枚数Ｌだけ生成されるため、実際のベクトルの数はｍ×ｎ×Ｌとなる。
【００４１】
ＳＶＭでは、各特徴量画像、識別に用いる識別関数の型とパラメータ、学習画像集合に含まれている前画像とそれらに対応する正解画像（ラベル画像）を入力とし、識別関数を出力として得ることができる。この識別関数を全学習画像データに対して適用し、正解画像と比較して識別精度を算出する。
【００４２】
なお、識別のための方法は、フィルタの出力結果である特徴量画像に対する単純なしきい値処理や、特徴量画像から計算されるマハラノビス距離値を利用した領域抽出法など、いずれの方法でもよい。また、ｆｉが出力する特徴量画像のみを利用した領域抽出法でも、ｆ［１］，…，ｆ［ｔ−１］とｆｉが生成した特徴量画像を組み合わせて実行する領域抽出法でもよい。
【００４３】
上述の処理を入力フィルタ集合に含まれるすべてのフィルタについて行い、各フィルタまたは特徴量の識別精度として取得する。
【００４４】
ステップＳ７０４において、計算量特定部１０５は入力フィルタ集合の各フィルタｆｉについて、計算順序グラフ内の対応するフィルタノードからフィルタの計算量Ｔ［ｔ］ｉを取得する。
【００４５】
ステップＳ７０５において、フィルタ評価値計算部１０６はステップＳ７０３とステップＳ７０４で特定されたフィルタの識別精度と計算量からフィルタ評価値を計算する。フィルタ評価値は識別精度と計算量から決定される値であり、この値が小さいほど識別精度と計算量の両方の観点から有効なフィルタであることを示している。フィルタ評価値としてはさまざまな値が利用可能であるが、本実施形態では次式のように計算精度と計算量の重みつき線形和で計算されるフィルタ評価値を利用する。
【００４６】
【数２】
0005448758.tif 000003
【００４７】
ここで、Ｐ［ｔ］ｉ、Ｔ［ｔ］ｉはフィルタｆｉの識別精度と計算量である。また、ｗ１は識別精度と計算量の間の重み係数である。この値は識別精度と計算量のどちらを重視するかに応じて事前に決定する。
なお本件で利用可能なフィルタ評価値は式（１）に限定されるものではなく、例えば、
【００４８】
【数３】
0005448758.tif 000004
【００４９】
や、
【００５０】
【数４】
0005448758.tif 000005
【００５１】
等で定義されるフィルタ評価値であってもよい。
【００５２】
ステップＳ７０６において、フィルタ選択部１０７はステップＳ７０５で計算されたフィルタ評価値Ｆ［ｔ］ｉに基づき、フィルタを一つ選択する。ここでは単純に、Ｆ［ｔ］ｉが最も小さな値であるフィルタを選択する。選択されたフィルタｆ［ｔ］は、記憶部１０２に格納される。
【００５３】
ステップＳ７０７において、計算順序グラフ更新部１０８はステップＳ７０７で選択されたフィルタに基づき、計算順序グラフのフィルタノードに格納されている計算量を更新する。計算量の更新方法については既に述べたためため省略する。
【００５４】
ステップＳ７０８において、フィルタ選択部１０７はステップＳ７０３からステップＳ７０７までのフィルタ選択処理を終了するかを判定する。選択されたフィルタの数ｔが反復回数に関するしきい値Ｎｉｔｅｒ１以上の場合には処理を終了し、ステップＳ７０９に移る。逆にフィルタ数ｔがＮｉｔｅｒ１より小さい場合には、ｔに１を加えた後、ステップＳ７０３に戻り、フィルタ選択処理を続行する。
【００５５】
ステップＳ７０９において、データ出力部１０９は選択フィルタ集合ｆ［１］，…，ｆ［Ｎｉｔｅｒ１］を記憶部１０２から読み出し、外部のデータサーバ２０に出力する。
【００５６】
上述の構成を有する情報処理装置１０が実行する未知データの識別処理の詳細を図６のフローチャートに従い説明する。本実施例における情報処理装置は、選択フィルタ集合に加えて、フィルタの選択順番も出力する。識別部１１０は、学習画像集合に含まれない未知の画像に対してフィルタを順番通りに適用し、その出力結果である特徴量画像を利用して識別処理を行う。更に識別部１１０は、本装置の操作者により事前に指定された計算時間Ｔｌｉｍｉｔ２に基づき、フィルタの適用を終了する機能を有する。これにより、本実施例における情報処理装置は、学習画像集合に含まれない未知の画像に対して、事前に指定された計算時間の範囲内で、高い識別精度で識別が可能となる。
【００５７】
ステップＳ６０１において、識別部１１０は記憶部１０２から識別対象である画像Ｉ、選択フィルタ集合ｆ［１］，…，ｆ［Ｎｉｔｅｒ１］、フィルタ選択処理において特定されたフィルタの計算量Ｔ［１］，…，Ｔ［Ｎｉｔｅｒ１］を取得する。
【００５８】
ステップＳ６０２において、識別部１１０は記憶部１０２に保存すべき特徴量を判定する。ここでは、計算順序グラフを参照して、各特徴量の作成過程が共通する部分の有無を判定する。例えば、特徴量ＸがフィルタＡ，Ｂ，Ｃを適用して得られる特徴量であり、特徴量ＹがフィルタＡ，Ｂ，Ｄを適用して得られる特徴量である場合には、フィルタＡ，Ｂを適用して得られる特徴量Ｚを特徴量Ｘの作成過程において保存すべきと判定する。このように、全ての特徴量について保存すべき特徴量を判定する。判定結果を記憶部１０２に記憶し、特徴量の作成時に参照可能にしておく。
【００５９】
ステップＳ６０３では、フィルタ計算の処理時間に関する上限Ｔｌｉｍｉｔ２を設定する。この値は、ユーザの入力により定められても、既定値を用いても良い。次にフィルタの計算量をＴ［１］から順番に積算する。この積算値とＴｌｉｍｉｔ２を比較し、Ｔｌｉｍｉｔ２を超えるようなフィルタｆ［Ｎｉｔｅｒ２］を探す。そしてこのようなフィルタが見つかった時点で、それ以降のフィルタｆ［Ｎｉｔｅｒ２＋１］，…，ｆ［Ｎｉｔｅｒ１］を選択フィルタ集合から除く。
【００６０】
ステップＳ６０４において、識別部１１０は画像Ｉにフィルタｆ［１］を適用し、特徴量画像Ｆ［１］を生成する。この処理中は、作成過程で得られる特徴量を全て不図示の一時メモリに記憶しておく。ステップＳ６０５では、識別部１１０は作成過程にて保存すべき特徴量があると判定されているかを記憶部１０２の情報を参照して確認し、保存すべき特徴量を一時メモリから取り出して保存し、必要のない特徴量は破棄する。ステップＳ６０６では、識別部１１０は全ての特徴量画像を作成し終わったか否かを判定し、終わっていない場合にはステップＳ６０４の処理に進み次の特徴量画像を作成する。ｕ回目の反復処理において、本ステップで生成した特徴量画像をＦ［ｕ］と記述する。終了している場合にはステップＳ６０７の処理へと進む。以上の処理により識別部１１０は画像Ｉにフィルタｆ［１］，…，ｆ［Ｎｉｔｅｒ２］を適用し、特徴量画像Ｆ［１］，…，Ｆ［Ｎｉｔｅｒ２］を生成する。
【００６１】
ステップＳ６０７では、識別部１１０は生成された特徴量画像Ｆ［１］，…，Ｆ［Ｎｉｔｅｒ２］を利用して識別処理を行う。ここでは、図７に示したフローチャートの処理でＡｄａｂｏｏｓｔ法を用いて訓練された識別器を適用して識別処理を行う。なお、識別の方法は、実施例１のステップＳ２０３で説明したマハラノビス距離値に基づく方法や、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ（ＳＶＭ）による方法など、公知の識別方法のいずれでもよい。
【００６２】
ステップＳ６０８において、データ出力部１０９は識別部１１０が特定したデータを記憶部１０２から取得し、外部のデータサーバ２０に出力する。
【００６３】
以上で述べた構成によれば、本実施例における情報処理装置１０は、学習画像集合に含まれない未知の画像に対して、特徴画像の算出時間に関して事前に指定された条件の範囲内で精度の高い識別処理を実施することが可能となる。そのため、「精度は低いが短時間で識別を終了したい」や「ある程度の時間を要するが高精度な識別を期待する」というように、時間と精度に関する条件に合わせた識別処理を実施することが可能となる。
【００６４】
なお、本識別処理では計算順序グラフに格納されたフィルタの適用時間を用いて特徴量及びフィルタの数を制限したが、これに限らず、特徴量の作成処理を実行しながら時間の判定を行っても良い。この場合には、識別部１１０は、選択フィルタ集合に含まれるフィルタを実際に画像に適用することで、フィルタ適用処理に要する時間を取得する。そして取得した経過時間に基づいて、フィルタ適用を継続させるか終了させるかを判定する。これにより、本実施例における情報処理装置は、学習画像集合に含まれない未知の画像に対して、事前に指定された計算時間の範囲内で、高い識別精度で識別が可能となる。
【００６５】
即ち、ステップＳ６０３の実行が終了した時点で識別部１１０は時間のカウントを開始し、ステップＳ６０６にて識別部１１０はそれまでのフィルタの適用処理の時間を取得して時間閾値を超えているか否かを判定する。ここで超えていなければ（ステップＳ６０６でＮｏ）ステップＳ６０４の処理に進み特徴量の作成を行う。超えていると判定した場合には（ステップＳ６０６でＹｅｓ）、そこで特徴量の作成処理を終了し、そこまでで作成済みの特徴量を用いて識別を行うこととすればよい。また、ステップＳ６０６にてそれまでのフィルタの適用処理の時間と、次のフィルタの適用時間を計算順序グラフから取得して和を取り、その時間が閾値を超えているか否かで処理の分岐を決定しても良い。このように実際の処理時間を用いて足切りの処理を行うことにより、より現実の識別時間への要求に対応した識別処理を行うことができる。
【００６６】
（実施例２）
実施例２では、学習データから特徴量を逐次選択し、これにＡｄａｂｏｏｓｔを適用して識別器を生成する処理と、訓練された識別器を未知データに適用して特徴を識別する例を説明する。実施例１とは、生成処理において所定の時間閾値を設定し、この閾値を超えないように識別器の生成処理を行う。これにより、要求される識別時間を超えない識別器を生成することができる。これら処理を実行する情報処理システムの構成については図１と同様であるが、各機能ブロックにより実行される処理は異なる。
【００６７】
実施例２に係る情報処理装置１０が実行する識別器の生成処理について、図７に従い説明する。なお、実施例１と重複する処理については説明を省略する。
【００６８】
本実施例における情報処理装置も実施例１の情報処理装置と同様に、フィルタの計算順序と計算量の双方を考慮したうえで最適なフィルタを選択する。これに加えて、本実施例では、入力フィルタ集合からフィルタを選択する際に、未知の画像に対して識別処理を実行する際にフィルタ計算に要する時間を推定する。そして、この推定計算時間の総和が事前に指定された時間Ｔｌｉｍｉｔ１を越えた時点で、フィルタ選択を終了する。これにより、未知の画像に対する識別処理に要する時間を、フィルタ選択段階で決定することが可能となる。また、本実施例では学習アルゴリズムとしてＡｄａｂｏｏｓｔを用い、特徴量の選択及び識別器の生成を行う。
【００６９】
ステップＳ７０３では、データ取得部１０１は、データサーバ２０からＴｌｉｍｉｔ１を設定し、記憶部１０２に格納する。この設定値は、ユーザの入力により定めることとしても、既定値を用いることとしても良い。
【００７０】
ステップＳ７０４において、識別精度特定部１０４は、フィルタの識別精度を特定する際に、学習画像集合に格納されている画像の各画素に付与されている重みＤ［ｔ］（ｘ）に基づき、フィルタの識別精度を計算する。以下、具体的に説明する。
【００７１】
まず、ｆｉが生成する特徴量画像Ｆｉ（ｘ）をしきい値Ｓ［ｔ］ｉで２値化し、２値画像ｈ［ｔ］ｉ（ｘ）を生成する。
【００７２】
【数５】
0005448758.tif 000006
【００７３】
なお、ｈ［ｔ］ｉ（ｘ）とＦｉ（ｘ）は学習画像集合に格納されている画像毎に与えられる点、一方、Ｓ［ｔ］ｉは一つのフィルタについて一つ与えられる点に注意されたい。
【００７４】
次に、ｈ［ｔ］ｉ（ｘ）と学習画像集合に格納されているラベル画像Ｌ（ｘ）から、フィルタｆｉの誤り率e［ｔ］ｉを計算する。
【００７５】
【数６】
0005448758.tif 000007
【００７６】
式（５）は学習画像集合に含まれる画像の画素のうち、ｈ［ｔ］ｉ（ｘ）1Ｌ（ｘ）である画素について、Ｄ［ｔ］（ｘ）の和をとることを意味している。ＡｄａＢｏｏｓｔの場合、ラベル画像Ｌ（ｘ）は、抽出すべき画素には値１が、その他の画素には値−１が格納されている。なお、Ｄ［１］（ｘ）は、学習画像集合に含まれる画像の全画素数Ｎｖｏｘｅｌｓを用いて、
【００７７】
【数７】
0005448758.tif 000008
【００７８】
で初期化されているものとする。
【００７９】
誤り率e［ｔ］ｉから、識別精度Ｐ［ｔ］ｉは、
【００８０】
【数８】
0005448758.tif 000009
【００８１】
として計算される。以上の処理でフィルタの識別精度を特定する。
【００８２】
ステップＳ７０７において、フィルタ選択部１０７がフィルタを選択した後、選択されたフィルタに基づき、そのフィルタの信頼度と学習サンプルの重みを更新する。選択されたフィルタｆ［ｔ］の信頼度a［ｔ］は次式で計算される。
【００８３】
【数９】
0005448758.tif 000010
【００８４】
ここでe［ｔ］は、フィルタｆ［ｔ］の誤り率である。式（６）で計算された信頼度a［ｔ］に基づき、学習サンプルの重みを更新する。
【００８５】
【数１０】
0005448758.tif 000011
【００８６】
Ｚ［ｔ］は次式で計算される正規化項である。
【００８７】
【数１１】
0005448758.tif 000012
【００８８】
ステップＳ７０９において、フィルタ選択部１０７はステップＳ７０４からステップＳ７０８までのフィルタ選択の反復処理の終了を判定するが、この終了条件としてＴｌｉｍｉｔ１を利用する。ｔ−１回目までの反復処理で選択されたフィルタの計算量の総和Ｔ［ｔ−１］ｅｓｔｉｍａｔｅに、ｔ回目の反復処理で選択したフィルタｆ［ｔ］の計算量Ｔ［ｔ］を加え、Ｔ［ｔ］ｅｓｔｉｍａｔｅとする。Ｔ［ｔ］として、計算順序グラフのフィルタノードに格納されている計算量を利用する。Ｔ［ｔ］ｅｓｔｉｍａｔｅとＴｌｉｍｉｔ１を比較し、Ｔ［ｔ］ｅｓｔｉｍａｔｅがＴｌｉｍｉｔ１を越えた時点で、フィルタ選択を終了する。もしそうでなければ、ステップＳ７０４に戻り、フィルタ選択を続行する。
【００８９】
以上の処理により、情報処理装置１０は選択されたフィルタの信頼度と計算し、更に学習画像集合の各画素について、重みを更新する。
【００９０】
上述の処理により、本特許をＡｄａＢｏｏｓｔと組み合わせてフィルタを選択することが可能となる。
【００９１】
最後に、上述の処理で選択されたフィルタｆ［１］，…，ｆ［Ｎｉｔｅｒ１］を利用して、学習画像集合に含まれていない未知の画像から領域を抽出する際の処理について述べる。
【００９２】
まず選択フィルタ集合のそれぞれのフィルタｆ［１］，…，ｆ［Ｎｉｔｅｒ１］を未知画像に適用し、特徴量画像Ｇ［１］，…，Ｇ［Ｎｉｔｅｒ１］を生成し、更に特徴量画像から２値画像ｇ［１］，…，ｇ［Ｎｉｔｅｒ１］を生成する。この計算の過程は、式（３）を用いて２値画像ｈ［１］，…，ｈ［Ｎｉｔｅｒ１］を生成した時と同様である。なお２値画像を生成する際のしきい値は、ｈ［１］，…，ｈ［Ｎｉｔｅｒ１］を生成する際に用いたしきい値Ｓ［１］，…，Ｓ［Ｎｉｔｅｒ１］を用いる。生成した２値画像ｇ［１］，…，ｇ［Ｎｉｔｅｒ１］を用いて、未知画像内の各画素について、次式を計算する。
【００９３】
【数１２】
0005448758.tif 000013
【００９４】
ここでｓｉｇｎ（ｐ）はｐ30なら1を、そうでなければ-1を返す関数である。式(9)で計算された値が1ならばその画素は抽出対象の画素であり、-1であれば抽出対象外の画素を表す。
【００９５】
（その他の実施例）
上述の実施例では計算順序グラフを用いて特徴量の算出時間を求めたが、必ずしも計算順序グラフによる必要はない。フィルタの適用順序を参照することができるデータを有していれば同様の処理が可能であることは言うまでもない。
【００９６】
上述の実施例では、学習アルゴリズムとしてＳＶＭやＡｄａｂｏｏｓｔを用いたが、これら以外のアルゴリズムを用いて識別器の生成処理を行っても良い。
【００９７】
上記のそれぞれの実施例は、本発明を情報処理装置として実現したものである。しかしながら、本発明の実施例は情報処理装置のみに限定されるものではない。本発明をコンピュータ上で動作するソフトウェアとして実現することも可能である。情報処理装置のＣＰＵは、ＲＡＭやＲＯＭに格納されたコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。また、情報処理装置の各部に対応するソフトウェアの実行を制御して、各部の機能を実現する。
【符号の説明】
【００９８】
１０  情報処理装置
２０  データサーバ
１０１  データ取得部
１０２  記憶部
１０３  計算順序グラフ生成部
１０４  識別精度特定部
１０５  計算量特定部
１０６  フィルタ評価値計算部
１０７  フィルタ選択部
１０８  計算順序グラフ更新部
１０９  データ出力部
【図１】
0005448758.tif 000014
【図２】
0005448758.tif 000015
【図３】
0005448758.tif 000016
【図４】
0005448758.tif 000017
【図５】
0005448758.tif 000018
【図６】
0005448758.tif 000019
【図７】
0005448758.tif 000020