(57)【要約】【課題】人物画像に基づいて顔の向きを判別し、その信頼度も判定する。【解決手段】カメラ１０でドライバーの顔を撮影して得られた顔画像を画像メモリ２２に記憶する。ＣＰＵ２４は、画像メモリ２２に記憶された前記顔画像に基づいて、顔の両側位置と上下位置を判別し、さらに、顔向き角度を判別する。ＣＰＵ２４は、求めた顔向きについて、その信頼度を示す信頼度を求め、顔向きと出力する。ＣＰＵ２４は、信頼度として、従前に判別された顔の位置と今回検出された位置とのずれの量に基づく信頼度、ソーベルフィルタ処理後の顔画像の各画素の画素値を所定方向に投影して得たヒストグラムに基づいた信頼度、顔画像を複数の領域に分割し、各領域の重心を求め、求めた重心位置に基づいた信頼度、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づく信頼度等を求める。【選択図】図２
2011210280.tif 000002
【特許請求の範囲】
【請求項１】
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段と、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段と、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段と、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段と、
を備え、
前記顔位置判別手段は、前記顔画像記憶手段に記憶された前記顔画像のエッジ抽出処理を行い、エッジ抽出処理により得られた画像の各画素の画素値を所定方向に投影してヒストグラムを得るヒストグラム取得処理を実行し、
前記信頼度判別手段は、得られたヒストグラムに基づいて顔の両端点の複数の候補を抽出し、抽出した候補のうちから顔の両端点を特定し、特定した顔の両端点のヒストグラムの値の他の候補のヒストグラムの値に対する相対的な大きさに基づいて、顔向きの信頼度を求める、ことを特徴とする顔向き判別装置。
【請求項２】
前記信頼度判別手段は、得られたヒストグラムに基づいて、顔の両端点に対応するヒストグラムのピーク値の他のピーク値に対する大きさに基づいて、顔向きの信頼度を求める、ことを特徴とする請求項１に記載の顔向き判別装置。
【請求項３】
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段と、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段と、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段と、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段と、
を備え、
前記信頼度判別手段は、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔向きの信頼度を求める、ことを特徴とする顔向き判別装置。
【請求項４】
前記顔位置判別手段と前記顔向き判別手段と前記信頼度判別手段とは、前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の水平方向の位置と向きを判別する処理と、判別した水平方向の向きの信頼度を求める１単位の処理を繰り返して実行し、
顔の垂直方向の位置を判別する処理を複数の処理ステップに区分して、各１単位の処理内でいずれかの区分ステップを実行し、前記区分ステップの実行を複数回繰り返すことにより、顔の垂直方向の位置を求める、
ことを特徴とする請求項１乃至３のいずれか１項に記載の顔向き判別装置。
【請求項５】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記顔位置判別手段として、前記顔画像記憶手段に記憶された前記顔画像のエッジ抽出処理を行い、エッジ抽出処理により得られた画像の各画素の画素値を所定方向に投影してヒストグラムを得るヒストグラム取得処理を実行させ、
前記コンピュータに、前記信頼度判別手段として、得られたヒストグラムに基づいて顔の両端点の複数の候補を抽出し、抽出した候補のうちから顔の両端点を特定し、特定した顔の両端点のヒストグラムの値の他の候補のヒストグラムの値に対する相対的な大きさに基づいて、顔向きの信頼度を求める処理を実行させるコンピュータプログラム。
【請求項６】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔向きの信頼度を求める処理を実行させるコンピュータプログラム。
【請求項７】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、従前に判別された顔の位置と今回検出された顔の位置とのずれの大きさに基づいて、顔向きの信頼度を求める処理を実行させるコンピュータプログラム。
【請求項８】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の重心を求め、求めた重心位置に基づいて、顔向きの信頼度を求める処理を実行させるコンピュータプログラム。
【請求項９】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔位置の信頼度を求める処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔画像から顔向き（横向き角度）を判別すると共にその信頼度（確度）を判別することが可能な顔向き判別装置に関する。
【背景技術】
【０００２】
顔画像に基づいて人を識別したり、表情を読み取ったりするためには、顔の位置や顔の中心位置、向きなどを検出することが重要となる。
【０００３】
例えば、特許文献１には、人の顔を撮影した画像を処理し、人の動きや背景に影響されること無く高精度に顔の位置を検出する手法が開示されている。
【０００４】
また、特許文献２には、ドライバーが存在可能な領域を撮影して得られた画像を取り込み、取り込んだ画像から横エッジ画像（顔の両側端）を検出し、検出した横エッジ画像に基づいて、複数の顔中心候補線を設定すると共に各顔中心候補線各々に対して、該顔中心候補線が顔の中心線である確からしさを表す値に基づいて、顔の有無の判定精度を向上する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３１０３９６号公報
【特許文献２】特開２００５−０１１０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
車両の走行環境は様々に変化し、カメラが捉えるドライバーの画像も様々に変化する。例えば、あるタイミングでは、顔に直射日光があたって全体が明るい画像となり、車両の向きが変化することに伴ってカメラに向かう面が陰になって、全体が暗くなったり、或いは、顔の一部が明るく、残りが暗くなる等の事態が生ずる。このため、顔の両側端位置の検出なども困難であり、画像取得時の環境・条件、例えば、光のあたり方（あたる方向、外光の強度）などにより、顔の輪郭線や中央線の検出を誤ってしまうこともある。
これらの情報の検出に誤りが生ずると、横向き角度の判定など、以後の判定にずれが生じてしまう。
このような場合に、環境や条件による検出位置の精度に指標が与えられれば有効であり、以後の、処理に活用可能である。
【０００７】
本発明は上記の問題点に鑑みてなされたものであり、顔の向きなどを判別する場合に、その信頼度を判別することを可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、この発明の第１の観点にかかる顔向き判別装置は、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段と、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段と、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段と、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段と、
を備え、
前記顔位置判別手段は、前記顔画像記憶手段に記憶された前記顔画像のエッジ抽出処理を行い、エッジ抽出処理により得られた画像の各画素の画素値を所定方向に投影してヒストグラムを得るヒストグラム取得処理を実行し、
前記信頼度判別手段は、得られたヒストグラムに基づいて顔の両端点の複数の候補を抽出し、抽出した候補のうちから顔の両端点を特定し、特定した顔の両端点のヒストグラムの値の他の候補のヒストグラムの値に対する相対的な大きさに基づいて、顔向きの信頼度を求める、ことを特徴とする。
この場合、前記信頼度判別手段は、例えば、得られたヒストグラムに基づいて、顔の両端点に対応するヒストグラムのピーク値の他のピーク値に対する大きさに基づいて、顔向きの信頼度を求める。
【０００９】
上記目的を達成するため、この発明の第２の観点にかかる顔向き判別装置は、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段と、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段と、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段と、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段と、
を備え、
前記信頼度判別手段は、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔向きの信頼度を求める、ことを特徴とする。
【００１０】
例えば、前記顔位置判別手段と前記顔向き判別手段と前記信頼度判別手段とは、前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の水平方向の位置と向きを判別する処理と、判別した水平方向の向きの信頼度を求める１単位の処理を繰り返して実行し、顔の垂直方向の位置を判別する処理を複数の処理ステップに区分して、各１単位の処理内でいずれかの区分ステップを実行し、前記区分ステップの実行を複数回繰り返すことにより、顔の垂直方向の位置を求める。
【００１１】
上記目的を達成するため、この発明の第３の観点にかかるコンピュータプログラムは、
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記顔位置判別手段として、前記顔画像記憶手段に記憶された前記顔画像のエッジ抽出処理を行い、エッジ抽出処理により得られた画像の各画素の画素値を所定方向に投影してヒストグラムを得るヒストグラム取得処理を実行させ、
前記コンピュータに、前記信頼度判別手段として、得られたヒストグラムに基づいて顔の両端点の複数の候補を抽出し、抽出した候補のうちから顔の両端点を特定し、特定した顔の両端点のヒストグラムの値の他の候補のヒストグラムの値に対する相対的な大きさに基づいて、顔向きの信頼度を求める処理を実行させる。
【００１２】
上記目的を達成するため、この発明の第４の観点にかかるコンピュータプログラムは、
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔向きの信頼度を求める処理を実行させる。
【００１３】
上記目的を達成するため、この発明の第５の観点にかかるコンピュータプログラムは、
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、従前に判別された顔の位置と今回検出された顔の位置とのずれの大きさに基づいて、顔向きの信頼度を求める処理を実行させる。
【００１４】
上記目的を達成するため、この発明の第６の観点にかかるコンピュータプログラムは、
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の重心を求め、求めた重心位置に基づいて、顔向きの信頼度を求める処理を実行させる。
【００１５】
上記目的を達成するため、この発明の第７の観点にかかるコンピュータプログラムは、
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像に基づいて、顔の位置と顔の中心の位置とを判別する顔位置判別手段、
前記顔位置判別手段により求められた顔の位置と顔の中心の位置とに基づいて顔の向きを出力する顔向き判別手段、
前記顔向き判別手段により判別された顔向きについて、その確からしさを示す信頼度を求める信頼度判別手段、
前記顔向き判別手段で判別された顔の向きと、前記信頼度判別手段により判別されたその信頼度とを出力する出力手段、
として機能させるコンピュータプログラムであって、
前記コンピュータに、前記信頼度判別手段として、顔画像を複数の領域に分割し、各領域の輝度を求め、求めた輝度に基づいて、顔位置の信頼度を求める処理を実行させる。
【発明の効果】
【００１６】
この発明によれば、顔画像から顔の向きを判別すると共にその信頼度を判別することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る顔向き判別装置のブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭに格納されている各種データを説明するための図である。
【図４】図１に示す顔向き判別装置の動作を説明するためのフローチャートである。
【図５】図４のフローチャートにおける前処理の具体例を説明するためのフローチャートである。
【図６】図４のフローチャートにおける顔位置判別処理の具体例を説明するためのフローチャートである。
【図７】図４のフローチャートにおける基本処理の具体例を説明するためのフローチャートである。
【図８】図４のフローチャートにおける後処理の具体例を説明するためのフローチャートである。
【図９】図４のフローチャートにおける第１〜第ｎの分割処理の具体例を説明するためのフローチャートである。
【図１０】図７の顔両端検出処理の具体例を説明するためのフローチャートである。
【図１１】図７の顔上下位置検出処理の具体例を説明するためのフローチャートである。
【図１２】図８の顔中心検出処理の具体例を説明するためのフローチャートである。
【図１３】図８の信頼度計算処理の具体例を説明するためのフローチャートである。
【図１４】図８の顔両端位置ずれ信頼度計算処理の具体例を説明するためのフローチャートである。
【図１５】図８のヒストグラム信頼度計算処理の具体例を説明するためのフローチャートである。
【図１６】図８の重心バランス信頼度計算処理の具体例を説明するためのフローチャートである。
【図１７】図８の輝度バランス信頼度計算処理の具体例を説明するためのフローチャートである。
【図１８】サングラス検出処理を説明するための図である。
【図１９】顔両端位置ずれ信頼度の技術的意味を説明するための図である。
【図２０】ヒストグラム信頼度の技術的意味を説明するための図である。
【図２１】重心バランス信頼度の技術的意味を説明するための図である。
【図２２】輝度バランス信頼度の技術的意味を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態に係る顔向き判別装置について説明する。
本実施形態の顔向き判別装置は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０と、ドライバーの顔を照明する照明光源１２と、ドライバーの顔中心位置を検出するコンピュータ１４と、コンピュータ１４に接続された表示装置１６とを備える。
【００１９】
カメラ１０は例えばＣＣＤカメラ等から構成され、ドライバーの顔の階調画像を取得する。カメラ１０によって生成される顔画像は、ドライバーの顔だけでなく、その背景なども含まれている。
【００２０】
表示装置１６は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、カメラ１０で撮影された顔画像から抽出された二値化画像などを表示する。
【００２１】
コンピュータ１４は、カメラ１０により取得された顔画像を処理して顔の両端の位置を検出し、この検出した両端位置に基づいて、顔の横向き確度を求め、さらに、顔の両端の検出位置のずれを数値化して検出された横向き角度の信頼度を求める装置である。コンピュータ１４は、図２に示すように、Ａ／Ｄ変換器２１と、画像メモリ２２と、ＲＯＭ２３と、ＣＰＵ２４と、ＲＡＭ２５と、表示制御装置２７と、光源制御装置２８と、を備える。
【００２２】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを記憶する。
【００２３】
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムを記憶する。また、ＲＯＭ２３は、後述する画像処理を実行するための様々な固定データを記憶する。
【００２４】
ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、カメラ１０により取得された顔画像を処理して顔の両端の位置を検出し、この検出した両端位置に基づいて、顔の横向き角度を求め、さらに、顔の両端の検出位置のずれを数値化して検出された向き（横向き角度）の信頼度を求める装置である。
【００２５】
ＲＡＭ２５は、ＣＰＵ２４のワークリアとして機能する。
表示制御装置２７は、ＣＰＵ２４の制御下に、表示装置１６を制御する。
光源制御装置２８は、照明光源１２の点灯・消灯を制御する。
【００２６】
次に、ＲＯＭ２３に格納される固定データの例を図３を参照して説明する。まず、ＲＯＭ２３は、図３（ａ）、（ｂ）に示すような、縦エッジ検出用と横エッジ検出用ソーベルフィルタのオペレータを格納する。図３（ａ）、（ｂ）に示す、縦エッジ検出用ソーベルフィルタと横エッジ検出用のソーベルフィルタとは、それぞれ、図３（ｃ）、（ｄ）に示すような縦方向の濃淡差、横方向の濃淡差を強調するためのオペレータである。
【００２７】
また、ＲＯＭ２３は、図３（ｅ）に示すように、ＲＡＭ２５に格納される顔画像のうち、目や眉の画像が存在すると想定される位置を特定するデータが格納されている。
また、ＲＯＭ２３は、図３（ｆ）に示すように、サングラスを検出するために、サングラスの縦横のサイズを格納する。
また、ＲＯＭ２３は、図３（ｇ）に示すように、標準的な目の画像を格納する。
【００２８】
次に、上記構成を有する顔向き判別装置の動作を説明する。
電源が投入されると、コンピュータ１４内のＣＰＵ２４は、図４に示す処理を繰り返して実行する。
【００２９】
即ち、ＣＰＵ２４は、前処理（ステップＳ０１）と顔位置判別（検出）処理（ステップＳ０２）とから構成される初期処理を実行し、続いて、第１の処理〜第ｎの処理を繰り返して実行する。ｎは２以上の自然数である。
【００３０】
初期処理を構成する前処理（ステップＳ０１）と顔位置判別処理（ステップＳ０２）とは、ドライバーの左右方向及び上下方向の顔の位置の初期値を求めるための処理である。
【００３１】
第１処理〜第ｎ処理は、電源投入中は繰り返して実行され、それぞれ、ドライバーの顔の左右方向の顔の位置を求め、さらに、その信頼度と共に出力する。また、第１処理〜第ｎ処理は、全体として、ドライバーの上下方向の顔の位置を１回求める。これにより、定常動作状態では、ドライバーの顔の左右方向の位置をｎ回求めている間に、ドライバーの顔の上下方向の位置を１回求めることになる。一般に、人間の顔の上下方向の動きは、左右方向の動きに比べて小さいため、このような検出手法を採用することにより、顔の位置の検出の精度と処理効率との両立を図ることができる。
【００３２】
初期処理を構成する前処理Ｓ０１は、図５に示すように、キャプチャ処理（ステップＳ０１１）と、座標変換処理（ステップＳ０１２）と、ソーベルフィルタ処理（ステップＳ０１３）とから構成される。
【００３３】
キャプチャ処理（ステップＳ０１１）は、カメラ１０の撮影したドライバーの１フレーム文の顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納する処理である。
【００３４】
座標変換処理（ステップＳ０１２）は、処理可能な程度に画素を間引く処理である。
【００３５】
ソーベルフィルタ処理（ステップＳ０１３）は、ＲＯＭ２３に格納されている縦エッジ検出用ソーベルフィルタ（図３（ａ））を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調する処理を行い、また、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調する処理を行う処理である。
【００３６】
図４の顔位置判別処理（ステップＳ０２）は、前処理済みの顔画像を用いて顔の両端位置と上下位置を検出する処理であり、図６に示すように、顔両端検出処理（ステップＳ０２１）と顔上下位置検出処理（ステップＳ０２２）とから構成される。
【００３７】
顔両端検出処理（ステップＳ０２１）は、顔画像を縦エッジ検出用のオペレータで操作した顔画像について、顔の両端を構成するラインを特定する処理であり、既知の任意の手法を採用することができる。
【００３８】
例えば、図１０に示すように、顔両端検出用のヒストグラム作成処理を行い（ステップＳ０２１１）、続いて、このヒストグラムのピーク値の高いものを所定数抽出して、これをソートし（ステップＳ０２１２）、ヒストグラム値に基づく、端点の抽出を行う（ステップＳ０２１３）。例えば、ヒストグラム値の上位１又は２つが他と比較して極端に値が大きい場合には、その点を端点とする。
【００３９】
次に、端点が２つ（両端）抽出されたか否かを判別し（ステップＳ０２１４）、判別されていれば（ステップＳ０２１４；Ｙｅｓ）、処理を終了し、端点が２つ抽出できていなければ（ステップＳ０２１４；Ｎｏ）、ヒストグラム値同士の距離が、人の顔幅としてもっともらしい間隔を有する組み合わせを抽出することにより、端点を決定し（ステップＳ０２１５）、最終的に、顔面の両端を決定する処理を行う（ステップＳ０２１６）。
【００４０】
また、特許文献１に開示されているように、撮影画像の時間微分を算出し、さらに、この画素値時間微分画像の画素値を縦方向に投影してヒストグラムを作成し、エッジ部抽出画像のヒストグラムと画素値時間微分画像のヒストグラムとを合計して、ヒストグラムのピーク値の高いものを抽出すると共に人の顔幅としてもっともらしい点を決定し、顔端位置を検出するようにしてもよい。
【００４１】
次に、図６のステップＳ０２２の顔上下位置検出処理は、上述と同様の処理を横エッジについて行って、顔のほぼ目の位置（上端）と口の位置（下端）を検出する処理であり、例えば、図１１に示すように、ヒストグラム作成処理（ステップＳ０２２１）と、目下候補検出処理（ステップＳ０２２２）と、顔上下位置算出処理（ステップＳ０２３３）と、から構成される。
【００４２】
ヒストグラム作成処理（ステップＳ０２２１）は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する処理である。
【００４３】
目下候補検出処理（ステップＳ０２２２）は、ヒストグラム値に基づいて、目・眉、口などに対応するヒストグラム値の候補を選択する処理である。
顔上下位置算出処理（ステップＳ０２３３）は、選択した候補から、顔の上下端位置（例えば、目・眉の位置）を検出する処理である。なお、顔上端位置は、例えば、眉の上、下端位置は口と顎の間などに設定される。
【００４４】
ＣＰＵ２４は、このようにしてステップＳ０２１とＳ０２２で求めた、顔両端（左右側端）位置と、顔の上下位置をＲＡＭ２５に記憶する。
【００４５】
以上で、図４の初期処理が終了し、続いて、ＣＰＵ２４は、第１処理〜第ｎ処理のループ処理を開始する。
【００４６】
第１から第ｎの周期処理は、それぞれ、前処理（ステップＳ１１〜Ｓｎ１）と、基本処理（ステップＳ１２〜Ｓｎ２）と、後処理（ステップＳ１３〜Ｓｎ３）と、分割処理（ステップＳ１４〜Ｓｎ４）と、から構成される。
【００４７】
前処理（ステップＳ１１〜Ｓｎ１）は、ステップＳ０１の前処理と同一であり、図５に示すように、顔画像をキャプチャするキャプチャ処理（ステップＳ０１１）、画素を間引く座標変換処理（ステップＳ０１２）、ソーベルフィルタで顔画像を処理するソーベルフィルタ処理（ステップＳ０１３）を含む。ただし、ここでのソーベルフィルタ処理は、縦エッジ検出用のソーベルフィルタ処理のみである。
【００４８】
図４の第１処理〜第ｎ処理を構成する基本処理（ステップＳ１２〜Ｓｎ２）は、それぞれ、顔の両端を検出し、顔中心を検出する処理であり、図７に示すように、顔両端検出処理（ステップＳ１２１）と顔中心検出処理（ステップＳ１２２）と、から構成される。
【００４９】
顔両端検出処理（ステップＳ１２１）は、前述の図１０に示す処理と同様の処理で実現可能である。即ち、前述したように、顔両端の検出用ヒストグラムを作成する（ステップＳ０２１１）。続いて、顔の両端の位置の候補データをヒストグラムの順に並べ変える（ステップＳ０２１２）。次に、ヒストグラムのうち、値が抜き出たものが存在するか否かを判別し、値が抜き出たものがある場合には、それを顔両端の候補として採用する（ステップＳ０２１３）。ステップＳ０２１３で、顔の両端が検出できたか否かを判別する（ステップＳ０２１４）。顔の両端が検出できていない場合には（ステップＳ０２１４；Ｎｏ）、ヒストグラムに基づいて複数の端候補を選択して、顔の両端の距離などから相対的にマッチするものを検出し（ステップＳ０２１５）、最終的に、顔面の両端を決定する処理を行う（ステップＳ０２１６）。
【００５０】
一方、図７の顔中心検出処理（ステップＳ１２２）は、例えば、図１２に示す構成を有する。
【００５１】
まず、ＣＰＵ２４は、任意の閾値を基準として、ＲＡＭ２５に格納されている顔画像を構成する各画素の階調を二値化する（ステップＳ１２２１）。閾値としては、例えば、顔画像を形成する全画素の平均値を使用できる。これにより、例えば、図１８（ａ）に例示するようなドライバーの二値化画像が生成される。
【００５２】
続いて、ＣＰＵ２４は、二値化画像に、白黒白画像生成処理を実行する（ステップＳ１２２２）。
この白黒白画像生成処理において、ＣＰＵ２４は、まず、二値画像のうち、目の存在が予定されている領域を定義する領域指定データ（図３（ｅ）に示すｙ１，ｙ２）をＲＯＭ２３から読み出し、二値化画像の目領域を図１８（ｂ）に示すように切り出す。
【００５３】
続いて、切り出した二値化画像について、白黒白横エッジを検出する。
ここで、白黒白エッジとは、単に白と黒の境界となるエッジではなく、白から黒へ、さらに黒から白へと変化し、所定の幅を有するエッジのことである。このうち、白黒白横エッジとは、横方向にのびる境界の意味であり、このうち、白黒白縦エッジとは、縦方向にのびる境界の意味である。
【００５４】
ＣＰＵ２４は、まず、白黒白横エッジ検出処理を開始し、図３（ｆ）に示す設定に従って、目領域画像中で、サングラスのサイズに従って縦方向に６〜１２画素（通常の目は、２〜４画素）の幅の黒い画素列を検出する。
【００５５】
白黒白横エッジを検出する手法自体は任意である。例えば、座標値ｙを順次更新しつつ、画素（ｘ、ｙ）の輝度を判別し、輝度が白から黒に変化すると、黒の連続する数をカウントし、黒が白に変わった時点で黒の連続数が６〜１２であるか否かを判別し、連続数が６〜１２であれば、その画素を維持し、それ以外であれば、それらの画素を白に変換するという手法を採用できる。
【００５６】
次に、白黒白横エッジ検出処理と同様の動作により白黒白縦エッジを検出する。白黒白縦エッジ検出処理は、処理済みの目領域の画像から、図３（ｆ）の設定に従って、横方向に１０〜１８（通常の目は６〜１０）画素の幅の黒の画素列を検出する処理である。
【００５７】
このような構成とすることにより、例えば、抽出した目領域の画像が図１８（ｂ）に例示する画像であった場合に、連続数がｘ方向に１〜９及び１９以上、ｙ方向に１〜５及び１３以上連続する黒画素が、白画素に変換される。これにより、サングラスのレンズを構成しない、横方向に短い黒画素列や、長すぎる黒画素列が図１８（ｃ）に示すように除去される。
【００５８】
次に、ＣＰＵ２４は、図１２のステップＳ１２２３で、サングラスの有無を判別する処理を行う。ＣＰＵ２４は、処理後の目領域の画像に、縦方向に６〜１２画素で、横方向に１０〜１８画素の黒領域が２つ得られている場合には、サングラスが検出されたと判別する。
【００５９】
サングラスがあると判別した場合（ステップＳ１２２４；Ｙｅｓ）、予め用意されている標準的な目領域の画像、例えば、図１８（ｄ）に示す処理後の目領域の画像を、図１８（ｅ）に示す元の二値画像から目領域を除去した画像と合成して、図１８（ｆ）に示す中心位置測定用の顔画像を生成する（ステップＳ１２２５）。なお、サングラスの位置を判別して、合成する目の位置を調整してもよい。
【００６０】
続いて、顔画像を用いて、顔の中心位置（顔の位置、重心位置）を求める（ステップＳ１２２６）。中心の測定手法自体は任意であるが、例えば、次式から顔の中心（重心）位置の座標を求めることができる。
顔の中心のｘ座標＝Σｘｉ／ｎ     ｘｉ：ｉ番目の黒画素のｘ座標の値
顔の中心のｙ座標＝Σｙｉ／ｎ     ｙｉ：ｉ番目の黒画素のｙ座標の値
ｉ：１〜ｎ  ｎは黒画素の総数
【００６１】
なお、重心を求める範囲を、顔の両側端とその時点で求められている顔の上端位置と下端位置の間等に限定してもよい。或いは、顔の主要パーツの（眉、目、鼻、口）の画像のみから重心を求めてもよい。
【００６２】
なお、ステップＳ１２２４でサングラスが検出されなかった場合（ステップＳ１２２４；Ｎｏ）には、ステップＳ１２２５の合成処理をスキップする。
【００６３】
以上で顔の中心位置が求められ、図７の顔中心検出処理（ステップＳ１２２）が終了する。即ち、この処理により、顔の水平方向の位置と顔の中心位置とが求められ、図４の基本処理（ステップＳ１２，Ｓ２２，．．．Ｓｎ２）が終了する。
その後、処理は図４の後処理（ステップＳ１３、Ｓ２３，．．．，Ｓｎ３）に進む。
後処理（ステップＳ１３、Ｓ２３，．．．，Ｓｎ３）は、直前の基本処理（ステップＳ１２、Ｓ２２，．．．，Ｓｎ２）で求めた両端位置と顔の中心位置に基づいて、顔の向きをとその信頼度を求める処理である。
【００６４】
この後処理（ステップＳ１３、Ｓ２３，．．．，Ｓｎ３は、図８に示すように、直前の基本処理（ステップＳ１２、Ｓ２２，．．．，Ｓｎ２）で求めた両端位置と顔の中心位置に基づいて顔の向きの角度（向き；横向き角度）を計算する処理（ステップＳ１３１）と、その信頼度を求める処理（ステップＳ１３２）と、顔向き角と信頼度とを対応付けて出力する処理（ステップＳ１３３）を備える。
【００６５】
顔向き角度計算処理（ステップＳ１３１）は、直前の基本処理（ステップＳ１２、Ｓ２２，．．．，Ｓｎ２）で求めた顔の両端位置と、直前の基本処理（ステップＳ１２、Ｓ２２，．．．，Ｓｎ２）で求めた顔の中心位置とに基づいて、顔の向き（角度）を判別する。なお、顔の向きを求める計算手法自体は従来の既知の任意の手法を使用することができる。例えば、顔の両端位置の中央に顔の顔の中心位置が存在すれば、顔は正面を向いていると判別できる（カメラ１０を向いた方向）にある。また、顔の中央位置が顔の両端位置の中央よりも左に存在していれば、カメラ１０から見て左を向いていると判別でき、顔の中央位置が顔の両端位置の中央よりも右に存在していれば、カメラ１０から見て右を向いていると判別できる。
【００６６】
続いて、ＣＰＵ２４は、計算した顔向き角の信頼度を求める信頼度計算処理を実行する（ステップＳ１３２）。
信頼度計算処理（ステップＳ１３２）は、図１３に示すように、顔両端位置ずれ信頼度計算処理（ステップＳ１３２１）と、ヒストグラム信頼度計算処理（ステップＳ１３２２）と、重心バランス信頼度計算処理（ステップＳ１３２３）と、輝度バランス信頼度計算処理（ステップＳ１３２４）とを備える。
【００６７】
顔両端位置ずれ信頼度計算処理（ステップＳ１３２１）の詳細を、図１４に示す。
図示するように、ＣＰＵ２４は、信頼度＝｛ ｔ1−｜Ｒ１−Ｒ２｜）＋（ｔ1−｜Ｌ１−Ｌ２｜）＋（ｔ1−｜Ｗ１−Ｗ２｜）｝／３  を計算する（ステップＳ１３２１１）。
なお、 （ｔ1−｜Ｒ１−Ｒ２｜）、（ｔ1−｜Ｌ１−Ｌ２｜）、（ｔ1−｜Ｗ１−Ｗ２｜）｝の最小値を、それぞれ、０とする。
【００６８】
ｔ1は係数であり、
Ｒ１は、今回求められた顔の右端の位置、Ｒ２は顔の右端の基準値（初期値は初期処理の顔位置判別処理（ステップＳ０２）で求められた値）、
Ｌ１は、今回求められた顔の左端の位置、Ｌ２は顔の左端の基準値（初期値は初期処理の顔位置判別処理（ステップＳ０２）で求められた値）、
Ｗ１は、今回求められた顔の幅＝｜Ｒ１−Ｌ１｜、Ｗ２は、顔の幅の基準値（初期値は初期処理の顔位置判別処理（ステップＳ０２）で求められた右端と左端の距離値）、である。
【００６９】
この信頼度の技術的意味を図１９（ａ）に模式的に示す。
今回得られた顔画像の両端位置（Ｒ１，Ｌ１）及び幅（Ｗ１）が基準となる顔画像（通常は、１つ前の処理で得られた顔画像）の両端位置（Ｒ２，Ｌ２）や幅（Ｗ２）と相対的に近い値ならば、高い評価を、相対的に遠い値ならば、低い評価を与えるものである。繰り返し処理の実行間隔が短いことから、これらの値に通常大きな変化は無いことを前提とする評価値である。
【００７０】
ＣＰＵ２４は、評価値が所定の閾値以上か否かを判別し（ステップＳ１３２１２）、評価値が基準値以上である場合（ステップＳ１３２１２；Ｙｅｓ）、即ち、今回の位置検出が比較的正確に行われていると評価できる場合には、図１９（ｂ）に模式的に示すように、今回取得したＲ１，Ｌ２，Ｗ１を次回評価用の基準値Ｒ２，Ｌ２，Ｗ２として記憶する（ステップＳ１３２１３）。一方、評価値が閾値未満の場合（ステップＳ１３２１２；Ｎｏ）、図１９（ｃ）に示すように基準値Ｒ２，Ｌ２，Ｗ２を変更しない（ステップＳ１３２１４）。
【００７１】
次に、ヒストグラム信頼度計算処理（ステップＳ１３２２）の詳細を、図１５を参照して説明する。
図示するように、ＣＰＵ２４は、信頼度＝｛ Ｐ１／｜Ｐ１＋Ｐ２＋Ｐ３＋．．．Ｐｍ）｝・ｔ２  を計算する（ステップ１３２２１）。
【００７２】
ｔ２は係数であり、
Ｐ１〜Ｐｍは、ヒストグラム値のうちの閾値以上のものであり、Ｐ１をトップとする降順である。ｍは４〜７程度が望ましい。なお、ヒストグラム値の上位ｍ個（この場合、ｍは固定数）を選択するようにしてもよい。
【００７３】
この信頼度の技術的意味を図２０（ａ）〜（ｄ）に模式的に示す。図２０（ａ）と図２０（ｂ）とは、それぞれ、顔の左端と右端を正確に検出できている場合の検出された顔端とヒストグラム分布の例を示す図、図２０（ｃ）と図２０（ｄ）とは、それぞれ、顔の左端と右端を正確に検出できていない場合の検出された顔端とヒストグラム分布の例を示す図である。なお、ヒストグラムはピーク５つを抽出している。
【００７４】
図２０（ａ）、（ｂ）に示すように、顔画素の左端と右端を決定したときのピーク値が他のピーク値に比べてきわめて大きいものであった場合、その左端又は右端は比較的信頼性が高い。これに対し、図２０（ｃ）、（ｄ）に示すように、明確なピーク値が得られずに、顔の位置を決定した場合には、その信頼性は低い。
【００７５】
次に、重心バランス信頼度計算処理（ステップＳ１３２３）の詳細を、図１６に示す。
まず、ＣＰＵ２４は、図２１に模式的に示すように、重心検出領域を顔上端（ＦＵ）と顔中央（ＦＣ）からなる上部領域と、顔中央（ＦＣ）と顔下端（ＦＤ）からなる下部領域に分割する（ステップＳ１３２３１）。
【００７６】
次に、ＣＰＵ２４は、直前の基本処理の顔中心検出処理で求めた重心位置（ＧＬ）を読み出し、上部領域における重心位置（ＵＧ）と下部領域による重心位置（ＤＧ）とを、計算する（ステップＳ１３２３２）。
【００７７】
次に、ＣＰＵ２４は、重心バランス信頼度＝｛ｔ３−（｜ＧＬ−ＵＧ｜＋｜ＧＬ−ＤＧ｜）｝×ｔ４  を計算する（ステップＳ１３２３３）。
なお、計算結果が０以下はすべて０とする。
ここで、
ｔ３：係数，ｔ４：係数
【００７８】
この信頼度の技術的意味を図２１（ａ）に模式的に示す。
人間の顔は、図２１（ａ）に示すように、左右対称であり、通常、基本処理で求めた中心検出領域の重心位置（ＧＬ）と、上部領域の画像の重心位置（ＵＧ）と、下部領域の画像の重心位置（ＤＧ）とは、ｘ軸方向に関しては一致する。
【００７９】
しかし、図２１（ｂ）に例示するように、眼帯の装着等により、顔のバランスが崩れている場合、各重心ＧＬ，ＵＧ、ＤＧのＸ座標値は、互いにずれてしまう。そこで、このずれが大きい場合には、顔向き角の信頼度が低いと判断するものである。
【００８０】
次に、輝度バランス信頼度計算処理（ステップＳ１３２４）の詳細を、図１７に示す。
まず、ＣＰＵ２４は、図２２（ａ）に模式的に示すように、顔の中心検出領域を顔左上端（ＵＬ）と、顔右上端（ＵＲ）と、顔左下端（ＤＬ）と、顔右下端（ＤＲ）に分割する（ステップＳ１３２４１）。
【００８１】
次に、ＣＰＵ２４は、各領域（ＵＬ，ＵＲ，ＤＬ，ＤＲ）にて平均輝度（ＩＵＬ，ＩＵＲ，ＩＤＬ，ＩＤＲ）を算出する（ステップＳ１３２４２）。
【００８２】
次に、ＣＰＵ２４は、次式に従って、輝度バランス信頼度を計算する（ステップＳ１３２４３）。
輝度バランス信頼度
＝｛ｔ5−（｜ＩＵＬ−ＩＵＲ｜＋｜ＩＵＬ−ＩＤＬ｜
＋｜ＩＵＬ−ＩＤＲ｜＋｜ＩＵＲ−ＩＤＬ｜
＋｜ＩＵＲ−ＩＤＲ｜＋｜ＩＤＬ−ＩＤＲ｜｝×ｔ６
ｔ5：係数，ｔ6：係数
計算結果が０以下はすべて０とする。
【００８３】
この信頼度の技術的意味を図２２（ａ）に模式的に示す。
一般的に、人間の顔は、図２２（ａ）に示すように、左右対称であり、左右対称に照明される。しかし、顔の向きや光源の位置によっては、図２２（ｂ）や２２（ｃ）に示すように、偏って照明され、顔上に位部分と明るい部分とが発生してしまう。
【００８４】
このうち、図２２（ｃ）に示すような顔の左右方向の明るさが異なると、顔の左右方向の位置や向きの判別に悪影響を与える。そこで、上記評価式は、左右方向のバランスが悪くなるに従って評価が下がるように構成されている。
【００８５】
以上説明したように、評価処理により、その直前の基本処理（ステップＳ１〜Ｓｎ２）で求められた顔の向きの信頼度が求められる。
【００８６】
次に、ＣＰＵ２４は、ステップＳ１３１で求めた求めた顔向き角度とステップＳ１３２で求めた信頼度とを対応付けて出力する（ステップＳ１３３）。
【００８７】
以上で、第１処理〜第ｎ処理のそれぞれで実行される前処理、基本処理、後処理が終了し、顔の左右方向の角度とその信頼度とが対応付けて出力される。
【００８８】
続いて、ＣＰＵ２４は、分割処理（ステップＳ１４〜Ｓｎ４）を開始する。
この分割処理（ステップＳ１４〜Ｓｎ４）は、全体としては、図９に示すように、画像キャプチャ処理（ステップＳ１４１））、座標変換処理（ステップＳ１４２）、ソーベルフィルタ処理（ステップＳ１４３）、顔上下位置検出処理（ステップＳ１４４）、とから構成される。画像キャプチャ処理（ステップＳ１４１）、座標変換処理（ステップＳ１４２）、ソーベルフィルタ処理（ステップＳ１４３）は前述の前処理（ステップＳ０１）における処理（ステップＳ０１１〜Ｓ０１３）と同一である。ただし、ここでの、ソーベルフィルタ処理は、横エッジ検出用のソーベルフィルタ処理のみで十分である。
【００８９】
また、顔上下位置検出処理（ステップＳ１４４）は、図６に示した、顔上下位置検出処理（ステップＳ０２２）と同様であり、第１分割処理（ステップＳＳ１４内の画像キャプチャ処理（ステップＳ１４１）で取得した顔画像に基づいて上下位置を判別する。
【００９０】
なお、具体的な処理を実行する際には、ＣＰＵ２４は、分割処理（ステップＳ１４〜Ｓｎ４）を開始する際に、種々のポインタやレジスタの値をＲＡＭ２５に待避し、ＲＡＭ２５に待避しておいた先の分割処理の処理結果をリストア（再設定）する。続いて、ＣＰＵ２４は、リストアしたポインタ及びレジスタに従って動作を継続し、ＲＡＭ２５に格納されているデータを用いて、顔の上下位置を判別する処理の一部を行って、処理が終了すると、ポインタやレジスタの値をＲＡＭ２５にセーブし、ＲＡＭ２５にセーブしておいた通常の処理のポインタ値やレジスタ値（分割処理を開始する直前の値）リストアして、処理を継続する。
【００９１】
なお、各分割処理（ステップＳ１４〜Ｓｎ４）は、一定量の処理を実行した段階で切り替えても、一定時間経過した段階で切り替えてもよい。
【００９２】
以上説明したように、この顔向き検出装置によれば、顔の位置や向きの判別値とその信頼度とを求めることができる。
【００９３】
この顔向き判別の出力信号の利用形態は任意であるが、例えば、顔向き検出装置からの出力に基づいて、ドライバーに脇見運転の警告を放音することができる。このとき、信頼度に応じて報知音を更新することができる。
【００９４】
なお、この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
【００９５】
上記実施の形態においては、４種類の信頼値を求めたが、これらの平均を求めたり、最上位点と最下位点の信頼度を除いた残りの２つの信頼度を出力対象としたり、これらの平均値を出力する等してもよい。
【００９６】
また、図１３のステップＳ１３２１の顔両端位置ずれ信頼度計算処理において、図１４のステップＳ１３２１１の信頼度の計算式は適宜変更・修正可能である。例えば、顔の左右端位置の基準位置とのずれを用いて、信頼度を計算したが、検出した顔の中心（重心）と基準中心位置との差異や、顔の中心及び両端位置と各基準位置とのずれに基づいて、信頼度を計算するなど、左右方向の位置ずれを検出し、そのずれ量から信頼度を検出できるならば、検出及び比較の対象、演算式は任意である。また、上下方向（上端位置、下端位置、中央）についても、検出位置と基準位置とのずれを検出し、信頼度を検出（判定）しても良い。さらに、顔画像の領域を複数に分割し、それぞれについてずれ量を求めて、信頼度を求める等してもよい。
【００９７】
同様に、図１３のステップＳ１３２２のヒストグラム信頼度計算処理において、図１５のステップＳ１３２２１の計算式は適宜変更・修正可能である。例えば、ヒストグラムの第１と第２のピークの差（Ｐ１−Ｐ２）の大きさや全体に対する比に基づいて、信頼度を計算してもよい。その他、顔の側端の検出に使用したヒストグラムのピークの他のピークに対する優位度から信頼度を測定できるならば、その手法は任意である。また、顔の領域を複数に分割し、領域単位でヒストグラムを求めて信頼度を求めたり、求めた複数の信頼度を１つの信頼度に統合してもよい。
【００９８】
また、図１３のステップＳ１３２３の重心バランス信頼度計算処理において、図１６のステップＳ１３２３１での領域の分割数分割方法や、ステップＳ１３２３３の計算式は適宜変更・修正可能である。例えば、信頼度を｜ＵＧ−ＤＧ｜の関数としてもよい。或いは、顔画像を上下５つの領域に分割し、それぞれについて重心位置を求め、５つの領域間の重心のずれ及び／又は全体の重心との差を求め、これらのずれから、信頼度を計算する等してもよい。
【００９９】
また、図１３のステップＳ１３２４の輝度バランス信頼度計算処理において、図１７のステップＳ１３２４１での領域の分割数（縦方向の分割数及び横方向の分割数）や、ステップＳ１３２４３の計算式は適宜変更・修正可能である。例えば、顔画像を上下３つ、左右４つの領域に分割し、それぞれについて輝度を求め、１２個の領域間の輝度ばらつきから、信頼度を計算する等してもよい。また、各分割領域の平均輝度と全体の平均輝度との差やバランスに基づいて信頼度を判別するようにしてもよい。
【０１００】
さらに、上記４種類の信頼度以外の信頼度を導入してもよい。例えば、ヒストグラム分布の時間軸上の変化、重心位置の時間軸上の変化、輝度の時間軸上の変化が急激すぎる場合に信頼度を低くする等の信頼度を設定してもよい。
【０１０１】
また、上記実施の形態では、４つの信頼度を、ステップＳ１３１で判別した顔の向き角度（横向き角度）の信頼度として利用した。この発明は、これに限定されず、上記４つの信頼度及び他の任意の信頼度を、顔の位置の信頼度（例えば、ステップＳ１２１で判別した顔の両端位置の信頼度、ステップＳ１２２で判別した顔の中央位置の信頼度、ステップＳ１４４で判別した顔の上下位置の信頼度）、顔の存在の有無（顔の両端・中央が検出されれば存在、顔の両端・中央が検出されなければ不存在）の信頼度などとして使用してもよい。
【０１０２】
例えば、上記実施の形態では、目領域を画像の特定の位置に固定したが、目領域を顔の画像のサイズや位置に応じて、目領域の位置を適宜設定しても良い。この場合、例えば、横エッジソーベルフィルタを適用し、顔の目や眉の位置を判別し、そのエリアを含む所定サイズのエリアを目領域とすればよい。
【０１０３】
また、上記実施の形態では、目と眉（又は目）と、鼻、口の階調画像から顔の中心（重心）位置を求めたが、中心位置の判別に使用する顔の部分（パーツ）は任意である。例えば、耳や、ほお、頭髪などを加えて、中心を求めても良い。
【０１０４】
また、上記実施の形態では、サングラスが検出された場合に、目の画像を合成し、合成画像に基づいて顔の中心地位を求めたが、重心を求める手法は任意である。例えば、サングラスが検出された場合には、「目と眉」の画像を合成して中心を求めたり、サングラスのレンズの画像を構成する各画素に０．３〜０．５倍程度の重みを付けた上で、各部（レンズ、目、鼻、口．．．）の重心を求めて、顔画像の重心をもとめてもよい。目領域を除いた部分の顔画像から得られた重心に対し、目の画像が与える影響を予め考慮したオフセット値を加算するなどして重心を求めてもよい。
【０１０５】
上記実施の形態では、この発明を顔の中心位置を検出するために、サングラスの有無を検出する実施形態を示したが、サングラスを検出した後で、その結果をどのような処理に使用するかは任意である。例えば、サングラスを検出し、それにより、それにより照明の強度を変更したり、画面のバックライトの輝度を調整する等の場面に使用することも可能である。
【０１０６】
図１，図２を参照して説明したシステム構成も一例であり、任意に変更可能である。例えば、カメラ１０を遠赤外線等で画像をとらえる赤外線カメラを使用すれば、人種や肌や髪の色に影響されず比較的正確に顔の各パーツの画像を取得することが可能となる。
【０１０７】
また、上述のフローチャートも同様の機能が実現できるならば、任意に変更可能である。
例えば、所定回数以上にサングラスの画像が得られたときに、サングラス対応処理を行うようにしてもよい。
【０１０８】
また、本発明において、白黒白エッジは階調の差異を表現するためのものであり、色としての白や黒に限定されるものではなく、色相はなんでもよい。カラー画像に関しては、各画素の色相を考慮してサングラスの有無を判別してもよい。
【０１０９】
上記各実施の形態においては、ドライバーを撮影してサングラスを検出する場合にこの発明を適用したが、この発明はこれに限定されず、任意の場面で人間、動物、人形、ロボット等がサングラスをかけているか否かを判別する処理に広く適用可能である。
【０１１０】
本発明は、カメラで画像を取得しながら処理する場合に限定されず、例えば、他所で撮影した１又は複数の顔画像のそれぞれについて、サングラスの有無、顔の中心の位置、顔の向きなどを判別する為に使用可能である。
【０１１１】
また、コンピュータに上述の処理を実行させるためのコンピュータプログラムを、任意の記録媒体やネットワークを介してＲＯＭに格納するようにしてもよい。
【符号の説明】
【０１１２】
１０  カメラ
２２  画像メモリ  （顔画像記憶手段）
２３  ＲＯＭ  （顔位置判別手段、顔向き判別手段、信頼度判別手段、出力手段）
２４  ＣＰＵ  （顔位置判別手段、顔向き判別手段、信頼度判別手段、出力手段）
【図１】
2011210280.tif 000003
【図２】
2011210280.tif 000004
【図３】
2011210280.tif 000005
【図４】
2011210280.tif 000006
【図５】
2011210280.tif 000007
【図６】
2011210280.tif 000008
【図７】
2011210280.tif 000009
【図８】
2011210280.tif 000010
【図９】
2011210280.tif 000011
【図１０】
2011210280.tif 000012
【図１１】
2011210280.tif 000013
【図１２】
2011210280.tif 000014
【図１３】
2011210280.tif 000015
【図１４】
2011210280.tif 000016
【図１５】
2011210280.tif 000017
【図１６】
2011210280.tif 000018
【図１７】
2011210280.tif 000019
【図１８】
2011210280.tif 000020
【図１９】
2011210280.tif 000021
【図２０】
2011210280.tif 000022
【図２１】
2011210280.tif 000023
【図２２】
2011210280.tif 000024