(57)【要約】【課題】低解像度で、被写体が動く場合でも、瞬き検出の性能を向上させる。【解決手段】順次入力される画像から顔領域と目領域とを検出する検出部と、２つの画像間で、顔領域の第１動きベクトルと、目領域が分割された複数のブロックの第２動きベクトルとを算出する動きベクトル算出部と、第１動きベクトルと各第２動きベクトルとの類似性に関する値を画像間毎に算出する類似性算出部と、類似性に関する値に基づいて、瞬きか否かを判定する判定部とを備える。【選択図】図４
2014048962.tif 000002
【特許請求の範囲】
【請求項１】
順次入力される画像から顔領域と目領域とを検出する検出部と、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出する動きベクトル算出部と、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出する類似性算出部と、
前記類似性に関する値に基づいて、瞬きか否かを判定する判定部と
を備える画像処理装置。
【請求項２】
前記類似性算出部は、
前記第１動きベクトルと前記各第２動きベクトルとの類似度の平均を算出し、
前記判定部は、
前記類似度の平均と第１閾値とを比較することで、瞬きの一部か否かを判定する請求項１記載の画像処理装置。
【請求項３】
前記判定部は、
瞬きの一部と判定した後に、前記各第２動きベクトルの個数、方向、長さの少なくとも１つを含む特性に基づいてノイズか否かを判定する請求項２記載の画像処理装置。
【請求項４】
前記判定部は、
瞬きの一部と判定した後に、前記目領域から瞳孔又は虹彩を検出し、前記瞳孔又は虹彩の動きの検出結果に基づいてノイズか否かを判定する請求項２記載の画像処理装置。
【請求項５】
前記類似性算出部は、
前記第１動きベクトルと異なる前記第２動きベクトルの個数を算出し、
前記判定部は、
前記類似性算出部により算出された個数と第２閾値とを比較することで、瞬きの一部か否かを判定する請求項１記載の画像処理装置。
【請求項６】
前記判定部は、
前記第２閾値を、前記目領域のサイズに応じて変更する請求項５記載の画像処理装置。
【請求項７】
順次入力される画像から顔領域と目領域とを検出し、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出し、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出し、
前記類似性に関する値に基づいて、瞬きか否かを判定する
処理をコンピュータが実行する画像処理方法。
【請求項８】
順次入力される画像から顔領域と目領域とを検出し、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出し、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出し、
前記類似性に関する値に基づいて、瞬きか否かを判定する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、瞬きを検出する画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
瞬きは、人間の内面状態に深く関係していることが医学的に知られている。そのため、画像や映像から瞬きを検出し、その特性を解析することによって人間の内面状態の把握ができると考えられている。
【０００３】
瞬きを検出する技術の一つとして、画像間の顔動きベクトルと目（まぶた）動きベクトルとの差を検出し、検出したベクトル差が下向きで所定値より大きいときに瞬きと判定する技術がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−４３３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
瞬き検出技術は、デジタルカメラなどに広く適用されているが、高解像度で撮影時のフレームレートが高く、被写体が静止してカメラを凝視しているような場合が想定されている。
【０００６】
しかしながら、ユーザーモニタリングなどの分野においては、被写体が動いている場合や低コストのカメラの性能を考慮して、低解像度でキャプチャーした場合などでも瞬き検出できるようにすることが求められる。
【０００７】
低解像度で撮影した画像で、瞬き検出を行うと、次のような問題点が発生する。低解像度の画像では、目領域の特徴点が変形・消失しやすくなる。特徴点の消失や変形が発生する理由は、まぶたが閉じるとき黒目や白目が見えなくなり、その領域の色パターンが変わってしまうからである。
【０００８】
その結果、目領域内の動きベクトルが不正確になり、最終的に目の動きを表す「目動きベクトル」も不正確になる。つまり、目動きベクトルが、目領域の動きを適切に表すことができない場合がある。
【０００９】
また、顔の移動量は、瞬きの移動量と比べて大きい。低解像度の場合、顔の動きベクトル算出の小さな誤差が、瞬きの移動量と同等になることが考えられる。従来技術は、「目動きベクトル」と「顔動きベクトル」の差分を用いて瞬きを判定するため、顔が動く画像では誤検出が起こりやすい。
【００１０】
つまり、従来技術における瞬き判定では、動きを一つの代表値（顔の動きベクトルと目の動きベクトルの差分）として表すため、その代表値に誤差が含まれていれば、誤検出や未検出が発生しやすくなってしまう。
【００１１】
そこで、開示の技術では、低解像度で、被写体が動く場合でも、瞬き検出の性能を向上させることができる画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
開示の一態様における画像処理装置は、順次入力される画像から顔領域と目領域とを検出する検出部と、２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出する動きベクトル算出部と、前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出する類似性算出部と、前記類似性に関する値に基づいて、瞬きか否かを判定する判定部とを備える。
【発明の効果】
【００１３】
開示の技術によれば、低解像度で、被写体が動く場合でも、瞬き検出の性能を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】理想の目領域の動きベクトルを説明する図。
【図２】実際の目領域の動きベクトルを説明する図。
【図３】実施例における画像処理装置のハードウェアの一例を示すブロック図。
【図４】実施例における画像処理装置の機能の一例を示すブロック図。
【図５】顔領域が分割された複数のブロックの特徴点の一例を示す図。
【図６】瞬きによる目領域のベクトルが不正確になった状態における顔領域内のベクトルの角度方向分布の一例を示す図。
【図７】顔が左右に回転するときに発生する動きベクトルの傾向を示す図。
【図８】ベクトルの長さの分布の一例を示す図。
【図９】顔の動きあり、瞬きなしの場合の目領域内の動きベクトル群の一例を示す図。
【図１０】顔の動きあり、瞬きありの場合の目領域内の動きベクトル群の一例を示す図。
【図１１】ノイズ判定（その１）を説明する図。
【図１２】ノイズ判定（その２）を説明する図。
【図１３】瞬きによる閉眼時の動きベクトルの一例を示す図。
【図１４】瞬き判定を説明する図。
【図１５】瞬き判定処理（その１）の一例を示すフローチャート。
【図１６】瞬き判定処理（その２）の一例を示すフローチャート。
【発明を実施するための形態】
【００１５】
まず、以下に説明する実施例の着眼点について説明する。瞬きの際は、従来技術のように目領域全体から１つの動きベクトルを求めると、特徴点の消失・変形により、目領域と顔の移動量の正確な差を求めることができない。しかしながら、目領域を小さいブロックに分割して動きベクトル群を求めると、顔の動きの有無に関わらず、目領域内の動きベクトルの方向は、顔全体の動きベクトルの方向とは異なる。
【００１６】
図１は、理想の目領域の動きベクトルを説明する図である。図１に示すように、顔の動きがない場合、瞬きをした場合の目領域の動きベクトルと、顔領域の動きベクトル（動きなし）とは異なる。また、右下方向への顔の動きがある場合、瞬きをした場合の目領域の動きベクトルと、顔領域の動きベクトル（右下方向）とは異なる。
【００１７】
図２は、実際の目領域の動きベクトルを説明する図である。図２に示すように、目を閉じることで特徴点が消失したり変形したりし、実際の目領域の動きベクトルは理想とは異なり、あらゆる方向を向く傾向にある。
【００１８】
この場合でも、図２に示すように、顔の動きの有無に関わらず、目領域の動きベクトルと、顔領域の動きベクトルとは異なる。また、低解像度の場合には、画像が荒くなるため、さらに特徴点が消失したり変形したりしやすくなる。低解像度とは、例えば６４０×４８０以下の解像度とする。
【００１９】
上述したように、瞬き時の顔領域の動きベクトルと、目領域の動きベクトルとの違いに着目し、この着眼点に基づいて瞬き検出を行う実施例について、以下、添付図面を参照しながら説明する。
【００２０】
［実施例］
＜ハードウェア＞
図３は、実施例における画像処理装置１０のハードウェアの一例を示すブロック図である。図３に示す例では、画像処理装置１０は、撮像部１１、表示部１２と接続される。
【００２１】
撮像部１１は、例えばデジタルカメラなどのデジタル画像を生成する装置である。撮像部１１は、人物の顔を撮影し、人物の顔を含む画像を生成する。撮像部１１は、撮影した順に生成した画像を画像処理装置１０に出力する。
【００２２】
画像処理装置１０は、取得した画像から顔領域や目領域を検出し、検出した各領域の動きベクトルの類似性に基づいて瞬きを検出する。画像処理装置１０は、瞬きの検出結果を記憶し、また表示部１２に出力してもよい。
【００２３】
表示部１２は、例えばＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electroluminescence）ディスプレイ等であり、画像処理装置１０から取得した瞬き検出の結果を表示したりする。
【００２４】
画像処理装置１０は、ハードウェアとして、例えば制御部１０１、主記憶部１０２、補助記憶部１０３、通信部１０４、ドライブ装置１０５を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【００２５】
制御部１０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【００２６】
主記憶部１０２は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などである。主記憶部１０２は、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２７】
補助記憶部１０３は、例えばＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部１０３は、例えば撮像部１１から取得した画像を記憶する。
【００２８】
通信部１０４は、有線又は無線で周辺機器とデータ通信を行う。通信部１０４は、例えばネットワークを介して、人物の顔を含む画像を取得し、補助記憶部１０３に記憶してもよい。
【００２９】
ドライブ装置１０５は、記録媒体１０６、例えばフレキシブルディスクやＣＤ（Compact Disc）から所定のプログラムを読み出し、記憶装置にインストールする。
【００３０】
また、記録媒体１０６に、所定のプログラムを格納し、この記録媒体１０６に格納されたプログラムは、ドライブ装置１０５を介して画像処理装置１０にインストールされる。インストールされた所定のプログラムは、画像処理装置１０により実行可能となる。
【００３１】
なお、画像処理装置１０は、撮像部１１及び表示部１２を別構成としたが、どちらか一方、又は両方を含む構成としてもよい。
【００３２】
＜機能＞
図４は、実施例における画像処理装置１０の機能の一例を示すブロック図である。図４に示す例では、画像処理装置１０は、検出部２０１、動きベクトル算出部２０２、類似性算出部２０３、判定部２０４を有する。
【００３３】
検出部２０１、動きベクトル算出部２０２、類似性算出部２０３、及び判定部２０４は、例えば、制御部１０１及びワークメモリとしての主記憶部１０２により実現されうる。つまり、瞬き検出プログラムが制御部１０１により実行されることで、検出部２０１、動きベクトル算出部２０２、類似性算出部２０３、及び判定部２０４は機能する。
【００３４】
検出部２０１は、順次入力される画像から顔領域と目領域とを検出する。検出部２０１は、例えば撮像部１１から時間ｔで撮像された画像ｉ（基準画像）とｔ＋Δｔで撮像された画像ｉ＋ｎ（参照画像）とを入力する。基準画像と参照画像とは同じサイズであるのが好ましい。
【００３５】
また、検出部２０１は、顔領域を検出する顔検出部２１１と、目領域を検出する目検出部２１２とを有する。顔検出部２１１は、基準画像からエッジのデータを用いた機械学習などにより顔領域を検出する（例えば、P. Viola, M. Jones. Robust real-time face detection, Computer Vision, 2001. ICCV 2001. Proceedings. Eighth IEEE International Conference on, vol.2, no., pp.747, 2001doi: 10.1109/ICCV.2001.937709を参照されたい）。顔領域は、矩形領域や顔の輪郭のような閉じた曲線である。
【００３６】
目検出部２１２は、顔検出部２１１の検出結果を取得し、顔が検出された基準画像中から、瞳孔検出やテンプレートマッチングなどにより目領域を検出する（例えばM. Pardas. Extraction and tracking of the eyelids, Acoustics, Speech, and Signal Processing, 2000. ICASSP '00. Proceedings. 2000 IEEE International Conference on , vol.6, no., pp.2357-2360 vol.4, 2000 doi: 10.1109/ICASSP.2000.859314を参照されたい）。
【００３７】
検出部２０１は、顔検出部２１１により検出された顔領域と、目検出部２１２により検出された目領域とを動きベクトル算出部２０２に出力する。
【００３８】
動きベクトル算出部２０２は、例えば時間的に隣接する２つの画像間で、顔領域の動きベクトルと、目領域が分割された複数のブロックの動きベクトルとを算出する。顔領域の動きベクトルを第１ベクトル又は顔動きベクトル、目領域の各ブロックの動きベクトルを第２ベクトル又は目動きベクトルとも称す。
【００３９】
動きベクトル算出部２０２は、顔動きベクトル算出部２２１と、目動きベクトル算出部２２２とを有する。顔動きベクトル算出部２２１は、顔領域から代表的な１つの動きベクトルを求める。例えば、顔動きベクトル算出部２２１は、顔領域を複数のブロックに分割し、各ブロックの動きベクトルの最頻値を代表の動きベクトルとしたり、顔領域の任意の数の特徴点に基づく動きベクトルの平均を代表の動きベクトルとしたりしてもよい。
【００４０】
目動きベクトル算出部２２２は、目領域を複数のブロックに分割し、ブロック毎に動きベクトルを算出する。ブロック毎に動きベクトルを算出する理由は、目領域の中に発生した動きを見つけるためである。瞬きがある場合、目領域の中の特徴点が移動し、動きベクトルが算出できる。また、目領域の動きと顔領域の動きとを比べることで、瞬きを検出することが可能になる。
【００４１】
動きベクトル算出部２０２は、顔動きベクトル算出部２２１により算出された第１動きベクトルと、目動きベクトル算出部２２２により算出された各第２動きベクトルとを類似性算出部２０３に出力する。
【００４２】
類似性算出部２０３は、第１動きベクトルと各第２動きベクトルとの類似性に関する値を画像間毎に算出する。ここで、瞬きが発生しない場合は、第１動きベクトルと各第２動きベクトルとは同じ動きをするはずである。よって、この場合の第１動きベクトルと、各第２動きベクトルとの類似性は高くなる。
【００４３】
一方、瞬きが発生した場合、上述した着眼点により、第１動きベクトルと各第２動きベクトルとは、異なる動きをするため、その類似性は低くなる。
【００４４】
類似性算出部２０３は、類似性に関する値として例えば、第１動きベクトルと各第２動きベクトルとの類似度の平均、又は第１動きベクトルと異なる第２動きベクトルの個数などを用いる。類似性算出部２０３は、算出した類似性に関する値を判定部２０４に出力する。第１動きベクトルと異なる第２動きベクトルとは、第１動きベクトルと一致しない第２動きベクトルであり、例えば第１動きベクトルの方向や大きさから所定範囲外にある第２動きベクトルをいう。
【００４５】
判定部２０４は、類似性に関する値に基づいて、瞬きか否かを判定する。判定部２０４は、例えば類似性に関する値と閾値とを比較することで、瞬きか否かを判定する。また、判定部２０４は、瞬きの一部である閉眼と開眼との両方が検出されることで瞬きを検出するため、所定時間内に瞬きの一部が少なくとも２つ判定されたときに瞬きと判定する。所定時間は、瞬きにかかる時間である１００〜３００ｍｓｅｃより少し長い時間に設定すればよい。
【００４６】
ここで、瞬きが発生しても、眼球運動が発生しても、目領域内の動きベクトル方向は顔領域の動きベクトル方法と異なるため、瞬きなのか眼球運動なのかを区別することでさらに瞬き検出精度が向上する。
【００４７】
そのため、判定部２０４は、ノイズ判定部２４１を有する。ノイズ判定部２４１は、例えば、瞬きの一部と判定された後に、第２動きベクトルの個数、方向、長さの少なくとも１つを含む特性に基づいてノイズが否かを判定する。ノイズとは、眼球運動や照明条件の変化による特徴点の消失などのことをいう。
【００４８】
また、ノイズ判定部２４１は、瞬きの一部と判定された後に、目領域から瞳孔又は虹彩を検出し、瞳孔又は虹彩の動きの検出結果に基づいてノイズか否かを判定する。ノイズ判定部２４１の判定結果により、ノイズと瞬きとを区別することができる。
【００４９】
次に、動きベクトル算出処理、類似性算出処理、判定処理について具体的に説明する。まず、動きベクトル算出処理について説明する。
【００５０】
《顔動きベクトル算出処理》
顔動きベクトル算出部２２１は、顔領域を複数のブロックに分割し、各ブロックの中から特徴的な画素を特徴点にする。特徴的な画素とは、エッジが周辺より強い、又は周辺の画素より輝度値が高い画素などである。
【００５１】
図５は、顔領域が分割された複数のブロックの特徴点の一例を示す図である。図５に示す例では、分かりやすくするため、大きめのブロックを用いているが、実際は、５×５などの小さめのブロックに分割される。
【００５２】
顔動きベクトル算出部２２１は、基準画像から抽出した特徴点と、もっとも似たような画素を参照画像から探索する。顔動きベクトル算出部２２１は、例えば、特徴点周辺（例えば５×５）のピクセルの輝度値をテンプレートとし、同じような色の配置を参照画像から探す。
【００５３】
顔動きベクトル算出部２２１は、テンプレートと参照画像との類似度を計算するために、ＳＡＤ（差分絶対和）などの関数を用いる。なお、ここで使う類似度関数は、後述する式（１）の「ベクトルの類似度計算関数」とは異なる。
【００５４】
顔動きベクトル算出部２２１は、基準画像内の特徴点の位置と、参照画像から探索して見つけたその特徴点の位置を使って、動きベクトルを定義する。動きベクトルの開始点は基準画像内の特徴点の位置で、終了点は参照画像内の対応する特徴点の位置とする。
【００５５】
顔動きベクトル算出部２２１は、上述した着眼点をもとに瞬きを検出するため、顔領域内の各動きベクトルの角度方向分布を算出する。
【００５６】
図６は、瞬きによる目領域のベクトルが不正確になった状態における顔領域内のベクトルの角度方向分布の一例を示す図である。図６は、顔領域を複数のブロックに分割し、各ブロックの動きベクトルの方向を４５度刻みで角度分布にした結果である。
【００５７】
横軸がベクトル角度、縦軸がベクトルの個数を示す。最頻のピークの角度が、顔の動き方向を示す。なお、顔動きベクトル算出部２２１は、角度方向分布を計算するとき、角度をθ度（例えば、θ＝45度）刻みで量子化をしている。この理由は、ベクトル計算に小さな誤差が入っても影響を及ぼさず、顔の代表的な動き方向を決めるためである。
【００５８】
図６に示すように、動きベクトルが不正確になっても、顔動きベクトル算出部２２１は、角度方向分布から顔の動きベクトルと瞬きによる動きベクトルとを区別することができる。
【００５９】
目領域の面積に比べて、顔領域の面積は大きい。また、顔領域の動きベクトルの個数が目領域の動きベクトルの個数よりも大きい。よって、最も頻繁に発生するベクトル方向が顔の動きベクトルであると考えられる。
【００６０】
（角度方向分布を求める理由）
ここで、顔領域について動きベクトルの角度方向分布を求める理由について説明する。実施例で角度の分布を使っている理由は、顔の動きにより発生するベクトルと、瞬きにより発生する動きベクトルとを区別するためである。
【００６１】
瞬きをしたときに特徴点が消失又は変形し、目領域の動きベクトルの動き方向があらゆる方向を向くのがわかる（図２参照）。これにより、角度の分布をヒストグラムにすると、顔の動きベクトルがピークを占める。その特性を用いて、顔のベクトルと瞬きのベクトルを区別する。
【００６２】
仮に、ベクトルの角度ではなく、ベクトルの長さの分布を用いて瞬きを検出しようとすると、顔の動きベクトルを適切に検出できない。その理由は以下に説明する。
【００６３】
例えば、頭部の左右回転の最中に瞬きが発生することを考える。頭部が左右に回転（yaw運動）をしているとき、３次元空間では顔上の各点が動く距離は等しい。しかし、その動きを２次元の画像で表すとき、カメラに近い点の移動量が大きく、カメラから遠い点の移動量が小さい。
【００６４】
図７は、顔が左右に回転するときに発生する動きベクトルの傾向を示す図である。図７に示すように、撮像部１１から近い中心の部分は動きベクトルが長く、端に行けばいくほど動きベクトルは短い。図７に示すこれらの動きベクトルの分布を可視化すれば、例えば、図８に示すヒストグラムのようになる。
【００６５】
図８は、ベクトルの長さの分布の一例を示す図である。図８に示すように、瞬きが小さい動きで、動きベクトルがばらついても、動きベクトルの長さは基本的に短い。顔の動き量が小さいとき、顔の動きベクトルと瞬きの動きベクトルが同等の長さになる。よって、ベクトルの長さの分布を見るだけでは、瞬きの動きなのか顔の動きなのかを区別することができない。そのため、瞬きを検出するには、動きベクトルの角度の分布を見るとよい。
【００６６】
なお、顔動きベクトル算出部２２１は、顔の第１動きベクトルを少なくとも１つ算出すればよいので、顔領域をブロック分割しなくてもよい。この場合、顔動きベクトル算出部２２１は、顔領域内の特徴点を１又は複数抽出し、その特徴点の動きを平均化するなどして第１動きベクトルを算出すればよい。
【００６７】
《目動きベクトル算出処理》
次に、目動きベクトル算出処理について説明する。目動きベクトル算出部２２２は、目領域内を小さいブロック（例えば、５×５画素）に分割して動きベクトル群を求める（例えば、A. Gyaourova, C. Kamath, S.C. Cheung. Block matching for object tracking. Technical report UCRL-TR-200271. Lawrence Livermore Technical Laboratory, (October 2003)や、B. D. Lucas, T. Kanade. An iterative image registration technique with an application to stereo vision, IJCAI'81, Proceedings of the 7th international Joint conference on Artificial intelligence - Volume 2, pp. 674-679を参照されたい）。
【００６８】
例えば、目動きベクトル算出部２２２は、各ブロックの中から特徴的な一つの画素を特徴点とする。特徴的な画素は、例えばエッジが周辺より強い、又は周辺の画素より輝度値が高い画素などである。
【００６９】
目動きベクトル算出部２２２は、基準画像での各特徴点の位置と参照画像で探索して見つけたその特徴点の位置を使って動きベクトルを定義する。動きベクトルの開始点は、基準画像での特徴点の位置で、終了点は参照画像でのその特徴点の位置とする。
【００７０】
図９は、顔の動きあり、瞬きなしの場合の目領域内の動きベクトル群の一例を示す図である。図９に示す例では、瞬きをせずに顔が下方向に動いている。図９に示す例では、顔が動いた後の画像で、目領域の動きベクトルＡｎを算出している。目領域内の動きベクトルＡｎは、顔の動きベクトルＢと同様である。
【００７１】
図１０は、顔の動きあり、瞬きありの場合の目領域内の動きベクトル群の一例を示す図である。図１０に示す例では、瞬きありで顔が下方向に動いている。図１０に示す例では、顔が動いた後の画像で、目領域の動きベクトルＡｎを算出している。目領域内の動きベクトルＡｎは、顔の動きベクトルＢとほとんど一致しない。
【００７２】
《類似性算出処理》
次に、類似性算出処理について説明する。瞬きが発生しない場合、目領域の特徴点も顔と同じ動きをする（図９参照）。そのため、目領域動きベクトルと顔領域の動きベクトルとの類似度が高い。
【００７３】
類似性算出部２０３は、類似性に関する値を算出するために、例えば、一般的に使われているコサイン類似度（式（１））を用いてベクトルの類似度を算出する。
【００７４】
【数１】
2014048962.tif 000003
コサイン類似度は、ベクトルを正規化して内積を計算する方法である。式（１）では、ＡとＢとがそれぞれベクトルを示す。｜｜Ａ｜｜と｜｜Ｂ｜｜は、それぞれベクトルＡとＢの長さを示す。
【００７５】
この類似度関数では、顔領域の動きベクトルと目領域内の動きベクトルの類似度が［−１．０，＋１．０］の間の数値になる。類似度が＋１．０の場合、顔領域のベクトルと目領域のベクトルの方向がもっとも類似しており、類似度が−１．０のときベクトルの角度が正反対であることがわかる。
【００７６】
類似性算出部２０３は、目領域内の各ブロックの動きベクトルと、顔領域の動きベクトルとの類似度を計算する。類似性算出部２０３は、算出した類似度の代表値（例えば平均）を計算する。
【００７７】
また、類似性算出部２０３は、他の類似性に関する値として、顔の動きベクトルと異なる目の動きベクトルの個数を用いてもよい。これにより、瞬きありであれば、この個数が多くなり、瞬きなしであればこの個数は少なくなる。
【００７８】
《判定処理》
次に、判定処理について説明する。判定部２０４は、例えば、類似度を用いる場合、類似度の代表値を閾値と比較し、類似度の代表値が閾値より大きければ、目領域の動きベクトルが顔の動きベクトルと類似しているため、瞬きが発生していないと判定する。
【００７９】
また、判定部２０４は、類似度の代表値が、閾値以下であれば、目領域の動きベクトルが顔の動きベクトルと類似していないため、瞬きが発生していると判定する。この判定では、動きベクトルが少し不正確になったとしても、この類似度の代表値は大きな影響を受けない。
【００８０】
また、判定部２０４は、例えば、動きベクトルの個数を用いる場合、個数と閾値とを比較し、個数が閾値より大きければ瞬きありと判定する。また、判定部２０４は、個数が閾値以下であれば瞬きなしと判定する。
【００８１】
瞬きが発生している場合、まぶた領域に含まれる各ブロックの動きベクトルが任意の方向を向くことになる。そこで、検出された目領域のサイズに応じたまぶた領域のブロック数を事前に調べておき、このブロック数に基づく閾値が予め設定されていればよい。
【００８２】
（ノイズ判定１）
次に、ノイズ（例えば眼球運動や照明変化による特徴点の消失）を判定する一つの方法について説明する。以下では、ノイズとして眼球運動を例にして説明する。一般的に、瞬き以外に目領域に発生する動きは移動量が小さいため、 発生するノイズベクトルの個数は、瞬き時に発生するベクトルの個数と比べて少ない。
【００８３】
その理由は、まぶたが閉じるとき、白目と黒目上の特徴点が全て消失することに対して、眼球運動のときに、白目と黒目は完全に隠れることはなく、一部の特徴点のみが動くからである。
【００８４】
この性質を利用して、ノイズ判定部２４１は、目領域に発生する動きベクトルの個数を用いて、瞬きとノイズベクトルとを区別する。判定方法は、例えば、ニューラルネットワークの学習（例えばS. Haykin, Neural Networks: A Comprehensive Foundation (1st ed.). Prentice Hall PTR, Upper Saddle River, NJ, USA., 1994を参照された）による判定や、閾値を用いた判定方法等がある。
【００８５】
図１１は、ノイズ判定（その１）を説明する図である。図１１に示すように、顔が下方向に動くとき、眼球が左方向に動くとする。また、図１１に示す各ブロックをｂｎｍと表す（ｎ＝１〜３、ｍ＝１〜４）。
【００８６】
このとき、眼球部分のブロックの動きベクトルは、顔の動き方向と眼球の動き方向とを足した方向になる。図１１に示すブロックでは、４つのブロック（ｂ２２、ｂ２３、ｂ３２、ｂ３３）の動きベクトルが、顔の動きベクトルとは異なる方向を向く。
【００８７】
一方で、図１１に示す例で、瞬きが行われると、例えば、目部分を含む８つのブロック（ｂ２１〜ｂ２４、ｂ３１〜ｂ３４）の動きベクトルが、特徴点の消失により顔の動きベクトルとは異なる方向を向くと考えられる。
【００８８】
そこで、ノイズ判定部２４１は、図１１に示す例を用いると、顔の動きベクトルに一致しない目の動きベクトルの数が、６以上である場合に瞬き、６未満である場合にノイズと判定してもよい。また、ノイズ判定部２４１は、目領域の大きさによってブロック数が異なるので、目領域のサイズに応じて閾値を変更してもよい。
【００８９】
例えば、実験などにより、基準となる目領域のサイズと閾値とが決定され、ノイズ判定部２４１は、実際の画像の目領域のサイズと基準の目領域のサイズの比を、基準の閾値に乗算することで閾値を変更することができる。
【００９０】
また、ノイズ判定部２４１は、ニューラルネットワークを用いて、ノイズの場合の動きベクトルの特性と、瞬きの場合の動きベクトルの特性とを学習させておき、動きベクトルの特性を入力することで、ノイズか瞬きかを判定してもよい。動きベクトルの特性とは、方向、長さ、個数の少なくとも１つである。
【００９１】
（ノイズ判定２）
次に、ノイズを判定する他の方法について説明する。上述したように、眼球の運動によっても目領域に動きベクトルが発生する場合がある。そこで、ノイズ判定部２４１は、眼球運動による動きベクトルと瞬きによる動きベクトルを区別するため、瞳孔検出（例えばG. Gomai, A. El-Zaart, H. Mathkour. A new approach for pupil detection in iris recognition system, Computer Engineering and Technology (ICCET), 2010 2nd International Conference on , vol.4, no., pp.V4-415-V4-419, 16-18 April 2010 doi: 10.1109/ICCET.2010.5485497を参照されたい）を行う。ノイズ判定部２４１は、瞳孔の動きを検知することによって瞬きではないと判定でき、瞬きの誤検出率を減らすことができる。
【００９２】
図１２は、ノイズ判定（その２）を説明する図である。図１２に示すように、ノイズ判定部２４１は、基準画像と、参照画像とに対して瞳孔検出を行い、それぞれの画像で瞳孔が検出され、瞳孔の動きが検出された場合、瞬きではないと判定する。
【００９３】
ノイズ判定については、上記２つの判定の何れを用いてもよいが、判定２では瞳孔を適切に検出できない場合もあるので、判定１の方が判定２よりも好適であると考えられる。
【００９４】
図１３は、瞬きによる閉眼時の動きベクトルの一例を示す図である。図１３に示すように、瞬き時には眼球は検出されず、さらに、目部分のブロックの動きベクトルがあらゆる方向を向いていることが分かる。これにより、ノイズ判定１やノイズ判定２により、瞬きと眼球運動とを区別することができる。
【００９５】
ここで、瞬きとは、目を閉じて、開くことが瞬きである。上記説明では、瞬きの一部である閉眼を検出する方法を説明した。開眼を検出する場合には、上記処理と同様にして、顔の動きベクトルと、目領域の動きベクトルとの類似性を見ることで、開眼を検出することができる。
【００９６】
図１４は、瞬き判定を説明する図である。図１４に示す例では、時刻ｔ＋１の画像から時刻ｔ＋２の画像間で、瞬きの一部である閉眼が発生し、画像処理装置１０により、瞬きの一部有りと判定されている。また、時刻ｔ＋２の画像から時刻ｔ＋３の画像間で、瞬きの一部である開眼が発生し、画像処理装置１０により、瞬きの一部有りと判定されている。瞬きの一部は、必ずしも連続して検出される必要はない。
【００９７】
判定部２０４は、ｔ＋１とｔ＋３の間の時間が、瞬きにかかる時間として予め設定された所定時間よりも短ければ瞬きと判定する。また、判定部２０４は、所定時間内で、少なくとも２つの瞬きの一部が検出されれば、瞬きと判定してもよい。
【００９８】
なお、判定部２０４は、上記方法を用いると、瞬き検出だけではなく、開眼又は閉眼を単独で検出してもよく、睡眠につく瞬間や、起床の瞬間なども検出することが可能になる。例えば、判定部２０４は、閉眼を検出した後、所定時間瞬きの一部が検出されなければ目を閉じたままであると判定する。
【００９９】
＜動作＞
次に、実施例における画像処理装置１０の動作について説明する。以下では、２つの判定処理について説明する。１つ目は、類似度を用いて瞬きの一部を判定し、さらにノイズ判定を行う処理である。２つ目は、動きベクトルの個数を用いて瞬きの一部を判定する処理である。
【０１００】
（類似度を用いた判定処理）
図１５は、瞬き判定処理（その１）の一例を示すフローチャートである。図１５に示すステップＳ１０１で、検出部２０１は、画像ｉと画像ｉ＋ｎとを入力する。ｎは、例えば１などの自然数である。
【０１０１】
ステップＳ１０２で、顔検出部２１１は、画像ｉから顔領域を検出する。ステップＳ１０３で、目検出部２１２は、画像ｉから目領域を検出する。
【０１０２】
ステップＳ１０４で、顔動きベクトル算出部２２１は、画像ｉと画像ｉ＋ｎ間で、顔の動きベクトルを検出する。
【０１０３】
ステップＳ１０５で、目動きベクトル算出部２２２は、画像ｉと画像ｉ＋ｎ間で、目領域内の各ブロックに対し動きベクトルを算出する。
【０１０４】
ステップＳ１０６で、類似性算出部２０３は、顔の動きベクトル（第１動きベクトル）と目の動きベクトル（第２動きベクトル）群との類似度の代表値を算出し、この代表値が第１閾値より大きいか否かを判定する。代表値が第１閾値より小さければ（ステップＳ１０６−ＹＥＳ）ステップＳ１０８に進み、代表値が第１閾値以上であれば（ステップＳ１０６−ＮＯ）ステップＳ１０７に進む。
【０１０５】
ステップＳ１０７で、判定部２０４は、画像ｉと画像ｉ＋ｎ間の目の動きは瞬きではないと判定する。
【０１０６】
ステップＳ１０８で、ノイズ判定部２４１は、目領域内の動きベクトルの特性に基づいて、ノイズであるか否かを判定する。ノイズ判定には、上述した判定１と判定２とがあるがいずれかを用いればよい。ノイズであると判定されれば（ステップＳ１０８−ＹＥＳ）ステップＳ１０９に進み、ノイズでないと判定されれば（ステップＳ１０８−ＮＯ）ステップＳ１１０に進む。
【０１０７】
ステップＳ１０９で、ノイズ判定部２４１は、ノイズ（例えば眼球運動）であると判定する。ステップＳ１１０で、判定部２０４は、瞬きの一部であると判定する。
【０１０８】
ステップＳ１１１で、判定部２０４は、現在の時刻から予め設定された所定時間前までに瞬きの一部が既に判定されているか否かを判定する。瞬きの一部が既に判定されていれば（ステップＳ１１１−ＹＥＳ）ステップＳ１１２に進み、瞬きの一部が既に判定されていなければ（ステップＳ１１１−ＮＯ）ステップＳ１１３に進む。
【０１０９】
ステップＳ１１２で、判定部２０４は、所定時間内の一連の目の動きは、瞬きであると判定する。
【０１１０】
ステップＳ１１３で、画像処理装置１０は、瞬き検出の終了コマンドが発生したか否かを判定する。終了コマンドは、ユーザから終了ボタンの押下などにより発生する。終了コマンドがあれば（ステップＳ１１３−ＹＥＳ）瞬き検出処理を終了し、終了コマンドがなければ（ステップＳ１１３−ＮＯ）ｉが更新されてステップＳ１０１に戻る。
【０１１１】
（動きベクトルの数を用いた判定処理）
図１６は、瞬き判定処理（その２）の一例を示すフローチャートである。図１６に示すステップＳ２０１〜Ｓ２０５の処理は、図１５に示すステップＳ１０１〜Ｓ１０５の処理と同様であるため、その説明を省略する。
【０１１２】
ステップＳ２０６で、類似性算出部２０３は、目の動きベクトルの中で、顔の動きベクトルと同じ方向の動きベクトルを省く。同じ方向とは、必ずしも一致する方向である必要はなく、所定の誤差を含む方向でもよい。
【０１１３】
ステップＳ２０７で、判定部２０４は、目領域内で残っている動きベクトルの個数が、第２閾値より大きいか否かを判定する。個数が第２閾値より大きければ（ステップＳ２０７−ＹＥＳ）ステップＳ２０９に進み、個数が第２閾値以下であれば（ステップＳ２０７−ＮＯ）ステップＳ２０８に進む。ステップＳ２０８で、判定部２０４は、瞬きではない、又はノイズであると判定する。
【０１１４】
ステップＳ２０９〜Ｓ２１２の処理は、図１５に示すステップＳ１１０〜Ｓ１１３の処理と同様であるため、その説明を省略する。
【０１１５】
図１６に示すように、動きベクトルの個数を用いれば、「ノイズ」と「瞬きなし」とを一度に判定することができ、瞬きの判定処理を簡素化することができる。また、第２閾値は、撮像部１１と顔との距離、顔の姿勢などに応じて変更されてもよい。
【０１１６】
以上、実施例によれば、低解像度で、被写体が動く場合でも、瞬き検出の性能を向上させることができる。また、実施例によれば、眼球運動や照明条件の変化によるノイズも適切に除去することができ、瞬き検出の誤検出を防ぐことができる。
【０１１７】
［変形例］
なお、前述した実施例で説明した画像処理を実現するためのプログラムを記録媒体に記録することで、実施例での画像処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した画像処理を実現させることも可能である。
【０１１８】
なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。この記録媒体には、搬送波は含まれない。
【０１１９】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１２０】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
（付記１）
順次入力される画像から顔領域と目領域とを検出する検出部と、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出する動きベクトル算出部と、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出する類似性算出部と、
前記類似性に関する値に基づいて、瞬きか否かを判定する判定部と
を備える画像処理装置。
（付記２）
前記類似性算出部は、
前記第１動きベクトルと前記各第２動きベクトルとの類似度の平均を算出し、
前記判定部は、
前記類似度の平均と第１閾値とを比較することで、瞬きの一部か否かを判定する付記１記載の画像処理装置。
（付記３）
前記判定部は、
瞬きの一部と判定した後に、前記各第２動きベクトルの個数、方向、長さの少なくとも１つを含む特性に基づいてノイズか否かを判定する付記２記載の画像処理装置。
（付記４）
前記判定部は、
瞬きの一部と判定した後に、前記目領域から瞳孔又は虹彩を検出し、前記瞳孔又は虹彩の動きの検出結果に基づいてノイズか否かを判定する付記２記載の画像処理装置。
（付記５）
前記類似性算出部は、
前記第１動きベクトルと異なる前記第２動きベクトルの数を算出し、
前記判定部は、
前記類似性算出部により算出された数と第２閾値とを比較することで、瞬きの一部か否かを判定する付記１記載の画像処理装置。
（付記６）
前記判定部は、
前記第２閾値を、前記目領域のサイズに応じて変更する付記５記載の画像処理装置。
（付記７）
前記判定部は、
所定時間内に瞬きの一部が少なくとも２つ判定されたとき、瞬きと判定する付記２又は５に記載の画像処理装置。
（付記８）
順次入力される画像から顔領域と目領域とを検出し、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出し、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出し、
前記類似性に関する値に基づいて、瞬きか否かを判定する
処理をコンピュータが実行する画像処理方法。
（付記９）
順次入力される画像から顔領域と目領域とを検出し、
２つの画像間で、前記顔領域の第１動きベクトルと、前記目領域が分割された複数のブロックの第２動きベクトルとを算出し、
前記第１動きベクトルと前記各第２動きベクトルとの類似性に関する値を画像間毎に算出し、
前記類似性に関する値に基づいて、瞬きか否かを判定する
処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１２１】
１０  画像処理装置
１１  撮像部
１２  表示部
１０１  制御部
１０２  主記憶部
１０３  補助記憶部
１０４  通信部
１０５  ドライブ装置
２０１  検出部
２０２  動きベクトル算出部
２０３  類似性算出部
２０４  判定部
２１１  顔検出部
２１２  目検出部
２２１  顔動きベクトル算出部
２２２  目動きベクトル算出部
２４１  ノイズ判定部
【図１】
2014048962.tif 000004
【図２】
2014048962.tif 000005
【図３】
2014048962.tif 000006
【図４】
2014048962.tif 000007
【図５】
2014048962.tif 000008
【図６】
2014048962.tif 000009
【図７】
2014048962.tif 000010
【図８】
2014048962.tif 000011
【図９】
2014048962.tif 000012
【図１０】
2014048962.tif 000013
【図１１】
2014048962.tif 000014
【図１２】
2014048962.tif 000015
【図１３】
2014048962.tif 000016
【図１４】
2014048962.tif 000017
【図１５】
2014048962.tif 000018
【図１６】
2014048962.tif 000019
【手続補正書】
【提出日】平成25年7月3日(2013.7.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
また、検出部２０１は、顔領域を検出する顔検出部２１１と、目領域を検出する目検出部２１２とを有する。顔検出部２１１は、基準画像からエッジのデータを用いた機械学習などにより顔領域を検出する（例えば、P. Viola, M. Jones. Robust real-time face detection, Computer Vision, 2001. ICCV 2001. Proceedings. Eighth IEEE International Conference on, vol.2, 2001doi: 10.1109/ICCV.2001.937709を参照されたい）。顔領域は、矩形領域や顔の輪郭のような閉じた曲線である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
この性質を利用して、ノイズ判定部２４１は、目領域に発生する動きベクトルの個数を用いて、瞬きとノイズベクトルとを区別する。判定方法は、例えば、ニューラルネットワークの学習（例えばS. Haykin, Neural Networks: A Comprehensive Foundation (1st ed.), pp. 1 - 6, Prentice Hall PTR, Upper Saddle River, NJ, USA., 1994, Macmillan College Publishing Company を参照されたい。）による判定や、閾値を用いた判定方法等がある。