(57)【要約】【課題】正確に眼を検出できる眼検出装置を提供する。【解決手段】カメラ１０は対象者の顔を撮影し、コンピュータ１４のＣＰＵ２４はその画像を取得し、画像メモリ２２に格納する。ＣＰＵ２４は、画像メモリ２２に格納された画像に基づいて、顔の中心線を判別する。ＣＰＵ２４は、顔画像に基づいて、鼻孔の候補を抽出する。ＣＰＵ２４は、抽出した鼻孔候補のうちで、顔の中心線に対して対象である鼻孔の候補の組み合わせを左右鼻孔として判別し、判別した左右鼻孔の位置を基準として眼を検出する眼と判別する。【選択図】図２
2008224589.tif 000002
【特許請求の範囲】
【請求項１】
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶する顔の画像に基づいて、顔の中心線を判別する顔中心線判別手段と、
前記顔画像記憶手段が記憶する顔の画像に基づいて、鼻孔の候補を抽出する鼻孔候補抽出手段と、
前記鼻孔候補抽出手段が抽出した鼻孔の候補のうちで、顔中心線判別手段が判別した顔の中心線に対して対象である鼻孔の候補の組み合わせを左右鼻孔として判別する鼻孔判別手段と、
前記鼻孔判別手段が判別した左右鼻孔の位置を基準として眼を検出する眼検出手段と、を備える、
ことを特徴とする眼検出装置。
【請求項２】
前記顔画像記憶手段が記憶する顔の画像に基づいて、顔を判別する顔判別手段と、
前記顔判別手段が判別した顔の位置に基づいて鼻孔探索領域を設定する領域設定手段と、をさらに備え、
前記鼻孔候補抽出手段は、前記領域設定手段が設定した鼻孔探索領域より左右鼻孔の候補を抽出する、
ことを特徴とする請求項１に記載の眼検出装置。
【請求項３】
顔判別手段が判別した顔の位置と、顔中心線判別手段が判別した顔の中心線とに基づいて、顔の向きを表すパラメータを算出するパラメータ算出手段をさらに備え、
前記パラメータ算出手段が算出したパラメータが所定の範囲内である場合に、前記眼検出手段は、眼を検出する、
ことを特徴とする請求項２に記載の眼検出装置。
【請求項４】
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶する顔の画像に基づいて、顔の中心線を判別する顔中心線判別手段、
前記顔画像記憶手段が記憶する顔の画像に基づいて、鼻孔の候補を抽出する鼻孔候補抽出手段、
前記鼻孔候補抽出手段が抽出した鼻孔の候補のうちで、顔中心線判別手段が判別した顔の中心線に対して対象である鼻孔の候補の組み合わせを左右鼻孔として判別する鼻孔判別手段、
前記鼻孔判別手段が判別した左右鼻孔の位置を基準として眼を検出する眼検出手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、車両等の移動体を運転している運転者等の顔の眼を検出する眼検出装置及びプログラムに関する。
【背景技術】
【０００２】
現在、運転者の顔画像より眼を検出する機能を備える眼検出装置が実用化されている。これらの眼検出装置の中でも、眼を検出するために先ず鼻孔を検出する眼検出装置がある。特許文献１には鼻孔を検出する鼻検出装置が開示されている。
【０００３】
特許文献１に開示されている鼻検出装置は、先ず、運転者の顔の画像より縦方向及び横方向のエッジを検出する。次に、縦方向及び横方向のエッジの共通点に基づいて鼻孔の候補を検出し、横方向のエッジに基づいて眼の候補を検出する。検出した鼻孔の候補と眼の候補とからそれらの位置関係によって好適な鼻孔と眼との組み合わせの候補を抽出し、抽出した鼻孔と眼との組み合わせの候補から統計的な処理によって鼻孔の位置を検出する。
【特許文献１】特開２００６−３８６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示されている技術では、黒子を鼻孔と誤検出してしまう可能性がある。
【０００５】
また、運転者の顔の向きによっては、鼻孔と眼との位置関係が変わり、正確な検出ができない。
【０００６】
本発明は上記問題点に鑑みてなされたものであり、正確に鼻孔を検出でき、その鼻孔に基づいて眼を検出できる眼検出装置、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る眼検出装置は、
対象者の顔の画像を記憶する顔画像記憶手段と、
前記顔画像記憶手段が記憶する顔の画像に基づいて、顔の中心線を判別する顔中心線判別手段と、
前記顔画像記憶手段が記憶する顔の画像に基づいて、鼻孔の候補を抽出する鼻孔候補抽出手段と、
前記鼻孔候補抽出手段が抽出した鼻孔の候補のうちで、顔中心線判別手段が判別した顔の中心線に対して対象である鼻孔の候補の組み合わせを左右鼻孔として判別する鼻孔判別手段と、
前記鼻孔判別手段が判別した左右鼻孔の位置を基準として眼を検出する眼検出手段と、を備える、
ことを特徴とする。
【０００８】
例えば、前記顔画像記憶手段が記憶する顔の画像に基づいて、顔を判別する顔判別手段と、
前記顔判別手段が判別した顔の位置に基づいて鼻孔探索領域を設定する領域設定手段と、をさらに備え、
前記鼻孔候補抽出手段は、前記領域設定手段が設定した鼻孔探索領域より左右鼻孔の候補を抽出してもよい。
【０００９】
例えば、顔判別手段が判別した顔の位置と、顔中心線判別手段が判別した顔の中心線とに基づいて、顔の向きを表すパラメータを算出するパラメータ算出手段をさらに備え、
前記パラメータ算出手段が算出したパラメータが所定の範囲内である場合に、前記眼検出手段は、眼を検出してもよい。
【００１０】
本発明の第２の観点に係るプログラムは、
コンピュータを、
対象者の顔の画像を記憶する顔画像記憶手段、
前記顔画像記憶手段が記憶する顔の画像に基づいて、顔の中心線を判別する顔中心線判別手段、
前記顔画像記憶手段が記憶する顔の画像に基づいて、鼻孔の候補を抽出する鼻孔候補抽出手段、
前記鼻孔候補抽出手段が抽出した鼻孔の候補のうちで、顔中心線判別手段が判別した顔の中心線に対して対象である鼻孔の候補の組み合わせを左右鼻孔として判別する鼻孔判別手段、
前記鼻孔判別手段が判別した左右鼻孔の位置を基準として眼を検出する眼検出手段、
として機能させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、正確に眼と鼻孔を検出できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の第１の実施形態に係る眼検出装置５０について説明する。
【００１３】
第１の実施形態の眼検出装置５０は、図１に示すように、ドライバーの顔を撮影して顔画像を生成するカメラ１０と、ドライバーの顔を照明する照明光源１２と、ドライバーの眼及び鼻孔を検出するコンピュータ１４と、コンピュータ１４に接続された表示装置１６と、から構成される。
【００１４】
カメラ１０は例えばＣＣＤカメラ等から構成され、ドライバーの顔の階調画像を一定周期（例えば、１／３０秒）で取得し、出力する。カメラ１０から順次出力される顔画像は、ドライバーの顔（の画像）だけでなく、その背景（の画像）なども含む。
【００１５】
表示装置１６は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、カメラ１０で撮影された顔画像などを表示する。
【００１６】
コンピュータ１４は、カメラ１０により取得された顔動画像を処理してその鼻孔の位置を検出する装置である。コンピュータ１４は、図２に示すように、Ａ／Ｄ変換器２１と、画像メモリ２２と、ＲＯＭ（Read Only Memory）２３と、ＣＰＵ（Central Processing Unit）２４と、ＲＡＭ（Random Access Memory）２５と、表示制御装置２６と、光源制御装置２７と、設定メモリ２８と、操作装置２９と、から構成される。
【００１７】
Ａ／Ｄ（アナログ／ディジタル）変換器２１は、カメラ１０で撮影されたアナログ画像信号をディジタル信号に変換する。
【００１８】
画像メモリ２２は、カメラ１０により生成され、Ａ／Ｄ変換器２１でディジタル化された画像データを格納する。
【００１９】
ＲＯＭ２３は、ＣＰＵの動作を制御するためのプログラムを記憶する。また、ＲＯＭ２３は、後述する画像処理を実行するための様々な固定データを記憶する。
【００２０】
ＣＰＵ２４は、コンピュータ１４全体を制御する。また、ＣＰＵ２４は、ＲＯＭ２３に格納されているプログラムを実行することにより、カメラ１０により取得された一連の顔画像を処理して眼を検出する。
【００２１】
ＲＡＭ２５は、ＣＰＵ２４のワークエリアとして機能する。
【００２２】
表示制御装置２６は、ＣＰＵ２４の制御のもと、映像データ等を表示装置１６が出力可能なデータ形式に変換し、表示装置１６に出力する。
【００２３】
光源制御装置２７は、照明光源１２の点灯・消灯を制御する。
【００２４】
設定メモリ２８は、ＣＰＵ２４が顔画像を処理して眼を検出する処理の設定に関する情報（以下、設定情報）を格納する。
【００２５】
操作装置２９は、ユーザから操作情報を受け付け、操作に応じた操作信号をＣＰＵ２４に送出する。
【００２６】
次に、ＲＯＭ２３に格納される固定データの例を、図３を参照しながら説明する。まず、ＲＯＭ２３は、図３（ａ）に示すような、縦エッジ検出用ソーベルフィルタのオペレータを格納する。縦エッジ検出用ソーベルフィルタは、図３（ｃ）に示すような横方向の濃淡差を強調するためのオペレータである。また、ＲＯＭ２３は、図３（ｂ）に示すような、横エッジ検出用ソーベルフィルタのオペレータを格納する。横エッジ検出用ソーベルフィルタは、図３（ｄ）に示すような横方向の濃淡差を強調するためのオペレータである。
【００２７】
ただし、前提として、顔画像を構成する各画素は、ＲＧＢの各色が８ビットの諧調を有するように設定されており、第０階調〜第２５５階調の２５６諧調の内いずれかの諧調を有するものとする。第０階調は黒、第２５５階調は白である。
【００２８】
設定メモリ２８に格納される各種パラメータの例を、図４を参照しながら説明する。
先ず、閾値Ａｔｈは、顔向きが所定の範囲内の向きであるか否かを判別するための閾値である。
鼻孔探索領域設定パラメータｅ，ｆ，ｇは、検出された顔位置から鼻孔が存在すると推定される鼻孔探索領域を算出するためのパラメータである。
眼探索領域設定パラメータｈは、検出された顔位置と鼻孔位置とから鼻孔が存在すると推定される眼探索領域を算出するためのパラメータである。
眼検出用横ソーベル閾値は、顔画像から顔の眼候補を抽出する際に横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値から、横エッジラインか否かを判別するための閾値である。
閾値Ｌｔｈ，Ｃｘｔｈ，Ｄｔｈは、眼候補となるエッジラインペアを抽出するために使用する閾値である。
閾値Ｅｔｈは、眼候補であるエッジラインペアから眼を判別するために使用する閾値である。
【００２９】
以下、上記構成を有する本実施形態に係る眼検出装置５０の動作を説明する。
【００３０】
まず、図３〜８を参照して、眼検出装置５０が、顔画像中の眼及び鼻孔を検出する動作の概要を説明する。
【００３１】
カメラ１０は、図５（ａ）に示すような対象者の顔画像を所定周期（例えば、１／３０秒周期）で撮影して顔画像を出力する。出力された顔画像は画像メモリ２２に順次格納される。
【００３２】
次に、ＣＰＵ２４は、画像メモリ２２に格納されている顔画像を順次読み出し、以下の処理を行う。
【００３３】
先ず、ＣＰＵ２４は、縦エッジ検出用ソーベルフィルタ（図３（ａ））を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の左右端を検出する。また、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタ（図３（ｂ））を用いて、読み出した顔画像を処理し、その顔画像の各画素の輝度値に基づいて顔の上下端を検出する。
【００３４】
例えば、図５（ａ）に示す顔画像の場合、顔の左右端は、ｘ＝ｉ，ｊであり、上下端は、ｙ＝ｍ，ｎである。顔の左右端と上下端から、顔の位置が検出できる。ただし、顔の上端は眉毛と額の間であり、顔の下端は口と顎の間である。
【００３５】
次に、ＣＰＵ２４は、顔画像より対象者の顔の中心線Ｂを検出する。ただし、顔の中心線とは、顔の正面における中心線であり、顎から鼻を通り、額に伸びる線である。
【００３６】
中心線Ｂの測定手法自体は任意であるが、本実施形態では、ＣＰＵ２４が顔画像より次式に基づいて、顔のｘ軸方向の中心（重心）位置の座標を求めるものとする。
Ｂ（顔の中心のｘ座標）＝Σ（ｘｉ・Ｇｉ）／ΣＧｉ・・・（１）
ｘｉ：ｉ番目の画素のｘ座標の値
Ｇｉ：ｉ番目の画素の諧調値
ｉ：１〜ｎ    ｎは画素の総数
【００３７】
ＣＰＵ２４は、算出した顔の左右端と中心線Ｂとに基づいて、顔向きを判別し、判別した顔向きにより以後の処理を行うか否かを判別する。具体的には、ＣＰＵ２４は、図５（ａ）に示すように、顔中心線Ｂが左右両端位置の中心（ｉ＋ｊ）／２より閾値Ａｔｈ以上離れている場合は以後の処理を行う。また、図５（ｂ）に示すように、顔中心線Ｂが左右両端位置の中心（ｉ＋ｊ）／２より閾値Ａｔｈ以上離れている場合は以後の処理を行わない。
【００３８】
以後の処理を行う場合には、ＣＰＵ２４は、鼻孔探索領域Ａを抽出し、その領域から鼻孔の候補を抽出する。
具体的には、ＣＰＵ２４は、図６（ａ）（ｂ）に示すような、ａ≦ｘ≦ｂ，ｄ≦ｙ≦ｃの範囲である鼻孔探索領域Ａを抽出する。
ただし、ａ＝｛ｉ＋（ｊ−ｉ）・ｅ｝
ｂ＝｛ｊ−（ｊ−ｉ）・ｅ｝
ｃ＝｛ｍ−（ｍ−ｎ）・ｆ｝
ｄ＝｛ｎ＋（ｍ−ｎ）・ｇ｝
ｅ＝５／１６
ｆ＝５／１６
ｇ＝２／１６        であり、数値ｅ，ｆ，ｇは、設定メモリ２８に格納されているパラメータである。
【００３９】
ＣＰＵ２４は、鼻孔探索領域Ａにおいて所定の輝度値以下の画素が横方向に３〜５画素分連続しているもの（横エッジ）を検出する。また、ＣＰＵ２４は、鼻孔探索領域Ａにおいて所定の輝度値以下の画素が縦方向に３〜５画素分連続しているもの（縦エッジ）を検出する。ＣＰＵ２４は、図６（ｃ）に示すように、横エッジと縦エッジのうちで重なっているものを鼻孔候補として検出する。図６（ｃ）に示す例では、Ｃ１とＤ１とＥ１とが鼻孔候補として検出されている。
【００４０】
ＣＰＵ２４は、各鼻孔候補の重心を算出し、顔中心線検出処理で検出した中心線Ｂに対して左右対称である鼻孔候補の組み合わせを左右鼻孔として判別する。例えば、図６（ｂ）〜（ｄ）に示す例では、ＣＰＵ２４は、図６（ｂ）に示す鼻孔探索領域Ａより、図６（ｃ）に示すような鼻孔候補Ｃ１、Ｄ１、Ｅ１を抽出する。そして、ＣＰＵ２４は、図６（ｄ）に示すような、鼻孔候補Ｃ１の重心Ｃ２と、Ｄ１の重心Ｄ２と、Ｅ１の重心Ｅ２とを算出する。ＣＰＵ２４は、重心Ｄ２とＥ２は左右対称であるので、鼻孔候補Ｄ１，Ｅ１を左右鼻孔と判別する。
【００４１】
ＣＰＵ２４は、設定メモリ２８に格納されているパラメータと検出した顔位置と鼻孔位置とに基づいて図７（ａ）に示すような、眼が含まれると推定される眼探索領域Ｆを抽出する。図７（ａ）に示す図を用いて、具体的に説明すると、顔の左右端が、ｘ＝ｉ，ｊであり、上下端が、ｙ＝ｍ，ｎであり、左右鼻孔の重心のｙ座標がｕである場合、図４に示されるような、設定メモリ２８に格納される眼領域設定パラメータｈを用いて、眼探索領域Ｆは、ｉ≦ｘ≦ｊ且つｗ≦ｙ≦ｍ（ただし、ｗ＝ｕ−ｈ）で表される。
【００４２】
ＣＰＵ２４は、横エッジ検出用ソーベルフィルタ（図３（ａ））を用いて眼領域の画像内の横エッジラインを抽出する処理を行う。ここで、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタを用いて処理した各画素の微分値が眼検出用横ソーベル閾値（図４）以上である画素の連なりを横エッジラインと判別する。
【００４３】
その結果、図７（ｃ）に示すように、ｙ軸方向に明るい画素から暗い画素に移るエッジラインがマイナスエッジとして表され、ｙ軸方向に光度が暗い画素から明るい画素に移るエッジラインがプラスエッジとして現れる。なお、図面上は、プラスエッジを破線で、マイナスエッジを実線で表す。
【００４４】
次に、ＣＰＵ２４は、求めたマイナスエッジラインとプラスエッジラインとから、次の三つの数式を満たすマイナスエッジとプラスエッジの組み合わせを抽出する。
【００４５】
Ｌｐ−Ｌｍ＜Ｌｔｈ・・・（２）
ただし、Ｌｐはプラスエッジの長さを表す値であり、Ｌｍはマイナスエッジの長さを表す値であり、Ｌｔｈは閾値である。ただし、閾値Ｌｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（２）を満たすマイナスエッジとプラスエッジとの長さは閾値Ｌｔｈの範囲で近似している。
【００４６】
Ｃｘｐ−Ｃｘｍ＜Ｃｘｔｈ・・・（３）
ただし、Ｃｘｐはプラスエッジの重心のｘ座標であり、Ｃｘｍはマイナスエッジの重心のｘ座標であり、Ｃｘｔｈは閾値である。ただし、閾値Ｃｘｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（３）を満たすマイナスエッジとプラスエッジとの重心のｘ座標は閾値Ｃｘｔｈの範囲で近似している。
【００４７】
Ｄｇ＜Ｄｔｈ・・・（４）
ただし、Ｄｇはマイナスエッジの重心とプラスエッジの重心との間の距離であり、Ｄｔｈは閾値である。ただし、閾値Ｄｔｈは、図４に示されるように、設定メモリ２８に格納されている。数式（４）を満たすマイナスエッジとプラスエッジとの重心間距離は閾値Ｄｔｈ以内である。
【００４８】
上記三つの数式を使って、抽出されたマイナスエッジとプラスエッジの組み合わせの内、マイナスエッジは上瞼候補とされ、プラスエッジは下瞼候補とされる。
【００４９】
つまり、数式（２）〜（４）を満たすマイナスエッジとプラスエッジの組み合わせは、ある程度、長さが等しく、位置が近く、重心のｘ座標が一致しているマイナスエッジとプラスエッジの組み合わせである。
【００５０】
図７（ｄ）に、数式（２）〜（４）を満たすマイナスエッジとプラスエッジの組み合わせの一例を示す。プラスエッジとマイナスエッジとの組み合わせである候補１〜７が対象者の眼の候補（以下、眼候補）である。
【００５１】
ＣＰＵ２４は、眼候補のうちで鼻孔に対する相対的な位置が同じであり、且つ、図８に示すような、その眼候補のマイナスエッジの重心とプラスエッジの重心との間の距離Ｄｇの履歴が瞬きに起因する変化を含む眼候補を眼として判別する。
具体的に述べると、
Ｄｇの最大値−Ｄｇの最小値＞閾値Ｅｔｈ・・・（５）
である眼候補を眼として判別する。
【００５２】
ここで、本実施形態に係る眼検出装置５０が行う眼検出処理について図９に示すフローチャートを参照して説明する。
【００５３】
コンピュータ１４内のＣＰＵ２４は、周期的に（例えば、１／３０秒毎）に図９の眼検出処理を開始する。
【００５４】
先ず、眼検出装置５０の電源が投入されると、ＣＰＵ２４は、後述する前処理を行い、ドライバーの顔画像を取り込み、縦エッジを強調した画像と横エッジを強調した画像とを生成する（ステップＳ１００）。
【００５５】
次に、ＣＰＵ２４は、後述する顔位置検出処理を行い、上記の前処理で生成した縦エッジを強調した画像を使用して顔の左右端を検出し、横エッジを強調した画像を使用して顔の上下端を検出し、顔画像における顔の位置を検出する（ステップＳ２００）。
【００５６】
ＣＰＵ２４は、顔中心線検出処理を行い、上記の（１）式を使用して顔の中心線Ｂを検出する（ステップＳ３００）。
【００５７】
ＣＰＵ２４は、検出した顔の位置と中心線Ｂとに基づいて、顔向きが所定の範囲内の向きか否かを判別する（ステップＳ４００）。
【００５８】
顔向きが所定の範囲内の向きではないと判別すると（Ｓ４００；ＮＯ）、ＣＰＵ２４は、処理を終了させる。
【００５９】
顔向きが所定の範囲内の向きであると判別すると（Ｓ４００；ＹＥＳ）、ＣＰＵ２４は、後述する鼻孔候補抽出処理を行う（ステップＳ５００）。具体的に述べると、顔画像における鼻孔探索領域を抽出し、抽出した鼻孔探索領域から鼻孔候補を抽出する。
【００６０】
ＣＰＵ２４は、後述する鼻孔判別処理を行う（ステップＳ６００）。具体的に述べると、ＣＰＵ２４は、鼻孔候補と中心線Ｂとの距離に基づいて、左右鼻孔を判別する。
【００６１】
ＣＰＵ２４は、左右鼻孔を検出したか否かを判別する（ステップＳ７００）。
【００６２】
左右鼻孔を検出していないと判別すると（Ｓ７００；ＮＯ）、ＣＰＵ２４は、処理を終了させる。
【００６３】
左右鼻孔を検出したと判別すると（Ｓ７００；ＹＥＳ）、ＣＰＵ２４は、後述する眼候補抽出処理を行う（ステップＳ８００）。具体的に述べると、ＣＰＵ２４は、上記の顔位置検出処理で検出した顔の位置と上記の鼻孔判別処理で判別した鼻孔の位置とを使用して顔画像中から眼探索領域Ｆを抽出し、横エッジラインを抽出し、抽出した横エッジラインから眼の候補となるエッジラインの対を抽出する。
【００６４】
ＣＰＵ２４は、後述する眼判別処理を行う（ステップＳ９００）。具体的に述べると、ＣＰＵ２４は、上瞼候補と下瞼候補のエッジラインの重心の間の距離Ｄｇを計測し、鼻孔に対する相対的な位置が同じである、且つ、計測した距離Ｄｇの履歴が瞬きに起因する変化を含むエッジラインの対を眼として判別すると、処理を終了する。
【００６５】
このようにして、眼検出処理によれば、顔画像を取得して、その画像から鼻孔及び眼を検出することを周期的に繰り返すことができる。
【００６６】
次に、眼検出処理のステップＳ１００において行われる前処理を説明する。簡単に説明すると、前処理において、眼検出装置５０は、ドライバーの顔画像を撮像し、ソーベルフィルタを使用してエッジ検出を行う。
【００６７】
以下、図１０を参照して、前処理（Ｓ１００）を詳細に説明する。
【００６８】
先ず、ＣＰＵ２４は、カメラ１０が撮影した対象者の顔画像をＡ／Ｄ変換器２１を介して取り込み、画像メモリ２２に格納するキャプチャ処理を行う（ステップＳ１１０）。
【００６９】
次に、ＣＰＵ２４は、座標変換処理を行い、画像メモリ２２に格納した各顔画像の画素を後述するソーベルフィルタ処理実行可能な程度に間引く処理を行う（ステップＳ１２０）。
【００７０】
ＣＰＵ２４は、ＲＯＭ２３に格納されている縦エッジ検出用オペレータ（図３（ａ））を用いて座標変換後の顔画像を処理して、顔画像内の縦エッジを強調した画像を生成する。また、ＣＰＵ２４は、ＲＯＭ２３に格納されている横エッジ検出用オペレータ（図３（ｂ））を用いて座標変換後の顔画像を処理して、顔画像内の横エッジを強調した画像を生成する（ステップＳ１３０）。
【００７１】
このようにして、前処理によれば、撮像した顔画像の縦エッジを強調した画像と横エッジを強調した画像を生成することができる。
【００７２】
ここで、眼検出処理のステップＳ２００において行われる顔位置検出処理を説明する。簡単に説明すると顔位置検出処理において、眼検出装置５０は、前処理において生成した縦エッジを強調した画像と横エッジを強調した画像を用いて顔画像における顔の位置を検出する。
【００７３】
以下、図１１を参照して、顔位置検出処理（Ｓ２００）を詳細に説明する。
【００７４】
先ず、ＣＰＵ２４は、後述する顔左右端検出処理を行い、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する（ステップＳ２１０）。
【００７５】
次に、ＣＰＵ２４は、後述する顔上下端検出処理を行い、前処理において生成した横エッジを強調した画像を用いて、顔画像における顔の上下端の位置を検出すると（ステップＳ２２０）、顔位置検出処理を終了する。
【００７６】
このようにして、顔位置検出処理によれば、顔の左右端と上下端を検出することによって顔画像における顔の位置を検出することができる。
【００７７】
ここで、顔位置検出処理のステップＳ２１０において行われる顔左右端検出処理を説明する。簡単に説明すると顔左右端検出処理において、眼検出装置５０は、前処理において生成した縦エッジを強調した画像を用いて、顔画像における顔の左右端の位置を検出する。
【００７８】
以下、図１２を参照して、顔左右端検出処理（Ｓ２１０）を詳細に説明する。
【００７９】
先ず、ＣＰＵ２４は、縦エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を縦方向に投影してヒストグラムを作成する顔左右端検出用ヒストグラム作成処理を行う（ステップＳ２１１）。具体的に述べると、各座標の画素値を何段階かに分割し、ｘ値毎に最も多く各座標の画素値を取る段階を決定する。ｘ値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【００８０】
ＣＰＵ２４は、ステップＳ２１１において作成したヒストグラムにおいて、ピークを取る点（以下、ピーク点）を抽出する（ステップＳ２１２）。
【００８１】
ＣＰＵ２４は、ステップＳ２１２において抽出したピーク点からそのヒストグラム値が閾値以上のものを顔の左右端候補として抽出する（ステップＳ２１３）。
【００８２】
ＣＰＵ２４は、ステップＳ２１３の処理の結果、顔の左右端の候補として、ヒストグラム値が閾値以上のピーク点が二つ抽出されたか否かを判別する（ステップＳ２１４）。
【００８３】
ヒストグラム値が閾値以上のピーク点が二つ抽出されたと判別すると（ステップＳ２１４；ＹＥＳ）、ＣＰＵ２４は、処理をステップＳ２１６に進め、抽出した二つのピーク点を取る位置を顔の左右端と決定する（ステップＳ２１６）。
【００８４】
ヒストグラム値が閾値以上の二つのピーク点が抽出されていないと判別すると（ステップＳ２１４；ＮＯ）、ＣＰＵ２４は、ピーク点から、二点の距離が人の顔幅として適切な間隔を有する二つのピーク点の組み合わせを抽出する（ステップＳ２１５）。
【００８５】
ＣＰＵ２４は、抽出した二つのピーク点を取る位置を顔の左右端と決定する（ステップＳ２１６）。
【００８６】
このようにして、顔左右端検出処理によれば、顔画像において顔の左右端を検出することができる。
【００８７】
ここで、顔位置検出処理のステップＳ２２０において行われる顔上下端検出処理を説明する。簡単に説明すると顔上下端検出処理において、眼検出装置５０は、前処理において生成した横エッジラインを強調した画像を用いて、顔画像における顔の上下端の位置を検出する。
【００８８】
以下、図１３を参照して、顔上下端検出処理（Ｓ２２０）を詳細に説明する。
【００８９】
先ず、ＣＰＵ２４は、横エッジ検出用ソーベルフィルタを用いたソーベルフィルタ処理後の各画素の値を横方向に投影してヒストグラムを作成する顔上下端検出用ヒストグラム作成処理を行う（ステップＳ２２１）。具体的に述べると、各座標の画素値を何段階かに分割し、ｙ値毎に最も多く各座標の画素値を取る段階を決定する。ｙ値毎の上記段階の平均値のグラフを上記のヒストグラムとする。
【００９０】
ＣＰＵ２４は、ステップＳ２２１において作成したヒストグラムにおいて、ピークを取る点（以下、ピーク点）を抽出する（ステップＳ２２２）。
【００９１】
ＣＰＵ２４は、ステップＳ２２２において抽出したピーク点のヒストグラム値に基づいて各ピーク点を眼・眉・口等に対応付ける（ステップＳ２２３）。
【００９２】
ＣＰＵ２４は、ステップＳ２２３において眼・眉・口等に対応付けられた各ピーク点に基づいて、顔画像における顔の上下端の位置を算出する（ステップＳ２２４）。例えば、検出した眉から３画素分上の位置を顔の上端とし、検出した口から３画素分下の位置を顔の下端（口と顎の間）とする。
【００９３】
このようにして、顔上下端検出処理によれば、顔画像において顔の上下端の位置を算出することができる。
【００９４】
ここで、眼検出処理のステップＳ５００において行われる鼻孔候補抽出処理を説明する。簡単に説明すると、鼻孔候補抽出処理において、眼検出装置５０は、顔位置検出処理で検出した顔の位置に基づいて鼻孔探索領域を抽出する。その後、眼検出装置５０は、抽出した領域から鼻孔の候補を抽出する。
【００９５】
以下、図１４を参照して鼻孔候補抽出処理（Ｓ５００）を詳細に説明する。
【００９６】
先ず、ＣＰＵ２４は、顔位置検出処理で検出した顔の左右端と上下端との位置と鼻孔領域設定パラメータとに基づいて、画像メモリ２２に格納した各顔画像から鼻孔が存在すると推定される鼻孔探索領域の画像を抽出する（ステップＳ５１０）。
【００９７】
ＣＰＵ２４は、鼻孔探索領域において所定の輝度値以下の画素が横方向に３〜５画素分連続しているもの（横エッジ）を検出する（ステップＳ５２０）。
【００９８】
ＣＰＵ２４は、鼻孔探索領域において所定の輝度値以下の画素が縦方向に３〜５画素分連続しているもの（縦エッジ）を検出する（ステップＳ５３０）。
【００９９】
ＣＰＵ２４は、横エッジと縦エッジのうちで重なっているものを鼻孔候補として検出する（ステップＳ５４０）。
【０１００】
このように、鼻孔探索領域において所定の輝度値以下の画素の固まりを鼻孔候補として検出することができる。
【０１０１】
ここで、眼検出処理のステップＳ６００において行われる鼻孔判別処理を説明する。簡単に説明すると、鼻孔判別処理において、眼検出装置５０は、鼻孔候補抽出処理で抽出した鼻孔候補の重心を算出する。その後、眼検出装置５０は、算出した鼻孔候補の重心と、顔中心線検出処理で検出した中心線とに基づいて鼻孔候補より鼻孔を判別する。
【０１０２】
以下、図１５を参照して鼻孔判別処理（Ｓ６００）を詳細に説明する。
【０１０３】
先ず、ＣＰＵ２４は、鼻孔候補抽出処理で抽出した鼻孔候補の重心を算出する（ステップＳ６１０）。
【０１０４】
次に、ＣＰＵ２４は、左右対称である鼻孔候補を抽出する（ステップＳ６２０）。
【０１０５】
ＣＰＵ２４は、ステップＳ６２０において、抽出した鼻孔候補を左右鼻孔として記憶し（ステップＳ６３０）、処理を終了する。なお、左右対称である鼻孔候補が存在しない場合も、このまま、処理を終了する。
【０１０６】
このように、鼻孔候補抽出処理において抽出した鼻孔候補のうちで、中心線に対して左右対称なものを左右鼻孔として判別し、記憶することができる。
【０１０７】
ここで、眼検出処理のステップＳ８００において行われる眼候補抽出処理を説明する。簡単に説明すると、眼候補抽出処理において、眼検出装置５０は、顔位置検出処理で検出した顔の位置と鼻孔判別処理で判別した左右鼻孔の重心の位置とに基づいて眼探索領域を抽出する。その後、眼検出装置５０は、抽出した領域から横エッジライン検出用ソーベルフィルタを用いて、プラスエッジとマイナスエッジを検出し、上記の（２）〜（４）式を満たすエッジラインペアを眼の候補として抽出する。
【０１０８】
以下、図１６を参照して眼候補抽出処理（Ｓ８００）を詳細に説明する。
【０１０９】
先ず、ＣＰＵ２４は、顔位置検出処理で検出した顔の左右端と上下端との位置と鼻孔判別処理で判別した左右鼻孔の重心の位置と眼領域設定パラメータとに基づいて、画像メモリ２２に格納した各顔画像から眼が存在すると推定される眼探索領域の画像を抽出する（ステップＳ８１０）。
【０１１０】
ＣＰＵ２４は、ＲＯＭ２３に格納されている横エッジ検出用オペレータ（図３（ｂ））を用いてステップＳ３１０において抽出した領域の画像を処理して、その画像の各画素の微分値が眼検出用横ソーベル閾値以上である画素を横エッジラインと判別し、抽出する（ステップＳ８２０）。
【０１１１】
ＣＰＵ２４は、ステップＳ８２０において抽出した横エッジラインのうちの、プラスエッジの長さＬｐ，マイナスエッジの長さＬｍ，プラスエッジの重心のｘ座標Ｃｘｐ，マイナスエッジのｘ座標Ｃｘｍ，マイナスエッジの重心とプラスエッジの重心との間の距離Ｄｇを算出する（ステップＳ８３０）。
【０１１２】
ＣＰＵ２４は、ステップＳ８３０において算出した各パラメータを用いて、上記の（２）〜（４）式を満たすマイナスエッジとプラスエッジの組み合わせを眼の候補として抽出する（ステップＳ８４０）。
【０１１３】
このように、眼候補抽出処理によれば、眼が存在すると推定される領域において眼の候補となるマイナスエッジとプラスエッジの組み合わせを抽出することができる。
【０１１４】
ここで、眼検出処理のステップＳ９００において行われる眼判別処理を説明する。簡単に説明すると、眼検出装置５０は、眼候補抽出処理で抽出した眼候補のうちから鼻孔に対する相対的な位置が同じであるものを抽出する。次に、眼検出装置５０は、抽出した各眼候補の距離Ｄｇの履歴を抽出する。その後、眼検出装置５０は、距離Ｄｇの履歴において、瞬きに起因する変化を含むエッジラインの対（眼候補）を眼として判別する。
【０１１５】
以下、図１７を参照して、眼判別処理（Ｓ９００）を詳細に説明する。
【０１１６】
先ず、ＣＰＵ２４は、眼候補抽出処理で抽出した眼候補の位置及び距離Ｄｇの履歴を抽出する（ステップＳ９１０）。
【０１１７】
ＣＰＵ２４は、眼候補抽出処理で抽出した眼候補のうちから、鼻孔判別処理で判別した鼻孔の位置に対する眼候補の下瞼部分の位置の重心の相対的な位置が常に同じであるものを抽出する（ステップＳ９２０）。
【０１１８】
ＣＰＵ２４は、ステップＳ９２０において抽出した眼候補のうちから、その距離Ｄｇが閾値Ｅｔｈ以上である眼候補を抽出する（ステップＳ９３０）。
【０１１９】
ＣＰＵ２４は、ステップＳ９３０において抽出した眼候補が左右対称であるか否かを判別する（ステップＳ９４０）。
【０１２０】
ステップＳ９３０において抽出した眼候補が左右対称ではないと判別すると（Ｓ９４０；ＮＯ）、ＣＰＵ２４は、処理を終了する。
【０１２１】
ステップＳ９３０において抽出した眼候補が左右対称であると判別すると（Ｓ９４０；ＹＥＳ）、ＣＰＵ２４は、抽出した眼候補を眼として判別し、ＲＡＭ２５に記憶し（ステップＳ９５０）、処理を終了する。
【０１２２】
このようにして、眼判別処理によれば、眼候補からその鼻孔に対する相対的な位置が同じであり、且つ、瞬きに相当する動きを取るものを眼と判別することができる。
【０１２３】
以上、本実施形態における眼検出装置５０は、異なるタイミングで撮像した複数の顔画像より顔の位置を検出する。それから、眼検出装置５０は、その顔の位置に基づいて鼻孔が存在すると推定される領域を抽出し、その領域から鼻孔候補を抽出する。眼検出装置５０は、抽出した鼻孔候補のうちから鼻孔を判別する。眼検出装置５０は、検出した鼻孔に基づいて眼を検出する。よって、眼検出装置５０は、正確に短時間に眼を検出することができる。
【０１２４】
なお、この発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【０１２５】
上記実施形態では、眼検出装置５０は、眼候補を抽出する際に、ソーベルフィルタを使用したエッジ検出によって抽出したが、画像の濃度勾配を利用した濃度検出によって抽出してもよい。
【０１２６】
上記実施形態では、コンピュータ１４は、カメラ１０が撮影した対象者の顔の動画像について眼検出処理を行った。しかし、応用例では、カメラ１０以外の外部装置から取得した対象者の顔の動画像を画像メモリ２２に格納しておき、その動画像について眼検出処理を行ってもよい。また、複数の顔の画像について眼検出処理を行ってもよい。
【０１２７】
また、上記実施形態では、顔位置検出処理（Ｓ２００）において、顔画像にソーベルフィルタ処理を施し、その画素値に基づいたヒストグラムから顔位置を検出した。しかし、応用例では、特開２００４−３１０３９６号公報に開示されているように、撮像画像を構成する各画素について時間微分し、さらに、この時間微分された画像を縦方向に投影してヒストグラムを作成し、エッジ抽出画像のヒストグラムと時間微分画像のヒストグラムとを合計して、合計したヒストグラムのピーク値の高いものを顔の両端として判別し、顔位置を検出するようにしてもよい。
【０１２８】
また、顔位置検出処理（Ｓ２００）において、テンプレートマッチング法を用い、顔画像に予め登録してあるテンプレートにマッチングさせて、顔の位置を検出してもよい。
【０１２９】
なお、本発明に係る瞼検出装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、顔画像を入力可能な構成のコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読みとり可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する瞼検出装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有するストレージに当該プログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで瞼検出装置を構成してもよい。
【０１３０】
また、上述の機能を、ＯＳ（Operating System）とアプリケーションとの分担、またはＯＳとアプリケーションとの協働により実現する場合などには、アプリケーション部分のみを記録媒体やストレージに格納してもよい。
【０１３１】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上のサーバに前記プログラムを格納し、ネットワークを介して前記プログラムを配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【０１３２】
【図１】本発明の実施形態に係る瞼検出装置の構成を示すブロック図である。
【図２】図１に示すコンピュータの構成を示すブロック図である。
【図３】ＲＯＭに格納されている各種データを説明するための図である。
【図４】設定メモリに格納されている各種データを説明するための図である。
【図５】本発明の実施形態に係る顔向きを判別する処理の概要を説明するための図である。
【図６】本発明の実施形態に係る鼻孔位置を抽出する処理の概要を説明するための図である。
【図７】本発明の実施形態に係る瞼候補を抽出する処理の概要を説明するための図である。
【図８】本発明の実施形態に係る瞼を判別する処理の概要を説明するための図である。
【図９】本発明の実施形態に係る眼検出処理を説明するためのフローチャートである。
【図１０】眼検出処理における前処理を説明するためのフローチャートである。
【図１１】眼検出処理における顔位置検出処理を説明するためのフローチャートである。
【図１２】顔位置検出処理における顔左右端検出処理を説明するためのフローチャートである。
【図１３】顔位置検出処理における顔上下端検出処理を説明するためのフローチャートである。
【図１４】眼検出処理における鼻孔候補抽出処理を説明するためのフローチャートである。
【図１５】眼検出処理における鼻孔判別処理を説明するためのフローチャートである。
【図１６】眼検出処理における眼候補抽出処理を説明するためのフローチャートである。
【図１７】眼検出処理における眼判別処理を説明するためのフローチャートである。
【符号の説明】
【０１３３】
１０      カメラ
１２      照明光源
１４      コンピュータ
１６      表示装置
２１      Ａ／Ｄ変換器
２２      画像メモリ（顔画像記憶手段）
２３      ＲＯＭ
２４      ＣＰＵ（顔中心線判別手段、鼻孔候補抽出手段、鼻孔判別手段、眼検出手段、顔判別手段、領域設定手段、パラメータ算出手段）
２５      ＲＡＭ
２６      表示制御装置
２８      設定メモリ
２９      操作装置
５０      眼検出装置
【図１】
2008224589.tif 000003
【図２】
2008224589.tif 000004
【図３】
2008224589.tif 000005
【図４】
2008224589.tif 000006
【図５】
2008224589.tif 000007
【図６】
2008224589.tif 000008
【図７】
2008224589.tif 000009
【図８】
2008224589.tif 000010
【図９】
2008224589.tif 000011
【図１０】
2008224589.tif 000012
【図１１】
2008224589.tif 000013
【図１２】
2008224589.tif 000014
【図１３】
2008224589.tif 000015
【図１４】
2008224589.tif 000016
【図１５】
2008224589.tif 000017
【図１６】
2008224589.tif 000018
【図１７】
2008224589.tif 000019