(57)【要約】  【課題】  顔の姿勢に関わらず、顔を撮像して得られる画像データ中の顔部位を精度よく追跡する顔部位の追跡装置及びコンピュータプログラム、並びに画像データ中の眼の開閉状態を精度よく判定する眼の状態判定装置を提供する。  【解決手段】  ＨＤ１１が、顔の姿勢を示す姿勢情報に対応して、テンプレートである眼の特徴情報を眼の特徴情報ＤＢに記憶する。ＣＰＵ１０は、カメラ２が撮像した画像フレームに基づいて、撮像された顔の姿勢情報を特定し、特定した姿勢情報に対応するテンプレートを眼の特徴情報ＤＢから選択する。また、ＣＰＵ１０は、選択したテンプレートに基づいて、カメラ２が撮像する画像フレーム中の眼を検出し、検出した眼の動きを追跡する。【選択図】      図１
2005078311.tif 000002
【特許請求の範囲】
【請求項１】
顔を撮像して得られる画像データ中の顔部位を検出し、検出した顔部位を追跡する装置において、
前記画像データに基づいて、前記顔の姿勢を検出する姿勢検出手段と、
顔の姿勢に対応する顔部位の特徴情報を記憶する記憶手段と、
前記画像データ中の顔部位の候補を検出する候補検出手段と、
該候補検出手段が検出した顔部位の候補、及び前記姿勢検出手段が検出した姿勢に対応する顔部位の特徴情報に基づいて、前記顔部位を特定する特定手段と
を備えることを特徴とする顔部位の追跡装置。
【請求項２】
前記姿勢検出手段が検出した姿勢に対応する顔部位の特徴情報が前記記憶手段に記憶していない場合、前記候補検出手段が検出した顔部位の候補の特徴情報を抽出する抽出手段を備え、
前記記憶手段は、
前記抽出手段が抽出した特徴情報を、前記姿勢検出手段が検出した姿勢に対応させて記憶するように構成してあることを特徴とする請求項１に記載の顔部位の追跡装置。
【請求項３】
前記特定手段が特定した顔部位の位置情報を、前記姿勢検出手段が検出した姿勢に対応させて記憶する位置記憶手段を備えることを特徴とする請求項１又は２に記載の顔部位の追跡装置。
【請求項４】
コンピュータに、顔を撮像して得られる画像データ中の顔部位を検出させ、検出した顔部位を追跡させるコンピュータプログラムにおいて、
前記コンピュータに、
前記画像データに基づいて、前記顔の姿勢を検出させる手順と、
顔の姿勢に対応する顔部位の特徴情報を記憶させる手順と、
前記画像データ中の顔部位の候補を検出させる手順と、
検出した顔部位の候補、及び検出した姿勢に対応する顔部位の特徴情報に基づいて、前記顔部位を特定させる手順と
を実行させることを特徴とするコンピュータプログラム。
【請求項５】
顔を撮像して得られる画像データ中の眼を検出し、検出した眼の開閉状態を判定する装置において、
前記画像データに基づいて、前記顔の姿勢を検出する姿勢検出手段と、
顔の姿勢に対応する瞼の形状情報を記憶する瞼情報記憶手段と、
前記画像データ中の眼を特定する特定手段と、
該特定手段が特定した眼の瞼の形状を検出する瞼検出手段と、
該瞼検出手段が検出した瞼の形状、及び前記姿勢検出手段が検出した姿勢に対応する瞼の形状情報に基づいて、前記眼の開閉状態を判定する判定手段と
を備えることを特徴とする眼の状態判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔を撮像して得られる画像データ中の顔部位を検出し、検出した顔部位を追跡する顔部位の追跡装置及びコンピュータプログラム、また、検出した眼の開閉状態を判定する眼の状態判定装置に関するものである。
【背景技術】
【０００２】
自動車等の車両の運転を支援するシステムとして、例えば、特許文献１、特願２００３−２２４９８号公報及び特願２００３−２４２８８号公報等で提案されているような、運転者の顔が撮像できる位置に設置した車載カメラで運転者の顔を撮像し、得られた画像データから運転者の眼の位置を検出し、検出した眼の動きを追跡する装置がある。
【特許文献１】特開２０００−１６３５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のシステムでは、予め運転者の顔を撮像し、得られた画像データから、運転者の眼の領域を検出し、検出した眼の領域の特徴情報を標準テンプレートとして記憶しておく。そして、車両の走行時に車載カメラが撮像した画像データを、標準テンプレートが示す情報と比較することにより、画像データ中の眼の領域を検出し、検出した眼の領域の特徴情報を抽出する。また、抽出した特徴情報を追跡テンプレートとして記憶しておき、車載カメラが順次撮像する画像データを、追跡テンプレートが示す情報と比較することにより、画像データ中の眼の領域を順次検出し、また、検出した眼の追跡処理を行なうように構成してある。尚、複数の運転者の顔を撮像して得られた画像データから夫々検出した眼の領域の平均的な特徴情報を標準テンプレートとすることもできる。
【０００４】
ここで、標準テンプレートは、運転者の最頻姿勢である運転姿勢での運転者を撮像した画像データのみに基づいて生成される場合が多く、この標準テンプレートに基づいて画像データから抽出される追跡テンプレートによっては、運転者の姿勢の変化による運転者の顔の位置及び向きの相違を考慮した眼の検出処理及び追跡処理を実行することはできない。従って、上述した標準テンプレート及び追跡テンプレートに基づく眼の検出処理では、運転者の姿勢が変化した場合に、運転者の眼の位置を誤検出し、又は眼を検出できないおそれがあるという問題がある。また、運転者の眼の開閉状態での形状は、運転者の姿勢によって変化するものであり、上述したように、所定の姿勢で撮像した画像データに基づく標準テンプレート及び追跡テンプレートを用いた眼の検出処理に基づいて、眼の開閉形状を検出する場合には誤判定するおそれがあり、眼の開閉判定の精度が低下するという問題がある。
【０００５】
一方、運転者の姿勢を考慮し、夫々の姿勢での運転者の顔を撮像した画像データに基づいて生成した標準テンプレートを用いて眼の追跡処理を行なうシステムもある。しかし、このシステムでは、車載カメラが順次撮像する画像データを、夫々の姿勢毎に生成された標準テンプレートと順次比較することで、相関がより高い標準テンプレートを選択し、選択した標準テンプレートに基づいて眼の検出処理を行なうため、処理が煩雑となり処理時間が長くなるという問題がある。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、車両の運転者の顔を撮像して得られた画像データ中の顔部位を特定する際に、撮像された顔の姿勢に対応する顔部位の特徴情報をテンプレートとして用いることで、運転者の運転姿勢の変化による顔の位置及び向きの相違を考慮した顔部位の特定処理が可能な顔部位の追跡装置及びコンピュータプログラムを提供することを目的とする。
【０００７】
また、本発明の他の目的は、画像データから検出した顔部位の候補の特徴情報を、画像データから検出した顔の姿勢に対応させて記憶することで、予め用意されていない特徴情報に基づく顔部位の特定処理を実行する顔部位の追跡装置を提供することにある。同様に、画像データから特定された顔部位の位置情報を、当該顔の姿勢に対応させて記憶することで、運転者の顔の姿勢に基づいて顔部位の位置情報の推測が可能となる顔部位の追跡装置を提供することにある。
【０００８】
更に、本発明の他の目的は、顔を撮像して得られた画像データ中の眼の開閉状態を、当該顔の姿勢に対応する瞼の形状情報に基づいて判定することで、車両の運転者の姿勢の変化による顔の位置及び向きの相違を考慮した眼の開閉判定が可能な眼の状態判定装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る顔部位の追跡装置は、顔を撮像して得られる画像データ中の顔部位を検出し、検出した顔部位を追跡する装置において、顔の姿勢に対応する顔部位の特徴情報を記憶しておき、前記画像データに基づいて前記顔の姿勢を検出し、前記画像データ中の顔部位の候補を検出し、検出した顔部位の候補と、画像データから検出した姿勢に対応する顔部位の特徴情報とに基づいて、前記顔部位を特定するように構成してあることを特徴とする。
【００１０】
本発明に係る顔部位の追跡装置は、取得した画像データから検出した顔の姿勢に対応する顔部位の特徴情報が予め記憶されていない場合に、画像データから検出した顔部位の候補の特徴情報を抽出し、抽出した特徴情報を、検出した顔の姿勢に対応させて記憶するように構成してあることを特徴とする。
【００１１】
本発明に係る顔部位の追跡装置は、取得した画像データに基づいて特定した顔部位の位置情報を、前記画像データから検出した顔の姿勢に対応させて記憶するように構成してあることを特徴とする。
【００１２】
本発明に係るコンピュータプログラムは、コンピュータに、顔の姿勢に対応する顔部位の特徴情報を記憶させ、顔を撮像して得られる画像データに基づいて前記顔の姿勢を検出させ、前記画像データ中の顔部位の候補を検出させ、検出した顔部位の候補と、画像データから検出した姿勢に対応する顔部位の特徴情報とに基づいて、前記顔部位を特定させるように構成してあることを特徴とする。
【００１３】
本発明に係る眼の状態判定装置は、顔を撮像して得られる画像データ中の眼を検出し、検出した眼の開閉状態を判定する装置において、顔の姿勢に対応する瞼の形状情報を記憶しておき、前記画像データに基づいて前記顔の姿勢を検出し、前記画像データ中の眼を特定し、特定した眼の瞼の形状を検出し、検出した瞼の形状と、画像データから検出した姿勢に対応する瞼の形状情報とに基づいて、前記眼の開閉状態を判定するように構成してあることを特徴とする。
【００１４】
本発明による場合は、顔を撮像して得られる画像データ中の顔部位の候補を検出し、検出した顔部位の候補と、前記画像データに基づいて検出した前記顔の姿勢に対応する顔部位の特徴情報とに基づいて、前記画像データ中の顔部位を特定する。また、顔の姿勢として、顔の向き、基準位置に対する横方向位置及び上下方向位置等を検出する。更に、画像データ中の顔部位を特定する際に、検出した顔部位の候補と、検出した顔の姿勢に対応する顔部位の特徴情報との相関値を算出し、算出した相関値が所定の閾値よりも大きい場合に、検出した顔部位の候補を、顔部位であると特定する。
【００１５】
本発明による場合は、画像データから検出した顔の姿勢に対応する顔部位の特徴情報が予め用意されていない場合に、画像データから検出した顔部位の候補の特徴情報を、画像データから検出した顔の姿勢に対応させて記憶させる。また、本発明による場合は、特定した画像データ中の顔部位の位置情報を、画像データから検出した顔の姿勢に対応させて記憶させる。
【００１６】
本発明による場合は、顔を撮像して得られる画像データ中の瞼の形状を検出し、検出した瞼の形状と、前記画像データに基づいて検出した顔の姿勢に対応する瞼の形状情報とに基づいて、前記眼の開閉状態を判定する。また、瞼の形状を近似関数にて示し、この近似関数に係る情報と、検出した顔の姿勢に対応する瞼の形状を示す関数に係る情報とに基づいて、前記眼の開閉状態を判定する。
【発明の効果】
【００１７】
本発明によれば、顔を撮像して得られた画像データ中の顔部位を、当該顔の姿勢に対応する顔部位の特徴情報に基づいて特定することで、例えば、車両の運転者の姿勢の変化による顔の位置及び向きの相違を考慮した顔部位の特定処理を実行することが可能となり、運転者の姿勢の変化に関わらず、顔部位を精度よく特定することができる。また、取得した画像データ中の顔部位の候補と、画像データから検出した顔の姿勢により一意に決定されるテンプレートとの比較に基づいて画像データ中の顔部位を特定することで、比較処理が簡略化され、顔部位の特定処理にかかる処理時間を短縮することができる。
【００１８】
また、従来から行なわれている処理を用いて、例えば、画像データ中の顔の向き、及び基準位置に対する横方向位置及び／又は上下方向位置を検出することで、運転者の姿勢を精度よく検出することができ、検出した姿勢に基づく顔部位の特定処理及び追跡処理を実行することができる。更に、画像データから検出した顔部位の候補と、画像データから検出した姿勢に対応する顔部位の特徴情報との相関値に基づき、検出した候補を顔部位であると特定することで、従来から行なわれているテンプレートマッチング法にて容易に顔部位を特定することができる。
【００１９】
本発明によれば、画像データから検出した顔部位の候補の特徴情報を、画像データから検出した顔の姿勢に対応させて記憶させることで、予め用意していない特徴情報に基づく顔部位の特定処理を実行することができる。また、出現頻度の少ない姿勢に対応する顔部位の特徴情報を予め用意しないことにより、顔部位の特徴情報を記憶しておくメモリ領域を削減することができる。更に、画像データから特定した顔部位の位置情報を、当該顔の姿勢に対応させて記憶させることにより、顔部位を検出できない場合に、画像フレーム中の顔部位の位置情報を精度よく推測することができる。
【００２０】
本発明によれば、顔を撮像して得られた画像データ中の瞼の形状と、前記画像データに基づいて検出した顔の姿勢に対応する瞼の形状情報とに基づいて、眼の開閉状態を判定することで、例えば、車両の運転者の姿勢の変化による顔の位置及び向きの相違を考慮した瞼の状態判定処理を実行することが可能となり、運転者の姿勢の変化に関わらず、瞼の開閉状態を精度よく判定することができる。また、瞼の形状を示す近似関数に係る情報と、予め用意してある夫々の姿勢に対応する瞼の形状を示す関数に係る情報とに基づいて眼の開閉状態を判定することで、例えば、算出した近似関数の係数部分に基づいて、眼の開閉状態を精度よく判定することができる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明に係る顔部位の追跡装置及び眼の状態判定装置をその実施の形態を示す図面に基づいて具体的に説明する。本実施の形態では、例えば、自動車等の車両に乗車する運転者の顔を撮像できる位置に設置したカメラで撮像した画像データに基づいて、運転者の顔の顔部位として眼を検出し、検出した眼の動きを追跡する眼の追跡装置、及び、眼を追跡することで眼の開閉状態を判定する眼の状態判定装置について説明する。尚、カメラは、例えば、ミラー又はハンドルの配置位置近傍に設置することができ、１秒当たり３０枚の画像フレーム（画像データ）を取得する。
【００２２】
図１は本発明に係る眼の追跡装置及び眼の状態判定装置の構成例を示すブロック図である。図中１は本発明に係る眼の追跡装置及び眼の状態判定装置であるコンピュータを示しており、コンピュータ１は、ケーブルＣを介してカメラ２と接続されている。尚、カメラ２とコンピュータ１とは、専用のケーブルＣで接続されるだけでなく、車載ＬＡＮ（Local Area Network）等のネットワークを介して接続することも可能である。
【００２３】
カメラ２は、ＭＰＵ（Micro Processor Unit）２０、ＭＰＵ２０が実行する制御プログラムを記憶したＲＯＭ２１、ＭＰＵ２０による制御動作中に発生する種々のデータを一時的に記憶するＲＡＭ２２、ＣＣＤ（Charge Couple Device）等により構成された撮像部２３、撮像部２３により取得して得られたアナログの画像フレームをデジタルの画像フレームに変換するＡ／Ｄ（アナログ／デジタル）変換器２４、ＤＲＡＭにより構成され、Ａ／Ｄ変換器２４により変換されたデジタルの画像フレームを一時的に記憶するフレームメモリ２５、ケーブルＣを介してデータ伝送を行なうためのインタフェース２６等を備えており、夫々はバス２７を介して相互に接続されている。
【００２４】
ＭＰＵ２０は、自身が備える時計手段（図示せず）により所定のタイミングを計時しながらバス２７を介して上述したハードウェア各部を制御するとともに、ＲＯＭ２１が記憶するカメラ２の動作に必要な種々の制御プログラムを順次実行する。また、本実施の形態におけるＡ／Ｄ変換器２４は、撮像部２３から順次入力されるアナログの画像フレームを、例えば各画素を２５６階調（１Ｂｙｔｅ）の画素データ（輝度値）で示すデジタルの画像フレームに変換する。
【００２５】
上述した構成のカメラ２は、ＭＰＵ２０の指示に従って所定のタイミングで撮像部２３が画像フレームを取り込み、得られたアナログの画像フレームをＡ／Ｄ変換器２４がデジタルの画像フレームに変換してフレームメモリ２５に記憶させる。また、フレームメモリ２５に記憶してある画像フレームはインタフェース２６を介してコンピュータ１に伝送される。
【００２６】
一方、コンピュータ１は、制御中枢としてのＣＰＵ（Central Processing Unit）１０、ＣＰＵ１０が実行する制御プログラムを記憶したハードディスク（以下、ＨＤという）１１、ＣＰＵ１０による制御動作中に発生する種々のデータを一時的に記憶するＲＡＭ１２、ＤＲＡＭにより構成され、ケーブルＣを介して取得した画像フレームを一時的に記憶するフレームメモリ１３、ケーブルＣを介してデータ伝送を行うためのインタフェース１４、ＣＤ−ＲＯＭドライブ等の外部記憶装置１５等を備えている。
【００２７】
ＣＰＵ１０は、時計手段（図示せず）を備えており、所定のタイミングを計時しながら、バス１６を介して接続される上述したハードウェア各部を制御するとともに、ＨＤ１１に記憶してある制御プログラムを順次実行する。また、ＣＰＵ１０は、自身が行なう眼の検出処理により眼の位置が検出できなかった場合にオンにされる眼検出不可フラグレジスタ、及び鼻の検出処理により鼻の位置が検出できなかった場合にオンにされる鼻検出不可フラグレジスタを備えている。
【００２８】
ＨＤ１１は、ＣＰＵ１０による各処理で用いられる各種の閾値、例えば、眼を特定する際の所定の第１閾値、第２閾値及び第３閾値、瞼の形状を検出する際の所定の範囲を示す各値、また、所定の画素数、所定の距離、顔の向き検出処理で用いられる特徴テーブル等を記憶する。尚、コンピュータ１は、ＣＤ−ＲＯＭ等の記録媒体１７に記憶してある本発明の姿勢検出処理プログラム、候補検出処理プログラム及び眼特定処理プログラム等を外部記憶装置１５にて読み取り、読み取ったコンピュータプログラムをＨＤ１１に記憶する。従って、ＣＰＵ１０は、ＨＤ１１に予め記憶してある制御プログラムと同様に、外部記憶装置１５を介してＨＤ１１に読み取ったコンピュータプログラムも、ＲＡＭ１２に読み出して順次実行する。
【００２９】
上述した構成のコンピュータ１が眼の追跡装置として動作する場合、ＣＰＵ１０は、ケーブルＣを介して順次カメラ２から取得し、フレームメモリ１３が記憶する画像フレームに対して、ＨＤ１１の姿勢検出処理プログラムをＲＡＭ１２に読み出して順次実行する。これにより、ＣＰＵ１０は、カメラ２が撮像した画像フレームに基づいて、撮像された運転者の顔における姿勢を検出する姿勢検出手段として動作する。本実施の形態では、ＣＰＵ１０は、顔の姿勢として、運転者の顔の向きと、運転者の顔の基準位置に対する横方向位置を検出する。従って、ＣＰＵ１０は、顔の向きを検出する向き検出手段、及び顔の位置を検出する位置検出手段として動作する。尚、本実施の形態では、横方向位置として、正面を向いた運転姿勢（基準位置）に対して、カメラ２から運転者の顔までの距離の変化に基づく前後位置を検出する。また、顔の位置は、基準位置に対する前後位置だけでなく、カメラ２に対して左右位置や上下方向位置も検出し、夫々検出した位置にて顔の位置を特定することにより、より細かく顔の位置を特定することができる。
【００３０】
図２は姿勢情報の割当テーブルを示す図であり、ＣＰＵ１０は、上述のように画像フレームに基づいて検出した運転者の顔の向き及び位置に対応する姿勢を示す姿勢情報を割当テーブルから特定する。例えば、ＣＰＵ１０が、顔向きを左向きに、顔の位置を前位置に検出した場合には、姿勢１０で示す姿勢情報を特定する。また、図２に示すように、本実施の形態では、顔の向きについて、正面、右向き、左向き、下向き、上向き、右傾き及び左傾きを考慮しており、顔の位置について、基準位置、基準位置に対して前位置及び後位置を考慮しているが、運転者の癖及び習慣、また、本発明の装置を利用する状況等に応じて、検出姿勢の数を適宜変更することもできる。
【００３１】
また、ＣＰＵ１０は、カメラ２が撮像する画像フレームに対して、ＨＤ１１の候補検出処理プログラムをＲＡＭ１２に読み出して順次実行し、画像フレームに含まれる運転者の眼の候補領域を検出する候補検出手段として動作する。具体的には、ＣＰＵ１０は、車両の走行中にカメラ２が順次撮像する画像フレームについて、時系列的に先の画像フレームにおいて特定された眼の位置に基づいて眼の候補領域を検出する。更に、ＣＰＵ１０は、ＨＤ１１の眼特定処理プログラムをＲＡＭ１２に読み出して順次実行し、検出した眼の候補領域と、予めテンプレートとして用意してある眼の特徴情報とに基づいて、眼の候補領域が眼であると特定する特定手段として動作する。
【００３２】
本実施の形態では、眼の特徴情報によるテンプレートを、運転者の顔の姿勢に対応してＨＤ（記憶手段）１１の適宜の領域に設定してある眼の特徴情報データベース（以下、眼の特徴情報ＤＢという）に登録してある。従って、ＣＰＵ１０は、カメラ２が撮像した画像フレームから、上述のように検出した運転者の顔の向き及び位置が示す姿勢に対応するテンプレートをＨＤ１１の眼の特徴情報ＤＢから選択し、選択したテンプレートと、画像フレームから検出した眼の候補領域における特徴情報とに基づいて眼を特定する。具体的には、選択したテンプレートと、画像フレームから検出した眼の候補領域における特徴情報との相関値を、例えば次式を用いて算出する算出手段として動作し、算出した相関値が、予めＨＤ１１に記憶する所定の閾値よりも大きい場合に、検出した候補領域が眼を示す領域であると特定する。
【００３３】
【数１】
2005078311.tif 000003
【００３４】
ここで、本実施の形態では、テンプレートとして、初期テンプレートと追跡テンプレートとを用いており、初期テンプレートは、予めＨＤ１１の眼の特徴情報ＤＢに記憶してあるテンプレートであり、追跡テンプレートは、眼の追跡処理において順次更新されるテンプレートである。尚、追跡テンプレートは、ＨＤ１１の眼の特徴情報ＤＢに記憶してあるテンプレートと同様に、対応する顔の姿勢情報とともにＲＡＭ１２に記憶される。
【００３５】
図３はテンプレートを説明するための図であり、本実施の形態におけるテンプレートは、画像フレームから検出した眼の領域Ｒと、眉毛部分の領域Ｒ１とについて、図中Ｘで示す水平方向に棒状の領域であるＸテンプレート、及び図中Ｙで示す垂直方向に２つの棒状の領域であるＹテンプレート１及びＹテンプレート２を含んでおり、これらのテンプレートにより眼の特徴を示している。尚、テンプレートは、図に示すような３つの棒状の領域に限定されるものではないが、眉毛の領域及び瞳の領域を含むようにテンプレートを設定することにより、少ない情報量のテンプレートでより正確に眼を特定することができる。
【００３６】
本実施の形態では、画像フレーム中の眼を特定する際に用いる、運転者の顔の姿勢に対応するテンプレートが、ＨＤ１１の眼の特徴情報ＤＢに用意されていない場合、ＣＰＵ１０は、画像フレームから検出した眼の候補領域におけるテンプレート（眼の特徴情報）を抽出する抽出手段として動作する。また、ＣＰＵ１０は、抽出したテンプレートを、当該顔の姿勢に対応してＨＤ１１の眼の特徴情報ＤＢに記憶させる。これにより、例えば、出現頻度が少ない姿勢に対応するテンプレートを用いて、眼の特定処理及び追跡処理を実行することができる。
【００３７】
更に、ＣＰＵ１０は、顔の姿勢に対応するテンプレートを用いて特定した眼の位置情報を、当該顔の姿勢に対応させてＨＤ（位置記憶手段）１１の眼の位置情報ＤＢに記憶させる。これにより、上述したような眼の特定処理の実行中に、眼を誤検出し、また、眼が検出できなかった場合であっても、画像フレームから検出する姿勢に基づいて眼の位置を推測することができ、眼の特定処理を続行することが可能となる。
【００３８】
一方、上述した構成のコンピュータ１が眼の状態判定装置として動作する場合、ＣＰＵ１０は、眼の追跡装置として動作する場合と同様に、カメラ２が撮像した画像フレームに基づいて、撮像された運転者の顔における姿勢を検出する。また、カメラ２から取得した画像フレームに含まれる運転者の眼を、例えば、上述したような眼の特定処理により特定する。更に、ＣＰＵ１０は、特定した眼の瞼の形状を検出する瞼検出手段として動作し、検出した瞼の形状と、予め眼の開閉状態に対応して用意してある瞼の形状情報とに基づいて眼の開閉状態を判定する判定手段として動作する。
【００３９】
本実施の形態では、眼の開閉判定に用いる瞼の形状情報を、運転者の顔の姿勢に対応してＨＤ（瞼情報記憶手段）１１の適宜の領域に設定してある瞼の形状情報データベース（以下、瞼の形状情報ＤＢという）に登録してある。従って、ＣＰＵ１０は、カメラ２が撮像した画像フレームから検出した運転者の顔の姿勢に対応する瞼の形状情報をＨＤ１１の瞼の形状情報ＤＢから選択し、選択した瞼の形状情報と、画像フレームから検出した瞼の形状とに基づいて眼の開閉判定を行なう。
【００４０】
図４は瞼の形状を検出する際に行なうエッジ抽出処理を説明するための模式図であり、図４（ａ）は、ＣＰＵ１０が特定した、カメラ２から取得した画像フレームに含まれる運転者の眼の領域Ｒを示している。領域Ｒは、水平方向Ｘ及び垂直方向Ｙに夫々配列された画素データを有しており、ＣＰＵ１０は、図４（ａ）に破線で示すように垂直方向Ｙの各画素データを走査しながら、例えば図４（ｂ）に示す３×３の行列を用いたフィルタ処理を行ない、輝度の高い領域から輝度の低い領域へのエッジを強調する。また、ＣＰＵ１０は、フィルタ処理を行なった各画素データにおいて、垂直方向Ｙの最大輝度値を有する画素データの位置をエッジ抽出点として抽出する。
【００４１】
図４（ｃ）は、抽出したエッジ抽出点の位置を示しており、ＣＰＵ１０は、抽出したエッジ抽出点を示す近似関数を算出する関数算出手段として動作し、図４（ｄ）で示すように、例えば２次関数にて補間する。上瞼は、図４（ｅ）に示すような眼の開状態から、図４（ｆ）に示すような眼の閉状態まで変化する可能性があり、算出した２次関数の係数は、所定の範囲をとることができる。従って、ＨＤ１１の瞼の形状情報ＤＢには、瞼の形状情報として、顔の姿勢に対応して、２次関数の係数（関数に係る情報）が記憶してあり、ＣＰＵ１０は、画像フレームから検出した姿勢情報に対応する係数と、上瞼の形状を近似した２次関数の係数とを比較し、当該眼の開閉状態を判定する。
【００４２】
以下に、上述の構成のコンピュータ１が、カメラ２で撮像した画像フレームに基づいて、撮像された運転者の顔の基準位置に対する前後位置を検出する顔の位置検出処理について説明する。図５はコンピュータ１による顔の位置検出処理手順を示すフローチャートであり、ＣＰＵ１０は、ＨＤ１１の姿勢検出処理プログラムを実行し、フレームメモリ１３が記憶する画像フレームの垂直方向に隣合って配列される各画素データを加算する（Ｓ１）。図６はコンピュータ１による顔の位置検出処理を説明するための図であり、図６（ａ）はカメラ２から取得した画像フレームの例を示している。図６（ａ）においてＸは画像フレームにおける水平方向を、Ｙは画像フレームにおける垂直方向を夫々示しており、画像フレームは水平方向Ｘ及び垂直方向Ｙ夫々に複数の画素データが配列してある。
【００４３】
ＣＰＵ１０は、画像フレームの垂直方向Ｙに配列される画素データを順次加算することにより、図６（ｂ）に示すようなグラフを算出する。図６（ｂ）のグラフにおいては、横軸に水平方向Ｘを、縦軸に算出された加算値、具体的には輝度和を夫々示している。ここで、顔の領域は、髪の領域及び背景領域と比較して明るく撮像される傾向にあり、上述のように算出した輝度和に基づき顔の領域を特定することができる。
【００４４】
従って、本実施の形態におけるＣＰＵ１０は、ＨＤ１１に予め設定された閾値としての所定の輝度値を用い、上述のように算出された輝度和が所定の輝度値よりも大きい場合に、当該輝度和に算出された画素データは、顔の領域内の画像データであると判断し、顔の水平方向における領域Ｆ１を特定する（Ｓ２）。尚、図６（ｃ）では、Ｆ１ａは顔の領域の左端位置を、Ｆ１ｂは顔の領域の右端位置を夫々示している。
【００４５】
また、画像フレームの水平方向Ｘの画素データの変化は、背景の領域から顔の領域へ、及び顔の領域から背景の領域へ変化する箇所が、他の箇所と比較して大きい傾向にあり、上述のように算出した輝度和の変化量に基づいても顔の領域を特定することができる。従って、ＣＰＵ１０は、上述のように算出した輝度和について、水平方向Ｘの各位置において、各位置の輝度和を中心として、水平方向Ｘの左右に所定数の画素間での変化量を算出し、夫々算出された変化量が大きい位置、例えば、図６（ｄ）中にＦ２ａで示す位置を、水平方向Ｘにおける顔の領域であると特定する（Ｓ３）。
【００４６】
尚、図６（ｄ）においては、変化量に基づく顔の領域の特定処理によっては、顔の領域Ｆ２の右端位置は特定されず、この場合には、ＣＰＵ１０は、図６（ｃ）に示すように、所定の輝度値に基づき特定された右端位置Ｆ１ｂを、顔の領域Ｆ２の右端位置として、特定した顔の領域Ｆ２をＲＡＭ１２に記憶する（Ｓ４）。また、ＣＰＵ１０は、特定した顔の領域Ｆ２における横幅を示す画素数を計数し（Ｓ５）、計数した画素数に基づいて、画像フレームに撮像された運転者の顔の、基準位置に対する前後位置を検出する（Ｓ６）。
【００４７】
図７は顔の横幅に基づいて顔の位置を検出する処理を説明するための図であり、図７（ａ）のグラフは、横軸に顔の横幅を示す画素数を、縦軸に各画素数の出現頻度を夫々示している。図７（ｂ）は基準位置（正面を向いた運転姿勢）での顔を撮像した場合の画像フレームの例を示しており、図７（ｃ）は基準位置よりもカメラ２との距離が近い前位置での顔を撮像した場合の画像フレームの例を示しており、図７（ｄ）は基準位置よりもカメラ２との距離が遠い後位置での顔を撮像した場合の画像フレームの例を示している。図７（ｂ），（ｃ），（ｄ）で示すように、基準位置に対してカメラ２との距離が近い前位置での顔を撮像した場合、画像フレーム中の顔領域の横幅ｈが広くなり、基準位置に対してカメラ２との距離が遠い後位置での顔を撮像した場合、画像フレーム中の顔領域の横幅ｈが狭くなる。
【００４８】
従って、ＣＰＵ１０は、図７（ａ）に示すように、横幅ｈ1 と横幅ｈ2 とを閾値として、画像フレーム中の顔領域の横幅ｈが横幅ｈ1 よりも狭い場合には、撮像された顔が基準位置に対して後位置にあると特定し、画像フレーム中の顔領域の横幅ｈが横幅ｈ2 よりも広い場合には、撮像された顔が基準位置に対して前位置にあると特定する。また、同様の処理により、画像フレーム中の顔領域の縦幅に基づいても顔の位置を特定することができる。尚、運転者の顔の基準位置に対する位置の検出方法は、上述したように、画像フレームに基づいて検出する方法に限られるものではなく、また、画像フレームに基づく検出方法は、上述した方法には限られない。
【００４９】
以下に、上述の構成のコンピュータ１が、カメラ２が撮像した画像フレームに基づいて、撮像された運転者の顔の向きを検出する顔の向き検出処理について説明する。本実施の形態では、コンピュータ１は、カメラ２が撮像した画像フレームに基づいて、撮像された運転者の眼の位置を検出する眼の検出処理と、鼻の位置を検出する鼻の検出処理とを行なっており、夫々検出した眼の位置及び鼻の位置に基づいて、顔の向きを検出する。従って、まず、ＣＰＵ１０が行なう眼の検出処理について説明する。図８はコンピュータ１による眼の検出処理手順を示すフローチャートであり、ＣＰＵ１０は、フレームメモリ１３に記憶する画像フレームの水平方向に隣合って配列される画素データを加算する（Ｓ１１）。
【００５０】
図９はコンピュータ１による眼の検出処理を説明するための図であり、図９（ａ）は、図６（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。ＣＰＵ１０は、画像フレームの水平方向Ｘに配列される画素データを順次加算して、図９（ｂ）に示すようなグラフを算出する。図９（ｂ）のグラフにおいては、縦軸に垂直方向Ｙを、横軸に算出された輝度和を夫々示している。ＣＰＵ１０は、上述のように算出した輝度和において最大値を特定する（Ｓ１２）。ここで、顔の領域においては頬の部分が最も明るく撮像される傾向にあるため、最大値であると特定される輝度和は頬の位置の画素データの加算値であると判断することができ、図９（ｃ）のグラフにおいて垂直方向ＹのＭａｘで示す位置を、上述のように頬の位置と特定することができる。
【００５１】
ＣＰＵ１０は、上述のように算出した輝度和において極小値を特定し、ステップＳ１２で最大値であると特定した輝度和の位置の上方にある極小値となる輝度和の位置を選択し、このような輝度和を選択できたか否かを判断する（Ｓ１３）。眼の領域は、肌の領域と比較して暗く撮像されるため、上述のように最大値である輝度和の位置が示す頬の位置よりも上方にあり、極小値であると特定された輝度和は眼の位置の画素データの加算値である可能性が高く、このように選択された、図９（ｃ）中にＭｉｎで示す位置を眼の位置の候補とすることができる。
【００５２】
上述したように、最大値である輝度和の位置の上方の、極小値となる輝度和が選択できたと判断した場合（Ｓ１３：ＹＥＳ）、ＣＰＵ１０は、画像フレームの上方から順次極小値となる輝度和を検出し、上方から２番目の位置で極小値となる輝度和を選択し、このような輝度和を選択できたか否かを判断する（Ｓ１４）。眼の領域と同様に、眉毛の領域も肌の領域と比較して暗く撮像されるため、上述のように特定された極小値において、図９（ｄ）中の位置Ｍｉｎ1 は、画像データの上方から１番目の極小値の位置を示しており、この極小値は眉毛の位置の画素データの加算値であると判断でき、また、上方から２番目の極小値の位置は、眼の位置の画素データの加算値であると判断でき、この２番目の極小値の位置Ｍｉｎ2 を眼の位置の候補とすることができる。
【００５３】
ＣＰＵ１０は、上方から２番目の位置にある輝度和が選択できたと判断した場合（Ｓ１４：ＹＥＳ）、上述のようにステップＳ１３及びＳ１４にて選択した極小値の位置を比較することにより、両極小値の位置Ｍｉｎ，Ｍｉｎ2 が略一致するか否かを判断し（Ｓ１５）、略一致したと判断した場合（Ｓ１５：ＹＥＳ）、選択した極小値の位置を眼の位置であると特定してＲＡＭ１２に記憶する（Ｓ１６）。一方、ステップＳ１３又はＳ１４において、対応する極小値が選択されないと判断した場合（Ｓ１３：ＮＯ，Ｓ１４：ＮＯ）、及びステップＳ１５において、選択した２つの極小値の位置Ｍｉｎ，Ｍｉｎ2 が一致しないと判断した場合（Ｓ１５：ＮＯ）、ＣＰＵ１０は、自身が備える眼検出不可フラグレジスタをオンにして（Ｓ１７）、眼検出処理を終了する。
【００５４】
次に、ＣＰＵ１０が行なう鼻の検出処理について説明する。尚、本実施の形態では、上述した眼の検出処理により眼の位置を検出できた場合にのみ、以下の鼻の検出処理が可能である。図１０はコンピュータ１による鼻の検出処理手順を示すフローチャートであり、図１１はコンピュータ１による鼻の検出処理を説明するための図である。ＣＰＵ１０は、上述した眼の検出処理により検出した眼の位置Ｅから、予めＨＤ１１に記憶してある所定の画素数だけ下方の領域Ｒにおいて、垂直方向Ｙに隣合って配列される画素データを加算し（Ｓ２１）、図１１（ｂ）に示すようなグラフを算出する。尚、図１１（ａ）は、図６（ａ）と同様に、カメラ２から取得した画像フレームの例を示しており、図１１（ｂ）のグラフにおいては、横軸に水平方向Ｘを、縦軸に算出された輝度和を夫々示している。
【００５５】
次にＣＰＵ１０は、上述のように算出した輝度和における極小値を特定する（Ｓ２２）。ここで、鼻の輪郭部分は顔の領域において暗く撮像される傾向にあるため、このように極小値であると特定される輝度和は、鼻の輪郭部分の画像データの加算値であると特定することができ、図１１（ｂ）のグラフにおいて水平方向ＸのＭｉｎ3 ，Ｍｉｎ4 で示す極小値の位置を鼻の左右の輪郭位置と特定することができる。図１１（ｃ）は、図１１（ｂ）において水平方向Ｘにおける位置Ｍｉｎ3 の近傍の拡大図であり、図に示すように、水平方向Ｘの注目位置Ｍｉｎ3 の輝度和が、水平方向Ｘに左右の夫々所定数の画素間において最小値となる輝度和を極小値としている。
【００５６】
ＣＰＵ１０は、上述のように特定した極小値が複数あるか否かを判断し（Ｓ２３）、極小値が複数あると判断した場合（Ｓ２３：ＹＥＳ）、２つの極小値の位置において水平方向Ｘにおける距離を算出し（Ｓ２４）、算出した距離が予めＨＤ１１に記憶してある所定の距離よりも短いか否かを判断する（Ｓ２５）。このように算出した、鼻の輪郭位置であると特定された極小値の位置Ｍｉｎ3 ，Ｍｉｎ4 における水平方向Ｘの距離は鼻の横幅を示しており、この横幅が所定の距離よりも長いと判断した場合（Ｓ２５：ＮＯ）、ＣＰＵ１０は、鼻の位置が検出できなかったとして自身が備える鼻検出不可フラグレジスタをオンにして（Ｓ２６）、鼻検出処理を終了する。
【００５７】
また、２つの極小値の水平方向Ｘの距離が所定距離よりも短いと判断した場合（Ｓ２５：ＹＥＳ）、ＣＰＵ１０は、当該距離を隔てる極小値Ｍｉｎ3 ，Ｍｉｎ4 を、鼻の輪郭位置の画素データの加算値であると判断し、この極小値Ｍｉｎ3 ，Ｍｉｎ4 の中央位置を算出して（Ｓ２７）、算出された中央位置を鼻の位置と特定してＲＡＭ１２に記憶する（Ｓ２８）。
【００５８】
一方、ステップＳ２３において、特定された極小値が複数ないと判断した場合（Ｓ２３：ＮＯ）、即ち、鼻の左右の輪郭部分が正確に画像フレームに含まれなかった場合は、ＣＰＵ１０は、ステップＳ２２において極小値であると特定された輝度和の水平方向Ｘにおける位置を鼻の位置と特定してＲＡＭ１２に記憶する（Ｓ２９）。
【００５９】
図１２は鼻の輪郭部分が正確に撮像されなかった場合の、コンピュータ１による鼻の検出処理を説明するための図であり、図１２（ａ）に示すように、撮像対象の運転者の顔の向きによっては、鼻の左右の輪郭部分を正確に撮像できない場合がある。このような場合には、上述したステップＳ２２において特定された１つの極小値である輝度和の水平方向Ｘにおける位置Ｍｉｎ5 を鼻の位置と特定する。
【００６０】
以下に、上述したような眼の検出処理及び鼻の検出処理を行なうコンピュータ１が、カメラ２にて撮像した画像フレームに基づいて、撮像された運転者の顔の向きを検出する顔の向き検出処理について説明する。図１３はコンピュータ１による顔の向き検出処理手順を示すフローチャートであり、ＣＰＵ１０は、フレームメモリ１３が記憶する画像フレームに対して、図８のフローチャートにより説明した眼の検出処理を実行する（Ｓ３１）。尚、本実施の形態における眼の検出処理では、上述したように、カメラ２が撮像した画像フレームによっては、眼の位置を検出できない場合があり、ＣＰＵ１０は、自身の眼検出不可フラグレジスタがオフであるか否かに基づき、上述した眼の検出処理により眼の位置を検出できたか否かを判断する（Ｓ３２）。
【００６１】
図１４は眼の位置を検出できない画像フレームに対する顔の向き検出処理を説明するための図であり、図１４（ａ）は、図６（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。尚、眼の位置を検出できない画像フレームとしては、図１４（ｂ）に示すように、上述した眼の検出処理において算出される、画像フレームの水平方向Ｘに配列される画素データの加算値である輝度和において、極小値が特定できないものが挙げられる。
【００６２】
このように、眼の位置を検出できないと判断した場合（Ｓ３２：ＮＯ）、ＣＰＵ１０は、図５のフローチャートにより説明した顔の位置検出処理において算出した、画像フレームの垂直方向Ｙに配列される画素データの加算値である輝度和から、特徴データを抽出する（Ｓ３３）。ここで、図１４（ｃ）は画像フレームの垂直方向Ｙに配列される画素データの輝度和のグラフを示しており、ここでの特徴データとは、例えば、水平方向Ｘの左端から位置Ｘ１までの範囲に示すように、各輝度和がなだらかに上昇する特徴を示すデータである。尚、本実施の形態では、顔の各向きに対応して、各向きで撮像した画像フレームにおいて抽出される上述のような各特徴を示すデータを特徴テーブルとしてＨＤ１１に記憶してある。
【００６３】
具体的に、図１４（ｃ）においては、上述したように水平方向Ｘにおいて、各輝度和がなだらかに上昇し、輝度和の変化が少なく、このような画像フレームは、長い髪の領域である場合が多く、このような特徴データは、特徴テーブルにおいて、右向きに対応して記憶してある。従って、ＣＰＵ１０は、抽出した特徴データに基づいて、ＨＤ１１の特徴テーブルから前記顔の向きを右向きであると検出する（Ｓ３４）。尚、このような特徴テーブルに記憶してある特徴データは、予めＨＤ１１に記憶してあってもよいが、ユーザが設定することにより適宜追加することも可能である。
【００６４】
一方、ステップＳ３２において、眼の位置が検出されたと判断した場合（Ｓ３２：ＹＥＳ）、ＣＰＵ１０は、図１０のフローチャートにより説明した鼻の検出処理を実行し（Ｓ３５）、自身の鼻検出不可フラグレジスタがオフであるか否かに基づき、鼻の位置を検出できたか否かを判断する（Ｓ３６）。図１５は鼻の位置を検出できない画像フレームに対する顔の向き検出処理を説明するための図であり、図１５（ａ）は、図６（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。尚、鼻の位置を検出できない画像フレームとしては、図１５（ｂ）に示すように、上述した鼻の検出処理において算出される、眼の位置から所定画素数だけ下方の領域Ｒにおいて、垂直方向Ｙに配列される画素データの加算値である輝度和において、極小値が特定できないものが挙げられる。
【００６５】
このように、鼻の位置を検出できないと判断した場合（Ｓ３６：ＮＯ）、ＣＰＵ１０は、ステップＳ３１における眼の検出処理により算出した眼の位置に基づき、図１５（ｃ）にＥＲで示す眼の近傍領域において、垂直方向Ｙに配列される画素データを加算し（Ｓ３７）、加算値である輝度和を算出する。図１５（ｄ）は領域ＥＲにおいて垂直方向Ｙの画素データの輝度和のグラフを示しており、ＣＰＵ１０は、ステップＳ３３と同様に、このように算出された輝度和おける特徴データを抽出し（Ｓ３８）、抽出した特徴データに基づきＨＤ１１の特徴テーブルから顔の向きを検出する（Ｓ３９）。
【００６６】
尚、ここでの特徴データは、水平方向Ｘの左端から位置Ｘ２までの範囲に示すように、各輝度和が激しく変動する特徴等を示すデータであり、このように輝度和が激しく変動する領域は、短い髪の領域である場合が多く、このような特徴データは、特徴テーブルにおいて右向きに対応して記憶してあり、ＣＰＵ１０は、ステップＳ３９において運転者の顔は右を向いていると検出することができる。一方、ステップＳ３６において、鼻の位置が検出されたと判断した場合（Ｓ３６：ＹＥＳ）、ＣＰＵ１０は、図５のフローチャートにより説明した顔の位置検出処理において特定した、画像フレーム中の顔の領域、及びステップＳ３５で検出した鼻の位置に基づいて、顔の向きを検出する（Ｓ４０）。
【００６７】
上述したように、画像フレームから検出した眼の位置及び鼻の位置に基づいて、撮像された顔の向きを検出することにより、精度よく顔の向きを検出することが可能であり、また、画像フレームから眼の位置又は鼻の位置を検出できない場合であっても、画像フレームにおいて、垂直方向Ｙに配列される画素データの輝度和が示す特徴データに基づいて、精度よく顔の向きを検出することができる。尚、画像フレーム中の顔の向きを検出する方法は、上述したように、眼の位置及び鼻の位置に基づく方法には限られない。
【００６８】
以下に、上述したような顔の位置検出処理及び顔の向き検出処理を行なうコンピュータ１が、カメラ２から取得した画像フレームに基づいて、撮像される運転者の眼を検出し、検出した眼の動きを追跡する処理について説明する。図１６及び図１７はコンピュータ１による眼の追跡処理手順を示すフローチャートであり、ＣＰＵ１０は、カメラ２が撮像した画像フレームを取得し（Ｓ４１）、フレームメモリ２３に記憶させる。次に、ＣＰＵ１０は、ＨＤ１１の姿勢検出処理プログラムに従って、図５のフローチャートで説明した顔の位置検出処理を実行し（Ｓ４２）、フレームメモリ２３が記憶する画像フレームに基づいて、被写体である運転者の顔の位置を検出する。また、ＣＰＵ１０は、図１３のフローチャートで説明した顔の向き検出処理を実行し（Ｓ４３）、運転者の顔の向きを検出する。
【００６９】
ＣＰＵ１０は、夫々検出した顔の位置及び顔の向きに対応する姿勢情報を、ＨＤ１１の姿勢情報割当テーブルから特定し（Ｓ４４）、ＲＡＭ１２に記憶する。尚、ＲＡＭ１２に記憶する姿勢情報は、カメラ２から順次取得する画像フレームに基づいて逐次更新される。また、ＣＰＵ１０は、順次更新してＲＡＭ１２に記憶してある追跡テンプレートに基づいて、カメラ２から取得した画像フレーム中の眼の領域を検出し（Ｓ４５）、検出した眼の領域について、該領域の特徴情報であるテンプレートを抽出する（Ｓ４６）。
【００７０】
ＣＰＵ１０は、ステップＳ４４で特定した姿勢情報に対応する追跡テンプレートがＲＡＭ１２に記憶してあるか否かを判断し（Ｓ４７）、ＲＡＭ１２に記憶していないと判断した場合（Ｓ４７：ＮＯ）、特定した姿勢情報に対応するテンプレートがＨＤ１１の眼の特徴情報ＤＢに記憶してあるか否かを判断する（Ｓ４８）。また、ＣＰＵ１０は、テンプレートが眼の特徴情報ＤＢに記憶していないと判断した場合（Ｓ４８：ＮＯ）、ステップＳ４４で特定した姿勢情報と、ステップＳ４６で抽出したテンプレートとを対応させて、ＨＤ１１の眼の特徴情報ＤＢに追加する（Ｓ４９）。また、ＣＰＵ１０は、ステップＳ４５で検出した領域を示す眼の中央位置をＲＡＭ１２に記憶する（Ｓ５４）。
【００７１】
一方、ステップＳ４７で、姿勢情報に対応する追跡テンプレートがＲＡＭ１２に記憶してあると判断した場合（Ｓ４７：ＹＥＳ）、ＣＰＵ１０は、ステップＳ４６で抽出したテンプレートと、ＲＡＭ１２に記憶してある追跡テンプレートとの相関値を所定の式を用いて算出する（Ｓ５０）。尚、ステップＳ４８で、テンプレートが眼の特徴情報ＤＢに記憶してあると判断した場合（Ｓ４８：ＹＥＳ）、ＣＰＵ１０は、眼の特徴情報ＤＢのテンプレートを追跡テンプレートとしてＲＡＭ１２に記憶し、ステップＳ４６で抽出したテンプレートと、ＲＡＭ１２に記憶させた追跡テンプレートとの相関値を所定の式を用いて算出する（Ｓ５０）。
【００７２】
次にＣＰＵ１０は、算出した相関値とＨＤ１１に予め記憶してある第１閾値とを比較し、算出した相関値が第１閾値よりも大きいか否かを判断する（Ｓ５１）。ＣＰＵ１０は、算出した相関値が第１閾値よりも大きいと判断した場合（Ｓ５１：ＹＥＳ）、ステップＳ４６で抽出したテンプレートをＲＡＭ１２の追跡テンプレートに更新する（Ｓ５２）。一方、算出した相関値が第１閾値よりも小さいと判断した場合（Ｓ５１：ＮＯ）、ＣＰＵ１０は、ステップＳ５２の処理をスキップして、算出した相関値が、ＨＤ１１に予め記憶したる第２閾値よりも大きいか否かを判断する（Ｓ５３）。
【００７３】
ここで、ステップＳ５１の処理は、ステップＳ４５で検出した領域が、眼の追跡処理に用いる追跡テンプレートに利用できるか否かの判断を行なっており、この領域が追跡テンプレートに利用できない場合であっても、この領域中に眼を検出できる場合等があり、ステップＳ５３の処理は、この領域中に眼を検出できるか否かの判断を行なっている。従って、算出した相関値が第２閾値よりも大きいと判断した場合は（Ｓ５３：ＹＥＳ）、ＣＰＵ１０は、ステップＳ４５で検出した領域を示す眼の中央位置をＲＡＭ１２に記憶する（Ｓ５４）。
【００７４】
一方、前記相関値が第２閾値よりも小さいと判断した場合（Ｓ５３：ＮＯ）、即ち、前記領域内で眼を検出することができなかった場合、ＣＰＵ１０は、当該画像フレームにおいて、先立って行なわれた処理において蓄積された出現頻度の高い位置に基づく眼の領域を新たに検出し（Ｓ５５）、検出した領域のテンプレートと、ステップＳ４４で特定した姿勢情報に対応してＲＡＭ１２に記憶してある追跡テンプレート、又は、追跡テンプレートがない場合には、ＨＤ１１の眼の特徴情報ＤＢのテンプレートとの相関値を、ステップＳ５０の処理と同様に算出する（Ｓ５６）。また、ＣＰＵ１０は、算出した相関値がＨＤ１１に予め記憶してある第３閾値よりも大きいか否かを判断し（Ｓ５７）、算出した相関値が第３閾値よりも大きいと判断した場合（Ｓ５７：ＹＥＳ）、ステップＳ５５で検出した領域を示す眼の中央位置を記憶する（Ｓ５４）。尚、算出した相関値が第３閾値よりも小さいと判断した場合（Ｓ５７：ＮＯ）、即ち、前記領域内に追跡すべき眼を検出できかった場合、ＣＰＵ１０は、ステップＳ４１の処理に戻り、次の画像フレームにおいて眼の追跡処理を行なう。
【００７５】
次にＣＰＵ１０は、ステップＳ５４でＲＡＭ１２に記憶させた眼の位置に基づいて、図４の模式図で説明したエッジ抽出処理を実行することにより、当該眼の領域内の上瞼の形状を近似した２次関数を算出する（Ｓ５８）。ＣＰＵ１０は、算出した２次関数における係数を所定の範囲を示す各値と比較して、算出した２次関数における係数が所定の範囲内にあるか否かを判断し（Ｓ５９）、所定の範囲内にあると判断した場合（Ｓ５９：ＹＥＳ）、算出した瞼の形状を示す関数をＲＡＭ１２記憶する（Ｓ６０）。一方、算出した２次関数の係数が所定の範囲内にないと判断した場合（Ｓ５９：ＮＯ）、当該眼の領域は眼ではないと判断されるため、ＣＰＵ１０は、ステップＳ４１の処理に戻り、次の画像フレームにおいて眼の追跡処理を行なう。
【００７６】
上述したように、カメラ２が撮像した画像フレームに基づいて検出した顔の姿勢に対応するテンプレートを用いて、画像フレーム中の眼の追跡処理を行なうことにより、運転者の運転姿勢の変化に影響されず、運転者の運転姿勢の変化による顔の姿勢の変化を考慮した眼の追跡処理が可能となる。また、ＨＤ１１の眼の特徴情報ＤＢにテンプレートが用意されていない姿勢においては、新たにテンプレートを生成することで、その後に行なう眼の追跡処理に利用することができる。
【００７７】
以下に、上述したような顔の位置検出処理、顔の向き検出処理及び眼の追跡処理を行なうコンピュータ１が、カメラ２にて撮像した画像フレームに基づいて、撮像される運転者の眼の開閉状態を判定する眼の状態判定処理について説明する。図１８はコンピュータ１による眼の状態判定処理手順を示すフローチャートであり、ＣＰＵ１０は、上述した眼の追跡処理により算出された上瞼の形状を示す関数に基づき、当該運転者の眼の開閉を判定する開閉閾値を、運転者の顔の姿勢に対応して決定する（Ｓ６１）。図１９は開閉閾値の決定処理を説明するための図であり、横軸に算出された上瞼を示す２次関数の係数を、縦軸に各係数の出現頻度を夫々示しており、グラフの分布に基づいて開閉閾値を決定する。尚、図１９で示すグラフは、顔の姿勢情報に対応して複数生成してあり、夫々のグラフに基づいて、開閉閾値を決定する。
【００７８】
次にＣＰＵ１０は、順次取得する画像フレームに基づいて、画像フレーム中の運転者の右眼について、上述した眼の追跡処理を実行し（Ｓ６２）、右眼の上瞼の形状を示す関数を算出する。また、ＣＰＵ１０は、算出した２次関数の係数が、ステップＳ６１で顔の姿勢情報に対応して決定された開閉閾値よりも大きいか否かを判断し（Ｓ６３）、算出した係数が開閉閾値よりも大きいと判断した場合（Ｓ６３：ＹＥＳ）、当該右眼が開状態であると判定し（Ｓ６４）、前記係数が開閉閾値よりも小さいと判断した場合（Ｓ６３：ＮＯ）、当該右眼が閉状態であると判定する（Ｓ６５）。
【００７９】
同様に、ＣＰＵ１０は、画像フレーム中の運転者の左眼について、上述した眼の追跡処理を実行し（Ｓ６６）、左眼の上瞼の形状を示す関数を算出し、算出した２次関数の係数が、顔の姿勢情報に対応して決定された開閉閾値よりも大きいか否かを判断する（Ｓ６７）。また、算出した係数が開閉閾値よりも大きいと判断した場合（Ｓ６７：ＹＥＳ）、ＣＰＵ１０は、当該左眼が開状態であると判定し（Ｓ６８）、前記係数が開閉閾値よりも小さいと判断した場合（Ｓ６７：ＮＯ）、当該左眼が閉状態であると判定する（Ｓ６９）。
【００８０】
次にＣＰＵ１０は、上述のように判定された左右の眼の開閉状態が一致するか否かを判断しており（Ｓ７０）、一致すると判断した場合（Ｓ７０：ＹＥＳ）、上述した判定結果に決定し（Ｓ７１）、一致しないと判断した場合（Ｓ７０：ＮＯ）、算出された左右の眼の上瞼の形状を示す関数の係数が、より開閉閾値に近い判定結果の開閉状態を、当該運転者の眼の開閉状態に決定する（Ｓ７２）。瞬き動作は左右の眼で同時に行なわれる傾向にあるため、判定された左右の眼の状態に基づき、総合的に眼の開閉状態を判定することで、正確に眼の開閉状態を判定することができる。
【００８１】
また、コンピュータ１は、上述した眼の追跡処理を実行することで特定する、カメラ２から取得する画像フレーム中の眼の位置情報を、各画像フレームから特定した姿勢情報に対応してＨＤ１１の眼の位置情報ＤＢに逐次登録する。図２０は眼の位置情報を説明するための図であり、例えば、眼の位置情報として、左右眼夫々の中心位置、図２０（ａ）で示す、左右眼の水平方向Ｘ及び垂直方向Ｙの差を示す画素数、図２０（ｂ）で示す左右眼の中心位置等を、夫々の出現頻度とともに眼の位置情報ＤＢに蓄積する。
【００８２】
図２１は眼の位置情報ＤＢに蓄積された眼の位置情報を示すグラフであり、図２１（ａ）のグラフにおいては、横軸に左眼の水平方向Ｘにおける位置を、縦軸に夫々の位置の出現頻度を示している。同様に、図２１（ｂ）のグラフにおいては、横軸に左眼の垂直方向Ｙにおける位置を、縦軸に夫々の位置の出現頻度を示している。従って、これらのグラフにおいて、横軸の適宜の値を閾値とすることで、上述した眼の追跡処理等において特定した眼の位置の明らかな誤認識を防止することができる。
【００８３】
以上詳述した本発明の眼の追跡処理及び眼の状態判定処理は、車両の運転者だけに適用されるわけではなく、顔を撮像して得られる各画像フレームに適用することができ、また、眼の追跡処理だけでなく、顔における各部位の動きに対する追跡処理にも適用することができる。更に、コンピュータ１のＨＤ１１が記憶する眼の特徴情報ＤＢ、眼の位置情報ＤＢ、瞼の形状情報ＤＢ、及び各処理にて用いる所定の閾値は、姿勢情報に対応して設定されているが、更に運転者毎に設定することで、運転者個人の癖に対応した眼の追跡処理及び眼の状態判定処理の実現が可能となる。
【００８４】
（付記１）  顔を撮像して得られる画像データ中の顔部位を検出し、検出した顔部位を追跡する装置において、
前記画像データに基づいて、前記顔の姿勢を検出する姿勢検出手段と、
顔の姿勢に対応する顔部位の特徴情報を記憶する記憶手段と、
前記画像データ中の顔部位の候補を検出する候補検出手段と、
該候補検出手段が検出した顔部位の候補、及び前記姿勢検出手段が検出した姿勢に対応する顔部位の特徴情報に基づいて、前記顔部位を特定する特定手段と
を備えることを特徴とする顔部位の追跡装置。
【００８５】
（付記２）  前記姿勢検出手段は、
前記画像データに基づいて、前記顔の向きを検出する向き検出手段を備えることを特徴とする付記１に記載の顔部位の追跡装置。
【００８６】
（付記３）  前記姿勢検出手段は、
前記画像データに基づいて、前記顔の、基準位置に対する横方向位置及び／又は上下方向位置を検出する位置検出手段を備えることを特徴とする付記１又は２に記載の顔部位の追跡装置。
【００８７】
（付記４）  前記特定手段は、
前記候補検出手段が検出した顔部位の候補と、前記姿勢検出手段が検出した姿勢に対応する顔部位の特徴情報との相関値を算出する算出手段を備え、
該算出手段が算出した相関値が所定の閾値よりも大きい場合に、前記候補を顔部位であると特定するように構成してあることを特徴とする付記１乃至３のいずれかひとつに記載の顔部位の追跡装置。
【００８８】
（付記５）  前記姿勢検出手段が検出した姿勢に対応する顔部位の特徴情報が前記記憶手段に記憶していない場合、前記候補検出手段が検出した顔部位の候補の特徴情報を抽出する抽出手段を備え、
前記記憶手段は、
前記抽出手段が抽出した特徴情報を、前記姿勢検出手段が検出した姿勢に対応させて記憶するように構成してあることを特徴とする付記１乃至４のいずれかひとつに記載の顔部位の追跡装置。
【００８９】
（付記６）  前記特定手段が特定した顔部位の位置情報を、前記姿勢検出手段が検出した姿勢に対応させて記憶する位置記憶手段を備えることを特徴とする付記１乃至５のいずれかひとつに記載の顔部位の追跡装置。
【００９０】
（付記７）  コンピュータに、顔を撮像して得られる画像データ中の顔部位を検出させ、検出した顔部位を追跡させるコンピュータプログラムにおいて、
前記コンピュータに、
前記画像データに基づいて、前記顔の姿勢を検出させる手順と、
顔の姿勢に対応する顔部位の特徴情報を記憶させる手順と、
前記画像データ中の顔部位の候補を検出させる手順と、
検出した顔部位の候補、及び検出した姿勢に対応する顔部位の特徴情報に基づいて、前記顔部位を特定させる手順と
を実行させることを特徴とするコンピュータプログラム。
【００９１】
（付記８）  顔を撮像して得られる画像データ中の眼を検出し、検出した眼の開閉状態を判定する装置において、
前記画像データに基づいて、前記顔の姿勢を検出する姿勢検出手段と、
顔の姿勢に対応する瞼の形状情報を記憶する瞼情報記憶手段と、
前記画像データ中の眼を特定する特定手段と、
該特定手段が特定した眼の瞼の形状を検出する瞼検出手段と、
該瞼検出手段が検出した瞼の形状、及び前記姿勢検出手段が検出した姿勢に対応する瞼の形状情報に基づいて、前記眼の開閉状態を判定する判定手段と
を備えることを特徴とする眼の状態判定装置。
【００９２】
（付記９）  前記瞼検出手段は、前記瞼の形状を示す関数を算出する関数算出手段を備え、
前記瞼情報記憶手段は、顔の姿勢に対応させて瞼の形状を示す関数に係る情報を記憶しており、
前記判定手段は、前記関数算出手段が算出した関数に係る情報と、前記瞼情報記憶手段に記憶してある瞼の形状を示す関数に係る情報とに基づいて、前記眼の開閉状態を判定するように構成してあることを特徴とする付記８に記載の眼の状態判定装置。
【００９３】
（付記１０）  コンピュータに、顔を撮像して得られる画像データ中の眼を検出させ、検出した眼の開閉状態を判定させるコンピュータプログラムにおいて、
前記コンピュータに、
前記画像データに基づいて、前記顔の姿勢を検出させる手順と、
顔の姿勢に対応する瞼の形状情報を記憶させる手順と、
前記画像データ中の眼を特定させる手順と、
特定した眼の瞼の形状を検出させる手順と、
検出した瞼の形状、及び検出した姿勢に対応する瞼の形状情報に基づいて、前記眼の開閉状態を判定させる手順と
を実行させることを特徴とするコンピュータプログラム。
【図面の簡単な説明】
【００９４】
【図１】本発明に係る眼の追跡装置及び眼の状態判定装置の構成例を示すブロック図である。
【図２】姿勢情報の割当テーブルを示す図である。
【図３】テンプレートを説明するための図である。
【図４】エッジ抽出処理を説明するための模式図である。
【図５】コンピュータによる顔の位置検出処理手順を示すフローチャートである。
【図６】コンピュータによる顔の位置検出処理を説明するための図である。
【図７】顔の位置を検出する処理を説明するための図である。
【図８】コンピュータによる眼の検出処理手順を示すフローチャートである。
【図９】コンピュータによる眼の検出処理を説明するための図である。
【図１０】コンピュータによる鼻の検出処理手順を示すフローチャートである。
【図１１】コンピュータによる鼻の検出処理を説明するための図である。
【図１２】コンピュータによる鼻の検出処理を説明するための図である。
【図１３】コンピュータによる顔の向き検出処理手順を示すフローチャートである。
【図１４】顔の向き検出処理を説明するための図である。
【図１５】顔の向き検出処理を説明するための図である。
【図１６】コンピュータによる眼の追跡処理手順を示すフローチャートである。
【図１７】コンピュータによる眼の追跡処理手順を示すフローチャートである。
【図１８】コンピュータによる眼の状態判定処理手順を示すフローチャートである。
【図１９】開閉閾値の決定処理を説明するための図である。
【図２０】眼の位置情報を説明するための図である。
【図２１】眼の位置情報ＤＢに蓄積された眼の位置情報を示すグラフである。
【符号の説明】
【００９５】
１  コンピュータ（顔部位の追跡装置、眼の状態判定装置）
１０  ＣＰＵ（姿勢検出手段、候補検出手段、特定手段、抽出手段、瞼検出手段、判定手段）
１１  ＨＤ（記憶手段、位置記憶手段、瞼情報記憶手段）
１５  外部記憶装置
１７  記録媒体
２  カメラ
【図１】
2005078311.tif 000004
【図２】
2005078311.tif 000005
【図３】
2005078311.tif 000006
【図４】
2005078311.tif 000007
【図５】
2005078311.tif 000008
【図６】
2005078311.tif 000009
【図７】
2005078311.tif 000010
【図８】
2005078311.tif 000011
【図９】
2005078311.tif 000012
【図１０】
2005078311.tif 000013
【図１１】
2005078311.tif 000014
【図１２】
2005078311.tif 000015
【図１３】
2005078311.tif 000016
【図１４】
2005078311.tif 000017
【図１５】
2005078311.tif 000018
【図１６】
2005078311.tif 000019
【図１７】
2005078311.tif 000020
【図１８】
2005078311.tif 000021
【図１９】
2005078311.tif 000022
【図２０】
2005078311.tif 000023
【図２１】
2005078311.tif 000024