(57)【要約】【課題】  検出対象となる人の状態に影響されることなく、顔部品位置を確実に検出する。【解決手段】  カメラからコンピュータ内に顔画像を入力して（ステップＳ１）、ドライバの顔左右位置、つまりドライバの顔の両端位置を検出する（ステップＳ２）。また、入力された顔画像から横エッジを検出し（ステップＳ３）、この横エッジを横方向に投影することで横エッジヒストグラムを作成する（ステップＳ４）。そして、横エッジヒストグラムのピークを検出してこのピークを「目の位置候補」と設定し（ステップＳ５）、予め記憶されている顔部品テンプレートと顔左右位置とに基づいて、顔部品領域を設定する（ステップＳ６）。最後に、横エッジヒストグラムのピーク（目の位置候補）と顔部品領域とをマッチングして、目・鼻・口の位置の検出結果を出力する（ステップＳ７）。【選択図】  図３
2006065640.tif 000002
【特許請求の範囲】
【請求項１】
顔を撮像して得られた画像を入力する画像入力手段と、
前記画像入力手段により入力された画像に基づいて、顔の両端位置を検出する両端位置検出手段と、
前記両端位置検出手段により検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定する顔部品領域設定手段と、
前記画像入力手段により入力された画像から横エッジを検出する横エッジ検出手段と、
前記横エッジ検出手段により検出された横エッジを横方向に投影して横エッジヒストグラムを作成する横エッジヒストグラム作成手段と、
前記横エッジヒストグラム作成手段により作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定する位置候補設定手段と、
前記顔部品領域設定手段により設定された顔部品領域と、前記位置候補設定手段により設定された各々の位置候補と、に基づいて、前記顔部品領域の最適な位置を検出する最適位置検出手段と、
を備えた顔部品位置検出装置。
【請求項２】
前記最適位置検出手段は、前記顔部品領域を前記位置候補に次々当てはめて顔部品領域内における前記横エッジの対称性を検出し、最も対称性が高くなったときの位置候補を、前記顔部品領域の最適な位置として検出する
請求項１に記載の顔部品位置検出装置。
【請求項３】
前記最適位置検出手段により検出された前記顔部品領域の最適な位置に基づいて、前記顔の眉、目、鼻、口の少なくとも１つの位置を検出する顔部品位置検出手段を更に備えた
請求項１または請求項２に記載の顔部品位置検出装置。
【請求項４】
前記顔部品領域設定手段は、顔部品の鉛直軸方向周りの回転角度に応じて、顔部品領域の対称軸に対する一方側の領域幅と他方側の領域幅を調整して、前記顔部品領域を設定する
請求項１から請求項３のいずれか１項に記載の顔部品位置検出装置。
【請求項５】
前記顔部品領域設定手段は、顔部品の中央にある正面方向軸周りの回転角度に応じて、顔部品領域が回転するように当該顔部品領域を設定する
請求項１から請求項３のいずれか１項に記載の顔部品位置検出装置。
【請求項６】
人の顔を撮像して画像を生成し、当該画像を前記画像入力手段に供給する撮像手段を更に備えた
請求項１から請求項５のいずれか１項に記載の顔部品位置検出装置。
【請求項７】
顔を撮像して得られた画像に基づいて、顔の両端位置を検出し、
前記検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定し、
前記入力された画像から横エッジを検出し、
前記検出された横エッジを横方向に投影して横エッジヒストグラムを作成し、
前記作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定し、
前記設定された顔部品領域と前記設定された各々の位置候補とに基づいて、前記顔部品領域の最適な位置を検出する
顔部品位置検出方法。
【請求項８】
前記顔部品領域を前記位置候補に次々当てはめて顔部品領域内における前記横エッジの対称性を検出し、最も対称性が高くなったときの位置候補を、前記顔部品領域の最適な位置として検出する
請求項７に記載の顔部品位置検出方法。
【請求項９】
前記検出された前記顔部品領域の最適な位置に基づいて、前記顔の眉、目、鼻、口の少なくとも１つの位置を検出する
請求項７または請求項８に記載の顔部品位置検出方法。
【請求項１０】
顔部品の鉛直軸方向周りの回転角度に応じて、顔部品領域の対称軸に対する一方側の領域幅と他方側の領域幅を調整して、前記顔部品領域を設定する
請求項７から請求項９のいずれか１項に記載の顔部品位置検出方法。
【請求項１１】
顔部品の中央にある正面方向軸周りの回転角度に応じて、顔部品領域が回転するように当該顔部品領域を設定する
請求項７から請求項９のいずれか１項に記載の顔部品位置検出方法。
【請求項１２】
コンピュータに、
顔を撮像して得られた画像に基づいて、顔の両端位置を検出し、
前記検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定し、
前記入力された画像から横エッジを検出し、
前記検出された横エッジを横方向に投影して横エッジヒストグラムを作成し、
前記作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定し、
前記設定された顔部品領域と前記設定された各々の位置候補とに基づいて、前記顔部品領域の最適な位置を検出する
処理を実行させる顔部品位置検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔部品位置検出装置及び方法並びにプログラムに係り、例えば、顔を撮像して得られた画像に基づいて、顔の所定部品の位置を検出する顔部品位置検出装置及び方法並びにプログラムに関する。
【背景技術】
【０００２】
目の位置を検出する際に、顔の濃淡やエッジのパターンを利用する方法が多くある。例えば、目や眉の位置を得るために、濃淡の黒い部分を横方向に投影してヒストグラムを作成し、そのヒストグラムの形状から目や眉の位置を決定する顔部品抽出装置が提案されている（特許文献１を参照。）。顔部品抽出装置は、上記のヒストグラムを作成することで、目・眉・口といった部分にピークが現れることを利用して、目・眉・口を抽出するものである。
【０００３】
また、安定して目位置や顔位置を検出する目位置及び顔位置検出装置が提案されている（特許文献２を参照）。上記装置は、縦エッジヒストグラムから顔の中心を推定し、顔中心の位置から顔の両端を推定し、推定した顔両端の範囲内で、横エッジや縦横エッジを横方向に投影してヒストグラムを作成する。この結果、目・眉のところにピークが現れ、それにより目や眉を検出する。
【特許文献１】特開平１０−３０７９２３号公報
【特許文献２】特開２０００−３３９４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１及び２に記載された技術において、眼鏡をかけている場合、目の周辺に目や眉と異なるヒストグラムのピークが現れてしまい、目や眉の位置を正確に検出できない問題がある。また、濃淡画像を利用して顔に影が映りこんだ場合も、同様の問題が発生する。
【０００５】
また、これらの技術は、顔の位置をほぼ特定できることが条件となる。しかし、顔の位置がずれている場合、目や眉以外にも、背景によってヒストグラムの余分なピークが現れたりピークが潰れたりして、目や眉の位置を正確に検出できなくなってしまう。
【０００６】
さらに、特許文献１に記載の顔部品抽出装置は、顔の位置を特定するために鼻孔を検出している。しかし、鼻孔を検出するためには、撮像装置を必ず被験者の顔より下の位置に設置しなければならないため、撮像装置の設置場所が限定されてしまう。
【０００７】
特許文献２に記載の目位置及び顔位置検出装置は、顔の位置を検出するために、縦エッジのヒストグラムから顔の中心を最初に検出している。しかし、鼻や眼鏡の縦エッジなどと区別がつかないため、正確に顔の位置を検出することができない問題がある。
【０００８】
本発明は、上述した課題を解決するために提案されたものであり、検出対象となる人の状態に影響されることなく、顔部品位置を確実に検出できる顔部品位置検出装置及び方法並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するため、本発明に係る顔部品位置検出装置は、顔を撮像して得られた画像を入力する画像入力手段と、前記画像入力手段により入力された画像に基づいて、顔の両端位置を検出する両端位置検出手段と、前記両端位置検出手段により検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定する顔部品領域設定手段と、前記画像入力手段により入力された画像から横エッジを検出する横エッジ検出手段と、前記横エッジ検出手段により検出された横エッジを横方向に投影して横エッジヒストグラムを作成する横エッジヒストグラム作成手段と、前記横エッジヒストグラム作成手段により作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定する位置候補設定手段と、前記顔部品領域設定手段により設定された顔部品領域と、前記位置候補設定手段により設定された各々の位置候補と、に基づいて、前記顔部品領域の最適な位置を検出する最適位置検出手段と、を備えている。
【００１０】
本発明に係る顔部品位置検出方法は、顔を撮像して得られた画像に基づいて、顔の両端位置を検出し、前記検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定し、前記入力された画像から横エッジを検出し、前記検出された横エッジを横方向に投影して横エッジヒストグラムを作成し、前記作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定し、前記設定された顔部品領域と前記設定された各々の位置候補とに基づいて、前記顔部品領域の最適な位置を検出する。
【００１１】
本発明に係る顔部品位置検出プログラムは、コンピュータに、顔を撮像して得られた画像に基づいて、顔の両端位置を検出し、前記検出された顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定し、前記入力された画像から横エッジを検出し、前記検出された横エッジを横方向に投影して横エッジヒストグラムを作成し、前記作成された横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定し、前記設定された顔部品領域と前記設定された各々の位置候補とに基づいて、前記顔部品領域の最適な位置を検出する処理を実行させる。
【００１２】
画像入力手段は、顔を撮像して得られた画像を入力する。この画像は、被写体である人の顔だけでなく、その背景も含まれている。
【００１３】
両端位置検出手段は、入力された画像に基づいて、顔の両端位置を検出する。これにより、顔の一端側から他端側までの長さが分かる。
【００１４】
顔部品領域設定手段は、顔の両端位置に基づいて、顔部品の存在する領域を表す顔部品領域を設定する。顔を撮像する撮像手段から人の顔までの距離は一定であるとは限らないため、入力された画像の顔の大きさも一定とは限らない。そこで、顔部品領域設定手段は、この両端位置に基づいて顔部品領域を設定する。
【００１５】
横エッジ検出手段は、入力された画像から横エッジを検出する。横エッジヒストグラム作成手段は、この横エッジを横方向に投影して横エッジヒストグラムを作成する。この横エッジヒストグラムでは、横方向における横エッジの強度に応じてピークが生じている。
【００１６】
位置候補設定手段は、横エッジヒストグラムの複数のピークをそれぞれ位置候補として設定する。横エッジヒストグラムのピークは、横エッジの強度が大きい箇所であり、顔の眉、目、鼻、口などの顔部品の位置である可能性が高い。そこで、これらのピークを、顔部品領域の最適位置の候補である位置候補としている。
【００１７】
そして、最適位置検出手段は、設定された顔部品領域と各々の位置候補とに基づいて、顔部品領域を各々の位置候補でマッチングすることによって、顔部品領域の最適な位置を検出する。
【００１８】
したがって、本発明に係る顔部品位置検出装置及び方法並びにプログラムによれば、設定された顔部品領域と各々の位置候補とに基づいて、顔部品領域の最適な位置を検出することにより、眼鏡をかけたり、目に髪がかかっている等のような人の状態に影響されることなく、確実に顔部品位置を検出することができる。
【発明の効果】
【００１９】
本発明に係る顔部品位置検出装置及び方法並びにプログラムは、検出対象となる人の状態に影響されることなく、確実に顔部品位置を検出することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。本実施形態では、車両を運転するドライバの顔を撮像してドライバの顔部品を検出する例を挙げて説明するが、本発明はドライバ以外の顔の顔部品を検出することも可能である。
【００２１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る顔部品位置検出装置の構成を示す図である。顔部品位置検出装置は、ドライバの顔を撮影して顔画像を生成するカメラ１０と、ドライバの顔を照明する照明光源１２と、顔部品位置を検出するコンピュータ１４と、コンピュータ１４に接続された表示装置１６と、を備えている。
【００２２】
カメラ１０によって生成される顔画像は、ドライバの顔だけでなく、その背景も含まれている。また、表示装置１６は、ＬＣＤ（Liquid Crystal Display）又はＣＲＴ（Cathode Ray Tube）で構成され、カメラ１０で撮影された顔画像から抽出された２値化画像等を表示する。
【００２３】
図２は、コンピュータ１４の構成を示すブロック図である。
【００２４】
コンピュータ１４は、カメラ１０で撮像された画像をディジタル信号に変換するアナログ／ディジタル（Ａ／Ｄ）変換器２１と、カメラ１０により生成された顔画像を記憶する画像メモリ２２と、顔部品位置を検出するためのプログラムが記憶されているＲＯＭ２３と、ＲＯＭ２３に記憶されたプログラムに基づいて所定の演算を行うＣＰＵ２４と、データのワークエリアであるＲＡＭ２５と、表示装置１６の表示制御を行う表示制御器２７と、光源１２の点灯又は消滅を制御する発光制御器２８と、を備えている。
【００２５】
図３は、ＲＯＭ２３に記憶された顔部品位置検出プログラムの処理ルーチンを示すフローチャートである。すなわち、ＣＰＵ２４は、この処理ルーチンに従ってステップＳ１からステップＳ７までを実行する。
【００２６】
ステップＳ１では、ＣＰＵ２４は、カメラ１０からコンピュータ１４内に顔画像を入力して、Ａ／Ｄ変換器２１を介して画像メモリ２２に書き込んで、ステップＳ２に移行する。
【００２７】
ステップＳ２では、ＣＰＵ２４は、ドライバの顔左右位置、つまりドライバの顔の両端位置を検出する。例えば、ＣＰＵ２４は、顔画像の縦エッジを計算し、その縦エッジを縦方向に投影してヒストグラムを作成する。このとき、顔の両端部分にピークが現れるので、そのピークを顔の両端、すなわち左右位置として検出する。なお、ヒストグラム作成時には、時間差分や長さによる重み付けを行い、ノイズ成分（ヘッドレストや窓枠などの背景）を除去するとよい。その他、テンプレートマッチングや距離画像などを利用して顔左右位置を検出する手法もある。具体的にＣＰＵ２４は、次の処理を実行すればよい。
【００２８】
図４は、ステップＳ２における顔左右位置検出ルーチンの一例を示すフローチャートである。図５（Ａ）から（Ｆ）は、顔左右位置検出ルーチンの各工程で生成される画像を示す図である。
【００２９】
ステップＳ１１では、ＣＰＵ２４は、画像メモリ２２から顔画像（図５（Ａ））を読み出し、この顔画像の画素値を横方向（水平方向）に微分する。具体的には、各画素の輝度とその画素に隣接する画素の輝度との差分を算出して、エッジ部抽出画像（図５（Ｂ））を生成して、ステップＳ１２に移行する。同図において、波線は元画像の輪郭である。エッジ部抽出画像において、背景の縦エッジ３１と顔画像の縦エッジ３２のみが抽出され、波線で示した元画像の輪郭はほとんど残っていない。これらの縦エッジ３１、３２は、ドライバが動いていない場合でも、抽出される。
【００３０】
なお、エッジ部抽出画像の画素値（輝度の微分値）を縦方向（垂直方向）に投影した場合、図５（Ｂ）下部に示すように、ヒストグラムが得られる。このヒストグラムでは、すべてのエッジ部の強度がほぼ等しいことから、顔の両端位置を特定することはできない。
【００３１】
ステップＳ１２では、ＣＰＵ２４は、画像メモリ２２から顔画像（図５（Ａ））を読み出し、この顔画像の画素値を時間で微分する。具体的には、ある時刻における各画素の輝度とその直前の各画素の輝度との差分を算出して、動く対象のみを強調した画素値時間微分画像（図５（Ｃ））を生成して、ステップＳ１３に移行する。
【００３２】
ドライバは運転中に完全に静止するのではないので、画素値時間微分画像では、動いているものの輪郭、つまりドライバの輪郭が太く検出される。これに対して、窓、ピラー、ヘッドレスト等の背景は全く動かないため、ほとんど残っていない。但し、画素値時間微分画像では、ドライバがよく動く場合には顔の輪郭が検出されるが、ドライバがほとんど動かない場合にはほとんど検出されない。そこで、次の処理が必要となる。
【００３３】
ステップＳ１３及びＳ１４では、ＣＰＵ２４は、エッジ部抽出画像と画素値時間微分画像とを合成して合成画像１（図５（Ｄ））を生成し、合成画像１の画素値（輝度）を縦方向に投影してヒストグラムを生成する。このように、合成画像１は、エッジ部抽出画像と画素値時間微分画像とが合成された画像である。よって、ドライバが動いていない場合でも動いている場合でも、合成画像１には、ドライバの縦エッジ又は輪郭が現れている。
【００３４】
なお、エッジ部抽出画像の画素値と画素値時間微分画像の画素値をそれぞれ縦方向に投影して２つのヒストグラムを生成し、この２つのヒストグラムを合計してもよい。そして、合成画像１のヒストグラムからピーク３４、３５を検出して、ステップＳ１５に移行する。
【００３５】
ステップＳ１５では、ＣＰＵ２４は、合成画像１のヒストグラムから検出された複数のピーク３４、３５の中から、人の顔幅に最も対応するピーク間隔となる２つのピークを検出し、この２つのピークを顔の左右位置として検出する。そして、顔左右位置検出ルーチンを抜けて、図３に示すステップＳ３に移行する。
【００３６】
なお、顔左右位置検出ルーチンは、上記の例に限定されるものではなく、例えば次のようなものでもよい。
【００３７】
例えば、ＣＰＵ２４は、ステップＳ１２において、画素値の時間微分演算の対象として顔画像（図５（Ａ））を用いたが、その代わりにエッジ部抽出画像（図５（Ｂ））を用いてもよい。つまり、ステップＳ１２では、エッジ部抽出画像（図５（Ｂ））の画素値（輝度）を時間で微分して、エッジ部時間微分画像（図５（Ｅ））を生成してもよい。これにより、図５（Ｂ）に示すようにエッジ部抽出画像内の複数の縦エッジ３１、３２のうち、窓、ヘッドレスト等の全く動かない背景の縦エッジを消去して、図５（Ｅ）に示すように動きのある顔画像の中の縦エッジ３３のみを抽出できる。
【００３８】
ステップＳ１３以降は、上記と同様である。なお、ステップＳ１３及びＳ１４では、ＣＰＵ２４は、上記と同様に、エッジ部抽出画像とエッジ部時間微分画像とを合成して合成画像２（図５（Ｆ））を生成し、合成画像２の画素値（輝度）を縦方向に投影してヒストグラムを生成し、このヒストグラムからピーク３４、３５を検出すればよい。
【００３９】
図６は、顔左右位置検出ルーチンにより顔左右位置が検出された状態を示す図である。ＣＰＵ２４は、同図に示すように、ヒストグラムの複数のピークから、人の顔幅に最も対応するピーク間隔となる２つのピークを検出し、この２つのピークを顔の左右位置として検出する。
【００４０】
このように、ＣＰＵ２４は、顔左右位置検出ルーチンを実行することにより、人の背景や人の動きに影響されることなく、顔の両端位置を検出することができる。そして、図３に示すステップＳ３以降の処理を実行する。
【００４１】
ステップＳ３では、ＣＰＵ２４は、カメラ１０で撮像された状態で画像メモリ２２に記憶されている顔画像に対して、所定の閾値を用いて、縦方向に白→黒→白と変化する箇所である横エッジ（白黒白エッジ）を検出して、ステップＳ４に移行する。
【００４２】
具体的には、ＣＰＵ２４は、画像中の顔の縦幅が６０ピクセル程度の場合、縦方向に２〜４ピクセル幅の黒い画素、つまり輝度が低い画素を検出すればよい。これにより、１ピクセル幅の黒い画素を無視するのでノイズ成分を除去することができる。また、検出幅を４ピクセル以下に限定することで、顔部品（眉、目、鼻、口）に限定して検出することができる。なお、検出幅は、上記の数値に限定されるものではなく、顔の縦幅が６０ピクセルから大きく異なるときは、それに応じて変更すればよい。また、白黒白エッジだけでなく、通常の白黒エッジを検出してもよい。
【００４３】
なお、横エッジのうち、横方向の長さが所定値以上（例えば、顔幅の１０％以上）のみを検出してもよい。これにより、ノイズによる短い横エッジを除去することができる。ここで、「１０％以上」としてのは、顔画像の統計的データから、顔幅に対する顔部品の幅は１０％以上になるからである。
【００４４】
図７は、ドライバが理想的な状態のときに得られる横エッジとそれに対応する横エッジヒストグラムを示す図である。
【００４５】
ステップＳ４では、ＣＰＵ２４は、横エッジを横方向に投影することで、横エッジの横方向の強度を表す横エッジヒストグラムを作成して、ステップＳ５に移行する。
【００４６】
ステップＳ５では、ＣＰＵ２４は、横エッジヒストグラムのピークを検出して、このピークを「目の位置候補」と設定した後、ステップＳ６に移行する。なお、横エッジヒストグラムのピークは、図７に示すように、主に眉、目、鼻、口に現れる。そこで、検出すべき横エッジヒストグラムのピークの数は、特に限定されるものではないが、目、眉、眼鏡上下の縁、口、鼻などの顔画像の特徴すると、６つ以上が好ましい。
【００４７】
ところで、ドライバが理想的な状態（例えば、ドライバが眼鏡又はサングラスをかけてなく、ドライバの目に髪の毛がかかってなく、ドライバの顔がまっすぐになっている状態）であれば、図７に示す横エッジヒストグラムのピークを上からから順に抽出することで、眉、目、（鼻）、口の位置を決定することができる。
【００４８】
しかし実際には、ドライバが理想的な状態になっているとは限らず、背景、髪型、眼鏡又はサングラス等の影響によって、明確なピークが得られないことがある。そのような状態であっても、眉、目、口の箇所に、明確ではないながらもピークが現れる。
【００４９】
図８は、横エッジとそれに対応する横エッジヒストグラムを示す図であり、（Ａ）はドライバが眼鏡をかけた場合、（Ｂ）は髪の毛で眉や目が隠れている場合、（Ｃ）は顔が傾いている場合である。図８（Ａ）から（Ｃ）のいずれの場合も、図７に比べてピークが明確になっていないが、ピークは得られている。そこで、ＣＰＵ２４は、このような横エッジヒストグラムのピークであっても「目の位置候補」とする。
【００５０】
ステップＳ６では、ＣＰＵ２４は、予め記憶されている顔部品テンプレートと、ステップＳ１で検出した顔左右位置と、に基づいて、眉、目、鼻、口の形状に相当する領域（以下「顔部品領域」という。）を設定する。
【００５１】
図９は、顔部品テンプレートを示す図である。顔部品テンプレートは、顔が正面向きの時を想定し、眉、目、鼻、口などの顔部品の位置及び領域の比率を表したものである。顔部品テンプレートは、顔幅を基準値１００としたとき、顔中心から目元までの長さａ、顔中心から目尻までの長さｂ、目の下から眉の上までの長さｃ、目の下から口の下までの長さｄ、顔中心から口尻までの長さｅ、を定めている。ここでは、ａ＝１０、ｂ＝４０、ｃ＝３０、ｄ＝６０、ｅ＝３０である。なお、これらの長さは、人の顔部品のサイズを統計的に調べた結果に基づいて定められたものであり、上記の値に限定されるものではない。
【００５２】
図１０は、人の顔部品の統計的なサイズを示す図である。顔幅を基準値１００としたとき、顔部品のサイズは統計的には次のようになる。
【００５３】
顔中心から目元までの長さ  ：１０〜２０
目元から目尻までの長さ    ：１５〜２５
目の下から眉の上までの長さ：２０〜３０
目の下から口の下までの長さ：４０〜６０
顔中心から口尻までの長さ  ：２０〜３０
したがって、顔部品テンプレートは、このような統計的な範囲内であるのが好ましい。なお、特定の人物にカスタマイズするのであれば、顔部品テンプレートの各部の長さは、上記の統計的な範囲に限定されるものではない。
【００５４】
図１１は、ステップＳ６の処理において設定された顔部品領域を示す図である。顔画像の大きさは、ドライバからカメラ１０までの距離によって異なる。そこで、ＣＰＵ２４は、図１１に示すように、顔画面テンプレート及び顔左右位置に基づいて、顔部品領域を設定して、ステップＳ７に移行する。
【００５５】
ステップＳ７では、ＣＰＵ２４は、横エッジヒストグラムのピーク（目の位置候補）と顔部品領域とをマッチングして、目・鼻・口の位置の検出結果を出力する。
【００５６】
図１２は、目の位置候補と顔部品領域とのマッチングを説明する図である。同図（Ａ）から（Ｃ）に示すように、それぞれの目の位置候補と顔部品領域の目の位置とを対応させて、顔部品領域が正しい位置にあるか否かを検証する。本実施の形態では、ＣＰＵ２４は、顔部品領域の左右対称性を利用して、顔部品領域の目の位置が正しい位置にあるか否かを検証する。
【００５７】
つまり、顔部品領域の目の位置を目の位置候補に次々と当てはめ、顔部品領域内で左右対称となる横エッジの点をカウントする。そして、カウント値が最大となったときに左右対称性が最も高くなり、その顔部品領域の位置が、実際の目・鼻・口の位置と一致した位置となる。
【００５８】
図１３は、ＣＰＵ２４による左右対称性の計算を説明する図であり、（Ａ）は左右対称性が高い場合、（Ｂ）は左右対称性が低い場合である。ＣＰＵ２４は、顔部品領域内で、対称軸を中心に左右対称となる横エッジを検出し、左右双方に所定長さの横エッジを検出したときに加点する。なお、左右対称に存在するものを検出できればよく、所定長さの横エッジの代わりに、所定領域の横エッジを検出してもよい。
【００５９】
例えば図１３（Ａ）では、左右対称となった点が９箇所あるので、左右対称性（カウント値）＝９である。同図（Ｂ）では、左右対称となった箇所が３箇所あるので、左右対称性＝３である。この場合、同図（Ａ）の位置にある顔部品領域が、実際の目、鼻、口の位置と一致したことになる。
【００６０】
さらに、ＣＰＵ２４は、顔部品領域の最適な位置を検出した後、その顔部品領域における眉、目、鼻、口の各々の位置を、それぞれ実際の眉、目、鼻、口の位置として検出することもできる。
【００６１】
以上のように、本発明の第１の実施形態に係る顔部品位置検出装置は、顔画像の横エッジを横方向に反映した横エッジヒストグラムを作成し、横エッジヒストグラムの複数のピークをそれぞれ目の位置候補に設定し、目の位置候補と顔部品領域とをマッチングすることによって、顔部品領域の最適な位置を検出する。これにより、顔部品位置検出装置は、ドライバが眼鏡をかけていたり髪の毛で目や眉毛が隠れていて、目に対応する横エッジのピークが現れにくい場合でも、複数のピークを目の位置候補として設定して顔部品領域とのマッチングを行うので、確実に顔部品位置を検出することができる。
【００６２】
また、上記顔部品位置検出装置は、目の位置候補と顔部品領域とのマッチングの際には、眉、目、口などの横エッジの対称性を考慮しているので、ノイズの影響を受けることなく、顔部品位置を検出することができる。
【００６３】
［第２の実施形態］
つぎに、本発明の第２の実施形態について説明する。なお、第１の実施形態と同一の部位には同一の符号を付し、主に第１の実施形態と異なる部分について説明し、重複する説明は省略する。
【００６４】
ステップＳ６で設定された顔部品領域は、顔が正面向きの時を想定したものである。このため、ドライバが横を向いている場合は、ステップＳ６において、この顔部品領域をそのまま使用することができない。
【００６５】
図１４は、顔が横向きの時を想定した顔部品領域を示す図である。顔が横を向いた場合、向いた側の顔部品領域の眉や目は、その反対側の眉や目よりも幅が小さくなる必要がある。
【００６６】
そこで、第２の実施形態では、顔が横を向いた場合でも、図１４に示すような顔部品領域を設定できるようにしている。ここでは、顔が円筒形であると仮定して、顔の向き（横を向いた角度）に応じて顔部品領域を変形する。
【００６７】
図１５は、上部からみたときの人の頭を示す図である。人の頭を上部から見ると、目などの顔部品は、同図の太字のように、円筒上に配置される。これを画像平面に投影すると、顔の端に近い顔部品の幅は、顔の中央に近い顔部品の幅と比較して、狭くなる。
【００６８】
顔部品の領域を決める角度をθ1、θ2、顔部品の鉛直軸方向周りの回転角度（横を向いた角度）をθ3、顔幅の半分の長さをｒとすると、正面向きの時の顔部品幅Ｗ1、及び横を向いた時の顔部品幅Ｗ2は、次の通りになる。
【００６９】
【数１】
2006065640.tif 000003
【００７０】
θ1、θ2は顔部品テンプレートを決定すると同時に一意的に定められる値であり、ｒはステップＳ２で検出された顔左右位置の長さの半分である。
【００７１】
したがって、顔が横を向いている時は、ＣＰＵ２４は、上述したステップＳ６において次の演算を行うとよい。すなわち、第１の実施形態と同様に、顔部品テンプレートと顔左右位置とに基づいて顔部品領域を設定した後、横を向いた角度θ3を検出し、横を向いた角度θ3を用いて上記の顔部品幅Ｗ2を演算すればよい。なお、ステップＳ６以外の処理については、第１の実施形態と同様でよい。
【００７２】
ここでは、人の顔（頭）が円形であると仮定して説明したが、その他、楕円形、球形、楕円球形と仮定してもよい。また、頭の統計的な形状を調べ、その形状を設定してもよい。
【００７３】
図１６は、顔が傾いた時を想定した顔部品領域を示す図である。顔の両端の中央にある正面方向軸周りに回転させ、その回転座標系でこれまでと同様の左右対称の計算を行う。想定する顔の傾き角度は、通常、ドライバが傾く範囲内で、かつ安全に運転できる角度を設定する。
【００７４】
以上のように、本発明の第２の実施形態に係る顔部品位置検出装置は、横を向いた角度又は傾いた角度を検出し、その角度に応じて顔部品領域を設定し、この顔部品領域と目の位置候補とをマッチングすることによって、顔が横を向いたり傾いたりした場合でも、顔部品領域の最適な位置を検出できる。これにより、第１の実施形態と同様に、眉、目、鼻、口などの所望の顔部品の位置を検出することができる。
【００７５】
本発明は、上述した第１及び第２の実施形態に限定されるものではなく、特許請求の範囲に記載した事項の範囲内で設計変更されたものについても適用可能である。
【００７６】
例えば、ＣＰＵ２４は、ＲＯＭ２３に記憶されたプログラムの代わりに、図示しない光ディスク又は磁気ディスクに記録されたプログラムを読み出して、このプログラムに基づいて、上述したように顔部品位置を検出してもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の第１の実施形態に係る顔部品位置検出装置の構成を示す図である。
【図２】コンピュータの構成を示すブロック図である。
【図３】ＲＯＭに記憶された顔部品位置検出プログラムの処理ルーチンを示すフローチャートである。
【図４】ステップＳ２における顔左右位置検出ルーチンの一例を示すフローチャートである。
【図５】（Ａ）から（Ｆ）は、顔左右位置検出ルーチンの各工程で生成される画像を示す図である。
【図６】顔左右位置検出ルーチンにより顔左右位置が検出された状態を示す図である。
【図７】ドライバが理想的な状態のときに得られる横エッジとそれに対応する横エッジヒストグラムを示す図である。
【図８】横エッジとそれに対応する横エッジヒストグラムを示す図であり、（Ａ）はドライバが眼鏡をかけた場合、（Ｂ）は髪の毛で眉や目が隠れている場合、（Ｃ）は顔が傾いている場合である。
【図９】顔部品テンプレートを示す図である。
【図１０】人の顔部品の統計的なサイズを示す図である。
【図１１】ステップＳ６の処理において設定された顔部品領域を示す図である。
【図１２】目の位置候補と顔部品領域とのマッチングを説明する図である。
【図１３】ＣＰＵ２４による左右対称性の計算を説明する図であり、（Ａ）は左右対称性が高い場合、（Ｂ）は左右対称性が低い場合である。
【図１４】顔が横向きの時を想定した顔部品領域を示す図である。
【図１５】上部からみたときの人の頭を示す図である。
【図１６】顔が傾いた時を想定した顔部品領域を示す図である。
【符号の説明】
【００７８】
１０  カメラ
１２  光源
１４  コンピュータ
１６  表示装置
２１  Ａ／Ｄ変換器
２２  画像メモリ
２３  ＲＯＭ
２４  ＣＰＵ
２５  ＲＡＭ
２７  表示制御器
２８  発光制御器
【図１】
2006065640.tif 000004
【図２】
2006065640.tif 000005
【図３】
2006065640.tif 000006
【図４】
2006065640.tif 000007
【図５】
2006065640.tif 000008
【図６】
2006065640.tif 000009
【図７】
2006065640.tif 000010
【図８】
2006065640.tif 000011
【図９】
2006065640.tif 000012
【図１０】
2006065640.tif 000013
【図１１】
2006065640.tif 000014
【図１２】
2006065640.tif 000015
【図１３】
2006065640.tif 000016
【図１４】
2006065640.tif 000017
【図１５】
2006065640.tif 000018
【図１６】
2006065640.tif 000019