説明

顔検出方法および顔検出装置、ならびに、プログラム

【課題】顔検出の検出結果に基づき対象人物が目を覆う用具を装着しているか否かを判定可能とする。
【解決手段】画像から顔を検出し、検出された顔から目の特徴点を抽出する。抽出された目の特徴点から目の縦幅および横幅を求め、目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する。算出された差分が0未満の場合には、差分を0と見做す。算出された目の縦幅および横幅それぞれの差分に基づき、検出された顔内の目が覆われた状態か否かを判定する。両目の縦幅および横幅の差分が全て閾値以上である場合に、目が覆われていると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データから顔を検出する顔検出方法および顔検出装置、ならびに、プログラムに関する。
【背景技術】
【0002】
従来、監視システムなどにおいて、監視カメラで撮像された画像データから顔を検出して、顔認証や不審者の検出などを行っている。例えば、画像データから目や口の両端といった顔器官の特徴点を抽出することで顔を検出し、その特徴点の位置関係から顔の認識を行う。
【0003】
ここで、各顔器官の位置関係は、人物の表情などにより変動する。特許文献1では、登録画像における目、鼻、口などの顔器官の位置に主成分分析を適用し、その結果得られた主成分を用いて認証対象顔画像における顔器官の位置を評価する技術が開示されている。
【0004】
図16は、特許文献1による顔器官の位置評価の方法の例を示す。図16(a)は、真顔の状態の位置評価、図16(b)は、笑顔の状態の位置評価の例を示す。この例では、顔器官のうち瞳、眉の先端、鼻および口(両端、中央)の位置を検出し、検出された各位置の位置関係を数値化して評価する。図16(a)および図16(b)を比較すると、表情によって顔器官の位置関係が変化することが分かる。例えば閾値判定を用いて、この変化が同一人物の変動の範囲内か否かを判定することで、顔の認証精度を高めることができる。
【0005】
このように、特許文献1によれば、認証対象顔画像における顔器官を、表情の変化に伴う対象人物固有の顔の動きに応じて評価することができ、表情が変化しても正確に顔を認証できる。
【0006】
特許文献1の方法では、顔認識の対象人物が目を瞑っていたり、サングラスやマスクで目や口を覆っており顔器官の位置を正しく検出できないような場合に、誤認識してしまうおそれがある。特許文献2には、画像に対してエッジ検出を行って顔の輪郭を決定し、輪郭内にある顔器官を検出することで、対象人物がサングラスやマスクを装着しているか否かを判定する技術が開示されている。すなわち、特許文献2では、顔認識の対象人物における顔器官が抽出できない場合に、当該対象人物がサングラスやマスクを装着していると見做している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−156944号公報
【特許文献2】特開平5−35992号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献2では、顔認識の対象人物が目を瞑った状態において、誤検出してしまうおそれがあるという問題点があった。例えば、瞬きなどにより目尻の特徴点がうまく抽出できない場合に目が検出されないと判定され、サングラス着用と判断されてしまう可能性がある。また、サングラス着用の場合であっても、サングラスの形状によってはサングラスの輪郭を目の特徴点として抽出してしまい、サングラスを着用していないと判断されてしまう可能性がある。
【0009】
本発明は、上記に鑑みてなされたものであって、顔検出の検出結果に基づき対象人物が目を覆う用具を装着しているか否かを判定可能とすることを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明は、顔検出手段が、画像から顔を検出する顔検出ステップと、特徴点抽出手段が、顔検出ステップにより検出された顔から目の特徴点を抽出する特徴点抽出ステップと、算出手段が、特徴点抽出ステップにより抽出された目の特徴点から目の縦幅および横幅を求め、目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出ステップと、判定手段が、算出ステップにより算出された目の縦幅および横幅それぞれの差分に基づき、顔検出ステップにより検出された顔内の目が覆われた状態か否かを判定する判定ステップとを有することを特徴とする。
【0011】
また、本発明は、画像から顔を検出する顔検出手段と、顔検出手段で検出された顔から目の特徴点を抽出する特徴点抽出手段と、特徴点抽出手段で抽出された目の特徴点から目の縦幅および横幅を求め、目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出手段と、算出手段で算出された目の縦幅および横幅それぞれの差分に基づき、顔検出手段で検出された顔内の目が覆われた状態か否かを判定する判定手段とを有することを特徴とする。
【0012】
また、本発明は、画像から顔を検出する顔検出ステップと、顔検出ステップにより検出された顔から目の特徴点を抽出する特徴点抽出ステップと、特徴点抽出ステップにより抽出された目の特徴点から目の縦幅および横幅を求め、目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出ステップと、算出ステップにより算出された目の縦幅および横幅それぞれの差分に基づき、顔検出ステップにより検出された顔内の目が覆われた状態か否かを判定する判定ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、顔検出の検出結果に基づき対象人物が目を覆う用具を装着しているか否かを判定可能となるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、本発明の実施形態による顔検出装置の一例の機能を示す機能ブロック図である。
【図2】図2は、本発明の実施形態による顔検出方法の一例の処理を示すフローチャートである。
【図3】図3は、本発明の実施形態による特徴点抽出を説明するための略線図である。
【図4】図4は、正規化に顔領域を示す矩形の対角線の長さを用いることを説明するための略線図である。
【図5】図5は、閾値を設定する際に係数を乗じることを説明するための略線図である。
【図6】図6は、本発明の実施形態による逸脱度合eyeDeviancyに対する閾値判定について説明するための略線図である。
【図7】図7は、本発明の実施形態による逸脱度合eyeDeviancyに対する閾値判定について説明するための略線図である。
【図8】図8は、本発明の実施形態による逸脱度合eyeDeviancyに対する閾値判定について説明するための略線図である。
【図9】図9は、本発明の実施形態による逸脱度合eyeDeviancyに対する閾値判定について説明するための略線図である。
【図10】図10は、目周辺の輝度に基づく判定について説明するための略線図である。
【図11】図11は、本発明の実施形態による顔検出の実行結果の例について説明するための略線図である。
【図12】図12は、本発明の実施形態による顔検出の実行結果の例について説明するための略線図である。
【図13】図13は、本発明の実施形態による顔検出の実行結果の例について説明するための略線図である。
【図14】図14は、本発明の実施形態による顔検出の実行結果の例について説明するための略線図である。
【図15】図15は、本発明の実施形態による顔検出装置を適用可能なハードウェアとしての情報処理装置の一例の構成を示すブロック図である。
【図16】図16は、従来技術による顔器官の位置評価の方法の例を示す略線図である。
【発明を実施するための形態】
【0015】
以下に添付図面を参照して、本発明に係る顔検出装置の一実施形態を詳細に説明する。図1は、本実施形態による顔検出装置1の一例の機能を示す機能ブロック図である。顔検出装置1は、画像入力部100、顔検出部101、特徴点抽出部102、算出部103および判定部104を含む。これら顔検出装置1を構成する各部は、CPU(Central Processing Unit)上で動作するプログラムにより構成することができる。これに限らず、これら各部の一部または全部をハードウェアにより構成してもよい。
【0016】
顔検出装置1において、画像データが画像入力部100に入力される。画像入力部100には、ビデオカメラなどで撮像された画像データを入力することができる。これに限らず、HDD(ハードディスクドライブ)などの記憶媒体に予め格納した画像データを画像入力部100に対して入力してもよい。また、画像入力部100に入力される画像データは、動画および静止画の何れであってもよい。以下では、ビデオカメラで撮像された動画による画像データが画像入力部100に入力されるものとする。画像入力部100は、入力された画像データから、例えば1フレームの画像データをキャプチャして、顔検出部101に供給する。
【0017】
顔検出部101は、供給された画像データを解析して、当該画像データから顔を検出する。画像データからの顔(顔領域および目、鼻、口などの顔器官)の検出は、既知の方法を用いて行うことができる。例えば、顔辞書とパターンマッチングを用いた部分空間法により、顔領域および各顔器官の検出を行うことが考えられる。顔検出部101による検出出力は、特徴点抽出部102に供給される。なお、顔検出部101は、画像データから顔が検出されなかった場合に、画像入力部100に対して次の画像データを要求することができる。
【0018】
特徴点抽出部102は、顔検出部101で検出された顔の特徴点を抽出する。例えば、特徴点抽出部102は、顔における目、鼻、口などの各顔器官について、特徴点を抽出する。特徴点の抽出には、既知の技術を用いることができる。例えば、顔検出部101で検出された顔領域に対して特徴点数の多い顔グラフを適用し、顔グラフの平行移動、拡大/縮小、回転などにより、さらに類似度の高い特徴点を抽出する方法を用いることが考えられる。
【0019】
本実施形態では、抽出された顔の特徴点のうち、目に関する特徴点に注目し、左目および右目のそれぞれについて、目の縦幅および横幅を計測するための特徴点を抽出する。特徴点抽出部102で抽出された目の特徴点の位置を示す情報は、算出部103に供給される。
【0020】
特徴点抽出部102は、さらに、顔検出部101で検出された顔の向きを解析する。そして、顔の向きが上下左右それぞれの方向に対して予め決められた範囲内に収まっているか否かを判定する。例えば、特徴点抽出部102は、顔の特徴点の位置を示す情報に基づき顔の向きを推測する。なお、特徴点抽出部102は、顔の向きが所定範囲内に入っていないと判定した場合に、画像入力部100に対して次の画像データを要求することができる。
【0021】
算出部103は、特徴点抽出部102から供給された目の特徴点の位置を示す情報に基づき、左目および右目それぞれについて、目の縦幅および横幅を算出する。ここで、算出部103は、左目および右目の縦幅および横幅について、予め多数のサンプルから算出された、標準のデータを持っている。算出部103は、顔検出の結果に基づき算出された左目および右目の縦幅および横幅と、標準の左目および右目の縦幅および横幅とを比較する。そして、比較結果に基づき、顔検出で検出された左目および右目の縦幅および横幅それぞれの、標準の左目および右目の縦幅および横幅に対する逸脱度合を算出する。算出された左目および右目の縦幅および横幅それぞれの逸脱度合は、判定部104に供給される。
【0022】
判定部104は、算出部103から供給された、左目および右目の縦幅および横幅それぞれの逸脱度合に基づき、顔検出部101で検出された顔内の目が、目を覆う用具(例えばサングラス)に覆われているか否かを判定する。判定部104は、目周辺の領域について測定された輝度を、さらに判定に用いてもよい。
【0023】
図2は、本実施形態による顔検出方法の一例の処理を示すフローチャートである。ステップS100で、顔検出装置1に入力された画像データが画像入力部100にキャプチャされる。顔検出部101は、キャプチャされた画像データに対して既知の方法を用いて顔検出処理を施し、画像データから顔が検出されたか否かを判定する(ステップS101)。若し、顔が検出されていないと判定された場合は、画像入力部100に対して例えば次のフレームの画像データを要求し、処理をステップS100に戻す。
【0024】
一方、ステップS101で、顔が検出されたと判定された場合、処理がステップS102に移行される。ステップS102では、特徴点抽出部102が、顔検出部101による顔検出結果を用いて顔の特徴点を検出する。
【0025】
上述したように、本実施形態では、特徴点抽出部102は、各顔器官のうち、目に注目して特徴点を抽出する。より具体的には、図3に例示されるように、目の目尻および目頭、ならびに、目蓋の上端および下端の位置を、特徴点として検出する。以下では、右目10aの目頭、目尻、目蓋の上端および目蓋の下端の位置をそれぞれ位置P1、P2、P3およびP4とする。同様に、左目10bの目頭、目尻、目蓋の上端および目蓋の下端の位置をそれぞれ位置P5、P6、P7およびP8とする。
【0026】
特徴点抽出部102は、さらに、画像データにおける顔の向きを推定する。例えば、特徴点抽出部102は、顔検出結果を用いて抽出された各顔器官の特徴点の位置関係から、顔の向きを推定する。そして、ステップS103で、特徴点抽出部102は、推定された顔の向きが、上下について予め定められた範囲内に収まっているか否かを判定する。若し、当該範囲内に収まっていないと判定した場合、画像入力部100に対して例えば次のフレームの画像データを要求し、処理をステップS100に戻す。一方、顔の向きが当該範囲内に収まっていると判定した場合、次のステップS104で、推定された顔の向きが左右について予め定められた範囲内に収まっているか否かを判定する。若し、当該範囲内に収まっていないと判定した場合、画像入力部100に対して例えば次のフレームの画像データを要求し、処理をステップS100に戻す。なお、ステップS103およびステップS104の順序は、逆でもよい。
【0027】
ステップS104で、特徴点抽出部102は、推定された顔の向きが左右について予め定められた範囲内に収まっていると判定したら、ステップS102で抽出した目の特徴点の位置P1〜P8を示す情報を算出部103に渡し、処理をステップS105に移行させる。
【0028】
ステップS105で、算出部103は、特徴点抽出部102から渡された目の特徴点の位置P1〜P8を示す情報を用いて、左目および右目それぞれについて、縦幅および横幅を算出する。このとき、図4に例示されるように、顔検出部101による顔検出結果から得られる顔領域を示す矩形11、例えば顔検出に用いた各顔器官を含む矩形11の対角線の長さを用い、顔の大きさに基づき正規化した値として、縦幅および横幅を算出する。顔の大きさとして矩形11の対角線の長さを用いるのは、矩形11が正方形ではない場合に対応させるためである。
【0029】
具体的には、算出部103は、左目10bの縦幅eyeLyおよび横幅eyeLx、ならびに、右目10aの縦幅eyeRyおよび横幅eyeRxを、例えばそれぞれ式(1)〜式(4)に従い算出する。なお、式(1)〜式(4)において、値Fxおよび値Fyは、それぞれ正規化に用いる顔領域の矩形11の横幅および縦幅を示す。また、値Pnxおよび値Pny(nは1〜8)は、それぞれ位置P1〜P8のx座標およびy座標を示す。各値の単位は、例えば画像データの画素とする。
【0030】
【数1】

