(57)【要約】【課題】短時間で正しい瞼を検出できる瞼検出装置を提供する。【解決手段】カメラ１０は対象者の顔の複数の画像を撮像し、コンピュータ１４はその画像を取得する。コンピュータ１４は、取得した画像より眼の位置を検出し、検出した眼の面積と所定の閾値を比較し、その大小に基づいて対象者の眼の開閉を判別する。【選択図】図１
2008226106.tif 000002
【特許請求の範囲】
【請求項１】
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出する眼検出手段と、
前記眼検出手段が検出した眼の面積に基づいて、対象者の眼の開閉を判別する眼開閉判別手段と、を備える、
ことを特徴とする眼開閉判別装置。
【請求項２】
前記眼開閉判別手段は、
前記眼検出手段が検出した眼の面積と閾値とを比較し、
前記眼の面積が前記閾値以上である場合、当該眼が開いていると判別し、
前記眼の面積が前記閾値未満である場合、当該眼が閉じていると判別する、
ことを特徴とする請求項１に記載の眼開閉判別装置。
【請求項３】
前記顔画像記憶手段は、異なったタイミングで取得した対象者の顔の複数の画像を記憶し、
前記眼検出手段は、前記複数の画像において眼の位置を検出し、
検出した眼の面積の最大値と最小値とに基づいて前記閾値を決定する閾値決定手段をさらに備える、
ことを特徴とする請求項２に記載の眼開閉判別装置。
【請求項４】
前記閾値は、前記眼の面積の最大値と最小値との和を２で割った値である、
ことを特徴とする請求項３に記載の眼開閉判別装置。
【請求項５】
前記顔画像記憶手段は、
タイミングの異なった対象者の顔の複数の画像を記憶し、
前記眼検出手段は、
前記顔の複数の画像を処理し、眼の候補を抽出し、
前記眼の候補の縦エッジと横エッジとを抽出し、
前記縦エッジと横エッジとに囲まれる範囲の面積を計測し、
前記縦エッジと横エッジとに囲まれる範囲の面積の時間軸に沿った変化が瞬きに起因する変化を含む眼の候補を眼と判別し、
前記眼開閉判別手段は、
前記縦エッジと横エッジとに囲まれる範囲の面積に基づいて、対象者の眼の開閉を判別する、
ことを特徴とする請求項１乃至４の何れか一項に記載の眼開閉判別装置。
【請求項６】
眼の形状に対応するテンプレートである眼テンプレートを格納するテンプレート格納手段をさらに備え、
前記眼検出手段は、
前記テンプレート格納手段が格納している眼テンプレートに合致させることによって、前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出する、
ことを特徴とする請求項１乃至４の何れか一項に記載の眼開閉判別装置。
【請求項７】
前記眼開閉判別手段は、
前記眼検出手段が検出した眼の縦エッジと横エッジとを抽出し、
前記縦エッジと横エッジとに囲まれる範囲の面積を計測し、
前記縦エッジと横エッジとに囲まれる範囲の面積に基づいて、対象者の眼の開閉を判別する、
ことを特徴とする請求項１又は６に記載の眼開閉判別装置。
【請求項８】
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出する眼検出手段、
前記眼検出手段が検出した眼の面積に基づいて、対象者の眼の開閉を判別する眼開閉判別手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両等の移動体を運転している運転者等の眼の開閉を判別する眼開閉判別装置及びプログラムに関する。
【背景技術】
【０００２】
現在、運転者の眼の開閉状態を検出する眼の状態検出装置（眼開閉判別装置）が実用化されている。
【０００３】
例えば、特許文献１に開示されている眼の状態検出装置は、二値化した顔画像の眼球存在領域内を縦方向に走査し、連続黒色画素を検出することによって眼を検出する。そして、眼の状態検出装置は、眼の最大の連続黒色画素の数に基づいて眼の開閉を判別する。
【０００４】
しかし、上記の眼の状態検出装置は、眼が細い場合、開眼時と閉眼時の上下瞼の距離の差が少ない為に眼の開閉状態を誤検出しやすかった。また、特に、車両内で使用される場合のように、暗い場所で使用されるときには画像の解像度が低くなってしまう為に眼に相当する連続黒色画素を検出することが困難であった。
【特許文献１】特許第２８２２７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記問題点に鑑みてなされたもので、正確に眼の開閉を判別できる眼開閉判別装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の第１の観点に係る眼開閉判別装置は、
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出する眼検出手段と、
前記眼検出手段が検出した眼の面積に基づいて、対象者の眼の開閉を判別する眼開閉判別手段と、を備える、
ことを特徴とする。
【０００７】
例えば、前記眼開閉判別手段は、
前記眼検出手段が検出した眼の面積と閾値とを比較し、
前記眼の面積が前記閾値以上である場合、当該眼が開いていると判別し、
前記眼の面積が前記閾値未満である場合、当該眼が閉じていると判別してもよい。
【０００８】
例えば、前記顔画像記憶手段は、異なったタイミングで取得した対象者の顔の複数の画像を記憶し、
前記眼検出手段は、前記複数の画像において眼の位置を検出し、
検出した眼の面積の最大値と最小値とに基づいて前記閾値を決定する閾値決定手段をさらに備えてもよい。
【０００９】
例えば、前記閾値は、前記眼の面積の最大値と最小値との和を２で割った値であってもよい。
【００１０】
例えば、前記顔画像記憶手段は、
タイミングの異なった対象者の顔の複数の画像を記憶し、
前記眼検出手段は、
前記顔の複数の画像を処理し、眼の候補を抽出し、
前記眼の候補の縦エッジと横エッジとを抽出し、
前記縦エッジと横エッジとに囲まれる範囲の面積を計測し、
前記縦エッジと横エッジとに囲まれる範囲の面積の時間軸に沿った変化が瞬きに起因する変化を含む眼の候補を眼と判別し、
前記眼開閉判別手段は、
前記縦エッジと横エッジとに囲まれる範囲の面積に基づいて、対象者の眼の開閉を判別してもよい。
【００１１】
例えば、眼の形状に対応するテンプレートである眼テンプレートを格納するテンプレート格納手段をさらに備え、
前記眼検出手段は、
前記テンプレート格納手段が格納している眼テンプレートに合致させることによって、前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出してもよい。
【００１２】
例えば、前記眼開閉判別手段は、
前記眼検出手段が検出した眼の縦エッジと横エッジとを抽出し、
前記縦エッジと横エッジとに囲まれる範囲の面積を計測し、
前記縦エッジと横エッジとに囲まれる範囲の面積に基づいて、対象者の眼の開閉を判別してもよい。
【００１３】
本発明の第２の観点に係るプログラムは、
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶している顔の画像より眼の位置を検出する眼検出手段、
前記眼検出手段が検出した眼の面積に基づいて、対象者の眼の開閉を判別する眼開閉判別手段、
として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、正確に眼の開閉を判別できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態に係る眼開閉判別装置５０について説明する。
【００１６】
眼開閉判別装置５０は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０と、ドライバーの顔を照明する照明光源１２と、ドライバーの眼を検出し、その開閉を判別するコンピュータ１４と、コンピュータ１４に接続された表示装置１６と、から構成される。
【００１７】
カメラ１０は例えばＣＣＤカメラ等から構成され、ドライバーの顔の階調画像を一定周期（例えば、１／３０秒）で取得し、出力する。カメラ１０から順次出力される顔画像は、ドライバーの顔（の画像）だけでなく、その背景（の画像）なども含む。
【００１８】
表示装置１６は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、眼の開閉状況等を表示する。
【００１９】
コンピュータ１４は、カメラ１０により取得された顔動画像を処理してその眼の開閉を判別する装置である。コンピュータ１４は、図２に示すように、Ａ／Ｄ変換器２１と、画像メモリ２２と、ＲＯＭ（Read Only Memory）２３と、ＣＰＵ（Central Processing Unit）２４と、ＲＡＭ（Random Access Memory）２５と、表示制御装置２６と、光源制御装置２７と、設定メモリ２８と、操作装置２９と、から構成される。
【００２０】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
【００２１】
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを格納する。
【００２２】
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムを記憶する。また、ＲＯＭ２３は、後述する画像処理を実行するための様々な固定データを記憶する。
【００２３】
ＣＰＵ２４は、コンピュータ１４全体を制御する。また、ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、カメラ１０により取得された一連の顔画像を処理して眼を検出し、眼の開閉を判別する。
【００２４】
ＲＡＭ２５は、ＣＰＵ２４のワークエリアとして機能する。
【００２５】
表示制御装置２６は、ＣＰＵ２４の制御のもと、映像データ等を表示装置１６が出力可能なデータ形式に変換し、表示装置１６に出力する。
【００２６】
光源制御装置２７は、照明光源１２の点灯・消灯を制御する。
【００２７】
設定メモリ２８は、図４に示すような各種パラメータを予め格納する。各種パラメータは、ＣＰＵ２４が、ＲＡＭ２５に格納される顔画像から眼を検出する際に使用される。詳細は、後述する。
【００２８】
操作装置２９は、ユーザから操作情報を受け付け、操作に応じた操作信号をＣＰＵ２４に送出する。
【００２９】
次に、ＲＯＭ２３に格納される固定データの例を、図３を参照しながら説明する。まず、ＲＯＭ２３は、図３（ａ）に示すような、縦エッジ検出用ソーベルフィルタのオペレータを格納する。縦エッジ検出用ソーベルフィルタは、図３（ｃ）に示すような横方向の濃淡差を強調するためのオペレータである。また、ＲＯＭ２３は、図３（ｂ）に示すような、横エッジ検出用ソーベルフィルタのオペレータを格納する。横エッジ検出用ソーベルフィルタは、図３（ｄ）に示すような横方向の濃淡差を強調するためのオペレータである。
【００３０】
ただし、前提として、顔画像を構成する各画素は、ＲＧＢの各色が８ビットの諧調を有するように設定されており、第０階調〜第２５５階調の２５６階調の内いずれかの諧調を有するものとする。第０階調は黒、第２５５階調は白である。
【００３１】
設定メモリ２８に格納される各種パラメータの例を、図４を参照しながら説明する。
【００３２】
先ず、眼検出用ソーベル閾値は、顔画像から眼候補を抽出する際に横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値から、横エッジラインか否かを判別するための閾値である。また、眼検出用ソーベル閾値は、顔画像から眼候補を抽出する際に縦エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値から、縦エッジラインか否かを判別するための閾値でもある。
眼領域設定パラメータａ，ｂは、検出された顔位置と鼻孔位置とから眼が存在すると推定される眼領域を算出するためのパラメータである。
閾値Ｌｔｈ，Ｃｘｔｈ，Ｄｔｈは、眼候補となるエッジラインペアを抽出するために使用する閾値である。
閾値Ａｔｈ，σｔｈは、眼候補から眼を判別するために使用する閾値である。
【００３３】
以下、上記構成を有する第１の実施形態に係る眼開閉判別装置５０の動作を説明する。
【００３４】
まず、図３〜６を参照して、眼開閉判別装置５０が、顔画像中の眼を検出する動作の概要を説明する。
【００３５】
カメラ１０は、図５（ａ）に示すような対象者の顔画像を所定周期（例えば、１／３０秒周期）で撮影して顔画像を出力する。出力された顔画像は画像メモリ２２に順次格納される。
【００３６】
次に、ＣＰＵ２４は、画像メモリ２２に格納されている顔画像を順次読み出し、以下の処理を行う。
【００３７】
先ず、ＣＰＵ２４は、縦エッジ検出用ソーベルフィルタ（図３（ａ））を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の左右端を検出する。また、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の上下端を検出する。
【００３８】
例えば、図５（ａ）に示す顔画像の場合、顔の左右端は、ｘ＝ｉ，ｊであり、上下端は、ｙ＝ｍ，ｎである。顔の左右端と上下端から、顔の位置が検出できる。
【００３９】
ＣＰＵ２４は、ｉ≦ｘ≦ｊ，（ｍ＋ｎ）／２≦ｙ≦ｎの範囲から鼻孔の位置を検出する。具体的には、ＣＰＵ２４は、顔画像の上記の範囲内において所定の輝度値以下の画素が縦方向と横方向に３〜５画素分連続しているものを鼻孔として検出する。
【００４０】
ＣＰＵ２４は、設定メモリ２８に格納されているパラメータと検出した顔位置と鼻孔位置とに基づいて図５（ｂ）に示すような、眼が含まれると推定される眼領域を抽出する。図５（ａ）に示す図を用いて、具体的に説明すると、顔の左右端が、ｘ＝ｉ，ｊであり、上下端が、ｙ＝ｍ，ｎであり、鼻孔位置のｙ座標がｕである場合、図４に示されるような、設定メモリ２８に格納される眼領域設定パラメータａ，ｂを用いて、眼領域は、ｉ≦ｘ≦ｊ且つｖ≦ｙ≦ｗ（ただし、ｖ＝ｍ＋ｂ，ｗ＝ｕ−ａ）で表される。
【００４１】
ＣＰＵ２４は、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて眼領域の画像内の横エッジラインを抽出する処理を行う。ここで、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値が眼検出用横ソーベル閾値（図４）以上である画素の連なりを横エッジラインと判別する。
【００４２】
その結果、図５（ｃ）に示すように、ｙ軸方向に明るい画素から暗い画素に移るエッジラインがマイナスエッジとして表され、ｙ軸方向に光度が暗い画素から明るい画素に移るエッジラインがプラスエッジとして現れる。なお、図面上は、マイナスエッジを実線で、プラスエッジを破線で表す。
【００４３】
次に、ＣＰＵ２４は、求めたマイナスエッジラインとプラスエッジラインとから、次の三つの数式を満たすマイナスエッジとプラスエッジの組み合わせを抽出する。
【００４４】
Ｌｐ−Ｌｍ＜Ｌｔｈ・・・（１）
ただし、Ｌｐはプラスエッジの長さを表す値であり、Ｌｍはマイナスエッジの長さを表す値であり、Ｌｔｈは閾値である。ただし、閾値Ｌｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（１）を満たすマイナスエッジとプラスエッジとの長さは閾値Ｌｔｈの範囲で近似している。
【００４５】
Ｃｘｐ−Ｃｘｍ＜Ｃｘｔｈ・・・（２）
ただし、Ｃｘｐはプラスエッジの重心のｘ座標であり、Ｃｘｍはマイナスエッジの重心のｘ座標であり、Ｃｘｔｈは閾値である。ただし、閾値Ｃｘｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（２）を満たすマイナスエッジとプラスエッジとの重心のｘ座標は閾値Ｃｘｔｈの範囲で近似している。
【００４６】
Ｄｇ＜Ｄｔｈ・・・（３）
ただし、Ｄｇはマイナスエッジの重心とプラスエッジの重心との間の距離であり、Ｄｔｈは閾値である。ただし、閾値Ｄｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（３）を満たすマイナスエッジとプラスエッジとの重心間距離は閾値Ｄｔｈ以内である。
【００４７】
上記三つの数式を使って、抽出されたマイナスエッジとプラスエッジの組み合わせの内、マイナスエッジは上瞼候補とされ、プラスエッジは下瞼候補とされる。
【００４８】
つまり、数式（１）〜（３）を満たすマイナスエッジとプラスエッジの組み合わせは、ある程度、長さが等しく、位置が近く、重心のｘ座標が一致しているマイナスエッジとプラスエッジの組み合わせである。
【００４９】
図５（ｄ）に、数式（１）〜（３）によりマイナスエッジとプラスエッジの組み合わせの一例を示す。プラスエッジとマイナスエッジとの組み合わせである候補１〜７が対象者の眼の候補である。
【００５０】
ＣＰＵ２４は、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて眼領域の画像内の縦エッジラインを抽出する処理を行う。ここで、ＣＰＵ２４は、縦エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値が眼検出用ソーベル閾値（図４）以上である画素の連なりを縦エッジラインと判別する。
【００５１】
ＣＰＵ２４は、図６（ａ）に示すように、抽出した眼の候補のうちから、検出した横エッジラインと縦エッジラインとにより閉じた領域を形成するものを抽出する。ＣＰＵ２４は、図６（ｂ）に示されるような、閉じた領域を形成する眼の候補の閉じた領域の面積を計測する。例えば、この時点で、図６（ａ）（ｂ）に示されるように、横エッジラインと縦エッジラインとにより閉じた領域を形成する眼の候補として候補１，２，５，６が抽出される。
【００５２】
ＣＰＵ２４は、異なったタイミングで取得された複数の顔画像を解析して、図７に示すような、所定時間の閉じた領域の面積Ｓｑと所定時間のうちの１０秒間の面積Ｓｑの標準偏差を算出し、格納する。次に、ＣＰＵ２４は、次の四つの条件を満たす眼候補を眼と判別する。
【００５３】
先ず、所定時間内の眼候補の横エッジラインのプラスエッジ（下瞼候補）の重心の位置の変化が所定範囲内である。・・・（４）
条件（４）を満たす眼候補は、出現位置が安定しているので誤検出によるものではない可能性が高いといえる。
【００５４】
次に、面積Ｓｑ（ｔ）を時間ｔで一次微分した関数をＡ（ｔ）とすると、
Ａ（ａ）＝０
となる点が存在する。・・・（５）
【００５５】
面積Ｓｑ（ｔ）を時間ｔで二次微分した関数をＢ（ｔ）とすると、
ｔ＝ａを中心とした所定の範囲ａ−ｂ≦ｔ≦ａ＋ｂ（ただし、ｂ＞０）において、
Ｂ（ｔ）＞Ｂｔｈ
を満たす。・・・（６）
ただし、Ｂｔｈは閾値である。ただし、閾値Ｂｔｈは、図４に示されるように、設定メモリ２８に格納されている。条件（５）（６）を満たす眼候補は、面積Ｓｑ（ｔ）において、瞬きに相当する極小値を取る。
【００５６】
最後に、面積Ｓｑ（ｔ）の過去１０秒間の標準偏差をσ（ｔ）とすると、
ｔ＜ａ−ｂ，ａ＋ｂ＜ｔにおいて、
σ（ｔ）＜σｔｈ
を満たす。・・・（７）
ただし、σｔｈは閾値である。ただし、閾値σｔｈは、図４に示されるように、設定メモリ２８に格納されている。条件（７）を満たす眼候補の面積Ｓｑの標準偏差σは閾値σｔｈ以内である。つまり、条件（７）を満たす眼候補の面積Ｓｑは、瞬きに相当する極小値を取らない範囲において安定していると言える。
【００５７】
ＣＰＵ２４は、上記四つの条件を満たす眼候補を抽出し、抽出した眼候補を眼と判別する。
【００５８】
つまり、ＣＰＵ２４は、出現位置が安定していて、且つ、計測した面積Ｓｑの時間軸に沿った変化が瞬きに相当する極小値を取り、且つ、瞬きがないときの面積Ｓｑが安定している眼候補を眼として判別する。
【００５９】
次に、ＣＰＵ２４は、所定時間内における閉じた領域の面積Ｓｑの最大値と最小値を取得し、それらの数値に基づいて眼の開閉を判別するための閾値を算出する。具体的には、面積Ｓｑの最大値と最小値との和を２で割った値を閾値とする。
【００６０】
ＣＰＵ２４は、現時点の面積Ｓｑの値が上記の閾値より小さいときには、眼は閉じていると判別し、現時点の面積Ｓｑの値が上記の閾値より大きいときには、眼は開いていると判別する。
【００６１】
ここで、本発明の実施形態に係る眼開閉判別装置５０が行う眼状態判別処理について図８に示すフローチャートを参照して詳細に説明する。
【００６２】
コンピュータ１４内のＣＰＵ２４は、周期的（例えば、１／３０秒毎）に図８の眼状態判別処理を開始する。
【００６３】
先ず、眼開閉判別装置５０の電源が投入されると、ＣＰＵ２４は、後述する前処理を行う（ステップＳ１００）。簡単に説明すると、ＣＰＵ２４は、ドライバーの顔画像を取り込み、縦エッジを強調した画像を生成する、また、横エッジを強調した画像を生成する。
【００６４】
次に、ＣＰＵ２４は、後述する顔位置検出処理を行う（ステップＳ２００）。簡単に説明すると、ＣＰＵ２４は、上記の前処理で生成した縦エッジを強調した画像を使用して顔の左右端を検出し、上記の前処理で生成した横エッジを強調した画像を使用して顔の上下端を検出し、顔画像における顔の位置を検出する。
【００６５】
ＣＰＵ２４は、後述する眼候補抽出処理を行う（ステップＳ３００）。簡単に説明すると、ＣＰＵ２４は、上記の顔位置検出処理で検出した顔の位置を使用して顔画像中から眼領域を抽出し、横エッジラインを抽出し、抽出した横エッジラインから上下瞼の候補となる横エッジラインの対（以下眼候補）を抽出する。それから、縦エッジラインを抽出し、横エッジラインと縦エッジラインとにより閉じた領域を形成する眼候補をさらに抽出する。そして、閉じた領域の面積Ｓｑを計測し、計測した値をＲＡＭ２５に格納する。
【００６６】
ＣＰＵ２４は、後述する眼判別処理を行う（ステップＳ４００）。簡単に説明すると、ＣＰＵ２４は、面積Ｓｑの時間軸に沿った履歴を取得し、閉じた領域の面積Ｓｑが瞬きに相当する極小値を取り、且つ、瞬きがない期間の面積Ｓｑが安定している眼候補を眼として判別する。
【００６７】
ＣＰＵ２４は、後述する眼開閉判別処理を行う（ステップＳ５００）。簡単に説明すると、ＣＰＵ２４は、眼の開閉を判別するための閾値を算出し、算出した閾値に基づいて眼の開閉を判別し、処理を終了する。
【００６８】
このようにして、眼検出処理によれば、顔画像を取得して、その画像から眼を検出することを周期的に繰り返すことができる。
【００６９】
次に、眼状態判別処理のステップＳ１００において行われる前処理を説明する。簡単に説明すると、前処理において、眼開閉判別装置５０は、ドライバーの顔画像を撮像し、ソーベルフィルタを使用してエッジ検出を行う。
【００７０】
以下、図９を参照して、前処理（Ｓ１００）を詳細に説明する。
【００７１】
先ず、ＣＰＵ２４は、カメラ１０が撮影した対象者の顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納するキャプチャ処理を行う（ステップＳ１１０）。
【００７２】
次に、ＣＰＵ２４は、座標変換処理を行い、画像メモリ２２に格納した各顔画像の画素を後述するソーベルフィルタ処理実行可能な程度に間引く処理を行う（ステップＳ１２０）。
【００７３】
ＣＰＵ２４は、ＲＯＭ２３に格納されている縦エッジ検出用オペレータ（図３（ａ））を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調した画像を生成する。また、ＣＰＵ２４は、ＲＯＭ２３に格納されている横エッジ検出用オペレータ（図３（ｂ））を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調した画像を生成する（ステップＳ１３０）。
【００７４】
このようにして、前処理によれば、撮像した顔画像の縦エッジを強調した画像と横エッジを強調した画像を生成することができる。
【００７５】
ここで、眼検出処理のステップＳ２００において行われる顔位置検出処理を説明する。簡単に説明すると顔位置検出処理において、眼開閉判別装置５０は、前処理において生成した縦エッジを強調した画像と横エッジを強調した画像を用いて顔画像における顔の位置を検出する。
【００７６】
以下、図１０を参照して、顔位置検出処理（Ｓ２００）を詳細に説明する。
【００７７】
先ず、ＣＰＵ２４は、後述する顔左右端検出処理を行い、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する（ステップＳ２１０）。
【００７８】
次に、ＣＰＵ２４は、後述する顔上下端検出処理を行い、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出すると（ステップＳ２２０）、顔位置検出処理を終了する。
【００７９】
このようにして、顔位置検出処理によれば、顔の左右端と上下端を検出することによって顔画像における顔の位置を検出することができる。
【００８０】
ここで、顔位置検出処理のステップＳ２１０において行われる顔左右端検出処理を説明する。簡単に説明すると顔左右端検出処理において、眼開閉判別装置５０は、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する。
【００８１】
以下、図１１を参照して、顔左右端検出処理（Ｓ２１０）を詳細に説明する。
【００８２】
先ず、ＣＰＵ２４は、縦エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を縦方向に投影してヒストグラムを作成する顔左右端検出用ヒストグラム作成処理を行う（ステップＳ２１１）。具体的に述べると、各座標の画素値を何段階かに分割し、ｘ値毎に最も多く各座標の画素値を取る段階を決定する。ｘ値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【００８３】
ＣＰＵ２４は、ステップＳ２１１において作成したヒストグラムにおいて、ピークを取る点（以下、ピーク点）を抽出する（ステップＳ２１２）。
【００８４】
ＣＰＵ２４は、ステップＳ２１２において抽出したピーク点からそのヒストグラム値が閾値以上のものを顔の左右端候補として抽出する（ステップＳ２１３）。
【００８５】
ＣＰＵ２４は、ステップＳ２１３の処理の結果、顔の左右端の候補として、ヒストグラム値が閾値以上のピーク点が二つ抽出されたか否かを判別する（ステップＳ２１４）。
【００８６】
ヒストグラム値が閾値以上のピーク点が二つ抽出されたと判別すると（ステップＳ２１４；ＹＥＳ）、ＣＰＵ２４は、処理をステップＳ２１６に進め、抽出した二つのピーク点を取る位置を顔の左右端と決定する（ステップＳ２１６）。
【００８７】
ヒストグラム値が閾値以上の二つのピーク点が抽出されていないと判別すると（ステップＳ２１４；ＮＯ）、ＣＰＵ２４は、ピーク点から、二点の距離が人の顔幅として適切な間隔を有する二つのピーク点の組み合わせを抽出する（ステップＳ２１５）。
【００８８】
ＣＰＵ２４は、抽出した二つのピーク点を取る位置を顔の左右端と決定する（ステップＳ２１６）。
【００８９】
このようにして、顔左右端検出処理によれば、顔画像において顔の左右端を検出することができる。
【００９０】
ここで、顔位置検出処理のステップＳ２２０において行われる顔上下端検出処理を説明する。簡単に説明すると顔上下端検出処理において、眼開閉判別装置５０は、前処理において生成した横エッジラインを強調した画像を用いて、顔画像における顔の上下端の位置を検出する。
【００９１】
以下、図１２を参照して、顔上下端検出処理（Ｓ２２０）を詳細に説明する。
【００９２】
先ず、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する顔上下端検出用ヒストグラム作成処理を行う（ステップＳ２２１）。具体的に述べると、各座標の画素値を何段階かに分割し、ｙ値毎に最も多く各座標の画素値を取る段階を決定する。ｙ値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【００９３】
ＣＰＵ２４は、ステップＳ２２１において作成したヒストグラムにおいて、ピークを取る点（以下、ピーク点）を抽出する（ステップＳ２２２）。
【００９４】
ＣＰＵ２４は、ステップＳ２２２において抽出したピーク点のヒストグラム値に基づいて各ピーク点を眼・眉・口等に対応付ける（ステップＳ２２３）。
【００９５】
ＣＰＵ２４は、ステップＳ２２３において眼・眉・口等に対応付けられた各ピーク点に基づいて、顔画像における顔の上下端の位置を算出する（ステップＳ２２４）。例えば、検出した眉から３画素分上の位置を顔の上端とし、検出した口から３画素分下の位置を顔の下端（口と顎の間）とする。
【００９６】
このようにして、顔上下端検出処理によれば、顔画像において顔の上下端の位置を算出することができる。
【００９７】
ここで、眼状態判別処理のステップＳ３００において行われる眼候補抽出処理を説明する。簡単に説明すると、眼候補抽出処理において、眼開閉判別装置５０は、先ず、鼻孔の位置を検出する。次に、眼開閉判別装置５０は、顔位置検出処理で検出した顔の位置と本処理の始めに検出した鼻孔の位置とに基づいて眼が存在すると推定される特定の領域を抽出する。その後、眼開閉判別装置５０は、抽出した領域から横エッジ検出用ソーベルフィルタを用いて、プラスエッジとマイナスエッジを検出し、上記の（１）〜（３）式を満たすエッジラインペアを眼の候補として抽出する。
【００９８】
以下、図１３を参照して眼候補抽出処理（Ｓ３００）を詳細に説明する。
【００９９】
先ず、ＣＰＵ２４は、顔位置検出処理で検出した顔の位置に基づく範囲を、顔画像から所定の輝度値以下の画素が縦方向に３〜５画素分連続している部分を検出する。また、ＣＰＵ２４は、顔位置検出処理で検出した顔の位置に基づく範囲を、顔画像から所定の輝度値以下の画素が横方向に３〜５画素分連続している部分を検出する。ＣＰＵ２４は、それらの重なる部分を鼻孔の位置として検出する（ステップＳ３１０）。
【０１００】
ＣＰＵ２４は、顔位置検出処理で検出した顔の位置と鼻孔の位置と眼領域設定パラメータとに基づいて、画像メモリ２２に格納した各顔画像から眼が存在すると推定される眼領域の画像を抽出する（ステップＳ３２０）。
【０１０１】
ＣＰＵ２４は、ＲＯＭ２３に格納されている横エッジ検出用オペレータ（図３（ｂ））を用いてステップＳ３１０において抽出した領域の画像を処理して、その画像の各画素の微分値が眼検出用ソーベル閾値以上である画素を横エッジラインと判別し、抽出する（ステップＳ３３０）。
【０１０２】
ＣＰＵ２４は、ステップＳ３２０において抽出した横エッジラインのうちの、プラスエッジの長さＬｐ，マイナスエッジの長さＬｍ，プラスエッジの重心のｘ座標Ｃｘｐ，マイナスエッジのｘ座標Ｃｘｍ，マイナスエッジの重心とプラスエッジの重心との間の距離Ｄｇを算出する（ステップＳ３４０）。
【０１０３】
ＣＰＵ２４は、ステップＳ３３０において算出した各パラメータを用いて、上記の（１）〜（３）式を満たすマイナスエッジとプラスエッジの組み合わせを眼の候補（以下、眼候補）として抽出する（ステップＳ３５０）。
【０１０４】
ＣＰＵ２４は、ＲＯＭ２３に格納されている縦エッジ検出用オペレータ（図３（ａ））を用いてステップＳ３１０において抽出した領域の画像を処理して、その画像の各画素の微分値が眼検出用ソーベル閾値以上である画素を縦エッジラインと判別し、抽出する（ステップＳ３６０）。
【０１０５】
ＣＰＵ２４は、ステップＳ３５０において抽出した眼候補のうちから、さらに縦エッジラインと横エッジラインとにより閉じた領域を形成する眼候補を抽出する（ステップＳ３７０）。
【０１０６】
ＣＰＵ２４は、ステップＳ３７０において抽出した眼候補の閉じた領域の面積Ｓｑを計測し、ＲＡＭ２５に記憶させる（ステップＳ３８０）。
【０１０７】
このように、眼候補抽出処理によれば、眼が存在すると推定される領域において眼の候補となる縦エッジラインと横エッジラインとの組み合わせ（眼候補）を抽出することができる。
【０１０８】
ここで、眼検出処理のステップＳ４００において行われる眼判別処理を説明する。簡単に説明すると、眼開閉判別装置５０は、眼候補抽出処理で抽出した眼候補のうちから出現する範囲が一定しているものを抽出する。次に、眼開閉判別装置５０は、抽出した各眼候補の面積Ｓｑの時間軸に沿った履歴を抽出する。その後、眼開閉判別装置５０は、面積Ｓｑの履歴において、瞬きに相当する極小値を取り、且つ、瞬きがない期間において面積Ｓｑが安定している眼候補を眼として判別する。
【０１０９】
以下、図１４を参照して、眼判別処理（Ｓ４００）を詳細に説明する。
【０１１０】
先ず、ＣＰＵ２４は、眼候補抽出処理で抽出した眼候補の位置及び面積Ｓｑの履歴をＲＡＭ２５より取得する（ステップＳ４１０）。
【０１１１】
ＣＰＵ２４は、眼候補抽出処理で抽出した眼候補のうちから、その眼候補の下瞼部分の位置の移動が所定の範囲以内であるもの、つまり上記の条件（４）を満たすものを抽出する（ステップＳ４２０）。
【０１１２】
ＣＰＵ２４は、ステップＳ４２０において抽出した眼候補のうちから、上記の条件（５）（６）を満たすように、面積Ｓｑ（ｔ）の二次微分Ｂ（ｔ）が閾値以上である極小値を取る眼候補を抽出する（ステップＳ４３０）。
【０１１３】
ＣＰＵ２４は、ステップＳ４３０において抽出した眼候補のうちから、上記の条件（７）を満たすように、瞬きを検出しない期間の１０秒間のＳｑ（ｔ）の標準偏差が閾値以下である眼候補を抽出する（ステップＳ４４０）。
【０１１４】
ＣＰＵ２４は、ステップＳ４４０において抽出した眼候補を眼として判別する（ステップＳ４５０）。
【０１１５】
このようにして、眼判別処理によれば、出現位置が一定しており、且つ、瞬きに相当する動きを取り、且つ、瞬きがない間の動きが少ない眼候補を眼と判別することができる。
【０１１６】
ここで、眼検出処理のステップＳ５００において行われる眼開閉判別処理を説明する。簡単に説明すると、眼開閉判別装置５０は、ＲＡＭ２５に記憶させている眼の面積の履歴より眼の面積の最大値と最小値とを取得し、それらに基づいて閾値を算出する。次に、眼開閉判別装置５０は、算出した閾値とその時点の眼の面積Ｓｑとを比較し、その大小に基づいて眼の開閉を判別する。
【０１１７】
以下、図１５を参照して、眼開閉判別処理（Ｓ５００）を詳細に説明する。
【０１１８】
先ず、ＣＰＵ２４は、ＲＡＭ２５に記憶させている眼の面積の履歴よりその最大値と最小値とを取得する（ステップＳ５１０）。
【０１１９】
ＣＰＵ２４は、ステップＳ５１０において取得した眼の面積の最大値と最小値との和を２で割った値を閾値として算出する（ステップＳ５２０）。
【０１２０】
ＣＰＵ２４は、その時点の眼の面積が、算出した閾値より小さいか否かを判別する（ステップＳ５３０）。
【０１２１】
その時点の眼の面積が、算出した閾値より小さいと判別すると（Ｓ５３０；ＹＥＳ）、ＣＰＵ２４は、眼は閉じている（閉眼である）と判別し（Ｓ５４０）、処理を終了する。
【０１２２】
その時点の眼の面積が、算出した閾値より小さくないと判別すると（Ｓ５３０；ＮＯ）、ＣＰＵ２４は、眼は開いている（開眼である）と判別し（Ｓ５５０）、処理を終了する。
【０１２３】
このように、眼開閉判別処理によれば、眼開閉判別装置５０は、眼の面積の最大値と最小値とにより眼の開閉を判別するための閾値を算出し、算出した閾値とその時点での眼の面積とに基づいて眼の開閉を判別することができる。
【０１２４】
以上、本発明の実施形態における眼開閉判別装置５０は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、眼開閉判別装置５０は、その顔の位置に基づいて眼が存在すると推定される領域を抽出し、その領域から眼候補を抽出する。眼開閉判別装置５０は、抽出した眼候補のうち、出現位置が一定しており、且つ、瞬きに相当する挙動を取り、且つ、その挙動がない間の挙動が比較的安定しているものを眼と判別する。眼開閉判別装置５０は、眼の面積の履歴に基づいて閾値を算出し、算出した閾値とその時点の眼の面積とに基づいて眼の開閉を判別する。よって、眼開閉判別装置５０は、正確に眼を検出することができる。
【０１２５】
なお、この発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【０１２６】
上記実施形態では、眼開閉判別装置５０は、眼候補を抽出する際に、ソーベルフィルタを使用したエッジ検出によって抽出したが、画像の濃度勾配を利用した濃度検出によって抽出してもよい。
【０１２７】
上記実施形態では、コンピュータ１４は、カメラ１０が撮影した対象者の顔の動画像について眼状態判別処理を行った。しかし、応用例では、カメラ１０以外の外部装置から取得した対象者の顔の動画像を画像メモリ２２に格納しておき、その動画像について眼状態判別処理を行ってもよい。また、複数の顔の画像について眼状態判別処理を行ってもよい。
【０１２８】
また、上記実施形態では、顔位置検出処理（Ｓ２００）において、顔画像にソーベルフィルタ処理を施し、その画素値に基づいたヒストグラムから顔位置を検出した。しかし、応用例では、特開２００４−３１０３９６号公報に開示されているように、撮像画像を構成する各画素について時間微分し、さらに、この時間微分された画像を縦方向に投影してヒストグラムを作成し、エッジ抽出画像のヒストグラムと時間微分画像のヒストグラムとを合計して、合計したヒストグラムのピーク値の高いものを顔の両端として判別し、顔位置を検出するようにしてもよい。
【０１２９】
また、顔位置検出処理（Ｓ２００）において、テンプレートマッチング法を用い、予め登録してある顔のテンプレートを顔画像にマッチングさせて、顔の位置を検出してもよい。
【０１３０】
また、眼候補抽出処理と眼判別処理において、テンプレートマッチング法を用い、予め登録してある眼のテンプレートを顔画像にマッチングさせて、眼の位置を検出し、検出した眼の面積を算出し、その面積から眼の開閉を判別してもよい。
【０１３１】
なお、本発明に係る眼開閉判別装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、顔画像を入力可能な構成のコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読みとり可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する眼開閉判別装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有するストレージに当該プログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで眼開閉判別装置を構成してもよい。
【０１３２】
また、上述の機能を、ＯＳ（Operating System）とアプリケーションとの分担、またはＯＳとアプリケーションとの協働により実現する場合などには、アプリケーション部分のみを記録媒体やストレージに格納してもよい。
【０１３３】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上のサーバに前記プログラムを格納し、ネットワークを介して前記プログラムを配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【０１３４】
【図１】本発明の実施形態に係る瞼検出装置の構成を示すブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭに格納されている各種データを説明するための図である。
【図４】設定メモリに格納されている各種データを説明するための図である。
【図５】本発明の実施形態に係る瞼候補を抽出する処理の概要を説明するための図である。
【図６】本発明の実施形態に係る瞼候補の面積を算出する処理の概要を説明するための図である。
【図７】本発明の実施形態に係る瞼を判別する処理の概要を説明するための図である。
【図８】本発明の実施形態に係る眼状態判別処理を説明するためのフローチャートである。
【図９】眼状態判別処理における前処理を説明するためのフローチャートである。
【図１０】眼状態判別処理における顔位置検出処理を説明するためのフローチャートである。
【図１１】顔位置検出処理における顔左右端検出処理を説明するためのフローチャートである。
【図１２】顔位置検出処理における顔上下端検出処理を説明するためのフローチャートである。
【図１３】眼状態判別処理における瞼候補抽出処理を説明するためのフローチャートである。
【図１４】眼状態判別処理における眼判別処理を説明するためのフローチャートである。
【図１５】眼状態判別処理における眼開閉判別処理を説明するためのフローチャートである。
【符号の説明】
【０１３５】
１０      カメラ
１２      照明光源
１４      コンピュータ
１６      表示装置
２１      Ａ／Ｄ変換器
２２      画像メモリ（顔画像記憶手段）
２３      ＲＯＭ
２４      ＣＰＵ（眼検出手段、眼開閉判別手段）
２５      ＲＡＭ
２６      表示制御装置
２８      設定メモリ
２９      操作装置
５０      眼開閉判別装置
【図１】
2008226106.tif 000003
【図２】
2008226106.tif 000004
【図３】
2008226106.tif 000005
【図４】
2008226106.tif 000006
【図５】
2008226106.tif 000007
【図６】
2008226106.tif 000008
【図７】
2008226106.tif 000009
【図８】
2008226106.tif 000010
【図９】
2008226106.tif 000011
【図１０】
2008226106.tif 000012
【図１１】
2008226106.tif 000013
【図１２】
2008226106.tif 000014
【図１３】
2008226106.tif 000015
【図１４】
2008226106.tif 000016
【図１５】
2008226106.tif 000017