高速判別装置および高速判別装置を高速化する方法、並びに高速判別装置プログラム
【課題】複数の判別器からなる判別装置において、判別精度を犠牲にすることなく高速に判別が行なえる高速判別装置を提供する。
【解決手段】所定の順番に並べられた判別器群12から最終結果を得る際に、評価値取得手段13で1番目の判別器から順に各判別器の評価を行い、I番目までの判別器を評価して得られた総合評価値Fiが示す判別結果が、I+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、判別結果決定手段14よりI+1番目以降の判別器の評価の打ち切りを評価値取得手段13に指示するとともに、I番目までの判別器を評価して得られた総合評価値に応じた判別結果を最終結果sign(FI)として決定する。
【解決手段】所定の順番に並べられた判別器群12から最終結果を得る際に、評価値取得手段13で1番目の判別器から順に各判別器の評価を行い、I番目までの判別器を評価して得られた総合評価値Fiが示す判別結果が、I+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、判別結果決定手段14よりI+1番目以降の判別器の評価の打ち切りを評価値取得手段13に指示するとともに、I番目までの判別器を評価して得られた総合評価値に応じた判別結果を最終結果sign(FI)として決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データに含まれるオブジェクトの判別に関し、特に複数の判別器を用いた判別の高速化に関するものである。
【背景技術】
【0002】
ブースティングとは、必ずしも精度の良くない判別器を複数組み合わせることによって、精度の良い判別器を構築するアルゴリズムである。ブースティングによって学習された判別器は様々な分野で使われている(非特許文献1など)。
【0003】
特に顔検知や顔認識技術などに使われており、デジタルカメラやビデオカメラの普及によって私たちの生活に身近なものとなっている。顔検出器は入力データとして、ある画像領域の輝度値を受け取り、画像領域に顔が有るかどうかを判別する判別装置である。顔検出の研究は、1990 年代後半から行われていたが、計算速度の点で実用には至らなかった。しかしViolaとJonesによって提案された高速演算可能なHaar-Like特徴量(図20参照)を使った弱判別器を用いた顔検出器により、実時間での顔検出の処理が可能になった。
【0004】
顔検出にブースティングが使われる理由は判別装置の学習にかかる時間よりも実際に判別する際の判別時間が重要視されるからである。顔検出問題においてブースティングが速く判別を行える理由の一つは前述の高速演算可能な特徴量を導入した点にあるが、さらに、弱判別器の評価を途中で打ち切るという手法が用いられている点も高速に顔検出を行うポイントになっている。ブースティングで得られる判別装置は,弱判別器の線形結合であり、それらを逐次評価して最終的な判別結果を得る手法が一般的に用いられている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Yoav Freund and Robert E. Schapire “A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting” journal of computer and system sciences 55, 119_139 (1997)
【発明の概要】
【発明が解決しようとする課題】
【0006】
通常、画像中に顔が存在する割合は少ないため、「顔でない」と判定する弱判別器も多い。「顔でない」と判定する弱判別器も多いと考えられる判別装置については、それらの評価を途中で打ち切れば、判別に要する時間を平均的に短縮することが可能である。特に、「顔でない」判定への寄与度の高い弱判別器を先に評価するようにすれば、より早い段階で打ち切ることができる。つまり、弱判別器の並び順が、判別速度を決める重要な要因になる。
【0007】
従来、ブースティングなどによる弱判別器群の順序は、全ての弱判別器を用いることを前提に設計されているので、全体ではなく一部の弱判別器で判別すると精度が犠牲になり、判別の速度と精度を両立した総合性能を更に高めることは困難だった。
【0008】
そこで、本発明では、複数の弱判別器群からなる判別装置において判別の精度を犠牲にすることなく高速に判別が行なえる高速判別装置および高速判別装置を高速化する方法、並びに高速判別装置プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の高速判別装置は、判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置であって、
前記対象データxの入力を受け付ける対象データ入力受付手段と、所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段とを備えたことを特徴とするものである。
【0010】
また、本発明のプログラムは、判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置のプログラムであって、
コンピュータを、前記対象データxの入力を受け付ける対象データ入力受付手段と、所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段として機能させることを特徴とするものである。
【0011】
「対象データ」とは、画像データ、音のデータ、文字データ、生体データ、自然・物理データなどをいい、画像データには、デジタルスチールカメラなどの撮影装置で撮影した画像や、CTやMRIなどの医療用撮影装置で撮影した画像などが含まれ、生体データには、心拍、脈拍、血圧、呼吸、発汗の波形や周期、振幅などを計測したデータが含まれ、自然・物理データには、天候、気候、地震の波形や周期、振幅などを計測したデータが含まれる。文字データは、文字(数字を含む)からなるデータをいう。
【0012】
「オブジェクト」とは、対象データ中に含まれるものであり、例えば、デジタルスチールカメラなどの撮影装置によって対象データとなる画像に撮影された顔、頭部または人物の手などの人体の外観の一部の部位、あるいは人体の外観ではなく生体内の少なくとも一部の部位を含む領域が含まれる。なお、生体とは、生体内部の血管などのように、生体の内部に存在する特定の組織をいう。対象データが内視鏡システムや顕微鏡などで撮影した画像の場合には、オブジェクトには、生体内部の腫瘍組織、細胞、タンパク質、DNA・RNAなどの高分子、低分子が含まれる。生体の他にも、顕微鏡などで撮影された薬などの化合物やタンパク質などであってもよい。あるいは、貨幣、キャッシュカードなどのカード、車輌、あるいは車両のナンバープレートなど、デジタルスチールカメラなどの撮影装置によって対象データに撮影された画像であってもよい。また、対象データが、複写機などのスキャナ機器によりスキャニングされた画像である場合には、ドキュメントの文字、図面、表、写真などがオブジェクトに含まれる。さらに、オブジェクトは、画像データを統計的分析したときに統計的偏りのある群であればよく、例えば、テクスチャをも含むものである。
さらに、対象データが音のデータの場合には、「オブジェクト」は、例えば、音声、生体の音、生き物の声(動物、鳥、昆虫)、楽器の音、乗り物の音などである。
【0013】
また、前記判別器群が、前記複数の判別器fjとともに、該判別器のそれぞれに対する重みαjとを記憶するものであり、
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)と各判別器の重みαjとを線形結合した総合評価値Fi(x)
【数1】
をi=1からJまで順に得るものであってもよい。
【0014】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件1
【数2】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものが望ましい。
【0015】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件2
【数3】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0016】
また、前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)を線形結合した総合評価値Fi(x)
【数4】
をi=1からJまで順に得るものであってもよい。
【0017】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−1または条件4−1
【数5】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものが望ましい。
【0018】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−1または条件6−1
【数6】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0019】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−2または条件4−2
【数7】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0020】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−2または条件6−2
【数8】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0021】
さらに、前記判別結果は、前記総合評価値Fi(x)の符号に応じて決定されるものであってもよい。
【0022】
また、前記判別器群が、K個のステージに分けられるとともに、各ステージ毎に所定の順番で並べられたJk(k=1〜K)個の判別器からなる判別器群が含まれるものである場合には、前記評価値取得手段が、前記各ステージ毎に1番目から順に前記総合評価値Fi(x)を各ステージのi=1からJkまで順に得るものであり、前記判別結果決定手段が、前記評価値取得手段によって、各ステージのi=Ik(Ik<Jk)番目までの判別器を評価して得られた前記総合評価値FkI(x)が示す前記判別結果が、各ステージに含まれるIk+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記Ik番目までの判別器を評価して得られた総合評価値FkI(x)にIk+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段に各ステージのIk+1番目以降の判別器の評価の打ち切りを指示するとともに、前記Ik番目までの判別器を評価して得られた総合評価値FkIに応じた前記判別結果を各ステージの最終結果として決定するものが望ましい。
【0023】
本発明の前記高速判別装置を高速化するための方法は、N個のサンプルデータを記憶するサンプルデータ記憶ステップと、前記所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Iを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を取得する評価済判別器数取得ステップと、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索する探索ステップと、を備えたことを特徴とするものである。
【0024】
本発明の他の前記高速判別装置を高速化するための方法は、N個のサンプルデータを記憶するサンプルデータ記憶ステップと、前記各ステージ毎に所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に各ステージにおいて前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Ikを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を各ステージ毎に取得する評価済判別器数取得ステップと、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記各ステージの判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記各ステージの判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記各ステージの判別器群の並び順を探索する探索ステップと、を備えたことを特徴とするものである。
【0025】
また、前記高速判別装置を高速化するための方法において、前記判別器交換ステップが、前記所定の順番に並べられた複数の判別器からなる判別器群のうちの任意の2つの判別器を交換するようにし、前記探索ステップで、前記判別器交換ステップにおいて前記交換した2つの判別器の全ての組み合わせについて、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索することを特徴とするものが望ましい。
【0026】
「代表値」とは、具体的には平均値、最頻値、中央値などをいう。
【0027】
また、前記サンプルデータには、ラベル無学習データを含むものが好ましい。
【0028】
さらに、前記判別器群は、所定の分布P1に従う学習データを用いて学習を行うことにより選択されたものであり、前記サンプルデータには、前記分布P1とは異なる分布P2の学習データを含むものが好ましい。
【0029】
さらにまた、前記分布P2が前記対象データの分布に近い分布を表すものが望ましい。
【発明の効果】
【0030】
本発明の高速判別装置によれば、所定の順番に並べられた判別器群から最終結果を得る際に、1番目の判別器から順に各判別器の評価を行い、I番目までの判別器を評価して得られた総合評価値が示す判別結果が、I+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、I+1番目以降の判別器の評価を打ち切って、I番目までの判別器を評価して得られた総合評価値に応じた判別結果を最終結果として決定しているので、判別器の精度を犠牲にすることなく高速に判別を行なうことが可能になる。
【0031】
また、I番目までの判別器を評価して得られた総合評価値に上記の条件2,5−1,6−1,5−2,6−2のように、ある程度の許容誤差があってもI+1番目以降の判別器の評価を打ち切るようにすることで、多少判別精度を犠牲にすることでより高速に判別することが可能になる。
【0032】
また、判別器を複数のステージに分けたカスケード構造の高速判別装置においても、各ステージkにおいて、Ik番目までの判別器を評価して得られた総合評価値が示す判別結果が、Ik+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、Ik+1番目以降の判別器の評価を打ち切って、Ik番目までの判別器を評価して得られた総合評価値に応じた判別結果を各ステージの最終結果として決定するようにすれば、各ステージを高速化することができ、さらにカスケード構造による高速化を図ることが可能になる。
【0033】
さらに、本発明の高速判別装置を高速化するための方法によれば、所定の順番に並べられた判別器群の並び替えを行いながら、N個のサンプルデータに対して、判別器の評価が打ち切られるまでに評価された判別器の数の平均値、最頻値、中央値などの代表値を求めて、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしているので、本発明の高速判別装置をさらに高速化することが可能になる。
【0034】
また、カスケード構造の高速判別装置を高速化するための方法によれば、各ステージ毎に、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしているので、カスケード構造により早いステージで次の段階に進む画像であるか否かを判別した上で、さらに、各ステージの判別を高速化することができるので、本発明の高速判別装置をさらに高速化することが可能になる。
【0035】
また、最適な判別器群の並び順を探索するには、全ての判別器群に対して並び替えを行うことで最適解を得られると考えられるが、実際に顔などの判別に用いられる判別器は千個を超える数になるため、全ての判別器群に対して並び替えを行うと計算量が膨大になる。そこで、本発明のように判別器群の中の任意の2つの判別器を交換するようにすれば計算量を減らすことができるとともに、全ての判別器群に対して並び替えを行なった場合に近い準最適解を得ることが可能になる。
【0036】
さらに、最適な判別器群の並び順を探索する際のサンプルデータにラベル無学習データを含めることにより、サンプルデータのサイズを大きくすることが可能になり、多様なデータに対応した高速化が図れる。
【0037】
さらに、ブースティングなどの学習によって判別器を選択する際に用いられる学習データと、この学習データとは異なる分布に従うサンプルデータを用いて判別器群の並び順を探索することにより、ブースティング学習などに用いられるラベル付き学習データとサンプルデータの分布の違いを考慮した並び順に弱判別器を並び替えて高速判別装置の高速化をさらに図ることが可能になる。
【0038】
さらにまた、サンプルデータを実際の判別対象となる対象データに近い分布にすれば、対象データの分布を考慮した高速化を行なうことができる。
【図面の簡単な説明】
【0039】
【図1】第1の実施形態に係る高速判別装置の構成を示したブロック図
【図2】第1の実施形態に係る高速判別装置の処理の流れを示すフローチャート
【図3】第2の実施形態に係る高速判別装置の構成を示したブロック図
【図4】第2の実施形態に係る高速判別装置の処理の流れを示すフローチャート
【図5】サンプルデータの特徴量の確率密度関数および真の条件付き分布の一例を示す図
【図6】アダブーストによって選ばれた弱判別器とその係数の関係を表す図
【図7】第3の実施の形態の順序構造学習の処理の流れを示すフローチャート
【図8】全解探索により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図9】2つの弱判別器の交換により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図10】弱判別器の数を増やしたときの2つの弱判別器の交換により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図11】第4の実施形態に係る複数のステージからなる高速判別装置の構成を示したブロック図
【図12】第5の実施の形態の順序構造学習の処理の流れを示すフローチャート
【図13】ブースティング順の各ステージの平均評価回数と、SL(2)による順序構造学習後の各ステージの平均評価回数を示すグラフ
【図14】ブースティング順と、SL(2)による順序構造学習後の各ステージで評価される弱判別器の割合を示すグラフ
【図15】最初のステージに入力された探索窓の各ステージにおける棄却率を示すグラフ
【図16】統合した正面顔検出器の平均評価回数を示すグラフ
【図17】実験5の順序構造学習を行なったときに性能評価を示すグラフ
【図18】実験6の順序構造学習を行なったときに性能評価を示すグラフ
【図19】実験7の順序構造学習を行なったときに性能評価を示すグラフ
【図20】Haar-Likeフィルタを示す図
【発明を実施するための形態】
【0040】
以下、図面により、本発明の実施形態を詳細に説明する。本発明の高速判別装置は、デジタルカメラまたはデジタルビデオに搭載されるファームウェアに組み込まれた高速判別プログラムが実行されることにより、あるいは、高速判別プログラムがパソコンなどのコンピュータにロードされて実行されることにより実現する。また、高速判別プログラムはCD−ROMなどの記憶媒体に記憶されて配布され、CD−ROMなどの記憶媒体からコンピュータにインストールされる。あるいは、インターネットなどのネットワークを介してプログラムが配布されて、コンピュータにインストールされる。あるいは、デジタルカメラまたはデジタルビデオの製造時にファームウェアに組み込まれる。
【0041】
まず、図1および図2を用いて、本発明の第1の実施形態に係る高速判別装置を説明する。図1は、本発明の第1の実施形態に係る高速判別装置1の構成を示したブロック図である。図2は、高速判別装置1の処理の流れを示すフローチャートである。
【0042】
図1に示すように、高速判別装置1は、対象データxの入力を受け付ける対象データ入力受付手段11と、J個の判別器fjからなる判別器群を記憶する判別器記憶手段12と、複数の判別器から総合評価値を得る評価値取得手段13と、総合評価値から最終結果を決定する判別結果決定手段14と、を備えている。本実施の形態では、ブースティングのアルゴリズムを用いて対象データの判別を行う場合について説明する。
【0043】
判別器記憶手段12は、ブースティングのアルゴリズムによって選別されたJ個の判別器fj(判別器群)が所定の並び順で記憶されている。例えば、対象データが画像であり(以下、対象データを対象画像データとする)、対象画像データに顔が存在するかどうかを判別する場合には、判別器fjとして、多数あるHaar-Likeフィルタの中から選択することができる(図20、および、Pual.Viola,Michael J.Jones.Robust Real-Time Face Detection, International Journal ofComputer Vision,Vol.57,pp.137-154, 2004.などを参照)。以下、オブジェクトとして顔を検出する場合を例に説明する。
【0044】
このJ個の判別器fjの少なくとも1つには、誤判別率が1/2 よりも小さい弱判別器を含むものとする(以下、判別器を弱判別器とし、判別器群を弱判別器を含む弱判別器群として説明する)。ブースティングのアルゴリズムは、J個の判別器fjを線形結合することで強力な判別装置を構築するアルゴリズムであり、各弱判別fjに対する重み(線形結合係数)αjが決定されて弱判別器群と一緒に判別器記憶手段12に記憶される。
【0045】
ここで、J個の弱判別器fjで構成する強力な判別装置を用いた判別方法について説明する。1番目〜J番目までの各弱判別器fjを用いて対象画像データxを評価したときの評価値はfj(x)とあらわす。このとき、J 個の弱判別器fjの線形結合で構築されている判別関数Fは、
【数9】
と定義することができる。
【0046】
最終的な判別装置gは、
【数10】
とする。signは符号を表し、符号に応じて判別装置gの最終的な判定結果が決定される(gが正であれば顔が含まれる。gが負であれば顔が含まれない。)。
【0047】
弱判別器による線形結合の方法はブースティングのアルゴリズムによって異なるが、ここでは、Adaboost によって学習された判別関数Fを例に以下説明する。
【0048】
実際にデジタルカメラなどで撮影された撮影画像(対象画像)データ中に顔が存在するかどうかを判別するために用いられる弱判別器の数Jは、千個を超える数になる。実際には一枚の対象画像データから顔を検出する時間を30msec以下で終えるのが望ましく、常に全ての弱判別器で評価するのは実用的ではない。Adaboostでは重みαjは判別誤差が小さくなるように決められる。そこで、J個の弱判別器をBoostingが求めた順または重みの大きい順などに並べておく。並べられた順に弱判別器を評価して途中で判別を打ち切り、少ない弱判別器を用いて高速に判別を行なうことが考えられるが、打切ると判別精度が落ちて問題になる。
【0049】
判別精度を維持するためには、評価関数Fを計算する際に1番目からI(<J) 番目までの弱判別器を評価したときに、評価していないI+1番目以降の弱判別器を評価してもsign(F(x)) の符号が変わらなければ、I+1番目以降の弱判別器は評価を打ち切っても精度を犠牲にすることがない。以下に、この打ち切り法について詳細に説明する。
【0050】
まず、対象画像データ入力受付手段11で判別対象の対象画像データxの入力を受け付ける(#1)。対象画像データxは、デジタルスチールカメラで撮影した画像データ、デジタルビデオで撮影した1フレームの画像データ、スキャナで読み込んだデジタルデータなどである。
【0051】
評価値取得手段13は、1番目の弱判別器fjから順に対象画像データxを評価した評価値fj(x)を求める(#2、#3、#7、#8)。1番目からi番目までの弱判別器を用いて対象画像データxを評価したときの総合評価値Fi(x)は、1番目からi(>1)番目までの弱判別器の評価値fj(x)(j=1〜i)と重みαjを線形結合して求められる。総合評価値Fi(x)はi=1からJまで順に算出する(#4)。
【数11】
【0052】
次に、判別結果決定手段14は、i+1番目以降の弱判別器の重みの合計miを求める(#5)。
【数12】
【0053】
また、未評価のi番目以降の弱判別器による評価値の総合評価値F’iは下の式から求められる。
【数13】
【0054】
全ての弱判別器を評価したときの総合評価値はFi+F’iであるが各弱判別器fjは−1または1の値を取るので、F’iは−miから+miの値(数式(4)参照)を取る。したがって、
【数14】
を満足するI番目までの弱判別器で評価を打ち切っても、I+1番目以降の弱判別器を評価しなくともsign(FI)の符号は、全ての弱判別器を評価したときのsign(F=FI+F’I)と必ず一致する。
【0055】
そこで、判別結果決定手段14は、I番目の弱判別器までの総合評価値FI(x)が条件1を満足する場合には(#6-Yes)、評価値取得手段13にI+1番目以降の弱判別器の評価の打ち切りを指示する。また、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号から最終結果を決定する(#9、#10)。
【0056】
条件1を満足するまで、上記の判定を繰り返し(#3〜#8)、打ち切りが行われなかった場合は、J個の全ての弱判別器から得られた総合評価値FJの符号sign(FJ)から最終結果を決定する(#11)。
【0057】
上述では、判別結果決定手段14でmiを算出する場合について説明したが、miの値は対象画像データxに依らないため、判別を行う前に計算可能な値である。事前にmiが取りうる全ての値のルックアップテーブルを記憶しておくことにより、I 番目の弱判別器を評価した時点で判別を打ち切ることができる。このように途中で判別を打ち切ることからJ−I 個の弱判別器を評価しない分高速に判別できる。
【0058】
次に、弱判別器の打ち切り法の具体例を挙げる。
判別関数: F(x)=3 f1(x)+1.5 f2(x)+f3(x)+0.5 f4(x)+0.3f5(x)が与えられたとする。
(1) まず、一項目f1(x)=1と評価されたとする。するとF1 (x)=3かつm1=3.3である。この段階では残りの全ての弱判別器が−1 をとると符号が逆転するので打ちきれない。
(2) 二項目f2(x)=−1と評価されたとする。するとF2(x)=1.5かつm2=1.8である。この段階でも残りの全ての弱判別器が−1をとると符号が逆転するので打ちきれない。
(3) 三項目f3(x)=1と評価されたとする。すなわちF3(x)=2.5かつm3 =0.8である。このとき数式(6)の条件1が満たされ、残りの弱判別器f4, f5 がいかなる値をとっても符号は逆転できずsign(F(x))=sign(F3(x))=1 である。
よってγ(x, F)=3で打ち切ることができる。
【0059】
上記の条件1を満足するときに、弱判別器の評価を打ち切るようにすれば判別精度を犠牲にすることはないが、さらに高速に判別を行ないたい場合には、判別結果決定手段14は、上記の条件1を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14は、総合評価値FIが下記の条件2、
【数15】
を満足する場合には、評価値取得手段13にI+1番目以降の弱判別器の評価の打ち切りを指示するようにし、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0060】
次に、第2の実施の形態について、図3および図4を用いて説明する。第2の実施の形態では拡張した弱判別器を用いた場合について説明する。図3は、本実施の形態に係る高速判別装置1の構成を示すブロック図である。また、図4に本実施の形態の高速判別装置1の処理の流れを示すフローチャートを示す。
【0061】
図3に示すように、高速判別装置1aは、対象データ入力受付手段11と、判別器記憶手段12aと、評価値取得手段13aと、判別結果決定手段14aと、を備えている。本実施の形態の高速判別装置1aは、第1の実施の形態と略同じ構成を備えるので、詳細な説明は省略して相違する点について説明する。
【0062】
本実施の形態では、判別器記憶手段12aに記憶されている弱判別器fjは、−1、1の2値ではなく適当な二値の実数αj、βjをとる場合について説明する(本実施の形態のαjは第1の実施の形態の重みαjとは異なることに注意)。
【0063】
このとき、判別関数Fは適当な閾値Tを用いて、
【数16】
と定義することができる。
【0064】
最終的な判別装置gは、
【数17】
とする。signは符号を表し、第1の実施の形態と同様に、gの符号に応じて最終的な判別結果が決定される。
【0065】
本実施の形態でも、J個の弱判別器はBoostingが求めた(判別誤差が小さい)順または重みの大きい順などに並べておく。まず、第1の実施の形態と同様に対象画像データ入力受付手段11で判別対象の対象画像データxの入力を受け付ける(#1)。
【0066】
次に、評価値取得手段13aは、第1の実施の形態と同様に、1番目の弱判別器fjから順に対象画像データxを評価した評価値fj(x)を求め(#2、#3、#7、#8)、さらに、1番目からi番目までの弱判別器を用いて対象画像データxを評価したときの総合評価値Fi(x)を求める。総合評価値Fi(x)はi=1からJまで順に算出する(#12)。
【数18】
【0067】
次に、判別結果決定手段14aは、i+1番目以降の弱判別器が取り得る値の範囲を求める(#13)。
【数19】
【0068】
そこで、I番目までの弱判別器を評価して得られた前記総合評価値FI(x)が、下記の条件3−1または条件4−1、
【数20】
のいずれかを満足すれば、I番目までの弱判別器で評価を打ち切っても、I+1番目以降の弱判別器を評価しなくともsign(FI)の符号は、全ての弱判別器を評価したときのsign(F)と必ず一致する。つまり、条件3−1 が成り立てばsign(F(x))=1が保証される.同様に条件4−1 が成り立てばばsign(F(x))=-1 が保証される。
【0069】
そこで、判別結果決定手段14aは、I番目の弱判別器までの総合評価値FI(x)が条件3−1または4−1を満足する場合には(#14-Yes)、評価値取得手段13a にI+1番目以降の弱判別器の評価の打ち切りを指示する。また、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する(#10)。
【0070】
条件1を満足するまで、上記の判定を繰り返し(#3、#12、#13、#14、#7、#8)、打ち切りが行われなかった場合は、J個の全ての弱判別器から得られた総合評価値FJの符号sign(FJ)から最終結果を決定する(#11)。また、事前に各IについてmI+,mI―を計算してルックアップテーブルとして保存しておけば、I 番目の弱判別器を評価した時点で判別を打ち切ることができる。
【0071】
次に、拡張した弱判別器を用いた場合の打ち切り法の具体例を挙げる。
まず、弱判別器の個数J=5とし、弱判別器の取りうる値を下の表1に示す。
【表1】
【0072】
閾値T=0であるときに、対象画像データxが与えられたときのF(x)の符号を評価してみる。
(1) 一項目f1(x)=2.0と評価されたとする。するとF1(x)=2.0,m−1=6.3となる。このときsign(F1(x))×F1(x)=2.0 はm−1 より小さいためF(x)の符号が負である可能性が残る.従って評価を打ち切ることはできない。
(2) 二項目f2(x)=1.5評価されたとする。するとF2(x)=3.5,m−2=3.8となる。このときsign(F2(x))×F2(x)=3.5はm−2 より小さいため,F(x) の符号が負である可能性が残る。従って評価を打ち切ることはできない。
(3) 三項目f3(x)=1.7と評価されたとする。するとF3(x)=5.4,m−3=3.6となる。このときsign(F3(x))×F3(x)=5.4>m−3であるため残りの弱判別器がどんな値を取っても総合評価値の値が負になることはない。従って残りの弱判別器を評価することなく判別を打ち切ることができる。
【0073】
上記の条件3−1または条件4−1を満足するときに、弱判別器の評価を打ち切るようにすれば判別精度を犠牲にすることはないが、さらに高速に判別を行ないたい場合には、判別結果決定手段14aは、上記の条件3−1または条件4−1を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14aは、前記総合評価値FIが条件5−1または条件6−1、
【数21】
のいずれかを満足すれば、評価値取得手段13aにI+1番目以降の弱判別器の評価の打ち切りを指示する。判別結果決定手段14aは、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0074】
上述の第2の実施の形態では、判別結果決定手段14aが条件3−1または条件4−1が成り立つ場合にI番目までの弱判別器で評価を打ち切っていたが、下記の条件3−2または条件4−2が成り立つ場合にI番目までの弱判別器で評価を打ち切るようにしてもよい。
【数22】
【0075】
上記の条件3−2または条件4−2を満足するときに、さらに高速に判別を行ないたい場合には、判別結果決定手段14aは、上記の条件3−2または条件4−2を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14aは、前記総合評価値FIが条件5−2または条件6−2、
【数23】
のいずれかを満足すれば、評価値取得手段13aにI+1番目以降の弱判別器の評価の打ち切りを指示する。判別結果決定手段14aは、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0076】
第3の実施の形態では、高速判別装置を高速化するための方法について説明する。
【0077】
従来、ブースティングによって選択された弱判別器群の順序は、全ての弱判別器を用いることを前提に設計されているので、全体ではなく一部の弱判別器で判別しつつも精度を犠牲にしないようにする場合には、どうしても高速化に限界があった。そこで、さらに判別を高速に行うために弱判別器の最適な並び順について検討する。このような高速判別のための最適な弱判別器の並び順を求めることを順序構造学習ということにする。
【0078】
まず、サンプルデータ記憶ステップでN個のサンプルデータを用意する。ここで、各サンプルデータをxs(s=1〜N)で表す。
【0079】
上述の高速判別装置ではJ個の弱判別器群f1,f2,・・・,fj,・・・,fJ−1,fJが重み順に並べられていたが、弱判別器群の中の2以上の弱判別器を置換した弱判別器群を多数作成して、いずれの並び順が最適であるかについて検討する。ある特定の置換によって得られた弱判別器群の並びをkを用いて表すものとし、置換後の弱判別器の添え字をk(i)で表し、弱判別器はfk(j)と表す。また、kの並びの弱判別器群を用いたときの判別関数をFk とする。kの並びを用いると与えられたFk は下式 のように書ける(本実施の形態では、第1の実施の形態と同様に弱判別器fjが1または−1の値をとり、判別関数Fが重みαjを用いて線形結合される場合を例に説明する。)。
【数24】
【0080】
また、このときの打ち切り条件は下式のように書ける。
【数25】
【0081】
各並びkの弱判別器群で構成される高速判別装置1を用いてサンプルデータxs を評価した際に、高速判別装置1の判別結果決定手段14で弱判別器の打ち切りが指示されるまでに評価値取得手段13で評価された弱判別器の数Iをγとおく。
【数26】
【0082】
N個のサンプルデータxs(s=1,2,・・・,N)のそれぞれについて、並び^kの高速判別装置を用いてγを取得し、N個のサンプルデータのγの平均値Γ(F,k)を取得する。
【数27】
この評価された弱判別器の数の平均Γ(F,k)が最小となる並び^kを求める。
【0083】
ところで上述の打ち切り法の性質を考えると、一見各弱判別器の係数の絶対値について降順で並べた順序が最適な並びになりそうに見える。なぜなら係数の絶対値が小さい弱判別器が後半に集まるため、評価値取得手段13で評価した弱判別器の数が少なくても、mI は小さいので、早期に打ちきれる可能性が高まるからである。このことからわざわざ順序構造学習を行わなくても例えば以下の二つの並び順
ブースティング順^kb :ブースティングの学習時に選択された順序
係数絶対値順^kd :各弱判別器の係数(重みα)の絶対値が降順で並ぶ順序
はそもそも最適になっているのではないかと考えられる。
【0084】
しかし、実際以下のような反例を作ることができる。まず、ここで、サンプルデータの特徴量をx(本実施の形態では、xは特徴量を表すものとして説明する)とし、その判別結果をy(真:y=1 偽:y=−1)で表すものとする。特徴量xの周辺分布p(x)を、
【数28】
とする。結果として各区間R1:=[0, 1/3], R2:=[1/3, 2/3], R3:=[2/3, 1] に該当する特徴量xが発生する確率は、
【数29】
となる。また真の条件付き分布p(y|x) (y=1)を、
【数30】
と定める。図5にp(x)とp(1|x) を図示する。
【0085】
今、同時分布p(x,y)=p(x)p(y|x)からn個のサンプルデータがD:={(xi, yi) | i=1,2,・ ・ ・,n} で与えられたとする。
【0086】
図5の左図はxの確率密度関数p(x)を、右図はp(1|x)を表す。図の点線はp(1|x)=1/2 を示している。
【0087】
図6の左図はアダブーストによって得られた判別関数を表し、右表はN個のサンプルデータで実際にアダブーストを行ったとき、各ステップでアダブーストによって得られた弱判別器とその係数(重み)を表している。
【0088】
ここで、3個の弱判別器f1、f2、f3
【数31】
を用いてアダブーストにより学習したとする。このときサンプルデータ数及びステップ数が十分に大きければアダブーストの判別関数は
【数32】
になることがよく知られている(文献2:J. H. Friedman, T. Hastie, and R. Tibshirani. Additive logistic regression: A statisticalview of boosting. The Annals of Statistics, 28:337-407, 2000.参照)。ただし、同じ弱判別器についての係数はまとめてある。実際、例えばn= 1000 でアダブーストの逐次学習を100 回行うと0.35 *f1(x) + 0.15 *f2(x) + 0.38f3(x) となった。以下では簡単のために上記のF(x) をアダブーストによって得られた判別関数として進める。図6の右表からアダブーストによって選ばれた弱判別器の順序はf1, f3, f2 である。一方係数絶対値順はf3, f1, f2であることがわかる。今、f1, f2, f3 の全ての並び順についてΓ(F) を計算すると表2のようになる。この表からブースティング順も係数絶対値順も最適な並びではないことがわかる。
【0089】
下記の表2は 全ての順序kについてのΓ(F) の値を示す。表2では、順序「123」は弱判別器をF(x)=α1f1(x)+α2f2(x)+α3f3(x)と並べることを意味する。また6列目のΓ(F)は2,3,4 列目を一つの6×3行列Aとみなし、5列目を3次元縦ベクトルbとみなしたとき,Abと計算できることに注意。
【表2】
【0090】
このような現象が起きる理由には以下の三つの事実が深く関連している。
(1) 最小のγ(x,F) を達成する順序は場所xによって異なる。
(2) 最適な判別関数F(x)はp(y|x)のみから決まる。その一方最適順序構造はp(x)にも依存する。
(3) ブースティング順は最終的な形F(x)に最も早く近づけるように弱判別器を選択する。
【0091】
まず(1)が正しいことは上記の例でも確認できる。区間R2では係数絶対値順f3, f1, f2 では全ての弱判別器を評価しなければならないが、順序f1, f2, f3では二回で打ちきれる。すなわち全ての場所で係数絶対値順^kdが必ずしもγ(x, F)を最小にするわけではない。
【0092】
係数絶対値順^kdが最適でないことは(1)と(2)からわかる。数式(22)よりアダブーストの判別関数はp(y|x) のみから決まることがわかる。また順序構造学習は定義よりp(x) に依存することもわかる。従って(2) が成り立つ。今、(2) を認めるとp(x)を変化させても^kdは不変である。しかしデータが区間R2に発生する確率が大きくなるほど、^kdはその区間でのΓ(F) が悪化する。実際上記の例ではR2の発生確率が一番高くなっているため、この区間で最短で打ちきれる^kの方が、^kdよりΓ(F) を小さくできる。実際、上記のp(x) はそれを満たすように作られている。ブースティング順^kbが最適でないことは(1)と(3)からわかる。事実(3)は文献2などにより早くから知られている。ブースティング順は図6のステップ1でf1を選んでいる。このあとf2を選べば上記の理由で最適な順序となる。しかし全体的にF(x) の形により近づくためにはf3を選ぶ方が有利なためブースティングはf3を選んでいる。すなわちブースティングの目的は早くF(x) に近づくことであり、打ち切り法を最短にすることとは無関係である。そのため一般には最適な順序と異なる。上記の例はその具体例となっている。
【0093】
そこで、弱判別器群を並び替えた全ての弱判別器群の並び順に対して評価される弱判別器の数の平均値(以下、平均評価回数という)Γを求めることで、最適な並び^kを求める。この全ての並び順に対して探索を行って最適な並び^kを求めるのがよいが、J個の弱判別器全ての並び順はJ!通り存在する。弱判別器の総数は千個以上に及ぶため、実際に探索を行なうのは不可能である。
【0094】
そこで、効率よく弱判別器群の並び^kを求める手法について検討する。
【0095】
所定の並びで弱判別器が並んでいるときに、弱判別器群から適当な個数の弱判別器に限定してその中で順を交換したとき、Γが交換前より小さくなった場合には弱判別器を交換する。この操作をΓが小さくならなくなるまで繰り返すことによって弱判別器群の並び順の準最適解が得られると考えられる。
【0096】
ここでは、弱判別器群から2個の弱判別器の順番を交換する場合について、図7のフローチャートに従って説明する。
【0097】
まず、サンプルデータ記憶ステップでN個のサンプルデータを用意してハードディスクなどの記憶装置に記憶する(#20)。
【0098】
次に、ブースティングで選ばれた弱判別器fjの係数絶対値順^kbを^kの初期値とする。また、このときのΓ(F,^k)をΓminの初期値とする(#21)。
【0099】
弱判別器交換ステップでは、所定の順番に並べられた複数の弱判別器からなる弱判別器群のうちの任意の2つの弱判別器を交換する。ここでs番目とt番目の弱判別器の交換という操作をσ2(s,t)とし、
σ2(s,t) = {1,2,・・・,s,・・・,t,・・・,J}-> {1,2,・・・,t,・・・,s,・・・,J}
と定義する。並び^kの弱判別器群から選択したs番目とt番目の2つの弱判別器を交換して新しい並びσ2(s,t)^kの弱判別器群を生成する(#22)。
【0100】
次に、評価済弱判別器数取得ステップで、N個のサンプルデータのそれぞれを対象画像データ入力受付手段11より対象画像データxとして受け付けて、交換後の並びσ2(s,t)^kにおけるΓ(F,σ2(s,t)^k)を求める(#23)。
【0101】
並び替えステップでは、交換後のΓ(F,σ2(s,t)^k)が交換前のΓminより小さい場合には(#24−YES)、弱判別器群の並び順を交換後の並び順σ2(s,t)^kに並び替えて弱判別器群を記憶する。さらに、Γ(F,σ2(s,t)^k)をΓminとする(#25)。一方、交換後のΓ(F,σ2(s,t)^k)が交換前のΓminより大きい場合には、弱判別器群の並び順はそのままにする(#24−NO)。
【0102】
探索ステップでは、次に交換するs’番目とt’番目の弱判別器を選択してs’をsとしt’をtとして(#27)、以上の弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して(#22〜#27)、評価された弱判別器の数の平均が最小となる弱判別器群の並び順を探索する。弱判別器交換ステップで行なわれる1〜Jの弱判別器の中の2つを交換する全ての組み合わせはJC2となる。したがって、JC2 回の交換が終わるまで(#26−YES)、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返す(#26−NO)。
【0103】
上述では、弱判別器群のうちの2つの弱判別器を交換して行くことで、弱判別器群の準最適な並びを求めているが、弱判別器群のうちの3つ弱判別器を交換していくことで準最適な並びを求めることもできる。
【0104】
弱判別器交換ステップで弱判別器群の中の三つの弱判別器を選び、その三つの弱判別器について下の表3の5パターンの並び順の交換σ3 を行い、評価済弱判別器数取得ステップで平均評価回数Γを計算する。並び替えステップでは、5つの結果の中で、交換する前より平均評価回数Γが改善した中で、平均評価回数Γが最小となる並び順の交換を採用し、弱判別器群の並び順を更新する。探索ステップでは、以上の弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して、評価された弱判別器の数の平均が最小となる弱判別器群の並び順を探索する。弱判別器の中の3つを交換する組み合わせによる弱判別器群の並び替えの交換回数はJC3*5になる。したがって、JC3*5 回の交換が終わるまで、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して準最適な並び順を探索する。
【表3】
【0105】
弱判別器群のうちの2つの弱判別器を交換して行く場合に比べて、弱判別器群のうちの3つの弱判別器を交換して行く場合のほうがより最適解に近い結果が得られると予測できる。しかし、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップの繰り返しは確実に増えることになり、弱判別器群のうちの2つの弱判別器を交換して行く場合より準最適解を得るための計算量は大きくなる。
【0106】
以下、実験結果に基づいて順序構造学習の効果について説明する。
【0107】
実験1では、弱判別器群の全ての並び替え(全解探索)による順序構造学習(以下、SL(1)による学習という)と、弱判別器群の中の2個の弱判別器の順番を交換する順序構造学習(以下、SL(2)による学習という)の効果について、実験した結果を説明する。
【0108】
計算量の観点から5〜10個の弱判別器をSL(1)による順序構造学習とSL(2) による順序構造学習を行なった高速判別装置1による平均評価回数Γを下の表4に示す。また、図8にSL(1)により順序構造学習を行なったときの平均評価回数Γと、ブースティング順^kbや係数絶対値順^kd(弱判別器の重みの順)のときの平均評価回数Γを示す。また、図9にSL(2)により順序構造学習を行なったときの平均評価回数Γと、ブースティング順^kbや係数絶対値順^kdのときの平均評価回数Γを示す。図8および図9にSL(1) やSL(2)により順序構造学習を行なったときの平均評価回数Γの方がブースティング順^kbや係数絶対値順^kd(弱判別器の重みの順)のときの平均評価回数Γより小さく、高速評価できることがわかる。また、表4をみるとJが小さい範囲ではSL(2)は、SL(1)のよい近似となっていることが確認できる。つまり、SL(2)による順序構造学習であってもSL(1)による順序構造学習に近い結果を得ることができるものと考えられる。
【表4】
【0109】
実験2では、弱判別器の数を増やしてSL(2)の学習を行った結果を図10に示す。数が増えるに従って高速化の効果が表れていることがわかる。大体弱判別器の数J=20,・・・,50ぐらいから評価される弱判別器の総数の1割ほど早くなる。この実験より準最適解でも他の並び順よりも一定して高速に判別できることがわかる。
【0110】
実験3では、弱判別器群から2個の弱判別器の順番を交換した順序構造学習と、弱判別器群から3個の弱判別器の順番を交換した順序構造学習(以下、SL(3)による学習という)の効果について、実験した結果を説明する。
【0111】
計算量の観点から20〜30個の弱判別器をSL(2)による順序構造学習とSL(3)による順序構造学習を行なった高速判別装置1による平均評価回数Γを下の表5に示す。
【表5】
二つの結果に大きな差はなく0.01〜0.1(Γ=J)の差でしかない。この実験よりSL(2)による順序構造学習でも十分な高速化を行なうことができると考えられる。
【0112】
以上より、順序構造学習にかかる計算量と、高速判別別装置で判別時間の削減との両方を考慮するとSL(2)による順序構造学習によって弱判別器の並び順を決定するのが最もよいという結論に達する。
【0113】
本実施の形態では、第1の実施の形態で説明したように、弱判別器fjが−1、1の2値を取る場合を例に弱判別器の並び順を決定する手法について説明したが、第2の実施の形態で説明したように、弱判別器fjが適当な二値の実数αj、βjをとる場合には、評価済弱判別器数取得ステップで、^kの並びの弱判別器群を用いたときのΓを求める際に、判別結果決定手段14aが条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るものとして求める。あるいは、並び順を決定する際に、評価済弱判別器数取得ステップで、^kの並びの弱判別器群を用いたときのΓを求める際に、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るものとして求めるようにしてもよい。
【0114】
本発明は、第3の実施の形態で説明したように、弱判別器群の最適な(あるいは準最適な)並び順を決定した後に、この決定された並び順の弱判別器群で構成された第1の実施の形態の高速判別装置、または、この決定された並び順の弱判別器群で構成された第2の実施の形態の高速判別装置で、判別対象の対象画像データに顔が含まれているか否かを判別することで、非常に高速な判別を行なうことを実現することができる。
【0115】
第1の実施の形態のように弱判別器fjが−1,1の二値をとる場合には、上記に詳細に説明した手法を用いて最適な(あるいは準最適な)並び順を決定した後、決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1で判別を行なうことによって最も高速な判別を行なうことが可能になる。
【0116】
一方、第2の実施の形態のように弱判別器fjが適当な二値の実数αj、βjをとる場合には、条件3−1または条件4−1を満足した場合に、弱判別器の評価を打ち切るケースと、条件3−2または条件4−2を満足した場合に、弱判別器の評価を打ち切るケースとがある。そこで、第2の実施の形態のように弱判別器fjが適当な二値の実数αj、βjをとる場合には、以下の4通りの組み合わせが考えられる。
(1)最適な(あるいは準最適な)並び順を決定するには、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るようにする。
(2)最適な(あるいは準最適な)並び順を決定するには、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るようにする。
(3)最適な(あるいは準最適な)並び順を決定するには、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るようにする。
(4)最適な(あるいは準最適な)並び順を決定するには、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るようにする。
【0117】
以上の4通りから、最も高速に判別を行なうことができる高速判別装置を決定することが可能である。上記の各条件において、条件3−1,4−1の方が、条件3−2,4−2より処理がシンプルであるため処理自体は高速であるが、打ち切り回数の性能差が小さいことが実験において確認されている。実験の結果などから、適宜最適な条件の組み合わせを決定するのが良い。
【0118】
第4の実施の形態では、高速判別装置の弱判別器群をカスケード型に構成した場合について説明する。図11は、本実施の形態に係る高速判別装置1bの構成を示すブロック図である。高速判別装置1bは、対象データ入力受付手段11と、判別器記憶手段12bと、評価値取得手段13bと、判別結果決定手段14bと、を備えている。本実施の形態の高速判別装置は、弱判別器群が複数のステージに分けられてカスケード型で構成される以外は、第1および2の実施の形態と略同じ構成を備えるので、詳細な説明は省略して相違する点を主に説明する。
【0119】
判別器記憶手段12bには、J個の弱判別器がK個のステージに分けて記憶され、各ステージにはJk(k=1〜K)個の弱判別器が所定の順番で並べられている。
ここで、k番目のステージの判別関数をFkと定義する。Fk は、
【数33】
と表わされる。
【0120】
各ステージの最終的な判別装置gkは、
【数34】
で表される。
【0121】
次に評価値取得手段13bは、各ステージ毎に総合評価値Fki(x)をi=1からJkまで順に算出する。
【数35】
【0122】
次に判別結果決定手段14bは、各ステージ毎にi+1番目以降の弱判別器が取り得る値の範囲を求める(#13)。
【数36】
【0123】
そこで、Ik番目までの弱判別器を評価して得られた前記総合評価値FIk(x)が、下記の条件7または条件8
【数37】
のいずれかを満足すれば、各ステージではIk番目までの弱判別器で評価を打ち切る。
【0124】
ここでは、弱判別器が適当な二値の実数をとる場合について説明したが、第1の実施の形態と同様に、弱判別器が1、−1の2値を取る場合であっても、同様に各ステージごとに弱判別器で評価の打ち切りを行うようにすることができる。
【0125】
第5の実施の形態では、高速判別装置の複数の弱判別器をカスケード型に構成した場合の最適な弱判別器の並び順を求める順序構造学習について説明する。このカスケード型(カスケード構造)の高速判別装置は、弱判別器がステージと呼ばれるいくつかのグループにまとめられている。実際に検出を行う際には第1ステージから順に評価を行い、顔でないと評価されたステージがあれば、その画像は顔でないと判定し,そのステージで評価を打ち切り、次のステージに進まない。従って、全ステージで顔であると判定されたときに限りその画像を顔であると判定する。ここでは、各ステージを一つのブースティングによって得られた高速判別装置とみなして順序構造学習を行う場合について説明する。
図12は、カスケード型の高速判別装置の順序構造学習の処理の流れを示すフローチャートである。各ステージ毎に並び替えを行なう以外は、第3の実施の形態の順序構造学習の処理の流れと略同様であるので、図12に従って相違する点を主に説明する。
【0126】
まず、各ステージ毎に所定の順番に並べられた弱判別器群に対して上述のSL(1)、SL(2),SL(3)のいずれかの手法で並び替えを行なえばよいが、ここでは、SL(2)で並び替える場合について説明する。
【0127】
まず、N個のサンプルデータを用意して記憶装置に記憶する(#30)。ステージkをステージ1とし、ステージ1から弱判別器群の並び順を探索する(#31)。
【0128】
ブースティングで選ばれた弱判別器fjの係数絶対値順^kbを各ステージの並び^kの初期値とする。また、このときのΓk(F,^k)をΓkminの初期値とする(#32)。
【0129】
次に、弱判別器交換ステップで、現在のステージの弱判別器群のうちのs番目とt番目の2つの弱判別器を交換する(#33)。次に、評価済弱判別器数取得ステップで、N個のサンプルデータのそれぞれを対象画像データ入力受付手段11より対象画像データxとして受け付けて、評価値取得手段13bを実行した後に各ステージにおいて判別結果決定手段14bが弱判別器の評価の打ち切りを指示するまでに評価された弱判別器の数Ikを各サンプルデータごとに取得し、N個のサンプルデータから平均評価回数Γkを取得する(#34)。
【0130】
並び替えステップでは、交換後の平均評価回数Γkが交換前の平均評価回数Γkminより小さい場合には(#35―YES)、現在のステージの弱判別器群の並び順を交換後の並び順に並び替える(#36)。交換後の平均評価回数Γkが交換前の平均評価回数Γkminより大きい場合には、現在のステージの弱判別器群の並び順はそのままにする(#35―NO)。
【0131】
次に交換するs’番目とt’番目の弱判別器を選ぶ(#38)。探索ステップでは、全ての並び替えが終了するまで、再度、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および並び替えステップを繰り返して(#37−NO)、平均評価回数Γkが最小になる現在のステージの弱判別器群の並び順を探索する。全ての並び替えが終了すると次のステージの並び替えに移る(#37−YES)。
【0132】
まず、現在のステージkが最後のステージKではないかを確認して、最後のステージでない場合には(#39―NO)、次のステージk+1に進めて(#40)、再度、次のステージの弱判別器群の並び順を探索する(#33〜#38)。
【0133】
全てのステージで、平均評価回数Γkが最小になる弱判別器群の並び順の探索が終了すると順序構造学習は完了する(#39―YES)。
【0134】
実験4では、カスケード構造の正面顔検出器(高速判別装置)に順序構造学習を行った。表6に各ステージに含まれる弱判別器の数の一覧を示す。
【表6】
【0135】
弱判別器の総数が大きいため、順序構造学習はSL(2)を採用した。図13に、各ステージの弱判別器の数と、ブースティング順^kbの各ステージの平均評価回数Γkと、SL(2)による順序構造学習後の各ステージの平均評価回数Γkを示す。図14に、ブースティング順^kbと、SL(2)による順序構造学習後の各ステージで評価される弱判別器の割合(平均評価回数Γk/弱判別器の数J)を示す。各ステージごとに順序構造学習の効果がみられ、どのステージでも順序構造学習によって得られた並び順の方がブースティング順^kbより、平均評価回数Γkが小さく速く検出することができている。また最後のステージになるにつれて順序構造学習の効果が大きくなり,平均評価回数で最大で1.5割ほど高速化が図れていることが分かる。
【0136】
次に、顔検出時に対象画像データ内に顔検出範囲(以下、探索窓という)を設定して、その探索窓内に顔が存在するか判定しながら、対象画像データ全体を走査することで対象画像データ内の顔を検索する場合の各ステージの棄却率(探索窓内に顔が存在しないと判定されて、その探索窓が棄却される率)について説明する。カスケード型の判別器は、最初のステージから順に評価を行い、顔でないと評価されたステージがあれば、探索窓は棄却される。設定された探索窓が各ステージでどの程度棄却されるかを表す棄却率を図15に示す。図15よりステージ5,6までに設定された探索窓の9割が棄却されている。つまり、前半のステージでは多くの探索窓を棄却し、後半のステージでは精密に顔であるかどうか検査していることを示している。
【0137】
次に、カスケード構造の正面画像検出器と順序構造学習の検出速度の高速化の効果についてみる。表6に示すカスケード構造のステージ0からステージ6までのステージを統合しステージ0とし、ステージ7…24まではそのままにするが、ステージの番号を振りなおしてステージ1…18とする。この各ステージに対して順序構造学習を行い、統合した正面顔検出器の平均評価回数Γkを図16に示す。ステージ0を見ると順序構造学習を行った場合の平均評価回数Γ0は180程度だが、順序構造学習を行わない場合と比べて40程度しか変わっていない。統合する前は9個の弱判別器で構成されたステージ0で40%ほど探索窓を棄却している。従って検出速度の高速化の観点からみると、複数のステージを統合した顔検出器に対して順序構造学習を行う場合より、カスケード構造の方が速いことがわかる。以上より、カスケード構造を採用した上で各ステージに対して順序構造学習を行なった高速判別装置が最も高速に判別を行えるという結論に達する。
【0138】
上述の第3および第5の実施の形態の順序構造学習では、N個のサンプルデータを使って、判別器の評価が打ち切られるまでに評価された判別器の数の平均値を求めて、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしたが、平均値ではなく最頻値、中央値などの代表値からもっとも早い段階で判別器の評価の打ち切り行なわれる判別器群の並び順を探索するようにしてもよい。
【0139】
次に、第6の実施の形態では、ブースティング学習時と順序構造学習時に用いる学習データ、および性能評価に用いる評価用データについて説明する。本実施の形態の高速判別装置は、第1、第2および第4の実施の形態で説明した高速判別装置のいずれかを用いる。また、順序構造学習は第3および第5の実施の形態で説明した高速判別装置を高速化する方法を用いるものとする。高速判別装置は前述の実施の形態と同じ構成を備え、高速判別装置を高速化する方法でも前述と同じ順番で各ステップが実施されるので、本実施の形態では学習データと評価用データについて詳細に説明する。
【0140】
一般的に、学習データセットとして、ラベル付き学習データとラベル無し学習データが用いられることはよく知られている。例えば、顔検出に用いる学習用データの場合、特徴量xは機械で自動で大量収集可能であるのに対して、各学習データのラベルy(顔有り:1、顔無し:−1)は人手でつけなければならない。そのためラベル付き学習データセットDLのサイズを大きくするにはコストがかかると考えられる。一方で特徴量xだけの学習データ(ラベル無し学習データ)は大量に手に入れやすい。
【0141】
ところで、デジタルカメラで顔検出を実際に行う場合の対象画像データに近い評価データDTと、学習に用いられるラベル付き学習データセットDLでは、特徴量の分布が異なると考えられる。通常、顔検出のための学習を行う場合には顔画像を多く含む学習データを準備するのが自然であろうが、実際のデジタルカメラで撮影した対象画像データにはそこまで多く常に顔が写っているとは限らないからである。
【0142】
そこで、学習データの3つのタイプについて説明する。
(a)教師付き学習用データセット
ラベル付き学習データDLのみが与えられる。従来から広く用いられてきた設定である。本発明のブースティング学習時に用いられ、弱判別器の選択が行われる。しかし上述したようにデータサイズを大きくするためにはラベルづけのコストがかかる。
(b)半教師付き学習データセット
ラベル付き学習データDLとラベル無し学習データDUが与えられる。ただし、DUとDLが同じ分布に従っている。
(c)共変量シフト学習データセット
ラベル付き学習データDLとラベル無し学習データDUが与えられる。ただし、DUとDLが異なる分布に従っている。
【0143】
順序構造学習にはデータの数を増やすため、ラベル付き学習データDLとラベル無し学習データDUが含まれる半教師付き学習データセット、あるいは共変量シフト学習データセットを使う方法が考えられる。
【0144】
ここで、従来の判別装置と上述の各実施の形態で説明した高速判別装置の判別速度について検討する。まず、判別装置を下の4通りに分ける。
(i) viola and jonesらが提案した従来の判別装置(例えば、文献3:Pual.Viola,Michael J.Jones.Rapid Object Detection using a Boosted Cascade of Simple Feature, IEEE Conf. on Computer Vision and Pattern Recognition, 2001.V参照)
(ii) 係数絶対値順に弱判別器を並べて、弱判別器の数γ(第1、第2および第4の実施の形態のI、Ik)で打ち切る高速判別装置(第1、第2および第4の実施の形態の高速判別装置)
(iii) ブースティング順に弱判別器を並べて、弱判別器の数γで打ち切る高速判別装置(第1、第2、および第4の実施の形態の高速判別装置)
(iv)さらに、弱判別器の並び順に対して順序構造学習を行なって、弱判別器の数γで打ち切る高速判別装置(第3および第5の実施の形態の方法によって高速化された高速判別装置)
(i)の従来の判別装置に対しては、(ii)、(iii) 、(iv)の高速判別装置はどんな場合でも必ず同じかそれ以上の判別速度を出すことができる。また、(iv)が一番高速であると考えられるが、順序構造学習をしなくても(ii)、(iii)でも一定程度の高速化が実現可能である。ただし、これは学習データと評価データの分布が同じ場合が前提となる。
【0145】
顔検出において学習データと評価データが異なる分布に従うことは不可避である(例えば、文献3参照)。(i)の従来の判別装置においても、顔ではなさそうなものを判断する処理が少ない弱判別器を初段側のステージに用意して初期に顔でないデータは棄却するように構成にしたカスケード構造の判別装置では、学習データと評価データの分布が違うことを想定してカスケード構造を決定している。これは、経験則によるヒューリスティックなものである。
【0146】
(ii)、(iii)の係数絶対値順は、弱判別器が十分多様であれば、アダブーストの判別関数は学習データxの分布P(x)には依存しないが、高速判別装置が弱判別器の途中で判別を打ち切るときの弱判別器の数γは教師付き学習データセット(ラベル付き学習データ)xの分布P(x)に依存する。そのため、係数絶対値順は最適な並び順とはならない。アダブースト順が最適にならない理由も同様に、アダブーストが教師付き学習データセットを最も改善する弱判別器を選ぶため、高速判別装置が弱判別器の途中で判別を打ち切るときの最適な並び順とはならない。
【0147】
それに対して、(iv)の順序構造学習を評価データ(実際にデジタルカメラなどで顔の判別を行なう対象画像データに近い分布のデータ)と同じ分布に従うラベル無し学習データで学習を行うことができれば、(i)〜(iii)をかなり上回る性能が期待できる。
【0148】
まず、分布P1(x)のラベル付き学習データセットDL:= {(xi, yi) | i=1, 2, ・ ・ ・ , n}と、ラベル付き学習データセットDLとは独立なラベル無し学習データセットとして分布P1(x) に従うD1U:= {x1, x2, ・・・, xnu} と分布P2(x) に従うD2U:= {x1, x2, ・・・, xnu} を用意する。さらにDL, D1U, D2Uと独立な評価用データセットとして分布P1(x)に従うD1T:= {x1, x2, ・・・, xnt } と、分布P2(x)に従うD2T:= {x1, x2, ・・・, xnt} を用意する。学習データの分布P1(x)と分布P2(x)は異なる分布を表し、P1(x)はブースティング学習に用いられるデータの分布と略一致する分布を表し、P2(x)は、実際に顔の判別を行なう対象画像データの分布と略一致する分布を表すものとする。この実験ではn=300, nu=300, nt=1200 とした。
【0149】
最初にデータDLを用いてブースティング学習を行う。その結果得られた判別関数を
【数38】
とする(ここでは、第1の実施の形態と同じ判別関数を例に説明する)。以降全ての実験において同じ判別関数を用いるものとする。この判別関数F(x)について下表に示した4種類の実験(表の実験2は、第3の実施の形態の実験2と同じである)を行った。これらの実験の意図は下で説明する。性能評価は評価用データセットD1T あるいはD2T を用いて計算されたΓ(F)/Jで行った。DxLはDLの特徴量だけの集合をさす。以下、ブースティング学習に用いるデータを学習データセットといい、順序構造学習に用いるデータをサンプルデータセットとして区別する。
【表7】
上表の実験ではいずれも順序構造学習にSL(2)を用いる。
【0150】
実験2では、順序構造学習に学習データセットと同じデータをサンプルデータセットDxLとして用い、評価用には学習データセットと同じ分布の評価用データD1Tを用いた。実験2の結果を図10に示す。数が増えるに従って高速化の効果が表れていることがわかる。大体弱判別器の数J=20,・・・,50ぐらいから評価される弱判別器の総数の1割ほど早くなる。
【0151】
実験5では、順序構造学習に学習データセットと同じデータをサンプルデータセットDxLとして用い、評価用には学習データセットと異なる分布の評価用データセットD2Tを用いた。実験5の結果を図17に示す。
実験2,5はともにブースティング順は係数絶対値順に似た挙動を示している。また両者は実験2,5であまり結果が変わらないことがわかる。その一方で順序構造学習は実験2に比べて実験5では、弱判別器の数が増えると結果が安定していない。これは学習時と評価時でデータの分布が変わっている影響が出ているためであると考えられる。
【0152】
実験6では、順序構造学習に学習データセットと同じデータのサンプルデータセットDxLと学習データセットと同じ分布であるが学習データとは独立なサンプルデータセットD1Uを用い、評価用には学習データセットと同じ分布であるが学習データとは独立な評価用データセットD1Tを用いた。実験6の結果を図18に示す。
順序構造学習を行うと、データ数が増えているため早期から安定して高速化できている。ただし実験2と同様に、学習データセットとサンプルデータセットが同じ分布に従い、学習データセット・サンプルデータセットと同じ分布の評価用データセットD1Tを用いるため、弱判別器の数が増えても改良の度合いが増加していない。
【0153】
実験7は、順序構造学習に学習データセットと異なる分布のサンプルデータセットD2Uを用い、評価用にも学習データセットと異なる分布の評価用データセットD2Tを用いる。実験7の結果を図19に示す。
順序構造学習による高速化が著しいことが見て取れる。この理由は共変量シフトを起こしている場合、係数絶対値順やブースティング順が重要であると考えた判別装置の優先順位が予想を外すこととなる。ただしブースティングの学習アルゴリズムを共変量シフトに拡張すればここまで差が生じることはないと考えられる。
【0154】
ブースティング学習においては、ラベル付きの学習データしか学習できない。そのためブースティング学習に用いる学習データセットのサイズを大きくするにはコストがかかる。順序構造学習においては、順序構造を学習(弱判別器の順序のみに着目)しているので、学習データのラベルは必須ではなくなり、ラベル付き、ラベル無のどちらでも高速化のための学習が可能となる。そのため、順序構造学習に用いる学習データセットのサイズを大きくするのは比較的容易に行なえる。
【0155】
デジタルカメラで顔検出を実際に行う場合の対象画像データと、ブースティング学習に用いられるラベル付き学習データとでは、特徴量の分布が異なると考えられる。そこで、順序構造学習でブースティングを行なう際の学習データとは異なる分布のサンプルデータ、つまり実際に判別を行う対象画像データに近い分布のサンプルデータを用いることで、その違いを考慮した並び順に弱判別器を並び替えて高速判別装置の高速化を図ることが可能になる。
具体的には、上記実施形態で説明したように、ラベル無しの半教師付き学習や、共変量シフトの分布特性を持つサンプルデータを順序構造学習に適用することで、更に、係数絶対値順、アダブースト順より高速となるように高速判別装置の弱判別器を並び替えることが可能になる。
【0156】
本実施の形態では、弱判別器が−1、1の2値を取る場合について説明をしたが、第2の実施の形態のように2値の実数を取る場合についても、ラベル無しの半教師付き学習や、共変量シフトの分布特性を持つサンプルデータを順序構造学習に適用することで、より高速となるように高速判別装置の弱判別器を並び替えることが可能になる。
【0157】
上述では、顔の検出について具体的に説明を行なったが、オブジェクトが人物の手などの人体の外観の一部の部位、あるいは人体の外観ではなく生体内の少なくとも一部の部位を含む領域であってもよい。対象画像データが内視鏡システムや顕微鏡などで撮影した画像の場合には、オブジェクトは、生体内部の腫瘍組織、細胞、タンパク質、DNA・RNAなどの高分子、低分子、であってもよい。生体の他にも、顕微鏡などで撮影された薬などの化合物やタンパク質などであってもよい。あるいは、デジタルスチールカメラなどの撮影装置によって対象画像データに撮影された貨幣、キャッシュカードなどのカード、車輌、あるいは車両のナンバープレートなどであってもよい。また、対象画像データが、複写機などのスキャナ機器によりスキャニングされた画像である場合には、オブジェクトがドキュメントの文字、図面、表、写真などであてもよい。さらに、オブジェクトは、画像データを統計的分析したときに統計的偏りのある群であればよく、例えば、テクスチャであってもよい。
【0158】
上述では、対象データが画像データである場合について説明したが、音のデータ、文字データ、生体データ、自然・物理データなどでもよい。具体的には、音のデータから音声、生体の音、生き物の声(動物、鳥、昆虫)、楽器の音、乗り物の音などを検索するときに上述の高速判別装置を用いることができる。
また、音声データや文字データには、日本語や英語などの種々の言語の情報からなる言語データが含まれる。言語データからは、例えば、地域の方言の判別、用途(ニュースのようなフォーマルなデータであるかインフォーマルなデータであるか)の判別、書かれた(あるいは、話された)時代(平安、江戸、現代)の判別、書いた(あるいは、話している)世代(高校生、年輩)の判別をおこなうときに上述の高速判別装置を用いることができる。
さらに、生体データは、心拍、脈拍、血圧、呼吸、発汗の波形や周期、振幅などを計測したデータであってもよい。さらにまた、自然・物理データとして、天候、気候、地震の波形や周期、振幅などを計測したデータであってもよい。
【0159】
上述では、判別器が弱判別器である場合について説明したが、判別器群には誤判別率が低いものが含まれていても良い。
【0160】
上述では、ブースティングを例に説明したが、バギングにより構成された判別器群であってもよい。
【符号の説明】
【0161】
1,1a,1b 高速判別装置
11 対象画像データ入力受付手段
12,12a,12b 判別器記憶手段
13,13a,13b 評価値取得手段
14,14a,14b 判別結果決定手段
【技術分野】
【0001】
本発明は、画像データに含まれるオブジェクトの判別に関し、特に複数の判別器を用いた判別の高速化に関するものである。
【背景技術】
【0002】
ブースティングとは、必ずしも精度の良くない判別器を複数組み合わせることによって、精度の良い判別器を構築するアルゴリズムである。ブースティングによって学習された判別器は様々な分野で使われている(非特許文献1など)。
【0003】
特に顔検知や顔認識技術などに使われており、デジタルカメラやビデオカメラの普及によって私たちの生活に身近なものとなっている。顔検出器は入力データとして、ある画像領域の輝度値を受け取り、画像領域に顔が有るかどうかを判別する判別装置である。顔検出の研究は、1990 年代後半から行われていたが、計算速度の点で実用には至らなかった。しかしViolaとJonesによって提案された高速演算可能なHaar-Like特徴量(図20参照)を使った弱判別器を用いた顔検出器により、実時間での顔検出の処理が可能になった。
【0004】
顔検出にブースティングが使われる理由は判別装置の学習にかかる時間よりも実際に判別する際の判別時間が重要視されるからである。顔検出問題においてブースティングが速く判別を行える理由の一つは前述の高速演算可能な特徴量を導入した点にあるが、さらに、弱判別器の評価を途中で打ち切るという手法が用いられている点も高速に顔検出を行うポイントになっている。ブースティングで得られる判別装置は,弱判別器の線形結合であり、それらを逐次評価して最終的な判別結果を得る手法が一般的に用いられている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Yoav Freund and Robert E. Schapire “A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting” journal of computer and system sciences 55, 119_139 (1997)
【発明の概要】
【発明が解決しようとする課題】
【0006】
通常、画像中に顔が存在する割合は少ないため、「顔でない」と判定する弱判別器も多い。「顔でない」と判定する弱判別器も多いと考えられる判別装置については、それらの評価を途中で打ち切れば、判別に要する時間を平均的に短縮することが可能である。特に、「顔でない」判定への寄与度の高い弱判別器を先に評価するようにすれば、より早い段階で打ち切ることができる。つまり、弱判別器の並び順が、判別速度を決める重要な要因になる。
【0007】
従来、ブースティングなどによる弱判別器群の順序は、全ての弱判別器を用いることを前提に設計されているので、全体ではなく一部の弱判別器で判別すると精度が犠牲になり、判別の速度と精度を両立した総合性能を更に高めることは困難だった。
【0008】
そこで、本発明では、複数の弱判別器群からなる判別装置において判別の精度を犠牲にすることなく高速に判別が行なえる高速判別装置および高速判別装置を高速化する方法、並びに高速判別装置プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の高速判別装置は、判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置であって、
前記対象データxの入力を受け付ける対象データ入力受付手段と、所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段とを備えたことを特徴とするものである。
【0010】
また、本発明のプログラムは、判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置のプログラムであって、
コンピュータを、前記対象データxの入力を受け付ける対象データ入力受付手段と、所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段として機能させることを特徴とするものである。
【0011】
「対象データ」とは、画像データ、音のデータ、文字データ、生体データ、自然・物理データなどをいい、画像データには、デジタルスチールカメラなどの撮影装置で撮影した画像や、CTやMRIなどの医療用撮影装置で撮影した画像などが含まれ、生体データには、心拍、脈拍、血圧、呼吸、発汗の波形や周期、振幅などを計測したデータが含まれ、自然・物理データには、天候、気候、地震の波形や周期、振幅などを計測したデータが含まれる。文字データは、文字(数字を含む)からなるデータをいう。
【0012】
「オブジェクト」とは、対象データ中に含まれるものであり、例えば、デジタルスチールカメラなどの撮影装置によって対象データとなる画像に撮影された顔、頭部または人物の手などの人体の外観の一部の部位、あるいは人体の外観ではなく生体内の少なくとも一部の部位を含む領域が含まれる。なお、生体とは、生体内部の血管などのように、生体の内部に存在する特定の組織をいう。対象データが内視鏡システムや顕微鏡などで撮影した画像の場合には、オブジェクトには、生体内部の腫瘍組織、細胞、タンパク質、DNA・RNAなどの高分子、低分子が含まれる。生体の他にも、顕微鏡などで撮影された薬などの化合物やタンパク質などであってもよい。あるいは、貨幣、キャッシュカードなどのカード、車輌、あるいは車両のナンバープレートなど、デジタルスチールカメラなどの撮影装置によって対象データに撮影された画像であってもよい。また、対象データが、複写機などのスキャナ機器によりスキャニングされた画像である場合には、ドキュメントの文字、図面、表、写真などがオブジェクトに含まれる。さらに、オブジェクトは、画像データを統計的分析したときに統計的偏りのある群であればよく、例えば、テクスチャをも含むものである。
さらに、対象データが音のデータの場合には、「オブジェクト」は、例えば、音声、生体の音、生き物の声(動物、鳥、昆虫)、楽器の音、乗り物の音などである。
【0013】
また、前記判別器群が、前記複数の判別器fjとともに、該判別器のそれぞれに対する重みαjとを記憶するものであり、
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)と各判別器の重みαjとを線形結合した総合評価値Fi(x)
【数1】
をi=1からJまで順に得るものであってもよい。
【0014】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件1
【数2】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものが望ましい。
【0015】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件2
【数3】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0016】
また、前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)を線形結合した総合評価値Fi(x)
【数4】
をi=1からJまで順に得るものであってもよい。
【0017】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−1または条件4−1
【数5】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものが望ましい。
【0018】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−1または条件6−1
【数6】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0019】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−2または条件4−2
【数7】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0020】
また、前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−2または条件6−2
【数8】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであってもよい。
【0021】
さらに、前記判別結果は、前記総合評価値Fi(x)の符号に応じて決定されるものであってもよい。
【0022】
また、前記判別器群が、K個のステージに分けられるとともに、各ステージ毎に所定の順番で並べられたJk(k=1〜K)個の判別器からなる判別器群が含まれるものである場合には、前記評価値取得手段が、前記各ステージ毎に1番目から順に前記総合評価値Fi(x)を各ステージのi=1からJkまで順に得るものであり、前記判別結果決定手段が、前記評価値取得手段によって、各ステージのi=Ik(Ik<Jk)番目までの判別器を評価して得られた前記総合評価値FkI(x)が示す前記判別結果が、各ステージに含まれるIk+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記Ik番目までの判別器を評価して得られた総合評価値FkI(x)にIk+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段に各ステージのIk+1番目以降の判別器の評価の打ち切りを指示するとともに、前記Ik番目までの判別器を評価して得られた総合評価値FkIに応じた前記判別結果を各ステージの最終結果として決定するものが望ましい。
【0023】
本発明の前記高速判別装置を高速化するための方法は、N個のサンプルデータを記憶するサンプルデータ記憶ステップと、前記所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Iを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を取得する評価済判別器数取得ステップと、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索する探索ステップと、を備えたことを特徴とするものである。
【0024】
本発明の他の前記高速判別装置を高速化するための方法は、N個のサンプルデータを記憶するサンプルデータ記憶ステップと、前記各ステージ毎に所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に各ステージにおいて前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Ikを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を各ステージ毎に取得する評価済判別器数取得ステップと、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記各ステージの判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記各ステージの判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記各ステージの判別器群の並び順を探索する探索ステップと、を備えたことを特徴とするものである。
【0025】
また、前記高速判別装置を高速化するための方法において、前記判別器交換ステップが、前記所定の順番に並べられた複数の判別器からなる判別器群のうちの任意の2つの判別器を交換するようにし、前記探索ステップで、前記判別器交換ステップにおいて前記交換した2つの判別器の全ての組み合わせについて、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索することを特徴とするものが望ましい。
【0026】
「代表値」とは、具体的には平均値、最頻値、中央値などをいう。
【0027】
また、前記サンプルデータには、ラベル無学習データを含むものが好ましい。
【0028】
さらに、前記判別器群は、所定の分布P1に従う学習データを用いて学習を行うことにより選択されたものであり、前記サンプルデータには、前記分布P1とは異なる分布P2の学習データを含むものが好ましい。
【0029】
さらにまた、前記分布P2が前記対象データの分布に近い分布を表すものが望ましい。
【発明の効果】
【0030】
本発明の高速判別装置によれば、所定の順番に並べられた判別器群から最終結果を得る際に、1番目の判別器から順に各判別器の評価を行い、I番目までの判別器を評価して得られた総合評価値が示す判別結果が、I+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、I+1番目以降の判別器の評価を打ち切って、I番目までの判別器を評価して得られた総合評価値に応じた判別結果を最終結果として決定しているので、判別器の精度を犠牲にすることなく高速に判別を行なうことが可能になる。
【0031】
また、I番目までの判別器を評価して得られた総合評価値に上記の条件2,5−1,6−1,5−2,6−2のように、ある程度の許容誤差があってもI+1番目以降の判別器の評価を打ち切るようにすることで、多少判別精度を犠牲にすることでより高速に判別することが可能になる。
【0032】
また、判別器を複数のステージに分けたカスケード構造の高速判別装置においても、各ステージkにおいて、Ik番目までの判別器を評価して得られた総合評価値が示す判別結果が、Ik+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、Ik+1番目以降の判別器の評価を打ち切って、Ik番目までの判別器を評価して得られた総合評価値に応じた判別結果を各ステージの最終結果として決定するようにすれば、各ステージを高速化することができ、さらにカスケード構造による高速化を図ることが可能になる。
【0033】
さらに、本発明の高速判別装置を高速化するための方法によれば、所定の順番に並べられた判別器群の並び替えを行いながら、N個のサンプルデータに対して、判別器の評価が打ち切られるまでに評価された判別器の数の平均値、最頻値、中央値などの代表値を求めて、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしているので、本発明の高速判別装置をさらに高速化することが可能になる。
【0034】
また、カスケード構造の高速判別装置を高速化するための方法によれば、各ステージ毎に、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしているので、カスケード構造により早いステージで次の段階に進む画像であるか否かを判別した上で、さらに、各ステージの判別を高速化することができるので、本発明の高速判別装置をさらに高速化することが可能になる。
【0035】
また、最適な判別器群の並び順を探索するには、全ての判別器群に対して並び替えを行うことで最適解を得られると考えられるが、実際に顔などの判別に用いられる判別器は千個を超える数になるため、全ての判別器群に対して並び替えを行うと計算量が膨大になる。そこで、本発明のように判別器群の中の任意の2つの判別器を交換するようにすれば計算量を減らすことができるとともに、全ての判別器群に対して並び替えを行なった場合に近い準最適解を得ることが可能になる。
【0036】
さらに、最適な判別器群の並び順を探索する際のサンプルデータにラベル無学習データを含めることにより、サンプルデータのサイズを大きくすることが可能になり、多様なデータに対応した高速化が図れる。
【0037】
さらに、ブースティングなどの学習によって判別器を選択する際に用いられる学習データと、この学習データとは異なる分布に従うサンプルデータを用いて判別器群の並び順を探索することにより、ブースティング学習などに用いられるラベル付き学習データとサンプルデータの分布の違いを考慮した並び順に弱判別器を並び替えて高速判別装置の高速化をさらに図ることが可能になる。
【0038】
さらにまた、サンプルデータを実際の判別対象となる対象データに近い分布にすれば、対象データの分布を考慮した高速化を行なうことができる。
【図面の簡単な説明】
【0039】
【図1】第1の実施形態に係る高速判別装置の構成を示したブロック図
【図2】第1の実施形態に係る高速判別装置の処理の流れを示すフローチャート
【図3】第2の実施形態に係る高速判別装置の構成を示したブロック図
【図4】第2の実施形態に係る高速判別装置の処理の流れを示すフローチャート
【図5】サンプルデータの特徴量の確率密度関数および真の条件付き分布の一例を示す図
【図6】アダブーストによって選ばれた弱判別器とその係数の関係を表す図
【図7】第3の実施の形態の順序構造学習の処理の流れを示すフローチャート
【図8】全解探索により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図9】2つの弱判別器の交換により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図10】弱判別器の数を増やしたときの2つの弱判別器の交換により順序構造学習を行なったときに評価された弱判別器の数の平均Γを示すグラフ
【図11】第4の実施形態に係る複数のステージからなる高速判別装置の構成を示したブロック図
【図12】第5の実施の形態の順序構造学習の処理の流れを示すフローチャート
【図13】ブースティング順の各ステージの平均評価回数と、SL(2)による順序構造学習後の各ステージの平均評価回数を示すグラフ
【図14】ブースティング順と、SL(2)による順序構造学習後の各ステージで評価される弱判別器の割合を示すグラフ
【図15】最初のステージに入力された探索窓の各ステージにおける棄却率を示すグラフ
【図16】統合した正面顔検出器の平均評価回数を示すグラフ
【図17】実験5の順序構造学習を行なったときに性能評価を示すグラフ
【図18】実験6の順序構造学習を行なったときに性能評価を示すグラフ
【図19】実験7の順序構造学習を行なったときに性能評価を示すグラフ
【図20】Haar-Likeフィルタを示す図
【発明を実施するための形態】
【0040】
以下、図面により、本発明の実施形態を詳細に説明する。本発明の高速判別装置は、デジタルカメラまたはデジタルビデオに搭載されるファームウェアに組み込まれた高速判別プログラムが実行されることにより、あるいは、高速判別プログラムがパソコンなどのコンピュータにロードされて実行されることにより実現する。また、高速判別プログラムはCD−ROMなどの記憶媒体に記憶されて配布され、CD−ROMなどの記憶媒体からコンピュータにインストールされる。あるいは、インターネットなどのネットワークを介してプログラムが配布されて、コンピュータにインストールされる。あるいは、デジタルカメラまたはデジタルビデオの製造時にファームウェアに組み込まれる。
【0041】
まず、図1および図2を用いて、本発明の第1の実施形態に係る高速判別装置を説明する。図1は、本発明の第1の実施形態に係る高速判別装置1の構成を示したブロック図である。図2は、高速判別装置1の処理の流れを示すフローチャートである。
【0042】
図1に示すように、高速判別装置1は、対象データxの入力を受け付ける対象データ入力受付手段11と、J個の判別器fjからなる判別器群を記憶する判別器記憶手段12と、複数の判別器から総合評価値を得る評価値取得手段13と、総合評価値から最終結果を決定する判別結果決定手段14と、を備えている。本実施の形態では、ブースティングのアルゴリズムを用いて対象データの判別を行う場合について説明する。
【0043】
判別器記憶手段12は、ブースティングのアルゴリズムによって選別されたJ個の判別器fj(判別器群)が所定の並び順で記憶されている。例えば、対象データが画像であり(以下、対象データを対象画像データとする)、対象画像データに顔が存在するかどうかを判別する場合には、判別器fjとして、多数あるHaar-Likeフィルタの中から選択することができる(図20、および、Pual.Viola,Michael J.Jones.Robust Real-Time Face Detection, International Journal ofComputer Vision,Vol.57,pp.137-154, 2004.などを参照)。以下、オブジェクトとして顔を検出する場合を例に説明する。
【0044】
このJ個の判別器fjの少なくとも1つには、誤判別率が1/2 よりも小さい弱判別器を含むものとする(以下、判別器を弱判別器とし、判別器群を弱判別器を含む弱判別器群として説明する)。ブースティングのアルゴリズムは、J個の判別器fjを線形結合することで強力な判別装置を構築するアルゴリズムであり、各弱判別fjに対する重み(線形結合係数)αjが決定されて弱判別器群と一緒に判別器記憶手段12に記憶される。
【0045】
ここで、J個の弱判別器fjで構成する強力な判別装置を用いた判別方法について説明する。1番目〜J番目までの各弱判別器fjを用いて対象画像データxを評価したときの評価値はfj(x)とあらわす。このとき、J 個の弱判別器fjの線形結合で構築されている判別関数Fは、
【数9】
と定義することができる。
【0046】
最終的な判別装置gは、
【数10】
とする。signは符号を表し、符号に応じて判別装置gの最終的な判定結果が決定される(gが正であれば顔が含まれる。gが負であれば顔が含まれない。)。
【0047】
弱判別器による線形結合の方法はブースティングのアルゴリズムによって異なるが、ここでは、Adaboost によって学習された判別関数Fを例に以下説明する。
【0048】
実際にデジタルカメラなどで撮影された撮影画像(対象画像)データ中に顔が存在するかどうかを判別するために用いられる弱判別器の数Jは、千個を超える数になる。実際には一枚の対象画像データから顔を検出する時間を30msec以下で終えるのが望ましく、常に全ての弱判別器で評価するのは実用的ではない。Adaboostでは重みαjは判別誤差が小さくなるように決められる。そこで、J個の弱判別器をBoostingが求めた順または重みの大きい順などに並べておく。並べられた順に弱判別器を評価して途中で判別を打ち切り、少ない弱判別器を用いて高速に判別を行なうことが考えられるが、打切ると判別精度が落ちて問題になる。
【0049】
判別精度を維持するためには、評価関数Fを計算する際に1番目からI(<J) 番目までの弱判別器を評価したときに、評価していないI+1番目以降の弱判別器を評価してもsign(F(x)) の符号が変わらなければ、I+1番目以降の弱判別器は評価を打ち切っても精度を犠牲にすることがない。以下に、この打ち切り法について詳細に説明する。
【0050】
まず、対象画像データ入力受付手段11で判別対象の対象画像データxの入力を受け付ける(#1)。対象画像データxは、デジタルスチールカメラで撮影した画像データ、デジタルビデオで撮影した1フレームの画像データ、スキャナで読み込んだデジタルデータなどである。
【0051】
評価値取得手段13は、1番目の弱判別器fjから順に対象画像データxを評価した評価値fj(x)を求める(#2、#3、#7、#8)。1番目からi番目までの弱判別器を用いて対象画像データxを評価したときの総合評価値Fi(x)は、1番目からi(>1)番目までの弱判別器の評価値fj(x)(j=1〜i)と重みαjを線形結合して求められる。総合評価値Fi(x)はi=1からJまで順に算出する(#4)。
【数11】
【0052】
次に、判別結果決定手段14は、i+1番目以降の弱判別器の重みの合計miを求める(#5)。
【数12】
【0053】
また、未評価のi番目以降の弱判別器による評価値の総合評価値F’iは下の式から求められる。
【数13】
【0054】
全ての弱判別器を評価したときの総合評価値はFi+F’iであるが各弱判別器fjは−1または1の値を取るので、F’iは−miから+miの値(数式(4)参照)を取る。したがって、
【数14】
を満足するI番目までの弱判別器で評価を打ち切っても、I+1番目以降の弱判別器を評価しなくともsign(FI)の符号は、全ての弱判別器を評価したときのsign(F=FI+F’I)と必ず一致する。
【0055】
そこで、判別結果決定手段14は、I番目の弱判別器までの総合評価値FI(x)が条件1を満足する場合には(#6-Yes)、評価値取得手段13にI+1番目以降の弱判別器の評価の打ち切りを指示する。また、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号から最終結果を決定する(#9、#10)。
【0056】
条件1を満足するまで、上記の判定を繰り返し(#3〜#8)、打ち切りが行われなかった場合は、J個の全ての弱判別器から得られた総合評価値FJの符号sign(FJ)から最終結果を決定する(#11)。
【0057】
上述では、判別結果決定手段14でmiを算出する場合について説明したが、miの値は対象画像データxに依らないため、判別を行う前に計算可能な値である。事前にmiが取りうる全ての値のルックアップテーブルを記憶しておくことにより、I 番目の弱判別器を評価した時点で判別を打ち切ることができる。このように途中で判別を打ち切ることからJ−I 個の弱判別器を評価しない分高速に判別できる。
【0058】
次に、弱判別器の打ち切り法の具体例を挙げる。
判別関数: F(x)=3 f1(x)+1.5 f2(x)+f3(x)+0.5 f4(x)+0.3f5(x)が与えられたとする。
(1) まず、一項目f1(x)=1と評価されたとする。するとF1 (x)=3かつm1=3.3である。この段階では残りの全ての弱判別器が−1 をとると符号が逆転するので打ちきれない。
(2) 二項目f2(x)=−1と評価されたとする。するとF2(x)=1.5かつm2=1.8である。この段階でも残りの全ての弱判別器が−1をとると符号が逆転するので打ちきれない。
(3) 三項目f3(x)=1と評価されたとする。すなわちF3(x)=2.5かつm3 =0.8である。このとき数式(6)の条件1が満たされ、残りの弱判別器f4, f5 がいかなる値をとっても符号は逆転できずsign(F(x))=sign(F3(x))=1 である。
よってγ(x, F)=3で打ち切ることができる。
【0059】
上記の条件1を満足するときに、弱判別器の評価を打ち切るようにすれば判別精度を犠牲にすることはないが、さらに高速に判別を行ないたい場合には、判別結果決定手段14は、上記の条件1を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14は、総合評価値FIが下記の条件2、
【数15】
を満足する場合には、評価値取得手段13にI+1番目以降の弱判別器の評価の打ち切りを指示するようにし、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0060】
次に、第2の実施の形態について、図3および図4を用いて説明する。第2の実施の形態では拡張した弱判別器を用いた場合について説明する。図3は、本実施の形態に係る高速判別装置1の構成を示すブロック図である。また、図4に本実施の形態の高速判別装置1の処理の流れを示すフローチャートを示す。
【0061】
図3に示すように、高速判別装置1aは、対象データ入力受付手段11と、判別器記憶手段12aと、評価値取得手段13aと、判別結果決定手段14aと、を備えている。本実施の形態の高速判別装置1aは、第1の実施の形態と略同じ構成を備えるので、詳細な説明は省略して相違する点について説明する。
【0062】
本実施の形態では、判別器記憶手段12aに記憶されている弱判別器fjは、−1、1の2値ではなく適当な二値の実数αj、βjをとる場合について説明する(本実施の形態のαjは第1の実施の形態の重みαjとは異なることに注意)。
【0063】
このとき、判別関数Fは適当な閾値Tを用いて、
【数16】
と定義することができる。
【0064】
最終的な判別装置gは、
【数17】
とする。signは符号を表し、第1の実施の形態と同様に、gの符号に応じて最終的な判別結果が決定される。
【0065】
本実施の形態でも、J個の弱判別器はBoostingが求めた(判別誤差が小さい)順または重みの大きい順などに並べておく。まず、第1の実施の形態と同様に対象画像データ入力受付手段11で判別対象の対象画像データxの入力を受け付ける(#1)。
【0066】
次に、評価値取得手段13aは、第1の実施の形態と同様に、1番目の弱判別器fjから順に対象画像データxを評価した評価値fj(x)を求め(#2、#3、#7、#8)、さらに、1番目からi番目までの弱判別器を用いて対象画像データxを評価したときの総合評価値Fi(x)を求める。総合評価値Fi(x)はi=1からJまで順に算出する(#12)。
【数18】
【0067】
次に、判別結果決定手段14aは、i+1番目以降の弱判別器が取り得る値の範囲を求める(#13)。
【数19】
【0068】
そこで、I番目までの弱判別器を評価して得られた前記総合評価値FI(x)が、下記の条件3−1または条件4−1、
【数20】
のいずれかを満足すれば、I番目までの弱判別器で評価を打ち切っても、I+1番目以降の弱判別器を評価しなくともsign(FI)の符号は、全ての弱判別器を評価したときのsign(F)と必ず一致する。つまり、条件3−1 が成り立てばsign(F(x))=1が保証される.同様に条件4−1 が成り立てばばsign(F(x))=-1 が保証される。
【0069】
そこで、判別結果決定手段14aは、I番目の弱判別器までの総合評価値FI(x)が条件3−1または4−1を満足する場合には(#14-Yes)、評価値取得手段13a にI+1番目以降の弱判別器の評価の打ち切りを指示する。また、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する(#10)。
【0070】
条件1を満足するまで、上記の判定を繰り返し(#3、#12、#13、#14、#7、#8)、打ち切りが行われなかった場合は、J個の全ての弱判別器から得られた総合評価値FJの符号sign(FJ)から最終結果を決定する(#11)。また、事前に各IについてmI+,mI―を計算してルックアップテーブルとして保存しておけば、I 番目の弱判別器を評価した時点で判別を打ち切ることができる。
【0071】
次に、拡張した弱判別器を用いた場合の打ち切り法の具体例を挙げる。
まず、弱判別器の個数J=5とし、弱判別器の取りうる値を下の表1に示す。
【表1】
【0072】
閾値T=0であるときに、対象画像データxが与えられたときのF(x)の符号を評価してみる。
(1) 一項目f1(x)=2.0と評価されたとする。するとF1(x)=2.0,m−1=6.3となる。このときsign(F1(x))×F1(x)=2.0 はm−1 より小さいためF(x)の符号が負である可能性が残る.従って評価を打ち切ることはできない。
(2) 二項目f2(x)=1.5評価されたとする。するとF2(x)=3.5,m−2=3.8となる。このときsign(F2(x))×F2(x)=3.5はm−2 より小さいため,F(x) の符号が負である可能性が残る。従って評価を打ち切ることはできない。
(3) 三項目f3(x)=1.7と評価されたとする。するとF3(x)=5.4,m−3=3.6となる。このときsign(F3(x))×F3(x)=5.4>m−3であるため残りの弱判別器がどんな値を取っても総合評価値の値が負になることはない。従って残りの弱判別器を評価することなく判別を打ち切ることができる。
【0073】
上記の条件3−1または条件4−1を満足するときに、弱判別器の評価を打ち切るようにすれば判別精度を犠牲にすることはないが、さらに高速に判別を行ないたい場合には、判別結果決定手段14aは、上記の条件3−1または条件4−1を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14aは、前記総合評価値FIが条件5−1または条件6−1、
【数21】
のいずれかを満足すれば、評価値取得手段13aにI+1番目以降の弱判別器の評価の打ち切りを指示する。判別結果決定手段14aは、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0074】
上述の第2の実施の形態では、判別結果決定手段14aが条件3−1または条件4−1が成り立つ場合にI番目までの弱判別器で評価を打ち切っていたが、下記の条件3−2または条件4−2が成り立つ場合にI番目までの弱判別器で評価を打ち切るようにしてもよい。
【数22】
【0075】
上記の条件3−2または条件4−2を満足するときに、さらに高速に判別を行ないたい場合には、判別結果決定手段14aは、上記の条件3−2または条件4−2を満足する少し手前の弱判別器で評価を打ち切るようにしてもよい。この場合、判別結果決定手段14aは、前記総合評価値FIが条件5−2または条件6−2、
【数23】
のいずれかを満足すれば、評価値取得手段13aにI+1番目以降の弱判別器の評価の打ち切りを指示する。判別結果決定手段14aは、I番目までの弱判別器を評価して得られた総合評価値FIのsign(FI)の符号を最終結果として決定する。係数bは、多数のサンプルデータを実際に評価して、正答率が少なくとも1/2以上になるように決められる。好ましくは、正答率が要求を満足する%となるように係数bを決定する。
【0076】
第3の実施の形態では、高速判別装置を高速化するための方法について説明する。
【0077】
従来、ブースティングによって選択された弱判別器群の順序は、全ての弱判別器を用いることを前提に設計されているので、全体ではなく一部の弱判別器で判別しつつも精度を犠牲にしないようにする場合には、どうしても高速化に限界があった。そこで、さらに判別を高速に行うために弱判別器の最適な並び順について検討する。このような高速判別のための最適な弱判別器の並び順を求めることを順序構造学習ということにする。
【0078】
まず、サンプルデータ記憶ステップでN個のサンプルデータを用意する。ここで、各サンプルデータをxs(s=1〜N)で表す。
【0079】
上述の高速判別装置ではJ個の弱判別器群f1,f2,・・・,fj,・・・,fJ−1,fJが重み順に並べられていたが、弱判別器群の中の2以上の弱判別器を置換した弱判別器群を多数作成して、いずれの並び順が最適であるかについて検討する。ある特定の置換によって得られた弱判別器群の並びをkを用いて表すものとし、置換後の弱判別器の添え字をk(i)で表し、弱判別器はfk(j)と表す。また、kの並びの弱判別器群を用いたときの判別関数をFk とする。kの並びを用いると与えられたFk は下式 のように書ける(本実施の形態では、第1の実施の形態と同様に弱判別器fjが1または−1の値をとり、判別関数Fが重みαjを用いて線形結合される場合を例に説明する。)。
【数24】
【0080】
また、このときの打ち切り条件は下式のように書ける。
【数25】
【0081】
各並びkの弱判別器群で構成される高速判別装置1を用いてサンプルデータxs を評価した際に、高速判別装置1の判別結果決定手段14で弱判別器の打ち切りが指示されるまでに評価値取得手段13で評価された弱判別器の数Iをγとおく。
【数26】
【0082】
N個のサンプルデータxs(s=1,2,・・・,N)のそれぞれについて、並び^kの高速判別装置を用いてγを取得し、N個のサンプルデータのγの平均値Γ(F,k)を取得する。
【数27】
この評価された弱判別器の数の平均Γ(F,k)が最小となる並び^kを求める。
【0083】
ところで上述の打ち切り法の性質を考えると、一見各弱判別器の係数の絶対値について降順で並べた順序が最適な並びになりそうに見える。なぜなら係数の絶対値が小さい弱判別器が後半に集まるため、評価値取得手段13で評価した弱判別器の数が少なくても、mI は小さいので、早期に打ちきれる可能性が高まるからである。このことからわざわざ順序構造学習を行わなくても例えば以下の二つの並び順
ブースティング順^kb :ブースティングの学習時に選択された順序
係数絶対値順^kd :各弱判別器の係数(重みα)の絶対値が降順で並ぶ順序
はそもそも最適になっているのではないかと考えられる。
【0084】
しかし、実際以下のような反例を作ることができる。まず、ここで、サンプルデータの特徴量をx(本実施の形態では、xは特徴量を表すものとして説明する)とし、その判別結果をy(真:y=1 偽:y=−1)で表すものとする。特徴量xの周辺分布p(x)を、
【数28】
とする。結果として各区間R1:=[0, 1/3], R2:=[1/3, 2/3], R3:=[2/3, 1] に該当する特徴量xが発生する確率は、
【数29】
となる。また真の条件付き分布p(y|x) (y=1)を、
【数30】
と定める。図5にp(x)とp(1|x) を図示する。
【0085】
今、同時分布p(x,y)=p(x)p(y|x)からn個のサンプルデータがD:={(xi, yi) | i=1,2,・ ・ ・,n} で与えられたとする。
【0086】
図5の左図はxの確率密度関数p(x)を、右図はp(1|x)を表す。図の点線はp(1|x)=1/2 を示している。
【0087】
図6の左図はアダブーストによって得られた判別関数を表し、右表はN個のサンプルデータで実際にアダブーストを行ったとき、各ステップでアダブーストによって得られた弱判別器とその係数(重み)を表している。
【0088】
ここで、3個の弱判別器f1、f2、f3
【数31】
を用いてアダブーストにより学習したとする。このときサンプルデータ数及びステップ数が十分に大きければアダブーストの判別関数は
【数32】
になることがよく知られている(文献2:J. H. Friedman, T. Hastie, and R. Tibshirani. Additive logistic regression: A statisticalview of boosting. The Annals of Statistics, 28:337-407, 2000.参照)。ただし、同じ弱判別器についての係数はまとめてある。実際、例えばn= 1000 でアダブーストの逐次学習を100 回行うと0.35 *f1(x) + 0.15 *f2(x) + 0.38f3(x) となった。以下では簡単のために上記のF(x) をアダブーストによって得られた判別関数として進める。図6の右表からアダブーストによって選ばれた弱判別器の順序はf1, f3, f2 である。一方係数絶対値順はf3, f1, f2であることがわかる。今、f1, f2, f3 の全ての並び順についてΓ(F) を計算すると表2のようになる。この表からブースティング順も係数絶対値順も最適な並びではないことがわかる。
【0089】
下記の表2は 全ての順序kについてのΓ(F) の値を示す。表2では、順序「123」は弱判別器をF(x)=α1f1(x)+α2f2(x)+α3f3(x)と並べることを意味する。また6列目のΓ(F)は2,3,4 列目を一つの6×3行列Aとみなし、5列目を3次元縦ベクトルbとみなしたとき,Abと計算できることに注意。
【表2】
【0090】
このような現象が起きる理由には以下の三つの事実が深く関連している。
(1) 最小のγ(x,F) を達成する順序は場所xによって異なる。
(2) 最適な判別関数F(x)はp(y|x)のみから決まる。その一方最適順序構造はp(x)にも依存する。
(3) ブースティング順は最終的な形F(x)に最も早く近づけるように弱判別器を選択する。
【0091】
まず(1)が正しいことは上記の例でも確認できる。区間R2では係数絶対値順f3, f1, f2 では全ての弱判別器を評価しなければならないが、順序f1, f2, f3では二回で打ちきれる。すなわち全ての場所で係数絶対値順^kdが必ずしもγ(x, F)を最小にするわけではない。
【0092】
係数絶対値順^kdが最適でないことは(1)と(2)からわかる。数式(22)よりアダブーストの判別関数はp(y|x) のみから決まることがわかる。また順序構造学習は定義よりp(x) に依存することもわかる。従って(2) が成り立つ。今、(2) を認めるとp(x)を変化させても^kdは不変である。しかしデータが区間R2に発生する確率が大きくなるほど、^kdはその区間でのΓ(F) が悪化する。実際上記の例ではR2の発生確率が一番高くなっているため、この区間で最短で打ちきれる^kの方が、^kdよりΓ(F) を小さくできる。実際、上記のp(x) はそれを満たすように作られている。ブースティング順^kbが最適でないことは(1)と(3)からわかる。事実(3)は文献2などにより早くから知られている。ブースティング順は図6のステップ1でf1を選んでいる。このあとf2を選べば上記の理由で最適な順序となる。しかし全体的にF(x) の形により近づくためにはf3を選ぶ方が有利なためブースティングはf3を選んでいる。すなわちブースティングの目的は早くF(x) に近づくことであり、打ち切り法を最短にすることとは無関係である。そのため一般には最適な順序と異なる。上記の例はその具体例となっている。
【0093】
そこで、弱判別器群を並び替えた全ての弱判別器群の並び順に対して評価される弱判別器の数の平均値(以下、平均評価回数という)Γを求めることで、最適な並び^kを求める。この全ての並び順に対して探索を行って最適な並び^kを求めるのがよいが、J個の弱判別器全ての並び順はJ!通り存在する。弱判別器の総数は千個以上に及ぶため、実際に探索を行なうのは不可能である。
【0094】
そこで、効率よく弱判別器群の並び^kを求める手法について検討する。
【0095】
所定の並びで弱判別器が並んでいるときに、弱判別器群から適当な個数の弱判別器に限定してその中で順を交換したとき、Γが交換前より小さくなった場合には弱判別器を交換する。この操作をΓが小さくならなくなるまで繰り返すことによって弱判別器群の並び順の準最適解が得られると考えられる。
【0096】
ここでは、弱判別器群から2個の弱判別器の順番を交換する場合について、図7のフローチャートに従って説明する。
【0097】
まず、サンプルデータ記憶ステップでN個のサンプルデータを用意してハードディスクなどの記憶装置に記憶する(#20)。
【0098】
次に、ブースティングで選ばれた弱判別器fjの係数絶対値順^kbを^kの初期値とする。また、このときのΓ(F,^k)をΓminの初期値とする(#21)。
【0099】
弱判別器交換ステップでは、所定の順番に並べられた複数の弱判別器からなる弱判別器群のうちの任意の2つの弱判別器を交換する。ここでs番目とt番目の弱判別器の交換という操作をσ2(s,t)とし、
σ2(s,t) = {1,2,・・・,s,・・・,t,・・・,J}-> {1,2,・・・,t,・・・,s,・・・,J}
と定義する。並び^kの弱判別器群から選択したs番目とt番目の2つの弱判別器を交換して新しい並びσ2(s,t)^kの弱判別器群を生成する(#22)。
【0100】
次に、評価済弱判別器数取得ステップで、N個のサンプルデータのそれぞれを対象画像データ入力受付手段11より対象画像データxとして受け付けて、交換後の並びσ2(s,t)^kにおけるΓ(F,σ2(s,t)^k)を求める(#23)。
【0101】
並び替えステップでは、交換後のΓ(F,σ2(s,t)^k)が交換前のΓminより小さい場合には(#24−YES)、弱判別器群の並び順を交換後の並び順σ2(s,t)^kに並び替えて弱判別器群を記憶する。さらに、Γ(F,σ2(s,t)^k)をΓminとする(#25)。一方、交換後のΓ(F,σ2(s,t)^k)が交換前のΓminより大きい場合には、弱判別器群の並び順はそのままにする(#24−NO)。
【0102】
探索ステップでは、次に交換するs’番目とt’番目の弱判別器を選択してs’をsとしt’をtとして(#27)、以上の弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して(#22〜#27)、評価された弱判別器の数の平均が最小となる弱判別器群の並び順を探索する。弱判別器交換ステップで行なわれる1〜Jの弱判別器の中の2つを交換する全ての組み合わせはJC2となる。したがって、JC2 回の交換が終わるまで(#26−YES)、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返す(#26−NO)。
【0103】
上述では、弱判別器群のうちの2つの弱判別器を交換して行くことで、弱判別器群の準最適な並びを求めているが、弱判別器群のうちの3つ弱判別器を交換していくことで準最適な並びを求めることもできる。
【0104】
弱判別器交換ステップで弱判別器群の中の三つの弱判別器を選び、その三つの弱判別器について下の表3の5パターンの並び順の交換σ3 を行い、評価済弱判別器数取得ステップで平均評価回数Γを計算する。並び替えステップでは、5つの結果の中で、交換する前より平均評価回数Γが改善した中で、平均評価回数Γが最小となる並び順の交換を採用し、弱判別器群の並び順を更新する。探索ステップでは、以上の弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して、評価された弱判別器の数の平均が最小となる弱判別器群の並び順を探索する。弱判別器の中の3つを交換する組み合わせによる弱判別器群の並び替えの交換回数はJC3*5になる。したがって、JC3*5 回の交換が終わるまで、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップを繰り返して準最適な並び順を探索する。
【表3】
【0105】
弱判別器群のうちの2つの弱判別器を交換して行く場合に比べて、弱判別器群のうちの3つの弱判別器を交換して行く場合のほうがより最適解に近い結果が得られると予測できる。しかし、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および、並び替えステップの繰り返しは確実に増えることになり、弱判別器群のうちの2つの弱判別器を交換して行く場合より準最適解を得るための計算量は大きくなる。
【0106】
以下、実験結果に基づいて順序構造学習の効果について説明する。
【0107】
実験1では、弱判別器群の全ての並び替え(全解探索)による順序構造学習(以下、SL(1)による学習という)と、弱判別器群の中の2個の弱判別器の順番を交換する順序構造学習(以下、SL(2)による学習という)の効果について、実験した結果を説明する。
【0108】
計算量の観点から5〜10個の弱判別器をSL(1)による順序構造学習とSL(2) による順序構造学習を行なった高速判別装置1による平均評価回数Γを下の表4に示す。また、図8にSL(1)により順序構造学習を行なったときの平均評価回数Γと、ブースティング順^kbや係数絶対値順^kd(弱判別器の重みの順)のときの平均評価回数Γを示す。また、図9にSL(2)により順序構造学習を行なったときの平均評価回数Γと、ブースティング順^kbや係数絶対値順^kdのときの平均評価回数Γを示す。図8および図9にSL(1) やSL(2)により順序構造学習を行なったときの平均評価回数Γの方がブースティング順^kbや係数絶対値順^kd(弱判別器の重みの順)のときの平均評価回数Γより小さく、高速評価できることがわかる。また、表4をみるとJが小さい範囲ではSL(2)は、SL(1)のよい近似となっていることが確認できる。つまり、SL(2)による順序構造学習であってもSL(1)による順序構造学習に近い結果を得ることができるものと考えられる。
【表4】
【0109】
実験2では、弱判別器の数を増やしてSL(2)の学習を行った結果を図10に示す。数が増えるに従って高速化の効果が表れていることがわかる。大体弱判別器の数J=20,・・・,50ぐらいから評価される弱判別器の総数の1割ほど早くなる。この実験より準最適解でも他の並び順よりも一定して高速に判別できることがわかる。
【0110】
実験3では、弱判別器群から2個の弱判別器の順番を交換した順序構造学習と、弱判別器群から3個の弱判別器の順番を交換した順序構造学習(以下、SL(3)による学習という)の効果について、実験した結果を説明する。
【0111】
計算量の観点から20〜30個の弱判別器をSL(2)による順序構造学習とSL(3)による順序構造学習を行なった高速判別装置1による平均評価回数Γを下の表5に示す。
【表5】
二つの結果に大きな差はなく0.01〜0.1(Γ=J)の差でしかない。この実験よりSL(2)による順序構造学習でも十分な高速化を行なうことができると考えられる。
【0112】
以上より、順序構造学習にかかる計算量と、高速判別別装置で判別時間の削減との両方を考慮するとSL(2)による順序構造学習によって弱判別器の並び順を決定するのが最もよいという結論に達する。
【0113】
本実施の形態では、第1の実施の形態で説明したように、弱判別器fjが−1、1の2値を取る場合を例に弱判別器の並び順を決定する手法について説明したが、第2の実施の形態で説明したように、弱判別器fjが適当な二値の実数αj、βjをとる場合には、評価済弱判別器数取得ステップで、^kの並びの弱判別器群を用いたときのΓを求める際に、判別結果決定手段14aが条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るものとして求める。あるいは、並び順を決定する際に、評価済弱判別器数取得ステップで、^kの並びの弱判別器群を用いたときのΓを求める際に、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るものとして求めるようにしてもよい。
【0114】
本発明は、第3の実施の形態で説明したように、弱判別器群の最適な(あるいは準最適な)並び順を決定した後に、この決定された並び順の弱判別器群で構成された第1の実施の形態の高速判別装置、または、この決定された並び順の弱判別器群で構成された第2の実施の形態の高速判別装置で、判別対象の対象画像データに顔が含まれているか否かを判別することで、非常に高速な判別を行なうことを実現することができる。
【0115】
第1の実施の形態のように弱判別器fjが−1,1の二値をとる場合には、上記に詳細に説明した手法を用いて最適な(あるいは準最適な)並び順を決定した後、決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1で判別を行なうことによって最も高速な判別を行なうことが可能になる。
【0116】
一方、第2の実施の形態のように弱判別器fjが適当な二値の実数αj、βjをとる場合には、条件3−1または条件4−1を満足した場合に、弱判別器の評価を打ち切るケースと、条件3−2または条件4−2を満足した場合に、弱判別器の評価を打ち切るケースとがある。そこで、第2の実施の形態のように弱判別器fjが適当な二値の実数αj、βjをとる場合には、以下の4通りの組み合わせが考えられる。
(1)最適な(あるいは準最適な)並び順を決定するには、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るようにする。
(2)最適な(あるいは準最適な)並び順を決定するには、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るようにする。
(3)最適な(あるいは準最適な)並び順を決定するには、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−1または条件4−1を満たすときに弱判別器の評価を打ち切るようにする。
(4)最適な(あるいは準最適な)並び順を決定するには、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るという条件のもとで決定し、この決定された最適な(あるいは準最適な)並び順の弱判別器群で構成された高速判別装置1aでも、条件3−2または条件4−2を満たすときに弱判別器の評価を打ち切るようにする。
【0117】
以上の4通りから、最も高速に判別を行なうことができる高速判別装置を決定することが可能である。上記の各条件において、条件3−1,4−1の方が、条件3−2,4−2より処理がシンプルであるため処理自体は高速であるが、打ち切り回数の性能差が小さいことが実験において確認されている。実験の結果などから、適宜最適な条件の組み合わせを決定するのが良い。
【0118】
第4の実施の形態では、高速判別装置の弱判別器群をカスケード型に構成した場合について説明する。図11は、本実施の形態に係る高速判別装置1bの構成を示すブロック図である。高速判別装置1bは、対象データ入力受付手段11と、判別器記憶手段12bと、評価値取得手段13bと、判別結果決定手段14bと、を備えている。本実施の形態の高速判別装置は、弱判別器群が複数のステージに分けられてカスケード型で構成される以外は、第1および2の実施の形態と略同じ構成を備えるので、詳細な説明は省略して相違する点を主に説明する。
【0119】
判別器記憶手段12bには、J個の弱判別器がK個のステージに分けて記憶され、各ステージにはJk(k=1〜K)個の弱判別器が所定の順番で並べられている。
ここで、k番目のステージの判別関数をFkと定義する。Fk は、
【数33】
と表わされる。
【0120】
各ステージの最終的な判別装置gkは、
【数34】
で表される。
【0121】
次に評価値取得手段13bは、各ステージ毎に総合評価値Fki(x)をi=1からJkまで順に算出する。
【数35】
【0122】
次に判別結果決定手段14bは、各ステージ毎にi+1番目以降の弱判別器が取り得る値の範囲を求める(#13)。
【数36】
【0123】
そこで、Ik番目までの弱判別器を評価して得られた前記総合評価値FIk(x)が、下記の条件7または条件8
【数37】
のいずれかを満足すれば、各ステージではIk番目までの弱判別器で評価を打ち切る。
【0124】
ここでは、弱判別器が適当な二値の実数をとる場合について説明したが、第1の実施の形態と同様に、弱判別器が1、−1の2値を取る場合であっても、同様に各ステージごとに弱判別器で評価の打ち切りを行うようにすることができる。
【0125】
第5の実施の形態では、高速判別装置の複数の弱判別器をカスケード型に構成した場合の最適な弱判別器の並び順を求める順序構造学習について説明する。このカスケード型(カスケード構造)の高速判別装置は、弱判別器がステージと呼ばれるいくつかのグループにまとめられている。実際に検出を行う際には第1ステージから順に評価を行い、顔でないと評価されたステージがあれば、その画像は顔でないと判定し,そのステージで評価を打ち切り、次のステージに進まない。従って、全ステージで顔であると判定されたときに限りその画像を顔であると判定する。ここでは、各ステージを一つのブースティングによって得られた高速判別装置とみなして順序構造学習を行う場合について説明する。
図12は、カスケード型の高速判別装置の順序構造学習の処理の流れを示すフローチャートである。各ステージ毎に並び替えを行なう以外は、第3の実施の形態の順序構造学習の処理の流れと略同様であるので、図12に従って相違する点を主に説明する。
【0126】
まず、各ステージ毎に所定の順番に並べられた弱判別器群に対して上述のSL(1)、SL(2),SL(3)のいずれかの手法で並び替えを行なえばよいが、ここでは、SL(2)で並び替える場合について説明する。
【0127】
まず、N個のサンプルデータを用意して記憶装置に記憶する(#30)。ステージkをステージ1とし、ステージ1から弱判別器群の並び順を探索する(#31)。
【0128】
ブースティングで選ばれた弱判別器fjの係数絶対値順^kbを各ステージの並び^kの初期値とする。また、このときのΓk(F,^k)をΓkminの初期値とする(#32)。
【0129】
次に、弱判別器交換ステップで、現在のステージの弱判別器群のうちのs番目とt番目の2つの弱判別器を交換する(#33)。次に、評価済弱判別器数取得ステップで、N個のサンプルデータのそれぞれを対象画像データ入力受付手段11より対象画像データxとして受け付けて、評価値取得手段13bを実行した後に各ステージにおいて判別結果決定手段14bが弱判別器の評価の打ち切りを指示するまでに評価された弱判別器の数Ikを各サンプルデータごとに取得し、N個のサンプルデータから平均評価回数Γkを取得する(#34)。
【0130】
並び替えステップでは、交換後の平均評価回数Γkが交換前の平均評価回数Γkminより小さい場合には(#35―YES)、現在のステージの弱判別器群の並び順を交換後の並び順に並び替える(#36)。交換後の平均評価回数Γkが交換前の平均評価回数Γkminより大きい場合には、現在のステージの弱判別器群の並び順はそのままにする(#35―NO)。
【0131】
次に交換するs’番目とt’番目の弱判別器を選ぶ(#38)。探索ステップでは、全ての並び替えが終了するまで、再度、弱判別器交換ステップ、評価済弱判別器数取得ステップ、および並び替えステップを繰り返して(#37−NO)、平均評価回数Γkが最小になる現在のステージの弱判別器群の並び順を探索する。全ての並び替えが終了すると次のステージの並び替えに移る(#37−YES)。
【0132】
まず、現在のステージkが最後のステージKではないかを確認して、最後のステージでない場合には(#39―NO)、次のステージk+1に進めて(#40)、再度、次のステージの弱判別器群の並び順を探索する(#33〜#38)。
【0133】
全てのステージで、平均評価回数Γkが最小になる弱判別器群の並び順の探索が終了すると順序構造学習は完了する(#39―YES)。
【0134】
実験4では、カスケード構造の正面顔検出器(高速判別装置)に順序構造学習を行った。表6に各ステージに含まれる弱判別器の数の一覧を示す。
【表6】
【0135】
弱判別器の総数が大きいため、順序構造学習はSL(2)を採用した。図13に、各ステージの弱判別器の数と、ブースティング順^kbの各ステージの平均評価回数Γkと、SL(2)による順序構造学習後の各ステージの平均評価回数Γkを示す。図14に、ブースティング順^kbと、SL(2)による順序構造学習後の各ステージで評価される弱判別器の割合(平均評価回数Γk/弱判別器の数J)を示す。各ステージごとに順序構造学習の効果がみられ、どのステージでも順序構造学習によって得られた並び順の方がブースティング順^kbより、平均評価回数Γkが小さく速く検出することができている。また最後のステージになるにつれて順序構造学習の効果が大きくなり,平均評価回数で最大で1.5割ほど高速化が図れていることが分かる。
【0136】
次に、顔検出時に対象画像データ内に顔検出範囲(以下、探索窓という)を設定して、その探索窓内に顔が存在するか判定しながら、対象画像データ全体を走査することで対象画像データ内の顔を検索する場合の各ステージの棄却率(探索窓内に顔が存在しないと判定されて、その探索窓が棄却される率)について説明する。カスケード型の判別器は、最初のステージから順に評価を行い、顔でないと評価されたステージがあれば、探索窓は棄却される。設定された探索窓が各ステージでどの程度棄却されるかを表す棄却率を図15に示す。図15よりステージ5,6までに設定された探索窓の9割が棄却されている。つまり、前半のステージでは多くの探索窓を棄却し、後半のステージでは精密に顔であるかどうか検査していることを示している。
【0137】
次に、カスケード構造の正面画像検出器と順序構造学習の検出速度の高速化の効果についてみる。表6に示すカスケード構造のステージ0からステージ6までのステージを統合しステージ0とし、ステージ7…24まではそのままにするが、ステージの番号を振りなおしてステージ1…18とする。この各ステージに対して順序構造学習を行い、統合した正面顔検出器の平均評価回数Γkを図16に示す。ステージ0を見ると順序構造学習を行った場合の平均評価回数Γ0は180程度だが、順序構造学習を行わない場合と比べて40程度しか変わっていない。統合する前は9個の弱判別器で構成されたステージ0で40%ほど探索窓を棄却している。従って検出速度の高速化の観点からみると、複数のステージを統合した顔検出器に対して順序構造学習を行う場合より、カスケード構造の方が速いことがわかる。以上より、カスケード構造を採用した上で各ステージに対して順序構造学習を行なった高速判別装置が最も高速に判別を行えるという結論に達する。
【0138】
上述の第3および第5の実施の形態の順序構造学習では、N個のサンプルデータを使って、判別器の評価が打ち切られるまでに評価された判別器の数の平均値を求めて、もっとも早い段階で判別器の評価の打ち切りが行われる判別器群の並び順を探索するようにしたが、平均値ではなく最頻値、中央値などの代表値からもっとも早い段階で判別器の評価の打ち切り行なわれる判別器群の並び順を探索するようにしてもよい。
【0139】
次に、第6の実施の形態では、ブースティング学習時と順序構造学習時に用いる学習データ、および性能評価に用いる評価用データについて説明する。本実施の形態の高速判別装置は、第1、第2および第4の実施の形態で説明した高速判別装置のいずれかを用いる。また、順序構造学習は第3および第5の実施の形態で説明した高速判別装置を高速化する方法を用いるものとする。高速判別装置は前述の実施の形態と同じ構成を備え、高速判別装置を高速化する方法でも前述と同じ順番で各ステップが実施されるので、本実施の形態では学習データと評価用データについて詳細に説明する。
【0140】
一般的に、学習データセットとして、ラベル付き学習データとラベル無し学習データが用いられることはよく知られている。例えば、顔検出に用いる学習用データの場合、特徴量xは機械で自動で大量収集可能であるのに対して、各学習データのラベルy(顔有り:1、顔無し:−1)は人手でつけなければならない。そのためラベル付き学習データセットDLのサイズを大きくするにはコストがかかると考えられる。一方で特徴量xだけの学習データ(ラベル無し学習データ)は大量に手に入れやすい。
【0141】
ところで、デジタルカメラで顔検出を実際に行う場合の対象画像データに近い評価データDTと、学習に用いられるラベル付き学習データセットDLでは、特徴量の分布が異なると考えられる。通常、顔検出のための学習を行う場合には顔画像を多く含む学習データを準備するのが自然であろうが、実際のデジタルカメラで撮影した対象画像データにはそこまで多く常に顔が写っているとは限らないからである。
【0142】
そこで、学習データの3つのタイプについて説明する。
(a)教師付き学習用データセット
ラベル付き学習データDLのみが与えられる。従来から広く用いられてきた設定である。本発明のブースティング学習時に用いられ、弱判別器の選択が行われる。しかし上述したようにデータサイズを大きくするためにはラベルづけのコストがかかる。
(b)半教師付き学習データセット
ラベル付き学習データDLとラベル無し学習データDUが与えられる。ただし、DUとDLが同じ分布に従っている。
(c)共変量シフト学習データセット
ラベル付き学習データDLとラベル無し学習データDUが与えられる。ただし、DUとDLが異なる分布に従っている。
【0143】
順序構造学習にはデータの数を増やすため、ラベル付き学習データDLとラベル無し学習データDUが含まれる半教師付き学習データセット、あるいは共変量シフト学習データセットを使う方法が考えられる。
【0144】
ここで、従来の判別装置と上述の各実施の形態で説明した高速判別装置の判別速度について検討する。まず、判別装置を下の4通りに分ける。
(i) viola and jonesらが提案した従来の判別装置(例えば、文献3:Pual.Viola,Michael J.Jones.Rapid Object Detection using a Boosted Cascade of Simple Feature, IEEE Conf. on Computer Vision and Pattern Recognition, 2001.V参照)
(ii) 係数絶対値順に弱判別器を並べて、弱判別器の数γ(第1、第2および第4の実施の形態のI、Ik)で打ち切る高速判別装置(第1、第2および第4の実施の形態の高速判別装置)
(iii) ブースティング順に弱判別器を並べて、弱判別器の数γで打ち切る高速判別装置(第1、第2、および第4の実施の形態の高速判別装置)
(iv)さらに、弱判別器の並び順に対して順序構造学習を行なって、弱判別器の数γで打ち切る高速判別装置(第3および第5の実施の形態の方法によって高速化された高速判別装置)
(i)の従来の判別装置に対しては、(ii)、(iii) 、(iv)の高速判別装置はどんな場合でも必ず同じかそれ以上の判別速度を出すことができる。また、(iv)が一番高速であると考えられるが、順序構造学習をしなくても(ii)、(iii)でも一定程度の高速化が実現可能である。ただし、これは学習データと評価データの分布が同じ場合が前提となる。
【0145】
顔検出において学習データと評価データが異なる分布に従うことは不可避である(例えば、文献3参照)。(i)の従来の判別装置においても、顔ではなさそうなものを判断する処理が少ない弱判別器を初段側のステージに用意して初期に顔でないデータは棄却するように構成にしたカスケード構造の判別装置では、学習データと評価データの分布が違うことを想定してカスケード構造を決定している。これは、経験則によるヒューリスティックなものである。
【0146】
(ii)、(iii)の係数絶対値順は、弱判別器が十分多様であれば、アダブーストの判別関数は学習データxの分布P(x)には依存しないが、高速判別装置が弱判別器の途中で判別を打ち切るときの弱判別器の数γは教師付き学習データセット(ラベル付き学習データ)xの分布P(x)に依存する。そのため、係数絶対値順は最適な並び順とはならない。アダブースト順が最適にならない理由も同様に、アダブーストが教師付き学習データセットを最も改善する弱判別器を選ぶため、高速判別装置が弱判別器の途中で判別を打ち切るときの最適な並び順とはならない。
【0147】
それに対して、(iv)の順序構造学習を評価データ(実際にデジタルカメラなどで顔の判別を行なう対象画像データに近い分布のデータ)と同じ分布に従うラベル無し学習データで学習を行うことができれば、(i)〜(iii)をかなり上回る性能が期待できる。
【0148】
まず、分布P1(x)のラベル付き学習データセットDL:= {(xi, yi) | i=1, 2, ・ ・ ・ , n}と、ラベル付き学習データセットDLとは独立なラベル無し学習データセットとして分布P1(x) に従うD1U:= {x1, x2, ・・・, xnu} と分布P2(x) に従うD2U:= {x1, x2, ・・・, xnu} を用意する。さらにDL, D1U, D2Uと独立な評価用データセットとして分布P1(x)に従うD1T:= {x1, x2, ・・・, xnt } と、分布P2(x)に従うD2T:= {x1, x2, ・・・, xnt} を用意する。学習データの分布P1(x)と分布P2(x)は異なる分布を表し、P1(x)はブースティング学習に用いられるデータの分布と略一致する分布を表し、P2(x)は、実際に顔の判別を行なう対象画像データの分布と略一致する分布を表すものとする。この実験ではn=300, nu=300, nt=1200 とした。
【0149】
最初にデータDLを用いてブースティング学習を行う。その結果得られた判別関数を
【数38】
とする(ここでは、第1の実施の形態と同じ判別関数を例に説明する)。以降全ての実験において同じ判別関数を用いるものとする。この判別関数F(x)について下表に示した4種類の実験(表の実験2は、第3の実施の形態の実験2と同じである)を行った。これらの実験の意図は下で説明する。性能評価は評価用データセットD1T あるいはD2T を用いて計算されたΓ(F)/Jで行った。DxLはDLの特徴量だけの集合をさす。以下、ブースティング学習に用いるデータを学習データセットといい、順序構造学習に用いるデータをサンプルデータセットとして区別する。
【表7】
上表の実験ではいずれも順序構造学習にSL(2)を用いる。
【0150】
実験2では、順序構造学習に学習データセットと同じデータをサンプルデータセットDxLとして用い、評価用には学習データセットと同じ分布の評価用データD1Tを用いた。実験2の結果を図10に示す。数が増えるに従って高速化の効果が表れていることがわかる。大体弱判別器の数J=20,・・・,50ぐらいから評価される弱判別器の総数の1割ほど早くなる。
【0151】
実験5では、順序構造学習に学習データセットと同じデータをサンプルデータセットDxLとして用い、評価用には学習データセットと異なる分布の評価用データセットD2Tを用いた。実験5の結果を図17に示す。
実験2,5はともにブースティング順は係数絶対値順に似た挙動を示している。また両者は実験2,5であまり結果が変わらないことがわかる。その一方で順序構造学習は実験2に比べて実験5では、弱判別器の数が増えると結果が安定していない。これは学習時と評価時でデータの分布が変わっている影響が出ているためであると考えられる。
【0152】
実験6では、順序構造学習に学習データセットと同じデータのサンプルデータセットDxLと学習データセットと同じ分布であるが学習データとは独立なサンプルデータセットD1Uを用い、評価用には学習データセットと同じ分布であるが学習データとは独立な評価用データセットD1Tを用いた。実験6の結果を図18に示す。
順序構造学習を行うと、データ数が増えているため早期から安定して高速化できている。ただし実験2と同様に、学習データセットとサンプルデータセットが同じ分布に従い、学習データセット・サンプルデータセットと同じ分布の評価用データセットD1Tを用いるため、弱判別器の数が増えても改良の度合いが増加していない。
【0153】
実験7は、順序構造学習に学習データセットと異なる分布のサンプルデータセットD2Uを用い、評価用にも学習データセットと異なる分布の評価用データセットD2Tを用いる。実験7の結果を図19に示す。
順序構造学習による高速化が著しいことが見て取れる。この理由は共変量シフトを起こしている場合、係数絶対値順やブースティング順が重要であると考えた判別装置の優先順位が予想を外すこととなる。ただしブースティングの学習アルゴリズムを共変量シフトに拡張すればここまで差が生じることはないと考えられる。
【0154】
ブースティング学習においては、ラベル付きの学習データしか学習できない。そのためブースティング学習に用いる学習データセットのサイズを大きくするにはコストがかかる。順序構造学習においては、順序構造を学習(弱判別器の順序のみに着目)しているので、学習データのラベルは必須ではなくなり、ラベル付き、ラベル無のどちらでも高速化のための学習が可能となる。そのため、順序構造学習に用いる学習データセットのサイズを大きくするのは比較的容易に行なえる。
【0155】
デジタルカメラで顔検出を実際に行う場合の対象画像データと、ブースティング学習に用いられるラベル付き学習データとでは、特徴量の分布が異なると考えられる。そこで、順序構造学習でブースティングを行なう際の学習データとは異なる分布のサンプルデータ、つまり実際に判別を行う対象画像データに近い分布のサンプルデータを用いることで、その違いを考慮した並び順に弱判別器を並び替えて高速判別装置の高速化を図ることが可能になる。
具体的には、上記実施形態で説明したように、ラベル無しの半教師付き学習や、共変量シフトの分布特性を持つサンプルデータを順序構造学習に適用することで、更に、係数絶対値順、アダブースト順より高速となるように高速判別装置の弱判別器を並び替えることが可能になる。
【0156】
本実施の形態では、弱判別器が−1、1の2値を取る場合について説明をしたが、第2の実施の形態のように2値の実数を取る場合についても、ラベル無しの半教師付き学習や、共変量シフトの分布特性を持つサンプルデータを順序構造学習に適用することで、より高速となるように高速判別装置の弱判別器を並び替えることが可能になる。
【0157】
上述では、顔の検出について具体的に説明を行なったが、オブジェクトが人物の手などの人体の外観の一部の部位、あるいは人体の外観ではなく生体内の少なくとも一部の部位を含む領域であってもよい。対象画像データが内視鏡システムや顕微鏡などで撮影した画像の場合には、オブジェクトは、生体内部の腫瘍組織、細胞、タンパク質、DNA・RNAなどの高分子、低分子、であってもよい。生体の他にも、顕微鏡などで撮影された薬などの化合物やタンパク質などであってもよい。あるいは、デジタルスチールカメラなどの撮影装置によって対象画像データに撮影された貨幣、キャッシュカードなどのカード、車輌、あるいは車両のナンバープレートなどであってもよい。また、対象画像データが、複写機などのスキャナ機器によりスキャニングされた画像である場合には、オブジェクトがドキュメントの文字、図面、表、写真などであてもよい。さらに、オブジェクトは、画像データを統計的分析したときに統計的偏りのある群であればよく、例えば、テクスチャであってもよい。
【0158】
上述では、対象データが画像データである場合について説明したが、音のデータ、文字データ、生体データ、自然・物理データなどでもよい。具体的には、音のデータから音声、生体の音、生き物の声(動物、鳥、昆虫)、楽器の音、乗り物の音などを検索するときに上述の高速判別装置を用いることができる。
また、音声データや文字データには、日本語や英語などの種々の言語の情報からなる言語データが含まれる。言語データからは、例えば、地域の方言の判別、用途(ニュースのようなフォーマルなデータであるかインフォーマルなデータであるか)の判別、書かれた(あるいは、話された)時代(平安、江戸、現代)の判別、書いた(あるいは、話している)世代(高校生、年輩)の判別をおこなうときに上述の高速判別装置を用いることができる。
さらに、生体データは、心拍、脈拍、血圧、呼吸、発汗の波形や周期、振幅などを計測したデータであってもよい。さらにまた、自然・物理データとして、天候、気候、地震の波形や周期、振幅などを計測したデータであってもよい。
【0159】
上述では、判別器が弱判別器である場合について説明したが、判別器群には誤判別率が低いものが含まれていても良い。
【0160】
上述では、ブースティングを例に説明したが、バギングにより構成された判別器群であってもよい。
【符号の説明】
【0161】
1,1a,1b 高速判別装置
11 対象画像データ入力受付手段
12,12a,12b 判別器記憶手段
13,13a,13b 評価値取得手段
14,14a,14b 判別結果決定手段
【特許請求の範囲】
【請求項1】
判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置であって、
前記対象データxの入力を受け付ける対象データ入力受付手段と、
所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、
前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、
前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段とを備えたことを特徴とする高速判別装置。
【請求項2】
前記判別器群が、前記複数の判別器fjとともに、該判別器のそれぞれに対する重みαjとを記憶するものであり、
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)と各判別器の重みαjとを線形結合した総合評価値Fi(x)
【数39】
をi=1からJまで順に得るものであることを特徴とする請求項1記載の高速判別装置。
【請求項3】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件1
【数40】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項2記載の高速判別装置。
【請求項4】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件2
【数41】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項2記載の高速判別装置。
【請求項5】
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)を線形結合した総合評価値Fi(x)
【数42】
をi=1からJまで順に得るものであることを特徴とする請求項1記載の高速判別装置。
【請求項6】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−1または条件4−1
【数43】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項7】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−1または条件6−1
【数44】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項8】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−2または条件4−2
【数45】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項9】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−2または条件6−2
【数46】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項10】
前記判別結果は、前記総合評価値Fi(x)の符号に応じて決定されることを特徴とする請求項2〜9いずれか1項記載の高速判別装置。
【請求項11】
前記判別器群が、K個のステージに分けられるとともに、各ステージ毎に所定の順番で並べられたJk(k=1〜K)個の判別器からなる判別器群が含まれるものであり、
前記評価値取得手段が、前記各ステージ毎に1番目から順に前記総合評価値Fi(x)を各ステージのi=1からJkまで順に得るものであり、
前記判別結果決定手段が、前記評価値取得手段によって、各ステージのi=Ik(Ik<Jk)番目までの判別器を評価して得られた前記総合評価値FkI(x)が示す前記判別結果が、各ステージに含まれるIk+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記Ik番目までの判別器を評価して得られた総合評価値FkI(x)にIk+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段に各ステージのIk+1番目以降の判別器の評価の打ち切りを指示するとともに、前記Ik番目までの判別器を評価して得られた総合評価値FkIに応じた前記判別結果を各ステージの最終結果として決定するものであることを特徴とする請求項1記載の高速判別装置。
【請求項12】
請求項1記載の高速判別装置を高速化するための方法であって、
N個のサンプルデータを記憶するサンプルデータ記憶ステップと、
前記所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、
該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Iを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を取得する評価済判別器数取得ステップと、
前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、
前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索する探索ステップと、を備えたことを特徴とする高速判別装置を高速化するための方法。
【請求項13】
請求項11記載の高速判別装置を高速化するための方法であって、
N個のサンプルデータを記憶するサンプルデータ記憶ステップと、
前記各ステージ毎に所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、
該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に各ステージにおいて前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Ikを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を各ステージ毎に取得する評価済判別器数取得ステップと、
前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記各ステージの判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記各ステージの判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、
前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記各ステージの判別器群の並び順を探索する探索ステップと、を備えたことを特徴とする高速判別装置を高速化するための方法。
【請求項14】
前記判別器交換ステップが、前記所定の順番に並べられた複数の判別器からなる判別器群のうちの任意の2つの判別器を交換するものであり、
前記探索ステップが、前記判別器交換ステップにおいて前記交換した2つの判別器の全ての組み合わせについて、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索することを特徴とする請求項12または13記載の高速判別装置を高速化するための方法。
【請求項15】
前記サンプルデータには、ラベル無学習データを含むことを特徴とする請求項12〜14いずれか1項記載の高速判別装置を高速化するための方法。
【請求項16】
前記判別器群は、所定の分布P1に従う学習データを用いて学習を行うことにより選択されたものであり、
前記サンプルデータには、前記分布P1とは異なる分布P2の学習データを含むことを特徴とする請求項12〜15いずれか1項記載の高速判別装置を高速化するための方法。
【請求項17】
前記分布P2が前記対象データの分布に近い分布を表すものであることを特徴とする請求項16記載の高速判別装置を高速化するための方法。
【請求項18】
判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置のプログラムであって、
コンピュータを、
前記対象データxの入力を受け付ける対象データ入力受付手段と、
所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、
前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、
前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段として機能させる高速判別装置のプログラム。
【請求項1】
判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置であって、
前記対象データxの入力を受け付ける対象データ入力受付手段と、
所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、
前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、
前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段とを備えたことを特徴とする高速判別装置。
【請求項2】
前記判別器群が、前記複数の判別器fjとともに、該判別器のそれぞれに対する重みαjとを記憶するものであり、
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)と各判別器の重みαjとを線形結合した総合評価値Fi(x)
【数39】
をi=1からJまで順に得るものであることを特徴とする請求項1記載の高速判別装置。
【請求項3】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件1
【数40】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項2記載の高速判別装置。
【請求項4】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FIが条件2
【数41】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項2記載の高速判別装置。
【請求項5】
前記評価値取得手段が、1番目からi番目までの判別器の評価値fj(x)を線形結合した総合評価値Fi(x)
【数42】
をi=1からJまで順に得るものであることを特徴とする請求項1記載の高速判別装置。
【請求項6】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−1または条件4−1
【数43】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項7】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−1または条件6−1
【数44】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項8】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件3−2または条件4−2
【数45】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項9】
前記判別結果決定手段が、前記評価値取得手段によってI番目までの判別器を評価して得られた前記総合評価値FI(x)が、条件5−2または条件6−2
【数46】
を満足する場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定するものであることを特徴とする請求項5記載の高速判別装置。
【請求項10】
前記判別結果は、前記総合評価値Fi(x)の符号に応じて決定されることを特徴とする請求項2〜9いずれか1項記載の高速判別装置。
【請求項11】
前記判別器群が、K個のステージに分けられるとともに、各ステージ毎に所定の順番で並べられたJk(k=1〜K)個の判別器からなる判別器群が含まれるものであり、
前記評価値取得手段が、前記各ステージ毎に1番目から順に前記総合評価値Fi(x)を各ステージのi=1からJkまで順に得るものであり、
前記判別結果決定手段が、前記評価値取得手段によって、各ステージのi=Ik(Ik<Jk)番目までの判別器を評価して得られた前記総合評価値FkI(x)が示す前記判別結果が、各ステージに含まれるIk+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記Ik番目までの判別器を評価して得られた総合評価値FkI(x)にIk+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段に各ステージのIk+1番目以降の判別器の評価の打ち切りを指示するとともに、前記Ik番目までの判別器を評価して得られた総合評価値FkIに応じた前記判別結果を各ステージの最終結果として決定するものであることを特徴とする請求項1記載の高速判別装置。
【請求項12】
請求項1記載の高速判別装置を高速化するための方法であって、
N個のサンプルデータを記憶するサンプルデータ記憶ステップと、
前記所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、
該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Iを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を取得する評価済判別器数取得ステップと、
前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、
前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索する探索ステップと、を備えたことを特徴とする高速判別装置を高速化するための方法。
【請求項13】
請求項11記載の高速判別装置を高速化するための方法であって、
N個のサンプルデータを記憶するサンプルデータ記憶ステップと、
前記各ステージ毎に所定の順番に並べられた複数の判別器からなる判別器群の2以上の判別器を交換して並び替えを行う判別器交換ステップと、
該判別器交換ステップによる交換前と交換後の並び順の判別器群のそれぞれにおいて、前記N個のサンプルデータのそれぞれを前記対象データ入力受付手段より対象データxとして受け付けて、前記評価値取得手段を実行した後に各ステージにおいて前記判別結果決定手段が前記判別器の評価の打ち切りを指示するまでに評価された判別器の数Ikを各サンプルデータごとに取得し、前記N個のサンプルデータの前記評価された判別器の数の代表値を各ステージ毎に取得する評価済判別器数取得ステップと、
前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より小さい場合には、前記各ステージの判別器群の並び順を前記交換後の並び順に並び替えて前記判別器群に記憶し、前記交換後に前記評価された判別器の数の代表値が前記交換前に前記評価された判別器の数の代表値より大きい場合には、前記各ステージの判別器群に記憶されている前記判別器群の並び順をそのままとする並び替えステップと、
前記判別器交換ステップ、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記各ステージの判別器群の並び順を探索する探索ステップと、を備えたことを特徴とする高速判別装置を高速化するための方法。
【請求項14】
前記判別器交換ステップが、前記所定の順番に並べられた複数の判別器からなる判別器群のうちの任意の2つの判別器を交換するものであり、
前記探索ステップが、前記判別器交換ステップにおいて前記交換した2つの判別器の全ての組み合わせについて、前記評価済判別器数取得ステップ、および前記並び替えステップを繰り返して、前記評価された判別器の数の代表値が最小となる前記判別器群の並び順を探索することを特徴とする請求項12または13記載の高速判別装置を高速化するための方法。
【請求項15】
前記サンプルデータには、ラベル無学習データを含むことを特徴とする請求項12〜14いずれか1項記載の高速判別装置を高速化するための方法。
【請求項16】
前記判別器群は、所定の分布P1に従う学習データを用いて学習を行うことにより選択されたものであり、
前記サンプルデータには、前記分布P1とは異なる分布P2の学習データを含むことを特徴とする請求項12〜15いずれか1項記載の高速判別装置を高速化するための方法。
【請求項17】
前記分布P2が前記対象データの分布に近い分布を表すものであることを特徴とする請求項16記載の高速判別装置を高速化するための方法。
【請求項18】
判別対象の対象データに所定のオブジェクトが含まれるか否かを判別した判別結果を得る高速判別装置のプログラムであって、
コンピュータを、
前記対象データxの入力を受け付ける対象データ入力受付手段と、
所定の順番に並べられた、前記対象データxに前記オブジェクトが含まれるか否かを評価する複数個の判別器fj(j=1〜J)からなる判別器群と、
前記複数個の判別器のうちの1番目の判別器から順に各判別器を用いて前記対象データxを評価した評価値fj(x)を求め、1番目からi番目までの判別器の評価値fj(x)(j=1〜i)から得られた総合評価値Fi(x)をi=1からJまで順に得る評価値取得手段と、
前記評価値取得手段によってi=I(I<J)番目までの判別器を評価して得られた前記総合評価値FI(x)が示す前記判別結果が、I+1番目以降の各判別器が取り得る評価値の範囲に基づいて、前記I番目までの判別器を評価して得られた総合評価値FI(x)にI+1番目以降の判別器の評価値を加えても変わらないと判定された場合には、前記評価値取得手段にI+1番目以降の判別器の評価の打ち切りを指示するとともに、前記I番目までの判別器を評価して得られた総合評価値FIに応じた前記判別結果を最終結果として決定する判別結果決定手段として機能させる高速判別装置のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2013−41312(P2013−41312A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−165173(P2011−165173)
【出願日】平成23年7月28日(2011.7.28)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願日】平成23年7月28日(2011.7.28)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
[ Back to top ]