JP2008009893A - パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム - Google Patents

パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム Download PDF

Info

Publication number
JP2008009893A
JP2008009893A JP2006181896A JP2006181896A JP2008009893A JP 2008009893 A JP2008009893 A JP 2008009893A JP 2006181896 A JP2006181896 A JP 2006181896A JP 2006181896 A JP2006181896 A JP 2006181896A JP 2008009893 A JP2008009893 A JP 2008009893A
Authority
JP
Japan
Prior art keywords
learning
pattern
data
parameter
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006181896A
Other languages
English (en)
Other versions
JP4757116B2 (ja
Inventor
Hirosuke Mitarai
裕輔 御手洗
Masakazu Matsugi
優和 真継
Katsuhiko Mori
克彦 森
Hiroshi Torii
寛 鳥居
Hiroshi Sato
博 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006181896A priority Critical patent/JP4757116B2/ja
Priority to EP07110987.0A priority patent/EP1873687A3/en
Priority to US11/769,143 priority patent/US7958070B2/en
Priority to CN2007101227239A priority patent/CN101097564B/zh
Publication of JP2008009893A publication Critical patent/JP2008009893A/ja
Application granted granted Critical
Publication of JP4757116B2 publication Critical patent/JP4757116B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

【課題】 高速かつ高精度なパターン識別のためのパラメータ学習方法を提供する。
【解決手段】 それぞれが属するクラスと対応付けられた複数の学習データを入力し(ステップS101)、前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する(ステップS103)。前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像し(ステップS104)、写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する(ステップS107〜110)。
【選択図】 図1

Description

本発明は、画像認識や音声認識等において、入力信号のパターンを識別するための識別用パラメータの学習、及びそれを用いたパターン識別に関するものである。
従来から、光学的文字認識や自動音声認識等において、入力データを所定のクラスに分類するためのパターン識別方法として多くの手法が考案されている。現在に至っても、処理の高速化や、分類精度の向上等を目的とした様々な新しい手法が提案されている。
例えば非特許文献1のように、非常に短時間で演算が可能な弱判別方法を用い、AdaBoostによる学習法と、弱判別方法のカスケード識別手法の組み合わせにより、高速、且つ高精度なパターン識別方法が提案されている。
また、非特許文献2のように、上記パターン識別方法の更なる高速化・高精度化を目的として、Real AdaBoostの手法(非特許文献3参照)というブースティング手法(非特許文献4参照)と、入れ子型カスケード識別手法を導入するという手法も提案されている。
また、非線形の識別関数を構成できるサポートベクターマシン(Support Vector Machine, SVM)と呼ばれるパターン認識手法が知られている(非特許文献5を参照)。
このように、処理装置が高性能となってきた背景もあり、高速、且つ高精度なパターン識別により、リアルタイムにパターン識別を行うことができる技術が望まれている。
P.Viola,M.Jones,"Rapid Object Detection using a Boosted Cascade of Simple Features",Proc.IEEE Conf.on Computer Vision and Pattern Recognition,Vol.1,pp.511−518,December 2001 勞 世▲紅▼,山下 隆義,岡本 卓也,川出 雅人,"高速全方向顔検出",MIRU2004,Vol.2,pp.271−276,July 2004 R.E.Schapire,Y.Singer,"Improved Boosting Algorithms Using Confidence−rated Predictions",Machine Learning,Vol.37,pp.297−336,December 1999 R.O.Duda,P.E.Hart,D.G.Stork,"パターン識別 Pattern Classification Second Edition",新技術コミュニケーションズ,pp.478−482,July 2001 津田 宏治,"Technical Survey「サポートベクターマシンとは何か」",電子情報通信学会誌,Vol.83,pp. 460−466,June 2000
本発明は、上述した点に鑑みなされたものであり、高速かつ高精度なパターン識別のためのパラメータ学習方法、及び、それを用いたパターン識別方法を提供する。
上記課題を解決するために、本発明によれば、入力データを複数のクラスに分類するためのパラメータ学習方法に、それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力ステップと、前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出ステップと、前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像ステップと、前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習ステップとを備える。
また、本発明の他の態様によれば、入力データを複数のクラスに分類するためのパラメータ学習装置に、それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力手段と、前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出手段と、前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像手段と、前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習手段とを備える。
また、本発明の他の態様によれば、入力データを複数のクラスに分類するためのパラメータ学習方法をコンピュータに実行させるコンピュータ読み取り可能なプログラムが、それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力ステップと、前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出ステップと、前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像ステップと、前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習ステップとをコンピュータに実行させることを特徴とする。
本発明によれば、高速かつ高精度なパターン識別、あるいはそのためのパラメータの学習を実行することが可能となる。
以下、添付図面を参照しながら、本発明の実施形態を説明する。
(第1の実施の形態)
本発明の第1の実施形態として、入力データとして2次元画像データを用い、その画像データが、ある特定のカテゴリであるかどうかを識別するパターン識別方法に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を示す。このパターン識別方法は、つまり入力された画像データを、特定のカテゴリであるというクラスと、特定のカテゴリではないというクラスの2クラスに分類する方法である。
特定のカテゴリとしては、例えば人間の顔であるとか、あるパーツの欠陥であるといったカテゴリが挙げられる。本実施形態では、人間の顔の中心付近が入力画像のほぼ中央に存在するパターン(以下、顔パターン)を、特定のカテゴリとした場合の例を示す。
図1に、第1の実施形態におけるパターン識別用パラメータ学習方法の処理の流れを示す。以下、このパターン識別用パラメータ学習方法について図1を用いて説明する。
まず、ステップS101において、データベース102に保持してある複数の学習パターンから、1つの学習パターンを入力する。データベース102には、顔パターンと、それ以外の任意のパターン(以下、非顔パターンと称する)を、そのラベル(顔パターンであるのか、非顔パターンであるのか)と共に予め複数保持しておく。本実施形態では、データベース102に保持しておくパターンは、グレースケール画像であり、各画素値が輝度値として表現されたものである。ここでは、全顔パターンは、顔の向きやサイズをある程度正規化しておき、顔・非顔を含めた全パターンを一定の画像サイズにして保持しておく。
次に、ステップS103において、ステップS101で入力された学習パターンについて、4つの所定部分の輝度値の総和を求める。この所定部分は任意に設定すれば良いが、分類したい2クラスにおいて、差が顕著に表れるような部分を設定するのが好適である。本実施形態では、顔パターンと非顔パターンとの2クラスに分類するため、顔パターンにとって特徴的である、左右の目の領域、眉間の領域、口の領域を、4つの所定部分として設定する。
具体的には、図2の破線で示すような、全顔パターンの左目が入るような領域21、全顔パターンの右目が入るような領域23、領域21と領域23の中間の眉間の位置に対応する領域22、全顔パターンの口が入るような領域24の4つの矩形領域を、上記所定部分として用いる。なお、本実施形態では、所定部分として4つの矩形領域を用いるが、この所定部分の個数や位置・大きさ・形状は任意であり、少なくとも1つの部分を設定しておき、その部分のデータの総和を求めるようにすればよい。
次のステップS104では、ステップS103において求めた各領域の総和を単純に並べたベクトルを生成する。並べ方は任意であるが、本実施形態では、図2の領域21、領域22、領域23、領域24の順に、それぞれの総和値を並べたベクトルを生成する。そして、ここで生成したベクトルをベクトル化データとして、学習パターンのラベルと共にデータベース105に保持しておく。これにより、各学習パターンは、上記4個の総和値によって張られる4次元特徴空間に写像されたことになる。
ステップS106では、データベース102に保持されている学習パターンの全てを選択したかどうかを判定する。全てを選択してなければ、ステップS101に戻り、データベース102から新たな学習パターンを選択していくようにする。全ての学習パターンが選択された場合、次のステップS107に進む。
ステップS107では、データベース105に保持されたベクトルデータを用いて、各クラスの平均ベクトルを求める。
次いで、ステップS108では、ステップS107で求めたクラス平均ベクトルと、データベース105に保持されたベクトルデータとを用いて、クラスごとの分散共分散行列を求める。
次のステップS109では、ステップS108で求めたクラスごとの分散共分散行列に各クラスの事前確率を乗じ、その行列の和を求め、求めた行列の逆行列を算出する。各クラスの事前確率については、事前確率が既知である場合はそれを用いればよい。既知でない場合は、学習パターン数に応じた値に設定するか、学習したい識別器に求める性能に応じて設定すればよい。ここで、逆行列が存在しない、即ち求めた行列の和が正則でない場合は、ステップS103において総和抽出を行う部分の設定が適切でない可能性が高い。そのため、例えば図2に示した各領域の位置や大きさを変える等、所定部分の設定をし直して、もう一度はじめから学習を開始する必要がある。
最後に、ステップS110において、まず、ステップS107で求めた各クラスの平均ベクトルと、ステップS109で求めた逆行列とを用いて、パターン識別用パラメータの1つであるクラス分離ベクトルを算出する。クラス分離ベクトルは、顔パターンの平均ベクトルから非顔パターンの平均ベクトルを引いたベクトルを求め、そのベクトルの左側からステップS109の逆行列算出において求めた逆行列をかけることで求められる。
次いで、もう1つのパターン識別用パラメータである識別閾値を、求めたクラス分離ベクトルと、データベース105に保持されたベクトルデータとを用いて求める。ここでは、まずデータベース105に保持された全ベクトルデータと、求められたクラス分離ベクトルとの内積を求める。この内積値は、顔パターンであるらしさを表す代表値とみなすことができ、例えばこの値が所定値以上であれば、顔パターンのクラスであると分類し、そうでなければ非顔パターンのクラスであると分類するようにする。この識別に用いる所定値が識別閾値となる。
識別閾値の決定は、識別閾値を細かく振っていき、失敗パターン総数(顔パターンであるのに、非顔パターンのクラスに分類された総数と、非顔パターンであるのに顔パターンに分類された総数の和)が最小になる値を検索して決定するようにすればよい。
本実施形態では、失敗パターン総数に基づいて識別閾値を決定するが、この方法に限るものではなく、求める識別器の性能に応じて適切に設定すればよい。また、クラス分離ベクトルの方向によっては、所定閾値以下の場合に顔パターンのクラスであると分類した方が、失敗パターン総数をより小さくできる場合がある。その場合は、クラス分離ベクトルの方向を逆にする(全要素の符号を反転する)か、パターン識別の際に、所定値以下のパターンが顔パターンのクラスであるというように取り決めておくようにすればよい。
以上の手法により、パターン識別用のパラメータとして、クラス分離ベクトルと、識別閾値を得ることができる。これらはいわゆる線形識別関数とクラス間境界とを与えることになる。本実施形態では、クラス分離ベクトルを得るための手法として、上記のような、いわゆる線形判別分析法を用いたが、本発明はこれに限るものではなく、直交化学習等により、パラメータを逐次更新しながらクラス分離ベクトルを得るような手法でも構わない。
続いて、上記手法で求めたパターン識別用のパラメータを用いたパターン識別方法によって、画像中の顔を検出する方法について、図3を用いて説明する。
まず、ステップS301で、顔検出を行う画像を入力する。この画像は、上記説明したパターン識別用パラメータ学習時と同様のグレースケール画像である。グレースケール画像以外の画像に対して顔検出を行いたい場合は、まず学習時と同様のグレースケール画像に変換してから入力するようにすれば良い。
次に、ステップS302において、矩形領域の総和を高速に求めるために、入力した画像のインテグラルイメージを生成する。インテグラルイメージとは、画像始点(例えば画像の左上の画素)から、注目画素までを対角線とする矩形領域内の画素値の総和を、注目画素の画素値として表現するものである。これを利用すると、任意の矩形領域内の画素値の総和を高速に求めることができる(インテグラルイメージの詳細については、非特許文献1を参照)。本実施形態では、ステップS304において、画素値の総和を抽出する所定部分として4つの矩形領域を利用するため、予めこのインテグラルイメージを生成しておくことで、総和抽出の処理が高速に実行できる。
次いで、ステップS303で、画像中の所定の点の中から1つの点を定め、それを中心とする領域を生成したインテグラルイメージから切り出す。上記所定の点は、画像の全画素としても良いが、例えば1画素おきというように、粗くサンプリングするようにしても良い。切り出すサイズは任意だが、本実施形態では、学習時に利用した学習パターンと同じサイズになるように切り出しを行う。
ステップS304において、切り出したインテグラルイメージを用いて、学習時にステップS103で総和を求めた部分と同一位置の、矩形領域内の画素値の総和を算出する。
次に、ステップS305において、ステップS304で抽出した総和を、学習時のステップS104と同じ順序で並べたベクトルを生成する。
そして、ステップS306において、ステップS305で生成したベクトルと、学習により予め生成しておき、識別用パラメータデータベース307に保持しておいたクラス分離ベクトルとの内積を演算する。ここで用いるクラス分離ベクトルは、予め所定値以上を顔パターンと分類するのが好適な方向になるようにしたものを用いる。
続いて、ステップS308では、ステップS306の内積演算で求めた内積値と、学習時に予め求めておき、データベース307に保持しておいた識別閾値との比較を行い、求めた内積値が識別閾値よりも高い場合に、ステップS303で定めた点に顔が存在すると判定する。
ステップS308で顔が存在すると判定された場合は、ステップS309において、ステップS303で定めた点に顔が存在するという結果を記録しておく。
そしてステップS310では、ステップS303で所定の点の全てを中心とする画像切り出しを行ったかどうかを判定して、行ったのであれば処理を終了する。そうでなければステップS303に戻り、新たな所定の点を1つ定め、画像切り出しを行うという処理を繰り返す。
以上説明した処理により、入力された画像内の顔を検出することができる。この処理では、学習時に利用した顔パターンと同じような向き、サイズの顔が検出できる。もし、異なるサイズの顔を検出したい場合は、入力画像を縮小または拡大した画像を生成して、同様の処理を行えばよい。あるいは、ステップS304において総和を求める所定部分を縮小または拡大し、ステップS305において、縮小または拡大した分の補正を行ったベクトルを生成するようにすればよい。
ここでの補正に関しては、縮小または拡大した分の面積比の逆数を、求めた各総和値に乗じてやるようにする。また、顔の向きに関しては、面内回転が学習パターンと異なる顔を検出したい場合は、入力画像を予め回転させたものを入力して同様の処理を行えばよい。また、軸方向の回転が学習パターンと大きく異なる顔の検出をしたい場合は、同一のパターン識別方法で行うのは困難である。そこで、軸方向の回転ごとのパターン識別用パラメータを予め学習により生成しておき、それぞれのパターン識別方法を独立に用いて検出するようにすればよい。
以上、第1の実施の形態は、入力データとして2次元画像データを用い、その画像データが、ある特定のカテゴリであるかどうかを識別するパターン識別方法に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を説明した。つまり、入力された画像データを、特定のカテゴリであるというクラスと、特定のカテゴリではないというクラスの2クラスに分類するパターン識別方法の例について説明した。
(第2の実施の形態)
第2の実施形態では、第1の実施形態と同様に、入力データとして2次元画像データを用いた2クラス分類のパターン識別を行なう。その際、ブースティング手法(詳細については、非特許文献4を参照)を用いて構築する複数の弱判別器の組み合わせにより、さらに高精度なパターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を示す。
図4に、第2の実施形態におけるパターン識別用パラメータ学習方法の処理の流れを示す。以下、このパターン識別用パラメータ学習方法について図4を用いて説明する。
まずステップS401において、所定の矩形パターンの中から1つの矩形パターンを選択する。ここで選択する矩形パターンは、第1の実施形態における、目や口の位置に対応する矩形領域と同様のものである。ただし、本実施形態では、予め固定の1つの矩形パターンを用いるのではなく、所定の複数の矩形パターンのそれぞれに対して処理を行い、最も識別能力の高いパターン識別結果が得られる矩形パターンを選択する。所定の複数の矩形パターンとしては、任意の位置・大きさの、矩形領域の組み合わせを用いればよい。
本実施形態における矩形パターンの設定方法についてさらに詳細に説明する。本実施形態では、学習パターンとして、20×20画素の顔パターン、及び非顔パターンを用いるので、その20×20画素のパターン内に設定可能な矩形領域を2つ設定し、それを1つの矩形パターンとして用いる。1つの矩形は、その幅・高さ・縦位置・横位置で決まるので、その4つのパラメータを決めることにより、1つの矩形領域が設定される。
そこで、まず矩形の幅wを1〜20、高さhを1〜20の中からそれぞれ1つ決定する。次に、矩形の左上の座標位置xを0〜20−w、矩形の左上の座標位置yを0〜20−hの中からそれぞれ1つ決定する。これで、1つの矩形領域が設定されることになる。本実施形態では、2つの矩形領域の組み合わせを1つの矩形パターンとして用いるので、もう1つの矩形領域も同様に決定する。ただし、2つ目の矩形領域は、1つ目に決定した矩形領域以外になるようにする。
選択すべき所定の矩形パターンとしては、これらの組み合わせ全てを用いるようにしてもよいが、その場合、非常に処理に時間がかかる。そこで、例えば幅、高さは何れも奇数にする、矩形の左上の座標位置は、何れも偶数にする、といった制約を付けて、選択すべき所定の矩形パターン数を減らすようにしてもよい。
本実施形態では、矩形領域2つから構成されるものを矩形パターンとしたが、本発明はこれに限るものではなく、その他の矩形領域数でも実施可能である。例えば、矩形領域3つから構成されるものを矩形パターンとする場合には、3つ目の矩形領域として、1つ目と2つ目に選ばれた以外の矩形領域を、上記と同様の方法で決定すればよい。矩形領域1つで構成されるものを矩形パターンとすることも可能であるが、その場合は、パターン識別用パラメータの求め方が異なるので、後述する。また、本実施形態では、矩形パターンは全て同じ2つの矩形領域から構成されるものとしているが、矩形領域が2つで構成されるものと、矩形領域3つで構成されるものとが混在するような場合にも適用可能である。
ステップS401で1つの矩形パターンを選択した後、ステップS402において、データベース403に保持された複数の学習パターンから、1つの学習パターンを入力する。データベース403に保持しておくパターンは、第1の実施の形態と同様であるが、それぞれのパターンに重みを設定しておく点が異なる。
この重みは、学習時の重要度を示しており、この重みが高いパターンほど、それを重要視した学習を行うようにする。初期段階では、通常全てのパターンに同じ重みを設定しておく。つまり、パターンの総数が例えばN個である場合、それぞれの重みを、1/Nと設定しておけばよい。初期状態の重みの設定に関しては、これに限るものではなく、例えば事前確率によって傾斜した重みを設定するようにしてもよい。また、求める識別器の性能に応じて適当に設定してもよい。例えば非顔パターンの重みを大きく設定しておくと、非顔パターンを誤って顔パターンのクラスに分類する確率を小さくすることができる(しかしこの場合、逆に、顔パターンを誤って非顔パターンのクラスに分類する確率は高くなる)。また、この重みの絶対値に関しては、特に限定はしないが、全学習パターンの重みの総和が1であると計算が簡便であるので、そのように設定しておくとよい。
次に、ステップS404において、ステップS402で入力した学習パターンから、ステップS401で選択した矩形パターンに基づき、そのそれぞれの矩形領域内の輝度値の総和を抽出する。
続いて、ステップS405において、ステップS404で求めたそれぞれの矩形領域の総和を用いてベクトルを生成し、そのベクトルをステップS401で選択した矩形パターンに対応するベクトルデータとして、データベース406に保持する。
ここで、識別能力向上のため、第1の実施形態とは異なり、求めた総和値の正規化を行い、それをベクトルの各要素値とするようにする。具体的には、ステップS402で入力した学習パターンの輝度値の平均と、輝度値の標準偏差を用いる。まず、それぞれの矩形領域の総和から、その矩形領域の面積に輝度値の平均を乗じたものを引き、それに標準偏差の逆数を乗じることによって正規化を行う。このようにして正規化したそれぞれの矩形領域の総和値を、任意の順(1つの矩形パターンで同一の順序)で並べたベクトルを生成して、データベース406に保持しておく。
ステップS407では、データベース403に保持されている学習パターンの全てを選択したかどうかを判定して、全てを選択していなければ、ステップS402の学習パターン入力に戻り、新たな学習パターンを、データベース403から選択していくようにする。全ての学習パターンが選択された場合、次のステップS408のクラス平均ベクトル算出に進む。
ステップS408では、データベース406に保持された、ステップS401の矩形パターン選択において選択した矩形パターンに対応するベクトルデータを用いて、各クラスの重み付平均ベクトルを求める。具体的には、各ベクトルデータに、先に述べた、対応する学習パターンの重みを乗じ、重みを乗じたベクトルの総和をクラスごとに求める。この時、同時に学習パターンの重みの総和もクラスごとに求めておく。そして、重みを乗じた全ベクトルの総和を算出後、クラスごとに総和を求めたベクトルを、そのクラスの重みの総和で割ることで、各クラスの重み付平均ベクトルが求められる。
次いで、ステップS409では、ステップS408で求めたクラスの重み付平均ベクトルと、データベース406に保持された、ステップS401で選択した矩形パターンに対応するベクトルデータとを用いて、クラスごとの重み付分散共分散行列を求める。ここでも、この重み付分散共分散行列を求める際に、学習パターンの重みを利用する。
具体的には、まず、1つのベクトルデータから、そのベクトルデータに対応するクラスの重み付平均ベクトルを引いたベクトルと、そのベクトルの転置ベクトルの積を求める。そして、積を求めたことにより得られる行列に、対応する学習パターンの重みを乗じ、その重みを乗じた行列の総和をクラスごとに求めることによって、クラスごとの重み付分散共分散行列が得られる。もし、ステップS401で選択した矩形パターンが、1つの矩形で構成されるものである場合は、ベクトルデータが1つの要素しかもたないので、このステップS409のクラス分散共分散行列算出は省略可能である。このステップS409を省略した場合は、次のステップS410の逆行列算出も省略する。
次のステップS410では、ステップS409で求めたクラスごとの重み付分散共分散行列の和を求め、求めた行列の逆行列を算出する。ここでは第1の実施形態とは異なり、ステップS409で重み付の分散共分散行列を求めており、なおかつ全学習パターンの重みの総和は1となるようにしてあるので、事前確率を乗じる必要はない。ここで、逆行列が存在しない、即ち求めた行列の和が正則でない場合は、ステップS401で選択した矩形パターンが適切でない可能性が高い。そのため、続くステップS411でのパラメータ算出は飛ばし、ステップS412の予測誤差記録(詳細は後述)において、その矩形パターンと共に、予測誤差1というデータを記録し、次に進むようにすればよい。
次に、ステップS411において、まず、ステップS408で求めた各クラスの重み付平均ベクトルと、ステップS410の逆行列算出において求めた逆行列とを用いて、パターン識別用パラメータの1つであるクラス分離ベクトルを算出する。クラス分離ベクトルは、顔パターンの重み付平均ベクトルから非顔パターンの重み付平均ベクトルを引いたベクトルを求め、そのベクトルの左側からステップS410で求めた逆行列をかけることによって求められる。
次いで、もう1つのパターン識別用パラメータである識別閾値を、求めたクラス分離ベクトルと、データベース406に保持された、ステップS401で選択した矩形パターンに対応するベクトルデータとを用いて求める。ここでは、まず第1の実施形態と同様に、データベース406に保持された、ステップS401で選択した矩形パターンに対応する全ベクトルデータと、求めたクラス分離ベクトルとの内積を求める。この内積値については、第1の実施形態と同様に、顔パターンであるらしさを表す代表値とみなすことができる。
この識別に用いる識別閾値の決定は、第1の実施形態とは異なり、学習パターンの重みに応じて決定するようにする。具体的には、まず識別閾値を細かく振っていき、識別に失敗したパターンの重みを、全学習パターンについて、誤差の累積値として累積していき、その誤差の累積値が最小になる識別閾値を検索して決定する。ここで、識別に失敗したパターンとは、顔パターンであるのに、非顔パターンのクラスであると分類された学習パターンと、非顔パターンであるのに顔パターンであると分類された学習パターンである。上述した誤差の累積値が小さいということは、現状重視すべき学習パターンにおける識別の失敗が少ないということを意味しており、ここにおいても、学習パターンの重みに基づいた学習を行っているといえる。
ステップS401で選択した矩形パターンが、1つの矩形で構成されるものであり、ステップS409のクラス分散共分散行列算出を省略した場合は、上記とはパラメータ算出方法が異なる。まず顔パターンの重み付平均ベクトル(要素数は1なのでスカラー)から非顔パターンの重み付平均ベクトル(スカラー)を引いた時の符号のみを求める。次いで、その符号をデータベース406に保持された、ステップS401で選択した矩形パターンに対応する全ベクトルデータ(スカラー)に乗じ、これを上記手法の内積値と同等のものとして扱い、識別閾値と、誤差の累積値を算出するようにすればよい。
続いて、ステップS412において、ステップS411で求めたパターン識別用のパラメータと共に、識別閾値を決定した際の誤差の累積値を予測誤差として記録しておく。
そして、ステップS413において、ステップS401で所定の矩形パターンの全てを選択したかどうかを判定する。全てを選択していなければ、学習パターンの選択履歴をクリアして、ステップS401に戻り、新たな矩形パターンを選択していくようにする。所定の全ての矩形パターンが選択された場合、ステップS414に進む。
ステップS414では、ステップS412において記録した、ステップS401で選択した全ての矩形パターンごとの予測誤差に基づき、予測誤差が最小である矩形パターンを1つ選択する。
そして、ステップS415において、ステップS414で選択された矩形パターンと、それに対応するパターン識別用パラメータ、予測誤差から算出する識別スコアαを、弱判別方法に用いるパラメータとして順番に記録していく。識別スコアαは、予測誤差をεとした時、α=1/2×ln{(1−ε)/ε}として求められる。ここで、前式中のlnは自然対数を表わしている。
次に、ステップS416において、データベース403に保持されている学習パターンが持つ重みを更新する。ここでは、データベース406に保持された、直前にステップS415で記録された矩形パターンに対応する全ベクトルデータに対し、同じく直前にステップS415で記録したパターン識別用パラメータ(クラス分離ベクトル、及び識別閾値)を用いて実際に識別を行う。
そして、識別に成功したパターンに対しては、そのパターンの重みにexp(−α)を乗じ、失敗したパターンに対しては、そのパターンの重みにexp(α)を乗じる。ここで、識別に成功したパターンとは、顔パターンであって、正しく顔パターンのクラスであると分類された学習パターンと、非顔パターンであって、正しく非顔パターンであると分類された学習パターンである。また、失敗したパターンとは、顔パターンであるのに、非顔パターンのクラスであると分類された学習パターンと、非顔パターンであるのに、顔パターンであると分類された学習パターンである。前式中のαは、直前のステップS415において求めた識別スコアである。上記のような重み更新後、データベース403内の、全ての学習パターンが持つ重みの総和が1となるように正規化を行う。
最後に、ステップS417で、ステップS415で記録したパラメータの個数が、予め定めた個数に達しているかどうかを判定して、達していれば処理を終了する。達していなければ、矩形パターン選択履歴、学習パターンの選択履歴、データベース406のベクトル化データをクリアして、ステップS401に戻り、もう1度最初から矩形パターンを選択していくようにする。以上の手法により、パターン識別用のパラメータとして、所定個数の矩形パターンと、その矩形パターンに対応したそれぞれのパターン識別用パラメータを、各弱判別方法に用いるパラメータとして得ることができる。
本実施形態においても、第1の実施形態と同様に、重みつきのパターンを利用した線形判別分析法を用いてクラス分離ベクトルを求めているが、本発明はこれに限るものではなく、その他の手法を用いても構わない。
続いて、上記手法により求めた弱判別方法のパターン識別用のパラメータを用いた、複数の弱判別方法の組み合わせによるパターン識別方法を利用した、画像中の顔を検出する顔検出方法について、図5を用いて説明する。
まず、ステップS501で、顔検出を行う画像を入力する。この画像は、上記説明したパターン識別用パラメータ学習時と同様のグレースケール画像である。グレースケール画像以外の画像に対して顔検出を行いたい場合は、まず学習時と同様のグレースケール画像に変換してから入力するようにすれば良い。
次に、ステップS502において、第1の実施形態の顔検出方法で説明したインテグラルイメージを生成すると共に、2乗のインテグラルイメージも生成する。2乗のインテグラルイメージとは、画像始点(例えば画像の左上の画素)から、注目画素までを対角線とする矩形領域内の、各画素値の2乗の総和を、注目画素の画素値として表現するものである。これを利用すると、高速に任意の矩形領域内の、各画素値の2乗の総和を求めることができ、この2乗のインテグラルイメージと、通常のインテグラルイメージを用いることにより、高速に任意の矩形領域の標準偏差を求めることができる。
次いで、ステップS503で、画像中の所定の点の中から、点を1つ定め、それを中心とする矩形領域を、生成したインテグラルイメージから切り出す。上記所定の点は、画像の全画素としても良いが、例えば1画素おきというように、粗くサンプリングするようにしても良い。切り出すサイズは任意だが、本実施形態では、学習時に利用した学習パターンと同じサイズになるように切り出しを行う。ここで、1つの点を定めた段階で、その点に顔が存在するかの判定に用いるスコアを0に設定する。
次に、ステップS504において、ステップS501で入力した画像の、ステップS503で切り出した矩形領域に対応する領域内の平均画素値、及び標準偏差を算出する。平均は、ステップS502で生成したインテグラルイメージを用いて、矩形領域内の画素値の総和を求めて、それを矩形領域の面積で割ることによって求められる。標準偏差は、ステップS502で生成した2乗のインテグラルイメージを用いて矩形領域内の各画素値の2乗の総和を求め、それを矩形領域の面積で割ったものから、先に求めた平均の2乗を引くことで矩形領域内の画素の分散を求め、その分散の平方根を算出することで求められる。
次いで、ステップS505では、識別用パラメータ群が保持されたデータベース506から、所定の順番で矩形パターンを1つ選択する。データベース506には、上記説明したパターン識別用パラメータ学習時の、ステップS415の学習結果記録において記録した順の通りに、矩形パターンと、それに対応する識別用パラメータを予め保持しておき、ステップS505では、その順に従って矩形パターンを1つ選択する。
ステップS507では、ステップS503で切り出したインテグラルイメージを用いて、ステップS505で選択した矩形パターンに基づく矩形領域の総和を抽出する。
次に、ステップS508において、ステップS507で抽出した矩形領域の総和と、ステップS504で求めた平均と標準偏差とを用い、それぞれの矩形領域の総和から、その矩形領域の面積に平均を乗じたものを引く。その値に標準偏差の逆数を乗じることによって正規化を行い、ステップS505で選択した矩形パターンにおける、上記説明したパターン識別用パラメータ学習時のステップS405と同じ順序で並べたベクトルを生成する。
そして、ステップS509において、ステップS508で生成したベクトルと、学習により予め生成してデータベース506に保持された、ステップS505で選択した矩形パターンに対応するクラス分離ベクトルとの内積を演算する。ここで用いるクラス分離ベクトルは、予め所定値以上を顔パターンと分類するのが好適な方向になるようにしたものを用いる。ここで、ステップS505で選択された矩形パターンが1つの矩形で構成され、上記説明したパターン識別用パラメータ学習時にステップS409のクラス分散共分散行列算出を省略した場合を考える。その場合は、ステップS411のパラメータ算出において求めた符号を、ステップS508で生成したベクトル(スカラー)に乗じたものを、上記内積値とみなすようにすればよい。
続いてステップS510では、ステップS509で求めた内積値と、学習時に予め求めてデータベース506に保持しておいた、ステップS505で選択した矩形パターンに対応する識別閾値との比較を行う。求めた内積値が識別閾値よりも高い場合には、ステップS503で定めた点に顔が存在する可能性が高いと判定する。ここで、処理の高速化のために、ステップS509で求めた内積値に基づいて、ステップS503で定めた点に顔が存在しないと決定して処理を打ち切ってしまってもよい。
その場合、予めデータベース506に、ステップS505で選択した矩形パターンに対応する打ち切り閾値を保持しておく。そして、ステップS509で求めた内積値が、その打ち切り閾値以下であるならば、処理を打ち切り、ステップS514に進むようにする。この打ち切り閾値は、上記説明したパターン識別用パラメータ学習時のステップS411のパラメータ算出において、識別閾値とは別に求めておく。例えば学習パターンの内、顔パターンであるのに、非顔パターンのクラスであるとみなされて処理を打ち切られてしまう割合が、所定値以下になるといった条件に基づいて求めておくようにすればよい。
次のステップS511では、ステップS510において顔が存在する可能性が高いと判定された場合は、ステップS503で0に設定したスコアに、予めデータベース506に保持しておいた、ステップS505で選択した矩形パターンに対応する識別スコアを加算する。逆に、ステップS510で顔が存在する可能性が高いと判定されなかった場合は、識別スコアを減算する。ここで、更なる処理の高速化のために、現状のスコアに基づいて、ステップS503で定めた点に顔が存在しないと決定して処理を打ち切ってしまってもよい。
その場合、予めデータベース506に、ステップS505で選択した矩形パターンによるスコアリング終了後に対応するスコア打ち切り閾値を保持しておく。現状のスコアがそのスコア打ち切り閾値以下ならば、処理を打ち切り、ステップS514に進むようにする。このスコア打ち切り閾値は、上記説明したパターン識別用パラメータ学習時に、データベース403に保持してある学習パターンに、それぞれスコア(初期状態では0)を設定しておく。ステップS416での学習パターンの重み更新において、ステップS511と同様にスコアに識別スコアを加算もしくは減算していき、そのスコアを用いて、例えば上記打ち切り閾値と同様の条件に基づいて求めるようにすればよい。本実施形態では、現状のスコアに基づいて処理の打ち切りを行うが、非特許文献1で開示されているように、数個分のスコアの累積値に基づいて処理の打ち切りを行うようにしてもよい。
次に、ステップS512では、ステップS505において、データベース506に保持されている、全ての矩形パターンを選択したかどうかを判定する。全ての矩形パターンを選択したのであれば、ステップS513に進み、そうでなければステップS505に戻り、新たな矩形パターンを、所定の順で1つ選択していくという処理を繰り返す。
ステップS513では、ステップS511で加算もしくは減算していったスコアが所定値以上であれば、ステップS503で定めた点に顔が存在すると判定して、その結果を記録しておく。判定に用いる所定値としては通常0を用いるが、求める顔検出方法の性能に応じて適切に定めればよい。
そしてステップS514では、ステップS503において、所定の点の全てを中心とする画像切り出しを行ったかどうかを判定して、行ったのであれば処理を終了する。そうでなければステップS503に戻り、新たな所定の点を1つ定め、画像切り出しを行うという処理を繰り返す。
上記説明した処理により、入力された画像内の顔を検出することができる。この処理でも、第1の実施形態と同じように、学習時に利用した顔パターンと同じような向き、サイズの顔を検出することになるが、異なるサイズや方向の顔を検出したいような場合は、第1の実施形態で述べたような手法を用いればよい。
以上、第2の実施の形態は、上記第1の実施形態の変形として、第1の実施形態と同様に、入力データとして2次元画像データを用いた2クラス分類のパターン識別を行う。その際、ブースティング手法を用いて構築する複数の弱判別方法の組み合わせによる、さらに高精度なパターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法の例として説明した。
(第3の実施の形態)
第3の実施形態は、上記第2の実施形態の変形として、第2の実施形態と同様に、入力データとして2次元画像データを用いた2クラス分類のパターン識別を行う。その際に、ブースティング手法を用いて構築する複数の弱判別方法の組み合わせによる、さらに高精度なパターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を示す。
第2の実施形態では、抽出した総和により張られる特徴空間において、線形識別を行うようにしていた。これに対し、本実施形態では、抽出した総和により張られる特徴空間内の点を、非線形変換により新たな特徴空間に写像し、その新たな特徴空間において線形識別を行う、いわゆる非線形識別を行う。そのような例として、サポートベクターマシン(以下、SVM)を用いた例を説明する(SVMの詳細については、非特許文献5を参照)。
図6に、第3の実施形態におけるパターン識別用パラメータ学習方法の処理の流れを示す。以下、このパターン識別用パラメータ学習方法について図6を用いて説明する。
ステップS601〜607の処理と、第2の実施形態におけるステップS401〜S407までの処理とは、ステップS605とステップS405とでベクトル化が異なる以外は、同様の処理である。よってステップS605のベクトル化以外の処理の説明は省略する。なお、本実施形態では、第2の実施形態において説明した、累積スコアによる演算の打ち切りに用いるスコア打ち切り閾値も同時に学習する。そのため、データベース603に保持してある全学習パターンに累積スコアを持たせ、最初にそれを0に初期化しておくようにする。
ステップS605では、第2の実施形態のステップS405と同様に、ステップS604で求めたそれぞれの矩形領域の総和を用いてベクトルを生成する。それをステップS601で選択した矩形パターンに対応するベクトルデータとして、データベース606に保持する。ただし、第2の実施形態では、学習パターンの輝度値の平均と標準偏差のみを用いて、求めたそれぞれの矩形領域の総和を正規化してからベクトル化するようにしていたが、ここではさらに、それらを各矩形領域の面積で割ってからベクトル化するようにする。
次に、ステップS608では、データベース606に保持された、ステップS601で選択した矩形パターンに対応する、顔パターンと非顔パターンとのそれぞれから得られたベクトルデータ群を分離するように、SVMの学習を行う。
本実施形態では、SVMにおいて、ガウシアンカーネルexp(−|x−x/σ)を用いた非線形SVMを利用する。ガウシアンカーネルを用いた非線形SVMの学習では、ステップS601で選択した矩形パターンに対応するベクトルデータと同次元の、少なくとも1つのサポートベクターxと、それに対応する係数a、及びバイアス値bが得られる。即ち、ステップS601で選択された矩形パターンを構成する矩形領域の個数分の次元数となる。
通常のSVMでは、n個のサポートベクターが得られた場合には、識別時にΣ[a・exp(−|x−x/σ)]+b(Σは1からnまでの総和を意味する)を算出し、その符号に応じて2値的な判定を行う。しかしながら、本実施形態では、Σ[a・exp(−|x−x/σ)]の値に応じた連続的な確信度を出力する手法を用いるため、ここで得られるバイアス値bは無視しても構わない。
また、SVMの学習時に必要となる、ソフトマージンの程度を決める定数や、ガウシアンカーネルのσに関しては、SVMの学習を行うベクトルデータ群のレンジや、問題の複雑さに応じて適当に定めてやればよい。この学習では、第2の実施形態での学習のように、学習パターンが持つ重みを、学習に直接的に用いることが困難である。そこで、学習時に学習パターンの重みを反映させたい場合は、例えばその重みに比例する確率に応じて、SVM学習用のデータとして利用するか否かを決めるというようにすればよい。
次のステップS609では、第2の実施形態の顔検出方法におけるステップS510の閾値判定において説明した打ち切り閾値と同様の、後述の顔検出方法において処理の高速化を行うために用いる打ち切り閾値の算出を行う。具体的には、データベース606に保持された、ステップS601で選択した矩形パターンに対応する全ベクトルデータxを対象とする。
これに対して、ステップS608で得られた、n個のサポートベクターxと、それに対応する係数a、及び学習時に用いたパラメータσを用いて、Σ[a・exp(−|x−x/σ)]を算出する。この値を中間出力値と呼ぶ。そして、全ベクトルデータから得られた中間出力値に基づいて、この中間出力値が所定値以下であるならば、そのパターンを非顔パターンのクラスであるとみなして処理を打ち切るための、打ち切り閾値を求める。
この打ち切り閾値は、第2の実施形態におけるステップS510で説明した打ち切り閾値と同様に求められる。例えば、学習パターンの内、顔パターンであるのに非顔パターンのクラスであるとみなされて、処理を打ち切られてしまう割合が所定値以下であるといった条件に基づいて求めればよい。
本実施形態では、上記条件の他に、学習パターンの内、非顔パターンであって、正しく非顔パターンであるとみなされ、処理が打ち切られる割合が第2の所定値以上であるという第2の条件も同時に用いる。そして、両方の条件を同時に満たし、第2の条件における打ち切られる割合が最も大きい値を探索して決定するようにしている。もし両方の条件を同時に満たす値が存在しない場合は、識別時に打ち切りを行わないようにすればよい。
ステップS610では、ステップS608により得られたパラメータを用いて、予測誤差を算出しそれを記録しておく。具体的には、ステップS609と同様に、まずデータベース606に保持された、ステップS601で選択した矩形パターンに対応する全ベクトルデータxを対象とする。これに対して、ステップS608において得られた、n個のサポートベクターxと、それに対応する係数a、及び学習時に用いたパラメータσを用いて、全中間出力値を算出する。
そして次に、この全中間出力値と各学習パターンの重みを用い、クラスごとに、重み付ヒストグラムを作成する。このクラスごとの重み付ヒストグラムは、1つのビンに対応する中間出力値範囲内である当該クラスのパターンが持つそれぞれの重みを累積したものが、そのビンの値として表現されたものである。そして、作成したクラスごとの重み付ヒストグラムを用いて、予測誤差を算出し、それを記録しておく。予測誤差は、作成したクラスごとの重み付ヒストグラムの、k番目のビン(ビンに対応する中間出力値範囲は、クラス間で同一でなければならない)の値をSk,c(cはクラスを表す)、全ビン数をnとした時、2・Σ[(Sk,Face・Sk,NonFace1/2]として求められる。
そして、ステップS611では、第2の実施形態において説明したステップS413と同様に、ステップS601で所定の矩形パターンの全てを選択したかどうかを判定する。全てを選択していなければ、学習パターンの選択履歴をクリアして、ステップS601の矩形パターン選択に戻り、新たな矩形パターンを選択していくようにする。所定の矩形パターンが全て選択された場合、ステップS612に進む。
ステップS612では、ステップS610において記録した、ステップS601で選択した全ての矩形パターンごとの予測誤差から、予測誤差が最小である矩形パターンを1つ選択する。
そして、ステップS613において、パターン識別用のパラメータを、弱判別方法に用いるパラメータとして順番に記録していく。まず、ステップS612で選択された矩形パターンと、その矩形パターン選択時に、ステップS608で得られたサポートベクターxと、それに対応する係数a、及び学習時に用いたパラメータσを記録する。更に、ステップS609で得られた打ち切り閾値、ステップS610で生成した、クラスごとの重み付ヒストグラムから生成する識別スコアテーブルTを記録する。
識別スコアテーブルTは、中間出力値が、クラスごとの重み付ヒストグラムのビンに対応する中間出力値範囲である時に、各クラスの重み付ヒストグラムの、そのビンの値に対して、出力値を出力するテーブルである。ビンの値、Si,Face、及びSi,NonFaceを用いて、出力値α=1/2・ln{(Si,Face+ε)/(Si,NonFace+ε)}という値を出力する。
次に、ステップS614において、データベース603に保持されている学習パターンが持つ重みを更新する。また同時に、第2の実施形態の顔検出方法において説明した、スコアによる演算打ち切りのための、スコア打ち切り閾値を算出する。そのため、各学習パターンが持つ累積スコアの更新を行い、それに基づいて、スコア打ち切り閾値の算出も行う。
重みの更新では、データベース606に保持された、直前にステップS613の学習結果記録において記録された矩形パターンに対応する全ベクトルデータを用いる。これに対し、同じく直前にステップS613の学習結果記録において記録したパターン識別用パラメータ(サポートベクターxkと、それに対応する係数ak、及び学習時に用いたパラメータσ、識別スコアテーブルT)を用いる。まず中間出力値であるΣ[a・exp(−|x−x/σ)]を算出し、その値を基に、識別スコアテーブルTを参照して出力値αを求める。
そして、その学習パターンが顔パターンであれば、その重みにexp(−α)を乗じ、非顔パターンであればexp(α)を乗じる。累積スコアの更新では、上記求めた出力値αを、学習パターンの持つ累積スコアに加算していく。スコア打ち切り閾値の算出は、ステップS609と同様の条件に基づいて、条件を満たすスコア打ち切り閾値を検索し、条件を満たすスコア打ち切り閾値が存在するならば、その値をステップS613で記録したパターン識別用パラメータに追加して記録するようにする。ここでも第2の実施形態において説明したのと同様に、上記のような重み更新後、データベース603の学習パターン内の、全ての学習パターンが持つ重みの総和が1となるように正規化を行う。
最後に、ステップS615では、第2の実施形態のステップS417と同様に、ステップS613で、弱判別方法のパラメータを記録した個数が、予め定めた所定個数に達しているかどうかを判定する。所定個数に達していれば処理を終了する。達していなければ、矩形パターン選択履歴、学習パターンの選択履歴、データベース606のベクトル化データをクリアして、ステップS401に戻り、もう1度最初から矩形パターンを選択していくようにする。
以上の手法により、パターン識別用のパラメータとして、所定個数の矩形パターンと、その矩形パターンに対応したそれぞれのパターン識別用パラメータを、各弱判別方法のパラメータとして得ることができる。
このように、本手法では、第1、第2の実施形態において説明したような線形識別の手法ではなく、非線形識別の手法にも拡張可能である。本実施形態では、ガウシアンカーネルを用いた非線形SVMによる手法を説明したが、これに限るものではなく、例えば多項式カーネルを利用したSVMや、非線形判別分析といった、その他の非線形手法や、k最近傍法による手法にも適用可能である。
続いて、上記手法により求めた弱判別方法のパターン識別用のパラメータを用いた、複数の弱判別方法の組み合わせによるパターン識別方法を利用した、画像中の顔を検出する顔検出方法について、図7を用いて説明する。
ステップS701〜707は、第2の実施形態の顔検出方法において説明した、ステップS501〜507と同様の処理であるので説明を省略する。
ステップS708では、ステップS707で抽出した矩形領域の総和と、ステップS704で求めた平均と標準偏差を用い、それぞれの矩形領域の総和から、その矩形領域の面積に平均を乗じたものを引き、それに標準偏差の逆数を乗じることによって正規化を行う。その値をさらに矩形領域の面積で割ったものを、ステップS705で選択した矩形パターンにおける、上記説明したパターン識別用パラメータ学習時のステップS605と同じ順序で並べたベクトルを生成する。
そして、ステップS709において、中間出力値Σ[a・exp(−|x−x/σ)]を算出する。ここで、ステップS708で生成したベクトルと、学習により予め生成して保持しておいた、ステップS705で選択した矩形パターンに対応するサポートベクターxと、それに対応する係数a、及び学習時に用いたパラメータσを用いる。
続いて、ステップS710では、ステップS709で求めた中間出力値と、学習時に予め求めておき、データベース706に保持しておいた、ステップS705で選択した矩形パターンに対応する打ち切り閾値との比較を行う。求めた中間出力値が打ち切り閾値よりも低い場合に、ステップS703で定めた点に顔が存在しないと決定して処理を打ち切り、ステップS714に進むようにする。
次のステップS711では、ステップS709で求めた中間出力値と、データベース706に保持しておいた、ステップS705で選択した矩形パターンに対応する識別スコアテーブルTを用いて出力値αを求める。そして、その値αを、ステップS703で0に設定したスコアに加算する。また、この加算を行った後のスコアと、学習時に予め求めておいた、ステップS705で選択した矩形パターンによるスコアリング終了時に対応するスコア打ち切り閾値との比較を行う。その結果、加算を行った後のスコアが、スコア打ち切り閾値よりも低い場合に、ステップS703で定めた点に顔が存在しないと決定して処理を打ち切り、ステップS714に進むようにする。
ステップS712から、ステップS714までの処理は、第2の実施形態の顔検出方法において説明した、ステップS512から、ステップS514までの処理と同様の処理であるので説明を省略する。
上記説明した処理により、入力された画像内の顔を検出することができる。この処理でも、第1の実施形態における顔検出方法と同じように、学習時に利用した顔パターンと同じような向き、サイズの顔を検出することになる。異なるサイズや方向の顔を検出したいような場合は、第1の実施形態で述べたような手法を用いればよい。
以上、第3の実施の形態は、上記第2の実施形態の変形として、第2の実施形態と同様に、入力データとして2次元画像データを用いた2クラス分類のパターン識別する例を説明した。その際、ブースティング手法を用いて構築する複数の非線形識別を行う弱判別方法の組み合わせによる、さらに高精度なパターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を示した。
(第4の実施の形態)
第4の実施形態では、上記第2の実施形態の変形として、入力データとして2次元画像データを用い、その画像データが、所定のカテゴリの何れに属するか、若しくは何れにも属さないか識別する。つまり入力された画像データを、複数の所定のカテゴリであるというクラス、もしくは何れのカテゴリでもないクラスに分類する、多クラス分類のパターン識別を行う。そこで、ブースティング手法を用いて構築する複数の弱判別方法の組み合わせによる、パターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法を示す。
複数の所定のカテゴリとしては、第3の実施形態までと同様の人物の顔や、その他、車両・草花といった様々なものが考えられるが、本実施形態では、ある個人の顔を1つのカテゴリとみなし、所定の登録人数(例えば3人)分のカテゴリを用いた場合の例を示す。
図8に、第4の実施形態におけるパターン識別用パラメータ学習方法の処理の流れを示す。以下、このパターン識別用パラメータ学習方法について図8を用いて説明する。
まず、ステップS801において、所定の領域パターンの中から、1つの領域パターンを選択する。第3の実施形態まででは、パターン識別をコンピュータ上で高速に実行するために、いくつかの矩形領域から構成されている矩形パターンを用いた。この領域パターン、つまり総和を抽出する、いくつかの所定部分の組み合わせとしては、例えば所定同心円状上のデータの総和を求めるといった、その他の任意の部分から構成されているものであっても構わない。
本実施形態では、図10に示すように、3つの領域1001〜1003から構成される領域パターンを、予め複数用意しておき、ここでその中から1つを選択して用いるようにする。ここで、領域1001は任意のサイズ・位置の矩形領域であり、領域1002及び領域1003は、任意のサイズ・位置の円形領域(2つの領域は同一の領域にはならない)である。
次のステップS802では、複数の学習パターンが保持されたデータベース803から、学習パターンを入力する。データベース803には、登録者であるA、B、Cの3名の、それぞれ複数の顔パターンと、登録者でない人物の複数の顔パターンを、そのラベル(A、B、Cの何れであるか、もしくは登録者でないという情報)、及びパターンの重みと共に予め保持しておく。パターンの重みは、第2の実施形態と同様に、初期状態の重みを設定しておく。
この初期状態の重みの設定では、A、B、Cそれぞれの学習パターンの重みを同一にしておくことが好ましい。本実施形態でも、データベース803に保持しておく顔パターンは、グレースケール画像であり、各画素値が輝度値として表現されたものである。また、全顔パターンは、顔の向きやサイズをある程度正規化しておき、一定の画像サイズにして保持しておく。
続いて、ステップS804において、ステップS802で入力した学習パターンから、ステップS801で選択した領域パターンに基づき、その領域パターンを構成する各領域内の、輝度値の総和を抽出する。
次に、ステップS805において、ステップS804で求めたそれぞれの領域の総和を単純に並べたベクトルを生成し、そのベクトルを、ステップS801で選択した領域パターンに対応するベクトルデータとして、データベース806に保持する。本実施形態では、第2,3の実施形態のような、学習パターンの平均値や標準偏差を用いた総和の正規化を行わないが、正規化を行ってからベクトル化するようにしても構わない。
ステップS807では、データベース803に保持されている学習パターンの全てを選択したかどうかを判定して、全てを選択していなければ、ステップS802に戻り、新たな学習パターンを、データベース803から選択していくようにする。全ての学習パターンが選択された場合、ステップS808に進む。
ステップS808では、データベース806に保持された、ステップS801で選択した領域パターンに対応するベクトルデータと、そのラベルとを用いて、ニューラルネットワーク(以下、NN)の学習を行う。NNとしては、多クラス識別が可能であればどのようなタイプのネットワークでも構わないが、本実施形態では、図11に示すような、3層フィードフォワード型であるNNを用いる。
このNNは、入力層1101の入力ノード1102が3つ(領域パターンを構成する領域数によって決まる)、出力層1105の出力ノード1106も3つ(分類すべきカテゴリ数によって決まる)である。中間層1103の中間ノード1104の数は、予め所定の個数にしておいても良いが、問題に応じて実験的に適切な個数にするのが好ましい。
図11に示すように中間ノード1104は入力ノード1102に全結合しており、出力ノード1106も中間ノード1104に全結合している。NNの学習では、入力層1101の3つのノード1102に、データベース806に保持された、ステップS801で選択した領域パターンに対応するベクトルデータの、それぞれの要素の値を入力する。そして、入力したベクトルデータのラベルに対応する出力ノード1106の出力が1、それ以外の出力ノード1106の出力は0となるように、誤差逆伝播法を用いて、いわゆる教師有り学習を繰り返し行う。
ちなみに、A、B、C何れのカテゴリにも属さないベクトルデータの場合は、3つの出力ノードの出力が、全て0になるような教師有り学習をすればよい(多層フィードフォワード型NNと、誤差逆伝播法等の、NNの教師有り学習方法に関しては、S. Haykin, “Neural Networks A Comprehensive Foundation 2nd Edition”,Prentice Hall,pp.156−255,July 1998を参照)。第2の実施形態等と同様に、学習パターンが持つ重みを学習結果に反映させるためには、学習の際にパターンを提示する確率を、学習パターンが持つ重みに比例した確率となるようにしてやればよい。
次のステップS809では、ステップS808での学習により得られたNNのパラメータを用いて、実際にNNでの演算を行い、その結果から得られる予測誤差を算出しそれを記録しておく。具体的には、まずデータベース806に保持された、ステップS801で選択した領域パターンに対応する全ベクトルデータxに対して、ステップS808で得られたNNのパラメータを用いて、実際にNNでの演算を行う。そして、NNの全出力結果(3つの出力ノードの出力値)を算出する。
次に、この全出力結果を用い、それぞれの判定閾値(出力値がこの値以上であれば、当該ノードに対応するクラスである確率が高いと判定する閾値)を細かく振りながら、実際の判定を行っていく。実際の判定では、まずそれぞれの出力ノードの出力値と判定閾値とを比較する。もし出力値が判定閾値を超えたノードが無い場合は、何れのクラスにも属さないと判定する。また、出力値が判定閾値を超えたノードが1つである場合は、そのノードに対応するクラスであると判定する。そして、出力値が判定閾値を超えたノードが多数である場合は、それらの内で最大の出力値であるノードに対応するクラスであると判定する。最大の出力値の比較においては、出力値の絶対値で比較してもよいし、判定閾値からの出力値の差で比較してもよい。
この判定により、誤った判定をしてしまった(Aのクラスに属するパターンであるのに、A以外であると判定してしまった等)学習パターンの重みを、予測誤差として累積していく。そして、上記予測誤差を、様々な判定閾値の組み合わせにおいて算出し、得られた予測誤差が最小となる3つの判定閾値と、その時の予測誤差を記録しておく。
そして、ステップS810では、第2の実施形態におけるステップS413と同様に、ステップS801で所定の領域パターンの全てを選択したかどうかを判定する。全てを選択していなければ、学習パターンの選択履歴をクリアして、ステップS801に戻り、新たな領域パターンを選択していくようにする。所定の全ての領域パターンが選択された場合、ステップS811に進む。
ステップS811では、ステップS809で記録した、ステップS801で選択した全ての領域パターンごとの予測誤差から、予測誤差が最小である領域パターンを1つ選択する。
そして、ステップS812において、ステップS811で選択された最小誤差領域パターンと、その領域パターン選択時にステップS808で得られたNNのパラメータを、弱判別方法のパラメータとして順番に記録していく。ここで、NNのパラメータは、NNの結合係数と、中間層のノード数である。更に、ステップS809で得られた各判定閾値と、予測誤差から算出する識別スコアαを、弱判別方法のパラメータとして順番に記録していく。識別スコアαは、第2の実施形態と同様に、予測誤差をεとした時、α=1/2×ln{(1−ε)/ε}として求められる。
ステップS813では、データベース803に保持されている学習パターンが持つ重みを更新する。重みの更新では、データベース806に保持された、直前のステップS812で記録された最小誤差領域パターンに対応する全ベクトルデータを対象とする。これに対し、同じく直前のステップS812の学習結果記録において記録したパターン識別用パラメータ(NNの結合係数、中間層のノード数、各判定閾値)を用い、実際にNNによる判定を行う。そして、その学習パターンが正しい識別をされたなら、識別スコアαを用いて、その重みにexp(−α)を乗じ、誤った識別をされたならexp(α)を乗じる。
最後に、ステップS814では、第2の実施形態のステップS417と同様に、ステップS812で弱判別方法のパラメータを記録した個数が、予め定めた所定個数に達しているかどうかを判定する。所定個数に達していれば処理を終了し、達していなければ、領域パターン選択履歴、学習パターンの選択履歴、データベース806内のベクトル化データをクリアして、ステップS801に戻り、もう1度最初から矩形パターンを選択していくようにする。以上の手法により、パターン識別用のパラメータとして、所定個数の領域パターンと、その領域パターンに対応したそれぞれのパターン識別用パラメータを、各弱判別方法のパラメータとして得ることができる。
続いて、上記手法により求めた弱判別方法のパターン識別用のパラメータを用いた、複数の弱判別方法の組み合わせによるパターン識別方法を利用した個人識別方法について、図9を用いて説明する。この個人識別方法によれば、入力された顔画像に対し、それが登録されたA、B、Cの何れの人物であるのか、若しくは登録された人物ではないのかを検出する。
まず、ステップS901において、識別処理対象となる顔画像として1つの顔パターンを入力する。この時、識別対象となるクラス(ここでは、A、B、Cの3クラス)のそれぞれのスコアを0に初期化しておく。ここで入力する画像は、上記説明したパターン識別用パラメータ学習時と同様のグレースケール画像であり、予め学習時と同じ大きさに正規化されたものである。グレースケール画像以外の顔画像による個人識別を行いたい場合は、まず学習時と同様の画像サイズであるグレースケール画像に変換してから入力するようにすればよい。
続いて、ステップS902では、識別用パラメータ群データベース903から、所定の順番で領域パターンを1つ選択する。データベース903には、上記説明したパターン識別用パラメータ学習時の、ステップS812で記録した順の通りに、領域パターンと、それに対応する識別用パラメータとを予め保持しておく。ステップS902では、その順に従って領域パターンを1つ選択する。
ステップS904では、ステップS901の画像入力で入力された画像の、ステップS902の領域パターン選択において選択した領域パターンに基づく領域の輝度値の総和を抽出する。
次に、ステップS905において、ステップS904で抽出した各領域の総和を、上記説明したパターン識別用パラメータ学習時のステップS805と同じ順序で並べたベクトルを生成する。
そして、ステップS906において、出力層の全ノードの出力値を演算する。その際、ステップS905で生成したベクトルと、学習により予め生成して、データベース903に保持しておいた、ステップS902で選択した領域パターンに対応するNNの結合係数と、その中間層のノード数であるNNとを用いる。
続いて、ステップS907では、まずステップS906で求めた全ノードの出力値と、学習時に予め求めておいた、ステップS902で選択した領域パターンに対応する、各出力ノードの判別閾値との比較を行う。上記説明したパターン識別用パラメータ学習時のステップS809の予測誤差記録で説明したのと同様の判定を行う。
そして、判定されたクラスのスコアに、予めデータベース903に保持しておいた、ステップS902で選択した領域パターンに対応する識別スコアを加算し、判定されなかったクラスのスコアからは、識別スコアを減算していく。何れのクラスでもないと判定された場合は、全てのスコアから、識別スコアを減算するようにする。
次に、ステップS908では、ステップS902において、データベース903に保持されている、全ての領域パターンを選択したかどうかを判定して、全ての領域パターンを選択したのであれば、ステップS909の結果出力に進む。そうでなければステップS902に戻り、新たな領域パターンを、所定の順で1つ選択していくという処理を繰り返す。
ステップS909では、ステップS907で加算もしくは減算していった、それぞれのクラスのスコアを用い、ステップS901で入力された顔パターンがどのクラスに属するものであるのかを判定し、その結果を出力する。この判定では、まずそれぞれのスコアの内、最大の出力値であるクラスの出力値を1つ選択する。そして、そのスコアが所定値以上であれば、当該クラスに属すると判定し、そうでなければ、何れのクラスにも属さないと判定する。所定値は、通常0をその値として用いるが、求める顔画像による個人識別方法の性能に応じて適切に定めればよい。
以上、第4の実施の形態は、上記第2の実施形態の変形として、入力データとして2次元画像データを用い、その画像データが、所定のカテゴリの何れに属するか、若しくは何れにも属さないかを識別する。つまり入力された画像データを、複数の所定のカテゴリであるというクラス、もしくは何れのカテゴリでもないクラスに分類する、多クラス分類のパターン識別を行う。このパターン識別において、ブースティング手法を用いて構築する複数のNNによる識別を行う弱判別方法の組み合わせによる、パターン識別に用いるパラメータ学習方法、及びそれを用いたパターン識別方法の例として説明した。
以上説明した第4の実施形態のように、多クラス分類のパターン識別において、多クラスの識別方法を複数の弱判別方法の1つとして用いることにより、多クラス分類のパターン識別を実現してもよい。また、第2の実施形態や、第3の実施形態に示したような、2クラス識別のパターン識別方法を複数用いることにより、多クラスの識別を行っても構わない。
また、上記第2から第4の実施形態においては、同一の弱判別方法を複数用いたパターン識別方法を説明したが、それぞれの弱判別方法が混載するような場合でも実現可能である。また、これとは異なる弱判別方法との組み合わせにおいても実現可能である。
図12は、上述した各実施形態に係るパラメータ学習装置およびパターン識別装置のハードウェア構成を示すブロック図である。
同図において、CPU1201は、フローチャートにつき説明した処理手順を含む各種プログラムを実行し、システムバス1208により接続された装置各部を制御する。RAM1202は、データやプログラムを一時記憶する。ROM1203は、固定的なデータやプログラムを記憶する。キーボード1204は、文字を入力したり、機能を選択するためのキーを備えている。更に画面上の位置を指示するためのポインティングデバイスとしてマウスが備えられている。
ディスプレイ1205は、識別対象のパターンやその識別結果を表示したり、ユーザインターフェース(UI)を提供する。ハードディスクドライブ(HDD)1206は、プログラムやデータを永続的に記憶する装置である。更にDVD、CD、FDなどの記憶媒体を用いる記憶装置を設けてもよい。通信I/F1207は、LANやインターネットなどを経由して装置外部と通信するためのインタフェースである。システムバス1208は、上述した装置各部を接続し、装置間でデータやアドレス、制御信号を送受信する媒体として利用される。
フローチャートにつき説明した処理手順を含む各種プログラムは、ROM1203に記憶されていてもよいし、HDD1206からRAM1202へ、処理に先立ってあるいは処理の実行中に必要に応じてロードされるようにしてもよい。
また、識別対象パターンは、HDD1206などの記憶装置から読み出したり、通信I/F1207を介して外部の撮像装置から受信するなどして、得ることができる。
なお、本発明は、複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体が供給されたシステムあるいは装置のコンピュータが、そのプログラムコードを読み出し実行することでも達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる場合がある。そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことで前述した実施形態の機能が実現される場合も本発明に含まれる。
第1の実施形態におけるパターン識別用パラメータ学習処理を示すフローチャートである。 総和抽出範囲の例を示す図である。 第1の実施形態における顔検出処理を示すフローチャートである。 第2の実施形態におけるパターン識別用パラメータ学習処理を示すフローチャートである。 第2の実施形態における顔検出処理を示すフローチャートである。 第3の実施形態におけるパターン識別用パラメータ学習処理を示すフローチャートである。 第3の実施形態における顔検出処理を示すフローチャートである。 第4の実施形態におけるパターン識別用パラメータ学習処理を示すフローチャートである。 第4の実施形態における顔検出処理を示すフローチャートである。 領域パターンの例を示す図である。 ニューラルネットワークの例を示す図である。 パラメータ学習装置およびパターン識別装置のハードウェア構成を示すブロック図である。
符号の説明
102 学習パターンのデータベース
105 ベクトル化データのデータベース
307 識別用パラメータのデータベース
403 学習パターンのデータベース
406 ベクトル化データのデータベース
506 識別用パラメータのデータベース
603 学習パターンのデータベース
606 ベクトル化データのデータベース
706 識別用パラメータのデータベース
803 学習パターンのデータベース
806 ベクトル化データのデータベース
903 識別用パラメータのデータベース
1201 CPU
1202 RAM
1203 ROM
1204 キーボード
1205 ディスプレイ
1206 HDD
1207 通信I/F
1208 バス

Claims (18)

  1. 入力データを複数のクラスに分類するためのパラメータ学習方法であって、
    それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力ステップと、
    前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出ステップと、
    前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像ステップと、
    前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習ステップと
    を有することを特徴とするパラメータ学習方法。
  2. 前記パラメータは、前記k次元特徴空間における線形識別関数及びクラス間境界を規定する値を含むことを特徴とする請求項1に記載のパラメータ学習方法。
  3. 前記学習ステップにおいて、前記学習データの持つ重みに応じた学習を行うことを特徴とする請求項1に記載のパラメータ学習方法。
  4. 前記重みを更新して前記学習ステップを繰り返し実行することで、複数のパラメータを得ることを特徴とする請求項3に記載のパラメータ学習方法。
  5. 前記写像ステップにおいて、前記k個の総和値を、前記学習データの統計量または前記k個の部分のそれぞれの大きさの、少なくとも1つに基づいて正規化することを特徴とする請求項1に記載のパラメータ学習方法。
  6. 前記学習ステップは、
    前記k次元特徴空間に写像された学習データを非線形変換により新たな特徴空間に写像する第2の写像ステップと、
    前記新たな特徴空間に写像された複数の学習データに基づいて、当該新たな特徴空間における線形識別関数及びクラス間境界を規定するパラメータを求めるパラメータ獲得ステップと
    を有することを特徴とする請求項1に記載のパラメータ学習方法。
  7. 前記学習データをx、前記非線形変換をφ(x)とすると、関数K(x,x’)を用いて、φ(x)φ(x’)=K(x,x’)と表されることを特徴とする請求項6に記載のパラメータ学習方法。
  8. 入力データを複数のクラスに分類するパターン識別方法であって、
    請求項1乃至7に記載のパラメータ学習方法により学習したパラメータを入力するパラメータ入力ステップと、
    識別対象データを入力する対象データ入力ステップと、
    前記識別対象データにおいて、前記k個の部分と同位置の部分ごとに要素の総和値を算出する第2の算出ステップと、
    前記パラメータ入力ステップで入力されたパラメータと、前記第2の算出ステップで算出されたk個の総和値とを用いて、前記識別対象データが前記複数のクラスの何れに属するかを識別する識別ステップと
    を有することを特徴とするパターン識別方法。
  9. 複数の弱判別方法による判別により、入力データを複数のクラスに分類するパターン識別方法であって、
    前記複数の弱判別方法の少なくとも1つが、
    請求項1乃至7に記載のパラメータ学習方法により学習したパラメータを入力するパラメータ入力ステップと、
    識別対象データを入力する対象データ入力ステップと、
    前記識別対象データにおいて、前記k個の部分と同位置の部分ごとに要素の総和値を算出する第2の算出ステップと、
    前記パラメータ入力ステップで入力されたパラメータと、前記第2の算出ステップで算出されたk個の総和値とを用いて、前記識別対象データが前記複数のクラスの何れに属する可能性が高いかを出力する出力ステップと
    を有することを特徴とするパターン識別方法。
  10. 前記複数の弱判別方法の組み合わせは、ブースティング手法を用いて構築することを特徴とする請求項9に記載のパターン識別方法。
  11. 前記ブースティング手法による複数の弱判別方法の組み合わせの構築において、前記k個の部分を用いる複数の弱判別方法の内、最も識別性能の高い弱判別方法を選択していくことを特徴とする請求項10に記載のパターン識別方法。
  12. 前記弱判別方法の1つにおける、前記複数のクラスの何れに属するかの可能性の高さに基づいて前記識別対象データを特定のクラスであると判定し、他の弱判別方法による判別を中断することを特徴とする請求項9に記載のパターン識別方法。
  13. 前記弱判別方法において、前記複数のクラスの何れに属するかの可能性に応じて、前記複数のクラスの何れに属するかの可能性の高さを示す累積値を更新するステップを有することを特徴とする請求項9に記載のパターン識別方法。
  14. 前記特定の部分が矩形領域であり、前記識別対象データの累積型データを生成する生成ステップを更に有し、
    前記第2の算出ステップにおいて、前記累積型データを用いて前記総和値を算出することを特徴とする請求項8または9に記載のパターン識別方法。
  15. 入力データを複数のクラスに分類するためのパラメータ学習装置であって、
    それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力手段と、
    前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出手段と、
    前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像手段と、
    前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習手段と
    を有することを特徴とするパラメータ学習装置。
  16. 入力データを複数のクラスに分類するパターン識別装置であって、
    請求項15に記載のパラメータ学習装置により学習したパラメータを入力するパラメータ入力手段と、
    識別対象データを入力する対象データ入力手段と、
    前記識別対象データにおいて、前記k個の部分と同位置の部分ごとに要素の総和値を算出する第2の算出手段と、
    前記パラメータ入力手段により入力されたパラメータと、前記第2の算出手段により算出されたk個の総和値とを用いて、前記識別対象データが前記複数のクラスの何れに属するかを識別する識別手段と
    を有することを特徴とするパターン識別装置。
  17. 複数の弱判別器を備え、該複数の弱判別器による判別により、入力データを所定のクラスに分類するパターン識別装置であって、
    前記弱判別器の少なくとも1つが、
    請求項15に記載のパラメータ学習装置により学習したパラメータを入力するパラメータ入力手段と、
    識別対象データを入力する対象データ入力手段と、
    前記識別対象データにおいて、前記k個の部分と同位置の部分ごとに要素の総和値を算出する第2の算出手段と、
    前記パラメータ入力手段により入力されたパラメータと、前記第2の算出手段により算出されたk個の総和値とを用いて、前記識別対象データが前記複数のクラスの何れに属する可能性が高いかを出力する出力手段とを有する
    ことを特徴とするパターン識別装置。
  18. 入力データを複数のクラスに分類するためのパラメータ学習方法をコンピュータに実行させるコンピュータ読み取り可能なプログラムであって、
    それぞれが属するクラスと対応付けられた複数の学習データを入力する学習データ入力ステップと、
    前記複数の学習データの各々において、特定のk個(k≧1)の部分について部分ごとに要素の総和値を算出する算出ステップと、
    前記複数の学習データの各々を、算出した前記k個の総和値を要素とするベクトルとして、該k個の総和値によって張られるk次元特徴空間に写像する写像ステップと、
    前記k次元特徴空間に写像された各学習データとその属するクラスとに基づいて、当該k次元特徴空間において、入力データを前記複数のクラスに分類するためのパラメータを学習する学習ステップとをコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。

JP2006181896A 2006-06-30 2006-06-30 パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム Expired - Fee Related JP4757116B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006181896A JP4757116B2 (ja) 2006-06-30 2006-06-30 パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム
EP07110987.0A EP1873687A3 (en) 2006-06-30 2007-06-25 Parameter learning method, parameter learning apparatus, pattern classification method, and pattern classification apparatus
US11/769,143 US7958070B2 (en) 2006-06-30 2007-06-27 Parameter learning method, parameter learning apparatus, pattern classification method, and pattern classification apparatus
CN2007101227239A CN101097564B (zh) 2006-06-30 2007-07-02 参数学习方法及设备、模式识别方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006181896A JP4757116B2 (ja) 2006-06-30 2006-06-30 パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム

Publications (2)

Publication Number Publication Date
JP2008009893A true JP2008009893A (ja) 2008-01-17
JP4757116B2 JP4757116B2 (ja) 2011-08-24

Family

ID=38565505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006181896A Expired - Fee Related JP4757116B2 (ja) 2006-06-30 2006-06-30 パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム

Country Status (4)

Country Link
US (1) US7958070B2 (ja)
EP (1) EP1873687A3 (ja)
JP (1) JP4757116B2 (ja)
CN (1) CN101097564B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295100A (ja) * 2008-06-09 2009-12-17 Denso Corp 画像識別装置
JP2012226616A (ja) * 2011-04-20 2012-11-15 Canon Inc パターン認識装置、パターン認識方法及びプログラム
WO2013133086A1 (ja) * 2012-03-05 2013-09-12 日産自動車株式会社 白線検出装置、白線検出フィルタ装置及び白線検出方法
JP2013210991A (ja) * 2012-03-02 2013-10-10 Nissan Motor Co Ltd 横断歩道検出装置および横断歩道検出方法
JP2014232536A (ja) * 2014-06-12 2014-12-11 株式会社ユニバーサルエンターテインメント 遊技用装置
JP2015204030A (ja) * 2014-04-15 2015-11-16 キヤノン株式会社 認識装置及び認識方法
JP2016055188A (ja) * 2015-12-10 2016-04-21 株式会社ユニバーサルエンターテインメント 識別装置及び遊技用装置
US9600763B1 (en) 2015-10-20 2017-03-21 Fujitsu Limited Information processing method, information processing device, and non-transitory recording medium for storing program

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101312895B1 (ko) * 2007-08-27 2013-09-30 재단법인서울대학교산학협력재단 파노라마 사진 촬영 방법
CN101520847B (zh) * 2008-02-29 2012-06-13 富士通株式会社 模式识别装置和方法
US20090290802A1 (en) * 2008-05-22 2009-11-26 Microsoft Corporation Concurrent multiple-instance learning for image categorization
US7996343B2 (en) * 2008-09-30 2011-08-09 Microsoft Corporation Classification via semi-riemannian spaces
JP5385752B2 (ja) * 2009-10-20 2014-01-08 キヤノン株式会社 画像認識装置、その処理方法及びプログラム
KR101877981B1 (ko) * 2011-12-21 2018-07-12 한국전자통신연구원 가버 특징과 svm 분류기를 이용하여 위변조 얼굴을 인식하기 위한 시스템 및 그 방법
US9323886B2 (en) * 2012-06-26 2016-04-26 Honda Motor Co., Ltd. Performance predicting apparatus, performance predicting method, and program
US9804839B2 (en) 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
GB2514397B (en) 2013-05-23 2017-10-11 Linear Algebra Tech Ltd Corner detection
DE102015103779A1 (de) * 2015-03-16 2016-09-22 Pac Tech-Packaging Technologies Gmbh Chipanordnung und Verfahren zur Ausbildung einer Kontaktverbindung
JP2017010255A (ja) * 2015-06-22 2017-01-12 オリンパス株式会社 画像認識装置および画像認識方法
JP6708385B2 (ja) * 2015-09-25 2020-06-10 キヤノン株式会社 識別器作成装置、識別器作成方法、およびプログラム
CN106056067B (zh) * 2016-05-27 2019-04-12 南京邮电大学 基于对应关系预测的低分辨率人脸图像识别方法
WO2018033137A1 (zh) * 2016-08-19 2018-02-22 北京市商汤科技开发有限公司 在视频图像中展示业务对象的方法、装置和电子设备
CN106448660B (zh) * 2016-10-31 2019-09-17 闽江学院 一种引入大数据分析的自然语言模糊边界确定方法
CN107817204B (zh) * 2017-11-01 2018-12-28 中国科学院地质与地球物理研究所 一种页岩微米孔隙结构分析方法及装置
US10521705B2 (en) * 2017-11-14 2019-12-31 Adobe Inc. Automatically selecting images using multicontext aware ratings
JP6852141B2 (ja) * 2018-11-29 2021-03-31 キヤノン株式会社 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム
US11416461B1 (en) 2019-07-05 2022-08-16 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience sizes of media using deduplication based on binomial sketch data
US11561942B1 (en) 2019-07-05 2023-01-24 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience sizes of media using deduplication based on vector of counts sketch data
US20210406232A1 (en) * 2020-06-30 2021-12-30 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience sizes of media using deduplication based on multiple vectors of counts
CN111931854B (zh) * 2020-08-12 2021-03-23 北京建筑大学 一种提高图像识别模型可移植性能的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004055733A2 (en) * 2002-12-17 2004-07-01 Qinetiq Limited Assessing of mitotic activity by image analysis
JP2005157679A (ja) * 2003-11-25 2005-06-16 Sony Corp 対象物検出装置及び方法、並びに集団学習装置及び方法
JP2005284348A (ja) * 2004-03-26 2005-10-13 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2005284487A (ja) * 2004-03-29 2005-10-13 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216515A (ja) * 2000-02-01 2001-08-10 Matsushita Electric Ind Co Ltd 人物の顔の検出方法およびその装置
US6519575B1 (en) * 2000-04-24 2003-02-11 General Electric Company System and method for classifying unknown data patterns in multi-variate feature space
GB2395780A (en) * 2002-11-29 2004-06-02 Sony Uk Ltd Face detection
US7039222B2 (en) * 2003-02-28 2006-05-02 Eastman Kodak Company Method and system for enhancing portrait images that are processed in a batch mode
US7454040B2 (en) * 2003-08-29 2008-11-18 Hewlett-Packard Development Company, L.P. Systems and methods of detecting and correcting redeye in an image suitable for embedded applications
US7869647B2 (en) * 2004-04-02 2011-01-11 Agilent Technologies, Inc. System and method for processing training data for a statistical application
JP2008059197A (ja) * 2006-08-30 2008-03-13 Canon Inc 画像照合装置、画像照合方法、コンピュータプログラム及び記憶媒体
US8331655B2 (en) * 2008-06-30 2012-12-11 Canon Kabushiki Kaisha Learning apparatus for pattern detector, learning method and computer-readable storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004055733A2 (en) * 2002-12-17 2004-07-01 Qinetiq Limited Assessing of mitotic activity by image analysis
JP2006514356A (ja) * 2002-12-17 2006-04-27 キネティック リミテッド 画像解析による有糸分裂活動の評価方法
JP2005157679A (ja) * 2003-11-25 2005-06-16 Sony Corp 対象物検出装置及び方法、並びに集団学習装置及び方法
JP2005284348A (ja) * 2004-03-26 2005-10-13 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2005284487A (ja) * 2004-03-29 2005-10-13 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295100A (ja) * 2008-06-09 2009-12-17 Denso Corp 画像識別装置
JP4513898B2 (ja) * 2008-06-09 2010-07-28 株式会社デンソー 画像識別装置
US8165408B2 (en) 2008-06-09 2012-04-24 Denso Corporation Image recognition apparatus utilizing plurality of weak classifiers for evaluating successive sub-images extracted from an input image
JP2012226616A (ja) * 2011-04-20 2012-11-15 Canon Inc パターン認識装置、パターン認識方法及びプログラム
JP2013210991A (ja) * 2012-03-02 2013-10-10 Nissan Motor Co Ltd 横断歩道検出装置および横断歩道検出方法
WO2013133086A1 (ja) * 2012-03-05 2013-09-12 日産自動車株式会社 白線検出装置、白線検出フィルタ装置及び白線検出方法
JPWO2013133086A1 (ja) * 2012-03-05 2015-07-30 日産自動車株式会社 白線検出装置、白線検出フィルタ装置及び白線検出方法
JP2015204030A (ja) * 2014-04-15 2015-11-16 キヤノン株式会社 認識装置及び認識方法
JP2014232536A (ja) * 2014-06-12 2014-12-11 株式会社ユニバーサルエンターテインメント 遊技用装置
US9600763B1 (en) 2015-10-20 2017-03-21 Fujitsu Limited Information processing method, information processing device, and non-transitory recording medium for storing program
JP2016055188A (ja) * 2015-12-10 2016-04-21 株式会社ユニバーサルエンターテインメント 識別装置及び遊技用装置

Also Published As

Publication number Publication date
US7958070B2 (en) 2011-06-07
CN101097564A (zh) 2008-01-02
JP4757116B2 (ja) 2011-08-24
CN101097564B (zh) 2012-11-21
EP1873687A2 (en) 2008-01-02
US20080016016A1 (en) 2008-01-17
EP1873687A3 (en) 2015-02-18

Similar Documents

Publication Publication Date Title
JP4757116B2 (ja) パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム
US10747989B2 (en) Systems and/or methods for accelerating facial feature vector matching with supervised machine learning
JP6781415B2 (ja) ニューラルネットワーク学習装置、方法、プログラム、およびパターン認識装置
US20210397876A1 (en) Similarity propagation for one-shot and few-shot image segmentation
Baró et al. Traffic sign recognition using evolutionary adaboost detection and forest-ECOC classification
JP6708385B2 (ja) 識別器作成装置、識別器作成方法、およびプログラム
Mita et al. Discriminative feature co-occurrence selection for object detection
JP5202148B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
US10769473B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
US8023701B2 (en) Method, apparatus, and program for human figure region extraction
US11341770B2 (en) Facial image identification system, identifier generation device, identification device, image identification system, and identification system
US7120614B2 (en) Data classifier using learning-formed and clustered map
JP4623387B2 (ja) 学習装置および方法、認識装置および方法、並びにプログラム
JP2011013732A (ja) 情報処理装置、情報処理方法、およびプログラム
US7227985B2 (en) Data classifier for classifying pattern data into clusters
Park et al. Attributed grammars for joint estimation of human attributes, part and pose
Escalera et al. Boosted Landmarks of Contextual Descriptors and Forest-ECOC: A novel framework to detect and classify objects in cluttered scenes
US20190311216A1 (en) Image processing device, image processing method, and image processing program
US20210089823A1 (en) Information processing device, information processing method, and non-transitory computer-readable storage medium
CN116583883A (zh) 基于规则提取的深度神经网络解释方法、系统和介质
CN112651364A (zh) 图像处理方法、装置、电子设备及存储介质
JP2006127446A (ja) 画像処理装置、画像処理方法、プログラムおよび記録媒体
JP2010009517A (ja) パターン検出器の学習装置、学習方法及びプログラム
JP2012226607A (ja) 特徴選択方法及び装置、パターン識別方法及び装置
JP3903613B2 (ja) 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090630

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110531

R150 Certificate of patent or registration of utility model

Ref document number: 4757116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees