以下、本発明に係る覚醒度推定装置の最良の実施形態について、図面を用いて説明する。
図1は、本発明に係る覚醒度推定装置の一実施形態である覚醒度推定装置100を示すブロック図、図2は、図1に示した覚醒度推定装置100が車両200に搭載された状態を示す模式図である。
図示の覚醒度推定装置100は、車両200の車室内に取り付けられたCCDカメラ201によって撮影された、この車両200の運転者10の顔の画像に基づいて、当該顔の画像に含まれる眼の開度を検出する眼開度検出手段101と、時系列的に順次連なる複数の顔の画像を対象として、眼開度検出手段101により検出された眼の開度の時系列的推移を検出する眼開度推移検出手段104と、眼開度推移検出手段104により検出された眼の開度の時系列的推移に基づいて覚醒度を判定する覚醒度判定手段105と、眼開度推移検出手段104により検出された眼の開度の時系列的推移に基づいて、眼開度検出手段101による眼の開度の検出結果に対する信頼度を判定する信頼度判定手段106と、を備えた構成である。
ここで、カメラ201は、CCDの他、CMOSなどの他の撮像素子であってもよく、時系列に順次撮影された画像を出力する。
なお、カメラ201は、覚醒度推定装置100の構成要素として備えられたものではなく、他の用途のために予め車室内に設けられているものであるが、それらの予め備えられているカメラ201が存在しないときは、別途、カメラ201を覚醒度推定装置100の構成要素として備えればよい。
眼開度検出手段101は、眼を検出する眼検出部102と、眼検出部102によって検出された眼に基づいて、眼の開度を検出する眼開度検出部103とを備えている。
眼検出部102は、CCDカメラ201から入力された顔の画像の濃度分布を、上下方向(縦方向)に主走査、左右方向(横方向)に副走査することにより、画像の全体について、上下方向の濃度変動が所定条件を満たす、相対的に暗くなる濃度部を抽出し、この相対的に暗くなる濃度部に基づいて、眼を検出する。
また、眼検出部102は、眼を検出する対象の画像に対して、検出対象の画像と時系列的に連なる直前の画像において検出された眼の位置の近傍範囲に対応する範囲を、検出対象範囲(追跡領域)として設定し、この設定された追跡領域について眼の検出を行う。
ただし、時系列的に連なる直前の画像が存在しないか、もしくは、設定された追跡領域について行った眼の検出処理によっては眼を検出することができないときは、検出対象の画像の全範囲について眼の検出を行う。
眼開度検出部103は、眼検出部102によって検出された眼の上下方向に沿った高さを求め、この求められた高さを、眼の開度として検出するものであるが、その他に、眼検出部102によって検出された眼に外接する矩形の縦横比を求め、この求められた縦横比を、眼の開度として検出するものであってもよいし、眼検出部によって検出された眼の上縁の曲率半径を求め、この求められた曲率半径を、眼の開度として検出するものであってもよい。
信頼度判定手段106は、眼開度推移検出手段104により検出された眼の開度Pの時系列的推移を時間微分し、得られた時系列的推移の時間微分値Kの分布に応じて、信頼度を判定し、その信頼度を出力するものである。
詳しくは、時系列的推移の時間微分値Kの分布について、時間微分値Kの絶対値|K|が所定の閾値を上回る頻度を求め、得られた前記頻度に応じて、信頼度を判定するものである。
また、この車両200には、覚醒度推定装置100の覚醒度判定手段105から出力された覚醒度と、信頼度判定手段106から出力された信頼度とに応じて、所定の警報音を発する車両乗員用の居眠り防止装置(警報ブザー等)202が備えられている。
次に、本実施形態の覚醒度推定装置100の作用について、図3〜図6に示したフローチャートにしたがって説明する。
まず、図3に示すように、CCDカメラ201により撮影された画像が、眼開度検出手段101に入力される(ステップ301(以下、S301と標記する。))。
眼開度検出手段101の眼検出部102は、まず、眼の追跡領域が設定されているか否かを判定する(S302)。処理の起動直後(時系列的に最初に画像が入力されたとき)は、それ以前に入力された画像が存在しないため、眼の追跡領域が設定されておらず、眼検出部102は、画像の全体を眼の検出領域として、眼の検出を行う(S303)。
眼検出部102による眼の検出処理は、例えば図7に示すように、顔の画像の濃度分布を、上下方向(Y軸方向、縦方向)に主走査、左右方向(X軸方向、横方向)に副走査することにより、画像の全体について、上下方向の濃度変動が所定条件を満たす点を、各縦ライン(主走査線)上に抽出する。そして、抽出された点を、図8に示すように2次元座標上に示す。
なお、図7,8において、符号Xa,Xb,Xc,Xdは、任意の縦ラインのX座標である。また、図8における符号A1は、縦ライン上での走査(Y座標を増加していく方向(座標(X,0)→座標(X,479))への走査)によって、各縦ライン上において最初に上記所定条件を満たした抽出点であり、符号A2は、各縦ライン上において2番目に上記所定条件を満たした抽出点であり、以下、符号A3は3番目、符号A4は4番目をそれぞれ表している。
次いで、図9に示すように、隣接する縦ライン間で、抽出点同士が上下方向に近接して抽出点を、それらの縦ライン上の抽出点同士をグループ化する。
このグループ化は、濃度変動が大きく、横方向に延びた濃度的な特徴、すなわち横方向に延びた濃度エッジを検出する処理であり、比較的簡単な演算処理で、特徴G1,G2,G3,G4,G5,G6を検出することができる。
その後、各特徴G1,G2,…,G6を、図10に示した、横方向に3つに区分けされたゾーンL,C,Rに対応させ、各ゾーンL,C,Rの範囲内における各特徴G1,G2,…,G6(G1,G2,…,G6の中心(重心)座標を代表点として表示)間の相対的位置関係に基づいて、各特徴G1,G2,…,G6が、顔のどの要素に対応しているかを判定し、要素の一つである眼を特定するとともにその位置を検出する。本実施形態では、符号G1は乗員の右眉、符号G2は左眉、符号G3は右眼、符号G4は左眼、符号G5は鼻、符号G6は口、と特定することができ、各要素の位置を検出することができる。
眼G4(眼G3であってもよい。以下、同様。)の中心位置1101(座標(Xk,Yk))が検出される(S303)と、眼検出部102は、図11(a)に示すように、眼G4の中心位置1101を中心座標(Xk,Yk))とする所定の矩形領域1103を設定する。
この矩形領域1103は、時系列的に連なって次回入力される画像(第(N+1)フレーム)における眼の検出対象範囲(追跡領域)を小領域に限定するものであり、この第Nフレームの画像から検出された眼G3の中心1101を中心座標として、X軸方向±m、Y軸方向±nの矩形領域が追跡領域として設定される。
なお、矩形領域は、その左上隅の座標1102(Xk−m,Yk−n)を以て、特定される。
ステップ304(S304)において設定された追跡領域1103内で、眼の位置検出を行う(S305)。この処理は、本来は、時系列的に連なって次回入力される第(N+1)フレームの画像における追跡領域として設定されたものであるが、全体領域が検出対象領域とされた(S302の判断において「N」が選択された場合の)第Nフレームの画像に対しても、この追跡領域1103で眼の検出処理を改めて行うことにより、図7における縦ラインの間隔を狭めて眼の中心位置の検出処理を行い、眼の中心位置の検出精度を更に向上させることができる。
そして、図11(b)に示すように、この追跡領域は、時系列的に連なって次回入力された第(N+1)フレームの画像において眼G4が検出されると、その中心1104を中心座標(Xk−Δx,Yk−Δy)とする、X軸方向±m、Y軸方向±nの矩形領域が、新たな追跡領域1106として設定される。すなわち、追跡領域は、座標1105(Xk−Δx−m,Yk−Δy−n)に更新され、以下、順次入力された画像において検出される眼G4の中心位置(S305,S306)に応じて、追跡領域は同様の処理により順次更新される(S309)。
眼G4の追跡領域の更新(S309)を行う前に、眼G4の追跡領域内において眼G4の検出に成功したかどうかの判定を行ない(S306)、眼G4の検出に失敗したとき(S306)は、設定されている眼G4の追跡領域を一旦消去し、ステップ302に戻り、画像の全体領域を検出対象領域とした眼G4の検出処理(S303)を実行する。
なお、タイマー制御(S308)については、眼の開閉判定の信頼度の算出と、覚醒度の判定に用いる制御であるため、各々の判定フローの中で説明する。
眼G4の検出に成功したかどうかの判定(S306)において検出に成功したときは、追跡領域の更新(S309)後、眼開度検出部103が眼G4の開度の検出を行う(S310)。
ここで、眼G4の開度の検出処理の例として、以下に3種類の開度検出処理を説明する。
まず、第1の開度検出処理は、図12(a),(b)に示すように、検出された眼G4の上下方向に沿った高さ(縦幅)Hを求め、この縦幅Hを、眼の開度値として算出する処理である。
この処理においては、図12に示すように、2値化処理を施して眼G4の輪郭形状を鮮明に浮き出させ、縦方向に沿って黒画素(2値化処理により、黒画素と白画素とに区分した場合における黒画素)が連続する数をカウントし、そのカウントの最大値を眼G4の開度値として算出する。
眼G4が開いているか否かは、上まぶたの下端縁と下まぶたの上端縁との間の間隔、すなわち眼G4の上下方向に沿った高さによって判断可能である一方、上まぶたの下端縁と下まぶたの上端縁とは、上述したように、顔の画像の濃度の分布を上下方向に沿って走査する簡単な演算処理で検出することができる。
したがって、眼G4の開度を、眼G4の上下方向に沿った高さとして規定することで、眼G4の開度を簡単な演算処理で求めることができる。なお、縦幅Hが大きいときは開眼している状態であり、そこから縦幅Hが小さくなるにしたがって、眼が閉じる方向に、開眼度が変化するものとする。
次に、第2の開度検出処理は、図13(a),(b)に示すように、検出された眼G4に外接する矩形の縦横比H/W(なお、Wは横幅を表す。)を求め、この求められた縦横比H/Wを、眼の開度として検出する処理である。縦横比H/Wが大きいときは開眼している状態であり、そこから縦横比H/Wが小さくなるにしたがって、眼が閉じる方向に、開眼度が変化する。
この処理は、2値化した眼G4の輪郭に外接する矩形の縦横比H/Wを眼G4の開度として規定しているため、画像間で像倍率が異なるとき、すなわち図13(a),(b)に示すように、画像間で撮影対象の乗員10が同一であっても乗員10とカメラ201との間の距離に差異があっても((a)は(b)よりも距離が近い)、その影響を排除することができ、眼G4の開度を精度よく検出することができる。
第3の開度検出処理は、図14(a),(b)に示すように、検出された眼G4の上縁(上まぶたの輪郭線)の曲率半径を求め、この求められた曲率半径を、眼G4の開度として検出する処理である。
ここでは、輪郭線(抽出点の集合)を放物線近似することにより、曲率半径を算出する。そして、この曲率半径の値が小さいときは開眼している状態(図14(a))であり、そこから曲率半径の値が大きくなるにしたがって、眼が閉じる(図14(b))方向に、開眼度が変化するものとする。
図14(c)の写真に示すように、眼の部分(図示において矩形枠で囲まれた部分)が日陰になるなどしてコントラストが低下したとき、前出の眼G4の縦幅Hまたは縦横比H/Wに応じた検出処理によっては、眼G4の開度状態を正確に検出しにくいのに対し、曲率半径によるこの検出処理では、コントラストの低下による影響を受けにくく、画像のコントラストが低い場合にも、精度よく眼G4の開度を検出することができる。
上述した処理により眼G4の開度が検出された(S310)後、検出された眼G4の開度は、眼開度推移検出手段104に入力され、眼開度推移検出手段104は、時系列的に連続する複数の画像からそれぞれ得られた眼G4の開度を順次記憶し、この記憶された眼G4の開度の時系列的推移を検出する。
ここで、時系列的推移を求めるためには、時系列的に取得された眼G4の開度が複数個必要であり、また、後述する眼G4の開度の微分値を算出する上でも、時系列的に取得された眼G4の開度が複数個必要である。
したがって、次のステップ(S312)において、眼G4の開度の微分値を算出するための眼G4の開度値が眼開度推移検出手段104にメモリされているか否かの判定を行う。
メモリされていないと判定したときは、眼G4の開度を記憶させた上(S311)で、時系列的に連続する次の画像が入力され(S301)、以上の処理(S311〜S310)を繰り返す。なお、眼開度推移検出手段104は、以上の処理を繰り返している間に、眼開度推移検出手段10に順次記憶されていく、時系列の眼G4の開度に基づいて、眼G4の開度の時系列的推移を求める。
一方、微分値の算出に必要なデータ数だけ、眼G4の開度が記憶されたと判定されたとき(S312)は、記憶されている複数の眼G4の開度のうち、最も記憶時期が古い眼G4の開度を、最新の画像による眼G4の開度で更新する(S313)。
その後、記憶された最新の眼G4の開度を含む複数の眼G4の開度による微分値を算出する(S314)。そして、以後、眼G4の開度の更新(S313)と微分値の算出(S314)とが繰り返されることにより、最新の眼G4の開度に対する微分値の算出が続けられる。
次に、図4に示したフローチャートにより、信頼度判定手段106による、眼G4の開度の検出結果に対する信頼度を判定する処理について説明する。
まず、信頼度判定用のタイマーTAと覚醒度判定用のタイマーTBとのうち、少なくとも一方が停止状態にあるかどうかを判定し(S401)、いずれか一方のタイマーTAまたはTBが停止状態のときは、その停止状態のタイマーTAまたはTBをそれぞれ作動させる(S402)。
次いで、信頼度判定用のタイマーTAが所定時間に達するのを待つ(S403,S404)。このタイマーTAと比較対照される所定時間は、眼G4の開度の検出結果に対する信頼度を判定するための時間であり、通常状態(覚醒度の高い状態)における瞬きの発生頻度に基づいて、眼G4の開度の時系列的推移の異常性を判定している。
具体的には、図15および図16を用いて説明する。図15は、眼G4の縦幅Hを眼の開度Pとして出力するもので、(a)は、縦軸に眼G4の開度P(縦幅H)、横軸に時系列的に連なる画像のフレーム番号(フレーム数)を表した、眼G4の開度Pの時系列的推移を示すグラフ、(b)は、(a)における眼G4の開度Pを時間微分して得られた眼G4の開度Pの時間微分値Kの時系列的推移を示すグラフである。
図15(a)は、眼G4の開度の出力が、理想的になされている状態を示しており、開眼状態における眼G4の開度Pの変化幅が小さく、開度Pが下向きに大きく変化している3箇所が、瞬きによる開度推移を示している。
この図から明らかなように、眼G4の開度Pの検出状態が正常であるときは、被検体である乗員10の個人差を考慮に入れても、所定時間内に発生する瞬きの数(頻度)は限定的である。
一方、上述した画像認識による眼G4の開度検出処理に対して悪影響を及ぼす要因として、環境光の変化等や、CCDカメラ201からの出力信号(画像信号)へのノイズの重畳、あるいは、この覚醒度推定装置100の内部における画像信号へのノイズの重畳等があり、これらの要因によって信号処理の状態が不安定になると、眼G4の開度Pの時系列的推移、および眼G4の開度Pの時間微分値Kの時系列的推移は、図15の理想的な検出状態とは全く異なる図16(a),(b)に示すものとなる。
すなわち、図16(a)に示すように、眼G4の開度Pの変化幅が大きくなり、瞬きとノイズとの峻別が困難になる。したがって、所定時間内に発生する瞬きの数とノイズの数との合計数は、所定時間内に発生する瞬きの限定的な数(頻度)を超えたものとなる。
さらに、具体的な数値を例示すると、10秒間に発生する瞬き数は10回以下と定義付けることができる。そして、タイマーTAにより監視している所定時間は、この時間区間(=10秒間)を意味している。
この状態を判定するのに、信頼度判定手段106は、眼G4の開度Pの時間微分値Kの時系列的推移を求める。つまり、タイマーTAが所定時間に達していないとき(S403)、所定範囲(微分値Kの絶対値|K|が例えば5以下の範囲)を超える微分値Kの絶対値|K|の出力回数をカウントアップする(S404)。
つまり、図15に示した正常状態における瞬きを検出対象とした場合は、時間微分値Kの絶対値|K|が所定範囲を超える回数は、瞬き1回当たり、対で発生する正負のピークによる6回であるのに対し、図16(a)に示した眼G4の開度検出が不安定な状態では、瞬きに加えて、微分値Kの絶対値|K|が所定範囲(微分値Kの絶対値|K|が例えば5以下の範囲)を超える出力回数が極めて多く発生する状態となる(図16(b))。
したがって、タイマーTAによる所定時間の監視の結果(S403)、所定時間が経過したとき(S403→S405)、ステップ404においてカウントアップされた時間微分値Kの絶対値|K|が所定範囲を超える回数に応じて(S406)、眼G4の開度検出に対する信頼度が高い(S407)か、または低い(S408)かを判定することができる。
なお、信頼度の判定(S406)の前に、タイマーTAは停止してリセットされ(S405)、信頼度の判定(S406)の後に、カウントアップされたカウンタ値はリセットされる(S409)。
ここで、タイマーTAによって監視されている所定時間と、その所定時間内に発生する、時間微分値Kの絶対値|K|が所定範囲を超える回数の基準値(閾値)とを、どのような値に設定するのが好ましいかについて、図17および図18を用いて説明する。
図17は、26人の相異なる乗員A〜Zについて、所定時間を30秒間に設定したときと、所定時間を60秒間に設定したときとにおける、各所定時間内の瞬きの発生頻度を調査して一覧表にまとめたものである。
この表に示された結果によれば、瞬き発生頻度は、個人差が大きいことが分かる。ただし、その頻度の最大値は乗員Eによるものであり、欄1701に示すように、30秒区間で27回、60秒区間で52回である。
したがって、これ以上の回数(30秒区間で27回を超える回数、または60秒区間で52回を超える回数)のとき、通常の瞬きの計測によるものでない(ノイズが重畳している→信頼度は低い)と判定することができる。
この判定処理の具体例を、図18を参照して説明する。図18(a),(b)はいずれも、眼G4の開度Pの微分値Kの時系列的推移であり、例えば図18(a)に示す状態は、約10秒区間で、眼G4の開度Pの微分値Kの絶対値|K|が所定範囲(=5)を超えるポイント1801の回数は6回であり、この回数は、図17の一覧表に示した「30秒区間で27回」すなわち「10秒に換算した区間では9回程度」という基準を下回っており、この結果、ノイズの重畳がなく、適正に瞬きが検出されていると判定することができる。
一方、図18(b)に示す状態は、約10秒区間で、眼G4の開度Pの微分値Kの絶対値|K|が所定範囲(=5)を超えるポイント1802の回数は40回以上であり、この回数は、「10秒に換算した区間では9回程度」という基準を大きく上回っており、この結果、ノイズの重畳がするなど、正常な眼G4の開度Pの検出が行われていないと判定する。
なお、図18は、眼G4の開度Pの微分値Kを見易くするために、便宜上10秒区間での説明を行ったが、実際の瞬きの発生状態の観点からは、短い時間区間においては、時間の長さと発生回数とは必ずしも正比例の関係にはない。
すなわち、30秒区間での発生回数は、10秒区間での発生回数の単純な3倍、ということはない。ただし、時間区間が長くなるにしたがって誤差が減少し、時間区間の長さと発生回数とは略正比例の関係を呈する。
したがって、この時間区間は、適宜変更出来るものとしてもよいし、個別の状況に応じて設定することができる。
次に、図5および図6に示したフローチャートを参照して、覚醒度判定手段105による覚醒度の判定処理について説明する。
ここで、図19および図20は、それぞれ(a)が眼G4の開度Pの時系列的推移を示すグラフ、(b)が(a)における眼G4の開度Pを時間微分して得られた眼G4の開度Pの時間微分値Kの時系列的推移を示すグラフであり、図19は、覚醒度が高い状態における通常の瞬き1回を正常に検出している場合、図20は、覚醒度が低下し始めた状態における通常よりも長い瞬き1回を正常に検出している場合を示す。
次に、図5に示したフローチャートを参照して、図19に示した通常状態(覚醒度が高い状態)における瞬きに対応した眼G4の開度Pの微分値Kの出力状態を例に説明する。
まず、覚醒度判定手段105が、眼開度推移検出手段104から出力された眼G4の開度Pの時系列的推移に基づいて、眼G4の開度Pの時間微分値Kの時系列的推移を求め、微分値Kの絶対値|K|が所定範囲内(≦L)にあるかどうかを判定する。
この所定範囲Lは、図19における領域1901であり、具体的には例えば≦5の範囲である。
なお、この領域1901(絶対値|K|≦5)は、信頼度を判定する際の、ポイント1801等をカウントする範囲(絶対値|K|≧5)とは大小関係が反対の範囲として設定されているが、覚醒度を判定するための指標であるLと、信頼度を判定する指標とは、そもそもその目的を異にするため、必ずしもその指標同士が同一値である必要はなく、領域1901を(絶対値|K|≦6)等とし、信頼度を判定する際のポイント1801等をカウントする範囲を(絶対値|K|≧4)等としてもよい。
図19(b)における初回の微分値Kは負値(−1)であり、かつ領域1901にあるので、正のフラグ(微分値Kが正であることを規定する)をOFFに設定する(S502→S507→S508)。
なお、正フラグが既にOFFになっている場合は、このステップ508の処理をスルーして、ステップ509に移行する。
次いで、微分値Kの時系列的推移のグラフ(図19(b))について、負の範囲の面積値の積算と正の範囲の面積値の積算とをそれぞれ別個に行う(S509)。
ただし、初回の微分値Kだけでは、時系列的推移のグラフ(区間)を構成しない、すなわち正の範囲も負の範囲も面積を構成しない(面積=0)ので、積算処理(S509)をスルーして、次のステップ510に移行する。
そして、ステップ510では、微分値Kが正から負に切り替わったことをトリガーとして、それ以前の微分値Kの時系列的推移の正の範囲の面積の積算値が、所定の閾値を超えたか否かを判定する。
所定の閾値を超えている場合(S510)は、各正の範囲の面積を積算し、この正の積算値を記憶したうえで(S513)、微分値Kの時系列的推移の正の範囲の面積値をリセットする(S511)。なお、リセットするのは、積算する分の正の範囲の面積値であり、記憶された正の積算値はそのまま保持される。
また、所定の閾値を超えていない場合(S510)は、そのまま微分値Kの時系列的推移の正の範囲の面積値をリセットする(S511)。ここでも、リセットするのは、所定の閾値を超えていない正の範囲の面積値であり、既に記憶された正の積算値はそのまま保持される。
ここで、初回の微分値Kのみでは、前述したように時系列的推移のグラフを構成しないため、正の範囲の面積も負の範囲の面積も0であり、上述したステップ510,513,511の処理は、ステップ510→ステップ511の流れとなる。
なお、ステップ510において、微分値Kの時系列的推移の正の範囲の面積を、所定の閾値と比較するのは、微分値Kの時系列的推移の正の範囲の面積が、所定の閾値を超えるような大きな面積の場合は、ステップ513で積算の対象とするが、微分値Kの時系列的推移の正の範囲の面積が、所定の閾値を下回るような小さな面積の場合は、積算の対象とはせずに無視する(ステップ513を経由しない)ためである。
2回目の微分値Kも負値(−1)であり、かつ領域1901にあるので、正のフラグをオフに設定し(S502→S507→S508)、微分値Kの時系列的推移(図19(b))について、負の範囲の面積値の積算と正の範囲の面積値の積算とをそれぞれ別個に行う(S509)。
ここでも、正の範囲の面積値は0であるため、その積算された値も0のままである(S509)が、負の範囲の面積値は、初回の絶対値Kから2回目の絶対値Kまでの時系列推移のグラフ(区間)が構成されているため、この範囲の面積値(負値)を算出することができる(S509)。
そして、ここでも、微分値Kの時系列的推移の正の範囲の面積の積算値が、所定の閾値を超えていない(S510)ため、そのまま微分値Kの時系列的推移の正の範囲の面積値をリセットする(S511)。
3回目の微分値Kは正値(1)であり、かつ領域1901にあるため、正フラグをONにする(S501→S502→S503)。
次いで、微分値Kの時系列的推移のグラフについて、負の範囲の面積値の積算と正の範囲の面積値の積算とをそれぞれ別個に行う(S504)。
この処理によって、図19の負の範囲1902の面積が閉じられたため、微分値Kの負の範囲の面積の積算値が所定値を超えたか否かを判定する(S505)。
所定の閾値を超えている場合(S505)は、各負の範囲の面積を積算し、この負の積算値を記憶したうえで(S514)、微分値Kの時系列的推移の負の範囲の面積値をリセットする(S506)。なお、リセットするのは、積算する分の負の範囲の面積値であり、記憶された負の積算値はそのまま保持される。
また、所定の閾値を超えていない場合(S505)は、そのまま微分値Kの時系列的推移の負の範囲の面積値をリセットする(S506)。ここでも、リセットするのは、所定の閾値を超えていない負の範囲の面積値であり、既に記憶された負の積算値はそのまま保持される。
なお、ステップ505において、微分値Kの時系列的推移の負の範囲の面積を、所定の閾値と比較するのは、微分値Kの時系列的推移の負の範囲の面積が、所定の閾値を超えるような大きな面積の場合は、ステップ514で積算の対象とするが、微分値Kの時系列的推移の負の範囲の面積が、所定の閾値を下回るような小さな面積の場合は、積算の対象とはせずに無視する(ステップ514を経由しない)ためである。
4回目の微分値Kは0であり、かつ領域1901にあるため、正フラグがONか否かを判定する(S501→S502→S507→S512)。
正フラグは、3回目の微分値Kに起因した処理の際に、ステップ503でONに設定されているため、判定(S512)の結果、ステップ504に移行し、微分値Kの時系列的推移のグラフについて、負の範囲の面積値の積算と正の範囲の面積値の積算とをそれぞれ別個に行う(S504)。
ここで、4回目の微分値Kに起因した処理よりも以前に存在する負の範囲の面積は、3回目の微分値Kに起因した処理の際に、ステップ506でリセットされているため、ステップ505,514,506の処理は、実質的にはスルーされることになる。
以上のようにして、微分値Kの正負が入れ替わる毎に、その正の範囲の面積値が所定値を超えるものを、あるいはその負の範囲の面積値が所定値を超えるものを、対象として積算し、それぞれ記憶していく。
また、図19に示す微分値Kの時系列的推移が正の範囲1905,1906の間に、微分値Kの時系列的推移が負となる範囲が存在しない状態では、微分値Kの時系列的推移が正の範囲1905の面積について積算した(S504)の後に、ステップ507を経由した正フラグの判定(S512)によって、微分値Kの時系列的推移が正の範囲1905の面積についての積算(S504)が続けて行われるため、正の範囲の面積の積算値は、正の範囲1905と、これに続く正の範囲1906の各面積が加算されたものとして扱われる。
図19に示した覚醒度が低下していない状態であって、通常の瞬きだけが発生している状態では、開眼状態における開度の時系列的推移が比較的小さいため、ステップ513,514の処理を経由して、正負の面積の積算値が記憶されることは稀であり、偶発的に面積の積算値が記憶された場合であっても、図19に示す瞬きによる負の微分値K(MIN:−9)の範囲1910および正の微分値K(MAX:6)の範囲1911は、それぞれ微分値Kの絶対値|K|が、ステップ501の分岐判定で所定範囲Lを超えるため、図6のステップ606に移行して、微分値Kの時系列的推移の正の範囲の面積の積算値と微分値Kの時系列的推移の負の範囲の面積の積算値との合算値がリセットされる。
また、負の微分値Kの範囲1910に達する以前には、ステップ506の処理またはステップ511の処理の後、図6に示したステップ601の処理に移行し、覚醒度の判定期間を計測しているタイマーTBが所定時間(覚醒度の判定のために設定された期間)に達するまでは、図3に示したステップ301に戻って、時系列的に連なる次の画像が入力される。
タイマーTBが所定時間に達すると(S601)、タイマーTBをストップおよびリセットした上で(S602)、各別に積算された正の範囲の面積の積算値(S513)と負の範囲の面積の積算値(S514)とが合算され、この合算により得られた合算値が所定の閾値を上回ったか否かが判定される(S603)。
ここで、覚醒度が低下していない状態であって、通常の瞬きだけが発生している状態では、この合算値は所定の閾値を上回ることがないため、覚醒度が高い状態にあると判定される(S604)。
そして、覚醒度判定期間の終了毎に微分値の正負の面積の積算値をクリアする(S606)。
これに対して、覚醒度が低下してくると、眼G4の開度Pの時系列的推移が図20(a)に示すように、普通の瞬きに代わって長い瞬きの発生頻度が多くなるため、眼G4の開度Pの微分値Kがステップ501の処理(図5参照)におけるの指標Lを超えることがなく、しかも瞬き速度も遅くなるため、眼G4の開度Pの微分値Kの時系列的推移である図20(b)に示した、微分値Kが負の閉じられた範囲2001の面積(積算値)は、図19(b)に示した、通常の瞬きで発生する微分値Kが負の閉じられた範囲1904,1907等の面積(積算値)に比べて十分大きく、また、図20(b)に示した、微分値Kが正の閉じられた範囲2002の面積(積算値)は、図19(b)に示した、通常の瞬きで発生する微分値Kが正の閉じられた範囲1903,1905等の面積(積算値)に比べて十分大きいため、いずれも図5のステップ505の処理およびステップ510の処理における所定値を超える。
これにより、ステップ514,513の各処理で、大きな面積が閉じられた範囲として積算対象とされ、その当該面積は積算されて記憶される。
したがって、図6のステップ603の判定処理において、各別に積算された正の範囲の面積の積算値と負の範囲の面積の積算値との合算値は、所定の閾値を超え、覚醒度は低い状態にあると判定される(S605)。
そして、覚醒度判定期間の終了毎に微分値の正負の面積の積算値をクリアする(S606)。
なお、図3のフローチャートに示したステップ308の処理は、眼の追跡(検出)に失敗した場合(S306)に、画像の全範囲を検出対象としたうえでこの画像の全範囲から眼の位置検出を行うが、その全範囲からの眼の位置検出に要する時間は、追跡領域からの眼の位置検出に要する時間よりも当然長くなるため、画像の全範囲からの眼の位置検出に要する時間を、信頼度判定期間および覚醒度判定期間の時間から除外することを目的として、タイマーTAおよびタイマーTBを停止させるものである。
そして、その後、画像の全体範囲からの眼の検出処理により、眼の検出に成功し、改めて追跡領域が設定されたとき、タイマーTAおよびタイマーTBを再スタートさせる(図4のフローチャートにおいてステップ402)。
以上、説明したように、本実施形態に係る覚醒度推定装置100によれば、眼開度検出手段101が、時系列的に連なる複数の画像を対象として、各画像ごとに眼の開度Pを検出し、眼開度推移検出手段104が、各画像ごとに得られた眼の開度Pに基づいて、眼の開度Pの時系列的な推移(眼の開度の時系列的な変化)を検出し、覚醒度判定手段105が、眼の開度Pの時系列的な推移に基づいて覚醒度を判定する。
一方、信頼度判定手段106が、眼開度推移検出手段104により検出された眼の開度Pの時系列的推移に応じて、眼開度検出手段101による眼の開度Pの検出結果に対する信頼度を判定する。
この結果、本発明に係る覚醒度推定装置100は、覚醒度とともに、この覚醒度の使用可否の判断材料である、眼の開度Pの検出結果に対する信頼度を、併せて提示することができる。
したがって、例えば車両乗員用の居眠り防止装置202などの装置に、本実施形態の覚醒度推定装置100から出力された覚醒度を用いるか否かを、その覚醒度を導き出すための基データである眼の開度Pについて提示された信頼度に応じて、容易に判定することができる。
図21(a)は、いわゆる伏し目の状態(覚醒度は高いが、視線を下の方に向けた状態)における目の開度Pの時系列的推移、(b)は(a)の時間微分を示す図である。伏し目の状態は、覚醒度が高い場合であっても、覚醒度が低下して長い瞬きが発生したものと誤検出する虞がある。
通常、いわゆる伏し目は、眼を完全に閉じていないため、完全な閉眼状態と区別することが可能である。
しかし、完全な閉眼状態ではないが、覚醒度の低下している状態も発生し得るため、完全な閉眼状態だけを、覚醒度の低下した状態と判定したのでは、伏し目の誤検出を防止することはできるものの、完全な閉眼状態ではないが覚醒度の低下している状態を検出洩れする虞がある。
従来は、このトレードオフの関係を解決することができなかったが、本発明に係る覚醒度推定装置は、この問題を解決することができ、以下、本実施形態の覚醒度推定装置100が、この伏し目と覚醒度が実際に低下している状態とを確実に峻別する作用について説明する。
図21は、覚醒度は高く、かつ伏し目の発生しうる状態であって、(a)は眼の開度Pの時系列的推移、(b)は(a)の時間微分、をそれぞれ表す。
図21によれば、伏し目状態になると、再び真正面を見た瞬間に、瞬きをしていることが分かる。これは、焦点距離が大きく変化した(伏し目状態(距離が近い部分を見ている状態)から真正面を見た状態(距離が遠い部分を見ている状態)に変化した等)際に、眼を一旦閉じるという人間の眼の習性が現れたものであり、特別に意識をすることなく、高い確率で発生する。
そして、上述した実施形態の覚醒度推定装置100は、目の開度Pの微分値Kの時系列的推移により、この現象を、簡単かつ的確に捕らえることができる。
すなわち、図21(b)に示す眼の開度Pの微分値Kの時系列的推移の負の範囲2101,2102では、それらの微分値Kの絶対値|K|が大きいことにより、図5のステップ501の判定処理において絶対値|K|は所定範囲Lを上回り、覚醒度判定区間の終了毎に微分値の正負の面積の積算値がリセットされる(図6のステップ606)。
したがって、覚醒度が低い状態であるという誤った推定結果が出力されるのを回避することができる。すなわち、伏し目状態に起因した誤判定を排除することもできる。
また、本実施形態に係る覚醒度推定装置100は、眼検出部102が、眼を検出する対象である第(N+1)フレームの画像に対して、検出対象である第(N+1)フレームの画像と時系列的に連なる直前の第Nフレームの画像において検出された眼の位置の近傍範囲に対応する範囲を、検出対象範囲1103,1106(図11)として設定し、この設定された検出対象範囲について眼の検出を行う。
時系列的に連なる複数の画像においては、眼の位置は、相前後する画像間で大きく異なることはなく、任意の画像における眼の位置は、通常は、その時系列的に連なる直前の画像において検出された眼の位置の近傍範囲に存在する。
したがって、時系列的に連なる直前の画像(第(N+1)フレームに対する第Nフレームなど)において検出された眼の位置の近傍範囲に対応する範囲を、眼を検出する対象範囲(追跡領域)として設定することで、画像全体を対象範囲として眼の検出処理を行う場合に比べて、処理時間を大幅に短縮することができる。
一方、時系列的に連なる直前の第Nフレームの画像が存在しないか、もしくは、設定された検出対象範囲1103,1106等について行った眼の検出操作により眼を検出することができないことが稀に起こりうる。
そのような場合に、設定された範囲のみを眼の検出対象として処理を行っただけでは、画像のいずれかの部分に存在する眼を検出することができない事態が生じる。
しかるに、本実施形態に係る覚醒度推定装置100は、まず、時系列的に連なる直前の画像において検出された眼の位置の近傍範囲に対応する範囲について眼の検出を行い、その検出対象範囲について眼の検出ができないときは、画像の全範囲について眼の検出を行うことで、検出処理時間の短縮と検出の確率の向上とを両立することができる。
また、本実施形態に係る覚醒度検出装置100は、信頼度判定手段106が、眼開度推移検出手段104により検出された眼の開度Pの時系列的推移を時間微分し、得られた時系列的推移の時間微分値Kの分布に応じて、信頼度を判定する。
車室内の環境光の状態の変化を始めとして画像信号にノイズが生じているときは、眼の開度Pの時系列的推移が短時間のうちに急激に変動する。
そこで、信頼度判定手段106が、眼の開度Pの時系列的推移の時間微分Kの分布を求めて、その分布に応じて信頼度を判定すると、画像信号にノイズが生じているときと、ノイズが生じていないときとを、明確に峻別することができ、簡単な演算処理で、かつ的確に信頼度を判定することができる。
さらに、本実施形態に係る覚醒度検出装置100は、信頼度判定手段106が、時系列的推移の時間微分値Kの分布について、時間微分値Kの絶対値|K|が所定の閾値を上回る頻度を求め、得られた頻度に応じて、信頼度を判定するものである。
画像信号にノイズが生じているときは、眼の開度Pの時間微分値Kの絶対値|K|が大きくなるため、時間微分値Kの絶対値|K|が所定の閾値を上回ることを検出することにより、画像信号にノイズが生じているときを検出することができるが、画像信号にノイズが生じていないときにも、時間微分値Kの絶対値|K|が所定の閾値を上回ることはあり得る。
しかし、その時間微分値Kの絶対値|K|が所定の閾値を上回る回数は、画像信号にノイズが生じているときと、ノイズが生じていないときとで、明確に差異がある。
したがって、時間微分値Kの絶対値|K|が所定の閾値を上回る頻度に応じて信頼度を判定することにより、画像信号にノイズが生じているときと、ノイズが生じていないときとを、明確、かつ確実に信頼度を判定することができる。
なお、信頼度判定手段106は、信頼度を判定する基準となる頻度(閾値)を求めるための基準時間間隔、または該頻度に応じた信頼度の判定を行うための基準頻度の値に対して、検出対象となる画像に写る運転者10(被検体)の個体差に応じた補正を施すようにしてもよい。
ここで、個体差に応じた補正量は、実験等により予め求めておけばよい。
このように構成された覚醒度推定装置100によれば、被検体の個体差の影響を排除することができ、これにより、個体差に拘わらず信頼度を的確に判定することができる。
なお、眼の開度Pの微分値Kの時系列的推移に基づいた信頼度の判定と覚醒度の判定との組合わせ方は、一般的な誤警報を抑える傾向とする場合は、覚醒度が低いと判定されても信頼度が低い場合については、覚醒度が低いことに起因して、車両乗員用の居眠り防止装置(警報ブザー等)202が発報する警報の出力を制限したり、発報・報知の種類を変更する(音量や音程、音の種類やリズムを変更する)などを適用することもできる。
また、本実施形態に係る覚醒度検出装置100は、(1)信頼度判定手段106による信頼度の判定結果が高く、(2)眼開度推移検出手段104により検出された眼の開度Hの時系列的推移を時間微分して得られた時系列的推移の時間微分値Kの分布について、時間微分値Kが負となる範囲のうち、または時間微分値Kが正となる範囲のうち、各範囲の面積の絶対値が所定値を上回り、かつ、時間微分値Kの絶対値が所定の基準範囲内(|K|≦L)である積算面積範囲の面積を逐次積算し、(3)積算面積範囲の面積を逐次積算して得られた積算値が、所定の期間(覚醒度判定期間)内に、所定値を超えたとき、覚醒度判定手段105は、覚醒度が低下していると判定するところ、覚醒度が高い状態における通常の瞬きは、時間微分値が負となる範囲のうち、または時間微分値Kが正となる範囲のうち、範囲の面積の絶対値が所定値を下回ることが多いか、または所定値を上回ったとしても、時間微分値Kが所定の基準範囲を超えるため、簡単な演算処理で、的確に覚醒度の低下状態を判定することができる。