[go: up one dir, main page]

JP4556891B2 - 情報処理装置および方法、記録媒体、並びにプログラム - Google Patents

情報処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
JP4556891B2
JP4556891B2 JP2006075517A JP2006075517A JP4556891B2 JP 4556891 B2 JP4556891 B2 JP 4556891B2 JP 2006075517 A JP2006075517 A JP 2006075517A JP 2006075517 A JP2006075517 A JP 2006075517A JP 4556891 B2 JP4556891 B2 JP 4556891B2
Authority
JP
Japan
Prior art keywords
node
image
weak
label
learning
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.)
Expired - Fee Related
Application number
JP2006075517A
Other languages
English (en)
Other versions
JP2007249852A (ja
Inventor
浩太郎 佐部
健一 日台
啓 小屋
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006075517A priority Critical patent/JP4556891B2/ja
Priority to EP07250984.7A priority patent/EP1835441A3/en
Priority to US11/717,019 priority patent/US7844108B2/en
Priority to CN2007101292492A priority patent/CN101127079B/zh
Priority to KR1020070026746A priority patent/KR101342313B1/ko
Publication of JP2007249852A publication Critical patent/JP2007249852A/ja
Application granted granted Critical
Publication of JP4556891B2 publication Critical patent/JP4556891B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、少ない演算量で、高速に顔画像などの対象物を検出することができるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
従来、複雑な画像シーンの中から動きを使わないで画像信号の濃淡パターンのみを使った顔検出装置が数多く提案されている。
図1は、従来の顔検出装置1(特許文献1参照)の構成例を示している。この顔検出装置1は、与えられる画像(入力画像)の中から顔の領域を示す顔の位置および大きさを出力する。
顔検出装置1の画像出力部2は、顔検出装置1に入力された入力画像としての濃淡画像(輝度画像)を、スケーリング部3に供給する。
スケーリング部3は、画像出力部2から供給された入力画像を、指定されたスケールに拡大または縮小し、その結果得られたスケーリング画像を、走査部4に出力する。
具体的には、先ず、図2に示す入力画像10Aがそのまま走査部4へ出力される。そして、入力画像10Aについて走査部4および判別器5の後述する処理が終了した後、入力画像10Aのサイズを縮小した入力画像10Bが生成される。さらに、この入力画像10Bにおける走査部4および判別器5の処理が終了した後、入力画像10Bのサイズを更に縮小した入力画像10Cが走査部4に出力されるように、より小さく縮小した縮小画像10D、10Eなどが順次生成され、縮小画像の画像サイズが、走査部4にて走査するウィンドウサイズより小さくなった時点で処理が終了する。この処理の終了をまって、画像出力部2は、次の入力画像をスケーリング部3に出力する。
走査部4は、スケーリング部3から供給されたスケーリングされた入力画像を、所定サイズのウインドウで、例えば左上から右下に向けて順次スキャンして、ウインドウ内の画像をウインドウ画像として出力する。
具体的には、図3に示されるように、与えられた例えば画像10Aに対して、後段の判別器5が受け付けるウィンドウサイズと同じ大きさのウインドウ11を画像(画面)の全体に対して順次当てはめていき、各位置におけるウインドウ11内の画像(以下、切り取り画像またはウインドウ画像と称する)が判別器5に出力される。
ウインドウ11の走査は、図4に示されるように、1画素単位で行われる。すなわち、所定の位置におけるウインドウ11内の切り取り画像が走査部4から出力された後、次の走査においては、ウインドウ11が1画素分右方向に移動され、その位置におけるウインドウ11内の切り取り画像が判別器5に供給される。
なお、ウィンドウサイズは一定であるが、上述したように、スケーリング部3により入力画像が順次縮小され、入力画像の画像サイズが様々なスケールに変換されるため、任意の大きさの対象物体を検出することが可能となる。
すなわち、入力画像上の顔の大きさが、どのような大きさであったとしても、画像サイズが順次縮小されることで、いつかはウィンドウサイズとほぼ同じ大きさの画像となる。その結果、そのウインドウ11内の画像が、人の顔の画像であるか否かを検出することができる。
判別器5は、判別器5を構成する複数の弱判別器の集団学習を実行する集団学習機6の学習結果を参照して、走査部4にて順次スキャンされた各ウインドウ画像が、顔画像(対象物)であるか、または顔画像以外の画像(非対象物)であるかを判別する。
判別器5は、図5に示されるように、アンサンブル学習(Ensemble learning)により得られた複数の弱判別器21i(i=1,2,3,・・・,K)と、これらの出力(判別結果)に、それぞれ対応する重みαi(i=1,2,3,・・・,K)を乗算し、重み付き多数決F(x)を求める加算器22とを有する。
弱判別器211乃至21Kは、それぞれウインドウ11内の画素のうちの任意の位置の2つの画素に基づき、そのウインドウ11内の画像が、人の顔の画像であるか否かを判別する。Kは、ウインドウ11内の画像から抽出可能な2個の画素の組み合わせの数に対応する。
具体的には、判別のための特徴量として、2つの画素間の輝度値の差分(以下、ピクセル間差分特徴と称する)が使用され、対象物か非対象物であるかのラベリングが予め施された複数の濃淡画像からなる学習サンプルにより学習された特徴量(閾値)と、ウインドウ画像の特徴量とが比較され、ウインドウ画像が対象物であるか否かを推定するための推定値f(x)が確定的または確率的に逐次出力される。
例えばAdaBoostのように、弱判別器が2値出力を行う場合は、ピクセル間差分特徴を閾値で二分することで、対象物体であるかどうかの判別が行われる。また、例えばReal-AdaBoostのように、ピクセル間差分特徴から対象物体かどうかを表す度合いの連続値を確率的に出力してもよい。
これら弱判別器21iが必要とする判別のための2つの画素および特徴量(閾値)などは学習時に所定のアルゴリズムに従って集団学習機6により学習される。
これら複数の弱判別器は、集団学習機6により後述するアルゴリズムに従い、上述の学習サンプルを使用して集団学習により逐次的に生成されたものであり、例えばその生成順に上記推定値を算出する。
加算器22は、弱判別器21iの推定値に、各弱判別器21iに対する信頼度となる重みを乗算し、これを加算した値(重み付き多数決の値)を出力する。
重み付き多数決の重み(信頼度)は、弱判別器を生成する学習工程にて集団学習機6により学習される。
判別器5においては、上述したように、入力されるウインドウ画像に対し、各弱判別器21iが顔である否かの推定値f(x)を逐次出力し、加算器22が重み付き多数決F(x)を算出して出力するが、この重み付き多数決F(x)の値に応じ、図示せぬ判定手段が、ウインドウ画像が対象物か否かを最終的に判定する。
判定部5ではまた、重み付き多数決の際、全ての弱判別器の計算結果を待たず、計算途中であっても、その値によっては対象物体でないと判断して計算が打ち切られる。
具体的には、予め学習により生成された複数の弱判別器が推定値を出力する毎に、その推定値に対して学習により得られた各弱判別器に対する重みを乗算して加算した重み付き多数決の値が更新され、この重み付き多数決の値(評価値)が更新される毎に、打ち切り閾値を利用して推定値の算出を打ち切るか否かが制御される。この打ち切りの閾値(基準値)は学習工程で集団学習機6により学習される。
判定部5では、2つのピクセル間の輝度値の差という極めて簡単な特徴量(ピクセル間差分特徴)を使用して対象物か否かを判別する弱判別器をすることで、対象物の検出処理を高速化することができるとともに、この打ち切り処理によって、全ての弱判別器の計算結果を待たず、計算途中で次のウインドウ画像の判別処理に移ることができ、検出処理における演算量を大幅に削減することが可能となるので、さらに迅速な処理が可能となる。
判定器5ではさらに、弱判定器がノードを構成し、そのノードがツリー構造に配置されている。
図6は、正面を向いた顔とラベリングされた画像(ヨー角が、−15度乃至+15度の範囲の画像)(以下、ラベルW11の画像と称する)と、左方向を向いた顔とラベリングされた画像(ヨー角が、+15度乃至+65度の範囲の画像)(以下、ラベルW21の画像と称する)、および右方向を向いた顔とラベリングされた画像(ヨー角が、−65度乃至−15度の範囲の画像)(以下、ラベルW31の画像と称する)、正面から+20度ロール回転した顔とラベリングされた画像(以下、ラベルW12の画像と称する)、左方向を向いて、+20度ロール回転した顔とラベリングされた画像(以下、ラベルW22の画像と称する)、および右方向を向いて、+20度ロール回転した顔とラベリングされた画像(以下、ラベルW32の画像と称する)、並びに正面から、−20度ロール回転した画像とラベリングされた画像(以下、ラベルW13の画像と称する)、左方向を向いて、−20度ロール回転した顔とラベリングされた画像(以下、ラベル23の画像と称する)、および右方向を向いて、−20度ロール回転した顔とラベリングされた画像(以下、ラベルW33の画像と称する)の全てを学習サンプルとして学習した場合に形成されたツリー構造の例を示している。
ヨー角は、図7Aに示されるように、人の目と目を結んだ線と平行で、ほぼ人の頭の中心を通る軸201と垂直な軸であって、ほぼ頭の中心を垂直に通る軸202を中心とした角度であり、右方向が負、左方向が正となるように定義される。
ロール角は、軸201と軸202と直交する軸203を中心として回転する角度を表し、軸201が水平になる角度が0度とされる。
なお姿勢を表す角度としてピッチ角という角度もあるが、これは、軸201を中心とする上下の角度であり、例えば、上を向くと正、下を向くと負とされる。
図6に示したようにツリー構造にしないとすると、1つのラベルを識別するのに、例えば、図8に示されるような弱判別器群231が必要となる。弱判別器群231は、弱判別器21−11 乃至21−1K のK個の弱判別器を有する。そして、このK個の弱判別器により、1つのラベルの学習サンプルの学習が行われることになる。
従って、例えば9個のラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の学習サンプルを学習するには、図9に示されるように、ラベルW11の学習サンプルを学習するための弱判別器群231−1の他、ラベルW12、ラベルW13、ラベルW21乃至W23、およびラベルW31乃至W33の各ラベルの学習サンプルを学習するための弱判別器群231−2乃至231−9が必要となる。これらの弱判別器群231−2乃至231−9も、それぞれK個の弱判別器から構成される。
図6に示されるツリー構造においても、最も上流のノードから、その末端のノードまでの学習経路における弱判別器の数は、最大K個となるが、上述したように、判別(識別)工程で各弱判別器の処理の結果得られた値を重み付けして累積加算した値である重み付き多数決の値が、打ち切り閾値より小さくなった場合には、以後、判別(識別)処理は中止される。従って、弱判別器の数を少なくすることが可能となる。
このことが、図10に模式的に示されている。即ち、この実施の形態においては、ノード221は、基本的に、弱判別器211乃至21100により構成されるが、各弱判別器21iは、図11に示されるように、打ち切り閾値による打ち切り機能を有している。図中、Yは出力が後段に引き継がれることを表し、Nは処理がそこで打ち切られることを表している。
このように、判別器5は、ウインドウ画像が対象物か否かを判定するための評価値として重み付き多数決を算出し、その評価値に基づきウインドウ画像が対象物か否かを判定する判定手段として機能する。
集団学習機6は、弱判別器と、それらの出力(推定値)に乗算する重み等を集団学習により予め学習する。
集団学習としては、複数の弱判別器の結果を多数決にて求めることができるものであれば、具体的にはどんな手法でも適用可能である。例えば、データの重み付けを行って重み付き多数決行うアダブースト(AdaBoost)などのブースティングを用いた集団学習を適用することができる。
特開2005−284487号公報
しかしながら、従来の顔検出装置1においては、図6に示したように、各ビュー毎の学習サンプル(9種類の画像)を学習し、その学習結果として、ビュー毎に、2つのピクセル位置の組(K個)、弱判別器の閾値(K個)、重み付き多数決の重み(弱判別器の信頼度)(K個)、および打ち切り閾値(K個)を記憶する必要があり、辞書データが大きくなってしまう。
組み込み用途のLSIとして製品化するためには、ゲート規模を削減し、製造コストの抑える必要があるが、ハードウエアとして実装する場合には、この辞書データをROMとして持つことになり、演算回路より大きい回路(ゲート数)が必要となってしまう。
本発明は、このような状況に鑑みて提案されたものであり、集団学習により対象とする物体を検出する際に必要となる辞書データを小さくするようにするものである。
本発明の一側面の情報処理装置は、第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、弱判別器を有しない第2の下位ノードとを備え、前記第1の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行い、前記第2の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理を行う。
前記上位ノードおよび第1の下位ノードの前記弱判別器は、前記学習サンプルの画像データの2画素の値の差と閾値との差に基づいて前記識別処理を行い、前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記座標上の関係に基づいて座標変換し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行うことができる。
前記第2のラベルの学習サンプルは、前記第1のラベルの学習サンプルを所定の角度だけロール回転、または左右方向に反転した画像に相当し、前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転または左右方向に反転し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて識別処理を行うことができる。
識別処理が施される信号を取得し、前記上位ノード、前記第1の下位ノード、または前記第2の下位ノードに出力する出力手段をさらに設け、前記出力手段には、前記第2の下位ノードが、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行う場合、前記学習サンプルの大きさよりも大きい画像の画像信号を、前記第2の下位ノードに出力させることができる。
前記上位ノードおよび前記第1の下位ノードを構成する弱判別器は、前記学習サンプルを、前記出力手段により出力された画像信号に応じた画像と中心を合わせて前記角度だけロール回転し、前記画像信号に応じた画像からはみ出る領域については学習を行わないようにすることができる。
前記上位ノード並びに前記第1および第2の下位ノードは、判別結果を、信頼度により重み付けして累積し、その累積和に基づいて、前記認識処理を打ち切る打ち切り手段を設けることができる。
前記打ち切り手段は、前記判別結果が重み付け累積される毎に、または所定の数分の判別結果が重み付け累積される毎に、前記認識処理の打ち切りを判定することができる。
本発明の一側面の情報処理方法は、第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、弱判別器を有しない第2の下位ノードとを備える情報処理装置が実行する情報処理方法であって、前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップと、前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処理を行うステップとを含む。
本発明の一側面の記録媒体に記録されるプログラムおよびプログラムは、第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、弱判別器を有しない第2の下位ノードとを備える情報処理装置、前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップと、前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理を行うステップとを実行させるためのプログラムである
本発明の一側面の情報処理装置、情報処理方法、またはプログラムにおいては、第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理が行われ、弱判別器を有しない第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理が行われる。
本発明によれば、顔画像の判別工程において必要な辞書データを小さくすることができる。
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
本発明の一側面の情報処理装置は、
第1のラベルの学習サンプル(例えば、図36のラベルW11の画像)、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプル(例えば、図36のラベルW11の画像を+20度ロール回転すれば得ることができるラベルW12の画像)を学習した複数の弱判別器よりなる上位ノード(例えば、図32の学習済みノード81−1−1)と、
前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノード(例えば、図32の学習済みノード81−1−1−1)と、
弱判別器を有しない第2の下位ノード(例えば、図32の未学習ノード81−1−1−2)と
を備え、
前記第1の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行い、
前記第2の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理を行う。
前記上位ノードおよび第1の下位ノードの前記弱判別器は、前記学習サンプルの画像データの2画素の値の差と閾値との差に基づいて前記識別処理を行い、
前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記座標上の関係に基づいて座標変換し(例えば、図37または図38)、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行うことができる。
前記第2のラベルの学習サンプルは、前記第1のラベルの学習サンプルを所定の角度だけロール回転、または左右方向に反転した画像に相当し、
前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転または左右方向に反転し(例えば、図37または図38)、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて識別処理を行うことができる。
識別処理が施される信号を取得し、前記上位ノード、前記第1の下位ノード、または前記第2の下位ノードに出力する出力手段(例えば、図12の走査部54)をさらに備え、
前記出力手段は、
前記第2の下位ノードが、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行う場合、前記学習サンプルの大きさよりも大きい画像の画像信号(例えば、図39B)を、前記第2の下位ノードに出力することができる。
前記上位ノードおよび前記第1の下位ノードを構成する弱判別器は、前記学習サンプルを、前記出力手段により出力された画像信号に応じた画像と中心を合わせて前記角度だけロール回転し、前記画像信号に応じた画像からはみ出る領域(図39Bの四隅の画素)については学習を行わないようにすることができる。
前記上位ノード並びに前記第1および第2の下位ノードは、判別結果を、信頼度により重み付けして累積し、その累積和に基づいて、前記認識処理を打ち切る打ち切り手段(例えば、図34のステップS175の処理を行う図29の判定部472)を設けることができる。
前記打ち切り手段は、前記判別結果が重み付け累積される毎に、または所定の数分の判別結果が重み付け累積される毎に、前記認識処理の打ち切りを判定することができる。
本発明の情報処理方法は、
第1のラベルの学習サンプル(例えば、図36のラベルW11の画像)、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプル(例えば、図36のラベルW11の画像を+20度ロール回転すれば得ることができるラベルW12の画像)を学習した複数の弱判別器よりなる上位ノード(例えば、図32の学習済みノード81−1−1)と、
前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノード(例えば、図32の学習済みノード81−1−1−1)と、
弱判別器を有しない第2の下位ノード(例えば、図32の未学習ノード81−1−1−2)と
を備える情報処理装置が実行する情報処理方法であって
前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップ(例えば、図33のステップS121)と、
前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処理を行うステップ(例えば、図33のステップS163)と
を含む。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
この実施の形態は、本発明を、アンサンブル学習(集団学習)を利用して画像から対象物を検出する情報処理装置を対象物検出装置に適用したものである。
集団学習によって得られる学習機械は、多数の弱仮説と、これらを組み合わせる結合機(combiner)とからなる。
入力によらず、固定した重みで弱仮説の出力を統合する結合機の一例としてブースティングがある。
ブースティングにおいては、前に生成した弱仮説の学習結果を使用して、間違いが発生した学習サンプル(例題)の重みを増すように、学習サンプルが従う分布が加工され、この分布に基づき新たな弱仮説の学習が行われる。これにより不正解が多く対象物として判別が難しい学習サンプルの重みが相対的に上昇し、結果的に重みが大きい、即ち判別が難しい学習サンプルを正解させるような弱判別器が逐次選択される。この場合、学習における弱仮説の生成は逐次的に行われ、後から生成された弱仮説はその前に生成された弱仮説に依存することになる。
対象物を検出する際には、上述のようにして学習により逐次生成された多数の弱仮説の判別結果が使用される。例えばAdaBoost(アダブースト)の場合は、この学習により生成された弱仮説(以下、弱判別器と称する)全ての判別結果(対象物であれば1、非対象物であれば−1)が結合機に供給され、結合機は、全判別結果に対して、対応する弱判別器毎に学習時に算出された信頼度を重み付け加算し、その重み付き多数決の結果を出力し、結合機の出力値を評価することで、入力された画像が対象物か否かを選択する。
弱判別器は、なんらかの特徴量を使用して、対象物かまたは非対象物であるかの判定を行うものである。なお、弱判別器の出力は対象物か否かを確定的に出力してもよく、対象物らしさを確率密度などで確率的に出力してもよい。
本実施の形態においては、2つのピクセル間の輝度値の差という極めて簡単な特徴量(ピクセル間差分特徴)を使用して対象物か否かを判別する弱判別器を使用した集団学習装置を利用するが、判別するビューのうちの所定のビューの学習サンプルのみを学習し、その学習結果を利用して、他のビューも判定することができるようになされている。
すなわち本発明は、特に、判別工程に関するが、理解のために、特許文献1と同様に、
(1)対象物検出装置
(2)集団学習機
(2−1−1)2値出力の弱判別器
(2−1−2)連続値出力の弱判別器
(2−2)打ち切り閾値
(3)弱判別器の組立構造
(4)学習方法
(4−1)判別器の生成
(4−2)弱判別器の生成
の項目を設け、基本的に特許文献1と同様の説明をした後、
(5)対象物検出方法の項目で、特に本発明に関する部分を説明する。
(1)対象物検出装置の構成
図12は、本発明を適用した対象物検出装置51の構成例を示している。対象物検出装置51は、与えられる画像(入力画像)の中から対象物体を検出する。
画像出力部52は、図1の画像出力部2と同様に、対象物検出装置51に入力された入力画像としての濃淡画像(輝度画像)を出力する。
スケーリング部53は、図1のスケーリング部3と同様に、入力画像の拡大または縮小、すなわちスケーリングを行う。
走査部54は、図1の走査部4と同様に、スケーリングされた入力画像を、所定サイズのウインドウで、例えば左上から右下に向けて順次スキャンして、ウインドウ内の画像をウインドウ画像として出力する。
判別器55は、後述するような、複数の弱判別器等を有するツリー構造のノードにより構成され、走査部54にて順次スキャンされた各ウインドウ画像が対象物か非対象物かを判別する。
すなわち、スケーリング部53は、入力画像を指定された全てのスケールに拡大または縮小したスケーリング画像を出力する。
走査部54は、各スケーリング画像について、検出したい対象物の大きさとなるウインドウを順次スキャンしてウインドウ画像を切り出し、判別器55は、各ウインドウ画像が顔か否かを判別する。
判別器55は、判別器55を構成する複数の弱判別器の集団学習を実行する集団学習機56の学習結果を参照して、現在のウインドウ画像が、例えば顔画像などの対象物であるか、または非対象物(顔画像以外の画像)であるかを判別する。
また、対象物検出装置51は、入力画像から複数の対象物が検出された場合は、複数の領域情報を出力する。更に、複数の領域情報のうち領域が重なりあっている領域が存在する場合は、後述する方法で最も対象物とされる評価が高い領域を選択する処理も行うことができる。
画像出力部52から出力された画像(濃淡画像)は、先ずスケーリング部53に入る。スケーリング部53では、バイリニア補完を用いた画像の縮小が行われる。本実施の形態においては、スケーリング部53で最初に複数の縮小画像を生成するのではなく、必要とされる画像を走査部54に対して出力し、その画像の処理を終えた後で、次の更に小さな縮小画像を生成するという処理が繰り返される。
すなわち、図2に示した場合と同様に、スケーリング部53は、先ず、入力画像10Aをそのまま走査部54へ出力する。そして、スケーリング部53は、入力画像10Aについて走査部54および判別器55の処理が終了するのを待った後、入力画像10Aのサイズを縮小した入力画像10Bを生成する。さらに、スケーリング部53は、この入力画像10Bにおける走査部54および判別器55の処理が終了するのを待って、入力画像10Bのサイズを更に縮小した入力画像10Cを走査部54に出力するというように、より小さく縮小した縮小画像10D、10Eなどを順次生成していき、縮小画像の画像サイズが、走査部54にて走査するウィンドウサイズより小さくなった時点で処理を終了する。この処理の終了をまって、画像出力部52は、次の入力画像をスケーリング部53に出力する。
走査部54では、図3に示した場合と同様に、与えられた例えば画像10Aに対して、後段の判別器55が受け付けるウィンドウサイズと同じ大きさのウインドウ11を画像(画面)の全体に対して順次当てはめていき、各位置におけるウインドウ11内の画像(以下、切り取り画像またはウインドウ画像と称する)を判別器55に出力する。
ウインドウ11の走査は、図4に示した場合と同様に、1画素単位で行われる。すなわち、所定の位置におけるウインドウ11内の切り取り画像が走査部54から出力された後、次の走査においては、ウインドウ11が1画素分右方向に移動され、その位置におけるウインドウ11内の切り取り画像が判別器55に供給される。
なお、ウィンドウサイズは一定であるが、上述したように、スケーリング部53により入力画像が順次縮小され、入力画像の画像サイズが様々なスケールに変換されるため、任意の大きさの対象物体を検出することが可能となる。
すなわち、入力画像上の顔の大きさが、どのような大きさであったとしても、画像サイズが順次縮小されることで、いつかはウィンドウサイズとほぼ同じ大きさの画像となる。その結果、そのウインドウ11内の画像が、人の顔の画像であるか否かを検出することができる。
判別器55は、前段から与えられた切り取り画像が、例えば顔などの対象物体であるか否かを判定する。
判別器55は、図13に示されるように、アンサンブル学習(Ensemble learning)により得られた複数の弱判別器61i(i=1,2,3,・・・,K)と、これらの出力(判別結果)に、それぞれ対応する重みαi(i=1,2,3,・・・,K)を乗算し、重み付き多数決F(x)を求める加算器62とを有する。
弱判別器611乃至61Kは、それぞれウインドウ11内の画素のうちの任意の位置の2つの画素に基づき、そのウインドウ11内の画像が、人の顔の画像であるか否かを判別する。Kは、ウインドウ11内の画像から抽出可能な2個の画素の組み合わせの数に対応する。
判別器55においては、入力されるウインドウ画像に対し、各弱判別器61iが対象物である否かの推定値f(x)を逐次出力し、加算器62が重み付き多数決F(x)を算出して出力する。この重み付き多数決F(x)の値に応じ、図示せぬ判定手段が、ウインドウ画像が対象物か否かを最終的に判定する。
集団学習機56は、後述する方法にて、弱判別器61iと、それらの出力(推定値)に乗算する重みを集団学習により予め学習する。
集団学習としては、複数の判別器の結果を多数決にて求めることができるものであれば、具体的にはどんな手法でも適用可能である。例えば、データの重み付けを行って重み付き多数決行うアダブースト(AdaBoost)などのブースティングを用いた集団学習を適用することができる。
判別器55を構成する各弱判別器61iは、判別のための特徴量として、2つの画素間の輝度値の差分(ピクセル間差分特徴)を使用する。そして、各弱判別器61iは、対象物か非対象物であるかのラベリングが予め施された複数の濃淡画像からなる学習サンプルにより学習された特徴量と比較し、ウインドウ画像が対象物であるか否かを推定するための推定値を確定的または確率的に出力する。
加算器62は、弱判別器61iの推定値に、各弱判別器61iに対する信頼度となる重みを乗算し、これを加算した値(重み付き多数決の値)を出力する。AdaBoostでは、複数の弱判別器61iは、順次推定値を算出し、これに伴い重み付き多数決の値が逐次更新されていく。
これら複数の弱判別器は、集団学習機56により後述するアルゴリズムに従い、上述の学習サンプルを使用して集団学習により逐次的に生成されたものであり、例えばその生成順に上記推定値を算出する。また、重み付き多数決の重み(信頼度)は、弱判別器を生成する後述する学習工程にて学習される。
弱判別器61iは、例えばAdaBoostのように、弱判別器が2値出力を行う場合は、ピクセル間差分特徴を閾値で二分することで、対象物体であるかどうかの判別を行う。閾値により判別を行う場合、複数の閾値を用いてもよい。また、弱判別器は、例えばReal-AdaBoostのように、ピクセル間差分特徴から対象物体かどうかを表す度合いの連続値を確率的に出力してもよい。これら弱判別器61iが必要とする判別のための特徴量なども学習時に上記アルゴリズムに従って学習される。
更に、本実施の形態では、重み付き多数決の際、全ての弱判別器の計算結果を待たず、計算途中であっても、その値によっては対象物体でないと判断して計算を打ち切るため、打ち切りの閾値(基準値)が学習工程で学習される。この打ち切り処理によって、検出処理における演算量を大幅に削減することが可能となる。これにより、全ての弱判別器の計算結果を待たず、計算途中で次のウインドウ画像の判別処理に移ることができ、迅速な処理が可能となる。
このように、判別器55は、ウインドウ画像が対象物か否かを判定するための評価値として重み付き多数決を算出し、その評価値に基づきウインドウ画像が対象物か否かを判定する判定手段として機能する。
更に判別器55は、予め学習により生成された複数の弱判別器が推定値を出力する毎に、その推定値に対して学習により得られた各弱判別器に対する重みを乗算して加算した重み付き多数決の値を更新し、この重み付き多数決の値(評価値)を更新する毎に、上記打ち切り閾値を利用して推定値の算出を打ち切るか否かをも制御する。
この判別器55は、集団学習機56において、学習サンプルを使用し、所定のアルゴリズムに従って集団学習することにより生成される。ここでは先ず、集団学習機56における集団学習方法について説明し、次に、その集団学習により得られた判別器55を使用し、入力画像から対象物を判別する方法について説明する。
(2)集団学習機
ブースティングアルゴリズムを用いて集団学習する集団学習機56は、上述したように複数の弱判別器を複数個組み合わせ、結果的に強い判別結果が得られるよう学習する。
弱判別器は、1つ1つは、極めて簡単な構成とされ、1つでは顔か顔でないかの判別能力も低いものであるが、これを例えば数百乃至数千個組み合わせることで、高い判別能力を持たせることができる。
この集団学習機56は、例えば数千の学習サンプルといわれる予め正解付け(ラベリング)された対象物と非対象物、例えば顔画像と非顔画像とからならなるサンプル画像を使用し、多数の学習モデル(仮説の組み合わせ)から所定の学習アルゴリズムに従って1つの仮説を選択(学習)することで弱判別器を生成し、この弱判別器の組み合わせ方を決定していく。
弱判別器は、それ自体では判別性能が低いものであるが、これらの選別、組み合わせ方により、結果的に判別能力が高い判別器を得ることができるため、集団学習機56では、弱判別器の組み合わせ方、即ち弱判別器の選別およびそれらの出力値を重み付き多数決する際の重みなどの学習をする。
次に、適切な弱判別器を学習アルゴリズムに従って多数組み合わせた判別器を得るための集団学習機56の学習方法について説明するが、集団学習機56の学習方法の説明に先立ち、集団学習にて学習する学習データの中の、弱判別器を構成するためのピクセル間差分特徴、並びに判別工程(検出工程)において、検出を途中で打ち切るための打ち切り閾値(基準値)について説明しておく。
(2−1)弱判別器の構成(ピクセル間差分特徴)
本実施の形態における判別器55は、複数の弱判別器で構成される。この弱判別器は、入力される画像に含まれる全画素の中から選択された2つの画素の輝度値の差分(ピクセル間差分特徴)により顔か否かを判別する極めて簡単な構成とされる。これにより、判別工程において、弱判別器の判別結果の算出が高速化される。
弱判別器に入力される画像は、学習工程では、学習サンプルであり、判別(識別)工程では、スケーリング画像から切り出されたウインドウ画像である。
図14は、ピクセル間差分特徴を説明するための画像を示す模式図である。画像70において、本実施の形態においては、任意の2つの画素の輝度値の差、例えば画素71の輝度値I1と、画素72の輝度値I2との差、即ち下記式(1)で得られる値dがピクセル間差分特徴と定義される。
Figure 0004556891
どのピクセル間差分特徴dを顔検出に使用するかが弱判別器の能力となる。従って、サンプル画像またはウインドウ画像に含まれる任意の2画素の組み合わせ(フィルタまたは弱仮説ともいう)から、弱判別器に使用するピクセル位置の組を選択する必要がある。
例えばAdaBoostでは、弱判別器に、+1(対象物体である)か、または−1(非対象物体)であるかの確定的な出力を要求する。そこで、AdaBoostにおいては、ある任意のピクセル位置において、そのピクセル間差分特徴dを、1または複数の閾値を利用して2分割(+1または−1)することをもって弱判別器とすることができる。
また、このような2値出力ではなく、学習サンプルの確率分布を示す連続値(実数値)を確率的に出力するような例えばReal-AdaBoostまたはGentle Boostなどのブースティングアルゴリズムの場合、弱判別器は、入力された画像が対象物である確からしさ(確率)を出力する。弱判別器の出力は、このように確定的であっても確率的であってもよい。先ず、これら2値出力の弱判別器について説明する。
(2−1−1)2値出力の弱判別器
確定的な出力をする弱判別器は、ピクセル間差分特徴dの値に応じて、対象物か否かの2クラス判別を行う。対象画像領域中のある2つのピクセルの輝度値をI1、I2とし、ピクセル間差分特徴dにより対象物か否かを判別するための閾値をTh1とすると、下記式(2)を満たすか否かで、いずれのクラスに属するかを決定することができる。
Figure 0004556891
ここで、弱判別器を構成するには、2つのピクセル位置と、その閾値を決定する必要があるが、その決定方法については後述する。上記式(2)の閾値判定は最も単純な場合である。また、閾値判定には、次の下記式(3)または式(4)に示す2つの閾値を用いることもできる。
Figure 0004556891
Figure 0004556891
図15A乃至図15Cは、縦軸に頻度をとり、横軸にピクセル間差分特徴dをとって、それぞれ上記式(2)乃至式(4)に示す3つの判別方法を、データの頻度分布の特徴的なケースに合わせて示す模式図である。図15A乃至図15Cにおいては、yiは弱判別器の出力を示し、破線が、yi=−1(非対象物)であると判定された学習サンプルの分布を示し、実線が、yi=1(対象物)であると判定された学習サンプルの分布を示す。多数の顔画像と非顔画像からなる学習サンプルに対し、同一のピクセル間差分特徴dに対する頻度を取ると、図15A乃至図15Cに示されるヒストグラムが得られる。
なお、実線と破線は、それぞれ、yi=1、またはyi=−1と判定された頻度を独立に表している。従って、例えば、図15Aのピクセル間差分特徴dの合計した分布は、図16に示されるようになる。
図15Aに示されるように、ヒストグラムが、例えば、非対象物を示す破線の分布と、対象物を示す実線の分布が、同様な正規曲線のように分布し、そのピーク位置が左右にずれているような場合は、その境界部に閾値Th1を設定し、上記式(2)にて対象物か否かを判別することができる。
例えばAdaBoostにおいては、弱判別器の出力(判別結果)をf(x)としたとき、出力f(x)=1(対象物)またはf(x)=−1(非対象物)となる。図15Aは、ピクセル間差分特徴dが閾値Th1より大きい場合に対象物であると判定され、弱判別器の出力がf(x)=1となる例を示している。
また、2つのヒストグラムのピーク位置が同じような位置にあって、その分布の幅が異なるような場合、分布が狭い方のピクセル間差分特徴dの上限値近傍および下限値近傍を閾値として、上記式(3)または式(4)により、対象物か否かを判別することができる。
図15Bは、分布の幅が狭い方が対象物と判定され、弱判別器の出力がf(x)=1となる例を、図15Cは、分布の幅が広い方から分布の幅が狭い方を除いたものが対象物と判定され、弱判別器の出力がf(x)=1となる例を、それぞれ示している。
弱判別器は、あるピクセル間差分特徴dとその閾値とを決定することにより構成されるが、その判定によって誤り率ができるだけ小さくなるような、即ち判別率が高いピクセル間差分特徴dを選択する必要がある。
例えば、閾値は、2つの画素位置を決め、正解付けされた学習サンプルに対して、図15に示されるようなヒストグラムを求め、最も正解率が高くなる閾値、換言すれば、非正解率(誤り率)が最も小さくなるような閾値を検索することで決定される。
また、2つの画素位置は、閾値と共に得られる誤り率が最も小さいものを選択するなどすればよい。但し、AdaBoostにおいては、判別の難易度を反映した重み(データ重み)が各学習サンプルに付けられており、適切なピクセル間差分特徴d(どの位置の2つのピクセルの輝度値を特徴値とするか)が後述する重み付き誤り率を最小にするように学習される。
(2−1−2)連続値出力の弱判別器
確率的な出力をする弱判別器としては、上述した如く、例えばReal-AdaBoostまたはGentle Boostなどのように弱判別器が連続値を出力するものがある。この場合、弱判別器は、ある決められた一定値(閾値)により判別問題を解き、2値出力(f(x)=1または−1)する上述の場合と異なり、入力された画像が対象物である度合いを、例えば確率密度関数として出力する。
このような、対象物体である度合い(確率)を示す確率的な出力は、ピクセル間差分特徴dを入力としたときPp(x)を学習サンプルの対象物の確率密度関数、Pn(x)を学習サンプルの非対象物の確率密度関数とすると、下記式(5)に示す関数f(x)とすることができる。
Figure 0004556891
図17Aは、縦軸に確率密度をとり、横軸にピクセル間差分特徴dをとって、データの頻度分布の特徴的なケースを示す図であり、図17Bは、縦軸に関数f(x)の値をとり、横軸にピクセル間差分特徴dをとって、図17Aに示すデータ分布における関数f(x)を示すグラフである。図17Aにおいて、破線が非対象物体であることを示す確率密度、実線が対象物体であることを示す確率密度を、それぞれ示す。上記式(5)から関数f(x)を求めると、図17Bに示すグラフが得られる。弱判別器は、学習工程または判別工程において、入力される学習サンプルまたはウインドウ画像から得られた上記式(1)に示すピクセル間差分特徴dに対応する関数f(x)を出力する。この関数f(x)は、対象物らしさの度合いを示すものであって、例えば非対象物を−1、対象物を1としたとき、−1乃至1までの連続値を取るものとすることができる。例えばピクセル間差分特徴dとそれに対応するf(x)とからなるテーブルを記憶し、入力に応じてテーブルからf(x)を読出し出力する。従って、一定値である閾値Th1またはTh11,Th12,Th21,Th22より若干記憶量が大きくなるが判別性能が向上する。
これら複数の推定方法(判別方法)は、アンサンブル学習中に組み合わせて使用することで、判別性能が向上することが期待できる。また、いずれか単一の判別方法のみを利用すれば、実行速度性能を引き出すことができる。
ピクセル間差分特徴dを上述の判別方法のうち最も単純な式(2)に示す閾値判定によっても極めてよい判別結果が得られるが、どのような判別方法により弱判別器が有効に機能するかは、対象とする問題によって異なり、その閾値設定方法などを適宜選択すればよい。また、問題によっては、2つの画素の輝度値の差ではなく、3個以上の画素の輝度値の差を特徴量としてもよい。
(2−2)打ち切り閾値
次に、打ち切り閾値について説明する。
ブースティングを用いた集団学習機においては、通常は、上述したように判別器55を構成する全弱判別器の出力の重み付き多数決によりウインドウ画像が対象物か否かを判別する。
重み付き多数決は、弱判別器の判別結果(推定値)を逐次足し合わせていくことで算出される。例えば、弱判別器の個数をt(=1,・・・,K)、各弱判別器に対応する多数決の重み(信頼度)をαt、各弱判別器の出力をft(x)としたとき、AdaBoostにおける重み付き多数決の値F(x)は、下記式(6)により求めることができる。
Figure 0004556891
図18は、横軸に弱判別器の数をとり、縦軸に上記式(6)に示す重み付き多数決の値F(x)をとって、入力される画像が対象物か否かに応じた重み付き多数決の値F(x)の変化を示すグラフである。
図18において、破線で示すデータV1乃至V4は、対象物としてラベリングされている画像(学習サンプル)を入力として、弱判別器により推定値f(x)を逐次算出し、その重み付き多数決の値F(x)を逐次求めたものである。このデータV1乃至V4に示されるように、対象物を入力画像とすると、ある程度の個数の弱判別器の判別によりその重み付き多数決の値F(x)はプラス(正)になる。
本実施の形態においては、通常のブースティングアルゴリズムとは異なる手法が導入される。すなわち、弱判別器の判別結果を逐次足し合わせていく過程において、全ての弱判別器の結果を得る前であっても、明らかに対象物ではないと判別できるウインドウ画像については、その判別が中止される。判別を中止するか否かを決定する打ち切り閾値(基準値)は、学習工程にて学習される。
この打ち切り閾値により、全弱判別器の出力結果を用いなくとも、非対象物であることが確実に推定できる場合、弱判別器の推定値f(x)の演算を途中で中止することができ、これにより、全ての弱判別器を使用した重み付き多数決を行うのに比して、格段に演算量を低減し、処理の迅速化が可能となる。
この打ち切り閾値は、ラベリングされている学習サンプルのうち、検出対象物を示す学習サンプルの判別結果の重み付き多数決の値が取りえる最小値とすることができる。
判別工程において、ウインドウ画像の弱判別器による判別結果が、逐次重み付きされて出力される。即ち、重み付き多数決の値が逐次更新されていくが、この更新されていく値と、上記打ち切り閾値とを更新の度、即ち1つの弱判別器が判別結果を出力する毎に比較し、更新された重み付き多数決の値が打ち切り閾値を下まわる場合には、当該ウインドウ画像は対象物ではないとし、計算を打ち切ることができ、これにより無駄な演算を省いて、判別処理を高速化することができる。
すなわち、M番目の弱判別器の出力fM(x)の打ち切り閾値RMは、学習サンプルxi(i=1乃至N)のうち、対象物である学習サンプル(ポジティブサンプル)xj(j=1乃至J)を使用したときの重み付き多数決の値F(x)の最小値とされ、下記式(7)のように定義される。
Figure 0004556891
この式(7)に示されるように、対象物である学習サンプルx1乃至xJの重み付き多数決の値F(x)の最小値が0を上回る場合には打ち切り閾値RMには0が設定される。なお、0を上回らないようにするのは、0を閾値にして判別を行うAdaBoostの場合であり、ここは集団学習の手法により異なる場合がありうる。
AdaBoostの場合においては、打ち切り閾値RMは、図18の実線で示されるように、入力画像として対象物を入力した場合の全データV1乃至V4の重み付き多数決の値F(x)のうち、取りうる最小値に設定され、全てのデータV1乃至V4の重み付き多数決の値F(x)の最小値が0を超えた場合は、打ち切り閾値RMが0に設定される。
本実施の形態においては、例えば、弱判別器が生成される毎の打ち切り閾値RM(R1乃至RK)を学習しておくことで、後述する判別工程において、例えばデータV5のように、複数の弱判別器により推定値が逐次出力され、重み付き多数決の値が逐次更新されていくが、この値が上記打ち切り閾値RMを下まわった時点で、後段の弱判別器による判別の処理が終了される。すなわち、この打ち切り閾値RMを学習しておくことにより、弱判別器の推定値を計算する毎に次の弱判別器の計算を行うか否かを決定でき、明らかに対象物ではないと判断される場合には、全ての弱判別器の判別結果を待たずに非対象物であることが判定でき、演算を途中で打ち切りことで検出処理を高速化することができる。
(3)弱判別器の組立構造
次に本実施の形態における弱判別器の組立構造について説明する。本実施の形態においては、複数個の学習サンプルが学習に用いられる。各学習サンプルは、24×24画素で構成される。そして、各学習サンプルは、人の顔の画像とされ、照明条件や人種など、様々なバリエーションを含んだものとされる。
また、本実施の形態においては、人の顔(頭)の姿勢に基づいてラベリングが行われる。
本実施の形態においては、図19に示されるように、正面を向いた顔とラベリングされた画像(ヨー角が、−15度乃至+15度の範囲の画像)(以下、ラベルW11の画像と称する)、左方向を向いた顔とラベリングされた画像(ヨー角が、+15度乃至+65度の範囲の画像)(以下、ラベルW21の画像と称する)、および右方向を向いた顔とラベリングされた画像(ヨー角が、−65度乃至−15度の範囲の画像)(以下、ラベルW31の画像と称する)、正面を向いた顔が+20度ロール回転した顔とラベリングされた画像(以下、ラベルW12の画像と称する)、左方向を向いた顔が+20度ロール回転した顔とラベリングされた画像(以下、ラベルW22の画像と称する)、および右方向を向いた顔が+20度ロール回転した顔とラベリングされた画像(以下、ラベルW32の画像と称する)、並びに正面を向いた顔が−20度ロール回転した顔とラベリングされた画像(以下、ラベルW13の画像と称する)、左方向を向いた顔が−20度ロール回転した顔とラベリングされた画像(以下、ラベルW23の画像と称する)、および右方向を向いた顔が−20度ロール回転した顔とラベリングされた画像(以下、ラベル33の画像と称する)の9個のグループ(ラベル)に分類される(ラベリングされる)学習サンプルが用いられる。
即ち、この例の場合人の顔は、ヨー角およびロール角(図7)によって決定され、所定の角度のヨー角とロール角を有する人の顔の画像が学習される。
そして、本実施の形態においては、基本的に一定の数(例えば、100個)の弱判定器によりノードが構成され、各ノードがツリー構造に配置される。学習が、従ってその識別が、各ラベルの画像を識別できるように行われる。そして上位の階層の弱判別器では、下位の階層の弱判別器で行われる学習で対象とされるすべてのラベルを含むように学習が行われる。
例えば、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の9個のラベルに分類された画像を学習する場合、図20に示されるようなツリー構造が形成される。
最上位のノード81−1は、100個の弱判別器91−11 乃至91−1100により構成される。このノード81−1は、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の9個のラベル(すべてのラベル)に分類された学習サンプルを学習する。
ノード81−1の下位のノードとして、2個のノード81−1−1および81−1−2が形成されている。
ノード81−1−1は、100個の弱判別器91−1−11乃至91−1−1100 により構成され、ノード81−1−2は、その符号の図示は省略するが、100個の弱判別器91−1−21 乃至91−1−2100により構成される。
ノード81−1−1およびノード81−1−2は、より上位のノード81−1の子ノードとなり、相対的にノード81−1は、ノード81−1−1および81−1−2の親ノードとなる。ノード81−1−1とノード81−1−2は、親ノードであるノード81−1に関して兄弟ノードとなる。親ノードと子ノードは相対的なものであり、親ノードでも、さらに上の階層のノードがあれば、それとの関係では子ノードとなる。
ノード81−1−1は、親ノード81−1が学習するラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の9個のラベルに分類された学習サンプルのうちの、正面の画像に関するラベルW11乃至W13の画像を学習する。
ノード81−1−2は、親ノード81−1が学習するラベルのうちの、左向きの画像に関するラベルW21乃至W23の画像を学習する。
ノード81−1−1の下位のノード(子ノード)としては、ノード81−1−1−1が設けられている。ノード81−1−1−1は、100個の弱判別器91−1−1−11 乃至91−1−1−1100 により構成され、ラベルW11の学習サンプルを学習する。
ノード81−1−1−1の下位のノード(子ノード)としては、ノード81−1−1−1−1が設けられている。ノード81−1−1−1−1は、それより下位のノードが存在しない末端のノードであり、弱判別器91−1−1−1−11 乃至91−1−1−1−1L11 のL11個の弱判別器を有して構成され、ラベルW11の学習サンプルを学習する。
ノード81−1−2の下位のノード(子ノード)としては、ノード81−1−2−1が設けられている。ノード81−1−2−1は、その符号の図示は省略するが、100個の弱判別器91−1−2−11 乃至91−1−2−1100により構成され、ラベルW21の学習サンプルを学習する。
ノード81−1−2−1の下位のノード(子ノード)としては、ノード81−1−2−1−1が設けられている。ノード81−1−2−1−1は、それより下位のノードが存在しない末端のノードであり、その符号の図示は省略するが弱判別器91−1−2−1−11 乃至91−1−2−1−1L21 のL21個の弱判別器を有して構成され、ラベルW21の学習サンプルを学習する。
末端のノード81−1−1−1−1および81−1−2−1−1の弱判別器の数L11およびL21は、各ノードが対応するラベルの学習サンプルを学習した場合において、その重み付き誤り率etが0(充分小さい値)となる数とされる。
このようにすることで、弱判別器の数を少なくすることが可能となる。
即ち、このようにツリー構造にしないとすると、多くの弱判定器が必要になるのは、図8乃至図11を参照して上述したとおりである。
なお図20に示すツリー構造は、同じ学習サンプルを学習するにも係らず図6に示すツリー構造とは異なり、ラベルW31乃至ラベルW33の画像を学習するノード(ノード31−1−3に相当するノード)、並びにラベルW12、ラベルW13、ラベルW22、ラベルW23、ラベルW31、ラベルW32、およびラベルW33のそれぞれを学習するノード(ノード31−1−1−2,31−1−1−2−1,31−1−1−3,31−1−1−3−1,31―1−2−2,31−1−2−2−1,31−1−2−3,31−1−2−3−1,31−1−3−1,31−1−3−1−1,31−1−3−2,31−1−3−2−1,31−1−3−3,31−1−3−3−1に相当するノード)が存在しないが、その理由は後述する。
各ノードには、図21に示されるように、データ構造の定義がなされる。
ノードIDは、各ノードを識別する番号である。例えばノード81−1−1のデータ構造においては、ノードIDは、ノード81−1−1のノードIDが記述される。
親ノードIDは、自分自身から見た親ノードのノードIDを表す。ノード81−1−1の親ノードは、ノード81−1であり、ノード81−1のノードIDが記述される。なお親ノードが存在しない場合には(例えば、最上位のノード81−1の場合には)、親ノードIDは、−1とされる。
子ノードIDには、子ノードのIDが記述される。ただし、例えばノード81−1−1−1−1は、末端のノードであり、子ノードを有していないため、−1とされる。
ラベルは、このノードが処理するサンプルのラベルを表し、ノード81−1−1−1−1のラベルはラベルW11とされている。
弱判別器の数は、自分自身が有する弱判別器の数を表し、ノード81−1−1−1−1の場合、L11とされている。
(4)学習方法
次に、集団学習機56の学習方法について説明する。
与えられたデータが、顔か否か、そして顔であるとして、いずれの方向を向いている顔であるのかのパターン認識問題の前提として、予め人手によりラベリング(正解付け)された学習サンプルとなる画像(訓練データ)が用意される。
学習サンプルは、検出したい対象物体の領域を切り出した画像群(ポジティブサンプル)と、全く関係のない、例えば風景画などを切り出したランダムな画像群(ネガティブサンプル)とからなる。
これらの学習サンプルを基に学習アルゴリズムを適用し、判別時に用いる学習データを生成する。判別時に用いる学習データとは、本実施の形態においては、上述した学習データを含む以下の4つの学習データである。すなわち、
(A)2つのピクセル位置の組(K個)
(B)弱判別器の閾値(K個)
(C)重み付き多数決の重み(弱判別器の信頼度)(K個)
(D)打ち切り閾値(K個)
こららの情報は、各ノードにデータ構造として、弱判別器毎に記述されている(図21)。
(4−1)判別器の生成
以下に、上述したような、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33に分類された学習サンプルから、上記(A)乃至(D)に示す4種類の学習データを学習するアルゴリズムを説明する。
この学習処理を実施するため、集団学習機56は、図22に示されるような機能的構成を有している。
すなわち、集団学習機56は、初期化部301、ノード学習部302、判定部303、選択部304、および復帰部305により構成されている。これらの各部は、必要なデータを相互に授受することが可能とされる。
初期化部301は、各種の初期値を設定する。
ノード学習部302は、各ノードにおける弱判別器の学習処理を行う。
判定部303は、子ノードの数(size(numChild)と後述するブランチカウント(branch_count[i])との比較や、ノードIDが正であるか否かの判定などを行う。
選択部304は、次に処理するノードを選択する。
復帰部305は、処理対象とするノードを親ノードに戻すなどの処理を行う。
図23は、集団学習機56の学習方法を示すフローチャートである。なお、ここでは、学習アルゴリズムとして、弱判別の際の閾値として一定の値を使用するアルゴリズム(AdaBoost)に従った学習について説明するが、閾値として正解の確からしさ(確率)を示す連続値を使用する例えばReal-AdaBoostなど、弱判別器を複数結合するために集団学習するものであれば、学習アルゴリズムはAdaBoostに限らない。
上述したように、最初に、予め対象物または非対象物であることがラベリングされたN個の学習サンプルが用意される。
この学習サンプルは、例えば、N個の画像とされ、1個の画像は、24×24画像で構成される。各学習サンプルは、人の顔の画像とされ、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33のいずれかにラベリングされる。
ステップS11において、初期化部301は、初期値を設定する。
具体的には、処理対象のノードのIDを表す変数iに、最も上位のノード(根元のノード)のID(図20の例の場合、ノード81−1のID)が設定される。また、全てのデータのデータ重みDt に1/Nが設定される。Nは、サンプルの数を表す。さらに、全てのノードにおける多数決重みF(x)に0が初期設定され、各ノードから、それより下位のノード(子ノード)に訪ねた回数を表す変数branch_count[i]に0が初期設定される。
ステップS12において、ノード学習部302は、いま処理対象とされている変数iに設定されているIDを有するノードの学習処理を行う。
その詳細は、図25のフローチャートを参照して説明するが、これにより、いま処理対象とされているノードにおける弱判別器の学習が行われる。そのノードにおける処理結果は、子ノードに引き継ぐために保存される。
いまの場合、変数iには、図20のノード81−1のIDが設定されているため、ノード81−1の学習処理が行われる。
次に、ステップS13において、判定部303は、処理対象のノードの変数branch_count[i]の値と、処理対象のノードのデータ構造(図21)の子ノードの数が設定された変数size(numChild)とを比較する。branch_count[i]の値が子ノードの数より小さい場合には、まだ全ての子ノードに対しての学習処理を完了していないことになるので、処理はステップS14に進む。
いまの場合、ノード81−1のbranch_count[i]の値は0(ステップS11の処理)であり、ノード81−1は、2個の子ノード(81−1−1および81−1−2)を有しているので、ステップS13においてはYESと判定され、処理はステップS14に進む。
ステップS14において、選択部304は、次に処理するノードを選択する。
具体的には、いま処理対象とされているノード81−1の変数branch_count[i]の値が1だけインクリメントされ(いまの場合、1とされ)、さらに、処理対象とするノードを表す変数iに、変数branch_count[i]で表される子ノードのノードIDが設定される。
図20の例の場合、例えば、現在の処理対象のノード81−1の子ノードであるノード81−1−1のIDが変数iに設定される。
その後、処理はステップS12に戻り、変数iに設定されているノードに対するノードの学習処理が行われる。
いまの場合、ノード81−1−1の学習処理が行われる。
次にステップS13で、処理対象のノードに対応する変数branch_count[i]の値が処理対象のノードの子ノードの数より小さいか否かが、判定部303により判定される。いまの場合、処理対象とされているノードはノード81−1−1であり、その子ノードは、ノード81−1−1−1の1個である。
いま処理対象のノード81−1−1の変数branch_count[i]も、ステップS11の初期設定で0に設定されているため、変数branch_count[i]は、子ノードの数(=1)より小さいと判定され、処理はステップS14に進む。そして、ステップS14で、処理対象のノード81−1−1の変数branch_count[i]が1だけインクリメントされ(1とされ)、変数iに、ノード81−1−1の子ノードであって、ノード81−1−1のbranch_count[i]で表される子ノード81−1−1−1のIDが変数iに設定される。
その後、処理はステップS12に戻り、変数iに設定されているIDのノードであるノード81−1−1−1に対する学習処理が行われる。
次にステップS13で、処理対象のノードとなったノード81−1−1−1の変数branch_count[i]の値が子ノードの数より小さいか否かが、判定部303により判定される。ノード81−1−1−1の子ノードは、ノード81−1−1−1−1の1個である。
ノード81−1−1−1の変数branch_count[i]も、ステップS11の初期設定で0に設定されているため、変数branch_count[i]は、子ノードの数(=1)より小さいと判定され、処理はステップS14に進む。そして、ステップS14で、ノード81−1−1−1の変数branch_count[i]が1だけインクリメントされ(1とされ)、変数iに、ノード81−1−1−1の子ノードであって、ノード81−1−1−1のbranch_count[i]で表される子ノード81−1−1−1−1のIDが変数iに設定される。
その後、処理はステップS12に戻り、変数iに設定されているIDのノードであるノード81−1−1−1−1に対する学習処理が行われる。
次にステップS13で、処理対象となったノード81−1−1−1−1の変数branch_count[i]の値が子ノードの数より小さいか否かが、判定部303により判定される。ノード81−1−1−1−1は、末端のノードであるので、子ノードを有していない。
ノード81−1−1−1−1の変数branch_count[i]は、ステップS11の初期設定で0に設定されているが、子ノードは0なので(変数branch_count[i](=0)は、子ノードの数(=0)と等しいので)、子ノードの数より小さくないと判定され、ステップS15に進む。
ステップS15において、復帰部305は、処理対象を親ノードに戻す処理を行う。
具体的には、変数iに、現在処理対象とされているノードであるノード81−1−1−1−1の親ノードであるノード81−1−1−1のIDが設定される。
そして、ステップS16において、復帰部305は、ステップS15で設定した変数iが、0より大きいか否かを判定する。
最上位の親ノード(根元のノード)81−1以外は、そのIDに正の値が設定されているので、ステップS16では、いまの場合、YESの判定が行われる。そこで、復帰部305は、処理をステップS13に戻す。
ステップS13で、判定部303は、変数iに設定されているIDのノード(いまの場合、ノード81−1−1−1)の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。ノード81−1−1−1の変数branch_count[i]には、いまの場合、1が設定されており、その子ノードの数は1なので(変数branch_count[i](=1)は、子ノードの数(=1)と等しいので)、子ノードの数より小さくないと判定され、ステップS15に進む。
ステップS15において、いまの場合、変数iに、現在処理対象とされているノードであるノード81−1−1−1の親ノードであるノード81−1−1のIDが設定される。
そして、ステップS16において、ノード81−1−1のIDが設定されている変数iは、0より大きいので、YESの判定がなされ、処理は、ステップS13に戻る。
ステップS13で、判定部303は、変数iに設定されているIDのノード81−1−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。ノード81−1−1の変数branch_count[i]には、いまの場合、1が設定されており、その子ノードの数は1なので(変数branch_count[i](=1)は、子ノードの数(=1)と等しいので)、子ノードの数より小さくないと判定され、ステップS15に進む。
ステップS15で、いまの場合、変数iに、現在処理対象とされているノードであるノード81−1−1の親ノードであるノード81−1が設定される。
そして、ステップS16において、ノード81−1のIDが設定されている変数iは、0より大きいので、YESの判定がなされ、処理は、ステップS13に戻る。
ステップS13で、判定部303は、変数iに設定されているIDのノード81−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。ノード81−1の変数branch_count[i]には、いまの場合、1が設定されており、その子ノードの数は2なので、子ノードの数より小さいと判定され、ステップS14に進む。
ステップS14で、処理対象のノード81−1の変数branch_count[i]が1だけインクリメントされ(2とされ)、変数iに、ノード81−1の子ノードであって、ノード81−1のbranch_count[i]で表される子ノードのノードIDが設定される。図20の例の場合、ノード81−1のもう1つの子ノードであるノード81−1−2のIDが変数iに設定される。
以下、同様にして、ノード81−1−2、およびそれより下位のノードの学習が行われる。
そして、図20の例においては、最上位のノード81−1(根元のノード)に遡り、ステップS15において、その親ノードIDとして−1が変数iに設定されると、ステップS16において、変数i(=−1)が0より大きくないと判定され、処理は終了される。
以上のようにして、ツリー構造に配置された各ノードの弱判別器の学習が行われる。
次に、図23のステップS12におけるノードの学習処理の詳細について説明する。
この処理を行うために、図22のノード学習部302は、図24に示されるように構成されている。
即ち、ノード学習部302は、サンプル選択部331、引継ぎ部332、弱判別器選択部333、多数決重み算出部334、データ重み更新部335、重み付き多数決演算部336、閾値演算部337、判定部338、および保存部339により構成されている。
サンプル選択部331は、ノード学習に必要なポジティブサンプルとネガティブサンプルを選択する。
引継ぎ部332は、前段のノードで保存された値を後段のノードの処理の初期値として引き継ぐ処理を行う。
弱判別器選択部333は、データ重みDt に基づいて弱判別器の選択処理を行う。
多数決重み算出部334は、多数決重みαtを算出する。
データ重み更新部335は、データ重みDtを更新する処理を行う。
重み付き多数決演算部336は、各弱判別器の出力を多数決重みαtで重み付けし、累積加算することで重み付き多数決を演算する。具体的には、上述した式(6)の演算を行う。
閾値演算部337は、式(7)で示した打ち切り閾値(基準値RM)を算出する。
判定部338は、重み付き多数決の値が閾値演算部337により演算された打ち切り閾値RM より小さくなったか否か、あるいは、そのノードにおける全ての弱判別器の学習処理を終了したか否かなどの判定を行う。
保存部339は、そのノードにおける最後の弱判別器の判別結果(ノードの出力)として、重み付き多数決F(x)とデータ重みDtを保存する。
次に、図25のフローチャートを参照して、ノードの学習処理について説明する。
最初にステップS41において、サンプル選択部331は、そのノードにおいて学習対象とされるラベルが付されたポジティブサンプルを選択する。
例えば、図20のノード81−1の学習処理の場合は、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の全てのラベルのポジティブサンプルが選択される。これに対して、ノード81−1−1−1−1の学習処理においては、ラベルW11のポジティブサンプルだけが選択される。ネガティブサンプルはいずれの場合も、その全てが使用される。
ステップS42において、引継ぎ部332は、親ノードの出力を引き継ぐ処理を実行する。
最上位の親ノードであるノード81−1の場合には、その親ノードは存在しないため、重み付き多数決F(x)の値は0に初期設定され、データ重みDtの値は、1/Nに設定される(Nの値は学習サンプルの数を表す)。
親ノードが存在するノードの場合は、その親ノードの後述するステップS49の処理で、保存部339に保存された重み付き多数決F(x)とデータ重みDtが読み出され、初期値として設定される。
また、この親ノードの出力を引き継ぐ処理では、データ重みDtは、総和が1になるように正規化される。
次に、ステップS43において、弱判別器選択部333は、弱判別器の選択処理を実行する。
その処理の詳細は、図27のフローチャートを参照して説明するが、この処理により、K個(ピクセル間差分特徴量dの数)の弱判別器のうちの、重み付き誤り率etの値が最小の弱判別器が選択される(生成される)。
ステップS44において、多数決重み算出部334は、多数決重みαtを算出する。
この多数決重み(信頼度)αtは、式(8)に基づいて算出される。
Figure 0004556891
上記式(8)から明らかなように、重み付き誤り率et が小さいほど、その弱判別器の信頼度αt が大きくなる。
ステップS45において、データ重み更新部335は、学習サンプルのデータ重みDt,i を更新する。
即ち、式(8)にて得られた信頼度αtを使用して、下記式(9)により学習サンプルのデータ重みDt,iが更新される。データ重みDt,iは、通常全部足し合わせると1によるように正規化する必要がある。そこでデータ重みDt,iは、式(10)に示されるように正規化される。
Figure 0004556891
ステップS46において、重み付き多数決演算部336は、重み付き多数決F(x)を更新する処理を実行する。
この処理は式(6)に基づいて行われる。多数決重みαtは、ステップS44で算出された値であり、ft(x)の値は、ステップS43で算出された値である。
次に、ステップS47において、閾値演算部337は、打ち切り閾値RMを算出する。この演算は式(7)に基づいて行われる。この打ち切り閾値RMは、後述する図34のステップS175または図35のステップS195の処理に用いられる。
ステップS48において、判定部338は、いま処理対象としているノードが子ノードを有している場合は、全ての弱判別器の学習が完了したか否かを判定し、子ノードを有していない場合には、ステップS43の処理で演算された重み付き誤り率etの値が、充分小さくなったか否かを判定する。
子ノードを有する場合、上述したように、この実施の形態においては、弱判別器の数は100個とされている。従って、100個の弱判別器の学習がまだ完了していない場合には、処理はステップS43に戻り、それ以降の処理が繰り返し実行される。末端のノードの場合には、重み付き誤り率etが充分小さくなるまで実行される。
具体的には、重み付き誤り率etの値が0以下となった場合には、充分小さくなったと判定され、まだ、充分小さくならない場合には、処理はステップS43に戻り、それ以降の処理が繰り返し実行される。即ち、ステップS43乃至S48の処理は、そのノードにおける各弱判別器の数の回数分実行される。
ステップS48において、全ての弱判別器の学習が完了したと判定された場合、処理はステップS49に進み、保存部339は、最後の弱判別器の判別結果としての重み付き多数決F(x)の値と、データ重みDtの値を、出力として保存する。この保存した出力が、下位の子ノードにおいて、ステップS42において初期値として引き継がれる。
以上のようにして、図25の処理が、ノード毎に、図23のステップS12で行われる。
(4−2)弱判別器の生成
次に、上述した図25のフローチャートのステップS43における弱判別器の選択処理(生成方法)について説明する。
弱判別器の生成は、弱判別器が2値出力の場合と、上記式(5)に示す関数f(x)として連続値を出力する場合とで異なる。また、2値出力の場合においても、上記式(2)に示されるように1つの閾値Th1で判別する場合と、式(3)または式(4)に示されるように、2つの閾値Th11,Th12、又は閾値Th21,Th22で判別する場合とで処理が若干異なる。ここでは、1つの閾値Th1で2値出力する弱判別器の学習方法(生成方法)を説明する。
このため、弱判別器選択部333は、図26に示されるように、決定部421、頻度分布算出部422、閾値設定部423、弱仮説演算部424、重み付き誤り率演算部425、判定部426、および選定部427により構成される。
決定部421は、入力された学習サンプルから、2個の画素をランダムに決定する。
頻度分布算出部422は、決定部421により決定された画素に関するピクセル間差分特徴dを収集し、その頻度分布を算出する。
閾値設定部423は、弱判別器の閾値を設定する。
弱仮説演算部424は、弱判別器による弱仮説の演算を行い、その判別結果f(x)を出力する。
重み付き誤り率演算部425は、式(11)に示される重み付き誤り率etを演算する。
Figure 0004556891
上記式(11)に示されるように、重み付き誤り率etは、学習サンプルのうち、弱判別器の判別結果が誤っているもの(ft(xi)≠yi )である学習サンプル(yi=1とラベリングされた学習サンプルであって、f(xi)=−1と判定された学習サンプル、およびyi =−1とラベリングされた学習サンプルであって、f(xi)=1と判定された学習サンプル)のデータ重みのみを加算したものとなる。上述したように、データ重みDt,i が大きい(判別が難しい)学習サンプルの判別を間違えると重み付き誤り率etが大きくなる。
判定部426は、弱判別器の閾値Thと最大のピクセル間差分特徴dとの大小関係を判定する。
選定部427は、最小の重み付き誤り率etに対応する閾値Thに対応する弱判別器を選定する。
図27は、1つの閾値Th1で2値出力するステップS43の弱判別器の学習方法(生成方法)のフローチャートである。
ステップS71において、決定部421は、1つの学習サンプル(24×24画素)中の2つの画素の位置S1,S2をランダムに決定する。
24×24画素の学習サンプルを使用する場合、2つの画素の選択方法は、576×575通りあるが、そのうちの1つが選択される。ここで、2つの画素の位置をS1,S2とし、その輝度値をそれぞれI1,I2とする。
ステップS72において、頻度分布算出部422は、すべての学習サンプルに対してピクセル間差分特徴を求め、その頻度分布を算出する。すなわち、全ての(N個の)学習サンプルに対して、ステップS71にて選択した2つの位置S1,S2の画素の輝度値I1,I2の差(I1−I2)であるピクセル間差分特徴dが求められ、図15Aに示されているようなヒストグラム(頻度分布)が算出される。
ステップS73において、閾値設定部423は、最小のピクセル間差分特徴dより小さい閾値Thを設定する。
例えば、図28に示されるように、ピクセル間差分特徴dの値が、d1乃至d9に分布する場合、最小のピクセル間差分特徴dの値はd1となる。従って、このピクセル間差分特徴d1より小さい閾値Th31がここで閾値Thとして設定される。
次に、ステップS74において、弱仮説演算部424は、弱仮説として式(12)を演算する。なお、sign(A)は、値Aが正のとき+1、負のとき−1を出力する関数である。
f(x)=sign(d−Th) ・・・(12)
今の場合、Th=Th31であるため、ピクセル間差分特徴dの値がd1乃至d9のいずれであっても、d−Thの値は正となる。従って、式(12)で表される弱仮説の判別結果f(x)は、+1となる。
ステップS75において、重み付き誤り率演算部425は、重み付き誤り率et1,et2を演算する。重み付き誤り率et1とet2とは、式(13)の関係にある。
et2=1−et1 ・・・・・(13)
重み付き誤り率et1は、式(11)により求められる値である。重み付き誤り率et1は、位置S1,S2の画素値をそれぞれI1,I2とした場合の重み付き誤り率である。これに対して、重み付き誤り率et2は、位置S1の画素値をI2とし、位置S2の画素値をI1とした場合の重み付き誤り率である。
すなわち、第1の位置を位置S1とし、第2の位置を位置S2とする組み合わせは、第1の位置を位置S2とし、第2の位置を位置S1とする組み合わせとは異なる組み合わせとなる。しかしながら、両者の重み付き誤り率etの値は、上記した式(13)の関係にある。そこで、ステップS75の処理において、2つの組み合わせの重み付き誤り率etを同時にまとめて演算するのである。これにより、仮にそのようにしなければ、ステップS71乃至ステップS81の処理を、ステップS81において学習サンプルの画素の中から2個の画素を抽出する全組み合わせの数分(K回)繰り返したと判定されるまで繰り返すことが必要になるのであるが、ステップS75で、2つの重み付き誤り率et1,et2を演算しておくことで、その繰り返し回数を全組み合わせ回数Kの1/2とすることができる。
そこで、ステップS76において、重み付き誤り率演算部425は、ステップS75の処理で演算した重み付き誤り率et1とet2のうち、小さい方を選択する。
ステップS77において、判定部426は、閾値が最大のピクセル間差分特徴より大きいか否かを判定する。すなわち、いま設定されている閾値Thが、最大のピクセル間差分特徴d(例えば、図28に示されている例の場合、d9)より大きいか否かを判定する。いまの場合、閾値Thは、図28における閾値Th31であるので、最大のピクセル間差分特徴d9より小さいと判定され、処理はステップS78に進む。
ステップS78において、閾値設定部423は、現在の閾値に最も近い次の大きさのピクセル間差分特徴と、さらにその次の大きさのピクセル間差分特徴の中間の大きさの閾値Thを設定する。いまの場合、図28の例において、現在の閾値Th31に最も近い次の大きさのピクセル間差分特徴d1と、さらに次の大きさのピクセル間差分特徴d2の中間の値の閾値Th32が設定される。
その後、処理はステップS74に戻り、弱仮説演算部424は、上記した式(12)に従って、弱仮説の判定出力f(x)を演算する。この場合、図28に示されるように、ピクセル間差分特徴dの値がd2乃至d9のとき、f(x)の値は+1となり、d1のときは−1となる。
ステップS75において、式(11)に従って、重み付き誤り率et1が演算され、式(13)に従って重み付き誤り率et2が演算される。そして、ステップS76において、重み付き誤り率et1とet2のうち、小さい方が選択される。
ステップS77において、再び閾値が最大のピクセル間差分特徴より大きいか否かが判定される。いまの場合、閾値Th32は、最大のピクセル間差分特徴d9より小さいので、処理はステップS78に進み、閾値Thは、ピクセル間差分特徴d2とd3の間の閾値Th33に設定される。
以上のようにして、閾値Thが順次大きい値に更新される。ステップS74においては、閾値Thが、例えば、ピクセル間差分特徴d3とd4の間のTh34である場合には、ピクセル間差分特徴dの値がd4以上である場合には+1、d3以下である場合には−1となる。以下同様に、ピクセル間差分特徴dの値が閾値Thi以上である場合には、弱仮説の判別結果f(x)の値が+1となり、閾値Thi以下である場合には−1となる。
以上の処理が、ステップS77において、閾値Thが最大のピクセル間差分特徴より大きいと判定されるまで繰り返し実行される。図28の例においては、閾値が最大のピクセル間差分特徴d9より大きい値Th40となるまで繰り返される。すなわち、ステップS74乃至ステップS78の処理を繰り返し実行することで、1つの画素の組み合わせを選択した場合における、各閾値Thを設定したときの重み付き誤り率etが求められることになる。そこで、ステップS79において、選択部427は、それまでに求めた重み付き誤り率etの中から、最小の重み付き誤り率を求める。
そして、ステップS80において、選定部427は、最小の重み付き誤り率に対応する閾値を現在の弱仮説の閾値とする。すなわち、ステップS79で選定された最小の重み付き誤り率etが得られる閾値Thiが、その弱判別器(1組の画素の組み合わせにより生成される弱判別器)の閾値とされる。
ステップS81において、判定部426は、処理を全組み合わせ分繰り返したか否かを判定する。全組み合わせ分の処理がまだ実行されていない場合には、処理はステップS71に戻り、それ以降の処理が繰り返し実行される。すなわち、24×24個の画素の中から、再び2つの画素の位置S1,S2(但し、前回とは異なる位置)がランダムに決定され、その位置S1,S2の画素I1,I2に関して同様の処理が実行される。
以上の処理は、ステップS81において、学習サンプルから2個の画素を抽出可能な全組み合わせの数分(K回)繰り返されたと判定されるまで繰り返し実行される。ただし、上述したように、この実施の形態においては、ステップS75において、位置S1,S2が逆の場合における処理を実質的に実行しているため、ステップS81における処理は、全組み合わせの数Kの1/2でよいことになる。
ステップS81において、全ての組み合わせの処理が完了したと判定された場合、ステップS82において、選定部427は、生成した弱判別器の中で最も重み付き誤り率の小さいものを選択する。すなわち、これにより、K個の弱判別器のうちの1つの弱判別器(例えば、図13の弱判別器61)が学習され、生成されたことになる。
その後、処理は図25のステップS43に戻り、ステップS44以降の処理が実行される。そして、ステップS48において、子ノードを有する場合、全ての弱判別器の学習が完了したと判定されるか、子ノードを有していない場合、重み付き誤り率が充分小さくなったと判定されるまで、図25の処理が繰り返し実行されることになる。すなわち、図25の2回目の処理で、図13の弱判別器61の生成学習が行れ、3回目の処理で弱判別器61の生成学習が行われる。そして、そのノードにおける弱判別器の数の分だけ、弱判別器61iの学習生成が行われることになる。
(5)対象物検出方法
次に、図12に示す対象物検出装置51の対象物検出方法について説明する。
この処理を行うため、判別器55は、図29に示されるように、初期化部471、判定部472、選択部473、復帰部474、引継ぎ部475、弱仮説計算部476、評価値計算部477、設定部478、および出力部479により構成される。
初期化部471は、最も上位のノードの弱判別器の初期値を設定する処理を行う。
判定部472は、次のスケーリング画像の有無、対象物領域の重複の有無、顔画像であるか否かの判定、子ノードがあるか否かの判定、変数branch_count[i]と子ノードの数の大小判定、変数iが正であるか否かの判定などを行う。
選択部473は、重複する2つの領域を抽出したり、領域を選択したりする処理を行う。
復帰部474は、処理ノードを親ノードに戻す処理を行う。
引継ぎ部475は、親ノードの出力を引き継ぐ処理を行う。
弱仮説計算部476は、式(12)に基づいて、弱仮説を計算する。評価値計算部477は、式(6)に基づいて、評価値sを計算する。
設定部478は、評価値sに最大値を設定する。出力部479は、評価値sを出力する。
なお、これらの初期化部471乃至出力部479は、必要なデータを相互に授受することが可能である。
検出時(判別工程)においては、上述のようにして学習工程で生成された弱判別器群を利用した判別器55を使用し、所定のアルゴリズムに従って画像中から対象物体(人の顔)を検出する。この処理が図30のフローチャートに示されている。
ステップS101において、スケーリング部53は、画像出力部52より入力された濃淡画像を所定の割合で縮小スケーリングする処理を実行する。
画像出力部52には、入力画像として濃淡画像が直接入力されてもよく、また画像出力部52にてカラーの入力画像を濃淡画像に変換してもよい。
スケーリング部53は、当初、画像出力部52から与えられた画像をスケール変換せずにそのまま出力し、次のタイミング以降で縮小スケーリングしたスケーリング画像を出力するが、便宜上、スケーリング部53から出力する画像は全てスケーリング画像という。スケーリング画像が生成されるタイミングは、前に出力されたスケーリング画像の全領域の顔検出が終了した時点であり、スケーリング画像がウインドウ画像より小さくなった時点で、次のフレームの入力画像の処理が開始される。
ステップS102において、走査部54は、探索ウインドウを走査し、画像を切り出す処理を実行する。すなわち、走査部54は、スケーリングされた画像上で探索ウインドウを所定の位置に配置し、そのウインドウ内の画像をウインドウ画像として切り出し、判別器55に出力する。
ステップS103において、判別器55は、識別処理を実行する。この識別処理の詳細は、図31のフローチャートを参照して後述するが、これにより、探索ウインドウ内の画像が人の顔の画像であるか否か、人の顔の画像である場合には、いずれの方向を向いた顔の画像であるのか(ラベルW11乃至W13、ラベルW21乃至W23、またはラベルW31乃至W33のうちのいずれに分類される画像であるのか)が判定される。
次に、ステップS104において、判別器55の判定部472は、次の探索ウインドウがあるか否かを判定する。次の探索ウインドウがある場合には、処理はステップS102に戻り、走査部54は、現在のスケーリングの画像の探索ウインドウを1画素分右方向に移動し、その画像を切り出して判別器55に出力する。そして、判別器55は、ステップS103の処理を実行することで、そのウインドウ画像がどのラベルの人の顔の画像であるのかを判定する。
以上のようにして、探索ウインドウが、図4に示されるように、右下方向に順次1画素分ずつずらされ、各探索ウインドウの画像がどのラベルの人の顔の画像であるのかが判定され、探索ウインドウの位置がスケーリング画像の右下の位置まで移動したとき、ステップS104において、次の探索ウインドウが存在しないと判定され、処理はステップS105に進む。
ステップS105において、スケーリング部53は、次のスケーリング画像があるか否かを判定する。次のスケーリング画像がある場合には、ステップS101において、スケーリング部53は、さらに、縮小率を上げた(より縮小された)スケーリング画像を生成し、走査部54に出力する。そして、そのスケーリング画像について、上述した場合と同様の処理が実行される。
以上の処理が、ステップS105において、次のスケーリング画像が存在しないと判定されるまで繰り返し実行される。すなわち、スケーリング画像がウインドウ画像より小さくなるまで上述した処理が繰り返し実行される。
上述したように、探索ウインドウは、1画素分ずつ右下方向に順次移動される。従って、例えば、1つの探索ウインドウの画像が人の顔であると判定された場合、その探索ウインドウを1画素分右方向または下方向にずらしたウインドウの画像も、多くの場合、人の顔の画像と判定される。このようなことから、同一の顔の画像が、複数のウインドウ画像で、人の顔の画像であるとして検出されることになる。そこで、全てのスケーリング画像の処理が終了した場合、探索ウインドウの重なりを削除する処理が実行される。
このため、ステップS106において、判定部472は、2つ以上の対象物領域が重複するか否かを判定する。2つ以上の対象物領域が重複する場合には、ステップS107において、選択部473は、互いに重複する2つの領域を抽出する処理を実行する。例えば、1つの探索ウインドウの画像が対象物領域で得られたと判定された場合、1画素分右方向にずれた探索ウィンウィンドウも人の顔の画像であると判定されるため、この2つのウインドウの領域が抽出される。ステップS108において、選択部473は、ステップS107で抽出された2つの領域のうち、評価値s(図34のステップS174または図35のステップS194で後述する)が大きい方の領域を選択する。
その後、処理はステップS106に戻り、それ以降の処理が繰り返し実行される。
以上のようにして、評価値sが小さい領域は信頼度が低いとみなして無視し、最も評価値sが高い領域が選択される。以上の処理は、ステップS106において、2つ以上の対象物領域が重複しないと判定されるまで繰り返され、重複しないと判定された場合、そのフレームにおける処理は終了される。そして、必要に応じてさらに次のフレームの処理が実行される。
次に、図31のフローチャートを参照して、図30のステップS103における識別処理について説明する。
ステップS131において、判別器55の初期化部471は、初期値を設定する処理を実行する。具体的には、処理ノードのIDを表す変数iに最も上位のノード(根元のノード)のIDを設定する。
なお図20を参照して説明した学習処理によれば、図20に示すノードが学習され、各ノードを構成する弱判別器の2つのピクセル位置等(図21)の学習結果が得られている。すなわち判定部55には、図32中、実線で示されるノード(以下、適宜、学習済みノードと称する)が形成されるが、本発明における判定部55には、その他、図32中、破線で示されるノード(以下、未学習ノードと称する)が形成される。このノードは、実際に学習されていないので、2つのピクセル位置等の学習結果は対応付けられていない。なお未学習ノードには、ノードID、親ノードID、子ノードID、ラベル、弱判別器の数等が対応付けられている(図21)。
最上位の学習済みノード81−1は、100個の弱判別器91−11 乃至91−1100により構成される。この学習済みノード81−1は、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33の画像を識別する。
学習済みノード81−1の下位ノードとして、学習済みノード81−1−1および81−1−2の他、1個の未学習ノード81−1−3が形成されている。
学習済みノード81−1−1は、その符号の図示は省略するが、100個の弱判別器91−1−11乃至91−1−1100 により構成され、ノード81−1−2は、その符号の図示は省略するが、100個の弱判別器91−1−21乃至91−1−2100により構成される。未学習ノード81−1−3は、弱判別器を有していない。
学習済みノード81−1−1は、弱判別器91−1−1を利用して、ラベルW11乃至W13の画像を識別する。
学習済みノード81−1−2は、弱判別器91−1−2を利用して、ラベルW21乃至W23の画像を識別する。
未学習ノード81−1−3は、学習済みノード81−1−2の弱判別器91−1−2を後述するように利用してラベルW31乃至W33の画像を識別する。
学習済みノード81−1−1の下位のノード(子ノード)として、学習済みノード81−1−1−1の他、未学習ノード81−1−1−2およびノード81−1−1−3が形成されている。
学習済みノード81−1−1−1は、その符号の図示は省略するが100個の弱判別器91−1−1−11 乃至91−1−1−1100 により構成され、ラベルW11の画像を識別する。
未学習ノード81−1−1−2および未学習ノード81−1−1−3のそれぞれは、弱判別器を有していないが、学習済みノード81−1−1−1の弱判別器91−1−1−1を後述するように利用して、ラベルW12またはラベルW13の画像を識別する。
学習済みノード81−1−1−1の下位のノード(子ノード)としては、学習済みノード81−1−1−1−1が設けられている。学習済みノード81−1−1−1−1は、それより下位のノードが存在しない末端のノードであり、その符号の図示は省略するが弱判別器91−1−1−1−11 乃至91−1−1−1−1L11 のL11個の弱判別器を有して構成され、ラベルW11の画像を識別する。
未学習ノード81−1−1−2の下位のノード(子ノード)としては、未学習ノード81−1−1−2−1が設けられている。未学習ノード81−1−1−2−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−1−1−1の弱判別器91−1−1−1−1を利用して、ラベルW12の画像を識別する。
未学習ノード81−1−1−3の下位のノード(子ノード)としては、未学習ノード81−1−1−3−1が設けられている。未学習ノード81−1−1−3−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−1−1−1の弱判別器91−1−1−1−1を利用して、ラベルW13の画像を識別する。
学習済みノード81−1−2の子ノードとして、学習済みノード81−1−2−1の他、未学習ノード81−1−2−2および未学習ノード81−1−2−3が形成されている。
学習済みノード81−1−2−1は、その符号の図示は省略するが100個の弱判別器91−1−2−11 乃至91−1−2−1100 により構成され、ラベルW21の画像を識別する。
未学習ノード81−1−2−2および未学習ノード81−1−2−3のそれぞれは、弱判別器を有していないが、学習済みノード81−1−2−1の弱判別器91−1−2−1を後述するように利用して、ラベルW22またはラベルW23の画像を識別する。
学習済みノード81−1−2−1の子ノードとしては、学習済みノード81−1−2−−1−1が設けられている。学習済みノード81−1−2−1−1は、それより下位のノードが存在しない末端のノードであり、その符号の図示は省略するが弱判別器91−1−2−1−11 乃至91−1−2−1−1L21 のL21個の弱判別器を有して構成され、ラベルW21の画像を識別する。
未学習ノード81−1−2−2の子ノードとしては、未学習ノード81−1−2−2−1が設けられている。未学習ノード81−1−2−2−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−2−1−1の弱判別器91−1−2−1−1を利用して、ラベルW22の画像を識別する。
未学習ノード81−1−2−3の子ノードとしては、未学習ノード81−1−2−3−1が設けられている。未学習ノード81−1−2−3−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−2−1−1の弱判別器91−1−2−1−1を利用して、ラベルW23の画像を識別する。
未学習ノード81−1−3の子ノードとして、未学習ノード81−1−3−1、未学習ノード81−1−3−2、および未学習ノード81−1−3−3が形成されている。
未学習ノード81−1−3−1、未学習ノード81−1−3−2、および未学習ノード81−1−3−3のそれぞれは、弱判別器を有していないが、学習済みノード81−1−2−1の弱判別器91−1−2−1を後述するように利用して、ラベルW31、ラベルW32、またはラベルW33の画像を識別する。
未学習ノード81−1−3−1の子ノードとしては、未学習ノード81−1−3−1−1が設けられている。未学習ノード81−1−3−1−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−2−1−1の弱判別器91−1−2−1−1を利用して、ラベルW31の画像を識別する。
未学習ノード81−1−3−2の子ノードとしては、未学習ノード81−1−3−2−1が設けられている。未学習ノード81−1−3−2−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−2−1−1の弱判別器91−1−2−1−1を利用して、ラベルW32の画像を識別する。
未学習ノード81−1−3−3の子ノードとしては、未学習ノード81−1−3−3−1が設けられている。未学習ノード81−1−3−3−1は、それより下位のノードが存在しない末端のノードであり、弱判別器を有していないが、後述するように学習済みノード81−1−2−1−1の弱判別器91−1−2−1−1を利用して、ラベルW33の画像を識別する。
図31に戻りステップS131において、図32の例の場合、いま、最上位の学習済みノード81−1が設定される。さらに、各ノード毎に設定される変数であって、そのノードが訪ねた子ノードの数を表す変数branch_count[i]の値が、全てのノードの分について、0に初期設定される。また、式(6)に基づいて演算された重み付き多数決である評価値sが、全てのノードの分について0に初期設定される。
次に、ステップS132において、評価値計算部477などにより、評価値計算処理が実行される。その詳細は、図33、および図34または図35のフローチャートを参照して後述するが、これにより、処理対象とされている学習済みノードまたは未学習ノードの評価値sが演算される。
ステップS133において、判定部472は、いま識別対象としているウインドウ画像が顔か否かを判定する。この判定は、ステップS132で計算された評価値sに基づいて行われる。
評価値sの値が正であれば(より具体的には、後述する図34のステップS178または図35のステップS198で設定される基準値(−HUGE_VAL)より大きければ)顔であると判定され、0以下であれば(基準値より小さければ)顔ではないと判定される。
識別対象とされるウインドウ画像が顔の画像ではないと判定された場合、ステップS138において、復帰部474は、処理対象としてのノードを親ノードに戻す処理を実行する。
具体的には、変数iに親ノードのIDが設定される。いま、処理対象とされているノードは、最上位のノードである学習済みノード81−1であるから、その親ノードは存在しない。そこで、変数iには、上述したように−1が設定される。
ステップS139において、判定部472は、ステップS138で設定された変数iの値が0より大きいか否かを判定し、0より大きくないと判定した場合、ステップS140に進む。
いまの場合、変数iの値は−1であり、0より大きくないので、ステップS140に進む。
ステップS140おいて、判定部472は、いま処理しているウインドウ画像は顔でないと判定する。
すなわちいまの場合には、一番上位の学習済みノード81−1の処理だけで、ウインドウ画像は人の顔の画像ではないと判定されたことになる。
ステップS133で、ウインドウ画像は、人の顔の画像であると判定された場合(評価値sの値が正であると判定された場合)、ステップS134に進み、判定部472は、いま処理対象としているノードに子ノードがあるか否かを判定し、子ノードがあると判定した場合、ステップS135に進む。
いま、処理対象としている学習済みノード81−1は、学習済みノード81−1−1、学習済みノード81−1−2、および未学習ノード81−1−3の3個の子ノードを有しているので、ステップS135に進む。
ステップS135において、判定部472は、処理の対象となっているノード81の変数branch_count[i]が、そのノード81の子のノードの数(size(numChild))より小さいか否かを判定し、小さいと判定した場合、ステップS136に進む。
いま、学習済みノード81−1の変数branch_count[i]の値は0であり(いまの場合、ステップS131において0に初期設定されている)、子ノードの数は3であるから、変数の値は子ノードの数より小さいと判定され、ステップS136に進む。
ステップS136において、選択部473は、次に処理するノードを選択する。
具体的には、処理対象のノードの変数branch_count[i]の値が1だけインクリメントされ、設定された変数branch_count[i]の値に対応する子ノードのIDが変数iに設定される。
いまの場合、学習済みノード81−1の変数branch_count[i]に1が設定される。そして、設定された変数branch_count[i]の値に対応する子ノードのIDが変数iに、例えば、学習済みノード81−1の子ノードである学習済みノード81−1−1のIDが設定される。
そして、処理は、ステップS132に戻り、変数iに設定されているIDのノード(いまの場合、学習済みノード81−1−1)の評価値計算処理が実行される。すなわち、学習済みノード81−1−1により評価値sが計算される(ウインドウ画像がどのラベルの人の顔の画像であるのかが判定される)。
ステップS133で、判定部472は、ウインドウ画像が顔か否か(評価値sが正であるか否か)を判定し、ウインドウ画像が顔の画像である場合には、ステップS134に進み、現在の処理対象のノードである学習済みノード81−1−1に子ノードがあるか否かを判定する。
学習済みノード81−1−1は、学習済みノード81−1−1−1、未学習ノード81−1−1−2、および未学習ノード81−1−1−3の合計3個の子ノードを有しているので、ステップS135に進む。
ステップS135において、判定部472は、学習済みノード81−1−1の変数branch_count[i]の値を、その子ノードの数(いまの場合3)と比較する。
いま、変数branch_count[i]には、ステップS131の処理より0に初期設定されており、学習済みノード81−1−1の子ノードの数は3であるので、branch_count[i]の値は、子ノードの数より小さいので、ステップS136に進む。
ステップS136において、選択部473は、学習済みノード81−1−1の変数branch_count[i]の値を1だけインクリメントして、1を設定した後、学習済みノード81−1−1の子ノードであって、そのインクリメントした変数branch_count[i]の子ノードである学習済みノード81−1−1−1を変数iに設定する。
そして、ステップS132において、変数iに設定されているIDのノードであるノード81−1−1−1の評価値sが評価値計算部477により計算される。
ステップS133で、判定部472は、学習済みノード81−1−1−1の評価値sがウインドウ画像が顔であることを表しているか否かを判定し、顔である場合には、ステップS134に進み、現在の処理対象の学習済みノード81−1−1−1に、子ノードがあるか否かを判定する。
学習済みノード81−1−1−1は、1個の子ノードの学習済みノード81−1−1−1−1を有するので、ステップS135に進む。
ステップS135において、学習済みノード81−1−1−1の変数branch_count[i]の値が、その子ノードの数より小さいか否かが判定される。
いま、変数branch_count[i]には、ステップS131の処理より0に初期設定されており、学習済みノード81−1−1−1の子ノードの数は1であるので、branch_count[i]の値は、子ノードの数より小さいので、ステップS136に進む。
ステップS136において、選択部473は、学習済みノード81−1−1−1の変数branch_count[i]の値を1だけインクリメントして、1を設定した後、学習済みノード81−1−1−1の子ノードであって、そのインクリメントした変数branch_count[i]に対応する子ノードの学習済みノード81−1−1−1−1のIDが変数iに設定される。
そしてステップS132において、評価値計算部477は、学習済みノード81−1−1−1−1による評価値を計算する。
ステップS133で、判定部472は、学習済みノード81−1−1−1−1の評価値sが正であるか(顔画像であるか)否かを判定し、正である場合には、ステップS134に進み、現在の処理対象の学習済みノード81−1−1−1−1に、子ノードがあるか否かを判定する。
学習済みノード81−1−1−1−1は、末端のノードであり、子ノードを有していない。そこでこの場合には、ステップS137において、判定部472は、ウインドウ画像は、学習済みノード81−1−1−1−1が対応付けられているラベルW11の顔と判定する。
これに対して、ステップS133で、評価値sが負である場合(顔ではないと判定された場合)、ステップS138において、復帰部474は、変数iに親ノードのIDを設定する。
いまの場合、学習済みノード81−1−1−1−1の親ノードである学習済みノード81−1−1−1のIDが変数iに設定される。
ステップS139で、変数iは正であると判定され、ステップS135で、判定部472は、ノード81−1−1−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。
いまの場合、変数branch_count[i]の値は1であり、子ノードの数は1で、両者は等しいので、小さくないと判定され、ステップS138で、変数iに親ノードのIDが設定される。
いまの場合、学習済みノード81−1−1−1の親ノードである学習済みノード81−1−1のIDが変数iに設定される。
ステップS139で、変数iは正であると判定され、ステップS135で、判定部472は、学習済みノード81−1−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。
いまの場合、変数branch_count[i]の値は1であり、学習済みノード81−1−1の子ノードの数は3であるので、小さくないと判定され、ステップS136で、選択部473は、変数branch_count[i]の値を1だけインクリメントして、2とする。さらに、その、変数branch_count[i]に対応する子ノードのIDが変数iに設定される。
具体的には、未学習ノード8−1−1−2のIDが変数iに設定される。ステップS132において、評価値計算部477により、この未学習ノード81−1−1−2の評価値sが演算される。
そして、ステップS133で、判定部472は、未学習ノード81−1−1−2の評価値sがウインドウ画像が顔であることを表しているか否かを判定し、顔である場合には、ステップS134に進み、現在の処理対象の未学習ノード81−1−1−2に、子ノードがあるか否かを判定する。
未学習ノード81−1−1−2は、1個の子ノードの未学習ノード81−1−1−2−1を有するので、ステップS135に進む。
ステップS135において、未学習ノード81−1−1−2の変数branch_count[i]の値が、その子ノードの数より小さいか否かが判定される。
いま、変数branch_count[i]には、ステップS131の処理より0に初期設定されており、未学習ノード81−1−1−2の子ノードの数は1であるので、branch_count[i]の値は、子ノードの数より小さいので、ステップS136に進む。
ステップS136において、選択部473は、未学習ノード81−1−1−2の変数branch_count[i]の値を1だけインクリメントして、1を設定した後、未学習ノード81−1−1−2の子ノードであって、そのインクリメントした変数branch_count[i]に対応する子ノードの未学習ノード81−1−1−2−1のIDが変数iに設定される。
そしてステップS132において、評価値計算部477は、未学習ノード81−1−1−2−1による評価値を計算する。
ステップS133で、判定部472は、未学習ノード81−1−1−2−1の評価値sが正であるか(顔画像であるか)否かを判定し、正である場合には、ステップS134に進み、現在の処理対象の未学習ノード81−1−1−2−1に、子ノードがあるか否かを判定する。
未学習ノード81−1−1−2−1は、末端のノードであり、子ノードを有していない。そこでこの場合には、ステップS137において、判定部472は、ウインドウ画像は、未学習ノード81−1−1−2−1が対応付けられているラベルW12の顔と判定する。
これに対して、ステップS133で、評価値sが負である場合(顔ではないと判定された場合)、ステップS138において、復帰部474は、変数iに親ノードのIDを設定する。
具体的には、いまの場合、未学習ノード81−1−1−2−1の親ノードである未学習ノード81−1−1−2のIDが変数iに設定される。
ステップS139で、変数iは正であると判定され、ステップS135で、判定部472は、未学習ノード81−1−1−2の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。
いまの場合、変数branch_count[i]の値は1であり、子ノードの数は1で、両者は等しいので、小さくないと判定され、ステップS138で、変数iに、未学習ノード81−1−1−2の親ノードである学習済みノード81−1−1のIDが変数iに設定される。
ステップS139で、変数iは正であると判定され、ステップS135で、判定部472は、学習済みノード81−1−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。
いまの場合、変数branch_count[i]の値は2であり、学習済みノード81−1−1の子ノードの数は3であるので、小さくないと判定され、ステップS136で、選択部473は、変数branch_count[i]の値を1だけインクリメントして、3とする。さらに、その、変数branch_count[i]に対応する子ノードの未学習ノード8−1−1−3のIDが変数iに設定される。ステップS132において、評価値計算部477により、この未学習ノード81−1−1−3の評価値sが演算される。
次に、図33のフローチャートを参照して、図31のステップS132における評価値計算処理について説明する。
ステップS161において、評価値が計算されるノードが学習済みノードであるか否かを判定し、学習済みノードであると判定した場合、ステップS162に進む。
ステップS162において、後述する学習済みノードに対する評価値計算処理が行われる。
一方、ステップS161で、学習済みノードではないと判定された場合、ステップS163において、後述する未学習ノードに対する評価値計算処理が行われる。
ステップS162またはステップS163で、学習済みノードまたは未学習ノートに対する評価値計算処理が行われると、図31のステップS133に進み、その処理の結果得られた評価値sに基づいてウインドウ画像が顔であるか否かが判定される。
次に、図34のフローチャートを参照して、図33のステップS162における学習済みノードの評価値計算処理について説明する。
ステップS171において、引継ぎ部475は、親ノードの出力を引き継ぐ処理を実行する。具体的には、親ノードで演算された重み付き多数決で表される評価値sが、今回のノードの評価値s(i)に初期設定される。親ノードが存在しない場合、即ち最上位のノード81−1である場合には、評価値s(i)には0が初期設定される。
ステップS172において、弱仮説計算部476は、処理した弱判別器の数(順序)を表す変数tに1を初期設定する。
そして、ステップS173において、弱仮説計算部476は、変数tで表される弱判別器による弱仮説f(x)を計算する。この計算は、上述した式(12)に基づいて行われる。この弱判別器は、上述したように1つの画素の組I1,I2で規定されるピクセル間差分特徴dに対応するものであり、画素の組み、および閾値Thは、上述した学習処理により予め設定されている(図21)。
ステップS174において、評価値計算部477は、式(14)に基づいて、現在の弱判別器の弱仮説(推定値)に信頼度(多数決重み)αtを乗算し、これまでの評価値sを加算して、評価値sを更新する。
即ち、式(12)に基づいて演算された弱判別器の判別結果としての推定値f(x)を、式(8)で表される多数決重みαtで重み付けして、重み付け多数決の値F(x)を演算し、評価値sとする処理が行われる。
s(i)=s(i)+α・f(x) ・・・(14)
ここで、上述した式(2)乃至(4)により、2値の推定値を出力する弱判別器と、式(5)に示す関数f(x)を推定値として出力する弱判別器とでは、その推定値の評価値sへの反映の仕方が異なる。
先ず、上記式(2)を弱判別器に利用し、2値の値を推定値として出力する場合、評価値sは下記式(15)のようになる。
Figure 0004556891
すなわち、弱判別器の判別結果ft(x)の値は、ピクセル間差分特徴dの値が閾値Thtより大きい場合には+1、そうでない、その他の場合には−1となる。その結果、推定値ft(x)と重みαt を乗算した値は、ピクセル間差分特徴dの値が閾値より大きい場合には、αtとなり、その他の場合には、−αt となる。そこで、これらの値が式(6)に従って、それまでの評価値sに加算され、式(6)に従った重み付き多数決の値F(x)である評価値sが更新される。
また、上記式(3)を弱判別器に利用し、2値の値を推定値として出力する場合、評価値sは下記式(16)のようになる。
Figure 0004556891
また、上記式(4)を弱判別器に利用し、2値の値を推定値として出力する場合、評価値sは下記式(17)のようになる。
Figure 0004556891
さらに、上記式(5)を弱判別器に利用し、関数fを推定値として出力する場合、評価値sは下記式(18)のようになる。
Figure 0004556891
次に、ステップS175において、判定部472は、評価値s(i)と打ち切り閾値RM (t)との大きさを比較する。即ち、ステップS174で更新された評価値s(i)が、学習時に学習されている、その弱判別器(t番目の弱判別器)の打ち切り閾値RM(t)(図21)より大きいか否かが判定される。評価値s(i)が、打ち切り閾値RM(t)より大きい場合には、ステップS176において、判定部472は、変数tを1だけインクリメントする。
そして、ステップS177において、判定部472は、ステップS176でインクリメントした変数tが、予め設定されている定数Tより大きいか否かを判定する。この定数Tは、そのノードに含まれる弱判別器の数を表し、この実施の形態の場合、末端のノードでない場合には、Tの値は100であり、末端のノードである場合には、Tの値は各ノード毎に設定されている。変数tが定数Tと等しいか、それより小さい場合には、まだ全ての弱判別器の判定処理を行っていないことになるので、処理はステップS173に戻る。
そして、ステップS173において、弱仮説計算部476は、次の弱判別器(インクリメントされた変数tに対応する弱判別器)についての弱仮説の計算を実行する。以下、同様の処理が順次繰り返される。
そして、ステップS177で、変数tが定数Tより大きいと判定された場合、ステップS179において、出力部479は、ステップS174の処理で更新された評価値s(i)を、そのノードの評価値(判別結果)として出力する。
これに対して、ステップS175で、評価値s(i)の値が打ち切り閾値RM(t)と等しいか、それより小さいと判定された場合、ステップS178において、設定部478は、評価値s(i)の値に負の大きな値(−HUGE_VAL)を設定する。そして、ステップS179で、出力部479は、ステップS178で、負の大きな値が設定された評価値s(i)を、そのノードの判別結果として出力する。
即ち、この場合には、評価値s(i)が、打ち切り閾値RM(t)より小さくなったので、ウインドウ画像は、ラベルW11乃至W13、ラベルW21乃至W23、およびラベルW31乃至W33のいずれのラベルの人の顔の画像ではないと判定されたことになるので、以後の識別処理は実行されない。従って、より迅速な識別処理が可能となる。
その後、処理は、図33を介して図31のステップS133に戻り、上述したように評価値sの値に基づいて、そのノードにおいてウインドウ画像が顔であると判定されたか否かが判定される。評価値sの値が、ステップS178において、基準値に設定されている場合には、上述したように、ウインドウ画像は人の顔の画像ではないと判定され、評価値sの値が基準値より大きな値である場合には、人の顔の画像であると判定されることになる。
次に、図35のフローチャートを参照して、図33のステップS163における未学習ノードの評価値計算処理について説明する。
すなわちステップS191において、引継ぎ部475は、図34のステップS171の場合と同様に、親ノードで演算された重み付き多数決で表される評価値sを、今回のノードの評価値s(i)に初期設定する。なお未学習ノードには、図32に示すように、親ノードが存在するので、評価値s(i)に0が初期設定されることはない。
ステップS192において、弱仮説計算部476は、利用する学習済みノードの弱判別器の数(順序)を表す変数tに1を初期設定する。
そして、ステップS193において、弱仮説計算部476は、変数tで表される弱判別器を利用して弱仮説f(x)を計算する。
この計算は、上述した式(12)に基づいて行われる。しかしながら、未学習ノードには、ピクセル間差分特徴dを算出する画素の組および閾値Thが対応付けられていない。そこで、未学習ノードが対応付けられている画像と、所定の座標上の関係を有する画像が対応付けられている学習済みノードの弱判別器を利用して、ピクセル間差分特徴dを算出する画素の組を決定する。
図36に示すように、ラベルW11の画像を+20度ロール回転すれば、ラベルW12に分類される画像となるので、ラベルW12の画像を学習した場合に得られる2つのピクセル位置は、図37に示すように、ラベルW11の画像を学習することにより得られた2つのピクセルの位置を、+20度ロール回転した位置とすることができる。
この関係は、式(19)に示すことができる。式中、xk,yk(k=1,2)は、参照する学習済みノードでの評価値計算処理で利用される2つの画素の座標であり、swは、ウインドウ画像の横幅であり、shは、ウインドウ画像の縦幅であり、x'k,y'kは、未学習ノードでの評価値計算処理で利用される画素の座標である。
Figure 0004556891
すなわち未学習ノード81−1−1−2または未学習ノード81−1−1−2−1に対する評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW11を学習した学習済みノード81−1−1−1または学習済みノード81−1−1−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を+20度ロール回転した位置が、式(19)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また、図36に示すように、ラベルW11の画像を−20度ロール回転すれば、ラベルW13に分類される画像となるので、ラベルW13の画像を学習した場合に得られる2つのピクセル位置は、ラベルW11の画像を学習することにより得られた2つのピクセルの位置を、−20度ロール回転した位置とすることができる。
すなわち未学習ノード81−1−1−3または未学習ノード81−1−1−3−1の評価値計算処理が行われる場合、ウインドウ画像上の、学習済みノード81−1−1−1または学習済みノード81−1−1−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を−20度ロール回転した位置が、式(19)から算出され、その位置のピクセル差分特徴dが算出される。
また、図36に示すように、ラベルW21の画像を+20度ロール回転すれば、ラベルW22に分類される画像となるので、ラベルW22の画像を学習した場合に得られる2つのピクセル位置は、ラベルW21の画像を学習することにより得られた2つのピクセルの位置を、+20度ロール回転した位置とすることができる。
すなわち未学習ノード81−1−2−2または未学習ノード81−1−2−2−1の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21を学習した学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を+20度ロール回転した位置が、式(19)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また、図36に示すように、ラベルW21の画像を−20度ロール回転すれば、ラベルW23に分類される画像となるので、ラベルW23の画像を学習した場合に得られる2つのピクセル位置は、ラベルW21の画像を学習することにより得られた2つのピクセルの位置を、−20度ロール回転した位置とすることができる。
すなわち未学習ノード81−1−2−3または未学習ノード81−1−2−3−1の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21を学習した学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を−20度ロール回転した位置が、式(19)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また、図36に示すように、ラベルW21の画像を横方向の中心を通る縦軸を中心に反転(左右方向に反転)すれば、ラベルW31に分類される画像となるので、ラベルW31の画像を学習した場合に得られる2つのピクセル位置は、図38に示すように、ラベルW21の画像を学習することにより得られた2つのピクセルの位置を、左右方向に反転した位置とすることができる。
この関係は、式(20)に示すことができる。
Figure 0004556891
すなわち未学習ノード81−1−3−1または未学習ノード81−1−3−1−1の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21を学習した学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を左右方向に反転した位置が、式(20)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また、図36に示すように、ラベル21の画像を−20度ロール回転し、その結果得られたラベルW23の画像を左右方向に反転すれば、ラベルW32に分類される画像となるので、ラベルW32の画像を学習した場合に得られる2つのピクセル位置は、ラベルW21の画像を学習することにより得られた2つのピクセルの位置を、−20度ロール回転し、そして左右方向に反転した位置とすることができる。
すなわち未学習ノード81−1−3−2または未学習ノード81−1−3−2−1の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21を学習した学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を−20度ロール回転し左右方向に反転した位置が、式(19)および式(20)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また、図36に示すように、ラベル21の画像を+20度ロール回転し、その結果得られたラベルW22の画像を左右方向に反転すれば、ラベルW33に分類される画像となるので、ラベルW33の画像を学習した場合に得られる2つのピクセル位置は、ラベルW21の画像を学習することにより得られた2つのピクセルの位置を、+20度ロール回転し、そして左右方向に反転した位置とすることができる。
すなわち未学習ノード81−1−3−3または未学習ノード81−1−3−3−1の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21を学習した学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を+20度ロール回転し左右方向に反転した位置が、式(19)および式(20)から算出され、その位置の画素のピクセル差分特徴dが算出される。
また同様の原理により、ラベルW31乃至W33の画像を識別する未学習ノード81−1−3の評価値計算処理が行われる場合、ウインドウ画像上の、ラベルW21乃至W23を学習した学習済みノード81−1−2の変数tで表される弱判別器による弱仮説f(x)を計算するのに用いられる2つの画素の位置を左右方向に反転した位置が、式(20)から算出され、その位置の画素のピクセル差分特徴dが算出される。
式(12)を演算するのに必要な閾値Thについては、未学習ノード81−1−1−2若しくは未学習ノード81−1−1−2−1、または未学習ノード81−1−1−3若しくは未学習ノード81−1−1−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−1−1または学習済みノード81−1−1−1−1の変数tで表される弱判別器の閾値が利用される。
また未学習ノード81−1−2−2若しくは未学習ノード81−1−2−2−1、未学習ノード81−1−2−3若しくは未学習ノード81−1−2−3−1、未学習ノード81−1−3−1若しくは未学習ノード81−1−3−1−1、未学習ノード81−1−3−2若しくは未学習ノード81−1−3−2−1、または未学習ノード81−1−3−3若しくは未学習ノード81−1−3−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器の閾値が利用される。
未学習ノード81−1−3に対する評価値計算処理が行われる場合、学習済みノード81−1−2の変数tで表される弱判別器の閾値が利用される。
なお学習済みノードでピクセル差分特徴dを算出する際に利用される2つの画素の位置を回転させて、未学習ノードでピクセル差分特徴dを算出する際に利用する2つの画素を特定する場合、図39Aに示すように、ウインドウ画像からはみ出してしまう場合が考えられる。
そこで、本実施例の場合、走査部54は、ウインドウ11を、図39Bに示すように、パターン検出を行う画像の大きさよりやや大きくし、その中心の領域に対してパターン検出を行う。
具体的には、例えば20×20の学習サンプルを学習しておいて、学習後の座標に対してそれぞれ2画素を加えることで、24×24の座標系に変換し、そして検出実行時には、24×24のウインドウを用いて検出が行われる。
回転角θが、+/−20度とすると、実際には20×20の四隅の4つの画素が回転後24×24のウインドウからはみ出すが、これは、学習時に、学習サンプルを、ウインドウ画像と中心を合わせてロール回転させ、ここで処理される画像からはみ出るこの四隅の画素を使用しないようにすることで対応することができる。
図35に戻りステップS194において、評価値計算部477は、図34のステップS174における場合と同様に、式(14)に基づいて、現在の弱判別器の弱仮説(推定値)に信頼度(多数決重み)αtを乗算し、これまでの評価値sを加算して、評価値sを更新する。
しかしながら未学習ノードには、信頼度(多数決重み)αtが対応付けられていない。
そこでこの場合も、未学習ノード81−1−1−2若しくは未学習ノード81−1−1−2−1、または未学習ノード81−1−1−3若しくは未学習ノード81−1−1−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−1−1または学習済みノード81−1−1−1−1の変数tで表される弱判別器の信頼度が利用される。
また未学習ノード81−1−2−2若しくは未学習ノード81−1−2−2−1、未学習ノード81−1−2−3若しくは未学習ノード81−1−2−3−1、未学習ノード81−1−3−1若しくは未学習ノード81−1−3−1−1、未学習ノード81−1−3−2若しくは未学習ノード81−1−3−2−1、または未学習ノード81−1−3−3若しくは未学習ノード81−1−3−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器の信頼度が利用される。
未学習ノード81−1−3に対する評価値計算処理が行われる場合、学習済みノード81−1−2の変数tで表される弱判別器の信頼度が利用される。
次に、ステップS195において、判定部472は、図34のステップS175の場合と同様に、評価値s(i)と打ち切り閾値RM(t)との大きさを比較する。
しかしながら未学習ノードには、閾値RMが対応付けられていない。
そこでこの場合も、未学習ノード81−1−1−2若しくは未学習ノード81−1−1−2−1、または未学習ノード81−1−1−3若しくは未学習ノード81−1−1−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−1−1または学習済みノード81−1−1−1−1の変数tで表される弱判別器の閾値RMが利用される。
また未学習ノード81−1−2−2若しくは未学習ノード81−1−2−2−1、未学習ノード81−1−2−3若しくは未学習ノード81−1−2−3−1、未学習ノード81−1−3−1若しくは未学習ノード81−1−3−1−1、未学習ノード81−1−3−2若しくは未学習ノード81−1−3−2−1、または未学習ノード81−1−3−3若しくは未学習ノード81−1−3−3−1に対する評価値計算処理が行われる場合、学習済みノード81−1−2−1または学習済みノード81−1−2−1−1の変数tで表される弱判別器の閾値RMが利用される。
未学習ノード81−1−3に対する評価値計算処理が行われる場合、学習済みノード81−1−2の変数tで表される弱判別器の閾値RMが利用される。
ステップS195で、評価値s(i)が、打ち切り閾値RM(t)より大きい場合には、ステップS196において、判定部472は、変数tを1だけインクリメントする。そして、ステップS197において、判定部472は、ステップS196でインクリメントした変数tが、予め設定されている定数Tより大きいか否かを判定する。
この定数Tは、この未学習ノードが参照する学習済みノードに含まれる弱判別器の数を表す。変数tが定数Tと等しいか、それより小さい場合には、まだ全ての弱判別器の判定処理を行っていないことになるので、処理はステップS193に戻る。そして、ステップS193において、弱仮説計算部476は、次の弱判別器(インクリメントされた変数tに対応する弱判別器)についての弱仮説の計算を実行する。以下、同様の処理が順次繰り返される。
そして、ステップS197において、変数tが定数Tより大きいと判定された場合、ステップS199において、出力部479は、ステップS194の処理で更新された評価値s(i)を、そのノードの評価値(判別結果)として出力する。
これに対して、ステップS195において、評価値s(i)の値が打ち切り閾値RM(t)と等しいか、それより小さいと判定された場合、ステップS198において、設定部478は、評価値s(i)の値に負の大きな値(−HUGE_VAL)を設定する。そして、ステップS199において、出力部479は、ステップS198で、負の大きな値が設定された評価値s(i)を、そのノードの判別結果として出力する。
即ち、この場合には、評価値s(i)が、打ち切り閾値RM(t)より小さくなったので、ウインドウ画像は、未学習ノードで判定されるラベルW12,W13,W22,W23,W31,W32,W33のいずれのラベルの人の顔の画像ではないと判定されたことになるので、以後の識別処理は実行されない。従って、より迅速な識別処理が可能となる。
その後、処理は、図33を介して、図31のステップS133に進み、上述したように評価値sの値に基づいて、その未学習ノードにおいてウインドウ画像が顔であると判定されたか否かが判定される。評価値sの値が、ステップS198において、基準値に設定されている場合には、上述したように、ウインドウ画像は人の顔の画像ではないと判定され、評価値sの値が基準値より大きな値である場合には、人の顔の画像であると判定されることになる。
このように、本実施の形態における対象物検出方法によれば、ピクセル間差分特徴により弱判別する弱判別器を集団学習により学習した判別器を使用して対象物を検出するため、ウインドウ画像において、対応する2つの画素の輝度値を読出し、その差を算出するのみで、上記ステップS173またはステップS193における対象物の特徴量の算出工程が終了する。このため極めて高速に顔検出処理することができるため、リアルタイムな顔検出が可能である。
また、その特徴量から判別した判別結果(推定値)と判別に使用した弱判別器に対する信頼度とを乗算した値を加算して評価値sを逐次更新する毎に打ち切り閾値RMと比較し、弱判別器の推定値の演算を続けるか否かが判定される。そして、打ち切り閾値RM を評価値sが下まわった場合に弱判別器の演算を打ち切り、次のウインドウ画像の処理に移ることにより、無駄な演算を飛躍的に低減して更に高速に顔検出が可能となる。
すなわち、入力画像およびそれを縮小スケーリングしたスケーリング画像の全ての領域を走査してウインドウ画像を切り出した場合、それらのウインドウ画像のうち対象物である確率は小さく、ほとんどが非対象物である。この非対象物であるウインドウ画像の判別を途中で打ち切ることで、判別工程を極めて高効率化することができる。なお、逆に検出すべき対象物が多数含まれるような場合、上述した打ち切り閾値と同様の手法にて、対象物であることが明らかとなったウインドウ画像の演算を途中で打ち切るような閾値も設けてもよい。更に、入力画像をスケーリング部にてスケーリングすることで、任意の大きさの探索ウインドウを設定し、任意の大きさの対象物を検出することができる。
さらに、以上のように、所定のラベルの画像を座標変換して得ることができる画像については、学習を行わず(図20)、学習されたラベルの画像の学習結果を利用するようにしたので、例えば、従来においては、例えば図6に示すように、各ノードにおいて、ノードを構成する弱判別器を生成してそれを保持しておく必要があったが、図32に示すように、一部のノードの弱判別器の生成およびその保持を省略することができる。すなわちその分の2つのピクセル位置の組、弱判別器の閾値、重み付き多数決の重み(弱判別器の信頼度)、および打ち切り閾値を記憶する必要がないので、判別器55の辞書データを小さくすることができる。
例えば図6の例の場合、端末のノードの弱判別器の数を3000個とすると、合計28300(=100+300+900+27000)の弱判別器が必要となる。
すなわち学習結果が、下記に示すデータ量を有する場合、約228KBのメモリ容量が必要となる。
重み付け係数:16bit
pixel差閾値:9bit
打ち切り閾値:21bit
座標x1:5bit
座標y1:5bit
座標x2:5bit
座標y2:5bit
―――――――――――――
合計:66bit
これに対して、本発明を適用すれば、図32に示すように、弱判別器の数は、6400(=100+100+200+6000)個となり、その分のメモリ容量は、37.3KBまで削減することができる。
なお以上においては、推定値の算出の打ち切りは、重み付き多数決の値が更新される毎に判定されたが、その頻度を、N回に1回というように少なくするようにすれば、保持すべき打ち切り閾値を削減することができ、辞書データをさらに小さくすることができる。
重み付き多数決の値は、図18に示すように、通常、緩やかに推移するので、推定値の算出の打ち切りの判定の頻度を少なくしても、結果的には、その先にある閾値によりはじかれるので、若干の速度低下(打ち切りまでの推定値の算出の増加)を招くが、打ち切りの判定を適切に行うことができる。
例えば10回に1回の頻度で、推定値の算出の打ち切りの判定を行うようにすれば、弱判別器のデータ量を、66bitから47.1bitまで削減することができ、36.8KBまで削減することができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。そして本発明は、静止画像はもとより、動画像を受信し、表示するロボット等の各種の画像処理装置を含む情報処理装置に適用することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、対象物検出装置は、図40に示されるようなコンピュータにより構成される。
図40において、CPU(Central Processing Unit)621は、ROM(Read Only Memory)622に記憶されているプログラム、または記憶部628からRAM(Random Access Memory)623にロードされたプログラムに従って各種の処理を実行する。RAM623にはまた、CPU3621が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU621、ROM622、およびRAM623は、バス624を介して相互に接続されている。このバス324にはまた、入出力インタフェース625も接続されている。
入出力インタフェース625には、キーボード、マウスなどよりなる入力部626、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部627、ハードディスクなどより構成される記憶部628、モデムなどより構成される通信部629が接続されている。通信部629は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース625にはまた、必要に応じてドライブ630が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア331が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部628にインストールされる。
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図40に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア631により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM622や、記憶部628に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
従来の対象物検出装置の処理機能を示す機能ブロック図である。 スケール変換を説明する図である。 探索ウインドウの走査を説明する図である。 探索ウインドウの移動を説明する図である。 判別器の構成を示す図である。 従来のノードのツリー構造を説明する図である。 顔の姿勢角を説明する図である。 通常のアダブーストによる識別器の構成を説明する図である。 通常のアダブーストによるラベルの識別を説明する図である。 リジェクト判定付き弱判別器で構成されるノードの構成を示す図である。 リジェクト判定付き弱判別器の構成を示す図である。 本発明を適用した対象物検出装置の処理機能を示す機能ブロック図である。 判別器の構成を示す図である。 ピクセル間差分特徴を説明する図である ピクセル間差分特徴と閾値の関係を説明する図である。 頻度分布を説明する図である。 確率密度に基づくピクセル間差分特徴を説明する図である。 重み付き多数決の値F(x)の変化を示す図である。 学習サンプルの分類の例を示す図である。 学習工程のノードのツリー構造を説明する図である。 ノードのデータ構造を説明する図である。 集団学習器の機能的構成例を示すブロック図である。 学習処理を説明するフローチャートである。 ノード学習部の機能的構成例を示すブロック図である。 図23のステップS12におけるノードの学習処理を説明するフローチャートである。 弱判別器選択部の機能的構成例を示すブロック図である。 図25のステップS43における弱判別器の選択処理を説明するフローチャートである。 閾値の移動を説明する図である。 判別器の機能的構成例を示すブロック図である。 対象物検出処理を説明するフローチャートである。 図30のステップS103の識別処理を説明するフローチャートである。 判別工程のノードのツリー構造を説明する図である。 図31のステップS132における評価値計算処理を説明するフローチャートである。 図33のステップS162における学習済みノードの評価値計算処理を説明するフローチャートである。 図33のステップS163における未学習ノードの評価値計算処理を説明するフローチャートである。 学習済みノードに対応付けられているラベルの画像と、未学習ノードに対応付けられているラベルの画像の座標関係を説明する図である。 学習結果として得られた2つの画素の組の位置と、未学習ノードにおいて特徴量を算出する際に利用する画素の位置との関係を示す図である。 学習結果として得られた2つの画素の組の位置と、未学習ノードにおいて特徴量を算出する際に利用する画素の位置との関係を示す他の図である。 他のウインドウ画像の例を示す図である。 コンピュータの構成例を示すブロック図である。
符号の説明
51 対象物検出装置, 52 画像出力部, 53 スケーリング部, 54 走査部, 55 判別器, 56 集団学習機, 611 乃至61K 弱判別器, 62 加算器, 81 ノード, 301 初期化部, 302 ノード学習部, 303 判定部, 304 選択部, 305 復帰部, 331 サンプル選択部, 332 引継ぎ部, 333 弱判別器選択部, 334 多数決重み算出部, 335 データ重み更新部, 336 重み付き多数決演算部, 337 閾値演算部, 338 判定部, 339 保存部

Claims (10)

  1. 第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    弱判別器を有しない第2の下位ノードと
    を備え、
    前記第1の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行い、
    前記第2の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処理を行う
    情報処理装置。
  2. 前記上位ノードおよび第1の下位ノードの前記弱判別器は、前記学習サンプルの画像データの2画素の値の差と閾値との差に基づいて前記識別処理を行い、
    前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記座標上の関係に基づいて座標変換し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行う
    請求項1に記載の情報処理装置。
  3. 前記第2のラベルの学習サンプルは、前記第1のラベルの学習サンプルを所定の角度だけロール回転、または左右方向に反転した画像に相当し、
    前記第2の下位ノードは、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転または左右方向に反転し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行う
    請求項2に記載の情報処理装置。
  4. 前記識別処理が施される信号を取得し、前記上位ノード、前記第1の下位ノード、または前記第2の下位ノードに出力する出力手段をさらに備え、
    前記出力手段は、
    前記第2の下位ノードが、前記第1のノードの前記識別処理に利用される前記2画素の位置を、前記角度だけロール回転し、その結果得られた位置の前記入力された信号に応じた画像上の2画素の値の差と、前記第1のノードの前記識別処理に利用される前記閾値との差に基づいて前記識別処理を行う場合、前記学習サンプルの大きさよりも大きい画像の画像信号を、前記第2の下位ノードに出力する
    請求項3に記載の情報処理装置。
  5. 前記上位ノードおよび前記第1の下位ノードを構成する弱判別器は、前記学習サンプルを、前記出力手段により出力された画像信号に応じた画像と中心を合わせて前記角度だけロール回転し、前記画像信号に応じた画像からはみ出る領域については学習を行わない
    請求項4に記載の情報処理装置。
  6. 前記上位ノード並びに前記第1および第2の下位ノードは、判別結果を、信頼度により重み付けして累積し、その累積和に基づいて、前記認識処理を打ち切る打ち切り手段
    を備える請求項1に記載の情報処理装置。
  7. 前記打ち切り手段は、前記判別結果が重み付け累積される毎に、または所定の数分の判別結果が重み付け累積される毎に、前記認識処理の打ち切りを判定する
    請求項6に記載の情報処理装置。
  8. 第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    弱判別器を有しない第2の下位ノードと
    を備える情報処理装置が実行する情報処理方法であって
    前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップと、
    前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処理を行うステップと
    を含む情報処理方法。
  9. 第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    弱判別器を有しない第2の下位ノードと
    を備える情報処理装置
    前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップと、
    前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理を行うステップと
    実行させるためのプログラムが記録されている記録媒体。
  10. 第1のラベルの学習サンプル、および前記第1のラベルの学習サンプルと座標上所定の関係がある第2のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    弱判別器を有しない第2の下位ノードと
    を備える情報処理装置
    前記第1の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1のラベルの画像を認識する識別処理を行うステップと、
    前記第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて、前記第1の下位ノードの弱判別器を前記座標上の関係に応じて利用し、前記第2のラベルの画像を識別する識別処処理を行うステップと
    実行させるためのプログラム。
JP2006075517A 2006-03-17 2006-03-17 情報処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP4556891B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006075517A JP4556891B2 (ja) 2006-03-17 2006-03-17 情報処理装置および方法、記録媒体、並びにプログラム
EP07250984.7A EP1835441A3 (en) 2006-03-17 2007-03-09 Information processing apparatus and method, recording medium and program
US11/717,019 US7844108B2 (en) 2006-03-17 2007-03-13 Information processing apparatus and method, recording medium and program
CN2007101292492A CN101127079B (zh) 2006-03-17 2007-03-19 信息处理设备和方法
KR1020070026746A KR101342313B1 (ko) 2006-03-17 2007-03-19 정보 처리 장치 및 방법, 및 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006075517A JP4556891B2 (ja) 2006-03-17 2006-03-17 情報処理装置および方法、記録媒体、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2007249852A JP2007249852A (ja) 2007-09-27
JP4556891B2 true JP4556891B2 (ja) 2010-10-06

Family

ID=38191155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006075517A Expired - Fee Related JP4556891B2 (ja) 2006-03-17 2006-03-17 情報処理装置および方法、記録媒体、並びにプログラム

Country Status (5)

Country Link
US (1) US7844108B2 (ja)
EP (1) EP1835441A3 (ja)
JP (1) JP4556891B2 (ja)
KR (1) KR101342313B1 (ja)
CN (1) CN101127079B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659227B2 (en) 2014-03-28 2017-05-23 Canon Kabushiki Kaisha Detecting object from image data using feature quantities
US10860887B2 (en) 2015-11-16 2020-12-08 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object, and method and apparatus for training recognition model

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US8064655B2 (en) * 2007-04-20 2011-11-22 Panasonic Corporation Face image detection device, face image detection method and imaging apparatus
JP4891197B2 (ja) * 2007-11-01 2012-03-07 キヤノン株式会社 画像処理装置および画像処理方法
JP2009118009A (ja) * 2007-11-02 2009-05-28 Sony Corp 撮像装置、その制御方法およびプログラム
DE112009000485T5 (de) 2008-03-03 2011-03-17 VideoIQ, Inc., Bedford Objektvergleich für Verfolgung, Indizierung und Suche
JP4655235B2 (ja) 2008-03-14 2011-03-23 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8244044B2 (en) * 2008-04-25 2012-08-14 Microsoft Corporation Feature selection and extraction
US8909572B2 (en) * 2008-10-03 2014-12-09 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for performing classification using a boosted classifier
JP5371541B2 (ja) * 2009-05-19 2013-12-18 キヤノン株式会社 データ処理装置及びその処理方法
US8365019B2 (en) * 2009-06-16 2013-01-29 International Business Machines Corporation System and method for incident management enhanced with problem classification for technical support services
JP5538967B2 (ja) * 2009-06-18 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP5791751B2 (ja) * 2009-06-18 2015-10-07 キヤノン株式会社 画像認識方法及び画像認識装置
JP2011180792A (ja) * 2010-03-01 2011-09-15 Sony Corp 画像処理装置及び画像処理方法、並びにコンピューター・プログラム
JP5675214B2 (ja) * 2010-08-18 2015-02-25 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP5778983B2 (ja) * 2011-05-17 2015-09-16 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、およびプログラム
US9400929B2 (en) * 2012-03-05 2016-07-26 Panasonic Intellectual Property Management Co., Ltd. Object detection device and method for detecting an object by performing a raster scan on a scan window
US9317768B2 (en) * 2012-09-25 2016-04-19 Intel Corporation Techniques for improved feature detection
CN105120764A (zh) * 2013-03-14 2015-12-02 火山公司 用于组织特征化的基于并行树的样式辨识
JP6059686B2 (ja) * 2014-06-11 2017-01-11 日本電信電話株式会社 画像分類前処理装置、画像分類装置、画像分類前処理方法、画像分類方法及びプログラム
JP5892275B2 (ja) * 2015-02-26 2016-03-23 カシオ計算機株式会社 多クラス識別器生成装置、データ識別装置、多クラス識別器生成方法、データ識別方法、及びプログラム
WO2016138655A1 (en) 2015-03-05 2016-09-09 Mediatek (Beijing) Inc. Methods and apparatus for cell selection/reselection in millimeter wave system
JP6606849B2 (ja) * 2015-04-06 2019-11-20 大日本印刷株式会社 識別器生成装置、識別器生成方法、推定装置、推定方法、およびプログラム
US10460198B2 (en) * 2015-12-23 2019-10-29 Fotonation Limited Image processing system
JP6727176B2 (ja) * 2017-09-27 2020-07-22 富士フイルム株式会社 学習支援装置、学習支援装置の作動方法、学習支援プログラム、学習支援システム、および端末装置
JP6768620B2 (ja) * 2017-09-27 2020-10-14 富士フイルム株式会社 学習支援装置、学習支援装置の作動方法、学習支援プログラム、学習支援システム、端末装置及びプログラム
EP3714397A4 (en) * 2017-11-24 2021-01-13 Truemed Oy PROCEDURE AND SYSTEM FOR VERIFICATION OF AN OBJECT
US11176193B2 (en) * 2019-10-24 2021-11-16 Adobe Inc. Search input generation for image search
CN114584673B (zh) * 2020-12-01 2024-01-09 京东方科技集团股份有限公司 一种图像处理方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144755A (en) * 1996-10-11 2000-11-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method and apparatus for determining poses
JP2000123186A (ja) * 1998-10-14 2000-04-28 Canon Inc 被写体認識装置
WO2000045596A1 (en) * 1999-01-29 2000-08-03 Sony Corporation Data describing method and data processor
EP1260935B1 (en) * 2001-05-22 2006-07-12 Matsushita Electric Industrial Co., Ltd. Face detection device, face pose detection device, partial image extraction device, and methods for said devices
US7024033B2 (en) * 2001-12-08 2006-04-04 Microsoft Corp. Method for boosting the performance of machine-learning classifiers
US7050607B2 (en) * 2001-12-08 2006-05-23 Microsoft Corp. System and method for multi-view face detection
JP2004133637A (ja) * 2002-10-09 2004-04-30 Sony Corp 顔検出装置、顔検出方法及びプログラム、並びにロボット装置
US7203669B2 (en) * 2003-03-17 2007-04-10 Intel Corporation Detector tree of boosted classifiers for real-time object detection and tracking
US7689033B2 (en) * 2003-07-16 2010-03-30 Microsoft Corporation Robust multi-view face detection methods and apparatuses
JP2005044330A (ja) * 2003-07-24 2005-02-17 Univ Of California San Diego 弱仮説生成装置及び方法、学習装置及び方法、検出装置及び方法、表情学習装置及び方法、表情認識装置及び方法、並びにロボット装置
JP4517633B2 (ja) 2003-11-25 2010-08-04 ソニー株式会社 対象物検出装置及び方法
JP4361394B2 (ja) 2004-03-03 2009-11-11 富士フイルム株式会社 対象物識別装置および方法並びにプログラム
JP4482796B2 (ja) * 2004-03-26 2010-06-16 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP5025893B2 (ja) * 2004-03-29 2012-09-12 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP2006072770A (ja) * 2004-09-02 2006-03-16 Sanyo Electric Co Ltd 顔検出装置および顔向き推定装置
US20070053563A1 (en) * 2005-03-09 2007-03-08 Zhuowen Tu Probabilistic boosting tree framework for learning discriminative models
US7433895B2 (en) * 2005-06-24 2008-10-07 Microsoft Corporation Adding dominant media elements to search results
JP2007028555A (ja) * 2005-07-21 2007-02-01 Sony Corp カメラシステム,情報処理装置,情報処理方法,およびコンピュータプログラム
CN100472556C (zh) * 2005-10-09 2009-03-25 欧姆龙株式会社 特定被摄体检测装置及方法
US7643659B2 (en) * 2005-12-31 2010-01-05 Arcsoft, Inc. Facial feature detection on mobile devices
US7953253B2 (en) * 2005-12-31 2011-05-31 Arcsoft, Inc. Face detection on mobile devices
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US7720284B2 (en) * 2006-09-08 2010-05-18 Omron Corporation Method for outlining and aligning a face in face processing of an image

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659227B2 (en) 2014-03-28 2017-05-23 Canon Kabushiki Kaisha Detecting object from image data using feature quantities
US10860887B2 (en) 2015-11-16 2020-12-08 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object, and method and apparatus for training recognition model
US11544497B2 (en) 2015-11-16 2023-01-03 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object, and method and apparatus for training recognition model

Also Published As

Publication number Publication date
KR101342313B1 (ko) 2013-12-16
EP1835441A2 (en) 2007-09-19
JP2007249852A (ja) 2007-09-27
CN101127079B (zh) 2010-06-09
US20070217688A1 (en) 2007-09-20
EP1835441A3 (en) 2014-07-02
US7844108B2 (en) 2010-11-30
CN101127079A (zh) 2008-02-20
KR20070094577A (ko) 2007-09-20

Similar Documents

Publication Publication Date Title
JP4556891B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP5025893B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4482796B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4517633B2 (ja) 対象物検出装置及び方法
JP5406705B2 (ja) データ補正装置及び方法
JP4553044B2 (ja) 集団学習装置及び方法
JP4640825B2 (ja) 特定向き顔判定方法および装置並びにプログラム
CN109033978B (zh) 一种基于纠错策略的cnn-svm混合模型手势识别方法
CN113052873A (zh) 一种在线自监督学习场景适应的单目标跟踪方法
JP2006318341A (ja) 検知対象画像判定装置、検知対象画像判定方法および検知対象画像判定プログラム
CN111582057B (zh) 一种基于局部感受野的人脸验证方法
CN114764936A (zh) 图像关键点检测方法及相关设备
CN113065400A (zh) 基于无锚框两阶段网络检测发票印章的方法及装置
JP4749884B2 (ja) 顔判別装置の学習方法、顔判別方法および装置並びにプログラム
CN114821206A (zh) 基于对抗互补特征的多模态图像融合分类方法与系统
CN116978097B (zh) 一种基于改进贝叶斯神经网络的伪造人脸视频检测方法
CN120088828A (zh) 一种基于d-gfk网络的级联分类人脸表情识别方法
CN120894602A (zh) 一种基于D-GCN和目标检测网络yolov5的多标签图像分类方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100611

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: 20100629

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: 20100712

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees