(57)【特許請求の範囲】
【請求項１】
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別手段と、
前記顔画像記憶手段に記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別手段と、
前記顔画像記憶手段に記憶された前記顔画像の顔が横向きか否かを判別する横向き判別手段と、
前記眼鏡装着判別手段が前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別手段が前記顔画像の顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出手段と、
を備えることを特徴とする顔中心位置検出装置。
【請求項２】
前記横向き判別手段は、前記顔画像中に眼鏡のツルの画像が含まれているか否かを判別する手段と、該手段によって顔画像中にツルの画像が含まれていると判別された場合に、前記顔が横向きであると判別する手段と、
を備えることを特徴とする請求項１に記載の顔中心位置検出装置。
【請求項３】
前記中心位置検出手段は、前記顔画像のうち、眼鏡より下部の領域の画像であって且つ前記左右方向の輪郭位置の間に位置する領域の画像に基づいて、顔の左右方向の中心位置を検出する、
ことを特徴とする請求項１に記載の顔中心位置検出装置。
【請求項４】
前記中心位置検出手段は、顔の上下方向の中心位置を検出する上下方向中心位置検出手段、をさらに備え、
前記上下方向中心位置検出手段は、
標準的な目領域の画像を記憶する眼領域画像記憶手段と、
前記顔画像の眼領域に、前記眼領域画像記憶手段に記憶された眼領域の画像を合成する合成手段と、
前記合成手段で合成された画像に基づいて、上下方向の顔の中心位置を検出する手段と、を備える、
ことを特徴とする請求項１に記載の顔中心位置検出装置。
【請求項５】
顔を撮影して得られた顔画像を記憶する顔画像記憶ステップと、
前記顔画像記憶ステップで記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別ステップと、
前記顔画像記憶ステップで記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別ステップと、
前記顔画像記憶ステップで記憶された前記顔画像の顔が横向きか否かを判別する横向き判別ステップと、
前記眼鏡装着判別ステップで前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別ステップで前記顔画像の顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出ステップと、
を備えることを特徴とする顔中心位置検出方法。
【請求項６】
コンピュータに、
顔を撮影して得られた顔画像を記憶する顔画像記憶手順と、
前記顔画像記憶手順で記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別手順と、
前記顔画像記憶手順で記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別手順と、
前記顔画像記憶手順で記憶された前記顔画像の顔が横向きか否かを判別する横向き判別手順と、
前記眼鏡装着判別手順で前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別手順で前記顔画像の顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出手順と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、眼鏡をかけた人の顔画像から顔の中心位置を検出することが可能な顔中心位置検出装置、顔中心位置検出方法、及び、プログラムに関する。
【背景技術】
【０００２】
顔画像に基づいて人を識別したり、表情を読み取ったりするためには、顔の位置や顔の中心位置、向きなどを検出することが重要となる。
【０００３】
例えば、特許文献１には、人の顔を撮影した画像を処理し、人の動きや背景に影響されること無く高精度に顔の位置を検出する手法が開示されている。
【０００４】
また、特許文献２には、ドライバーが存在可能な領域を撮影して得られた画像を取り込み、取り込んだ画像から横エッジ画像（顔の両側端）を検出し、検出した横エッジ画像に基づいて、複数の顔中心候補線を設定すると共に各顔中心候補線各々に対して、該顔中心候補線が顔の中心線である確からしさを表す値に基づいて、顔の有無の判定精度を向上する技術が開示されている。
【特許文献１】特開２００４−３１０３９６号公報
【特許文献２】特開２００５−０１１０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ドライバーは、車両の運転中、基本的には顔を前方に向けて運転している。しかし、あるタイミングでは、ドライバーは、隣の席に座る同乗者と会話中で、顔を横に向けていることもある。また、ドライバーの顔や容姿は、多種多様であり、顔の輪郭線、髪型、眼鏡等の着用、等といった様々な点で異なる。そのため、例えば、眼鏡を着用したドライバーが、横方向に顔を向けていたときにカメラが捉えた画像から、顔の中心位置を検出しようとすると、検出を誤ってしまうこともある。なぜならば、眼鏡を着用したドライバーが横方向に顔を向けていた場合、眼鏡の部分を含めて画像処理することになり、顔の中心位置を正確に検出できない場合があるからである。
この顔の中心位置の検出に誤りが生ずると、人を識別したり、表情を読み取るといった以後の処理を正確に行うことができない。
【０００６】
本発明は上記の問題点に鑑みてなされたものであり、眼鏡を着用したドライバーが、横方向に顔を向けたときでも、顔の中心位置を検出することを可能とする顔中心位置検出装置、顔中心位置検出方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明の顔位置検出装置は、顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、前記顔画像記憶手段に記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別手段と、前記顔画像記憶手段に記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別手段と、前記顔画像記憶手段に記憶された前記顔画像の顔が横向きか否かを判別する横向き判別手段と、前記眼鏡装着判別手段が前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別手段が前記顔画像の顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出手段と、を備える、ことを特徴とする。
【０００８】
また、前記顔位置検出装置において、前記横向き判別手段は、前記顔画像中に眼鏡のツルの画像が含まれているか否かを判別する手段と、該手段によって顔画像中にツルの画像が含まれていると判別された場合に、前記顔が横向きであると判別する手段と、を備えるようにしてもよい。
【０００９】
さらに、前記顔位置検出装置において、前記中心位置検出手段は、前記顔画像のうち、眼鏡より下部の領域の画像であって且つ前記左右方向の輪郭位置の間に位置する領域の画像に基づいて、顔の左右方向の中心位置を検出するようにしてもよい。
【００１０】
また、前記顔位置検出装置において、前記中心位置検出手段は、顔の上下方向の中心位置を検出する上下方向中心位置検出手段、をさらに備え、前記上下方向中心位置検出手段は、標準的な目領域の画像を記憶する眼領域画像記憶手段と、前記顔画像の眼領域に、前記眼領域画像記憶手段に記憶された眼領域の画像を合成する合成手段と、前記合成手段で合成された画像に基づいて、上下方向の顔の中心位置を検出する手段と、を備えるようにしてもよい。
【００１１】
また、この発明の顔位置検出方法は、顔を撮影して得られた顔画像を記憶する顔画像記憶ステップと、前記顔画像記憶ステップで記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別ステップと、前記顔画像記憶ステップで記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別ステップと、前記顔画像記憶ステップで記憶された前記顔画像の顔が横向きか否かを判別する横向き判別ステップと、前記眼鏡装着判別ステップで前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別ステップで前記顔画像の顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出ステップと、を備える、ことを特徴とする。
【００１２】
また、この発明のプログラムは、コンピュータに、顔を撮影して得られた顔画像を記憶する顔画像記憶手順と、前記顔画像記憶手順で記憶された顔画像を処理して、顔の左右方向の輪郭位置を求める輪郭判別手順と、前記顔画像記憶手順で記憶された前記顔画像の顔に眼鏡が装着されているか否かを判別する眼鏡装着判別手順と、前記顔画像記憶手順で記憶された前記顔画像の顔が横向きか否かを判別する横向き判別手順と、前記眼鏡装着判別手順で前記顔画像の顔に眼鏡が装着されていると判別し、前記横向き判別手順で前記顔が横向きであると判別した場合に、前記顔画像記憶手段に記憶されている顔画像のうち、顔の下部領域で且つ前記輪郭判別手段によって求めた輪郭位置の間の領域の画像に基づいて、顔の中心位置を検出する中心位置検出手順と、を実行させる。
【発明の効果】
【００１３】
この発明によれば、眼鏡を着用したドライバーが、横方向に顔を向けたときでも、顔の中心位置を正確に検出することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態に係る顔中心位置検出装置について説明する。
【００１５】
本実施形態の顔中心位置検出装置は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０と、ドライバーの顔を照明する照明光源１２と、ドライバーの顔中心位置を検出するコンピュータ１４と、コンピュータ１４に接続された表示装置１６とを備える。
【００１６】
カメラ１０は例えばＣＣＤカメラ等から構成され、ドライバーの顔の階調画像を取得する。カメラ１０によって生成される顔画像は、ドライバーの顔だけでなく、その背景なども含まれている。
【００１７】
表示装置１６は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、カメラ１０で撮影された顔画像から生成された二値化画像などを表示する。
【００１８】
コンピュータ１４は、カメラ１０により取得された顔画像を処理して顔の左右両端位置、上下位置を検出し、この検出した左右両端位置、上下位置に基づいて、顔下部領域における顔の仮の中心位置を求めてから、顔の中心位置を求める装置である。コンピュータ１４は、図２に示すように、Ａ／Ｄ変換器２１と、画像メモリ２２と、ＲＯＭ２３と、ＣＰＵ２４と、ＲＡＭ２５と、表示制御装置２７と、光源制御装置２８と、を備える。
【００１９】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを記憶する。
【００２０】
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムを記憶する。また、ＲＯＭ２３は、後述する画像処理を実行するための様々な固定データを記憶する。
【００２１】
ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、カメラ１０により取得された顔画像を処理して顔の両端位置、上下位置を検出し、この検出した両端位置、上下位置に基づいて、顔下部領域における顔の仮の中心位置を求めてから、顔の中心位置を求める。
【００２２】
ＲＡＭ２５は、ＣＰＵ２４のワークエリアとして機能する。
表示制御装置２７は、ＣＰＵ２４の制御下に、表示装置１６を制御する。
光源制御装置２８は、照明光源１２の点灯・消灯を制御する。
【００２３】
次に、ＲＯＭ２３に格納される固定データの例を図３を参照して説明する。まず、ＲＯＭ２３は、図３（ａ）、（ｂ）に示すような、縦エッジ検出用と横エッジ検出用ソーベルフィルタのオペレータを格納する。図３（ａ）、（ｂ）に示す、縦エッジ検出用ソーベルフィルタと横エッジ検出用のソーベルフィルタとは、それぞれ、図３（ｃ）、（ｄ）に示すような縦方向の濃淡差、横方向の濃淡差を強調するためのオペレータである。
【００２４】
また、ＲＯＭ２３は、図３（ｅ）に示すように、ＲＡＭ２５に格納される顔画像のうち、目や眉の画像が存在すると想定される領域を特定するデータ、及び、目や眉の画像が存在すると想定される領域（もしくは眼鏡の画像が存在する領域）より下部の領域である顔下部領域Ａを特定するデータが格納されている。
また、ＲＯＭ２３は、図３（ｆ）に示すように、眼鏡のツルを検出するために、眼鏡のツルの縦のサイズを格納する。
【００２５】
次に、上記構成を有する顔中心位置検出装置の動作を説明する。
電源が投入されると、コンピュータ１４内のＣＰＵ２４は、図４に示す処理を繰り返して実行する。
【００２６】
即ち、ＣＰＵ２４は、前処理（ステップＳ０１）と顔位置判別（検出）処理（ステップＳ０２）、顔中心位置検出処理（ステップＳ０３）とから構成される処理を繰り返して実行する。
【００２７】
図４に示す処理を構成する前処理（ステップＳ０１）と顔位置判別処理（ステップＳ０２）とは、ドライバーの左右方向及び上下方向の顔の位置（座標）を求めるための処理である。
【００２８】
顔中心位置検出処理処（ステップＳ０３）は、ドライバーの顔の中心位置を検出するための処理である。
【００２９】
前処理（ステップＳ０１）は、図５に示すように、キャプチャ処理（ステップＳ０１１）と、座標変換処理（ステップＳ０１２）と、ソーベルフィルタ処理（ステップＳ０１３）とから構成される。
【００３０】
キャプチャ処理（ステップＳ０１１）は、カメラ１０の撮影したドライバーの１フレーム分の顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納する処理である。
【００３１】
座標変換処理（ステップＳ０１２）は、処理可能な程度に画素を間引く処理である。
【００３２】
ソーベルフィルタ処理（ステップＳ０１３）は、ＲＯＭ２３に格納されている縦エッジ検出用ソーベルフィルタ（図３（ａ））を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調する処理を行い、また、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調する処理を行う処理である。
【００３３】
図４の顔位置判別処理（ステップＳ０２）は、前処理済みの顔画像を用いて顔の左右両端位置と上下位置を検出する処理であり、図６に示すように、顔両端検出処理（ステップＳ０２１）と顔上下位置検出処理（ステップＳ０２２）とから構成される。
【００３４】
顔両端検出処理（ステップＳ０２１）は、顔画像を縦エッジ検出用のオペレータで操作した顔画像について、顔の両端を構成するラインを特定する処理であり、既知の任意の手法を採用することができる。
【００３５】
例えば、図７に示すように、顔両端検出用のヒストグラム作成処理を行う（ステップＳ０２１１）。続いて、このヒストグラムのピーク値の高いものを所定数抽出して、これをソートし（ステップＳ０２１２）、ヒストグラム値に基づく、端点の抽出を行う（ステップＳ０２１３）。例えば、ヒストグラム値の上位１又は２つが他と比較して極端に値が大きい場合には、その点を端点とする。
【００３６】
次に、端点が２つ（両端）抽出されたか否かを判別する（ステップＳ０２１４）。２つ抽出されていれば（ステップＳ０２１４；Ｙｅｓ）、抽出した２点を顔の両端（ｘ座標）として決定する処理を行う（ステップＳ０２１６）。一方、端点が２つ抽出できていなければ（ステップＳ０２１４；Ｎｏ）、２点の距離が、人の顔幅としてもっともらしい間隔を有する組み合わせを抽出することにより、端点を決定し（ステップＳ０２１５）、最終的に、顔面の両端（ｘ座標）を決定する処理を行う（ステップＳ０２１６）。
【００３７】
また、特許文献１に開示されているように、撮影画像の時間微分を算出し、さらに、この画素値時間微分画像の画素値を縦方向に投影してヒストグラムを作成し、エッジ部抽出画像のヒストグラムと画素値時間微分画像のヒストグラムとを合計して、ヒストグラムのピーク値の高いものを抽出すると共に人の顔幅としてもっともらしい点を決定し、顔端位置を検出するようにしてもよい。
【００３８】
次に、図６のステップＳ０２２の顔上下位置検出処理は、上述と同様の処理を横エッジについて行って、顔のほぼ眉の位置（上端）と口の位置（下端）を検出する処理であり、例えば、図８に示すように、ヒストグラム作成処理（ステップＳ０２２１）と、目下候補検出処理（ステップＳ０２２２）と、顔上下位置算出処理（ステップＳ０２３３）と、から構成される。
【００３９】
ヒストグラム作成処理（ステップＳ０２２１）は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する処理である。
【００４０】
目下候補検出処理（ステップＳ０２２２）は、ヒストグラム値に基づいて、目・眉、口などに対応するヒストグラム値の候補を選択する処理である。
顔上下位置算出処理（ステップＳ０２２３）は、選択した候補から、顔の上下端位置（ｙ座標）（例えば、目・眉の位置）を検出する処理である。なお、顔上端位置（ｙ座標）は、例えば、検出した眉から３画素分上の位置とし、下端位置は検出した口から３画素分下の位置（口と顎の間）などに設定される。
【００４１】
ＣＰＵ２４は、このようにしてステップＳ０２１とＳ０２２で求めた、顔両端（左右側端）位置（ｘ座標）と、顔の上下位置（ｙ座標）をＲＡＭ２５に記憶する。
【００４２】
次に、図４の顔中心位置検出処理（ステップＳ０３）は、例えば、図９に示す構成を有する。
【００４３】
まず、ＣＰＵ２４は、任意の閾値を基準として、ＲＡＭ２５に格納されている顔画像を構成する各画素の階調を二値化する（ステップＳ１２２１）。閾値としては、例えば、顔画像を形成する全画素の平均値を使用できる。これにより、例えば、図１０（ａ）に例示するようなドライバーの二値化画像が生成される。
【００４４】
続いて、ＣＰＵ２４は、二値化画像に、白黒白画像生成処理を実行する（ステップＳ１２２２）。
この白黒白画像生成処理において、ＣＰＵ２４は、まず、二値画像のうち、目の存在が予定されている領域を定義する領域指定データ（図３（ｅ）に示すｙ１，ｙ２）をＲＯＭ２３から読み出し、二値化画像の目領域を図１０（ｂ）に示すように切り出す。
【００４５】
続いて、切り出した二値化画像について、白黒白横エッジを検出する。
ここで、白黒白エッジとは、単に白と黒の境界となるエッジではなく、白から黒へ、さらに黒から白へと変化し、所定の幅を有するエッジのことである。このうち、白黒白横エッジとは、横方向にのびる境界の意味である。
【００４６】
ＣＰＵ２４は、白黒白横エッジ検出処理を開始し（ステップＳ１２２３）、図３（ｆ）に示す設定に従って、目領域画像中で、眼鏡のツルのサイズに従って縦方向に１〜３画素（通常の目は、２〜４画素）の幅の黒い画素列を検出する。
【００４７】
白黒白横エッジを検出する手法自体は任意である。例えば、座標値ｙを順次更新しつつ、画素（ｘ、ｙ）の輝度を判別し、輝度が白から黒に変化すると、黒の連続する数をカウントし、黒が白に変わった時点で黒の連続数が１〜３であるか否かを判別し、連続数が１〜３であれば、その画素を維持し、それ以外であれば、それらの画素を白に変換するという手法を採用できる。
【００４８】
次に、ＣＰＵ２４は、眼鏡のツルの有無を判別する処理を行う（ステップＳ１２２４）。ＣＰＵ２４は、処理後の目領域の画像に、縦方向に１〜３画素の黒領域が得られている場合には、眼鏡のツルが検出されたと判別する。
【００４９】
眼鏡のツルがあると判別した場合（ステップＳ１２２４；Ｙｅｓ）、眼鏡を着用したドライバーが横方向を向いている状態であるため、顔中心位置を求める前に画像を加工して、正確に顔中心位置を求められるようにする（ステップＳ１２２５）。これは、眼鏡の含まれた顔画像をそのまま処理すると、顔中心位置を求める際に用いる横エッジを構成する各画素の平均値に悪影響を及ぼすことを除くためである。この眼鏡対策顔中心位置算出処理は後述する。
【００５０】
なお、ステップＳ１２２４で眼鏡のツルが検出されなかった場合（ステップＳ１２２４；Ｎｏ）には、ステップＳ１２２５の眼鏡対策顔中心位置算出処理をせず、次のステップへ移行する。
【００５１】
続いて、顔画像を用いて、顔の中心位置（重心位置）を求める（ステップＳ１２２６）。中心の測定手法自体は任意であるが、例えば、次式から顔の中心（重心）位置の座標を求めることができる。
顔の中心のｘ座標＝Σｘｉ／ｎ     ｘｉ：ｉ番目の黒画素のｘ座標の値
顔の中心のｙ座標＝Σｙｉ／ｎ     ｙｉ：ｉ番目の黒画素のｙ座標の値
ｉ：１〜ｎ  ｎは黒画素の総数
【００５２】
なお、顔の主要パーツの（眉、目、鼻、口）の画像のみから中心位置を求めてもよい。
【００５３】
一方、図９の眼鏡対策顔中心位置算出処理（ステップＳ１２２５）は、例えば、図１１に示す構成を有する。
【００５４】
まず、ＣＰＵ２４は、図３（ｅ）で示した顔下部領域Ａを求める（ステップＳ２００１）。具体的な顔下部領域Ａを求める方法は任意であるが、例えば、初期処理で算出した顔両端位置（ｘ座標）、顔上下位置（ｙ座標）を利用する。この顔両端位置（ｘ座標）は、図１２のドライバーの顔の図に示すと、顔の両端位置の座標ａ、ｂに対応し、顔上下位置（ｙ座標）は、図１２に示すと、顔の上下位置の座標ｃ、ｅに対応する。ＣＰＵ２４は、顔下部領域Ａを算出するために、まず、座標ｃと座標ｅの中心座標ｄを求める。そして、求めた座標ｄと座標ｅとの間の範囲と、座標ａと座標ｂとの間の範囲に含まれる領域を顔下部領域Ａとし、図１０（ｃ）に示すように切り出す。
【００５５】
図１１のフローチャートに戻って、ＣＰＵ２４は、次に、切り出した顔下部領域Ａの二値化画像を用いて、ｘ軸の仮の顔中心位置Ｂを算出する（ステップＳ２００２）。中心の測定手法自体は任意であるが、例えば、次式から顔のｘ軸方向の中心（重心）位置の座標を求めることができる。
顔の中心のｘ座標＝Σｘｉ／ｎ     ｘｉ：ｉ番目の黒画素のｘ座標の値
ｉ：１〜ｎ  ｎは黒画素の総数
【００５６】
続いて、ＣＰＵ２４は、最終的により正確な顔の中心位置を求めるための顔中心検索領域Ｃを求める。この顔中心検索領域Ｃ内で顔の中心位置を求めることで、より正確な顔の中心位置を求めることができる。
そのために、まず、ＣＰＵ２４は、ドライバーの顔が右方向を向いているか、左方向を向いているかを判別する（ステップＳ２００３）。ドライバーの顔が右方向を向いているか、左方向を向いているかを判別する方法として、例えば、ｘ軸の仮の顔中心位置Ｂが左右両端位置の中心（ａ＋ｂ）／２より大きいか否かで判別する。ここで、Ｂ＞（ａ＋ｂ）／２ではないと判別した場合（ステップＳ２００３；Ｎｏ）、顔は右方向を向いているので、それに合わせて顔の左端位置の座標α、顔の右端位置の座標β、顔の上端位置の座標γ、顔の下端位置の座標δ、を求める（ステップＳ２００５）。具体的には、α＝ａ、β＝ｂ−（ｂ−Ｂ）−（Ｂ−ａ）、γ＝ｃ、δ＝ｅ、として、顔中心検索領域Ｃは、図１３の太枠に囲まれた領域になる。
【００５７】
一方、Ｂ＞（ａ＋ｂ）／２であると判別した場合（ステップＳ２００３；Ｙｅｓ）、図１４に示すように顔は左方向を向いているので、それに合わせて顔の左端位置の座標α、顔の右端位置の座標β、顔の上端位置の座標γ、顔の下端位置の座標δ、を求める（ステップＳ２００４）。具体的には、α＝ａ＋（Ｂ−ａ）−（ｂ−Ｂ）、β＝ｂ、γ＝ｃ、δ＝ｅ、として、顔中心検索領域Ｃは、図１５の太枠に囲まれた領域になる。
【００５８】
以上のステップＳ２００３〜Ｓ２００５での処理により、ステップＳ２００２で求めた仮の顔中心位置Ｂを中心に、左端位置の座標αと右端位置の座標βが左右対称になるように、顔中心検索領域Ｃを求めたことになる。
【００５９】
顔中心検索領域Ｃを求めた後、ＣＰＵ２４は、求めた顔中心検索領域Ｃ内で、上下方向の顔の中心位置（重心位置）を求める（ステップＳ２００６）。中心の測定手法自体は任意であるが、例えば、次式から顔の中心（重心）位置の座標を求めることができる。
顔の中心のｘ座標＝Σｘｉ／ｎ     ｘｉ：ｉ番目の黒画素のｘ座標の値
顔の中心のｙ座標＝Σｙｉ／ｎ     ｙｉ：ｉ番目の黒画素のｙ座標の値
ｉ：１〜ｎ  ｎは黒画素の総数
【００６０】
以上で顔の中心位置が求められ、図１１の眼鏡対策顔中心位置算出処理（ステップＳ１２２５）が終了し、続いて、図９の顔中心検出処理（ステップＳ０３）が終了する。即ち、この処理により、顔の中心位置が求められ、図４の処理が終了する。
【００６１】
以後、ＣＰＵ２４は、図４の処理を繰り返し実行し、ドライバーの顔の中心位置を求め続ける。また、求めた顔の中心位置は、ＲＡＭ２５に記憶され、その後、所望の処理に利用することができる。
以上の処理により、本実施形態に係る顔中心位置検出装置は、眼鏡を着用したドライバーが、横方向に顔を向けたときでも、顔の中心位置をより正確に検出することができる。
【００６２】
なお、この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
【００６３】
例えば、上記実施の形態では、目領域を画像の特定の位置に固定したが、目領域を顔の画像のサイズや位置に応じて、目領域の位置を適宜設定しても良い。この場合、例えば、横エッジソーベルフィルタを適用し、顔の目や眉の位置を判別し、そのエリアを含む所定サイズのエリアを目領域とすればよい。
【００６４】
また、上記実施の形態では、目と眉（又は目）と、鼻、口の階調画像から顔の中心（重心）位置を求めたが、中心位置の判別に使用する顔の部分（パーツ）は任意である。例えば、耳や、ほお、頭髪などを加えて、中心を求めても良い。
【００６５】
上記実施の形態では、この発明を顔の中心位置を検出するために、眼鏡のツルの有無を検出する実施形態を示したが、これに限定されず、サングラスのツルでもよいし、他のアクセサリ等の有無を検出するようにしてもよい。
【００６６】
また、上記実施の形態では、上下方向の顔の中心位置を、画像上での眼鏡の有無に無関係に、縦エッジを構成する各画素の平均値から求めていた。しかしながら、画像に眼鏡が有る場合に、画像を修正してから、より正確な上下方向の顔の中心位置を求めるようにしてもよい。
【００６７】
具体的には、例えば、ＣＰＵ２４は、目領域の画像に、縦方向に１〜３画素の黒領域が２つ得られた場合には、眼鏡が検出されたと判別する。
【００６８】
眼鏡が有ると判別した場合、予め用意されている標準的な目領域の画像を、元の二値画像から目領域を除去した画像と合成して、中心位置測定用の顔画像を生成する。なお、眼鏡の位置を判別して、合成する目の位置を調整してもよい。
【００６９】
続いて、合成した顔画像を用いて、顔の中心位置（顔の位置、重心位置）を求める。中心の測定手法自体は任意である。
【００７０】
図１、図２を参照して説明したシステム構成も一例であり、任意に変更可能である。例えば、カメラ１０を近赤外線等で画像をとらえる赤外線カメラを使用すれば、人種や肌や髪の色に影響されず比較的正確に顔の各パーツの画像を取得することが可能となる。
【００７１】
また、上述のフローチャートも同様の機能が実現できるならば、任意に変更可能である。
例えば、所定回数以上に眼鏡のツルの画像が得られたときに、眼鏡対策処理を行うようにしてもよい。
【００７２】
また、本発明において、白黒白エッジは階調の差異を表現するためのものであり、色としての白や黒に限定されるものではなく、色相はなんでもよい。カラー画像に関しては、各画素の色相を考慮して眼鏡のツルの有無を判別してもよい。
【００７３】
上記各実施の形態においては、ドライバーを撮影して眼鏡のツルを検出する場合にこの発明を適用したが、この発明はこれに限定されず、任意の場面で人間、動物、人形、ロボット等が眼鏡やアクセサリを身につけているか否かを判別する処理に広く適用可能である。
【００７４】
本発明は、カメラで画像を取得しながら処理する場合に限定されず、例えば、他所で撮影した１又は複数の顔画像のそれぞれについて、眼鏡のツルの有無、顔の中心の位置、顔の向きなどを判別する為に使用可能である。
【００７５】
また、コンピュータに上述の処理を実行させるためのコンピュータプログラムを、任意の記録媒体やネットワークを介してＲＯＭに格納するようにしてもよい。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態に係る顔中心位置検出装置のブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭに格納されている各種データを説明するための図である。
【図４】図１に示す顔中心位置検出装置の動作を説明するためのフローチャートである。
【図５】図４の前処理の具体例を説明するためのフローチャートである。
【図６】図４の顔位置判別処理の具体例を説明するためのフローチャートである。
【図７】図６の顔両端検出処理の具体例を説明するためのフローチャートである。
【図８】図６の顔上下位置検出処理の具体例を説明するためのフローチャートである。
【図９】図４の顔中心位置検出処理の具体例を説明するためのフローチャートである。
【図１０】眼鏡のツル検出処理を説明するための図である。
【図１１】図９の眼鏡対策顔中心位置算出処理の具体例を説明するためのフローチャートである。
【図１２】顔が右を向いたときの顔画像における顔下部領域Ａを求める処理を説明するための図である。
【図１３】顔が右を向いたときの顔画像における顔中心検索領域Ｃを求める処理を説明するための図である。
【図１４】顔が左を向いたときの顔画像における顔下部領域Ａを求める処理を説明するための図である。
【図１５】顔が左を向いたときの顔画像における顔中心検索領域Ｃを求める処理を説明するための図である。
【符号の説明】
【００７７】
１０  カメラ
２２  画像メモリ  （顔画像記憶手段）
２３  ＲＯＭ  （輪郭判別手段、眼鏡装着判別手段、横向き判別手段、中心位置検出手段）
２４  ＣＰＵ  （輪郭判別手段、眼鏡装着判別手段、横向き判別手段、中心位置検出手段）
【図１】
0004445454.tif 000002
【図２】
0004445454.tif 000003
【図３】
0004445454.tif 000004
【図４】
0004445454.tif 000005
【図５】
0004445454.tif 000006
【図６】
0004445454.tif 000007
【図７】
0004445454.tif 000008
【図８】
0004445454.tif 000009
【図９】
0004445454.tif 000010
【図１０】
0004445454.tif 000011
【図１１】
0004445454.tif 000012
【図１２】
0004445454.tif 000013
【図１３】
0004445454.tif 000014
【図１４】
0004445454.tif 000015
【図１５】
0004445454.tif 000016