(57)【要約】【課題】顔が正面を向いていない場合でも、鼻孔又は眼などの顔の特徴点を効率よく正確に検出できる顔特徴点検出装置を提供する。【解決手段】顔画像を取得する画像入力部２１と、顔画像から顔中心位置を検出する顔中心検出部２２と、顔画像から鼻孔を検出する鼻孔検出部２４と、顔中心検出部２２で検出した顔中心位置が顔画像のほぼ中央であるときに、鼻孔検出部２４で検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定部２５と、顔中心検出部２２で検出した顔中心位置が顔画像のほぼ中央の所定の範囲にない場合、又は基準位置に鼻孔を検出しなかった場合に、鼻孔検出部２４で検出する鼻孔候補のうち、水平方向の座標が顔中心位置に、垂直方向の座標が基準鼻孔位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定部２６と、を備える。【選択図】図２
2008209969.tif 000002
【特許請求の範囲】
【請求項１】
顔画像を取得する画像取得手段と、
前記顔画像から顔中心位置を検出する顔中心検出手段と、
前記顔画像から鼻孔を検出する鼻孔検出手段と、
前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出手段で検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定手段と、
前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央の所定の範囲にない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出手段で検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定手段と、
を備えることを特徴とする顔特徴点検出装置。
【請求項２】
前記鼻孔検出手段で検出した鼻孔の位置にもとづいて、前記顔画像の中に眼探索領域を設定する眼探索領域設定手段と、
前記眼探索領域設定手段で設定した前記眼探索領域内で、所定の条件で眼を探索する眼部探索手段と、
を備え、
前記顔中心検出手段で検出した顔中心位置と前記顔画像の中央との偏差が所定の値以上の場合に、
前記眼探索領域設定手段は、片方の眼のみを探索する眼探索領域を設定し、
前記眼部探索手段は、片方の眼のみを探索する、
ことを特徴とする請求項１に記載の顔特徴点検出装置。
【請求項３】
前記鼻孔判定手段は、前記顔中心位置の近傍に鼻孔が１つしか検出されない場合でも、その候補を鼻孔とすることを特徴とする請求項１に記載の顔特徴点検出装置。
【請求項４】
前記鼻孔検出手段は、前記顔画像に対する顔中心位置に応じて鼻孔を探索する鼻孔探索領域の位置及び／又は幅を設定し、前記鼻孔探索領域で鼻孔を検出することを特徴とする請求項１に記載の顔特徴点検出装置。
【請求項５】
顔画像を取得する画像取得手段と、
前記顔画像から鼻孔を検出する鼻孔検出手段と、
前記鼻孔検出手段で検出した鼻孔の位置にもとづいて、前記顔画像の中に眼探索領域を設定する眼探索領域設定手段と、
前記眼探索領域設定手段で設定した前記眼探索領域内で、所定の条件で眼を探索する眼部探索手段と、
を備え、
前記鼻孔検出手段は、前記眼探索領域設定手段で設定する眼探索領域が前記顔画像の処理範囲内に収まるように、鼻孔を探索する鼻孔探索領域の上限を設定する
ことを特徴とする顔特徴点検出装置。
【請求項６】
顔画像から顔中心位置を検出する顔中心検出ステップと、
前記顔画像から鼻孔を検出する鼻孔検出ステップと、
前記顔中心検出ステップで検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出ステップで検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定ステップと、
前記顔中心検出ステップで検出した顔中心位置が前記顔画像のほぼ中央でない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出ステップで検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定ステップと、
を備えることを特徴とする顔特徴点検出方法。
【請求項７】
コンピュータを、
顔画像から顔中心位置を検出する顔中心検出手段と、
前記顔画像から鼻孔を検出する鼻孔検出手段と、
前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出手段で検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定手段と、
前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央でない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出手段で検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔画像から所定の特徴点を検出する顔特徴点検出装置、特徴点検出方法及びプログラムに関する。
【背景技術】
【０００２】
顔画像に基づいて眼の状態を判定し、その人の視線の方向を計測したり、その人の覚醒度を推定する方法がある。眼の状態を判定するためには、顔画像の眼部を正確に検出することが必要である。また、車両の運転者の状態を判定するような場合には、リアルタイムに顔の特徴点を検出することが必要である。顔画像から眼を正確にしかも短時間で検出するために、瞼のような動きがない鼻孔を検出して、鼻孔の位置から眼部を探索する領域を限定する方法がある。
【０００３】
例えば、特許文献１には、鼻の検出精度の向上を図る技術が記載されている。特許文献１の技術では、運転者の顔を撮影し、撮影した顔の画像について、画像縦方向及び横方向にエッジ検出する。そして、検出した画像縦方向及び横方向のエッジの共通点から鼻の候補を検出すると共に、画像横方向のエッジから眼の候補を検出する。次いで、検出した鼻及び眼の候補を組み合わせ、これら組み合わせから眼鼻の候補として成立するものを選択し、選択した眼鼻の候補から、統計的処理によって鼻の座標を推定する。
【０００４】
また、顔中心位置を検出する技術として、例えば、特許文献２がある。特許文献２の技術は、顔の両端の範囲内で、横エッジを横方向に投影してヒストグラムを作成して、ヒストグラムのピークに基づいて顔の上及び下位置を推定する。そして、縦方向に白黒白と変化する箇所である横エッジを構成する各画素のｘ座標の平均値を顔中心位置として検出する。
【特許文献１】特開２００６−３８６８９号公報
【特許文献２】特開２００６−６５６７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術は、顔画像に鼻孔が２個検出可能な状態を前提にしている。撮像対象の顔が横を向いたときのように顔画像中に鼻孔が２個見えていない場合には、従来の方法では鼻孔を検出できない。また、鼻位置付近にほくろ等の鼻孔らしく見えるものが存在する場合、それを鼻孔と誤検出する可能性がある。誤検出した鼻孔にもとづいて眼を探索する結果、眼を検出できないおそれがある。
【０００６】
従来は、顔画像に対して予め設定された処理領域内全てにエッジ検出処理を実施して眼鼻候補を検出しているので、鼻候補検出で眼鏡の鼻当て部などを検出する場合がある。その後の処理で鼻候補選択が必要である。
【０００７】
本発明はこうした状況に鑑みてなされたものであり、その目的は、顔が正面を向いていない場合でも、鼻孔又は眼などの顔の特徴点を効率よく正確に検出できる顔特徴点検出装置を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係る顔特徴点検出装置は、顔画像を取得する画像取得手段と、前記顔画像から顔中心位置を検出する顔中心検出手段と、前記顔画像から鼻孔を検出する鼻孔検出手段と、前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出手段で検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定手段と、前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央の所定の範囲にない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出手段で検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定手段と、を備えることを特徴とする。
【０００９】
好ましくは、前記鼻孔検出手段で検出した鼻孔の位置にもとづいて、前記顔画像の中に眼探索領域を設定する眼探索領域設定手段と、前記眼探索領域設定手段で設定した前記眼探索領域内で、所定の条件で眼を探索する眼部探索手段と、を備え、前記顔中心検出手段で検出した顔中心位置と前記顔画像の中央との偏差が所定の値以上の場合に、前記眼探索領域設定手段は、片方の眼のみを探索する眼探索領域を設定し、前記眼部探索手段は、片方の眼のみを探索する、ことを特徴とする。
【００１０】
好ましくは、前記鼻孔判定手段は、前記顔中心位置の近傍に鼻孔が１つしか検出されない場合でも、その候補を鼻孔とすることを特徴とする。
【００１１】
また、前記鼻孔検出手段は、前記顔画像に対する顔中心位置に応じて鼻孔を探索する鼻孔探索領域の位置及び／又は幅を設定し、前記鼻孔探索領域で鼻孔を検出してもよい。
【００１２】
本発明の第２の観点に係る顔特徴点検出装置は、顔画像を取得する画像取得手段と、前記顔画像から鼻孔を検出する鼻孔検出手段と、前記鼻孔検出手段で検出した鼻孔の位置にもとづいて、前記顔画像の中に眼探索領域を設定する眼探索領域設定手段と、前記眼探索領域設定手段で設定した前記眼探索領域内で、所定の条件で眼を探索する眼部探索手段と、を備え、前記鼻孔検出手段は、前記眼探索領域設定手段で設定する眼探索領域が前記顔画像の処理範囲内に収まるように、鼻孔を探索する鼻孔探索領域の上限を設定することを特徴とする。
【００１３】
本発明の第３の観点に係る顔特徴点検出方法は、顔画像から顔中心位置を検出する顔中心検出ステップと、前記顔画像から鼻孔を検出する鼻孔検出ステップと、前記顔中心検出ステップで検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出ステップで検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定ステップと、前記顔中心検出ステップで検出した顔中心位置が前記顔画像のほぼ中央でない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出ステップで検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定ステップと、を備えることを特徴とする。
【００１４】
本発明の第４の観点に係るプログラムは、コンピュータを、顔画像から顔中心位置を検出する顔中心検出手段と、前記顔画像から鼻孔を検出する鼻孔検出手段と、前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央であるときに、前記鼻孔検出手段で検出した鼻孔の位置を基準位置として記憶する基準鼻孔位置設定手段と、前記顔中心検出手段で検出した顔中心位置が前記顔画像のほぼ中央でない場合、又は前記基準位置に鼻孔を検出しなかった場合に、前記鼻孔検出手段で検出する鼻孔候補のうち、水平方向の座標が前記顔中心位置に、垂直方向の座標が前記基準位置に最も近い鼻孔候補を鼻孔と判定する鼻孔判定手段、として機能させることを特徴とする。
【発明の効果】
【００１５】
本発明の顔特徴点検出装置によれば、顔向き角度が変化しても正しく鼻孔を検出できる。また、片方の鼻孔しか見えない場合でも正しく鼻孔を検出できる。
【発明を実施するための最良の形態】
【００１６】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。図１は、本発明の一実施の形態に係る眼部検出装置の構成を示すブロック図である。本実施形態の眼部検出装置１は、運転者の顔を撮影して顔画像を生成するカメラ２と、運転者の顔を照明する照明光源３と、運転者の眼部を検出するコンピュータ１０と、コンピュータ１０に接続された表示装置４とを備える。なお、表示装置４は必須の構成要素ではなく、顔画像や検出結果及び判定結果等を表示する必要がなければ特に設ける必要はない。
【００１７】
カメラ２は、例えば、ＣＣＤ（Charge Coupled Device）などでレンズの結像を電気信号に変換し、画素ごとにデジタル化した画像データを出力する。カメラ２は、例えば、運転者の顔の階調画像を取得する。カメラ２によって生成される画像データは、運転者の顔だけでなく、その背景なども含まれている。
【００１８】
表示装置４は、ＬＣＤ（Liquid Crystal Display)又はＣＲＴ(Cathode Ray Tube)などから構成され、カメラ２で撮影された顔画像から生成された二値化画像などを表示する。
【００１９】
コンピュータ１０は、カメラ２により取得された画像データを処理して顔の左右両端位置、上下位置を検出する。この検出した左右両端位置、上下位置に基づいて、顔中心位置を検出する。顔中心位置にもとづいて鼻孔探索領域を設定し、鼻孔を検出する。そして、鼻孔の位置に基づいて眼部を探索する領域（眼探索領域）を設定し、眼探索領域における上下瞼を検出する。
【００２０】
図２は、本発明の一実施の形態である眼部検出装置１の論理的な構成を示すブロック図である。眼部検出装置１は、カメラ２、画像入力部２１、顔中心検出部２２、鼻孔探索領域設定部２３、鼻孔検出部２４、基準鼻孔位置設定部２５、鼻孔判定部２６、眼探索領域設定部２７、上下瞼検出部２８、開閉眼判定部２９、表示処理部３０、データ保持部５、表示装置４などから構成される。データ保持部５には、顔画像データ５１、顔中心データ５２、鼻孔探索領域データ５３、基準鼻孔位置データ５４、鼻孔データ５５、眼探索領域データ５６、瞼データ５７が記憶保持される。眼部検出装置１は、顔画像から眼部の上瞼と下瞼のペアを検出する。
【００２１】
図３は、眼部検出装置１の物理的な構成の一例を示すブロック図である。コンピュータ１０は、図３に示すように、送受信部１６と、画像メモリ１２と、外部記憶部１３と、制御部１４と、主記憶部１５と、表示制御装置１７と、光源制御装置１８と、を備える。画像メモリ１２、外部記憶部１３、主記憶部１５、送受信部１６、表示制御装置１７及び光源制御装置１８はいずれも内部バス１１を介して制御部１４に接続されている。
【００２２】
制御部１４はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部１３に記憶されているプログラムに従って、画像入力部２１、顔中心検出部２２、鼻孔探索領域設定部２３、鼻孔検出部２４、基準鼻孔位置設定部２５、鼻孔判定部２６、眼探索領域設定部２７、上下瞼検出部２８、開閉眼判定部２９及び表示処理部３０の処理を実行する。画像入力部２１、顔中心検出部２２、鼻孔探索領域設定部２３、鼻孔検出部２４、基準鼻孔位置設定部２５、鼻孔判定部２６、眼探索領域設定部２７、上下瞼検出部２８、開閉眼判定部２９及び表示処理部３０は、制御部１４とその上で実行されるプログラムで実現される。
【００２３】
主記憶部１５はＲＡＭ（Random-Access Memory）等から構成され、制御部１４の作業領域として用いられる。データ保持部５は、画像メモリ１２及び主記憶部１５の一部に記憶領域の構造体として記憶保持される。
【００２４】
外部記憶部１３は、フラッシュメモリ、ハードディスク、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、前記の処理を制御部１４に行わせるためのプログラムを予め記憶し、また、制御部１４の指示に従って、このプログラムのデータを制御部１４に供給し、制御部１４から供給されたデータを記憶する。例えば、時系列画像データは、外部記憶部１３に格納されている場合がある。
【００２５】
送受信部１６は、モデム又は網終端装置、及びそれらと接続するシリアルインタフェース又はＬＡＮ（Local Area Network）インタフェースあるいはＮＴＳＣインタフェース等から構成されている。制御部１４は、送受信部１６を介して、カメラ２から画像データを入力する。画像メモリ１２は、カメラ２により生成され、送受信部１６を経由して入力された画像データを記憶する。
【００２６】
表示制御装置１７は、制御部１４の制御下に、表示装置４を制御する。
光源制御装置１８は、照明光源３の点灯・消灯を制御する。
【００２７】
制御部１４は、外部記憶部１３に格納されているプログラムを実行することにより、カメラ２により取得された画像データを処理して顔の中心位置を検出し、この検出した顔中心位置に基づいて鼻孔探索領域を設定し、鼻孔を検出する。そして、検出した鼻孔に基づいて眼探索領域を設定し、眼探索領域における上下瞼を検出して、開閉眼を判定する。
【００２８】
図２に戻って、眼部検出装置１の各部の作用を説明する。カメラ２は顔の画像を撮像する。画像入力部２１は、一定時間間隔でカメラ２から時系列の画像データを入力し、データ保持部５に顔画像データ５１として記憶する。  
【００２９】
顔中心検出部２２は、顔画像データ５１から顔領域を抽出し、顔の向きすなわち顔中心位置を検出する。顔の領域を抽出するには、例えば、顔画像から顔輪郭のエッジを算出する。あるいは、顔輪郭のパターンマッチングによって顔輪郭を抽出してもよい。顔輪郭の範囲で、上から眉のエッジを、下から口下のエッジを検出することによって、顔の領域を設定する。検出した口下の位置と顔領域を、顔中心データ５２の一部として、データ保持部５に記憶する。
【００３０】
図４Ａないし図４Ｄは、エッジ算出用の固定データの例を説明する図である。外部記憶部１３は、図４Ａ、図４Ｂに示すような、水平方向エッジ検出用と垂直方向エッジ検出用ソーベルフィルタのオペレータを格納する。本発明では、画像中で水平方向に輝度が明から暗、又は暗から明に変化する点の連なりを水平方向エッジという。水平方向エッジの点は概ね縦方向に連続するので、縦エッジともいう。また、垂直方向に輝度が明から暗、又は暗から明に変化する点の連なりを垂直方向エッジという。垂直方向エッジの点は概ね横方向に連続するので、横エッジともいう。
【００３１】
図４Ａに示す水平方向エッジ（縦エッジ）検出用ソーベルフィルタは、図４Ｃに示すような縦方向に連続する濃淡差の境界（エッジ）を抽出するためのオペレータである。図４Ｂに示す垂直方向エッジ（横エッジ）検出用のソーベルフィルタは、図４Ｄに示すような横方向に連続する濃淡差の境界（エッジ）を抽出するためのオペレータである。
【００３２】
顔中心位置を検出するには、まず、顔左右位置、つまり運転者の顔の両端位置を検出する。例えば、制御部１４は、顔画像の縦エッジを計算し、その縦エッジを縦方向に投影してヒストグラムを作成する。このとき、顔の両端部分にピークが現れるので、そのピークを顔の両端、すなわち左右位置として検出する。なお、ヒストグラム作成時には、時間差分や長さによる重み付けを行い、ノイズ成分（ヘッドレストや窓枠などの背景）を除去するとよい。
【００３３】
次に、制御部１４は、顔の両端の範囲内で、横エッジを横方向に投影してヒストグラムを作成する。このヒストグラムでは、眉、眼、口に相当する部分にピークが生じる。そこで、ヒストグラムのピークに基づいて顔の上及び下位置を判定する。
【００３４】
なお、顔の左右位置及び上下位置の検出方法は、上記の例に限定されるものではなく、その他テンプレートマッチングや距離画像を用いる手法であってもよい。
【００３５】
制御部１４は、顔画像データ５１に対して、所定の閾値を用いて、縦方向に白→黒→白と変化する箇所である横エッジ（白黒白エッジ）を検出する。ここで、白とは画素の輝度が所定の閾値より上のものであり、黒は画素の輝度が所定の閾値より下のものである。白黒白エッジとは、単に白と黒の境界となるエッジではなく、白→黒→白と変化し、所定の幅を有する横エッジをいう。
【００３６】
画像中の顔の縦幅が例えば６０ピクセル程度の場合、縦方向に２〜４ピクセル幅の黒い画素、つまり輝度が低い画素を検出すればよい。これにより、１ピクセル幅の黒い画素を無視するのでノイズ成分を除去することができる。また、検出幅を４ピクセル以下に限定することで、顔部品（眉、眼、鼻、口）に限定してエッジを検出することができる。なお、縦方向の検出幅は、上記の２〜４ピクセル幅に限定されるものではない。顔の縦幅が６０ピクセルから異なるときは、それに応じて変更すればよい。すなわち、顔の縦幅に応じて縦方向の検出幅を変えればよい。
【００３７】
さらに、制御部１４は、検出した顔の左右位置から顔幅を算出し、白黒白エッジのうち横方向の長さが所定値以上（例えば、顔幅の１０％以上）の白黒白エッジである白黒白長さエッジを検出する。これにより、ノイズによる短い横エッジを除去することができる。ここで、「１０％以上」としたのは、顔画像の統計的データによると、顔幅に対する顔部品の幅は１０％以上になるため、１０％未満は顔部品ではないと考えられるからである。なお、本実施形態では「１０％」としたが、横方向のノイズを除去できるものであれば、この数値に限定されるものでない。以下では、白黒白長さエッジを単に横エッジとして説明する。
【００３８】
制御部１４は、横エッジを構成する各画素のｘ座標の平均値を算出して、その平均値を顔中心位置ｉＦａｃｅＣｅｎｔｅｒとして検出する。制御部１４は、横エッジの画像全体を走査して、横エッジを構成する画素を検出したときはそのｘ座標を加算してｉＸｓｕｍを求めると共に、その加算した回数をｉＣｏｕｎｔとする。横エッジの存在する画素のｘ座標の平均値である顔中心位置ｉＦａｃｅＣｅｎｔｅｒを、次の式で算出する。
ｉＦａｃｅＣｅｎｔｅｒ ＝ ｉＸｓｕｍ／ｉＣｏｕｎｔ
【００３９】
眉、眼、鼻、口の顔部品は左右対称であるため、横エッジが存在する画素のｘ座標の平均値を、顔の中心位置とみなすことできる。同じように、横エッジが存在する画素のｙ座標の平均値を顔中心のｙ座標と定義できる。
【００４０】
以上のように、顔画像から所定範囲内の幅を有する横エッジを検出し、横エッジの座標の平均値を顔中心位置として検出することにより、非常に多くのテンプレートを予め用意してマッチングを行うことで顔中心位置を検出する場合に比べて、演算負担が小さく済み、高速かつ確実に顔中心位置を検出することができる。
【００４１】
撮影対象の顔がカメラ２に対して正面を向いていないときは、顔中心位置を正確に検出することができない。その理由は、顔が横向きの場合、顔が向いた方向の眉や眼に相当する横エッジが短くなってしまい、その結果、横エッジのｘ座標の平均値であるｉＦａｃｅＣｅｎｔｅｒの値が、実際の顔中心位置とずれてしまうからである。
【００４２】
そこで、単純なｘ座標平均値に代えて、重み付けｘ座標平均値を用いる。重み付けｘ座標平均値算の重み係数としては、例えば、次の式で表されるｉＷｅｉｇｈｔを演算する。
ｉＷｅｉｇｈｔ ＝ １＋３・｜（ｘ−Ｘｍａｘ／２）／（Ｘｍａｘ／２）｜
ここで、Ｘｍａｘはｘ座標の最大値、記号｜Ｘ｜はＸの絶対値を表す。
【００４３】
重み係数ｉＷｅｉｇｈｔは、ｘ座標が画像中心位置（ｘ＝Ｘ＿ＭＡＸ／２）にあるときは最小値１になり、ｘ座標が画像の両端（ｘ＝０又はＸ＿ＭＡＸ）にあるときは最大値４になる。つまり、重み係数ｉＷｅｉｇｈｔは、ｘ座標が画像中心位置のときに最小値（極小値）をとり、画像中心位置から両端に移行するに従って単調増加する係数である。
【００４４】
なお、重み係数ｉＷｅｉｇｈｔの最大値４は一例であり、試験をして最適な値に調整してもよい。重み係数ｉＷｅｉｇｈｔは、画像中心位置から両端に移行するに従って単調増加する係数であればよい。
【００４５】
この重み係数を用いて横エッジのｘ座標の重み付けを行えば、顔の両端側の横エッジが重視されるので、顔中心位置を修正することができる。ｉＸｓｕｍに重み付けされたｘ座標を加算し（ｉＸｓｕｍ＝ｉＸｓｕｍ＋ｘ・ｉＷｅｉｇｈｔ）、ｉＣｏｕｎｔに重み係数ｉＷｅｉｇｈｔを加算して（ｉＣｏｕｎｔ＝ｉＣｏｕｎｔ＋ｉＷｅｉｇｈｔ）、前述のｉＦａｃｅＣｅｎｔｅｒを計算する。
【００４６】
このように、制御部１４は、画像中心位置から画像両端側に向かうに従って横エッジの重みを増大させながら、横エッジの重み付けされたｘ座標の平均値を求める。この結果、顔が横を向いて、眉や眼に相当する横エッジが短くなってしまった場合でも、その短い横エッジに重みをおいてｘ座標の平均値を求めることによって、正確に顔中心位置を検出することができる。
【００４７】
顔中心のｙ座標は、横エッジのｙ座標の平均とした場合、顔の向きが縦方向に変化しても、顔に対する位置は殆ど変化しないので、重み付け平均値としなくてもよい。
【００４８】
図５は、顔の円筒モデルを表す。図５（ａ）は、顔の正面やや下から見た円筒モデル、図５（ｂ）は、円筒モデルを上から見た平面図である。撮影された顔画像を図５に示すような円筒モデルとして考える。顔を円筒として捉えると、顔画像における顔中心の位置によって、顔の向き（角度）を判定できる。図５（ｂ）では、顔が角度θだけ横を向いたときの鼻の位置を破線で示す。
【００４９】
顔が正面を向いているときに、顔中心位置に対して鼻孔探索領域を設定することができる。顔を円筒モデルとしてとらえた場合、正面の向きで設定された鼻孔探索領域を顔の向きに応じて変換することができる。
【００５０】
図６は、顔が正面を向いている場合の鼻孔探索領域Ｎを模式的に示す。図６には、顔中心位置が縦の中心線Ｌｖと中心位置の高さを示す線Ｌｈで示される。また、検出された鼻孔に対する眼探索領域Ｅを示す。顔が正面を向いている場合に、顔中心位置に対して鼻孔が存在する範囲を統計的に求めることによって、顔中心位置に対する鼻孔探索領域Ｎを設定することができる。顔中心位置のｙ座標は便宜的なものであって、確実に算出できればどのように定義しても構わない。定義した顔中心に対して鼻孔探索領域Ｎが決定できればよい。
【００５１】
図２にもどって、顔中心検出部２２は、顔中心位置を算出して、顔中心データ５２に記憶する。鼻孔探索領域設定部２３は、顔中心位置に対して鼻孔探索領域Ｎを設定し、鼻孔探索領域データ５３としてデータ保持部５に記憶する。
【００５２】
鼻孔検出部２４は、鼻孔探索領域Ｎの範囲で、ほぼ丸い形の暗所を探索して、鼻孔を検出する。例えば、鼻孔探索領域Ｎの範囲で、水平方向エッジ及び垂直方向エッジを検出する。ここで、左から右に向かって明から暗に変化する点を縦マイナスエッジ、左から右に向かって暗から明に変化する点を縦プラスエッジとする。また、上から下に向かって明から暗に変化する点を横マイナスエッジ、上から下に向かって暗から明に変化する点を横プラスエッジとする。
【００５３】
鼻孔の１つは、顔画像に向かって、縦マイナスエッジが左に、縦プラスエッジが右に、横マイナスエッジが上に、横プラスエッジが下に現れる。それら４種類のエッジがそれぞれ、外側の明領域に向かって中央がふくらむ凸形状であって、エッジの両端が上述の順序で重なる場合に、鼻孔の１つの候補とする。
【００５４】
顔が正面を向いている場合は、鼻孔は２つ見えるので、２つの隣り合ったほぼ丸い形の暗所を探索して、鼻孔を検出する。例えば、４種類のエッジの集合が横にならんで２つ隣り合って検出された場合に、それらを鼻孔候補とする。鼻孔検出部２４は、検出した鼻孔の位置を鼻孔データ５５として、データ保持部５に記憶する。
【００５５】
基準鼻孔位置設定部２５は、顔が正面を向いているとき、すなわち、顔中心位置が顔領域の中央の所定の範囲にあるときに、顔領域に対して検出した鼻孔の位置を基準鼻孔位置として設定する。そして、基準鼻孔位置を基準鼻孔位置データ５４に記憶する。図６では、基準鼻孔位置の高さを破線Ｈで示す。
【００５６】
例えば、基準鼻孔位置は次のように設定する。図７は、鼻孔位置の座標と瞬き回数の関係を表したグラフである。図７はｘ座標を表す。ｙ座標についても同様のグラフが得られる。顔向き正面時の瞬き回数をＮ、瞬きしたときの鼻孔位置を（Ｘn、Ｙn）、閾値係数をαとする。瞬き回数がα×Ｎである鼻孔位置を（Ｘn_min、Ｙn_min）、（Ｘn_max、Ｙn_max）として、基準鼻孔位置（Ｘn_n、Ｙn_n）を、例えば、次の式で定義する。
Ｘn_n ＝ 平均（Ｘn_max − Ｘn_min）
Ｙn_n ＝ 平均（Ｙn_max − Ｙn_min）
又は、瞬き回数が最大である鼻孔位置を基準鼻孔位置としてもよい。統計的に、正面以外の方向を向いているときには瞬きが少なく、正面を向いているときに瞬きが最も多くなるという運転者の特性を利用している。
【００５７】
鼻孔判定部２６は、鼻孔の候補が複数検出された場合に、最も鼻孔らしい候補を鼻孔と判定する。顔が正面を向いている場合には、顔中心位置に最も近く、左右均等に配置する候補を鼻孔と判定する。
【００５８】
眼探索領域設定部２７は、鼻孔の位置に基づいて顔領域の中に眼探索領域Ｅを設定する。鼻孔に対して眼が必ず検出できる最小の範囲を統計的に調査して、眼探索領域Ｅとする。例えば、辺の長さを顔領域の縦又は横の長さに所定の比率を乗じた長さとする長方形を、鼻孔の上に所定の間隔をあけて設置して、眼探索領域Ｅとすることができる。眼探索領域設定部２７は、設定した眼探索領域Ｅを、眼探索領域データ５６として、データ保持部５に記憶する。
【００５９】
図６に、眼探索領域Ｅの例を示す。図６で鼻孔探索領域Ｎの上に配置された２つの長方形が眼探索領域Ｅを表す。顔が正面を向いている場合は、眼は顔中心に対してほぼ左右対称にあると想定されるので、眼探索領域Ｅを顔中心に対して左右対称の位置に設定する。図６では、顔中心からの横方向距離をａ、１つの眼探索領域Ｅの幅をｂで表す。
【００６０】
上下瞼検出部２８は、上下の瞼を眼探索領域Ｅの中で探索する。例えば図４Ｂに示すフィルタを用いて、垂直方向エッジを眼探索領域Ｅで走査して算出する。多くの場合、眼探索領域Ｅを下から走査して、最初に検出される所定の長さ以上の横プラスエッジ（上から下に向かって暗から明に変化するエッジ）を下瞼とすることができる。被写体が眼鏡をかけている場合は、レンズの枠が検出されることがある。しかし、レンズの枠は眼や眉より細く、上下のエッジがほぼ平行に現れるので、容易に判断できる。
【００６１】
上下瞼検出部２８は、下瞼の上の領域で上瞼を検出する。例えば図４Ｂに示すフィルタを用いて、下瞼の上を下から上に走査して、最初に検出される所定の長さ以上の横マイナスエッジ（上から下に向かって明から暗に変化するエッジ）を上瞼とする。
【００６２】
下瞼は、鼻孔に基づいて設定された眼探索領域Ｅを下から走査して検出されるので、確定している。下瞼の上に最初に検出される横マイナスエッジは、虹彩の上エッジを除けば、上瞼しかない。所定の長さ未満のエッジを棄却すれば、下から探索して最初の横マイナスエッジを上瞼とすることができる。上下瞼検出部２８は、検出した左右の上下瞼を瞼データ５７としてデータ保持部５に記憶する。
【００６３】
開閉眼判定部２９は、上瞼と下瞼の対から眼の開いている度合いを計算する。開いている度合い（開度）は、例えば、上瞼の中心と下瞼の中心の距離である。
【００６４】
上下瞼の対とその開度を時系列に対応づけて、開度の変化が瞬きと判定される場合、閉眼とは判定しない。例えば、開度が所定の値以上の瞼候補が、所定のフレーム数以下の画像において、開度が小さくなり、再び開度が大きくなった場合に瞬きと判定する。
【００６５】
顔中心検出部２２で、顔中心位置が顔領域の中央の所定の領域からはずれて検出された場合、すなわち顔が正面を向いていないと判定された場合の各部の処理を説明する。鼻孔探索領域設定部２３は、例えば、図５の円筒モデルに従って、顔中心位置の角度を算出し、その角度に合わせて、鼻孔探索領域Ｎを変換する。鼻孔探索領域設定部２３は、顔中心位置に従って変換した鼻孔探索領域Ｎを鼻孔探索領域データ５３としてデータ保持部５に記憶する。
【００６６】
図８は、顔が正面を向いていない場合の鼻孔探索領域Ｎの例を模式的に示す。図８は、図５（ｂ）の顔が角度θだけ横を向いたときの状況に対応している。顔中心位置は縦の中心線Ｌｖと高さを示す線Ｌｈの交点で示される。顔向き角度をθとして、図６の鼻孔探索領域Ｎを図５の円筒モデルに従って変換すると、図８の鼻孔探索領域Ｎの幅ｃ’は次の式で表される。
ｃ’＝γ×ｃ×ｃｏｓθ
ここで、γは補正係数である。また、顔幅をｗとすると、顔中心線は（ｗ／２）・ｓｉｎθほど顔正面から偏るので、鼻孔探索領域Ｎの右端位置は、（ｗ／２）・ｓｉｎθ−ｃ’／２となる。鼻孔探索領域Ｎの縦ｈもｈ’に変換されるべきだが、変化は小さいので正面の場合と同じとしてもよい。
【００６７】
顔の円筒モデルの中心軸と、カメラ２の光軸が直交していない場合、顔が横を向く（円筒が中心軸のまわりに回転する）と、顔中心の高さが変化するので、それに合わせて鼻孔領域の高さを変換する。顔の仰角が変化した（円筒モデルの中心軸が傾いた）場合も、顔中心位置と顔領域の傾きから仰角を推定して、同様に鼻孔探索領域Ｎを変換する。正面を向いている場合の鼻孔探索領域Ｎを長方形とすると、顔向きが変化した場合の鼻孔探索領域Ｎは台形（厳密には不等辺四角形）に変換されるべきであるが、鼻孔検出処理を簡易にするために、その領域を含む長方形としてよい。
【００６８】
ただし、鼻孔探索領域設定部２３は、眼探索領域Ｅが顔領域の範囲、すなわち顔画像の処理範囲に収まるように、鼻孔探索領域Ｎの上限を設定する。眼探索領域Ｅが顔領域の外にかかった場合、上下瞼の検出に無駄な領域を走査することになり、誤った候補を検出する可能性がある。鼻孔探索領域Ｎの上限を限定することにより、そのような誤検出の可能性をできるだけ排除し、上下瞼検出処理の効率を高めることができる。
【００６９】
鼻孔検出部２４は、変換された鼻孔探索領域Ｎを走査して、鼻孔を検出する。顔が横を向いている場合、鼻孔は１つしか見えないことがある。鼻孔が１つしか検出されない場合でも、顔の向き（顔中心位置）を考慮して妥当であると判断できれば、それを鼻孔候補とする。また、顔の向きが変わると鼻孔の形状が変化する。特に顔が下を向いた場合には、鼻孔は扁平になる。顔向きによって鼻孔の形状が変化することを考慮して、顔向きに従って鼻孔の検出条件を調節してもよい。
【００７０】
鼻孔判定部２６は、すでに設定されている基準鼻孔位置と顔中心位置にもとづいて、鼻孔候補の中から最も鼻孔らしい候補を鼻孔として決定する。基準鼻孔位置を顔の向き（顔中心位置）に従って変換した位置に、鼻孔候補が検出されていれば、それを鼻孔とする。基準鼻孔位置を変換した位置に、鼻孔候補が検出されていない場合、その位置に最も近い鼻孔候補を鼻孔と判定する。鼻孔が１つしか検出されない場合でも、顔の向き（顔中心位置）を考慮して妥当であると判断できれば、基準鼻孔位置を変換した位置に最も近い候補を鼻孔とする。
【００７１】
基準鼻孔位置の高さは、顔向きが変化してもあまり変わらないので、基準鼻孔位置を変換した位置でなく、基準鼻孔位置の高さと縦の中心線Ｌｖとの交点に最も近い候補を鼻孔としてもよい。図８では、基準鼻孔位置すなわち前回正面時の鼻孔位置の高さを破線Ｈで示す。図８では、基準鼻孔位置を変換した高さは、破線Ｈより少し低い位置になる。
【００７２】
眼探索領域設定部２７は、鼻孔位置と顔中心位置から、例えば、図５の円筒モデルに従って、眼探索領域Ｅを変換する。図７を参照して、顔向き角度をθとして、図６の鼻孔探索領域Ｎを図５の円筒モデルに従って変換すると、図８の眼探索領域Ｅは次の式で表される。
ａ’＝α×ａ×ｃｏｓθ
ｂ’＝β×ｂ×ｃｏｓθ
ここで、α、βは補正係数である。また、眼探索領域Ｅの右端位置は、（ｗ／２）・ｓｉｎθ−ａ’／２−ｂ’／２と表される。眼探索領域設定部２７は、変換した眼探索領域Ｅを眼探索領域データ５６としてデータ保持部５に記憶する。
【００７３】
例えば図８に示すように、顔向きによっては眼探索領域Ｅは片側しか現れない。角度θの絶対値が所定の値より大きい場合に、眼探索領域Ｅを片側のみとする。また、眼探索領域Ｅも顔向きが変化した場合に台形（一般には不等辺四角形）に変換されるべきであるが、上下瞼検出処理を簡易にするために、その領域を含む長方形としてよい。
【００７４】
上下瞼検出部２８は、変換された眼探索領域Ｅを走査して、上下の瞼を検出する。眼探索領域Ｅが片側しか設定されていない場合は、その片側の上下瞼のみを検出する。その場合、開閉眼判定部２９は、片方の眼で開閉眼を判定する。
【００７５】
開閉眼判定部２９は、例えば、所定のフレーム数以上、連続した画像において、瞼の開度が所定の値よりも小さい場合に閉眼と判定する。瞼の開度を他の処理に利用することができる。例えば、閉眼と判定された場合に、居眠りと判定することができる。また、眼の開度を顔の向きに加算して、視線の方向を推定することができる。
【００７６】
表示処理部３０は、検出された結果の上下瞼を顔の輪郭等とともに表示装置４に表示する。また、上下瞼の開閉度や、居眠りと判定された場合に音響等を含む警告表示を行ってもよい。また、推定された視線の方向を表示してもよい。
【００７７】
つぎに、眼部検出装置１の動作について説明する。なお、眼部検出装置１の動作は、制御部１４がカメラ２、送受信部１６、画像メモリ１２、外部記憶部１３及び主記憶部１５と協働して行う。
【００７８】
図９は、眼部検出装置１の動作の一例を示すフローチャートである。制御部１４は送受信部１６を介してカメラ２から時系列の顔画像を入力する（ステップＳ１）。そして、前述のとおり、顔中心位置を検出する（ステップＳ２）。
【００７９】
図１０は、ステップＳ２における顔中心検出処理の動作の一例を示すフローチャートである。制御部１４は、データ保持部５から顔画像データ５１を読み出し、この顔画像の画素値を横方向（水平方向）に微分する（ステップＡ１）。具体的には、各画素の輝度とその画素に隣接する画素の輝度との差分を算出して、エッジ部抽出画像を生成する。エッジ部抽出画像において、背景の縦エッジと顔画像の縦エッジのみが抽出される。これらの縦エッジは、運転者の顔が動いていない場合でも、抽出される。
【００８０】
なお、エッジ部抽出画像の画素値（輝度の微分値）を縦方向（垂直方向）に投影して得られるヒストグラムでは、すべてのエッジ部の強度がほぼ等しいので、顔の両端位置を特定することはできない。
【００８１】
制御部１４は、顔画像の画素値を時間で微分する（ステップＡ２）。具体的には、ある時刻における各画素の輝度とその直前の画像の各画素の輝度との差分を算出して、動く対象のみを強調した画素値時間微分画像を生成する。
【００８２】
運転者は運転中に完全に静止するのではないので、画素値時間微分画像では、動いているものの輪郭、つまり運転者の顔の輪郭が太く検出される。これに対して、窓、ピラー、ヘッドレスト等の背景は全く動かないため、ほとんど残らない。但し、画素値時間分画像では、運転者がよく動く場合には顔の輪郭が検出されるが、運転者がほとんど動かない場合にはほとんど検出されない。そこで、次の処理が必要となる。
【００８３】
制御部１４は、エッジ部抽出画像と画素値時間微分画像とを合成して第１の合成画像を生成し（ステップＡ３）、第１の合成画像の画素値（輝度）を縦方向に投影してヒストグラムを生成する。第１の合成画像は、エッジ部抽出画像と画素値時間微分画像とが合成された画像である。よって、運転者が動いていない場合でも動いている場合でも、第１の合成画像には、運転者の顔の縦エッジ又は輪郭が現れる。
【００８４】
なお、エッジ部抽出画像の画素値と画素値時間微分画像の画素値をそれぞれ縦方向に投影して２つのヒストグラムを生成し、この２つのヒストグラムを合計してもよい。そして、第１の合成画像のヒストグラムからピークを検出する（ステップＡ４）。
【００８５】
制御部１４は、第１の合成画像のヒストグラムから検出された複数のピークの中から、人の顔幅に最も対応するピーク間隔となる２つのピークを検出し、この２つのピークを顔の左右位置として検出する（ステップＡ５）。
【００８６】
なお、顔左右位置検出ルーチンは、上記の例に限定されるものではなく、例えば次のようなものでもよい。
【００８７】
例えば、制御部１４は、ステップＡ２において、画素値の時間微分演算の対象として顔画像を用いたが、その代わりにエッジ部抽出画像を用いてもよい。つまり、ステップＡ２では、エッジ部抽出画像の画素値（輝度）を時間で微分して、エッジ部時間微分画像を生成してもよい。これにより、エッジ部抽出画像内の複数の縦エッジのうち、窓、ヘッドレスト等の全く動かない背景の縦エッジを消去して動きのある顔画像の中の縦エッジのみを抽出できる。
【００８８】
ステップＡ３以降は、上記と同様である。なお、ステップＡ３及びＡ４では、制御部１４は、上記と同様に、エッジ部抽出画像とエッジ部時間微分画像とを合成して第２の合成画像を生成し、第２の合成画像の画素値（輝度）を縦方向に投影してヒストグラムを生成し、このヒストグラムからピークを検出すればよい。
【００８９】
次に、制御部１４は、顔の両端の範囲内で、横エッジを横方向に投影してヒストグラムを作成する。このヒストグラムでは、眉、眼、口に相当する部分にピークが生じている。そこで、ヒストグラムのピークに基づいて顔の上及び下位置を検出する（ステップＡ６）。なお、顔の両端の範囲内で、垂直方向エッジを上から探索して、眉上のエッジを検出し、垂直方向エッジを下から探索して、口下のエッジを検出してもよい。
【００９０】
顔中心検出部２２で説明したように、白→黒→白の横エッジの座標の平均値を算出して、顔中心位置とする（ステップＡ７）。なお、顔の左右位置及び上下位置の検出方法は、上記の例に限定されるものではなく、その他テンプレートマッチングや距離画像を用いる手法であってもよい。
【００９１】
図９のフローチャートに戻って、基準鼻孔位置をまだ設定していない場合（ステップＳ３；Ｎｏ）、顔向きが正面であるかどうかを判断する（ステップＳ４）。すなわち、顔中心位置が顔領域の中央の所定の範囲にある場合は正面、その範囲外にある場合は正面でないと判断する。顔向きが正面でない場合は（ステップＳ４；Ｎｏ）、顔画像入力（ステップＳ１）に戻って顔中心検出を繰り返す。
【００９２】
顔向きが正面の場合（ステップＳ４；Ｙｅｓ）、鼻孔探索領域Ｎを設定する（ステップＳ５）。前述のとおり、例えば、顔中心位置と統計的データに基づいた比率で、顔領域の中に鼻孔探索領域Ｎを設定する。
【００９３】
制御部１４は、設定した鼻孔探索領域Ｎの範囲で、鼻孔を検出する（ステップＳ６）。図１１は、ステップＳ６の鼻孔検出処理の動作の一例を示すフローチャートである。
【００９４】
制御部１４は、顔領域の範囲における画素の平均輝度を算出し、その平均輝度から明暗を識別するための明暗閾値を算出する（ステップＢ１）。ついで、鼻孔探索領域Ｎの範囲の画素から、明暗閾値より低い（暗い）輝度値の画素を探索する。そして、連続する低輝度画素群の丸らしい尤度を算出し、鼻孔探索領域Ｎにおける尤度マップを作成する（ステップＢ２）。
【００９５】
連続する低輝度画素群の丸らしい尤度は、例えば、前述の低輝度画素群の周囲の４種類のエッジについて、エッジの長さに対する、エッジの中点と重心の距離を用いることができる。又は、例えば、円に近いほど、周長に対する面積が大きいことを利用して、低輝度画素群の境界を構成する画素の数に対する、低輝度画素群内の画素数としてもよい。
【００９６】
制御部１４は、尤度マップの中で最大尤度から、尤度の閾値を算出する（ステップＢ３）。尤度閾値を超える低輝度画素群を鼻孔候補とする（ステップＢ４）。顔向きが正面の場合
（図９のステップＳ４；Ｙｅｓ）、距離が近い候補同士をペアにしておいてもよい。
【００９７】
制御部１４は、鼻孔候補のうち、最も尤度が高い候補を鼻孔と決定する（ステップＢ５）。顔向きが正面の場合は、鼻孔は２個ならんで検出されるので、距離が近い候補同士のペアで判定してよい。鼻孔候補のうち、鼻孔探索領域Ｎの中で出現度の高い位置に最も近い候補を鼻孔と判定してもよい。例えば、口下位置に最も近い候補を鼻孔と判定してもよい。
【００９８】
図９のフローチャートに戻って、鼻孔位置に基づいて眼探索領域Ｅを設定する（ステップＳ７）。前述のとおり、顔向きが正面の場合は、顔中心位置に対して所定の位置に眼探索領域Ｅを設定する。顔向きが正面でない場合は、顔中心位置と顔領域から推定される顔の向きに対して、眼探索領域Ｅを変換して設定する。
【００９９】
制御部１４は、眼探索領域Ｅを走査して上下瞼を検出する（ステップＳ８）。そして、時系列の顔画像データ５１から瞬きを検出する（ステップＳ９）。瞬きを検出できた上下瞼の位置を眼位置として決定する（ステップＳ１０）。眼位置が決定できたので、鼻孔検出処理（ステップＳ６）で検出した鼻孔の位置は正しいと判断できる。その鼻孔位置を記憶する（ステップＳ１１）。
【０１００】
例えば、画素単位で区分できる鼻孔位置ごとに検出した瞬きの回数をカウントし、瞬き回数が閾値以上の場合に（ステップＳ１２；Ｙｅｓ）、基準鼻孔位置を設定する（ステップＳ１３）。顔向きが正面の場合に、顔特徴点検出処理を繰り返せば、瞬き回数が閾値以上の鼻孔位置が検出できるので、基準鼻孔位置を決定できる。瞬き回数が閾値以上でない場合には（ステップＳ１２；Ｎｏ）、基準鼻孔位置を設定しない。
【０１０１】
基準鼻孔位置がまだ設定されていなければ（ステップＳ１４；Ｎｏ）、処理を終了して次の画像フレームについて特徴点検出処理を行う。基準鼻孔位置が設定されていないときには、顔向きが正面の場合にしかステップＳ５以降の処理を行わないので、この場合は、鼻孔が正確に検出できているとみなしてよい。
【０１０２】
基準鼻孔位置が設定された後は、顔の向きにかかわらず（ステップＳ３；Ｙｅｓ）鼻孔探索領域設定（ステップＳ５）以下の処理を行う。そのときは顔向きが正面でない場合、又は、基準鼻孔位置に鼻孔が検出できなかった場合があるので、改めて鼻孔を決定する（ステップＳ１５）。図１２は、ステップＳ１５の鼻孔決定処理の動作の一例を示すフローチャートである。
【０１０３】
制御部１４は、基準鼻孔位置を顔向きで変換した位置（基準位置）に鼻孔が検出されていれば（ステップＣ１；Ｙｅｓ）、その鼻孔位置の候補を鼻孔と決定する（ステップＣ８）。基準位置に鼻孔が検出されていない場合は（ステップＣ１；Ｎｏ）、顔中心線を検出する（ステップＣ２）。ここで、改めて顔中心線を検出してもよいし、顔中心検出処理（ステップＳ２）で検出された顔中心位置を利用してもよい。
【０１０４】
次に、基準鼻孔位置の縦方向位置を算出する（ステップＣ３）。すなわち、基準鼻孔位置を顔向き（顔中心位置）に合わせて変換したｙ座標を求める。そして、鼻孔エッジを検出する（ステップＣ４）。ステップＣ２及びステップＣ３で求めた、変換された基準鼻孔位置の周りで改めて検出してもよいし、鼻孔検出処理（ステップＳ６）で検出した鼻孔候補データを利用してもよい。
【０１０５】
鼻孔候補データのなかで、顔中心線と（変換された）基準鼻孔位置に最も近い候補を選択する。すなわち、鼻孔候補を選択して（ステップＣ５）、前の候補と比較して顔中心、基準鼻孔位置との距離が近い方を選択する（ステップＣ６）。鼻孔候補が他にあれば（ステップＣ７；Ｙｅｓ）、新たな鼻孔候補を選択して（ステップＣ５）、距離を比較する。鼻孔候補がなくなったところで（ステップＣ７；Ｎｏ）、選択された鼻孔候補を鼻孔と決定する（ステップＣ８）。
【０１０６】
以上、説明したとおり、顔画像データから検出した顔中心位置にもとづいて、鼻孔探索領域Ｎを設定し、その中で鼻孔を検出する。顔の向きによっては、鼻孔が１つしか検出されない場合でも、その候補を鼻孔と判定する。従って、顔の向きが正面でなくても鼻孔を正しく検出できる。そして、鼻孔位置に基づいて眼探索領域Ｅを設定するので、上下瞼を正確に早く検出することができる。
【０１０７】
さらに、顔中心位置の顔画像の中央に対する偏差が所定の値を超えた場合に、眼探索領域Ｅを片側のみに設定するので、顔が横を向いて一方の眼しか顔画像に写っていない場合でも、上下瞼を確実に検出することができる。
【０１０８】
また、顔中心と変換された基準鼻孔位置に最も近い鼻孔候補を鼻孔と決定するので、ほくろなどを鼻孔と誤って検出することを回避し、鼻孔を正しく検出できる。
【０１０９】
なお、眼探索領域Ｅが顔画像の処理範囲に収まるように、鼻孔探索領域Ｎの上限を設定するので、上下瞼の誤検出の可能性をできるだけ排除し、上下瞼検出処理の効率を高めることができる。
【０１１０】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
【０１１１】
制御部１４、送受信部１６、画像メモリ１２、外部記憶部１３及び主記憶部１５などから構成される眼部検出装置１の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体（フレキシブルディスク、CD-ROM、DVD-ROM等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する眼部検出装置１を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで眼部検出装置１を構成してもよい。
【０１１２】
また、眼部検出装置１の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１１３】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施形態に係る眼部検出装置のブロック図である。
【図２】本発明の一実施の形態である眼部検出装置の論理的な構成を示すブロック図である。
【図３】図１に示すコンピュータの構成を示すブロック図である。
【図４Ａ】縦エッジ検出用オペレータの例を示す図である。
【図４Ｂ】横エッジ検出用オペレータの例を示す図である。
【図４Ｃ】縦方向に連続する濃淡差の例を表す図である。
【図４Ｄ】横方向に連続する濃淡差の例を表す図である。
【図５】顔の円筒モデルを表す図である。
【図６】顔が正面を向いている場合の鼻孔探索領域を模式的に示す図である。
【図７】鼻孔位置の座標と瞬き回数の関係を表したグラフである。
【図８】顔が正面を向いていない場合の鼻孔探索領域の例を模式的に示す図である。
【図９】眼部検出装置の動作の一例を示すフローチャートである。
【図１０】顔中心検出処理の動作の一例を示すフローチャートである。
【図１１】鼻孔検出処理の動作の一例を示すフローチャートである。
【図１２】鼻孔決定処理の動作の一例を示すフローチャートである。
【符号の説明】
【０１１５】
１  眼部検出装置
２  カメラ（画像取得手段）
５  データ保持部
１０  コンピュータ
１２  画像メモリ
１３  外部記憶部
１４  制御部（画像取得手段、顔中心検出手段、鼻孔検出手段、基準鼻孔位置設定手段、鼻孔判定手段、眼探索領域設定手段、眼部探索手段）
１５  主記憶部
１６  送受信部（画像取得手段）
２１  画像入力部（画像取得手段）
２２  顔中心検出部（顔中心検出手段）
２３  鼻孔探索領域設定部（鼻孔探索領域設定手段）
２４  鼻孔検出部（鼻孔検出手段）
２５  基準鼻孔位置設定部（基準鼻孔位置設定手段）
２６  鼻孔判定部（鼻孔判定手段）
２７  眼探索領域設定部（眼探索領域設定手段）
２８  上下瞼検出部（眼部探索手段）
２９  開閉眼判定部
５１  顔画像データ
５２  顔中心データ
５３  鼻孔探索領域データ
５４  基準鼻孔位置データ
５５  鼻孔データ
５６  眼探索領域データ
５７  瞼データ
Ｅ  眼探索領域
Ｎ  鼻孔探索領域
【図１】
2008209969.tif 000003
【図２】
2008209969.tif 000004
【図３】
2008209969.tif 000005
【図４Ａ】
2008209969.tif 000006
【図４Ｂ】
2008209969.tif 000007
【図４Ｃ】
2008209969.tif 000008
【図４Ｄ】
2008209969.tif 000009
【図５】
2008209969.tif 000010
【図６】
2008209969.tif 000011
【図７】
2008209969.tif 000012
【図８】
2008209969.tif 000013
【図９】
2008209969.tif 000014
【図１０】
2008209969.tif 000015
【図１１】
2008209969.tif 000016
【図１２】
2008209969.tif 000017