【数2】

【数3】

【数4】

【0031】
次のステップS106で、算出部103は、ステップS105で算出した左目10bおよび右目10aの縦幅および横幅と、予め算出した、目の標準の縦幅および横幅との差分subNormalを算出し、顔検出部101で検出された顔に含まれる目の縦幅および横幅の、標準の縦幅および横幅に対する逸脱度合eyeDeviancyを求める。
【0032】
目の標準の縦幅および横幅の算出は、例えば次のようにして行う。左目10bについて、予め、多数のサンプルについて上述した式(1)に従い縦幅eyeLyを算出し、代表値(平均値など)を求めて左目10bの標準の縦幅normalLyとする。同様にして、左目10bの横幅について、予め、多数のサンプルについて上述した式(2)に従い横幅eyeLxを算出し、代表値を求めて左目10bの標準の横幅normalLxとする。右目10aについても同様にして、予め、多数のサンプルを用いて式(3)および式(4)に従い計算を行い、標準の縦幅normalRyおよび標準の横幅normalRxを求める。これら標準の縦幅normalLyおよびnormalRy、ならびに、横幅normalRxおよびnormalLxは、例えば顔検出装置1が有する、図示されないHDDなどの不揮発性の記憶媒体に記憶される。
【0033】
逸脱度合eyeDeviancyの算出方法について、左目10bの縦幅eyeLyを例にとって、当該縦幅eyeLyに対する逸脱度合eyeLyDeviancyを算出する場合について説明する。なお、以下に説明する逸脱度合eyeDeviancyの算出方法は、左目10bの横幅eyeLx、ならびに、右目10aの縦幅eyeRyおよび横幅eyeRxについても、それぞれ同様に適用できる。また、横幅eyeLx、縦幅eyeRyおよび横幅eyeRxにそれぞれ対応する逸脱度合eyeDeviancyを、逸脱度合eyeLxDeviancy、逸脱度合eyeRyDeviancyおよび逸脱度合eyeRxDeviancyとする。
【0034】
先ず、式(5)に従い、特徴点の位置から求めた縦幅eyeLyと、左目の標準の縦幅normalLyとの差分subNormalLyを算出する。
subNormalLy=eyeLy−normalLy …(5)
【0035】
ここで、目の縦幅eyeLyについて、式(5)の計算の結果が次の式(6)を満たす場合、逸脱度合eyeLyDeviancyの値を0と見做すものとする。これは、目の横幅についても同様である。
subNormalLy<0 …(6)
【0036】
目の縦幅についてこの式(6)の結果が得られた場合には、例えば瞑っている状態の目が検出されたと判断することが可能である。また、目の横幅についてこの式(6)の結果が得られた場合は、例えば目を瞑っている状態に対して目尻や目頭を示す特徴点が正しく抽出できていないと判断することが可能である。
【0037】
式(5)の結果、差分subNormalLy≧0である場合、式(7)に示されるように、算出された差分subNormalLyに対して、左目10bの縦幅に対して予め定められた係数pixelsToEyeLyDeviancyを乗じて、左目10bの縦幅eyeLyの逸脱度合eyeLyDeviancyを算出する。
eyeLyDeviancy=subNormalLy×pixelsToEyeLyDeviancy …(7)
【0038】
ここで、係数pixelsToEyeLyDeviancyは、判定部104における判定処理に用いる閾値の設定を容易にするために、差分subNormalLyに対して乗じられる。左目10bの縦幅eyeLyを例に取り、図5を用いて、係数pixelsToEyeLyDeviancyの意味について説明する。顔検出によって得られた特徴点に基づく左目10bの縦幅eyeLyと、左目の標準の縦幅normalLyとの差分subNormalLyを取った場合、差分subNormalLyの頻度分布は、例えば図5(a)に例示されるように、差分subNormalLy=0を中心とする正規分布的なものとなる。
【0039】
本実施形態では、後述するように、この差分subNormalLyを閾値判断することで、検出された目が目を覆う用具に覆われているか否かを判定する。このとき、閾値を少し、例えば閾値Th10から閾値Th11にずらしただけで、対応する頻度が大きく変化し、頻度が少ない状態も許容してしまうおそれがある。そこで、差分subNormalLyに対して1を超える係数pixelsToEyeLyDeviancyを乗じた値を逸脱度合eyeLyDeviancyとし、この逸脱度合eyeLyDeviancyに対して閾値を設定することで、閾値の細かい設定が容易となる。
【0040】
図5(b)の例では、係数pixelsToEyeLyDeviancy≒2として、頻度分布をx方向に略2倍に拡張している。これにより、閾値設定に対する精度が略2倍となり、閾値を図5(a)と同じだけずらした場合(閾値Th10から閾値Th12)の、頻度の変化が図5(a)に比べて小さくなり、閾値の設定が容易となる。
【0041】
なお、ここでは、縦幅eyeLyに対する係数pixelsToEyeLyDeviancyについて説明したが、この係数は、左目10bの縦幅eyeLyおよび横幅eyeLx、ならびに、右目10aの縦幅eyeRyおよび横幅eyeRxに対してそれぞれ設定される。また、この係数は、これら縦幅eyeLy、横幅eyeLx、縦幅eyeRyおよび横幅eyeRxに対してそれぞれ異なる値を設定することができる。例えば、縦幅eyeLy、横幅eyeLx、縦幅eyeRyおよび横幅eyeRxに対して、それぞれ係数pixelsToEyeLyDeviancy、係数pixelsToEyeLxDeviancy、係数pixelsToEyeRyDeviancyおよび係数pixelsToEyeRxDeviancyが用いられる。
【0042】
係数pixelsToEyeLyDeviancy、係数pixelsToEyeLxDeviancy、係数pixelsToEyeRyDeviancyおよび係数pixelsToEyeRxDeviancyの値は、実験的に予め決められる。例えば、係数pixelsToLyEyeDeviancyとして、1000を超える値を用いることができる。この場合、逸脱度合eyeLyDeviancyの値も大きな値、例えば1000を超える値を取る可能性がある。この場合、逸脱度合eyeLyDeviancyの値に閾値として設定する値よりも大きな値を上限(例えば1000)として設け、逸脱度合eyeLyDeviancyの値がこの上限を超えた場合には、逸脱度合eyeLyDeviancyの値を強制的にこの上限値としてもよい。
【0043】
また、差分に対する係数の乗算に限らず、例えば設定される閾値近傍をx方向に拡大するような関数を用いることもできる。さらに、ステップS106において差分に対する係数の乗算を省略し、差分そのものを逸脱度合として用いることもできる。
【0044】
ステップS106で、目の縦幅および横幅の、標準の縦幅および横幅に対する逸脱度合が求められると、処理はステップS107に移行される。ステップS107では、判定部104が、右目10aおよび左目10bについて、逸脱度合eyeDeviancyが閾値以上であるか否かを判定する。
【0045】
より詳細には、右目10aの縦幅eyeRyに対応する逸脱度合eyeRyDeviancy、右目10aの横幅eyeRxに対応する逸脱度合eyeRxDeviancy、左目10bの縦幅eyeLyに対応する逸脱度合eyeLyDeviancyおよび左目10bの横幅eyeLxに対応する逸脱度合eyeLxDeviancyのそれぞれに対して、予め閾値を設定する。判定部104は、これら逸脱度合eyeRyDeviancy、eyeRxDeviancy、eyeLyDeviancyおよびeyeLxDeviancyのうち少なくとも1の値が、対応する閾値未満であると判定した場合に、処理をステップS110に移行させ、検出された顔の目が目を覆う用具(サングラス、ゴーグルなど)に覆われた状態ではないと決定する。
【0046】
一方、判定部104は、これら逸脱度合eyeRyDeviancy、eyeRxDeviancy、eyeLyDeviancyおよびeyeLxDeviancyの全てが、それぞれに設定された閾値以上の値であると判定した場合、処理をステップS108に移行させる。ステップS108で、判定部104は、検出された目の周辺領域の輝度が閾値以下であるか否かを判定する。若し、目周辺領域の輝度が閾値を超えていると判定した場合には、処理をステップS110に移行させ、検出された顔の目が目を覆う用具に覆われた状態ではないと判断する。一方、判定部104は、目周辺領域の輝度が閾値以下であると判定した場合、検出された顔の目が目を覆う用具に覆われている状態であると決定する(ステップS109)。
【0047】
なお、ステップS108の輝度値による判定は、省略することができる。この場合、判定部104は、逸脱度合eyeRyDeviancy、eyeRxDeviancy、eyeLyDeviancyおよびeyeLxDeviancyの全てがそれぞれ対応する閾値以上である場合に、検出された顔の目が目を覆う用具に覆われた状態であると判定する。ステップS108の輝度値による判定をさらに行うことで、より高精度な判定結果を得ることができる。
【0048】
ステップS107における、逸脱度合eyeDeviancyに対する閾値判定について、図6〜図9を用いてより詳細に説明する。なお、ここでは、逸脱度合eyeDeviancyの代わりに、係数pixelToEyeDeviancyを乗ずる前の差分subNormalを用いて説明を行う。
【0049】
図6および図7は、例えば左目10bの縦幅eyeLyにおける閾値判定の例を示す。図6(a)に例示されるように、左目10bにおいて、左目10bにおける標準の縦幅normalLyよりもやや大きな値で縦幅eyeLyが算出されたものとする。式(5)に従い、左目10bの縦幅eyeLyと左目10bの標準の縦幅normalLyとの差分subNormalLyが算出される。
【0050】
この例では、図6(b)に示されるように、差分subNormalLyの値が、左目10bに対して設定された閾値Thy未満の値となっている。この場合、差分subNormalLyの値が閾値Thy未満なので、顔検出の結果に基づき算出された縦幅eyeLyの値の変動が、瞬きも含む目の正常な変動と判定する。
【0051】
図7(a)は、左目10bがサングラス20に覆われている例を示す。この例では、顔検出結果に基づく特徴点抽出により、目の上端および下端としてサングラス20の上端および下端が検出され、このサングラス20の上端および下端に基づき縦幅eyeLyが算出されている。サングラス20は、通常、目を覆うために用いられるものであって、その上端および下端による縦幅は、左目10bの縦幅に比べて広いのが一般的である。したがって、図7(b)に例示されるように、サングラスの上端および下端による縦幅eyeLyと、左目10bの標準の縦幅normalLyとの差分subNormalLyの値は、閾値Thyよりも大きな値となる。これは、顔検出の結果に基づき算出された縦幅eyeLyの変動が、目の正常な変動ではない、すなわち、顔検出で左目10bの位置に検出されたものが目ではないことを意味する。
【0052】
目の横幅に対しても、同様にして判定が行われる。図8および図9は、左目10bの横幅eyeLxにおける閾値判定の例を示す。図8(a)に例示されるように、左目10bにおいて、左目10bにおける標準の横幅normalLxよりもやや小さな値で横幅eyeLxが算出されたものとする。式(5)に従い、左目10bの横幅eyeLxと左目10bの標準の横幅normalLxとの差分subNormalLxが算出される。この例では、図8(b)に示されるように、差分subNormalLxの値が負の値となっているため、上述した式(6)に従い、逸脱度合eyeLxDeviancy=0と見做すことができる。この場合、目を瞑っているなどにより、目尻や目頭を示す特徴点が正常に抽出できていないことが考えられる。
【0053】
図9(a)は、左目10bがサングラス20に覆われている例を示す。この例では、顔検出結果に基づく特徴点抽出により、目尻および目頭としてサングラス20の左右端がそれぞれ検出され、このサングラス20の左右端に基づき横幅eyeLxが算出されている。サングラス20は、通常、目を覆うために用いられるものであって、その左右端による横幅は、左目10bの横幅に比べて広いのが一般的である。したがって、図9(b)に例示されるように、サングラスの左右端による横幅eyeLxと、左目10bの標準の横幅normalLxとの差分subNormalLxの値は、閾値Thxよりも大きな値となる。これは、顔検出の結果に基づき算出された横幅eyeLxの変動が、目の正常な変動ではない、すなわち、顔検出で左目10bの位置に検出されたものが目ではないことを意味する。
【0054】
以上のようにして、右目10aおよび左目10bそれぞれについて、縦幅および横幅を標準の縦幅および横幅とそれぞれ比較して、各逸脱度合eyeDeviancyを求める。そして、求めた各逸脱度合eyeDeviancyのうち少なくとも1つが閾値以下であると判定された場合に、検出された目が目を覆う用具で覆われていない状態であると決定する。
【0055】
一方、求めた各逸脱度合eyeDeviancyが全て閾値以上であると判定された場合、検出された目がサングラスなどで覆われている状態である可能性がある。この場合、ステップS108において、さらに、目周辺の輝度に基づく判定を行う。
【0056】
一例として、図10に示されるように、顔30について顔検出結果により得られた顔領域を示す矩形32を例えばM×Nの領域に分割し、右目31aを含む分割領域と、左目31bを含む分割領域とをそれぞれ求める。そして、求められたこれらの分割領域を含む所定範囲の分割領域を、目周辺領域として定める。この目周辺領域の画素の輝度値の例えば平均値を算出し、目周辺領域の輝度とする。この目周辺領域の輝度に対して閾値を設定し、当該輝度が閾値以下である場合に、目がサングラスなどで覆われていると判定する。閾値は、例えば、多数のサンプルを用いて予め求めた、サングラスなどで覆われていない状態、すなわち肌が露出した状態での目周辺領域の輝度と、サングラスで覆われている状態での目周辺領域の輝度とに基づき設定することが考えられる。
【0057】
次に、図11〜図14を用いて、本実施形態による顔検出の実行結果の例について説明する。なお、図11〜図14に共通して、左目について、標準の縦幅normalLy=0.05、横幅normalLx=0.15、右目も同様に、標準の縦幅normalRy=0.05、標準の横幅normalRx=0.15とする。また、左目について、縦幅に対する係数pixelsToEyeLyDeviancy=8000、横幅に対する係数pixelsToEyeLxDeviancy=10000とし、右目も同様に、縦幅に対する係数pixelsToEyeRyDeviancy=8000、横幅に対する係数pixelsToEyeRxDeviancy=10000とする。さらに、縦幅および横幅に対する閾値は、便宜上、左目および右目について共通とし、縦幅に対する閾値Thy=500、横幅に対する閾値Thx=250とする。さらにまた、以下では、便宜上、図2のフローチャートにおけるステップS108の輝度による判定を省略している。
【0058】
図11は、通常時、すなわち、メガネおよびサングラス無し、且つ、目を開けた状態における実行結果の例を示す。図11の例では、顔検出により得られた顔領域の矩形40の対角線の長さが156画素であり、これが顔のサイズとされる。顔サイズで正規化された左目の縦幅eyeLy=0.064とした場合、式(5)に従い、差分subNormalLy=0.064−0.05=0.014となる。式(7)に従い、差分subNormalLyに係数pixelsToEyeLyDeviancyを乗じて、逸脱度合=0.014×8000=112となる。縦幅に対する閾値Thy=500としているので、左目の縦幅の逸脱度合は、閾値Thy未満であると判定される。
【0059】
左目の横幅、右目の縦幅および右目の横幅についても、同様にして逸脱度合が算出される。すなわち、左目の横幅について、正規化された左目の横幅eyeLx=0.17とした場合、
差分subNormalLx=0.17−0.15=0.02
逸脱度合=0.02×10000=200<Thx(=250)
となる。
【0060】
右目の縦幅について、正規化された右目の縦幅eyeRy=0.065とした場合、
差分subNormalRy=0.065−0.05=0.015
逸脱度合=0.015×8000=120<Thy(=500)
となる。
【0061】
右目の横幅について、正規化された右目の横幅eyeRx=0.16とした場合、
差分subNormalRx=0.16−0.15=0.01
逸脱度合=0.01×10000=100<Thx(=250)
となる。
【0062】
このように、図11の例では、左目および右目それぞれの縦幅および横幅について、逸脱度合が閾値未満なので、目がサングラスなどで覆われていないと判定される。
【0063】
図12は、色無しのメガネを掛け、且つ、目を開けた状態における実行結果の例を示す。この場合、メガネを通して容易に目を検出することが可能であり、メガネが無い場合と略同様に、特徴点が抽出されている。顔検出により得られた顔領域の矩形40の対角線の長さが113画素であり、これが顔のサイズとされる。
【0064】
図11を用いて説明した例と同様にして、左目の縦幅について、正規化された左目の縦幅eyeLy=0.053とした場合、
差分subNormalLy=0.053−0.05=0.003
逸脱度合=0.003×8000=24<Thy(=500)
となる。
【0065】
左目の横幅について、正規化された左目の横幅eyeLx=0.14とした場合、
差分subNormalLx=0.14−0.15=−0.01
となる。
ここで、差分subNormalLx=−0.01<0であり式(6)を満たすため、差分subNormalLx=0と見做される。したがって、
逸脱度合=0.0×10000=0<Thx(=250)
となる。
【0066】
右目の縦幅について、正規化された右目の縦幅eyeRy=0.062とした場合、
差分subNormalRy=0.062−0.05=0.012
逸脱度合=0.012×8000=96<Thy(=500)
となる。
【0067】
右目の横幅について、正規化された右目の横幅eyeRx=0.14とした場合、
差分subNormalRx=0.14−0.15=−0.01
となる。
この場合も、差分subNormalRx=−0.01<0であり式(6)を満たすため、差分subNormalRx=0と見做される。したがって、
逸脱度合=0.0×10000=0<Thx(=250)
となる。
【0068】
このように、図12の例では、左目および右目それぞれの縦幅および横幅について、逸脱度合が閾値未満なので、目がサングラスなどで覆われていないと判定される。また、色無しのメガネによる誤判定も発生していない。
【0069】
図13は、メガネおよびサングラス無し、且つ、目を瞑った状態における実行結果の例を示す。例えば、動画像データから瞬きの瞬間をキャプチャしたような場合に、画像データが図13のような状態となる。顔検出により得られた顔領域の矩形40の対角線の長さが155画素であり、これが顔のサイズとされる。
【0070】
図11を用いて説明した例と同様にして、左目の縦幅について、正規化された左目の縦幅eyeLy=0.051とした場合、
差分subNormalLy=0.051−0.05=0.001
逸脱度合=0.001×8000=8<Thy(=500)
となる。
【0071】
左目の横幅について、正規化された左目の横幅eyeLx=0.16とした場合、
差分subNormalLx=0.16−0.15=0.01
逸脱度合=0.01×10000=100<Thx(=250)
となる。
【0072】
右目の縦幅について、正規化された右目の縦幅eyeRy=0.032とした場合、
差分subNormalRy=0.032−0.05=−0.018
となる。
ここで、差分subNormalRy=−0.018<0であり式(6)を満たすため、差分subNormalRy=0と見做される。したがって、
逸脱度合=0.0×8000=0<Thy(=500)
となる。
【0073】
右目の横幅について、正規化された右目の横幅eyeRx=0.16とした場合、
差分subNormalRx=0.16−0.15=0.01
逸脱度合=0.01×10000=100<Thx(=250)
となる。
【0074】
このように、図13の例では、左目および右目それぞれの縦幅および横幅について、逸脱度合が閾値未満なので、目がサングラスなどで覆われていないと判定される。また、検出された目の縦幅が標準の目の縦幅よりも小さい場合に、検出された目の縦幅と標準の目の縦幅との差分を0と見做すようにしているため、目を瞑った状態を目の正常な状態と判定することでき、目を瞑った状態による誤判定の発生が抑制される。
【0075】
図14は、濃い色の入ったサングラスを掛けた状態における実行結果の例を示す。この場合、サングラスを通して目を検出することが困難であり、サングラスの外周に基づき特徴点が抽出されている。顔検出により得られた顔領域の矩形40の対角線の長さが141画素であり、これが顔のサイズとされる。
【0076】
図11を用いて説明した例と同様にして、左目の縦幅について、正規化された左目の縦幅eyeLy=0.14とした場合、
差分subNormalLy=0.14−0.05=0.09
逸脱度合=0.09×8000=720>Thy(=500)
となる。
【0077】
左目の横幅について、正規化された左目の横幅eyeLx=0.18とした場合、
差分subNormalLx=0.18−0.15=0.03
逸脱度合=0.03×10000=300>Thx(=250)
となる。
【0078】
右目の縦幅について、正規化された右目の縦幅eyeRy=0.14とした場合、
差分subNormalRy=0.14−0.05=0.09
逸脱度合=0.09×8000=720>Thy(=500)
となる。
【0079】
右目の横幅について、正規化された右目の横幅eyeRx=0.23とした場合、
差分subNormalRx=0.23−0.15=0.08
逸脱度合=0.08×10000=800>Thx(=250)
となる。
【0080】
このように、図14の例では、左目および右目それぞれの縦幅および横幅について、逸脱度合が閾値を超えているので、目がサングラスなどで覆われていると判定される。このように、本実施形態によれば、目がサングラスなどで覆われている場合と覆われていない場合とをそれぞれ検出することができる。
【0081】
図15は、本実施形態による顔検出装置1を適用可能なハードウェアとしての情報処理装置200の一例の構成を示す。情報処理装置200において、バス201に対してCPU210、ROM211、RAM212、表示制御部213およびキャプチャ部214が接続される。さらに、バス201に対して、ハードディスクドライブ(HDD)215、入力I/F216、ドライブ装置217および通信I/F218が接続される。
【0082】
キャプチャ部214は、例えば、ビデオカメラ220で撮像された動画像データが入力され、入力された動画像データから、フレーム単位で画像データを取得する。取得された画像データは、例えばバス201を介してCPU210に供給される。HDD215は、CPU210が動作するためのプログラムや、左目および右目それぞれの縦幅および横幅の標準的なデータが予め記憶される。HDD215に対して、キャプチャ部214で取得された画像データなどを記憶させてもよい。
【0083】
CPU210は、ROM211やHDD215に予め記憶されたプログラムに従い、RAM212をワークメモリとして用いて、この情報処理装置200の全体の動作を制御する。例えば、図1を用いて説明した、画像入力部100、顔検出部101、特徴点抽出部102、算出部103および判定部104それぞれの機能は、CPU210上で動作するプログラムによって実現される。
【0084】
表示制御部213は、CPU210によりプログラムに従い生成された表示制御信号に基づき、ディスプレイ221が表示可能な表示信号を生成し、ディスプレイ221に供給する。また、入力I/F216は、キーボード216aや、マウスなどのポインティングデバイス216bが接続され、ユーザ入力を受け付け、ユーザ入力に応じた制御信号を出力し、CPU210に供給する。また、入力I/F216は、USB(Universal Serial Bus)などのデータ通信入出力216cにも対応できる。
【0085】
ドライブ装置217は、CD(Compact Disk)やDVD(Digital Versatile Disk)、フレキシブルディスク、不揮発性メモリなどの記憶媒体からのデータの読み出しを行う。通信I/F218は、LAN(Local Area Network)やインターネットといったネットワークに対する通信を制御する。
【0086】
このような構成による情報処理装置200で実行される顔検出プログラムは、インストール可能な形式または実行可能な形式のファイルでCD、DVD、フレキシブルディスク、不揮発性メモリなどのコンピュータで読み取り可能な記憶媒体に記録されて提供される。ドライブ装置217により、この記憶媒体から顔検出プログラムを読み出し、例えばHDD215に対して所定の方法でインストールする。
【0087】
また、本実施形態の情報処理装置200で実行される顔検出プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置200で実行される顔検出プログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【0088】
また、本実施形態の情報処理装置200で実行される顔検出プログラムを、ROM211などに予め組み込んで提供するように構成してもよい。
【0089】
本実施形態の情報処理装置200で実行される顔検出プログラムは、上述した各部(画像入力部100、顔検出部101、特徴点抽出部102、算出部103および判定部104)を含むモジュール構成となっており、実際のハードウェアとしてはCPU210が上述の記憶媒体や、HDD215から顔検出プログラムを読み出して実行することにより、各部が主記憶装置(例えばRAM212)上にロードされ、画像入力部100、顔検出部101、特徴点抽出部102、算出部103および判定部104が主記憶装置上に生成されるようになっている。
【0090】
以上説明したように、本実施形態によれば、顔検出を行い抽出した目の特徴点に基づき求めた目の縦幅および横幅を、標準の目の縦幅および横幅と比較することで、目がサングラスのようなもので覆われている状態を検出することを可能としている。したがって、本実施形態を警備システムに適用した場合、顔の認識をより高精度に行うことが可能となると共に、不審者の検出も容易となる。
【0091】
なお、上述では、本発明が、目が目を覆う用具に覆われているか否かを判定する場合に適用するように説明したが、これはこの例に限定されない。例えば、本発明による、実測値と標準の値との差分に基づく判定方法を応用することで、口が口を覆う用具(マスクなど)に覆われているか否かの判定を行うことも可能である。
【符号の説明】
【0092】
1 顔検出装置
10a 右目
10b 左目
11 矩形
20 サングラス
100 画像入力部
101 顔検出部
102 特徴点抽出部
103 算出部
104 判定部

