(57)【特許請求の範囲】
【請求項１】
検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成装置において、
前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、
前記学習データから前記特徴量を抽出するための画素位置、および該画素位置の画素値からの前記特徴量の算出方法および前記複数のクラス間での特徴量の共有関係を定義する複数のフィルタを記憶するフィルタ記憶手段と、
あらかじめ定められた複数の分岐構造を記憶する記憶手段と、
前記複数のフィルタから選択されたフィルタにより、前記学習データから前記特徴量を抽出し、前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有させた学習を行うことにより、前記複数のクラス間の弱判別器の分岐位置および分岐構造を、前記各クラスにおける前記弱判別器の学習結果に応じて決定する学習手段とを備え、
前記学習手段は、前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度に応じて学習を安定させるためにラベリングを行い、
前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和またはクラスの重要度に応じた重み付け総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定し、
分岐を行うか否かを判定する対象段の前記各クラスの弱判別器について前記分類損失誤差を算出し、
該分類損失誤差と該対象段の前段の弱判別器について算出された前段分類損失誤差との変化量が所定の閾値以下となったときに、前記対象段の弱判別器を分岐位置に決定し、
前記複数の分岐構造のうち、分岐による前記対象段の分岐損失誤差が最小となる分岐構造を選択する手段であることを特徴とする判別器生成装置。
【請求項２】
前記学習手段は、分岐後の前記弱判別器の学習に、分岐前までの学習結果を継承する手段であることを特徴とする請求項１記載の判別器生成装置。
【請求項３】
検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する、前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、前記学習データから前記特徴量を抽出するための画素位置、および該画素位置の画素値からの前記特徴量の算出方法および前記複数のクラス間での特徴量の共有関係を定義する複数のフィルタを記憶するフィルタ記憶手段と、あらかじめ定められた複数の分岐構造を記憶する記憶手段と、前記複数のフィルタから選択されたフィルタにより、前記学習データから前記特徴量を抽出し、前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有させた学習を行うことにより、前記複数のクラス間の弱判別器の分岐位置および分岐構造を、前記各クラスにおける前記弱判別器の学習結果に応じて決定する学習手段とを備えた判別器生成装置における判別器生成方法であって、
前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度に応じて学習を安定させるためにラベリングを行い、
前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和またはクラスの重要度に応じた重み付け総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定し、
分岐を行うか否かを判定する対象段の前記各クラスの弱判別器について前記分類損失誤差を算出し、
該分類損失誤差と該対象段の前段の弱判別器について算出された前段分類損失誤差との変化量が所定の閾値以下となったときに、前記対象段の弱判別器を分岐位置に決定し、
前記複数の分岐構造のうち、分岐による前記対象段の分岐損失誤差が最小となる分岐構造を選択することを特徴とする判別器生成方法。
【請求項４】
検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する、前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、前記学習データから前記特徴量を抽出するための画素位置、および該画素位置の画素値からの前記特徴量の算出方法および前記複数のクラス間での特徴量の共有関係を定義する複数のフィルタを記憶するフィルタ記憶手段と、あらかじめ定められた複数の分岐構造を記憶する記憶手段と、前記複数のフィルタから選択されたフィルタにより、前記学習データから前記特徴量を抽出し、前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有させた学習を行うことにより、前記複数のクラス間の弱判別器の分岐位置および分岐構造を、前記各クラスにおける前記弱判別器の学習結果に応じて決定する学習手段とを備えた判別器生成装置における判別器生成方法をコンピュータに実行させるためのプログラムであって、
前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度に応じて学習を安定させるためにラベリングを行う手順と、
前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和またはクラスの重要度に応じた重み付け総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定する手順と、
分岐を行うか否かを判定する対象段の前記各クラスの弱判別器について前記分類損失誤差を算出する手順と、
該分類損失誤差と該対象段の前段の弱判別器について算出された前段分類損失誤差との変化量が所定の閾値以下となったときに、前記対象段の弱判別器を分岐位置に決定する手順と、
前記複数の分岐構造のうち、分岐による前記対象段の分岐損失誤差が最小となる分岐構造を選択する手順とを有する判別器生成方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチクラス、マルチビューのオブジェクト判別を行うための木構造を有する判別器を生成する判別器生成装置および方法並びに判別器生成方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
従来、デジタルカメラによって撮影されたスナップ写真における人物の顔領域の色分布を調べてその肌色を補正したり、監視システムのデジタルビデオカメラで撮影されたデジタル映像中の人物を認識したりすることが行われている。このような場合、デジタル画像あるいはデジタル映像から人物を検出する必要があるため、人物を検出するための様々な手法がこれまでに提案されている。その中で、とくにマシンラーニングの手法を用いて構築したアピアレンスモデルによる検出手法が知られている。アピアレンスモデルによる検出手法は、膨大な数のサンプル画像を用いて、マシンラーニングの学習により複数の弱い判別器を結合したものであることから、検出精度およびロバスト性が優れている。
【０００３】
デジタル画像中の画像を検出する手法として、このアピアレンスモデルによる検出手法を説明する。この手法は、複数の異なる顔のサンプル画像からなる顔サンプル画像群と、顔でないことが分かっている複数の異なる非顔サンプル画像とからなる非顔サンプル画像群とを学習データとして用いて、顔であることの特徴を学習させ、ある画像が顔の画像であるか否かを判別できる判別器を生成して用意しておき、顔の検出対象となる画像（以下、検出対象画像という）において部分画像を順次切り出し、その部分画像が顔であるか否かを上記の判別器を用いて判別し、顔であると判別した部分画像の領域を抽出することにより、検出対象画像上の顔を検出する手法である。
【０００４】
ところで、上述した判別器には、顔が正面を向いた画像のみならず、顔が画像平面上において回転している（以下「面内回転」という）画像や、顔が画像平面内において回転している（以下、「面外回転」という）画像が入力される。様々な向きの顔の（顔のマルチビュー）からなる学習データを用いて学習を行う場合、顔の向きのばらつきが大きいため、すべての向きの顔を検出できる汎用的な判別器を実現することは困難である。例えば、１つの判別器が判別可能な顔の回転範囲は限られており、面内回転している画像では３０度程度、面外回転している画像では３０度〜６０度程度回転した顔のみしか判別することがでない。このため、顔という検出対象の統計的な特徴を効率的に抽出するため、および顔の向きの情報を取得するために、顔の判別器は、複数の顔の向き毎に各顔の向きの顔を判別する複数の強判別器から構成される。具体的には、それぞれの向きの画像を判別可能にマルチクラスの学習を行った複数の強判別器を用意し、すべての強判別器に、特定の向きの顔であるか否かの判別を行わせ、最終的な各強判別器の出力から顔であるか否かを判定するマルチクラス判別手法が提案されている。
【０００５】
マルチクラスの判別手法として、例えば特許文献１〜３に記載された手法が提案されている。以下、これらの手法について説明する。なお、ここでは説明を分かりやすくするために判別対象を顔として説明する。また、判別する顔のクラスは、左を向いた顔のクラスＣ１、正面を向いた顔のクラスＣ２、右を向いた顔のクラスＣ３とする。
【０００６】
まず、特許文献１に記載された手法について説明する。この手法においては、クラス毎の強判別器がそれぞれ独立して構築される。すなわち、図２２に示すように、クラスＣ１〜Ｃ３について、それぞれｈiC1，ｈiC2，ｈiC2の弱判別器からなる強判別器ＨC1，ＨC2，ＨC2をブースティングによる学習方法によって作成する。なお、各クラスの学習は２クラスの学習で行う。例えば、クラスＣ１の強判別器を構築する際、クラスＣ１にとっての正の教師データと負の教師データとを用いてブースティングにより学習を行う。この際、図２３に示すように、クラスＣ１〜Ｃ３の強判別器における先頭のｍ個の弱判別器が木構造のルート部分となる。与えられたパターンの判別時においては、このルート部分のそれぞれのクラスＣ１〜Ｃ３の弱判別器により、中間の判別結果を表すスコアＨmC1，ＨmC2，ＨmC2が算出される。そしてこの中間の判別結果を利用して分岐条件が決定される。図２３においては、一番高いスコアが算出されたクラスのインデックスを分岐条件として分岐先が決定される。なお、作成された各クラスＣ１〜Ｃ３の強判別器において、先頭のｍ個の弱判別器を除いた弱判別器の集合が木構造の枝となる。
【０００７】
次いで、特許文献２に記載された手法について説明する。特許文献２に記載された手法においては、木構造のルート部分は、顔と非顔とを判別するための判別器から構成されている。特許文献２に記載された手法の特徴は、図２４に示すように、木構造のルート部分においては、クラスＣ１〜Ｃ３は区別されず、顔と非顔とを判別するための学習が行われる点にある。木構造のルートに続いて、図２４に示すように、クラスＣ１〜Ｃ３のそれぞれに反応するフィルタが作成され、フィルタの反応結果を利用して、分岐先が決定される。なお、分岐後の判別器の学習は、分岐前の結果を利用することなく行われる。また、フィルタの構築はマシンラーニングの学習を使用する。また、分岐時期（すなわち、どこで分岐をするか）、分岐条件および分岐後の枝の数は、判別器を設計する際に決定されている。なお、分岐後において、複数クラスが共存するような枝を構築することも可能である。また、分岐を繰り返すことにより、複数の分岐を有するように判別器を構築することも可能である。
【０００８】
次いで、特許文献３に記載された手法について説明する。特許文献３に記載された手法においては、マルチクラス、マルチビューの判別器が、例えばAda Boost.MH、LogitBoost、あるいはJoint Boostの学習を用いて構築される。図２５にJoint Boostを用いて構築した判別器の構造を示す。この構造は特許文献１，２に記載されたものとは異なり、判別構造において明確な分岐がないものとなっている。なお、Joint Boostの手法は、各クラス間において弱判別器を共有させることにより、全体の弱判別器数を少なくして、判別器の判別性能を高めた手法である（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−１１６４０１号公報
【特許文献２】特開２００９−１５１３９５号公報
【特許文献３】特開２００６−２５１９５５号公報
【非特許文献１】「Antonio Torralba, Kevin P. Murphy and William T. Freeman,  Sharing Visual Features for Multiclass and Mutliview Object Detection, Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), pp762-769, 2004」
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記特許文献１〜３の手法には下記のような問題がある。すなわち、特許文献１に記載された手法は、各クラスの学習が単独で行われるため実装しやすいものの、木構造のルート部分における各クラスのｍ個の弱判別器の数を、検出速度の高速化を図るために少なくせざるを得ない。しかしながら、このように木構造のルート部分における弱判別器の数が少ないと検出精度が低下する。逆に木構造のルート部分における弱判別器の数を多くすると、検出速度が低下する。また、各クラスの間に明確な境界が存在しないケースが多く、各クラスの強判別器を独立して学習する際に、境界に存在する学習データの扱いによっては、境界に近いパターンを柔軟に分岐させて判別することができない。また、各クラスの強判別器は独立して学習されるため、パターン判別時における特徴量算出のための演算量が多くなる。さらに、多くの分岐を持つ木構造の判別器を構築することは困難である。
【００１１】
また、特許文献２に記載された手法は、多数の分岐を持つ木構造の判別器の構築が可能であるが、分岐時期および分岐構造を適切に設計することは困難である。また、判別器の判別性能が設計者の知識および経験に依存するため、設計が適切でないと判別精度および判別速度が低くなる。また、試行錯誤にて判別器を構築することとなるため、学習に長時間を要するものとなる。また、分岐先を決定するためのフィルタは、クラス毎に単独で構築されるケースが多く、この場合、クラス間の相関性を利用していないことから、フィルタの構築のための演算量も多くなる。さらに、分岐前後の学習はクラスの性質が大きく変化するため、分岐前の学習結果を継承できないことから（すなわち、分岐前後において、学習データの重みづけがシームレスに繋がっていないことから）判別器全体の判別性能が低下することとなる。
【００１２】
また、特許文献３に記載された手法は、クラスが共同して学習を行うため、クラス間の相関性を最大限に利用することができる。しかしながら、明確な分岐がないため、最終的な判別結果を得るためには、各クラスのすべての弱判別器において判別を行う必要があり、その結果、判別のための演算に長時間を要するものとなる。ここで、画像や映像における顔および人物検出のためのアプリケーションにおいては、検出速度およびリアルタイムでの検出の実行が要求されているため、判別器は分岐を多数有する木構造であることが好ましい。しかしながら、Joint Boostの手法におけるクラス間の特徴量の共有は、弱判別器自体の共有であることから、クラス間の識別能力が低く、木構造の分岐要求を満足させることができない。
【００１３】
本発明は上記事情に鑑みなされたものであり、マルチクラス、マルチビューの判別を行う判別器を生成するに際し、判別器における木構造の問題点を解決して、判別精度および判別速度を両立させる高性能の判別器を生成することを目的とする。
【課題を解決するための手段】
【００１４】
本発明による判別器生成装置は、検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成装置において、
前記複数のクラス間の弱判別器の分岐位置および分岐構造を、前記各クラスにおける前記弱判別器の学習結果に応じて決定する学習手段を備えたことを特徴とするものである。
【００１５】
「弱判別器」は、オブジェクトの判別を行うために、画像から取得した特徴量についてオブジェクトであるか否かを判別するものである。
【００１６】
「分岐構造」とは分岐条件および分岐先の枝数を含む。分岐条件とは、分岐後にクラス間においてどのように学習データを分岐させて特徴量を共有させるかを定める条件である。具体的には、図２６に示すように、クラス数が５の場合において、分岐位置までは第１から第５のすべてのクラスにおいて特徴量を共有した学習を行うが、分岐後は、第１および第２のクラスと、第３から第５のクラスとの２つに分岐し、２つの分岐先のそれぞれにおいて、特徴量を共有した学習を行うというように分岐条件を設定することができる。
【００１７】
なお、本発明による判別器生成装置においては、前記学習手段を、前記複数のクラス間における前記弱判別器に、前記特徴量のみを共有させた学習を行う手段としてもよい。
【００１８】
ここで、上記Joint Boostの手法においては、学習の際に、特徴量のみならず、弱判別器、より詳細には弱判別器における判別の仕方を規定する判別機構をもクラス間において共有している。「特徴量のみを共有する学習」は、Joint Boostの手法とは異なり、特徴量のみを共有し、弱判別器における判別機構を共有しないものである。
【００１９】
また、本発明による判別器生成装置においては、前記弱判別器を前記複数のクラス毎に学習するための複数の正負の学習データを入力する学習データ入力手段と、
前記学習データから前記特徴量を抽出する複数のフィルタを記憶するフィルタ記憶手段とをさらに備えるものとし、
前記学習手段を、該フィルタ記憶手段から選択されたフィルタにより、前記学習データから前記特徴量を抽出し、該特徴量により前記学習を行う手段としてもよい。
【００２０】
「特徴量を抽出するフィルタ」としては、画像上における特徴量算出のために用いる画素の位置、その画素の位置における画素値を用いた特徴量の算出方法、およびクラス間での特徴量の共有関係を定義するものである。
【００２１】
また、本発明による判別器生成装置においては、前記学習手段を、前記学習に使用するすべての前記学習データに対して、学習対象のクラスの正の学習データとの類似度に応じて学習を安定させるためにラベリングを行って、前記学習を行う手段としてもよい。
【００２２】
また、本発明による判別器生成装置においては、前記学習手段を、前記複数のクラスにおける同一段の弱判別器のそれぞれについて、前記ラベルと入力された特徴量に対する該弱判別器の出力との重み付け二乗誤差の、前記学習データについての総和を定義し、該総和の前記複数のクラスについての総和またはクラスの重要度に応じた重み付け総和を分類損失誤差として定義し、該分類損失誤差が最小となるように前記弱判別器を決定するように、前記学習を行う手段としてもよい。
【００２３】
また、本発明による判別器生成装置においては、前記学習手段を、分岐を行うか否かを判定する対象段の前記各クラスの弱判別器について前記分類損失誤差を算出し、該分類損失誤差と該対象段の前段の弱判別器について算出された前段分類損失誤差との変化量が所定の閾値以下となったときに、前記対象段の弱判別器を分岐位置に決定する手段としてもよい。
【００２４】
ここで、分岐構造により各クラスのすべての正の学習データを分岐させた際に、本来であれば、あるクラスの正の学習データは、そのクラスが属する分岐先に分岐されるものである。しかしながら、分岐時期までのマルチクラスの判別器において、学習データのパターンが複雑であるためにすべての学習データを正しく分類するレベルに判別器が到っていない、学習データのばらつきが大きく有効な特徴が見つからない、またはフィルタと学習データとの特性が合っていない等、判別器の能力が十分でない、もしくは分岐構造における分岐条件が適切でない等の理由により、そのクラスの正の学習データがそのクラスが属さない分岐先に分岐されてしまう場合がある。この場合、そのクラスが属さない分岐先に分岐された学習データは、分岐後の学習には使用しない方が学習精度を高めるために好ましい。したがって、そのクラスが属さない分岐先に分岐された学習データは、分岐により失われる、すなわち分岐により損失することとなる。ここで、損失した学習データの割合は、そのクラスの正の学習データ数に対するそのクラスが属する分岐先に分岐された正の学習データの数の割合を、１から減算することにより算出することができる。「分岐損失誤差」とは、分岐構造により得られる、すべてのクラスについての損失した学習データの割合の重み付け積算値として算出することができる。なお、判別器の性能（すなわち判別速度および判別精度）を最大とするために、利用可能な分岐構造群を含む分岐構造プールから、分岐損失誤差が最小となる分岐構造を選択して、木構造を有する判別器の分岐部分を決定する。
【００２５】
また、本発明による判別器生成装置においては、あらかじめ定められた複数の分岐構造を記憶する記憶手段をさらに備えるものとし、
前記学習手段を、前記複数の分岐構造のうち、分岐による前記対象段の分岐損失誤差が最小となる分岐構造を選択する手段としてもよい。
【００２６】
また、本発明による判別器生成装置においては、前記学習手段を、分岐後の前記弱判別器の学習に、分岐前までの学習結果を継承する手段としてもよい。
【００２７】
本発明による判別器生成方法は、検出対象画像から抽出した特徴量を用いて、該検出対象画像に含まれるオブジェクトを判別する、複数の弱判別器が組み合わされてなる判別器であって、前記オブジェクトについて判別するクラスが複数あるマルチクラスの判別を行う判別器を生成する判別器生成方法において、
前記複数のクラス間の弱判別器の分岐位置および分岐構造を、前記各クラスにおける前記弱判別器の学習結果に応じて決定することを特徴とするものである。
【００２８】
本発明によるプログラムは、本発明による判別器生成装置の機能をコンピュータに実行させることを特徴とするものである。
【発明の効果】
【００２９】
本発明は、複数のクラス間の弱判別器の分岐位置および分岐構造を、各クラスにおける弱判別器の学習結果に応じて決定するようにしたものである。このため、マルチクラスの学習を行う際に、弱判別器の分岐位置および分岐構造が設計者に依存することがなくなり、その結果、生成された判別器を用いることにより、オブジェクトの判別を精度良くかつ高速に行うことができる。また分岐位置および分岐構造を設計者が決定する場合と比較して、学習が収束しなくなるようなことがなくなり、その結果、学習の収束性を向上させることができる。
【００３０】
また、分岐後の弱判別器の学習に、分岐前までの学習結果を継承させることにより、分岐前後において弱判別器がシームレスに繋がるため、本発明により生成された判別器において、判別構造の一貫性を保つことができる。したがって、判別器の判別精度および判別速度を両立させることができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態による判別器生成装置の構成を示す概略ブロック図
【図２】ｍ＋１分のクラスの学習データを示す図
【図３】学習データの例を示す図
【図４】フィルタの例を示す図
【図５】本発明の実施形態による判別器生成装置において行われる処理の概念図
【図６】クラス数が９の場合の学習データのラベリング結果を示す図
【図７Ａ】本実施形態により構成される木構造を有するマルチクラスの判別器を模式的に示す図
【図７Ｂ】図７Ａに示す判別器の弱判別器を模式的に示す図
【図８】学習の処理を示すフローチャート
【図９】４つのクラスの弱判別器についての弱判別器の数ｔと分類損失誤差Ｊwseとの関係を示す図
【図１０】分岐構造を示す図
【図１１】３クラスの分岐構造の例を示す図
【図１２】分岐損失誤差の算出を説明するための図
【図１３】５クラスの学習に際して決定された分岐構造の例を示す図
【図１４】分岐前の各クラスの正の学習データの数を示す図
【図１５】各リーフノードに分岐された各クラスの正の学習データの数を示す図
【図１６】分岐後に各リーフノードにおいて使用される学習データを示す図
【図１７】学習の終了により生成された判別器を示す図
【図１８】ヒストグラムの例を示す図
【図１９】ヒストグラムの量子化を示す図
【図２０】作成したヒストグラムの例を示す図
【図２１】決定木に対する入力と出力との関係を示す図
【図２２】特許文献１に記載されたマルチクラス判別手法を説明するための図（その１）
【図２３】特許文献１に記載されたマルチクラス判別手法を説明するための図（その２）
【図２４】特許文献２に記載されたマルチクラス判別手法を説明するための図
【図２５】特許文献３に記載されたマルチクラス判別手法を説明するための図
【図２６】分岐条件の設定を説明するための図
【発明を実施するための形態】
【００３２】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の実施形態による判別器生成装置の構成を示す概略ブロック図である。図１に示すように本発明による判別器生成装置１は、学習データ入力部１０、特徴量プール２０、初期化部３０、学習部４０および分岐構造候補プール５０を備える。
【００３３】
学習データ入力部１０は、判別器の学習に使用する学習データを判別器生成装置１に入力するためのものである。ここで、本実施形態による生成される判別器は、マルチクラスの判別を行う判別器である。例えば、判別対象のオブジェクトが顔である場合、画像平面上における向きが異なる顔および画像内における向きが異なる顔をそれぞれ判別するマルチクラスの判別を行う判別器である。したがって、本実施形態による判別器生成装置１は、例えば判別可能な顔の向きが異なるｍクラスの判別器を生成するためのものである。このため、学習データ入力部１０からは、クラス毎に異なる（すなわち顔の向きが異なる）学習データｘiCu（ｉ＝１〜ＮCu、ｕ＝１〜ｍ、ＮCuはクラスＣｕに対応する学習データの数）が入力される。なお、本実施形態においては、学習データはサイズおよび含まれるオブジェクトにおける特徴点（例えば目および鼻等）の位置が正規化された画像データである。
【００３４】
また、本実施形態においては、ｍクラスの学習データに加えて、判別対象のオブジェクトのいずれのクラスにも属さない背景のオブジェクトの学習データｘibkg（データ数Ｎbkg）も入力される。したがって、本実施形態においては、図２に示すようにｍ＋１クラス分の学習データが入力され、判別器の生成に使用される。
【００３５】
図３は学習データの例を示す図である。なお、図３は顔を判別するための判別器に使用する学習データを示すものである。図３に示すように学習データは、あらかじめ定められた画像サイズを有し、そのサイズの画像の設定位置（例えば中央）に配置された顔が３０°ずつ回転した１２種類の画像からなる面内回転（in-plane）画像（図３（ａ））、および設定位置（例えば中央）に配置された顔の向きが０°および±３０°ずつ回転した３種類の画像からなる面外回転（out-plane）画像（図３（ｂ））からなる。このように学習データを用意することにより、１２×３＝３６クラスの判別器が生成されることとなる。なお、各クラスの判別器は複数の弱判別器が結合されてなるものである。
【００３６】
特徴量プール２０は、弱判別器の学習に使用する、判別対象の画像データが所定のクラスに属するか否かを判別するために用いる特徴量を、学習データから抽出する複数のフィルタｆｔをあらかじめ記憶する。このフィルタｆｔは、学習データにおける特徴量抽出のための画素位置、およびその画素位置の画素値からの特徴量の算出方法およびクラス間での特徴量の共有関係を定義する。図４はフィルタの例を示す図である。図４に示すフィルタｆｔは、判別対象の画像データにおけるあらかじめ定められたｋ点またはｋ個のブロック（α１〜αｋ）の画素値を取得し、取得した画素値についてα１〜αｋ間においてフィルタ関数ψを用いて演算を行うことを定義している。なお、画素値α１〜αｋがフィルタｆｔの入力、フィルタ関数ψによる演算結果がフィルタｆｔの出力となる。また、特徴量の共有関係については、例えば３クラスＣ１〜Ｃ３の場合、共有関係は、（Ｃ１，Ｃ２，Ｃ３）、（Ｃ１，Ｃ２）、（Ｃ１，Ｃ３）、（Ｃ２，Ｃ３）、（Ｃ１）、（Ｃ２）、（Ｃ３）の７種類となる。学習を行う際の共有関係の探索時間、およびマルチクラスの判別器を効率よく作成するために、多くのクラスがフィルタｆｔを共有できるようにフィルタｆｔを定義することが好ましい。なお、すべてのクラス間において特徴量を共有するように共有関係を定義してもよい。また、学習データおよび特徴量プール２０のフィルタｆｔは、あらかじめユーザにより定義されて用意されてなるものである。
【００３７】
図５は本発明の実施形態による判別器生成装置１において行われる処理の概念図である。図５に示すように、本実施形態においては、判別対象であるオブジェクトについて、マルチクラスの学習データおよび特徴量プール２０からのフィルタｆｔを用いて、本実施形態の特徴である特徴量のみを共有する学習アルゴリズムにより学習を行って、木構造を有するマルチクラスの判別器を生成するものである。
【００３８】
初期化部３０は、学習データのラベリング、学習データ数の正規化、学習データの重み設定および判別器の初期化の処理を行う。以下、初期化部３０が行う各処理について説明する。なお、初期化部３０は、学習データのラベリングを行うラベリング部３０Ａ、学習データ数の正規化を行う正規化部３０Ｂ、学習データの重み設定を行う重み設定部３０Ｃ、および判別器の初期化の処理を行う判別器初期化部３０Ｄを有する。まず、学習データのラベリングについて説明する。学習データのラベリングは、学習データを用いて各クラスの弱判別器の学習を行う際に、学習データが学習対象のクラスに属するか否かを示すためのものであり、下記に示すように、１つの学習データｘiCに対して、全クラス分のラベルが設定される。なお、全クラス分のラベルを設定するのは、与えられた学習データｘiC（クラスＣに属する）について、学習データが、クラスＣｕの学習時に正の教師データとして扱われるか、負の教師データとして扱われるかを明確にするためである。学習データが正の教師データとして扱われるか、負の教師データとして扱われるかは、ラベルにより決定されることとなる。
【００３９】
ｘiC→（ｚiC1，ｚiC2，・・・ｚiCm）
ここで、Ｃ∈｛Ｃ１，Ｃ２，・・・Ｃｍ、ｂｋｇ｝であるとすると、Ｃ＝Ｃｕ（ｕ＝１〜ｍ、すなわち学習データが背景以外）の場合、初期化部３０のラベリング部３０Ａは、ラベルの値を＋１（ｚiCu＝＋１）に、Ｃ＝ｂｋｇ（すなわち学習データが背景）の場合、ラベルの値を−１（ｚiCu＝−１）に設定する。また、学習データが背景以外の場合においては、さらに以下のようにラベルの値を設定する。例えば、学習する対象の弱判別器のクラスがＣ１である場合に、学習に使用する学習データのクラスがＣ３である場合（例えば学習データｘiC3）のように、学習対象の弱判別器のクラスと、学習に使用する学習データのクラスとが一致しない場合は、学習対象の弱判別器のクラスの学習データと他のクラスの学習データとの類似度に応じてラベルの値を設定する。例えば学習対象の弱判別器のクラスがＣ３である場合に、学習に使用する学習データのクラスがＣ２またはＣ４である場合のように、学習対象の弱判別器のクラスの学習データと、他のクラスの学習データとが類似する場合にはラベルの値を０（ｚiCu＝０）に設定する。また、学習対象の弱判別器のクラスがＣ３である場合に、学習に使用する学習データのクラスがＣ１またはＣ６である場合のように、学習対象の弱判別器のクラスの学習データと他のクラスの学習データとが類似しない場合には、ラベルの値を−１（ｚiCu＝−１）に設定する。なお、ラベルの値を＋１に設定された学習データは正の教師データ、−１に設定された学習データは負の教師データとなる。
【００４０】
なお、学習対象の弱判別器のクラス（Ｃａとする）の学習データと他のクラス（Ｃｂとする）の学習データとが類似するか否かの判定は、クラスＣｂにより表されるアピアレンス空間が、クラスＣａにより表されるアピアレンス空間と隣接している、あるいは空間の一部が重なっている場合、クラスＣｂのデータはクラスＣａのデータと類似すると判定し、そうでない場合にはクラスＣｂのデータはクラスＣａのデータと類似しないと判定するようにする。
【００４１】
ここで、顔検出および顔の向きの検出の判別のためには、左に向く真横顔から右を向く真横顔まで、顔の向きを２０度毎に割り当てる７クラスの学習を行うことが必要であり、その場合の学習データのラベリング結果を図６に示す。図６に示すように、クラスＣ１〜Ｃ７はそれぞれ異なる顔の向きに対応するが、隣接するクラス間には明確な境界線が存在しない。このため、例えば学習対象の弱判別器のクラスがＣ３である場合、クラスＣ３の学習データのラベルｚiC3の値は＋１、クラスＣ３に隣接するクラスＣ２，Ｃ４の学習データのラベルｚiC2，ｚiC4の値は０、それ以外のクラスの学習データのラベルの値は−１に設定される。よって、本実施形態においては、ラベルｚiCuの値は、−１，０，＋１の３通りとなる。学習データｘiCを用いてクラスＣｕの弱判別器を学習する際、上述したようにラベルを設定することにより、学習の安定性を高めることができる。
【００４２】
なお、学習データが類似するか否かの判定は、クラス間の学習データ同志の相関を算出し、相関が一定以上の場合に類似すると判定するようにしてもよく、ユーザがマニュアル操作により類似するか否かを判定するようにしてもよい。
【００４３】
次いで、正規化部３０Ｂが行う学習データ数の正規化の処理について説明する。学習データは上述したようにクラス毎に用意されているが、クラス毎に学習データの数が異なる場合がある。また、本実施形態による判別器生成装置１においては、弱判別器の学習の際には、学習対象の弱判別器のクラスについて、＋１および−１のラベルｚiCuの値が設定されたクラスの学習データのみが使用され、０のラベルｚiCuの値が設定されたクラスの学習データは後述するように重みが０とされることから使用されない。ここで、あるクラスＣｕについて値が＋１のラベルｚiCuが設定された学習データを正の学習データ、値が−１のラベルｚiCuが設定された学習データを負の学習データとし、あるクラスＣｕの正の学習データ数Ｎ+Cu、負の学習データ数Ｎ-Cuとすると、あるクラスＣｕの学習データ数ＮtchrCuは、Ｎ+Cu＋Ｎ-Cuと表すことができる。
【００４４】
本実施形態においては、すべてのクラスＣｕの学習データ数ＮtchrCuのうち、最も少ない学習データ数minＮtchrCuとなるように、すべてのクラスＣｕの学習データ数ＮtchrCuを正規化する。なお、最も少ない学習データ数minＮtchrCuとなるクラス以外は、学習データ数ＮtchrCuを少なくする必要があるが、その際、背景のオブジェクトの学習データｘibkgからランダムに選択した学習データを、負の学習データから除外することにより、学習データ数を少なくする。そして、正規化した数の学習データにより、各クラスＣｕの学習データ数ＮtchrCuを更新して、学習データの正規化処理を終了する。
【００４５】
次いで、重み設定部３０Ｃが行う学習データの重み設定の処理について説明する。重みとは、各クラスＣｕの弱判別器の学習を行う場合における学習データに対する重みであり、下記に示すように、１つの学習データｘiCに対して、ｍクラス分の重みが設定される。
【００４６】
ｘiC→ｗi（ｗiC1 ，ｗiC2 ，・・・ｗiCm）
ここで、Ｃ∈｛Ｃ１，Ｃ２，・・・Ｃｍ、ｂｋｇ｝であるとすると、クラスＣｕにおけるある学習データｘiCuに対する重みｗiCuを、重み付ける学習データｘiCuのラベルｚiCuの値に応じて設定する。具体的には、あるクラスＣｕにおいて、ラベルｚiCuの値が＋１である正の学習データについてはｗiCu＝１／（２Ｎ+Cu）に、ラベルｚiCuの値が−１である負の学習データについてはｗiCu＝１／（２Ｎ-Cu）に、ラベルｚiCuの値が０である学習データについてはｗiCu＝０に設定する。したがって、ラベルの値が０の学習データは、そのクラスの学習に使用されないこととなる。なお、Ｎ+CuはあるクラスＣｕの正の学習データ数、Ｎ-CuはあるクラスＣｕの負の学習データ数である。
【００４７】
なお、判別器初期化部３０Ｄは、各クラスＣｕについて、弱判別器の数を０、すなわち弱判別器が全く存在しないものとなるように判別器を初期化して判別器の初期値を０（ＨC1 ＝ＨC2 ＝・・・ＨCm＝０）とする。
【００４８】
学習部４０は、枝学習部４０Ａ、終了判定部４０Ｂ、分岐時期判定部４０Ｃ、分岐構造決定部４０Ｄ、学習データ決定部４０Ｅおよび再帰学習部４０Ｆを有する。以下、学習部４０が行う学習の処理について説明する。本実施形態において生成されるマルチクラスの判別器は、各クラスＣｕにおいて複数の弱判別器ｈtCu（ｔ＝１〜ｎ、ｎは弱判別器の段数）を木構造を有するように結合したもの（すなわちＨCu＝ΣｈtCu）となる。
【００４９】
図７Ａはこのように構成されるマルチクラスの木構造の判別器を模式的に示す図である。図７Ａに示すマルチクラスの判別器は木構造を有し、その構造の中において、１つのクラスの判別器が複数の判別ルートを有するものとなっている。１つの判別ルートはそのクラスの１つの判別器（強判別器）である。与えられた未知のデータについて、どのような判別ルートを通って判別するについては、木構造における分岐により決定される。また、各クラスＣｕの判別器は複数の弱判別器から構成されている。また、木構造におけるマルチクラスの弱判別器の間において、特徴量を共有している。図７Ｂは弱判別器を模式的に示す図である。図７Ｂに示すように、弱判別器はｈ＝ｇ｛ｆ（Ｉ）｝（ｇ：判別関数、ｆ（Ｉ）：未知のデータＩの特徴量）により表される。本実施形態による判別器が従来の判別器と大きく異なる点は、図７Ｂに示すように、特徴量を共有し、判別関数がクラス毎にそれぞれ異なり、その結果クラス毎の弱判別器が異なることにある。
【００５０】
図８は学習の処理を示すフローチャートである。なお、図８に示すフローチャートの処理は、判別器における木構造を構成する各枝において行われるが、分岐前は枝は木構造のルートとなる。まず、学習データ入力部１０が、判別器の学習に使用する学習データを判別器生成装置１に入力する（ステップＳＴ１）。次いで初期化部３０が初期化処理を行う（ステップＳＴ２）。初期化処理は、上述したように、学習データのラベリング、学習データ数の正規化、学習データの重み設定および判別器の初期化の処理を含む。一方、学習部４０が行う学習は、判別器の各段における弱判別器ｈtCuをクラス毎に順次決定することにより、枝学習部４０Ａにおいて進められる。まず、学習部４０の枝学習部４０Ａは、特徴量プール２０から任意の１つのフィルタｆｔを選択する。そして、枝（またはルート）に含まれるすべてのクラスについて、フィルタｆｔを用いて、すべての学習データｘｉから特徴量ｆｔ（ｘi）を抽出する。ここで、弱判別器ｈtCuにおける特徴量ｆｔ（ｘi）から判別のためのスコアを算出するための判別機構をｇtCuとすると、学習データｘiが入力された弱判別器ｈtCuが、特徴量を用いて行う処理は、ｈtCu（ｘi）＝ｇtCu（ｆｔ（ｘi））と表すことができる。なお、ｈtCu（ｘi）は選択されたフィルタｆｔを用いて算出された特徴量によりその弱判別器ｈtCuが出力するその学習データについてスコアである。
【００５１】
なお、本実施形態においては、判別機構としてヒストグラム型判別関数を使用するものとし、学習データから得た特徴量の値に対するスコアを決定するようにヒストグラムを作成することにより、弱判別器を決定する。ヒストグラム型判別関数の判別機構においては、スコアが正の方向に大きいほど判別対象のクラスのオブジェクトである可能性が高く、負の方向に大きいほど判別対象のクラスのオブジェクトでない可能性が高いこととなる。
【００５２】
ここで、学習は、弱判別器を決定することを目的とするものである。このため学習部４０は、弱判別器を決定するために、各クラスＣｕの学習データｘiに対するラベルｚiCuおよび重みｗiCuを用いて、各クラスＣｕ毎に、ラベルｚiCuとスコアとの重み付け二乗誤差を損失誤差として定義し、すべての学習データｘiについての損失誤差の総和を定義する。例えば、クラスＣ１についての損失誤差ＪC1は下記の式（１）により定義することができる。なお、式（１）におけるNtchrは学習データの総数である。
【数１】
0005394959.tif 000002
【００５３】
そして、枝学習部４０Ａは、各枝（またはルート）のすべてのクラスについての損失誤差ＪCuの総和を、分類損失誤差Ｊwseとして、下記の式（２）により定義する。なお、式（２）は、学習している各クラスの重要度が均一の場合の分類損失誤差を算出する式である。学習している各クラスの重要度が均一でない場合は、その重要度を反映させるために、式（２）に各クラスの重要度を重みづけてもよい。重要度を重みづけた分類損失誤差は式（２′）により算出できる。
【数２】
0005394959.tif 000003
【００５４】
次いで、枝学習部４０Ａは、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuを決定する（ステップＳＴ３）。本実施形態においては、判別機構がヒストグラム型判別関数であるため、学習データから得た特徴量に対するスコアを決定するようにヒストグラムを作成することにより弱判別器ｈtCuを決定する。なお、弱判別器ｈtCuの決定については後述する。このようにして弱判別器ｈtCuを決定した後、下記の式（３）に示すように学習データｘiCuに対する重みｗiCuを更新する（ステップＳＴ４）。なお、更新した重みｗiCuは下記の式（４）に示すように正規化される。式（３）において、ｈtCuは、学習データｘiCuにより弱判別器が出力するスコアを意味する。
【数３】
0005394959.tif 000004
【００５５】
ここで、ある学習データについて、弱判別器ｈtCuが出力するスコアが正の場合には判別対象のクラスのオブジェクトである可能性が高く、負の場合には判別対象のクラスのオブジェクトである可能性が低い。このため、ラベルｚiCuの値が＋１の場合においてスコアが正の場合には、その学習データの重みｗiCuは小さくなるように更新され、スコアが負の場合には重みｗiCuは大きくなるように更新される。一方、ラベルｚiCuの値が−１の場合においてスコアが正の場合には、その学習データの重みｗiCuは大きくなるように更新され、スコアが負の場合には重みｗiCuは小さくなるように更新される。これは、正の学習データを用いてその弱判別器ｈtCuにより判別を行った場合において、スコアが正の場合にはその学習データに対する重みがより小さくされ、スコアが負の場合にはその学習データに対する重みがより大きくされることを意味する。また、負の学習データを用いてその弱判別器ｈtCuにより判別を行った場合においてスコアが正の場合には、その学習データの重みがより大きくされ、スコアが負の場合にはその学習データの重みがより小さくされる。
【００５６】
このようにして、各枝（またはルート）の各クラスにおける弱判別器ｈtCuを決定し、重みｗiCuを更新した後、枝学習部４０Ａは、各クラスにおいてすでに決定した弱判別器に、新たに決定した弱判別器ｈtCuを追加する（ステップＳＴ５）。なお、１回目の処理においては、各クラスの弱判別器はないため、１回目の処理により、各クラスの１段目の弱判別器ｈtCuが決定される。また、２回目以降の処理により、新たに決定された弱判別器が追加される。
【００５７】
このように、各クラスに新たな弱判別器ｈtCuを追加した後、学習部４０の終了判定部４０Ｂが、学習を終了するか否かを判定する。具体的には、各クラスについて、それまでに決定したｎ個の弱判別器ｈtCuの組み合せＨCu＝ΣｈtCuの正答率、すなわち、それまでに決定した弱判別器ｈtCuを組み合せて使用して、各クラスについての正の学習データを判別した結果が、実際に判別対象のクラスのオブジェクトであるか否かの答えと一致する率が、所定の閾値Ｔｈ１を超えたか否かを判定する（ステップＳＴ６）。正答率が所定の閾値Ｔｈ１を超えた場合は、それまでに決定した弱判別器ｈtCuを用いれば判別対象のオブジェクトを十分に高い確率で判別できるため、そのクラスについての判別器を確定し（ステップＳＴ７）、学習は終了する。
【００５８】
一方、正答率が所定の閾値Ｔｈ１以下である場合は、終了判定部４０Ｂは各クラスにおいて現在の弱判別器ｈtCuの数が所定の閾値Ｔｈ２に達したか否かを判定する（ステップＳＴ８）。弱判別器ｈtCuの数が所定の閾値Ｔｈ２に達した場合には、それ以上弱判別器ｈtCuの数を増やすことは、学習の処理および判別器の判別処理に長時間を要するものとなることから、ステップＳＴ７に進んでそのクラスについての判別器を確定し、学習は終了する。
【００５９】
弱判別器ｈtCuの数が閾値Ｔｈ２に達していない場合には、学習部４０の分岐時期判定部４０Ｃが、学習が分岐時期となったか否かを判定する（ステップＳＴ９）。具体的には、枝（またはルート）に含まれるすべてのクラスＣｕについて、決定した弱判別器ｈtCuを用いて算出される分類損失誤差Ｊwseと、１つ前の処理において決定した弱判別器ｈtCuを用いて算出される分類損失誤差Ｊwse-1との差分ΔＪwseを算出し、すべてのクラスにおいて差分ΔＪwseが所定の閾値Ｔｈ３未満となったか否かを判定することにより、分岐時期となったか否かを判定する。
【００６０】
ここで、本実施形態による学習の処理においては、学習が進むにつれて弱判別器の数が増加し、これに伴い分類損失誤差が減少する。図９は４つのクラスＣ１〜Ｃ４の弱判別器についての弱判別器の数ｔと分類損失誤差Ｊwseとの関係を示す図である。図９に示すように分類損失誤差Ｊwseは、弱判別器ｈtCuの数ｔが少ない学習の初期の段階においては、弱判別器ｈtCuの数ｔが増加すると大きく減少するが、学習が進むにつれて、弱判別器ｈtCuの数ｔの増加に対する分類損失誤差Ｊwseの減少量が少なくなる。ここで、分類損失誤差Ｊwseの減少量が少ないと言うことは、これ以上弱判別器ｈtCuを増加させても、判別性能の向上の程度が少ないということを意味する。
【００６１】
このため、本実施形態においては、分岐時期判定部４０Ｃは、各枝（またはルート）に含まれるすべてのクラスＣｕについて、差分ΔＪwseが所定の閾値Ｔｈ３未満となったか否かを判定し、すべてのクラスＣｕの差分ΔＪwseが所定の閾値Ｔｈ３未満となった場合に、そこまでに決定した弱判別器ｈtCuの位置を分岐位置に決定する（ステップＳＴ１０）。次いで、学習部４０の分岐構造決定部４０Ｄが、その分岐位置における分岐構造を決定する（ステップＳＴ１１）。分岐構造の決定については後述する。分岐構造を決定した後、学習部４０の学習データ決定部４０Ｅは、分岐後の枝における各クラスＣｕに使用する学習データを決定する（ステップＳＴ１２）。クラスＣｕ毎に使用する学習データの決定についても後述する。学習データの決定後は、再帰学習部４０Ｆが、分岐後の枝においても分岐前までと同一の学習を行うべく、初期化部３０に、重み設定以外の初期化処理、すなわち、学習データのラベリング、学習データ数の正規化、および判別器の初期化の処理を行わせる（ステップＳＴ１３）。そして、再帰学習部４０Ｆが、分岐先の枝毎に特徴量を共有した学習を行って、分岐前までに決定した弱判別器ｈtCuと結合するための追加の弱判別器ｈtCuを決定するために、ステップＳＴ３に戻って処理を繰り返す。この場合、各クラスの学習データに対する重みｗiCuは、ステップＳＴ４において更新された重みｗiCuが引き続き使用される。なお、２回目以降の学習における特徴量のフィルタｆｔは任意に選択される。このため、学習が完了するまでに同じフィルタｆｔが再度選択されることもあり得る。
【００６２】
なお、ステップＳＴ９において分岐時期でないと判定された場合、すなわちすべてのクラスの損失誤差ΔＪwseが閾値Ｔｈ３未満とならない場合には、それまでに決定した弱判別器ｈtCuと結合するための追加の弱判別器ｈtCuを決定するために、ステップＳＴ３に戻って学習の処理を繰り返す。この場合においても、２回目以降の学習における特徴量のフィルタｆｔは任意に選択されるため、学習が完了するまでに同じフィルタｆｔが再度選択されることもあり得る。
【００６３】
また、決定された弱判別器ｈtCuは、決定された順に線形結合される。また、各弱判別器ｈtCuについては、それぞれ作成されたヒストグラムを基に、特徴量に応じてスコアを算出するためのスコアテーブルが生成される。なお、ヒストグラム自身をスコアテーブルとして用いることもでき、この場合、ヒストグラムの判別ポイントがそのままスコアとなる。このようにして、クラス毎に判別器の学習を行うことにより、マルチクラスの判別器が作成される。
【００６４】
次いで、分岐構造決定部４０Ｄが行う分岐構造の決定の処理について説明する。本実施形態における分岐構造は、分岐条件および分岐先の枝数を定めるものである。分岐条件とは、分岐後に分岐先においてクラス間においてどのように学習データを分岐させて特徴量を共有させるかを定める条件である。分岐構造候補プール５０は、判別器における各種分岐条件および分岐先の枝数を規定した複数の分岐構造の候補を記憶する。図１０は分岐構造の例を示す図である。図１０に示すように分岐構造Ｘbrは、分岐ノードＳおよび複数（ｂ個）のリーフノードＧｒ１〜Ｇｒｂからなる。分岐ノードＳは入力された学習データをいずれかのリーフノードＧｒ１〜Ｇｒｂに分岐させるための分岐条件を規定する。なお、各リーフノードＧｒ１〜Ｇｒｂにおいて、分岐後に特徴量を共有した学習がなされるものであり、リーフノードＧｒ１〜Ｇｒｂ間においては異なる特徴量を共有した学習がなされる。
【００６５】
図１１は３クラスの分岐構造の例を示す図である。なお、図１１に示す５種類の分岐構造は単なる例示であり、これ以外にも各種の分岐構造を採用しうることはもちろんである。なお、図１１においては、分岐ノードをＳ１〜Ｓ５により示し、リーフノードＧｒ１〜Ｇｒ３をクラスＣ１〜Ｃ３の組み合わせにより示している。図１１に示す分岐構造Ｘbr1は、分岐後に各クラスそれぞれで異なる特徴量により学習を行う分岐条件が規定されている。分岐構造Ｘbr2は、分岐後に、クラスＣ１，Ｃ２と、クラスＣ２，３と、クラスＣ１，Ｃ３とでそれぞれ特徴量を共有して学習を行う分岐条件が規定されている。分岐構造Ｘbr3は、分岐後にクラスＣ２，Ｃ３において特徴量を共有して学習を行う分岐条件が、分岐構造Ｘbr4は、分岐後にクラスＣ１，Ｃ３において特徴量を共有して学習を行う分岐条件が、分岐構造Ｘbr5は、分岐後にクラスＣ１，Ｃ２において特徴量を共有して学習を行う分岐条件がそれぞれ規定されている。
【００６６】
ここで、分岐構造Ｘbr1について、どのように学習データｘiCuを分岐させるかについて詳細に説明する。分岐構造Ｘbr1は、ある学習データｘiCuについて、分岐前までに作成されている各クラスの弱判別器を用いてその学習データｘiCuのスコアScorexCu（ｕ＝１〜３）を算出する。そして、算出したスコアが最も大きいクラスに対応するリーフノードにその学習データを分岐させる。例えば、スコアScorexC1が最も大きい場合には、その学習データはリーフノードＧｒ１に分岐される。
【００６７】
また、分岐構造Ｘbr2について、どのように学習データｘiCuを分岐させるかについて詳細に説明する。分岐構造Ｘbr2は、ある学習データｘiCuについて、分岐前までに作成されている各クラスの弱判別器を用いてその学習データｘiCuのスコアScorexCu（ｕ＝１〜３）を算出する。そして、算出したスコアをランク付けし、上位２つのクラスに対応するリーフノードにその学習データを分岐させる。例えば、スコアScorexC1およびScorexC2が上位２つのクラスに対応する場合、その学習データはＣ１Ｃ２のリーフノードＧｒ１に分岐される。また、分岐構造Ｘbr3〜Ｘbr5については、分岐構造Ｘbr2と同様にスコアScorexCu（ｕ＝１〜３）を算出し、算出したスコアをランク付けする。そして、最もスコアが大きいクラスに対応するリーフノードにその学習データを分岐させる。例えば、分岐構造Ｘbr5については、スコアScorexC3が最も大きい場合には、その学習データは、Ｃ３のリーフノードＧｒ１に分岐される。一方、スコアScorexC1またはScorexC2が最も大きい場合には、その学習データはＣ１Ｃ２のリーフノードＧｒ２に分岐される。
【００６８】
ここで、分岐構造により各クラスのすべての正の学習データを分岐させた際に、本来であれば、あるクラスの正の学習データは、そのクラスが属する分岐先に分岐されるものである。しかしながら、分岐時期までのマルチクラスの判別器において、すべての学習データを正しく分類できない、あるいは分岐構造における分岐条件が適切でない等の理由により、そのクラスの正の学習データがそのクラスが属さない分岐先に分岐されてしまう場合がある。この場合、そのクラスが属さない分岐先に分岐された学習データは、分岐後の学習には使用しない方が学習精度を高めるために好ましい。したがって、そのクラスが属さない分岐先に分岐された学習データは、分岐により損失することとなる。本実施形態においては、この損失を分岐損失誤差と定義し、学習部４０において、以下のようにして分岐損失誤差を算出する。
【００６９】
図１２は分岐損失誤差の算出を説明するための図である。図１２に示すように各クラスＣ１〜Ｃｍのそれぞれについての正の学習データの個数はｐ１〜ｐｍであるとする。学習部４０は、クラス毎に学習データを分岐構造Ｘbrにより分岐し、分岐された学習データのリーフノードＧｒ１〜Ｇｒｂ毎の個数をクラス毎にカウントする。ここで、クラスＣｕのｐｕ個の学習データのうち、リーフノードＧｒｄ（ｄ＝１〜ｂ）に分岐された学習データの個数をｑudとする。そして、下記の式（５）によりクラスＣｕの分岐構造Ｘbrによる分岐損失誤差ＢＬXbrCuを算出する。なお、式（５）の｛｝内は、クラスＣｕがリーフノードＧｒｄに属する場合の分岐された学習データの個数を表す。例えば、クラスがＣ１である場合において分岐構造が図１１に示すＸbr2であった場合、式（５）の｛｝内において表される分岐された学習データの個数は、リーフノードＧｒ１およびリーフノードＧｒ３に分岐された学習データの個数ｑ11およびｑ13となる。また、この場合において、クラスＣ１の学習データ数が１０００個、ｑ11が４００個、ｑ13が５５０個の場合、分岐損失誤差ＢＬXbrCuは０．０５となる。
【数４】
0005394959.tif 000005
【００７０】
分岐構造決定部４０Ｄは、さらに下記の式（６）により、すべてのクラスＣｕについての分岐損失誤差ＢＬXbrCuを重み付け加算して学習データ全体についての分岐損失誤差ＢＬXbrTchrを算出する。なお、式（６）において、ｗBLuはクラスＣｕに対する分岐損失誤差ＢＬXbrCuへの重みである。ここで、重みｗBLuは設計者により設定される。例えば、学習している各クラスの重要度が同一の場合にはｗBLu＝１．０に設定する。一方、学習している各クラスの重要度が一定でない場合、例えば正面顔のクラスについては他のクラスと比較して重みｗBLuを大きく設定する。そして、学習部４０はすべての分岐構造を用いて、分岐構造毎に分岐損失誤差ＢＬXbrTchrを算出し、分岐損失誤差ＢＬXbrTchrが最小となる分岐構造を選択することにより、分岐構造を決定する。
【数５】
0005394959.tif 000006
【００７１】
次いで、学習データ決定部４０Ｅが行う分岐後の学習データの決定の処理について説明する。学習データ決定部４０Ｅは、分岐先のリーフノードＧｒｄにおいて各クラスＣｕ毎に使用する学習データを決定する。学習データの決定は、分岐構造を決定する際に行った、分岐された学習データのリーフノードＧｒ１〜Ｇｒｂ毎の個数のカウント結果をそのまま使用する。例えば、図１１に示す複数の分岐構造のうち、分岐構造Ｘbr2に決定された場合において、クラスＣ１の１０００個の学習データのうち、リーフノードＧｒ１およびリーフノードＧｒ３に分岐された学習データの個数がそれぞれ４００個、５５０個の場合、リーフノードＧｒ１以降におけるクラスＣ１の学習には分岐された４００個の学習データが、リーフノードＧｒ３以降におけるクラスＣ１の学習には分岐された５５０個の学習データがそれぞれ使用される。この場合、リーフノードＧｒ１およびリーフノードＧｒ３のいずれにも分岐されなかった５０個の学習データは、損失した学習データであり、分岐後の学習には使用されないこととなる。
【００７２】
そして分岐後は決定した分岐構造の分岐条件に従って、リーフノードＧｒｄ毎に特徴量を共有した学習が続けられる。
【００７３】
以下、分岐構造を決定した後の学習についてより具体的に説明する。図１３は５クラスＣ１〜Ｃ５の学習に際して決定された分岐構造の例を示す図である。図１３に示すように分岐前までに特徴量を共有する学習により各クラスＣ１〜Ｃ５において６０個の弱判別器が決定されており、決定された分岐構造Ｘbrは４つのリーフノードＧｒ１〜Ｇｒ４を有し、そのそれぞれにクラスＣ１，Ｃ２、クラスＣ２，Ｃ３、クラスＣ３，Ｃ４およびクラスＣ４，Ｃ５が属するように分岐条件が設定されている。このため、クラスＣ１はリーフノードＧｒ１に、クラスＣ２はリーフノードＧｒ１，Ｇｒ２に、クラスＣ３はリーフノードＧｒ２，Ｇｒ３に、クラスＣ４はリーフノードＧｒ３，Ｇｒ４に、クラスＣ５はリーフノードＧｒ４に属することとなる。
【００７４】
図１４は分岐前の各クラスの正の学習データの数を、図１５は各リーフノードＧｒ１〜Ｇｒ４に分岐された各クラスの正の学習データの数をそれぞれ示す。図１５に示す太枠は、分岐後に各リーフノードＧｒ１〜Ｇｒ４において学習に使用される学習データの個数であり、太枠以外のリーフノードＧｒ１〜Ｇｒ４に分岐された学習データは損失した学習データであり、分岐後の学習には使用されないこととなる。したがって、分岐後に各リーフノードＧｒ１〜Ｇｒ４において使用される学習データは図１６に示すものとなる。なお、背景の学習データについても決定された分岐構造により各リーフノードＧｒ１〜Ｇｒ４に分岐できるため、各リーフノードＧｒ１〜Ｇｒ４に分岐された学習データをその後の弱判別器の決定に使用する。
【００７５】
図１３に示す各クラスＣ１〜Ｃ５の弱判別器は、そこまでに決定した弱判別器以降は、決定された分岐構造Ｘbrにより分岐して、リーフノードＧｒ１〜Ｇｒ４毎に特徴量を共有した学習が進められる。
【００７６】
なお、分岐後は、各リーフノードＧｒ１〜Ｇｒ４における各クラスの学習データ数が等しくなるように、分岐前と同様に学習データ数の正規化が行われる。また、各リーフノードＧｒ１〜Ｇｒ４において、各クラスの判別器の数が０となるように判別器の初期化も行われる。なお、学習データに対する重みは初期化されず、分岐前までの重みが分岐後においても継承される。
【００７７】
また、分岐後についても、リーフノードＧｒ１〜Ｇｒ４毎に上記図８に示すフローチャートにしたがって弱判別器が決定され、必要があればさらに分岐がなされて学習が進められる。図１７は学習の終了により生成された判別器を示す図である。図１７に示すように、リーフノードＧｒ１，Ｇｒ４においては、４０個の弱判別器が決定された後に分岐され、さらに分岐後にクラス毎に特徴量が異なる学習がなされ、クラスＣ１については３８０個、クラスＣ２については１７０個、クラスＣ４については１７０個、クラスＣ５については３８０個の弱判別器が決定された時点で学習が終了している。また、リーフノードＧｒ２，Ｇｒ３については、それぞれ特徴量を共有する学習がなされ、各クラスにおいて１６０個の弱判別器が決定された時点で学習が終了している。
【００７８】
ここで、リーフノードＧｒ２，Ｇｒ３が、リーフノードＧｒ１，Ｇｒ４のように再分岐していない理由は、特徴量を共有するマルチクラスＣ２，Ｃ３の学習の結果が、望ましい分類性能を既に達成しているためである。図１７に示すマルチクラスの判別器は、複数の判別器から構成され、クラスＣ２，Ｃ３，Ｃ４は分岐により複数のルートが存在するため、対応する判別器も複数存在することとなる。
【００７９】
次いで、枝学習部４０Ａが行う弱判別器の決定の処理について説明する。本実施形態においては、判別機構としてヒストグラム型判別関数を使用するものである。図１８はヒストグラム型判別関数の例を示す図である。図１８に示すように弱判別器ｈtCuの判別機構としてのヒストグラムは、横軸が特徴量の値であり、縦軸がその特徴量が対象とするオブジェクトであることを示す確率、すなわちスコアである。なお、スコアは−１〜＋１の間の値をとる。本実施形態においては、判別機構であるヒストグラムを作成すること、より具体的にはヒストグラムにおける各特徴量に対応するスコアを決定することにより、弱判別器を決定する。以下、ヒストグラム型判別関数の作成について説明する。
【００８０】
本実施形態においては、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuの判別機構であるヒストグラムを作成することにより、弱判別器ｈtCuを決定するものである。ここで、本実施形態においては、各段の弱判別器ｈtCuはクラス間において特徴量を共有するものであるが、一般的な処理を説明するために、クラス間において特徴量を共有しないものも存在するものとして説明する。これにより、上記式（２）の分類損失誤差Ｊwseは、下記の式（７）のように、特徴量を共有するクラスについての損失誤差Ｊshareと特徴量を共有しないクラスについての損失誤差Ｊunshareとの和となるように変形することができる。なお、ｈtCu（ｘi）＝ｇtCu（ｆｔ（ｘi））であることから、式（７）においては、ヒストグラムの横軸の値を簡易に示すために、ｆｔ（ｘi）＝ｒiに置き換えている。また、式（７）において、Σの下に付与されている「share」および「unshare」は、特徴量を共有しているクラスについての損失誤差の総和、および特徴量を共有していないクラスについての損失誤差の総和を算出することをそれぞれ示している。
【数６】
0005394959.tif 000007
【００８１】
式（７）において、分類損失誤差Ｊwseを最小とするためには、損失誤差Ｊshareおよび損失誤差Ｊunshareの双方を最小とすればよいこととなる。このため、まず特徴量を共有するクラスについての損失誤差Ｊshareを最小とすることを考える。特徴量を共有するクラスの数がｋであるとすると、損失誤差Ｊshareは下記の式（８）により表すことができる。なお、式（８）において、ｓ１〜ｓｋは、判別器全体のクラスＣｕのうちの、特徴量を共有するクラスについて改めて付与したクラスの番号を示す。式（８）において、右辺の各項をそれぞれＪCs1share〜ＪCskshareと表すと、式（８）は式（９）となる。
【数７】
0005394959.tif 000008
【００８２】
式（９）において、損失誤差Ｊshareを最小とするためには、式（９）の右辺の各項である、特徴量を共有する各クラスについての損失誤差ＪCs1share〜ＪCskshareをそれぞれ最小とすればよいこととなる。ここで、損失誤差ＪCs1share〜ＪCskshareを最小とするための演算は、各クラスにおいて同一であることから、以降の説明においては、ある１つのクラスＣｓｊ（ｊ＝１〜ｋ）についての損失誤差ＪCsjshareを最小とするための演算について説明する。
【００８３】
ここで、特徴量がとり得る値は、所定範囲に限定されている。膨大な数の学習データから、特徴量の統計的な情報を効率的に表すために、および判別器を実装する場合におけるメモリや検出速度の要求等に応じて、本実施形態においては、ヒストグラムの横軸の範囲を、図１９に示すように適当な数値幅で区切ってＰ１〜Ｐｖの区分に量子化する（例えばｖ＝１００）。なお、ヒストグラムの縦軸は、すべての学習データから特徴量を算出し、後述する式（１３）により算出される統計情報により決定される。これにより、作成したヒストグラムは、判別対象のオブジェクトの統計的な情報が反映されるため、判別能力が高くなる。また、ヒストグラムを作成するための演算および判別時の演算量を低減することができる。損失誤差ＪCsjshareは、ヒストグラムにおける各区分Ｐ１〜Ｐｖ毎の損失誤差の総和となることから、損失誤差ＪCsjshareは、下記の式（１０）に示すように変形できる。なお、式（１０）において、Σの下に付与されているｒi∈Ｐｑ（ｑ＝１〜ｖ）等は、特徴量ｒiが区分Ｐｑに属する場合の損失誤差の総和を算出することを意味する。
【数８】
0005394959.tif 000009
【００８４】
ヒストグラムは図１９に示すように区分Ｐ１〜Ｐｖに量子化されているため、各区分におけるスコアの値ｇtCsj（ｒi）は各区分においては定数となる。したがって、ｇtCsj（ｒi）＝θqCsjと表すことができ、これにより式（１０）を下記の式（１１）に変形することができる。
【数９】
0005394959.tif 000010
【００８５】
ここで、式（１１）におけるラベルｚiCsjの値は＋１または−１である。したがって、式（１１）の（ｚiCsj−θqCsj）は、（１−θqCsj）または（−１−θqCsj）のいずれかとなる。したがって、式（１１）は下記の式（１２）のように変形することができる。
【数１０】
0005394959.tif 000011
【００８６】
損失誤差ＪCsjshareを最小とするためには、式（１２）が最小となるようにすればよい。式（１２）を最小とするためには、式（１２）をθqCsjにより偏微分した値が０となるように各区分ＰｑにおけるθqCsjの値を決定すればよい。したがって、θqCsjは、下記の式（１３）のように算出することができる。
【数１１】
0005394959.tif 000012
【００８７】
ここで、ＷqCsj+は、特徴量を共有するクラスＣｓｊにおいて、ラベルの値が１に設定された学習データ、すなわち正の学習データｘiに対する重みｗiCsjの、ヒストグラムの区分Ｐｑにおける総和、ＷqCsj-は、特徴量を共有するクラスＣｓｊにおいて、ラベルの値が−１に設定された学習データ、すなわち負の学習データｘiに対する重みｗiCsjの、ヒストグラムの区分Ｐｑにおける総和である。重みｗiCsjは既知であるため、ＷqCsj+およびＷqCsj-は算出することができ、よって、区分Ｐｑにおけるヒストグラムの縦軸すなわちスコアθqCsjは上記式（１３）により算出することができる。
【００８８】
以上より、特徴量を共有するクラスＣｓｊについては、弱判別器ｈtCuの判別機構であるヒストグラムのすべての区分Ｐ１〜Ｐｖにおける縦軸の値、すなわちスコアθqCsjを式（１３）により算出することにより、損失誤差ＪCsjshareを最小とするようにヒストグラムを作成して、弱判別器ｈtCuを決定することができる。作成したヒストグラムの例を図２０に示す。なお、図２０において、区分Ｐ１，Ｐ２，Ｐ３のスコアをそれぞれθ１，θ２，θ３として示している。
【００８９】
次に特徴量を共有しないクラスについての損失誤差Ｊunshareを最小とすることを考える。特徴量を共有しないクラスのうちのあるクラスＣｓｊについての損失係数ＪCsjunshareは、下記の式（１４）により表すことができる。ここで、本実施形態においては、特徴量を共有することを特徴とするものであるため、特徴量を共有しないクラスについては、スコアｇtCu（ｒi）を式（１５）に示すように定数ρCsjとして、損失誤差ＪCsjunshareを最小とする定数ρCsjを決定するものとする。
【数１２】
0005394959.tif 000013
【００９０】
損失誤差ＪCsjunshareを最小とするためには、式（１５）が最小となるようにすればよい。式（１５）を最小とするためには、式（１５）をρCsjにより偏微分した値が０となるようにρCsjの値を決定すればよい。したがって、ρCsjは、下記の式（１６）のように算出することができる。ここで、重みｗiCsjおよびスコアｚiCsjは既知であるため、定数ρCsjを式（１６）により算出することができる。
【数１３】
0005394959.tif 000014
【００９１】
このように、本実施形態によれば、複数のクラス間の弱判別器の分岐位置および分岐構造を、各クラスにおける弱判別器の学習結果に応じて決定するようにしたものである。このため、マルチクラスの学習を行う際に、弱判別器の分岐位置および分岐構造が設計者に依存することがなくなり、その結果、生成された判別器を用いることにより、オブジェクトの判別を精度良くかつ高速に行うことができる。また、分岐位置および分岐構造を設計者が決定する場合と比較して、学習が収束しなくなるようなことがなくなり、その結果、学習の収束性を向上させることができる。
【００９２】
また、分岐後の弱判別器の学習に、分岐前までの学習結果を継承させることにより、分岐前後において弱判別器がシームレスに繋がるため、本実施形態により生成された判別器において、判別構造の一貫性を保つことができる。したがって、判別器の判別精度および判別速度を両立させることができる。
【００９３】
また、本出願人による実験の結果、本発明により作成された判別器は従来のJoint Boostの手法により作成された判別器と比較して、学習の安定性および柔軟性が高いことが分かった。また、作成された判別器の精度および検出速度も、本発明の判別器の方が高いことが分かった。
【００９４】
なお、上記実施形態においては、判別機構としてヒストグラム型判別関数を用いているが、判別機構として決定木を用いることも可能である。以下、判別機構を決定木とした場合の弱判別器の決定について説明する。ここで、判別機構として決定木を用いた場合においても、分類損失誤差Ｊwseが最小となるように弱判別器ｈtCuを決定することには変わりはない。このため、判別器を決定木とした場合においても、説明のために、式（９）における、特徴量を共有するある１つのクラスＣｓｊについての損失誤差ＪCsjshareを最小とするための演算について説明する。なお、以下の説明においては、決定木を下記の式（１７）に示すように定義するものとする。式（１７）におけるφtCsjは閾値であり、特徴量のフィルタに定義されているものである。またδ（）は、ｒi＞φtCsjの場合に１、それ以外の場合に０となるデルタ関数である。また、ａtCsjおよびｂtCsjはパラメータである。このように決定木を定義することにより、決定木に対する入力と出力との関係は図２１に示すものとなる。
【数１４】
0005394959.tif 000015
【００９５】
判別機構が決定木の実施形態において、特徴量を共有するクラスＣｓｊの損失誤差ＪCsjshareは、下記の式（１８）となる。
【数１５】
0005394959.tif 000016
【００９６】
損失誤差ＪCsjshareを最小とするためには、式（１８）を最小となるようにすればよい。式（１８）を最小とするためには、式（１８）をパラメータａtCsjおよびｂtCsjのそれぞれにより偏微分した値が０となるように、ａtCsj＋ｂtCsjおよびｂtCsjの値を決定すればよい。ａtCsj＋ｂtCsjの値は、式（１８）をａtCsjにより偏微分することにより、下記の式（１９）に示すように決定することができる。なお、式（１９）におけるΣの下のｒi＞φtCsjは、ｒi＞φtCsjのときにおける重みｗiCsjの総和、および重みｗiCsjとラベルｚiCsjの乗算値の総和を算出することを意味する。したがって、式（１９）は式（２０）と同義である。
【数１６】
0005394959.tif 000017
【００９７】
一方、ｂtCsjの値は、式（１８）をｂtCsjにより偏微分した値が０となるように、下記の式（２２）に示すように決定することができる。
【数１７】
0005394959.tif 000018
【００９８】
なお、判別機構を決定木とした場合における特徴量を共有しないクラスについては、判別機構をヒストグラム型判別関数とした場合と同様に、決定木が出力する値を定数ρCsjとし、損失誤差ＪCsjunshareを最小とする定数ρCsjを決定すればよい。この場合、定数ρCsjは上記式（１６）と同様に決定することができる。
【００９９】
このように、判別機構を決定木とした場合においても、本実施形態は、複数のクラス間の弱判別器の分岐位置および分岐構造を、各クラスにおける弱判別器の学習結果に応じて決定するようにしたものである。このため、マルチクラスの学習を行う際に、弱判別器の分岐位置および分岐構造がユーザに依存することがなくなり、その結果、生成された判別器を用いることにより、オブジェクトの判別を精度良く行うことができる。また、分岐位置および分岐構造をユーザが決定する場合と比較して、学習が収束しなくなるようなことがなくなり、その結果、学習の収束性を向上させることができる。
【０１００】
以上、本発明の実施形態に係る装置１について説明したが、コンピュータを、上記の学習データ入力部１０、特徴量プール２０、初期化部３０、学習部４０および分岐構造候補ブール５０に対応する手段として機能させ、図８に示すような処理を行わせるプログラムも、本発明の実施形態の１つである。また、そのようなプログラムを記録したコンピュータ読取り可能な記録媒体も、本発明の実施形態の１つである。
【符号の説明】
【０１０１】
１    判別器生成装置
１０  学習データ入力部
２０  特徴量プール
３０  初期化部
３０Ａ    ラベリング部
３０Ｂ    正規化部
３０Ｃ    重み設定部
３０Ｄ    判別器初期化部
４０  学習部
４０Ａ    枝学習部
４０Ｂ    終了判定部
４０Ｃ    分岐時期判定部
４０Ｄ    分岐構造決定部
４０Ｅ    学習データ決定部
４０Ｆ    再帰学習部
５０  分岐構造候補プール
【図１】
0005394959.tif 000019
【図２】
0005394959.tif 000020
【図３】
0005394959.tif 000021
【図４】
0005394959.tif 000022
【図５】
0005394959.tif 000023
【図６】
0005394959.tif 000024
【図７Ａ】
0005394959.tif 000025
【図７Ｂ】
0005394959.tif 000026
【図８】
0005394959.tif 000027
【図９】
0005394959.tif 000028
【図１０】
0005394959.tif 000029
【図１１】
0005394959.tif 000030
【図１２】
0005394959.tif 000031
【図１３】
0005394959.tif 000032
【図１４】
0005394959.tif 000033
【図１５】
0005394959.tif 000034
【図１６】
0005394959.tif 000035
【図１７】
0005394959.tif 000036
【図１８】
0005394959.tif 000037
【図１９】
0005394959.tif 000038
【図２０】
0005394959.tif 000039
【図２１】
0005394959.tif 000040
【図２２】
0005394959.tif 000041
【図２３】
0005394959.tif 000042
【図２４】
0005394959.tif 000043
【図２５】
0005394959.tif 000044
【図２６】
0005394959.tif 000045