瞼検出装置、瞼検出方法、及び、プログラム
【課題】短時間で正しい瞼を検出できる瞼検出装置を提供する。
【解決手段】カメラ10は対象者の顔を撮影し、コンピュータ14のCPU24はその動画像を取得し、画像メモリ22に格納する。CPU24は、画像メモリ22に格納された動画像の所定の領域から対象者の上瞼と下瞼との組み合わせの候補となるエッジラインの対を抽出する。CPU24は、エッジラインの対の左右両端の部分が目頭と目尻との少なくともどちらか一方を含む可能性を示す評価値を算出する。CPU24は、算出した評価値に基づいて、対象者の瞼の位置を検出する。
【解決手段】カメラ10は対象者の顔を撮影し、コンピュータ14のCPU24はその動画像を取得し、画像メモリ22に格納する。CPU24は、画像メモリ22に格納された動画像の所定の領域から対象者の上瞼と下瞼との組み合わせの候補となるエッジラインの対を抽出する。CPU24は、エッジラインの対の左右両端の部分が目頭と目尻との少なくともどちらか一方を含む可能性を示す評価値を算出する。CPU24は、算出した評価値に基づいて、対象者の瞼の位置を検出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば車両等の移動体を運転しているドライバー等の眼を検出する瞼検出装置、瞼検出方法、及び、プログラムに関する。
【背景技術】
【0002】
現在、人の顔を含む画像から、人の顔や眼の位置を検出する技術が知られている。例えば、特許文献1には、顔画像から上瞼に対応するエッジラインと下瞼に対応するエッジラインを抽出し、そのテンプレートを生成し、生成したテンプレートを眼の候補にマッチングさせることによって継続的に正確に眼を検出することを可能にする技術が開示されている。
【0003】
しかし、特許文献1の技術では、テンプレートをマッチングさせるときに、相関値演算を行っており、処理時間がかかる。そのため、処理速度の遅い車載用CPUで演算することは困難である。また、専用の演算器を使用すれば、コストが高くなってしまう。
【特許文献1】特開2000−137792号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、上記問題点に鑑みてなされたものであり、少ない演算で瞼(眼)を検出できる瞼検出装置、瞼検出方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明の第1の観点に係る瞼検出装置は、
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段と、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出するパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段と、を備える、
ことを特徴とする。
【0006】
例えば、前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出してもよい。
【0007】
例えば、前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分の複数の画素の濃度の平均値を算出し、
算出した複数の画素の濃度の平均値に基づいて、前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出してもよい。
【0008】
例えば、前記ラインの両端を含む所定の部分と同じ広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出し、
前記瞼検出手段は、
前記差分に基づいて左右瞼を検出してもよい。
【0009】
例えば、前記ラインの両端を含む所定の部分より小さい広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記ラインの両端を含む所定の部分のうちの一部分に前記パターン記憶手段が記憶しているパターンを対応させ、前記顔画像記憶手段が記憶する画像の、前記パターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出する差分算出手段を備え、
前記差分算出手段に、前記ラインの両端を含む所定の部分を走査させ、算出した複数の差分のうちで最も大きいものを最大差分値とし、
前記瞼検出手段は、
前記最大差分値に基づいて左右瞼を検出してもよい。
【0010】
本発明の第2の観点に係る瞼検出方法は、
顔の画像を処理し、目の上瞼と下瞼の組み合わせの候補となるラインの対を抽出し、
抽出した上瞼と下瞼の組み合わせの候補となるラインの対が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを求め、
求めたパラメータに基づいて、対象者の瞼の位置を検出する、
ことを特徴とする。
【0011】
本発明の第3の観点に係るプログラムは、
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻とを含む可能性を示すパラメータを算出するパラメータ算出手段、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段、
として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、少ない演算で瞼を検出できる瞼検出装置、瞼検出方法、及び、プログラムを提供できる。
【発明を実施するための最良の形態】
【0013】
(第1の実施形態)
以下、本発明の第1の実施形態に係る瞼検出装置50について説明する。
【0014】
第1の実施形態の瞼検出装置50は、図1に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ10と、ドライバーの顔を照明する照明光源12と、ドライバーの瞼を検出するコンピュータ14と、コンピュータ14に接続された表示装置16と、から構成される。
【0015】
カメラ10は例えばCCDカメラ等から構成され、ドライバーの顔の階調画像を一定周期(例えば、1/30秒)で取得し、出力する。カメラ10から順次出力される顔画像は、ドライバーの顔(の画像)だけでなく、その背景(の画像)なども含む。
【0016】
表示装置16は、LCD(Liquid Crystal Display)又はCRT(Cathode Ray Tube)などから構成され、カメラ10で撮影された顔画像から生成された二値化画像などを表示する。
【0017】
コンピュータ14は、カメラ10により取得された顔動画像を処理してその瞼の位置を検出する装置である。コンピュータ14は、図2に示すように、A/D変換器21と、画像メモリ22と、ROM(Read Only Memory)23と、CPU(Central Processing Unit)24と、RAM(Random Access Memory)25と、表示制御装置26と、光源制御装置27と、設定メモリ28と、操作装置29と、から構成される。
【0018】
A/D(アナログ/ディジタル)変換器21は、カメラ10で撮影されたアナログ画像信号をディジタル信号に変換する。
【0019】
画像メモリ22は、カメラ10により生成され、A/D変換器21でディジタル化された画像データを格納する。
【0020】
ROM23は、CPUの動作を制御するためのプログラムを記憶する。また、ROM23は、後述する画像処理を実行するための様々な固定データを記憶する。
【0021】
CPU24は、コンピュータ14全体を制御する。また、CPU24は、ROM23に格納されているプログラムを実行することにより、カメラ10により取得された一連の顔画像を処理して瞼を検出する。
【0022】
RAM25は、CPU24のワークエリアとして機能する。
【0023】
表示制御装置26は、CPU24の制御のもと、映像データ等を表示装置16が出力可能なデータ形式に変換し、表示装置16に出力する。
【0024】
光源制御装置27は、照明光源12の点灯・消灯を制御する。
【0025】
設定メモリ28は、図4に示すような各種パラメータを予め格納する。各種パラメータは、CPU24が、RAM25に格納される顔画像から瞼を検出する際に使用される。詳細は、後述する。
【0026】
操作装置29は、ユーザから操作情報を受け付け、操作に応じた操作信号をCPU24に送出する。
【0027】
次に、ROM23に格納される固定データの例を、図3を参照しながら説明する。まず、ROM23は、図3(a)に示すような、縦エッジ検出用ソーベルフィルタのオペレータを格納する。縦エッジ検出用ソーベルフィルタは、図3(c)に示すような横方向の濃淡差を強調するためのオペレータである。
【0028】
また、ROM23は、図3(b)に示すような、横エッジ検出用ソーベルフィルタのオペレータを格納する。横エッジ検出用ソーベルフィルタは、図3(d)に示すような横方向の濃淡差を強調するためのオペレータである。
【0029】
ROM23は、図3(e)に示すような、左端用目尻・目頭パターンを格納する。左端用目尻・目頭パターンは、実際の目尻・目頭の画像から作成され、目尻・目頭周辺の肌を表す部分と眼を表す部分とから構成される。図では、白いマスの部分が肌を表す部分であり、黒いマスの部分が眼を表す部分である。左端用目尻・目頭パターンは、実際のエッジラインの左端付近の画像が目尻、又は、目頭にどの程度似通っているかを判別するためのものである。
【0030】
ROM23は、図3(f)に示すような、右端用目尻・目頭パターンを格納する。右端用目尻・目頭パターンは、実際の目尻・目頭の画像から作成され、目尻・目頭周辺の肌を表す部分と眼を表す部分とから構成される。図では、白いマスの部分が肌を表す部分(以下、肌部分)であり、黒いマスの部分が眼を表す部分(以下、眼部分)である。右端用目尻・目頭パターンは、実際のエッジラインの右端付近の画像が目尻、又は、目頭にどの程度似通っているかを判別するためのものである。
【0031】
設定メモリ28に格納される各種パラメータの例を、図4を参照しながら説明する。
先ず、瞼検出用横ソーベル閾値は、顔画像から顔の瞼領域を抽出する際に横エッジ検出用ソーベルフィルタを用いて処理した各画素の輝度値の絶対値から、横エッジラインか否かを判別するための閾値である。
瞼領域設定パラメータa,bは、検出された顔位置から瞼が存在すると推定される瞼領域を算出するためのパラメータである。
閾値Lth,Cxth,Dthは、瞼候補となるエッジラインペアを抽出するために使用する閾値である。
【0032】
以下、上記構成を有する第1の実施形態に係る瞼検出装置50の動作を説明する。
【0033】
まず、図3〜6を参照して、瞼検出装置50が、顔画像中の瞼を検出する動作の概要を説明する。
【0034】
カメラ10は、図5(a)に示すような対象者の顔画像を所定周期(例えば、1/30秒周期)で撮影して顔画像を出力する。出力された顔画像は画像メモリ22に順次格納される。
【0035】
次に、CPU24は、画像メモリ22に格納されている顔画像を順次読み出し、以下の処理を行う。
【0036】
先ず、CPU24は、縦エッジ検出用ソーベルフィルタ(図3(a))を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の左右端を検出する。また、CPU24は、横エッジ検出用ソーベルフィルタ(図3(b))を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の上下端を検出する。
【0037】
例えば、図5(a)に示す顔画像の場合、顔の左右端は、x=i,jであり、上下端は、y=m,nである。顔の左右端と上下端から、顔の位置が検出できる。
【0038】
CPU24は、設定メモリ28に格納されているパラメータと検出した顔位置に基づいて図5(b)に示すような、瞼が含まれると推定される瞼領域を抽出する。図5(a)に示す図を用いて、具体的に説明すると、顔の左右端が、x=i,jであり、上下端が、y=m,nである場合、図4に示されるような、設定メモリ28に格納される瞼領域設定パラメータa,bを用いて、瞼領域は、i≦x≦j且つv≦y≦w(ただし、v=m+b,w=n−a)で表される。
【0039】
CPU24は、横エッジ検出用ソーベルフィルタ(図3(b))を用いて瞼領域の画像内の横エッジラインを抽出する処理を行う。ここで、CPU24は、横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値の絶対値が瞼検出用横ソーベル閾値(図4)以上である画素を横エッジラインと判別する。
【0040】
その結果、図5(c)に示すように、y軸方向に明るい画素から暗い画素に移るエッジラインがマイナスエッジとして表され、y軸方向に光度が暗い画素から明るい画素に移るエッジラインがプラスエッジとして現れる。なお、図面上は、マイナスエッジを実線で、プラスエッジを破線で表す。
【0041】
次に、CPU24は、求めたマイナスエッジラインとプラスエッジラインとから、次の三つの数式を満たすマイナスエッジとプラスエッジの組み合わせ(エッジラインペア)を上瞼と下瞼の候補として抽出する。
【0042】
Lp−Lm<Lth・・・(1)
ただし、Lpはプラスエッジの長さを表す値であり、Lmはマイナスエッジの長さを表す値であり、Lthは閾値である。ただし、閾値Lthは、図4に示されるように、設定メモリ28に格納されている。数式(1)を満たすマイナスエッジとプラスエッジとの長さは閾値Lthの範囲で近似している。
【0043】
Cxp−Cxm<Cxth・・・(2)
ただし、Cxpはプラスエッジの重心のx座標であり、Cxmはマイナスエッジの重心のx座標であり、Cxthは閾値である。ただし、閾値Cxthは、図4に示されるように、設定メモリ28に格納されている。数式(2)を満たすマイナスエッジとプラスエッジとの重心のx座標は閾値Cxthの範囲で近似している。
【0044】
Dg<Dth・・・(3)
ただし、Dgはマイナスエッジの重心とプラスエッジの重心との間の距離であり、Dthは閾値である。ただし、閾値Dthは、図4に示されるように、設定メモリ28に格納されている。数式(3)を満たすマイナスエッジとプラスエッジとの重心間距離は閾値Dth以内である。
【0045】
CPU24が上記三つの数式を使って抽出したマイナスエッジとプラスエッジの組み合わせの内、マイナスエッジは上瞼候補とされ、プラスエッジは下瞼候補とされる。
【0046】
つまり、数式(1)〜(3)を満たすマイナスエッジとプラスエッジの組み合わせは、ある程度、長さが等しく、位置が近く、重心のx座標が一致しているマイナスエッジとプラスエッジの組み合わせである。
【0047】
図5は、数式(1)〜(3)によりマイナスエッジとプラスエッジの組み合わせの一例を示す。プラスエッジとマイナスエッジとの組み合わせである候補1〜7が対象者の瞼の候補(エッジラインペア)である。
【0048】
次に、CPU24は、各瞼候補(エッジラインペア)に対して、その左右端に目尻・目頭領域を設定する。目尻・目頭領域とは、目尻又は目頭が存在する可能性が高い領域であり、本実施例では、瞼候補(エッジラインペア)の下瞼候補(プラスエッジ)の左右両端を中心に横5×縦5[画素]の領域とした。例えば、図6(a)(b)に示されるように、瞼候補2には、その下瞼候補(プラスエッジ)の左右端に目尻・目頭領域100,200が設定される。
【0049】
CPU24は、設定した各瞼候補のプラスエッジの左端を中心とした目尻・目頭領域に対して左端目尻・目頭パターン(図3(e))を使用して左端目尻・目頭評価値を算出する。また、CPU24は、設定した各瞼候補のプラスエッジの右端を中心とした目尻・目頭領域に対して右端目尻・目頭パターン(図3(f))を使用して右端目尻・目頭評価値を算出する。
【0050】
具体的に説明すると、CPU24は、図6(c)に示すように、ソーベルフィルタ処理を行う前の元画像の目尻・目頭領域に相当する領域に目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭評価値として算出する。CPU24は、各瞼候補(エッジラインペア)に対して左右端二つずつ目尻目頭評価値を算出する。
【0051】
CPU24は、算出した左端目尻・目頭評価値と右端目尻・目頭評価値との和が一番目に大きいものと二番目に大きいものとを左右瞼として判別する。
【0052】
以下、図7〜13を参照して、瞼検出装置50が、顔画像中の瞼を検出する動作の詳細を説明する。
【0053】
本発明の第1の実施形態に係る瞼検出装置50が行う瞼検出処理について図7に示すフローチャートを参照して説明する。
【0054】
コンピュータ14内のCPU24は、周期的に(例えば、1/30秒毎)に図7の瞼検出処理を開始する。
【0055】
先ず、瞼検出装置50の電源が投入されると、CPU24は、後述する前処理を行い、ドライバーの顔画像を取り込み、縦エッジラインを抽出し、また、横エッジラインを抽出する(ステップS100)。
【0056】
次に、CPU24は、後述する顔位置検出処理を行い、上記の前処理で抽出した縦エッジラインを使用して顔の左右端を検出し、横エッジラインを使用して顔の上下端を検出し、顔画像における顔の位置を検出する(ステップS200)。
【0057】
CPU24は、後述する瞼候補抽出処理を行い、上記の顔位置検出処理で検出した顔の位置を使用して顔画像中から瞼領域を抽出し、横エッジラインを抽出し、抽出した横エッジラインから上下瞼の候補となるエッジラインの対(エッジラインペア)を抽出する(ステップS300)。
【0058】
CPU24は、後述する瞼判別処理を行い、各瞼候補の左右端について目尻・目頭領域を設定し、設定した領域の目尻目頭評価値を算出し、算出した目尻目頭評価値に基づいて左右瞼を判別すると(ステップS400)、処理を終了する。
【0059】
このようにして、瞼検出処理によれば、顔画像を取得して、その画像から瞼を検出することを周期的に繰り返すことができる。
【0060】
次に、瞼検出処理のステップS100において行われる前処理を説明する。簡単に説明すると、前処理において、瞼検出装置50は、ドライバーの顔画像を撮像し、ソーベルフィルタを使用してエッジ検出を行う。
【0061】
以下、図8を参照して、前処理(S100)を詳細に説明する。
【0062】
先ず、CPU24は、カメラ10が撮影した対象者の顔画像をA/D変換器21を介して取り込み、画像メモリ22に格納するキャプチャ処理を行う(ステップS110)。
【0063】
次に、CPU24は、座標変換処理を行い、画像メモリ22に格納した各顔画像の画素を後述するソーベルフィルタ処理実行可能な程度に間引く処理を行う(ステップS120)。
【0064】
CPU24は、ROM23に格納されている縦エッジライン検出用オペレータ(図3(a))を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調した画像を生成する。また、CPU24は、ROM23に格納されている横エッジライン検出用オペレータ(図3(b))を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調した画像を生成する(ステップS130)。
【0065】
このようにして、前処理によれば、撮像した顔画像の縦エッジを強調した画像と横エッジを強調した画像を生成することができる。
【0066】
ここで、瞼検出処理のステップS200において行われる顔位置検出処理を説明する。簡単に説明すると顔位置検出処理において、瞼検出装置50は、前処理において生成した縦エッジを強調した画像と横エッジを強調した画像を用いて顔画像における顔の位置を検出する。
【0067】
以下、図9を参照して、顔位置検出処理(S200)を詳細に説明する。
【0068】
先ず、CPU24は、後述する顔左右端検出処理を行い、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する(ステップS210)。
【0069】
次に、CPU24は、後述する顔上下端検出処理を行い、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出すると(ステップS220)、顔位置検出処理を終了する。
【0070】
このようにして、顔位置検出処理によれば、顔の左右端と上下端を検出することによって顔画像における顔の位置を検出することができる。
【0071】
ここで、顔位置検出処理のステップS210において行われる顔左右端検出処理を説明する。簡単に説明すると顔左右端検出処理において、瞼検出装置50は、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する。
【0072】
以下、図10を参照して、顔左右端検出処理(S210)を詳細に説明する。
【0073】
先ず、CPU24は、縦エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を縦方向に投影してヒストグラムを作成する顔左右端検出用ヒストグラム作成処理を行う(ステップS211)。具体的に述べると、各座標の画素値を何段階かに分割し、x値毎に最も多く各座標の画素値を取る段階を決定する。x値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【0074】
CPU24は、ステップS211において作成したヒストグラムにおいて、ピークを取る点(以下、ピーク点)を抽出する(ステップS212)。
【0075】
CPU24は、ステップS212において抽出したピーク点からそのヒストグラム値が閾値以上のものを顔の左右端候補として抽出する(ステップS213)。
【0076】
CPU24は、ステップS213の処理の結果、顔の左右端の候補として、ヒストグラム値が閾値以上のピーク点が二つ抽出されたか否かを判別する(ステップS214)。
【0077】
ヒストグラム値が閾値以上のピーク点が二つ抽出されたと判別すると(ステップS214;YES)、CPU24は、処理をステップS216に進め、抽出した二つのピーク点を取る位置を顔の左右端と決定する(ステップS216)。
【0078】
ヒストグラム値が閾値以上の二つのピーク点が抽出されていないと判別すると(ステップS214;NO)、CPU24は、ピーク点から、二点の距離が人の顔幅として適切な間隔を有する二つのピーク点の組み合わせを抽出する(ステップS215)。
【0079】
CPU24は、抽出した二つのピーク点を取る位置を顔の左右端と決定する(ステップS216)。
【0080】
このようにして、顔左右端検出処理によれば、顔画像において顔の左右端を検出することができる。
【0081】
ここで、顔位置検出処理のステップS220において行われる顔上下端検出処理を説明する。簡単に説明すると顔上下端検出処理において、瞼検出装置50は、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出する。
【0082】
以下、図11を参照して、顔上下端検出処理(S220)を詳細に説明する。
【0083】
先ず、CPU24は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する顔上下端検出用ヒストグラム作成処理を行う(ステップS221)。具体的に述べると、各座標の画素値を何段階かに分割し、y値毎に最も多く各座標の画素値を取る段階を決定する。y値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【0084】
CPU24は、ステップS221において作成したヒストグラムにおいて、ピークを取る点(以下、ピーク点)を抽出する(ステップS222)。
【0085】
CPU24は、ステップS222において抽出したピーク点のヒストグラム値に基づいて各ピーク点を瞼・眉・口等に対応付ける(ステップS223)。
【0086】
CPU24は、ステップS223において瞼・眉・口等に対応付けられた各ピーク点に基づいて、顔画像における顔の上下端の位置を算出する(ステップS224)。例えば、検出した眉から3画素分上の位置を顔の上端とし、検出した口から3画素分下の位置を顔の下端(口と顎の間)とする。
【0087】
このようにして、顔上下端検出処理によれば、顔画像において顔の上下端の位置を算出することができる。
【0088】
ここで、瞼検出処理のステップS300において行われる瞼候補抽出処理を説明する。簡単に説明すると、瞼候補抽出処理において、瞼検出装置50は、顔位置検出処理で検出した顔の位置に基づいて瞼が存在すると推定される特定の領域を抽出する。その後、瞼検出装置50は、抽出した領域から横エッジ検出用ソーベルフィルタを用いて、プラスエッジとマイナスエッジを検出し、上記の(1)〜(3)式を満たすエッジラインペアを瞼の候補として抽出する。
【0089】
以下、図12を参照して瞼候補抽出処理(S300)を詳細に説明する。
【0090】
先ず、CPU24は、顔位置検出処理で検出した顔の左右端と上下端との位置と瞼領域設定パラメータに基づいて、画像メモリ22に格納した各顔画像から瞼が存在すると推定される領域の画像を抽出する(ステップS310)。
【0091】
CPU24は、ROM23に格納されている横エッジライン検出用オペレータ(図3(b))を用いてステップS310において抽出した領域の画像を処理して、その画像の各画素の微分値の絶対値が瞼検出用横ソーベル閾値以上である画素を横エッジラインと判別し、抽出する(ステップS320)。
【0092】
CPU24は、ステップS320において抽出した横エッジラインのうちの、プラスエッジの長さLp,マイナスエッジの長さLm,プラスエッジの重心のx座標Cxp,マイナスエッジのx座標Cxm,マイナスエッジの重心とプラスエッジの重心との間の距離Dgを算出する(ステップS330)。
【0093】
CPU24は、ステップS330において算出した各パラメータを用いて、上記の(1)〜(3)式を満たすマイナスエッジとプラスエッジの組み合わせを瞼の候補として抽出する(ステップS340)。
【0094】
このように、瞼候補抽出処理によれば、瞼が存在すると推定される領域において瞼の候補となるマイナスエッジとプラスエッジの組み合わせを抽出することができる。
【0095】
ここで、瞼検出処理のステップS400において行われる瞼判別処理を説明する。簡単に説明すると、瞼検出装置50は、瞼候補抽出処理で抽出した各瞼候補の左右端について目尻・目頭領域を設定し、設定した領域の目尻目頭評価値を算出し、算出した左右端の目尻目頭評価値の和が一番目に大きい瞼候補と二番目に大きい瞼候補を左右瞼として判別する。
【0096】
以下、図13を参照して、瞼判別処理(S400)を詳細に説明する。
【0097】
先ず、CPU24は、瞼候補抽出処理で抽出した瞼候補のうち、目尻目頭評価値を算出していない任意の瞼候補を選択する(ステップS410)。
【0098】
次に、CPU24は、選択した瞼候補のプラスエッジの左右端のうち、目尻目頭評価値を算出していない端を選択する(ステップS420)。
【0099】
CPU24は、選択した瞼候補のプラスエッジの選択した端を中心にして目尻目頭領域を設定する(ステップS430)。
【0100】
CPU24は、ソーベルフィルタ処理を行う前の元画像の目尻目頭領域に相当する領域に選択した端に応じた目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭評価値として算出する(ステップS440)。
【0101】
CPU24は、選択した瞼候補の左右両端について目尻目頭評価値を算出したか否かを判別する(ステップS450)。
【0102】
選択した瞼候補の左右両端について目尻目頭評価値を算出していないと判別すると(ステップS450;NO)、CPU24は、処理をステップS420に戻す。
【0103】
選択した瞼候補の左右両端について目尻目頭評価値を算出したと判別すると(ステップS450;YES)、CPU24は、全ての瞼候補に対して目尻目頭評価値を算出したか否かを判別する(ステップS460)。
【0104】
全ての瞼候補に対して目尻目頭評価値を算出していないと判別すると(ステップS460;NO)、CPU24は、処理をステップS410に戻す。
【0105】
全ての瞼候補に対して目尻目頭評価値を算出したと判別すると(ステップS460;YES)、CPU24は、各瞼候補に関して、その左端の目尻目頭評価値と右端の目尻目頭評価値との和を算出する。CPU24は、算出した左端の目尻目頭評価値と右端の目尻目頭評価値との和が一番目に大きい瞼候補と二番目に大きい瞼候補とを左右瞼と判別する(ステップS470)。
【0106】
このようにして、瞼判別処理によれば、各瞼候補の左右端が目尻と目頭とにどの程度似通っているかを評価する評価値を算出し、その評価値に基づいて左右瞼を判別することができる。
【0107】
以上、第1の実施形態における瞼検出装置50は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、瞼検出装置50は、その顔の位置に基づいて瞼が存在すると推定される領域を抽出し、その領域から瞼の候補となるエッジラインペアを抽出する。瞼検出装置50は、抽出した瞼候補(エッジラインペア)のうち、目尻と目頭とが含まれている可能性が高いものを瞼と判別する。よって、瞼検出装置50は、正確に短時間に瞼を検出することができる。
【0108】
(第2の実施形態)
第1の実施形態では、瞼検出装置50は、瞼候補から瞼を判別するときに各瞼候補について目尻目頭パターンと同じ広さの目尻目頭領域を設定し、その目尻目頭領域に目尻目頭パターンを対応させて目尻目頭評価値を算出した。しかし、第2の実施形態では、瞼検出装置50は、先ず、瞼候補から瞼を判別するときに各瞼候補について、図14(c)(d)に示すような、目尻目頭パターンより大きい広さの目尻目頭領域を設定する。次に、瞼検出装置50は、図14(d)に示すように、その目尻目頭領域の全域を目尻目頭パターンで走査させて、走査させた分の目尻目頭暫定評価値を算出し、最大値を取る目尻目頭暫定評価値を目尻目頭評価値とするようにしてもよい。ただし、第2の実施形態の目尻目頭領域は、瞼候補のプラスエッジの左右両端を中心にして横21×縦11[画素]の領域とした。
【0109】
なお、第2の実施形態に係る瞼検出装置の構成は、第1の実施形態に係る瞼検出装置の構成と同様である。また、第2の実施形態に係る瞼判別処理以外の処理は、第1の実施形態と同様である。
【0110】
以下、図15を参照して、第2の実施形態に係る瞼判別処理(S400)を詳細に説明する。
【0111】
先ず、CPU24は、瞼候補抽出処理で抽出した瞼候補のうち、目尻目頭評価値を算出していない任意の瞼候補を選択する(ステップS510)。
【0112】
次に、CPU24は、選択した瞼候補のプラスエッジの左右端のうち、目尻目頭評価値を算出していない端を選択する(ステップS520)。
【0113】
CPU24は、選択した瞼候補のプラスエッジの選択した端を中心にして目尻目頭領域を設定する(ステップS530)。
【0114】
CPU24は、設定した目尻目頭領域内の任意の点(x,y)を選択する(ステップS540)。
【0115】
CPU24は、ソーベルフィルタ処理を行う前の元画像の目尻目頭領域内の任意の点(x,y)を基点として、選択した端の目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭暫定評価値σ(x,y)として算出する(ステップS550)。
【0116】
CPU24は、目尻目頭領域全域において目尻目頭暫定評価値を算出したか否かを判別する(ステップS560)。
【0117】
目尻目頭領域全域において目尻目頭暫定評価値を算出していないと判別すると(ステップS560;NO)、CPU24は、処理をステップS540に戻す。
【0118】
目尻目頭領域全域において目尻目頭暫定評価値を算出していたと判別すると(ステップS560;YES)、CPU24は、算出した目尻目頭評価値のうちで最も値の大きいものを選択した瞼候補の選択した端の目尻目頭評価値とする(ステップS570)。
【0119】
CPU24は、選択した瞼候補の左右両端について目尻目頭評価値を算出したか否かを判別する(ステップS580)。
【0120】
選択した瞼候補の左右両端について目尻目頭評価値を算出していないと判別すると(ステップS580;NO)、CPU24は、処理をステップS520に戻す。
【0121】
選択した瞼候補の左右両端について目尻目頭評価値を算出したと判別すると(ステップS580;YES)、CPU24は、全ての瞼候補に対して目尻目頭評価値を算出したか否かを判別する(ステップS590)。
【0122】
全ての瞼候補に対して目尻目頭評価値を算出していないと判別すると(ステップS590;NO)、CPU24は、処理をステップS510に戻す。
【0123】
全ての瞼候補に対して目尻目頭評価値を算出したと判別すると(ステップS590;YES)、CPU24は、各瞼候補に関して、その左端の目尻目頭評価値と右端の目尻目頭評価値との和を算出する。CPU24は、算出した左端の目尻目頭評価値と右端の目尻目頭評価値との和が一番目に大きい瞼候補と二番目に大きい瞼候補とを左右瞼と判別する(ステップS600)。
【0124】
このようにして、第2の実施形態の瞼判別処理によれば、各瞼候補の左右端付近の領域から目尻と目頭とに似通っている部分を抽出し、その抽出した部分の評価値を算出し、その評価値に基づいて左右瞼を判別することができる。
【0125】
以上、第1の実施形態に係る瞼検出装置50は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、瞼検出装置50は、その顔の位置に基づいて瞼が存在すると推定される領域を抽出し、その領域から瞼の候補となるエッジラインペアを抽出する。瞼検出装置50は、抽出した各瞼候補(エッジラインペア)左右端について、目尻目頭パターンより大きい広さの目尻目頭領域を設定する。次に、瞼検出装置50は、その目尻目頭領域の全域を目尻目頭パターンで走査させて、走査させた分の目尻目頭暫定評価値を算出し、最大値を取る目尻目頭暫定評価値を目尻目頭評価値とし、目尻目頭評価値にもとづいて左右瞼を判別する。よって、瞼検出装置50は、各瞼候補から最も目尻と目頭とに似通った部分を抽出することができ、そのことによって、正確に短時間に瞼を検出することができる。
【0126】
なお、この発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【0127】
第1と第2の実施形態では、コンピュータ14は、カメラ10が撮影した対象者の顔の動画像について瞼検出処理を行った。しかし、応用例では、カメラ10以外の外部装置から取得した対象者の顔の動画像を画像メモリ22に格納しておき、その動画像について瞼検出処理を行ってもよい。また、複数の顔の画像について瞼検出処理を行ってもよい。
【0128】
また、第1と第2の実施形態では、顔位置検出処理(S200)において、顔画像にソーベルフィルタ処理を施し、その画素値に基づいたヒストグラムから顔位置を検出した。しかし、応用例では、特開2004−310396号公報に開示されているように、撮像画像を構成する各画素について時間微分し、さらに、この時間微分された画像を縦方向に投影してヒストグラムを作成し、エッジ抽出画像のヒストグラムと時間微分画像のヒストグラムとを合計して、合計したヒストグラムのピーク値の高いものを顔の両端として判別し、顔位置を検出するようにしてもよい。
【0129】
また、顔位置検出処理(S200)において、テンプレートマッチング法を用い、顔画像に予め登録してあるテンプレートにマッチングさせて、顔の位置を検出してもよい。
【0130】
また、上記実施形態では、目尻と目頭とを含む可能性が高いものを瞼と判別したが、目尻と目頭とのどちらか片方を含む可能性が高いものを瞼と判別してもよい。
【0131】
また、上記実施形態では、顔画像上で上瞼、下瞼に相当するラインを検出するために、ソーベルフィルタを用いて横エッジラインを抽出する手法を用いたが、他の手法を用いてエッジを検出してもよい。例えば、MAX−MINフィルタを用いてエッジを検出してもよい。
【0132】
また、上記実施形態では、下瞼候補(プラスエッジ)の左右端を中心に目尻・目頭領域を設定したが、左右端以外のプラスエッジ上の点を中心に目尻・目頭領域を設定してもよい。例えば、プラスエッジの端近傍が領域の2/3程度を占め、空白部分が1/3を占めるような部分に設定してもよい。
【0133】
なお、本発明に係る瞼検出装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、顔画像を入力可能な構成のコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読みとり可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する瞼検出装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有するストレージに当該プログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで瞼検出装置を構成してもよい。
【0134】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協働により実現する場合などには、アプリケーション部分のみを記録媒体やストレージに格納してもよい。
【0135】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上のサーバに前記プログラムを格納し、ネットワークを介して前記プログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【0136】
【図1】本発明の第1の実施形態に係る瞼検出装置の構成を示すブロック図である。
【図2】図1に示すコンピュータの構成を示すブロック図である。
【図3】ROMまたはRAMに格納されている各種データを説明するための図である。
【図4】ROMまたはRAMに格納されている各種データを説明するための図である。
【図5】本発明の第1の実施形態に係る処理の概要を説明するための図である。
【図6】本発明の第1の実施形態に係る処理の概要を説明するための図である。
【図7】本発明の第1の実施形態に係る瞼検出処理を説明するためのフローチャートである。
【図8】第1の実施形態の瞼検出処理における前処理を説明するためのフローチャートである。
【図9】第1の実施形態の瞼検出処理における顔位置検出処理を説明するためのフローチャートである。
【図10】顔位置検出処理における顔左右端検出処理を説明するためのフローチャートである。
【図11】顔位置検出処理における顔上下端検出処理を説明するためのフローチャートである。
【図12】第1の実施形態の瞼検出処理における瞼候補抽出処理を説明するためのフローチャートである。
【図13】第1の実施形態の瞼検出処理における瞼判別処理を説明するためのフローチャートである。
【図14】第2の実施形態の瞼検出処理の概要を説明するための図である。
【図15】第2の実施形態の瞼検出処理における瞼判別処理を説明するためのフローチャートである。
【符号の説明】
【0137】
10 カメラ
12 照明光源
14 コンピュータ
16 表示装置
21 A/D変換器
22 画像メモリ(顔画像記憶手段)
23 ROM(パターン記憶手段)
24 CPU(瞼候補抽出手段、パラメータ算出手段、瞼検出手段)
25 RAM
26 表示制御装置
28 設定メモリ
29 操作装置
50 瞼検出装置
【技術分野】
【0001】
本発明は、例えば車両等の移動体を運転しているドライバー等の眼を検出する瞼検出装置、瞼検出方法、及び、プログラムに関する。
【背景技術】
【0002】
現在、人の顔を含む画像から、人の顔や眼の位置を検出する技術が知られている。例えば、特許文献1には、顔画像から上瞼に対応するエッジラインと下瞼に対応するエッジラインを抽出し、そのテンプレートを生成し、生成したテンプレートを眼の候補にマッチングさせることによって継続的に正確に眼を検出することを可能にする技術が開示されている。
【0003】
しかし、特許文献1の技術では、テンプレートをマッチングさせるときに、相関値演算を行っており、処理時間がかかる。そのため、処理速度の遅い車載用CPUで演算することは困難である。また、専用の演算器を使用すれば、コストが高くなってしまう。
【特許文献1】特開2000−137792号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、上記問題点に鑑みてなされたものであり、少ない演算で瞼(眼)を検出できる瞼検出装置、瞼検出方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明の第1の観点に係る瞼検出装置は、
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段と、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出するパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段と、を備える、
ことを特徴とする。
【0006】
例えば、前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出してもよい。
【0007】
例えば、前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分の複数の画素の濃度の平均値を算出し、
算出した複数の画素の濃度の平均値に基づいて、前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出してもよい。
【0008】
例えば、前記ラインの両端を含む所定の部分と同じ広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出し、
前記瞼検出手段は、
前記差分に基づいて左右瞼を検出してもよい。
【0009】
例えば、前記ラインの両端を含む所定の部分より小さい広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記ラインの両端を含む所定の部分のうちの一部分に前記パターン記憶手段が記憶しているパターンを対応させ、前記顔画像記憶手段が記憶する画像の、前記パターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出する差分算出手段を備え、
前記差分算出手段に、前記ラインの両端を含む所定の部分を走査させ、算出した複数の差分のうちで最も大きいものを最大差分値とし、
前記瞼検出手段は、
前記最大差分値に基づいて左右瞼を検出してもよい。
【0010】
本発明の第2の観点に係る瞼検出方法は、
顔の画像を処理し、目の上瞼と下瞼の組み合わせの候補となるラインの対を抽出し、
抽出した上瞼と下瞼の組み合わせの候補となるラインの対が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを求め、
求めたパラメータに基づいて、対象者の瞼の位置を検出する、
ことを特徴とする。
【0011】
本発明の第3の観点に係るプログラムは、
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻とを含む可能性を示すパラメータを算出するパラメータ算出手段、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段、
として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、少ない演算で瞼を検出できる瞼検出装置、瞼検出方法、及び、プログラムを提供できる。
【発明を実施するための最良の形態】
【0013】
(第1の実施形態)
以下、本発明の第1の実施形態に係る瞼検出装置50について説明する。
【0014】
第1の実施形態の瞼検出装置50は、図1に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ10と、ドライバーの顔を照明する照明光源12と、ドライバーの瞼を検出するコンピュータ14と、コンピュータ14に接続された表示装置16と、から構成される。
【0015】
カメラ10は例えばCCDカメラ等から構成され、ドライバーの顔の階調画像を一定周期(例えば、1/30秒)で取得し、出力する。カメラ10から順次出力される顔画像は、ドライバーの顔(の画像)だけでなく、その背景(の画像)なども含む。
【0016】
表示装置16は、LCD(Liquid Crystal Display)又はCRT(Cathode Ray Tube)などから構成され、カメラ10で撮影された顔画像から生成された二値化画像などを表示する。
【0017】
コンピュータ14は、カメラ10により取得された顔動画像を処理してその瞼の位置を検出する装置である。コンピュータ14は、図2に示すように、A/D変換器21と、画像メモリ22と、ROM(Read Only Memory)23と、CPU(Central Processing Unit)24と、RAM(Random Access Memory)25と、表示制御装置26と、光源制御装置27と、設定メモリ28と、操作装置29と、から構成される。
【0018】
A/D(アナログ/ディジタル)変換器21は、カメラ10で撮影されたアナログ画像信号をディジタル信号に変換する。
【0019】
画像メモリ22は、カメラ10により生成され、A/D変換器21でディジタル化された画像データを格納する。
【0020】
ROM23は、CPUの動作を制御するためのプログラムを記憶する。また、ROM23は、後述する画像処理を実行するための様々な固定データを記憶する。
【0021】
CPU24は、コンピュータ14全体を制御する。また、CPU24は、ROM23に格納されているプログラムを実行することにより、カメラ10により取得された一連の顔画像を処理して瞼を検出する。
【0022】
RAM25は、CPU24のワークエリアとして機能する。
【0023】
表示制御装置26は、CPU24の制御のもと、映像データ等を表示装置16が出力可能なデータ形式に変換し、表示装置16に出力する。
【0024】
光源制御装置27は、照明光源12の点灯・消灯を制御する。
【0025】
設定メモリ28は、図4に示すような各種パラメータを予め格納する。各種パラメータは、CPU24が、RAM25に格納される顔画像から瞼を検出する際に使用される。詳細は、後述する。
【0026】
操作装置29は、ユーザから操作情報を受け付け、操作に応じた操作信号をCPU24に送出する。
【0027】
次に、ROM23に格納される固定データの例を、図3を参照しながら説明する。まず、ROM23は、図3(a)に示すような、縦エッジ検出用ソーベルフィルタのオペレータを格納する。縦エッジ検出用ソーベルフィルタは、図3(c)に示すような横方向の濃淡差を強調するためのオペレータである。
【0028】
また、ROM23は、図3(b)に示すような、横エッジ検出用ソーベルフィルタのオペレータを格納する。横エッジ検出用ソーベルフィルタは、図3(d)に示すような横方向の濃淡差を強調するためのオペレータである。
【0029】
ROM23は、図3(e)に示すような、左端用目尻・目頭パターンを格納する。左端用目尻・目頭パターンは、実際の目尻・目頭の画像から作成され、目尻・目頭周辺の肌を表す部分と眼を表す部分とから構成される。図では、白いマスの部分が肌を表す部分であり、黒いマスの部分が眼を表す部分である。左端用目尻・目頭パターンは、実際のエッジラインの左端付近の画像が目尻、又は、目頭にどの程度似通っているかを判別するためのものである。
【0030】
ROM23は、図3(f)に示すような、右端用目尻・目頭パターンを格納する。右端用目尻・目頭パターンは、実際の目尻・目頭の画像から作成され、目尻・目頭周辺の肌を表す部分と眼を表す部分とから構成される。図では、白いマスの部分が肌を表す部分(以下、肌部分)であり、黒いマスの部分が眼を表す部分(以下、眼部分)である。右端用目尻・目頭パターンは、実際のエッジラインの右端付近の画像が目尻、又は、目頭にどの程度似通っているかを判別するためのものである。
【0031】
設定メモリ28に格納される各種パラメータの例を、図4を参照しながら説明する。
先ず、瞼検出用横ソーベル閾値は、顔画像から顔の瞼領域を抽出する際に横エッジ検出用ソーベルフィルタを用いて処理した各画素の輝度値の絶対値から、横エッジラインか否かを判別するための閾値である。
瞼領域設定パラメータa,bは、検出された顔位置から瞼が存在すると推定される瞼領域を算出するためのパラメータである。
閾値Lth,Cxth,Dthは、瞼候補となるエッジラインペアを抽出するために使用する閾値である。
【0032】
以下、上記構成を有する第1の実施形態に係る瞼検出装置50の動作を説明する。
【0033】
まず、図3〜6を参照して、瞼検出装置50が、顔画像中の瞼を検出する動作の概要を説明する。
【0034】
カメラ10は、図5(a)に示すような対象者の顔画像を所定周期(例えば、1/30秒周期)で撮影して顔画像を出力する。出力された顔画像は画像メモリ22に順次格納される。
【0035】
次に、CPU24は、画像メモリ22に格納されている顔画像を順次読み出し、以下の処理を行う。
【0036】
先ず、CPU24は、縦エッジ検出用ソーベルフィルタ(図3(a))を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の左右端を検出する。また、CPU24は、横エッジ検出用ソーベルフィルタ(図3(b))を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の上下端を検出する。
【0037】
例えば、図5(a)に示す顔画像の場合、顔の左右端は、x=i,jであり、上下端は、y=m,nである。顔の左右端と上下端から、顔の位置が検出できる。
【0038】
CPU24は、設定メモリ28に格納されているパラメータと検出した顔位置に基づいて図5(b)に示すような、瞼が含まれると推定される瞼領域を抽出する。図5(a)に示す図を用いて、具体的に説明すると、顔の左右端が、x=i,jであり、上下端が、y=m,nである場合、図4に示されるような、設定メモリ28に格納される瞼領域設定パラメータa,bを用いて、瞼領域は、i≦x≦j且つv≦y≦w(ただし、v=m+b,w=n−a)で表される。
【0039】
CPU24は、横エッジ検出用ソーベルフィルタ(図3(b))を用いて瞼領域の画像内の横エッジラインを抽出する処理を行う。ここで、CPU24は、横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値の絶対値が瞼検出用横ソーベル閾値(図4)以上である画素を横エッジラインと判別する。
【0040】
その結果、図5(c)に示すように、y軸方向に明るい画素から暗い画素に移るエッジラインがマイナスエッジとして表され、y軸方向に光度が暗い画素から明るい画素に移るエッジラインがプラスエッジとして現れる。なお、図面上は、マイナスエッジを実線で、プラスエッジを破線で表す。
【0041】
次に、CPU24は、求めたマイナスエッジラインとプラスエッジラインとから、次の三つの数式を満たすマイナスエッジとプラスエッジの組み合わせ(エッジラインペア)を上瞼と下瞼の候補として抽出する。
【0042】
Lp−Lm<Lth・・・(1)
ただし、Lpはプラスエッジの長さを表す値であり、Lmはマイナスエッジの長さを表す値であり、Lthは閾値である。ただし、閾値Lthは、図4に示されるように、設定メモリ28に格納されている。数式(1)を満たすマイナスエッジとプラスエッジとの長さは閾値Lthの範囲で近似している。
【0043】
Cxp−Cxm<Cxth・・・(2)
ただし、Cxpはプラスエッジの重心のx座標であり、Cxmはマイナスエッジの重心のx座標であり、Cxthは閾値である。ただし、閾値Cxthは、図4に示されるように、設定メモリ28に格納されている。数式(2)を満たすマイナスエッジとプラスエッジとの重心のx座標は閾値Cxthの範囲で近似している。
【0044】
Dg<Dth・・・(3)
ただし、Dgはマイナスエッジの重心とプラスエッジの重心との間の距離であり、Dthは閾値である。ただし、閾値Dthは、図4に示されるように、設定メモリ28に格納されている。数式(3)を満たすマイナスエッジとプラスエッジとの重心間距離は閾値Dth以内である。
【0045】
CPU24が上記三つの数式を使って抽出したマイナスエッジとプラスエッジの組み合わせの内、マイナスエッジは上瞼候補とされ、プラスエッジは下瞼候補とされる。
【0046】
つまり、数式(1)〜(3)を満たすマイナスエッジとプラスエッジの組み合わせは、ある程度、長さが等しく、位置が近く、重心のx座標が一致しているマイナスエッジとプラスエッジの組み合わせである。
【0047】
図5は、数式(1)〜(3)によりマイナスエッジとプラスエッジの組み合わせの一例を示す。プラスエッジとマイナスエッジとの組み合わせである候補1〜7が対象者の瞼の候補(エッジラインペア)である。
【0048】
次に、CPU24は、各瞼候補(エッジラインペア)に対して、その左右端に目尻・目頭領域を設定する。目尻・目頭領域とは、目尻又は目頭が存在する可能性が高い領域であり、本実施例では、瞼候補(エッジラインペア)の下瞼候補(プラスエッジ)の左右両端を中心に横5×縦5[画素]の領域とした。例えば、図6(a)(b)に示されるように、瞼候補2には、その下瞼候補(プラスエッジ)の左右端に目尻・目頭領域100,200が設定される。
【0049】
CPU24は、設定した各瞼候補のプラスエッジの左端を中心とした目尻・目頭領域に対して左端目尻・目頭パターン(図3(e))を使用して左端目尻・目頭評価値を算出する。また、CPU24は、設定した各瞼候補のプラスエッジの右端を中心とした目尻・目頭領域に対して右端目尻・目頭パターン(図3(f))を使用して右端目尻・目頭評価値を算出する。
【0050】
具体的に説明すると、CPU24は、図6(c)に示すように、ソーベルフィルタ処理を行う前の元画像の目尻・目頭領域に相当する領域に目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭評価値として算出する。CPU24は、各瞼候補(エッジラインペア)に対して左右端二つずつ目尻目頭評価値を算出する。
【0051】
CPU24は、算出した左端目尻・目頭評価値と右端目尻・目頭評価値との和が一番目に大きいものと二番目に大きいものとを左右瞼として判別する。
【0052】
以下、図7〜13を参照して、瞼検出装置50が、顔画像中の瞼を検出する動作の詳細を説明する。
【0053】
本発明の第1の実施形態に係る瞼検出装置50が行う瞼検出処理について図7に示すフローチャートを参照して説明する。
【0054】
コンピュータ14内のCPU24は、周期的に(例えば、1/30秒毎)に図7の瞼検出処理を開始する。
【0055】
先ず、瞼検出装置50の電源が投入されると、CPU24は、後述する前処理を行い、ドライバーの顔画像を取り込み、縦エッジラインを抽出し、また、横エッジラインを抽出する(ステップS100)。
【0056】
次に、CPU24は、後述する顔位置検出処理を行い、上記の前処理で抽出した縦エッジラインを使用して顔の左右端を検出し、横エッジラインを使用して顔の上下端を検出し、顔画像における顔の位置を検出する(ステップS200)。
【0057】
CPU24は、後述する瞼候補抽出処理を行い、上記の顔位置検出処理で検出した顔の位置を使用して顔画像中から瞼領域を抽出し、横エッジラインを抽出し、抽出した横エッジラインから上下瞼の候補となるエッジラインの対(エッジラインペア)を抽出する(ステップS300)。
【0058】
CPU24は、後述する瞼判別処理を行い、各瞼候補の左右端について目尻・目頭領域を設定し、設定した領域の目尻目頭評価値を算出し、算出した目尻目頭評価値に基づいて左右瞼を判別すると(ステップS400)、処理を終了する。
【0059】
このようにして、瞼検出処理によれば、顔画像を取得して、その画像から瞼を検出することを周期的に繰り返すことができる。
【0060】
次に、瞼検出処理のステップS100において行われる前処理を説明する。簡単に説明すると、前処理において、瞼検出装置50は、ドライバーの顔画像を撮像し、ソーベルフィルタを使用してエッジ検出を行う。
【0061】
以下、図8を参照して、前処理(S100)を詳細に説明する。
【0062】
先ず、CPU24は、カメラ10が撮影した対象者の顔画像をA/D変換器21を介して取り込み、画像メモリ22に格納するキャプチャ処理を行う(ステップS110)。
【0063】
次に、CPU24は、座標変換処理を行い、画像メモリ22に格納した各顔画像の画素を後述するソーベルフィルタ処理実行可能な程度に間引く処理を行う(ステップS120)。
【0064】
CPU24は、ROM23に格納されている縦エッジライン検出用オペレータ(図3(a))を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調した画像を生成する。また、CPU24は、ROM23に格納されている横エッジライン検出用オペレータ(図3(b))を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調した画像を生成する(ステップS130)。
【0065】
このようにして、前処理によれば、撮像した顔画像の縦エッジを強調した画像と横エッジを強調した画像を生成することができる。
【0066】
ここで、瞼検出処理のステップS200において行われる顔位置検出処理を説明する。簡単に説明すると顔位置検出処理において、瞼検出装置50は、前処理において生成した縦エッジを強調した画像と横エッジを強調した画像を用いて顔画像における顔の位置を検出する。
【0067】
以下、図9を参照して、顔位置検出処理(S200)を詳細に説明する。
【0068】
先ず、CPU24は、後述する顔左右端検出処理を行い、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する(ステップS210)。
【0069】
次に、CPU24は、後述する顔上下端検出処理を行い、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出すると(ステップS220)、顔位置検出処理を終了する。
【0070】
このようにして、顔位置検出処理によれば、顔の左右端と上下端を検出することによって顔画像における顔の位置を検出することができる。
【0071】
ここで、顔位置検出処理のステップS210において行われる顔左右端検出処理を説明する。簡単に説明すると顔左右端検出処理において、瞼検出装置50は、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する。
【0072】
以下、図10を参照して、顔左右端検出処理(S210)を詳細に説明する。
【0073】
先ず、CPU24は、縦エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を縦方向に投影してヒストグラムを作成する顔左右端検出用ヒストグラム作成処理を行う(ステップS211)。具体的に述べると、各座標の画素値を何段階かに分割し、x値毎に最も多く各座標の画素値を取る段階を決定する。x値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【0074】
CPU24は、ステップS211において作成したヒストグラムにおいて、ピークを取る点(以下、ピーク点)を抽出する(ステップS212)。
【0075】
CPU24は、ステップS212において抽出したピーク点からそのヒストグラム値が閾値以上のものを顔の左右端候補として抽出する(ステップS213)。
【0076】
CPU24は、ステップS213の処理の結果、顔の左右端の候補として、ヒストグラム値が閾値以上のピーク点が二つ抽出されたか否かを判別する(ステップS214)。
【0077】
ヒストグラム値が閾値以上のピーク点が二つ抽出されたと判別すると(ステップS214;YES)、CPU24は、処理をステップS216に進め、抽出した二つのピーク点を取る位置を顔の左右端と決定する(ステップS216)。
【0078】
ヒストグラム値が閾値以上の二つのピーク点が抽出されていないと判別すると(ステップS214;NO)、CPU24は、ピーク点から、二点の距離が人の顔幅として適切な間隔を有する二つのピーク点の組み合わせを抽出する(ステップS215)。
【0079】
CPU24は、抽出した二つのピーク点を取る位置を顔の左右端と決定する(ステップS216)。
【0080】
このようにして、顔左右端検出処理によれば、顔画像において顔の左右端を検出することができる。
【0081】
ここで、顔位置検出処理のステップS220において行われる顔上下端検出処理を説明する。簡単に説明すると顔上下端検出処理において、瞼検出装置50は、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出する。
【0082】
以下、図11を参照して、顔上下端検出処理(S220)を詳細に説明する。
【0083】
先ず、CPU24は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する顔上下端検出用ヒストグラム作成処理を行う(ステップS221)。具体的に述べると、各座標の画素値を何段階かに分割し、y値毎に最も多く各座標の画素値を取る段階を決定する。y値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【0084】
CPU24は、ステップS221において作成したヒストグラムにおいて、ピークを取る点(以下、ピーク点)を抽出する(ステップS222)。
【0085】
CPU24は、ステップS222において抽出したピーク点のヒストグラム値に基づいて各ピーク点を瞼・眉・口等に対応付ける(ステップS223)。
【0086】
CPU24は、ステップS223において瞼・眉・口等に対応付けられた各ピーク点に基づいて、顔画像における顔の上下端の位置を算出する(ステップS224)。例えば、検出した眉から3画素分上の位置を顔の上端とし、検出した口から3画素分下の位置を顔の下端(口と顎の間)とする。
【0087】
このようにして、顔上下端検出処理によれば、顔画像において顔の上下端の位置を算出することができる。
【0088】
ここで、瞼検出処理のステップS300において行われる瞼候補抽出処理を説明する。簡単に説明すると、瞼候補抽出処理において、瞼検出装置50は、顔位置検出処理で検出した顔の位置に基づいて瞼が存在すると推定される特定の領域を抽出する。その後、瞼検出装置50は、抽出した領域から横エッジ検出用ソーベルフィルタを用いて、プラスエッジとマイナスエッジを検出し、上記の(1)〜(3)式を満たすエッジラインペアを瞼の候補として抽出する。
【0089】
以下、図12を参照して瞼候補抽出処理(S300)を詳細に説明する。
【0090】
先ず、CPU24は、顔位置検出処理で検出した顔の左右端と上下端との位置と瞼領域設定パラメータに基づいて、画像メモリ22に格納した各顔画像から瞼が存在すると推定される領域の画像を抽出する(ステップS310)。
【0091】
CPU24は、ROM23に格納されている横エッジライン検出用オペレータ(図3(b))を用いてステップS310において抽出した領域の画像を処理して、その画像の各画素の微分値の絶対値が瞼検出用横ソーベル閾値以上である画素を横エッジラインと判別し、抽出する(ステップS320)。
【0092】
CPU24は、ステップS320において抽出した横エッジラインのうちの、プラスエッジの長さLp,マイナスエッジの長さLm,プラスエッジの重心のx座標Cxp,マイナスエッジのx座標Cxm,マイナスエッジの重心とプラスエッジの重心との間の距離Dgを算出する(ステップS330)。
【0093】
CPU24は、ステップS330において算出した各パラメータを用いて、上記の(1)〜(3)式を満たすマイナスエッジとプラスエッジの組み合わせを瞼の候補として抽出する(ステップS340)。
【0094】
このように、瞼候補抽出処理によれば、瞼が存在すると推定される領域において瞼の候補となるマイナスエッジとプラスエッジの組み合わせを抽出することができる。
【0095】
ここで、瞼検出処理のステップS400において行われる瞼判別処理を説明する。簡単に説明すると、瞼検出装置50は、瞼候補抽出処理で抽出した各瞼候補の左右端について目尻・目頭領域を設定し、設定した領域の目尻目頭評価値を算出し、算出した左右端の目尻目頭評価値の和が一番目に大きい瞼候補と二番目に大きい瞼候補を左右瞼として判別する。
【0096】
以下、図13を参照して、瞼判別処理(S400)を詳細に説明する。
【0097】
先ず、CPU24は、瞼候補抽出処理で抽出した瞼候補のうち、目尻目頭評価値を算出していない任意の瞼候補を選択する(ステップS410)。
【0098】
次に、CPU24は、選択した瞼候補のプラスエッジの左右端のうち、目尻目頭評価値を算出していない端を選択する(ステップS420)。
【0099】
CPU24は、選択した瞼候補のプラスエッジの選択した端を中心にして目尻目頭領域を設定する(ステップS430)。
【0100】
CPU24は、ソーベルフィルタ処理を行う前の元画像の目尻目頭領域に相当する領域に選択した端に応じた目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭評価値として算出する(ステップS440)。
【0101】
CPU24は、選択した瞼候補の左右両端について目尻目頭評価値を算出したか否かを判別する(ステップS450)。
【0102】
選択した瞼候補の左右両端について目尻目頭評価値を算出していないと判別すると(ステップS450;NO)、CPU24は、処理をステップS420に戻す。
【0103】
選択した瞼候補の左右両端について目尻目頭評価値を算出したと判別すると(ステップS450;YES)、CPU24は、全ての瞼候補に対して目尻目頭評価値を算出したか否かを判別する(ステップS460)。
【0104】
全ての瞼候補に対して目尻目頭評価値を算出していないと判別すると(ステップS460;NO)、CPU24は、処理をステップS410に戻す。
【0105】
全ての瞼候補に対して目尻目頭評価値を算出したと判別すると(ステップS460;YES)、CPU24は、各瞼候補に関して、その左端の目尻目頭評価値と右端の目尻目頭評価値との和を算出する。CPU24は、算出した左端の目尻目頭評価値と右端の目尻目頭評価値との和が一番目に大きい瞼候補と二番目に大きい瞼候補とを左右瞼と判別する(ステップS470)。
【0106】
このようにして、瞼判別処理によれば、各瞼候補の左右端が目尻と目頭とにどの程度似通っているかを評価する評価値を算出し、その評価値に基づいて左右瞼を判別することができる。
【0107】
以上、第1の実施形態における瞼検出装置50は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、瞼検出装置50は、その顔の位置に基づいて瞼が存在すると推定される領域を抽出し、その領域から瞼の候補となるエッジラインペアを抽出する。瞼検出装置50は、抽出した瞼候補(エッジラインペア)のうち、目尻と目頭とが含まれている可能性が高いものを瞼と判別する。よって、瞼検出装置50は、正確に短時間に瞼を検出することができる。
【0108】
(第2の実施形態)
第1の実施形態では、瞼検出装置50は、瞼候補から瞼を判別するときに各瞼候補について目尻目頭パターンと同じ広さの目尻目頭領域を設定し、その目尻目頭領域に目尻目頭パターンを対応させて目尻目頭評価値を算出した。しかし、第2の実施形態では、瞼検出装置50は、先ず、瞼候補から瞼を判別するときに各瞼候補について、図14(c)(d)に示すような、目尻目頭パターンより大きい広さの目尻目頭領域を設定する。次に、瞼検出装置50は、図14(d)に示すように、その目尻目頭領域の全域を目尻目頭パターンで走査させて、走査させた分の目尻目頭暫定評価値を算出し、最大値を取る目尻目頭暫定評価値を目尻目頭評価値とするようにしてもよい。ただし、第2の実施形態の目尻目頭領域は、瞼候補のプラスエッジの左右両端を中心にして横21×縦11[画素]の領域とした。
【0109】
なお、第2の実施形態に係る瞼検出装置の構成は、第1の実施形態に係る瞼検出装置の構成と同様である。また、第2の実施形態に係る瞼判別処理以外の処理は、第1の実施形態と同様である。
【0110】
以下、図15を参照して、第2の実施形態に係る瞼判別処理(S400)を詳細に説明する。
【0111】
先ず、CPU24は、瞼候補抽出処理で抽出した瞼候補のうち、目尻目頭評価値を算出していない任意の瞼候補を選択する(ステップS510)。
【0112】
次に、CPU24は、選択した瞼候補のプラスエッジの左右端のうち、目尻目頭評価値を算出していない端を選択する(ステップS520)。
【0113】
CPU24は、選択した瞼候補のプラスエッジの選択した端を中心にして目尻目頭領域を設定する(ステップS530)。
【0114】
CPU24は、設定した目尻目頭領域内の任意の点(x,y)を選択する(ステップS540)。
【0115】
CPU24は、ソーベルフィルタ処理を行う前の元画像の目尻目頭領域内の任意の点(x,y)を基点として、選択した端の目尻・目頭パターンを配置する。次に、CPU24は、パターンの肌部分に相当する部分の元画像の輝度の平均値とパターンの眼部分に相当する部分の元画像の輝度の平均値とを算出する。CPU24は、算出した肌部分に相当する部分の元画像の輝度の平均値から眼部分に相当する部分の元画像の輝度の平均値を引いた値を目尻目頭暫定評価値σ(x,y)として算出する(ステップS550)。
【0116】
CPU24は、目尻目頭領域全域において目尻目頭暫定評価値を算出したか否かを判別する(ステップS560)。
【0117】
目尻目頭領域全域において目尻目頭暫定評価値を算出していないと判別すると(ステップS560;NO)、CPU24は、処理をステップS540に戻す。
【0118】
目尻目頭領域全域において目尻目頭暫定評価値を算出していたと判別すると(ステップS560;YES)、CPU24は、算出した目尻目頭評価値のうちで最も値の大きいものを選択した瞼候補の選択した端の目尻目頭評価値とする(ステップS570)。
【0119】
CPU24は、選択した瞼候補の左右両端について目尻目頭評価値を算出したか否かを判別する(ステップS580)。
【0120】
選択した瞼候補の左右両端について目尻目頭評価値を算出していないと判別すると(ステップS580;NO)、CPU24は、処理をステップS520に戻す。
【0121】
選択した瞼候補の左右両端について目尻目頭評価値を算出したと判別すると(ステップS580;YES)、CPU24は、全ての瞼候補に対して目尻目頭評価値を算出したか否かを判別する(ステップS590)。
【0122】
全ての瞼候補に対して目尻目頭評価値を算出していないと判別すると(ステップS590;NO)、CPU24は、処理をステップS510に戻す。
【0123】
全ての瞼候補に対して目尻目頭評価値を算出したと判別すると(ステップS590;YES)、CPU24は、各瞼候補に関して、その左端の目尻目頭評価値と右端の目尻目頭評価値との和を算出する。CPU24は、算出した左端の目尻目頭評価値と右端の目尻目頭評価値との和が一番目に大きい瞼候補と二番目に大きい瞼候補とを左右瞼と判別する(ステップS600)。
【0124】
このようにして、第2の実施形態の瞼判別処理によれば、各瞼候補の左右端付近の領域から目尻と目頭とに似通っている部分を抽出し、その抽出した部分の評価値を算出し、その評価値に基づいて左右瞼を判別することができる。
【0125】
以上、第1の実施形態に係る瞼検出装置50は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、瞼検出装置50は、その顔の位置に基づいて瞼が存在すると推定される領域を抽出し、その領域から瞼の候補となるエッジラインペアを抽出する。瞼検出装置50は、抽出した各瞼候補(エッジラインペア)左右端について、目尻目頭パターンより大きい広さの目尻目頭領域を設定する。次に、瞼検出装置50は、その目尻目頭領域の全域を目尻目頭パターンで走査させて、走査させた分の目尻目頭暫定評価値を算出し、最大値を取る目尻目頭暫定評価値を目尻目頭評価値とし、目尻目頭評価値にもとづいて左右瞼を判別する。よって、瞼検出装置50は、各瞼候補から最も目尻と目頭とに似通った部分を抽出することができ、そのことによって、正確に短時間に瞼を検出することができる。
【0126】
なお、この発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【0127】
第1と第2の実施形態では、コンピュータ14は、カメラ10が撮影した対象者の顔の動画像について瞼検出処理を行った。しかし、応用例では、カメラ10以外の外部装置から取得した対象者の顔の動画像を画像メモリ22に格納しておき、その動画像について瞼検出処理を行ってもよい。また、複数の顔の画像について瞼検出処理を行ってもよい。
【0128】
また、第1と第2の実施形態では、顔位置検出処理(S200)において、顔画像にソーベルフィルタ処理を施し、その画素値に基づいたヒストグラムから顔位置を検出した。しかし、応用例では、特開2004−310396号公報に開示されているように、撮像画像を構成する各画素について時間微分し、さらに、この時間微分された画像を縦方向に投影してヒストグラムを作成し、エッジ抽出画像のヒストグラムと時間微分画像のヒストグラムとを合計して、合計したヒストグラムのピーク値の高いものを顔の両端として判別し、顔位置を検出するようにしてもよい。
【0129】
また、顔位置検出処理(S200)において、テンプレートマッチング法を用い、顔画像に予め登録してあるテンプレートにマッチングさせて、顔の位置を検出してもよい。
【0130】
また、上記実施形態では、目尻と目頭とを含む可能性が高いものを瞼と判別したが、目尻と目頭とのどちらか片方を含む可能性が高いものを瞼と判別してもよい。
【0131】
また、上記実施形態では、顔画像上で上瞼、下瞼に相当するラインを検出するために、ソーベルフィルタを用いて横エッジラインを抽出する手法を用いたが、他の手法を用いてエッジを検出してもよい。例えば、MAX−MINフィルタを用いてエッジを検出してもよい。
【0132】
また、上記実施形態では、下瞼候補(プラスエッジ)の左右端を中心に目尻・目頭領域を設定したが、左右端以外のプラスエッジ上の点を中心に目尻・目頭領域を設定してもよい。例えば、プラスエッジの端近傍が領域の2/3程度を占め、空白部分が1/3を占めるような部分に設定してもよい。
【0133】
なお、本発明に係る瞼検出装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、顔画像を入力可能な構成のコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読みとり可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する瞼検出装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有するストレージに当該プログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで瞼検出装置を構成してもよい。
【0134】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協働により実現する場合などには、アプリケーション部分のみを記録媒体やストレージに格納してもよい。
【0135】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上のサーバに前記プログラムを格納し、ネットワークを介して前記プログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【0136】
【図1】本発明の第1の実施形態に係る瞼検出装置の構成を示すブロック図である。
【図2】図1に示すコンピュータの構成を示すブロック図である。
【図3】ROMまたはRAMに格納されている各種データを説明するための図である。
【図4】ROMまたはRAMに格納されている各種データを説明するための図である。
【図5】本発明の第1の実施形態に係る処理の概要を説明するための図である。
【図6】本発明の第1の実施形態に係る処理の概要を説明するための図である。
【図7】本発明の第1の実施形態に係る瞼検出処理を説明するためのフローチャートである。
【図8】第1の実施形態の瞼検出処理における前処理を説明するためのフローチャートである。
【図9】第1の実施形態の瞼検出処理における顔位置検出処理を説明するためのフローチャートである。
【図10】顔位置検出処理における顔左右端検出処理を説明するためのフローチャートである。
【図11】顔位置検出処理における顔上下端検出処理を説明するためのフローチャートである。
【図12】第1の実施形態の瞼検出処理における瞼候補抽出処理を説明するためのフローチャートである。
【図13】第1の実施形態の瞼検出処理における瞼判別処理を説明するためのフローチャートである。
【図14】第2の実施形態の瞼検出処理の概要を説明するための図である。
【図15】第2の実施形態の瞼検出処理における瞼判別処理を説明するためのフローチャートである。
【符号の説明】
【0137】
10 カメラ
12 照明光源
14 コンピュータ
16 表示装置
21 A/D変換器
22 画像メモリ(顔画像記憶手段)
23 ROM(パターン記憶手段)
24 CPU(瞼候補抽出手段、パラメータ算出手段、瞼検出手段)
25 RAM
26 表示制御装置
28 設定メモリ
29 操作装置
50 瞼検出装置
【特許請求の範囲】
【請求項1】
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段と、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出するパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段と、を備える、
ことを特徴とする瞼検出装置。
【請求項2】
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出する、
ことを特徴とする請求項1に記載の瞼検出装置。
【請求項3】
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分の複数の画素の濃度の平均値を算出し、
算出した複数の画素の濃度の平均値に基づいて、前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出する、
ことを特徴とする請求項2に記載の瞼検出装置。
【請求項4】
前記ラインの両端を含む所定の部分と同じ広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出し、
前記瞼検出手段は、
前記差分に基づいて左右瞼を検出する、
ことを特徴とする請求項3に記載の瞼検出装置。
【請求項5】
前記ラインの両端を含む所定の部分より小さい広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記ラインの両端を含む所定の部分のうちの一部分に前記パターン記憶手段が記憶しているパターンを対応させ、前記顔画像記憶手段が記憶する画像の、前記パターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出する差分算出手段を備え、
前記差分算出手段に、前記ラインの両端を含む所定の部分を走査させ、算出した複数の差分のうちで最も大きいものを最大差分値とし、
前記瞼検出手段は、
前記最大差分値に基づいて左右瞼を検出する、
ことを特徴とする請求項3に記載の瞼検出装置。
【請求項6】
顔の画像を処理し、目の上瞼と下瞼の組み合わせの候補となるラインの対を抽出し、
抽出した上瞼と下瞼の組み合わせの候補となるラインの対が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを求め、
求めたパラメータに基づいて、対象者の瞼の位置を検出する、
ことを特徴とする瞼検出方法。
【請求項7】
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻とを含む可能性を示すパラメータを算出するパラメータ算出手段、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段、
として機能させることを特徴とするプログラム。
【請求項1】
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段と、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出するパラメータ算出手段と、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段と、を備える、
ことを特徴とする瞼検出装置。
【請求項2】
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出する、
ことを特徴とする請求項1に記載の瞼検出装置。
【請求項3】
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分の複数の画素の濃度の平均値を算出し、
算出した複数の画素の濃度の平均値に基づいて、前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出した下瞼の候補であるラインの両端を含む所定の部分が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを算出する、
ことを特徴とする請求項2に記載の瞼検出装置。
【請求項4】
前記ラインの両端を含む所定の部分と同じ広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出し、
前記瞼検出手段は、
前記差分に基づいて左右瞼を検出する、
ことを特徴とする請求項3に記載の瞼検出装置。
【請求項5】
前記ラインの両端を含む所定の部分より小さい広さの領域において、肌の部分に対応する肌領域と眼の部分に対応する眼領域とをあらわすパターンを記憶するパターン記憶手段をさらに備え、
前記パラメータ算出手段は、
前記ラインの両端を含む所定の部分のうちの一部分に前記パターン記憶手段が記憶しているパターンを対応させ、前記顔画像記憶手段が記憶する画像の、前記パターンがあらわす肌領域に対応する部分の複数の画素の濃度の平均値と、前記顔画像記憶手段が記憶する画像の、前記パターン記憶手段が記憶するパターンがあらわす眼領域に対応する部分の複数の画素の濃度の平均値と、の差分を算出する差分算出手段を備え、
前記差分算出手段に、前記ラインの両端を含む所定の部分を走査させ、算出した複数の差分のうちで最も大きいものを最大差分値とし、
前記瞼検出手段は、
前記最大差分値に基づいて左右瞼を検出する、
ことを特徴とする請求項3に記載の瞼検出装置。
【請求項6】
顔の画像を処理し、目の上瞼と下瞼の組み合わせの候補となるラインの対を抽出し、
抽出した上瞼と下瞼の組み合わせの候補となるラインの対が目頭と目尻との少なくとも一方を含む可能性を示すパラメータを求め、
求めたパラメータに基づいて、対象者の瞼の位置を検出する、
ことを特徴とする瞼検出方法。
【請求項7】
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶されている画像を処理し、上瞼に対応するラインと下瞼に対応するラインとの組み合わせの候補となるラインの対を抽出する瞼候補抽出手段、
前記顔画像記憶手段が記憶する画像の、前記瞼候補抽出手段が抽出したラインの対に対応する部分が目頭と目尻とを含む可能性を示すパラメータを算出するパラメータ算出手段、
前記パラメータ算出手段が算出したパラメータに基づいて、対象者の瞼の位置を検出する瞼検出手段、
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2008−226125(P2008−226125A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−66780(P2007−66780)
【出願日】平成19年3月15日(2007.3.15)
【出願人】(000000011)アイシン精機株式会社 (5,421)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願日】平成19年3月15日(2007.3.15)
【出願人】(000000011)アイシン精機株式会社 (5,421)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】
[ Back to top ]