【特許請求の範囲】
【請求項1】
顔検出手段が、画像から顔を検出する顔検出ステップと、
特徴点抽出手段が、前記顔検出ステップにより検出された顔から目の特徴点を抽出する特徴点抽出ステップと、
算出手段が、前記特徴点抽出ステップにより抽出された前記目の特徴点から該目の縦幅および横幅を求め、該目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出ステップと、
判定手段が、前記算出ステップにより算出された目の縦幅および横幅それぞれの前記差分に基づき、前記顔検出ステップにより検出された顔内の目が覆われた状態か否かを判定する判定ステップと
を有する
ことを特徴とする顔検出方法。
【請求項2】
前記判定ステップは、
前記算出ステップにより右目および左目についてそれぞれ算出された前記目の縦幅および横幅それぞれの前記差分の全てが、右目および左目それぞれの縦幅および横幅に対してそれぞれ定められた閾値以上である場合に、前記目が覆われた状態であると判定する
ことを特徴とする請求項1に記載の顔検出方法。
【請求項3】
前記算出ステップは、
前記差分が0未満の場合に、該差分が0であると見做す
ことを特徴とする請求項1または請求項2に記載の顔検出方法。
【請求項4】
前記判定ステップは、
前記算出ステップにより右目および左目についてそれぞれ算出された前記目の縦幅および横幅それぞれの前記差分の全てが、右目および左目それぞれの縦幅および横幅に対してそれぞれ定められた閾値以上であり、且つ、該右目および左目を含む予め定められた範囲の輝度が該輝度に対して定められた閾値以下である場合に、前記目が覆われた状態であると判定する
ことを特徴とする請求項1乃至請求項3の何れか1項に記載の顔検出方法。
【請求項5】
前記算出ステップは、
右目および左目についてそれぞれ算出された前記目の縦幅および横幅それぞれの前記差分に対して1を超える係数を乗じ、
前記判定ステップは、
前記係数を乗じられた前記差分に基づき前記判定を行う
ことを特徴とする請求項1乃至請求項4の何れか1項に記載の顔検出方法。
【請求項6】
前記顔検出ステップは、
前記画像から矩形領域として前記顔を検出し、
前記算出ステップは、
前記矩形領域の対角線の長さで正規化した前記目の横幅および縦幅を用いて前記差分を求める
ことを特徴とする請求項1乃至請求項5の何れか1項に記載の顔検出方法。
【請求項7】
画像から顔を検出する顔検出手段と、
前記顔検出手段で検出された顔から目の特徴点を抽出する特徴点抽出手段と、
前記特徴点抽出手段で抽出された前記目の特徴点から該目の縦幅および横幅を求め、該目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出手段と、
前記算出手段で算出された目の縦幅および横幅それぞれの前記差分に基づき、前記顔検出手段で検出された顔内の目が覆われた状態か否かを判定する判定手段と
を有する
ことを特徴とする顔検出装置。
【請求項8】
画像から顔を検出する顔検出ステップと、
前記顔検出ステップにより検出された顔から目の特徴点を抽出する特徴点抽出ステップと、
前記特徴点抽出ステップにより抽出された前記目の特徴点から該目の縦幅および横幅を求め、該目の縦幅および横幅と、目について予め求められた標準の縦幅および横幅との差分をそれぞれ算出する算出ステップと、
前記算出ステップにより算出された目の縦幅および横幅それぞれの前記差分に基づき、前記顔検出ステップにより検出された顔内の目が覆われた状態か否かを判定する判定ステップと
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate