(57)【要約】【課題】顔を撮像して得られた画像データから前記顔の向きを精度良く検出する顔の向き検出装置、顔の向き検出方法及びコンピュータプログラムを提供する。【解決手段】カメラ２が撮像した画像フレームをケーブルＣを介して取得した顔の向き検出装置１のＣＰＵ１０は、ＨＤ１１に記憶する各コンピュータプログラムを実行することにより、取得した画像フレーム中の水平方向における顔の領域を検出する。また、前記画像フレームから垂直方向における眼の位置を検出し、検出した眼の位置に基づき水平方向における鼻の位置を検出する。更に、検出された鼻の位置及び顔の領域に基づき、画像フレームに含まれる顔の向きを検出する。【選択図】        図１
2004234367.tif 000002
【特許請求の範囲】
【請求項１】
顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した複数の加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
【請求項２】
前記垂直加算手段が算出した複数の加算値の特徴データを抽出する抽出手段と、
複数の顔の向きに対応して前記特徴データを記憶する特徴テーブルとを備え、
前記向き検出手段は、
前記抽出手段が抽出した特徴データに対応する顔の向きを前記特徴テーブルから選択する手段を備えることを特徴とする請求項１に記載の顔の向き検出装置。
【請求項３】
顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データの水平方向の画素データを夫々加算する水平加算手段と、
該水平加算手段が算出した複数の加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、
該眼検出手段が検出した眼の位置の近傍領域の垂直方向の画素データを夫々加算する眼近傍加算手段と、
該眼近傍加算手段が算出した複数の加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
【請求項４】
顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データから水平方向における顔の領域を検出する領域検出手段と、
前記画像データから水平方向における鼻の位置を検出する鼻検出手段と、
該鼻検出手段が検出した鼻の位置及び前記領域検出手段が検出した領域に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
【請求項５】
閾値を記憶する閾値記憶手段と、
前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した加算値及び前記閾値記憶手段に記憶してある閾値を比較する比較手段と、
前記領域検出手段は、前記比較手段の比較結果が、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断する手段を備えることを特徴とする請求項４に記載の顔の向き検出装置。
【請求項６】
前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した加算値の水平方向の変化量を算出する変化量算出手段と、
該変化量算出手段が算出した変化量に基づき水平方向における前記顔の輪郭を特定する特定手段とを備え、
前記領域検出手段は、前記特定手段が特定した顔の輪郭に基づき前記領域を検出することを特徴とする請求項４に記載の顔の向き検出装置。
【請求項７】
所定の画素数を記憶する画素数記憶手段と、
前記画像データの水平方向の画素データを夫々加算する水平加算手段と、
該水平加算手段が算出した複数の加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、
該眼検出手段が検出した眼の位置から垂直方向に前記画素数記憶手段に記憶してある画素数だけ下方の領域の垂直方向の画素データを加算する眼下方加算手段と、
該眼下方加算手段が算出した加算値の極小値を特定する極小値特定手段とを備え、
前記鼻検出手段は、前記極小値特定手段が極小値と特定した加算値の水平方向の位置が鼻の位置であると検出することを特徴とする請求項４乃至６のいずれかに記載の顔の向き検出装置。
【請求項８】
所定の距離を記憶する距離記憶手段と、
前記極小値特定手段が複数の極小値を特定した場合に、極小値と特定された加算値の水平方向の距離を算出する距離算出手段と、
該距離算出手段が算出した距離及び前記距離記憶手段に記憶してある所定の距離を比較する比較手段とを備え、
前記鼻検出手段は、前記比較手段の比較結果が、前記距離算出手段が算出した距離が前記所定の距離よりも短い場合に、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置であると検出することを特徴とする請求項４乃至６のいずれかに記載の顔の向き検出装置。
【請求項９】
計算装置を用いて、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する方法において、
前記計算装置が、
前記画像データから水平方向における顔の領域を検出し、
前記画像データから水平方向における鼻の位置を検出し、
検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出することを特徴とする顔の向き検出方法。
【請求項１０】
コンピュータに、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出させるためのコンピュータプログラムにおいて、
コンピュータに、前記画像データから水平方向における顔の領域を検出させる手順と、
コンピュータに、前記画像データから水平方向における鼻の位置を検出させる手順と、
コンピュータに、検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出させる手順とを備えることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、顔を撮像して得られた画像データから、前記顔の向きを検出する顔の向き検出装置、顔の向き検出方法及びコンピュータプログラムに関するものである。
【０００２】
【従来の技術】
自動車等の車両の運転を支援する装置として、運転者の顔を撮像できる位置に配置された車載カメラで運転者の顔を撮像し、得られた画像データから運転者の顔の向きを検出する装置が提案されている。
このような装置を用いることにより、該装置が検出した運転者の顔の向きから、運転者の脇見運転を検知することができ、また、脇見運転を行なっている運転者に警告を発するシステムを構成することも可能である（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平６−２４３３６７号公報
【０００４】
【発明が解決しようとする課題】
しかし、上述したような装置においては、設置された車載カメラにより、予め運転者の顔を複数の向きで撮像した画像データを記憶しておき、これらの画像データと、車両の走行中に順次取得される画像データとを比較し、より相関度の高い向きの画像データを選択することにより、運転者の顔の向きを決定するように構成されている場合が多い。
従って、このような構成においては、夫々の顔の向きで撮像した複数枚の画像データを予め記憶しておく必要があるため、各画像データを記憶するメモリ容量が膨大となる。また、順次取得される画像データ夫々に対して上述した相関度の高い画像データの選択処理を行なうため、顔の向きを決定するまでに長時間が必要となる。
【０００５】
更に、予め所定の運転者を撮像して得られた画像データに基づく顔の向きの判定処理を行なうため、運転者が異なる場合には顔の向きの判定ができず、また、同一の運転者であっても、車載カメラと撮像対象である運転者との距離が、前記画像データを撮像した際の距離と異なる場合には、画像データ中の運転者の顔の領域の大きさが相違するため、順次取得される画像データ中の顔の領域に対して拡大又は縮小処理を施す必要がある等、様々な状況に柔軟に対応することができないという問題があった。
【０００６】
また、上述した特許文献１の装置においては、運転者の顔を撮像した画像データから、両眼の目頭及び唇の両端を抽出し、抽出した各４点の位置関係に基づき、運転者の顔の向きを検出する構成を有しており、例えば、順次取得される画像データが運転者の唇を含まない場合には、運転者の顔の向きを検出することができないという問題があった。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、顔を撮像して得られた画像データの垂直方向の加算値に基づき前記顔の向きを検出することにより、算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮される顔の向き検出装置を提供することを目的とする。
【０００８】
本発明の他の目的は、複数の顔の向きに対応して、各向きで撮像した場合の画像データの垂直方向の画素データの加算値の特徴データを記憶する特徴テーブルを用い、顔を撮像して順次得られる画像データの垂直方向の加算値の特徴データを抽出し、抽出した特徴データに対する顔の向きを前記特徴テーブルから選択して決定することにより、上述した特徴データのみを予め記憶しておけば足り、顔の向きの判定処理に用いるデータを記憶するメモリ容量を削減することができる顔の向き検出装置を提供することにある。
【０００９】
本発明の更に他の目的は、顔を撮像して得られた画像データの水平方向の加算値に基づき垂直方向における眼の位置を検出し、検出した眼の位置の近傍領域について垂直方向の加算値に基づき顔の向きを検出することにより、１枚の画像データに対して、眼の近傍領域において算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮される顔の向き検出装置を提供することにある。
【００１０】
本発明の更に他の目的は、顔を撮像して得られた画像データから前記顔の領域を検出し、また前記画像データから水平方向における鼻の位置を検出し、更に検出された鼻の位置及び顔の領域に基づき前記顔の向きを検出することにより、顔の向きだけでなく、顔の角度も精度良く算出することができる顔の向き検出装置、顔の向き検出方法及びコンピュータプログラムを提供することにある。
【００１１】
本発明の更に他の目的は、顔を撮像して得られた画像データの垂直方向の加算値及び予め閾値記憶手段に記憶してある閾値を比較し、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断し、この判断結果に基づき前記顔の領域を検出することにより、水平方向における顔の領域を精度良く特定することができ、精度良く検出された顔の領域及び鼻の位置に基づき、精度良く顔の向きを検出することができる顔の向き検出装置を提供することにある。
【００１２】
本発明の更に他の目的は、顔を撮像して得られた画像データの垂直方向の加算値の水平方向の変化量を算出し、算出した変化量に基づき水平方向における前記顔の輪郭を特定し、特定された輪郭に基づき前記顔の領域を検出することにより、特定された輪郭に基づき、より精度良く顔の領域を検出することができる顔の向き検出装置を提供することにある。
【００１３】
本発明の更に他の目的は、顔を撮像して得られた画像データの水平方向の加算値に基づき垂直方向における眼の位置を検出し、検出した眼の位置から垂直方向に予め設定してある所定の画素数だけ下方の領域において垂直方向の加算値の極小値を特定し、極小値と特定された加算値の水平方向の位置が鼻の位置であると検出することにより、眼鏡フレームを避けた領域の画素データに基づき鼻を検出することができる顔の向き検出装置を提供することにある。
【００１４】
本発明の更に他の目的は、眼の下方の領域について算出された垂直方向の加算値において、極小値であると複数特定された場合、これらの加算値の水平方向の距離を算出し、算出した距離が予め設定された所定の距離よりも短い場合に、当該極小値であると特定された加算値に算出された画素データは鼻の輪郭部分の画素データであると特定することができ、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置と検出することにより、精度良く鼻の位置を検出することができる顔の向き検出装置を提供することにある。
【００１５】
【課題を解決するための手段】
第１発明に係る顔の向き検出装置は、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから前記顔の向きを検出する装置において、前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、該垂直加算手段が算出した加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする。
【００１６】
第２発明に係る顔の向き検出装置は、前記垂直加算手段が算出した加算値の特徴データを抽出する抽出手段と、複数の顔の向きに対応して前記特徴データを記憶する特徴テーブルとを備え、前記向き検出手段は、前記抽出手段が抽出した特徴データに対応する顔の向きを前記特徴テーブルから選択する手段を備えることを特徴とする。
【００１７】
第３発明に係る顔の向き検出装置は、顔を撮像して得られた画像データから前記顔の向きを検出する装置において、前記画像データの水平方向の画素データを夫々加算する水平加算手段と、該水平加算手段が算出した加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、該眼検出手段が検出した眼の位置の近傍領域の垂直方向の画素データを夫々加算する眼近傍加算手段と、該眼近傍加算手段が算出した加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする。
【００１８】
第４発明に係る顔の向き検出装置は、顔を撮像して得られた画像データから前記顔の向きを検出する装置において、前記画像データから水平方向における顔の領域を検出する領域検出手段と、前記画像データから水平方向における鼻の位置を検出する鼻検出手段と、該鼻検出手段が検出した鼻の位置及び前記領域検出手段が検出した領域に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする。
【００１９】
第５発明に係る顔の向き検出装置は、閾値を記憶する閾値記憶手段と、前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、該垂直加算手段が算出した加算値及び前記閾値記憶手段に記憶してある閾値を比較する比較手段と、前記領域検出手段は、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断する手段を備えることを特徴とする。
【００２０】
第６発明に係る顔の向き検出装置は、前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、該垂直加算手段が算出した加算値の水平方向の変化量を算出する変化量算出手段と、該変化量算出手段が算出した変化量に基づき水平方向における前記顔の輪郭を特定する特定手段とを備え、前記特定手段が特定した顔の輪郭に基づき前記領域を検出することを特徴とする。
【００２１】
第７発明に係る顔の向き検出装置は、所定の画素数を記憶する画素数記憶手段と、前記画像データの水平方向の画素データを夫々加算する水平加算手段と、該水平加算手段が算出した加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、該眼検出手段が検出した眼の位置から垂直方向に前記画素数記憶手段に記憶してある画素数だけ下方の領域の垂直方向の画素データを加算する眼下方加算手段と、該眼下方加算手段が算出した加算値の極小値を特定する極小値特定手段とを備え、前記極小値特定手段が極小値と特定した加算値の水平方向の位置が鼻の位置であると検出することを特徴とする。
【００２２】
第８発明に係る顔の向き検出装置は、所定の距離を記憶する距離記憶手段と、前記極小値特定手段が複数の極小値を特定した場合に、極小値と特定された加算値の水平方向の距離を算出する距離算出手段と、該距離算出手段が算出した距離及び前記距離記憶手段に記憶してある所定の距離を比較する比較手段とを備え、前記距離算出手段が算出した距離が前記所定の距離よりも短い場合に、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置であると検出することを特徴とする。
【００２３】
第９発明に係る顔の向き検出方法は、計算装置を用いて、顔を撮像して得られた画像データから前記顔の向きを検出する方法において、前記計算装置が、前記画像データから水平方向における顔の領域を検出し、前記画像データから水平方向における鼻の位置を検出し、検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出することを特徴とする。
【００２４】
第１０発明に係るコンピュータプログラムは、コンピュータに、顔を撮像して得られた画像データから前記顔の向きを検出させるためのコンピュータプログラムにおいて、コンピュータに、前記画像データから水平方向における顔の領域を検出させる手順と、コンピュータに、前記画像データから水平方向における鼻の位置を検出させる手順と、コンピュータに、検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出させる手順とを備えることを特徴とする。
【００２５】
第１発明による場合は、顔を撮像して得られた画像データの垂直方向の画素データを夫々加算し、算出した複数の加算値に基づき前記顔の向きを検出することにより、１枚の画像データに対して、算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮され、順次取得される画像データに対しても、迅速な検出処理を実現することができる。
【００２６】
ここで、顔の領域は、髪の領域及び背景領域と比較して明るく撮像される傾向にあり、取得した画像データの垂直方向の各画素データ（例えば、輝度値）を加算した加算値に基づき、顔の領域及び髪の領域を特定することができ、例えば、髪の領域を特定することができた場合には、顔が前を向いているか又は横を向いているか等の顔の向きを検出することができる。
【００２７】
第２発明による場合は、複数の顔の向きに対応して、各向きで撮像した場合の画像データの垂直方向の画素データの加算値の特徴データを記憶する特徴テーブルを用い、顔を撮像して順次得られる画像データの垂直方向の加算値の特徴データを抽出し、抽出した特徴データに対する顔の向きを前記特徴テーブルから選択して決定することにより、上述した特徴データのみを予め記憶しておけば足り、顔の向きの判定処理に用いるデータを記憶するメモリ容量を削減することができる。
また、上述したような特徴データに基づく処理により顔の向きを検出するため、例えば、運転者等の撮像対象が異なる場合や、撮像された画像データに顔の一部が含まれていない場合であっても、撮像した画像データに基づき精度良く顔の向きを検出することができる。
【００２８】
第３発明による場合は、顔を撮像して得られた画像データの水平方向の画素データを夫々加算し、算出した複数の加算値に基づき垂直方向における眼の位置を検出する。また、検出した眼の位置の近傍領域について垂直方向の画素データを加算し、算出した複数の加算値に基づき顔の向きを検出することにより、１枚の画像データに対して、眼の近傍領域において算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮される。
【００２９】
ここで、垂直方向における眼の位置には、耳及び髪の領域がある場合が多く、また、耳及び髪の領域における画素データは変化が大きいという傾向があるため、このような眼の位置の近傍領域において眼近傍加算手段にて算出された加算値に基づき、耳及び髪の領域を特定することができ、例えば、髪の領域を特定することができた場合には、顔が前を向いているか又は横を向いているか等の顔の向きを検出することができる。
従って、例えば、運転者等の撮像対象が異なる場合や、撮像された画像データに口及び鼻の近傍領域が含まれていない場合であっても、眼を含む画像データに基づき精度良く顔の向きを検出することができる。
【００３０】
第４、第９及び第１０発明による場合は、顔を撮像して得られた画像データから前記顔の領域を検出し、また前記画像データから水平方向における鼻の位置を検出し、更に検出された鼻の位置及び顔の領域に基づき前記顔の向きを検出することにより、顔の向きだけでなく、顔の角度も精度良く算出することができる。
【００３１】
第５発明による場合は、顔を撮像して得られた画像データの垂直方向の加算値及び予め閾値記憶手段に記憶してある閾値を比較し、比較結果が、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断し、この判断結果に基づき前記顔の領域を検出する。
顔の領域は背景領域と比較して明るく撮像される傾向にあるため、垂直加算手段にて算出した加算値に基づき、顔の領域を精度良く特定することができ、精度良く検出された顔の領域及び鼻の位置に基づき、精度良く顔の向きを検出することができる。
【００３２】
第６発明による場合は、顔を撮像して得られた画像データの垂直方向の加算値の水平方向の変化量を算出し、算出した変化量に基づき水平方向における前記顔の輪郭を特定し、特定された輪郭に基づき前記顔の領域を検出することにより、背景の領域から顔の領域へ、及び顔の領域から背景の領域へ変化する箇所等の水平方向における画素データの変化量が大きく変化する位置における画素データが、水平方向における顔の輪郭部分の画素データであると特定することができ、特定された輪郭に基づき、より精度良く顔の領域を検出することができる。
【００３３】
第７発明による場合は、顔を撮像して得られた画像データの水平方向の加算値に基づき垂直方向における眼の位置を検出し、検出した眼の位置から垂直方向に予め設定してある所定の画素数だけ下方の領域において垂直方向の画素データの加算値を算出する。また、算出された加算値の極小値を特定し、極小値と特定された加算値の水平方向の位置が鼻の位置であると検出することにより、簡易な処理により鼻の位置を検出することができる。
ここで、鼻の輪郭部分は顔の領域において暗く撮像される傾向にあるため、極小値であると特定された加算値は、鼻の輪郭部分の画像データである場合が多く、このように極小値であると特定された加算値に基づき、精度良く鼻の位置を検出することができる。
【００３４】
また、眼の位置から所定の画素数だけ下方の領域の画素データに基づき鼻を検出することにより、画像データに眼鏡フレームが含まれる場合であっても、眼鏡フレームを避けた領域の画素データに基づき鼻を検出することができ、眼鏡フレームの影響を受けずに鼻を検出することができる。
【００３５】
第８発明による場合は、眼の下方の領域について算出された垂直方向の加算値において、極小値であると複数特定された場合、これらの加算値の水平方向の距離を算出し、算出した距離が予め設定された所定の距離よりも短い場合に、当該極小値であると特定された加算値に算出された画素データは鼻の輪郭部分の画素データであると特定することができ、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置と検出することにより、精度良く鼻の位置を検出することができる。
【００３６】
本発明に係る顔の向き検出装置は、顔を撮像して得られた画像データの水平方向の画素データを加算した複数の加算値の最大値及び極小値を特定し、前記画像データにおいて、最大値と特定された加算値よりも垂直方向に上方にある極小値と特定された加算値の垂直方向の位置が眼の位置であると検出した場合に、例えば、運転者等の撮像対象が異なる場合であっても、特定された眼の位置に基づき該眼の近傍領域において眼近傍加算手段にて算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮されるとともに、精度良く顔の向きを検出することができる。
【００３７】
何故なら、眼の領域は、肌の領域と比較して暗く撮像され、また、肌の領域においては頬の部分が最も明るく撮像される傾向にあるため、上述のように最大値特定手段にて最大値であると特定される加算値は頬の位置の画素データの加算値である場合が多く、また頬の位置よりも垂直方向に上方にあり、極小値であると特定された加算値は眼の位置の画素データの加算値である可能性が高いからである。
【００３８】
また、本発明に係る顔の向き検出装置は、顔を撮像して得られた画像データの水平方向に画素データを加算した複数の加算値の極小値を特定し、極小値であると特定された加算値の、前記画像データにおいて上方から２番目の加算値の垂直方向の位置が眼の位置であると検出した場合に、例えば、運転者等の撮像対象が異なる場合や、撮像された画像データに口及び鼻の近傍領域が含まれていない場合であっても、特定された眼の位置に基づき該眼の近傍領域において眼近傍加算手段にて算出された加算値に基づく処理にて前記顔の向きを検出することができる。
これは、特定された極小値において、画像データの上方から１番目の極小値は、眉毛の位置の画素データの加算値である場合が多く、また、２番目の極小値は、眼の位置の画素データの加算値である場合が多いからである。
【００３９】
【発明の実施の形態】
以下、本発明に係る顔の向き検出装置をその実施の形態を示す図面に基づいて具体的に説明する。本実施の形態の顔の向き検出装置は、例えば、自動車等の車両に乗車する運転者の顔を撮像できる位置に設置されたカメラ（撮像装置）で撮像された画像に基づき運転者の顔の向きを検出する構成を有している。
尚、カメラは、例えば、ミラー又はハンドルの配置位置近傍に設置することができ、例えば１秒当たり３０枚の画像フレーム（画像データ）を取得する。
【００４０】
図１は本発明に係る顔の向き検出装置の構成例を示すブロック図であり、図中１は本発明に係る顔の向き検出装置を示しており、この顔の向き検出装置１は、ケーブルＣを介してカメラ２と接続されている。
カメラ２と顔の向き検出装置１とは、専用のケーブルＣで接続されるだけでなく、車載ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して接続することも可能である。
【００４１】
カメラ２は、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）２０を制御中枢としてバス２７を介して接続される以下のハードウェア各部の動作を制御する。
バス２７には、ＭＰＵ２０の制御手順を示すコンピュータプログラム等を記憶したＲＯＭ２１と、ＭＰＵ２０による制御動作中に発生する種々のデータを一時的に記憶するＲＡＭ２２と、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅ  Ｄｅｖｉｃｅ）等により構成された撮像部２３と、撮像部２３により取得して得られたアナログの画像フレームをデジタルの画像フレームに変換するＡ／Ｄ（アナログ／デジタル）変換器２４と、ＲＡＭ等により構成され、Ａ／Ｄ変換器２４により変換されたデジタルの画像フレームを一時的に記憶するフレームメモリ２５と、ケーブルＣを介してデータ伝送を行うための通信インタフェース２６等とが接続されている。
【００４２】
ＭＰＵ２０は、自身が備える時計手段（図示せず）により所定のタイミングを計時しながらバス２７を介して上述したハードウェア各部を制御するとともに、ＲＯＭ２１に記憶してあるカメラ２の動作に必要な種々のコンピュータプログラムを順次実行する。
また、本実施の形態におけるＡ／Ｄ変換器２４は、撮像部２３から順次入力されるアナログの画像フレームを、例えば各画素を２５６階調（１Ｂｙｔｅ）で示すデジタルの画像フレームに変換する。
【００４３】
上述した構成のカメラ２は、所定のタイミングで撮像部２３により画像フレームを取り込んでおり、取り込まれた画像フレームは、Ａ／Ｄ変換器２４によりモノクロのデジタルの画像フレームに変換され、一旦フレームメモリ２５に記憶され、通信インタフェース２６を介して顔の向き検出装置１に入力される。
尚、カラーの画像フレームを取得するカメラを用いることも可能である。
【００４４】
顔の向き検出装置１は、制御中枢としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、ＣＰＵ１０の制御手順を示すコンピュータプログラム等を記憶したハードディスク（以下、ＨＤという）１１と、ＣＰＵ１０による制御動作中に発生する種々のデータを一時的に記憶するＲＡＭ１２と、ＲＡＭ等により構成され、ケーブルＣを介して取得した画像フレームを一時的に記憶するフレームメモリ１３と、ケーブルＣを介してデータ伝送を行うための通信インタフェース１４等とを備えている。
【００４５】
ＣＰＵ１０は、時計手段（図示せず）を備えており、タイミングを計時しながら、上述したハードウェア各部をバス１５を介して制御するとともに、ＨＤ１１に記憶してあるコンピュータプログラムを順次実行する。
また、ＣＰＵ１０は、自身が行なう眼検出処理により眼が検出できなかった場合にオンにされる眼検出不可フラグレジスタ、及び鼻検出処理により鼻が検出できなかった場合にオンにされる鼻検出不可フラグレジスタを備えている。
【００４６】
ＨＤ１１には、顔の向き検出装置１がケーブルＣを介してカメラ２から取得した画像フレームから、該画像フレームに含まれる運転者の顔の領域を検出するための領域検出処理プログラム、前記運転者の眼の位置を検出するための眼検出処理プログラム、前記運転者の鼻の位置を検出するための鼻検出処理プログラム及び前記運転者の顔の向きを検出するための顔の向き検出処理プログラム、顔の向き検出処理で用いられる特徴テーブル等が記憶されている。
また、ＨＤ１１には各処理で用いられる各種の閾値、具体的には、所定の輝度値、所定の画素数及び所定の距離が記憶されており、ＨＤ１１は、閾値記憶手段、画素数記憶手段及び距離記憶手段としても機能する。
【００４７】
上述した構成の顔の向き検出装置１において、ＣＰＵ１０は、ＨＤ１１に記憶してある領域検出処理プログラムをＲＡＭ１２に読み出して順次実行することにより、カメラ２から取得した画像フレームに基づき、該画像フレームに含まれる運転者の水平方向における顔の領域を検出する。
図２は顔の向き検出装置１による顔の領域検出処理手順を示すフローチャートであり、ＣＰＵ１０は、ＨＤ１１に記憶してある領域検出処理プログラムを実行することにより、画像フレームの垂直方向に隣合って配列される各画素データを加算する垂直加算手段として動作し、カメラ２から取得した画像フレームの垂直方向に配列される画素データを順次加算する（Ｓ１）。
【００４８】
図３は顔の向き検出装置１による顔の領域の検出処理を説明するための図であり、図３（ａ）はカメラ２から取得した画像フレームの例を示している。
図３（ａ）においてＸは画像フレームにおける水平方向を、Ｙは画像フレームにおける垂直方向を夫々示しており、画像フレームは水平方向Ｘ及び垂直方向Ｙ夫々に複数の画素データが配列してある。
【００４９】
ＣＰＵ１０は、画像フレームの垂直方向Ｙに配列される画素データを順次加算することにより、図３（ｂ）に示すようなグラフを算出する。図３（ｂ）のグラフにおいては、横軸に水平方向Ｘを、縦軸に算出された加算値、具体的には輝度和を夫々示している。
ここで、顔の領域は、髪の領域及び背景領域と比較して明るく撮像される傾向にあり、上述のように算出した輝度和に基づき顔の領域を特定することができ、本実施の形態におけるＣＰＵ１０は、ＨＤ１１に予め設定された閾値としての所定の輝度値を用い、上述のように算出された輝度和が所定の輝度値よりも大きい場合に、当該輝度和に算出された画素データは、顔の領域内の画像データであると判断し、顔の領域を特定する（Ｓ２）。
【００５０】
具体的には、ＣＰＵ１０は、上述のように算出した輝度和と所定の輝度値とを比較する比較手段として動作しており、算出した輝度和と所定の輝度値とを比較した結果が、前記輝度和が所定の輝度値よりも大きい領域、例えば、図３（ｃ）中にＦ１で示す領域を顔の領域と特定することができる。
尚、図３（ｃ）中のＦ１ａは顔の領域の左端位置を、Ｆ１ｂは顔の領域の右端位置を夫々示している。
【００５１】
また、画像フレームの水平方向の画素データの変化は、背景の領域から顔の領域へ、及び顔の領域から背景の領域へ変化する箇所が、他の箇所と比較して大きく変化する傾向にあり、上述のように算出した輝度和の変化量に基づいても顔の領域を特定することができる。
従って、ＣＰＵ１０は、上述のように算出した輝度和について、水平方向Ｘの各位置において、各位置の輝度和を中心として、水平方向Ｘの左右に所定数の画素間での変化量を算出する変化量算出手段として動作し、また、夫々算出された変化量が大きく変化する位置、例えば、図３（ｄ）中にＦ２ａで示す位置を、水平方向Ｘにおける顔の輪郭部分であると特定する特定手段として動作し、顔の領域の左端位置として顔の領域を特定する（Ｓ３）。
【００５２】
尚、図３（ｄ）においては、変化量に基づく顔の領域の特定処理によっては、顔の領域の右端位置は特定されず、このような場合には、図３（ｃ）に示すように、所定の輝度値に基づき特定された右端位置Ｆ１ｂを、顔の領域の右端位置として顔の領域を特定し、ＣＰＵ１０は、特定した顔の領域をＲＡＭ１２に記憶して（Ｓ４）、顔の領域検出処理を終了する。
【００５３】
次に、ＣＰＵ１０が、ＨＤ１１に記憶してある眼検出処理プログラムをＲＡＭ１２に読み出して順次実行することにより、カメラ２から取得した画像フレームに含まれる運転者の垂直方向における眼の位置を検出する。
図４は顔の向き検出装置１による眼の位置検出処理手順を示すフローチャートであり、ＣＰＵ１０は、ＨＤ１１に記憶してある眼検出処理プログラムを実行することにより、画像フレームの水平方向に隣合って配列される画素データを加算する水平加算手段として動作し、カメラ２から取得した画像フレームの水平方向に配列される画素データを順次加算する（Ｓ１１）。
【００５４】
図５は顔の向き検出装置１による眼の位置の検出処理を説明するための図であり、図５（ａ）は、図３（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。
ＣＰＵ１０は、画像フレームの水平方向Ｘに配列される画素データを順次加算することにより、図５（ｂ）に示すようなグラフを算出する。図５（ｂ）のグラフにおいては、縦軸に垂直方向Ｙを、横軸に算出された輝度和を夫々示している。
【００５５】
ＣＰＵ１０は、上述のように算出した輝度和において最大値を特定する最大値特定手段として動作しており、最大値を特定する（Ｓ１２）。ここで、顔の領域においては頬の部分が最も明るく撮像される傾向にあるため、最大値であると特定される輝度和は頬の位置の画素データの加算値であると判断することができ、図５（ｃ）のグラフにおいて垂直方向ＹのＭａｘで示す位置を、上述のように頬の位置と特定することができる。
【００５６】
ＣＰＵ１０は、上述のように算出した輝度和において極小値を特定する極小値特定手段としても動作しており、また、ステップＳ１２で最大値であると特定した輝度和の垂直方向Ｙに上方において、極小値となる輝度和を選択する選択手段として動作することにより、最大値であると特定した輝度和の垂直方向Ｙに上方の極小値となる輝度和を選択する構成を有しており、自身においてこのような輝度和を選択できたか否かを判断している（Ｓ１３）。
眼の領域は、肌の領域と比較して暗く撮像されるため、上述のように最大値である輝度和の位置が示す頬の位置よりも垂直方向Ｙに上方にあり、極小値であると特定された輝度和は眼の位置の画素データの加算値である可能性が高く、このように選択された、図５（ｃ）中にＭｉｎで示す位置を眼の位置の候補とすることができる。
【００５７】
上述したように、最大値である輝度和の垂直方向Ｙに上方の、極小値となる輝度和が選択できた場合（Ｓ１３：ＹＥＳ）、ＣＰＵ１０は、画像フレームにおいて、垂直方向Ｙの上方から順次極小値となる輝度和を検出し、上方から２番目の位置で極小値となる輝度和を選択し、このような輝度和を選択できたか否かを判断する（Ｓ１４）。
眼の領域と同様に、眉毛の領域も肌の領域と比較して暗く撮像されるため、上述のように特定された極小値において、図５（ｄ）中の位置Ｍｉｎ１は、画像データの垂直方向Ｙにおいて上方から１番目の極小値の位置を示しており、この極小値は眉毛の位置の画素データの加算値と判断でき、また、上方から２番目の極小値の位置は、眼の位置の画素データの加算値であると判断でき、この２番目の極小値の位置Ｍｉｎ２を眼の位置の候補とすることができる。
【００５８】
ＣＰＵ１０は、垂直方向Ｙに上方から２番目の位置にある輝度和が選択できた場合（Ｓ１４：ＹＥＳ）、上述のようにステップＳ１３及びＳ１４にて選択した極小値の位置を比較することにより、両極小値の位置Ｍｉｎ，Ｍｉｎ２が略一致するか否かを判断しており（Ｓ１５）、略一致した場合（Ｓ１５：ＹＥＳ）、選択された極小値の位置を眼の位置に特定してＲＡＭ１２に記憶する（Ｓ１６）。
【００５９】
一方、ステップＳ１３又はＳ１４において、対応する極小値が選択されない場合（Ｓ１３：ＮＯ，Ｓ１４：ＮＯ）、及びステップＳ１５において、選択した２つの極小値の位置Ｍｉｎ，Ｍｉｎ２が一致しない場合（Ｓ１５：ＮＯ）、ＣＰＵ１０は、自身が備える眼検出不可フラグレジスタをオンにして（Ｓ１７）、眼検出処理を終了する。
【００６０】
次に、ＣＰＵ１０が、ＨＤ１１に記憶してある鼻検出処理プログラムをＲＡＭ１２に読み出して順次実行することにより、カメラ２から取得した画像フレームに含まれる運転者の水平方向における鼻の位置を検出する。尚、ＣＰＵ１０は、上述した眼検出処理プログラムの実行により眼の位置を検出できた場合にのみ、この鼻検出処理プログラムを実行する。
【００６１】
図６は顔の向き検出装置１による鼻の位置検出処理手順を示すフローチャート、図７は顔の向き検出装置１による鼻の位置の検出処理を説明するための図である。
ＣＰＵ１０は、ＨＤ１１に記憶してある鼻検出処理プログラムを実行することにより、上述した眼検出処理により検出された眼の位置Ｅから、予めＨＤ１１に記憶してある所定の画素数だけ垂直方向Ｙに下方の領域Ｒにおいて、垂直方向に隣合って配列される画素データを加算する眼下方加算手段として動作し、このような眼の下方領域Ｒにおいて、垂直方向に配列される画素データを順次加算し（Ｓ２１）、図７（ｂ）に示すようなグラフを算出する。
尚、図７（ａ）は、図３（ａ）と同様に、カメラ２から取得した画像フレームの例を示しており、図７（ｂ）のグラフにおいては、横軸に水平方向Ｘを、縦軸に算出された輝度和を夫々示している。
【００６２】
次にＣＰＵ１０は、上述のように算出した輝度和における極小値を特定する（Ｓ２２）。
ここで、鼻の輪郭部分は顔の領域において暗く撮像される傾向にあるため、このように極小値であると特定される輝度和は、鼻の輪郭部分の画像データの加算値であると特定することができ、図７（ｂ）のグラフにおいて水平方向ＸのＭｉｎ３，Ｍｉｎ４で示す極小値の位置を鼻の左右の輪郭位置と特定することができる。
【００６３】
図７（ｃ）は、図７（ｂ）において水平方向Ｘにおける位置Ｍｉｎ３の近傍の拡大図であり、図に示すように、水平方向Ｘの注目位置Ｍｉｎ３の輝度和が、水平方向Ｘに左右の夫々所定数の画素間において最小値となる輝度和を極小値としている。
ＣＰＵ１０は、上述のように特定された極小値が複数あるか否かを判断しており（Ｓ２３）、極小値が複数ある場合（Ｓ２３：ＹＥＳ）、２つの極小値の位置において水平方向Ｘにおける距離を算出する距離算出手段として動作して前記距離を算出し（Ｓ２４）、算出した距離が予めＨＤ１１に記憶してある所定の距離よりも短いか否かを判断する（Ｓ２５）。
【００６４】
上述のように算出された、鼻の輪郭位置であると特定された極小値の位置Ｍｉｎ３，Ｍｉｎ４における水平方向Ｘの距離は鼻の横幅を示しており、この横幅が所定の距離よりも長い場合（Ｓ２５：ＮＯ）、ＣＰＵ１０は、鼻の位置が検出できなかったとして自身が備える鼻検出不可フラグレジスタをオンにして（Ｓ２６）、鼻検出処理を終了する。
【００６５】
また、２つの極小値の水平方向Ｘの距離が所定距離よりも短い場合（Ｓ２５：ＹＥＳ）、ＣＰＵ１０は、当該距離を隔てる極小値Ｍｉｎ３，Ｍｉｎ４を、鼻の輪郭位置の画素データの加算値であると判断し、この極小値Ｍｉｎ３，Ｍｉｎ４の中央位置を算出して（Ｓ２７）、算出された中央位置を鼻の位置と特定してＲＡＭ１２に記憶する（Ｓ２８）。
一方、ステップＳ２３において、特定された極小値が複数ない場合（Ｓ２３：ＮＯ）、即ち、鼻の左右の輪郭部分が正確に画像フレームに含まれなかった場合は、ＣＰＵ１０は、ステップＳ２２において極小値であると特定された輝度和の水平方向Ｘにおける位置を鼻の位置と特定してＲＡＭ１２に記憶する（Ｓ２９）。
【００６６】
図８は鼻の輪郭部分が正確に撮像されなかった場合の、顔の向き検出装置１による鼻の位置の検出処理を説明するための図であり、図８（ａ）に示すように、撮像対象の運転者の顔の向きによっては、鼻の左右の輪郭部分を正確に撮像できない場合がある。
このような場合には、上述したステップＳ２２において特定された１つの極小値である輝度和の水平方向Ｘにおける位置Ｍｉｎ５を鼻の位置と特定する。
【００６７】
また、図９は眼鏡フレームを含む画像フレームを示す図であり、上述のように、検出した眼の位置から所定の画素数だけ下方の領域Ｒにおける画素データに基づき鼻の位置を検出することにより、例えば、図９に示すように、眼鏡フレームを含む画像フレームにおいても、眼鏡フレームを避けた領域Ｒの画素データに基づき、眼鏡フレームの影響を受けずに鼻の位置を検出することができる。
【００６８】
以下に、上述したような顔の領域検出処理、眼検出処理及び鼻検出処理を行なう顔の向き検出装置１が、カメラ２より取得した画像フレームから車両の運転者の顔の向きを検出する検出処理について説明する。
図１０及び図１１は本発明に係る顔の向き検出装置１による顔の向き検出処理手順を示すフローチャートである。
【００６９】
顔の向き検出装置１において、ＣＰＵ１０は、カメラ２から画像フレームを取得したか否かを判断しており（Ｓ３１）、カメラ２から画像フレームを取得していない場合（Ｓ３１：ＮＯ）、画像フレームを取得するまで待機し、画像フレームを取得した場合（Ｓ３１：ＹＥＳ）、ＨＤ１１の領域検出処理プログラムを実行することにより領域検出手段として動作し、取得した画像フレームについて、図２のフローチャートにより説明した顔の領域検出処理を実行し（Ｓ３２）、画像フレームに含まれる運転者の顔の領域を特定する。
【００７０】
次にＣＰＵ１０は、ＨＤ１１の眼検出処理プログラムを実行することにより眼検出手段として動作し、取得した画像フレームについて、図４のフローチャートにより説明した眼検出処理を実行し（Ｓ３３）、画像フレームに含まれる運転者の眼の位置を特定する。
尚、本実施の形態における眼検出処理では、上述したように、カメラ２により撮像される画像フレームによって、眼の位置を検出できない場合があり、ＣＰＵ１０は、自身の眼検出不可フラグレジスタがオフであるか否かに基づき、上述した眼検出処理により眼の位置を検出できたか否かを判断する（Ｓ３４）。
【００７１】
図１２は顔の向き検出装置１による眼の位置を検出できない画像フレームに対する顔の向き検出処理を説明するための図であり、図１２（ａ）は、図３（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。
尚、眼の位置を検出できない画像フレームとしては、図１２（ｂ）に示すように、上述した眼検出処理において算出される、画像フレームの水平方向Ｘに配列される画素データの加算値である輝度和において、極小値が特定できないものが挙げられる。
【００７２】
このように、眼の位置を検出できない場合（Ｓ３４：ＮＯ）、ＣＰＵ１０は、ステップＳ３２における顔の領域検出処理により算出された画像フレームの垂直方向Ｙに配列される画素データの加算値である輝度和の特徴データを抽出する抽出手段として動作する（Ｓ３５）。
【００７３】
ここで、図１２（ｃ）は画像フレームの垂直方向Ｙに配列される画素データの輝度和のグラフを示しており、特徴データとは、水平方向Ｘの左端から位置Ｘ１までの範囲に示すように、各輝度和がなだらかに上昇する特徴を示すデータ等があり、ＨＤ１１に予め記憶される特徴テーブルは、顔の各向きに対応して、各向きで撮像した画像フレームにおいて抽出される上述のような各特徴を示すデータを記憶してある。
【００７４】
具体的に、図１２（ｃ）においては、上述したように水平方向Ｘにおいて、各輝度和がなだらかに上昇し、輝度和の変化が少なく、このような画像フレームは、長い髪の領域である場合が多く、このような特徴データは、特徴テーブルにおいて、右向きに対応して記憶してあり、ＣＰＵ１０は、抽出した特徴データに基づく向き検出手段として動作し、ＨＤ１１の特徴テーブルから前記顔の向きを検出し（Ｓ３６）、図１２（ｃ）においては右向きであると特定できる。
尚、このような特徴テーブルに記憶してある特徴データは、予めＨＤ１１に記憶してあってもよいが、ユーザが設定することにより、ＲＡＭ１２に追加することも可能である。
【００７５】
一方、ステップＳ３４において、眼の位置が検出された場合（Ｓ３４：ＹＥＳ）、ＣＰＵ１０は、図６のフローチャートにより説明した鼻検出処理を実行し（Ｓ３７）、画像フレームに含まれる運転者の鼻の位置を特定する。
鼻検出処理も眼検出処理と同様に、カメラ２により撮像される画像フレームによって、鼻の位置を検出できない場合があり、ＣＰＵ１０は、自身の鼻検出不可フラグレジスタがオフであるか否かに基づき、上述した鼻検出処理により鼻の位置を検出したか否かを判断する（Ｓ３８）。
【００７６】
図１３は顔の向き検出装置１による鼻の位置を検出できない画像フレームに対する顔の向き検出処理を説明するための図であり、図１３（ａ）は、図３（ａ）と同様に、カメラ２から取得した画像フレームの例を示している。
尚、鼻の位置を検出できない画像フレームとしては、図１３（ｂ）に示すように、上述した鼻検出処理において算出される、眼の位置から所定画素数だけ下方の領域Ｒにおいて、垂直方向Ｙに配列される画素データの加算値である輝度和において、極小値が特定できないものが挙げられる。
【００７７】
このように、鼻の位置を検出できない場合（Ｓ３８：ＮＯ）、ＣＰＵ１０は、ステップＳ３３における眼検出処理により算出された眼の位置に基づき、図１３（ｃ）にＥＲで示す眼の近傍領域において、垂直方向Ｙに配列される画素データの加算値である輝度和を算出する眼近傍加算手段として動作して、このような眼の近傍領域ＥＲにおいて、垂直方向Ｙに配列される画素データを順次加算する（Ｓ３９）。
図１３（ｄ）は領域ＥＲにおいて垂直方向Ｙの画素データの輝度和のグラフを示しており、ＣＰＵ１０は、ステップＳ３５と同様に、このように算出された輝度和おける特徴データを抽出し（Ｓ４０）、抽出した特徴データに基づきＨＤ１１の特徴テーブルから顔の向きを検出する（Ｓ４１）。
【００７８】
尚、ここでの特徴データは、水平方向Ｘの左端から位置Ｘ２までの範囲に示すように、各輝度和が激しく変動する特徴等を示すデータであり、このように輝度和が激しく変動する領域は、短い髪の領域である場合が多く、このような特徴データは、特徴テーブルにおいて右向きに対応して記憶してあり、ＣＰＵ１０は、ステップＳ４１において運転者の顔は右を向いていると検出することができる。
【００７９】
一方、ステップＳ３８において、鼻の位置が検出された場合（Ｓ３８：ＹＥＳ）、ＣＰＵ１０は、ＨＤ１１の顔の向き検出処理プログラムを実行することにより向き検出手段として動作し、ステップＳ３２において検出した顔の領域、及びステップＳ３７において検出した鼻の位置に基づき、顔の角度を含む向きを検出する（Ｓ４２）。
図１４は顔の角度の算出処理を説明するための図であり、図１４に示すような画像フレームに基づき、該画像フレームに含まれる運転者の顔の領域Ｆ及び鼻筋の位置Ｎが検出された場合、ＣＰＵ１０は、例えば、以下の（１）式に基づき顔の角度を算出する。
【００８０】
θ  ＝  Ｓｉｎ−１｛（ｎ１＋ｎ２）／２−ｎ２｝／Ｒ  …（１）
ここで、Ｒは予め設定する人間の頭の平均的な半径を、ｎ１は顔の領域の左端位置から鼻筋の位置までの距離を、ｎ２は鼻筋の位置から顔の領域の右端位置までの距離を夫々示している。
【００８１】
上述したように、顔の向き検出装置１は、カメラ２が撮像した画像フレームに基づき、該画像フレームに含まれる運転者の顔の領域を検出し、前記画像フレームに基づき前記運転者の眼の位置を検出する。ここで、前記眼の位置が検出できない場合には、顔の領域を検出する際に算出した、前記画像フレームの垂直方向Ｙの画素データの加算値に基づき前記顔の向きを検出する。
また、前記眼の位置が検出できた場合には、検出した眼の位置に基づき鼻の位置を検出し、検出した鼻の位置及び先立って検出してある顔の領域に基づき前記顔の向きを検出し、更に、前記鼻の位置が検出できない場合には、先立って検出してある眼の位置の近傍領域の画素データに基づき前記顔の向きを検出する。
【００８２】
これにより、眼又は鼻の位置を検出できない画像フレームにおいても、より正確に顔の向きを検出することができ、鼻の位置を検出できた場合には、顔の向きだけでなく顔の角度も検出することができる。
【００８３】
上述した顔の向き検出装置１において、例えば、運転者が走行させる車両の走行方向等に基づき、上述のように検出した顔の向きが適切か否かを判断する構成を更に備えることにより、運転者の顔の向きが適切でない場合に、脇見運転と判断して運転者に脇見運転を警告する構成とすることもできる。また、上述したような顔の向き検出処理は、車両の運転者を撮像した画像フレームだけに適用されるわけではなく、顔を撮像して得られる各画像フレームに適用することができる。
尚、上述の実施の形態では、顔の向き検出装置１は、ＨＤ１１に各種の動作を行なうためのコンピュータプログラムを記憶しており、これらのコンピュータプログラムをＣＰＵ１０が実行することにより各動作を実現しているが、各動作をハードウェアにより構成することも可能である。
【００８４】
（付記１）  顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した複数の加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
（付記２）  前記垂直加算手段が算出した複数の加算値の特徴データを抽出する抽出手段と、
複数の顔の向きに対応して前記特徴データを記憶する特徴テーブルとを備え、
前記向き検出手段は、
前記抽出手段が抽出した特徴データに対応する顔の向きを前記特徴テーブルから選択する手段を備えることを特徴とする付記１に記載の顔の向き検出装置。
（付記３）  顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データの水平方向の画素データを夫々加算する水平加算手段と、
該水平加算手段が算出した複数の加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、
該眼検出手段が検出した眼の位置の近傍領域の垂直方向の画素データを夫々加算する眼近傍加算手段と、
該眼近傍加算手段が算出した複数の加算値に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
（付記４）  前記水平加算手段が算出した加算値の最大値を特定する最大値特定手段と、
前記水平加算手段が算出した加算値の極小値を特定する極小値特定手段と、
前記最大値特定手段が最大値と特定した加算値よりも垂直方向に上方にあり、前記極小値特定手段が極小値と特定した加算値を選択する選択手段とを備え、
前記眼検出手段は、前記選択手段が選択した加算値の垂直方向の位置が前記眼の位置であると検出することを特徴とする付記３に記載の顔の向き検出装置。
（付記５）  前記水平加算手段が算出した加算値の極小値を特定する極小値特定手段と、
前記水平加算手段が算出した加算値の垂直方向の上方から２番目に、前記極小値特定手段が極小値と特定した加算値を選択する選択手段とを備え、
前記眼検出手段は、前記選択手段が選択した加算値の垂直方向の位置が前記眼の位置であると検出することを特徴とする付記３に記載の顔の向き検出装置。
（付記６）  顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する装置において、
前記画像データから水平方向における顔の領域を検出する領域検出手段と、
前記画像データから水平方向における鼻の位置を検出する鼻検出手段と、
該鼻検出手段が検出した鼻の位置及び前記領域検出手段が検出した領域に基づき前記顔の向きを検出する向き検出手段とを備えることを特徴とする顔の向き検出装置。
（付記７）  閾値を記憶する閾値記憶手段と、
前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した加算値及び前記閾値記憶手段に記憶してある閾値を比較する比較手段と、
前記領域検出手段は、前記比較手段の比較結果が、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断する手段を備えることを特徴とする付記６に記載の顔の向き検出装置。
（付記８）  前記画像データの垂直方向の画素データを夫々加算する垂直加算手段と、
該垂直加算手段が算出した加算値の水平方向の変化量を算出する変化量算出手段と、
該変化量算出手段が算出した変化量に基づき水平方向における前記顔の輪郭を特定する特定手段とを備え、
前記領域検出手段は、前記特定手段が特定した顔の輪郭に基づき前記領域を検出することを特徴とする付記６に記載の顔の向き検出装置。
（付記９）  所定の画素数を記憶する画素数記憶手段と、
前記画像データの水平方向の画素データを夫々加算する水平加算手段と、
該水平加算手段が算出した複数の加算値に基づき垂直方向における眼の位置を検出する眼検出手段と、
該眼検出手段が検出した眼の位置から垂直方向に前記画素数記憶手段に記憶してある画素数だけ下方の領域の垂直方向の画素データを加算する眼下方加算手段と、
該眼下方加算手段が算出した加算値の極小値を特定する極小値特定手段とを備え、
前記鼻検出手段は、前記極小値特定手段が極小値と特定した加算値の水平方向の位置が鼻の位置であると検出することを特徴とする付記６乃至８のいずれかに記載の顔の向き検出装置。
（付記１０）  所定の距離を記憶する距離記憶手段と、
前記極小値特定手段が複数の極小値を特定した場合に、極小値と特定された加算値の水平方向の距離を算出する距離算出手段と、
該距離算出手段が算出した距離及び前記距離記憶手段に記憶してある所定の距離を比較する比較手段とを備え、
前記鼻検出手段は、前記比較手段の比較結果が、前記距離算出手段が算出した距離が前記所定の距離よりも短い場合に、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置であると検出することを特徴とする付記６乃至８のいずれかに記載の顔の向き検出装置。
（付記１１）  コンピュータに、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出させるためのコンピュータプログラムにおいて、
コンピュータに、前記画像データの垂直方向の画素データを夫々加算させる手順と、
コンピュータに、算出した複数の加算値に基づき前記顔の向きを検出させる手順とを備えることを特徴とするコンピュータプログラム。
（付記１２）  コンピュータに、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出させるためのコンピュータプログラムにおいて、
コンピュータに、前記画像データの水平方向の画素データを夫々加算させる手順と、
コンピュータに、算出した複数の加算値に基づき垂直方向における眼の位置を検出させる手順と、
コンピュータに、検出した眼の位置の近傍領域の垂直方向の画素データを夫々加算させる手順と、
コンピュータに、前記眼の近傍領域について算出した複数の加算値に基づき前記顔の向きを検出させる手順とを備えることを特徴とするコンピュータプログラム。
（付記１３）  計算装置を用いて、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出する方法において、
前記計算装置が、
前記画像データから水平方向における顔の領域を検出し、
前記画像データから水平方向における鼻の位置を検出し、
検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出することを特徴とする顔の向き検出方法。
（付記１４）  コンピュータに、顔を撮像して得られた、水平方向及び垂直方向夫々に複数の画素データを配列した画像データから、前記顔の向きを検出させるためのコンピュータプログラムにおいて、
コンピュータに、前記画像データから水平方向における顔の領域を検出させる手順と、
コンピュータに、前記画像データから水平方向における鼻の位置を検出させる手順と、
コンピュータに、検出した鼻の位置及び顔の領域に基づき前記顔の向きを検出させる手順とを備えることを特徴とするコンピュータプログラム。
【００８５】
【発明の効果】
第１発明による場合は、顔を撮像して得られた画像データの垂直方向の画素データを夫々加算し、算出した複数の加算値に基づき前記顔の向きを検出することにより、１枚の画像データに対して、算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮され、順次取得される画像データに対しても、迅速な検出処理を実現することができる。
【００８６】
第２発明による場合は、複数の顔の向きに対応して、各向きで撮像した場合の画像データの垂直方向の画素データの加算値の特徴データを記憶する特徴テーブルを用い、顔を撮像して順次得られる画像データの垂直方向の加算値の特徴データを抽出し、抽出した特徴データに対する顔の向きを前記特徴テーブルから選択して決定することにより、上述した特徴データのみを予め記憶しておけば足り、顔の向きの判定処理に用いるデータを記憶するメモリ容量を削減することができる。
【００８７】
第３発明による場合は、顔を撮像して得られた画像データの水平方向の画素データを夫々加算し、算出した複数の加算値に基づき垂直方向における眼の位置を検出する。また、検出した眼の位置の近傍領域について垂直方向の画素データを加算し、算出した複数の加算値に基づき顔の向きを検出することにより、１枚の画像データに対して、眼の近傍領域において算出された加算値に基づく処理にて前記顔の向きを検出するため、処理すべきデータ量が減少して処理時間が短縮される。
【００８８】
第４、第９及び第１０発明による場合は、顔を撮像して得られた画像データから前記顔の領域を検出し、また前記画像データから水平方向における鼻の位置を検出し、更に検出された鼻の位置及び顔の領域に基づき前記顔の向きを検出することにより、顔の向きだけでなく、顔の角度も精度良く算出することができる。
【００８９】
第５発明による場合は、顔を撮像して得られた画像データの垂直方向の加算値及び予め閾値記憶手段に記憶してある閾値を比較し、比較結果が、前記加算値が前記閾値よりも大きい場合に、当該加算値に算出された画素データは前記顔の領域内にあると判断し、この判断結果に基づき前記顔の領域を検出する。
顔の領域は背景領域と比較して明るく撮像される傾向にあるため、垂直加算手段にて算出した加算値に基づき、顔の領域を精度良く特定することができ、精度良く検出された顔の領域及び鼻の位置に基づき、精度良く顔の向きを検出することができる。
【００９０】
第６発明による場合は、顔を撮像して得られた画像データの垂直方向の加算値の水平方向の変化量を算出し、算出した変化量に基づき水平方向における前記顔の輪郭を特定し、特定された輪郭に基づき前記顔の領域を検出することにより、背景の領域から顔の領域へ、及び顔の領域から背景の領域へ変化する箇所等の水平方向における画素データの変化量が大きく変化する位置における画素データが、水平方向における顔の輪郭部分の画素データであると特定することができ、特定された輪郭に基づき、より精度良く顔の領域を検出することができる。
【００９１】
第７発明による場合は、顔を撮像して得られた画像データの水平方向の加算値に基づき垂直方向における眼の位置を検出し、検出した眼の位置から垂直方向に予め設定してある所定の画素数だけ下方の領域において垂直方向の画素データの加算値を算出する。また、算出された加算値の極小値を特定し、極小値と特定された加算値の水平方向の位置が鼻の位置であると検出することにより、簡易な処理により鼻の位置を検出することができ、画像データに眼鏡フレームが含まれる場合であっても、眼鏡フレームを避けた領域の画素データに基づき鼻を検出することができ、眼鏡フレームの影響を受けずに鼻を検出することができる。
【００９２】
第８発明による場合は、眼の下方の領域について算出された垂直方向の加算値において、極小値であると複数特定された場合、これらの加算値の水平方向の距離を算出し、算出した距離が予め設定された所定の距離よりも短い場合に、当該極小値であると特定された加算値に算出された画素データは鼻の輪郭部分の画素データであると特定することができ、当該距離を隔てた２つの加算値の水平方向の中央部分が前記鼻の位置と検出することにより、精度良く鼻の位置を検出することができる。
【図面の簡単な説明】
【図１】本発明に係る顔の向き検出装置の構成例を示すブロック図である。
【図２】顔の向き検出装置による顔の領域検出処理手順を示すフローチャートである。
【図３】顔の向き検出装置による顔の領域の検出処理を説明するための図である。
【図４】顔の向き検出装置による眼の位置検出処理手順を示すフローチャートである。
【図５】顔の向き検出装置による眼の位置の検出処理を説明するための図である。
【図６】顔の向き検出装置による鼻の位置検出処理手順を示すフローチャートである。
【図７】顔の向き検出装置による鼻の位置の検出処理を説明するための図である。
【図８】顔の向き検出装置による鼻の位置の検出処理を説明するための図である。
【図９】眼鏡フレームを含む画像フレームを示す図である。
【図１０】本発明に係る顔の向き検出装置による顔の向き検出処理手順を示すフローチャートである。
【図１１】本発明に係る顔の向き検出装置による顔の向き検出処理手順を示すフローチャートである。
【図１２】顔の向き検出装置による顔の向き検出処理を説明するための図である。
【図１３】顔の向き検出装置による顔の向き検出処理を説明するための図である。
【図１４】顔の向き検出装置による顔の角度の算出処理を説明するための図である。
【符号の説明】
１  顔の向き検出装置
１０  ＣＰＵ
１１  ＨＤ
２  カメラ（撮像装置）
【図１】
2004234367.tif 000003
【図２】
2004234367.tif 000004
【図３】
2004234367.tif 000005
【図４】
2004234367.tif 000006
【図５】
2004234367.tif 000007
【図６】
2004234367.tif 000008
【図７】
2004234367.tif 000009
【図８】
2004234367.tif 000010
【図９】
2004234367.tif 000011
【図１０】
2004234367.tif 000012
【図１１】
2004234367.tif 000013
【図１２】
2004234367.tif 000014
【図１３】
2004234367.tif 000015
【図１４】
2004234367.tif 000016