(57)【要約】【課題】目の位置の探索領域を間違えることのない目検出装置、目検出方法およびプログラムを提供する。【解決手段】カメラ１０は対象者の顔を撮像し、コンピュータ１４のＣＰＵ２４はその動画像を取得し、画像メモリ２２に格納する。ＣＰＵ２４は、メモリ２２に格納された動画像を処理し、ヒストグラム値およびそのピークに基づいて対象者の鼻孔を検索し、鼻孔が検索できたならば上瞼および下瞼を検索する領域を決定し、当該領域から対象者の上瞼と下瞼との組み合わせの候補となるエッジラインを抽出する。ＣＰＵ２４は、抽出したエッジラインの内、上瞼の候補の重心が上下方向に移動し、下瞼の候補の重心が移動しないエッジラインを対象者の瞼と判別する。【選択図】図２
2008226073.tif 000002
【特許請求の範囲】
【請求項１】
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶した顔画像に基づいて、該顔画像内の目の下の位置の候補を求める目下位置候補検出手段と、
前記顔画像記憶手段に記憶されている前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、鼻孔が検出できたときに、検出した鼻孔の位置を基準として、前記目の下の位置の候補のうちから顔画像の目の下に位置するものを選択する目下位置選択手段と、
前記目下位置選択手段が選択した目下位置に基づいて定められた目探索領域内において、対象者の目に対応する画像を検出する目検出手段と、
から構成されることを特徴とする目検出装置。
【請求項２】
前記目下位置候補検出手段は、
前記顔画像記憶手段に記憶されている顔画像を横ソーベルフィルタで処理して横ソーベル画像を生成する横ソーベル手段と、
前記横ソーベル手段により生成された横ソーベル画像の各横ライン上の画素の階調値のヒストグラムを生成する手段と、
階調値のヒストグラムに基づいて、目の下を通る横ラインの候補を求め、該横ラインの位置を目下位置の候補として出力する目下位置候補出力手段と、
から構成されることを特徴とする請求項１に記載の目検出装置。
【請求項３】
前記目下位置候補出力手段は、
階調値のヒストグラムに基づいて、ヒストグラムのピーク値の高いものを所定数抽出して、抽出したヒストグラムが得られた位置を目下位置候補とする、
ことを特徴とする請求項２に記載の目検出装置。
【請求項４】
前記目下位置選択手段は、前記目下位置候補検出手段により検出された目の下の位置の候補の一つに基づいて、前記鼻孔探索領域を設定する、
ことを特徴とする請求項１に記載の目検出装置。
【請求項５】
前記顔画像記憶手段が記憶している顔画像の中心線を検出する顔中心線検出手段をさらに備え、
前記目下位置選択手段は、
前記鼻孔検索領域内で顔の鼻孔の候補を検索する検索手段と、
前記検索手段が検出した顔の鼻孔の候補の位置を求める鼻孔位置判別手段と、
前記鼻孔位置判別手段が判別した各備考の候補の位置と前記中心線とに基づいて、前記検索手段が検索した鼻孔の候補のうちで、前記顔の中心線に対してほぼ線対称をなす鼻孔候補の対を検出し、鼻孔と判別する手段と、
をさらに備えることを特徴とする請求項１に記載の目検出装置。
【請求項６】
前記目下位置選択手段は、鼻孔が検出できたとき、鼻孔の上に位置し、最も鼻孔に近い目下位置候補を、目の下の位置として出力する、
ことを特徴とする請求項１に記載の目検出装置。
【請求項７】
記憶されている顔画像を処理して、該顔画像内の目の下に位置する横ラインの候補を求め、
前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、
鼻孔が検出できたときに、検出した鼻孔の位置を基準として、横ラインの候補のうちから顔画像の目の下に位置するものを選択し、
選択した横ラインに基づいて前記顔画像上に目探索領域を設定し、
設定した目探索領域内において、対象者の目に対応する画像を検出する、
ことを特徴とする目検出方法。
【請求項８】
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶した顔画像に基づいて、該顔画像内の目の下の位置の候補を求める目下位置候補検出手段、
前記顔画像記憶手段に記憶されている前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、鼻孔が検出できたときに、検出した鼻孔の位置を基準として、前記目の下の位置の候補のうちから顔画像の目の下に位置するものを選択する目下位置選択手段、
前記目下位置選択手段が選択した目下位置に基づいて定められた目探索領域内において、対象者の目に対応する画像を検出する目検出手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば車両等の移動体を運転している運転者等の目を検出する目検出装置、目検出方法およびプログラムに関する。
【背景技術】
【０００２】
人の顔を含む画像から、人の顔や眼の位置を検出する技術が知られている。たとえば、特許文献１には、入力された人の顔の画像の縦方向の画素列に沿って画素の濃度を検出し、画素列の濃度値および当該濃度値の変化値によりポイントを抽出し、抽出したポイントの連続データとして眼の瞼の領域を捉える居眠り状態検出装置が開示されている。
【特許文献１】特開平１０−２７５２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１の居眠り状態検出装置では、画素の濃度値および濃度値の変化値により眼の位置を検討しているため、眉毛や鼻下などにおける画素の濃度変化を眼の位置と誤検出することがある。また、髪型などにより眉毛が消えたり、眼鏡などの要因が存在するといった、眼の位置の探索領域を探すときの誤判定要因が存在する。これらの誤判定要因のため、特許文献１の居眠り状態検出装置では、眼の位置の探索領域を間違えることがある。
【０００４】
本発明は、上記問題点に鑑みてなされたものであり、目の位置の探索領域を間違えることのない目検出装置、目検出方法およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の観点に係る目検出装置は、
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶した顔画像に基づいて、該顔画像内の目の下の位置の候補を求める目下位置候補検出手段と、
前記顔画像記憶手段に記憶されている前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、鼻孔が検出できたときに、検出した鼻孔の位置を基準として、前記目の下の位置の候補のうちから顔画像の目の下に位置するものを選択する目下位置選択手段と、
前記目下位置選択手段が選択した目下位置に基づいて定められた目探索領域内において、対象者の目に対応する画像を検出する目検出手段と、
から構成されることを特徴とする。
【０００６】
前記目下位置候補検出手段は、
前記顔画像記憶手段に記憶されている顔画像を横ソーベルフィルタで処理して横ソーベル画像を生成する横ソーベル手段と、
前記横ソーベル手段により生成された横ソーベル画像の各横ライン上の画素の階調値のヒストグラムを生成する手段と、
階調値のヒストグラムに基づいて、目の下を通る横ラインの候補を求め、該横ラインの位置を目下位置の候補として出力する目下位置候補出力手段と、
から構成されることを特徴としてもよい。
【０００７】
前記目下位置候補出力手段は、
階調値のヒストグラムに基づいて、ヒストグラムのピーク値の高いものを所定数抽出して、抽出したヒストグラムが得られた位置を目下位置候補とする、
ことを特徴としてもよい。
【０００８】
前記目下位置選択手段は、前記目下位置候補検出手段により検出された目の下の位置の候補の一つに基づいて、前記鼻孔探索領域を設定する、
ことを特徴としてもよい。
【０００９】
前記顔画像記憶手段が記憶している顔画像の中心線を検出する顔中心線検出手段をさらに備え、
前記目下位置選択手段は、
前記鼻孔検索領域内で顔の鼻孔の候補を検索する検索手段と、
前記検索手段が検出した顔の鼻孔の候補の位置を求める鼻孔位置判別手段と、
前記鼻孔位置判別手段が判別した各備考の候補の位置と前記中心線とに基づいて、前記検索手段が検索した鼻孔の候補のうちで、前記顔の中心線に対してほぼ線対称をなす鼻孔候補の対を検出し、鼻孔と判別する手段と、
をさらに備えることを特徴としてもよい。
【００１０】
前記目下位置選択手段は、鼻孔が検出できたとき、鼻孔の上に位置し、最も鼻孔に近い目下位置候補を、目の下の位置として出力する、
ことを特徴としてもよい。
【００１１】
上記課題を解決するため、本発明の第２の観点に係る目検出方法は、
記憶されている顔画像を処理して、該顔画像内の目の下に位置する横ラインの候補を求め、
前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、
鼻孔が検出できたときに、検出した鼻孔の位置を基準として、横ラインの候補のうちから顔画像の目の下に位置するものを選択し、
選択した横ラインに基づいて前記顔画像上に目探索領域を設定し、
設定した目探索領域内において、対象者の目に対応する画像を検出する、
ことを特徴とする。
【００１２】
上記課題を解決するため、本発明の第３の観点に係るプログラムは、
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶した顔画像に基づいて、該顔画像内の目の下の位置の候補を求める目下位置候補検出手段、
前記顔画像記憶手段に記憶されている前記顔画像上の所定の鼻孔検索領域内で顔の鼻孔を検索し、鼻孔が検出できたときに、検出した鼻孔の位置を基準として、前記目の下の位置の候補のうちから顔画像の目の下に位置するものを選択する目下位置選択手段、
前記目下位置選択手段が選択した目下位置に基づいて定められた目探索領域内において、対象者の目に対応する画像を検出する目検出手段、
として機能させる。
【発明の効果】
【００１３】
本発明によれば、目の位置の探索領域を間違えることのない目検出装置、目検出方法およびプログラムを提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の実施形態に係る目検出装置５０について説明する。
【００１５】
まず、図１から３を参照して、本実施形態の目検出装置５０の構成について説明する。
目検出装置５０は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０、ドライバーの顔を照明する照明光源１２、ドライバーの顔画像から特徴点を抽出するコンピュータ１４、コンピュータ１４に接続された表示装置１６、を備える。
【００１６】
カメラ１０はたとえばＣＣＤ（Charge Coupled Devices）カメラ等から構成され、ドライバーの顔の階調画像を取得する。カメラ１０によって生成される顔画像は、ドライバーの顔だけでなく、その背景なども含まれている。
【００１７】
表示装置１６は、ＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）などから構成され、カメラ１０で撮像された顔画像などを表示する。
【００１８】
コンピュータ１４は、カメラ１０により取得された顔画像を処理して、瞼を検出する。
コンピュータ１４は、図２に示すように、Ａ／Ｄ変換器２１、画像メモリ２２、ＲＯＭ（Read Only Memory）２３、ＣＰＵ（Central Processing Unit）２４、ＲＡＭ（Random Access Memory）２５、表示制御装置２６、光源制御装置２７、設定メモリ２８、操作装置２９、を備える。
【００１９】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
【００２０】
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを格納する。
【００２１】
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムを記憶する。また、ＲＯＭ２３は、後述する画像処理を実行するための様々な固定データを記憶する。
【００２２】
ＣＰＵ２４は、コンピュータ１４全体を制御する。また、ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、カメラ１０により取得された顔動画像を処理して顔動画像中の眼または瞼を検出する。
【００２３】
ＲＡＭ２５は、ＣＰＵ２４のワークエリアとして機能する。
【００２４】
表示制御装置２６は、ＣＰＵ２４の制御のもと、映像データ等を表示装置１６が出力可能なデータ形式に変換し、表示装置１６に出力する。
【００２５】
光源制御装置２７は、照明光源１２の点灯・消灯を制御する。
【００２６】
設定メモリ２８は、ＣＰＵ２４が顔動画像を処理して眼または瞼を検出する処理の設定に関する情報（以下、設定情報）を格納する。
【００２７】
操作装置２９は、ユーザから操作情報を受け付け、操作に応じた操作信号をＣＰＵ２４に送出する。
【００２８】
次に、図３を参照して、ＲＯＭ２３に格納される固定データの例を説明する。
ＲＯＭ２３は、図３（ａ）、（ｂ）に示すような、縦エッジ検出用と横エッジ検出用ソーベルフィルタのオペレータを格納する。縦エッジ検出用ソーベルフィルタと横エッジ検出用のソーベルフィルタとは、それぞれ、図３（ｃ）、（ｄ）に示すような縦方向の濃淡差、横方向の濃淡差を強調するためのオペレータである。
【００２９】
以下、図４から図１９を参照して、上記構成を有する本実施形態に係る目検出装置５０が、カメラ１０により取得されたドライバーの顔画像から顔の特徴点として上下瞼を抽出する動作を説明する。
【００３０】
まず、本実施形態の目検出装置５０が上下瞼を抽出する動作の概要について説明する。
本実施形態では、車両を運転するドライバーの顔動画像の内から、顔の特徴点として上下瞼の候補となるエッジラインを抽出する。
【００３１】
ここで、エッジラインを抽出する前に、図３（ａ）、（ｂ）に示したソーベルフィルタにより顔画像の階調の変化の割合が抽出されるように顔画像を処理する。
なお、以下では、図３（ａ）の横エッジ検出用ソーベルフィルタにより横エッジを強調する処理の施された顔画像を「横ソーベル画像」と呼び、図３（ｂ）の縦エッジ検出用ソーベルフィルタにより縦エッジを強調する処理が施された顔画像を「縦ソーベル画像」と呼ぶ。また、横ソーベル画像と縦ソーベル画像とをあわせて、「ソーベル画像」と呼ぶ。
【００３２】
次に、顔画像に基づいて、顔の中心を通る縦のラインである顔の中心線を求め、顔の中心線の座標と、顔の左右端の座標とに基づいて、顔の向きが鼻の両孔が検出できる程度であるかどうかを判別する。顔の向きが鼻の両孔が検出できる程度でなければ、前処理に戻って処理をやり直す。
【００３３】
次に、横ソーベル画像に基づいて、眼（瞼）の直下を通るライン（目（瞼）の直下の位置）の候補となるライン（目下候補ライン）を抽出し、目下候補ラインの近傍で鼻孔が検出できるか否かを判別する。鼻孔が検出できたら、鼻孔の直上（鼻孔の上に位置する目下候補ラインのうち、鼻孔に最も近いもの）にある目下候補ラインを、眼（瞼）の直下を通るライン（目下ライン）として抽出する。
【００３４】
次に、横ソーベル画像の目下ラインの近傍を含む領域内からエッジラインを抽出し、上下瞼の候補になる各エッジラインの内で所定の条件を満たすエッジラインを、上下瞼を構成する組の候補として抽出する。
上下瞼の候補になる各エッジラインの、上瞼と下瞼との重心間の距離を示す瞼開度と、瞼開度が得られた時の時刻と、を対応付けた瞼開度時系列情報を生成し、瞼開度時系列情報が所定の条件に合致したエッジラインを正しい上下瞼として抽出する。
【００３５】
以下、本実施形態の目検出装置５０が上下瞼を抽出する動作について、詳細に説明する。
電源が投入されると、コンピュータ１４内のＣＰＵ２４は、図４に示す瞼検出処理を繰り返して実行する。
すなわち、ＣＰＵ２４は、前処理（ステップＳ０１）、顔位置・目下候補判別処理（ステップＳ０２）、顔向き判別処理（ステップＳ０３）、目下候補検索処理（ステップＳ０４）、鼻孔検出処理（ステップＳ０５）、上下瞼判別処理（ステップＳ０６）、から構成される瞼検出処理を繰り返して実行する。
【００３６】
図４に示す前処理（ステップＳ０１）と顔位置判別処理（ステップＳ０２）とは、ドライバーの左右方向および上下方向の顔の位置（座標）を求めるための処理である。
【００３７】
顔向き判別処理（ステップＳ０３）は、ドライバーの顔の左右の向きを判別するための処理である。
目下候補検索処理（ステップＳ０４）は、ドライバーの眼（瞼）の直下を通るラインの候補となるライン（目下候補ライン）を検索する処理である。
鼻孔検出処理（ステップＳ０５）は、目下候補ラインの近傍にあるドライバーの鼻孔に相当する画像を検出するための処理である。
【００３８】
上下瞼判別処理（ステップＳ０６）は、ドライバーの鼻孔の位置に基づいて、上下瞼を探索する探索範囲を示す顔上部領域Ａを設定し、顔上部領域Ａ内のソーベル画像から上瞼に対応するエッジラインの候補および下瞼に対応するエッジラインの候補となるエッジライン（群）の抽出を行い、上下瞼の候補となるエッジラインの内で上下瞼の重心が移動する態様から瞼開度を算出し、瞼開度が所定の条件を満たす上下瞼候補のエッジラインを本物の瞼であると判定するための処理である。
【００３９】
以下、ステップＳ０１〜Ｓ０６までの各ステップにおいて実行される動作について詳細に説明する。
【００４０】
まず、前処理（ステップＳ０１）について説明する。
前処理（ステップＳ０１）は、図５に示すように、キャプチャ処理（ステップＳ０１１）と、座標変換処理（ステップＳ０１２）と、横ソーベルフィルタ処理（ステップＳ０１３）と、縦ソーベルフィルタ処理（ステップＳ０１４）と、から構成される。
【００４１】
キャプチャ処理（ステップＳ０１１）は、ＣＰＵ２４がカメラ１０の撮影したドライバーの１フレーム（１／３０秒）分の顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納する処理である。
【００４２】
座標変換処理（ステップＳ０１２）は、ＣＰＵ２４が処理可能な程度に画素を間引く処理である。
【００４３】
横ソーベルフィルタ処理（ステップＳ０１３）は、ＣＰＵ２４がＲＯＭ２３に格納されている横エッジ検出用ソーベルフィルタ（図３（ａ））を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調する処理を施したものを、ＲＡＭ２５に格納する処理である。
縦ソーベルフィルタ処理（ステップＳ０１４）は、ＣＰＵ２４がＲＯＭ２３に格納されている縦エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調する処理を施したものを、ＲＡＭ２５に格納する処理である。
【００４４】
なお、ソーベルフィルタの処理動作について、より具体的に説明する。
前提として、顔画像を構成する各画素は、ＲＧＢの各色が８ビットの階調を有するように設定されており、第０階調〜第２５５階調の２５６階調の内いずれかの階調を有するものとする。第０階調は黒、第２５５階調は白である。
【００４５】
ＣＰＵ２４は、カメラ１０により取得された顔画像から１つの画素を抽出する。抽出した画素を、図３（ａ）または（ｂ）の３×３行列の中心に対応させて、抽出した画素の階調とその画素に隣接する全ての画素が有する各階調とに、図３（ａ）または（ｂ）に示されるオペレータに対応する値をそれぞれ乗算する。
ＣＰＵ２４は、乗算して得られた値を全て合計して、その合計値を抽出した当該画素の階調に設定する。以下、図３（ａ）または（ｂ）のオペレータによる操作後に各画素の階調として設定された値を「階調値」と呼ぶ。
これらの操作を順次繰り返して顔画像全体に施すことにより、該顔画像の階調の変化の割合（階調の横方向または縦方向の微分）を示すソーベル画像が抽出される。
【００４６】
次に、顔両端位置判別処理（ステップＳ０２）について説明する。
【００４７】
顔両端位置判別処理（ステップＳ０２）は、ＣＰＵ２４が顔画像を図３（ｂ）の縦エッジ検出用のオペレータで操作した縦ソーベル画像について、顔の両端を構成するラインを特定する処理であり、既知の任意の手法を採用することができる。
【００４８】
たとえば、図６に示すように、ＣＰＵ２４はＲＡＭ２５に格納された縦ソーベル画像に基づいて、顔両端検出のために、階調値のヒストグラムの作成処理を行い、作成したヒストグラムをＲＡＭ２５に格納する（ステップＳ０２１）。続いて、ＣＰＵ２４はこのヒストグラムのピーク値の高いものを所定数抽出して、これらピーク値の高いものをソートして（ステップＳ０２２）、ヒストグラム値に基づき、端点を抽出する（ステップＳ０２３）。たとえば、ヒストグラム値の上位１または２つが他と比較して極端に値が大きい場合、その点を端点とする。
【００４９】
次に、ＣＰＵ２４は端点が２つ（両端）抽出されたか否かを判別する（ステップＳ０２４）。２つ抽出されていれば（ステップＳ０２４；Ｙｅｓ）、ＣＰＵ２４は抽出した２点を顔の両端（ｘ座標）として決定する処理を行う（ステップＳ０２６）。ここでは、顔の両端（ｘ座標）として座標ａ、ｂが得られたものとする。
一方、端点が２つ抽出できていなければ（ステップＳ０２４；Ｎｏ）、ＣＰＵ２４は、２点の距離が、人の顔幅としてもっともらしい間隔を有する組み合わせを抽出することにより、端点を決定し（ステップＳ０２５）、最終的に、顔面の両端（ｘ座標）を決定する処理を行う（ステップＳ０２６）。
【００５０】
ＣＰＵ２４は、このようにしてステップＳ０２で求めた、顔両端（左右側端）位置（ｘ座標）をＲＡＭ２５に記憶する。
ここで、顔両端位置（ｘ座標）をドライバーの顔画像に表した場合、図３（ｅ）に示すように、顔の両端位置の座標ａ、ｂに対応する。
【００５１】
次に、図７に示す顔向き判別処理（ステップＳ０３）の処理内容について説明する。顔向き判別処理（ステップＳ０３）は、顔画像から顔の中心線Ｂを求め、顔の中心線Ｂの座標および顔両端位置判別処理（図６ステップＳ０２）後に得られた顔の両端の位置に基づいて、顔の左右の向きが鼻の両孔を検出できる程度か否かを判別する処理である。
【００５２】
縦線である（ｙ軸に平行な）顔の中心線Ｂの算出手法自体は任意であるが、本実施形態においては、ＣＰＵ２４は、次式から顔のｘ軸方向の中心（重心）位置の座標を求め、当該重心位置を通る縦線を顔の中心線Ｂとして算出する。
顔の中心のｘ座標＝Σ（ｘｉ・Ｇｉ）／ΣＧｉ
ｘｉ：ｉ番目の画素のｘ座標の値
Ｇｉ：ｉ番目の画素の階調値
ｉ：１〜ｎ  （ｎは画素の総数）
【００５３】
ＣＰＵ２４は、顔の中心線Ｂを算出すると（ステップＳ０３１）、ドライバーが正面を向いているか否かを判別するために、顔両端検出処理（図６ステップＳ０２）で算出した顔両端位置（ｘ座標）ａ、ｂをＲＡＭ２５から読み出す。
【００５４】
ＣＰＵ２４は、ドライバーの顔が右方向を向いているか否かを顔中心線Ｂのｘ座標が（ａ＋ｂ）／２−Ｄｔｈより小さいか否かにより判別する（ステップＳ０３２）。ここで、（ａ＋ｂ）／２は左右両端位置の中心であり、ＤｔｈはＲＯＭ２３に格納される顔向き方向の閾値である。すなわち、図８に示すように、ドライバーの顔が左右両端の中心から少しずれていても（この場合、顔が少し右を向いていても）、顔の右向きの程度が両鼻孔の検出に問題がない範囲であれば、ステップＳ０５の鼻孔検出処理を行うというものである。
なお、顔向き方向の閾値ＤｔｈはＲＡＭ２５や設定メモリ２８に格納されてもよい。また、顔向き方向の閾値Ｄｔｈは、任意の値をとってもよい。
【００５５】
顔中心線Ｂのｘ座標の値が（ａ＋ｂ）／２−Ｄｔｈより小さい場合（ステップＳ０３２；Ｙｅｓ）、ＣＰＵ２４は、図７に示すように顔は右方向を向いていると判別して、処理を前処理（ステップＳ０１）に移す。
一方、顔中心線Ｂのｘ座標の値が（ａ＋ｂ）／２−Ｄｔｈより小さくない場合（ステップＳ０３２；Ｎｏ）、ＣＰＵ２４は、ドライバーの顔が左方向を向いているか否かを、顔中心線Ｂのｘ座標が（ａ＋ｂ）／２＋Ｄｔｈより大きいか否かにより判別する（ステップＳ０３３）。すなわち、ドライバーの顔が少し左を向いていても、顔の左向きの程度が両鼻孔の検出に問題がない範囲であれば、ステップＳ０５の鼻孔検出処理を行うというものである。
【００５６】
顔中心線Ｂのｘ座標の値が（ａ＋ｂ）／２＋Ｄｔｈより大きい場合（ステップＳ０３３；Ｙｅｓ）、ＣＰＵ２４は、ドライバーの顔が左方向を向いていると判別して、処理を前処理（ステップＳ０１）に移す。
顔中心線Ｂのｘ座標の値が（ａ＋ｂ）／２＋Ｄｔｈより大きくない場合（ステップＳ０３３；Ｎｏ）、ＣＰＵ２４は、処理を目下候補検出処理（ステップＳ０４）に移す。
【００５７】
次に、図９に示す目下候補検出処理（ステップＳ０４）について説明する。
目下候補検出処理（ステップＳ０４）は、ヒストグラム値に基づいて、ＣＰＵ２４が眼（瞼）に対応するヒストグラム値の候補を選択する処理である。
【００５８】
ＣＰＵ２４は、ＲＡＭ２５に格納されている横ソーベル画像に基づいて、横方向の階調値のヒストグラムを作成する（ステップＳ０４１）。そのヒストグラムに基づいて、ヒストグラム値が高く、かつヒストグラムのピーク値が連続しているラインの縦の座標（ｙ座標）をＲＡＭ２５に記憶させる（ステップＳ０４２）。
【００５９】
図１０は、顔画像、および横方向のヒストグラムのピーク値（右側の三角線）を示したものである。ピーク値は三角の頂点に対応し、その頂点が左側にあるほどピーク値が大きい。図１０に示すように、ヒストグラム値が高く、かつヒストグラムのピーク値が連続しているラインは、たとえば、上方からそれぞれ、顔の上端（頭頂部）を通るライン（図１０(g)）、頭髪と皮膚との境目を通るライン（図１０(f)）、眉を通るライン（図１０(e)）、眼（瞼）の直下を通るライン（図１０(d)）、鼻孔直下を通るライン（図１０(c)）、口の直下を通るライン（図１０(b)）、顔の下端（顎部）を通るライン（図１０(a)）、と７つある。
【００６０】
ＣＰＵ２４は、これらのラインを所定数検出し、検出したラインのヒストグラムのピーク値に基づいてソートして（ステップＳ０４３）、検出したラインのうち所定数を目下候補のライン（眼（瞼）の直下を通るラインの候補）としてＲＡＭ２５に記憶する（ステップＳ０４４）。たとえば、図１０の場合、ヒストグラム値の高い４つのライン（たとえば、図１０(c)(d)(e)(f)）を目下候補のラインとして記憶する。
【００６１】
次に、図１１に示す鼻孔検出処理（ステップＳ０５）の処理内容について説明する。
鼻孔検出処理は、ステップＳ０４において記憶された目下候補のラインの近傍に位置する鼻孔をソーベル画像から検出し、眼（瞼）の直下を通る目下ラインを決定し出力する処理である。
本実施形態における鼻孔検出処理（ステップＳ０５）では、縦方向および横方向の大きさが共に３〜５画素である画素領域を鼻孔の候補であると判別する。なお、当該画素領域の範囲は任意に定めてよい。
【００６２】
鼻孔検出処理（ステップＳ０５）は、図１１に示すように、鼻孔探索領域の抽出処理（ステップＳ０５１）と、鼻孔探索領域の絞り込み処理（ステップＳ０５２）と、縦方向画素列抽出処理（ステップＳ０５３）と、横方向画素列抽出処理（ステップＳ０５４）と、鼻孔決定処理（ステップＳ０５５）と、目下ライン記憶処理（ステップＳ０５６）と、から構成される。
【００６３】
鼻孔探索領域の抽出処理（ステップＳ０５１）において、ＣＰＵ２４は、顔画像を画像メモリ２２から読み出し、顔両端検出処理（図６ステップＳ０２１）で算出した顔両端位置（ｘ座標）ａ、ｂをＲＡＭ２５から読み出し、目下候補検出処理（図４ステップＳ０４）において検出した目下候補のラインのｙ座標をＲＡＭ２５から読み出して、読み出した顔画像のうち、ａ≦ｘ≦ｂ、ｙｍｉｎ≦ｙ≦ｙｍａｘ（ｙｍｉｎは目下候補のラインの中でもっとも小さいｙ座標の値、ｙｍａｘは目下候補のラインの中でもっとも大きいｙ座標の値）となる領域を切り出す。たとえば、図１０の場合、ｙｍｉｎは図１０（ｃ）のｙ座標の値となる。
【００６４】
続いて、ＣＰＵ２４は、ステップＳ０５１で鼻孔を探索する領域（鼻孔探索領域）を絞り込む（ステップＳ０５２）。鼻孔探索領域を絞り込む方法は任意である。本実施形態では、ステップＳ０５１で切り出された顔画像の領域を所定の比率で按分することによって、鼻孔探索領域を図１２に示す太線内の領域と設定する。
【００６５】
縦方向画素列抽出処理（ステップＳ０５３）は、図１３に示すように、ＣＰＵ２４が鼻孔探索領域内の二値化画像の画素をｙ方向に走査して、鼻孔の候補となる画素列を抽出する処理である。
ステップＳ０５２で絞り込まれた鼻孔探索領域から鼻孔の候補となる画像を抽出するための起点として、処理対象の画素（ｘ，ｙ）を初期値の（ｘ０，ｙ０）に設定する（ステップＳ０５３１）。ここで、ｘ０は鼻孔探索領域の左下の頂点のｘ座標の値、ｙ０は鼻孔探索領域の左下の頂点のｙ座標の値である。
【００６６】
ＣＰＵ２４は、画素（ｘ，ｙ）のｙ座標値を１ずつインクリメントしながら、ｙ方向へ走査を行い、階調値が第０〜第１０階調（黒、または、ほぼ黒）が縦方向に連続する画素列の座標を、ＲＡＭ２５に記憶する（ステップＳ０５３２）。ここで、第０〜第１０階調の画素をカウントしているのは、鼻孔の階調値が第０〜第１０階調の画素であるとしていることによる。なお、鼻孔として、任意の階調値の画素をカウントしてもよい。
【００６７】
ＣＰＵ２４は、走査が完了すると、画素の階調値が第０〜第１０階調である画素列のうち、縦方向に連続する３〜５画素からなる（鼻孔の画素数は３〜５画素とする）画素列があるか否かを判別する（ステップＳ０５３３）。そのような画素列があれば（ステップＳ０５３３；Ｙｅｓ）、その画素列の座標をＲＡＭ２５に記憶する（ステップＳ０５３４）。
これにより、鼻孔の特徴点を構成する候補となる、縦方向の連続数が３〜５である黒の画素列が抽出される。
【００６８】
画素の階調値が第０〜第１０階調である画素列のうち、縦方向に連続する３〜５画素からなる画素列がないならば（ステップＳ０５３３；Ｎｏ）、処理をステップＳ０５３５に進める。
【００６９】
続いて、ＣＰＵ２４は、画素（ｘ，ｙ）のｘ座標を１インクリメントし、ｙ座標を初期値（＝ｙ０）として、次のラインの走査をするための準備をする（ステップＳ０５３５）。
【００７０】
ＣＰＵ２４は、ステップＳ０５４５の処理が終わると、鼻孔探索領域の全てにおいて走査が終わったか否かを判別する（ステップＳ０５３６）。走査が終わったならば（ステップＳ０５３６；Ｙｅｓ）、ＣＰＵ２４は、その後、処理を横方向画素列抽出処理（ステップＳ０５４）に移し、そうでなければ（ステップＳ０５３６；Ｎｏ）、走査が完了していないものとしてステップＳ０５３２へ処理を移す。
【００７１】
横方向画素列抽出処理（ステップＳ０５４）は、縦方向画素列抽出処理（ステップＳ０５３）と同様の動作により、ステップＳ０５３で絞り込んだ鼻孔探索領域内の二値化画像から、鼻孔の候補となる画像として、横方向の連続数が３〜５の大きさを有する階調値が第０〜第１０階調の画素列を検出する処理である。
【００７２】
横方向の画素列を検出する手法自体は任意であるが、図１４に示す方法が利用できる。図１４の横方向画素列抽出処理（ステップＳ０５４）は、鼻孔探索領域の画素をｘ方向に走査する点を除けば、図１３の縦方向画素列抽出処理（ステップＳ０５３）と基本的に同一である。
【００７３】
まず、ＣＰＵ２４は、ステップＳ０５２で絞り込まれた鼻孔探索領域から鼻孔の候補となる画像を抽出するための起点として、処理対象の画素（ｘ，ｙ）を初期値の（ｘ０，ｙ０）に設定する（ステップＳ０５４１）。ここで、ｘ０は鼻孔探索領域の左下の頂点のｘ座標の値、ｙ０は鼻孔探索領域の左下の頂点のｙ座標の値である。
【００７４】
ＣＰＵ２４は、画素（ｘ，ｙ）のｘ座標値を１ずつインクリメントしながら、ｘ方向へ走査を行い、階調値が第０〜第１０階調（黒、または、ほぼ黒）が縦方向に連続する画素列の座標を、ＲＡＭ２５に格納する（ステップＳ０５４２）。ここで、第０〜第１０階調の画素をカウントしているのは、鼻孔の階調値が第０〜第１０階調の画素であるとしていることによる。なお、鼻孔として、任意の階調値の画素をカウントしてもよい。
【００７５】
ＣＰＵ２４は、走査が完了すると、画素の階調値が第０〜第１０階調である画素列のうち、横方向に連続する３〜５画素からなる（鼻孔の画素数は３〜５画素とする）画素列があるか否かを判別する（ステップＳ０５４３）。そのような画素列があれば（ステップＳ０５４３；Ｙｅｓ）、その画素列の座標をＲＡＭ２５に記憶する（ステップＳ０５４４）。
これにより、鼻孔の特徴点を構成する候補となる、横方向の連続数が３〜５である黒の画素列が抽出される。
【００７６】
画素の階調値が第０〜第１０階調である画素列のうち、横方向に連続する３〜５画素からなる画素列がないならば（ステップＳ０５４３；Ｎｏ）、処理をステップＳ０５４５に進める。
【００７７】
続いて、ＣＰＵ２４は、画素（ｘ，ｙ）のｙ座標を１インクリメントし、ｘ座標を初期値（＝ｘ０）として、次のラインの走査をするための準備をする（ステップＳ０５４５）。
【００７８】
ＣＰＵ２４は、ステップＳ０５４５の処理が終わると、鼻孔探索領域の全てにおいて走査が終わったか否かを判別する（ステップＳ０５４６）。走査が終わったならば（ステップＳ０５４６；Ｙｅｓ）、ＣＰＵ２４は、その後、処理を鼻孔決定処理（ステップＳ０５５）に移し、そうでなければ（ステップＳ０５４６；Ｎｏ）、走査が完了していないものとしてステップＳ０５４２へ処理を移す。
【００７９】
鼻孔決定処理（ステップＳ０５５）は、図１１、及び、図１５に示すように、縦方向画素列抽出処理（ステップＳ０５３）および横方向画素列抽出処理（ステップＳ０５４）完了後、ステップＳ０５２にて絞り込んだ鼻孔探索領域内の画像に、両鼻孔が正しい位置に検出されているかを決定する処理である。
【００８０】
まず、ＣＰＵ２４は、縦方向および横方向の連続数が共に３〜５である第０〜１０階調の画素領域を求め（ステップＳ０５５１）、その領域があるか否かを判別する（ステップＳ０５５２）。存在すると判別した場合は（ステップＳ０５５２；Ｙｅｓ）、その画素領域が鼻孔の候補となる画素領域と決定し、処理をステップＳ０５５３に移す。
【００８１】
鼻孔の候補となる画素領域を決定すると、次式から鼻孔の候補となる画素領域のｘ軸方向およびｙ軸方向の中心（重心）位置の座標を求める（ステップＳ０５５３）。
鼻孔の中心のｘ座標＝Σｘｉ・Ｇｉ／ΣＧｉ
鼻孔の中心のｙ座標＝Σｙｉ・Ｇｉ／ΣＧｉ
ｘｉ：階調値が第０〜第１０階調であるｉ番目の鼻孔の候補の画素のｘ座標の値
ｙｉ：階調値が第０〜第１０階調であるｉ番目の鼻孔の候補の画素のｙ座標の値
Ｇｉ：階調値が第０〜第１０階調であるｉ番目の鼻孔の候補の画素の階調値
ｉ：１〜ｎ  （ｎは階調値が第０〜第１０階調である鼻孔の候補の画素の総数）
【００８２】
ステップＳ０５５３で算出した鼻孔の候補となる画素領域の内に、重心のｘ座標が顔中心線Ｂのｘ座標よりも小さい画素領域が存在するか否かを判別する（ステップＳ０５５４）。顔中心線Ｂのｘ座標よりも重心の座標ｘが小さい鼻孔の候補となる画素領域が存在すれば（ステップＳ０５５４；Ｙｅｓ）、その画素列を右鼻孔の候補の画素領域として抽出する（ステップＳ０５５５）。
【００８３】
ＣＰＵ２４は、更に、ステップＳ０５５５で抽出した右鼻孔の候補の画素領域の重心位置と顔中心線Ｂに対してほぼ線対称である位置に、鼻孔の候補となる画素領域（左鼻孔の候補となる画素領域）が存在するか否かを判別する（ステップＳ０５５６）。
左鼻孔の候補の画素領域が存在したときには（ステップＳ０５５６；Ｙｅｓ）、ステップＳ０５５５で抽出した右鼻孔の候補の画素領域と、ステップＳ０５５６で判別した左鼻孔の候補の画素領域と、が離間して存在するか否かを判別する（ステップＳ０５５７）。
【００８４】
ステップＳ０５５５で抽出した右鼻孔の候補の画素領域と、ステップＳ０５５６で判別された左鼻孔の候補の画素領域と、が離間して存在すれば（ステップＳ０５５７；Ｙｅｓ）、右鼻孔の候補となる画素領域と左鼻孔の候補となる画素領域との組み合わせを対象者の鼻孔と判別し、ＲＡＭ２５に格納する（ステップＳ０５５８）。
【００８５】
このように、本発明の実施形態に係る目検出装置５０は、鼻孔探索領域に対象者の口などが含まれている場合でも正しい両鼻孔を検出できる。
両鼻孔が検出されたことにより、ＣＰＵ２４は、処理を目下ライン記憶処理（ステップＳ０５７）に移す。
【００８６】
ステップＳ０５５２、Ｓ０５５４、Ｓ０５５６、Ｓ０５５７、における各判別条件を満たす画素領域がない場合（ステップＳ０５５２、Ｓ０５５４、Ｓ０５５６、Ｓ０５５７のいずれか；Ｎｏ）、鼻孔が正しく検出できなかったものとして、ＣＰＵ２４は処理を前処理（ステップＳ０１）に戻す。
【００８７】
ＣＰＵ２４は、図４ステップＳ０４の目下候補検索処理において検出したそれぞれの目下候補のラインをＲＡＭ２５から読み出し、鼻孔探索領域を設定して以上に述べた鼻孔検出処理（図１１，ステップＳ０５）を行う。このように、顔画像全体ではなく、所定の鼻孔探索領域に限定して鼻孔検出を行うことで、鼻孔の検出を高速化することができる。また、上述のように、鼻孔の直上に位置する目下候補ラインが、眼（瞼）の直下を通るライン（目下ライン）であると判別できる。すなわち、瞼の検出領域を、鼻孔探索により判別した目下ラインに基づいて絞り込むことができ、瞼の検出を高速化することができる。
【００８８】
ＣＰＵ２４は、上述のように、判別した目下ラインのｙ座標ｙ２（図１０の場合、（ｄ）に相当するｙ座標）を、ＲＡＭ２５に格納する（ステップＳ０５６）。
【００８９】
次に、図１６を用いて、上下瞼判別処理（ステップＳ０６）について説明する。
【００９０】
上下瞼判別処理（ステップＳ０６）において、ＣＰＵ２４は、まず、ドライバーの上下瞼を抽出するときに探索する領域である顔上部領域Ａを定める処理を実行する（ステップＳ０６１）。
【００９１】
顔上部領域Ａを設定する方法は任意である。
本実施形態では、鼻孔検出処理（図１１ステップＳ０５）により検出できた顔両端検出処理（ステップＳ０２１）で定めた顔両端位置（ｘ座標）ａおよびｂや、目下ライン記憶処理（図１５ステップＳ０５５）で定めた目下ラインのｙ座標に基づいて、顔上部領域Ａを設定する。
まず、ＣＰＵ２４は、目下ライン記憶処理（図１５ステップＳ０５５）で記憶した目下ラインのｙ座標ｙ２をＲＡＭ２５から読み出す。そして、ｙ座標ｙ２（図１０の場合、（ｄ）に相当するｙ座標）とｙ座標ｙｍａｘ（ｙｍａｘは目下候補のラインの中でもっとも大きいｙ座標の値）との間の範囲と、ｘ座標ａとｘ座標ｂとの間の範囲に含まれる領域を顔上部領域Ａとして設定する（ステップＳ０６１）。
【００９２】
すなわち、ステップＳ０６１にて設定された顔上部領域Ａ内の画素（ｘ，ｙ）は、図１７に示すように、ａ≦ｘ≦ｂ、ｙ２≦ｙ≦ｙｍａｘ、の範囲の座標値を有する。
これにより、顔の特徴点を示す画像を検出するときに、範囲を限定することにより、上下瞼の判別処理時間を短縮することが可能になる。
【００９３】
なお、顔上部領域Ａは、操作装置２９を介してユーザから変更可能としてもよい。
【００９４】
ＣＰＵ２４は、顔上部領域Ａ内のソーベル画像から、上下瞼の候補となるエッジラインを抽出する（ステップＳ０６２）。
ここで、顔上部領域Ａは、横ソーベルフィルタ処理（図５ステップＳ０１３）が施されていることにより、図１８（ａ）に示すように、ｙ軸方向に輝度が明るい画素から暗い画素に移るエッジラインがマイナスエッジとして点線で表され、ｙ軸方向に光度が暗い画素から明るい画素に移るエッジラインがプラスエッジとして実線で表されている。
【００９５】
ステップＳ０６３において、ＣＰＵ２４は、上記のマイナスエッジラインとプラスエッジラインとから、次の三つの数式を満たすマイナスエッジとプラスエッジの組み合わせを抽出する。
【００９６】
まず、ＣＰＵ２４は数式（１）を満たすマイナスエッジとプラスエッジの組み合わせがあるか否かを判別して、数式（１）を満たすマイナスエッジとプラスエッジの組み合わせを抽出する（ステップＳ０６３）。
｜Ｌｐ−Ｌｍ｜＜Ｌｔｈ・・・（１）
ただし、Ｌｐはプラスエッジの長さを表す値であり、Ｌｍはマイナスエッジの長さを表す値であり、Ｌｔｈは閾値である。数式（１）を満たすマイナスエッジとプラスエッジとの長さは閾値Ｌｔｈの範囲で近似している。
【００９７】
また、ＣＰＵ２４は数式（２）を満たすマイナスエッジとプラスエッジの組み合わせがあるか否かを判別して、数式（２）を満たすマイナスエッジとプラスエッジの組み合わせを抽出する（ステップＳ０６４）。
｜Ｃｘｐ−Ｃｘｍ｜＜Ｃｘｔｈ・・・（２）
ただし、Ｃｘｐはプラスエッジの重心のｘ座標、Ｃｘｍはマイナスエッジの重心のｘ座標、Ｃｘｔｈは閾値、である。数式（２）を満たすマイナスエッジとプラスエッジとの重心のｘ座標は閾値Ｃｘｔｈの範囲で近似している。
【００９８】
更に、ＣＰＵ２４は数式（３）を満たすマイナスエッジとプラスエッジの組み合わせがあるか否かを判別して、数式（３）を満たすマイナスエッジとプラスエッジの組み合わせを抽出する（ステップＳ０６５）。
Ｄｇ＜Ｄｔｈ・・・（３）
ただし、Ｄｇはマイナスエッジの重心とプラスエッジの重心との間の距離であり、Ｄｔｈは閾値である。数式（３）を満たすマイナスエッジとプラスエッジとの重心間距離は閾値Ｄｔｈ以内である。
【００９９】
つまり、数式（１）〜（３）を満たすマイナスエッジとプラスエッジの組み合わせは、ある程度、長さが等しく、位置が近く、重心のｘ座標が一致しているマイナスエッジとプラスエッジの組み合わせである。
図１８（ａ）の内から、数式（１）〜（３）を満たすマイナスエッジとプラスエッジの組み合わせを対象者の瞼の候補として抽出する。このとき、プラスエッジＰＥ１とマイナスエッジＭＥ１との組み合わせが候補１、プラスエッジＰＥ２とマイナスエッジＭＥ２との組み合わせが候補２、プラスエッジＰＥ３とマイナスエッジＭＥ３との組み合わせが候補３、プラスエッジＰＥ４とマイナスエッジＭＥ４との組み合わせが候補４、となる。
【０１００】
そして、目検出装置５０は、候補１〜４について、マイナスエッジの重心とプラスエッジの重心との間の距離Ｄｇの時間軸に対する変化を計測する。図１９（ａ）〜（ｄ）に示すグラフは、候補１〜４の、時間軸に対するマイナスエッジとプラスエッジとの重心間距離Ｄｇ（瞼候補の開度）の変化を示すグラフである。
【０１０１】
候補１は、図１９（ａ）に示すように、距離Ｄｇは時間軸に対してほとんど変化がない。また、候補２も、図１９（ｂ）に示すように、距離Ｄｇは時間軸に対してほとんど変化がない。
候補３〜４は、図１９（ｃ）〜（ｄ）に示すように距離Ｄｇの時間軸に対するグラフにおいて極小値ＭＶ１〜ＭＶ６を持つ。すなわち、候補３および４は瞬きをしている瞼と判別でき、極小値ＭＶ１〜ＭＶ６は瞼の瞬きにおいて閉眼しているタイミングであると判別できる。
【０１０２】
ＣＰＵ２４は、ｙ軸方向またはその反対方向に重心が移動するマイナスエッジとプラスエッジの組み合わせがあるか否かを判別する（ステップＳ０６６）。
ＣＰＵ２４は、ｙ軸方向またはその反対方向に重心が移動するマイナスエッジとプラスエッジの組み合わせがない場合（ステップＳ０６６；Ｎｏ）、ＣＰＵ２４は、瞼がないと判別し、設定メモリ２８に格納されている設定情報を変更し、設定領域を変更または拡大し（ステップＳ０６７）、処理をステップＳ０６２に戻す。
【０１０３】
上記の瞼の候補の内、図１８（ｂ）に示すように、プラスエッジの重心がｙ軸方向と反対方向に移動しているときにマイナスエッジの重心がｙ軸方向に移動し、プラスエッジの重心がｙ軸方向に移動している場合（ステップＳ０６６；Ｙｅｓ）、ＣＰＵ２４はマイナスエッジの重心がｙ軸方向と反対方向に移動する候補を瞼と判定する（ステップＳ０６８）。すなわち、ＣＰＵ２４は、当該候補を、瞬きをする瞼であると判別する。
以上で瞼が求められ、図４に示す瞼検出処理が終了する。
【０１０４】
以上説明したように、本発明の実施形態に係る目検出装置５０は、顔画像のヒストグラムおよび鼻孔探索に基づいて眼（瞼）の直下を通る横ラインである目下ラインを算出し、目下ライン近傍の所定の領域から瞼を検出する。したがって、従来のドライバー監視システムのようにドライバーの顔画像全体をスキャンして濃度値による選定を行って瞼を検出するのに比して、眉毛や鼻下などの濃度変化に影響されることなく、正確に瞼を検出することができ、誤判定や未判定を解消することができる。
【０１０５】
さらに、本発明の実施形態に係る目検出装置５０は、瞼候補の開度に基づいて瞼を判別する。また、ドライバーの眼（瞼）の探索領域を正確に捉え、さらには眼（瞼）の探索領域から瞬きをする瞼の位置を検出することができ、運転者のより正確な情報を捉えることができる。
【０１０６】
なお、このようにして特定した上瞼と下瞼の位置に基づいて、以後、運転者の注視方向の特定や、運転者が起きているか否かを判別するために利用することができる。たとえば、瞼の位置に対応する瞳の位置を求め、さらに、顔の向きを求め、これらから運転者の視線の向きを判別することができ、判別した視線の向きを車両の様々な制御に利用できる。また、上瞼と下瞼との距離（Ｄｇ）が所定の基準値より小さい状態が一定時間以上継続した場合に、運転者が寝ていると判別し、所定の制御を行うといったことも可能となる。
【０１０７】
なお、この発明は上記実施形態に限定されず、種々の変形および応用が可能である。
本実施形態では、コンピュータ１４は、カメラ１０が撮影した対象者の顔の動画像について眼瞼検出処理を行ったが、カメラ１０以外の外部装置から取得した対象者の顔の動画像を画像メモリ２２に格納しておき、その動画像について眼瞼検出処理を行ってもよい。
【０１０８】
本実施形態では、たとえば、７つの目下候補ライン上の所定の領域から鼻孔を探索し、その結果に基づいて目下ラインを定めたが、目下候補ライン数はもっと少なくともよい。たとえば、目下候補ラインのうち、画面下方から数えて２つの目下候補ライン、すなわち、顔の下端（顎部）を通るライン（たとえば、図１０(a)）および口の直下を通るライン（たとえば、図１０(b)）は検出が容易であり、かつ鼻孔が存在しないと考えられる。したがって、目下候補ラインを検出したときに、下方に存在する２つの目下候補ラインのｙ座標はＲＡＭ２５に記憶させなくともよい。また、下方から数えて６つ目以降の目下候補ライン、すなわち顔の上端（頭頂部）を通るライン（たとえば、図１０(f)）および頭髪と皮膚との境目を通るライン（たとえば、図１０(g)）も鼻孔が存在しないと考えられる。したがって、これらの目下候補ラインのｙ座標もＲＡＭ２５に記憶させなくともよい。換言すれば、目下候補ラインのうち３つのみ（たとえば、図１０(c)(d)(e)のみ）をＲＡＭ２５に記憶させればよい。このようにすることで、目下候補ライン上の所定の領域から鼻孔を検索する処理を省略することができ、鼻孔の検索および目下ラインの決定が高速化される。
【０１０９】
鼻孔探索領域の設定は任意である。たとえば、ある目下候補ラインを下端とする所定の領域を鼻孔探索領域として設定し、鼻孔を探索してもよい。もし、その領域に鼻孔がみつからなかった場合は、１つ上の目下候補ラインに設定された鼻孔探索領域から鼻孔を探索すればよい。もし、鼻孔が探索できた場合は、当該目下候補ラインの１つ上の目下候補ラインを目下ラインと決定すればよい。上述の実施形態では、按分により鼻孔探索領域を決定してから鼻孔の探索を行ったが、このようにすることで、按分によらずとも鼻孔を探索できる。
【０１１０】
本発明に係る目検出装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、上述の動作を実行するためのプログラムを、コンピュータシステムが読みとり可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する目検出装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有するストレージに当該プログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで目検出装置を構成してもよい。
【０１１１】
また、上述の機能を、ＯＳ（Operating System）とアプリケーションとの分担、またはＯＳとアプリケーションとの協働により実現する場合などには、アプリケーション部分のみを記録媒体やストレージに格納してもよい。
【０１１２】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板（Bulletin Board System）に前記プログラムを掲示し、ネットワークを介して前記プログラムを配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施形態に係る目検出装置の構成を示すブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭまたはＲＡＭに格納されている各種データを説明するための図である。
【図４】本発明の実施形態に係る処理の概要を説明するための図である。
【図５】本発明の実施形態の前処理を説明するためのフローチャートである。
【図６】本発明の実施形態の顔両端位置判別処理を説明するためのフローチャートである。
【図７】本発明の実施形態の顔向き判別処理を説明するためのフローチャートである。
【図８】ドライバーが右方向を向いているときの顔画像を示す図である。
【図９】本発明の実施形態の目下候補検出処理を説明するためのフローチャートである。
【図１０】横ソーベル画像において、ヒストグラム値が高く、かつヒストグラムのピーク値が連続しているラインを示す図である。
【図１１】本発明の実施形態の鼻孔検出処理を説明するためのフローチャートである。
【図１２】鼻孔探索領域を設定した画像を示す図である。
【図１３】本発明の実施形態の縦方向画素列抽出処理を説明するためのフローチャートである。
【図１４】本発明の実施形態の横方向画素列抽出処理を説明するためのフローチャートである。
【図１５】本発明の実施形態の鼻孔決定処理を説明するためのフローチャートである。
【図１６】本発明の実施形態の上下瞼判別処理を説明するためのフローチャートである。
【図１７】本発明の実施形態の顔上部領域Ａを説明するための図である。
【図１８】（ａ）は、顔上部領域における、上下瞼の候補となるエッジラインの組み合わせを示す図である。（ｂ）は、（ａ）の上下瞼の候補となるエッジラインの内から正しい瞼を判別するときの、正しい瞼に該当する上下瞼の候補のエッジラインが示すべき動作を説明するための図である。
【図１９】図１８（ａ）における上下瞼の候補となるエッジラインの重心間距離の経時変化を示す図である。
【符号の説明】
【０１１４】
１０      カメラ
１２      照明光源
１４      コンピュータ
１６      表示装置
２１      Ａ／Ｄ変換器    （顔画像記憶手段）
２２      画像メモリ      （顔画像記憶手段、顔中心線検出手段）
２３      ＲＯＭ          （横ソーベル手段）
２４      ＣＰＵ          （目下位置候補検出手段、目下位置選択手段、
目検出手段、横ソーベル手段、
階調値のヒストグラムを生成する手段、
目下位置候補出力手段、顔中心線検出手段、検索手段、
鼻孔位置判別手段、鼻孔と判別する手段）
２５      ＲＡＭ          （ＣＰＵ２４のワークエリア）
２６      表示制御装置
２８      設定メモリ
２９      操作装置
５０      目検出装置
【図１】
2008226073.tif 000003
【図２】
2008226073.tif 000004
【図３】
2008226073.tif 000005
【図４】
2008226073.tif 000006
【図５】
2008226073.tif 000007
【図６】
2008226073.tif 000008
【図７】
2008226073.tif 000009
【図８】
2008226073.tif 000010
【図９】
2008226073.tif 000011
【図１０】
2008226073.tif 000012
【図１１】
2008226073.tif 000013
【図１２】
2008226073.tif 000014
【図１３】
2008226073.tif 000015
【図１４】
2008226073.tif 000016
【図１５】
2008226073.tif 000017
【図１６】
2008226073.tif 000018
【図１７】
2008226073.tif 000019
【図１８】
2008226073.tif 000020
【図１９】
2008226073.tif 000021