(57)【要約】【課題】判定精度の向上を図ることが可能な覚醒状態検出装置を提供する。【解決手段】覚醒状態検出装置１は、顔画像撮像部１０と、オプティカルフロー検出部２０と、覚醒状態検出部３０とを備えている。顔画像撮像部１０は被検出者の顔を撮像する。オプティカルフロー検出部２０は、顔画像撮像部１０による撮像によって得られた顔画像からオプティカルフローを検出する。このとき、オプティカルフロー検出部２０は、時系列に連続する少なくとも２枚の顔画像からオプティカルフローを検出する。また、覚醒状態検出部３０は、オプティカルフロー検出部２０によって検出されたオプティカルフローから被検出者の覚醒状態を検出する。【選択図】      図１
2005013626.tif 000002
【特許請求の範囲】
【請求項１】
被検出者の顔を撮像する顔画像撮像手段と、
前記顔画像撮像手段による撮像によって得られた時系列に連続する少なくとも２枚の顔画像から、オプティカルフローを検出するオプティカルフロー検出手段と、
前記オプティカルフロー検出手段によって検出されたオプティカルフローから被検出者の覚醒状態を検出する覚醒状態検出手段と、
を備えることを特徴とする覚醒状態検出装置。
【請求項２】
前記覚醒状態検出手段は、
前記オプティカルフロー検出手段によって検出されたオプティカルフローから顔の動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトル検出手段よって検出された顔の動きベクトルの大きさから、動きベクトルの単位時間あたりの統計的代表値を算出する代表値算出手段と、を有し、
被検出者の覚醒状態が正常状態であるときに、前記代表値算出手段によって算出された顔の動きベクトルの統計的代表値が所定の閾値以下となった場合、閾値以下となった時点よりあとの覚醒状態を居眠り状態とする
ことを特徴とする請求項１に記載の覚醒状態検出装置。
【請求項３】
前記顔画像撮像手段は、固定して設置されると共に、被検出者の顔全体を一画像内に収めるだけの画角が確保されていることを特徴とする請求項２に記載の覚醒状態検出装置。
【請求項４】
前記覚醒状態検出手段は、被検出者の覚醒状態が居眠り状態であるときに、前記代表値算出手段によって算出された顔の動きベクトルの統計的代表値が所定の閾値を超えた場合、閾値を超えた時点よりあとの覚醒状態を正常状態とすることを特徴とする請求項２又は請求項３のいずれかに記載の覚醒状態検出装置。
【請求項５】
前記覚醒状態検出手段は、検出開始時には被検出者の覚醒状態が正常状態であると判断することを特徴とする請求項２〜請求項４のいずれか１項に記載の覚醒状態検出装置。
【請求項６】
前記オプティカルフロー検出手段は、顔画像に対して所定の大きさ及び位置で定められる少なくとも１つの演算領域からオプティカルフローを求め、
前記動きベクトル検出手段は、前記オプティカルフロー検出手段により検出されたオプティカルフローに基づいて、前記演算領域を少なくとも１つ含んで顔画像上に定められる領域グループから顔の動きベクトルを求める
ことを特徴とする請求項２〜請求項５のいずれか１項に記載の覚醒状態検出装置。
【請求項７】
前記演算領域の少なくとも１つは、前記顔画像撮像手段による撮像によって得られた顔画像のサイズに基づいて、予め顔部位程度の大きさで設定されることを特徴とする請求項６に記載の覚醒状態検出装置。
【請求項８】
前記顔画像撮像手段は、被検出者の少なくとも一方の眼を撮像範囲に含んで撮像し、
オプティカルフロー検出手段は、時系列に連続する少なくとも２枚の顔画像から、オプティカルフローを検出すると共に、この検出を時系列的に連続して行い、
前記覚醒状態検出手段は、
前記オプティカルフロー検出手段によって検出されたオプティカルフローから、瞼の動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトル検出手段よって検出された瞼の動きベクトルから、瞼の開閉状態を検出する開閉状態検出手段と、を有し、
前記開閉状態検出手段による検出が複数回に渡って行われることによって得られる瞼の開閉状態の時系列的変化から、被検出者の覚醒状態を検出する
ことを特徴とする請求項１に記載の覚醒状態検出装置。
【請求項９】
前記顔画像撮像手段は、被検出者の少なくとも一方の眼を中心にして眼全体が一画像内に収まるように撮像を行うと共に、被検出者の頭の動きに併せて追従動作を行うことを特徴とする請求項８に記載の覚醒状態検出装置。
【請求項１０】
前記オプティカルフロー検出手段は、被検出者の少なくとも一方の眼を中心にして眼全体が一画像内に収まった眼画像に対し、所定の大きさ及び位置で定められる少なくとも１つの演算領域からオプティカルフローを求め、
前記動きベクトル検出手段は、前記オプティカルフロー検出手段により検出されたオプティカルフローに基づいて、前記演算領域を少なくとも１つ含んで眼画像上に定められる領域グループから瞼の動きベクトルを求める
ことを特徴とする請求項８又は請求項９のいずれかに記載の覚醒状態検出装置。
【請求項１１】
前記顔画像撮像手段による撮像によって得られた顔画像から眼の位置を検出する眼位置検出手段と、
前記眼位置検出手段によって検出された眼の位置を中心とした眼全体を囲む領域を眼領域画像として抽出する領域抽出手段と、を更に備え、
前記オプティカルフロー検出手段は、眼画像領域内からオプティカルフローを検出する
ことを特徴とする請求項８に記載の覚醒状態検出装置。
【請求項１２】
前記顔画像撮像手段は、固定して設置されると共に、被検出者の顔全体を一画像内に収めるだけの画角が確保されていることを特徴とする請求項１１に記載の覚醒状態検出装置。
【請求項１３】
前記オプティカルフロー検出手段は、前記領域抽出手段によって抽出された眼領域画像内において所定の大きさ及び位置で定められる少なくとも１つの演算領域からオプティカルフローを求め、
前記動きベクトル検出手段は、前記オプティカルフロー検出手段により検出されたオプティカルフローに基づいて、前記演算領域を少なくとも１つ含んで眼画像上に定められる領域グループから瞼の動きベクトルを求める
ことを特徴とする請求項１１又は請求項１２のいずれかに記載の覚醒状態検出装置。
【請求項１４】
被検出者の顔を時系列的に連続に撮像して得られた少なくとも２枚の顔画像からオプティカルフローを検出して、このオプティカルフローから被検出者の覚醒状態を検出することを特徴とする覚醒状態検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、覚醒状態検出装置に関する。
【０００２】
【従来の技術】
従来、閉眼状態が継続している時間を瞬き時間とし、所定の時間帯における瞬き時間毎に度数分布を求め、これに基づいて運転者の覚醒度レベルを判定する覚醒状態検出装置が知られている。この装置では、瞬きの信頼度を判定し、その信頼度に応じて度数重みを変化させ、所定時間帯の度数分布を求めている。すなわち、メータを見ている伏せ目状態など実際に眼が閉じていないものについて、度数分布にあまり反映させないようにし、誤った覚醒度レベルを判定しないようにしている（例えば特許文献１参照）。
【０００３】
【特許文献１】
特開２００３−０００５７１号公報
【０００４】
【発明が解決しようとする課題】
上記特許文献１の装置では、メータを見ている伏せ目の継続時間が、通常の瞬きによる閉眼状態の継続時間よりも長いことに着目している。そして、通常の瞬きより長い時間閉眼状態が検出された場合に、「０．２〜０．８」の重み付け係数を用いることで度数分布にあまり反映させず、伏せ眼状態を閉眼状態と判定しないようにしている。
【０００５】
しかしながら、実際の居眠り状態において、運転者は、メータを見ている時間よりも長い時間継続して眼を閉じていることもある。このため、通常の瞬きより長い時間閉眼状態が継続したことをもって、上記係数を用いると、覚醒度レベルの判定精度の低下を招いてしまう可能性がある。
【０００６】
このように、従来の覚醒状態検出装置では、未だ判定精度の向上が望まれるものである。
【０００７】
【課題を解決するための手段】
本発明によれば、覚醒状態検出装置であって、顔画像撮像手段は、被検出者の顔を撮像し、オプティカルフロー検出手段は、顔画像撮像手段による撮像によって得られた時系列に連続する少なくとも２枚の顔画像からオプティカルフローを検出し、覚醒状態検出手段は、オプティカルフロー検出手段によって検出されたオプティカルフローから被検出者の覚醒状態を検出することを特徴とする。
【０００８】
【発明の効果】
本発明によれば、被検出者の覚醒状態に応じてオプティカルフローに特徴が現れることから、オプティカルフローに基づいて精度良く被検出者の覚醒状態を検出することができる。従って、判定精度の向上を図ることができる。
【０００９】
【発明の実施の形態】
以下、本発明の好適な実施形態を図面に基づいて説明する。
【００１０】
図１は、本発明の第１実施形態に係る覚醒状態検出装置の構成図である。同図に示すように、本実施形態の覚醒状態検出装置１は、被検出者の覚醒状態、すなわち被検出者が居眠り状態であるか否かなどを検出するものであって、顔画像撮像部（顔画像撮像手段）１０を備えている。また、覚醒状態検出装置１は、オプティカルフロー検出部（オプティカルフロー検出手段）２０と、覚醒状態検出部（覚醒状態状態検出手段）３０とを備えている。
【００１１】
顔画像撮像部１０は、被検出者の顔を撮像するものであって、撮像により得られた顔画像のデータを、オプティカルフロー検出部２０に送出する構成とされている。また、顔画像撮像部１０は、固定して設置されると共に、被検出者の顔全体が一画像内に収まるのに充分な画角が確保されている。
【００１２】
オプティカルフロー検出部２０は、顔画像撮像部１０での撮像によって得られた顔画像からオプティカルフローを検出するものである。また、オプティカルフロー検出部２０は、時系列に連続する少なくとも２枚の顔画像から、濃度差等に基づいて、オプティカルフローを検出するものである。
【００１３】
ここで、オプティカルフローとは、画像内の各領域における移動量等を表すものである。具体的に、オプティカルフローは、画像の所定箇所に存在した顔部位等が、後の画像においてどの方向にどれだけ速度で移動したかを表すものである。すなわち、オプティカルフローは、大きさ及び向きの情報を含むものである。また、オプティカルフローの検出に当たっては、顔画像上に所定の位置及び大きさで設定される参照領域（演算領域）及び探索領域に基づいて行われる。
【００１４】
図２は、参照領域及び探索領域の説明図である。なお、参照領域が或る時刻の画像上に設定されるとすると、探索領域はその時刻よりも後の画像に設定されるものであるが、図２においては、便宜上、幅ｗ画素，高さｈ画素の１つの画像上に表して説明する。
【００１５】
同図に示すように、参照領域は、（ｔｘ，ｔｙ）の位置に設定される幅ｔｗ画素，高さｔｈ画素の領域である。また、探索領域は、（ｓｘ，ｓｙ）の位置に設定される幅ｓｗ画素，高さｓｈ画素の領域である。この探索領域は、各参照領域を取り囲んで設定されるものであり、参照領域と同じ数だけ設定される。また、この参照領域及び探索領域は、それぞれ大きさが異なるものの、中心位置に関しては特定の点Ｏで一致している。
【００１６】
このように、これら両領域は中心を等しくし、ｓｗ＞ｔｗ且つｓｈ＞ｓｗの関係となるように設定される。なお、ここでの参照領域及び探索領域は、被検出者の顔の位置等に依存せず、予め定められた位置及び大きさで設定される。
【００１７】
また、参照領域は、規則的に配置されることが望ましい。図３は、顔画像に規則的に配置される参照領域の説明図である。参照領域は、例えば図３（ａ）に示すように、顔画像上の横方向に複数（例えば７つ）配置される。また、図３（ｂ）に示すように、参照領域は、顔画像上に格子状に複数（例えば５行７列）配置される。さらには、図３（ｃ）に示すように、参照領域は、横方向に且つ格子状に複数（例えば３行５列に加え、さらに横方向に２つの計１７）配置されてもよい。
【００１８】
また、さらに参照領域は、顔画像撮像部１０の設置位置や画角、及び顔画像のサイズ等に基づいて、予め目、鼻又は口等の顔部位程度の大きさに固定的に設定されることが望ましい。
【００１９】
覚醒状態検出部３０は、オプティカルフロー検出部２０によって検出されたオプティカルフローから被検出者の覚醒状態を検出するものである。この覚醒状態検出部３０は、内部に動きベクトル検出部（動きベクトル検出手段）３１と代表値算出部（代表値算出手段）３２とを備えている。
【００２０】
動きベクトル検出部３１は、オプティカルフロー検出部２０によって検出されたオプティカルフローから顔の動きベクトルを検出するものである。ここで、動きベクトルとは、オプティカルフローから所定の演算に従って、領域グループ毎に求められるものであり、領域グループ内の物体等の移動を示すものである。
【００２１】
所定の演算については種々のものが挙げられるが、この演算については後述することとし、以下、図３を参照して、領域グループについて説明する。
【００２２】
同図に示すように、領域グループは、１つ以上の参照領域を含んで顔画像上に定められるものである。ここで、オプティカルフローは、１つの参照領域につき１つ検出されるものである。故に、領域グループには、オプティカルフローが１つ以上属しており、動きベクトル検出部３１は、１つ以上のオプティカルフローから所定の演算により動きベクトルを検出する。
【００２３】
また、領域グループは、１つ以上の参照領域を含むものであればよく、顔画像上に設定される参照領域のすべてを含むものであってもよいし（図３（ｃ））、画像端部に位置する参照領域のみを含むものであってもよい（図３（ｂ））。さらに、領域グループは、互いに重複するものであってもよい（図３（ａ））。
【００２４】
代表値算出部３２は、動きベクトル検出部３１によって検出された顔の動きベクトルの大きさから、動きベクトルの単位時間あたりの統計的代表値を算出するものである。この代表値としては、例えば平均値や最頻値などが用いられる。
【００２５】
そして、覚醒状態検出部３０は、代表値算出部３２により算出された統計的代表座標値に基づいて、被検出者の覚醒状態を検出することとなる。
【００２６】
次に、覚醒状態検出装置１の動作の概略について説明する。まず、覚醒状態検出装置１において、顔画像撮像部１０が被検出者の顔を撮像し、得られた顔画像データをオプティカルフロー検出部２０に送信する。これを受けたオプティカルフロー検出部２０は、顔画像撮像部１０にて得られた時系列に連続する少なくとも２枚の顔画像から、参照領域及び探索領域に基づいてオプティカルフローを検出する。
【００２７】
具体的に、時刻ｔと時刻（ｔ＋１）における顔画像からオプティカルフローを検出する場合、オプティカルフロー検出部２０は、時刻ｔにおける顔画像上に参照領域を設定する。また、オプティカルフロー検出部２０は、時刻（ｔ＋１）における顔画像上に探索領域を設定する。
【００２８】
その後、オプティカルフロー検出部２０は、探索領域内から参照領域に最も類似する位置を求める。そして、参照領域の位置と最も類似する位置との差をオプティカルフローとして検出する。このため、オプティカルフローは、参照領域毎に求められることとなり、参照領域はオプティカルフローの計算領域として機能する。
【００２９】
オプティカルフローの検出後、動きベクトル検出部３１は、顔の動きベクトルを求める。ここで、動きベクトル検出部３１は、オプティカルフローから所定の演算に従って、領域グループ毎に求める。
【００３０】
動きベクトルの検出後、代表値算出部３２は、動きベクトル検出部３１によって検出された顔の動きベクトルの大きさから、動きベクトルの単位時間あたりの統計的代表値を算出する。すなわち、代表値算出部３２は、顔の動きベクトルの大きさに関するデータを時系列的に収集し、収集した動きベクトルのデータが単位時間（例えば３０秒など）分得られた段階で所定の処理を行って統計的代表値を求める。ここでの処理は、統計的代表値が平均値である場合には平均値を求める演算になり、最頻値である場合には最頻値を抽出する処理となる。
【００３１】
統計的代表値が算出されると、覚醒状態検出部３０は、被検出者の覚醒状態を検出する。そして、本装置１は、覚醒状態の検出後、上記処理を繰り返して順次覚醒状態を検出していく。
【００３２】
ここで、本装置１は、上記統計的代表値が被検出者の覚醒状態を好適に表すものであるため、精度の高い検出が可能となっている。以下に、精度良く検出可能となっている理由を示す。
【００３３】
まず、本実施形態ではオプティカルフローを求めている。このオプティカルフローは、上記したように画像内の何らかの物体等に動きがあったときに、その動きを表すものである。ここで、本実施形態では、被検出者の顔を撮像している。このため、オプティカルフローは、被検出者の顔に動きがあった場合に検出されることとなる。
【００３４】
ここで、被検出者が車両の運転者である場合、車両の運転者は、正常状態（すなわち起きている状態）にあるときには、巻き込み確認等の種々の動作を行う。このため、運転者が正常状態にあるときには、オプティカルフローが得られやすい状態にあるといえる。一方、運転者が居眠り状態にあるときには、動作が行われ難く、オプティカルフローが得られ難い状態にある。
【００３５】
このように、被検出者の覚醒状態に応じてオプティカルフローに特徴が現れることから、オプティカルフローに基づいて精度良く被検出者の覚醒状態を検出することができる。
【００３６】
なお、本装置１は、自動車、鉄道車両、船舶の被検出者やプラントのオペレータ等に用いることができるが、以下、本実施形態においては、車両運転者の覚醒状態を検出する場合を例に説明することとする。
【００３７】
図４は、本発明の第１実施形態に係る覚醒状態検出装置１を車両に搭載した場合のハード構成図である。同図に示すように、顔画像撮像部１０としてＴＶカメラ２が自動車のインストルメント上に設けられている。このＴＶカメラ２は、運転者の顔全体を一画像内に収めることができる画角を有し、固定して設置されている。また、ＴＶカメラ２は運転者を略正面から撮像できる位置に設置されている。
【００３８】
また、ＴＶカメラ２にて取得された入力画像は、インストルメント裏側など車体内部に設置されたマイクロコンピュータ（以下マイコンという）３に画像データとして入力される。
【００３９】
マイコン３には、オプティカルフロー検出部２０及び覚醒状態検出部３０を構成するプログラムロジックがプログラミングされている。なお、覚醒状態検出部３０のプログラムロジックは、動きベクトル検出部３１、及び代表値算出部３２のそれぞれのロジックを含むものである。
【００４０】
次に、上記覚醒状態検出装置１の動作を説明する。図５は、図１に示した覚醒状態検出装置１の基本動作を示すフローチャートである。同図に示すように、まず、処理が開始されると、マイコン３は、初期値入力処理を実行する（ＳＴ１）。この初期値入力の処理では、サンプリング時間などの各種定数が読み込まれる。
【００４１】
初期化後、マイコン３は、終了判断処理を実行する（ＳＴ２）。この際、マイコン３は、例えばエンジンが起動しているか等に基づいて判断を行う。
【００４２】
そして、マイコン３は、「ＳＴＯＰ」か否かを判断する（ＳＴ３）。例えばエンジンが起動されていないと判断した場合、マイコン３は、「ＳＴＯＰ」であると判断し（ＳＴ３：ＹＥＳ）、処理は終了することとなる。
【００４３】
一方、エンジンが起動され走行しているなどにより、「ＳＴＯＰ」でないと判断した場合（ＳＴ３：ＮＯ）、マイコン３は、顔全体画像の撮像処理を実行する（ＳＴ４）。これにより、ＴＶカメラ２は、被検出者の顔を撮像する。
【００４４】
その後、マイコン３は、オプティカルフローの検出処理を実行する（ＳＴ５）。このステップＳＴ５の処理は、図１にて説明したオプティカルフロー検出部２０にて行われる処理である。すなわち、マイコン３は、オプティカルフロー検出部２０に相当するプログラムを実行することとなる。
【００４５】
その後、マイコン３は、顔の動きベクトルの検出処理を実行する（ＳＴ６）。動きベクトルの検出処理は、ステップＳＴ５にて検出されたオプティカルフローに基づいて行われるものである。また、ステップＳＴ６の処理は、図１にて説明した動きベクトル検出部３１にて行われる処理である。すなわち、マイコン３は、動きベクトル検出部３１に相当するプログラムを実行することとなる。
【００４６】
動きベクトルの検出後、マイコン３は、顔の動きベクトルについて単位時間あたりの統計的代表値を算出する（ＳＴ７）。このステップＳＴ７の処理は、図１にて説明した代表値算出部３２にて行われる処理である。すなわち、マイコン３は、代表値算出部３２に相当するプログラムを実行することとなる。
【００４７】
統計的代表値の算出後、マイコン３は、覚醒状態判定処理を実行し、覚醒状態を検出する（ＳＴ８）。このステップＳＴ７の処理は、ステップＳＴ７にて算出された統計的代表値に基づいて行われる。また、ステップＳＴ７の処理は、図１にて説明した動き覚醒状態検出部３０にて行われる処理である。すなわち、マイコン３は、覚醒状態検出部３０に相当するプログラムを実行することとなる。ここで、電源オン時などの覚醒状態の検出開始時点では覚醒状態は正常状態とされる。検出開始時点は、例えば車両乗車時点などが該当するが、この時点で既に運転者が居眠り状態ということはあり得ないからである。
【００４８】
その後、処理はステップＳＴ２に戻る。そして、電源がオフされるまで、ステップＳＴ２〜ＳＴ８の処理を繰り返していく。
【００４９】
次に、オプティカルフロー検出処理（ステップＳＴ５）について詳細に説明する。図６は、図５に示したオプティカルフロー検出処理（ステップＳＴ５）の詳細なフローチャートである。
【００５０】
まず、マイコン３は、顔画像にスムージングフィルタを適応し、所定の式にて画素値を変換する（ＳＴ１０）。ここで、スムージングフィルタは、以下に示す５行５列からなるフィルタである。
【００５１】
【数１】
2005013626.tif 000003
所定の式は、以下に示すものである。
【００５２】
【数２】
2005013626.tif 000004
なお、ｄ（ｘ，ｙ）は、顔画像内の任意位置の画素値であり、ｄ’（ｘ，ｙ）は変換後の画素値である。
【００５３】
その後、マイコン３は、現在の顔画像の探索領域内から、前回の顔画像内の参照領域に最も類似する位置を求めて、移動量（ｘｄ，ｙｄ）、すなわちオプティカルフローを算出する（ＳＴ１１）。
【００５４】
具体的には、マイコン３は、まず、探索領域内から参照領域に最も類似する領域を求め、最も類似する領域の中心点を、参照領域に最も類似する位置とする。そして、マイコン３は、求められた最も類似する領域の中心点と、探索領域の中心点とから移動量（ｘｄ，ｙｄ）を算出し、オプティカルフローとする。
【００５５】
ここで、ステップＳＴ１１について詳細に説明する。上述したように、顔画像上には予め参照領域が設定されている。また、探索領域は参照領域を取り囲むように設定される。また、参照領域と探索領域とは時間を異にして設定される。具体的には、図７に示すように、参照領域は時刻ｔにおいて設定され、探索領域は時刻ｔ後の時刻（ｔ＋１）において設定される。
【００５６】
図７は、図６に示すステップＳＴ１１における移動量（ｘｄ，ｙｄ）の算出方法の説明図である。ステップＳＴ１１の処理において、マイコン３は、まず、時刻（ｔ＋１）の探索領域内に候補領域を作成する。この候補領域は、参照領域と同じ大きさを有する領域である。具体的には、探索領域内の任意の位置を（ｘｄ，ｘｙ）とした場合、−（ｓｗ−ｔｗ）／２＜ｘｄ＜（ｓｗ−ｔｗ）／２、且つ、−（ｓｈ−ｔｈ）／２＜ｘｙ＜（ｓｈ−ｔｈ）の範囲から切り出した領域である。
【００５７】
マイコン３は、探索領域内の所定箇所に上記のような候補領域を設定し、設定した候補領域と参照領域とを比較等して、類似度を求める。次に、マイコン３は、候補領域を他の位置に動かし、動かした位置の候補領域と参照領域とを比較等して類似度を求める。
【００５８】
その後、マイコン３は、候補領域を順次移動させていき、探索領域内での各箇所において参照領域との類似度を算出する。類似度は、例えば、濃淡データを基準に判断される。ここで、濃淡データを基準に類似度を算出する場合において、類似度をｃｏｓθとすると、類似度は以下の式にて表される。
【００５９】
【数３】
2005013626.tif 000005
上式においては、参照領域の濃淡データをＴとし、候補領域の濃淡データをＳとしている。また、ｘｄは、探索領域内のＸ座標値を示し、ｙｄは、探索領域内のＹ座標値を示している。
【００６０】
以上から、マイコン３は、類似度が最大となる位置Ｓを定め、点Ｓと点Ｏとの座標値の差を移動量（ｘｄ，ｙｄ）として取得し、これをオプティカルフローとする。
【００６１】
再度、図６を参照して説明する。移動量（ｘｄ，ｙｄ）の算出後、マイコン３は、類似度の範囲が閾値以上か否かを判断する（ＳＴ１２）。すなわち、マイコン３は、まず、候補領域によって探索領域内を走査していき、探索領域内の各箇所の類似度を算出する。その後、マイコン３は、得られた類似度の分散を求め、この分散により類似度の範囲が閾値以上か否かを判断する。
【００６２】
ここで、類似度の範囲が小さい場合とは、探索領域内の各箇所において、同じような類似度が検出される場合である。例えば、参照領域が真っ白な画像である場合など、特徴が少ない場合には探索領域内のどの箇所と比較しても似たような類似度の結果が得られることとなる。
【００６３】
そして、このような場合、それぞれ類似度の差が小さいことから、類似度が最大となる点Ｓの検出が不正確になりやすい。このため、図６のステップＳＴ１２の処理では、所定の閾値と比較し、好適なものと不適なものとの選別するようにしている。
【００６４】
類似度の範囲が閾値以上であると判断した場合（ＳＴ１２：ＹＥＳ）、マイコン３は、参照領域を有効な領域とし、ｆｄに「１」を代入する（ＳＴ１３）。そして、処理はステップＳＴ１５に移行する。
【００６５】
一方、類似度の範囲が閾値以上でないと判断した場合（ＳＴ１２：ＮＯ）、マイコン３は、参照領域を無効な領域とし、ｆｄに「０」を代入する（ＳＴ１４）。そして、処理はステップＳＴ１５に移行する。このように、マイコン３は、特徴量としての類似度の変化量と、予め設定される閾値とを比較することにより、動きベクトルの計算に用いるか否かを判断している。
【００６６】
ステップＳＴ１５において、マイコン３は、領域の数だけ上記のステップＳＴ１１〜ＳＴ１４を行ったか否かを判断する（ＳＴ１５）。すなわち、マイコン３は、すべての参照領域について、探索領域内から類似する位置を特定したか否かを判断している。
【００６７】
いずれかの参照領域について、探索領域内から類似する位置を特定していないと判断した場合（ＳＴ１５：ＮＯ）、処理はステップＳＴ１１に戻り、類似する位置を特定していない参照領域について、上記ステップＳＴ１１〜ＳＴ１４の処理を繰り返すこととなる。
【００６８】
一方、すべての参照領域について、探索領域内から類似する位置を特定したと判断した場合（ＳＴ１５：ＹＥＳ）、マイコン３は、図５に示すステップＳＴ６の処理を実行する。なお、参照領域が１つだけしか設定されていない場合、ステップＳＴ１５の処理を省略するようにしてもよい。
【００６９】
また、オプティカルフローの計算方法は本実施形態の他に、八木信行監修，  ”ディジタル映像処理”，  映像情報メディア学会編，  ｐｐ．１２９−１３９，  ２０００，  オーム社  などにて動画像から動きを検出する手法が複数紹介されていおり、それらを用いることもできる。
【００７０】
ここで、オプティカルフローの検出例を説明する。図８は、運転者が左方向に顔の向きを変える場合のオプティカルフローの例を示す説明図であり、（ａ）は時刻ｔにおけるオプティカルフローの例を示し、（ｂ）は時刻（ｔ＋１）におけるオプティカルフローの例を示し、（ｃ）は時刻（ｔ＋２）におけるオプティカルフローの例を示し、（ｄ）は時刻（ｔ＋３）におけるオプティカルフローの例を示している。
【００７１】
まず、図８を参照して説明する。時刻ｔにおいて運転者は前方を視認している（図８（ａ））。その後、時刻（ｔ＋１）において、運転者は交差点の確認等を行うべく、顔を左方に向ける。このとき、オプティカルフローが検出される（図８（ｂ））。ここで、画像中の四角で表示されている領域は、参照領域であり、各参照領域から伸びる線分は、各部位の移動量、すなわちオプティカルフローを示している。
【００７２】
その後、時刻（ｔ＋２）において、運転者は顔をさらに左方に向ける。このときも同様に、オプティカルフローが検出される（図８（ｃ））。そして、時刻（ｔ＋３）において運転者は顔を左上方に向けると、同様にオプティカルフローが検出される（図８（ｄ））。
【００７３】
なお、図８中において、参照領域を示す四角枠が実線にて図示されているものは、図６のステップＳＴ１２にて「ＮＯ」と判断され、無効領域とされた参照領域であり、四角枠が破線にて図示されているものは、図６のステップＳＴ１２にて「ＹＥＳ」と判断され、有効領域とされた参照領域である。
【００７４】
次に、顔の動きベクトルの検出処理（図５：ＳＴ６）を説明する。図９は、図５に示した動きベクトルの検出処理（ＳＴ６）の詳細なフローチャートである。
【００７５】
まず、マイコン３は、領域グループが複数存在する場合には、複数の領域グループのうち処理の対象となるものを選択し、その領域グループの移動量に関する数値ｘ，ｙ，ｃを「０」に初期化する（ＳＴ２０）。その後、マイコン３は、選択した領域グループ内の参照領域のうちいずれか１つを選択する。
【００７６】
そして、マイコン３は、選択した参照領域が有効領域であるか否か、すなわちｆｄが「１」であるか否かを判断する（ＳＴ２１）。ｆｄが「１」であると判断した場合（ＳＴ２１：ＹＥＳ）、マイコン３は、移動量を積算する（ＳＴ２２）。具体的に、マイコン３は、「ｘ」を「ｘ＋ｘｄ」とし、「ｙ」を「ｙ＋ｙｄ」とし、「ｃ」を「ｃ＋１」とする。そして、処理はステップＳＴ２３に移行する。
【００７７】
一方、ｆｄが「１」でないと判断した場合（ＳＴ２１：ＮＯ）、マイコン３は、移動量を積算することなく、処理はステップＳＴ２３に移行する。
【００７８】
ステップＳＴ２３において、マイコン３は、選択した領域グループ内のすべての参照領域について処理したか否かを判断する（ＳＴ２３）。いずれかの参照領域について処理をしてないと判断した場合（ＳＴ２３：ＮＯ）、処理はステップＳＴ２１に戻り、上記ステップＳＴ２１，ＳＴ２２を繰り返すこととなる。すなわち、マイコン３は、すべての参照領域について有効領域か否かを判断し、有効領域である場合には、移動量を積算するという処理を行っていく。
【００７９】
そして、順次移動量の積算等が行われ、すべての参照領域について処理した場合（ＳＴ２３：ＹＥＳ）、マイコン３は、ｃが「０」であるか否かを判断する（ＳＴ２４）。
【００８０】
「ｃ」が「０」であると判断した場合（ＳＴ２４：ＹＥＳ）、処理はステップＳＴ２６に移行する。一方、「ｃ」が「０」でないと判断した場合（ＳＴ２４：ＮＯ）、マイコン３は、積算した「ｘ」「ｙ」についての平均を求める（ＳＴ２５）。すなわち、マイコン３は、「ｘ＝ｘ／ｃ」及び「ｙ＝ｙ／ｃ」を実行し、平均移動量を求める。
【００８１】
平均移動量の算出後、マイコン３は、求めた平均移動量について、移動平均（ａｘ，ａｙ）を求める（ＳＴ２６）。ここで得られた移動平均が顔の動きベクトルとなり、移動平均のｘ方向成分ａｘが動きベクトルのｘ方向成分となり、移動平均のｙ方向成分ａｙが動きベクトルのｙ方向成分となる。なお、移動平均を求める範囲は任意に定められている。また、移動平均（ａｘ，ａｙ）を求めるのは、微細なノイズ等を除去するためである。
【００８２】
ここで、動きベクトルの一例を説明すると、例えば、図８（ｂ）〜（ｄ）の画像の右隅に示すものが挙げられる。図８に示す動きベクトルは、顔画像全体に領域グループが設定されたときに得られるものであり、各画像について１つずつ得られている。同図に示すように、動きベクトルは、運転者の顔の動きを的確に反映していることがわかる。
【００８３】
ステップＳＴ２６の後、マイコン３は、すべての領域グループについて処理したか否かを判断する（ＳＴ２７）。いずれかの領域グループについて処理をしてないと判断した場合（ＳＴ２７：ＮＯ）、処理は再度ステップＳＴ２０に戻り、同様の処理を行っていくこととなる。一方、すべての領域グループについて処理したと判断した場合（ＳＴ２７：ＹＥＳ）、処理は終了する。
【００８４】
次に、単位時間あたりの統計的代表値の算出処理（図５：ＳＴ７）及び覚醒状態判定処理（図５：ＳＴ８）について詳細に説明する。まず、統計的代表値の算出については、平均値を統計的代表値としている場合と、中間値や最頻値を統計的代表値としている場合とでそれぞれ異なった演算が行われる。
【００８５】
しかし、一定時間中に検出された顔の動きベクトルから統計的代表値を求める点については、共通している。ここで、平均移動量、顔の動きベクトル、及び統計的代表値の例を説明する。
【００８６】
図１０は、平均移動量、顔の動きベクトル、及び統計的代表値を示す説明図である。なお、図１０において、縦軸（図面左側）は大きさを示しており、横軸は時刻（秒）を示している。また、図１０の縦軸（図面右側）は覚醒度を示している。また、図１０に示す例では、単位時間を３０秒としたときの動きベクトルの平均値を統計的代表値としている。
【００８７】
平均移動量から求められる動きベクトルは同図に示すようになり、単位時間が３０秒であるため、動きベクトルの平均値は３０秒ごとにそれぞれの値として得られている。図１０によれば、時刻１８０〜２４０（秒）の区間において運転者の動きが少なく、平均移動量及び動きベクトルが小さくなっている。また、時刻３３０（秒）以降についても、同様に、平均移動量及び動きベクトルが小さくなっている。
【００８８】
ここで、図１０に示す例では、統計的代表値として動きベクトルの平均値を用いている。このため、上記の動きベクトルが小さい区間においては、統計的代表値も小さくなる。
【００８９】
また、図１０に示す例において、マイコン３は、平均値を覚醒度におきかえる処理を行う。すなわち、図１０に示す縦軸（図面右側）に示すように、平均値を１／５にして、覚醒度を得る処理を行う。この覚醒度は平均値から演算により求められるものであり統計的代表値の１つといえる。
【００９０】
マイコン３は、統計的代表値を算出すると、覚醒状態の判定を行う。例えば図１０に示すような平均値に基づいて、覚醒状態判定処理（図５：ＳＴ８）を行う場合、以下のような処理が実行される。
【００９１】
まず、覚醒状態判定処理に際しては、図１０にて得られた覚醒度を覚醒状態が判別しやすい状態に変換する処理を行う。具体的には、図１０に示す覚醒度の値を整数値で四捨五入し、得られた値を２倍し、その後「１」を加える。これにより得られた結果が図１１に示されている。
【００９２】
図１１は、図１０に示す平均値から得られた覚醒度を示す説明図である。なお、図１１において、縦軸は覚醒度を示し、横軸は時刻（秒）を示している。図１０では動きベクトルの値が時刻１８０〜２４０（秒）及び時刻３３０（秒）以降の区間において、小さいものとなっていた。このため、得られる平均値も小さくなり、図１１に示すように覚醒度も「２」以下と小さくなる。すなわち、これらの区間は低覚醒度状態となっている。
【００９３】
マイコン３は、例えば、上記低覚醒度状態（すなわち覚醒度が「２」以下のとき）のときに運転者が居眠り状態であると判断し、低覚醒度状態でないとき（すなわち覚醒度が「２」を超えるとき）に運転者が正常状態であると検出する。
【００９４】
すなわち、マイコン３は、運転者の覚醒状態が正常状態であると判断しているときに、覚醒度（統計的代表値の１つ）が所定の閾値以下となった場合、閾値以下となった時点よりあとの覚醒状態を居眠り状態とする。また、マイコン３は、運転者の覚醒状態が居眠り状態であると判断しているときに、覚醒度（統計的代表値の１つ）が所定の閾値より大きくなった場合、閾値より大きくなった時点よりあとの覚醒状態を正常状態とする。ここで、統計的代表値は、単位時間毎に平均化等により得られるものであるため、ノイズ等の影響が少なくなっている。このため、判定精度の向上が図ることができる。
【００９５】
このようにして、本実施形態に係る覚醒状態検出装置１によれば、時系列に連続する少なくとも２枚の顔画像からオプティカルフローを検出している。このオプティカルフローは、画像内の何らかの物体等に動きがあったときに、その動きを表すものである。すなわち、被検出者の顔を撮像することにより、被検出者の顔に動きがあった場合には、その動きがオプティカルフローとして検出されることとなる。
【００９６】
ここで、被検出者が車両の運転者である場合、車両の運転者は、正常状態（すなわち起きている状態）にあるときには、巻き込み確認等の種々の動作を行う。このため、運転者が正常状態にあるときには、オプティカルフローが得られやすい状態にあるといえる。一方、運転者が居眠り状態にあるときには、動作が行われ難く、オプティカルフローが得られ難い状態にある。
【００９７】
このように、被検出者の覚醒状態に応じてオプティカルフローに特徴が現れることから、オプティカルフローに基づいて精度良く被検出者の覚醒状態を検出することができる。
【００９８】
従って、判定精度の向上を図ることができる。
【００９９】
また、オプティカルフローから動きベクトルを検出し、検出した動きベクトルから単位時間あたりの統計的代表値を算出している。そして、被検出者の覚醒状態が正常状態であるときに、統計的代表値が所定の閾値以下となった場合、閾値以下となった時点よりあとの覚醒状態を居眠り状態とする。ここで、統計的代表値は、単位時間毎に平均化等により得られるものであるため、ノイズ等の影響が少なくなっている。従って、判定精度の向上が図ることができる。また、同様に、被検出者の覚醒状態が居眠り状態であるときに、統計的代表値が所定の閾値を超えた場合についても、閾値を超えた時点よりあとの覚醒状態を正常状態とする。従って、判定精度の向上が図ることができる。
【０１００】
また、顔画像撮像部１０は、被検出者の顔全体を一画像内に収めることができる画角を有し、固定して設置されている。すなわち、顔画像撮像部１０は、一画像内に被検出者の顔が収まった状態で撮像することができる。そして、一画像内に顔が収まることで顔全体の動きに基づいて覚醒状態を検出できることとなり、顔の一部だけに基づいたことによって、覚醒状態の検出精度が低下してしまうことを防止することができる。従って、検出精度の向上を図ることができる。
【０１０１】
また、検出開始時には被検出者の覚醒状態が正常状態であるとする。検出開始時としては、例えば車両乗車時などが該当するが、この時点で既に運転者が居眠り状態ということはあり得ない。そこで、被検出者の覚醒状態は、検出開始時において正常状態であるとすることで、覚醒状態の判定精度の向上が図ることができる。
【０１０２】
また、顔画像に対して所定の大きさ及び位置で定められる少なくとも１つの参照領域からオプティカルフローを求めている。このため、顔画像のよりも小さい領域からオプティカルフローを求めていることになり、詳細な検出が行われることとなる。
【０１０３】
そして、検出したオプティカルフローに基づいて、参照領域を少なくとも１つ含んで顔画像上に定められる領域グループから顔の動きベクトルを求めている。すなわち、詳細に検出したオプティカルフローに基づいて、顔の動きベクトルが求められていることとなる。
【０１０４】
このため、領域グループ全体から直接にオプティカルフローを求める場合に比して、詳細に画像内の物体等の移動を検出している分、精度の高い検出を行うことができる。
【０１０５】
また、参照領域は、顔画像のサイズに基づいて、顔部位程度の大きさに設定されている。このため、大き過ぎる参照領域を設定して計算量が増大していしまうことを防止すると共に、１つの参照領域内に同時に複数の特徴的な部位が入る可能性を少なくすることができる。さらに、小さ過ぎる領域を設定して特徴的な部位がない領域となることを防ぐことができる。
【０１０６】
次に、本発明の第２実施形態を説明する。図１２は、第２実施形態に係る覚醒状態検出装置１ａの機能ブロック図である。第２実施形態に係る覚醒状態検出装置１ａは、第１実施形態のものとほぼ同様であるが、覚醒状態検出部３０の構成が第１実施形態のものと異なっている。具体的には、覚醒状態検出部３０に代えて開閉状態検出部（開閉状態検出手段）３３を備える点で異なっている。また、顔画像撮像部１０の撮像箇所等についても第１実施形態と異なっている。
【０１０７】
以下、第１実施形態との相違点について説明する。まず、第２実施形態の顔画像撮像部１０は、被検出者の顔を撮像するものであるが、特に被検出者の眼の部分を撮像するものである。より詳しくは、顔画像撮像部１０は、被検出者の少なくとも一方の眼が画像の中心となるように撮像を行うものであって、眼を中心とするために、被検出者の顔の動きに併せて追従動作を行うものである。
【０１０８】
また、顔画像撮像部１０は、眼の位置を画像の中心としつつも眼全体が一画像内に収まるようにして撮像を行うものである。従って、第２実施形態に係る顔画像撮像部１０は、被検出者の少なくとも一方の眼を中心にして眼全体が一画像内に収まる画像（以下眼画像という）を取得するものである。
【０１０９】
第２実施形態の覚醒状態検出部３０は、内部に動きベクトル検出部３１と、開閉状態検出部３３とを備えている。本実施形態では顔画像撮像部１０は眼を撮像する。このため、動きベクトル検出部３１は、オプティカルフロー検出部２０にて検出されたオプティカルフローから、瞼の動きベクトルを検出する構成とされている。
【０１１０】
また、開閉状態検出部３３は、動きベクトル検出部３１にて検出された瞼の動きベクトルから、眼の開閉状態を検出するものである。ここで、開閉状態の検出は、本装置１ｂが電源をオフされるなどして停止するまで繰り返される。このため、覚醒状態検出部３０は、開閉状態検出部３３による開閉状態の検出が複数回に渡って行われた段階で、瞼の開閉状態について時系列的変化の情報を取得できることとなる。そして、覚醒状態検出部３０は、瞼の開閉状態の時系列的変化から、被検出者の覚醒状態を検出することとなる。
【０１１１】
なお、本装置１ａについても第１実施形態のものと同様に、自動車、鉄道車両、船舶の被検出者やプラントのオペレータ等に用いることができるが、以下、本実施形態においては、車両運転者の覚醒状態を検出する場合を例に説明することとする。
【０１１２】
図１３は、本発明の第２実施形態に係る覚醒状態検出装置１ａを車両に搭載した場合のハード構成図である。同図に示すように、顔画像撮像部１０としてＴＶカメラ２は、運転者の頭部に取り付けられている。また、ＴＶカメラ２は、ミラー４を介して眼を撮像するように構成されている。ここで、ＴＶカメラ２は、運転者の頭部に取り付けられていることから、運転者が頭を動かした場合には、その動きに追従することとなる。また、ＴＶカメラ２は、ミラー４の位置に設置され、直接に眼を撮像する構成とされてもよい。さらに、ＴＶカメラ２は、インストルメント上に設置されされ、運転者に視点の位置を自動追尾しながら眼を撮像する構成とされてもよい。
【０１１３】
なお、第１実施形態と同様に、マイコン３には、オプティカルフロー検出部２０及び覚醒状態検出部３０を構成するプログラムロジックがプログラミングされている。この覚醒状態検出部３０のプログラムロジックには、動きベクトル検出部３１、及び開閉状態検出部３３のそれぞれのロジックが含まれている。
【０１１４】
次に、上記覚醒状態検出装置１ａの動作を説明する。図１４は、図１２に示した覚醒状態検出装置１ａの基本動作を示すフローチャートである。なお、図１４のステップＳＴ３０〜ＳＴ３２の処理は、図５に示すＳＴ１〜ＳＴ３の処理と同様であるため、説明を省略する。
【０１１５】
ステップＳＴ３３において、マイコン３は、眼画像の撮像処理を実行する（ＳＴ３３）。これにより、ＴＶカメラ２は、被検出者の眼を撮像する。その後、マイコン３は、図５のステップＳＴ４と同様に、オプティカルフローの検出処理を実行する（ＳＴ３４）。
【０１１６】
その後、マイコン３は、瞼の動きベクトルの検出処理を実行する（ＳＴ３５）。なお、この処理は、図１２にて説明した動きベクトル検出部３１にて行われる処理である。すなわち、マイコン３は、動きベクトル検出部３１に相当するプログラムを実行することとなる。
【０１１７】
動きベクトルの検出後、マイコン３は、瞼の開閉状態判定処理を実行する（ＳＴ３６）。この処理は、図１２にて説明した開閉状態検出部３３にて行われる処理である。すなわち、マイコン３は、開閉状態検出部３３に相当するプログラムを実行することとなる。
【０１１８】
その後、マイコン３は、覚醒状態判定処理を実行し、覚醒状態を検出する（ＳＴ３７）。このステップＳＴ３７の処理は、ステップＳＴ３６にて検出された瞼の開閉状態の時系列的変化に基づいて行われる。また、ステップＳＴ３７の処理は、図１にて説明した動き覚醒状態検出部３０にて行われる処理である。すなわち、マイコン３は、覚醒状態検出部３０に相当するプログラムを実行することとなる。
【０１１９】
その後、処理はステップＳＴ３１に戻る。そして、電源がオフされるまで、ステップＳＴ３１〜ＳＴ３７の処理を繰り返していく。すなわち、時系列的に検出等が行われることとなる。
【０１２０】
上記動作をより詳しく説明すると、まず、本実施形態ではオプティカルフローを求めているので、眼画像内の動き、すなわち瞼の動きを検出することができる。このため、被検出者が瞼を閉じる動作、及び開く動作をオプティカルフローとして捕らえることができる。
【０１２１】
そして、瞼が閉じる動作、及び開く動作を捕らえることができるため、この開閉動作のデータを時系列的に収集することにより、開閉状態の時系列的変化に関する情報を取得できることとなる。そして、例えば、開閉状態の時系列的変化から、瞼の閉状態が維持される時間を計測することにより、閉状態の継続時間を検出できるようになる。
【０１２２】
ここで、閉状態の継続時間は運転者の覚醒度に直接影響を及ぼすものであり、継続時間を取得することは覚醒状態の検出において精度の高い検出を可能とするものといえる。このため、瞼の閉状態が継続する場合、運転者は居眠りである可能性が高く、マイコン３は、覚醒状態が居眠り状態であると検出する。一方、閉動作があったとしても、その後にまもなく開動作が行われた場合、単なる瞬きである可能が高く、マイコン３は、覚醒状態が正常状態であると検出する。
【０１２３】
次に、オプティカルフローの検出例を説明する。図１５は、瞼の開閉を検出する場合に得られるオプティカルフローの例を示す説明図であり、（ａ）は時刻ｔにおけるオプティカルフローの例を示し、（ｂ）は時刻（ｔ＋１）におけるオプティカルフローの例を示し、（ｃ）は時刻（ｔ＋２）におけるオプティカルフローの例を示している。
【０１２４】
まず、図１５（ａ）に示すように、時刻ｔにおいて運転者の目は開いている状態となっている。その後、時刻（ｔ＋１）において運転者が目を閉じ始める。このとき、図１５（ｂ）に示すように、運転者の瞼の部分について画像縦方向（Ｙ方向）にオプティカルフローが検出される。
【０１２５】
そして、時刻（ｔ＋２）において運転者の目が完全に閉じる。このときも、図１５（ｃ）に示すように、運転者の瞼部分には画像縦方向にオプティカルフローが検出される。なお、画像横方向（Ｘ方向）については、時刻ｔ〜（ｔ＋２）を通じて、オプティカルフローがあまり検出されない。
【０１２６】
なお、図１５から明らかなように、本実施形態においても、オプティカルフローは、参照領域から検出されている。また、瞼の動きベクトルは、検出されたオプティカルフローに基づいて、領域グループから求められることとなる。
【０１２７】
図１６は、瞼の開閉を検出する場合に得られる平均移動量の移動平均（すなわち動きベクトル）を示す説明図である。なお、図１６では、運転者が目を閉じ、その後目を開ける場合に得られる開閉状態の時系列的変化を示している。また、図１６において、縦軸は平均移動量の移動平均の画素数を示し、横軸は時刻（１／３０ｓｅｃ）を示している。
【０１２８】
まず、運転者が目を閉じる動作を行う場合、図１６に示すように画像縦方向にオプティカルフローが検出され、画像横方向にはオプティカルフローがあまり検出されない。このため、得られる移動平均の値は、図１６に示すようになる。
【０１２９】
具体的に説明すると、画像縦方向について運転者が目を開いている状態（時刻１７８〜１８６の期間）では、移動平均の値は「０」付近となっている。その後、運転者が目を閉じ始めると、画像縦方向のオプティカルフローが得られることから、移動平均の値が「６〜８」画素まで上昇する（時刻１８６〜１９０の期間）。
【０１３０】
そして、運転者が目を閉じ続けている状態（時刻１９０〜２１６の期間）では、移動平均の値は「６〜８」画素を維持し続ける。その後、運転者が目を開け始めると、移動平均の値は次第に減少する（時刻２１６〜２３７の期間）。
【０１３１】
一方、瞼のオプティカルフローは、画像横方向に余り検出されていない。このため、画像横方向については、時刻１７８〜１８６の期間においてほぼ同じ値を維持し続ける。
【０１３２】
このように、瞼の開閉状態は、瞼の動きベクトルから検出することができる。そして、この開閉状態の時系列的変化から、瞼の閉状態が長く検出される場合などには、運転者は居眠り状態であるなど検出することができる。
【０１３３】
例えば、図１６に示す例にあっては、時刻１７８〜１８６の期間に瞼は閉状態となり、その後、時刻２１６〜２３７の期間に瞼が開状態となる。すなわち、少なくとも１秒近く閉状態が継続していることとなる。このため、覚醒度は高いものではない。従って、マイコン３は覚醒状態が居眠り状態であると検出する。なお、開閉状態の時系列的変化から覚醒状態を検出する方法としては、特開２００２−２７９４１０号公報に記載の方法であってもよい。
【０１３４】
このようにして、本実施形態に係る覚醒状態検出装置１ａによれば、第１実施形態と同様に、判定精度の向上を図ることができる。
【０１３５】
また、本実施形態ではオプティカルフローを求めているので、眼画像内の動き、すなわち瞼の動きを検出することができる。このため、被検出者の瞼が閉じる動作、及び開く動作をオプティカルフローとして捕らえることができる。
【０１３６】
そして、瞼の開閉動作を捕らえることができるため、例えば、閉状態の継続時間についても検出できるようになる。ここで、閉状態の継続時間は運転者の覚醒度に直接影響を及ぼす事項であり、継続時間を取得することは覚醒状態の検出において精度の高い検出を可能とするものといえる。また、継続時間に限らず、瞼の開閉速度や他の情報を取得したとしても、同様に覚醒状態の検出において精度の高い検出が可能となる。
【０１３７】
従って、判定精度の一層の向上を図ることができる。
【０１３８】
また、顔画像撮像部１０は、被検出者の少なくとも一方の眼を中心にして眼全体が一画像内に収まるように被検出者の頭の動きに併せて追従動作を行う。このため、被検出者がどのような方向に向いたとしても眼画像が得られることとなり、
眼全体に基づいて覚醒状態が検出される。故に、眼が撮像されなくなってしまい、覚醒状態の検出が不正確となってしまうことを防止することができる。従って、精度の向上を図ることができる。
【０１３９】
また、眼画像に対して所定の大きさ及び位置で定められる少なくとも１つの参照領域からオプティカルフローを求めている。このため、眼画像のよりも小さい領域からオプティカルフローを求めていることになり、詳細な検出が行われることとなる。
【０１４０】
そして、検出したオプティカルフローに基づいて、参照領域を少なくとも１つ含んで顔画像上に定められる領域グループから瞼の動きベクトルを求めている。すなわち、詳細に検出したオプティカルフローに基づいて、瞼の動きベクトルが求められていることとなる。
【０１４１】
このため、領域グループ全体から直接にオプティカルフローを求める場合に比して、詳細に画像内の物体等の移動を検出している分、精度の高い検出を行うことができる。
【０１４２】
次に、本発明の第３実施形態を説明する。第３実施形態に係る覚醒状態検出装置１ｂは、第２実施形態のものと同様である。しかし、第２実施形態の構成に加え、眼位置検出部（眼位置検出手段）４０と、眼領域画像抽出部（眼領域画像抽出手段）５０を備える点で、第２実施形態のものと異なっている。また、顔画像撮像部１０の撮像範囲についても第２実施形態のものと異なっている。
【０１４３】
以下、第２実施形態との相違点について説明する。図１７は、第３実施形態に係る覚醒状態検出装置１ｂの機能ブロック図である。まず、第３実施形態に係る顔画像撮像部１０は、少なくとも眼を含んで顔を撮像する構成とされている。好適には、確実に眼を撮像すべく、顔画像全体を撮像するものとされている。すなわち、第３実施形態の顔画像撮像部１０は、第１実施形態の顔画像撮像部１０と同様に、固定して設置されており、固定して設置される個所から撮像したときに、被検出者の顔全体を一画像内に収まるのに充分な画角を有するものである。
【０１４４】
また、同図に示すように、顔画像撮像部１０とオプティカルフロー検出部２０との間には、眼位置検出部４０及び眼領域画像抽出部５０とが介在されている。眼位置検出部４０は、顔画像撮像部１０から送信されてきた画像、すなわち少なくとも眼を含む顔画像から、被検出者の眼の位置を検出するものである。また、眼位置検出部４０は、検出した眼の位置情報を眼領域画像抽出部５０に送信する構成とされている。
【０１４５】
眼領域画像抽出部５０は、眼全体を囲む領域を眼領域画像として抽出するものである。また、眼領域画像抽出部５０は、眼領域画像を抽出する際、眼位置検出部４０によって検出された眼の位置を中心とし、画像全体よりも小さくされた領域を眼領域画像として抽出するものである。また、眼領域画像抽出部５０は、オプティカルフロー検出部２０に眼領域画像のデータを送出する構成とされている。このため、オプティカルフロー検出部２０は、画像全体からではなく、眼が領域画像からオプティカルフローを検出することとなる。
【０１４６】
なお、本実施形態のハード構成は、第２実施形態のものと同様である。但し、マイコン３内に、眼位置検出部４０及び眼領域画像抽出部５０に相当するロジックがプログラミングされている。また、本装置１ｂについても第２実施形態のものと同様に、自動車、鉄道車両、船舶の被検出者やプラントのオペレータ等に用いることができるが、以下、本実施形態においては、車両運転者の覚醒状態を検出する場合を例に説明することとする。
【０１４７】
次に、上記覚醒状態検出装置１ｂの動作を説明する。図１８は、図１７に示した覚醒状態検出装置１ｂの基本動作を示すフローチャートである。なお、図１８のステップＳＴ４０〜ＳＴ４３の処理は、図１４に示すＳＴ３０〜ＳＴ３３の処理と同様であるため、説明を省略する。
【０１４８】
ステップＳＴ４４において、マイコン３は、顔画像内から眼の位置を検出する（ＳＴ４４）。すなわち、マイコン３は、眼位置検出部４０に相当するプログラムを実行することとなる。なお、この処理において眼の位置が検出されると、眼の位置の検出状態を示す検出フラグ「ＧｅｔＦｌａｇ」が「ＴＲＵＥ」とされることとなる。一方、眼の位置が検出されなかった場合、検出フラグ「ＧｅｔＦｌａｇ」が「ＦＡＬＳＥ」とされることとなる。
【０１４９】
その後、マイコン３は、眼領域画像抽出処理を実行する（ＳＴ４５）。すなわち、マイコン３は、眼領域画像抽出部５０に相当するプログラムを実行することとなる。
【０１５０】
そして、マイコン３は、検出フラグ「ＧｅｔＦｌａｇ」が「ＴＲＵＥ」であるか否かを判断する（ＳＴ４６）。検出フラグ「ＧｅｔＦｌａｇ」が「ＴＲＵＥ」でないと判断した場合（ＳＴ４６：ＮＯ）、眼の位置が検出されておらず、処理はステップＳＴ４１に戻る。そして、再度、眼の位置検出が行われることとなる。
【０１５１】
一方、検出フラグ「ＧｅｔＦｌａｇ」が「ＴＲＵＥ」であると判断した場合（ＳＴ４６：ＹＥＳ）、マイコン３は、オプティカルフロー検出処理を実行する（ＳＴ４７）。以下、ステップＳＴ４７〜ＳＴ５０は、図１２に示すステップＳＴ３４〜ＳＴ３７の処理と同様であるため、説明を省略する。
【０１５２】
次に、眼位置検出処理（ＳＴ４４）の詳細な動作について説明する。図１９は、図１８に示した眼位置検出処理（ＳＴ４４）の詳細な動作を示すフローチャートである。
【０１５３】
同図に示すように、ステップＳＴ４３の後、マイコン３は、検出フラグ「ＧｅｔＦｌａｇ」が「ＦＡＬＳＥ」とする（ＳＴ６０）。そして、マイコン３は、眼である可能性を有する候補の位置の特定処理を実行する（ＳＴ６１）。この処理により、顔画像全体から眼の候補の位置が１又は複数特定される。
【０１５４】
その後、マイコン３は、眼判定処理を実行する（ＳＴ６２）。なお、この処理では、眼の候補の位置特定処理（ＳＴ６１）にて特定された１又は複数の眼の候補のうち１つを選別し、この選別した候補が眼であるか否かを判断する。
【０１５５】
その後、マイコン３は、眼の判定処理（ＳＴ６１）の結果に基づいて、選別された眼の候補が眼であると判定されたか否かを判断する（ＳＴ６２）。眼であると判定されていなかった場合（ＳＴ６２：ＮＯ）、マイコン３は、特定された１又は複数の眼候補のすべてについて判定したか否かを判断する（ＳＴ６４）。
【０１５６】
全てに対して判定した場合（ＳＴ６４：ＹＥＳ）、処理は図１８のステップＳＴ４５に移行する。一方、全てに対して判定していない場合（ＳＴ６４：ＮＯ）、処理はステップＳＴ６２に戻る。
【０１５７】
ところで、ステップＳＴ６３において、眼であると判定されていた場合（ＳＴ６３：ＹＥＳ）、マイコン３は、眼検出フラグ「ＧｅｔＦｌａｇ」を「ＴＲＵＥ」にする（ＳＴ６４）。そして、処理は図１８のステップＳＴ４５に移行する。
【０１５８】
以上のようにして、本装置１では、眼である可能性を有する１又は複数の眼候補を画像全体から特定し、特定された１又は複数の眼候補を１つずつ判定して眼を検出することとなる。なお、眼である可能性を有する１又は複数の眼候補を画像全体から特定する処理（ステップＳＴ６１の処理）は、以下のようにして行われる。
【０１５９】
図２０は、図１９に示した眼候補位置特定処理（ＳＴ６１）の詳細を示すフローチャートである。同図において、まず、マイコン３は、顔画像のデータ全体を、全体画像として画像メモリに保存する（ＳＴ７０）。
【０１６０】
次に、マイコン３は、ステップＳＴ７１の判断を行う。この判断については後述する。ステップＳＴ７１において「ＮＯ」と判断された場合、マイコン３は、全体画像の縦方向（Ｙ軸方向）の画素列のうち１ラインのみに沿って濃度値の相加平均演算を行う（ＳＴ７２）。
【０１６１】
この相加平均演算は、例えば縦方向に並ぶ所定数の画素について、濃度の平均値を求め、所定数の画素のうちの１画素の濃度値を前記平均値とする処理である。例えば、所定数が「５」である場合、画面上方から１〜５番目に位置する画素を選択して平均値を求め、この平均値を５番目の画素の濃度値とする。次に、画面上方から２〜６番目に位置する画素を選択して平均値を求め、この平均値を６番目の画素の濃度値とする。そして、これを順次繰り返し、１ラインすべての画素について濃度の平均値を求める。
【０１６２】
このように相加平均演算することで、本装置１は、画像データ撮影時の濃度値の変化の小さなバラツキを無くすことができ、濃度値の大局的な変化を捉えることができる。
【０１６３】
相加平均演算後、マイコン３は、縦方向に相加平均値の微分演算を行う（ＳＴ７３）。そして、マイコン３は、微分値に基づいてポイント抽出を行う（ＳＴ７４）。このポイント抽出とは、縦方向の画素列に沿って画素濃度の相加平均値の局所的な高まり毎に１個ずつの画素を定める処理であって、例えば相加平均値の微分値が負から正に変化する画素を定める処理である。
【０１６４】
ポイントとなる画素を定めた後、マイコン３は、現在ポイント抽出していたラインを次ラインへ切り替える（ＳＴ７５）。そして、マイコン３は、縦方向の全ラインでのポイント抽出が終了したか否かを判断する（ＳＴ７１）。全ラインでのポイント抽出が終了していないと判断した場合（ＳＴ７１：ＮＯ）、前述のステップＳＴ７２〜ＳＴ７５の処理を経て、再度ステップＳＴ７１に戻る。
【０１６５】
一方、全ラインでのポイント抽出が終了したと判断した場合（ＳＴ７１：ＹＥＳ）、隣り合う各ラインの抽出ポイントのＹ座標値を比較する。そして、Ｙ座標値が所定値以内の場合、連続データとして、（ｉ）連続データのグループ番号、（ｉｉ）連続開始ライン番号、（ｉｉｉ）連続データ数をメモリする。また、（ｉｖ）連続データを構成する各抽出ポイントの縦方向位置の平均値（その連続データの代表上下位置）、（ｖ）連続開始ラインと終了ラインの横方向位置の平均値（その連続データの代表左右位置）をメモリする（ＳＴ７６）。
【０１６６】
なお、上記処理では、眼の候補を特定としようとしているため、連続データは横方向比較的長く延びるものとなる。このため、マイコン３は、連続データ形成後、横方向に所定値以上続くことを条件に連続データを選択することができる。
【０１６７】
その後、マイコン３は、各連続データについて代表座標値Ｃを定め、これを基準として存在領域ＥＡを設定する（ＳＴ７７）。この代表座標値Ｃとは、ステップＳＴ７６の処理において、メモリされたＸ座標値の平均値及びＹ座標値の平均値により決定するものである（上記ｉｖ，ｖに示す平均値）。なお、存在領域ＥＡについては、図２１〜図２６を参照して後述する。
【０１６８】
代表座標値Ｃを定めて存在領域ＥＡを設定した後、処理は、図１９のステップＳＴ６２に移行する。以上が、眼候補位置特定処理（ＳＴ６１）である。以上のようにして、求められた連続データが眼の候補となり、連続データの代表座標値Ｃが眼の候補点の位置となる。
【０１６９】
次に、縦方向の画素列ごとに定められた抽出ポイントが画像横方向に隣接する場合に形成される連続データ、その連続データの代表座標値Ｃ及び存在領域ＥＡについて説明する。
【０１７０】
図２１は、図２０に示したステップＳＴ７６の処理にて形成される連続データ、並びにステップＳＴ７７の処理にて定められる代表座標値Ｃ及び存在領域ＥＡを示す説明図である。なお、眼候補位置特定処理（ＳＴ６１）は、１又は複数の眼候補を特定するものであるが、図２１では複数の眼候補が特定された場合を例に説明する。
【０１７１】
同図に示すように、マイコン３は、複数の連続データＧを形成している。これは、眼を検出対象としているため、眼と似た特徴量を示すもの（口、鼻、眉毛など）が検出されるためである。
【０１７２】
連続データＧは、前述したように、縦方向の画素列ごとに定められた抽出ポイントが画像横方向に隣接する場合に形成されるものである。そして、この連続データを形成する横方向両端の画素のＸ座標値の平均値と、連続データを形成する各画素のＹ座標の平均値により、代表座標値Ｃが決定される。さらに、存在領域ＥＡは、この代表座標値Ｃを基準として設定される。
【０１７３】
次に、存在領域ＥＡの設定方法を説明する。図２２は、図２１に示した存在領域ＥＡの大きさを示す説明図であり、図２３及び図２４は数人の眼の大きさを調べた横Ｘａ、縦Ｙａの長さの統計データを示す説明図であり、図２５は存在領域ＥＡの画像上の位置を決定する方法を示す説明図である。
【０１７４】
存在領域ＥＡの設定は、存在領域ＥＡの大きさが決定され、その後、存在領域ＥＡの画像上における位置が定められることでなされる。存在領域ＥＡの大きさは、ノイズ（顔の皺や明暗などを抽出してしまう）の低減や処理速度を落とさないためにも、可能な限り小さい領域が良い。本実施形態では、数人の顔部位の大きさを調べ、それに余裕分（例えば×１．５倍）を加味して、存在領域ＥＡの大きさを決定している。すなわち、図２３及び図２４のように、眼の縦横寸法のデータを集め、その分布の例えば９５％をカバーする寸法に余裕分を考慮して決定する方法を採用している。
【０１７５】
そして上記９５％をカバーする寸法、すなわち横寸法ｘａ、縦寸法ｙａに余裕分（×１．５）を加味して決定している（図２２）。なお、存在領域ＥＡの大きさについては、画像処理により眼の幅や高さを推定し、縦横の大きさに余裕分を加える大きさとしてもよい。
【０１７６】
このように存在領域ＥＡの大きさが決定された後、図２５に示すように、例えば眼の座標値（ｘ１，ｙ１）を基準に、基準点Ｐを決める。基準点Ｐは、眼の座標値（ｘ１，ｙ１）から距離ｘ２，ｙ２だけ離れた位置に定められるものである。
【０１７７】
そして、マイコン３は、点Ｐを基準に存在領域ＥＡの寸法ｘ３，ｙ３を描画する。これにより、存在領域ＥＡの位置が決定される。その後、顔画像全体で見つかった連続データＧすべてについて存在領域ＥＡを設定する。
【０１７８】
なお、上記のｘ２及びｙ２はｘ３，ｙ３の１／２であって、予め存在領域ＥＡが眼の中心にくるような長さとしている。
【０１７９】
以上の図２０〜図２５の処理により、図１９の眼候補位置特定処理（ＳＴ６１）がなされる。
【０１８０】
次に、図１９の眼判定処理（ＳＴ６２）について説明する。図２６は、図１９に示した眼判定処理（ＳＴ６２）の詳細を示すフローチャートである。
【０１８１】
まず、マイコン３は、図２０の処理にて求められた存在領域ＥＡの画像データを微少画像ＩＧとして画像メモリに保存する（ＳＴ８０）。全体画像と画像メモリに保存される微小画像ＩＧとの状態を図２７に示す。図２７は、微小画像を示す説明図である。図２７に示すように、マイコン３は、全体画像から存在領域ＥＡ内の画像を抽出し、微小画像ＩＧとしている。
【０１８２】
再度、図２６を参照して説明する。マイコン３は、全体画像の代表座標値Ｃを微少画像ＩＧの代表座標値ＩＣとする。そして、マイコン３は、微少画像ＩＧの代表座標値ＩＣを基準とした範囲ＡＲを設定し、範囲ＡＲの濃度情報をもとに二値化閾値を設定する（ＳＴ８１）。
【０１８３】
範囲ＡＲでの二値化閾値の算出方法の一例を、図２８を参照して説明する。図２８は、範囲ＡＲでの二値化閾値の算出方法の説明図である。まず、マイコン３は、範囲ＡＲにおいて縦方向に数ラインの濃度値の読み出しを行う。
【０１８４】
そして、マイコン３は、各ラインにおいて濃度値の最も高い（明るい）濃度値と、最も低い（暗い）濃度値をメモリしていく。全ラインのメモリが終了したら、マイコン３は、各ラインの最も高い（明るい）濃度値の中で、一番低い濃度値（皮膚の部分）と、各ラインの最も低い（暗い）濃度値の中で、一番低い濃度値（眼の部分）とを求める。そして、その中央値を二値化閾値とする。
【０１８５】
なお、上記した範囲ＡＲは、好適に二値化閾値を決定するため、眼の黒い部分と眼の周囲の皮膚の白い部分が入るように設定される。また、範囲ＡＲは、画像の明るさのバラツキによる影響を少なくするために必要最小限の大きさにされる。
【０１８６】
さらに、二値化閾値は、範囲ＡＲ内の眼の一番低い（暗い）濃度値と、皮膚の部分の一番低い（暗い）濃度値の中央値とすることで、皮膚の部分から眼の部分を切り出すのに適した値になる。
【０１８７】
ここで、二値化閾値を決定するのに皮膚部分における一番低い（暗い）濃度値を用いている理由は、次の通りである。例えば、範囲ＡＲの一部に直射光が当たっている場合、皮膚部分は、眼球の黒色部分に比して、光を強く反射する傾向にある。このため、本装置１ｂは、多くのノイズとも言える光を入力してしまうこととなる。
【０１８８】
この場合、濃度値を読み出す範囲ＡＲを極力小さくしても、画像がノイズ光による影響を受け、本装置１ｂは正確な二値化閾値を決定できなくなる可能性がある。このため、本実施形態では、強く反射している可能性がある濃度値の高い部分を用いず、皮膚の部分の濃度値の一番低い（暗い）濃度値を用いることで、より適切な二値化閾値を決定できるようにしている。
【０１８９】
再度、図２６を参照して説明する。二値化閾値の決定後、マイコン３は、決定した二値化閾値を用いて微少画像ＩＧを二値化処理し、二値画像ｂＧとして画像メモリに保存する（ＳＴ８２）。
【０１９０】
次に、マイコン３は、全体画像の代表座標値Ｃを二値画像ｂＧの位置ｂＣとし、この位置ｂＣを初期位置として設定する（ＳＴ８３）。その後、マイコン３は、設定位置が黒画素か否かを判断する（ＳＴ８４）。ここでは、ステップＳＴ４３において設定された初期位置が黒画素か否か判断される。
【０１９１】
そして、設定位置が黒画素でないと判断した場合（ＳＴ８４：ＮＯ）、マイコン３は、設定位置を上下左右に１画素ずつずらす（ＳＴ８５）。その後、マイコン３は、再度、設定位置が黒画素か否かを判断する。ここでは、ステップＳＴ４５においてずらされた設定位置が黒画素か否か判断される。そして、黒画素と判断されるまで、この処理が繰り返される。
【０１９２】
一方、設定位置が黒画素であると判断した場合（ＳＴ８４：ＹＥＳ）、マイコン３は、その黒画素の連結成分を候補オブジェクトとして設定する（ＳＴ８６）。そして、マイコン３は、候補オブジェクトの幾何形状を算出する（ＳＴ８７）。
【０１９３】
算出後、マイコン３は、予め記憶している眼のテンプレートの幾何形状と候補オブジェクトの幾何形状とを比較する（ＳＴ８８）。候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の一例を、図２９を参照して説明する。
【０１９４】
図２９は、候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の説明図であり、（ａ）は候補オブジェクトが最適な状態で撮像された場合を示し、（ｂ）は眼の右側が欠けた状態を示し、（ｃ）は眼の左側が欠けた状態を示している。
【０１９５】
眼の画像を二値化した形状は光環境が良く安定した画像であれば図２９（ａ）に示すようなものになる。ところが、車室内に直射日光が一側から当たる等して光環境が悪化したときには、図２９（ｂ）及び（ｃ）に示すように、一部が欠けた形状になることもある。
【０１９６】
マイコン３は、上記のような候補オブジェクトを正確に判断するために、３つの条件により比較判断を行う。まず、条件（ｉ）としては、横幅が眼の相場値の２／３以上あり、且つ上に凸の所定範囲の曲率を持っていることである。次に、条件（ｉｉ）としては、黒眼の左側の凹み形状があることである。また、条件（ｉｉｉ）としては、黒眼の右側の凹み形状があることである。
【０１９７】
再度、図２６を参照して説明する。幾何形状の比較後、マイコン３は、上記３つの条件に基づき、比較判断を行い、候補オブジェクトと眼テンプレートとの幾何形状が一致するか否かを判断する（ＳＴ８９）。ここで、図１３（ｂ）及び（ｃ）のように眼の形状の一部が欠けている場合を考慮し、マイコン３は、条件（ｉ）及び（ｉｉ）を満たすもの、並びに条件（ｉｉ）及び（ｉｉｉ）を満たすものを一致すると判断する。
【０１９８】
一致しないと判断した場合（ＳＴ８９：ＮＯ）、マイコン３は、その候補オブジェクトが眼でないと判定し（ＳＴ９０）、その後、処理は、図１９のステップＳＴ６３に移行する。
【０１９９】
一方、一致すると判断した場合（ＳＴ８９：ＹＥＳ）、マイコン３は、その候補オブジェクトが眼であると判定する（ＳＴ９１）。そして、判定された候補オブジェクトの座標値（全体画像における代表座標値Ｃに相当する）を、画像上における眼の座標値としてメモリする（ＳＴ９２）。
【０２００】
その後、マイコン３は、ステップＳＴ９０において一致すると判断された候補オブジェクトを含む微小画像ＩＧを眼画像ＭＧｉとして、画像メモリに保存する（ＳＴ９３）。その後、処理は、図１９のステップＳＴ６３に移行する。
【０２０１】
なお、図２６の処理では、二値化閾値を用いて二値化した候補オブジェクトを検出している。このため、本実施形態では、眼の部分と他の部分（背景や眼以外の顔部分）とを明確に区別し、眼を正確に捉えることができる。さらには、候補オブジェクトの幾何形状を用いた判定をより正確に行うことができ、眼の位置検出精度をより向上させることができる。
【０２０２】
以上、図２８〜図２９を参照して説明したように、マイコン３（眼位置検出部４０）は、顔画像全体から眼を検出する。そして、前述したように、眼が検出されると、眼検出フラグ「ＧｅｔＦｌａｇ」が「ＴＲＵＥ」とされる。そして、図１８に示すように、眼領域画像抽出処理（ＳＴ４５）、オプティカルフロー検出処理（ＳＴ４７）及びそれ以降の処理が実行される。
【０２０３】
すなわち、マイコン３は、眼領域画像抽出処理（ＳＴ４５）を実行し、検出した眼の位置から眼領域画像を抽出する。そして、マイコン３は、オプティカルフロー検出処理（ＳＴ４７）を実行し、眼画像領域内からオプティカルフローを検出する。この際、マイコン３は、第２実施形態に示したものと同様に、眼画像領域内において所定の大きさ及び位置で定められる参照領域からオプティカルフローを検出する。
【０２０４】
さらに、マイコン３は、瞼の動きベクトル検出処理（ＳＴ４８）を実行し、眼領域画像内に定められる領域グループから、瞼の動きベクトルを検出する。その後、マイコン３は、開閉状態判定処理（ＳＴ４９）を実行し、瞼の開閉状態の時系列的変化を求める。そして、マイコン３は、瞼の開閉状態の時系列的変化から、運転者の覚醒状態を検出する。
【０２０５】
このようにして、本実施形態に係る覚醒状態検出装置１ｂによれば、第１実施形態と同様に、判定精度の向上を図ることができ、判定精度の一層の向上を図ることができ、詳細に画像内の物体等の移動を検出している分、精度の高い検出を行うことができる。
【０２０６】
さらに、本実施形態では、眼付近のオプティカルフローを求めるに際して、顔画像から眼の位置を検出し、その後眼領域画像を抽出することとしている。このため、第２実施形態のように、眼を追従して撮像する手段を要することなく、構成の簡素化を図ることができる。
【０２０７】
また、顔画像撮像部１０は、被検出者の顔全体を一画像内に収めることができる画角を有し、固定して設置されている。すなわち、顔画像撮像部１０は、一画像内に被検出者の顔が収まった状態で撮像することができる。このため、一画像内に顔が収まることから、確実に瞼を一画像内に収めることができ、さらに確実に瞼の動きを捕らえることができる。この結果、瞼の動きに基づいて覚醒状態を検出できることとなり、瞼が撮像されずに、覚醒状態の検出精度が低下してしまうことを防止することができる。従って、検出精度の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る覚醒状態検出装置の構成図である。
【図２】参照領域及び探索領域の説明図である。
【図３】顔画像に規則的に配置される参照領域の説明図であり、（ａ）は顔画像上の横方向に参照領域が複数（例えば７つ）配置される例を示し、（ｂ）は顔画像上に格子状に参照領域が複数（例えば５行７列）配置される例を示し、（ｃ）は横方向に且つ格子状に参照領域が複数（例えば３行５列に加え、さらに横方向に２つの計１７）配置される例を示している。
【図４】本発明の第１実施形態に係る覚醒状態検出装置１を車両に搭載した場合のハード構成図である。
【図５】図１に示した覚醒状態検出装置の基本動作を示すフローチャートである。
【図６】図５に示したオプティカルフロー検出処理（ステップＳＴ５）の詳細なフローチャートである。
【図７】図６に示すステップＳＴ１１における移動量（ｘｄ，ｙｄ）の算出方法の説明図である。
【図８】運転者が左方向に顔の向きを変える場合のオプティカルフローの例を示す説明図であり、（ａ）は時刻ｔにおけるオプティカルフローの例を示し、（ｂ）は時刻（ｔ＋１）におけるオプティカルフローの例を示し、（ｃ）は時刻（ｔ＋２）におけるオプティカルフローの例を示し、（ｄ）は時刻（ｔ＋３）におけるオプティカルフローの例を示している。
【図９】図５に示した動きベクトルの検出処理（ＳＴ６）の詳細なフローチャートである。
【図１０】平均移動量、顔の動きベクトル、及び単位時間を３０秒としたときの動きベクトルの平均値（統計的代表値）を示す説明図である。
【図１１】図１０に示す平均値から得られた覚醒度を示す説明図である。
【図１２】第２実施形態に係る覚醒状態検出装置の機能ブロック図である。
【図１３】本発明の第２実施形態に係る覚醒状態検出装置を車両に搭載した場合のハード構成図である。
【図１４】図１２に示した覚醒状態検出装置の基本動作を示すフローチャートである。
【図１５】瞼の開閉を検出する場合に得られるオプティカルフローの例を示す説明図であり、（ａ）は時刻ｔにおけるオプティカルフローの例を示し、（ｂ）は時刻（ｔ＋１）におけるオプティカルフローの例を示し、（ｃ）は時刻（ｔ＋２）におけるオプティカルフローの例を示している。
【図１６】瞼の開閉を検出する場合に得られる平均移動量の移動平均（すなわち動きベクトル）を示す説明図である。
【図１７】第３実施形態に係る覚醒状態検出装置の機能ブロック図である。
【図１８】図１７に示した覚醒状態検出装置の基本動作を示すフローチャートである。
【図１９】図１８に示した眼位置検出処理（ＳＴ４４）の詳細な動作を示すフローチャートである。
【図２０】図１９に示した眼候補位置特定処理（ＳＴ６１）の詳細を示すフローチャートである。
【図２１】図２０に示したステップＳＴ７６の処理にて形成される連続データ、並びにステップＳＴ７７の処理にて定められる代表座標値Ｃ及び存在領域ＥＡを示す説明図である。
【図２２】図２１に示した存在領域ＥＡの大きさを示す説明図である。図２３及び図２４は数人の眼の大きさを調べた横Ｘａ、縦Ｙａの長さの統計データを示す説明図であり、図２５は存在領域ＥＡの画像上の位置を決定する方法を示す説明図である。
【図２３】数人の眼の大きさを調べた横Ｘａの長さの統計データを示す説明図である。
【図２４】数人の眼の大きさを調べた縦Ｙａの長さの統計データを示す説明図である。
【図２５】存在領域ＥＡの画像上の位置を決定する方法を示す説明図である。
【図２６】図１９に示した眼判定処理（ＳＴ６２）の詳細を示すフローチャートである。
【図２７】微小画像を示す説明図である。
【図２８】範囲ＡＲでの二値化閾値の算出方法の説明図である。
【図２９】候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の説明図であり、（ａ）は候補オブジェクトが最適な状態で撮像された場合を示し、（ｂ）は眼の右側が欠けた状態を示し、（ｃ）は眼の左側が欠けた状態を示している。
【符号の説明】
１，１ａ，１ｂ…覚醒状態検出装置
１０…顔画像撮像部（顔画像撮像手段）
２０…オプティカルフロー検出部（オプティカルフロー検出手段）
３０…覚醒状態検出部（覚醒状態検出手段）
３１…動きベクトル検出部（動きベクトル検出手段）
３２…代表値算出部（代表値算出手段）
３３…開閉状態検出部（開閉状態検出手段）
４０…眼位置検出部（眼位置検出手段）
５０…眼領域画像抽出部（眼領域画像抽出手段）
【図１】
2005013626.tif 000006
【図２】
2005013626.tif 000007
【図３】
2005013626.tif 000008
【図４】
2005013626.tif 000009
【図５】
2005013626.tif 000010
【図６】
2005013626.tif 000011
【図７】
2005013626.tif 000012
【図８】
2005013626.tif 000013
【図９】
2005013626.tif 000014
【図１０】
2005013626.tif 000015
【図１１】
2005013626.tif 000016
【図１２】
2005013626.tif 000017
【図１３】
2005013626.tif 000018
【図１４】
2005013626.tif 000019
【図１５】
2005013626.tif 000020
【図１６】
2005013626.tif 000021
【図１７】
2005013626.tif 000022
【図１８】
2005013626.tif 000023
【図１９】
2005013626.tif 000024
【図２０】
2005013626.tif 000025
【図２１】
2005013626.tif 000026
【図２２】
2005013626.tif 000027
【図２３】
2005013626.tif 000028
【図２４】
2005013626.tif 000029
【図２５】
2005013626.tif 000030
【図２６】
2005013626.tif 000031
【図２７】
2005013626.tif 000032
【図２８】
2005013626.tif 000033
【図２９】
2005013626.tif 000034