(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
本発明に係る瞼開閉検出装置および瞼開閉検出方法の実施の形態について、添付図面を参照して説明する。
【0010】
図1は、本発明の一実施形態に係る瞼開閉検出装置10を含む車室内用カメラ4が設置された車両1の一例を示す外観図である。
図1にはカメラ光軸をz軸、水平軸をx軸とする場合の例を示した。なお、瞼開閉検出装置10は被写体の顔画像にもとづいて被写体の瞼開閉を検出できればよく、顔画像を取得可能であれば、カメラの一部として設けられずともよい。以下の説明では、瞼開閉検出装置10が車室内用カメラ4の一部として設けられる場合の例について示す。
【0011】
この場合、
図1に示すように、車室内用カメラ4は車両1の運転席に座った運転者Dの顔Fを撮影できる位置に設けられるとよい。
図1には、車室内用カメラ4が車両1のステアリングコラムカバー2の上面に設けられる場合の例を示したが、ダッシュボード3の上面、インストルメンタルパネル内などに設けられてもよい。より好ましくは、車室内用カメラ4は、運転者Dの顔Fを正面から撮影できるよう、カメラ光軸が運転者Dの顔Fの正中線と交わるように設けられることが好ましく、たとえばハンドル(ステアリングホイール)の回転軸を通るyz平面上にカメラ光軸が位置するように設けられるとよい。
【0012】
図2(a)は、車室内用カメラ4の一構成例を示す側面図であり、(b)は正面図である。車室内用カメラ4は、プロセッサを備えた瞼開閉検出装置10、光源11、レンズ12、フィルタ13、および撮像素子14を有する。
【0013】
光源11は、たとえば複数設けられる。以下の説明では、光源11がたとえば880nmや940nmをピーク波長にもつ近赤外光を発光する近赤外光光源である場合の例について示す。なお、光源11として、近赤外光光源にかえて可視光光源や紫外光光源を使用してもよい。
【0014】
レンズ12は、撮像素子14に集光し、運転者Dの顔Fの像を撮像素子14に結ぶために用いられる。フィルタ13は、光源11が発光する光を透過する。撮像素子14は、少なくとも光源11の発光波長を検出可能な感度を有し、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサにより構成される。撮像素子14は、瞼開閉検出装置10に制御されて、フィルタ13を介して被写体を撮像して被写体の顔画像の画像データを生成し、瞼開閉検出装置10に与える。
【0015】
なお、撮像素子14は、可視光域と近赤外域との両方の感度を有したものを使用してもよい。この場合、フィルタ13は、たとえば可視光を遮り近赤外光を透過させるための第1の位置と、可視光を遮らない第2の位置との2つの位置のいずれかで位置決め可能に構成されるとよい。瞼開閉の検出技術において、被写体のまばたきを誘発してしまうことから、被写体が眩しさを感じることは好ましくない。この点、近赤外光を利用することにより、夜間やトンネルなど顔Fの照度が不足する場合でも、被写体が眩しさを感じることなく鮮明な顔画像を取得することができる。
【0016】
続いて、瞼開閉検出装置10のプロセッサによる機能実現部の構成および動作について説明する。
【0017】
図3は、本実施形態に係る瞼開閉検出装置10のプロセッサによる実現機能例を示す概略的なブロック図である。
【0018】
瞼開閉検出装置10は、たとえばプロセッサおよびRAMならびにROMをはじめとする記憶媒体により構成される。瞼開閉検出装置10のプロセッサは、ROMをはじめとする記憶媒体に記憶された瞼開閉検出プログラムおよびこのプログラムの実行のために必要なデータをRAMへロードし、このプログラムに従って、時系列的に連続した画像を用いずとも高精度に被写体の瞼の開閉判定を行なう処理を実行する。
【0019】
瞼開閉検出装置10のRAMは、プロセッサが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。瞼開閉検出装置10のROMをはじめとする記憶媒体は、たとえば車室内用カメラ4の起動プログラム、瞼開閉検出プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。なお、ROMをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、プロセッサにより読み取り可能な記録回路を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は、ネットワークを介してまたは光ディスクなどの可搬型記憶媒体を介して更新されてもよい。
【0020】
なお、本実施形態において、「プロセッサ」という文言は、たとえば、専用または汎用のCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、または、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(たとえば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、およびFPGA)等の回路を意味するものとする。プロセッサは、記憶媒体に保存されたプログラムを読み出して実行することにより、各種機能を実現する。
【0021】
また、本実施形態では瞼開閉検出装置10の単一のプロセッサが各機能を実現する場合の例について示したが、複数の独立したプロセッサを組み合わせて瞼開閉検出装置10を構成し、各プロセッサが各機能を実現してもよい。また、プロセッサが複数設けられる場合、プログラムを記憶する記憶媒体はプロセッサごとに個別に設けられてもよいし、1つの記憶媒体が全てのプロセッサの機能に対応するプログラムを一括して記憶してもよい。
【0022】
図3に示すように、瞼開閉検出装置10のプロセッサは、ROMをはじめとする記憶媒体に記憶された瞼開閉検出プログラムによって、少なくとも画像生成部21、初期検出部22、第1識別器23、第2識別器24、補助判定部25および統合判定部26として機能する。これらの各機能実現部21−26は、それぞれプログラムの形態で記憶媒体に記憶されている。
【0023】
図4は、
図3に示す瞼開閉検出装置10のプロセッサにより、時系列的に連続した画像を用いずとも高精度に被写体の瞼の開閉判定を行なう際の手順を示すフローチャートである。
図4において、Sに数字を付した符号はフローチャートの各ステップを示す。
【0024】
撮像素子14は、画像生成部21に制御されて被写体を撮像し、被写体の顔画像の画像データを生成して画像生成部21に与える(ステップS1)。
【0025】
画像生成部21は、撮像素子14を制御し、撮像素子14が出力した画像データにもとづいて顔画像を生成する(ステップS2)。
【0026】
初期検出部22は、被写体の顔画像から、たとえば輝度勾配方向共起ヒストグラム(CoHOG:Co-occurrence Histograms of Oriented Gradients)を用いた処理(以下、CoHOG処理という)を行なう識別器であり、初期位置検出辞書を用いて目の領域を検出する(ステップS3)。
【0027】
図5は、初期検出部22が用いる初期位置検出辞書と、第2識別器24が用いる開眼用位置検出辞書および閉眼用位置検出辞書について説明するための図である。
【0028】
図5に示すように、初期位置検出辞書は、目の画像を正解(ポジティブデータ)、目の周辺部分を不正解(ネガティブデータ)として学習した辞書である。すなわち、初期位置検出辞書は、瞼が開いた画像も閉じた画像も、ともに正解として学習させた辞書である。一方、開眼用位置検出辞書および閉眼用位置検出辞書は、初期位置検出辞書よりも解像度の高い入力画像により作成される。また、開眼用位置検出辞書は、瞼が開いた画像のみを正解とし、目の周辺部分を不正解として学習させた辞書である。閉眼用位置検出辞書は、瞼が閉じた画像のみを正解とし、目の周辺部分を不正解として学習させた辞書である。
【0029】
このため、初期位置検出辞書は、開眼用位置検出辞書および閉眼用位置検出辞書に比べ、位置ずれに強いが、精度には劣る。このため、初期位置検出辞書は、顔画像などの広い領域から目の領域を大まかに検出するのに適している。一方、開眼用位置検出辞書および閉眼用位置検出辞書は、位置ずれに弱い一方で、狭い領域から目の領域を高精度に検出するのに適している。したがって、本実施形態では、まず、初期検出部22により初期位置検出辞書を用いて顔画像から大まかに目の領域を検出させておく。そして、この検出された目の領域を包含する領域について、第2識別器24により開眼用位置検出辞書および閉眼用位置検出辞書を用いて高精度に目の領域を検出させる。
【0030】
そこで、ステップS3において、初期検出部22は、画像全体を顔の辞書に合わせて正規化して顔を検出する。そして、初期検出部22は、検出した顔の領域を目の辞書サイズに応じて正規化し、初期位置検出辞書を用いて目の領域を検出する。
【0031】
なお、本実施形態における辞書は全て、ポジティブとネガティブを逆に学習しても構わない。逆に学習した場合は、尤度にもとづく判定結果を反転させればよいだけである。
【0032】
以上のステップS1−S3の手順により、顔画像から目の領域をおおまかに検出することができる。次に、検出した目の領域について、左目、右目のそれぞれについて瞼の開閉判定を行なう。
【0033】
第1識別器23は、第1の開閉判定辞書を用いて、初期検出部22により検出された目の領域について瞼の開閉の判定を行い、判定結果(以下、第1判定結果という)を出力する(ステップS4)。第1識別器23としては、正解と不正解を学習した識別器により構成することができ、たとえばCoHOG識別器により構成できる。
【0034】
第2識別器24は、初期検出部22により検出された目の領域を包含する走査領域を切り出し、この走査領域から開眼用位置検出辞書および閉眼用位置検出辞書を用いて高精度に目の領域を検出する。そして、第2識別器24は、第1の開閉判定辞書とは異なる入力画像を用いて作成された第2の開閉判定辞書を用いて、高精度に検出した目の領域について瞼の開閉の判定を行い、判定結果(以下、第2判定結果という)を出力する(ステップS5)。第2識別器24としては、正解と不正解を学習した識別器により構成することができ、第1識別器23と同様にたとえばCoHOG識別器により構成できる。
【0035】
補助判定部25は、第1識別器23および第2識別器24のいずれとも異なる特徴量を用いて、初期検出部22により検出された目の領域について瞼の開閉の判定を行い、判定結果(以下、第3の判定結果という)を出力する(ステップS6)。
【0036】
補助判定部25が用いる特徴量としては、たとえばエッジ強度、円形分離度(フィルタ)、勾配方向などを用いることができる。以下の説明では、補助判定部25がエッジ強度を用いて瞼の開閉判定を行う場合の例について示す。
【0037】
統合判定部26は、第1識別器23、第2識別器24および補助判定部25の判定結果を統合評価し、被写体の瞼の開閉の最終判定を行なう(ステップS7)。
【0038】
図6は、統合判定部26による最終判定方法について説明するための図である。
【0039】
図6に示すように、統合判定部26は、たとえば第1識別器23、第2識別器24および補助判定部25の判定結果の多数決をとることで最終判定を行う。また、本例では出力される判定結果が3つであるため、1つでも「判定不能」が含まれている場合には、多数決を取ることができなくなる。そこで、統合判定部26は、精度の高い判定が期待できる順に、すなわち第2識別器24の第2判定結果、第1識別器23の第1判定結果、補助判定部25の第3判定結果の順に優先度付けする。そして、「判定不能」が含まれることにより多数決がとれない場合には、この優先度の順で最終判定を行う(
図6参照)。
【0040】
両目ともに最終判定を行った場合は一連の手順は終了となる。一方、片方の目の最終判定が行われていない場合は、ステップS4に戻る。
【0041】
以上の手順により、複数の識別器の瞼開閉判定結果を統合評価することができる。このため、時系列的に連続した画像を用いずとも、高精度に被写体の瞼の開閉判定を行なうことができる。
【0042】
次に、第1識別器23による瞼開閉判定処理について詳細に説明する。
【0043】
図7は、
図4のステップS4で第1識別器23により実行される瞼開閉判定処理の詳細な手順の一例を示すサブルーチンフローチャートである。また、
図8は、CoHOG特徴量の求め方について説明するための図である。
【0044】
第1識別器23は、第2識別器24とは異なり、目の領域の再探索を行わず、初期検出部22により検出された目の領域をそのまま用いる。また、第1識別器23が瞼開閉判定に用いる第1の開閉判定辞書は、目の位置がずれても尤度が急激に変化したりしないように、同一の目の画像の位置をずらしたり拡大縮小したりして水増ししたデータを用いて作成されるため、位置ずれに強い。また、辞書をつくる時の輝度勾配閾値が低めに設定される。このため、入力画像に輝度の変化があれば、この変化も画像の特徴として第1の開閉判定辞書は学習している。このため、目の領域の画像について、輝度ヒストグラム平坦化などの輝度補正処理は不要である。
【0045】
ステップS401において、第1識別器23は、初期検出部22により検出された目の領域をそのまま切り出して、第1の開閉判定辞書の学習した目の画像サイズに応じて改めて正規化する。これは、
図4のステップS3とは正規化のサイズが異なるためである。
【0046】
次に、ステップS402において、第1識別器23は正規化された画像から特徴量を求める。特徴量としては、たとえばCoHOG特徴量を用いることができる(
図8参照)。
【0047】
次に、ステップS403において、第1識別器23は、求めた特徴量について、第1の開閉判定辞書とSVM(サポートベクターマシン)等で照合し、尤度(スコア)を算出する。
【0048】
たとえば、第1の開閉判定辞書が、閉じた瞼の画像データをポジティブ、開いた瞼の画像データをネガティブとして学習させた辞書である場合、尤度が第1の閾値以上の場合には(ステップS404のYES)、目が閉じていると判定する(ステップS405)。一方、尤度が第1の閾値より小さい場合には、目が開いていると判定する。このとき、
図7に示すように、閾値付近で判定結果がバタつくことを避けるよう、尤度が第1の閾値より小さい場合には(ステップS404のNO)、さらに尤度が第2閾値以下であれば(ステップS406のYES)目が開いていると判定する一方(ステップS407)、尤度が第2閾値より大きい場合には(ステップS406のNO)、判定不能と判定するとよい(ステップS408)。
【0049】
なお、第1識別器23は、目が検出されなかった場合も判定不能を出力する。ステップS401で正規化した際に画像がはみ出してしまう場合にも判定不能が出力される。
【0050】
次に、第2識別器24による瞼開閉判定処理について詳細に説明する。
【0051】
図9は、
図4のステップS5で第2識別器24により実行される瞼開閉判定処理の詳細な手順の一例を示すサブルーチンフローチャートである。また、
図10は、第2識別器24の一構成例を示す機能ブロック図である。
図10に示すように、第2識別器24は、輝度補正部241、特徴量算出部242、仮開眼位置識別器243、仮閉眼位置識別器244、第1開閉識別器245、第2開閉識別器246および開閉判定部247を有する。
【0052】
ステップS501において、輝度補正部241は、初期検出部22により検出された目の領域に対して輝度ヒストグラムを平坦化する輝度補正処理を行う。輝度補正処理を行うことにより、環境光に対するロバスト性が高まる。
【0053】
図11は、第2識別器24による特徴量算出処理を説明するための図である。
【0054】
ステップS502において、特徴量算出部242は、初期検出部22により検出された目の領域を包含する走査領域を切り出し、第2識別器24の辞書サイズに応じてサイズを正規化する(
図11の上側参照)。
【0055】
次に、ステップS503において、特徴量算出部242は、切り出した走査領域で走査枠をずらしながら走査し、各走査位置で特徴量を求める。特徴量は、たとえばCoHOG特徴量であれば、
図8に示す方法と同様にして求められるが、走査位置の数だけ複数の特徴量が計算されることになる(
図11の下側参照)。
【0056】
図12は、第2識別器24による仮開眼位置検出処理および仮閉眼位置検出処理を説明するための図である。
【0057】
ステップS504において、仮開眼位置識別器243は、各走査位置の特徴量を開眼用位置検出辞書と照合して各走査位置で尤度を求め、被写体の瞼が開いていたと仮定した場合の目の位置である仮開眼位置を検出する。
【0058】
次に、ステップS505において、仮閉眼位置識別器244は、各走査位置の特徴量を閉眼用位置検出辞書と照合して各走査位置で尤度を求め、被写体の瞼が閉じていたと仮定した場合の目の位置である仮閉眼位置を検出する。
【0059】
図5に示すように、開眼用位置検出辞書は、初期位置検出辞書に比べ、高精細な(高解像度な)、開いた目のデータセットを用いて作成され、瞼が開いていると仮定した場合の目の、より高精度な位置(仮開眼位置)を検出するために用いられる。同様に、閉眼用位置検出辞書は、初期位置検出辞書に比べ、高精細な(高解像度な)、閉じた目のデータセットを用いて作成され、瞼が閉じていると仮定した場合の目の、より高精度な位置(仮閉眼位置)を検出するために用いられる。
【0060】
また、仮開眼位置および仮閉眼位置の検出方法としては、たとえば特徴量と辞書とを照合した時の尤度が高い座標を採用する方法や、閾値以上の尤度の座標について尤度で重みづけ平均をとった座標を採用するといった方法を用いることができる。
【0061】
以上のステップS501−505の手順により、仮開眼位置および仮閉眼位置を高精度に検出することができる。
【0062】
続いて、第1の開閉判定辞書とは異なる入力画像を用いて作成された第2の開閉判定辞書を用いて、瞼の開閉の第2判定結果を出力する処理を行う。第2の開閉判定辞書は、開眼用開閉判定辞書と、閉眼用開閉判定辞書とを含む。
【0063】
ステップS506において、第1開閉識別器245は、仮開眼位置で開眼用開閉判定辞書と照合し、開眼尤度を求める。また、ステップS507において、第2開閉識別器246は、仮閉眼位置で閉眼用開閉判定辞書と照合し、閉眼尤度を求める。
【0064】
次に、ステップS508において、開閉判定部247は、開眼尤度および閉眼尤度にもとづいて最終尤度を求める。そして、この最終尤度を用いて瞼の開閉判定を行う。たとえば
図7と同様に開閉判定を行なう場合、最終尤度が第1の閾値以上の場合には(ステップS509のYES)、目が閉じていると判定する(ステップS510)。一方、最終尤度が第1の閾値より小さい場合には(ステップS509のNO)、さらに最終尤度が第2閾値以下であれば(ステップS511のYES)目が開いていると判定する一方(ステップS512)、最終尤度が第2閾値より大きい場合には(ステップS511のNO)、判定不能と判定するとよい(ステップS513)。
【0065】
なお、第2識別器24は、第1識別器23と同様に、目が検出されなかった場合や高精度な位置検出で閉じた目も開いた目も見つからなかった場合にも、判定不能を出力する。
【0066】
ここで、第1識別器23および第2識別器24の違いについて説明する。
【0067】
第1識別器23と第2識別器24は、どちらも瞼の開閉を検出する識別器であるが、第1識別器23と第2識別器24は違うデータセット(辞書作成に使う入力画像)を用いて作られている。
【0068】
第1識別器23は、第1の開閉判定辞書の作成に用いるデータセットとして、位置をずらしたり拡大縮小したりして水増ししたデータを用い、閉じた瞼のデータをポジティブ、開いた瞼のデータをネガティブとして学習させる。位置をずらして水増しすることで、辞書の入力データが多くなる。なお、ポジティブとネガティブは逆でも構わない。
【0069】
一方、第2識別器24は、第2の開閉判定辞書の作成に用いるデータセットとして、位置をずらした水増しを行わないデータを用いる。
図9−12を用いて説明したとおり、第2識別器24は、初期検出部22が検出した目の領域にもとづいて、より高精細な目の識別器である仮開眼位置識別器243および仮閉眼位置識別器244を用いて、再度目の位置(開いていると仮定した場合の仮開眼位置、閉じていると仮定した場合の仮閉眼位置)を検出することで位置精度を高める。そして、これらの位置のそれぞれで瞼開閉の識別器である第1開閉識別器245および第2開閉識別器246がそれぞれの開眼用開閉判定辞書および閉眼用開閉判定辞書を使って瞼開閉判定を行う。
【0070】
初期検出部22による目の領域の検出では、閉じた目と開いた目が混ざっている初期位置検出辞書を用いるため、位置検出精度が低くなってしまう。一方、第2識別器24を用いる方法では、目の位置の検出精度を高めることができるため、瞼開閉判定辞書との照合した時のスコアの信頼性が向上し、瞼開閉の判定結果の信頼性が向上する。
【0071】
また、統合判定部26は、使用するデータセットや識別の方法が互いに異なる複数の識別器による複数の判定結果を統合評価して多数決などにより最終的な瞼開閉判定を行うことができる。
【0072】
たとえば、第2識別器24は、少しでも位置がずれると急激に尤度が変化してしまう。また、目の位置を再探索するがゆえに、眼鏡のフレームを閉じた目として検出してしまうなど、局所的な紛らわしい画像に引きずられてしまう場合がありうる。一方、第1識別器23は、位置ずれに強くこの種の局所的な紛らわしい画像に引きずられる可能性が低い。
【0073】
本実施形態に係る瞼開閉検出装置10によれば、
図6に示すように、1の識別器が苦手とする場面において当該識別器がたとえ判定不能を出力したとしても、他の識別器によって補うことにより、最終的な瞼開閉判定を高精度に行なうことができる。
【0074】
次に、補助判定部25によるエッジ強度を用いた瞼開閉判定処理について詳細に説明する。
【0075】
図13は、
図4のステップS6で補助判定部25により実行されるエッジ強度を用いた瞼開閉判定処理の詳細な手順の一例を示すサブルーチンフローチャートである。また、
図14は、補助判定部25の一構成例を示す機能ブロック図である。
図14に示すように、補助判定部25は、輝度補正部251、エッジ強度画像生成部252、組抽出部253、グループ化部254および開閉判定部255を有する。
【0076】
まず、ステップS601において、輝度補正部251は、初期検出部22により検出された目の領域の画像サイズや傾きを正規化する。
【0077】
次に、ステップS602において、輝度補正部251は、初期検出部22により検出された目の領域に対して輝度ヒストグラムを平坦化する輝度補正処理を行う。輝度補正処理を行うことにより、環境光に対するロバスト性が高まる。
【0078】
図15(a)はエッジ強度画像生成に用いられるカーネルの一例を示す説明図であり(b)はカーネルの他の例を示す説明図である。
【0079】
ステップS603において、エッジ強度画像生成部252は、たとえば
図15(a)や(b)などに示すカーネルを畳み込むことによりエッジ強度画像を生成する。
【0080】
次に、ステップS604において、組抽出部253は、上瞼候補点および下瞼候補点を抽出するとともに、これらの候補点から上下瞼候補点の組を抽出する。
【0081】
図16は、
図13のステップS604で組抽出部253により実行される瞼候補点抽出処理およびそれらのペアリング処理の手順の一例を示すサブルーチンフローチャートである。この手順では、目の輝度値が目の周辺の肌の輝度値に比べて低い値となることを利用する。
【0082】
図17は、上瞼候補点および下瞼候補点が抽出される様子の一例を示す説明図である。
【0083】
ステップS6401において、組抽出部253は、エッジ強度画像を縦の各ラインについて上から下へ探索し始める。
【0084】
エッジ強度の極大値を示す位置があると(ステップS6402のYES)、組抽出部253は、この位置を上瞼候補点として抽出し、当該位置の座標とエッジ強度を登録する(ステップS6403)。エッジ強度の極大値を示す位置は、輝度値が明から暗に変化する位置であり、目の周辺の肌と目との境界位置である可能性が高いためである。また、エッジ強度の極小値を示す位置があると(ステップS6404のYES)、組抽出部253は、この位置を下瞼候補点として抽出し、当該位置の座標とエッジ強度を登録する(ステップS6405)。そして、現在探索中の縦のラインの最下部に到る(ステップS6406)。このとき、探索したラインに下瞼候補点がなかった場合は(ステップS6407のYES)、組抽出部253はエッジ強度の最小値を示す位置を下瞼候補点として抽出し、この位置の座標とエッジ強度とを登録する。
【0085】
図18は、縦の1のライン上で抽出された上瞼候補点および下瞼候補点の一例を示す説明図である。
図18に示すように、初期検出部22に検出された目の領域にたとえば眼鏡のフレームなど目以外のものが含まれていると、上瞼候補点および下瞼候補点が誤検出されてしまうこともある。
【0086】
次に、組抽出部253は、探索したラインで抽出した上瞼候補点および下瞼候補点のペアリングを試みる。
【0087】
図19は、上瞼候補点および下瞼候補点のペアリング方法の一例を示す説明図である。組抽出部253は、探索したラインで抽出した上瞼候補点のそれぞれについて、上下方向下側で最も近い下瞼候補点をペア候補とする(ステップS6409、
図19の上から下への矢印参照)。また、下瞼候補点のそれぞれについて、上下方向上側で最も近い上瞼候補点をペア候補とする(ステップS6410、
図19の下から上への矢印参照)。
【0088】
そして、互いにペア候補であって各候補点における輝度値変化量の差が閾値以下であるペア候補どうしがあると(ステップS6411のYES)、このペア候補どうしを上瞼候補点と下瞼候補点との組としてペアリングする(ステップS6412)。各候補点における輝度値変化量の差が閾値以下であるとは、たとえば
図17に示す例では、ΔAとΔBの差の絶対値が閾値以下であることをいう。このステップS6401からS6412までの手順を、全ての縦のラインで繰り返す(ステップS6413のNO、ステップS6414)。なお、
図16には全てのラインを処理する場合の例を示すためステップS6414で1ライン右に行く場合の例を示したが、処理量の低減のため1ライン飛ばしや2ライン飛ばしで処理を行ってもよく、この場合はS6414で1ライン飛ばしや2ライン飛ばしで右に移動する。1ライン飛ばしや2ライン飛ばしの場合は、処理対象ラインの数が少なくなる。
【0089】
全ての処理対象ラインで瞼候補点抽出処理およびそれらのペアリング処理が行われると(ステップS6413のYES)、
図13のステップS605に進み、グループ化部254は、抽出された瞼候補点のペアのそれぞれについて、グループ化部254は、上瞼候補点どうしの距離および下瞼候補点どうしの距離がともに閾値以内であるペア同士が同一のグループに属するようにグルーピングする。
【0090】
図20は、グルーピング結果の一例を示す説明図である。
図20において、同一のグループに属する候補点は同一形状(円形、四角形、六角形)で示した。
【0091】
次に、ステップS606において、開閉判定部255は、グループのそれぞれについて、各グループが上下瞼を構成するペアが属するグループであるか否かの判定や瞼の開閉判定に用いられる所定の特徴量を求める。次に、ステップS607において、開閉判定部255は、グループごとに優先度の高いグループから瞼の開閉判定を行い、瞼の開閉判定ができ次第、
図4のステップS7に進む。
【0092】
図21(a)はグループの長さおよびグループの重心付近の幅の平均値を説明するための図であり、(b)は目頭側上瞼候補点の近似直線および目頭側の上下瞼の近似直線のなす角を説明するための図である。
【0093】
また、
図22は所定の特徴量を用いた開閉判定のルールの一例を示す説明図である。
図23(a)は
図22に示す第1のルールを説明するための図であり、(b)は
図22に示す第3のルールを説明するための図であり、(c)は
図22に示す第4のルールを説明するための図である。
図22に示すルールは、グループを構成する組の数(グループの長さ)、グループの重心付近における幅の平均、およびグループの目頭近傍における複数の上瞼候補点を結ぶ近似直線の傾き、から選ばれた少なくとも2つの特徴量にもとづいて、被写体の瞼の開閉を判定するためのルールである。
【0094】
開閉判定部255が求める所定の特徴量としては、たとえばグループの長さ、グループの重心付近の幅、グループの目頭側の上瞼の近似直線、目頭側の上下瞼の近似直線のなす角などが挙げられる。
【0095】
グループの長さは、各グループが上下瞼を構成するペアが属するグループであるか否かの判定に用いることができる。グループの長さが所定の長さ以上であれば、単なる誤検出ではなく当該グループが上下瞼を構成するペアが属するグループである可能性が高まる。なお、グループの長さは、グループを構成するペアの数であってもよい。長さにかえてペアの数を用いる場合、グループの長さは長いものの構成するペアの密度が低く誤検出の可能性の高いグループを排除することができる。
【0096】
また、グループの重心位置が画像中心から遠ざかるほど誤検出である可能性が高まり、画像中心に近づくほど、当該グループが上下瞼を構成するペアが属するグループである可能性が高まる。
【0097】
また、画像内におけるグループの重心付近(たとえば重心からグループ長さの2割〜4割ほどの横幅)にあるペアの幅(上下瞼候補点間距離)の平均値は、開閉判定に用いることができる。
【0098】
また、上下瞼を構成するペアが属するグループの目頭側の上瞼の近似直線は、閉眼している時はグループ中心に向かって下向きであるため、開閉判定に用いることができる。
【0099】
また、目頭側の上下瞼の近似直線のなす角は、瞼の開閉に応じて当然に変化するため、開閉判定に用いることができる。
【0100】
これらのほか、開閉判定部255は所定の特徴量として、ペアの幅の最大値、平均値、分散、グループの重心位置などを求めてもよい。
【0101】
特徴量を計算した後、開閉判定部255は、グループの長さや重心位置により、グループが上下瞼を構成するペアが属するグループである可能性が高いグループに対し、高優先度を与えて優先度の高い順番にグループをソートする。このとき、グループの長さや重心位置に応じて、誤検出の可能性が高いグループをフィルタして排除してもよい。
【0102】
そして、ソートした順番で、たとえば
図22に示した瞼開閉の判定ルールに合致するかを確認する。ルールに合致した時点で、その目についての判定処理は終了する。全てのグループがどのルールにも合致しない場合には、開閉判定部255は判定不能を出力する。
【0103】
補助判定部25は、初期検出部22が検出した目の領域のエッジ強度画像を作成し、エッジ強度から上下瞼候補点のペアを複数抽出し、抽出したペアを位置関係に応じてグルーピングする。そして、グループの長さ、重心付近の幅、目頭側の上瞼の近似直線などの各グループの特徴量から、瞼開閉を判定する。このため、眼鏡のフレームやその陰が映り込む場合であっても、被写体が下を向いている場合や被写体のまつ毛が長い場合であっても、時系列的に連続した画像を用いずとも高精度に被写体の瞼の開閉判定を行なうことができる。また、補助判定部25による特徴量算出処理で処理負荷が係るものは、直線近似程度のものであり、瞼の輪郭を曲線フィッティングするような従来の技術に比べて非常に容易に瞼の開閉判定を行うことができる。
【0104】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。