(57)【特許請求の範囲】
【請求項１】
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像について、サングラスのレンズ部分のサイズに合わせた所定数黒画素が連続する白黒白エッジ検出処理を実行するエッジ検出手段と、
前記エッジ検出手段により検出された白黒白エッジに基づいて、顔画像のサングラスの画像の有無を判別するサングラス検出手段と、
を備える、ことを特徴とするサングラス検出装置。
【請求項２】
前記エッジ検出手段は、前記顔画像記憶手段に記憶された前記顔画像の目の検出予定位置の画像データについて、サングラスのレンズ部分のサイズに合わせた白黒白エッジ検出処理を実行する、ことを特徴とする請求項１に記載のサングラス検出装置。
【請求項３】
前記エッジ検出手段は、
前記サングラスのレンズ部分のサイズに合わせた白黒白横エッジ又は白黒白縦エッジを前記顔画像から検出する第１の画像処理を実行する第１の画像処理手段と、
前記第１の画像処理手段により処理された顔画像から、前記サングラスのレンズ部分のサイズに合わせた白黒白縦エッジ又は白黒白横エッジを検出する第２の画像処理を実行する第２の画像処理手段と、
を備える、ことを特徴とする請求項１に記載のサングラス検出装置。
【請求項４】
前記顔画像記憶手段に記憶された前記顔画像について、目の画像データを検出する目検出手段を備え、
前記エッジ検出手段は、前記目検出手段による目の検出ができなかったときに、サングラスのレンズ部分のサイズに合わせた白黒白エッジ検出処理を実行する、
ことを特徴とする請求項１に記載のサングラス検出装置。
【請求項５】
前記顔画像記憶手段は、時系列的に顔を撮影して得られた画像を順次記憶し、
前記エッジ検出手段は、前記顔画像記憶手段に記憶された複数の画像についてエッジ検出処理を実行し、
前記サングラス検出手段は、複数の画像についてのエッジ検出処理の結果に基づいて、サングラスの有無を検出する、
ことを特徴とする請求項１に記載のサングラス検出装置。
【請求項６】
顔画像を撮影して前記顔画像記憶手段に供給するための赤外線カメラをさらに備える、ことを特徴とする請求項１に記載のサングラス検出装置。
【請求項７】
請求項１に記載のサングラス検出装置と、
前記サングラス検出装置によりサングラスが検出された場合に、想定される目の位置とサイズに基づいて、顔の中心を判別する中心位置判別手段と、
を備える、ことを特徴とする顔中心判別装置。
【請求項８】
コンピュータを、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段、
前記顔画像記憶手段に記憶された前記顔画像について、サングラスのレンズ部分のサイズに合わせた所定数黒画素が連続する白黒白エッジ検出処理を実行するエッジ検出手段、
前記エッジ検出手段により検出されたエッジに基づいて、顔画像のサングラスの画像の有無を判別するサングラス検出手段、
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔画像からサングラスの画像を検出するサングラス検出装置と、サングラスが検出された場合でも的確に顔の中心位置を検出することができる顔中心位置検出装置に関する。
【背景技術】
【０００２】
顔画像に基づいて人を識別したり、表情を読み取ったりするためには、顔の位置や顔の中心位置、向きなどを検出することが重要となる。
【０００３】
例えば、特許文献１には、人の顔を撮影した画像を処理し、人の動きや背景に影響されること無く高精度に顔の位置を検出する手法が開示されている。
【０００４】
また、特許文献２には、ドライバーが存在可能な領域を撮影して得られた画像を取り込み、取り込んだ画像から横エッジ画像を検出し、検出した横エッジ画像において、顔の中心線の候補線としての複数の顔中心候補線を設定すると共に複数の顔中心候補線各々に対して、該顔中心候補線が顔の中心線である確からしさを表す値に基づいて、顔の有無の判定精度を向上する技術が開示されている。
【特許文献１】特開２００４−３１０３９６号公報
【特許文献２】特開２００５−０１１０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ドライバーは、サングラスをかけることが多い。特許文献１及び２に開示された技術では、サングラスのレンズ部分のサイズが通常の目に比較して大きいため、検出される顔の位置や顔の中心線の位置が正確な位置からずれてしまう。
【０００６】
本発明は上記の問題点に鑑みてなされたものであり、人物画像からサングラスの有無を判別することを可能とすることを目的とする。
また、本発明は、サングラスをかけた人物画像から顔の位置・中心位置などを判別することを可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明のサングラス検出装置は、
顔を撮影して得られた顔画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段に記憶された前記顔画像について、サングラスのレンズ部分のサイズに合わせた所定数黒画素が連続する白黒白エッジ検出処理を実行するエッジ検出手段と、
前記エッジ検出手段により検出されたエッジに基づいて、顔画像のサングラスの画像の有無を判別するサングラス検出手段と、
を備える、ことを特徴とする。
【０００８】
前記エッジ検出手段は、例えば、前記顔画像記憶手段に記憶された前記顔画像の目の検出予定位置の画像データについて、サングラスのレンズ部分のサイズに合わせた白黒白エッジ検出処理を実行する。
【０００９】
前記エッジ検出手段は、例えば、前記サングラスのレンズ部分のサイズに合わせた白黒白横エッジ又は白黒白縦エッジを前記顔画像から検出する第１の画像処理を実行する第１の画像処理手段と、前記第１の画像処理手段により処理された顔画像から、前記サングラスのレンズ部分のサイズに合わせた白黒白縦エッジ又は白黒白横エッジを検出する第２の画像処理を実行する第２の画像処理手段と、を備える。
【００１０】
前記顔画像記憶手段に記憶された前記顔画像について、目の画像データを検出する目検出手段をさらに配置し、前記エッジ検出手段は、前記目検出手段による目の検出ができなかったときに、サングラスのレンズ部分のサイズに合わせた白黒白エッジ検出処理を実行するように構成してもよい。
【００１１】
例えば、前記顔画像記憶手段は、時系列的に顔を撮影して得られた画像を順次記憶し、前記エッジ検出手段は、前記顔画像記憶手段に記憶された複数の画像についてエッジ検出処理を実行し、前記サングラス検出手段は、複数の画像についてのエッジ検出処理の結果に基づいて、サングラスの有無を検出する。
【００１２】
顔画像を撮影して前記顔画像記憶手段に供給するための赤外線カメラを配置してもよい。
【００１３】
この発明の第２の観点に係る顔中心判別装置は、上述のサングラス検出装置と、このサングラス検出装置によりサングラスが検出された場合に、想定される目の位置とサイズに基づいて、顔の中心を判別する手段とを備える。
【００１４】
顔中心判定手段は、例えば、サングラス検出装置により検出されたサングラスの位置に基づいて目の位置を推定し、推定した目の位置に基づいて、顔の中心を判別する。
【００１５】
顔中心判定手段は、例えば、サングラス検出装置により検出されたサングラスの位置に基づいて前記サングラスを含む顔画像にサングラスを含まない目の画像を合成し、合成画像に基づいて、顔の中心を判別する。
顔中心判定手段は、例えば、合成画像に含まれる顔の各部の重心を求める。
【００１６】
また、この発明の第３の観点に係るコンピュータプログラムは、コンピュータを、顔を撮影して得られた顔画像を記憶する顔画像記憶手段、前記顔画像記憶手段に記憶された前記顔画像について、サングラスのレンズ部分のサイズに合わせた所定数黒画素が連続する白黒白エッジ検出処理を実行するエッジ検出手段、前記エッジ検出手段により検出されたエッジに基づいて、顔画像のサングラスの画像の有無を判別するサングラス検出手段、として機能させることを特徴とする。
【発明の効果】
【００１７】
この発明によれば、顔画像からサングラスを検出することができる。また、この発明によれば、サングラスの検出に基づいて顔の中心を求めることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係るサングラス検出機能を備える顔中心位置検出装置について説明する。
【００１９】
本実施形態の顔中心位置装置は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０と、ドライバーの顔を照明する照明光源１２と、ドライバーの顔中心位置を検出するコンピュータ１４と、コンピュータ１４に接続された表示装置１６とを備える。
【００２０】
カメラ１０は例えばＣＣＤカメラ等から構成され、ドライバーの顔の階調画像を取得する。カメラ１０によって生成される顔画像は、ドライバーの顔だけでなく、その背景なども含まれている。
【００２１】
表示装置１６は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、カメラ１０で撮影された顔画像から抽出された二値化画像などを表示する。
【００２２】
コンピュータ１４は、カメラ１０により取得された顔画像を処理して顔の中心位置を検出する装置であり、図２に示すように、Ａ／Ｄ変換器２１と、画像メモリ２２と、ＲＯＭ２３と、ＣＰＵ２４と、ＲＡＭ２５と、表示制御装置２７と、光源制御装置２８と、を備える。
【００２３】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを記憶する。
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムや固定データを記憶する。
ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、画像処理を行って顔の中心位置を検出する。
ＲＡＭ２５は、ＣＰＵ２４のワークリアとして機能する。
表示制御装置２７は、ＣＰＵ２４の制御下に、表示装置１６を制御する。
光源制御装置２８は、照明光源１２の点灯・消灯を制御する。
【００２４】
図３は、ＲＯＭ２３に格納される固定データの一例を示す。
図３（ａ）に示すように、ＲＯＭ２３は、カメラ１０により撮影される顔画像のうち、予め目が位置すると予想される領域（目領域）を定義する座標データｙ１とｙ２を記憶する。
【００２５】
また、ＲＯＭ２３は、図３（ｂ）に示すように、カメラ１０により撮影される顔画像に含まれる目の画像の予想される縦幅と横幅（画素数）と、サングラスのレンズ部分の画像の予想される縦幅と横幅（画素数）と、を記憶する。なお、これらの値は、顔画像のサイズを縦横（ｙｘ）それぞれ６０画素程度としたときのサイズであり、画像のサイズ等に応じて適宜変更されるものである。
【００２６】
また、ＲＯＭ２３は、図３（ｃ）に示すように、ドライバーの目の標準的な画像を記憶する。なお、目だけでなく、眉、目と眉のセット等の画像を用意してもよい。
【００２７】
次に、上記構成を有する顔中心位置検出装置の動作を説明する。
図４は、ＲＯＭ２３に格納された顔中心位置検出プログラムの処理ルーチンを示すフローチャートである。ＣＰＵ２４は、この処理ルーチンに従ってステップを繰り返して処理を行う。
【００２８】
ＣＰＵ２４は、例えば、内部タイマが一定時間を経過する度に、例えば、１００ｍｓ毎に、内部割り込みを発生し、図４に示す処理ルーチンを起動し、まず、カメラ１０の撮影した顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納する（ステップＳ１１）。これにより、例えば、図９（ａ）や図１０（ａ）に示すようなドライバーの顔画像が得られる。なお、この顔画像は背景などの顔以外の画像も含んでいる。
【００２９】
次に、ＣＰＵ２４は、取り込んだ顔画像に、ノイズ除去処理などの前処理を施す（ステップＳ１２）。例えば、ＣＰＵ２４は、直前に撮影した画像と今回撮影した画像の差部を取る等して、背景部分（静止物）の画像を除去する。これにより、例えば、図９（ａ）や図１０（ａ）に示すドライバーの顔画像から、図９（ｂ）や図１０（ｂ）に示すように、背景の静止物の画像が除去される。この前処理では、必要に応じて、他のノイズ除去処理や階調調整等を行う。
【００３０】
続いて、ＣＰＵ２４は、任意の閾値を基準として、顔画像を構成する各画素の階調を二値化する（ステップＳ１３）。閾値としては、例えば、顔画像を形成する全画素の平均値を使用できる。これにより、例えば、図９（ｂ）や図１０（ｂ）に示すドライバーの階調顔画像から、図９（ｃ）や図１０（ｃ）に示すような二値画像が生成される。
【００３１】
続いて、ＣＰＵ２４は、二値画像のうち、目の存在が予定されている領域を定義する領域指定データ（図３（ａ）に示すｙ１，ｙ２）をＲＯＭ２３から読み出し、二値化画像の目領域を図９（ｄ）、図１０（ｄ）に示すように切り出す（ステップＳ１４）。
【００３２】
続いて、切り出した二値化画像について、白黒白横エッジを検出する（ステップＳ１５）。
ここで、白黒白エッジとは、単に白と黒の境界となるエッジではなく、白から黒へ、さらに白へと変化し、所定の幅を有するエッジのことである。このうち、白黒白横エッジとは、横方向にのびる境界の意味であり、白黒白縦エッジとは、縦方向にのびる境界の意味である。
【００３３】
白黒白横エッジ検出処理において、ＣＰＵ２４は、図３（ｂ）に示す設定に従って、目領域画像中で縦方向に２〜４ピクセルの幅の黒い画素列を検出する。
【００３４】
白黒白横エッジを検出する手法自体は任意である。例えば、図５のフローチャートに示すように、座標値ｙを順次更新しつつ、画素（ｘ，ｙ）の輝度を判別し、輝度が白から黒に変化すると、黒の連続する数をカウントし、黒が白に変わった時点で黒の連続数が２〜４であるか否かを判別し、連続数が２〜４であれば、その画素を維持し、それ以外であれば、それらの画素を白に変換するという手法を採用できる。
【００３５】
具体的に説明すると、ＣＰＵ２４は、まず、処理対象の画素の座標（ｘ，ｙ）を初期値の（１，１）と設定する（ステップＳ１０１）。なお、目領域画像の原点の座標を（０，０）とする。
【００３６】
続いて、ＣＰＵ２４は、処理対象の画素（座標（ｘ，ｙ）の画素）の色とその１つ前の（１つ上の）座標（ｘ，ｙ−１）の画素の色とを判別する（ステップＳ１０２）。
【００３７】
ステップＳ１０２で、座標（ｘ，ｙ−１）の画素の色が白で、座標（ｘ，ｙ）の画素の色が黒であると判別すれば、白から黒への境界であり、ステップＳ１０３に進み、処理対象の画素の座標（ｘ，ｙ）を記憶し、さらに、黒連続数カウンタＣを１にセットする。
【００３８】
ステップＳ１０２で、座標（ｘ，ｙ−１）の画素の色が黒で、座標（ｘ，ｙ）の画素の色が黒であると判別すれば、黒が連続しており、ステップＳ１０４に進み、その画素の座標値（ｘ，ｙ）を記憶し、さらに、黒連続数カウンタＣに＋１する。
【００３９】
ステップＳ１０３で、座標（ｘ，ｙ−１）の画素の色が黒で、座標（ｘ，ｙ）の画素の色が白であると判別すれば、黒から白への境界であり、ステップＳ１０５に進み、黒連続数カウンタＣの値が２〜４のいずれであるかを判別する。
【００４０】
ステップＳ１０５で、黒連続数カウンタＣの値が２〜４のいずれかではない、即ち、黒画素の連続数が１又は５以上であると判別すると（ステップＳ１０５；Ｎｏ）、ステップＳ１０３及び／又はステップＳ１０４で記憶した座標位置の画素の色を「黒」から「白」に変更する（ステップＳ１０６）。その後、記憶してい座標値をリセットし、さらに、黒連続数カウンタＣを０にリセットする（ステップＳ１０７）。
【００４１】
ステップＳ１０５で、黒連続数カウンタＣの値が２〜４のいずれかである、即ち、黒画素の連続数が２〜４であると判別すると（ステップＳ１０５；Ｙｅｓ）、ステップＳ１０３及び／又はステップＳ１０４で記憶した座標位置の黒画素をそのまま維持して、記憶している座標値をリセットし、さらに、黒連続数カウンタＣを０にリセットする（ステップＳ１０７）。
【００４２】
ステップＳ１０２で、座標（ｘ，ｙ−１）の画素の色が白で、座標（ｘ，ｙ）の画素の色が白であると判別すれば、白が連続しており、ステップＳ１０３〜Ｓ１０７の処理をジャンプする。
【００４３】
以上の処理に続いて、ＣＰＵ２４は、座標値ｙが最終値に達したか否かを判別し（ステップＳ１０８）、達していなければ（ステップＳ１０８；Ｎｏ）、縦方向（ｙ方向）の次の画素を処理するためにｙを＋１して（ステップＳ１０９）、ステップＳ１０２にリターンする。
【００４４】
一方、ステップＳ１０８で、座標値ｙが最終値に達していれば（ステップＳ１０８；Ｙｅｓ）、ｘ座標値が最終値であるか否かを判別する（ステップＳ１１０）。ｘ座標が最終値でなければ（ステップＳ１１０；Ｎｏ）、次の列の画素を処理するために、ｘ＝ｘ＋１，ｙ＝１に設定して（ステップＳ１１１）、ステップＳ１０２にリターンする。また、ｘ座標が最終値であれば（ステップＳ１１０；Ｙｅｓ）、処理を終了する。
【００４５】
このような構成とすることにより、連続数がｙ方向に１つ以下及び５以上の黒画素が、白画素に変換される。このため、切り出した目領域の画像が図１１（ａ）や図１２（ａ）に例示するような画像（各升目が１画素を示す）であった場合には、図１１（ｂ）、図１２（ｂ）に示すような画像に変換される。これにより、目或いは眉を構成しない、縦方向に長い黒画素列や、縦方向に１画素しか存在しない画素などが除去される。
【００４６】
図５に示す白黒白横エッジ検出処理終了後、処理は図４のステップＳ１６に進み、ステップＳ１５の白黒白横エッジ検出処理と同様の動作により白黒白縦エッジを検出する。
【００４７】
白黒白縦エッジ検出処理は、ステップＳ１５で処理済みの目領域の画像から、図３（ｂ）の設定に従って、横方向に６〜１２ピクセルの幅の黒の画素列を検出する処理である。
【００４８】
白黒白縦エッジを検出する手法自体は任意であるが、例えば、図６に示す手法を使用できる。図６に示す処理は、処理の方向が異なる点を除けば、図５の処理と基本的に同一であり、ステップＳ２０１で処理の始点画素を（１，１）に設定し、以後、処理対象の画素の座標（ｘ，ｙ）と１つ前の（左横の）座標（ｘ−１，ｙ）の画素の色とを判別する（ステップＳ２０２）。
【００４９】
ステップＳ２０２で、画素の色が白から黒に変わったとすれば、処理対象の画素の座標（ｘ，ｙ）を記憶し、さらに、黒連続数カウンタＣを１にセットし（ステップＳ２０３）、
ステップＳ２０２で、黒の画素が連続していると判別すれば、その画素の座標値（ｘ，ｙ）を記憶し、さらに、黒連続数カウンタＣに＋１する（ステップＳ２０４）。
【００５０】
ステップＳ２０２で、画素の色が黒から白に変化していると判別すれば、黒連続数カウンタＣの値が６〜１２のいずれであるかを判別し（ステップＳ２０５）、黒画素の連続数が１〜５又は１３以上であると判別すると（ステップＳ２０５；Ｎｏ）、記憶した座標位置の画素の色を「黒」から「白」に変更し（ステップＳ２０６）、さらに、記憶している座標値と黒連続数カウンタＣとをリセットし（ステップＳ２０７）、
ステップＳ２０２で、黒画素の連続数が６〜１２であると判別すると（ステップＳ２０５；Ｙｅｓ）、それらの黒画素をそのまま維持する（ステップＳ２０７）。
【００５１】
そして、ｘを更新しながら順次処理を進め、ｘが最終値まで達すると、次の画素行について同様の処理を繰り返し、最終画素行まで終了すると、処理を終了する（ステップＳ２０８〜Ｓ２１１）。
【００５２】
このような構成とすることにより、例えば、横エッジ検出後の目領域の画像が図１１（ｂ）、１２（ｂ）に例示する画像であった場合に、連続数がｘ方向に１〜５及び１３以上の黒画素が、白画素に変換される。これにより、目或いは眉を構成しない、横方向に短い黒画素列や、長すぎる黒画素列が除去される。
【００５３】
次に、ＣＰＵ２４は、このような処理を行った後の目領域の画像に基づいて、目の画像を検出されたか否かを判別する（図４，ステップＳ１７）。
【００５４】
ＣＰＵ２４は、処理後の目領域の画像に、縦方向に２〜４画素で、横方向に６〜１２画素の黒領域が得られている場合には、目の画像が検出されたと判別する（ステップＳ１７；Ｙｅｓ）。この場合、ＣＰＵ２４は、サングラス連続検出回数を０にリセットする（ステップＳ１８）。
【００５５】
さらに、ＣＰＵ２４は、このような処理を行った後の目領域の画像を元の二値画像に上書きして、重心測定用の顔画像を生成する（ステップＳ１９）。例えば、図９（ｄ）に示す処理後の目領域の画像を、図９（ｃ）に示す元の二値画像に上書きして、図９（ｅ）に示す中心位置測定用の顔画像を生成する。なお、目領域と類似の処理を口領域、鼻領域などに施して、ノイズを除去する等してもよい。
【００５６】
続いて、ステップＳ１９で得られた中心位置測定用の画像を用いて、顔の中心位置（顔の位置、重心位置）を求める（ステップＳ２０）。中心の測定手法自体は任意であるが、例えば、次式から顔の中心（重心）位置の座標を求めることができる。
顔の中心のｘ座標＝Σｘｉ／ｎ     ｘｉ：ｉ番目の黒画素のｘ座標の値
顔の中心のｙ座標＝Σｙｉ／ｎ     ｙｉ：ｉ番目の黒画素のｙ座標の値
ｉ：１〜ｎ  ｎは黒画素の総数
【００５７】
ドライバーがサングラスをかけている場合、サングラスのレンズ部分（目をカバーする部分）は人間の目と比べて非常に大きい。このため、ステップＳ１５，Ｓ１６で実行される白黒白エッジ検出処理により、図１２に示すように、サングラス部分の画像の画素が白画素に変換される。このため、目領域の画像には黒画素がほとんど残らない。このため、ステップＳ１７では、目の画像が取得できなかった（ステップＳ１６；Ｎｏ）と判別される。
【００５８】
このため、処理は、ステップＳ２１のサングラス検出処理に進む。
ステップＳ２１のサングラス検出処理においては、図７に示すように、目領域を検出するステップＳ１４〜Ｓ１６の処理と同様にして、サングラスの画像を検出する。即ち、ＲＯＭ２３に格納されている図３（ｂ）に示す設定に従って、予想されるサングラスのサイズを基準として、黒画素が縦方向及び横方向に所定数連続する部分を検出する。
【００５９】
まず、図７に示すように、二値化した顔画像から目領域の画像を切り出す（ステップＳ４１）。
【００６０】
続いて、切り出した目領域の画像について、サングラス検出用の白黒白横エッジ検出処理を実行する（ステップＳ４２）。この処理は、基本的に図５に示す目の抽出処理と同一である。ただし、ステップＳ１０５でＣの範囲が、ＲＯＭ２３に格納されている図３（ｂ）の設定に従って、サングラスの縦方向のサイズにあわせて６〜１２に設定される。
【００６１】
続いて、白黒白横エッジ検出済の目領域の画像について、サングラス検出用の白黒白縦エッジ検出処理を実行する（ステップＳ４３）。この処理は、基本的に図６に示す目の縦エッジ検出処理と同一である。ただし、ステップＳ２０５でＣの範囲が、ＲＯＭ２３に格納されている図３（ｂ）の設定に従って、サングラスの横方向のサイズにあわせて１０〜１８に設定される。
【００６２】
このような処理を行う結果、例えば、図１３（ａ）に示すようなサングラスのレンズ部分の画像は、白黒白横エッジ検出処理（ステップＳ４２）により図１３（ｂ）に示すように加工され、さらに、白黒白縦エッジ検出処理（ステップＳ４３）により図１３（ｃ）に示すように加工され、レンズが検出される。
【００６３】
このような処理を行った後の目領域の画像に基づいて、ＣＰＵ２４は、サングラスが検出されたか否かを判別する（図４；ステップＳ２２）。
ＣＰＵ２４は、図１３（ｃ）に示すように、縦方向に６〜１２画素で、横方向に１０〜１８画素の黒領域が得られている場合には、目の画像が検出されたと判別する。
【００６４】
サングラスが検出さなければ（ステップＳ２２；Ｎｏ）、フローは前述のステップＳ１８に進み、サングラス連続検出回数を０に設定し、通常の画像処理を行って（ステップＳ１９）、顔中心位置を検出する（ステップＳ２０）。
【００６５】
一方、ステップＳ２２で、サングラスが検出されれば（ステップＳ２２；Ｙｅｓ）、サングラス連続検出回数を＋１し（ステップＳ２３）、さらに、サングラス連続検出回数が基準値ｍ以上であるか否かを判別する（ステップＳ２４）。このサングラス連続検出回数は、ステップＳ１１で一定周期で順次取得される顔画像について、何回連続してサングラスが検出されたかを示す値である。割り込み周期が前述のように１００ｍｓであるとすれが、ｍ・１００ｍｓの間連続してサングラスが検出され続けた場合に、ステップＳ２４では、Ｙｅｓと判別される。
【００６６】
ステップＳ２４で、Ｙｅｓと判別されると、サングラス対応画像処理を実行する（ステップＳ２５）。このサングラス対応画像処理においては、サングラスの左右のレンズの位置を特定し、特定したレンズ位置から、左右の目の位置を特定（推定）し、この位置を基準として、ＲＯＭ２３に格納されている図３（ｃ）に示す目の画像を合成する。
【００６７】
具体的に説明すると、図８に示すように、ＣＰＵ２４は、まず、サングラスの左右のレンズの中心位置の座標をそれぞれ判別する（ステップＳ５１）。各レンズの中心位置を求める手法は任意であるが、例えば、目領域の左右に位置するレンズの黒画像それぞれについて、ステップＳ２０に示した重心を求める処理と同様の処理を行えばよい。
【００６８】
次に、特定されたレンズの位置を基準として、目の位置を特定（推定する）する（ステップＳ５２）。目の位置は、レンズの中心位置でも良いし、例えば、統計的に算出したオフセット値をレンズ中心位置に加算して求めても良い。
【００６９】
次に、目領域の画像と同一サイズの画像のステップＳ５２で求めた目の位置に、ＲＯＭ２３に格納しておいた目の画像（図３（ｃ））を合成する（ステップＳ５３）。
【００７０】
次に、二値画像のうち、目領域を除いた部分の画像と、ステップＳ５３で生成した目領域画像とを合成して、目、鼻、口等を含む顔画像を重心測定用の顔画像として合成する（ステップＳ５４）。
【００７１】
具体例に基づいて説明すると、例えば、図１４（ａ）に示すサングラスをかけたドライバーの顔画像から、ステップＳ２１のサングラス検出処理で、図１４（ｂ）に示す目領域の画像が切り出される（ステップＳ４１）。続いて、サングラス検出用白黒白横エッジ検出処理（ステップＳ４２）、サングラス検出用白黒白縦エッジ検出処理（ステップＳ４３）、により、図１４（ｃ）に示すように、サングラスのレンズの画像が抽出される。
【００７２】
続いて、ステップＳ２２でサングラスが検出され、サングラス連続検出回数がｍ回以上であれば（ステップＳ２４；Ｙｅｓ）、ステップＳ２５のサングラス対応画像処理により、サングラスの各レンズの位置が特定され（ステップＳ５１）、レンズの位置に基づいて、図１４（ｄ）に示すように目の位置が特定される（ステップＳ５２）。続いて、図１４（ｅ）に示すように、目の画像が合成される（ステップＳ５３）。
【００７３】
続いて、図１４（ｆ）に示す目領域を除去した二値画像と図１４（ｅ）の目領域画像とが合成され、重心測定用の顔画像が生成される（ステップＳ５４）。
【００７４】
その後、処理は図４のステップＳ２０に進み、前述の処理により、顔の中心位置を判別する。
【００７５】
以上説明したように、この顔中心位置検出装置によれば、顔画像からサングラスの有無を検出し、検出結果に基づいて、サングラスをかけているかいないかに関わらず、適切に顔の中心位置を判別することが可能となる。顔の中心位置を判別することにより、顔の有無、顔の位置、顔の向きなどの判別も可能となる。
【００７６】
なお、この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、上記実施の形態では、目領域を画像の特定の位置に固定したが、目領域を顔の画像のサイズや位置に応じて、目領域の位置を適宜設定しても良い。この場合、例えば、ステップＳ１１で取得した画像に縦エッジソーベルフィルタと横エッジソーベルフィルタを適用し、顔のエッジを検出し、顔の上端、下端、左端、右端を判別し、例えば、上端と下端との間の３／１０〜６／１０のエリアで、左端と右端の間のエリアを目領域とすればよい。その他、目領域を特定する手法は任意である。
【００７７】
また、上記実施の形態では、目と眉（又は目）と、鼻、口の画像から顔の中心（重心）位置を求めたが、中心位置の判別に使用する顔の部分（パーツ）は任意である。例えば、耳や、ほお、頭髪などを加えて、中心を求めても良い。
【００７８】
また、上記実施の形態では、サングラスが検出された場合に、目の画像を合成し、合成画像に基づいて顔の中心地位を求めたが、重心を求める手法は任意である。例えば、サングラスが検出された場合には、「目と眉」の画像を合成して中心を求めたり、サングラスのレンズの画像を構成する各画素に０．３〜０．５倍程度の重みを付けた上で、各部（レンズ、目、鼻、口．．．）の重心を求めて、顔画像の重心をもとめてもよい。また、図１４（ｆ）に示すような目領域を除いた部分の顔画像から得られた重心に対し、目の画像が与える影響を予め考慮したオフセット値を加算するなどして重心を求めてもよい。
【００７９】
上記実施の形態では、この発明を顔の中心位置を検出するために、サングラスの有無を検出する実施形態を示したが、サングラスを検出した後で、その結果をどのような処理に使用するかは任意である。例えば、サングラスを検出し、それにより、それにより照明の強度を変更したり、画面のバックライトの輝度を調整する等の場面に使用することも可能である。
【００８０】
図１，図２を参照して説明したシステム構成も一例であり、任意に変更可能である。例えば、照明光源１２を設ける必要は必ずしも無い。また、例えば、カメラ１０を遠赤外線等で画像をとらえる赤外線カメラを使用すれば、人種や肌や髪の色に影響されず比較的正確に顔の各パーツの画像を取得することが可能となる。
【００８１】
また、上述のフローチャートも同様の機能が実現できるならば、任意に変更可能である。
例えば、上記実施の形態では、連続的ｍ回以上にサングラスの画像が得られたときに、サングラス対応画像処理（ステップ２５）を実行したが、サングラスが検出された顔画像については全て、サングラス対応画像処理を実行するようにしてもよい。
【００８２】
上記実施の形態では、ステップＳ１３で二値画像を形成してから白黒白横エッジ検出処理及び白黒白縦エッジ検出処理を実行したが、二値化処理を行わずに、顔画像の階調値から白黒白エッジを直接検出するようにしてもよい。
【００８３】
また、本発明において、白黒白エッジは階調の差異を表現するためのものであり、色としての白や黒に限定されるものではなく、色相はなんでもよい。カラー画像に関しては、各画素の色相を考慮してサングラスの有無を判別してもよい。
【００８４】
上記各実施の形態においては、ドライバーを撮影してサングラスを検出する場合にこの発明を適用したが、この発明はこれに限定されず、任意の場面で人間、動物、人形、ロボット等がサングラスをかけているか否かを判別する処理に広く適用可能である。
【００８５】
本発明は、カメラで画像を取得しながら処理する場合に限定されず、例えば、他所で撮影した１又は複数の顔画像のそれぞれについて、サングラスの有無、顔の中心の位置、顔の向きなどを判別する為に使用可能である。
【００８６】
また、コンピュータに上述の処理を実行させるためのコンピュータプログラムを、任意の記録媒体やネットワークを介してＲＯＭに格納するようにしてもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施形態に係る顔中心判別装置のブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭに格納されている各種データを説明するための図である。
【図４】図１に示す顔中心判別装置の動作を説明するためのフローチャートである。
【図５】図４のフローチャートにおける白黒白横エッジ検出処理の具体例を説明するためのフローチャートである。
【図６】図４のフローチャートにおける白黒白縦エッジ検出処理の具体例を説明するためのフローチャートである。
【図７】図４のフローチャートにおけるサングラス検出処理の具体例を説明するためのフローチャートである。
【図８】図４のフローチャートにおけるサングラス対応画像処理の具体例を説明するためのフローチャートである。
【図９】サングラスをかけていないドライバーの顔画像と画像処理の内容を説明するための図である。
【図１０】サングラスをかけているドライバーの顔画像と画像処理の内容を説明するための図である。
【図１１】白黒白エッジとその検出処理を説明するための図である。
【図１２】白黒白エッジとその検出処理を説明するための図である。
【図１３】サングラスのレンズの画像とその検出処理を説明するための図である。
【図１４】サングラスの画像を含む顔画像から、顔の中心位置を求める処理を説明するための図である。
【符号の説明】
【００８８】
１０  カメラ
２２  画像メモリ  （顔画像記憶手段）
２３  ＲＯＭ  （サングラス検出手段、中心位置判別手段）
２４  ＣＰＵ  （サングラス検出手段、中心位置判別手段）
【図１】
0004739870.tif 000002
【図２】
0004739870.tif 000003
【図３】
0004739870.tif 000004
【図４】
0004739870.tif 000005
【図５】
0004739870.tif 000006
【図６】
0004739870.tif 000007
【図７】
0004739870.tif 000008
【図８】
0004739870.tif 000009
【図９】
0004739870.tif 000010
【図１０】
0004739870.tif 000011
【図１１】
0004739870.tif 000012
【図１２】
0004739870.tif 000013
【図１３】
0004739870.tif 000014
【図１４】
0004739870.tif 000015