以下、本発明の好適な実施形態を図面に基づいて説明する。なお、各図において、同一又は同様の要素には同一の符号を付して説明を省略する。
図1は、本発明の第1実施形態に係る覚醒度判断装置の構成を示す機能ブロック図である。同図に示すように、覚醒度判断装置1は、被検出者の覚醒度が低下しているかを判断するものであって、眼画像取得手段CL1、眼球状態検出手段CL2、及び覚醒度判断手段CL3を備えている。
眼画像取得手段CL1は、被検出者の眼を含む眼画像を取得するものである。また、眼画像取得手段CL1は、入力した眼画像のデータを、眼球状態検出手段CL2に送信する構成とされている。
眼球状態検出手段CL2は、眼画像取得手段CL1により取得された眼画像から、眼球の状態を検出するものである。また、眼球状態検出手段CL2は、検出した眼球状態のデータを覚醒度判断手段CL3に送信する構成となっている。
覚醒度判断手段CL3は、眼球状態検出手段CL2によって検出された眼球の状態が白眼を剥いている状態であれば、被検出者の覚醒度が低下していると判断するものである。また、一般的に被検出者は、白眼を剥いている状態において眠気を感じている傾向にある。このため、覚醒度判断手段CL3は、白眼を剥いている状態を検出した場合に、被検出者の覚醒度が低下していると判断する。
また、覚醒度判断手段CL3は、例えば警報装置などに接続されており、覚醒度が低下したことを示す情報を警報装置などに送信する構成となっている。これにより、被検出者が眠気を感じている場合に、報知動作などを行うことができ、被検出者を覚醒させることができる。
図2は、図1に示した眼画像取得手段CL1の詳細を示すブロック図である。同図に示すように、眼画像取得手段CL1は、顔画像取得手段CL11と眼検出手段CL12とを有している。顔画像取得手段CL11は、被検出者の前方略正面に設置され、被検出者の顔全体を撮像するものである。また、眼検出手段CL12は、顔画像撮像手段CL11によって撮像された顔全体を含む画像から被検出者の眼を検出するものである。また、眼画像取得手段CL1は、眼検出手段CL12によって検出された眼を含み顔画像よりも小さくされた微小画像を、顔画像から抽出して眼画像とする構成となっている。
さらに、眼画像取得手段CL1は、眼追跡手段CL13を有している。眼追跡手段CL13は、運転者の眼を追跡するものである。具体的に眼追跡手段CL13は、眼検出手段CL12により眼の位置が検出されると、検出された眼の位置の座標値を記憶する。そして、眼追跡手段CL13は、新たに顔画像が得られると、記憶した座標位置を基準にして、新たな顔画像に対し、顔画像よりも小さい追跡領域を設定する。
その後、眼位置検出手段CL12は、画像が入力される毎に、追跡領域内において眼の位置を検出し、眼画像取得手段CL1は、追跡領域内から検出された眼の位置をもとに、眼画像を抽出して出力することとなる。
図3は、図1に示した眼球状態検出手段CL2の詳細を示すブロック図である。同図に示すように、眼球状態検出手段CL2は、眼領域検出手段CL21、眼領域基準値設定手段CL22、黒眼領域検出手段CL23、眼領域黒眼比率算出手段CL24、及び眼領域黒眼比率基準値設定手段CL25を有している。
眼領域検出手段CL21は、眼画像取得手段CL1により取得された眼画像から、眼全体の領域を示す眼領域を検出するものである。具体的に眼領域検出手段CL21は、眼の外径輪郭から眼領域を抽出する。眼領域基準値設定手段CL22は、眼領域検出手段CL21によって検出された眼領域の大きさの基準値を設定するものである。この眼領域基準値設定手段CL22は、眼領域の大きさを所定数サンプリングして統計的に有意な基準値を設定する。
黒眼領域検出手段CL23は、眼画像取得手段CL21によって得られた眼画像から、黒眼の領域を検出するものである。この黒眼領域検出手段CL23は、黒眼の外径輪郭を検出することで、黒眼の領域を検出する。眼領域黒眼比率算出手段CL24は、眼領域検出手段CL21によって検出された眼領域、及び黒眼領域検出手段CL23によって検出された黒眼の領域に基づいて、眼領域に占める黒眼の領域の比率(以下黒眼比率という)を算出するものである。すなわち、眼領域黒眼比率算出手段CL24は、両者の領域の大きさから、黒眼比率を求める。
眼領域黒眼比率基準値設定手段CL25は、眼領域黒眼比率算出手段CL24によって算出された黒眼比率の基準値を設定するものである。具体的に眼領域黒眼比率基準値設定手段CL25は、黒眼比率を所定数サンプリングして統計的に有意な基準値を設定する。
そして、眼球状態検出手段CL2は、これらの各部CL21〜CL25による処理によって、白眼を剥いている状態を検出する構成となっている。なお、本装置1は、自動車、鉄道車両、船舶の運転者やプラントのオペレータ等の覚醒度低下の判断に用いることができるが、以下の説明においては、自動車の運転者の覚醒度低下判断に用いられる覚醒度判断装置1を例に説明することとする。
図4は、本発明の実施形態に係る覚醒度判断装置1のハード構成図である。同図に示すように、TVカメラ2が自動車のインストルメント上に設けられている。TVカメラ2は、運転者を略正面から撮像できる位置に設置されており、少なくとも運転者の顔全体を撮影するようにされている。すなわち、このTVカメラ2が図2を参照して説明した顔画像取得手段CL11を構成している。
また、TVカメラ2の入力画像は、本実施形態では、例えば横方向(X)640画素、縦方向(Y)480画素からなる。TVカメラ2で撮像された入力画像は、インストルメント裏側など車体内部に設置されたマイクロコンピュータ(以下、マイコンという)3に画像データとして入力される。
マイコン3には、眼検出手段CL12、眼追跡手段CL13、眼球状態検出手段CL2、覚醒度判断手段CL3を構成するプログラムロジックがプログラミングされている。そして、マイコン3は、TVカメラ2からの顔全体を含む画像のデータを入力すると、プログラムを実行して、運転者の覚醒度の低下を判断することとなる。
また、TVカメラ2等は、図5に示す構成であってもよい。図5は、顔画像取得手段CL11の他の例を示すハード構成図である。この例の場合、顔画像取得手段CL11としてのTVカメラ2は、運転者の頭部に取り付けられている。また、TVカメラ2は、ミラー4を介して眼を撮像するように構成されている。このように、ミラー4を介して眼の周辺部のみを撮像することにより、図1に示した眼検出手段CL12及び眼追跡手段CL13を不要にし、構成及び処理の簡素化を図ることができる。
なお、TVカメラ2は、ミラー4の位置に設置され、直接に眼を撮像する構成とされてもよい。さらに、TVカメラ2は、インストルメント上に設置されされ、運転者に視点の位置を自動追尾しながら眼を撮像する構成とされてもよい。
次に、本実施形態に係る覚醒度判断装置1の詳細動作について説明する。図6は、第1実施形態に係る覚醒度判断装置1の動作の概略を示すメインフローチャートである。同図に示すように、まず、処理が開始されると、マイコン3は、初期値入力処理を実行する(ST10)。この初期値入力の処理では、サンプリング時間などの各種定数が読み込まれる。
その後、マイコン3は、処理フレームカウンタ「i」を「0」に初期化する(ST11)。初期化後、マイコン3は、終了判断処理を実行する(ST12)。この際、マイコン3は、例えばエンジンが起動しているか等に基づいて判断を行う。
そして、マイコン3は、「STOP」か否かを判断する(ST13)。例えばエンジンが起動されていないと判断した場合、マイコン3は、「STOP」であると判断し(ST13:YES)、処理は終了することとなる。
一方、エンジンが起動され走行しているなどにより、「STOP」でないと判断した場合(ST13:NO)、マイコン3は、眼画像の取得処理を実行する(ST14)。これにより、図2に示す構成例にあっては、TVカメラ2が運転者の顔全体を撮像し、マイコン3が顔全体の画像から眼画像を取得する。また、図3に示す構成の場合、TVカメラ2は直接に眼画像を取得することとなる。また、この処理は、マイコン3が眼画像取得手段CL1に相当するプログラムを実行することにより為される。
図7は、図6に示した眼画像取得処理(ST14)の詳細な動作を示すフローチャートである。本装置1が図2に示す構成を採用している場合、以下の処理により眼画像が取得される。
まず、同図に示すように、ステップST13にて「NO」と判断された場合、TVカメラ2は、運転者の顔全体を撮像することにより顔画像を取得する(ST30)。そして、マイコン3は、眼の候補位置の特定処理を実行する(ST31)。この処理により、画像全体から眼の候補位置が1又は複数特定される。具体的には、画像全体から左眼及び右眼である可能性を有する候補の位置が1又は複数特定される。
その後、マイコン3は、眼判定処理を実行する(ST32)。すなわち、ステップST31により特定された候補のうち1つを対象とし、その1つが眼であるか否かを判断する。この処理において、マイコン3は、候補が眼であると判断した場合、この眼を含み顔画像よりも小さくされた微小画像を、顔画像から抽出して眼画像とする。
その後、マイコン3は、眼判定処理(ST32)の結果に基づいて候補が眼であると判定されたか否かを判断する(ST33)。ここで、ステップST32において候補が眼であると判定されず、眼画像が取得できていない場合には、マイコン3は、候補が眼でなかったと判断する(ST33:NO)。そして、マイコン3は、ステップST31にて特定された候補のすべてについて判定したか否かを判断する(ST34)。すべてについて判定した場合(ST34:YES)、処理は図6のステップST15に移行する。
一方、すべてに対して判定していない場合(ST34:NO)、処理はステップST32に戻る。そして、マイコン3は、ステップST32にて、他の候補を選択し、再度、選択した候補が眼であるか否かを判断することとなる。
ところで、ステップST32において候補が眼であると判断され、眼画像が抽出された場合、マイコン3は候補が眼であったと判断する(ST33:YES)。そして、マイコン3はステップST32において抽出された眼画像を取得し、処理はステップST15に戻る。
以上のようにして、本装置1は眼画像を取得する。なお、眼である可能性を有する候補を特定する処理(ST31)及び眼判定処理(ST32)は、マイコン3が眼検出手段CL12に相当するプログラムを実行することによって、以下のようにして行われる。
図8は、図7に示した眼候補位置特定処理(ST31)の詳細を示すフローチャートである。同図において、まず、マイコン3は、撮像した画像のデータ全体を、全体画像として画像メモリに保存する(ST40)。
次に、マイコン3は、ステップST41の判断を行う。この判断については後述する。ステップST41において「NO」と判断された場合、マイコン3は、全体画像の縦方向(Y軸方向)の画素列のうち1ラインのみに沿って濃度値の相加平均演算を行う(ST42)。
この相加平均演算は、例えば縦方向に並ぶ所定数の画素について、濃度の平均値を求め、所定数の画素のうちの1画素の濃度値を平均値とする処理である。例えば、所定数が「5」である場合、画面上方から1〜5番目に位置する画素を選択して平均値を求め、この平均値を5番目の画素の濃度値とする。次に、画面上方から2〜6番目に位置する画素を選択して平均値を求め、この平均値を6番目の画素の濃度値とする。そして、これを順次繰り返し、1ラインすべての画素について濃度の平均値を求める。
このように相加平均演算することで、本装置1は、画像データ撮影時の濃度変化の小さなバラツキを無くすことができ、濃度値の大局的な変化を捉えることができる。
相加平均演算後、マイコン3は、縦方向に相加平均値の微分演算を行う(ST43)。そして、マイコン3は、微分値に基づいてポイント抽出を行う(ST44)。このポイント抽出とは、縦方向の画素列に沿って画素濃度の相加平均値の局所的な高まり毎に1個ずつの画素を定める処理であって、例えば相加平均値の微分値が負から正に変化する画素を定める処理である。
ポイントとなる画素を定めた後、マイコン3は、現在ポイント抽出していたラインを次ラインへ切り替える(ST45)。
そして、マイコン3は、縦方向の全ラインでのポイント抽出が終了したか否かを判断する(ST41)。全ラインでのポイント抽出が終了していないと判断した場合(ST41:NO)、前述のステップST42〜ST45の処理を経て、再度ステップST41に戻る。
一方、全ラインでのポイント抽出が終了したと判断した場合(ST41:YES)、隣り合う各ラインの抽出ポイントのY座標値を比較する。そして、Y座標値が所定値以内の場合、連続データとして、(i)連続データのグループ番号、(ii)連続開始ライン番号、(iii)連続データ数をメモリする。また、(iv)連続データを構成する各抽出ポイントの縦方向位置の平均値(その連続データの代表上下位置)、(v)連続開始ラインと終了ラインの横方向位置の平均値(その連続データの代表左右位置)をメモリする(ST46)。
なお、本実施形態では、眼を検出対象としているため、連続データは横方向比較的長く延びるものとなる。このため、マイコン3は、連続データ形成後、横方向に所定値以上続くことを条件に連続データを選択することができる。
その後、マイコン3は、各連続データについて代表座標値Cを定め、これを基準として存在領域EAを設定する(ST47)。この代表座標値Cとは、ステップST46の処理において、メモリされたX座標値の平均値及びY座標値の平均値により決定されるものである(上記iv,vに示す平均値)。
代表座標値Cを定めて存在領域EAを設定した後、処理は、図7のステップST32に移行する。以上が、眼候補位置特定処理(ST31)である。以上のようにして、求められた連続データが眼の候補となり、連続データの代表座標値Cが眼の候補点の位置となる。
図9は、図8に示したステップST46の処理にて形成される連続データ、並びにステップST37の処理にて定められる代表座標値C及び存在領域EAを示す説明図である。なお、眼候補位置特定処理(ST31)は、1又は複数の眼の候補を特定するものであるが、図9では複数の眼の候補が特定された場合を例に説明する。
同図に示すように、マイコン3は、複数の連続データGを形成している。これは、眼を検出対象としているため、眼と似た特徴量を示すもの(口、鼻、眉毛など)が検出されるためである。
連続データGは、前述したように、縦方向の画素列ごとに定められた抽出ポイントが画像横方向に隣接する場合に形成されるものである。そして、この連続データを形成する横方向両端画素のX座標値の平均値と、連続データを形成する各画素のY座標値の平均値により、代表座標値Cが決定される。さらに、存在領域EAは、この代表座標値Cを基準として設定される。
次に、存在領域EAの設定方法を説明する。図10は、図9に示した存在領域EAの大きさを示す説明図であり、図11及び図12は数人の眼の大きさを調べた横Xa、縦Yaの長さの統計データを示す説明図であり、図13は存在領域EAの画像上の位置を決定する方法を示す説明図である。
存在領域EAの設定は、まず、存在領域EAの大きさが決定され、その後、存在領域EAの画像上における位置が定められることでなされる。
存在領域EAの大きさは、ノイズ(顔の皺や明暗などを抽出してしまう)の低減や処理速度を落とさないためにも、可能な限り小さい領域が良い。本実施形態では、数人の眼の大きさを調べ、それに余裕分(例えば×1.5倍)を加味して、存在領域EAの大きさを決定している。すなわち、図11及び図12のように、眼の縦横寸法のデータを集め、その分布の例えば95%をカバーする寸法に余裕分を加味して決定している。
そして、存在領域EAの大きさは、図10にも示すように、上記95%をカバーする寸法、すなわち横寸法xa、縦寸法yaに余裕分(×1.5)を加味して決定している。なお、存在領域EAの大きさについては、画像処理により眼の幅や高さを推定し、縦横の大きさに余裕分を加える大きさとしてもよい。
このように存在領域EAの大きさが決定された後、図13に示すように、例えば眼の座標値(x1,y1)を基準に、基準点Pを決める。基準点Pは、眼の座標値(x1,y1)から距離x2,y2だけ離れた位置に定められるものである。
そして、マイコン3は、点Pを基準に存在領域EAの寸法x3,y3を描画する。これにより、存在領域EAの位置が決定される。その後、画像全体で見つかった連続データGすべてについて存在領域EAを設定する。
なお、上記のx2及びy2はx3,y3の1/2であって、予め存在領域EAが眼の中心にくるような長さとすることが望ましい。
以上の図8〜図13の処理により、図7の眼候補位置特定処理(ST31)がなされる。次に、図7に示した眼判定処理(ST32)を説明する。図14は、図7に示した眼判定処理(ST32)の詳細を説明するフローチャートである。
まず、マイコン3は、図8の処理にて求められた存在領域EAの画像データを微少画像IGとして画像メモリに保存する(ST50)。全体画像と画像メモリに保存される微小画像IGとの状態を図15に示す。図15は、微小画像を示す説明図である。同図に示すように、マイコン3は、全体画像から存在領域EA内の画像を抽出し、微小画像IGとしている。
再度、図14を参照して説明する。マイコン3は、全体画像の代表座標値Cを微少画像IGの代表座標値ICとする。そして、マイコン3は、微少画像IGの代表座標値ICを基準とした範囲ARを設定し、範囲ARの濃度情報をもとに二値化閾値を設定する(ST51)。
範囲ARでの二値化閾値の算出方法の一例を、図16を参照して説明する。図16は、範囲ARでの二値化閾値の算出方法の説明図である。まず、マイコン3は、範囲ARにおいて縦方向に数ラインの濃度値を読み出す。
そして、マイコン3は、各ラインにおいて濃度値の最も高い(明るい)濃度値と、最も低い(暗い)濃度値をメモリしていく。全ラインのメモリが終了したら、マイコン3は、各ラインの最も高い(明るい)濃度値の中で、一番低い濃度値(皮膚の部分)と、各ラインの最も低い(暗い)濃度値の中で、一番低い濃度値(眼の部分)とを求める。そして、その中央値を二値化閾値とする。
なお、上記した範囲ARは、好適に二値化閾値を決定するため、眼の黒い部分と眼周囲の皮膚の白い部分が入るように設定される。また、範囲ARは、画像の明るさのバラツキによる影響を少なくするために必要最小限の大きさにされる。
さらに、二値化閾値は、範囲AR内の眼の一番低い(暗い)濃度値と、皮膚部分の一番低い(暗い)濃度値の中央値とすることで、皮膚の部分から眼の部分を切り出すのに適した値になる。
ここで、二値化閾値を決定するのに皮膚部分における一番低い(暗い)濃度値を用いている理由は、次の通りである。例えば、範囲ARの一部に直射光が当たっている場合、皮膚部分は、眼球の黒色部分に比して、光を強く反射する傾向にある。このため、本装置1は、多くのノイズともいえる光を入力してしまうこととなる。
この場合、濃度値を読み出す範囲ARを極力小さくしても、画像がノイズ光による影響を受け、本装置1は正確な二値化閾値を決定できなくなってしまう。このため、本実施形態では、強く反射している可能性がある濃度値の高い部分を用いず、皮膚の部分の濃度値の一番低い(暗い)濃度値を用いることで、より適切な二値化閾値を決定できるようにしている。
再度、図14を参照して説明する。二値化閾値の決定後、マイコン3は、決定した二値化閾値を用いて微少画像IGを二値化処理し、二値画像bGとして画像メモリに保存する(ST52)。
次に、マイコン3は、全体画像の代表座標値Cを二値画像bGの位置bCとし、この位置bCを初期位置として設定する(ST53)。その後、マイコン3は、設定位置が黒画素か否かを判断する(ST54)。ここでは、まず、ステップST53において設定された初期位置が黒画素か否か判断される。
そして、設定位置が黒画素でないと判断した場合(ST54:NO)、マイコン3は、設定位置を上下左右に1画素ずつずらす(ST55)。その後、マイコン3は、ステップST55においてずらされた設定位置が黒画素か否かを判断する。そして、マイコン3は、設定位置が黒画素と判断されるまで、この処理を繰り返す。
一方、設定位置が黒画素であると判断した場合(ST54:YES)、マイコン3は、その黒画素の連結成分を候補オブジェクトとして設定する(ST56)。そして、マイコン3は、候補オブジェクトの幾何形状を算出する(ST57)。
算出後、マイコン3は、予め記憶している眼のテンプレートの幾何形状と候補オブジェクトの幾何形状とを比較する(ST58)。候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の一例を、図17を参照して説明する。
図17は、候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の説明図であり、(a)は候補オブジェクトが最適な状態で撮像された場合を示し、(b)は眼の右側が欠けた状態を示し、(c)は眼の左側が欠けた状態を示している。
眼の画像を二値化した形状は光環境が良く安定した画像であれば図17(a)に示すようなものになる。ところが、車室内に直射日光が一側から当たる等して光環境が悪化したときには、図17(b)及び(c)に示すように、一部が欠けた形状になることもある。
マイコン3は、上記のような候補オブジェクトを正確に判断するために、3つの条件により比較判断を行う。まず、条件(i)としては、横幅が眼の相場値の2/3以上あり、且つ上に凸の所定範囲の曲率を持っていることである。次に、条件(ii)としては、黒眼の左側の凹み形状があることである。また、条件(iii)としては、黒眼の右側の凹み形状があることである。
再度、図14を参照して説明する。幾何形状の比較後、マイコン3は、上記3つの条件に基づき、比較判断を行い、候補オブジェクトと眼テンプレートとの幾何形状が一致するか否かを判断する(ST59)。ここで、図17(b)及び(c)のように眼の形状の一部が欠けている場合を考慮し、マイコン3は、条件(i)及び(ii)を満たすもの、並びに条件(ii)及び(iii)を満たすものを一致すると判断する。
一致しないと判断した場合(ST59:NO)、マイコン3は、その候補オブジェクトが眼でないと判定し(ST60)、その後、処理は、図7のステップST33に移行する。
一方、一致すると判断した場合(ST59:YES)、マイコン3は、その候補オブジェクトを眼であると判定する(ST61)。そして、判定された候補オブジェクトの座標値(全体画像における代表座標値Cに相当する)を、画像上における眼の座標値としてメモリする(ST62)。
その後、マイコン3は、一致と判断された候補オブジェクトを含む微小画像IGを眼画像MGiとして、画像メモリに保存する(ST63)。そして、処理は、図7のステップST33に移行する。
なお、図14の処理では、二値化閾値を用いて二値化した候補オブジェクトを検出している。このため、本実施形態では、眼の部分と他の部分(背景や眼以外の顔部分)とを明確に区別し、眼を正確に捉えることができる。さらには、候補オブジェクトの幾何形状を用いた判定をより正確に行うことができ、眼の位置検出精度をより向上させることができる。
以上、図7〜図17を参照して説明したように、マイコン3(眼検出手段CL12)は、入力した画像全体から、眼画像を取得することとなる。そして、前述したように、図9のステップST33において、眼画像が取得されている場合、「YES」と判断されて、処理は図6のステップST15に移行することとなる。
再度、図6を参照する。ステップST15において、マイコン3は、眼画像を取得できたか否かを判断する(ST15)。ここで、眼画像が取得できなかったと判断した場合(ST15:NO)、処理はステップST21に移行する。一方、眼画像が取得できたと判断した場合(ST15:YES)、マイコン3は、眼球状態検出処理を実行する(ST16)。この処理において、マイコン3は、眼球状態検出手段CL2に相当するプログラムを実行して、眼球の状態を検出することとなる。
図18は、図6に示した眼球状態検出処理(ST16)の詳細な動作を示すフローチャートである。同図に示すように、マイコン3は、眼領域検出処理を実行する(ST70)。この処理において、マイコン3は、眼領域検出手段CL21に相当するプログラムを実行して、眼画像から眼全体の領域を示す眼領域を検出する。
図19は、眼画像の一例を示す説明図である。同図に示すような眼画像を取得した場合、マイコン3は、眼画像の縦画素列ごとに白方向から黒方向への変化点、黒方向から白方向への変化点を微分処理によって求める。すなわち、画像上側から下側に向かって各画素の濃度値を検出し、その濃度値が大きく変化する変化点を求めることとなる。
図20は、微分処理後によって求めた変化点と眼画像との説明図である。画像上側から下側に向かって各画素の濃度値を検出して変化点を求めた場合、同図に示すように、肌と上瞼との境界が白方向から黒方向への変化点として検出される。また、黒眼と白眼との境界が黒方向から白方向への変化点として検出され、白眼と下瞼との境界が白方向から黒方向への変化点として検出される。また、下瞼と肌との境界が黒方向から白方向への変化点として検出される。
そして、マイコン3は、各変化点を画像横方向につながるようにグルーピングする。グルーピング処理後の様子を図21に示す。図21は、グルーピング処理後の様子を示す説明図である。同図に示すように、グルーピングを行うことにより、エッジラインなるものが取得される。
ここで、エッジライン1が肌と上瞼との境界を示し、エッジライン2が黒眼と白眼との境界を示し、エッジライン3が白眼と下瞼との境界を示し、エッジライン4が下瞼と肌との境界を示す。
その後、マイコン3は、各エッジラインをペアにして、眼領域を検出する。図22は、眼領域の説明図である。同図に示すように、マイコン3は、エッジライン1とエッジライン4とをペアにし、眼の外径輪郭を形成し、これら輪郭内の領域を眼領域として検出する。このとき、マイコン3は抽出された眼の外形輪郭から眼の大きさ(面積、幅及び高さ)を算出する。なお、この処理にあたり、マイコン3は、エッジライン2とエッジライン3とをペアにし、白眼の外径輪郭を形成し、白眼について大きさ(面積、幅及び高さ)を算出しておいてもよい。
再度、図18を参照する。眼領域検出処理の後(ST70の後)、マイコン3は眼領域が検出できたか否かを判断する(ST71)。眼領域が検出できていないと判断した場合(ST71:NO)、マイコン3は眼球の状態を検出できなかったと判断し(ST72)、図18に示す処理は終了する。
一方、眼領域が検出できたと判断した場合(ST71:YES)、マイコン3は黒眼領域検出処理を実行する(ST73)。この際、マイコン3は黒眼領域検出手段CL23に相当するプログラムを実行して、眼画像から黒眼領域を検出する。
具体的に説明する。図23は、図18に示した黒眼領域検出処理(ST73)の詳細な動作を示す説明図である。黒眼領域の検出にあって、マイコン3は図23に示すエッジライン2から黒眼領域を検出する。すなわちマイコン3は黒眼から白眼への変化点に基づいて黒眼領域を検出することとなる。
ここで、エッジライン2は、エッジライン2は上瞼の下側ライン100,101と黒眼の輪郭102によって構成されている。また、エッジライン2は、上瞼の下側ライン100,101と黒目の輪郭102とが交差する点において数学的性質が不連続となる。すなわち、エッジライン2を左右端から内側に向かって進んでいくとこの不連続点までは単調増加で進んで行き、不連続点で変曲し、減少に転じる。マイコン3は、この変曲を検出することで不連続点を見つけ、図23のようにそれぞれがそのまま単調増加を続けて行った場合の補完線1を算出する。
図24は、黒眼領域の説明図である。補完線1を算出した後、マイコン3は不連続点から単調減少となる区間(黒眼の輪郭102)と補完線1とによって囲まれたエリアを黒眼領域として検出する。このとき、マイコン3は、抽出された黒眼領域から黒眼の大きさ(面積、幅、及び高さ)を算出する。
再度、図18を参照する。黒眼領域検出処理の後(ST73の後)、マイコン3は黒眼領域を検出できたか否かを判断する(ST74)。黒眼領域を検出できていないと判断した場合(ST74:NO)、マイコン3は眼領域の大きさの基準値が設定されているか否かを判断する(ST75)。
眼領域の大きさの基準値が設定されている場合(ST75:YES)、マイコン3は眼球の状態を検出できなかったと判断し(ST72)、図18に示す処理は終了する。一方、眼領域の大きさの基準値が設定されていない場合(ST75:NO)、マイコン3は眼領域基準設定処理を実行する(ST76)。この際、マイコン3は目領域基準設定手段CL22に相当するプログラムを実行して、眼領域の基準値を設定する。
図25は、図18に示した眼領域基準値設定処理(ST76)の詳細を示すフローチャートである。同図に示すように、マイコン3は、眼領域の基準値を設定するにあたり、まず、ステップST70において検出した眼領域の大きさの値をメモリする(ST90)。次いで、マイコン3はメモリされた眼領域の大きさの値について数が規定数に達したか否かを判断する(ST91)。規定数に達していない場合(ST91:NO)、図25に示す処理は終了し、図18のステップST72に戻る。
一方、規定数に達している場合(ST91:YES)、マイコン3は眼領域の大きさの基準値を設定する。ここで、運転者が運転中に前方を注視している場合、得られる眼領域の大きさはほとんど変化しない。すなわち、一般的に人間は眼を開いている時間の方が閉じている時間よりも圧倒的に長いため、検出された眼領域は、開眼時のものであることが多い。故に、得られる眼領域の大きさはほとんど変化しないといえる。
よって、統計的に有意な数のフレーム数(一般的に30フレーム以上)だけ眼領域の大きさをサンプリングし、その平均値、中央値などの統計量を算出すれば、眼領域の大きさの基準値とすることができる。
なお、運転者は運転中の大半の時間前方を注視し眼を開けているが、常に前方を注視していて眼を開けているという保証はない。このため、サンプリングされた眼領域の大きさについて分散や標準偏差といったばらつきに関する統計諸量を求め、ばらつきが少ないことを確認する。そして、ばらつきが少ないことが確認できた場合に、それらサンプリングされた眼領域の大きさから基準値を求めるようにすることが望ましい。これにより、精度が向上するためである。
再度、図18を参照する。以上の処理(ST76)の終了後、マイコン3は眼球の状態を検出できなかったと判断し(ST72)、図18に示す処理は終了する。
ところで、黒眼領域を検出できたと判断した場合(ST74:YES)、マイコン3は眼領域黒眼比率算出処理を実行する(ST77)。この際、マイコン3は眼領域黒眼比率算出手段CL24に相当するプログラムを実行し、黒眼領域の比率を算出する。具体的にマイコン3は黒眼領域の大きさを眼領域の大きさで除することで黒眼比率を求める。
次いで、マイコン3は眼領域黒眼比率基準値が設定されているか否かを判断する(ST78)。設定されている場合、処理はステップST81に移行する。一方、設定されていない場合(ST78:NO)、マイコン3は眼領域黒眼比率基準値設定処理を実行する(ST79)。この際、マイコン3は眼領域黒眼比率基準値設定手段CL25に相当するプログラムを実行して、黒眼比率の基準値を求める。
図26は、図18に示した眼領域黒眼比率基準値設定処理(ST79)の詳細を示すフローチャートである。同図に示すように、マイコン3は、黒眼比率の基準値を設定するにあたり、まず、ステップST77において算出した黒眼比率をメモリする(ST100)。次いで、マイコン3はメモリされた黒眼比率の値について数が規定数に達したか否かを判断する(ST101)。規定数に達していない場合(ST101:NO)、図26に示す処理は終了し、図18のステップST80に移行する。
一方、規定数に達している場合(ST101:YES)、マイコン3は黒眼比率の基準値を設定する。ここで、上記したように、運転者はほとんどが開眼状態である。このため、運転者が運転中に前方を注視している限り、得られる黒眼比率はほとんど変化しない。よって、統計的に有意な数のフレーム数(一般的に30フレーム以上)だけ黒眼比率をサンプリングし、その平均値、中央値などの統計量を算出すれば、黒眼比率の基準値とすることができる。なお、黒眼比率の基準値を求めるにあたり、分散や標準偏差を利用することは、眼領域の基準値を求めるときと同様望ましいといえる。
再度、図18を参照する。以上の処理の終了後、マイコン3は黒眼比率の基準値を設定できたか否かを判断する(ST80)。設定できていない場合(ST80:NO)、処理はステップST75に移行する。そして、上記したようにステップST75以降の処理が実行される。他方、設定できた場合(ST80:YES)、処理はステップST81に移行する。
ステップST81において、マイコン3は眼領域の大きさは基準値が設定されているか否かを判断する(ST81)。設定されている場合(ST81:YES)、処理はステップST84に移行する。一方、設定されていない場合(ST81:NO)、マイコン3は眼領域基準値設定処理を実行する(ST82)。この処理はステップST76の処理と同様である。
そして、眼領域基準値設定処理の終了後、マイコン3は眼領域の基準値を設定できたか否かを判断する(ST83)。設定できなかった場合(ST83:NO)、マイコン3は眼球の状態を検出できなかったと判断し(ST72)、図18に示す処理を終了させる。一方、眼領域の基準値を設定できた場合(ST83:YES)、処理はステップST84に移行する。
ステップST84において、マイコン3は眼領域の大きさが基準値相当であるか否かを判断する(ST84)。ここで、基準値相当でないと判断した場合(ST84:NO)、マイコン3は眼球状態を検出できなかったと判断し(ST72)、図18に示す処理を終了させる。すなわち、眼領域の大きさが基準値相当でないということは、例えば眼鏡のフレーム部や眉毛など、眼でないものを眼であると誤検出している可能性があるため、眼球状態を検出できなかったと判断することとしている。
他方、眼領域の大きさが基準値相当であると判断した場合(ST84:YES)、マイコン3は、黒眼比率が基準値よりも小さいか否かを判断する(ST85)。ここで、基準値よりも小さい場合(ST85:YES)、マイコン3は虹彩の位置が基準位置よりも上側に遷移していると判断する(ST86)。すなわち、黒眼の比率が基準値よりも小さい場合、眼に占める黒眼の割合が少なくなっている。つまり、黒眼部分の一部が上瞼に隠れて黒眼の領域が小さくなったと判断できる。このため、マイコン3は白眼を剥いている状態を検出したと判断している。その後、マイコン3は眼球状態を検出できたと判断し(ST87)、処理は図6のステップST17に移行する。
一方、黒眼比率が基準値よりも小さくない場合(ST85:NO)、マイコン3は
白眼を剥いている状態ではないと判断する(ST88)。その後、マイコン3は眼球状態を検出できたと判断し(ST87)、処理は図6のステップST17に移行する。
再度、図6を参照する。以上のようにして、眼球状態検出処理(ST16)が終了した後、マイコン3は眼球状態を検出できたか否かを判断する(ST17)。眼球状態を検出できなかった場合(ST17:NO)、処理はステップST21に移行する。一方、眼球状態を検出できた場合(ST17:YES)、マイコン3は白眼を剥いている状態を検出しているか否かを判断する(ST18)。検出している場合(ST18:YES)、マイコン3は覚醒度が低下していると判断する(ST19)。このとき、マイコン3は覚醒度判断手段CL3に相当するプログラムを実行して、覚醒度の低下を判断する。その後、処理はステップST21に移行する。
一般的に運転者は、白眼を剥いた状態において眠気を感じている傾向にある。このため、白眼を剥いている状態を検出した場合に、被検出者の覚醒度が低下していると判断できる。
他方、白眼を剥いている状態を検出していない場合(ST18:NO)、マイコン3は覚醒度が正常であると判断する(ST20)。このとき、マイコン3は覚醒度判断手段CL3に相当するプログラムを実行して、覚醒度が正常であることを判断する。その後、処理はステップST21に移行する。
ステップST21において、マイコン3は、処理フレームカウンタ「i」をインクリメントする(ST21)。その後、処理は、ステップST12に戻り、例えばエンジンが起動されていないと判断され、「STOP」であると判断されるまで、上記の処理が繰り返されることとなる。
このようにして、本実施形態に係る覚醒度判断装置1によれば、眼球の状態から、白眼を剥いている状態を検出した場合に、被検出者の覚醒度が低下していると判断している。一般的に被検出者は、白眼を剥いた状態において眠気を感じている傾向にある。このため、白眼を剥いている状態を検出した場合に、被検出者の覚醒度が低下していると判断できる。
また、白眼を剥いている状態を検出しているかを判断するため、被検出者の眼を一定時間監視する必要がない。すなわち、白眼を剥いている状態は、例えば1画像のみから判断することができ、被検出者の眼を一定時間監視する必要がない。
従って、被検出者の覚醒度が低下していると判断されるまでに一定時間の監視を要することなく、覚醒度判断について時間の短縮化を図ることができる。
なお、白眼を剥いた状態は、眼自体は開いているが被検出者が眠気を感じている状態といえる。このため、従来装置のように、眼の縦幅から開閉状態を検出して覚醒度の低下を判断すると、眼自体が開いていることから、覚醒度の低下を判断できない可能性がある。ところが、本実施形態では、眼領域に占める黒眼の領域の比率である黒眼比率から白眼を剥いている状態を検出するため、上記の如くに覚醒度の低下を判断できなくなることがない。従って覚醒度の判断精度の向上を図ることができる。
また、検出した眼領域の大きさが基準値相当であって、算出した眼領域に占める黒眼の領域の比率が基準値より小さくなったことを検出すると、白眼を剥いている状態と検出している。
すなわち、まず、検出した眼領域の大きさが基準値相当であるかを判断することで、例えば眼鏡のフレーム部や眉毛など、眼でないものを眼であると誤検出していないかを確認することとなる。このため、眼を正確に検出して覚醒度判断の精度向上につなげることができる。
また、算出した眼領域に占める黒眼の領域の比率が基準値より小さくなったことを判断している。ここで、被検出者が白眼を剥いていると、黒眼部分の一部が上瞼に隠れて黒眼の領域が小さくなる傾向にある。よって、黒眼の領域の比率が基準値より小さくなったことを判断することで、被検出者が白眼を剥いたことを判断できる。
特に、被検出者が車両の運転者である場合、安全確認など顔は頻繁に動くことがあっても眼領域に占める黒眼の領域の比率に基づいて判断しているため、被検出者の顔の動きによって影響を受け難く、正確な判断を行うことができる。
以上より、覚醒度の判断を正確に行うことができる。
また、被検出者の顔全体を撮像した顔画像から被検出者の眼を検出して、顔画像よりも小さくされた微小画像を眼画像として取得している。このため、微小な眼画像を対象に後の処理がされることとなり、顔全体の画像に対して処理をしていく場合に比して、処理速度を向上させることができる。
次に、本発明の第2実施形態を説明する。第2実施形態に係る覚醒度判断装置1aは、第1実施形態のものと同様であるが、構成及び処理内容が第1実施形態のものと一部異なっている。
以下、第1実施形態との相違点について説明する。図27は、第2実施形態に係る眼球状態検出手段CL2の詳細を示すブロック図である。同図に示すように、第2実施形態に係る眼球状態検出手段CL2は、第1実施形態の黒眼領域検出手段CL23、眼領域黒眼比率算出手段CL24及び眼領域黒眼比率基準値設定手段CL25に代えて、白眼領域検出手段CL26、眼領域白眼比率算出手段CL27及び眼領域白眼比率基準値設定手段CL28を備えている。
白眼領域検出手段CL26は、眼画像取得手段CL21によって得られた眼画像から、白眼の領域を検出するものである。この白眼領域検出手段CL26は、白眼の外径輪郭を検出することで、白眼の領域を抽出する。眼領域白眼比率算出手段CL27は、眼領域検出手段CL21によって検出された眼領域、及び白眼領域検出手段CL26によって検出された白眼の領域に基づいて、眼領域に占める白眼の領域の比率(以下白眼比率という)を算出するものである。すなわち、眼領域白眼比率算出手段CL27は、両者の領域の大きさから、白眼比率を求める。
眼領域白眼比率基準値設定手段CL28は、眼領域白眼比率算出手段CL27によって算出された白眼比率の基準値を設定するものである。具体的に眼領域白眼比率基準値設定手段CL28は、白眼比率を所定数サンプリングして統計的に有意な基準値を設定する。
図28は、第2実施形態に係る眼球状態検出処理(ST16)の詳細な動作を示すフローチャートである。なお、図28に示すステップST110〜112,ST115,ST116,ST121〜ST124に示す処理は、図18に示すステップST70〜ST72,ST75,ST76,ST81〜ST84に示す処理と同様であるため、説明を省略する。
眼領域が検出できたと判断された後(ST111の後)、マイコン3は白眼領域検出処理を実行する(ST113)。この際、マイコン3は白眼領域検出手段CL26に相当するプログラムを実行して、眼画像から白眼領域を検出する。具体的にマイコン3は、図21に示すエッジライン2とエッジライン3とによって囲まれる領域を白眼領域として検出する。
次いで、マイコン3は、白眼領域が検出できたか否かを判断する(ST114)。白眼領域が検出できなかった場合(ST114:NO)、処理はステップST115に移行する。一方、白眼領域が検出できた場合(ST114:YES)、マイコン3は眼領域白眼比率算出処理を実行する(ST117)。この際、マイコン3は眼領域白比率算出手段CL27に相当するプログラムを実行し、白眼領域の比率を算出する。具体的にマイコン3は白眼領域の大きさを眼領域の大きさで除することで白眼比率を求める。
次いで、マイコン3は眼領域白眼比率基準値が設定されているか否かを判断する(ST118)。設定されている場合(ST118:YES)、処理はステップST121に移行する。一方、設定されていない場合(ST118:NO)、マイコン3は眼領域白眼比率基準値設定処理を実行する(ST119)。この際、マイコン3は眼領域白眼比率基準値設定手段CL28に相当するプログラムを実行して、白眼比率の基準値を求める。
図29は、図28に示した眼領域白眼比率基準値設定処理(ST119)の詳細を示すフローチャートである。同図に示すように、マイコン3は、白眼比率の基準値を設定するにあたり、まず、ステップST117において算出した白眼比率をメモリする(ST130)。次いで、マイコン3はメモリされた白眼比率の値について数が規定数に達したか否かを判断する(ST131)。規定数に達していない場合(ST131:NO)、図29に示す処理は終了し、図28のステップST120に移行する。
一方、規定数に達している場合(ST131:YES)、マイコン3は白眼比率の基準値を設定する(ST132)。ここでは黒眼比率の基準値を設定したときと同様にして白眼比率の基準値を設定する。すなわち、マイコン3は、統計的に有意な数のフレーム数(一般的に30フレーム以上)だけ白眼比率をサンプリングし、その平均値、中央値などの統計量を算出して、白眼比率の基準値とする。なお、白眼比率の基準値を求めるにあたり、分散や標準偏差を利用することは、黒眼比率の基準値を求めるときと同様望ましい。
再度、図28を参照する。以上の処理の終了後、マイコン3は白眼比率の基準値を設定できたか否かを判断する(ST120)。設定できていない場合(ST120:NO)、処理はステップST115に移行する。そして、上記したようにステップST115以降の処理が実行される。他方、設定できた場合(ST120:YES)、処理はステップST121に移行する。
そして、ステップST121〜ST124において図18のステップST81〜ST84と同様の処理が行われ、処理はステップST125に至る。
ステップST125において、マイコン3は、白眼比率が基準値よりも大きいか否かを判断する(ST125)。ここで、基準値よりも大きい場合(ST85:YES)、マイコン3は白眼を剥いている状態を検出していると判断する(ST126)。すなわち、白眼の比率が基準値よりも大きい場合、眼に占める白眼の割合が高くなっている。つまり、黒眼部分の一部が上瞼に隠れて白眼の割合が高くなったと判断できる。このため、マイコン3は白眼を剥いている状態を検出したと判断する。その後、マイコン3は眼球状態を検出できたと判断し(ST127)、処理は図6のステップST17に移行する。
一方、白眼比率が基準値よりも大きくない場合(ST125:NO)、マイコン3は白眼を剥いている状態を検出していないと判断する(ST128)。そして、マイコン3は眼球状態を検出できたと判断し(ST127)、処理は図6のステップST17に移行する。
その後、マイコン3は、第1実施形態と同様に、白眼を剥いている状態を検出しているか否かを判断し(ST18)、白眼を剥いている状態を検出している場合に(ST18:YES)、覚醒度が低下していると判断する(ST19)。他方、マイコン3は、白眼を剥いている状態を検出していない場合(ST18:NO)、覚醒度が正常であると判断する(ST20)。
このようにして、第2実施形態に係る覚醒度判断装置1aによれば、第1実施形態と同様に、覚醒度判断について時間の短縮化を図ることができる。また、覚醒度の判断精度の向上を図ることができる。また、処理速度を向上させることができる。
さらに、第2実施形態によれば、検出した眼領域の大きさが基準値相当であって、算出した眼領域に占める白眼の領域の比率が基準値より大きくなったことを検出すると、白眼を剥いている状態と検出している。
すなわち、第1実施形態と同様に、眼でないものを眼であると誤検出していないかを確認することとなり、眼を正確に検出して覚醒度判断の精度向上につなげることができる。
また、黒眼と白眼との相違はあるものの、同様に、白眼の領域の比率が基準値より大きくなったことを判断することで、被検出者が白眼を剥いたことを判断できる。さらに、眼領域に占める白眼の領域の比率に基づいて判断しているため、被検出者の顔の動きによって影響を受け難く、正確な判断を行うことができる。
次に、本発明の第3実施形態を説明する。第3実施形態に係る覚醒度判断装置1bは、第1実施形態のものと同様であるが、構成及び処理内容が第1実施形態のものと一部異なっている。
以下、第1実施形態との相違点について説明する。図30は、第3実施形態に係る眼球状態検出手段CL2の詳細を示すブロック図である。同図に示すように、第3実施形態に係る眼球状態検出手段CL2は、第1実施形態の各手段CL23〜CL25に代えて、上瞼検出手段CL29、頂点位置検出手段CL210、黒眼白眼境界位置検出手段CL211、白眼下瞼境界位置検出手段CL212、距離算出手段CL213、及び距離基準値設定手段CL214を備えている。
上瞼検出手段CL29は、眼画像取得手段CL1により取得された眼画像から、上瞼を検出するものである。具体的に上瞼検出手段CL29は、図21に示すようなエッジライン1を検出することで、上瞼を検出する。頂点位置検出手段CL210は、上側検出手段CL29によって検出された上瞼の頂点位置を検出するものである。この頂点検出手段CL210は、例えば図21に示すようなエッジライン1を2次曲線にて近似して、2次曲線の頂点を検出する構成となっている。
黒眼白眼境界位置検出手段CL211は、頂点位置検出手段CL210によって検出された上瞼の頂点位置の顔下方向について、黒眼と白眼との境界位置を検出するものである。具体的に黒眼白眼境界位置検出手段CL211は、頂点位置検出手段CL210により検出された頂点位置から、画像縦方向(顔下方向)に向かって白方向から黒方向へ変化する変化点を微分処理によって求める。そして、黒眼白眼境界位置検出手段CL211は、この白方向から黒方向への変化点を、黒眼と白眼との境界位置として検出することとなる。
白眼下瞼境界位置検出手段CL212は、頂点位置検出手段CL210によって検出された上瞼の頂点位置の顔下方向について、白眼と下瞼との境界位置を検出するものである。具体的に白眼下瞼境界位置検出手段CL212は、黒眼白眼境界位置検出手段CL211と同様に、微分処理によって黒方向から白方向へ変化する変化点を検出することで、白眼と下瞼との境界位置を検出する。
距離算出手段CL213は、黒眼白眼境界位置検出手段CL211によって検出された黒眼と白眼との境界位置、及び、白眼下瞼境界位置検出手段CL212によって検出された白眼と下瞼との境界位置の距離を算出するものである。すなわち、距離算出手段CL213は、上記した白方向から黒方向への変化点と、黒方向から白方向への変化点との差を、境界位置間の距離として求める構成となっている。
距離基準値設定手段CL214は、距離算出手段CL213によって算出された黒眼と白眼との境界位置、及び、白眼と下瞼との境界位置の距離について基準値を設定するものである。この距離基準値設定手段CL214は、境界位置間の距離の大きさを所定数サンプリングして統計的に有意な基準値を設定するようになっている。
また、上記の構成となっているため、覚醒度判断手段CL3は、境界位置間の距離に基づいて被検出者の覚醒度を求めることとなる。すなわち、上記境界位置間の距離が大きくなると言うことは、黒眼と下瞼との間の距離が長いことを示し、被検出者が白眼を剥いているといえる。このため、界位置間の距離が大きい場合、覚醒度判断手段CL3は、覚醒度の低下を判断できることとなる。
図31は、第3実施形態に係る眼球状態検出処理(ST16)の詳細な動作を示すフローチャートである。まず、マイコン3は上瞼検出処理を実行する(ST140)。この処理においてマイコン3は、上瞼検出手段CL29に相当するプログラムを実行して上瞼を検出する。
図32は、上瞼検出処理(ST140)の詳細を示す説明図である。同図に示すように、マイコン3は、眼画像に対し画像縦方向に沿って微分処理をする。そして、マイコン3は、図21に示したエッジライン1と同様のエッジライン5を検出し、このエッジライン5を上瞼として検出することとなる。
再度、図31を参照する。上瞼検出処理の終了後(ST140の後)、マイコン3は、上瞼を検出できたか否かを判断する(ST141)。ここで、上瞼を検出できなかったと判断した場合(ST141:NO)、マイコン3は眼球の状態を検出できなかったと判断し(ST142)、図31に示す処理は終了する。
一方、上瞼を検出できたと判断した場合(ST142:YES)、マイコン3は、上瞼頂点位置検出処理を実行する(ST143)。この処理において、マイコン3は、頂点検出手段CL210に相当するプログラムを実行して、上瞼の頂点位置を検出することとなる。
上瞼頂点位置検出処理において、マイコン3は、まずエッジライン5の各座標(x,y)を、所定の関数f(x,y)=cで表される二次以上の多項式に近似する。この多項式は、近似された曲線の頂点部分が原点となるように変換された座標系において、偶数次項のみで構成される式となる。これは、頂点部分が原点となる座標系において奇数次項が含まれる式では、曲線形状の左右対称性や単頂点性が損なわれてしまうためである。
なお、ここでは、二次曲線のうち計算が容易に行える放物線y=ax2+bx+cに近似を行うとして説明するが、マイコン3は、円、楕円、双曲線といった円錐曲線や、ax2+2hxy+by2+2gx+2fy+c=0で表される一般の二次曲線や、二次以上の曲線であっても、同様の手順を踏むことによって曲線近似を行うことができることはいうまでもない。
図33は、マイコン3が曲線にて近似するときの詳細を示すフローチャートである。同図に示すように、マイコン3は、座標群を最小二乗法により近似する。すなわち、まず、マイコン3はエッジライン5を構成する各点の座標値(x,y)の総和値を求める(ST150)。このとき、マイコン3は、座標値x、座標値y及び座標値xを二乗した値について、総和を求める。具体的にマイコン3は以下の式により、これらの総和値を求める。
その後、マイコン3は、各総和値の平均値を求める(ST72)。具体的にマイコン3は以下の式により、これらの平均値を求める。
そして、マイコン3は、求めた平均値から、以下の式により、分散値及び共分散値を求める(ST73)。
その後、マイコン3は、求めた分散値及び共分散値から、以下の式により、回帰係数a,b及び定数項cを求める(ST74)。
これにより、マイコン3は、エッジラインを放物線y=ax2+bx+cに近似する。なお、図21の説明において、マイコン3は、放物線y=ax2+bx+cにエッジラインを近似したが、円、楕円、双曲線といった円錐曲線やax2+2hxy+by2+2Gx+2fy+c=0で表される一般の二次曲線に近似するようにしてもよい。
図34は、二次の近似曲線と上瞼の頂点を示す説明図である。同図に示すように、マイコン3は、放物線y=ax2+bx+cの頂点位置、すなわち座標(b/2a,cb2/4a2)を上瞼の頂点位置として検出することとなる。
再度、図31を参照する。上瞼頂点位置検出処理の終了後(ST143の後)、マイコン3は上瞼の頂点位置を検出できたか否かを判断する(ST144)。ここで、上瞼の頂点位置を検出できなかった場合(ST144:NO)、処理はステップST142に移行する。
一方、上瞼の頂点位置を検出できた場合(ST144:YES)、マイコン3は、黒眼白眼境界位置検出処理を実行する(ST145)。この処理において、マイコン3は黒眼白眼境界位置検出手段CL211に相当するプログラムを実行して、黒眼と白眼との境界位置を検出することとなる。すなわち、図34に示すように、マイコン3は、頂点位置から画像下方向に向かって黒方向から白方向へ変化する変化点を求めて、黒眼と白眼との境界位置(境界1)を検出する。
その後、マイコン3は、白眼下瞼境界位置検出処理を実行する(ST146)。この処理において、マイコン3は白眼下瞼境界位置検出手段CL212に相当するプログラムを実行して、白眼と下瞼との境界位置を検出することとなる。すなわち、図34に示すように、マイコン3は、頂点位置から画像下方向に向かって白方向から黒方向へ変化する変化点を求めて、白眼と下瞼との境界位置(境界2)を検出する。
次いで、マイコン3は距離算出処理を実行する(ST147)。このとき、マイコン3は、距離算出手段CL213に相当するプログラムを実行して、境界位置間の距離を算出する。図35は、図31に示した距離算出処理(ST147)の説明図である。同図に示すように、マイコン3は、先の処理(ST145,ST146)において得られた境界1と境界2との間の距離Lを算出することとなる。
再度、図31を参照する。境界位置間の距離Lを求めた後、マイコン3は、境界位置間の距離の基準値が設定されているか否かを判断する(ST148)。ここで、境界位置間の距離の基準値が設定されている場合(ST148:YES)、処理はステップST151に移行する。一方、境界位置間の距離の基準値が設定されていない場合(ST148:NO)、マイコン3は距離基準値設定処理を実行する(ST149)。この際、マイコン3は距離基準値設定手段CL214に相当するプログラムを実行して、境界位置間の距離の基準値を求める。
図36は、図31に示した距離基準値設定処理(ST149)の詳細を示すフローチャートである。同図に示すように、マイコン3は、境界位置間の距離について基準値を設定するにあたり、まず、ステップST147において算出した境界位置間の距離Lをメモリする(ST160)。次いで、マイコン3はメモリされた距離Lの値について数が規定数に達したか否かを判断する(ST161)。規定数に達していない場合(ST161:NO)、図36に示す処理は終了し、図31のステップST150に移行する。
一方、規定数に達している場合(ST161:YES)、マイコン3は境界位置間の距離の基準値を設定する(ST162)。この処理において、マイコン3は、統計的に有意な数のフレーム数(一般的に30フレーム以上)だけ境界位置間の距離Lをサンプリングし、その平均値、中央値などの統計量を算出して、距離Lの基準値とする。なお、距離Lの基準値を求めるにあたり、分散や標準偏差を利用することは、黒眼比率の基準値を求めるときと同様望ましい。
再度、図31を参照する。以上の処理の終了後、マイコン3は距離Lの基準値を設定できたか否かを判断する(ST150)。設定できていない場合(ST150:NO)、処理はステップST142に移行する。他方、設定できた場合(ST150:YES)、処理はステップST151に移行する。
ステップST151において、マイコン3は、境界位置間の距離Lが距離の基準値よりも大きいか否かを判断する(ST151)。ここで、基準値よりも大きい場合(ST151:YES)、マイコン3は白眼を剥いている状態にあると判断する(ST152)。すなわち、距離Lは黒眼と下瞼との長さを表しており、距離Lが基準値よりも大きくなるということは、眼に占める白眼の割合が高くなっているといえる。つまり、白眼を剥いている状態にあると判断できる。
その後、マイコン3は眼球状態を検出できたと判断し(ST153)、処理は図6のステップST17に移行する。一方、境界位置間の距離Lが距離の基準値よりも大きくない場合(ST151:NO)、マイコン3は白眼を剥いていないと判断する(ST154)。その後、マイコン3は眼球状態を検出できたと判断し(ST153)、処理は図6のステップST17に移行する。
その後、マイコン3は、第1実施形態と同様に、白眼を剥いている状態を検出したか否かを判断し(ST18)、白眼を剥いている状態を検出した場合に(ST18:YES)、覚醒度が低下していると判断する(ST19)。他方、マイコン3は、白眼を剥いている状態を検出していない場合(ST18:NO)、覚醒度が正常であると判断する(ST20)。
このようにして、第3実施形態に係る覚醒度判断装置1bによれば、第1実施形態と同様に、覚醒度判断について時間の短縮化を図ることができる。また、覚醒度の判断精度の向上を図ることができる。また、処理速度を向上させることができる。
さらに、第3実施形態によれば、黒眼と白眼との境界位置及び白眼と下瞼の境界位置の距離Lが基準値より大きくなったことを検出すると、白眼を剥いている状態を検出している。ここで、被検出者が白眼を剥いている状態となると、黒眼と白眼との境界位置及び白眼と下瞼の境界位置の距離Lが大きくなる傾向にある。よって、当該距離Lが基準値より大きくなったことを判断することで、被検出者が白眼を剥いたことを判断できる。
また、黒眼と白眼との境界位置及び白眼と下瞼の境界位置の距離に基づいて判断しているため、直接的に黒眼の画像中における位置を検出して、黒眼が上側に遷移したか否かを判断する場合と比較して、正確な判断を行うことができる。すなわち、被検出者の顔の動きによって影響を受け難く、正確な判断を行うことができる。
次に、本発明の第4実施形態を説明する。第4実施形態に係る覚醒度判断装置1cは、第1実施形態のものと同様であるが、構成及び処理内容が第1実施形態のものと一部異なっている。
以下、第1実施形態との相違点について説明する。図37は、第4実施形態に係る覚醒度判断装置1cの構成を示す機能ブロック図である。同図に示すように、第4実施形態に係る覚醒度判断装置1cは、第1実施形態の構成に加えて、さらに開閉眼判定手段CL4を備えている。
開閉眼判定手段CL4は、眼画像取得手段CL1により取得された眼画像から、眼の開閉状態を判断するものである。具体的に開閉眼判定手段CL4は、眼画像から眼を特定し、その縦幅を求める。そして、開閉眼判定手段CL4は、予め又はサンプリング結果によって定めた開閉眼閾値と眼の縦幅とを比較し、眼の縦幅の方が大きければ、開眼と判定する。一方、開閉眼判定手段CL4は、眼の縦幅の方が大きくない場合、閉眼と判定する。なお、開閉眼の判定にあたっては、眼の縦幅を求める場合に限らず、上瞼の曲率を求めるようにしてもよい。
また、覚醒度判断装置1cが開閉眼判定手段CL4を備えるため、覚醒度判断手段CL3は、開閉眼の判定結果を踏まえて覚醒度を判断する。すなわち、覚醒度判断手段CL3は、開閉眼判定手段CL4により被検出者の眼が閉眼状態から開眼状態に移行した後の、
黒眼比率の時間変化に基づいて、被検出者の覚醒度が低下していると判断する。
図38は、運転者の覚醒度が低下している場合に、閉眼状態から開眼状態へ移行するときの眼の様子を示す説明図であり、図39は、運転者が覚醒している場合に、閉眼状態から開眼状態へ移行するときの眼の様子を示す説明図である。
まず、図38に示すように、運転者の覚醒度が低下している場合に閉眼状態から開眼状態に移行するとき、運転者の黒眼部分は特徴的な動きを示す。すなわち、眼が開いた直後では黒眼が上瞼の裏に隠れており、その後徐々に黒眼が下がってくる。このため、黒眼比率は、眼の開き始めにおいて閉眼時と同様に極端に小さく、その後時間を経るにつれて徐々に大きくなる。
これに対し、覚醒時においては、図39に示すように、眼を開いた直後で黒眼が表れてくる。従って、黒眼比率は、覚醒度低下時に比べると比較的早くに大きな値を示すこととなる。
この特性を利用して、覚醒度判断装置1cは、閉眼状態から開眼状態に移行した後の、黒眼比率の時間変化に基づいて、覚醒度の低下を判断することとなる。
図40は、第4実施形態に係る覚醒度判断装置1cの動作の概略を示すメインフローチャートである。なお、図40に示すステップST173〜ST177に示す処理は、図6に示すステップST11〜ST15に示す処理と同様であるため、説明を省略する。
まず、処理が開始されると、マイコン3は、初期値入力処理を実行する(ST170)。この初期値入力の処理では、サンプリング時間などの各種定数が読み込まれる。そして、マイコン3は、変数Flagを「OFF」とする(ST171)。この変数Flagは、眼が閉眼状態から開眼状態へ移行したことを示すものである。初期状態においては、眼が閉眼状態から開眼状態へ移行したわけでないため、変数Flagは「OFF」とされる。
その後、マイコン3は、時系列メモリを初期化する(ST172)。この時系列メモリは、時系列的に検出された黒眼比率を記憶しておくためのものである。すなわち、時系列メモリは黒眼比率の推移を記憶するものである。
そして、ステップST174〜ST177までの処理が実行される。次いで、マイコン3は、眼球状態検出処理を実行する(ST178)。図41は、図40に示した眼球状態検出処理(ST178)の詳細な動作を示すフローチャートである。なお、図41に示すステップST200〜ST214に示す処理は、図18に示すステップST70〜ST84に示す処理と同様であるため、説明を省略する。
同図に示すように、眼領域と黒眼領域とを検出して黒眼比率を算出し(ST200,ST203,ST207)、その後、眼領域の大きさが基準値相当であると判断した場合(ST214:YES)、マイコン3は、算出した黒眼比率を時系列メモリに記憶する(ST215)。そして、マイコン3は眼球状態を検出できたと判断し(ST216)、処理は図40のステップST179に戻る。
再度、図41を参照する。ステップST179において、マイコン3は眼球状態を検出できたか否かを判断する(ST179)。眼球状態を検出できなった場合(ST179:NO)、処理はステップST191に移行し、マイコン3は時系列メモリをクリアすることとなる(ST191)。一方、眼球状態を検出できた場合(ST179:YES)、マイコン3は、開閉眼判定処理を実行する(ST180)。このとき、マイコン3は、開閉眼判定手段CL4に相当するプログラムを実行して、眼の開閉眼状態を判定する。
図42は、開閉眼判定処理(ST180)の詳細を示す説明図である。同図に示すように、マイコン3は、眼画像から眼を特定し、その縦幅を求める。そして、マイコン3は、予め又はサンプリング結果によって定めた開閉眼閾値と眼の縦幅とを比較し、眼の縦幅の方が大きければ、開眼と判定する。一方、マイコン3は、眼の縦幅の方が大きくない場合、閉眼と判定する。このため、図42に示す例において、運転者は、まず開眼状態であり、その後閉眼状態に移行し、再度開眼状態に復帰したこととなる。
その後、マイコン3は現在の運転者が開眼状態であるか否かを判断する(ST181)。ここで、開眼状態でない場合(ST181:NO)、すなわち閉眼の場合、処理はステップST191に移行する。一方、開眼状態である場合(ST181:YES)、マイコン3は前フレームで運転者が閉眼状態であったか否かを判断する(ST182)。
ここで、前フレームで運転者が閉眼状態であった場合(ST182:YES)、運転者が閉眼状態から開眼状態に移行したことを示す。このため、マイコン3は、変数Flagを「ON」とする(ST183)。そして、処理はステップST185に移行する。
一方、前フレームで運転者が閉眼状態でなかった場合(ST182:NO)、運転者の開眼状態が継続していることとなる。その後、マイコン3は、変数Flagが「ON」であるか否かを判断する(ST184)。ここで、変数Flagが「ON」でない場合(ST184:NO)、開眼状態が連続しているといえる。このため、処理はステップST191に移行し、時系列メモリがクリアされる(ST191)。
他方、変数Flagが「ON」である場合(ST184:YES)、運転者が閉眼状態から開眼状態へ移行し、その後開眼状態が継続しているといえる。このため、処理はステップST185に移行する。
ステップS185において、マイコン3は、メモリ数が規定数に達したか否かを判断する(ST185)。ここで、規定数に達していない場合(ST185:NO)、処理はステップST192に移行する。このとき、時系列メモリはクリアされることなく、ステップST192に移行するため、時系列メモリに黒眼比率が蓄積されていくこととなる。
一方、規定数に達している場合(ST185:YES)、運転者が閉眼状態から開眼状態へ移行し、その後開眼状態が継続して規定回数分するまでの間の黒眼比率がメモリされたといえる。
次いで、マイコン3は、変数Flagを「OFF」とする(ST186)。そして、マイコン3は、時系列メモリ上のデータ推移パターンを解析する(ST187)。
図43は、閉眼状態から開眼状態へ移行する場合における黒眼比率の推移を示すグラフである。同図に示すように、覚醒度低下時において運転者が閉眼状態から開眼状態へ移行しても、黒眼比率は、しばらく小さい状態が継続した後に、徐々に大きくなっていく。
これに対し、覚醒時にあっては、運転者が閉眼状態から開眼状態へ移行する段階から黒眼比率が大きくなっている。そして、開眼状態へ移行後には、速やかに黒眼比率が閉眼前の値に戻るといえる。
よって、マイコン3は、この特性を利用して覚醒度を判断することとなる。すなわち、図40のステップST188において、マイコン3は、黒眼比率の時間変化パターンが覚醒度低下時のパターンか否かを判断する(ST188)。
ここで、黒眼比率の時間変化パターンが覚醒度低下時のパターンと判断した場合(ST188:YES)、マイコン3は覚醒度が低下していると判断する(ST189)。他方、黒眼比率の時間変化パターンが覚醒度低下時のパターンと判断できない場合(ST188:NO)、マイコン3は覚醒度が正常であると判断する(ST190)。
その後、マイコン3は、時系列メモリをクリアし(ST191)、処理フレームカウンタ「i」をインクリメントする(ST192)。その後、処理は、ステップST174に戻り、例えばエンジンが起動されていないと判断され、「STOP」であると判断されるまで、上記の処理が繰り返されることとなる。
このようにして、第4実施形態に係る覚醒度判断装置1cによれば、第1実施形態と同様に、覚醒度判断について時間の短縮化を図ることができる。また、覚醒度の判断精度の向上を図ることができる。また、処理速度を向上させることができる。また、覚醒度の判断を正確に行うことができる。
なお、第4実施形態では、開眼後の黒眼比率の時間変化パターンが、黒眼比率が閉眼前の高い黒眼比率に戻るまでの時間が長い場合に覚醒度低下時のパターンであると判断している。すなわち、或る程度の時間分の眼画像を要することになり、覚醒度を判断するまでに所定時間要することとなるが、それであっても、従来装置より覚醒度判断について時間が短縮される。
具体的に覚醒度低下時には、開眼後の黒眼比率が低下し、その後時間をかけて上昇することは、図38及び図39に示すように、16〜19画像によって判断できる。より現実の観点からいえば、眼が閉じている状態から開く間の時間だけ検出すれば、虹彩の位置が基準位置よりも上側に遷移し、その後虹彩の位置が基準位置へ推移していることを判断できる。従って、少なくとも眼が閉じている状態から開く間の時間だけ確保できれば、覚醒度の低下を判断できることとなる。
一方、従来装置では、眼が開閉を繰り返し検出した結果、一定時間内で閉眼状態がどのようになっていたかを判断するため、眼が閉じている状態から開く間の微小な時間とは異なり、明らかに長い時間を要する。
以上より、第4実施形態では、覚醒度判断について時間を短縮することができるといえる。
次に、本発明の第5実施形態を説明する。第5実施形態に係る覚醒度判断装置1dは、第4実施形態のものと同様であるが、構成及び処理内容が第4実施形態のものと一部異なっている。
以下、第4実施形態との相違点について説明する。まず、第5実施形態に係る覚醒度判断装置1dは、第4実施形態の図37に示す構成と同様の構成である。ただし、眼球状態検出手段CL2は第2実施形態の図27に示すものと同様の構成である。
すなわち、第4実施形態では、運転者の眼が閉眼状態から開眼状態に移行した後に、黒眼比率が低い値から、閉眼前の高い値に戻るまで時間がかかることを検出した場合に、覚醒度が低下していると判断していた。そして、この判断に際して黒眼比率を求めていた。これに対し、第5実施形態では、第4実施形態に用いた黒眼比率に代えて、白眼比率を求めることとなる。
図44は、第5実施形態に係る眼球状態検出処理(ST178)の詳細な動作を示すフローチャートである。なお、図44に示すステップST220〜ST234に示す処理は、図28に示すステップST110〜ST124に示す処理と同様であるため、説明を省略する。
同図に示すように、眼領域と白眼領域とを検出して白眼比率を算出し(ST220,ST223,ST227)、その後、眼領域の大きさが基準値相当であると判断した場合(ST234:YES)、マイコン3は、算出した白眼比率を時系列メモリに記憶する(ST235)。そして、マイコン3は眼球状態を検出できたと判断し(ST236)、処理は図40のステップST179に戻る。
その後、第4実施形態と同様に、時系列メモリ上のデータ推移パターンを解析し(ST187)、白眼比率の時間変化パターンが覚醒度低下時のパターンであるか否かを判断する(ST188)。
図45は、閉眼状態から開眼状態へ移行する場合における白眼比率の推移を示すグラフである。同図に示すように、覚醒度低下時にあっては、運転者が閉眼状態から開眼状態へ移行しても、しばらくは白眼比率が高い状態を維持し続ける。そして、或る程度白眼比率が高い値を継続した後に、白眼比率は徐々に小さくなっていく。この場合、マイコン3は、閉眼状態から開眼状態へ移行した後の、白眼比率の時間変化パターンが覚醒度低下時のパターンであると判断する。
これに対し、覚醒時では、白眼比率が高い値となることなく、中程度の値となり、その中程度の値を継続することとなる。この場合、マイコン3は、閉眼状態から開眼状態へ移行した後の、白眼比率の時間変化パターンが覚醒時のパターンであると判断することとなる。
そして、白眼比率の時間変化パターンが覚醒度低下時のパターンであると判断できる場合(ST188:YES)、マイコン3は覚醒度が低下していると判断する(ST189)。他方、白眼比率の時間変化パターンが覚醒度低下時のパターンであると判断できない場合(ST188:NO)、マイコン3は覚醒度が正常であると判断する(ST190)。
このようにして、第5実施形態に係る覚醒度判断装置1dによれば、第4実施形態と同様に、覚醒度判断について時間の短縮化を図ることができる。また、覚醒度の判断精度の向上を図ることができる。また、処理速度を向上させることができる。また、覚醒度の判断を正確に行うことができる。
また、第5実施形態では、第4実施形態と同様に、従来装置より覚醒度判断について時間が短縮されていることは言うまでもない。すなわち、第5実施形態では、眼が閉じている状態から開く間の時間だけ確保できれば、覚醒度の低下を判断できるため、覚醒度判断について時間を短縮することができるといえる。
次に、本発明の第6実施形態を説明する。第6実施形態に係る覚醒度判断装置1eは、第4実施形態のものと同様であるが、構成及び処理内容が第4実施形態のものと一部異なっている。
以下、第4実施形態との相違点について説明する。まず、第6実施形態に係る覚醒度判断装置1eは、第4実施形態の図37に示す構成と同様の構成である。ただし、眼球状態検出手段CL2は第3実施形態の図30に示すものと同様の構成である。
すなわち、第4実施形態では、運転者の眼が閉眼状態から開眼状態に移行した後に、黒眼比率が低い値から、閉眼前の高い値に戻るまで時間がかかることを検出した場合に、覚醒度が低下していると判断していた。そして、この判断に際して黒眼比率を求めていた。これに対し、第6実施形態では、第4実施形態の黒眼比率の時間変化に代えて、黒眼と白眼との境界位置と、白眼と下瞼との境界位置との距離の時間変化に基づいて、覚醒度が低下していると判断する。そして、第6実施形態では、この判断に際して黒眼と白眼との境界位置、及び、白眼と下瞼との境界位置の距離Lを求めることとなる。
図46は、第6実施形態に係る眼球状態検出処理(ST178)の詳細な動作を示すフローチャートである。なお、図46に示すステップST240〜ST250に示す処理は、図18に示すステップST140〜ST150に示す処理と同様であるため、説明を省略する。
同図に示すように、上瞼及びその頂点位置を検出し(ST240,ST243)、さらに、黒眼と白眼との境界位置及び白眼と下瞼との境界位置とを検出して境界位置間の距離Lを算出すると(ST245,ST246,ST247)、マイコン3は、距離Lを時系列メモリに記憶する(ST251)。そして、マイコン3は眼球状態を検出できたと判断し(ST252)、処理は図40のステップST179に戻る。
その後、第4実施形態と同様に、時系列メモリ上のデータ推移パターンを解析し(ST187)、黒眼と白眼との境界位置、及び、白眼と下瞼との境界位置の距離Lの時間変化パターンが、覚醒度低下時のパターンであるか否かを判断する(ST188)。
図47は、閉眼状態から開眼状態へ移行する場合における境界位置間の距離Lの推移を示すグラフである。同図に示すように、覚醒度低下時にあっては、運転者が閉眼状態から開眼状態へ移行する段階で、境界位置間の距離Lが増加し、その後減少していく。この場合、マイコン3は、距離Lの時間変化パターンが、覚醒度低下時のパターンであると判断する。
これに対し、覚醒時では、運転者が閉眼状態から開眼状態へ移行する段階で、境界位置間の距離Lが増加しないこととなる。この場合、マイコン3は、距離Lの時間変化パターンが覚醒時のパターンであると判断することとなる。
そして、距離Lの時間変化パターンが、覚醒度低下時のパターンであると判断できる場合(ST188:YES)、マイコン3は覚醒度が低下していると判断する(ST189)。他方、距離Lの時間変化パターンが、覚醒度低下時のパターンであると判断できない場合(ST188:NO)、マイコン3は覚醒度が正常であると判断する(ST190)。
このようにして、第6実施形態に係る覚醒度判断装置1eによれば、第4実施形態と同様に、覚醒度判断について時間の短縮化を図ることができる。また、覚醒度の判断精度の向上を図ることができる。また、処理速度を向上させることができる。また、覚醒度の判断を正確に行うことができる。
また、第6実施形態では、第4実施形態と同様に、従来装置より覚醒度判断について時間が短縮されていることは言うまでもない。すなわち、第6実施形態では、眼が閉じている状態から開く間の時間だけ確保できれば、覚醒度の低下を判断できるため、覚醒度判断について時間を短縮することができるといえる。
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に限られるものではなく、各実施形態を組み合わせてもよい。また、本発明の趣旨を逸脱しない範囲で、変更を加えてもよい。