以下、本発明の好適な実施形態を図面に基づいて説明する。
図1は、本発明の実施形態に係る上瞼検出装置の構成を示す機能ブロック図である。同図に示すように、上瞼検出装置1は、被検出者の眼を含む眼画像から、被検出者の上瞼(すなわち上瞼と眼との境界)を検出するものであって、眼画像取得手段CL1と、エッジライン抽出手段CL2と、曲線近似手段CL3とを備えている。また、上瞼検出装置1は、曲率検出手段CL4、相関検出手段CL5、及び判定手段CL6を具備している。
眼画像取得手段CL1は、被検出者の眼を含む眼画像を取得するものである。また、眼画像取得手段CL1は、入力した眼画像のデータを、エッジライン検出手段CL2に送信する構成とされている。
エッジライン検出手段CL2は、眼画像取得手段CL1により取得された眼画像から、眼画像内の各画素の濃度に基づいて、画像縦方向又は横方向の各エッジ点を抽出するものである。ここで、エッジ点とは、眼画像の画像縦方向又は横方向について、濃度が白方向から黒方向へ変化しつつ連続する画素群のうち、最も変化量が大きい画素である。すなわち、エッジライン抽出手段CL2は、眼画像縦方向(画像上端から下端)にエッジ点を抽出した場合、肌から眉毛に差し掛かる境界や、肌から上瞼に差し掛かる境界などをエッジ点として抽出することとなる。このように、エッジライン検出手段CL2は、画像縦方向又は横方向について濃度の変化量を読み取り、画像の暗くなる部分の境界をエッジ点として抽出することとなる。なお、以下の説明において、エッジライン抽出手段CL2は、画像縦方向について濃度の変化量を読み取り、エッジ点を抽出することとする。
また、エッジライン抽出手段CL2は、抽出した各エッジ点を線状にグルーピングすることによってエッジラインを抽出するものである。すなわち、エッジライン抽出手段CL2は、肌から眉毛に差し掛かる境界や、肌から上瞼に差し掛かる境界などのエッジ点をグルーピングすることによって、肌から眉毛に差し掛かる境界線や、肌から上瞼に差し掛かる境界線を抽出するものである。
さらに、エッジライン抽出手段CL2は、抽出したエッジラインの情報を曲線近似手段CL3、曲率検出手段CL4及び相関検出手段CL5に送信する構成となっている。
曲線近似手段CL3は、エッジライン抽出手段CL2により抽出されたエッジラインを二次以上の曲線に近似するものである。ここで、曲線近似手段CL3は、エッジラインを二次以上の曲線に近似する際、エッジライン抽出手段CL2により抽出された各エッジ点の座標情報を用いる。そして、曲線近似手段CL3は、エッジライン抽出手段CL2により抽出された各エッジ点の座標から最小二乗法によって、二次の線形多項式に近似する。また、曲線近似手段CL3は、近似した曲線近似線の情報を曲率検出手段CL4及び相関検出手段CL5に送信する構成となっている。
曲率検出手段CL4は、エッジライン抽出手段CL2により抽出されたエッジライン、及び曲線近似手段CL3により近似された曲線近似線の少なくとも一方について、曲率を検出するものである。また、曲率検出手段CL4は、検出した曲率の情報を判定手段CL6に送信する構成となっている。
相関検出手段CL5は、エッジライン抽出手段CL2により抽出されたエッジラインと、曲線近似手段CL3により近似された曲線近似線との相関値を検出するものである。また、相関検出手段CL5は、検出した相関値の情報を判定手段CL6に送信する構成となっている。
判定手段CL6は、曲率検出手段CL4により検出された曲率が顔の上下方向対して上に凸であり、且つ相関検出手段CL5によって検出された相関値が所定値以上であると判断されたエッジラインを上瞼のエッジラインであると判定するものである。
ここで、曲率が顔の上下方向対して上に凸であって、且つ相関値が所定値以上であると判断されたエッジラインを上瞼のエッジラインであると判定する理由は、以下によるものである。すなわち、上瞼は開眼状態において上に凸の弧状となることから、検出した曲率は、エッジラインが上瞼に相当するものである場合、同様に上に凸を示すものとなる。このため、曲率が顔の上下方向対して上に凸でなければ、そのエッジラインは、眼鏡フレームや眼周辺の影などである可能性が高い。一方、曲率が顔の上下方向対して上に凸である場合には、そのエッジラインは、眼鏡フレームや眼周辺の影などである可能性が低く、上瞼である可能性が高い。従って、判定手段CL6は、曲率が顔の上下方向対して上に凸であることを確認することにより、上瞼のエッジラインを特定していることとなる。
また、通常、上瞼は開眼状態において弧状となる。このため、曲線近似手段CL3がエッジラインを二次以上に近似する場合、そのエッジラインが上瞼のエッジラインであるときには、曲線近似しやすく、且つ得られた曲線近似線はエッジラインと大きく異なる可能性が少ない。一方、そのエッジラインが眼周辺の影などから抽出されたものであるときには、曲線近似しにくく、得られた曲線近似線はエッジラインと大きく異なる可能性がある。
このため、エッジラインと曲線近似線との相関値が所定値以上である場合には、例えばエッジラインが眼周辺の影などである可能性が低く、そのエッジラインは、上瞼のエッジラインであるといえる。従って、判定手段CL6は、相関検出手段CL5によって検出された相関値が所定値以上であることを確認することによって、上瞼のエッジラインを特定していることとなる。
以上より、上記上瞼検出装置1は、上瞼以外のものを上瞼であると誤検出してしまうことを防止し、上瞼の検出精度の向上を図っている。そして、本技術を開閉眼検知などに役立てることができる。
ここで、眼画像取得手段CL1は、詳細には以下の構成となっている。すなわち、図1に示すように、眼画像取得手段CL1は、顔画像取得手段CL11と眼検出手段CL12とを有している。顔画像取得手段CL11は、被検出者の前方略正面に設置され、被検出者の顔全体を撮像するものである。また、眼検出手段CL12は、顔画像撮像手段CL11によって撮像された顔全体を含む画像から被検出者の眼を検出するものである。そして、眼画像取得手段CL1は、眼検出手段CL12によって眼検出手段によって検出された眼を含み顔画像よりも小さくされた微小画像を、顔画像から抽出して眼画像とする構成となっている。
なお、本装置1は、自動車、鉄道車両、船舶の運転者やプラントのオペレータ等の開閉眼検知に用いることができるが、以下の説明においては、自動車の運転者の開閉眼検知に用いることができる上瞼検出装置1を例に説明することとする。
図2は、本発明の実施形態に係る上瞼検出装置1のハード構成図である。同図に示すように、TVカメラ2が自動車のインストルメント上に設けられている。TVカメラ2は、運転者を略正面から撮像できる位置に設置されており、少なくとも運転者の顔全体を撮影するようにされている。すなわち、このTVカメラ2が図1を参照して説明した顔画像取得手段CL11を構成している。
また、TVカメラ2の入力画像は、本実施形態では、例えば横方向(X)640画素、縦方向(Y)480画素からなる。TVカメラ2で撮像された入力画像は、インストルメント裏側など車体内部に設置されたマイクロコンピュータ(以下、マイコンという)3に画像データとして入力される。
マイコン3には、眼検出手段CL12、エッジライン抽出手段CL2、曲線近似手段CL3、曲率検出手段CL4、相関検出手段CL5、及び判定手段CL6を構成するプログラムロジックがプログラミングされている。そして、マイコン3は、TVカメラ2からの顔全体を含む画像のデータに基づいて、上記した処理を実行し、運転者の上瞼を検出していくこととなる。
また、TVカメラ2等は、図3に示す構成であってもよい。図3は、顔画像取得手段CL11の他の例を示すハード構成図である。この例の場合、顔画像取得手段CL11としてのTVカメラ2は、運転者の頭部に取り付けられている。また、TVカメラ2は、ミラー4を介して眼を撮像するように構成されている。このように、直接に眼を撮像することにより、図1に示した眼検出手段CL12を不要にし、構成及び処理の簡素化を図ることができる。
なお、TVカメラ2は、ミラー4の位置に設置され、直接に眼を撮像する構成とされてもよい。さらに、TVカメラ2は、インストルメント上に設置されされ、運転者に視点の位置を自動追尾しながら眼を撮像する構成とされてもよい。
次に、本実施形態に係る上瞼検出装置1の動作について説明する。図4は、第1実施形態に係る上瞼検出装置1の動作の概略を示すメインフローチャートである。同図に示すように、まず、処理が開始されると、マイコン3は、初期値入力処理を実行する(ST10)。この初期値入力の処理では、サンプリング時間などの各種定数が読み込まれる。
その後、マイコン3は、処理フレームカウンタ「i」を「0」に初期化する(ST11)。初期化後、マイコン3は、終了判断処理を実行する(ST12)。この際、マイコン3は、例えばエンジンが起動しているか等に基づいて判断を行う。
そして、マイコン3は、「STOP」か否かを判断する(ST13)。例えばエンジンが起動されていないと判断した場合、マイコン3は、「STOP」であると判断し(ST13:YES)、処理は終了することとなる。
一方、エンジンが起動され走行しているなどにより、「STOP」でないと判断した場合(ST13:NO)、マイコン3は、眼画像の取得及び確認(ST14,ST15)、エッジラインの抽出及び確認(ST16,ST17)、曲率を検出と曲率が上に凸であるかの判断(ST18,ST20)、及び相関値の算出及び相関値が所定値以上かの判断(ST19,ST21)を行って、エッジラインが上瞼のエッジラインであるか否かを判断する。
詳細に説明する。まず、マイコン3は、眼画像の取得処理を実行する(ST14)。これにより、図2に示す構成例にあっては、TVカメラ2が運転者の顔全体を撮像し、マイコン3が顔全体の画像から眼画像を取得する。また、図3に示す構成の場合、TVカメラ2は直接に眼画像を取得することとなる。
図5は、図4に示した眼画像取得処理(ST14)の詳細な動作を示すフローチャートである。本装置1が図2に示す構成を採用している場合、以下の処理により眼画像が取得される。
まず、同図に示すように、ステップST13にて「NO」と判断された場合、TVカメラ2は、運転者の顔全体を撮像することにより顔画像を取得する(ST30)。そして、マイコン3は、眼の候補位置の特定処理を実行する(ST31)。この処理により、画像全体から眼の候補位置が1又は複数特定される。具体的には、画像全体から左眼及び右眼である可能性を有する候補の位置が1又は複数特定される。また、この処理は、マイコン3が眼画像取得手段CL1に相当するプログラムを実行することにより為される。
その後、マイコン3は、眼判定処理を実行する(ST32)。すなわち、ステップST31により特定された候補のうち1つを対象とし、その1つが眼であるか否かを判断する。この処理において、マイコン3は、候補が眼であると判断した場合、この眼を含み顔画像よりも小さくされた微小画像を、顔画像から抽出して眼画像とする。
その後、マイコン3は、眼判定処理(ST32)の結果に基づいて候補が眼であると判定されたか否かを判断する(ST33)。ここで、ステップST32において候補が眼であると判定されず、眼画像が抽出されていない場合には、マイコン3は、候補が眼でなかったと判断する(ST33:NO)。そして、マイコン3は、ステップST31にて特定された候補のすべてについて判定したか否かを判断する(ST34)。すべてについて判定した場合(ST34:YES)、処理は図4のステップST15に移行する。
一方、すべてに対して判定していない場合(ST34:NO)、処理はステップST32に戻る。そして、マイコン3は、ステップST32にて、他の候補を選択し、再度、選択した候補が眼であるか否かを判断することとなる。
ところで、ステップST32において候補が眼であると判断され、眼画像が抽出されている場合には、マイコン3は、候補が眼であったと判断する(ST33:YES)。そして、マイコン3はステップST32において抽出された眼画像を取得し、処理はステップST12に戻る。
以上のようにして、本装置1は眼画像を取得する。なお、眼である可能性を有する候補を特定する処理(ST31)及び眼判定処理(ST32)は、マイコン3が眼検出手段CL12に相当するプログラムを実行することによって、以下のようにして行われる。
図6は、図5に示した眼候補位置特定処理(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)連続開始ラインと終了ラインの横方向位置の平均値(その連続データの代表左右位置)をメモリする(ST36)。
なお、本実施形態では、眼を検出対象としているため、連続データは横方向比較的長く延びるものとなる。このため、マイコン3は、連続データ形成後、横方向に所定値以上続くことを条件に連続データを選択することができる。
その後、マイコン3は、各連続データについて代表座標値Cを定め、これを基準として存在領域EAを設定する(ST47)。この代表座標値Cとは、ステップST46の処理において、メモリされたX座標値の平均値及びY座標値の平均値により決定されるものである(上記iv,vに示す平均値)。
代表座標値Cを定めて存在領域EAを設定した後、処理は、図5のステップST32に移行する。以上が、眼候補位置特定処理(ST31)である。以上のようにして、求められた連続データが眼の候補となり、連続データの代表座標値Cが眼の候補点の位置となる。
図7は、図6に示したステップST46の処理にて形成される連続データ、並びにステップST37の処理にて定められる代表座標値C及び存在領域EAを示す説明図である。なお、眼候補位置特定処理(ST31)は、1又は複数の眼の候補を特定するものであるが、図7では複数の眼の候補が特定された場合を例に説明する。
同図に示すように、マイコン3は、複数の連続データGを形成している。これは、眼を検出対象としているため、眼と似た特徴量を示すもの(口、鼻、眉毛など)が検出されるためである。
連続データGは、前述したように、縦方向の画素列ごとに定められた抽出ポイントが画像横方向に隣接する場合に形成されるものである。そして、この連続データを形成する横方向両端画素のX座標値の平均値と、連続データを形成する各画素のY座標値の平均値により、代表座標値Cが決定される。さらに、存在領域EAは、この代表座標値Cを基準として設定される。
次に、存在領域EAの設定方法を説明する。図8は、図7に示した存在領域EAの大きさを示す説明図であり、図9及び図10は数人の眼の大きさを調べた横Xa、縦Yaの長さの統計データを示す説明図であり、図11は存在領域EAの画像上の位置を決定する方法を示す説明図である。
存在領域EAの設定は、まず、存在領域EAの大きさが決定され、その後、存在領域EAの画像上における位置が定められることでなされる。
存在領域EAの大きさは、ノイズ(顔の皺や明暗などを抽出してしまう)の低減や処理速度を落とさないためにも、可能な限り小さい領域が良い。本実施形態では、数人の眼の大きさを調べ、それに余裕分(例えば×1.5倍)を加味して、存在領域EAの大きさを決定している。すなわち、図9及び図10のように、眼の縦横寸法のデータを集め、その分布の例えば95%をカバーする寸法に余裕分を加味して決定している。
そして、存在領域EAの大きさは、図8にも示すように、上記95%をカバーする寸法、すなわち横寸法xa、縦寸法yaに余裕分(×1.5)を加味して決定している。なお、存在領域EAの大きさについては、画像処理により眼の幅や高さを推定し、縦横の大きさに余裕分を加える大きさとしてもよい。
このように存在領域EAの大きさが決定された後、図11に示すように、例えば眼の座標値(x1,y1)を基準に、基準点Pを決める。基準点Pは、眼の座標値(x1,y1)から距離x2,y2だけ離れた位置に定められるものである。
そして、マイコン3は、点Pを基準に存在領域EAの寸法x3,y3を描画する。これにより、存在領域EAの位置が決定される。その後、画像全体で見つかった連続データGすべてについて存在領域EAを設定する。
なお、上記のx2及びy2はx3,y3の1/2であって、予め存在領域EAが眼の中心にくるような長さとすることが望ましい。
以上の図6〜図11の処理により、図5の眼候補位置特定処理(ST31)がなされる。次に、図5に示した眼判定処理(ST32)を説明する。図12は、図5に示した眼判定処理(ST32)の詳細を説明するフローチャートである。
まず、マイコン3は、図6の処理にて求められた存在領域EAの画像データを微少画像IGとして画像メモリに保存する(ST50)。全体画像と画像メモリに保存される微小画像IGとの状態を図13に示す。図13は、微小画像を示す説明図である。図13に示すように、マイコン3は、全体画像から存在領域EA内の画像を抽出し、微小画像IGとしている。
再度、図12を参照して説明する。マイコン3は、全体画像の代表座標値Cを微少画像IGの代表座標値ICとする。そして、マイコン3は、微少画像IGの代表座標値ICを基準とした範囲ARを設定し、範囲ARの濃度情報をもとに二値化閾値を設定する(ST51)。
範囲ARでの二値化閾値の算出方法の一例を、図14を参照して説明する。図14は、範囲ARでの二値化閾値の算出方法の説明図である。まず、マイコン3は、範囲ARにおいて縦方向に数ラインの濃度値を読み出す。
そして、マイコン3は、各ラインにおいて濃度値の最も高い(明るい)濃度値と、最も低い(暗い)濃度値をメモリしていく。全ラインのメモリが終了したら、マイコン3は、各ラインの最も高い(明るい)濃度値の中で、一番低い濃度値(皮膚の部分)と、各ラインの最も低い(暗い)濃度値の中で、一番低い濃度値(眼の部分)とを求める。そして、その中央値を二値化閾値とする。
なお、上記した範囲ARは、好適に二値化閾値を決定するため、眼の黒い部分と眼周囲の皮膚の白い部分が入るように設定される。また、範囲ARは、画像の明るさのバラツキによる影響を少なくするために必要最小限の大きさにされる。
さらに、二値化閾値は、範囲AR内の眼の一番低い(暗い)濃度値と、皮膚部分の一番低い(暗い)濃度値の中央値とすることで、皮膚の部分から眼の部分を切り出すのに適した値になる。
ここで、二値化閾値を決定するのに皮膚部分における一番低い(暗い)濃度値を用いている理由は、次の通りである。例えば、範囲ARの一部に直射光が当たっている場合、皮膚部分は、眼球の黒色部分に比して、光を強く反射する傾向にある。このため、本装置1は、多くのノイズとも言える光を入力してしまうこととなる。
この場合、濃度値を読み出す範囲ARを極力小さくしても、画像がノイズ光による影響を受け、本装置1は正確な二値化閾値を決定できなくなってしまう。このため、本実施形態では、強く反射している可能性がある濃度値の高い部分を用いず、皮膚の部分の濃度値の一番低い(暗い)濃度値を用いることで、より適切な二値化閾値を決定できるようにしている。
再度、図12を参照して説明する。二値化閾値の決定後、マイコン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)。候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の一例を、図15を参照して説明する。
図15は、候補オブジェクトと眼のテンプレートとの幾何形状の比較方法の説明図であり、(a)は候補オブジェクトが最適な状態で撮像された場合を示し、(b)は眼の右側が欠けた状態を示し、(c)は眼の左側が欠けた状態を示している。
眼の画像を二値化した形状は光環境が良く安定した画像であれば図15(a)に示すようなものになる。ところが、車室内に直射日光が一側から当たる等して光環境が悪化したときには、図15(b)及び(c)に示すように、一部が欠けた形状になることもある。
マイコン3は、上記のような候補オブジェクトを正確に判断するために、3つの条件により比較判断を行う。まず、条件(i)としては、横幅が眼の相場値の2/3以上あり、且つ上に凸の所定範囲の曲率を持っていることである。次に、条件(ii)としては、黒眼の左側の凹み形状があることである。また、条件(iii)としては、黒眼の右側の凹み形状があることである。
再度、図12を参照して説明する。幾何形状の比較後、マイコン3は、上記3つの条件に基づき、比較判断を行い、候補オブジェクトと眼テンプレートとの幾何形状が一致するか否かを判断する(ST59)。ここで、図15(b)及び(c)のように眼の形状の一部が欠けている場合を考慮し、マイコン3は、条件(i)及び(ii)を満たすもの、並びに条件(ii)及び(iii)を満たすものを一致すると判断する。
一致しないと判断した場合(ST59:NO)、マイコン3は、その候補オブジェクトが眼でないと判定し(ST60)、その後、処理は、図5のステップST33に移行する。
一方、一致すると判断した場合(ST59:YES)、マイコン3は、その候補オブジェクトを眼であると判定する(ST61)。そして、判定された候補オブジェクトの座標値(全体画像における代表座標値Cに相当する)を、画像上における眼の座標値としてメモリする(ST62)。
その後、マイコン3は、一致と判断された候補オブジェクトを含む微小画像IGを眼画像MGiとして、画像メモリに保存する(ST63)。そして、処理は、図5のステップST33に移行する。
なお、図12の処理では、二値化閾値を用いて二値化した候補オブジェクトを検出している。このため、本実施形態では、眼の部分と他の部分(背景や眼以外の顔部分)とを明確に区別し、眼を正確に捉えることができる。さらには、候補オブジェクトの幾何形状を用いた判定をより正確に行うことができ、眼の位置検出精度をより向上させることができる。
以上、図7〜図15を参照して説明したように、マイコン3(眼検出手段CL12)は、入力した画像全体から、眼画像を取得することとなる。そして、前述したように、図5のステップST33において、眼画像が取得されている場合、「YES」と判断されて、処理は図4のステップST15に移行することとなる。
再度、図4を参照する。ステップST15において、マイコン3は、眼画像を取得できたか否かを判断する(ST15)。ここで、眼画像が取得できなかったと判断した場合(ST15:NO)、処理はステップST24に移行する。一方、眼画像が取得できたと判断した場合(ST15:YES)、マイコン3は、エッジライン抽出処理を実行する(ST16)。この処理において、マイコン3は、エッジライン抽出手段CL2に相当するプログラムを実行して、眼画像内からエッジラインを抽出することとなる。
ここで、エッジライン抽出処理(ST16)を詳細に説明する。図16は、取得された眼画像の一例を示し、図17は、図16に示す眼画像の濃度曲線及び一次微分曲線を示し、図18は、図16に示す眼画像から得られたエッジラインを示している。
なお、図16の眼画像では、上瞼のラインがはっきり見えており、且つ、上瞼から画像下側に向けて徐々に明るくなっているとする。また、眼画像内の白眼部分の濃度は眼下側の肌の明るさと同様となり、下瞼のラインが消えてしまっているとする。
まず、マイコン3は、図16に示す眼画像を取得すると、眼画像の縦方向について各画素の濃度値を検出していく。図17(a)は、眼画像縦方向の画素列L11,L12について検出した各画素の濃度値を表す濃度曲線p11,p12を示している。
画素列L11の各画素の濃度値は、濃度曲線p11のようになっている。すなわち、画素列L11の各画素の濃度値は、瞼上側の皮膚部分において高い値を示しているが、上瞼部分において低い値を示す。そして、濃度値は、白眼部分及び眼下側の皮膚部分において再度高い値を示す。このように、画素列L11の各画素の濃度は、白方向から黒方向に変化し、その後、黒方向から白方向に変化している。また、画素列L12の各画素の濃度値についても濃度曲線p12に示すように、画素列L11の各画素の濃度値と同様に変化している。
そして、以上のような濃度値を検出すると、マイコン3は、上記眼画像縦方向の濃度値から濃度変化を表す微分値を算出する。図17(b)は、各画素の濃度変化を表す一次微分曲線d11,d12を示している。画素列L11の濃度値を微分して得られた微分値は、一次微分曲線d11のようになっている。具体的に、微分値は、濃度が白方向から黒方向に変化するとき、すなわち上瞼部分において低くなる。
そして、マイコン3は、この微分値が最も低い点に対応する画素A11をエッジ点として抽出する。すなわち、マイコン3は、濃度が白方向から黒方向へ変化しつつ連続する画素群のうち、最も変化量が大きい画素A11をエッジ点として抽出することとなる。
また、画素列L12の濃度値を微分して得られた微分値は、一次微分曲線d12のようになっており、一次微分曲線d11と同様に、上瞼部分において低くなる。このため、マイコン3は、画素列L12についても同様に、上瞼部分の画素、すなわち濃度が白方向から黒方向へ変化しつつ連続する画素群のうち最も変化量が大きい画素A12をエッジ点として抽出することとなる。
その後、マイコン3は、上記画素列L11,L12について行った処理と同様の処理を、眼画像縦方向の画素列すべてに行い、それぞれの画素列についてエッジ点を抽出する。なお、マイコン3は、エッジ点の抽出に際してノイズの影響を受けにくいようにするため、基準値を設定しておくことが望ましい。これにより、マイコン3は、微分値が基準値を下回らない場合には、たとえ濃度が白方向から黒方向へ変化する画素であっても、エッジ点として抽出しないようにすることができる。
その後、マイコン3は、眼画像縦方向の全画素列について抽出したエッジ点を線状にグルーピングして、エッジラインを抽出する。これにより得られたエッジラインが図18に示すものである。マイコン3は、エッジ点として、濃度が白方向から黒方向へ変化しつつ連続する画素群のうち最も変化量が大きい画素を抽出するので、図18に示す如く、エッジラインは上瞼の形状に沿うものとなる。
また、マイコン3は、図19に示すような眼画像を取得する場合もある。図19は、取得された眼画像の他の例を示し、図20は、図19に示す眼画像の濃度曲線及び一次微分曲線を示し、図21は、図19に示す眼画像から得られたエッジラインを示している。なお、図19の眼画像では、上瞼及び下瞼のラインがはっきり見えているとする。
マイコン3は、図19に示す眼画像を取得すると、眼画像の縦方向について各画素の濃度値を検出していく。図20(a)は、眼画像縦方向の画素列L21,L22について検出した各画素の濃度値を表す濃度曲線p21,p22を示している。
画素列L21の各画素の濃度値は、濃度曲線p21のようになっている。すなわち、画素列L21の各画素の濃度値は、瞼上側の皮膚部分において高い値を示し、上瞼部分において低い値を示す。そして、濃度値は、白眼部分において上昇し、下瞼部分において多少減少し、眼下側の皮膚部分において再度高い値を示す。
このように、画素列L21の各画素の濃度は、白方向から黒方向に変化した後、黒方向から白方向に変化して、再度、白方向から黒方向へ及び黒方向から白方向に変化している。また、画素列L22の各画素の濃度値についても濃度曲線p22に示すように、画素列L21の各画素の濃度値と同様に変化している。
そして、以上のような濃度値を検出すると、マイコン3は、眼画像縦方向の濃度値から濃度変化を表す微分値を算出する。図20(b)は、各画素の濃度変化を表す一次微分曲線d21,d22を示している。画素列L21の濃度値を微分して得られた微分値は、一次微分曲線d21のようになっている。具体的に、微分値は、濃度が白方向から黒方向に変化するとき、すなわち上瞼部分、及び下瞼部分において低くなる。
そして、マイコン3は、上瞼及び下瞼部分において微分値が最も低い値を示す点に対応する画素A21,B21をエッジ点として抽出する。すなわち、マイコン3は、濃度が白方向から黒方向へ変化しつつ連続する画素群(つまり、上瞼及び下瞼部分それぞれの画素群)のうち、最も変化量が大きい画素A21,B21をエッジ点として抽出することとなる。
また、画素列L22の濃度値を微分して得られた微分値は、一次微分曲線d22のようになっており、一次微分曲線d21と同様に、上瞼及び下瞼部分において低くなる。このため、マイコン3は、画素列L22についても同様に、上瞼及び下瞼部分の画素、すなわち画素A22,B22をエッジ点として抽出することとなる。
その後、マイコン3は、上記画素列L21,L22について行った処理と同様の処理を、眼画像縦方向の画素列すべてに行い、それぞれの画素列についてエッジ点を抽出し、これらエッジ点を線状にグルーピングすることによって、エッジラインを抽出する。これにより得られたエッジラインが図21に示すものである。
マイコン3は、エッジ点として、濃度が白方向から黒方向へ変化しつつ連続する画素群のうち最も変化量が大きい画素を抽出するので、図21に示す如く、エッジラインは上瞼及び下瞼の形状に沿うものとなる。つまり、図21に示す如く、上瞼のエッジラインa及び下瞼のエッジラインb,cが抽出される。なお、下瞼のエッジラインb,cは、黒眼部分の影響により分離されて抽出されている。
再度、図4を参照して説明する。以上、図16〜図21に示したエッジライン抽出処理を経た後(ST16の後)、マイコン3は、エッジラインを抽出できたか否かを判断する(ST17)。ここで、エッジラインを抽出できなかったと判断した場合(ST17:NO)、処理はステップST24に移行する。一方、エッジラインを抽出できたと判断した場合(ST17:YES)、マイコン3は、エッジラインの曲線近似処理を実行する(ST18)。この処理においてマイコン3は、曲線近似手段CL3に相当するプログラムを実行して、エッジラインの曲線近似線を得ることとなる。
次に、曲線近似処理(ST18)について詳細に説明する。まず、マイコン3は、エッジラインを近似するにあたり、各エッジ点の座標情報を取得する。そして、マイコン3は、エッジ点(x,y)の座標から、所定の関数f(x,y)=cで表される曲線に近似する。ここで、エッジ点(x,y)は、眼画像の左上端を原点とした座標系である。また、関数f(x,y)=cは、二次以上の多項式で表される。この多項式は、近似された曲線の頂点部分が原点となるように変換された座標系においては、偶数次項のみで構成される式となる。これは、頂点部分が原点となる座標系において奇数次項が含まれる式では、曲線形状の左右対称性や単頂点性が損なわれてしまうためである。
なお、ここでは、二次曲線のうち計算が容易に行える放物線y=ax2+bx+cに近似を行うとして説明するが、マイコン3は、円、楕円、双曲線といった円錐曲線や、ax2+2hxy+by2+2gx+2fy+c=0で表される一般の二次曲線、二次以上の曲線であっても、同様の手順を踏むことによって曲線近似を行うことができ、求めた係数から曲率を算出することができるのはいうまでもない。
次に、図22を参照する。図22は、曲線近似処理(ST18)の詳細を示すフローチャートである。図22に示すように、マイコン3はエッジラインを最小二乗法により近似する。すなわち、まず、マイコン3は各エッジ点の座標値(x,y)の総和値を求める(ST70)。このとき、マイコン3は、座標値x、座標値y及び座標値xを二乗した値について、総和を求める。具体的にマイコン3は以下の式により、これらの総和値を求める。
その後、マイコン3は、各総和値の平均値を求める(ST72)。具体的にマイコン3は以下の式により、これらの平均値を求める。
そして、マイコン3は、求めた平均値から、以下の式により、分散値及び共分散値を求める(ST73)。
その後、マイコン3は、求めた分散値及び共分散値から、以下の式により、回帰係数a,b及び定数項cを求める(ST74)。
これにより、マイコン3は、エッジラインを放物線y=ax2+bx+cに近似する。なお、図22の説明において、マイコン3は、放物線y=ax2+bx+cにエッジラインを近似したが、円、楕円、双曲線といった円錐曲線やax2+2hxy+by2+2Gx+2fy+c=0で表される一般の二次曲線に近似するようにしてもよい。
再度、図4を参照する。曲線近似処理(ST18)の後、マイコン3は、エッジライン及び曲線近似線の少なくとも一方について、曲率を検出する(ST19)。すなわち、マイコン3は、曲率検出手段CL4に相当するプログラムを実行して、曲率を検出することとなる。
ここで、マイコン3が曲線近似処理で検出された近似曲線線(放物線)から曲率Rを検出する場合、曲率Rは、曲線近似線の式y=ax2+bx+cの二次項の回帰係数aとなる。また、マイコン3が、曲線近似処理(ST18)において、エッジラインを円(x−a)2+(y−b)2=rや楕円(x−a)2/rx+(y−b)2/ry=1に近似していたとする。このとき、曲率Rは、円の場合、R=1/rとなる。また、楕円場合、
となる。なお、マイコン3が、曲線近似処理(ST18)において、エッジラインを放物線、円及び楕円以外に近似した場合については説明を省略する。
曲率Rを求めた後、マイコン3は、エッジラインと曲線近似線との相関値を算出する処理を実行する(ST20)。この処理において、マイコン3は、相関検出手段CL5に相当するプログラムを実行して、相関値を検出することとなる。
具体的にマイコン3は、上瞼のエッジ点のY値の総平方和に対する曲線近似線のY値の総平方和の値を求め、この値を相関値として検出する。すなわち、
なる式から相関値を検出する。ここで、エッジラインと曲線近似線との相関は、相関値が「1」に近いほど高くなる。
その後、マイコン3は、ステップST19において検出した曲率Rが上に凸を示すものであるか否かを判断する(ST21)。この処理において、マイコン3は、判定手段CL6に相当するプログラムを実行して、曲率Rが上に凸を示すものであるか否かを判断することとなる。
ここで、眼画像の座標系は、画像左上端を原点とし、画像下方向にY値が大きくなるものであるため、曲率Rが−(マイナス)値になればエッジラインは上に凸であることを示し、+(プラス)値になればエッジラインは下に凸であることを示す。
具体的に図18に示す眼画像から得られたエッジラインは、上に凸であることから上瞼のエッジライン候補となる。また、図21に示す眼画像から得られたエッジラインaについても、上に凸であることから上瞼のエッジライン候補となる。他方、図21に示す眼画像から得られたエッジラインb,cについては、下に凸であることから上瞼のエッジライン候補とならない。
また、図23に示すような眼画像が取得された場合には、以下のようになる。図23は、運転者が眼鏡を着用しているときに取得される眼画像の一例を示し、図24は、図23に示す眼画像から得られたエッジラインを示している。
図23に示すように運転者が眼鏡を着用している場合、眼画像内には眼鏡のフレーム部分が入る。このため、マイコン3は、エッジラインa,b,cの他に、眼鏡のフレーム部分に相当するエッジラインdを抽出してしまう。ところが、図21の例に示す場合と同様に、眼鏡のフレーム部分に相当するエッジラインdは、下に凸を示すことから、上瞼のエッジライン候補とならないようになっている。
再度、図4を参照する。マイコン3は、ステップST19において検出した曲率Rが上に凸を示すものでないと判断した場合(ST21:NO)、エッジラインは上瞼のものでないと判定し(ST25)、処理をステップST16に戻す。そして、マイコン3は、再度エッジライン抽出処理からを実行していくこととなる。
一方、マイコン3は、ステップST19において検出した曲率Rが上に凸を示すものであると判断した場合(ST21:YES)、エッジラインと曲線近似線との相関値が所定値以上であるか否かを判断する(ST22)。この処理において、マイコン3は、判定手段CL6に相当するプログラムを実行して、相関値が所定値以上であるか否かを判断することとなる。
ここで、上瞼は開眼状態で弧状をなすことから、上瞼のエッジラインとその曲線近似線との相関は高くなる傾向にある。一方、上瞼以外のエッジラインは、上に凸を示したとしても、上瞼のようにきれいな曲線となって現れにくく、そのエッジラインとその曲線近似線との相関は低くなる傾向にある。具体的には、眼周囲の影などによりエッジラインが抽出された場合、そのエッジラインはきれいな曲線となりにくく、相関は低くなる傾向にある。
これにより、ノイズによって抽出されたエッジラインが偶然に上に凸を示したとしても、上瞼のエッジラインであると誤検知しないようになっている。また、誤検知を防止することにより、後処理において異常をきたすことも無いようになっている。
図25は、ステップST22における所定値を説明するグラフである。なお、図25においては、縦軸は累積度数分布を示し、横軸は相関値を示している。また、図25では、上瞼のエッジラインとその曲線近似線との相関値を破線で示し、上に凸となった上瞼以外のエッジラインとその曲線近似線との相関値を実線で示している。
同図に示すように、上瞼のエッジラインとその曲線近似線との相関値は、概ね「0.85」以上を示す。これに対して、上に凸となった上瞼以外のエッジラインとその曲線近似線との相関値は、おおむね「0.75」以下となる。このため、上瞼のエッジラインであるか否かを判断するためには、所定値を約0.8から約0.9の間に設定するとよいこととなる。これにより、確実にノイズによるエッジラインの9割を、誤って上瞼のエッジラインであると検知しないようにすることができる。なお、この9割という値は、実験により明らかになったものである。
再度、図4を参照する。マイコン3は、以上のような所定値を予め又は使用環境に応じて設定し、検出した相関値が所定値以上であるか否かを判断することとなる。そして、相関値が所定値以上でないと判断した場合(ST22:NO)、マイコン3は、エッジラインは上瞼のものでないと判定し(ST25)、処理をステップST16に戻す。そして、マイコン3は、再度エッジライン抽出処理からを実行していくこととなる。
一方、相関値が所定値以上であると判断した場合(ST22:YES)、マイコン3は、エッジラインが上瞼のものであると判定する(ST23)。そして、処理はステップST24に移行する。
なお、上記において説明を省略したが、エッジライン抽出処理(ST16)においては、エッジラインが1つずつ抽出されるようになっている。このため、図21に示す例において、例えば、最初にエッジラインbが抽出された場合、まず、エッジラインbについてステップST17以降の処理を実行していくこととなる。また、最初にエッジラインaが抽出された場合も同様に、エッジラインaについてステップST17以降の処理を実行していくこととなる。
そして、上瞼のエッジラインであると判定されない場合(ST25の場合)、処理はステップST16に戻され、エッジラインが抽出されなくなるまで、繰り返されることとなる。一方、エッジラインが抽出されなくなると、上記において説明したように、ステップST17において「NO」と判断されて、処理はステップST24に移行することとなる。
そして、ステップST24において、マイコン3は、処理フレームカウンタ「i」をインクリメントする(ST24)。その後、処理は、ステップST12に戻り、例えばエンジンが起動されていないと判断され、「STOP」であると判断されるまで、上記の処理が繰り返されることとなる。
以上のように、上に凸の弧状を示し且つ綺麗な曲線となる上瞼の特性を反映した処理を実行することにより、上瞼の検出精度の向上を図ることができる。
このようにして、本実施形態における上瞼検出装置1は、眼を含む眼画像を取得し、取得した眼画像から、各画素の濃度に基づいて画像縦方向又は横方向の各エッジ点を抽出し、それらエッジ点を線状にグルーピングすることによってエッジラインを抽出している。このため、眼の周辺部分について画素濃度に基づくエッジライン、すなわち瞼と眼と境界線などを抽出することとなる。
また、上瞼検出装置1は、抽出されたエッジラインを二次以上の曲線に近似している。ここで、通常、上瞼は開眼状態において弧状となることから、曲線近似しやすく、得られた曲線近似線はエッジラインと大きく異なる可能性が少ない。一方、黒眼部分や影などは、曲線近似しにくく、得られた曲線近似線はエッジラインと大きく異なる可能性がある。
また、上瞼検出装置1は、抽出したエッジライン及び近似した曲線近似線の少なくとも一方について、曲率を検出している。ここで、通常、上瞼は開眼状態において上に凸の弧状となることから、検出した曲率は、エッジラインが上瞼に相当するものである場合、上に凸を示すものとなる。
また、上瞼検出装置1は、抽出したエッジラインと近似した曲線近似線との相関値を検出している。ここで、上記の如く、エッジラインが上瞼に相当するものである場合、このエッジラインから得られる曲線近似線は、もとのエッジラインと大きく異ならないようになっている。故に、エッジラインが上瞼に相当するものである場合には、エッジラインと曲線近似線との相関値は高い値を示すこととなる。
そして、検出した曲率が顔の上下方向対して上に凸であり、且つ相関値が所定値以上であると判断されたエッジラインを上瞼のエッジラインであると判定している。このため、上に凸であることにより、眼鏡フレームや黒眼部分と白眼部分との境界など、上瞼以外のものによる誤検出を防止できる。また、相関値が所定値以上であることにより、例えば眼も黒眼部分など近似しにくく、得られた曲線近似線がエッジラインと大きく異なる可能性があるものを上瞼であると誤検出してしまうことを防止することができる。
従って、上瞼の検出精度の向上を図ることができる。
また、エッジライン抽出手段CL2は、眼画像の縦方向又は横方向について、濃度が白方向から黒方向へ変化しつつ連続する画素群のうち、最も変化量が大きい画素をエッジ点として抽出している。このため、エッジライン抽出手段CL2は、肌から眉毛に差し掛かる境界や、肌から上瞼に差し掛かる境界などをエッジ点として抽出することとなる。このように、エッジライン検出手段CL2が境界などを抽出するため、確実に上瞼のエッジラインを抽出できることとなる。従って、上瞼の検出精度を更に向上させることができる。
また、曲線近似手段CL3は、エッジライン抽出手段CL2によって検出された各エッジ点の座標から最小二乗法によって二次の線形多項式に近似している。このため、精度良くエッジラインを近似することとなり、後の相関値を求める処理において精度の良い相関値をもとめ、判定手段CL6における判断についても精度向上を図ることとなる。従って、上瞼の検出精度を更に向上させることができる。
眼画像取得手段CL1は、被検出者の顔全体を撮像した顔画像から被検出者の眼を検出して、顔画像よりも小さくされた微小画像を眼画像として取得している。このため、後のエッジラインの抽出などにおいても、微小な眼画像を対象に処理していくこととなり、顔画像全体から上瞼を検出する場合に比して、上瞼を精度良く検出することができる。従って、上瞼の検出精度を更に向上させることができる。
次に、本発明の第2実施形態を説明する。第2実施形態に係る上瞼検出装置2は、第1実施形態のものと同様であるが、新たに長さ検出手段CL7が追加されている点で第1実施形態のものと一部異なっている。
以下、第1実施形態との相違点について説明する。図26は、第2実施形態に係る上瞼検出装置2の構成を示す機能ブロック図である。同図に示すように、上瞼検出装置2は、長さ検出手段CL7を備えている。
長さ検出手段CL7は、エッジライン抽出手段CL2により抽出されたエッジラインの情報を読み込んで、そのエッジラインの画像横方向の長さを検出するものである。また、長さ検出手段CL7は、判定手段CL6に接続され、エッジラインの長さを検出すると、その情報を判定手段CL6に送信する構成となっている。
このため、判定手段CL6により行われる処理も第1実施形態と一部異なっている。すなわち、判定手段CL6は、曲率検出手段CL4により検出された曲率が顔の上下方向対して上に凸であり、且つ相関検出手段CL5によって検出された相関値が所定値以上であると判断したことだけでなく、長さ検出手段CL7によって検出されたエッジラインの長さが閾値以上であると判断したときに、そのエッジラインを上瞼のエッジラインであると判定する構成となっている。
また、上記長さ検出手段CL7の処理を実行するため、図2及び図3に示したマイコン3は、長さ検出手段CL7に相当するプログラムを記憶している。
次に、第2実施形態に係る上瞼検出装置2の動作を説明する。図27は、第2実施形態に係る上瞼検出装置2の動作の概略を示すメインフローチャートである。なお、同図に示すステップST80〜ST87,ST90〜ST97の処理は、図4に示すステップST10〜ST15と同様であるため、説明を省略する。
マイコン3は、ステップST87においてエッジラインを抽出できたと判断した場合(ST87:YES)、エッジラインの長さ検出処理を実行する(ST88)。この処理において、マイコン3は、長さ検出手段CL7に相当するプログラムを実行して、エッジラインの長さを検出することとなる。
ここで、エッジラインの長さ検出処理(ST88)を詳細に説明する。この処理において、マイコン3は、まず、エッジライン抽出処理(ST86)において抽出されたエッジラインの座標点情報を読み込む。そして、マイコン3は、エッジラインの左右端を定め、左右端の横座標値の差から演算によりエッジラインの長さを検出する。なお、マイコン3は、長さ検出処理(ST88)を円滑に行うため、エッジライン抽出処理(ST86)において、エッジラインの左右方向始点及び終点について座標情報を記録しておくことが望ましい。
そして、マイコン3は、エッジラインの長さを検出した後、検出したエッジラインの長さが閾値以上であるか否かを判断する(ST89)。この処理においてマイコン3は、判定手段CL6に相当するプログラムを実行して、エッジラインの長さが閾値以上であるか否かを判断することとなる。
次いで、エッジラインの長さが閾値以上であると判断した場合(ST89:YES)、マイコン3は、処理をステップST90に進める。一方、エッジラインの長さが閾値以上でないと判断した場合(ST89:NO)、マイコン3は、そのエッジラインが上瞼のエッジラインでないと判断し、処理をステップST86に戻す。
ここで、ステップST89に示す判断の詳細を説明する。まず、眼画像は、図8〜図11を参照して説明したように、その大きさが眼の縦横幅を基準(統計的に得られた眼の縦横幅の1.5倍)に設定されている。このため、眼画像の大きさを考慮すると、上瞼のエッジラインの長さは、眼画像の横幅の約1/2〜2/3程度となる。故に、マイコン3は、眼画像の横幅の1/2以下の長さとなるようなエッジラインを、曲率や相関値を求めるまでもなく、上瞼の候補から除外することとしている。
なお、第2実施形態においてマイコン3は、眼画像の横幅の大きさから閾値を設定しているが、これに限らず、上瞼と判定されたエッジラインの長さをメモりしておき、統計処理を行って上瞼のエッジラインの長さを学習して、閾値を設定することとしてもよい。これにより、マイコン3は、より精度の高い閾値を設定することができる。
次に、ステップST89の処理を更に具体的に説明する。図28は、運転者の眼の黒眼部分に映り込みが生じているときに取得される眼画像の一例を示し、図29は、図28に示す眼画像から得られたエッジラインを示している。
図28に示すように運転者の眼の黒眼部分に映り込みが生じている場合、マイコン3は、図29に示すように、エッジラインa,b,cの他に、映り込み部分に相当するエッジラインeを抽出してしまう。このため、第1実施形態に示した処理では、マイコン3は、エッジラインeが上瞼のエッジラインとして検出してしまう可能性がある。
ところが、第2実施形態では、長さが閾値以上でないエッジラインを上瞼のエッジラインと判定しないようにしている。すなわち、エッジラインeの長さが眼画像の横幅の1/2程度に達しないことから、エッジラインeを上瞼のエッジラインであると判定しないようにしている。これにより、マイコン3は、たとえ上に凸であり相関値が高いエッジラインが存在したとしても、そのエッジラインを上瞼のエッジラインと誤検出しないようにしている。
なお、図29に示す例の場合、マイコン3は、曲率が上に凸か否かの判断処理(ST93)及び相関値が所定値以上か否かの判断処理(ST94)によりも先に、長さが閾値以上か否かの判断をしている。また、エッジラインb,cは、長さが眼画像の横幅の1/2程度に達しない。これらから、マイコン3は、これらエッジラインb,cについて、曲率が上に凸か否かの判断処理(ST93)及び相関値が所定値以上か否かの判断処理(ST94)を実行するまでもなく、ステップST89の処理により、上瞼のエッジラインでないと判定することとなる。すなわち、エッジラインb,cについては、ステップST93,ST94の処理を実行するまでもなく、上瞼のエッジラインでないと判定することとなり、第1実施形態の場合と比較して、処理速度の向上を図ることとなる。
このようにして、第2実施形態に係る上瞼検出装置2によれば、第1実施形態と同様に、上瞼の検出精度の向上を図ることができる。また、上瞼の検出精度を更に向上させることができる。
さらに、第2実施形態によれば、エッジラインの長さを検出し、曲率及び相関値の判断に加え、エッジラインの長さが閾値以上であると判断したときに、そのエッジラインを上瞼のエッジラインであると判定している。通常、上瞼は、個人差があるとしても横方向に或る程度の長さを有している。このため、閾値により或る程度の長さを有しないエッジラインは上瞼のエッジラインに該当しないといえる。そこで、エッジラインの長さの判断することにより、一層誤検出を防止することとなり、上瞼の検出精度を更に向上させることができる。
また、本装置2は、曲率及び相関値の判断よりも先に、エッジラインの長さが閾値以上であるか否かを判断している。これにより、閾値に満たないエッジラインについては、曲率や相関値を求めるまでもなく、上瞼のエッジラインでないと判定でき、処理速度の向上を図ることができる。
次に、本発明の第3実施形態を説明する。第3実施形態に係る上瞼検出装置3は、第2実施形態のものと同様であるが、新たに第2エッジライン抽出手段CL8及び判断手段CL9が追加されている点で第2実施形態のものと一部異なっている。
以下、第2実施形態との相違点について説明する。図30は、第3実施形態に係る上瞼検出装置3の構成を示す機能ブロック図である。同図に示すように、上瞼検出装置3は、第2エッジライン抽出手段CL8及び判断手段CL9を備えている。
まず、第2エッジライン抽出手段CL8と判断手段CL9とは、判定手段CL6により上瞼のエッジラインであると判定されたものが、本当に上瞼のエッジラインであるか点検する機能を有している。以下、上記手段CL8,CL9を説明する。
第2エッジライン抽出手段CL8は、判定手段CL6により上瞼のエッジラインが判定された場合に動作するものである。また、第2エッジライン抽出手段CL8は、眼画像取得手段CL1により取得された眼画像から、眼画像内の各画素の濃度に基づいて、画像縦方向又は横方向の各第2エッジ点を抽出するものである。ここで、第2エッジ点とは、眼画像取得手段CL1により取得された眼画像の縦方向又は横方向について、濃度が黒方向から白方向へ変化しつつ連続する画素群のうち最も変化量が大きい画素である。
すなわち、第2エッジライン抽出手段CL8は、黒眼部分から白眼部分に差し掛かる境界などを第2エッジ点として抽出することとなる。このように、第2エッジライン検出手段CL8は、エッジライン抽出手段CL2と同様に、画像縦方向又は横方向について、濃度の変化量を読み取り、第2エッジ点を抽出することとなる。なお、以下の説明において、第2エッジライン抽出手段CL8は、画像縦方向について濃度の変化量を読み取り、エッジ点を抽出することとする。
また、第2エッジライン抽出手段CL8は、エッジライン抽出手段CL2と同様に、抽出した各第2エッジ点を線状にグルーピングすることによって第2エッジラインを抽出するものである。すなわち、第2エッジライン抽出手段CL8は、黒眼部分から白眼部分に差し掛かる境界などの第2エッジ点をグルーピングすることによって、黒眼部分から白眼部分に差し掛かる境界線などを抽出するものである。
このため、エッジライン抽出手段CL2は、白眼部分から黒眼部分に差し掛かる境界線を抽出し、第2エッジライン抽出手段CL8は、黒眼部分から白眼部分に差し掛かる境界線を抽出することとなる。つまり、これら手段CL2,CL8は、画像上の暗い物体について上下にエッジライン(第2エッジライン)を抽出する機能を有することとなる。
ここで、運転者が二重瞼である場合、二重瞼部分に影が生じることから、当該部分については濃度が低下する傾向にある。従って、上記二手段CL2,CL8は、二重瞼部分についても、上下にエッジライン(第2エッジライン)を抽出することとなる。
また、第2エッジライン抽出手段CL8は、エッジラインの情報を、第2エッジラインの情報と共に、判断手段CL9に送信する構成となっている。
判断手段CL9は、エッジライン抽出手段CL2により抽出されたエッジラインと第2エッジライン抽出手段CL8により抽出された第2エッジラインとが画像縦方向に重複する部分について、エッジラインと第2エッジラインとの画像縦方向位置の差を求めるものである。ここで、画像縦方向に重複する部分とは、エッジライン及び第2エッジラインの双方が存在する縦方向の画素列部分をいう。従って、判断手段CL9は、エッジラインと第2エッジラインとの双方が存在する画素列毎にエッジラインと第2エッジラインとの画像縦方向位置の差を求めるものとなる。
なお、二重瞼部分について説明すると、判断手段CL9は、肌と二重瞼の上側との境界、及び二重瞼の下側と肌との境界との双方が存在する画素列毎に、これら境界の縦方向位置の差を求めることとなる。
また、判断手段CL9は、求めた差それぞれが略同一であるか否かを判断するものである。そして、判断手段CL9は、求めた差が略同一でないときには、エッジライン抽出手段CL2により抽出されたエッジラインが上瞼のエッジラインでないと判断するものである。例えば、二重瞼部分について説明すると、画素列毎の二重瞼の上側と下側との差は略同一となる。すなわち、二重瞼部分は、上瞼と眼との境界と同形状(同じ上に凸の弧状)をなすことから、上瞼と誤検出され易い傾向にある。ところが、判断手段CL9は、画素列毎の差を求めて略同一か否かを判断していることとなる。このため、判断手段CL9は、二重瞼部分などを、上瞼と眼との境界と検出しないようにする構成となっている。
なお、上記判断手段CL9は、画素列毎に差を求める構成に限らず、必要数だけの差を求めるようにしてもよい。例えば、判断手段CL9は、エッジラインと第2エッジラインとが画像縦方向に重複する部分の両端及び中点位置で、エッジラインと第2エッジラインとの画像縦方向位置における差を求めるようにしてもよい。これにより、処理の迅速化を図ることができる。
また、上記第2エッジライン抽出手段CL8及び判断手段CL9による処理を実行するため、図2及び図3に示したマイコン3は、これらに相当するプログラムを記憶している。
次に、第3実施形態に係る上瞼検出装置3の動作を説明する。図31及び図32は、第3実施形態に係る上瞼検出装置3の動作の概略を示すメインフローチャートであり、図31は前半部分を示し、図32は後半部分を示している。なお、これらの図に示すステップST100〜ST114,ST120〜ST122の処理は、図27に示すステップST80〜ST97と同様であるため、説明を省略する。
まず、マイコン3は、ステップST114において相関値が所定値以上であると判断した場合(ST114:YES)、第2エッジライン抽出処理を実行する(ST115)。この処理において、マイコン3は、第2エッジライン抽出手段CL8に相当するプログラムを実行して、第2エッジラインを検出することとなる。
ここで、第2エッジライン抽出処理(ST115)を詳細に説明する。図33は、運転者が二重瞼であるときに取得される眼画像の一例を示し、図34は、図33に示す眼画像から得られたエッジラインを示している。また、図35は、図33に示す眼画像から得られたエッジライン及び第2エッジラインを示している。
まず、マイコン3は、第2エッジライン抽出処理(ST115)に至る以前に、図33に示すような眼画像を取得している。そして、マイコン3は、その眼画像から図34に示すエッジラインを抽出する。
ここで、図34において、エッジラインa,fの双方は上下方向対して上に凸である。また、エッジラインa,fの双方は、綺麗な弧状を描いており、曲線近似し易いことから相関値が所定値以上となる。従って、第2実施形態では、エッジラインa,fが双方ともに上瞼のエッジラインであると判定されることとなる。
そこで、マイコンは、図35に示すように、第2エッジラインを抽出する。このとき、マイコン3は、エッジラインa,fと対になる第2エッジラインを抽出する。まず、眼画像内のエッジラインa,fの存在部分においては、濃度が白方向から黒方向に変化している。このため、マイコン3は、濃度が白方向から黒方向に変化した後に、再度濃度が黒方向から白方向に変化する部分を対になる第2エッジラインとして抽出する。すなわち、マイコン3は、エッジ点から画像下端方向に向けて濃度情報を読み込み、濃度が黒方向から白方向へ変化しつつ連続する画素群の最初のもののうち、最も変化量が大きい画素を第2エッジ点として抽出する。
そして、マイコン3は、第2エッジ点を線状にグルーピングすることによって、第2エッジラインを抽出する。その結果、マイコン3は図35に示す如く、エッジラインと第2エッジラインa’,f’とを抽出する。
再度、図32を参照する。以上、図33〜図35を参照して説明した第2エッジライン抽出処理を経た後(ST115の後)、マイコン3は、第2エッジラインを抽出できたか否かを判断する(ST116)。ここで、第2エッジラインを抽出できなかったと判断した場合(ST116:NO)、マイコン3は、エッジラインが上瞼のエッジラインでないと判断する。そして、処理は、図31のステップST106に移行する。
一方、第2エッジラインを抽出できたと判断した場合(ST116:YES)、マイコン3は、エッジラインと第2エッジラインとの画像縦方向の間隔を検出する(ST117)。すなわち、マイコン3は、エッジラインと第2エッジラインとが画像縦方向に重複する画素列毎に、これらラインの縦方向の差を求める。なお、この処理において、マイコン3は、画素列毎でなく、重複部分の両端及び中点位置のみの差を求めるようにしてもよい。また、マイコン3は、この処理において判断手段CL9に相当するプログラムを実行することとなる。
その後、マイコン3は、求めた差のそれぞれが略同一であるか否かを判断し、略同一でない場合に、そのエッジラインが上瞼のエッジラインであると判断する。ここで、第3実施形態においては、精度の向上を図るべく、縦方向の差に代えて分散値や標準偏差を求めるようにしてもよい。
すなわち、マイコン3は、画像縦方向の間隔を検出した後(ST117の後)、エッジラインと第2エッジラインとの縦方向間隔の均一判断処理を実行する(ST118)。この処理においてマイコン3は、縦方向間隔の分散値や標準偏差といった統計値を判断する。
その後、マイコン3は、エッジラインと第2エッジラインとの縦方向間隔が略同一であるか否かを判断する(ST119)。ここで、分散値や標準偏差の値が小さければ間隔は略同一であり、分散値や標準偏差の値が大きければ間隔は略同一でないといえる。そして、エッジラインと第2エッジラインとの縦方向間隔が略同一でないと判断した場合(ST119:NO)、マイコン3はそのエッジラインが上瞼のエッジラインでないと判断する(ST122)。
一方、エッジラインと第2エッジラインとの縦方向間隔が略同一であると判断した場合(ST119:YES)、マイコン3は、そのエッジラインが上瞼のエッジラインであると判断する(ST120)。そして、マイコン3は、ステップST121を経た後、処理をステップST102に戻す。
図36は、図35に示すエッジラインa,fと第2エッジラインa’,f’との画像縦方向位置の差を示すグラフである。同図に示すように、エッジラインaは、上瞼のエッジラインでなく、二重瞼部分のエッジラインである。このようなエッジラインaと第2エッジラインa’との縦方向位置の差は、図35及び図36からも明らかなように、略同一となっている。従って、マイコン3は、二重瞼部分のエッジラインを上瞼のエッジラインであると誤検出しないこととなる。
一方、エッジラインfは、上瞼のエッジラインである。このエッジラインfと第2エッジラインf’との縦方向位置の差は、図35及び図36からも明らかなように、画像両端側で小さく、中点位置で大きくなっている。従って、マイコン3は、このエッジラインfを上瞼のエッジラインであると検出することとなる。
このように、第3実施形態では、たとえ運転者が二重瞼であっても正確に上瞼のエッジラインを判定することができ、上瞼を検出することができる。なお、図36に示すように、エッジラインと第2エッジラインとの重複部分の両端及び中点位置で差を求めた場合、エッジラインfについては差の相違が好適に検出できることが明らかである。これは、黒眼部分の影響によるものである。すなわち、通常、上瞼と黒眼部分との間には白眼部分が介在することが少なく、この点から両端及び中点位置で差を求めることが有用といえる。
このようにして、第3実施形態に係る上瞼検出装置3によれば、第2実施形態と同様に、上瞼の検出精度の向上を図ることができる。また、上瞼の検出精度を更に向上させることができ、処理速度の向上を図ることができるためである。
さらに、第3実施形態によれば、上瞼のエッジラインを判定した場合に、濃度が黒方向から白方向へ変化しつつ連続する画素群のうち最も変化量が大きい画素を第2エッジ点として抽出し、その第2エッジ点から第2エッジラインを抽出している。また、エッジラインと第2エッジラインとの画像縦方向位置の差を求め、求めた差それぞれが略同一であるときには、そのエッジラインが上瞼のエッジラインでないと判断している。このように、第2エッジラインを抽出し、差を求めることにより、エッジラインが本当に上瞼のエッジラインであるか否かを点検することとなり、例えば二重瞼によって抽出されたエッジラインを上瞼のエッジラインであると誤検出しないようになっている。
詳しくは、濃度が黒方向から白方向へ変化する画素から第2エッジラインを抽出するため、通常、上瞼と黒眼部分との間には白眼部分が介在することが少ないことをからすると、眼の中央部分では、エッジラインと第2エッジラインとの差が大きくなる。他方、二重瞼の場合には、エッジラインと第2エッジラインとの差が略同一となり易い。このため、エッジラインと第2エッジラインとの画像縦方向位置の差から、好適に上瞼のエッジラインであるか否かを点検することができる。従って、上瞼の検出精度を更に向上させることができる。
また、エッジラインと第2エッジラインとが画像縦方向に重複する部分の両端及び中点位置で、エッジラインと第2エッジラインとの画像縦方向位置における差を求めている。このため、画像縦方向の全画素列でエッジラインと第2エッジラインとの差を求める場合に比して、演算が少なくなる。さらに、上瞼と黒眼部分との間には白眼部分が介在することが少ないことからすると、両端及び中点位置で差を求めることが適しているといえる。従って、上瞼の検出精度を維持したまま、処理速度の向上を図ることができる。