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

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

Info

Publication number
JP2005284487A
JP2005284487A JP2004094792A JP2004094792A JP2005284487A JP 2005284487 A JP2005284487 A JP 2005284487A JP 2004094792 A JP2004094792 A JP 2004094792A JP 2004094792 A JP2004094792 A JP 2004094792A JP 2005284487 A JP2005284487 A JP 2005284487A
Authority
JP
Japan
Prior art keywords
node
learning
range
weak
label
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
JP2004094792A
Other languages
English (en)
Other versions
JP5025893B2 (ja
Inventor
Kotaro Sabe
浩太郎 佐部
Kenichi Hidai
健一 日台
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
Priority to JP2004094792A priority Critical patent/JP5025893B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to EP06022593A priority patent/EP1744265B1/en
Priority to DE602005009169T priority patent/DE602005009169D1/de
Priority to DE602005006341T priority patent/DE602005006341T2/de
Priority to DE602005014573T priority patent/DE602005014573D1/de
Priority to EP05251299A priority patent/EP1587024B1/en
Priority to EP08011112A priority patent/EP1967984B1/en
Priority to US11/089,932 priority patent/US7630525B2/en
Publication of JP2005284487A publication Critical patent/JP2005284487A/ja
Priority to US12/366,792 priority patent/US7783086B2/en
Application granted granted Critical
Publication of JP5025893B2 publication Critical patent/JP5025893B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • 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/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting

Abstract

【課題】 顔画像を少ない演算量で迅速に判定できるようにする。
【解決手段】 ノード221−i−j−k−lがツリー構造に階層的に配置される。各ノードには、所定の数の弱判別器21−i−j−k−lが配置される。末端のノードには、1つのラベルに対応する顔画像を学習させる。上位のノードには、下位のノードが学習する全てのラベルの学習サンプルを学習させる。判定対象としてのウィンドウ画像が入力されたとき、上位のノードから下位のノードに向かって、識別処理が順次行われる。ウィンドウ画像が人の顔の画像ではないと判定されたとき、それより下位のノードでの識別は行われず、兄弟ノードでの識別に移行する。本発明は、ロボットにおいて人の顔を識別するのに適用できる。
【選択図】図19

Description

本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、少ない演算量で、高速に顔画像などの対象物を検出することができるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
従来、複雑な画像シーンの中から動きを使わないで画像信号の濃淡パターンのみを使った顔検出手法は数多く提案されている。例えば下記特許文献1に記載の顔検出器は、ハール(Haar)基底のようなフィルタを弱判別器(弱学習機)(weak learner)に用いたアダブースト(AdaBoost)を使用したもので、後述する積分画像(インテグラルイメージ:Integral image)とよばれる画像と矩形特徴(rectangle feature)とを使用することで、高速に弱仮説(weak hypothesis)を計算することができる。
図1は、特許文献1に記載の矩形特徴を示す模式図である。図1に示されるように、特許文献1に記載の技術においては、入力画像142A乃至142Dにおいて、同一サイズの隣り合う矩形領域の輝度値の総和が求められ、一方の矩形領域の輝度値の総和と他方の矩形領域の輝度値の総和との差を出力するようなフィルタ(弱仮説)が複数用意される。例えば、入力画像142Aにおいては、矩形領域(rectangular box)154A−1の輝度値の総和から、影を付けて示す矩形領域154A−2の輝度値の総和を減算するフィルタ154Aが構成されている。このような2つの矩形領域からなるフィルタを2矩形特徴(2 rectangle feature)という。
また、入力画像142Cにおいては、1つの矩形領域が3分割された3つの矩形領域154C−1乃至154C−3からなり、矩形領域154C−1、154C−3の輝度値の総和から影を付けて示す中央の矩形領域154C−2の輝度値の総和を減算するフィルタ154Cが構成されている。このような3つの矩形領域からなるフィルタを3矩形特徴(3 rectangle feature)という。更に、入力画像142Dにおいては、1つの矩形領域が上下左右に分割された4つの矩形領域154D−1乃至154D−4からなり、矩形領域154D−1、154D−3の輝度値の総和から、影を付けて示す矩形領域154D−2、154D−4の輝度値の総和を減算するフィルタ154Dが構成されている。このような4つの矩形領域からなるフィルタを4矩形特徴(4 rectangle feature)という。
例えば、図2に示される顔画像を、図1に示される例えば矩形特徴154Bを使用して顔であることを判定する場合について説明する。2矩形特徴154Bは、1つの矩形領域が上下(垂直方向)に2分割された2つの矩形領域154B−1、154B−2からなり、矩形領域154B−2の輝度値の総和から、影を付けて示す矩形領域154B−1の輝度値の総和が減算される。人間の顔(対象物)138は、頬の領域より眼の領域の方が輝度値が低いことを利用すると、矩形特徴154Bの出力値から入力画像が顔か否か(正解または不正解)をある程度の確率で推定することができる。これがアダブーストにおける弱判別器の1つとして利用され。
検出時において、入力画像に含まれる様々な大きさの顔領域を検出するため、様々なサイズの領域(以下、探索ウィンドウという。)を切り出して顔か否かを判定する必要がある。しかしながら例えば320×240画素からなる入力画像には、およそ50000種類のサイズの顔領域(探索ウィンドウ)が含まれており、これら全てのウィンドウサイズについての演算を行うと極めて時間がかかる。そこで、特許文献1においては、積分画像とよばれる画像が使用される。積分画像とは、図3に示されるように、入力画像144において、(x、y)番目の画素162が、下記式(1)に示されるように、その画素162より左上の画素の輝度値の総和になっている画像である。即ち、画素162の値は、画素162の左上の矩形領域160に含まれる画素の輝度値の総和となっている。以下、各画素値が下記式(1)に示す値の画像を積分画像という。
Figure 2005284487
この積分画像を使用すると、任意の大きさの矩形領域の演算を高速に行うことができる。すなわち、図4に示されるように、左上の矩形領域170、矩形領域170の右横、下、右下のそれぞれの領域を矩形領域172、174、176とし、矩形領域176の4頂点を左上から時計周りにp1,p2,p3,p4とし、その積分画像をP1,P2,P3,P4とする。P1は矩形領域170の輝度値の総和A(P1=A)、P2はA+矩形領域172の輝度値の総和B(P2=A+B)、P3はA+矩形領域174の輝度値の総和C(P3=A+C)、P4はA+B+C+矩形領域176の輝度値の総和D(P4=A+B+C+D)となっている。このとき、矩形領域176の輝度値の総和Dは、P4−(P2+P3)−P1として算出することができ、矩形領域の四隅の画素値を加減算することで矩形領域の輝度値の総和を高速に算出することができる。通常、入力画像をスケール変換し、スケール変換された各画像から、学習に使用する学習サンプルと同一サイズのウィンドウ(探索ウィンドウ)を切り出すことで、異なるサイズの探索ウィンドウを探索することが可能になる。しかしながら上述したように、全てのサイズの探索ウィンドウを設定可能なように入力画像をスケール変換すると極めて演算量が膨大になってしまう。そこで、特許文献1に記載の技術においては、矩形領域の輝度値の総和の演算を高速に行うことができる積分画像を用い、矩形特徴を使用することにより演算量が低減される。
米国特許出願公開第2002/0102024号明細書
しかしながら、上記特許文献1に記載の顔検出器は、学習時に使用した学習サンプルのサイズの整数倍の大きさの対象物体しか検出することができない。これは、上記特許文献1が入力画像をスケール変換することで探索ウィンドウの大きさを変更するのではなく、入力画像を積分画像に変換し、これを利用して異なる探索ウィンドウの顔領域を検出するためである。すなわち、積分画像はピクセル単位に離散化されているため、例えば20×20のウィンドウサイズを使用する場合、30×30のサイズを探索ウィンドウに設定することができず、従ってこのウィンドウサイズの顔検出を行うことができない。
また、上記矩形特徴として、演算の高速化のため隣り合った矩形領域間の輝度値の差分のみを利用している。そのため、離れた矩形領域間の輝度変化をとらえることができず、物体検出の性能に制限がある。
例えば積分画像をスケール変換すれば任意のサイズのウィンドウの探索が可能になり、また離れた位置の矩形領域間の輝度値の差分を利用することも可能ではあるが、積分画像をスケール変換すると演算量が増大し、積分画像を使用して処理を高速化する効果を相殺することになり、また離れた矩形領域間の輝度値の差分をも含めようとするとフィルタの種類が膨大になり、同じく処理量が増大してしまう。
本発明は、このような状況に鑑みて提案されたものであり、集団学習により対象とする物体を検出する際に、学習時および検出時の演算処理を少なくし、より高速化できるようにするものである。
本発明の第1の情報処理装置は、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習する複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを学習する複数の弱判別器よりなる第1の下位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを学習する複数の弱判別器よりなる第2の下位ノードとを備えることを特徴とする。
前記学習は、最も上位の1つの上位ノードから、1つの末端の第1または第2の下位ノードに向かって順次行われ、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて行われるようにすることができる。
前記上位ノードは一定の数の弱判別器を有し、末端の第1および第2の下位ノードは、一定の数と等しいか、またはそれより少ない数の弱判別器を有するようにすることができる。
前記上位ノード並びに第1および第2の下位ノードは、それぞれ、データ重みを利用して弱判別器を選択する選択手段と、選択された弱判別器による学習サンプルの判別結果を、信頼度により重み付けして累積和を演算する累積和演算手段と、学習した弱判別器を利用して識別処理を行う場合に使用される基準値を、累積和に基づいて演算する基準値演算手段と、学習サンプルに基づいてデータ重みを演算する重み演算手段と、重み演算手段により演算されたデータ重みを保存し、選択手段による次の弱判別器の選択に反映する反映手段とを備えるようにすることができる。
前記弱判別器は、学習サンプルの画像データの2画素の値の差と閾値との差に基づいて判別結果を演算するようにすることができる。
本発明の第1の情報処理方法は、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップとを含むことを特徴とする。
本発明の第1の記録媒体のプログラムは、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップとを含むことを特徴とする。
本発明の第1のプログラムは、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップとをコンピュータに実行させることを特徴とする。
本発明の第2の情報処理装置は、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードとを備え、第1および第2の下位ノードは、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行い、最も上位の1つの上位ノードから、1つの末端の第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて識別処理を行うことを特徴とする。
前記弱判別器は、学習サンプルの画像データの2画素の値の差と閾値との差に基づいて判別結果を演算するようにすることができる。
本発明の第2の情報処理方法は、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードとを備える情報処理装置の情報処理方法であって、下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の1つの上位ノードから、1つの末端の第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて識別処理を行うステップとを含むことを特徴とする。
本発明の第2の記録媒体のプログラムは、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードとを備える情報処理装置のプログラムであって、第1および第2の下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の1つの上位ノードから、1つの末端の第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて識別処理を行うステップとを含むことを特徴とする。
本発明の第2のプログラムは、複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、上位ノードの判別結果に基づいて、第1の範囲の一部であって、第2の範囲と異なる範囲である第3の範囲の第3のラベルの学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードとを備える情報処理装置のプログラムであって、第1および第2の下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の1つの上位ノードから、1つの末端の第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて識別処理を行うステップとをコンピュータに実行させることを特徴とする。
本発明においては、第1の範囲の第1のラベルの学習サンプルが、上位ノードにより学習され、上位ノードの判別結果に基づいて、第1の範囲の一部である第2の範囲の第2のラベルの学習サンプルが第1の下位ノードにより学習され、第3の範囲の第3のラベルの学習サンプルが第2の下位ノードにより学習される。
さらに本発明においては、下位ノードは、上位ノードの判別結果に基づいて識別処理を行い、最も上位の1つの上位ノードから1つの末端の第1または第2の下位ノードに向かってノード単位で識別処理が順次行われ、末端の第1または第2の下位ノードに達したとき、並列する他の第1または第2の下位ノードについて識別処理が行われる。
本発明によれば、リアルタイムで顔検出することができる。特に、本発明によれば、学習または検出処理を、少ない演算量とし、高速化することができる。
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
[請求項1]
複数のラベル(例えば、図17のラベル1乃至15)に区分された学習サンプルのうち、第1の範囲の第1のラベル(例えば、図17のラベル1乃至15)の学習サンプルを学習する複数の弱判別器(例えば、図24の弱判別器21−11乃至21−1100)よりなる上位ノード(例えば、図24のノード221−1)と、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベル(例えば、図17のラベル1乃至5)の前記学習サンプルを学習する複数の弱判別器(例えば、図24の弱判別器21−1−11乃至21−1−1100)よりなる第1の下位ノード(例えば、図24のノード221−1−1)と、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベル(例えば、図17のラベル6,8,10,12,14)の前記学習サンプルを学習する複数の弱判別器(例えば、図24の弱判別器21−1−21乃至21−1−2100)よりなる第2の下位ノード(例えば、図24のノード221−1−2)と
を備えることを特徴とする情報処理装置(例えば、図5の対象物検出装置1)。
[請求項2]
前記学習は、最も上位の1つの前記上位ノード(例えば、図25のノード221−1)から、1つの末端の前記第1または第2の下位ノード(例えば、図25のノード221−1−1−1−1)に向かって順次行われ、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノード(例えば、図25の兄弟ノードとしてのノード221−1−1−1−2)について行われる
ことを特徴とする請求項1に記載の情報処理装置。
[請求項3]
前記上位ノード(例えば、図24のノード221−1−1−1)は一定の数(例えば、100個)の前記弱判別器を有し、
末端の前記第1および第2の下位ノード(例えば、図24のノード221−1−1−1−1)は、前記一定の数と等しい(例えば、100個)か、またはそれより少ない数(例えば、図24のL1個)の前記弱判別器を有する
ことを特徴とする請求項1に記載の情報処理装置。
[請求項4]
前記上位ノード並びに前記第1および第2の下位ノードは、それぞれ、
データ重み(例えば、式(11)の重みDt)を利用して前記弱判別器を選択する選択手段(例えば、図29の弱判別器選択部333)と、
選択された前記弱判別器による学習サンプルの判別結果(例えば、f(x))を、信頼度(例えば、式(10)の重みαt)により重み付けして累積和(例えば、式(7)のF(x))を演算する累積和演算手段(例えば、図29の重み付き多数決演算部336)と、
学習した前記弱判別器を利用して識別処理を行う場合に使用される基準値(例えば、式(8)の打ち切り閾値RM)を、前記累積和に基づいて演算する基準値演算手段(例えば、図29の閾値演算部337)と、
前記学習サンプルに基づいて前記データ重みを演算する重み演算手段(例えば、図29のデータ重み更新部335)と、
前記重み演算手段により演算された前記データ重みを保存し、前記選択手段による次の前記弱判別器の選択に反映する反映手段(例えば、図29の保存部339)と
を備えることを特徴とする請求項1に記載の情報処理装置。
[請求項5]
前記弱判別器は、前記学習サンプルの画像データの2画素の値(例えば、I1,I2)の差(例えば、式(2)のピクセル間差分特徴d)と閾値(例えば、図32のステップS74における弱仮説f(x)の閾値Th)との差に基づいて前記判別結果(例えば、図32のステップS74における弱仮説f(x))を演算する
ことを特徴とする請求項1に記載の情報処理装置。
[請求項6]
複数のラベル(例えば、図17のラベル1乃至15)に区分された学習サンプルのうち、第1の範囲の第1のラベル(例えば、図17のラベル1乃至15)の学習サンプルを複数の弱判別器(例えば、図24の弱判別器21−11乃至21−1100)よりなる上位ノード(例えば、図24のノード221−1)により学習するステップと、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベル(例えば、図17のラベル1乃至5)の前記学習サンプルを複数の弱判別器(例えば、図24の弱判別器21−1−11乃至21−1−1100)よりなる第1の下位ノード(例えば、図24のノード221−1−1)により学習するステップと、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベル(例えば、図18のラベル6,8,10,12,14)の前記学習サンプルを複数の弱判別器(例えば、図24の弱判別器21−1−21乃至21−1−2100)よりなる第2の下位ノード(例えば、図24のノード221−1−2)により学習するステップと
を含むことを特徴とする情報処理方法。
[請求項9]
複数のラベル(例えば、図17のラベル1乃至15)に区分された学習サンプルのうち、第1の範囲の第1のラベル(例えば、図17のラベル1乃至15)の学習サンプルを学習した複数の弱判別器(例えば、図24の弱判別器21−11乃至21−1100)よりなる上位ノード(例えば、図24のノード221−1)と、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベル(例えば、図17のラベル1乃至5)の前記学習サンプルを学習した複数の弱判別器(例えば、図24の弱判別器21−1−11乃至21−1−1100)よりなる第1の下位ノード(例えば、図24のノード221−1−1)と、
前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベル(例えば、図17のラベル6,8,10,12,14)の前記学習サンプルを学習した複数の弱判別器(例えば、図24の弱判別器21−1−21乃至21−1−2100)よりなる第2の下位ノード(例えば、図24のノード221−1−2)と
を備え、
前記第1および第2の下位ノード(例えば、図24のノード221−1−1, 221−1−2)は、入力された信号に対して、前記上位ノード(例えば、図24のノード221−1)の判別結果に基づいて識別処理を行い(例えば、図36のステップS132の処理)、
最も上位の1つの前記上位ノード(例えば、図24のノード221−1)から、1つの末端の前記第1または第2の下位ノード(例えば、図24のノード221−1−1−1−1)に向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノード(例えば、図24の兄弟ノードとしてのノード221−1−1−1−2)について識別処理を行う(例えば、図36のステップS138の処理の後のステップS132乃至S136の処理)
ことを特徴とする情報処理装置(例えば、図5の対象物検出装置1)。
[請求項11]
複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードと
を備える情報処理装置の情報処理方法であって、
前記下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップ(例えば、図36のステップS132)と、
最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて識別処理を行うステップ(例えば、図36のステップS138の処理の後のステップS132乃至S136)と
を含むことを特徴とする情報処理方法。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、アンサンブル学習(集団学習)を利用して画像から対象物を検出する情報処理装置を対象物検出装置に適用したものである。
集団学習によって得られる学習機械は、多数の弱仮説と、これらを組み合わせる結合機(combiner)とからなる。入力によらず、固定した重みで弱仮説の出力を統合する結合機の一例としてブースティングがある。ブースティングにおいては、前に生成した弱仮説の学習結果を使用して、間違いが発生した学習サンプル(例題)の重みを増すように、学習サンプルが従う分布が加工され、この分布に基づき新たな弱仮説の学習が行われる。これにより不正解が多く対象物として判別が難しい学習サンプルの重みが相対的に上昇し、結果的に重みが大きい、即ち判別が難しい学習サンプルを正解させるような弱判別器が逐次選択される。この場合、学習における弱仮説の生成は逐次的に行われ、後から生成された弱仮説はその前に生成された弱仮説に依存することになる。
対象物を検出する際には、上述のようにして学習により逐次生成された多数の弱仮説の判別結果が使用される。例えばAdaBoost(アダブースト)の場合は、この学習により生成された弱仮説(以下、弱判別器という。)全ての判別結果(対象物であれば1、非対象物であれば−1)が結合機に供給され、結合機は、全判別結果に対して、対応する弱判別器毎に学習時に算出された信頼度を重み付け加算し、その重み付き多数決の結果を出力し、結合機の出力値を評価することで、入力された画像が対象物か否かを選択する。
弱判別器は、なんらかの特徴量を使用して、対象物かまたは非対象物であるかの判定を行うものである。なお、後述するように、弱判別器の出力は対象物か否かを確定的に出力してもよく、対象物らしさを確率密度などで確率的に出力してもよい。本実施の形態においては、2つのピクセル間の輝度値の差という極めて簡単な特徴量(以下、ピクセル間差分特徴という。)を使用して対象物か否かを判別する弱判別器を使用した集団学習装置を利用することで、対象物の検出処理を高速化する。
(1)対象物検出装置
図5は、本実施の形態における対象物検出装置の処理機能を示す機能ブロック図である。図5に示されるように、対象物検出装置1は、対象物検出装置1への入力画像として濃淡画像(輝度画像)を出力する画像出力部2、入力画像の拡大または縮小、すなわちスケーリングを行うスケーリング部3、スケーリングされた入力画像を、所定サイズのウィンドウで、例えば左上から右下に向けて順次スキャンして、ウィンドウ内の画像をウィンドウ画像として出力する走査部4、並びに走査部4にて順次スキャンされた各ウィンドウ画像が対象物か非対象物かを判別する判別器5を有し、与えられる画像(入力画像)の中から対象物体の領域を示す対象物の位置および大きさを出力する。
すなわち、スケーリング部3は、入力画像を指定された全てのスケールに拡大または縮小したスケーリング画像を出力する。走査部4は、各スケーリング画像について、検出したい対象物の大きさとなるウィンドウを順次スキャンしてウィンドウ画像を切り出し、判別器5は、各ウィンドウ画像が顔か否かを判別する。
判別器5は、集団学習により判別器5を構成する複数の弱判別器の集団学習を実行する集団学習機6の学習結果を参照して、現在のウィンドウ画像が、例えば顔画像などの対象物であるか、または非対象物(顔画像以外の画像)であるかを判別する。
また、対象物検出装置1は、入力画像から複数の対象物が検出された場合は、複数の領域情報を出力する。更に、複数の領域情報のうち領域が重なりあっている領域が存在する場合は、後述する方法で最も対象物とされる評価が高い領域を選択する処理も行うことができる。
画像出力部2から出力された画像(濃淡画像)は、先ずスケーリング部3に入る。スケーリング部3では、バイリニア補完を用いた画像の縮小が行われる。本実施の形態においては、スケーリング部3で最初に複数の縮小画像を生成するのではなく、必要とされる画像を走査部4に対して出力し、その画像の処理を終えた後で、次の更に小さな縮小画像を生成するという処理が繰り返される。
すなわち、図6に示されるように、スケーリング部3は、先ず、入力画像10Aをそのまま走査部4へ出力する。そして、スケーリング部3は、入力画像10Aについて走査部4および判別器5の処理が終了するのを待った後、入力画像10Aのサイズを縮小した入力画像10Bを生成する。さらに、スケーリング部3は、この入力画像10Bにおける走査部4および判別器5の処理が終了するのを待って、入力画像10Bのサイズを更に縮小した入力画像10Cを走査部4に出力するというように、より小さく縮小した縮小画像10D、10Eなどを順次生成していき、縮小画像の画像サイズが、走査部4にて走査するウィンドウサイズより小さくなった時点で処理を終了する。この処理の終了をまって、画像出力部2は、次の入力画像をスケーリング部3に出力する。
走査部4では、図7に示されるように、与えられた例えば画像10Aに対して、後段の判別器5が受け付けるウィンドウサイズと同じ大きさのウィンドウ11を画像(画面)の全体に対して順次当てはめていき、各位置におけるウィンドウ11内の画像(以下、切り取り画像またはウィンドウ画像という)を判別器5に出力する。
ウィンドウ11の走査は、図8に示されるように、1画素単位で行われる。すなわち、所定の位置におけるウィンドウ11内の切り取り画像が走査部4から出力された後、次の走査においては、ウィンドウ11が1画素分右方向に移動され、その位置におけるウィンドウ11内の切り取り画像が判別器5に供給される。
なお、ウィンドウサイズは一定であるが、上述したように、スケーリング部3により入力画像が順次縮小され、入力画像の画像サイズが様々なスケールに変換されるため、任意の大きさの対象物体を検出することが可能となる。
すなわち、入力画像上の顔の大きさが、どのような大きさであったとしても、画像サイズが順次縮小されることで、いつかはウィンドウサイズとほぼ同じ大きさの画像となる。その結果、そのウィンドウ11内の画像が、人の顔の画像であるか否かを検出することができる。
判別器5は、前段から与えられた切り取り画像が、例えば顔などの対象物体であるか否かを判定する。判別器5は、図9に示されるように、アンサンブル学習(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個の画素の組み合わせの数に対応する。
判別器5においては、入力されるウィンドウ画像に対し、各弱判別器21iが対象物である否かの推定値f(x)を逐次出力し、加算器22が重み付き多数決F(x)を算出して出力する。この重み付き多数決F(x)の値に応じ、図示せぬ判定手段が、ウィンドウ画像が対象物か否かを最終的に判定する。
集団学習機6は、後述する方法にて、弱判別器21iと、それらの出力(推定値)に乗算する重みを集団学習により予め学習する。集団学習としては、複数の判別器の結果を多数決にて求めることができるものであれば、具体的にはどんな手法でも適用可能である。例えば、データの重み付けを行って重み付き多数決行うアダブースト(AdaBoost)などのブースティングを用いた集団学習を適用することができる。
判別器5を構成する各弱判別器21iは、判別のための特徴量として、2つの画素間の輝度値の差分(ピクセル間差分特徴)を使用する。そして、各弱判別器21iは、対象物か非対象物であるかのラベリングが予め施された複数の濃淡画像からなる学習サンプルにより学習された特徴量と、ウィンドウ画像の特徴量とを比較し、ウィンドウ画像が対象物であるか否かを推定するための推定値を確定的または確率的に出力する。
加算器22は、弱判別器21iの推定値に、各弱判別器21iに対する信頼度となる重みを乗算し、これを加算した値(重み付き多数決の値)を出力する。AdaBoostでは、複数の弱判別器21iは、順次推定値を算出し、これに伴い重み付き多数決の値が逐次更新されていく。これら複数の弱判別器は、集団学習機6により後述するアルゴリズムに従い、上述の学習サンプルを使用して集団学習により逐次的に生成されたものであり、例えばその生成順に上記推定値を算出する。また、重み付き多数決の重み(信頼度)は、弱判別器を生成する後述する学習工程にて学習される。
弱判別器21iは、例えばAdaBoostのように、弱判別器が2値出力を行う場合は、ピクセル間差分特徴を閾値で二分することで、対象物体であるかどうかの判別を行う。閾値により判別を行う場合、複数の閾値を用いてもよい。また、弱判別器は、例えばReal-AdaBoostのように、ピクセル間差分特徴から対象物体かどうかを表す度合いの連続値を確率的に出力してもよい。これら弱判別器21iが必要とする判別のための特徴量(閾値)なども学習時に上記アルゴリズムに従って学習される。
更に、本実施の形態では、重み付き多数決の際、全ての弱判別器の計算結果を待たず、計算途中であっても、その値によっては対象物体でないと判断して計算を打ち切るため、打ち切りの閾値(基準値)が学習工程で学習される。この打ち切り処理によって、検出処理における演算量を大幅に削減することが可能となる。これにより、全ての弱判別器の計算結果を待たず、計算途中で次のウィンドウ画像の判別処理に移ることができ、迅速な処理が可能となる。
このように、判別器5は、ウィンドウ画像が対象物か否かを判定するための評価値として重み付き多数決を算出し、その評価値に基づきウィンドウ画像が対象物か否かを判定する判定手段として機能する。更に判別器5は、予め学習により生成された複数の弱判別器が推定値を出力する毎に、その推定値に対して学習により得られた各弱判別器に対する重みを乗算して加算した重み付き多数決の値を更新し、この重み付き多数決の値(評価値)を更新する毎に、上記打ち切り閾値を利用して推定値の算出を打ち切るか否かをも制御する。
この判別器5は、集団学習機6において、学習サンプルを使用し、所定のアルゴリズムに従って集団学習することにより生成される。ここでは先ず、集団学習機6における集団学習方法について説明し、次に、その集団学習により得られた判別器5を使用し、入力画像から対象物を判別する方法について説明する。
(2)集団学習機
ブースティングアルゴリズムを用いて集団学習する集団学習機6は、上述したように複数の弱判別器を複数個組み合わせ、結果的に強い判別結果が得られるよう学習する。弱判別器は、1つ1つは、極めて簡単な構成とされ、1つでは顔か顔でないかの判別能力も低いものであるが、これを例えば数百乃至数千個組み合わせることで、高い判別能力を持たせることができる。この集団学習機6は、例えば数千の学習サンプルといわれる予め正解付け(ラベリング)された対象物と非対象物、例えば顔画像と非顔画像とからならなるサンプル画像を使用し、多数の学習モデル(仮説の組み合わせ)から所定の学習アルゴリズムに従って1つの仮説を選択(学習)することで弱判別器を生成し、この弱判別器の組み合わせ方を決定していく。弱判別器はそれ自体では判別性能が低いものであるが、これらの選別、組み合わせ方により、結果的に判別能力が高い判別器を得ることができるため、集団学習機6では、弱判別器の組み合わせ方、即ち弱判別器の選別およびそれらの出力値を重み付き多数決する際の重みなどの学習をする。
次に、適切な弱判別器を学習アルゴリズムに従って多数組み合わせた判別器を得るための集団学習機6の学習方法について説明するが、集団学習機6の学習方法の説明に先立ち、集団学習にて学習する学習データのうちで、本実施の形態において特徴となる学習データ、具体的には、弱判別器を構成するためのピクセル間差分特徴、並びに判別工程(検出工程)において、検出を途中で打ち切るための打ち切り閾値(基準値)について説明しておく。
(3)弱判別器の構成
本実施の形態における判別器5は、複数の弱判別器で構成される。この弱判別器は、入力される画像に含まれる全画素の中から選択された2つの画素の輝度値の差分(ピクセル間差分特徴)により顔か否かを判別する極めて簡単な構成とされる。これにより、判別工程において、弱判別器の判別結果の算出が高速化される。弱判別器に入力される画像は、学習工程では、学習サンプルであり、判別(識別)工程では、スケーリング画像から切り出されたウィンドウ画像である。
図10は、ピクセル間差分特徴を説明するための画像を示す模式図である。画像30において、本実施の形態においては、任意の2つの画素の輝度値の差、例えば画素31の輝度値I1と、画素32の輝度値I2との差、即ち下記式(2)で得られる値dがピクセル間差分特徴と定義される。
Figure 2005284487
どのピクセル間差分特徴dを顔検出に使用するかが弱判別器の能力となる。従って、サンプル画像またはウィンドウ画像に含まれる任意の2画素の組み合わせ(フィルタまたは弱仮説ともいう。)から、弱判別器に使用するピクセル位置の組を選択する必要がある。
例えばAdaBoostでは、弱判別器に、+1(対象物体である)か、または−1(非対象物体)であるかの確定的な出力を要求する。そこで、AdaBoostにおいては、ある任意のピクセル位置において、そのピクセル間差分特徴dを、1または複数の閾値を利用して2分割(+1または−1)することをもって弱判別器とすることができる。
また、このような2値出力ではなく、学習サンプルの確率分布を示す連続値(実数値)を確率的に出力するような例えばReal-AdaBoostまたはGentle Boostなどのブースティングアルゴリズムの場合、弱判別器は、入力された画像が対象物である確からしさ(確率)を出力する。弱判別器の出力は、このように確定的であっても確率的であってもよい。先ず、これら2種類の弱判別器について説明する。
(3−1)2値出力の弱判別器
確定的な出力をする弱判別器は、ピクセル間差分特徴dの値に応じて、対象物か否かの2クラス判別を行う。対象画像領域中のある2つのピクセルの輝度値をI1、I2とし、ピクセル間差分特徴dにより対象物か否かを判別するための閾値をTh1とすると、下記式(3)を満たすか否かで、いずれのクラスに属するかを決定することができる。
Figure 2005284487
ここで、弱判別器を構成するには、2つのピクセル位置と、その閾値を決定する必要があるが、その決定方法については後述する。上記式(3)の閾値判定は最も単純な場合である。また、閾値判定には、次の下記式(4)または式(5)に示す2つの閾値を用いることもできる。
Figure 2005284487
Figure 2005284487
図11A乃至図11Cは、縦軸に頻度をとり、横軸にピクセル間差分特徴dをとって、それぞれ上記式(3)乃至式(5)に示す3つの判別方法を、データの頻度分布の特徴的なケースに合わせて示す模式図である。図11A乃至図11Cにおいては、yiは弱判別器の出力を示し、破線が、yi=−1(非対象物)であると判定された学習サンプルの分布を示し、実線が、yi=1(対象物)であると判定された学習サンプルの分布を示す。多数の顔画像と非顔画像からなる学習サンプルに対し、同一のピクセル間差分特徴dに対する頻度を取ると、図11A乃至図11Cに示されるヒストグラムが得られる。
なお、実線と破線は、それぞれ、yi=1、またはyi=−1と判定された頻度を独立に表している。従って、例えば、図11Aのピクセル間差分特徴dの合計した分布は、図12に示されるようになる。
図11Aに示されるように、ヒストグラムが、例えば、非対象物を示す破線の分布と、対象物を示す実線の分布が、同様な正規曲線のように分布し、そのピーク位置が左右にずれているような場合は、その境界部に閾値Th1を設定し、上記式(3)にて対象物か否かを判別することができる。例えばAdaBoostにおいては、弱判別器の出力(判別結果)をf(x)としたとき、出力f(x)=1(対象物)またはf(x)=−1(非対象物)となる。図11Aは、ピクセル間差分特徴dが閾値Th1より大きい場合に対象物であると判定され、弱判別器の出力がf(x)=1となる例を示している。
また、2つのヒストグラムのピーク位置が同じような位置にあって、その分布の幅が異なるような場合、分布が狭い方のピクセル間差分特徴dの上限値近傍および下限値近傍を閾値として、上記式(4)または式(5)により、対象物か否かを判別することができる。図11Bは、分布の幅が狭い方が対象物と判定され、弱判別器の出力がf(x)=1となる例を、図11Cは、分布の幅が広い方から分布の幅が狭い方を除いたものが対象物と判定され、弱判別器の出力がf(x)=1となる例を、それぞれ示している。
弱判別器は、あるピクセル間差分特徴dとその閾値とを決定することにより構成されるが、その判定によって誤り率ができるだけ小さくなるような、即ち判別率が高いピクセル間差分特徴dを選択する必要がある。例えば、閾値は、2つの画素位置を決め、正解付けされた学習サンプルに対して、図11に示されるようなヒストグラムを求め、最も正解率が高くなる閾値、換言すれば、非正解率(誤り率)が最も小さくなるような閾値を検索することで決定される。また、2つの画素位置は、閾値と共に得られる誤り率が最も小さいものを選択するなどすればよい。但し、AdaBoostにおいては、判別の難易度を反映した重み(データ重み)が各学習サンプルに付けられており、適切なピクセル間差分特徴d(どの位置の2つのピクセルの輝度値を特徴値とするか)が後述する重み付き誤り率を最小にするように学習される。
(3−2)連続値出力の弱判別器
確率的な出力をする弱判別器としては、上述した如く、例えばReal-AdaBoostまたはGentle Boostなどのように弱判別器が連続値を出力するものがある。この場合、弱判別器は、ある決められた一定値(閾値)により判別問題を解き、2値出力(f(x)=1または−1)する上述の場合と異なり、入力された画像が対象物である度合いを、例えば確率密度関数として出力する。
このような、対象物体である度合い(確率)を示す確率的な出力は、ピクセル間差分特徴dを入力としたときPP(x)を学習サンプルの対象物の確率密度関数、Pn(x)を学習サンプルの非対象物の確率密度関数とすると、下記式(6)に示す関数f(x)とすることができる。
Figure 2005284487
図13Aは、縦軸に確率密度をとり、横軸にピクセル間差分特徴dをとって、データの頻度分布の特徴的なケースを示す図であり、図13Bは、縦軸に関数f(x)の値をとり、横軸にピクセル間差分特徴dをとって、図13Aに示すデータ分布における関数f(x)を示すグラフである。図13Aにおいて、破線が非対象物体であることを示す確率密度、実線が対象物体であることを示す確率密度を、それぞれ示す。上記式(6)から関数f(x)を求めると、図13Bに示すグラフが得られる。弱判別器は、学習工程または判別工程において、入力される学習サンプルまたはウィンドウ画像から得られた上記式(2)に示すピクセル間差分特徴dに対応する関数f(x)を出力する。この関数f(x)は、対象物らしさの度合いを示すものであって、例えば非対象物を−1、対象物を1としたとき、−1乃至1までの連続値を取るものとすることができる。例えばピクセル間差分特徴dとそれに対応するf(x)とからなるテーブルを記憶し、入力に応じてテーブルからf(x)を読出し出力する。従って、一定値である閾値Th1またはTh11,Th12,Th21,Th22より若干記憶量が大きくなるが判別性能が向上する。
これら複数の推定方法(判別方法)は、アンサンブル学習中に組み合わせて使用することで、判別性能が向上することが期待できる。また、いずれか単一の判別方法のみを利用すれば、実行速度性能を引き出すことができる。
本実施の形態において使用する弱判別器は、使用する特徴量(ピクセル間差分特徴d)が非常に単純であるために、上述したように極めて高速に対象物の判別を行うことができる点が特長である。このように対象物として顔検出する場合には、ピクセル間差分特徴dを上述の判別方法のうち最も単純な式(3)に示す閾値判定によっても極めてよい判別結果が得られるが、どのような判別方法により弱判別器が有効に機能するかは、対象とする問題によって異なり、その閾値設定方法などを適宜選択すればよい。また、問題によっては、2つの画素の輝度値の差ではなく、3個以上の画素の輝度値の差を特徴量としてもよい。
(4)打ち切り閾値
次に、打ち切り閾値について説明する。ブースティングを用いた集団学習機においては、通常は、上述したように判別器5を構成する全弱判別器の出力の重み付き多数決によりウィンドウ画像が対象物か否かを判別する。重み付き多数決は、弱判別器の判別結果(推定値)を逐次足し合わせていくことで算出される。例えば、弱判別器の個数をt(=1,・・・,K)、各弱判別器に対応する多数決の重み(信頼度)をαt、各弱判別器の出力をft(x)としたとき、AdaBoostにおける重み付き多数決の値F(x)は、下記式(7)により求めることができる。
Figure 2005284487
図14は、横軸に弱判別器の数をとり、縦軸に上記式(7)に示す重み付き多数決の値F(x)をとって、入力される画像が対象物か否かに応じた重み付き多数決の値F(x)の変化を示すグラフである。図14において、破線で示すデータ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)の最小値とされ、下記式(8)のように定義される。
Figure 2005284487
この式(8)に示されるように、対象物である学習サンプルx1乃至xJの重み付き多数決の値F(x)の最小値が0を上回る場合には打ち切り閾値RMには0が設定される。なお、0を上回らないようにするのは、0を閾値にして判別を行うAdaBoostの場合であり、ここは集団学習の手法により異なる場合がありうる。AdaBoostの場合においては、打ち切り閾値RMは図14の実線で示されるように、入力画像として対象物を入力した場合の全データV1乃至V4の重み付き多数決の値F(x)のうち、取りうる最小値に設定され、全てのデータV1乃至V4の重み付き多数決の値F(x)の最小値が0を超えた場合は、打ち切り閾値RMが0に設定される。
本実施の形態においては、弱判別器が生成される毎の打ち切り閾値RM(R1乃至RK)を学習しておくことで、後述する判別工程において、例えばデータV5のように、複数の弱判別器により推定値が逐次出力され、重み付き多数決の値が逐次更新されていくが、この値が上記打ち切り閾値RMを下まわった時点で、後段の弱判別器による判別の処理が終了され。すなわち、この打ち切り閾値RMを学習しておくことにより、弱判別器の推定値を計算する毎に次の弱判別器の計算を行うか否かを決定でき、明らかに対象物ではないと判断される場合には、全ての弱判別器の判別結果を待たずに非対象物であることが判定でき、演算を途中で打ち切りことで検出処理を高速化することができる。
(5)弱判別器の組立構造
次に本実施の形態における弱判別器の組立構造について説明する。本実施の形態においては、例えば、図15に示されるような複数個の学習サンプルが学習に用いられる。各学習サンプルは、24×24画素で構成される。そして、各学習サンプルは、人の顔の画像とされ、照明条件や人種など、様々なバリエーションを含んだものとされる。
また、本実施の形態においては、人の顔(頭)の姿勢に基づいてラベリングが行われる。
即ち、人の顔は、図16に示されるように、ピッチ角、ヨー角、並びにロール角によって決定される。ピッチ角は、人の目と目を結んだ線と平行で、ほぼ人の頭の中心を通る軸201を中心とする上下の角度であり、例えば、上を向くと正、下を向くと負とされる。ヨー角は、軸201と垂直な軸であって、ほぼ頭の中心を垂直に通る軸202を中心とした角度であり、例えば、正面が0度とされ、右方向が負、左方向が正となるように定義される。ロール角は、軸201と軸202と直交する軸203を中心として回転する角度を表し、軸201が水平になる角度が0度とされる。
この3つの角度のうち、ロール角は、画像を回転することで補正可能(変換可能)であるから、補正後の画像から、その画像が人の顔であるのか否かを判定することが可能となる。これに対して、ヨー角とピッチ角は、簡単には補正できない。そこで、本実施の形態においては、所定の角度のヨー角とピッチ角を有する人の顔の画像を学習することで、それが人の顔の画像であるか否かを検出できるようにする。
このため、本実施の形態においては、学習サンプルは、そのヨー角とピッチ角に基づいて、図17に示されるように、15個のグループ(ラベル)に分類される(ラベリングされる)。
ヨー角は、−90度乃至−45度の範囲、−45度乃至−15度の範囲、−15度乃至+15度の範囲、+15度乃至+45度の範囲、並びに+45度乃至+90度の範囲の5つの範囲に区分される。ピッチ角は、−90度乃至−25度の範囲、−25度乃至+25度の範囲、並びに+25度乃至+90度の範囲の3つの範囲に区分される。
そして、ヨー角が−15度乃至+15度の範囲であり、ピッチ角が−25度乃至+25度の範囲がラベル1、ヨー角が+15度乃至+45度の範囲でピッチ角が−25度乃至+25度の範囲がラベル2、ヨー角が−45度乃至−15度の範囲でピッチ角が−25度乃至+25度の範囲がラベル3、ピッチ角が−15度乃至+15度の範囲でピッチ角が+25度乃至+90度の範囲がラベル4、ヨー角が−15度乃至+15度の範囲でピッチ角が−90度乃至−25度の範囲がラベル5、ヨー角が+15度乃至+45度の範囲でピッチ角が+25度乃至+90度の範囲がラベル6、ヨー角が−45度乃至−15度の範囲でピッチ角が+25度乃至+90度の範囲がラベル7、ヨー角が+15度乃至+45度の範囲でピッチ角が−90度乃至−25度の範囲がラベル8、ヨー角が−45度乃至−15度の範囲でピッチ角が−90度乃至−25度の範囲がラベル9、ヨー角が+45度乃至+90度の範囲でピッチ角が−25度乃至+25度の範囲がラベル10、ヨー角が−90度乃至−45度の範囲でピッチ角が−25度乃至+25度の範囲がラベル11、ヨー角が+45度乃至+90度の範囲でピッチ角が+25度乃至+90度の範囲がラベル12、ヨー角が−90度乃至−45度の範囲でピッチ角が+25度乃至+90度の範囲がラベル13、ヨー角が+45度乃至+90度の範囲でピッチ角が−90度乃至−25度の範囲がラベル14、そしてヨー角が−90度乃至−45度の範囲でピッチ角が−90度乃至−25度の範囲がラベル15とされる。
図18に示されるように、学習サンプルは、その写っている人の顔の向きに応じて、図17に示されるラベル1乃至ラベル15のいずれかにラベリングされる。このラベリングは、人によって行われる。
そして、本実施の形態においては、基本的に一定の数(例えば、100個)の弱判別器によりノードが構成され、各ノードがツリー構造に配置される。学習が、従ってその識別が、各ラベルの画像を識別できるように行われる。そして上位の階層の弱判別器では、下位の階層の弱判別器で行われる学習で対象とされる全てのラベルを含むように学習が行われる。
例えば、簡単のため、ラベル1乃至ラベル5の5個のラベルの画像を学習する場合、図19に示されるようにツリー構造が形成される。図19の例の場合、各ノードは、100個の弱判別器により構成されている。最上位のノード221−1は、弱判別器21−11乃至21−1100により構成される。このノード221−1は、ラベル1乃至ラベル5の全ての学習サンプルを学習する。
ノード221−1の下位のノードとして、ノード221−1−1,221−1−2が形成されている。ノード221−1−1は、弱判別器21−1−11乃至21−1−1100により構成され、ノード221−1−2は、弱判別器21−1−21乃至21−1−2L5により構成される。換言すれば、ノード221−1−1,221−1−2は、より上位のノード221−1の子ノードとなり、相対的にノード221−1は、ノード221−1−1,221−1−2の親ノードとなる。ノード221−1−1とノード221−1−2は、親ノードであるノード221−1に関して兄弟ノードとなる。親ノードと子ノードは相対的なものであり、親ノードでも、さらに上の階層のノードがあれば、それとの関係では子ノードとなる。
ノード221−1−2は、それより下位のノード(子ノード)が存在しないため、弱判別器の数は、L5個とされる。ノード221−1−2は、ラベル5の学習サンプルを学習する。これに対して、ノード221−1−1は、親ノード221−1が学習する学習サンプルのラベル(ラベル1乃至ラベル5)のうち、兄弟ノード221−1−2が、学習するラベル(ラベル5)を除くラベル(ラベル1乃至ラベル4)の学習サンプルを学習する。
ノード221−1−1の下位のノード(子ノード)としては、ノード221−1−1−1乃至221−1−1−3が設けられている。ノード221−1−1−1は、ラベル1の学習サンプルを学習し、ノード221−1−1−2は、ラベル2の学習サンプルを学習し、ノード221−1−1−3は、親ノード221−1−1が学習するラベル(ラベル1乃至ラベル4)のうちの兄弟ノードが学習するラベル(ラベル1とラベル2)を除くラベル(ラベル3とラベル4)を学習する。
ノード221−1−1−1は、それより下位のノードが存在しない末端のノードであり、弱判別器21−1−1−11乃至21−1−1−1L1のL1個の弱判別器を有している。ノード221−1−1−2も、末端のノードであり、弱判別器21−1−1−21乃至21−1−1−2L2のL2個の弱判別器を有している。
ノード221−1−1−3は、末端のノードではないため、弱判別器21−1−1−31乃至21−1−1−3100の100個の弱判別器を有している。
ノード221−1−1−3を親ノードとする子ノードとしては、ノード221−1−1−3−1,221−1−1−3−2が設けられている。ノード221−1−1−3−1は、親ノードが学習するラベル(ラベル3とラベル4)のうち、ラベル3の学習サンプルを学習する。ノード221−1−1−3−2は、親ノード221−1−1−3が学習するラベル(ラベル3とラベル4)のうち、兄弟ノード221−1−1−3−1が学習するラベル(ラベル3)を除くラベル(ラベル4)の学習サンプルを学習する。ノード221−1−1−3−1は、末端のノードであるため、弱判別器21−1−1−3−11乃至21−1−1−3−1L3のL3個の弱判別器により構成され、ノード221−1−1−3−2は、弱判別器21−1−1−3−21乃至21−1−1−3−2L4のL4個の弱判別器により構成される。
末端のノード221−1−1−1,221−1−1−2,221−1−1−3−1,221−1−1−3−2,221−1−2の弱判別器の数L1乃至L5は、各ノードが対応するラベルの学習サンプルを学習した場合において、その重み付き誤り率etが0(充分小さい値)となる数とされる。
このようにすることで、弱判別器の数を少なくすることが可能となる。
即ち、このようにツリー構造にしないとすると、1つのラベルを識別するのに、例えば、図20に示されるような弱判別器群231が必要となる。弱判別器群231は、弱判別器21−11乃至21−1KのK個の弱判別器を有する。そして、このK個の弱判別器により、1つのラベルの学習サンプルの学習が行われることになる。
従って、例えば5個のラベルの学習サンプルを学習するには、図21に示されるように、ラベル1の学習サンプルを学習するための弱判別器群231−1の他、ラベル2乃至ラベル5の各ラベルの学習サンプルを学習するための弱判別器群231−2乃至231−5が必要となる。これらの弱判別器群231−2乃至23−5も、それぞれK個の弱判別器から構成される。
図19に示されるツリー構造においても、重み付き誤り率etが最後まで充分小さくならない場合には、最も上流のノードから、その末端のノードまでの学習経路における弱判別器の数は、最大K個となる。しかし、途中で重み付け誤り率etの値が充分小さくなった場合には、そのラベルの学習サンプルの学習は、それ以降行われないため、その分弱判別器の数は少なくてすむ。さらに、上流側での複数のラベルの学習サンプルの学習は、共通の弱判別器により学習されるため、その分弱判別器の数は少なくてすむ。
さらに、本実施の形態においては、判別(識別)工程で各弱判別器の処理の結果得られた値を重み付けして累積加算した値である重み付き多数決の値が、打ち切り閾値より小さくなった場合には、以後、判別(識別)処理は中止される。従って、その点からも弱判別器の数を少なくすることが可能となる。
このことが、図22に模式的に示されている。即ち、この実施の形態においては、ノード221は、基本的に、弱判別器211乃至21100により構成されるが、各ノード21iは、図23に示されるように、打ち切り閾値による打ち切り機能を有している。図中、Yは出力が後段に引き継がれることを表し、Nは処理がそこで打ち切られることを表している。
図24は、このような打ち切り機能を有する弱判別器により各ノードが構成されている場合のツリー構造の一部(図25のツリー構造の一部)を表している。この例は、ラベル1乃至ラベル15の15個のラベルの学習サンプルを学習、識別する例を表している。即ち、最上位の親ノード221−1は、弱判別器21−11乃至21−1100で構成されている。親ノード221−1の子ノードとしては、ノード221−1−1,221−1−2,221−1−3が設けられている。親ノード221−1は、ラベル1乃至ラベル15の全てのラベルの学習サンプルを学習するが、ノード221−1−1は、ラベル1乃至ラベル5の5個のラベルの学習サンプルを学習し、ノード221−1−2は、ラベル6,8,10,12,14の5個のラベルの学習サンプルを学習し、ノード221−1−3は、ラベル7,9,11,13,15の5個のラベルの学習サンプルを学習する。
ノード221−1−1は、弱判別器21−1−11乃至21−1−1100の100個の弱判別器により構成され、ノード221−1−2は、弱判別器21−1−21乃至21−1−2100の100個の弱判別器により構成され、ノード221−1−3は、弱判別器21−1−31乃至21−1−3100の100個の弱判別器により構成されている。
ノード221−1−1を親ノードとする子ノードには、ノード221−1−1−1,221−1−1−2,221−1−1−3が設けられている。ノード221−1−1−1は、弱判別器21−1−1−11乃至21−1−1−1100の100個の弱判別器を有しており、親ノード221−1−1が学習するラベル1乃至ラベル5の学習サンプルのうちの、ラベル1乃至ラベル3の3個のラベルの学習サンプルを学習する。ノード221−1−1−2は、ラベル4の学習サンプルを学習し、ノード21−1−1−21乃至21−1−1−2L4のL4個の弱判別器を有している。ノード221−1−1−3は、ラベル5の学習サンプルを学習し、弱判別器21−1−1−31乃至21−1−1−3L5のL5個の弱判別器により構成されている。
ノード221−1−1−1を親ノードとする子ノードには、ノード221−1−1−1−1乃至221−1−1−1−3が設けられている。ノード221−1−1−1は、ラベル1の学習サンプルを学習し、弱判別器21−1−1−1−11乃至21−1−1−1−1L1を有している。ノード221−1−1−2は、ラベル2の学習サンプルを学習し、弱判別器21−1−1−1−21乃至21−1−1−1−2L2のL2個の弱判別器を有している。ノード221−1−1−1−3は、ラベル3の学習サンプルを学習し、弱判別器21−1−1−1−31乃至21−1−1−1−3L3のL3個の弱判別器を有している。
ノード221−1−2の子ノードとしてのノード221−1−2−1乃至221−1−2−3は、それぞれラベル10、ラベル6,12、またはラベル8,14の学習サンプルを学習する。ノード221−1−2−1は、弱判別器21−1−2−11乃至21−1−2−1L10のL10個の弱判別器を有し、ノード221−1−2−2は、弱判別器21−1−2−21乃至21−1−2−2100の100個の弱判別器を有し、ノード221−1−2−3は、弱判別器21−1−2−31乃至21−1−2−3100の100個の弱判別器を有している。
ノード221−1−3を親ノードする子ノードとしては、ノード221−1−3−1乃至221−1−3−3がある。ノード221−1−3−1は、ラベル11の学習サンプルを学習し、弱判別器21−1−3−11乃至21−1−3−1L11のL11個の弱判別器を有する。ノード221−1−3−2は、ラベル7,11の学習サンプルを学習し、弱判別器21−1−3−21乃至21−1−3−2100の100個の弱判別器を有する。ノード221−1−3−3は、ラベル9,15の学習サンプルを学習し、弱判別器21−1−3−31乃至21−1−3−3100の100個の弱判別器を有している。
各ノードには、図25に示されるように、それぞれIDが割り当てられる。ノード221−1は、IDが1000とされ、ノード221−1−1乃至221−1−3は、IDが、それぞれ1100,1200、または1300とされる。ノード221−1−1−1乃至221−1−1−3は、それぞれIDが1110,1120、または1130とされる。ノード221−1−1−1−1乃至221−1−1−1−3のIDは、それぞれ1111,1112,1113とされる。ノード221−1−2−1乃至221−1−2−3のIDは、それぞれ1210,1220,1230とされる。
ノード221−1−2−2を親ノードとする子ノードとしては、ノード221−1−2−2−1と、ノード221−1−2−2−2が設けられ、それぞれのIDは、1221または1222とされている。
ノード221−1−2−3を親ノードとする子ノードとしては、ノード221−1−2−3−1と221−1−2−3−2が設けられ、それぞれのIDは1231または1232とされる。
ノード221−1−3−1乃至221−1−3−3のIDは、それぞれ1310,1320または1330とされる。
ノード221−1−3−2を親ノードとする子ノードとしては、ノード221−1−3−2−1とノード221−1−3−2−2があり、それぞれのIDは、1321または1322とされている。
ノード221−1−3−3の子ノードとしては、ノード221−1−3−3−1とノード221−1−3−3−1があり、それぞれのIDは、1331または1332とされている。
ツリー構造は、パターンを持つ特性に関する知見を用いて、人が設計してもよいし、学習を進めるうちに識別性能の向上しない(重み付け誤り率etが充分小さくならない)サンプル分を枝分かれさせるようにすることで、構成するようにしてもよい。
図25(図24)のツリー構造は、ヨー角が近似していれば、パターンの類似性も高いという知見に基づいて、ツリー構造が設計されている。このため、最上位の親ノード221−1は、ラベル1乃至ラベル15の全てのラベルの学習サンプルを学習する。この15個のラベルの学習サンプルは、正面の画像に関するラベル、左向きの画像に関するラベル、並びに右向きの画像に関するラベルの学習サンプルに区分され、それぞれノード221−1−1、ノード221−1−2またはノード221−1−3により学習される。
そして、正面の画像であるラベル1乃至ラベル5の学習サンプルは、さらに、ピッチ角が−25乃至+25度の範囲のラベル1乃至ラベル3の画像の学習サンプル、ピッチ角が+25度乃至+90度の範囲のラベル4の画像の学習サンプル、並びに、ピッチ角が−90度乃至−25度の範囲のラベル5の画像の学習サンプルに区分され、それぞれノード221−1−1−1、221−1−1−2,221−1−1−3により学習される。
ピッチ角が−25度乃至+25度の範囲のラベル1乃至ラベル3の画像は、さらに、それぞれ、ラベル1、ラベル2、またはラベル3の画像の学習サンプルに分割され、ノード221−1−1−1−1、221−1−1−1−2、または221−1−1−1−3により学習される。
左向きの画像であるラベル6,8,10,12または14の学習サンプルは、それぞれピッチ角に応じて、ラベル10,ラベル6,12、並びにラベル8,14の3つに区分される。ラベル10の学習サンプルは、ノード221−1−2−1により、ラベル6,12は、ノード221−1−2−2により、ラベル8,14は、ノード221−1−2−3により、それぞれ学習される。
ラベル6とラベル12の学習サンプルは、それぞれ、さらに分割され、ノード221−1−2−2−1,221−1−2−2−2によりそれぞれ学習される。
ラベル8,14の学習サンプルは、それぞれ、ラベル8とラベル14に区分され、ノード221−1−2−3−1,221−1−2−3−2によりそれぞれ学習される。
右向きの画像であるラベル7,9,11,13,15の学習サンプルは、それぞれピッチ角に応じて、ラベル11、ラベル7,13,並びにラベル9,15に区分される。そして、ラベル11の学習サンプルは、ノード221−1−3−1により、ラベル7,13の学習サンプルは、ノード221−1−3−2により、ラベル9,15の学習サンプルは、ノード221−1−3−3により、それぞれ学習される。
ラベル7とラベル13の学習サンプルは、それぞれ区分され、ノード221−1−3−2−2,221−1−3−2−1により、それぞれ学習される。
ラベル9とラベル15の学習サンプルは、それぞれ区分され、ノード221−1−3−3−2とノード221−1−3−3−1によりそれぞれ学習される。
各ノードには、図26に示されるように、データ構造の定義がなされる。ノードIDは、各ノードを識別する番号である。図26の例においては、ノードIDが1310とされている。親ノードIDは、自分自身から見た親ノードのノードIDを表す。ノード221−1−3−1の親ノードは、ノード221−1−3であり、そのIDは1300であるので、ここには1300が記述される。親ノードが存在しない場合には、親ノードIDは、−1とされる。子ノードIDには、子ノードのIDが記述される。ただし、このノード221−1−3−1は、末端のノードであり、子ノードを有していないため、−1とされる。ラベルは、このノードが処理するサンプルのラベルを表し、ノード221−1−3−1のラベルは11とされる。弱判別器の数は、自分自身が有する弱判別器の数を表し、この例ではL11とされている。
このデータ構造に、重み付き多数決やサンプルの重みなどが記述される。
(6)学習方法
次に、集団学習機6の学習方法について説明する。与えられたデータが、顔か否か、そして顔であるとして、いずれの方向を向いている顔であるのかのパターン認識問題の前提として、予め人手によりラベリング(正解付け)された学習サンプルとなる画像(訓練データ)が用意される。学習サンプルは、検出したい対象物体の領域を切り出した画像群(ポジティブサンプル)と、全く関係のない、例えば風景画などを切り出したランダムな画像群(ネガティブサンプル)とからなる。
これらの学習サンプルを基に学習アルゴリズムを適用し、判別時に用いる学習データを生成する。判別時に用いる学習データとは、本実施の形態においては、上述した学習データを含む以下の4つの学習データである。すなわち、
(A)2つのピクセル位置の組(K個)
(B)弱判別器の閾値(K個)
(C)重み付き多数決の重み(弱判別器の信頼度)(K個)
(D)打ち切り閾値(K個)
(6−1)判別器の生成
以下に、上述したような多数の学習サンプルから、上記(A)乃至(D)に示す4種類の学習データを学習するアルゴリズムを説明する。
この学習処理を実施するため、集団学習機6は、図27に示されるような機能的構成を有している。すなわち、集団学習機6は、初期化部301、ノード学習部302、判定部303、選択部304、および復帰部305により構成されている。これらの各部は、必要なデータを相互に授受することが可能とされる。
初期化部301は、各種の初期値を設定する。ノード学習部302は、各ノードにおける弱判別器の学習処理を行う。判定部303は、子ノードの数(size(numChild)と後述するブランチカウント(branch_count[i])との比較や、ノードIDが正であるか否かの判定などを行う。選択部304は、次に処理するノードを選択する。復帰部305は、処理対象とするノードを親ノードに戻すなどの処理を行う。
図28は、集団学習機6の学習方法を示すフローチャートである。なお、ここでは、学習アルゴリズムとして、弱判別の際の閾値として一定の値を使用するアルゴリズム(AdaBoost)に従った学習について説明するが、閾値として正解の確からしさ(確率)を示す連続値を使用する例えばReal-AdaBoostなど、弱判別器を複数結合するために集団学習するものであれば、学習アルゴリズムはAdaBoostに限らない。
上述したように、最初に、予め対象物または非対象物であることがラベリングされたN個の学習サンプルが用意される。
この学習サンプルは、例えば、図18に示されるように、N個の画像とされ、1個の画像は、24×24画像で構成される。各学習サンプルは、人の顔の画像とされ、ラベル1乃至ラベル15のいずれかにラベリングされる。
ステップS11において、初期化部301は初期値を設定する。具体的には、処理ノードのIDを表す変数iに、最も上位のノード(根元のノード)のID(図25の例の場合、1000)が設定される。また、全てのデータのデータ重みDtに1/Nが設定される。Nは、サンプルの数を表す。さらに、全てのノードにおける多数決重みF(x)に0が初期設定され、各ノードから、それより下位のノード(子ノード)に訪ねた回数を表す変数branch_count[i]に0が初期設定される。
ステップS12において、ノード学習部302は、いま処理対象とされている変数iに設定されているIDを有するノードの学習処理を行う。その詳細は、図30のフローチャートを参照して説明するが、これにより、いま処理対象とされているノードにおける弱判別器の学習が行われる。そのノードにおける処理結果は、子ノードに引き継ぐために保存される。いまの場合、変数iに1000が設定されているため、図25のノード221−1の学習処理が行われる。
次に、ステップS13において、判定部303は、変数branch_count[i]の値と子ノードの数を表す変数size(numChild)とを比較する。branch_count[i]の値が子ノードの数より小さい場合には、まだ全ての子ノードに対しての学習処理を完了していないことになるので、処理はステップS14に進む。いまの場合、branch_count[i]の値は0(ステップS11の処理)であり、IDが1000(i=1000)のノード221−1は、3個の子ノード(221−1−1乃至221−1−3を有しているので、ステップS13においてはYESと判定され、処理はステップS14に進む。
ステップS14において、選択部304は、次に処理するノードを選択する。具体的には、いま処理対象とされているノード221−1の変数branch_count[i]の値が1だけインクリメントされ(いまの場合、1とされ)、さらに、処理対象とするノードを表す変数iに、変数branch_count[i]で表される子ノードのノードIDが設定される。図25の例の場合、例えば、現在の処理対象のノード221−1の子ノードであるノード221−1−1のID1100が変数iに設定される。
その後、処理はステップS12に戻り、変数iに設定されているノードに対するノードの学習処理が行われる。いまの場合、IDが1100のノード221−1−1の学習処理が行われる。
次にステップS13において、変数branch_count[i]の値が子ノードの数より小さいか否かが、判定部303により判定される。いまの場合、処理対象とされているノードはIDが1100のノード221−1−1であり、その子ノードは、IDが1110,1120,1130のノード221−1−1−1乃至221−1−1−3の3個である。ノード221−1−1の変数branch_count[i]も、ステップS11の初期設定で0に設定されているため、変数branch_count[i]は、子ノードの数(=3)より小さいと判定され、処理はステップS14に進む。そして、ステップS14において、ノード221−1−1の変数branch_count[i]が1だけインクリメントされ(1とされ)、変数iに、ノード221−1−1の子ノードであって、ノード221−1−1のbranch_count[i]で表される子ノードのノードIDが設定される。図25の例の場合、処理対象となっていたノード221−1−1の1つの子ノードであるノード221−1−1−1のIDである1110が変数iに設定される。
その後、処理はステップS12に戻り、変数iに設定されているID(いまの場合、1110)のノードであるノード221−1−1−1に対する学習処理が行われる。
次にステップS13において、いま処理対象とされているノード221−1−1−1の子ノードの数(図25の例の場合、ノード221−1−1−1は、ノード221−1−1−1−1乃至221−1−1−1−3の3個のノードを有しているので、ノードの数は3個となる)と、ノード221−1−1−1の変数branch_count[i]とが比較される。ノード221−1−1−1の変数branch_count[i]の値は、ステップS11の処理で0に初期設定されているので、子ノードの数3より小さい。そこでステップS14において、変数branch_count[i]の値が1だけインクリメントされて、1とされる。さらに変数iに、ノード221−1−1−1の子ノードであって、変数branch_count[i](=1)で表される子ノードのID(例えば、図25におけるノード221−1−1−1−1のID1111)が設定される。そして、ステップS12において、この変数iに設定されているID1111のノード221−1−1−1−1の学習処理が行われる。
次にステップS13において、いま処理対象とされているノード221−1−1−1−1の変数branch_count[i]の値(=0)が、その子ノードの数と比較される。ノード221−1−1−1−1は、末端のノードであり、子ノードを有していないので、子ノードの数は0である。そこでステップS13において、変数branch_count[i](=0)は、子ノードの数(=0)と等しいので、子ノードの数より小さくないと判定され、ステップS15において、復帰部305は、処理対象を親ノードに戻す処理を行う。具体的には、変数iに、現在処理対象とされているノードであるノード221−1−1−1−1の親ノードであるノード221−1−1−1のIDである1110が設定される。そして、ステップS16において、復帰部305は、ステップS15で設定した変数iが、0より大きいか否かを判定する。最上位の親ノード(根元のノード)221−1以外は、そのIDに正の値が設定されているので、ステップS16では、いまの場合、YESの判定が行われる。現に、親ノード221−1−1−1のIDは1110であり、0より大きい。そこで、復帰部305は、処理をステップS13に戻す。
ステップS13において、判定部303は、変数iに設定されているIDのノード(いまの場合、IDが1110であるノード221−1−1−1)の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。ノード221−1−1−1の変数branch_count[i]には、いまの場合、1が設定されており、その子ノードの数は3であるから、変数branch_count[i]は、子ノードの数より小さいと判定され、処理はステップS14に進む。ステップS14において、選択部304は、変数branch_count[i]の値を1だけインクリメントとして2とし、変数iにいま設定した変数branch_count[i]で表される子ノードのIDを設定する。いまの場合、例えば、変数iにノード221−1−1−1−2のID1112が設定される。そして、ステップS12において、IDが1112のノード221−1−1−1−2の学習処理が行われる。
ステップS13において、いま処理対象とされているノード221−1−1−1−2の変数branch_count[i](=0)の値が、その子ノードの数より小さいか否かが判定される。ノード221−1−1−1−2は、末端のノードであり、子ノードを有していない。従って、その子ノードの数は0であり、変数branch_count[i]の値も0であるから、ステップS13でNOの判定が行われ、ステップS15において、復帰部305は、変数iに、親ノードのIDを設定する。すなわち、変数iに、親ノードであるノード221−1−1−1のIDである1110が設定される。ステップS16において、ステップS15で設定された変数iの値が0より大きいか否かが判定され、いまの場合、大きいので、処理はステップS13に戻る。
ステップS13において、判定部303は、いま処理対象とされているノードであるIDが1110であるノード221−1−1−1の変数branch_count[i]の値が、その子ノードの数より小さいか否かを判定する。いまの場合、子ノードの数は3であり、branch_count[i]の値は2であるので、YESの判定となり、処理はステップS14に進む。
ステップS14において、選択部304は、branch_count[i]の値を1だけインクリメントとし、いまの場合3とする。そして、その値で示される子ノードのIDを変数iに設定する。いまの場合、ノード221−1−1−1の子ノードである、ノード221−1−1−1−3のID1113が、変数iに設定される。そして、ステップS12において、そのIDが1113であるノード221−1−1−1−3の学習処理が行われる。
ステップS13において、ノード221−1−1−1−3の変数branch_count[i](=0)の値が、その子ノードの数より小さいか否かが判定される。ノード221−1−1−1−3は、末端のノードであり、子ノードを有していないので、変数branch_count[i]の値は、子ノードの数と等しく、小さくない。そこで、処理はステップS15に進み、復帰部305は、変数iに、いま処理対象とされていたノード221−1−1−1−3の親ノードであるノード221−1−1−1のIDである1110を設定する。この値は、0より大きいため、処理はステップS16からステップS13に戻る。
ステップS13において、判定部303により、ノード221−1−1−1の変数branch_count[i]の値(いまの場合=3)がその子ノードの値(いまの場合3)より小さいか否かが判定される。両者の値は、いずれも3であるから、ステップS13でNOの判定が行われ、処理はステップS15に進む。ステップS15において、復帰部305は、変数iに、ノード221−1−1−1の親ノードである、ノード221−1−1のIDである1100を設定する。ステップS16において、変数iに設定されたIDが0より大きいと判定されるので、処理はステップS13に戻る。
ステップS13において、判定部303は、ノード221−1−1の変数branch_count[i](=1)の値が、その子ノードの数より小さいか否かを判定する。子ノードの数は3であり、変数branch_count[i]の値である1より大きいので、処理はステップS14に進み、変数branch_count[i]のiが1だけインクリメントされて、2とされる。そして、その値2に対応する子ノードのIDが、変数iに設定される。いまの場合、ノード221−1−1の子ノードである221−1−1−2のIDである1130が変数iに設定される。そして、ステップS12において、このノード221−1−1−2の学習処理が行われる。
以下、同様にして、末端のノードまで学習が行われた後、親ノードに戻り、その兄弟ノードに学習を行い、全ての兄弟ノードの学習が完了したら、さらに上流の親ノードまで戻り、その兄弟ノードを学習すると行ったことが、順次繰り返される。
そして、図25の例において、最後のノードであるノード221−1−3−3−2の学習がステップS12において行われた後、ステップS13において、その変数branch_count[i]の値が、その子ノードの数より小さくないと判定され、ステップS15において、変数iに親ノードの値、即ち、ノード221−1−3−3のIDである1330が設定される。この値は、0より大きいので、処理はステップS16からステップS13に戻り、ノード221−1−3−3の変数branch_count[i]の値(=2)が、その子ノードの数(=2)より小さくないと判定される。そして、処理はステップS15に進み、変数iにノード221−1−3−3の親ノードであるノード221−1−3のIDである1300が設定される。
このID1300は、0より大きいので、処理は、ステップS16からステップS13に戻り、ノード221−1−3の変数branch_count[i](=3)の値が、その子ノードの数(=3)より小さくないと判定され、処理はステップS15に進む。ステップS15において、ノード221−1−3の親ノードであるノード221−1のIDである1000が、変数iに設定される。この値は、ステップS16において0より大きいと判定され、処理はステップS13に戻る。ノード221−1の変数branch_count[i](=3)の値が、その子ノードの数(=3)の値より小さくないと判定され、ステップS15において、変数iに親ノードの値が設定される。ノード221−1は、最上位のノード(根元のノード)であり、それより親のノードは実際には存在しないので、その親ノードIDは−1と設定されている。そこで、ステップS15において、変数iに−1が設定されるので、ステップS16において、変数i(=−1)が0より大きくないと判定され、処理は終了される。
以上のようにして、ツリー構造に配置された各ノードの弱判別器の学習が行われる。
次に、図28のステップS12におけるノードの学習処理の詳細について説明する。この処理を行うために、図27のノード学習部302は、図29に示されるように構成されている。即ち、ノード学習部302は、サンプル選択部331、引継ぎ部332、弱判別器選択部333、多数決重み算出部334、データ重み更新部335、重み付き多数決演算部336、閾値演算部337、判定部338、および保存部339により構成されている。
サンプル選択部331は、ノード学習に必要なポジティブサンプルとネガティブサンプルを選択する。引継ぎ部332は、前段のノードで保存された値を後段のノードの処理の初期値として引き継ぐ処理を行う。弱判別器選択部333は、データ重みDtに基づいて弱判別器の選択処理を行う。多数決重み算出部334は、多数決重みαtを算出する。
データ重み更新部335は、データ重みDtを更新する処理を行う。重み付き多数決演算部336は、各弱判別器の出力を多数決重みαtで重み付けし、累積加算することで重み付き多数決を演算する。具体的には、上述した式(7)の演算を行う。閾値演算部337は、式(8)で示した打ち切り閾値(基準値RM)を算出する。判定部338は、重み付き多数決の値が閾値演算部337により演算された打ち切り閾値RMより小さくなったか否か、あるいは、そのノードにおける全ての弱判別器の学習処理を終了したか否かなどの判定を行う。保存部339は、そのノードにおける最後の弱判別器の判別結果(ノードの出力)として、重み付き多数決F(x)とデータ重みDtを保存する。
次に、図30のフローチャートを参照して、ノードの学習処理について説明する。最初にステップS41において、サンプル選択部331は、そのノードにおいて学習対象とされるラベルが付されたポジティブサンプルを選択する。例えば、図25のノード221−1の学習処理の場合は、ラベル1乃至ラベル15の全てのラベルのポジティブサンプルが選択される。これに対して、ノード221−1−1−1−1の学習処理においては、ラベル1のポジティブサンプルだけが選択される。ネガティブサンプルはいずれの場合も、その全てが使用される。
ステップS42において、引継ぎ部332は、親ノードの出力を引き継ぐ処理を実行する。最上位の親ノードであるノード221−1の場合には、その親ノードは存在しないため、重み付き多数決F(x)の値は0に初期設定され、データ重みDtの値は、1/Nに設定される(Nの値は学習サンプルの数を表す)。親ノードが存在するノードの場合は、その親ノードの後述するステップS49の処理で、保存部339に保存された重み付き多数決F(x)とデータ重みDtが読み出され、初期値として設定される。
また、この親ノードの出力を引き継ぐ処理では、データ重みDtは、総和が1になるように正規化される。
次に、ステップS43において、弱判別器選択部333は、弱判別器の選択処理を実行する。その処理の詳細は、図32のフローチャートを参照して説明するが、この処理により、K個(ピクセル間差分特徴量dの数)の弱判別器のうちの、重み付き誤り率etの値が最小の弱判別器が選択される(生成される)。ステップS44において、多数決重み算出部334は、多数決重みαtを算出する。この多数決重み(信頼度)αtは、式(10)に基づいて算出される。
Figure 2005284487
上記式(10)から明らかなように、重み付き誤り率etが小さいほど、その弱判別器の信頼度αtが大きくなる。
ステップS45において、データ重み更新部335は、学習サンプルのデータ重みDt,iを更新する。即ち、式(9)にて得られた信頼度αtを使用して、下記式(10)により学習サンプルのデータ重みDt,iが更新される。データ重みDt,iは、通常全部足し合わせると1によるように正規化する必要がある。そこでデータ重みDt,iは、式(11)に示されるように正規化される。
Figure 2005284487
ステップS46において、重み付き多数決演算部336は、重み付き多数決F(x)を更新する処理を実行する。この処理は式(7)に基づいて行われる。多数決重みαtは、ステップS44で算出された値であり、ft(x)の値は、ステップS43で算出された値である。
次に、ステップS47において、閾値演算部337は、打ち切り閾値RMを算出する。この演算は式(8)に基づいて行われる。この打ち切り閾値RMは、後述する図37のステップS175の処理に用いられる。
ステップS48において、判定部338は、いま処理対象としているノードが子ノードを有している場合は、全ての弱判別器の学習が完了したか否かを判定し、子ノードを有していない場合には、ステップS43の処理で演算された重み付き誤り率etの値が、充分小さくなったか否かを判定する。子ノードを有する場合、上述したように、この実施の形態においては、弱判別器の数は100個とされている。従って、100個の弱判別器の学習がまだ完了していない場合には、処理はステップS43に戻り、それ以降の処理が繰り返し実行される。末端のノードの場合には、重み付き誤り率etが充分小さくなるまで実行される。具体的には、重み付き誤り率etの値が0以下となった場合には、充分小さくなったと判定され、まだ、充分小さくならない場合には、処理はステップS43に戻り、それ以降の処理が繰り返し実行される。即ち、ステップS43乃至S48の処理は、そのノードにおける各弱判別器の数の回数分実行される。
ステップS48において、全ての弱判別器の学習が完了したと判定された場合、処理はステップS49に進み、保存部339は、最後の弱判別器の判別結果としての重み付き多数決F(x)の値と、データ重みDtの値を、出力として保存する。この保存した出力が、下位の子ノードにおいて、ステップS42において初期値として引き継がれる。
以上のようにして、図30の処理が、ノード毎に、図28のステップS12で行われる。
(6−2)弱判別器の生成
次に、上述した図30のフローチャートのステップS43における弱判別器の選択処理(生成方法)について説明する。弱判別器の生成は、弱判別器が2値出力の場合と、上記式(6)に示す関数f(x)として連続値を出力する場合とで異なる。また、2値出力の場合においても、上記式(3)に示されるように1つの閾値Th1で判別する場合と、式(4)または式(5)に示されるように、2つの閾値Th11,Th12,Th21,Th22で判別する場合とで処理が若干異なる。ここでは、1つの閾値Th1で2値出力する弱判別器の学習方法(生成方法)を説明する。
このため、弱判別器選択部333は、図31に示されるように、決定部421、頻度分布算出部422、閾値設定部423、弱仮説演算部424、重み付き誤り率演算部425、判定部426、および選定部427により構成される。
決定部421は、入力された学習サンプルから、2個の画素をランダムに決定する。頻度分布算出部422は、決定部421により決定された画素に関するピクセル間差分特徴dを収集し、その頻度分布を算出する。閾値設定部423は、弱判別器の閾値を設定する。弱仮説演算部424は、弱判別器による弱仮説の演算を行い、その判別結果f(x)を出力する。
重み付き誤り率演算部425は、式(12)に示される重み付き誤り率etを演算する。
Figure 2005284487
上記式(12)に示されるように、重み付き誤り率etは、学習サンプルのうち、弱判別器の判別結果が誤っているもの(ft(xi)≠yi)である学習サンプル(yi=1とラベリングされた学習サンプルであって、f(xi)=−1と判定された学習サンプル、およびyi=−1とラベリングされた学習サンプルであって、f(xi)=1と判定された学習サンプル)のデータ重みのみを加算したものとなる。上述したように、データ重みDt,iが大きい(判別が難しい)学習サンプルの判別を間違えると重み付き誤り率etが大きくなる。
判定部426は、弱判別器の閾値Thと最大のピクセル間差分特徴dとの大小関係を判定する。選定部427は、最小の重み付き誤り率etに対応する閾値Thに対応する弱判別器を選定する。
図32は、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が求められ、図11Aに示されているようなヒストグラム(頻度分布)が算出される。
ステップS73において、閾値設定部423は、最小のピクセル間差分特徴dより小さい閾値Thを設定する。例えば、図33に示されるように、ピクセル間差分特徴dの値が、d1乃至d9に分布する場合、最小のピクセル間差分特徴dの値はd1となる。従って、このピクセル間差分特徴d1より小さい閾値Th31がここで閾値Thとして設定される。
次に、ステップS74において、弱仮説演算部424は、弱仮説として次式を演算する。なお、sign(A)は、値Aが正のとき+1、負のとき−1を出力する関数である。
f(x)=sign(d−Th) ・・・(13)
今の場合、Th=Th31であるため、ピクセル間差分特徴dの値がd1乃至d9のいずれであっても、d−Thの値は正となる。従って、式(13)で表される弱仮説の判別結果f(x)は、+1となる。
ステップS75において、重み付き誤り率演算部425は、重み付き誤り率et1,et2を演算する。重み付き誤り率et1とet2とは、次の関係にある。
t2=1−et1 ・・・・・(14)
重み付き誤り率et1は、式(12)により求められる値である。重み付き誤り率et1は、位置S1,S2の画素値をそれぞれI1,I2とした場合の重み付き誤り率である。これに対して、重み付き誤り率et2は、位置S1の画素値をI2とし、位置S2の画素値をI1とした場合の重み付き誤り率である。すなわち、第1の位置を位置S1とし、第2の位置を位置S2とする組み合わせは、第1の位置を位置S2とし、第2の位置を位置S1とする組み合わせとは異なる組み合わせとなる。しかしながら、両者の重み付き誤り率etの値は、上記した式(14)の関係にある。そこで、ステップS75の処理において、2つの組み合わせの重み付き誤り率etを同時にまとめて演算するのである。これにより、仮にそのようにしなければ、ステップS71乃至ステップS81の処理を、ステップS81において学習サンプルの画素の中から2個の画素を抽出する全組み合わせの数分(K回)繰り返したと判定されるまで繰り返すことが必要になるのであるが、ステップS75で、2つの重み付き誤り率et1,et2を演算しておくことで、その繰り返し回数を全組み合わせ回数Kの1/2とすることができる。
そこで、ステップS76において、重み付き誤り率演算部425は、ステップS75の処理で演算した重み付き誤り率et1とet2のうち、小さい方を選択する。
ステップS77において、判定部426は、閾値が最大のピクセル間差分特徴より大きいか否かを判定する。すなわち、いま設定されている閾値Thが、最大のピクセル間差分特徴d(例えば、図33に示されている例の場合、d9)より大きいか否かを判定する。いまの場合、閾値Thは、図33における閾値Th31であるので、最大のピクセル間差分特徴d9より小さいと判定され、処理はステップS78に進む。
ステップS78において、閾値設定部423は、現在の閾値に最も近い次の大きさのピクセル間差分特徴と、さらにその次の大きさのピクセル間差分特徴の中間の大きさの閾値Thを設定する。いまの場合、図33の例において、現在の閾値Th31に最も近い次の大きさのピクセル間差分特徴d1と、さらに次の大きさのピクセル間差分特徴d2の中間の値の閾値Th32が設定される。
その後、処理はステップS74に戻り、弱仮説演算部424は、上記した式(13)に従って、弱仮説の判定出力f(x)を演算する。この場合、図33に示されるように、ピクセル間差分特徴dの値がd2乃至d9のとき、f(x)の値は+1となり、d1のときは−1となる。
ステップS75において、式(12)に従って、重み付き誤り率et1が演算され、式(14)に従って重み付き誤り率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が最大のピクセル間差分特徴より大きいと判定されるまで繰り返し実行される。図33の例においては、閾値が最大のピクセル間差分特徴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つの弱判別器(例えば、図9の弱判別器211)が学習され、生成されたことになる。
その後、処理は図30のステップS43に戻り、ステップS44以降の処理が実行される。そして、ステップS48において、子ノードを有する場合、全ての弱判別器の学習が完了したと判定されるか、子ノードを有していない場合、重み付き誤り率が充分小さくなったと判定されるまで、図30の処理が繰り返し実行されることになる。すなわち、図30の2回目の処理で、図9の弱判別器212の生成学習が行れ、3回目の処理で弱判別器213の生成学習が行われる。そして、そのノードにおける弱判別器の数の分だけ、弱判別器21iの学習生成が行われることになる。
なお、本実施の形態においては、前回の繰り返し処理においてステップS45にて求めたデータ重みDt,iを使用し、複数の弱判別器の特徴量を学習し、これらの弱判別器(弱判別器候補)の中から上記式(12)に示す重み付き誤り率etが最も小さいものを選択することで、1つの弱判別器を生成する場合について説明したが、上述のステップS43において、例えば予め用意または学習した複数の画素位置から任意の画素位置を選択して弱判別器を生成するようにしてもよい。また、上述のステップS71乃至ステップS81までの繰り返し処理に使用する学習サンプルとは異なる学習サンプルを使用して弱判別器を生成してもよい。さらに、cross-validation(交差検定)法またはjack-knife法の評価のように、学習サンプルとは別のサンプルを用意して、生成された弱判別器や判別器の評価を行うようにしてもよい。交差検定とは、学習サンプルを均等にI個に分割し、その中から1つ以外を使用して学習を行い、当該1つを使用して学習結果を評価する作業をI回繰り返して学習結果の評価を行う手法である。
一方、上記式(4)または式(5)に示されるように、弱判別器が2つの閾値Th11,Th12,Th21,Th22を有するような場合、図32に示すステップS74乃至ステップS78の処理が若干異なる。上記式(3)に示されるように、閾値Thが1つの場合は、1から減算することにより、重み付き誤り率etを演算することができたが、式(4)に示されるように、ピクセル間差分特徴が閾値Th12より大きく、かつ閾値Th11より小さい場合が正解の判別結果であるとき、これを1から減算すると、式(5)に示されるように、閾値Th22より小さいか、閾値Th21より大きい場合が正解の判別結果になる。即ち、式(4)の反転は式(5)となり、式(5)の反転は式(4)となる。
弱判別器が2つの閾値Th11,Th12,Th21,Th22を有して判別結果を出力するような場合は、図32に示すステップS72において、ピクセル間差分特徴における頻度分布が求められ、重み付き誤り率etを最小にする閾値Th11,Th12,Th21,Th22が求められる。そして、ステップS81で所定回数繰り返されたか否かが判定され、所定回数繰り返され、生成された弱判別器の中で最も誤り率が小さい弱判別器が採用される。
また、上記式(6)に示されるように、連続値を出力する弱判別器の場合、図32のステップS71と同様、先ず2つの画素がランダムに選択される。そして、ステップS72と同様、全学習サンプルにおける頻度分布が求められる。さらに、得られた頻度分布に基づき上記式(6)に示す関数f(x)が求められる。そして、弱判別器の出力として対象物である度合い(正解である度合い)を出力するような所定の学習アルゴリズムに従って誤り率を算出するという一連の処理を所定回数繰り返し、最も誤り率が小さい(正答率が高い)パラメータを選択することで弱判別器が生成される。
図32の弱判別器の生成において、例えば24×24画素の学習サンプルを使用する場合、2つの画素の選択方法は、331200(=576×575)通りあり、最大331200回、上記繰り返し処理を行った中で最も誤り率が小さいものを弱判別器として採用することができる。このように、繰り返し回数の最大数繰り返す、即ち生成し得る最大数の弱判別器を生成し、それらの中から最も誤り率が小さいものを弱判別器として採用すると性能が高い弱判別器を生成することができるが、最大回数未満の例えば数百回繰り返し処理を行って、その中から最も誤り率が小さいものを採用してもよい。
(7)対象物検出方法
次に、図5に示す対象物検出装置1の対象物検出方法について説明する。
この処理を行うため、判別器5は、図34に示されるように、初期化部471、判定部472、選択部473、復帰部474、引継ぎ部475、弱仮説計算部476、評価値計算部477、設定部478、および出力部479により構成される。
初期化部471は、最も上位のノードの弱判別器の初期値を設定する処理を行う。判定部472は、次のスケーリング画像の有無、対象物領域の重複の有無、顔画像であるか否かの判定、子ノードがあるか否かの判定、変数branch_count[i]と子ノードの数の大小判定、変数iが正であるか否かの判定などを行う。
選択部473は、重複する2つの領域を抽出したり、領域を選択したりする処理を行う。復帰部474は、処理ノードを親ノードに戻す処理を行う。引継ぎ部475は、親ノードの出力を引き継ぐ処理を行う。弱仮説計算部476は、式(13)に基づいて、弱仮説を計算する。評価値計算部477は、式(7)に基づいて、評価値sを計算する。
設定部478は、評価値sに最大値を設定する。出力部479は、評価値sを出力する。
なお、これらの初期化部471乃至出力部479は、必要なデータを相互に授受することが可能である。
検出時(判別工程)においては、上述のようにして学習工程で生成された弱判別器群を利用した判別器5を使用し、所定のアルゴリズムに従って画像中から対象物体(人の顔)を検出する。この処理が図35のフローチャートに示されている。
ステップS101において、スケーリング部3は、画像出力部2より入力された濃淡画像を所定の割合で縮小スケーリングする処理を実行する。
画像出力部2には、入力画像として濃淡画像が直接入力されてもよく、また画像出力部2にてカラーの入力画像を濃淡画像に変換してもよい。スケーリング部3は、当初、画像出力部2から与えられた画像をスケール変換せずにそのまま出力し、次のタイミング以降で縮小スケーリングしたスケーリング画像を出力するが、便宜上、スケーリング部3から出力する画像は全てスケーリング画像という。スケーリング画像が生成されるタイミングは、前に出力されたスケーリング画像の全領域の顔検出が終了した時点であり、スケーリング画像がウィンドウ画像より小さくなった時点で、次のフレームの入力画像の処理が開始される。
ステップS102において、走査部4は、探索ウィンドウを走査し、画像を切り出す処理を実行する。すなわち、走査部4は、スケーリングされた画像上で探索ウィンドウを所定の位置に配置し、そのウィンドウ内の画像をウィンドウ画像として切り出し、判別器5に出力する。
ステップS103において、判別器5は、識別処理を実行する。この識別処理の詳細は、図36のフローチャートを参照して後述するが、これにより、探索ウィンドウ内の画像が人の顔の画像であるか否か、人の顔の画像である場合には、いずれの方向を向いた顔の画像であるのか(ラベル1乃至ラベル15のうちのいずれのラベルの画像であるのか)が判定される。
次に、ステップS104において、判定部472は、次の探索ウィンドウがあるか否かを判定する。次の探索ウィンドウがある場合には、処理はステップS102に戻り、走査部4は、現在のスケーリングの画像の探索ウィンドウを1画素分右方向に移動し、その画像を切り出して判別器5に出力する。そして、判別器5は、ステップS103の処理を実行することで、そのウィンドウ画像がどのラベルの人の顔の画像であるのかを判定する。
以上のようにして、探索ウィンドウが、図7に示されるように、右下方向に順次1画素分ずつずらされ、各探索ウィンドウの画像がどのラベルの人の顔の画像であるのかが判定され、探索ウィンドウの位置がスケーリング画像の右下の位置まで移動したとき、ステップS104において、次の探索ウィンドウが存在しないと判定され、処理はステップS105に進む。
ステップS105において、スケーリング部3は、次のスケーリング画像があるか否かを判定する。次のスケーリング画像がある場合には、ステップS101において、スケーリング部3は、さらに、縮小率を上げた(より縮小された)スケーリング画像を生成し、走査部4に出力する。そして、そのスケーリング画像について、上述した場合と同様の処理が実行される。
以上の処理が、ステップS105において、次のスケーリング画像が存在しないと判定されるまで繰り返し実行される。すなわち、スケーリング画像がウィンドウ画像より小さくなるまで上述した処理が繰り返し実行される。
上述したように、探索ウィンドウは、1画素分ずつ右下方向に順次移動される。従って、例えば、1つの探索ウィンドウの画像が人の顔であると判定された場合、その探索ウィンドウを1画素分右方向または下方向にずらしたウィンドウの画像も、多くの場合、人の顔の画像と判定される。このようなことから、同一の顔の画像が、複数のウィンドウ画像で、人の顔の画像であるとして検出されることになる。そこで、全てのスケーリング画像の処理が終了した場合、探索ウィンドウの重なりを削除する処理が実行される。
このため、ステップS106において、判定部472は、2つ以上の対象物領域が重複するか否かを判定する。2つ以上の対象物領域が重複する場合には、ステップS107において、選択部473は、互いに重複する2つの領域を抽出する処理を実行する。例えば、1つの探索ウィンドウの画像が対象物領域で得られたと判定された場合、1画素分右方向にずれた探索ウィンドウの画像も人の顔の画像であると判定されるため、この2つのウィンドウの領域が抽出される。ステップS108において、選択部473は、ステップS107で抽出された2つの領域のうち、評価値s(図37のステップS174で後述する)が大きい方の領域を選択する。
その後、処理はステップS106に戻り、それ以降の処理が繰り返し実行される。
以上のようにして、評価値sが小さい領域は信頼度が低いとみなして無視し、最も評価値sが高い領域が選択される。以上の処理は、ステップS106において、2つ以上の対象物領域が重複しないと判定されるまで繰り返され、重複しないと判定された場合、そのフレームにおける処理は終了される。そして、必要に応じてさらに次のフレームの処理が実行される。
次に、図36のフローチャートを参照して、図35のステップS103における識別処理について説明する。ステップS131において、初期化部471は、初期値を設定する処理を実行する。具体的には、処理ノードのIDを表す変数iに最も上位のノード(根元のノード)のIDを設定する。図25の実施の形態の場合、最上位のノード221−1のIDである1000が設定される。さらに、各ノード毎に設定される変数であって、そのノードが訪ねた子ノードの数を表す変数branch_count[i]の値が、全てのノードの分について、0に初期設定される。また、式(7)に基づいて演算された重み付き多数決である評価値sが、全てのノードの分について0に初期設定される。
次に、ステップS132において、評価値計算部477などにより、評価値計算処理が実行される。その詳細は、図37のフローチャートを参照して後述するが、これにより、処理対象とされているノードの評価値sが演算される。
ステップS133において、判定部472は、いま識別対象としているウィンドウ画像が顔か否かを判定する。この判定は、ステップS132で計算された評価値sに基づいて行われる。評価値sの値が正であれば(より具体的には、後述する図37のステップS178で設定される基準値(−HUGE_VAL)より大きければ)顔であると判定され、0以下であれば(基準値より小さければ)顔ではないと判定される。
識別対象とされるウィンドウ画像が顔の画像ではないと判定された場合、ステップS138において、復帰部474は、処理対象としてのノードを親ノードに戻す処理を実行する。具体的には、変数iに親ノードのIDが設定される。いま、処理対象とされているノードは、最上位のノードであるノード221−1であるから、その親ノードは存在しない。そこで、変数iには、上述したように−1が設定される。
ステップS139において、判定部472は、ステップS138で設定された変数iの値が0より大きいか否かを判定する。いまの場合、変数iの値は−1であり、0より大きくないので、ステップS140おいて、判定部472は、いま処理しているウィンドウ画像は顔でないと判定する。
すなわちいまの場合には、一番上位のノード221−1の処理だけで、ウィンドウ画像は人の顔の画像ではないと判定されたことになる。
ステップS133において、ウィンドウ画像は、人の顔の画像であると判定された場合(評価値sの値が正であると判定された場合)、ステップS134において、判定部472は、いま処理対象としているノードに子ノードがあるか否かを判定する。いま、処理対象としているノード221−1は、3個の子ノード221−1−1,221−1−2,221−1−3を有している。そこで、ステップS135において、判定部472は、ノード221−1の変数branch_count[i](いまの場合、ステップS131において0に初期設定されている)が、そのノード221−1の子ノードの数(size(numChild))より小さいか否かを判定する。変数branch_count[i]の値は0であり、子ノードの数は3であるから、変数の値は子ノードの数より小さいと判定される。そこで、ステップS136において、選択部473は、次に処理するノードを選択する。具体的には、変数branch_count[i]の値が1だけインクリメントされ、いまの場合、1に設定される。そして、設定された変数branch_count[i]の値に対応する子ノードのIDが変数iに設定される。図25の例においては、例えば、ノード221−1の子ノードであるノード221−1−1のIDである1100が、変数iに設定される。そして、ステップS132において、変数iに設定されているIDのノード(いまの場合、ノード221−1)の評価値計算処理が実行される。すなわち、ノード221−1−1により評価値sが計算される(ウィンドウ画像がどのラベルの人の顔の画像であるのかが判定される)。
ステップS133において、判定部472は、ウィンドウ画像が顔か否か(評価値sが正であるか否か)を判定する。ウィンドウ画像が顔の画像である場合には、ステップS134において、判定部472は、現在の処理対象のノードであるノード221−1−1に子ノードがあるか否かを判定する。ノード221−1−1は、3個の子ノード221−1−1−1乃至221−1−1−3を有しているので、ステップS135において、判定部472は、ノード221−1−1の変数branch_count[i](=1)の値が、その子ノードの数より小さいか否かを判定する。子ノードの数は3であるから、branch_count[i]の値は、それより小さいので、ステップS136において、選択部473は、ノード221−1−1の変数branch_count[i](ステップS131の処理より0に初期設定されている)の値を、その子ノードの数(いまの場合3)と比較する。変数branch_count[i]の値は、子ノードの数より小さいので、ステップS136において、選択部473は、ノード221−1−1の変数branch_count[i]の値を1だけインクリメントして、1に設定した後、ノード221−1−1の子ノードであって、そのインクリメントした変数branch_count[i]の子ノードであるノード221−1−1−1のIDである1110を変数iに設定する。そして、ステップS132において、変数iに設定されているIDのノードであるノード221−1−1−1の評価値が評価値計算部477により計算される。
ステップS133において、判定部472は、ノード221−1−1−1の評価値sがウィンドウ画像が顔であることを表しているか否かを判定し、顔である場合には、ステップS134において、ノード221−1−1−1は、子ノードがあるか否かを判定する。ノード221−1−1−1は、3個の子ノードを有するため、ステップS135において、ノード221−1−1−1の変数branch_count[i]の値が、その子ノードの数より小さいか否かが判定される。変数branch_count[i](=0)の値は、子ノードの数(=3)より小さいので、ステップS136において、選択部473は、ノード221−1−1−1の変数branch_count[i]の値を1だけインクリメントして1とする。そして、そのインクリメントした変数branch_count[i]に対応する子ノードのIDが変数iに設定される。例えば、図25の例の場合、ノード221−1−1−1の子ノードであるノード221−1−1−1−1のIDである1111が変数iに設定される。ステップS132において、評価値計算部477は、ノード221−1−1−1−1による評価値を計算する。
ステップS133において、判定部472は、ノード221−1−1−1−1の評価値sが正であるか(顔画像であるか)否かを判定し、正である場合には、ステップS134において、そのノードは子ノードを有しているか否かを判定する。ノード221−1−1−1−1は、末端のノードであり、子ノードを有していない。そこでこの場合には、ステップS137において、判定部472は、ウィンドウ画像は、ノード221−1−1−1−1が対応付けられているラベル1の顔と判定する。
これに対して、ステップS133において、評価値sが負である場合(顔ではないと判定された場合)、ステップS138において、復帰部474は、変数iに親ノードのIDを設定する。具体的には、いまの場合、ノード221−1−1−1−1の親ノードであるノード221−1−1−1のIDである1110が変数iに設定される。
ステップS139において、変数iは正であると判定され、ステップS135において、判定部472は、ノード221−1−1−1の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。いまの場合、変数branch_count[i]の値は1であり、子ノードの数は3より小さいので、ステップS136において、選択部473は、変数branch_count[i]の値を1だけインクリメントして、2とする。さらに、その、変数branch_count[i]に対応する子ノードのIDが変数iに設定される。具体的には、ノード221−1−1−1−2のIDである1112が変数iに設定される。ステップS132において、評価値計算部477により、このノード221−1−1−1−2の評価値sが演算される。
判定部472は、ステップS133において、ノード221−1−1−1−2の評価値sが顔であることを示しているか否かを判定し、顔であることを示している場合には、ステップS134において、ノード221−1−1−1−2が子ノードを有しているか否かを判定する。ノード221−1−1−1−2は、子ノードを有していないため、ステップS137において、判定部472は、ウィンドウ画像は、ノード221−1−1−1−2が対応付けられているラベル2の顔と判定する。
これに対して、ステップS133において、ノード221−1−1−1−2の評価値sが正ではないと判定された場合、ステップS138において、復帰部474は、変数iにノード221−1−1−1−2の親ノードのIDである1110を設定する。判定部472は、この変数iは0より大きいから、ステップS139からステップS135に処理を進め、IDが1110であるノード221−1−1−1のbranch_count[i](=2)の値が、その子ノードの数より小さいか否かを判定する。変数branch_count[i]は、いまの場合、子ノードの数より小さいので、ステップS136において、選択部473は、ノード221−1−1−1の変数branch_count[i]の値を1だけインクリメントして3に設定する。そして、3に設定されたbranch_count[i]に対応するの子ノードのIDが、変数iに設定される。いまの場合、ノード221−1−1−1の子ノードであるノード221−1−1−1−3のIDである1113が変数iに設定される。ステップS132において、そのID1113のノード221−1−1−1−3の評価値sが計算される。
このようにして、各ノードでウィンドウ画像が顔の画像であると判定された場合には、順次、下位のノードで判定が行われ、下位の1つのノード(子ノード)で、ウィンドウ画像は人の顔の画像ではないと判定された場合には、兄弟ノードにおいて、識別処理が行われる。
以上のようにして、本実施の形態においては、ノード(弱判別器)がツリー構造とされているため、判別結果を得るまでの演算量を平均的に少なくすることができる。即ち、図25の実施の形態においては、階層が最大4階層とされている。末端以外の階層のノードの弱判別器の数は100個とされているので、例えば、ラベル15の判定結果が得られるまでの最小の弱判別器の数は(Y00×3+L15)となる。この判別に、あり得る全ての画素の組み合わせの弱判別器が使用されたとすると、この(300+L15)の値が値Kに等しいことになる。従って、仮に図21に示されるような構成でラベル1からラベル15までの構成を判定するようにした場合、ラベル1からラベル15までを、その順番に識別処理するとすると、K×15個の弱判別器の識別処理を行うことになる。この場合、処理時間は、K個の弱判別器の演算に必要な時間の15倍の時間がかかることになる。ラベル1乃至ラベル15の演算を並列処理するようにすれば、時間はK個の弱判別器の演算時間ですむが、演算量は変わらない。
これに対して、図25の実施の形態の場合、理想的には、ノード221−1、ノード221−1−3、ノード221−1−3−3、ノード221−1−3−3−1の順に行われれば、K個の弱判別器の演算量と演算時間ですむことになる。仮に、ノード221−1の演算の後、ノード221−1−1以降の下位ノードと、ノード221−1−2以降の下位ノードの識別処理が行われたとしても、途中で人の顔の画像ではないか、または他のラベルの顔の画像であると判定され、末端までの処理が行われる確率は低い。また、仮に末端までの処理が行われたとしても、その弱判別器の数は、図21における場合より少ない。
従って、図25のようにツリー構造にした方が、演算量と処理時間を、図21に示されるように構成した場合に較べて短くすることができる。
もちろん、図25のように構成した場合においても、各階層のノードの処理を並列処理するようにすれば、図21に示されるように構成した場合において、並列処理する場合に較べて、同一かそれより短い時間で演算を行うことができる。そして、演算量は、図21に示される場合より少ないことになる。
次に、図37のフローチャートを参照して、図36のステップS132における評価値計算処理について説明する。
ステップS171において、引継ぎ部475は、親ノードの出力を引き継ぐ処理を実行する。具体的には、親ノードで演算された重み付き多数決で表される評価値sが、今回のノードの評価値s(i)に初期設定される。親ノードが存在しない場合、即ち最上位のノードである場合には、評価値s(i)には0が初期設定される。
ステップS172において、弱仮説計算部476は、処理した弱判別器の数(順序)を表す変数tに1を初期設定する。そして、ステップS173において、弱仮説計算部476は、変数tで表される弱判別器による弱仮説f(x)を計算する。この計算は、上述した式(13)に基づいて行われる。この弱判別器は、上述したように1つの画素の組I1,2で規定されるピクセル間差分特徴dに対応するものであり、その閾値Thは、上述した学習処理により予め設定されている。
ステップS174において評価値計算部477は、式(15)に基づいて、現在の弱判別器の弱仮説(推定値)に信頼度(多数決重み)αtを乗算し、これまでの評価値s加算して、評価値sを更新する。即ち、式(13)に基づいて演算された弱判別器の判別結果としての推定値f(x)を、式(9)で表される多数決重みαtで重み付けして、重み付け多数決の値F(x)を演算し、評価値sとする処理が行われる。
s(i)=s(i)+α・f(x) ・・・(15)
ここで、上述した式(3)乃至(5)により、2値の推定値を出力する弱判別器と、式(6)に示す関数f(x)を推定値として出力する弱判別器とでは、その推定値の評価値sへの反映の仕方が異なる。
先ず、上記式(2)を弱判別器に利用し、2値の値を推定値として出力する場合、評価
値sは下記式(16)のようになる。
Figure 2005284487
すなわち、弱判別器の判別結果ft(x)の値は、ピクセル間差分特徴dの値が閾値Thtより大きい場合には+1、そうでない、その他の場合には−1となる。その結果、推定値ft(x)と重みαtを乗算した値は、ピクセル間差分特徴dの値が閾値より大きい場合には、αtとなり、その他の場合には、−αtとなる。そこで、これらの値が式(7)に従って、それまでの評価値sに加算され、式(7)に従った重み付き多数決の値F(x)である評価値sが更新される。
また、上記式(3)を弱判別器に利用し、2値の値を推定値として出力する場合、評価値sは下記式(17)のようになる。
Figure 2005284487
また、上記式(4)を弱判別器に利用し、2値の値を推定値として出力する場合、評価値sは下記式(18)のようになる。
Figure 2005284487
さらに、上記式(5)を弱判別器に利用し、関数fを推定値として出力する場合、評価値sは下記式(19)のようになる。
Figure 2005284487
次に、ステップS175において、判定部472は、評価値s(i)と打ち切り閾値RM(t)との大きさを比較する。即ち、ステップS174で更新された評価値s(i)が、学習時に学習されている、その弱判別器(t番目の弱判別器)の打ち切り閾値RM(t)より大きいか否かが判定される。評価値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)より小さくなったので、ウィンドウ画像は、ラベル1乃至ラベル15のいずれのラベルの人の顔の画像ではないと判定されたことになるので、以後の識別処理は実行されない。従って、より迅速な識別処理が可能となる。
その後、処理は、図36のステップS132に戻り、上述したように評価値sの値に基づいて、ステップS133において、そのノードにおいてウィンドウ画像が顔であると判定されたか否かが判定される。評価値sの値が、ステップS178において、基準値に設定されている場合には、上述したように、ウィンドウ画像は人の顔の画像ではないと判定され、評価値sの値が基準値より大きな値である場合には、人の顔の画像であると判定されることになる。
このように、本実施の形態における対象物検出方法によれば、ピクセル間差分特徴により弱判別する弱判別器を集団学習により学習した判別器を使用して対象物を検出するため、ウィンドウ画像において、対応する2つの画素の輝度値を読出し、その差を算出するのみで、上記ステップS173における対象物の特徴量の算出工程が終了する。このため極めて高速に顔検出処理することができるため、リアルタイムな顔検出が可能である。
また、その特徴量から判別した判別結果(推定値)と判別に使用した弱判別器に対する信頼度とを乗算した値を加算して評価値sを逐次更新する毎に打ち切り閾値RMと比較し、弱判別器の推定値の演算を続けるか否かが判定される。そして、打ち切り閾値RMを評価値sが下まわった場合に弱判別器の演算を打ち切り、次のウィンドウ画像の処理に移ることにより、無駄な演算を飛躍的に低減して更に高速に顔検出が可能となる。
すなわち、入力画像およびそれを縮小スケーリングしたスケーリング画像の全ての領域を走査してウィンドウ画像を切り出した場合、それらのウィンドウ画像のうち対象物である確率は小さく、ほとんどが非対象物である。この非対象物であるウィンドウ画像の判別を途中で打ち切ることで、判別工程を極めて高効率化することができる。なお、逆に検出すべき対象物が多数含まれるような場合、上述した打ち切り閾値と同様の手法にて、対象物であることが明らかとなったウィンドウ画像の演算を途中で打ち切るような閾値も設けてもよい。更に、入力画像をスケーリング部にてスケーリングすることで、任意の大きさの探索ウィンドウを設定し、任意の大きさの対象物を検出することができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。そして本発明は、静止画像はもとより、動画像を受信し、表示するロボット等の各種の画像処理装置を含む情報処理装置に適用することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、対象物検出装置は、図38に示されるようなコンピュータにより構成される。
図38において、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にインストールされる。
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図38に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア631により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM622や、記憶部628に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
特許文献1に記載の矩形特徴を示す模式図である。 特許文献1に記載の矩形特徴を使用して顔画像を判別する方法を説明する図である。 特許文献1に記載の積分画像を示す模式図である。 特許文献1に記載の積分画像を使用して矩形領域の輝度値の総和を算出する方法を説明する図である。 本発明の実施の形態における対象物検出装置の処理機能を示す機能ブロック図である。 スケール変換を説明する図である。 探索ウィンドウの走査を説明する図である。 探索ウィンドウの移動を説明する図である。 判別器の構成を示す図である。 ピクセル間差分特徴を説明する図である ピクセル間差分特徴と閾値の関係を説明する図である。 頻度分布を説明する図である。 確率密度に基づくピクセル間差分特徴を説明する図である。 重み付き多数決の値F(x)の変化を示す図である。 学習サンプルの例を示す図である。 顔の姿勢角を説明する図である。 ラベルを説明する図である。 顔の姿勢角の分類を説明する図である。 ツリー構造を説明する図である。 通常のアダブーストによる識別器の構成を説明する図である。 通常のアダブーストによるラベルの識別を説明する図である。 リジェクト判定付き弱判別器で構成されるノードの構成を示す図である。 リジェクト判定付き弱判別器の構成を示す図である。 リジェクト判定付き弱判別器により構成されるノードのツリー構造を説明する図である。 ノードのツリー構造を説明する図である。 ノードのデータ構造を説明する図である。 集団学習器の機能的構成例を示すブロック図である。 学習処理を説明するフローチャートである。 ノード学習部の機能的構成例を示すブロック図である。 図28のステップS12におけるノードの学習処理を説明するフローチャートである。 弱判別器選択部の機能的構成例を示すブロック図である。 図30のステップS43における弱判別器の選択処理を説明するフローチャートである。 閾値の移動を説明する図である。 判別器の機能的構成例を示すブロック図である。 対象物検出処理を説明するフローチャートである。 図35のステップS103の識別処理を説明するフローチャートである。 図36のステップS132における評価値計算処理を説明するフローチャートである。 コンピュータの構成例を示すブロック図である。
符号の説明
1 対象物検出装置, 2 画像出力部, 3 スケーリング部, 4 走査部, 5 判別器, 6 集団学習機, 211乃至21K 弱判別器, 22 加算器,221 ノード, 301 初期化部, 302 ノード学習部,303 判定部, 304 選択部, 305 復帰部, 331 サンプル選択部, 332 引継ぎ部, 333 弱判別器選択部, 334 多数決重み算出部, 335 データ重み更新部, 336 重み付き多数決演算部, 337 閾値演算部, 338 判定部, 339 保存部

Claims (13)

  1. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習する複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習する複数の弱判別器よりなる第1の下位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習する複数の弱判別器よりなる第2の下位ノードと
    を備えることを特徴とする情報処理装置。
  2. 前記学習は、最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって順次行われ、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて行われる
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記上位ノードは一定の数の前記弱判別器を有し、
    末端の前記第1および第2の下位ノードは、前記一定の数と等しいか、またはそれより少ない数の前記弱判別器を有する
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 前記上位ノード並びに前記第1および第2の下位ノードは、それぞれ、
    データ重みを利用して前記弱判別器を選択する選択手段と、
    選択された前記弱判別器による学習サンプルの判別結果を、信頼度により重み付けして累積和を演算する累積和演算手段と、
    学習した前記弱判別器を利用して識別処理を行う場合に使用される基準値を、前記累積和に基づいて演算する基準値演算手段と、
    前記学習サンプルに基づいて前記データ重みを演算する重み演算手段と、
    前記重み演算手段により演算された前記データ重みを保存し、前記選択手段による次の前記弱判別器の選択に反映する反映手段と
    を備えることを特徴とする請求項1に記載の情報処理装置。
  5. 前記弱判別器は、前記学習サンプルの画像データの2画素の値の差と閾値との差に基づいて前記判別結果を演算する
    ことを特徴とする請求項1に記載の情報処理装置。
  6. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップと
    を含むことを特徴とする情報処理方法。
  7. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップと
    を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  8. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを複数の弱判別器よりなる第1の下位ノードにより学習するステップと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを複数の弱判別器よりなる第2の下位ノードにより学習するステップと
    をコンピュータに実行させることを特徴とするプログラム。
  9. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードと
    を備え、
    前記第1および第2の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行い、
    最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて識別処理を行う
    ことを特徴とする情報処理装置。
  10. 前記弱判別器は、前記学習サンプルの画像データの2画素の値の差と閾値との差に基づいて前記判別結果を演算する
    ことを特徴とする請求項9に記載の情報処理装置。
  11. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードと
    を備える情報処理装置の情報処理方法であって、
    前記下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
    最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて識別処理を行うステップと
    を含むことを特徴とする情報処理方法。
  12. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードと
    を備える情報処理装置のプログラムであって、
    前記第1および第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
    最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて識別処理を行うステップと
    を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  13. 複数のラベルに区分された学習サンプルのうち、第1の範囲の第1のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部である第2の範囲の第2のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第1の下位ノードと、
    前記上位ノードの判別結果に基づいて、前記第1の範囲の一部であって、前記第2の範囲と異なる範囲である第3の範囲の第3のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第2の下位ノードと
    を備える情報処理装置のプログラムであって、
    前記第1および第2の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
    最も上位の1つの前記上位ノードから、1つの末端の前記第1または第2の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第1または第2の下位ノードに達したとき、並列する他の前記第1または第2の下位ノードについて識別処理を行うステップと
    をコンピュータに実行させることを特徴とするプログラム。
JP2004094792A 2004-03-29 2004-03-29 情報処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP5025893B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2004094792A JP5025893B2 (ja) 2004-03-29 2004-03-29 情報処理装置および方法、記録媒体、並びにプログラム
DE602005009169T DE602005009169D1 (de) 2004-03-29 2005-03-04 Vorrichtung und Verfahren zur Informationsverarbeitung, Aufzeichnungsmedium und Programm
DE602005006341T DE602005006341T2 (de) 2004-03-29 2005-03-04 Vorrichtung, Methode, Aufzeichnungsmedium und Programm zur Informationsverarbeitung
DE602005014573T DE602005014573D1 (de) 2004-03-29 2005-03-04 Vorrichtung und Verfahren zur Informationsverarbeitung, Aufzeichnungsmedium und Programm
EP06022593A EP1744265B1 (en) 2004-03-29 2005-03-04 Information processing apparatus and method, recording medium, and program
EP05251299A EP1587024B1 (en) 2004-03-29 2005-03-04 Information processing apparatus and method, recording medium, and program
EP08011112A EP1967984B1 (en) 2004-03-29 2005-03-04 Information processing apparatus and method, recording medium and program
US11/089,932 US7630525B2 (en) 2004-03-29 2005-03-25 Information processing apparatus and method, recording medium, and program
US12/366,792 US7783086B2 (en) 2004-03-29 2009-02-06 Information processing apparatus and method, recording medium, and program

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2005284487A true JP2005284487A (ja) 2005-10-13
JP5025893B2 JP5025893B2 (ja) 2012-09-12

Family

ID=34940542

Family Applications (1)

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

Country Status (4)

Country Link
US (2) US7630525B2 (ja)
EP (3) EP1967984B1 (ja)
JP (1) JP5025893B2 (ja)
DE (3) DE602005006341T2 (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249852A (ja) * 2006-03-17 2007-09-27 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2007304771A (ja) * 2006-05-10 2007-11-22 Nikon Corp 被写体認識装置、被写体認識プログラム、および画像検索サービス提供方法
JP2008009893A (ja) * 2006-06-30 2008-01-17 Canon Inc パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム
JP2008033424A (ja) * 2006-07-26 2008-02-14 Canon Inc 画像処理装置、画像処理方法、プログラム及び記憶媒体
JP2009064162A (ja) * 2007-09-05 2009-03-26 Fuji Heavy Ind Ltd 画像認識システム
JP2009151395A (ja) * 2007-12-18 2009-07-09 Canon Inc パターン識別器生成方法、情報処理装置、コンピュータプログラム及び記憶媒体
EP2101283A2 (en) 2008-03-14 2009-09-16 Sony Corporation Information processing apparatus, method, and program
JP2009295100A (ja) * 2008-06-09 2009-12-17 Denso Corp 画像識別装置
JP2010503902A (ja) * 2006-09-12 2010-02-04 ボストン サイエンティフィック リミテッド 個体性のある分類器を生成するシステム及び方法
EP2189835A1 (en) 2008-11-19 2010-05-26 Sony Ericsson Mobile Communications AB Terminal apparatus, display control method, and display control program
EP2194445A2 (en) 2008-12-05 2010-06-09 Sony Ericsson Mobile Communications Japan, Inc. Terminal apparatus, display control method, and display control program
JP2010165046A (ja) * 2009-01-13 2010-07-29 Canon Inc 情報処理装置及び情報処理方法
CN102103697A (zh) * 2009-12-22 2011-06-22 索尼公司 信息处理设备、方法和程序
JP2011198181A (ja) * 2010-03-23 2011-10-06 Fujifilm Corp 判別器生成装置および方法並びにプログラム
US8306331B2 (en) 2006-09-11 2012-11-06 Sony Corporation Image processing apparatus and method, and program
US8379990B2 (en) 2006-05-10 2013-02-19 Nikon Corporation Object recognition apparatus, computer readable medium storing object recognition program, and image retrieval service providing method
US8401313B2 (en) 2007-11-01 2013-03-19 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US8467580B2 (en) 2006-09-11 2013-06-18 Sony Corporation Image data processing apparatus, method, program and recording medium
US8582897B2 (en) 2008-10-07 2013-11-12 Sony Corporation Information processing apparatus and method, program, and recording medium
US8624927B2 (en) 2009-01-27 2014-01-07 Sony Corporation Display apparatus, display control method, and display control program

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769228B2 (en) * 2004-05-10 2010-08-03 Siemens Corporation Method for combining boosted classifiers for efficient multi-class object detection
KR100643303B1 (ko) * 2004-12-07 2006-11-10 삼성전자주식회사 다면 얼굴을 검출하는 방법 및 장치
JP4767595B2 (ja) * 2005-06-15 2011-09-07 パナソニック株式会社 対象物検出装置及びその学習装置
EP1772816A1 (en) * 2005-10-09 2007-04-11 Omron Corporation Apparatus and method for detecting particular subject
CN100472556C (zh) * 2005-10-09 2009-03-25 欧姆龙株式会社 特定被摄体检测装置及方法
US7894677B2 (en) * 2006-02-09 2011-02-22 Microsoft Corporation Reducing human overhead in text categorization
DE102006012475A1 (de) * 2006-03-16 2007-09-20 Robert Bosch Gmbh Vorrichtung, Verfahren und Computerprogramm zur Bewertung von Testobjekten
DE102006012477A1 (de) * 2006-03-16 2007-09-20 Robert Bosch Gmbh Bewertungsvorrichtung, Verfahren und Computerprogramm
US7844085B2 (en) * 2007-06-07 2010-11-30 Seiko Epson Corporation Pairwise feature learning with boosting for use in face detection
JP5208540B2 (ja) * 2008-02-27 2013-06-12 株式会社Pfu 画像ファイル振分方法、画像ファイル振分装置、および、プログラム
KR101033098B1 (ko) * 2009-02-09 2011-05-06 성균관대학교산학협력단 실시간 얼굴 검출 장치
US8175376B2 (en) * 2009-03-09 2012-05-08 Xerox Corporation Framework for image thumbnailing based on visual similarity
JP5538967B2 (ja) 2009-06-18 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP2011053915A (ja) * 2009-09-02 2011-03-17 Sony Corp 画像処理装置、画像処理方法、プログラム及び電子機器
JP5523053B2 (ja) * 2009-10-19 2014-06-18 キヤノン株式会社 物体識別装置及び物体識別方法
KR101268520B1 (ko) * 2009-12-14 2013-06-04 한국전자통신연구원 영상 인식 장치 및 방법
US8964103B2 (en) * 2010-02-16 2015-02-24 Blackberry Limited Method and apparatus for reducing continuous autofocus power consumption
EP2385484A1 (en) * 2010-05-06 2011-11-09 STMicroelectronics (Grenoble 2) SAS Object detection in an image
WO2012075221A1 (en) * 2010-12-01 2012-06-07 Data Engines Corporation Method for inferring attributes of a data set and recognizers used thereon
US8565482B2 (en) * 2011-02-28 2013-10-22 Seiko Epson Corporation Local difference pattern based local background modeling for object detection
CN102136075B (zh) * 2011-03-04 2013-05-15 杭州海康威视数字技术股份有限公司 复杂场景下的多视角人脸检测方法及其装置
US8687893B2 (en) * 2011-03-31 2014-04-01 Microsoft Corporation Classification algorithm optimization
US8774515B2 (en) * 2011-04-20 2014-07-08 Xerox Corporation Learning structured prediction models for interactive image labeling
JP2012243179A (ja) * 2011-05-23 2012-12-10 Sony Corp 情報処理装置、情報処理方法、及び、プログラム
WO2012168538A1 (en) * 2011-06-07 2012-12-13 Nokia Corporation Method, apparatus and computer program product for object detection
JP5848551B2 (ja) * 2011-08-26 2016-01-27 キヤノン株式会社 学習装置、学習装置の制御方法、検出装置、検出装置の制御方法、およびプログラム
JP6122269B2 (ja) 2011-12-16 2017-04-26 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
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
US9240184B1 (en) * 2012-11-15 2016-01-19 Google Inc. Frame-level combination of deep neural network and gaussian mixture models
CN104680120B (zh) * 2013-12-02 2018-10-19 华为技术有限公司 一种人脸检测的强分类器的生成方法及装置
JP6448204B2 (ja) 2014-03-28 2019-01-09 キヤノン株式会社 物体検出装置、物体検出方法及びプログラム
JP2016057918A (ja) * 2014-09-10 2016-04-21 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US9454712B2 (en) * 2014-10-08 2016-09-27 Adobe Systems Incorporated Saliency map computation
US9626584B2 (en) 2014-10-09 2017-04-18 Adobe Systems Incorporated Image cropping suggestion using multiple saliency maps
KR102407624B1 (ko) * 2015-10-06 2022-06-10 삼성전자주식회사 전자 장치의 영상 처리 방법 및 그 전자 장치
WO2018033137A1 (zh) * 2016-08-19 2018-02-22 北京市商汤科技开发有限公司 在视频图像中展示业务对象的方法、装置和电子设备
CN110197190B (zh) * 2018-02-27 2022-11-01 北京猎户星空科技有限公司 模型训练和物体的定位方法及装置
JP7166784B2 (ja) * 2018-04-26 2022-11-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10733742B2 (en) * 2018-09-26 2020-08-04 International Business Machines Corporation Image labeling
JP7312560B2 (ja) * 2019-01-31 2023-07-21 株式会社Screenホールディングス 情報処理装置、情報処理方法、情報処理プログラム、学習方法および学習済モデル
US10943099B2 (en) 2019-03-19 2021-03-09 Booz Allen Hamilton Inc. Method and system for classifying an input data set using multiple data representation source modes
US10936868B2 (en) * 2019-03-19 2021-03-02 Booz Allen Hamilton Inc. Method and system for classifying an input data set within a data category using multiple data recognition tools

Family Cites Families (6)

* 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
US6996171B1 (en) * 1999-01-29 2006-02-07 Sony Corporation Data describing method and data processor
US7099510B2 (en) 2000-11-29 2006-08-29 Hewlett-Packard Development Company, L.P. Method and system for object detection in digital images
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
US7203669B2 (en) * 2003-03-17 2007-04-10 Intel Corporation Detector tree of boosted classifiers for real-time object detection and tracking

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200301540024, 安本 護、本郷 仁志、渡辺 博己、山本 和彦、輿水 大和, "マルチカメラ統合を用いた人物識別と顔方向推定", 電子情報通信学会論文誌 (J84−D−II) 第8号, 20010801, 第1772−1780頁, JP, 社団法人電子情報通信学会 *
CSNG200400557007, 本郷 仁志、山本 和彦、安本 護、丹羽 義典, "セキュリティのための情報メディア処理", 映像情報メディア学会誌, 20020701, 第56巻 第7号, 第1118−1123頁, JP, (社)映像情報メディア学会 *
CSNG200500564019, 荒川 純也、諸岡 健一、長橋 宏, "高次元特徴の選択および特徴生成を利用した顔検出の研究", 電子情報通信学会技術研究報告, 20040311, Vol.103 No.737, 第115−120頁, JP, 社団法人電子情報通信学会 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
KR101342313B1 (ko) 2006-03-17 2013-12-16 소니 주식회사 정보 처리 장치 및 방법, 및 기록 매체
US7844108B2 (en) 2006-03-17 2010-11-30 Sony Corporation Information processing apparatus and method, recording medium and program
JP2007249852A (ja) * 2006-03-17 2007-09-27 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2007304771A (ja) * 2006-05-10 2007-11-22 Nikon Corp 被写体認識装置、被写体認識プログラム、および画像検索サービス提供方法
US8379990B2 (en) 2006-05-10 2013-02-19 Nikon Corporation Object recognition apparatus, computer readable medium storing object recognition program, and image retrieval service providing method
JP4725408B2 (ja) * 2006-05-10 2011-07-13 株式会社ニコン 被写体認識装置および被写体認識プログラム
JP4757116B2 (ja) * 2006-06-30 2011-08-24 キヤノン株式会社 パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム
JP2008009893A (ja) * 2006-06-30 2008-01-17 Canon Inc パラメータ学習方法及びその装置、パターン識別方法及びその装置、プログラム
JP2008033424A (ja) * 2006-07-26 2008-02-14 Canon Inc 画像処理装置、画像処理方法、プログラム及び記憶媒体
US8144943B2 (en) 2006-07-26 2012-03-27 Canon Kabushiki Kaisha Apparatus and method for detecting specific subject in image
US8306331B2 (en) 2006-09-11 2012-11-06 Sony Corporation Image processing apparatus and method, and program
US8467580B2 (en) 2006-09-11 2013-06-18 Sony Corporation Image data processing apparatus, method, program and recording medium
JP2010503902A (ja) * 2006-09-12 2010-02-04 ボストン サイエンティフィック リミテッド 個体性のある分類器を生成するシステム及び方法
JP2009064162A (ja) * 2007-09-05 2009-03-26 Fuji Heavy Ind Ltd 画像認識システム
US8401313B2 (en) 2007-11-01 2013-03-19 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US8885930B2 (en) 2007-11-01 2014-11-11 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US8472721B2 (en) 2007-12-18 2013-06-25 Canon Kabushiki Kaisha Pattern identification unit generation method, information processing apparatus, computer program, and storage medium
JP2009151395A (ja) * 2007-12-18 2009-07-09 Canon Inc パターン識別器生成方法、情報処理装置、コンピュータプログラム及び記憶媒体
EP2101283A2 (en) 2008-03-14 2009-09-16 Sony Corporation Information processing apparatus, method, and program
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
JP2009295100A (ja) * 2008-06-09 2009-12-17 Denso Corp 画像識別装置
US8582897B2 (en) 2008-10-07 2013-11-12 Sony Corporation Information processing apparatus and method, program, and recording medium
EP2189835A1 (en) 2008-11-19 2010-05-26 Sony Ericsson Mobile Communications AB Terminal apparatus, display control method, and display control program
US8350896B2 (en) 2008-11-19 2013-01-08 Sony Mobile Communications Japan, Inc. Terminal apparatus, display control method, and display control program
EP2194445A2 (en) 2008-12-05 2010-06-09 Sony Ericsson Mobile Communications Japan, Inc. Terminal apparatus, display control method, and display control program
US8638292B2 (en) 2008-12-05 2014-01-28 Sony Corporation Terminal apparatus, display control method, and display control program for three dimensional perspective display
JP2010165046A (ja) * 2009-01-13 2010-07-29 Canon Inc 情報処理装置及び情報処理方法
US9256835B2 (en) 2009-01-13 2016-02-09 Canon Kabushiki Kaisha Information processing apparatus enabling discriminator to learn and method thereof
US8624927B2 (en) 2009-01-27 2014-01-07 Sony Corporation Display apparatus, display control method, and display control program
US8682084B2 (en) 2009-12-22 2014-03-25 Sony Corporation Information processing device, method, and program
CN102103697A (zh) * 2009-12-22 2011-06-22 索尼公司 信息处理设备、方法和程序
JP2011198181A (ja) * 2010-03-23 2011-10-06 Fujifilm Corp 判別器生成装置および方法並びにプログラム

Also Published As

Publication number Publication date
DE602005006341T2 (de) 2008-08-07
EP1744265A1 (en) 2007-01-17
JP5025893B2 (ja) 2012-09-12
EP1587024A3 (en) 2006-04-05
US7630525B2 (en) 2009-12-08
DE602005006341D1 (de) 2008-06-12
US20050213810A1 (en) 2005-09-29
US7783086B2 (en) 2010-08-24
EP1587024A2 (en) 2005-10-19
DE602005014573D1 (de) 2009-07-02
EP1744265B1 (en) 2008-08-20
DE602005009169D1 (de) 2008-10-02
EP1967984A1 (en) 2008-09-10
EP1587024B1 (en) 2008-04-30
EP1967984B1 (en) 2009-05-20
US20090175533A1 (en) 2009-07-09

Similar Documents

Publication Publication Date Title
JP5025893B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4556891B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4482796B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4517633B2 (ja) 対象物検出装置及び方法
US11256955B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
US10204283B2 (en) Image recognizing apparatus, image recognizing method, and storage medium
JP4553044B2 (ja) 集団学習装置及び方法
EP1934941B1 (en) Bi-directional tracking using trajectory segment analysis
US20070058856A1 (en) Character recoginition in video data
CN107633226B (zh) 一种人体动作跟踪特征处理方法
CN113052873B (zh) 一种在线自监督学习场景适应的单目标跟踪方法
JP2006318341A (ja) 検知対象画像判定装置、検知対象画像判定方法および検知対象画像判定プログラム
CN112884033B (zh) 一种基于卷积神经网络的生活垃圾分类检测方法
CN113487610B (zh) 疱疹图像识别方法、装置、计算机设备和存储介质
CN111582057B (zh) 一种基于局部感受野的人脸验证方法
JP2006285959A (ja) 顔判別装置の学習方法、顔判別方法および装置並びにプログラム
JP2006244385A (ja) 顔判別装置およびプログラム並びに顔判別装置の学習方法
LIRIS The Visual Object Tracking VOT2014 challenge results

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070129

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101208

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101213

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120511

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

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5025893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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