以下、本発明を実施するための最良の形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(顔検出制御:画像から顔を検出する例および顔検出に用いられる辞書情報の作成例)
2.第2の実施の形態(顔検出制御:画像から顔を検出する変形例)
<1.第1の実施の形態>
[撮像装置の構成例]
図1は、本発明の第1の実施の形態における撮像装置100の機能構成例を示すブロック図である。撮像装置100は、レンズ111と、撮像部112と、システム制御部120と、記憶装置部130と、外部I/F(インターフェース)部140と、記録部150と、操作入力部160と、表示部170と、音声出力部180と、カメラ制御部200とを備える。撮像装置100は、例えば、被写体を撮像して画像データを生成し、この画像データについて画像解析により各特徴量を抽出し、この抽出された各特徴量を用いて各種画像処理を施すことが可能なデジタルスチルカメラによって実現することができる。
レンズ111は、被写体からの光を集光する複数のレンズ(ズームレンズ、フォーカスレンズ等)から構成され、入射された被写体からの光がこれらのレンズを介して撮像部112に供給される。
撮像部112は、電子シャッター機能を有する撮像素子(図示せず)と、この撮像素子の出力信号を処理して撮像画像(画像データ)を生成する信号処理部(図示せず)とを備える。すなわち、撮像部112において、レンズ111を介して入射された被写体の光学像が撮像素子の撮像面に結像され、この状態で撮像素子が撮像動作を行い、信号処理部が撮像信号に対して信号処理を行うことにより、撮像画像が生成される。そして、生成された撮像画像が記憶装置部130に供給されて記憶される。なお、撮像画像の生成に用いられるカメラパラメータ(撮像パラメータ)が、カメラ制御部200により順次決定される。
カメラ制御部200は、記憶装置部130を介して撮像部112から供給される撮像画像、および、システム制御部120からの制御に基づいて、撮像部112を制御するものである。なお、カメラ制御部200については、図2を参照して詳細に説明する。
システム制御部120は、撮像装置100全体の制御を行うものである。例えば、システム制御部120は、操作入力部160により受け付けられたユーザからの操作入力に応じた制御を行う。また、システム制御部120は、表示部170に表示されるメニュー画面等の表示、記録部150に対する撮像画像の記録や読出し、外部I/F部140を介して行われる外部コンピュータやネットワークとの通信等を制御する。さらに、システム制御部120は、撮像動作中のモニタリング時には、撮像部112により生成された撮像画像を表示部170に表示させる制御を行う。
記憶装置部130は、撮像装置100のシステム上で撮像画像等を一時的に保存するための主記憶装置であり、例えば、DRAM(Dynamic Random Access Memory)により構成される。すなわち、撮像装置100内における各部間の撮像画像のやりとりは、主に記憶装置部130を介して行われる。
外部I/F部140は、USB(Universal Serial Bus)等の入出力端子を備える外部インターフェースであり、外部コンピュータとの接続やネットワーク接続のためのインターフェースを提供する。
記録部150は、システム制御部120の制御に基づいて、撮像部112により生成された撮像画像を記録するものである。また、記録部150は、システム制御部120の制御に基づいて、記録されている撮像画像を読み出してシステム制御部120に供給する。記録部150として、例えば、フラッシュメモリ等の記録媒体を用いることができる。また、記録部150は、撮像装置100に内蔵するようにしてもよく、着脱可能に撮像装置100に装着されるようにしてもよい。
操作入力部160は、ユーザからの操作入力を受ける操作入力部であり、受け付けられた操作入力に応じた信号をシステム制御部120に出力する。例えば、撮像画像の記録を指示するためのシャッターボタンが押下されると、シャッターボタン押下に応じた信号がシステム制御部120に出力される。
表示部170は、システム制御部120の制御に基づいて、各種画像を表示する表示部である。例えば、表示部170は、撮像部112により生成された撮影画像、記録部150から読み出された撮像画像、ユーザに提供されるメニュー画面等を表示する。
音声出力部180は、システム制御部120の制御に基づいて、各種の音声情報を出力するものである。音声出力部180は、例えば、スピーカにより実現することができる。
図2は、本発明の第1の実施の形態におけるカメラ制御部200の機能構成例を示すブロック図である。図2では、カメラ制御部200の機能構成例とともに、図1に示す撮像部112、システム制御部120および記憶装置部130の構成についても図示する。カメラ制御部200は、シーケンス制御部210と、カメラパラメータ制御部220と、顔検出部230と、記憶装置I/F240とを備える。ここで、記憶装置部130およびカメラパラメータ制御部220の間、また、記憶装置部130および顔検出部230の間で行われる撮像画像のやりとりは、記憶装置I/F240を介して行われる。
シーケンス制御部210は、システム制御部120からの撮像画像記録待機命令で起動し、撮像部112により生成される撮像画像を記録することが可能な状態を保持するものである。この撮像画像記録待機状態では、撮像部112により生成される撮像画像が、記憶装置部130に順次記憶される。例えば、1/60秒の間隔で、記憶装置部130に記憶される撮像画像が順次更新される。また、シーケンス制御部210は、記憶装置部130に記憶されている現在の撮像画像(撮像部112により生成された最新の撮像画像)に基づいて、カメラパラメータ制御部220がカメラパラメータを決定するように制御を行う。また、シーケンス制御部210は、記憶装置部130に記憶されている現在の撮像画像について顔検出部230が顔検出処理を行うための制御を行う。ここで、シーケンス制御部210は、顔を検出したことを示す顔検出情報が顔検出部230から出力された場合には、顔が検出された旨をシステム制御部120およびカメラパラメータ制御部220に出力する。
カメラパラメータ制御部220は、撮像画像に関するカメラパラメータを決定するものであり、決定されたカメラパラメータを用いて、撮像部112に対する撮像制御を行う。具体的には、カメラパラメータ制御部220は、シーケンス制御部210からのトリガに基づいて、記憶装置I/F240を介して、記憶装置部130に記憶されている現在の撮像画像を取得する。そして、この現在の撮像画像を評価して、シャッター速度、露出、ホワイトバランス等のカメラパラメータを決定する。また、カメラパラメータ制御部220は、現在の撮像画像から顔が検出された場合には、検出された顔および現在の撮像画像の評価に基づいてシャッター速度、露出、ホワイトバランス等のカメラパラメータを決定する。例えば、顔が検出された場合には、検出された顔の撮像画像における位置および大きさに基づいて、検出された顔に最適なカメラパラメータが決定される。
顔検出部230は、記憶装置部130に記憶されている現在の撮像画像について顔検出処理を行うものであり、顔が検出された場合には顔検出情報をシーケンス制御部210に出力する。具体的には、顔検出部230は、シーケンス制御部210からのトリガに基づいて、記憶装置I/F240を介して、記憶装置部130に記憶されている現在の撮像画像を取得し、この現在の撮像画像について、顔検出処理を行う。ここで、顔検出情報は、検出された顔に関する情報であり、例えば、検出された顔の撮像画像における位置、大きさ、種類(顔の向き等)、その顔の度合いを表すスコアを含む情報である。なお、顔検出部230については、図3を参照して詳細に説明する。
図3は、本発明の第1の実施の形態における顔検出部230の機能構成例を示すブロック図である。顔検出部230は、画像取得部231と、画像縮小部232と、画像取出部233と、評価値算出部235と、選択部236と、顔判定部237と、判定結果出力部238と、評価値算出辞書記憶部300と、顔判定辞書記憶部310とを備える。
画像取得部231は、記憶装置I/F240を介して、記憶装置部130に記憶されている撮像画像を取得するものであり、取得された撮像画像を画像縮小部232に出力する。
画像縮小部232は、画像取得部231から出力された撮像画像について、予め定められている割合で順次縮小させることにより、大きさの異なる複数の画像を生成するものであり、生成された各画像を画像取出部233に順次出力する。なお、この撮像画像の縮小については、図22を参照して詳細に説明する。
画像取出部233は、画像縮小部232から出力された各画像について、画像毎に所定領域に含まれる画像を順次取り出すものであり、取り出された画像(判定対象画像)を評価値算出部235および顔判定部237に出力する。なお、この画像の取り出しについては、図22を参照して詳細に説明する。
評価値算出辞書記憶部300は、画像取出部233から出力された画像について、複数の対象物の何れが含まれるかを評価する評価値を対象物毎に算出するための評価値算出辞書を記憶するものである。そして、記憶されている評価値算出辞書を評価値算出部235に供給する。この複数の対象物として、本発明の第1の実施の形態では、異なる方向を向いている複数の顔を例にして説明する。なお、この評価値算出辞書の作成方法については、図5乃至図17等を参照して詳細に説明する。また、この評価値算出辞書の記憶内容については、図20を参照して詳細に説明する。なお、評価値算出辞書記憶部300は、特許請求の範囲に記載の評価情報記憶部の一例である。
顔判定辞書記憶部310は、画像取出部233から出力された画像について、特定の対象物が含まれるか否かを判定するための顔判定辞書を対象物毎に関連付けて記憶するものである。そして、記憶されている顔判定辞書を顔判定辞書メモリ239に供給する。ここで、顔判定辞書記憶部310には、評価値算出辞書記憶部300に記憶されている評価値算出辞書を用いて算出される評価値に対応する複数の対象物のそれぞれについて、顔判定辞書が記憶される。なお、この顔判定辞書の作成方法については、図5乃至図17等を参照して詳細に説明する。また、この顔判定辞書の記憶内容については、図21を参照して詳細に説明する。なお、顔判定辞書記憶部310は、特許請求の範囲に記載の判定情報記憶部および第2の判定情報記憶部の一例である。
顔判定辞書メモリ239は、顔判定辞書記憶部310に記憶されている複数の顔判定辞書のうちの1または複数の顔判定辞書を記憶する作業用メモリであり、記憶されている顔判定辞書の内容を顔判定部237に供給する。
評価値算出部235は、画像取出部233から出力された判定対象画像における複数の領域から特徴量を抽出し、この抽出された各特徴量のうち2つの特徴量を比較することにより、複数の対象物の評価値を同時に算出するものである。そして、算出された対象物毎の評価値を選択部236に出力する。この評価値の算出には、評価値算出辞書記憶部300に記憶されている評価値算出辞書が用いられる。なお、評価値算出部235による評価値の算出については、図23乃至図25を参照して詳細に説明する。また、評価値算出部235は、特許請求の範囲に記載の算出部の一例である。
選択部236は、評価値算出部235から出力された対象物毎の評価値のうちから、一定条件を満たす評価値を選択するものであり、この選択された評価値に係る対象物に関する情報(選択対象物情報)を顔判定部237に出力する。この一定条件として、例えば、対象物毎の評価値のうちから、高い値の所定数の評価値とすることができる。また、例えば、この所定数の評価値のうち、一定値を超えている評価値とすることができる。なお、選択部236による評価値の選択方法については、図23乃至図25を参照して詳細に説明する。
顔判定部237は、画像取出部233から出力された判定対象画像に顔が含まれるか否かを判定する顔判定処理を行うものである。そして、この判定結果を判定結果出力部238に出力する。この判定結果として、例えば、検出された顔の撮像画像における位置および大きさと、種類(顔の向き等)、その顔の度合いを表すスコアとが出力される。具体的には、顔判定部237は、選択部236により選択された評価値に係る対象物に関連付けて顔判定辞書記憶部310に記憶されている顔判定辞書を顔判定辞書メモリ239に保持させる。そして、顔判定辞書メモリ239に保持された顔判定辞書を用いて、画像取出部233から出力された判定対象画像における複数の領域から特徴量を抽出し、この抽出された各特徴量のうち2つの特徴量を比較することにより、評価値を顔判定辞書毎に算出する。そして、この評価値に基づいて、画像取出部233から出力された判定対象画像に顔が含まれるか否かを判定する。なお、顔判定部237による顔判定処理については、図23乃至図25を参照して詳細に説明する。また、顔判定部237は、特許請求の範囲に記載の判定部の一例である。
判定結果出力部238は、画像取出部233から出力された判定対象画像に顔が含まれると判定された判定結果が顔判定部237から出力された場合には、撮像画像から顔が検出された旨を示す顔検出情報をシーケンス制御部210に出力するものである。この顔検出情報には、例えば、検出された顔の撮像画像における位置および大きさと、種類(顔の向き等)と、その顔の度合いを表すスコアとが含まれる。
[学習装置の構成例]
次に、本発明の第1の実施の形態における顔検出処理で用いられる評価値算出辞書および顔判定辞書を作成する学習装置について図面を参照して詳細に説明する。なお、本発明の実施の形態で示す学習は、多量のデータに基づいて、これらのデータの背後にある規則性を見出すことを意味するものとする。
図4は、本発明の実施の第1の形態における学習装置800の機能構成例を示すブロック図である。学習装置800は、学習対象画像入力部801と、輝度差分値算出部802と、ウエイト分布情報作成部803と、最適スレッショルド決定部804と、弱仮説(Weak Learner)決定部805と、重み算出部806とを備える。また、学習装置800は、ウエイト更新部807と、記録制御部808と、ウエイト保持部810と、顔検出辞書記憶部820とを備える。この例では、人物の顔を検出するための顔検出辞書を作成する例について説明する。この顔検出辞書は、図3に示す評価値算出辞書記憶部300に記憶されている評価値算出辞書と、顔判定辞書記憶部310に記憶されている顔判定辞書とに対応するものである。なお、学習装置800は、リアルアダブースト(Real AdaBoost)等の学習アルゴリズムにより実現される。
学習対象画像入力部801は、学習サンプルとなる学習対象画像を入力するものであり、入力された学習対象画像をその種類毎に輝度差分値算出部802およびウエイト更新部807に出力する。本発明の第1の実施の形態では、学習対象画像入力部801に入力される学習対象画像として、24画素×24画素に正規化された画像を用いる例を示す。また、人物の顔を検出するための顔検出辞書を作成する場合には、人物の顔を含むサンプル画像(学習対象正面顔画像)および人物の顔を含まないサンプル画像(学習対象非顔画像)が、学習対象画像として学習対象画像入力部801に入力される。この場合に、学習対象正面顔画像として、例えば、顔の両目の位置が各学習対象画像において同一の位置となるように正規化された画像を用いることができる。また、例えば、学習対象正面顔画像として1万程度の画像が入力され、学習対象非顔画像として10万程度の画像が入力される。これらの画像例については、図5および図12を参照して詳細に説明する。
輝度差分値算出部802は、学習対象画像入力部801から出力された学習対象画像における各2点間の輝度の差分値を学習対象画像毎に算出するものである。そして、算出された差分値を、算出対象となった学習対象画像および2点間の位置に関連付けてウエイト分布情報作成部803に出力する。ここで、学習対象画像における同一の2点間における2通りの演算(例えば、2点の輝度値をAおよびBとする場合における「A−B」、「B−A」)では、正負の符号が異なるのみで絶対値が同一の値となる。このため、その2通りの演算については、何れか1つの演算を行い、他の演算については省略することができる。すなわち、輝度差分値算出部802は、学習対象画像入力部801から出力された学習対象画像を構成する各画素の2点間の各組合せ(576C2=165600通り)について輝度の差分値を算出する。
ウエイト分布情報作成部803は、輝度差分値算出部802から出力された2点間の輝度の差分値に対するその算出対象となった学習対象画像に付与されているウエイトの分布状態を示すウエイト分布情報を、2点間の組合せ毎に作成するものである。なお、このウエイト分布情報は、学習対象正面顔画像および学習対象非顔画像に分類して作成される。そして、算出されたウエイト分布情報を、作成対象となった2点間の組合せに関連付けて最適スレッショルド決定部804およびウエイト更新部807に出力する。なお、学習対象画像に付与されるウエイトは、ウエイト保持部810に保持されている。また、ウエイト分布情報の作成については、図7、図8、図14および図15を参照して詳細に説明する。
最適スレッショルド決定部804は、ウエイト分布情報作成部803から出力されたウエイト分布情報に基づいて、最適となるスレッショルド(最適スレッショルド)を2点間の組合せ毎に決定するものである。そして、決定された最適スレッショルドと、決定対象となったウエイト分布情報と、2点間の組合せとを関連付けて弱仮説決定部805に出力する。この最適スレッショルドの決定については、図8および図15を参照して詳細に説明する。
弱仮説決定部805は、ウエイト分布情報作成部803により作成されたウエイト分布情報に基づいて、最良の弱仮説を決定するものである。具体的には、弱仮説決定部805は、最適スレッショルド決定部804から出力された各最適スレッショルドの中から1つのスレッショルドを決定し、このスレッショルドに対応するウエイト分布情報の弱仮説を最良の弱仮説として決定する。そして、決定されたスレッショルドと、最良の弱仮説と、この弱仮説に対応するウエイト分布情報とを関連付けて重み算出部806、ウエイト更新部807および記録制御部808に出力する。この弱仮説の決定については、図9および図16を参照して詳細に説明する。
重み算出部806は、弱仮説決定部805から出力された最良の弱仮説に対応するウエイト分布情報を用いて重み(重み付き多数決の値)を算出するものであり、算出された重みの値を記録制御部808に出力する。この重みの算出については、図10および図17を参照して詳細に説明する。
ウエイト更新部807は、ウエイト保持部810に保持されている各学習対象画像に対応するウエイトを更新するものである。具体的には、ウエイト更新部807は、ウエイト分布情報作成部803からのウエイト分布情報と、弱仮説決定部805からの最良の弱仮説に対応する最適スレッショルドと、重み算出部806からの重みの値とに基づいて、各ウエイトを更新する。このウエイトの更新については、図10および図17を参照して詳細に説明する。
記録制御部808は、重み算出部806から出力された重みの値と、弱仮説決定部805から出力されたスレッショルドおよび最良の弱仮説とを関連付けて、顔検出辞書記憶部820に記録させるものである。この顔検出辞書については、図10および図17を参照して詳細に説明する。
ウエイト保持部810は、学習対象画像入力部801から出力された各学習対象画像に付与されるウエイトを保持するものであり、保持されているウエイトをウエイト分布情報作成部803に供給する。また、ウエイト保持部810に保持されているウエイトは、ウエイト更新部807により更新される。なお、ウエイト保持部810の保持内容については、図6および図13を参照して詳細に説明する。
図5は、本発明の第1の実施の形態における学習装置800による学習の対象となる学習対象画像の例を示す図である。図5(a)には、複数の学習対象正面顔画像からなる学習対象正面顔画像群830を示し、図5(b)には、複数の学習対象非顔画像からなる学習対象非顔画像群840を示す。なお、図5に示す例では、説明の容易のため、簡略化した画像を学習対象画像として示す。
図5(a)に示す学習対象正面顔画像831乃至834等のように、例えば、人物の顔(正面向きの顔)を含む多数のサンプル画像が学習対象正面顔画像として用いられる。また、図5(b)に示す学習対象非顔画像841乃至844等のように、例えば、人物の顔を含まない多数のサンプル画像が学習対象非顔画像として用いられる。なお、この例では、1万程度の学習対象正面顔画像と、10万程度の学習対象非顔画像とを用いて、顔検出辞書を作成する場合を例にして説明する。これらの各学習対象画像が、種類毎に学習対象画像入力部801に順次入力される。
図6は、本発明の第1の実施の形態におけるウエイト保持部810の保持内容を模式的に示す図である。図6(a)には、ウエイト保持部810にウエイトが保持されている学習対象画像を示し、図6(b)には、その学習対象画像に対応するウエイト保持部810の保持内容を示す。また、図6(a)および(b)の対応関係を矢印で結んで示す。なお、図6(a)に示す学習対象正面顔画像群830および学習対象非顔画像群840に含まれる学習対象画像として、図5に示す学習対象画像の一部を示し、同一の学習対象画像については、同一の符号を付す。
ウエイト保持部810には、学習対象画像識別情報(xi)811と、ウエイト(Wi t)812と、顔画像/非顔画像特定情報(yi)813とが保持されている。これらの各情報は、学習対象画像入力部801から出力された学習対象画像毎にウエイト更新部807により格納され、更新される。
学習対象画像識別情報(xi)811は、学習対象画像入力部801に入力された学習対象画像を識別する識別情報であり、例えば、学習対象画像に関連付けて、xi(iは、1≦i≦Kを満たす整数)が保持される。図6(b)に示す例では、学習対象画像入力部801にK個の学習対象画像が入力された場合を示す。例えば、K=110000とすることができる。
ウエイト(Wi t)812は、学習対象画像入力部801に入力された学習対象画像毎に付与されるウエイトであり、ウエイト更新部807により順次更新される。ここで、ウエイト(Wi t)は、次の式1を満たすように正規化された値である。また、学習対象画像入力部801に入力された直後の各学習対象画像には同一の値(1/K)が、ウエイト(Wi 1)として付与される。ここで、iは、学習対象画像識別情報(xi)811のiに対応するものであり、tは、ブースティングをする際のループカウンタである。例えば、t=2000乃至3000とすることができる。
顔画像/非顔画像特定情報(yi)813は、学習対象画像入力部801に入力された学習対象画像の種類を特定する情報であり、例えば、学習対象正面顔画像には「1」が保持され、学習対象非顔画像には「−1」が保持される。この顔画像/非顔画像特定情報は、学習対象画像入力部801から出力された学習対象画像の種類に応じて、ウエイト更新部807により格納される。
[顔検出辞書の作成例]
図7は、本発明の第1の実施の形態におけるウエイト分布情報作成部803によるウエイト分布情報の作成方法の概略を示す図である。図7(a)には、各学習対象画像における2点間の輝度の差分値を算出する算出方法の概略を示す。図7(a)では、学習対象正面顔画像群830および学習対象非顔画像群840に含まれる各学習対象画像のうち、学習対象正面顔画像831および832、学習対象非顔画像842および844を示し、輝度の差分値を算出する例を示す。また、他の学習対象画像についても同様に行うことができる。また、各学習対象画像の下部分の破線の矩形内には、各学習対象画像に付与されているウエイト(Wi t)を示す。このウエイト(Wi t)は、各学習対象画像に関連付けてウエイト保持部810に保持されている。
最初に、輝度差分値算出部802が、各学習対象画像における同一の2点の輝度を抽出し、この抽出された2点の輝度の差分値を学習対象画像毎に算出する。例えば、図7(a)に示すように、学習対象正面顔画像831および832、学習対象非顔画像842および844における2点(画素位置P11およびP12)の輝度が抽出され、この抽出された2点の輝度の差分値が算出される。
図7(b)には、各学習対象画像における2点間の輝度の差分値に基づいてウエイト分布情報を作成する作成方法の概略を示す。図7(b)では、横軸を輝度の差分値(−255乃至255)を示す軸とし、縦軸をウエイトの積算値を示す軸とするウエイト分布グラフを、ウエイト分布情報として示す。
ウエイト分布情報作成部803が、輝度差分値算出部802により算出された差分値の階級に、この差分値が算出された学習対象画像に関連付けてウエイト保持部810に保持されているウエイト(Wi t)を加算する。例えば、図7(b)に示すように、学習対象正面顔画像831および832、学習対象非顔画像842および844について算出された差分値の階級に、各学習対象画像に対応するウエイト(W1 t、W2 t、Wi t、WK t)が加算される。また、他の学習対象画像についても同様に、算出された差分値の階級に、各学習対象画像に対応するウエイト(Wi t)が順次加算され、ウエイト分布情報が作成される。なお、学習対象画像入力部801に入力された直後の各学習対象画像には同一の値(1/K)がウエイト(Wi t)として付与されているため、t=1の場合には、同一のウエイト(Wi 1)が順次加算される。また、学習対象画像における他の2点の組合せ(ペア)についても、同様に、各学習対象画像に関連付けられているウエイト(Wi t)が順次加算され、ウエイト分布情報が作成される。このように、各学習対象画像における2点(画素位置P11およびP12)の組合せについて作成されたウエイト分布情報の例を図8に示す。
図8は、本発明の第1の実施の形態におけるウエイト分布情報作成部803により作成されたウエイト分布情報と、学習対象画像との関係の概略を示す図である。図8(a)には、学習対象正面顔画像群830および学習対象非顔画像群840に含まれる各学習対象画像を示す。これらの各学習対象画像は、図5と同様である。
図8(b)には、2点(画素位置P11およびP12)の組合せについて作成されたウエイト分布曲線(ウエイト分布情報)850を示す。このウエイト分布曲線850は、図7に示すウエイト分布情報の作成方法により、順次加算された階級毎のウエイト(Wi t)の積算値を、学習対象画像の種類毎に曲線で結んで作成された曲線である。このウエイト分布曲線により、学習対象画像の種類毎に応じた特徴的なウエイト分布状態を把握することができる。また、このウエイト分布曲線により、顔画像および非顔画像のそれぞれについて独立のウエイト分布を得ることができる。例えば、図8(b)に示すウエイト分布曲線850では、右側に山が生成されている曲線を顔画像に対応する曲線とし、左側に山が生成されている曲線を非顔画像に対応する曲線とする。これらのウエイト分布の特徴は、輝度差分値の算出対象となる2点の組合せに応じて異なることが多い。
ここで、顔および非顔の判別を行うためのスレッショルドの決定方法について説明する。例えば、図8(b)に示すウエイト分布曲線850における横軸の値をd(dは、−255≦d≦255を満たす整数)とし、横軸の定数をth1(th1は、−255≦th1≦255を満たす整数)とする。この場合に、定数th1未満の学習対象正面顔画像のウエイト分布曲線上の値をPL +(d)とし、定数th1以上の学習対象正面顔画像のウエイト分布曲線上の値をPH +(d)とする。また、定数th1未満の学習対象非顔画像のウエイト分布曲線上の値をPL −(d)とし、定数th1以上の学習対象非顔画像のウエイト分布曲線上の値をPH −(d)とする。なお、図8(b)では、定数th1未満の顔画像のウエイト分布曲線(PL +(d))を破線の細線で示し、定数th1以上の顔画像のウエイト分布曲線(PH +(d))を破線の太線で示す。また、定数th1未満の非顔画像のウエイト分布曲線(PL −(d))を太線で示し、定数th1以上の非顔画像のウエイト分布曲線(PH −(d))を細線で示す。
この場合に、最適スレッショルド決定部804が、定数th1の両側のウエイト分布の総和を算出する。例えば、次の式2乃至5を用いて、定数th1の両側のウエイト分布の総和PH +、PL +、PH −およびPL −が算出される。
続いて、最適スレッショルド決定部804が、算出されたウエイト分布の総和PH +、PL +、PH −およびPL −について、次の式6を用いて、値T1を算出する。
T1=√(PL +×PL −)+√(PH +×PH −)…式6
続いて、最適スレッショルド決定部804が、算出された値T1が最小となる定数th1を、図8(b)に示すウエイト分布曲線850に対応する2点(画素位置P11およびP12)の組合せに関するスレッショルドth1として決定する。また、学習対象画像における他の2点の組合せ(ペア)についても、同様に、ウエイト分布情報を用いて、スレッショルドを決定することができる。このように、各学習対象画像における2点の組合せについて、作成されたウエイト分布情報と、このウエイト分布情報に基づいて決定されたスレッショルドの例を図9に示す。
図9は、本発明の第1の実施の形態におけるウエイト分布情報作成部803により作成されたウエイト分布情報と、最適スレッショルド決定部804により決定されたスレッショルドとの関係を概略的に示す図である。また、図9には、ウエイト分布情報およびスレッショルドとともに、これらに対応する学習対象画像における2点の組合せを示す。なお、図9では、学習対象正面顔画像群830および学習対象非顔画像群840に含まれる各学習対象画像のうち、学習対象正面顔画像832および学習対象非顔画像842のみを示す。また、図9(a)に示す学習対象画像における2点の組合せと、ウエイト分布情報と、スレッショルドとの関係は、図8に示す関係と同様である。なお、図9(a)に示すウエイト分布曲線850について、学習対象非顔画像に対応するウエイト分布曲線を曲線851で示し、学習対象正面顔画像に対応するウエイト分布曲線を曲線852で示す。
図9(b)には、学習対象画像における2点(画素位置P21およびP22)の組合せについて作成されたウエイト分布曲線853と、ウエイト分布曲線853に基づいて決定されたスレッショルドth2との関係を示す。また、ウエイト分布曲線853について、学習対象非顔画像に対応するウエイト分布曲線を曲線854で示し、学習対象正面顔画像に対応するウエイト分布曲線を曲線855で示す。
図9(c)には、学習対象画像における2点(画素位置Pj1およびPj2)の組合せについて作成されたウエイト分布曲線856と、ウエイト分布曲線856に基づいて決定されたスレッショルドthjとの関係を示す。また、ウエイト分布曲線856について、学習対象非顔画像に対応するウエイト分布曲線を曲線857で示し、学習対象正面顔画像に対応するウエイト分布曲線を曲線858で示す。
このように、最適スレッショルド決定部804が、学習対象画像における2点の各組合せ(ペア)について、ウエイト分布曲線(ウエイト分布情報)を用いて、スレッショルドth1乃至jを決定する。続いて、弱仮説決定部805が、決定されたスレッショルドth1乃至jのうち、上記式6を用いて算出された値T1が最小となるスレッショルドを決定する。そして、この決定されたスレッショルドに対応するウエイト分布情報の弱仮説を最良の弱仮説として決定する。
図10は、本発明の第1の実施の形態における弱仮説決定部805により決定された弱仮説に対応する各値を顔検出辞書に記録する記録方法を概略的に示す図である。図10(a)には、弱仮説決定部805により決定されたスレッショルドthrに対応するウエイト分布曲線860および学習対象画像における2点の組合せ(画素位置Pr1およびPr2)を示す。なお、図10(a)では、スレッショルドthrの位置を示す線分を太線で示す。また、ウエイト分布曲線860について、学習対象非顔画像に対応する曲線を曲線861で示し、学習対象正面顔画像に対応する曲線を曲線862で示す。
図10(b)には、弱仮説決定部805により決定されたスレッショルドthrについて2つの重みを算出する重み算出部806を示す。この重み算出部806が、ウエイト分布曲線860におけるスレッショルドthrの両側のウエイト分布の総和PH +、PL +、PH −およびPL −に基づいて、次の式7および式8を用いて、重みh(x)(2つの重みhH(x)およびhL(x))を算出する。なお、式7および式8で示すxは、検出対象となる画像を識別するものである。
図10(c)には、弱仮説決定部805により決定された弱仮説に対応する各値が、顔検出辞書821に記録される例を模式的に示す。この顔検出辞書821は、顔検出辞書記憶部820に記憶される。具体的には、弱仮説決定部805により決定されたスレッショルドthrの値が、顔検出辞書821の閾値(θ)824に記録される。また、スレッショルドthrに対応する2点の組合せ(画素位置Pr1およびPr2)のうちの1つの点(画素位置Pr1)が、顔検出辞書821の位置1(u1,v1)822に記録される。また、スレッショルドthrに対応する2点の組合せ(画素位置Pr1およびPr2)のうちの他の点(画素位置Pr2)が、顔検出辞書821の位置2(u2,v2)823に記録される。ここで、例えば、学習対象画像における左上隅を原点とする場合に、学習対象画像における水平方向の位置をu1およびu2とし、学習対象画像における垂直方向の位置をv1およびv2とする。また、スレッショルドthrについて算出された重みh(x)(2つの重みhH(x)およびhL(x))が、顔検出辞書821の重み(α)825に記録される。例えば、重みhH(x)が重み(α)825の(H)に記録され、重みhL(x)が重み(α)825の(L)に記録される。これらの各値は、記録制御部808により顔検出辞書821に記録される。
続いて、ウエイト更新部807が、次の式9を用いて、各学習対象画像に付与するウエイトWi t+1を算出し、ウエイト保持部810に保持されているウエイトを更新する。この更新は、ブースティング(Boosting)操作と称される。
ここで、Wi tおよびyiは、対象となる学習対象画像xiに関連付けてウエイト保持部810に保持されている値(図6に示す)である。また、ht(xi)は、弱仮説決定部805により決定されたスレッショルドthrに対応する2点の組合せ(画素位置Pr1およびPr2)について算出された各学習対象画像の輝度の差分値に応じて決定される値である。具体的には、ht(xi)として、対象となる学習対象画像xiについて算出された輝度の差分値Pdが、Pd≧thrの場合には、式7を用いて算出される重みhH(xi)が用いられる。一方、対象となる学習対象画像xiについて算出された輝度の差分値Pdが、Pd<thrの場合には、式8を用いて算出される重みhL(xi)が用いられる。これにより、例えば、弱仮説決定部805により決定されたスレッショルドを基準として、異なる判別をされた学習対象画像については、ウエイトを重くして、次のループで反映され易くすることができる。このように、学習対象画像入力部801に入力された直後の各学習対象画像には同一の値(1/K)がウエイト(Wi 1)として付与されるが、t=2以降のウエイト(Wi t)については、各学習対象画像に応じて変更される。
続いて、予定ループ数に達するまで、または、予定精度に達するまで上述した処理を繰り返す。
このように、本発明の第1の実施の形態では、弱仮説決定部805により決定されたスレッショルドの上下に応じて異なる重みを算出する。このため、従来では、顔検出処理において、判別が困難であった画像等についても容易に検出することができるようになり、顔検出精度を向上させることができる。
図11は、学習対象画像における2点の組合せについて作成された2つのウエイト分布曲線を示す図である。図11(a)に示すウエイト分布曲線850は、図9(a)に示すウエイト分布曲線850と同様である。この場合には、スレッショルドの上下で、学習対象非顔画像に対応する曲線と、学習対象正面顔画像に対応する曲線との特徴がでているため、比較的明確に判別が可能であると想定される。
図11(b)に示すウエイト分布曲線865は、スレッショルドth10以下では非顔または顔の判別が難しいが、スレッショルドth10以上では比較的明確に判別が可能な場合におけるウエイト分布曲線の一例である。ウエイト分布曲線865について、学習対象非顔画像に対応する曲線を曲線866で示し、学習対象正面顔画像に対応する曲線を曲線867で示す。すなわち、スレッショルドth10以下では非顔および顔のウエイトの分布状態が混在しているため、判別が難しいと想定される。しかしながら、スレッショルドth10以上では、非顔のウエイト分布がほとんどなく、顔のウエイトの分布がほとんどであるため、比較的明確に判別が可能であると想定される。このような場合でも、スレッショルドth10の上下に応じて異なる重みを用いることにより、極めて効果的に顔を検出することができる。これにより、弱仮説を削減させることができるため、顔検出処理を迅速に行うことができる。また、弱仮説を削減させた場合でも、顔検出精度を高めることができる。
このように作成された顔検出辞書821を用いて顔検出処理を行う場合には、顔検出辞書821に含まれるt=1からTまでの各情報を用いて、検出対象となる画像x(24画素×24画素)について次の式10により最終仮説H(x)を算出する。そして、H(x)≧0であるか、H(x)<0であるかに応じて、検出対象となる画像xに顔が含まれているか否かが判定される。
ここで、式7および式8を用いて、式10に示す最終仮説H(x)を算出し、顔判定を行う場合の流れを以下に示す。
例えば、画像xについて顔検出処理を行う場合には、顔検出辞書821に含まれるt行の位置1(u1,v1)822および位置2(u2,v2)823に対応する画像x上の2点の輝度の値が抽出される。続いて、この2点間の輝度の差分値が算出され、この差分値と、顔検出辞書821の閾値(θ)824に格納されている値とが比較される。例えば、2点間の輝度の差分値をDtとし、閾値(θ)824に格納されている値をthtとする場合に、Dt≧thtであれば、重み(α)825の(H)に格納されている値(すなわち、式7に示す重みhH(x))が選択される。一方、Dt<thtであれば、重み(α)825の(L)に格納されている値(すなわち、式8に示す重みhL(x))が選択される。そして、t=1からTまでの各重み(α)825について、選択された重み(α)825の値(HまたはL)を順次加算することにより、最終仮説H(x)が算出される。そして、H(x)<0である場合には、検出対象となる画像xに顔が含まれていないと判定され、H(x)≧0である場合には、検出対象となる画像xに顔が含まれていると判定される。なお、これらの顔判定処理については、図22乃至図25を参照して詳細に説明する。
[複数の異なる対象物を検出するための辞書作成例]
以上では、対象物となる人物の顔が含まれる学習対象正面顔画像と、人物の顔が含まれない学習対象非顔画像とを用いて、顔検出辞書を作成する例を示した。しかしながら、上述した算出方法を適用することにより、異なる複数の対象物の検出処理を同時に行うための辞書を作成することができる。具体的には、異なる複数の対象物の検出処理を行う場合に、これらの対象物が画像に含まれるか否かを判定する際に用いられる評価値の算出を、異なる複数の対象物のそれぞれについて同時に行うための辞書を作成することができる。すなわち、複数のクラスについて同時に判定処理を行うための辞書を作成することができる。以下では、異なる複数の対象物として、正面顔および左向きの側面顔の検出処理を同時に行うための顔検出辞書を作成する例について説明する。なお、機能構成については、図4に示す機能構成と同様であるため、同一の符号を付して、異なる機能を中心に説明し、他の説明を省略する。
図12は、本発明の第1の実施の形態における学習装置800による学習の対象となる学習対象画像の例を示す図である。図12(a)には、複数の学習対象正面顔画像からなる学習対象正面顔画像群830を示し、図12(b)には、複数の学習対象側面顔画像からなる学習対象側面顔画像群870を示す。また、図12(c)には、複数の学習対象非顔画像からなる学習対象非顔画像群840を示す。なお、図12(a)および(c)に示す学習対象正面顔画像群830および学習対象非顔画像群840は、図5に示す学習対象正面顔画像群830および学習対象非顔画像群840と同一である。このため、これらについては、図5と同一の符号を付して説明を省略する。また、図12に示す例でも、説明の容易のため、簡略化した画像を学習対象画像として示す。
図12(b)に示す学習対象側面顔画像871乃至874等のように、例えば、人物の顔(左向きの顔)を含む多数のサンプル画像が学習対象側面顔画像として用いられる。また、この例では、1万程度の学習対象正面顔画像と、1万程度の学習対象側面顔画像と、10万程度の学習対象非顔画像とを用いて、顔検出辞書を作成する場合を例にして説明する。これらの各学習対象画像が、種類毎に学習対象画像入力部801に順次入力される。
図13は、本発明の第1の実施の形態におけるウエイト保持部810の保持内容を模式的に示す図である。図13に示すウエイト保持部810に保持される各項目は、クラス情報814が追加され、クラス毎にウエイトが保持される点以外は、図6に示すウエイト保持部810と同一である。そこで、以下では、図6と同様の構成については同一の符号を付して説明を省略し、図6と異なる部分を中心に説明する。図13(a)には、ウエイト保持部810にウエイトが保持されている学習対象画像を示し、図13(b)には、その学習対象画像に対応するウエイト保持部810の保持内容を示す。また、図13(a)および(b)の対応関係を矢印で結んで示す。なお、図13(a)に示す学習対象側面顔画像群870等に含まれる学習対象画像として、図12に示す学習対象画像の一部を示し、同一の学習対象画像については、同一の符号を付す。また、この例では、学習対象正面顔画像群830に含まれる画像の数と、学習対象側面顔画像群870に含まれる画像の数とが同一の場合を例にして説明する。
学習対象画像識別情報(xi)811には、学習対象画像を識別するためのxi(iは、1≦i≦Kを満たす整数)が保持される。図13(b)に示す例では、学習対象正面顔画像群830および学習対象非顔画像群840に含まれる画像の数の合計がKであり、学習対象側面顔画像群870および学習対象非顔画像群840に含まれる画像の数の合計がKである場合を示す。例えば、K=110000とすることができる。また、例えば、学習対象画像識別情報(xi)811には、学習対象側面顔画像871に関連付けてx1が保持される。
ウエイト(Wi,cj t)812には、上述したように、クラス毎にウエイトが保持される。すなわち、図13(b)に示すように、学習対象正面顔画像群830および学習対象非顔画像群840に含まれる各学習対象画像と、学習対象側面顔画像群870および学習対象非顔画像群840に含まれる各学習対象画像とのクラス毎にウエイトが保持される。ここで、学習対象非顔画像群840に含まれる各学習対象画像については、各クラスにおいて共通の画像を用いるが、ウエイト更新部807により順次更新されるウエイトが異なる値となる。また、学習対象画像入力部801に入力された直後の各学習対象画像には同一の値(1/K)が、ウエイト(Wi,cj 1)として付与される。また、例えば、ウエイト(Wi,cj t)812には、学習対象側面顔画像871に関連付けてW1,c2 tが保持される。ここで、cjは、クラス情報(cj)814のcjに対応するものであり、属するクラスを表すものである。
顔画像/非顔画像特定情報(yi)813には、学習対象正面顔画像と同様に、学習対象側面顔画像には「1」が保持される。例えば、顔画像/非顔画像特定情報(yi)813には、学習対象側面顔画像871に関連付けて「1」が保持される。
クラス情報(cj)814は、クラスを特定するための情報であり、例えば、学習対象正面顔画像には「c1」が保持され、学習対象側面顔画像には「c2」が保持される。また、学習対象正面顔画像のクラスに属する学習対象非顔画像のウエイトには「c1」が保持され、学習対象側面顔画像のクラスに属する学習対象非顔画像のウエイトには「c2」が保持される。例えば、クラス情報(cj)814には、学習対象正面顔画像のクラスに属する学習対象非顔画像844のウエイトに「c1」が保持され、学習対象側面顔画像のクラスに属する学習対象非顔画像844のウエイトに「c2」が保持される。
図14は、本発明の第1の実施の形態におけるウエイト分布情報作成部803によるウエイト分布情報の作成方法の概略を示す図である。図14に示す例は、図7の変形例であり、学習対象正面顔画像および学習対象非顔画像に関するウエイト分布情報の作成以外に、学習対象側面顔画像および学習対象非顔画像に関するウエイト分布情報を作成する点が図7とは異なる。そこで、以下では、図7と同様の構成については同一の符号を付して説明を省略し、図7と異なる部分を中心に説明する。
図14(a)に示すように、各学習対象画像における2点間の輝度の差分値の算出方法は、図7(a)に示す例と同様である。また、図14(b)に示すように、各学習対象正面顔画像および学習対象非顔画像における2点間の輝度の差分値に基づいてウエイト分布情報を作成する作成方法は、図7(b)に示す例と同様である。
ここで、図14(c)に示すウエイト分布情報は、学習対象側面顔画像および学習対象非顔画像に関するウエイト分布情報である点が、図7(b)に示す例と異なる。しかし、各学習対象側面顔画像および学習対象非顔画像における2点間の輝度の差分値に基づくウエイト分布情報の作成方法は、図7(b)に示す例と同様である。
具体的には、ウエイト分布情報作成部803が、輝度差分値算出部802により算出された差分値の階級に、この差分値が算出された学習対象画像に関連付けてウエイト保持部810に保持されているウエイト(Wi,cj t)を加算する。この加算処理は、クラス毎に行われる。すなわち、図14(b)に示す学習対象正面顔画像および学習対象非顔画像に関するウエイト分布グラフと、図14(c)に示す学習対象側面顔画像および学習対象非顔画像に関するウエイト分布グラフとについて行われる。例えば、図14(b)に示すように、学習対象正面顔画像831、学習対象非顔画像844について算出された差分値の階級に、各学習対象画像に対応するウエイト(W1,c1 t、WK,c1 t)が加算される。また、図14(c)に示すように、学習対象側面顔画像871、学習対象非顔画像844について算出された差分値の階級に、各学習対象画像に対応するウエイト(W1,c2 t、WK,c2 t)が加算される。このように、学習対象非顔画像については、図14(b)に示すウエイト分布グラフと、図14(c)に示すウエイト分布グラフとについて同時に加算処理が行われる。また、他の学習対象画像についても同様に、算出された差分値の階級に、各学習対象画像に対応するウエイト(Wi,cj t)が順次加算され、ウエイト分布情報が作成される。また、学習対象画像における他の2点の組合せ(ペア)についても、同様に、各学習対象画像に関連付けられているウエイト(Wi t)が順次加算され、ウエイト分布情報が作成される。このように、各学習対象画像における2点(画素位置P11およびP12)の組合せについて作成されたウエイト分布情報の例を図15に示す。
図15は、本発明の第1の実施の形態におけるウエイト分布情報作成部803により作成されたウエイト分布情報と、学習対象画像との関係の概略を示す図である。図15(a)には、学習対象正面顔画像群830、学習対象側面顔画像群870および学習対象非顔画像群840に含まれる各学習対象画像を示す。これらの各学習対象画像は、図12の一部と同様である。
図15(b)には、2点(画素位置P11およびP12)の組合せについて作成されたウエイト分布曲線(ウエイト分布情報)875および876を示す。ウエイト分布曲線875は、図14(b)に示すように、順次加算された階級毎のウエイト(Wi,c1 t)の積算値を、学習対象正面顔画像群および学習対象非顔画像群に含まれる各学習対象画像の種類毎に曲線で結んで作成された曲線である。また、ウエイト分布曲線876は、図14(c)に示すように、順次加算された階級毎のウエイト(Wi,c2 t)の積算値を、学習対象側面顔画像群および学習対象非顔画像群に含まれる各学習対象画像の種類毎に曲線で結んで作成された曲線である。これらのウエイト分布曲線により、学習対象画像の種類毎に応じた特徴的なウエイト分布状態を把握することができる。また、このウエイト分布曲線により、正面顔画像および非顔画像、左向き側面顔画像および非顔画像のそれぞれについて独立のウエイト分布を得ることができる。例えば、ウエイト分布曲線875では、右側に山が生成されている曲線を正面顔画像に対応する曲線とし、左側に山が生成されている曲線を非顔画像に対応する曲線とする。また、ウエイト分布曲線876では、右側に山が生成されている曲線を左向き側面顔画像に対応する曲線とし、左側に山が生成されている曲線を非顔画像に対応する曲線とする。例えば、ウエイト分布曲線875および876のうち、非顔画像に対応する曲線は、t=1の場合には、加算対象となる学習対象画像が同一であるため共通する。また、例えば、ウエイト分布曲線875および876のうち、正面顔画像に対応する曲線と、左向き側面顔画像に対応する曲線とは、加算対象となる学習対象画像が異なるため、互いに異なる曲線となる。
ここで、正面顔、左向き側面顔および非顔の判別を行うためのスレッショルドの決定方法について説明する。例えば、図15(b)に示すウエイト分布曲線875および876における横軸の値をd(dは、−255≦d≦255を満たす整数)とし、横軸の定数をth11(th11は、−255≦th11≦255を満たす整数)とする。この場合に、定数th11未満の学習対象正面顔画像のウエイト分布曲線上の値をPL c1+(d)とし、定数th11以上の学習対象正面顔画像のウエイト分布曲線上の値をPH c1+(d)とする。また、定数th11未満の学習対象側面顔画像のウエイト分布曲線上の値をPL c2+(d)とし、定数th11以上の学習対象側面顔画像のウエイト分布曲線上の値をPH c2+(d)とする。また、クラス(c1)について、定数th11未満の学習対象非顔画像のウエイト分布曲線上の値をPL c1−(d)とし、定数th11以上の学習対象非顔画像のウエイト分布曲線上の値をPH c1−(d)とする。また、クラス(c2)について、定数th11未満の学習対象非顔画像のウエイト分布曲線上の値をPL c2−(d)とし、定数th11以上の学習対象非顔画像のウエイト分布曲線上の値をPH c2−(d)とする。
この場合に、最適スレッショルド決定部804が、ウエイト分布曲線875および876のそれぞれについて、定数th11の両側のウエイト分布の総和を算出する。例えば、ウエイト分布曲線875については、次の式11乃至14を用いて、定数th11の両側のウエイト分布の総和PH c1+、PL c1+、PH c1−およびPL c1−が算出される。
また、例えば、ウエイト分布曲線876については、次の式15乃至18を用いて、定数th11の両側のウエイト分布の総和PH c2+、PL c2+、PH c2−およびPL c2−が算出される。
ここで、上述したように、ウエイト分布曲線875および876のうち、t=1の場合には、非顔画像に対応する曲線は共通するため、式13に示すPH c1−と、式17に示すPH c2−とは、同一の値となる。同様に、t=1の場合には、式14に示すPL c1−と、式18に示すPL c2−とは、同一の値となる。
続いて、最適スレッショルド決定部804が、算出されたウエイト分布の総和PH c1+、PL c1+、PH c1−、PL c1−、PH c2+、PL c2+、PH c2−およびPL c2−について、次の式19を用いて、値T11を算出する。
T11=√(PL c1+×PL c1−)+√(PH c1+×PH c1−)+√(PL c2+×PL c2−)+√(PH c2+×PH c2−)…式19
続いて、最適スレッショルド決定部804が、算出された値T11が最小となる定数th11を、図15(b)に示すウエイト分布曲線875および876に対応する2点(画素位置P11およびP12)の組合せに関するスレッショルドth11として決定する。また、学習対象画像における他の2点の組合せ(ペア)についても、同様に、ウエイト分布曲線(ウエイト分布情報)を用いて、スレッショルドを決定することができる。このように、各学習対象画像における2点の組合せについて、作成されたウエイト分布情報と、このウエイト分布情報に基づいて決定されたスレッショルドの例を図16に示す。
図16は、本発明の第1の実施の形態におけるウエイト分布情報作成部803により作成されたウエイト分布情報と、最適スレッショルド決定部804により決定されたスレッショルドとの関係を概略的に示す図である。また、図16には、ウエイト分布情報およびスレッショルドとともに、これらに対応する学習対象画像における2点の組合せを示す。なお、図16では、学習対象正面顔画像群830、学習対象側面顔画像群870および学習対象非顔画像群840に含まれる各学習対象画像のうち、学習対象正面顔画像831、学習対象側面顔画像871および学習対象非顔画像844のみを示す。また、図16(a)に示す学習対象画像における2点の組合せと、ウエイト分布情報と、スレッショルドとの関係は、図15に示す関係と同様である。
図16(b)には、学習対象画像における2点(画素位置Pq1およびPq2)の組合せについて作成されたウエイト分布曲線877および878と、ウエイト分布曲線877および878に基づいて決定されたスレッショルドthq1との関係を示す。
このように、最適スレッショルド決定部804が、学習対象画像における2点の各組合せ(ペア)について、ウエイト分布情報を用いて、スレッショルドth11乃至thq1を決定する。続いて、弱仮説決定部805が、決定されたスレッショルドth11乃至thq1のうち、上記式19を用いて算出された値T11が最小となるスレッショルドを決定する。そして、この決定されたスレッショルドに対応するウエイト分布情報の弱仮説を最良の弱仮説として決定する。
図17は、本発明の第1の実施の形態における弱仮説決定部805により決定された弱仮説に対応する各値を顔検出辞書に記録する記録方法を概略的に示す図である。図17(a)には、弱仮説決定部805により決定されたスレッショルドthr11に対応するウエイト分布曲線880および881と、学習対象画像における2点の組合せ(画素位置Pr11およびPr12)とを示す。なお、図17(a)では、スレッショルドthr11の位置を示す線分を太線で示す。また、ウエイト分布曲線880(クラス:c1)について、学習対象非顔画像に対応する曲線を曲線882で示し、学習対象正面顔画像に対応する曲線を曲線883で示す。また、ウエイト分布曲線881(クラス:c2)について、学習対象非顔画像に対応する曲線を曲線884で示し、学習対象側面顔画像に対応する曲線を曲線885で示す。
図17(b)には、弱仮説決定部805により決定されたスレッショルドthr11について4つの重みを算出する重み算出部806を示す。この重み算出部806が、ウエイト分布曲線880および881におけるスレッショルドthr11の両側のウエイト分布の総和に基づいて、正面顔に関する重みh(x,c1)と、左向き側面顔に関する重みh(x,c2)とを算出する。ここで、スレッショルドthr11の両側のウエイト分布の各総和は、PH c1+、PL c1+、PH c1−、PL c1−、PH c2+、PL c2+、PH c2−およびPL c2−である。また、正面顔に関する重みh(x,c1)は、2つの重みhH(x,c1)およびhL(x,c1)であり、左向き側面顔に関する重みh(x,c2)は、2つの重みhH(x,c2)およびhL(x,c2)である。具体的には、ウエイト分布曲線880におけるスレッショルドthr11の両側のウエイト分布の総和に基づいて、次の式20および式21を用いて、重みh(x,c1)が算出される。また、ウエイト分布曲線881におけるスレッショルドthr11の両側のウエイト分布の総和に基づいて、次の式22および式23を用いて、重みh(x,c2)が算出される。なお、式20乃至23で示すxは、検出対象となる画像を識別するものである。
図17(c)には、弱仮説決定部805により決定された弱仮説に対応する各値が、顔検出辞書826に記録される例を模式的に示す。この顔検出辞書826は、顔検出辞書記憶部820に記憶される。具体的には、弱仮説決定部805により決定されたスレッショルドthr11の値が、顔検出辞書826の閾値(θ)824に記録される。また、スレッショルドthr11に対応する2点の組合せ(画素位置Pr11およびPr12)のうちの1つの点(画素位置Pr11)が、顔検出辞書826の位置1(u1,v1)822に記録される。また、スレッショルドthr11に対応する2点の組合せ(画素位置Pr11およびPr12)のうちの他の点(画素位置Pr12)が、顔検出辞書826の位置2(u2,v2)823に記録される。また、スレッショルドthr11について算出された重みh(x,c1)と、重みh(x,c2)とが、顔検出辞書826の重み(α1およびα2)827に記録される。例えば、重みh(x,c1)のhH(x,c1)が重み(α1)827の(H)に記録され、重みh(x,c1)のhL(x,c1)が重み(α1)827の(L)に記録される。また、重みh(x,c2)のhH(x,c2)が重み(α2)827の(H)に記録され、重みh(x,c2)のhL(x,c2)が重み(α2)827の(L)に記録される。これらの各値は、記録制御部808により顔検出辞書826に記録される。
続いて、ウエイト更新部807が、次の式24を用いて、各学習対象画像に付与するウエイトWi,cj t+1を算出し、ウエイト保持部810に保持されているウエイトを更新する。
ここで、Wi,cj tおよびyiは、学習対象画像xiに関連付けてウエイト保持部810に保持されている値(図13に示す)である。また、ht(xi,ci)は、弱仮説決定部805により決定されたスレッショルドthr11に対応する2点の組合せ(画素位置Pr11およびPr12)について算出された各学習対象画像の輝度の差分値に応じて決定される値である。ここで、ciは、学習対象画像xiに関連付けてウエイト保持部810に保持されているクラス(図13に示す)を表す。具体的には、学習対象画像xiに関連付けてウエイト保持部810に保持されているクラス情報(ci)814に「c1」が格納されている場合には、式20および式21の何れかの重みh(x,c1)が用いられる。また、学習対象画像xiに関連付けてウエイト保持部810に保持されているクラス情報(ci)814に「c2」が格納されている場合には、式22および式23の何れかの重みh(x,c2)が用いられる。ここで、学習対象画像xiにおける2点の組合せ(画素位置Pr11およびPr12)について算出された輝度の差分値を差分値Pdとする。例えば、クラス情報(ci)814が「c1」である場合において、Pd≧thr11の場合には、式20に示すhH(x,c1)が用いられる。一方、Pd<thr11の場合には、式21に示すhL(x,c1)が用いられる。また、クラス情報(ci)814が「c2」である場合において、Pd≧thr11の場合には、式22に示すhH(x,c2)が用いられる。一方、Pd<thr11の場合には、式23に示すhL(x,c2)が用いられる。このように、輝度の差分値に応じて、ht(xi,ci)を選択して用いる。これにより、例えば、弱仮説決定部805により決定されたスレッショルドを基準として、異なる判別をされた学習対象画像については、ウエイトを重くして、次のループで反映され易くすることができる。このように、学習対象画像入力部801に入力された直後の各学習対象画像には同一の値(1/K)がウエイト(Wi,cj t)として付与されるが、t=2以降のウエイト(Wi,cj t)については、各学習対象画像に応じて変更される。
続いて、予定ループ数に達するまで、または、予定精度に達するまで上述した処理を繰り返す。
このように、本発明の第1の実施の形態によれば、対象物が2つ以上の場合でも、弱仮説決定部805により決定されたスレッショルドの上下に応じて異なる重みを算出することができる。このため、複数の対象物を同時に検出する顔検出処理において、判別が困難であった画像等についても容易に検出することができるようになり、顔検出精度を向上させることができる。
また、以上で示した例では、正面顔および左向きの側面顔の2つの対象物を検出するための対象物検出辞書を作成する例にして説明した。しかしながら、3以上の対象物を検出するための対象物検出辞書についても、この例を適用して作成することができる。この場合には、各クラス(cj)の重みh(x,cj)については、次の式25および式26を用いて算出することができる。
また、以上で示した例では、複数の対象物として、向きが互いに異なる人物の顔とする例について説明したが、例えば、犬および猫のように、種別が異なる複数の対象物に関する対象物検出辞書を作成する場合についても、この例を適用することができる。さらに、男女判定や年代判定等の属性判定を行うための属性判定辞書を作成する場合についても、この例を適用することができる。
このように作成された顔検出辞書826を用いて顔検出処理を行う場合には、顔検出辞書826に含まれるt=1からTまでの各情報を用いて、検出対象となる画像x(24画素×24画素)について、2つの対象物に関する最終仮説を算出する。すなわち、次の式27および式28を用いて、正面顔に関する最終仮説H(x,c1)と、左向きの側面顔に関する最終仮説H(x,c2)とが算出される。そして、H(x,c1)≧0であるか、H(x,c1)<0であるかに応じて、検出対象となる画像xに正面顔が含まれているか否かが判定される。また、H(x,c2)≧0であるか、H(x,c2)<0であるかに応じて、検出対象となる画像xに左向きの側面顔が含まれているか否かが判定される。なお、これらの顔判定については、図22乃至図25を参照して詳細に説明する。
このように、本発明の第1の実施の形態では、異なる2つの対象物に関する判定処理を同一の輝度差分値を用いて同時に行うことができる。これにより、顔検出処理を迅速に行うことができる。
[学習装置の動作例]
次に、本発明の第1の実施の形態における学習装置800の動作について図面を参照して説明する。
図18は、本発明の第1の実施の形態における学習装置800による対象物検出辞書作成処理の処理手順を示すフローチャートである。この例では、対象物として正面顔を検出するための顔検出辞書を作成する例について説明する。また、この例では、予定回数に達するまで、対象物検出辞書作成処理を繰り返す例について説明する。
最初に、学習対象画像入力部801に複数の学習対象正面顔画像および学習対象非顔画像が入力される(ステップS1001)。続いて、ウエイト更新部807が、各学習対象画像に付与されるウエイト(Wi t)を初期化する(ステップS1002)。すなわち、各学習対象画像には同一の値がウエイト(Wi t)として付与される。続いて、弱仮説決定処理が行われる(ステップS1010)。この弱仮説決定処理については、図19を参照して詳細に説明する。
続いて、重み算出部806が、決定された最良の弱仮説に対応するウエイト分布情報に基づいて重みを算出する(ステップS1003)。続いて、記録制御部808が、決定された弱仮説に対応する2点の組合せ(2点の画素位置)と、スレッショルドの値と、重みの値とを顔検出辞書に記録する(ステップS1004)。続いて、ウエイト更新部807が、決定された弱仮説に基づいて、各学習対象画像に付与するウエイトWi t+1を算出し、ウエイト保持部810に保持されているウエイトを更新する(ステップS1005)。続いて、予定回数に達したか否かが判断され(ステップS1006)、予定回数に達していない場合には(ステップS1006)、ステップS1010に戻る。一方、予定回数に達した場合には(ステップS1006)、対象物検出辞書作成処理の動作を終了する。
図19は、本発明の第1の実施の形態における学習装置800による対象物検出辞書作成処理の処理手順のうちの弱仮説決定処理手順(図18に示すステップS1010の処理手順)を示すフローチャートである。
最初に、輝度差分値算出部802が、各学習対象画像における画素位置の2点の組合せ(ペア)を1つ選択し(ステップS1011)、ウエイト加算の対象となる学習対象画像を1つ選択する(ステップS1012)。続いて、輝度差分値算出部802が、選択された学習対象画像における2点間の輝度を抽出し(ステップS1013)、この抽出された2点の輝度の差分値を算出する(ステップS1014)。続いて、ウエイト分布情報作成部803が、算出された差分値の階級に、この差分値が算出された学習対象画像に関連付けてウエイト保持部810に保持されているウエイトを加算する(ステップS1015)。このウエイト加算処理では、学習対象画像の種類毎にウエイトが加算され、学習対象画像の種類毎のウエイト分布情報が作成される。
続いて、学習対象画像入力部801に入力された全ての学習対象正面顔画像および学習対象非顔画像について、同一の2点間に関するウエイト加算処理が行われたか否かが判断される(ステップS1016)。全ての学習対象正面顔画像および学習対象非顔画像について、同一の2点間に関するウエイト加算処理が行われていない場合には(ステップS1016)、ステップS1012に戻る。一方、同一の2点間に関するウエイト加算処理が行われた場合には(ステップS1016)、最適スレッショルド決定部804が、作成されたウエイト分布情報について、上述した式6を用いて最適スレッショルドを決定する(ステップS1017)。
続いて、各学習対象画像における画素位置の2点の組合せの全てについてウエイト分布情報が作成されたか否かが判断される(ステップS1018)。画素位置の2点の組合せの全てについてウエイト分布情報が作成されていない場合には(ステップS1018)、ステップS1011に戻る。一方、画素位置の2点の組合せの全てについてウエイト分布情報が作成された場合には(ステップS1018)、弱仮説決定部805が、決定された最適スレッショルドに基づいて、最良の弱仮説を決定する(ステップS1019)。
次に、学習装置800により作成が可能な各辞書を撮像装置100に備える例について図面を参照して詳細に説明する。
[評価値算出辞書の構成例]
図20は、本発明の第1の実施の形態における判定対象画像について複数の評価値を算出するための評価値算出辞書の一例を示す図である。図20(a)には、評価値の算出対象となる複数の対象物を表す画像601乃至609を含む対象物画像群600を示す。ここで、本発明の第1の実施の形態では、複数の対象物として、いろいろな方向を向いている人物の顔を例にして説明する。すなわち、画像601乃至609は、いろいろな方向を向いている人物の顔を表す画像である。例えば、画像605は、正面向きの顔を含む画像であり、画像601乃至604、606乃至609は、正面以外の方向を向いている顔を含む画像である。
図20(b)には、図20(a)に示す画像601乃至609に対応する各評価値を同時に算出するための評価値算出辞書301を示す。評価値算出辞書301は、画像取出部233により取り出された判定対象画像について、評価値算出部235による評価値算出処理を行うための判断情報(例えば、ベクトル型弱仮説)であり、評価値算出辞書記憶部300に記憶されている。また、評価値算出辞書301に記憶されている各値は、例えば、学習装置800により作成される。また、評価値算出辞書301は、判断基準のみに関するデータを保持する判断情報であり、画像そのものを保持するものではない。このため、記憶容量を削減することができるとともに、判定処理を迅速に行うことができる。
評価値算出辞書301には、位置1(u1,v1)302と、位置2(u2,v2)303と、閾値(θ)304と、重み(α1乃至α9)305との組合せがそれぞれT組格納されている。
位置1(u1,v1)302および位置2(u2,v2)303は、判定対象画像における2点の位置である。ここで、例えば、判定対象画像における左上隅を原点とする場合に、判定対象画像における水平方向の位置をu1およびu2とし、学習対象画像における垂直方向の位置をv1およびv2とする。
閾値(θ)304は、位置1(u1,v1)302の輝度値と、位置2(u2,v2)303の輝度値との差分値に関する閾値である。
重み(α1乃至α9)305は、位置1(u1,v1)302の輝度値と、位置2(u2,v2)303の輝度値との差分値と、閾値(θ)304との比較結果に基づいて加算される重みα1乃至α9である。この重みα1乃至α9は、図20(a)に示す画像601乃至609に対応する各評価値を算出するための値であり、図20では、図20(a)に示す画像601乃至609と、これに対応する重みα1乃至α9とを矢印で結んで示す。また、重みα1乃至α9のそれぞれについては、2つの異なる値(HおよびL)が格納されている。
ここで、評価値算出辞書301は、図21に示す顔判定辞書311乃至319による顔判定処理を行う対象となる対象物を絞り込むための評価値を算出するものであり、単独で顔検出を行うものではない。そこで、評価値算出辞書301は、顔判定辞書311乃至319を用いた評価値の算出精度よりも条件を緩和したものが用いられる。例えば、評価値算出辞書301を作成する場合には、数千から数万のサンプル画像を用いて、T=100程度とすることができる。なお、本発明の第1の実施の形態では、各レコードの閾値として共通の値を用いる例を示すが、各対象物(クラス)に応じて変更した閾値を用いるようにしてもよい。また、例えば、複数の対象物に関する評価値を同時に算出する評価値算出辞書を作成する際に、各対象物について用いられたサンプル画像の数が大きく異なっている場合が想定される。この場合には、評価値算出処理の際に、サンプル画像の数に応じて正規化または調整操作等を行うようにしてもよい。なお、これらの各値を用いて行われる評価値の算出については、図23等を参照して詳細に説明する。
[顔判定辞書の構成例]
図21は、本発明の第1の実施の形態における判定対象画像に顔が含まれるか否かを判定するための顔判定辞書の例を示す図である。図21(a)には、図20(a)および図21(b)に示す画像601乃至609に対応する評価値を算出して顔判定を行うための顔判定辞書311乃至319を示す。顔判定辞書311乃至319は、画像取出部233により取り出された判定対象画像について、顔判定部237による顔判定処理を行うための判断情報(例えば、スカラ型弱仮説)であり、顔判定辞書記憶部310に記憶されている。また、顔判定辞書311乃至319に記憶されている各値は、例えば、学習装置800により作成される。なお、顔判定辞書311乃至319は、判断基準のみに関するデータを保持する判断情報であり、画像そのものを保持するものではない。このため、記憶容量を削減することができるとともに、判定処理を迅速に行うことができる。ここで、顔判定辞書311乃至319は、各項目の値が異なるが、各項目の形式は同一である。このため、図21(a)では、顔判定辞書311および319の記憶内容のみを代表して示し、他の記憶内容についての図示は省略する。なお、図21(b)に示す画像601乃至609は、図20(a)に示す画像601乃至609と同一であり、判定対象となる複数の対象物を表す画像である。また、図21では、図21(b)に示す画像601乃至609と、これに対応する顔判定辞書311乃至319とを矢印で結んで示す。
顔判定辞書311には、位置1(u1,v1)321と、位置2(u2,v2)322と、閾値(θ)323と、重み(α)324との組合せがそれぞれZ組格納されている。
位置1(u1,v1)321および位置2(u2,v2)322は、判定対象画像における2点の位置である。
閾値(θ)323は、位置1(u1,v1)321の輝度値と、位置2(u2,v2)322の輝度値との差分値に関する閾値である。
重み(α)324は、位置1(u1,v1)321の輝度値と、位置2(u2,v2)322の輝度値との差分値と、閾値(θ)323との比較結果に基づいて加算される重みαである。また、重み(α)324には、2つの異なる値(HおよびL)が格納されている。
ここで、顔判定辞書311乃至319は、上述したように、評価値算出辞書301を用いた評価値の算出精度よりも条件を厳密にしたものが用いられる。例えば、顔判定辞書311乃至319を作成する場合には、数万のサンプル画像を用いて、Z=2000乃至3000とすることができる。ここで、例えば、複数の対象物に関する評価値を算出する顔判定辞書を作成する際に、各対象物について用いられたサンプル画像の数が大きく異なっている場合が想定される。この場合には、評価値算出処理の際に、サンプル画像の数に応じて正規化または調整操作等を行うようにしてもよい。また、これらの各値を用いて行われる評価値の算出については、図24等を参照して詳細に説明する。
[画像に含まれる顔の検出例]
図22は、本発明の第1の実施の形態における顔検出部230による顔検出処理の対象となる判定対象画像を取り出す画像取出方法の概略を示す図である。図22(a)には、画像取得部231により取得された撮像画像400を示し、図22(b)乃至(d)には、画像縮小部232により撮像画像400に縮小処理が施された画像410、420、430を示す。なお、この判定対象画像の取出しは、画像取出部233により行われる。
図22(a)に示す撮像画像400は、互いに異なる方向を向いている3人の人物を被写体とする撮像画像である。この撮像画像400から判定対象画像を取り出す場合には、図22(b)乃至(d)に示すように、画像縮小部232により撮像画像400が順次縮小された画像410、420、430が生成される。例えば、画像410の左上隅に取出枠401が配置され、取出枠401内に含まれる画像が取り出される。続いて、取出枠が右側方向(矢印411および412に示す方向)に1画素シフトされて、取出枠内に含まれる画像が取り出される。同様に、取出枠が1画素ずつ右側方向に順次シフトされて、取出枠内に含まれる画像が順次取り出される。そして、画像410の右端の位置にシフトされて、その位置の取出枠内に含まれる画像が取り出されると、取出枠が1画素下側にシフトされるとともに画像410の左端に移動される。続いて、画像410の左端に移動直後の取出枠内に含まれる画像が取り出された後に、取出枠が1画素ずつ右側方向に順次シフトされて、取出枠内に含まれる画像が順次取り出される。以下、同様に取出枠内に含まれる画像が順次取り出される。そして、画像410の右端および下端となる取出枠の位置413にシフトされて、その位置413の取出枠内に含まれる画像が取り出されると、画像410からの判定対象画像の取出処理を終了する。
また、図22(c)および(d)に示す画像420および430では、最初の配置位置に取出枠401を配置した例を示すとともに、取出枠401の最後の配置位置を位置421および431として示す。なお、取出枠401の最初の配置位置から最後の配置位置までの移動については、図22(b)に示す移動と同様である。また、取出枠401の大きさは、取出の対象となる画像の大きさにかかわらず一定である。そして、画像縮小部232により縮小処理が施された画像の大きさが、取出枠401よりも小さくなるまで、画像の取出処理が行われる。なお、縮小処理の対象となる元の画像は、例えば、320画素×240画素の画像である。また、画像縮小部232により行われる縮小処理は、例えば、前の画像を0.83倍に縮小する縮小処理とすることができる。
次に、判定対象画像について評価値算出辞書を用いて評価値算出処理を行う例について図面を参照して詳細に説明する。
図23は、本発明の第1の実施の形態における画像取出部233より取り出された判定対象画像と、この判定対象画像について評価値算出部235により算出された評価値との一例を示す図である。図23(a)には、判定対象画像の一例として判定対象画像440を示す。また、図23(a)に示す例では、判定対象画像440の左上隅を原点とし、横軸をu軸とし、縦軸をv軸とする判定対象画像440について、評価値算出処理を行う場合を例にして説明する。
例えば、図20(b)に示す評価値算出辞書301の1行目に格納されている位置1(u1,v1)302の値に対応する判定対象画像440の位置を位置441とし、位置2(u2,v2)303の値に対応する判定対象画像440の位置を位置442とする。また、評価値算出辞書301の2行目に格納されている位置1(u1,v1)302の値に対応する判定対象画像440の位置を位置443とし、位置2(u2,v2)303の値に対応する判定対象画像440の位置を位置444とする。さらに、評価値算出辞書301の3行目に格納されている位置1(u1,v1)302の値に対応する判定対象画像440の位置を位置445とし、位置2(u2,v2)303の値に対応する判定対象画像440の位置を位置446とする。
最初に、評価値を示すスコアS1乃至S9の値に0がセットされ、評価値算出辞書301の1行目に格納されている各値を用いた演算が行われる。具体的には、評価値算出辞書301の1行目に格納されている位置1(u1,v1)302の値に対応する位置441における輝度値A(1)と、位置2(u2,v2)303の値に対応する位置442における輝度値B(1)とが抽出される。そして、次式を用いて、抽出された各輝度値の差分値C(1)が算出される。
C(1)=A(1)−B(1)
続いて、算出された各輝度値の差分値C(1)と、評価値算出辞書301の1行目に格納されている閾値(θ)304の閾値θ(1)とが比較され、算出された差分値C(1)が閾値θ(1)のよりも小さいか否かが判断される。算出された差分値C(1)が閾値θ(1)よりも小さい場合には、評価値算出辞書301の1行目に格納されている重み(α1乃至α9)305のLの各値が、対応するスコアS1乃至S9に順次加算される。具体的には、スコアS1に重みα1(L)の値が加算され、スコアS2に重みα2(L)の値が加算され、スコアS3に重みα3(L)の値が加算される。また、スコアS4に重みα4(L)の値が加算され、スコアS5に重みα5(L)の値が加算され、スコアS6に重みα6(L)の値が加算される。また、スコアS7に重みα7(L)の値が加算され、スコアS8に重みα8(L)の値が加算され、スコアS9に重みα9(L)の値が加算される。
一方、算出された差分値C(1)が閾値θ(1)以上である場合には、評価値算出辞書301の1行目に格納されている重み(α1乃至α9)305のHの各値が、対応するスコアS1乃至S9に順次加算される。具体的には、スコアS1に重みα1(H)の値が加算され、スコアS2に重みα2(H)の値が加算され、スコアS3に重みα3(H)の値が加算される。また、スコアS4に重みα4(H)の値が加算され、スコアS5に重みα5(H)の値が加算され、スコアS6に重みα6(H)の値が加算される。また、スコアS7に重みα7(H)の値が加算され、スコアS8に重みα8(H)の値が加算され、スコアS9に重みα9(H)の値が加算される。
続いて、評価値算出辞書301の2行目に格納されている各値を用いて、上述した各演算を繰り返す。具体的には、評価値算出辞書301の2行目に格納されている位置1(u1,v1)302の値に対応する位置443における輝度値A(2)と、位置2(u2,v2)303の値に対応する位置444における輝度値B(2)とが抽出される。そして、次式を用いて、抽出された各輝度値の差分値C(2)が算出される。
C(2)=A(2)−B(2)
続いて、算出された各輝度値の差分値C(2)と、評価値算出辞書301の2行目に格納されている閾値(θ)304の閾値θ(2)とが比較され、算出された差分値C(2)が閾値θ(2)よりも小さいか否かが判断される。算出された差分値C(2)が閾値θ(2)よりも小さい場合には、評価値算出辞書301の2行目に格納されている重み(α1乃至α9)305のLの各値が、対応するスコアS1乃至S9に加算される。一方、算出された差分値C(2)が閾値θ(2)以上である場合には、評価値算出辞書301の2行目に格納されている重み(α1乃至α9)305のHの各値が、対応するスコアS1乃至S9に順次加算される。続いて、評価値算出辞書301の3行目以降、T行目までに格納されている各値を順次用いて、上述した各演算を繰り返す。
すなわち、評価値算出部235が、判定対象画像440について評価値算出辞書301を用いた評価値算出処理を行う場合には、評価値算出辞書301の1行目乃至T行目に格納されている各値を順次用いて、式29を用いてC(i)を算出する。そして、算出されたC(i)が式30を満たすか否かを判定する。ここで、変数iは整数であり、1からTまでの値を示す。
C(i)=A(i)−B(i)… 式29
C(i)<θ(i) … 式30
そして、算出されたC(i)が式30を満たす場合には、評価値算出部235が、α1L(i)乃至α9L(i)の各値を、対応するスコアS1乃至S9に加算する。一方、算出されたC(i)が式30を満たさない場合には、評価値算出部235が、α1H(i)乃至α9H(i)の各値を、対応するスコアS1乃至S9に加算する。ここで、A(i)は、i行目に格納されている位置1(u1,v1)302に対応する輝度値を表し、B(i)は、i行目に格納されている位置2(u2,v2)303に対応する輝度値を表す。また、θ(i)は、i行目に格納されている閾値(θ)304の値を表す。また、α1H(i)乃至α9H(i)は、i行目に格納されている重み(α1乃至α9)305のHの各値を表し、α1L(i)乃至α9L(i)は、重み(α1乃至α9)305のLの各値を表す。
ここで、評価値算出辞書301の1乃至T行目に格納されている各値を用いた各演算の終了後におけるスコア(評価値)S1乃至S9は、次の式31により表すことができる。
ここで、h(xi,cj)は、C(i)≧θ(i)の場合には、式25により算出されたαjH(i)を表し、C(i)<θ(i)の場合には、式26により算出されたαjL(i)を表すものとする。また、j=1乃至9とする。
図23(b)には、評価値の算出対象となった顔を表す画像601乃至609と、判定対象画像440について評価値算出部235により算出された評価値S1乃至S9との関係を示す。図23(b)に示すように、評価値算出辞書301のT行目に格納されている各値を用いた各演算が終了すると、9つの評価値S1乃至S9が算出される。なお、図23(b)では、評価値S1乃至S9の大きさを棒グラフで模式的に表す。
このように、評価値算出部235により算出された評価値S1乃至S9が選択部236に出力される。そして、選択部236が、評価値S1乃至S9のうち、閾値447以上の評価値を抽出する。例えば、図23(b)に示す評価値S1乃至S9のうち、画像601、602、606乃至608に対応する評価値S1、S2、S6乃至S8が抽出される。続いて、選択部236が、抽出された評価値のうち、値が高い上位3つの評価値を選択し、選択された評価値に対応する対象物に関する情報(選択対象物情報)を顔判定部237に出力する。例えば、抽出された評価値S1、S2、S6乃至S8のうち、値が高い上位3つの評価値として評価値S1、S7およびS8が選択される。図23(b)では、選択された評価値S1、S7およびS8を示す棒グラフ内に斜線を付して示す。続いて、選択された評価値S1、S7およびS8に対応する選択対象物情報が顔判定部237に出力される。
なお、選択部236は、評価値S1乃至S9のうち、閾値447以上の評価値が存在しない場合には、その旨を顔判定部237に出力する。また、選択部236は、評価値S1乃至S9のうち、閾値447以上の評価値が1または2のみ存在する場合には、その1または2の評価値に対応する選択対象物情報を顔判定部237に出力する。ここで、閾値447として、例えば、0を用いることができる。また、比較的低い信頼度とするため、0以下の値を用いるようにしてもよく、他の値を用いるようにしてもよい。
次に、判定対象画像について顔判定辞書を用いて顔判定処理を行う例について図面を参照して詳細に説明する。
図24は、本発明の第1の実施の形態における画像取出部233より取り出された判定対象画像と、この判定対象画像について顔判定部237により算出された評価値との一例を示す図である。図24(a)には、判定対象画像の一例として判定対象画像440を示す。なお、判定対象画像440は、図23(a)に示す判定対象画像440と同一である。また、この例では、図23(a)に示す例と同様に判定対象画像440について2次元座標を設定し、顔判定処理を行う場合を例にして説明する。
最初に、顔判定部237は、選択部236により選択された評価値に対応する対象物を判定するための顔判定辞書を顔判定辞書記憶部310から取得し、顔判定辞書メモリ239に保持させる。例えば、図23(b)に示すように、選択部236により評価値S1、S7およびS8が選択された場合には、評価値S1、S7およびS8に対応する顔判定辞書311、317および318が取得され、顔判定辞書メモリ239に保持される。続いて、顔判定部237が、顔判定辞書メモリ239に保持された各顔判定辞書を用いて、各顔判定辞書に関する評価値を順次算出する。なお、顔判定部237による顔判定辞書を用いた評価値の算出は、重み(α)の数が異なる以外は、評価値算出部235による評価値算出辞書を用いた評価値の算出と同様である。
例えば、顔判定辞書311のi行目に格納されている位置1(u1,v1)321に対応する輝度値をA(i)で表し、位置2(u2,v2)322に対応する輝度値をB(i)で表し、輝度値A(i)と輝度値B(i)との差分値をC(i)で表す。また、顔判定辞書311のi行目に格納されている閾値(θ)323の値を閾値θ(i)で表し、i行目に格納されている重み(α)324のHの値をαH(i)で表し、重み(α)324のLの値をαL(i)で表す。
例えば、判定対象画像440について顔判定辞書311を用いて評価値算出処理を行う場合には、評価値を示すスコアSの値に0がセットされる。そして、顔判定部237が、顔判定辞書311の1行目乃至Z行目に格納されている各値を順次用いて、式32を用いてC(i)を算出する。続いて、算出されたC(i)が式33を満たすか否かを判定する。ここで、変数iは整数であり、1からZまでの値を示す。
C(i)=A(i)−B(i)… 式32
C(i)<θ(i) … 式33
そして、算出されたC(i)が式33を満たす場合には、顔判定部237が、αL(i)の値をスコアSに加算する。一方、算出されたC(i)が式33を満たさない場合には、顔判定部237が、αH(i)の値をスコアSに加算する。
ここで、顔判定辞書311の1乃至Z行目に格納されている各値を用いた各演算の終了後におけるスコア(評価値)Sは、次の式34により表すことができる。
ここで、h(xi)は、C(i)≧θ(i)の場合には、式7により算出されたαH(i)を表し、C(i)<θ(i)の場合には、式8により算出されたαL(i)を表すものとする。なお、他の顔判定辞書312乃至319についても同様にスコア(評価値)Sを算出することができる。なお、図24および図25では、顔判定辞書311乃至319を用いて算出される各評価値を評価値SS1乃至SS9で示す。
図24(b)には、評価値の算出対象となった顔を表す画像601、607および608と、判定対象画像440について顔判定部237により算出された評価値SS1、SS7およびSS8との関係を示す。図24(b)に示すように、顔判定辞書311のZ行目に格納されている各値を用いた各演算が終了すると、1つの評価値SS1が算出される。同様に、顔判定辞書317のZ行目に格納されている各値を用いた各演算が終了すると、1つの評価値SS7が算出され、顔判定辞書318のZ行目に格納されている各値を用いた各演算が終了すると、1つの評価値SS8が算出される。なお、図24(b)では、評価値SS1、SS7およびSS8の大きさを棒グラフで模式的に表す。
このように、算出された評価値SS1、SS7およびSS8に基づいて、顔判定部237が、判定対象画像440に顔が含まれるか否かを判定する。すなわち、顔判定部237が、算出された評価値のうち、閾値以上であるとともに、最も高い値の評価値を選択し、この選択された評価値に対応する顔が、判定対象画像440に含まれていると判定する。例えば、図24(b)に示す評価値SS1、SS7およびSS8のうち、閾値448以上となる評価値は評価値SS7およびSS8である。また、評価値SS7およびSS8のうち、最も値が高い評価値SS7が選択される。そして、評価値SS7に対応する画像607に含まれる顔が、判定対象画像440に含まれていると判定される。この判定結果が、判定結果出力部238に出力される。
なお、顔判定部237は、算出された評価値のうち、閾値448以上の評価値が存在しない場合には、判定対象画像440に対象となる顔が含まれていないと判定し、その旨を判定結果出力部238に出力する。ここで、閾値448として、例えば、0を用いることができる。また、比較的高い信頼度とするため、0以上の値を用いるようにしてもよく、他の値を用いるようにしてもよい。
このように、判定対象画像の解像度を同一の解像度とし、評価値算出に用いる特徴量を2点間の輝度値に統一することにより、複数の顔判定辞書を切り替え可能とすることができ、複数の評価値を同一のアルゴリズムで作成することができる。
図25は、本発明の第1の実施の形態における顔検出部230により顔検出を行う場合における流れを模式的に示す図である。図25(a)には、画像取出部233より取り出された判定対象画像440を示す。この判定対象画像440は、図23および図24に示す判定対象画像440と同一である。
図25(b)には、判定対象となる顔を表す画像601乃至609と、判定対象画像440について評価値算出部235により算出された評価値S1乃至S9との関係を示す。なお、図25(b)に示す関係は、図23(b)に示す関係と同様である。また、図25(b)では、選択部236により選択された評価値に対応する領域を太枠で囲んで表す。
図25(c)には、判定対象となる顔を表す画像601乃至609と、判定対象画像440について顔判定部237により算出された評価値SS1、SS7およびSS8との関係を示す。なお、図25(c)では、顔判定部237により評価値が算出された領域を太枠で囲んで表す。
ここで、図25(b)に示す評価値S1乃至S9は、図25(c)に示す評価値SS1乃至SS9を算出するための対象物を絞り込むための評価値である。このため、例えば、評価値S1乃至S9の信頼度を比較的低いものとすることができる。これにより、評価値算出の演算量を削減することができ、評価値算出処理を迅速に行うことができる。なお、評価値S1乃至S9の信頼度を比較的低いものとするため、例えば、図25(b)に示すように、判定対象画像440に含まれる顔と類似していない画像601に対応する評価値S1の値が大きくなることが想定される。このような場合でも、顔判定辞書311乃至319を用いた評価値の信頼度を高くしているため、例えば、図25(c)に示すように、判定対象画像440に含まれる顔との類似度が高い画像607を最終的に判定することができる。このように、信頼度が比較的低い第1段階の評価値に基づいて、判定対象となる対象物を絞り込むことにより、信頼度が高い第2段階の評価値の算出処理の対象を削減させるができるため、顔検出処理を迅速に行うことができる。また、例えば、第1段階において1または2程度の評価値が誤って算出されたような場合でも、信頼度が高い第2段階の評価値に基づいて、正確な判定を行うことができるため、高精度の対象物検出を実現することができる。
ここで、例えば、木構造を採用し、顔の向きの種類毎に作成された複数の判別器を用いて、ツリーが示す分岐に従って顔の向きを順次判別させながら、いろいろな方向を向いている顔を検出する検出方法を考える。この検出方法では、顔の向きを順次判別させながら顔を検出するため、例えば、結論にいたるまでの平均弱仮説が長くなり効率が悪くなるおそれがある。また、リーフに辿りつくまでの判定に誤りがあり、ノード分岐を間違えてしまうと、後戻りができず、適切な顔検出を行うことができないおそれがある。
これに対して、本発明の第1の実施の形態では、ノード分岐ロジックがないため、結論にいたるまでの平均弱仮説を短くすることができ、効率を高めることができる。また、第1段階において算出された評価値については、顔の向きの種類にかかわらず、全体の対象物の中から顔判定対象となる候補を選択するため、例えば、何れの対象物に対応するかが微妙な顔であっても検出もれを少なくすることができる。また、木構造を採用せずに、顔検出処理の第1段階において同時評価を行うため、実現形態が容易であり、誤分岐の影響をなくすことができる。また、顔検出処理の第1段階において、複数の対象物に関する評価値を同一の特徴量を用いて同時に算出することができるため、評価値算出処理に係る効率を高めることができる。また、第1段階において用いられる複数の対象物に関する評価値を同時に算出することが可能な辞書を作成する場合には、各対象物に関する辞書を同時に作成することができるため、学習の収束性を高めることができる。
また、評価値算出の際には、各辞書における閾値よりも小さい場合と大きい場合とに応じて、スコアに乗算する重みを変更して演算を行う。これにより、判定対象画像における物理量に対する分布が複雑な場合でも、その分布から効率よく判別を行うことが可能になる。
図26は、本発明の第1の実施の形態における顔検出部230による顔検出処理の対象となった撮像画像400と、顔検出部230による顔検出処理の検出結果とを示す図である。撮像画像400は、図22(a)に示す撮像画像400と同一であり、3人の人物が含まれる。また、撮像画像400において、3人の人物の顔が検出された場合における検出結果を枠461乃至463で模式的に示す。この枠461乃至463は、顔検出部230による顔検出処理の検出結果として、位置および大きさを表す枠である。この検出結果に基づいて、例えば、カメラパラメータ制御部220が、検出された顔に最適なカメラパラメータを決定することができる。また、例えば、表示部170に撮像画像400が表示されている場合には、撮像画像400に枠461乃至463を重ねて表示させることができる。図26に示すように、例えば、傾いている顔や寝転んでいる人物の顔等についても、適切に検出することができる。
[撮像装置の動作例]
次に、本発明の第1の実施の形態における撮像装置100の動作について図面を参照して説明する。
図27は、本発明の第1の実施の形態における撮像装置100による撮像画像記録処理の処理手順を示すフローチャートである。この例では、撮像画像記録待機状態である場合に、撮像画像を生成し、この撮像画像について顔検出処理を行う例について説明する。
最初に、撮像画像記録待機状態であるか否かが判断される(ステップS901)。撮像画像記録待機状態である場合には(ステップS901)、撮像部112が撮像画像を生成し(ステップS902)、生成された撮像画像について顔検出部230が顔検出処理を行う(ステップS920)。この顔検出処理については、図28を参照して詳細に説明する。なお、この顔検出処理は各フレームに対して行うようにしてもよく、一定間隔毎のフレームに対して行うようにしてもよい。一方、撮像画像記録待機状態でない場合には(ステップS901)、撮像画像記録処理の動作を終了する。
続いて、カメラパラメータ制御部220がカメラパラメータを決定する(ステップS903)。例えば、顔検出部230から顔検出情報が出力された場合には、カメラパラメータ制御部220が、検出された顔の撮像画像における位置および大きさに基づいて、検出された顔に最適なカメラパラメータを決定する。続いて、シャッターボタンが押下されたか否かが判断され(ステップS904)、シャッターボタンが押下された場合には、生成された撮像画像が記録部150に記録される(ステップS905)。一方、シャッターボタンが押下されない場合には(ステップS904)、撮像画像記録処理の動作を終了する。
図28は、本発明の第1の実施の形態における撮像装置100による撮像画像記録処理の処理手順のうちの顔検出処理手順(図27に示すステップS920の処理手順)を示すフローチャートである。
最初に、記憶装置部130に記憶されている現在の撮像画像が取得される(ステップS921)。続いて、取得された撮像画像上の左上隅に取出枠が配置され(ステップS922)、この取出枠内の画像が取り出される(ステップS923)。続いて、取出枠内から取り出された画像(判定対象画像)について判定処理が実行される(ステップS940)。なお、この判定処理については、図29を参照して詳細に説明する。
続いて、判定対象画像が取出枠よりも小さいか否かが判断される(ステップS924)。判定対象画像が取出枠よりも小さくない場合には(ステップS924)、判定対象画像の右端に取出枠が存在するか否かが判断される(ステップS925)。判定対象画像の右端に取出枠が存在しない場合には(ステップS925)、判定対象画像上において取出枠が1画素右側にシフトして配置され(ステップS926)、ステップS923に戻る。一方、判定対象画像の右端に取出枠が存在する場合には(ステップS925)、判定対象画像の下端に取出枠が存在するか否かが判断される(ステップS927)。判定対象画像の下端に取出枠が存在しない場合には(ステップS927)、判定対象画像上において取出枠が1画素下側にシフトされるとともに、判定対象画像の左端に配置され(ステップS928)、ステップS923に戻る。判定対象画像の下端に取出枠が存在する場合には(ステップS927)、判定対象画像が所定倍率で縮小処理され(ステップS929)、縮小処理後の画像上の左上隅に取出枠が配置される(ステップS922)。
一方、判定対象画像が取出枠よりも小さい場合には(ステップS924)、判定対象画像に顔が含まれていると判定されたか否かが判断される(ステップS930)。判定対象画像に顔が含まれていると判定された場合には(ステップS930)、判定結果として顔を検出した旨を示す顔検出情報が出力される(ステップS932)。ここで、判定対象画像に複数の顔が含まれていると判定された場合には、複数の顔に関する顔検出情報を出力する。また、重複する領域について、顔が含まれていると複数回判定された場合には、例えば、ステップS940の判定処理において顔判定辞書を用いて算出されるスコア(評価値)が最大となる取出枠の位置および大きさに基づいて顔検出情報を出力する。一方、判定対象画像に顔が含まれていると判定されない場合には(ステップS930)、判定結果として顔を検出しない旨を示す顔無検出情報が出力される(ステップS931)。
なお、この例では、判定対象画像に顔が含まれていると一度判定された場合でも、判定対象画像が取出枠よりも小さくなるまで判定処理を繰り返し行い、この判定結果に基づいて、現在の撮像画像から顔が検出されたか否かを判定する例について説明した。しかし、判定対象画像に顔が含まれていると一度判定された場合には、他の判定対象画像を判定処理することなく、現在の撮像画像から顔が検出された旨を示す顔検出情報を出力するようにしてもよい。
図29は、本発明の第1の実施の形態における撮像装置100による顔検出処理の処理手順のうちの判定処理手順(図28に示すステップS940の処理手順)を示すフローチャートである。
最初に、評価値算出部235が、第1評価値算出処理を行う(ステップS950)。この第1評価値算出処理については、図30を参照して詳細に説明する。なお、ステップS950は、特許請求の範囲に記載の算出手順の一例である。続いて、選択部236が、評価値算出部235により算出された複数の評価値のうち、閾値以上の評価値が存在するか否かを判断する(ステップS941)。評価値算出部235により算出された複数の評価値のうち、閾値以上の評価値が存在する場合には(ステップS941)、選択部236が、閾値以上の評価値のうちから、値が高い所定数の評価値を選択する(ステップS942)。例えば、評価値算出部235により算出される評価値が9の場合には、値が高い順に最大で3つの評価値を選択する。
続いて、顔判定部237が、選択された評価値に対応する対象物に係る顔判定辞書を顔判定辞書記憶部310から取得し、顔判定辞書メモリ239に保持させる(ステップS943)。続いて、顔判定部237が、顔判定辞書メモリ239に保持されている顔判定辞書を用いて、第2評価値算出処理を行う(ステップS970)。この第2評価値算出処理については、図31を参照して詳細に説明する。
続いて、顔判定部237が、算出された1または複数の評価値のうち、閾値以上の評価値が存在するか否かを判断する(ステップS944)。算出された1または複数の評価値のうち、閾値以上の評価値が存在する場合には(ステップS944)、顔判定部237が、閾値以上の評価値のうちから、最も値が高い評価値を選択する。そして、この評価値に対応する対象物が、判定対象画像に含まれていると判定する(ステップS945)。なお、ステップS970、S944およびS945は、特許請求の範囲に記載の判定手順の一例である。
なお、評価値算出部235により算出された評価値のうち閾値以上の評価値が存在しない場合(ステップS941)、または、顔判定部237により算出された評価値のうち閾値以上の評価値が存在しない場合には(ステップS944)、判定処理の動作を終了する。
図30は、本発明の第1の実施の形態における撮像装置100による顔検出処理の処理手順のうちの第1評価値算出処理手順(図29に示すステップS950の処理手順)を示すフローチャートである。
最初に、スコアS1乃至S9が「0」に初期化され(ステップS951)、変数iが「1」に初期化される(ステップS952)。続いて、評価値算出部235が、評価値算出辞書301のi行目に格納されている位置1(u1,v1)および位置2(u2,v2)に対応する輝度値を判定対象画像から抽出する(ステップS953)。この例では、位置1(u1,v1)に対応する輝度値をA(i)とし、位置2(u2,v2)に対応する輝度値をB(i)とする。続いて、評価値算出部235が、抽出された2つの輝度値の差分値(A(i)−B(i))を算出する(ステップS954)。
続いて、評価値算出部235が、算出された差分値(A(i)−B(i))が、評価値算出辞書301のi行目に格納されている閾値θ(i)よりも小さいか否かを判断する(ステップS955)。算出された差分値(A(i)−B(i))が閾値θ(i)よりも小さい場合には(ステップS955)、評価値算出部235が、評価値算出辞書301のi行目に格納されているα1L(i)乃至α9L(i)をスコアS1乃至S9に順次加算する(ステップS956)。一方、算出された差分値(A(i)−B(i))が閾値θ(i)よりも小さくない場合には(ステップS955)、評価値算出部235が、i行目に格納されているα1H(i)乃至α9H(i)をスコアS1乃至S9に順次加算する(ステップS957)。
続いて、変数iに「1」が加算され(ステップS958)、変数iがTよりも大きいか否かが判断される(ステップS959)。変数iがTよりも大きくない場合には(ステップS959)、ステップS953に戻り、評価値算出処理を繰り返す(ステップS953乃至S958)。一方、変数iがTよりも大きい場合には(ステップS959)、第1評価値算出処理の動作を終了する。
図31は、本発明の第1の実施の形態における撮像装置100による顔検出処理の処理手順のうちの第2評価値算出処理手順(図29に示すステップS970の処理手順)を示すフローチャートである。
最初に、スコアSが「0」に初期化され(ステップS971)、変数iが「1」に初期化される(ステップS972)。続いて、顔判定部237が、顔判定辞書メモリ239に保持されている1つの顔判定辞書について、この顔判定辞書のi行目に格納されている位置1(u1,v1)および位置2(u2,v2)に対応する輝度値を判定対象画像から抽出する(ステップS973)。この例では、位置1(u1,v1)に対応する輝度値をA(i)とし、位置2(u2,v2)に対応する輝度値をB(i)とする。続いて、顔判定部237が、抽出された2つの輝度値の差分値(A(i)−B(i))を算出する(ステップS974)。
続いて、顔判定部237が、算出された差分値(A(i)−B(i))が、現在の顔判定辞書のi行目に格納されている閾値θ(i)よりも小さいか否かを判断する(ステップS975)。算出された差分値(A(i)−B(i))が閾値θ(i)よりも小さい場合には(ステップS975)、顔判定部237が、現在の顔判定辞書のi行目に格納されているαL(i)をスコアSに加算する(ステップS976)。一方、算出された差分値(A(i)−B(i))が閾値θ(i)よりも小さくない場合には(ステップS975)、顔判定部237が、現在の顔判定辞書のi行目に格納されているαH(i)をスコアSに加算する(ステップS977)。
続いて、変数iに「1」が加算され(ステップS978)、変数iがZよりも大きいか否かが判断される(ステップS979)。変数iがZよりも大きくない場合には(ステップS979)、ステップS973に戻り、現在の顔判定辞書を用いた評価値算出処理を繰り返す(ステップS973乃至S978)。一方、変数iがZよりも大きい場合には(ステップS979)、顔判定部237が、現在の顔判定辞書に対応する対象物に関連付けて、算出された評価値Sを保持する(ステップS980)。
続いて、顔判定部237が、顔判定辞書メモリ239に保持されている顔判定辞書のうち、評価値を算出していない他の顔判定辞書が存在するか否かを判断する(ステップS981)。評価値を算出していない他の顔判定辞書が存在する場合には(ステップS981)、ステップS971に戻り、顔判定辞書メモリ239に保持されている全ての顔判定辞書についての評価値算出が終了するまで、評価値算出処理を繰り返す。一方、評価値を算出していない他の顔判定辞書が存在しない場合には(ステップS981)、第2評価値算出処理の動作を終了する。
また、この例では、各顔判定辞書の1行目からZ行目までの各値を用いてスコアSを算出する例について説明した。しかし、例えば、各顔判定辞書の各レコードに対応させて打切閾値を格納しておき、ステップS976またはS977で求められたスコアSが、現在のレコードの打切閾値を下回った場合に、現在の顔判定辞書を用いた評価値算出処理を打ち切るようにしてもよい。これにより、顔検出処理をさらに高速化することができる。
以上で示したように、本発明の第1の実施の形態によれば、2段階の評価値算出処理により顔検出を行うため、弱仮説を少なくして検出処理を迅速に行うとともに、検出精度を高めることができる。また、顔検出処理の際に、各辞書における閾値よりも小さい場合と大きい場合とに応じて、スコアに乗算する重みを変更して演算を行うため、検出精度をさらに高めることができる。
<2.第2の実施の形態>
[撮像装置の構成例]
本発明の第1の実施の形態では、1つの評価値算出辞書を用いて複数の対象物に関する評価値を同時に算出する例を示した。本発明の第2の実施の形態では、1つの評価値算出辞書に格納されている輝度差分値の算出対象となる2点の位置を変換することにより、その評価値算出辞書を用いて算出することが可能な対象物の数の4倍の対象物に関する評価値を算出する例を示す。なお、本発明の第2の実施の形態における撮像装置は、本発明の第1の実施における撮像装置100において、顔検出部230の代わりに顔検出部250を設けた点が異なる。そこで、以下では、本発明の第1の実施の形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
図32は、本発明の第2の実施の形態における顔検出部250の機能構成例を示すブロック図である。顔検出部250は、図3に示す顔検出部230の変形例であり、位置算出部251と、評価値算出部252と、顔判定辞書記憶部253とを備える。なお、図3に示す顔検出部230と共通する部分については、同一の符号を付して、これらの説明を省略する。
位置算出部251は、評価値算出辞書記憶部300に記憶されている評価値算出辞書301に格納されている位置1(u1,v1)302および位置2(u2,v2)303の値を変換して新たな2点の位置を算出するものである。そして、変換後の2点の位置と、変換前の2点の位置に関連付けられて評価値算出辞書301に格納されている閾値(θ)304および重み(α1乃至α9)305の各値とを評価値算出部252に出力する。例えば、位置算出部251は、判定対象画像の中心位置を基準とし、位置1(u1,v1)302および位置2(u2,v2)303の値をアフィン変換して新たな2点の位置を算出する。このアフィン変換では、例えば、時計回りに90度回転させる変換と、時計周りとは反対側に90度回転させる変換と、180度回転させる変換とを行う。なお、この位置算出方法については、図33および図34を参照して詳細に説明する。
評価値算出部252は、評価値算出辞書記憶部300に記憶されている評価値算出辞書301の各値と、位置算出部251により算出された2点の位置およびこれに対応する各値とを用いて、対象物毎の評価値を算出するものである。ここで、位置算出部251により、時計回りの90度回転と、時計回りの反対側への90度回転と、180度回転とがそれぞれ行われた場合を想定する。この場合には、評価値算出部252により算出される評価値が、評価値算出辞書301のみを用いて算出される評価値の数の4倍となる。このように算出された対象物毎の評価値が選択部236に出力される。なお、対象物毎の評価値の算出方法については、本発明の第1の実施の形態と同様であるため、ここでの説明を省略する。
顔判定辞書記憶部253は、画像取出部233から出力された画像について、特定の対象物が含まれるか否かを判定するための顔判定辞書を対象物毎に関連付けて記憶するものである。そして、記憶されている顔判定辞書を顔判定辞書メモリ239に供給する。ここで、顔判定辞書記憶部253には、評価値算出部252により評価値が算出される対象物に対応する複数の対象物のそれぞれについて、顔判定辞書が記憶される。なお、顔判定辞書記憶部253に顔判定辞書が記憶される対象物については、図33を参照して詳細に説明する。
図33は、本発明の第2の実施の形態における位置算出部251による新たな2点の位置の算出により評価値算出が可能となる対象物の例を示す図である。図33(a)には、図20(b)に示す評価値算出辞書301を用いて評価値の算出が可能な対象物を表す顔画像を含む対象物画像群500を示す。この対象物画像群500は、図20(a)に示す対象物画像群600に対応するものである。また、図33(b)乃至(d)には、図20(b)に示す評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303の値の変換により評価値算出が可能となる対象物を表す顔画像を含む対象物画像群501乃至503を示す。
本発明の第1の実施の形態で示したように、図20(b)に示す評価値算出辞書301を用いて、いろいろな方向を向いている9種類の顔に関する評価値を同時に算出することができる。ここで、例えば、評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303に格納されている2点の位置を、判定対象画像の中心位置を回転基準とし、時計回りとは反対側に90度回転させる。そして、この回転後の2点の位置と、この2点の位置に関連付けられて評価値算出辞書301に格納されている閾値(θ)304および重み(α1乃至α9)305の各値を用いて、上述した評価値算出処理を行う。これにより、例えば、図33(b)に示す対象物画像群501に含まれる顔画像に対応する対象物に関する評価値を同時に算出することができる。
同様に、例えば、評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303に格納されている2点の位置を、判定対象画像の中心位置を回転基準とし、時計回りに90度回転させる。そして、この回転後の2点の位置を用いて、上述した評価値算出処理を行うことにより、例えば、図33(c)に示す対象物画像群502に含まれる顔画像に対応する対象物に関する評価値を算出することができる。
同様に、例えば、評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303に格納されている2点の位置を、判定対象画像の中心位置を回転基準とし、180度回転させる。そして、この回転後の2点の位置を用いて、上述した評価値算出処理を行うことにより、例えば、図33(d)に示す対象物画像群503に含まれる顔画像に対応する対象物に関する評価値を算出することができる。
これらの位置の変換は、位置算出部251により行われる。また、これらの位置変換方法として、例えば、2次元座標上において、3×3の行列(アフィン行列)を用いて、2点の位置を変換するアフィン変換を用いることができる。また、顔判定辞書記憶部253には、図33(a)乃至(d)に示す対象物画像群500乃至503に含まれる各顔画像に対応する対象物に関する顔判定辞書がそれぞれ記憶されている。すなわち、顔判定辞書記憶部253には、本発明の第1の実施の形態における顔判定辞書記憶部310に記憶されている顔判定辞書の数の4倍の顔判定辞書が記憶されている。
図34は、本発明の第2の実施の形態における位置算出部251により算出された新たな2点の位置と、この新たな2点の位置を用いて算出される評価値との関係例を示す図である。なお。図34(a)乃至(d)に示す各評価値S1乃至S9は、図23(b)に示す評価値S1乃至S9に対応するものである。
図34(a)には、変換前の2点の位置を用いて算出される評価値の例を示す。なお、図34(a)では、評価値の算出対象となる判定対象画像470と、この判定対象画像470上における2点の位置の組合せのうち、1つの組合せ(2点の位置471および472)を示す。
図34(b)には、位置算出部251により時計回りの反対側に90度回転された2点の位置と、この2点の位置を用いて算出される評価値の例を示す。例えば、図34(a)に示す2点の位置471および472が、位置算出部251により時計回りの反対側に90度回転されて、2点の位置473および474に変換される。このように変換された各2点の位置を用いて図34(b)に示す評価値が、評価値算出部252により算出される。
図34(c)には、位置算出部251により時計回りに90度回転された2点の位置と、この2点の位置を用いて算出される評価値の例を示す。例えば、図34(a)に示す2点の位置471および472が、位置算出部251により時計回りに90度回転されて、2点の位置475および476に変換される。このように変換された各2点の位置を用いて図34(c)に示す評価値が、評価値算出部252により算出される。
図34(d)には、位置算出部251により180度回転された2点の位置と、この2点の位置を用いて算出される評価値の例を示す。例えば、図34(a)に示す2点の位置471および472が、位置算出部251により180度回転されて、2点の位置477および478に変換される。このように変換された各2点の位置を用いて図34(d)に示す評価値が、評価値算出部252により算出される。
このように、評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303に格納されている2点の位置を変換し、変換後の2点の位置を用いて評価値を算出することができる。これにより、1つの評価値算出辞書を用いて、さらに多くの評価値を迅速に算出することができる。例えば、図34に示すように、9つの評価値を同時に算出することができる評価値算出辞書301を用いて、3通りの変換を行うことにより、36つの評価値を算出することができる。これにより、評価値算出辞書に関する記憶容量を削減することができる。
また、このように算出された図34(a)乃至(d)に示す各評価値S1乃至S9が選択部236に出力される。そして、選択部236が、本発明の第1の実施の形態と同様に、9つの評価値S1乃至S9のうち、閾値447以上の評価値を抽出する。そして、抽出された評価値のうち、値が高い上位3つの評価値を選択し、選択された評価値に対応する対象物に関する情報(選択対象物情報)を顔判定部237に出力する。例えば、閾値447以上であるとともに、値が高い上位3つの評価値として、図34(b)に示す画像611および614、図34(d)に示す画像631に対応する評価値が選択される。図34では、選択された評価値を示す棒グラフ内に斜線を付して示す。
図35は、本発明の第2の実施の形態における顔検出部250により顔検出を行う場合における流れを模式的に示す図である。図35(a)には、画像取出部233より取り出された判定対象画像480を示す。図35(b)には、評価値の算出対象となる顔を表す画像を含む対象物画像群500乃至503を示す。なお、図34と同様に、対象物画像群500乃至503に含まれる画像601乃至609、611乃至619、621乃至629、631乃至639に対応する各評価値が、評価値算出部252により算出されるものとする。例えば、図34と同様に評価値が算出され、図35(b)に示す画像611、614および631に対応する評価値が選択されたものとする。
図35(c)には、選択部236により選択された評価値に対応する顔を表す画像611、614および631と、判定対象画像480について顔判定部237により算出された評価値SS10乃至SS12との関係を示す。なお、顔判定部237による顔判定については、本発明の第1の実施の形態と同様であるため、ここでの詳細に説明を省略する。例えば、図35(b)に示す画像611、614および631に対応する評価値SS10、SS11およびSS12のうち、値が最も高く、閾値448以上となる評価値は評価値SS10である。このため、評価値SS10に対応する画像611に含まれる顔が、判定対象画像480に含まれていると判定される。
図36は、本発明の第2の実施の形態における顔検出部250により検出が可能な顔と、これらの検出結果との例を示す図である。図36には、360度の範囲を所定間隔で回転された正面顔を含む画像とともに、これらの画像において検出された検出結果を枠で示す。図36に示すように、本発明の第2の実施の形態によれば、いろいろな角度の顔であっても検出が可能である。例えば、地面に寝ている人物の顔、逆立ちをしている人物の顔、撮像装置100を傾けて撮影された顔等のように、いろいろな角度の顔を検出することができる。また、図36では、正面顔の向きをロール(roll)方向に傾けた例のみを示すが、ピッチ(pitch)またはヨー(yaw)方向に傾けた顔についても同様に検出が可能である。
このように、本発明の第2の実施の形態によれば、同一の辞書における2点の位置を変換するのみで、その辞書の数倍の対象物に関する評価値を同一の辞書を用いて迅速に算出することができる。このため、極めて効率よく評価値を算出することができ、対象物の検出精度を向上させることができる。
なお、例えば、上下方向を逆にした状態で撮像装置100により撮影されることが少ないと想定される場合には、位置算出部251による180度回転を省略するようにしてもよい。また、顔判定辞書記憶部253には、評価値算出辞書301を用いて評価値の算出が可能な対象物に対応する顔判定辞書のみを記憶しておく。そして、上述した評価値算出処理と同様に、これらの顔判定辞書の値または2点の位置を変換した値を用いて顔判定部237が各評価値を算出するようにしてもよい。
[撮像装置の動作例]
図37は、本発明の第2の実施の形態における撮像装置100による顔検出処理の処理手順を示すフローチャートである。なお、この例は、本発明の第1の実施の形態における顔検出処理(図29に示すステップS940の処理手順)の変形例である。このため、図29に示す処理手順と同一の部分については、同一の符号を付して説明を省略する。
最初に、評価値算出部252が、第1評価値算出処理を行う(ステップS950)。続いて、評価値を算出していない角度が存在するか否かが判断される(ステップS991)。例えば、時計回りに90度、時計回りの反対側に90度、180度の各角度について評価値を算出する場合には、これらの各角度について評価値が算出されたか否かが判断される。評価値を算出していない角度が存在する場合には(ステップS991)、位置算出部251が、評価値算出辞書301の位置1(u1,v1)302および位置2(u2,v2)303に格納されている2点の位置を変換する。そして、新たな2点の位置を算出する(ステップS992)。続いて、変換後の2点の位置と、変換前の2点の位置に関連付けられて評価値算出辞書301に格納されている閾値(θ)304および重み(α1乃至α9)305の各値とが評価値算出部252に出力され、第1評価値算出処理が行われる(ステップS950)。
なお、本発明の実施の形態では、判定対象画像における2点の輝度値の差分値を用いて対象物を検出する例を示したが、判定対象画像における2つの領域の他の物理量の差分値を用いて対象物を検出する検出方法に、本発明の実施の形態を適用することができる。例えば、判定対象画像内の2つの領域における矩形特徴(RECTANGLE FEATURE)を用いて評価値を算出し、対象物を検出する対象物検出方法に本発明の実施の形態を適用することができる。また、判定対象画像内の2つの領域における輝度のヒストグラム(度数分布)の所定階級の差分値を用いて評価値を算出し、対象物を検出する対象物検出方法に本発明の実施の形態を適用することができる。このヒストグラムとして、例えば、輝度のヒストグラムの一種である勾配方向ヒストグラム(HOG:Histograms of Oriented Gradients)を用いることができる。この勾配方向ヒストグラムは、例えば、対象となる画像を複数の領域に分割し、この各領域について輝度の勾配強度および勾配方向を算出し、これらの輝度の勾配強度および勾配方向に基づいて作成される。
また、本発明の実施の形態では、対象物検出処理の対象となる複数の対象物として、いろいろな方向を向いている顔を例にして説明したが、顔以外の物体についても本発明の実施の形態を適用することができる。例えば、哺乳類、爬虫類、魚類等の動物(例えば、ペット)、自動車、飛行機等の1つまたは複数を対象物とする場合について本発明の実施の形態を適用することができる。この場合に、例えば、同一の物体に対する種別を変更したもの(例えば、いろいろな方向を向いている犬)や複数の物体を混合したもの(例えば、犬および猫)を複数の対象物とするようにしてもよい。
また、静止画および動画を撮像するデジタルビデオカメラ(例えば、カメラ一体型レコーダ)や撮像機能を備える携帯電話機の各種の撮像装置に本発明の実施の形態を適用することができる。また、例えば、監視カメラに接続されて、人物の顔を検出する顔検出装置等の対象物検出装置に本発明の実施の形態を適用することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。