(57)【要約】【課題】運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる画像処理方法、画像処理装置、画像処理システム、コンピュータプログラムを提供する。【解決手段】顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理装置に、画像から顔領域を検出して顔幅を算出する顔幅算出手段と、画像から眼鏡部品の位置を検出する眼鏡部品検出手段と、検出された眼鏡部品から離隔していて、該眼鏡部品に対する相対距離が顔幅に応じて長短するように探索領域を設定する設定手段とを備える。【選択図】図１
2008269182.tif 000002
【特許請求の範囲】
【請求項１】
顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理方法において、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、
画像から眼鏡部品の位置を検出するステップと、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップと
を有することを特徴とする画像処理方法。
【請求項２】
顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理装置において、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出する領域幅算出手段と、
画像から眼鏡部品の位置を検出する眼鏡部品検出手段と、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定する設定手段と
を備えることを特徴とする画像処理装置。
【請求項３】
前記設定手段は、
前記幅に応じた寸法を有する探索領域を設定するようにしてある
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
探索領域中に眼鏡部品が含まれた場合、前記眼鏡部品検出手段にて検出された眼鏡部品の領域を探索領域から除外する手段を備える
ことを特徴とする請求項２又は請求項３に記載の画像処理装置。
【請求項５】
時系列で画像を取得するように構成してあり、
各画像から眼以外の顔部位を検出する顔部位検出手段と、
一の画像から検出された顔部位、眼鏡部品及び眼の位置を記憶する記憶手段と
を備え、
前記設定手段は、
他の画像から検出された顔部位及び眼鏡部品の位置、並びに前記記憶手段が記憶している顔部位、眼鏡部品及び眼の位置を比較して、一の画像における眼の位置と他の画像における探索領域の位置とが対応するように探索領域を設定する手段を備える
ことを特徴とする請求項２乃至請求項４のいずれか一つに記載の画像処理装置。
【請求項６】
前記眼鏡部品は、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を含む
ことを特徴とする請求項２乃至請求項５のいずれか一つに記載の画像処理装置。
【請求項７】
請求項２乃至請求項６のいずれか一つに記載の画像処理装置と、
車両の運転者を撮像する撮像装置と
を備え、
前記画像処理装置は、
前記撮像装置が撮像して得た画像から眼の位置を検出するように構成してあることを特徴とする画像処理システム。
【請求項８】
コンピュータに、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出させるコンピュータプログラムにおいて、
コンピュータに、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、
画像から眼鏡部品の位置を検出するステップと、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップと
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域内で眼の位置を検出する画像処理方法、該画像処理方法を実施する画像処理装置、該画像処理装置を備えた画像処理システム、及びコンピュータを前記画像処理装置として機能させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
自動車等の車両の運転状態を監視する運転状態監視システムが提案されている。運転状態監視システムは、運転者の顔を撮像できる適宜箇所に設置された撮像装置及び画像処理装置等から構成されている。撮像装置は運転者の顔を撮像し、画像処理装置は撮像して得られた画像から運転者の眼を検出して運転者の居眠りを検知する（例えば、特許文献１）。運転状態監視システムを用いることにより、運転者の居眠り運転を検知することができ、居眠り運転を行っている運転者にアラームで注意勧告するシステムを構成することも可能である。
【０００３】
眼を検出する装置としては、画像の垂直方向における輝度変化の局所的な高まりと、顔における眼、眉等の一般的配置から眼の位置を検出する居眠り状態検出装置が提案されている（例えば、特許文献１）。
【０００４】
ところが、特許文献１に係る居眠り検出装置は、輝度変化と眼の一般的配置から眼を検出する構成であるため、運転者が眼鏡をかけているような場合、検出対象に眼のみならず輝度変化が眼に近似した眼鏡のフレーム、眼鏡ブリッジ等も含まれてしまい、眼の位置検出が困難になる。
【０００５】
上記問題点を考慮した画像処理システムが提案されている（例えば、特許文献２）。特許文献２に係る画像処理システムの撮像装置は、眼鏡蔓を撮像するために運転者の斜め前方に設置されており、運転者を斜めから撮像する。画像処理装置は、斜め方向から撮像された運転者の画像から眼鏡蔓を検出する。そして画像処理装置は、眼鏡蔓の蝶板側端部を基準として、所定方向へ所定距離離隔した所定領域を眼の探索領域として設定し、眼の位置を検出する。
【特許文献１】特開平１０−０４０３６１号公報
【特許文献２】特開２００６−２０９４４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、眼鏡部品及び眼の位置関係は人によって異なり、顔の向きによっても変化するため、一意に決めた探索領域では眼を検出することができない場合があった。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、顔部位の幅、複数の顔部位間の幅又は顔領域の幅に応じて眼鏡部品に対する眼の相対距離が変化する傾向があるため、眼鏡部品に対する相対距離が前記幅の広／狭に応じて長／短となるように探索領域を設定することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる画像処理方法、該画像処理方法を実施する画像処理装置、該画像処理装置を備えた画像処理システム、コンピュータを前記画像処理装置として機能させるコンピュータプログラムを提供することを目的とする。
【０００８】
本発明の他の目的は、顔部位の幅、複数の顔部位間の幅又は顔領域の幅に応じた寸法を有する探索領域を選択するように構成することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる画像処理装置及び該画像処理装置を備えた画像処理システムを提供することにある。
【０００９】
本発明の他の目的は、検出された眼鏡部品の領域を探索領域から除外するように構成することにより、眼鏡部品を眼と誤検出することを防止し、眼を正確に検出することができる画像処理装置及び該画像処理装置を備えた画像処理システムを提供することにある。
【００１０】
本発明の他の目的は、過去の一の画像から検出された顔部位、眼鏡部品及び眼の位置を記憶する記憶手段を備え、一の画像における眼の位置と他の画像における探索領域の位置とが対応するように探索領域を設定するように構成することにより、運転者の個人差、顔の向きに応じて探索領域を適切に設定することができ、眼の位置を正確に検出することができる画像処理装置及び該画像処理装置を備えた画像処理システムを提供することにある。
【００１１】
本発明の他の目的は、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を各部品の特徴に着眼して検出して上述の処理を実行することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる画像処理装置及び該画像処理装置を備えた画像処理システムを提供することにある。
【課題を解決するための手段】
【００１２】
第１発明に係る画像処理方法は、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理方法において、画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、画像から眼鏡部品の位置を検出するステップと、検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップとを有することを特徴とする。
【００１３】
第２発明に係る画像処理装置は、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理装置において、画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出する領域幅算出手段と、画像から眼鏡部品の位置を検出する眼鏡部品検出手段と、検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定する設定手段とを備えることを特徴とする。
【００１４】
第３発明に係る画像処理装置は、前記設定手段は、前記幅に応じた寸法を有する探索領域を設定するようにしてあることを特徴とする。
【００１５】
第４発明に係る画像処理装置は、探索領域中に眼鏡部品が含まれた場合、前記眼鏡部品検出手段にて検出された眼鏡部品の領域を探索領域から除外する手段を備えることを特徴とする。
【００１６】
第５発明に係る画像処理装置は、時系列で画像を取得するように構成してあり、各画像から眼以外の顔部位を検出する顔部位検出手段と、一の画像から検出された顔部位、眼鏡部品及び眼の位置を記憶する記憶手段とを備え、前記設定手段は、他の画像から検出された顔部位及び眼鏡部品の位置、並びに前記記憶手段が記憶している顔部位、眼鏡部品及び眼の位置を比較して、一の画像における眼の位置と他の画像における探索領域の位置とが対応するように探索領域を設定する手段を備えることを特徴とする。
【００１７】
第６発明に係る画像処理装置は、前記眼鏡部品は、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を含むことを特徴とする。
【００１８】
第７発明に係る画像処理システムは、第２発明乃至第６発明のいずれか一つに記載の画像処理装置と、車両の運転者を撮像する撮像装置とを備え、前記画像処理装置は、前記撮像装置が撮像して得た画像から眼の位置を検出するように構成してあることを特徴とする。
【００１９】
第８発明に係るコンピュータプログラムは、コンピュータに、第１発明に係るステップを実行させることを特徴とする。
【００２０】
第１、２、７、８発明にあっては、眼鏡部品の位置を検出し、該眼鏡部品の位置を基準にして探索領域を設定する。眼鏡部品及び眼の位置関係は個人差、顔の向き等によって異なり、顔部位の幅、複数の顔部位間の幅又は顔領域の幅の広／狭に応じて眼鏡部品に対する眼の相対位置も長／短となる傾向がある。そこで、眼鏡部品に対する相対距離が前記幅の広／狭に応じて長／短となるように探索領域を設定することにより、眼を含む探索領域をより適切に設定することができ、眼の検出精度を向上させることができる。つまり、顔部位の幅、複数の顔部位間の幅又は顔領域の幅が広い場合、前記相対距離が長くなり、前記幅が狭い場合、前記相対距離が短くなるように探索領域を設定することにより、眼の検出精度を向上させることができる。
【００２１】
第３及び第７発明にあっては、顔部位の幅、複数の顔部位間の幅又は顔領域の幅の長短に応じて眼の大きさも変化する傾向があるため、設定手段は前記幅に応じた寸法を有する探索領域を設定する。従って、眼を含む探索領域をより適切に設定することができ、眼の検出精度を向上させることができる。
【００２２】
第４及び第７発明にあっては、探索領域に眼鏡部品が含まれた場合、例えば眼鏡ブリッジ、眼鏡フレームが含まれた場合、眼鏡部品が眼と誤検出される虞があるため、眼鏡部品検出手段が検出した眼鏡部品を探索領域から除外する。従って、眼の誤検出を防止することができ、眼の検出精度を向上させることができる。
【００２３】
第５及び第７発明にあっては、画像処理装置は時系列で画像データを取得し、顔部位検出手段、眼鏡部品検出手段等が各画像から顔部位、眼鏡部品、眼を検出する。そして、記憶手段は一の画像、つまり過去の画像から検出された顔部位、眼鏡部品、眼の位置を記憶する。そして、設定手段は、過去の位置の画像における顔部位、眼鏡部品、及び眼の位置関係と、他の画像、つまり現在の画像から検出された顔部位及び眼鏡部品とを比較し、一の画像における眼の位置と他の画像における探索領域の位置とが対応するような探索領域を設定する。
従って、運転者の姿勢、顔の向き等によらず、より正確に眼を含む探索領域を設定し、高精度に眼を検出することができる。
【００２４】
第６及び第７発明にあっては、眼鏡部品として眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を検出して、探索領域の設定及び眼の検出を行う。なお、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓は、その特徴を抽出することにより、眼と区別して検出することができる。
【発明の効果】
【００２５】
第１、第２、第７及び第８発明にあっては、眼鏡部品から離隔していて、該眼鏡部品に対する相対距離が顔部位の幅、複数の顔部位間の幅又は顔領域の幅に応じて長短するように探索領域を設定することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる。
特に、眼鏡部品を基準として所定領域における輝度平均値を算出する手段と、該所定領域における輝度分散値を算出する手段と、算出された輝度平均値及び輝度分散値に基づいて、サングラスの有無を判定する手段とを備え、サングラス無しと判定された場合、探索領域から眼の位置を検出するように構成した場合、眼を検出できない状態で位置検出を試みることにより生ずる誤検出を効果的に防止することができる。
【００２６】
第３及び第７発明によれば、顔部位の幅、複数の顔部位間の幅又は顔領域の幅に応じた寸法を有する探索領域を選択するように構成することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる。
【００２７】
第４及び第７発明よれば、眼と誤検出され易い眼鏡部品を探索領域から除外して眼を正確に検出することができる。
【００２８】
第５及び第７発明によれば、過去の画像について記憶した顔部位、眼鏡位置及び眼の位置と、現フレームの画像から検出された顔部位及び眼鏡部品の位置とを比較することによって眼を探索すべき探索領域を設定することにより、運転者の個人差、顔の向きに応じて探索領域を適切に設定することができ、眼の位置を正確に検出することができる。
【００２９】
第６及び第７発明によれば、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を検出して上述の処理を実行することにより、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる。
なお、顔の向きを検出する顔の向き検出手段を備え、前記検出手段が横向きであることを検出した場合、眼鏡部品検出手段が眼鏡蔓を検出するように構成した場合、検出可能性を考慮して眼鏡蔓の位置を検出することができるため、無駄な検出処理を省いて眼鏡蔓及び眼の位置の誤検出を防止することができる。
また、眼鏡部品を検出するための閾値を記憶する手段と、眼鏡部品検出手段による眼鏡部品の検出率を算出する手段と、検出された眼鏡部品の算出率に応じて前記閾値を増減させる手段とを備えた場合、眼鏡部品の特徴に応じた適切な閾値を設定して眼鏡部品及び眼の検出精度を向上させることができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
図１は、本発明の実施の形態における画像処理システムの構成例を示すブロック図である。図中１は、車両に搭載された撮像装置であり、撮像装置１は、画像処理を行う画像処理装置２に通信網を介して接続されている。通信網は、例えば専用ケーブル等の通信線、又は有線若しくは無線の車内ＬＡＮ（Local Area Network）によって構成されている。
【００３１】
撮像装置１は、車両内のハンドル、ダッシュボード等の運転者の前方に配設され、運転者の顔の横方向及び縦方向が画像の水平方向及び垂直方向になるように撮像することが可能な状態に調整されている。
撮像装置１は、装置全体を制御するＭＰＵ（Micro Processor Unit）１１と、ＭＰＵ１１の制御に基づき実行される各種コンピュータプログラム及びデータを記録するＲＯＭ（Read Only Memory）１２と、ＲＯＭ１２に記録されたコンピュータプログラムの実行時に一時的に発生する各種データを記録するＲＡＭ（Random Access Memory）１３と、ＣＣＤ（Charge Coupled Device）等の撮像素子を用いて構成される撮像部１４と、撮像部１４の撮像により得られたアナログの画像データをデジタルデータに変換するＡ／Ｄ変換器１５と、Ａ／Ｄ変換器１５によりデジタルに変換された画像データを一時的に記録するフレームメモリ１６と、画像処理装置２との通信に用いられる通信インタフェース１７とを備えている。
【００３２】
撮像装置１では、撮像部１４が、連続的又は断続的に撮像処理を行い、撮像処理に基づいて例えば１秒当たり３０枚の画像データ（画像フレーム）を生成してＡ／Ｄ変換器１５へ出力する。Ａ／Ｄ変換器１５は、画像を構成する各画素を２５６階調（１Ｂｙｔｅ）等の階調にて示されるデジタルの画像データに変換し、フレームメモリ１６に記録させる。フレームメモリ１６に記録させた画像データは、所定のタイミングで通信インタフェース１７から画像処理装置２へ出力される。
【００３３】
画像を構成する各画素は、二次元に配列されており、画像データは、平面直角座標系、所謂ＸＹ座標系にて示される各画素の位置、及び階調値として示される各画素の輝度を示すデータ（輝度値）を含んでいる。画像の水平方向は、画像データのＸ軸方向に対応し、画像の垂直方向は、画像データのＹ軸方向に対応する。
なお、各画素に対し夫々ＸＹ座標系による座標を示すのでは無く、データ内に配列される順序により座標を示す様にしても良い。また、本実施の形態ではグレイスケイルの画像データに基づく画像処理を説明する。カラーの画像データを用いる場合、該画像データを構成する画素の輝度データについて同様の画像処理を実行すれば良い。
【００３４】
画像処理装置２はコンピュータを実装しており、装置全体を制御するＣＰＵ（Central Processing Unit）２１と、本発明の実施の形態に係るコンピュータプログラム３１並びに眼鏡部品及び眼を検出するための各種閾値、所定値等の各種情報を記録した記録媒体４１、例えばＣＤ−ＲＯＭから情報を読み取る補助記録部２２と、補助記録部２２により読み取った各種情報を記録するハードディスク（以下ＨＤという）２３と、ＨＤ２３に記録されたコンピュータプログラム３１の実行時に一時的に発生する各種データを記録するＲＡＭ２４と、揮発性メモリにて構成されるフレームメモリ２５と、撮像装置１との通信に用いられる通信インタフェース２６とを備えている。
【００３５】
本発明のコンピュータプログラム３１は、少なくともコンピュータに、顔及び眼鏡Ｇを含む画像から顔領域を検出して顔幅を算出する処理と、画像から眼鏡部品の位置を検出する処理と、検出された眼鏡部品から離隔していて、顔幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定する処理とを実行させるためのプログラムを含む。また、記録媒体４１には、コンピュータプログラム３１がコンピュータ読み取り可能に記録されている。
なお、コンピュータプログラム３１は、言うまでもなく外部のコンピュータから有線又は無線の通信ネットワークを介して流通するものも含み、画像処理装置２が該通信ネットワークを介してコンピュータプログラム３１を取得し、ＨＤ２３に記録するようにしても良い。
【００３６】
そしてＣＰＵ２１が、ＨＤ２３から本発明のコンピュータプログラム３１及びデータ等の各種情報を読み取り、ＲＡＭ２４に記録させてコンピュータプログラム３１に含まれる各種処理手順を実行することで、コンピュータは、本実施の形態の画像処理装置２として動作する。
【００３７】
画像処理装置２は、撮像装置１から出力された画像データを通信インタフェース２６にて受け付け、受け付けた画像データをフレームメモリ２５に記録し、フレームメモリ２５に記録した画像データを読み出して、様々な画像処理を行う。
【００３８】
次に本発明の実施の形態における画像処理システムにて用いられる各種装置の処理内容について説明する。
【００３９】
図２は、顔及び眼鏡Ｇを含む画像から眼を検出するＣＰＵ２１の処理手順を示すフローチャートである。まず、画像処理装置２のＣＰＵ２１は、フレームメモリ２５から画像データを時系列的に取得する（ステップＳ１１）。そして、ＣＰＵ２１は、取得した画像データから運転者の顔領域を検出する（ステップＳ１２）。また、ＣＰＵ２１は、眼以外の顔部位、例えば鼻穴を検出する（ステップＳ１３）。
【００４０】
次いで、ＣＰＵ２１は、第１の眼鏡部品認識処理を実行する（ステップＳ１４）。第１の眼鏡部品認識処理では、眼鏡ブリッジＨ、眼鏡上フレームＩ及び眼鏡蔓Ｊを検出する（図８参照）。そして、ＣＰＵ２１は、第２の眼鏡部品認識処理を実行する（ステップＳ１５）。第２の眼鏡部品認識処理では、眼鏡下フレームＫ及び眼鏡上フレームＩを検出し（図２６、２９参照）、あわせてサングラスであるか否かを判定する。眼鏡部品認識処理を終えた場合、ＣＰＵ２１は、認識結果を用いて眼鏡学習処理及び眼鏡判定処理を実行する（ステップＳ１６）。眼鏡学習処理では、各眼鏡部品の取得率、眼鏡部品の位置を記憶する。なお、各眼鏡部品の取得率等は、顔の向きによって区分して記憶すると良い。また、各眼鏡部品の取得率に応じて、各眼鏡部品又は顔部位を検出するための各種閾値、所定値を変更するように構成すると良い。各眼鏡部品又は顔部位の形状、輝度変化等は眼鏡Ｇの種類、人によって異なるが、取得率を参照して最適な閾値を設定することで眼鏡部品又は顔部位の検出精度を向上させることができる。
例えば、眼鏡ブリッジＨの取得率が９５％であって、眼鏡上フレームＩの取得率が６０％のような場合、眼鏡Ｇが存在しており、眼鏡上フレームＩを検出するための閾値が適切でないために眼鏡上フレームＩが検出されていない可能性がある。このような場合、眼鏡上フレームＩを検出するための閾値を、検出が容易になるように変更することによって、眼鏡上フレームＩをより正確に検出することができるようになる。
逆に、眼鏡ブリッジＨの取得率が０％であって、眼鏡上フレームＩの取得率が１５％のような場合、眼鏡Ｇが存在しておらず、眼鏡上フレームＩを検出するための閾値が適切で無いために眼鏡上フレームＩを誤検出している可能性がある。このような場合、眼鏡上フレームＩを検出するための閾値を、誤検出が生じないように変更することによって、眼鏡上フレームＩをより正確に検出することができるようになる。
眼鏡判定処理では、各眼鏡部品の取得率に基づいて総合的に眼鏡Ｇの有無を判定する。
【００４１】
次いで、ＣＰＵ２１は、サングラスの有無を判定する（ステップＳ１７）。サングラスにより眼が隠蔽されている場合、眼を検出することはできず、サングラスレンズの上部又は下部を眼と誤認識する虞があるが、ステップＳ１７の処理によって誤認識の問題を回避することができる。
【００４２】
サングラス有りと判定した場合（ステップＳ１７：ＹＥＳ）、ＣＰＵ２１は、眼の検出に係る処理を終える。サングラス無しと判定した場合（ステップＳ１７：ＮＯ）、ＣＰＵ２１は、眼鏡部品の領域を除外した探索領域を設定し（ステップＳ１８）、該探索領域から眼の位置を検出する（ステップＳ１９）。そして、ＣＰＵ２１は眼の再検出処理を実行する（ステップＳ２０）。眼の再検出処理では、検出された眼鏡部品の位置から所定方向に離隔した探索領域を設定する。特に、ＣＰＵ２１は、個人差、顔の向き等を考慮し、眼鏡部品に対する探索領域の相対距離が顔幅に応じて長短し、探索領域の寸法も大小するように探索領域を設定する。また、眼鏡部品、顔部位及び眼の位置に関する過去の認識結果を用いて探索領域を設定する。そして、設定された探索領域から眼を再検出する。
【００４３】
最後に、ＣＰＵ２１は、ステップＳ１９及びステップＳ２０で検出された眼の位置の内、より信頼性が高い眼の位置を確定し、ステップＳ１３で検出された顔部位と、ステップＳ１４，１５で検出された各眼鏡部品と、眼位置との位置関係をＨＤ２３に登録する（ステップＳ２１）。なお、登録処理は他のタイミングで適宜実行するように構成しても良い。ＣＰＵ２１は、顔の向きが正面側により近い状態で顔部位、各眼鏡部品、及び眼位置を検出した場合、ＨＤ２３に記録されている位置関係を更新する。顔の向きの検出方法は公知の技術であり、例えば水平方向で、顔領域に対する鼻の位置により判定する。また、眼の形状で判断するように構成しても良い。更に、出現頻度が高い位置関係を正面時の位置関係として記録するように構成しても良い。
【００４４】
以下、図２のフローチャートを用いて説明した処理内容を更に具体的に説明する。
図３は、顔領域の検出方法を概念的に示す説明図である。ステップＳ１２においてＣＰＵ２１は、画像の各Ｙ座標について、水平方向に並ぶ各画素の輝度値を積算し、積算して得た輝度積算値と、所定の閾値とを比較することで垂直方向における顔領域Ｒ０の範囲を検出する。Ｆｙ１は、垂直方向における顔領域Ｒ０の上端のＹ座標を、Ｆｙ２は、垂直方向における顔領域Ｒ０の下端のＹ座標を示している。顔領域Ｒ０は、髪の領域及び背景領域と比較して明るく撮像されため、輝度積算値と閾値とを比較することによって顔領域Ｒ０を検出することができる。
【００４５】
同様に、ＣＰＵ２１は、画像の各Ｘ座標について、垂直方向に並ぶ各画素の輝度値を積算し、積算して得た輝度積算値と、所定の閾値とを比較することで水平方向における顔領域Ｒ０の範囲を検出する。Ｆｘ１は、水平方向における顔領域Ｒ０の左端を、Ｆｘ２は、水平方向における顔領域Ｒ０の右端を示している。なお、「左」は、撮像装置１側から見た左、即ち図３の紙面における左側を意味し、「右」は図３の紙面における右側を意味している。従って、撮像されている運転者側から見ると左右が逆になる。
【００４６】
図４は、鼻の位置検出方法を概念的に示す説明図である。図４中、実線で示す外側の矩形枠は画像全体を示しており、該矩形枠の内側であって鼻を囲む破線で描かれた矩形枠は鼻を検出するための検出処理範囲Ｒ１を示している。
【００４７】
ステップＳ１３においてＣＰＵ２１は、鼻を検出するための検出処理領域Ｒ１を検出すべく、水平方向に並ぶ画素の輝度値を積算し、積算した結果から垂直方向の輝度積算値の変化を導出する。そして、ＣＰＵ２１は、導出された垂直方向における輝度積算値の変化から、極小値を示す複数のＹ座標位置を検出する。この処理によって、水平方向における輝度平均が低い眉、眼、鼻及び口をも含む複数の検出対象の候補が検出される。次いで、ＣＰＵ２１は検出された極小値を示すＹ座標において水平方向に並ぶ画素の輝度値の変化から、検出対象の候補の両端を検出し、水平方向における極小点を検出する。鼻の周辺部分においては、「×」印で示すように小鼻の両端と、鼻穴に相当する２つの極小点が検出される。ＣＰＵ２１は、顔幅Ｆｗ＝Ｆｘ２−Ｆｘ１と、水平方向における小鼻両端の長さとの比、極小点の数等に基づいて、鼻周辺の検出処理範囲を特定する。次いで、ＣＰＵ２１は、水平方向に並ぶ画素の輝度値の変化から、極小点周辺を鼻穴の探索領域として選択し、黒領域抽出フィルタ等を用いて鼻穴の位置を検出する。
【００４８】
次に、ステップＳ１４に係る第１の眼鏡部品認識の処理内容を具体的に説明する。
図５は、第１の眼鏡部品認識に係るＣＰＵ２１の処理手順を示すフローチャートである。まずＣＰＵ２１は、眼鏡ブリッジＨを検出し（ステップＳ３１）、眼鏡上フレームＩを検出する（ステップＳ３２）。そして、ＣＰＵ２１は、左右の眼鏡部品の検出処理を終えたか否かを判定する（ステップＳ３３）。左側又は右側の眼鏡部品の検出処理を終えていないと判定した場合（ステップＳ３３：ＮＯ）、ＣＰＵ２１は、処理をステップＳ３２に戻す。左右の眼鏡部品の検出処理を終えたと判定した場合（ステップＳ３３：ＹＥＳ）、ＣＰＵ２１は、眼鏡蔓Ｊを検出し（ステップＳ３４）、第１の眼鏡部品認識に係る処理手順を終える。次に、ステップＳ３１〜３４の処理内容を更に具体的に説明する。
【００４９】
図６及び図７は、眼鏡ブリッジＨの検出に係るＣＰＵ２１の処理手順を示すフローチャートである。ＣＰＵ２１は、過去に検出された左右の眼位置を記憶しているか否かを判定する（ステップＳ５１）。なお、左右は撮像装置１側から見た方向、つまり図３中右側を右、左側を左として説明する。左右の眼位置を記憶していると判定した場合（ステップＳ５１：ＹＥＳ）、左右の眼位置に基づいて、眼鏡ブリッジＨの検出処理範囲を算出する（ステップＳ５２）。左右の眼位置を記憶していないと判定した場合（ステップＳ５１：ＮＯ）、ＣＰＵ２１は、鼻位置に基づいて眼鏡ブリッジＨの検出処理範囲を算出する（ステップＳ５３）。
【００５０】
図８は、眼鏡ブリッジＨの検出処理範囲を概念的に示す説明図である。図８（ａ）は、左右の眼位置に基づいて算出された検出処理範囲Ｒ２を示している。ステップＳ５２では、図８（ａ）に示すように、水平方向における左右の眼位置の中点を基準点Ｐ１とし、該基準点Ｐ１より垂直方向上側にＮ１画素、下側にＮ２画素、水平方向両側に夫々Ｎ３画素の広がりを有する領域を検出処理範囲Ｒ２として算出する。なお、Ｎ１，Ｎ２，Ｎ３は、顔幅Ｆｗに対する固定比によって定められる。検出処理範囲Ｒ２を顔幅Ｆｗに応じて広狭するように構成することにより、撮像装置１と運転者との距離に関わらず適切な検出処理領域Ｒ２を算出することができる。具体的には、運転者が撮像装置１に近い場合、検出処理範囲Ｒ２を広げ、運転者が撮像装置１から遠い場合、検出処理範囲Ｒ２を狭める。
【００５１】
図８（ｂ）は、鼻穴の位置に基づいて算出された検出処理範囲を示している。ステップＳ５３では、図８（ｂ）に示すように、水平方向における左右の鼻穴の中点Ｐ０から垂直方向上側へＮ４画素の位置を基準位置Ｐ１とし、上述と同様の方法で眼鏡ブリッジＨの検出処理範囲Ｒ２を算出する。
【００５２】
図９は、眼鏡ブリッジＨの上位置及び下位置の検出方法を概念的に示す説明図である。図９（ａ）は、眼鏡部分の画像領域の一例を示している。
ステップＳ５２又はステップＳ５３の処理を終えた場合、ＣＰＵ２１は、眼鏡ブリッジＨの上位置及び下位置を検出すべく、図９（ｂ）に示すように検出処理範囲Ｒ２において水平方向に並んだ各画素の輝度値を積算する（ステップＳ５４）。図９（ｂ）のグラフの縦軸は、画像データにおけるＹ座標を、横軸は各Ｘ座標の水平ラインにおける輝度値を積算して得た輝度積算値を示している。輝度積算値は各Ｙ座標における水平ラインの明るさを示している。眼鏡ブリッジＨが存在している場合、図９（ｂ）に示すように、垂直方向Ｙにおける眼鏡ブリッジＨ部分の輝度積算値が他の部分に比べて低く落ち込む。
【００５３】
次いで、ＣＰＵ２１は、図９（ｃ）に示すように輝度積算値の上下差分値を算出する（ステップＳ５５）。図９（ｃ）に示すグラフの縦軸は、画像データにおけるＹ座標を、横軸は各Ｙ座標における上下差分値を示している。上下差分値は、例えば下記の式１で算出する。
上下差分値＝Ｍ１（ｙ＋所定画素）−Ｍ１（ｙ）…式１
但し、ｙは、一の水平ラインにおけるＹ座標を示しており、Ｍ１（ｙ）は該水平ラインにおける輝度積算値を示している。
【００５４】
そして、ＣＰＵ２１は、上下差分値が最大のＹ座標を眼鏡ブリッジＨの上位置として検出し（ステップＳ５６）、上下差分値が最小のＹ座標を眼鏡ブリッジＨの下位置として検出する（ステップＳ５７）。
【００５５】
図１０は、眼鏡ブリッジＨの左右位置候補の検出方法を概念的に示す説明図である。図１０（ａ）は、図９（ａ）同様、眼鏡部分の画像領域の一例を示している。ステップＳ５７の処理を終えた場合、ＣＰＵ２１は、眼鏡ブリッジＨの左右位置候補を検出すべく図１０（ｂ）に示すように検出処理範囲Ｒ２において垂直方向に並んだ画素の輝度値を積算する（ステップＳ５８）。図１０（ｂ）のグラフの横軸は、画像データにおけるＸ座標を、縦軸は各Ｘ座標の垂直方向における輝度値を積算した輝度積算値を示している。該輝度積算値は、該Ｘ座標における垂直ラインの明るさを示している。眼鏡ブリッジＨが存在している場合、図１０（ｂ）に示すように、眼鏡ブリッジＨと、眼鏡上フレームＩとの接続部分の輝度積算値が他の部分に比べて低く落ち込む。
【００５６】
次いで、ＣＰＵ２１は、図１０（ｃ）に示すように輝度積算値の左右差分値を算出する（ステップＳ５９）。図１０（ｃ）に示すグラフの横軸は、画像データにおけるＸ座標を、縦軸は各Ｘ座標における左右差分値を示している。左右差分値は、例えば下記の式２によって算出する。
左右差分値＝Ｍ２（ｘ＋所定画素）−Ｍ２（ｘ）…式２
但し、ｘは、一の垂直ラインのＸ座標を示しており、Ｍ２（ｘ）は該垂直ラインにおける画素位置ｘにおける輝度積算値を示している。
【００５７】
そして、ＣＰＵ２１は、基準点Ｐ１より水平方向左側にある左右差分値が最大となるＸ座標を眼鏡ブリッジＨの左位置候補として検出し（ステップＳ６０）、基準点Ｐ１より水平方向右側にある左右差分値が最小となるＸ座標を眼鏡ブリッジＨの右位置候補として検出する（ステップＳ６１）。
【００５８】
次いで、ＣＰＵ２１は、ステップＳ５６、５７、６０，６１の検出結果より、眼鏡ブリッジＨの有無を判定する（ステップＳ６２）。具体的には、眼鏡ブリッジＨの上位置の上下差分値の絶対値と、下位置の上下差分値の絶対値との和が第１の所定閾値以上であり、眼鏡ブリッジＨの右位置候補の左右差分値の絶対値と、左位置候補の左右差分値の絶対値との和が第２の所定閾値以上であり、更に眼鏡ブリッジＨ左位置候補と、右位置候補との距離が顔幅Ｆｗに対して閾値範囲内に有る場合、眼鏡ブリッジＨ有りと判定する。つまり、眼鏡ブリッジＨの上位置、下位置、左右位置候補が眼鏡ブリッジＨとして不自然な位置関係に無いか否かを判定する。
【００５９】
ステップＳ６２で眼鏡ブリッジＨ有りと判定した場合（ステップＳ６２：ＹＥＳ）、ＣＰＵ２１は、眼鏡ブリッジＨの中点Ｈ３、左端点Ｈ１及び右端点Ｈ２の位置座標を記憶し（ステップＳ６３）、眼鏡ブリッジＨの検出に係る処理を終える。なお、第１の閾値及び第２の閾値は、眼鏡ブリッジＨの検出結果の学習によって変化させても良い。眼鏡Ｇによっては眼鏡ブリッジＨの検出し易さが異なるが、眼鏡ブリッジＨの取得率に基づいて第１及び第２の閾値を増減させることにより、眼鏡Ｇの種類に応じた最適な閾値を得ることができ、正確に眼鏡ブリッジＨを検出することができる。
【００６０】
図１１は、眼鏡ブリッジＨの中点Ｈ３、左端点Ｈ１、及び右端点Ｈ２を示す模式図である。
【００６１】
眼鏡ブリッジＨの中点Ｈ３のＸ座標は、水平方向における眼鏡ブリッジＨの左位置候補と、右位置候補との中点の座標であり、Ｙ座標は眼鏡ブリッジＨの上位置の座標である。また、眼鏡ブリッジＨの左端点Ｈ１のＸ座標は眼鏡ブリッジＨの左位置候補の座標であり、Ｙ座標は眼鏡ブリッジＨの上位置の座標と下位置の座標との中点である。眼鏡ブリッジＨの右端点Ｈ２のＸ座標は眼鏡ブリッジＨの右位置候補の座標であり、Ｙ座標は眼鏡ブリッジＨの上位置の座標と下位置の座標との中点である。
【００６２】
図１２及び図１３は、第１の眼鏡上フレーム検出に係るＣＰＵ２１の処理手順を示すフローチャート、図１４は、眼鏡上フレームＩの左端点候補、及び右端点候補を概念的に示す説明図である。まず、ＣＰＵ２１は、眼鏡ブリッジＨの中点Ｈ３、左右端点Ｈ１，Ｈ２及び顔領域Ｒ０の位置に基づいて、眼鏡上フレームＩの左右端点候補Ｉ１０，Ｉ２０を算出する（ステップＳ７１）。
【００６３】
眼鏡上フレームＩの右端点候補Ｉ２０のＸ座標は、図１４に示すように、眼鏡ブリッジＨの左端点Ｈ１のＸ座標であり、Ｙ座標は眼鏡ブリッジＨの中点Ｈ３のＹ座標である。眼鏡上フレームＩの左端点候補Ｉ１０のＸ座標は、顔領域Ｒ０の左端点のＸ座標Ｆｘ１、Ｙ座標は眼鏡ブリッジＨの中点Ｈ３のＹ座標である。
【００６４】
次いで、ＣＰＵ２１は、眼鏡上フレームＩの左端点候補Ｉ１０及び右端点候補Ｉ２０の位置座標を補正して得られる左端点Ｉ１及び右端点Ｉ２の位置座標を算出する（ステップＳ７２）。
【００６５】
次いで、ＣＰＵ２１は、眼鏡上フレームＩの頂点を検出するための検出処理範囲を設定する（ステップＳ７３）。
【００６６】
図１５は、眼鏡上フレームＩの頂点Ｉ３を検出するための検出処理範囲Ｒ３を概念的に示す説明図である。図１５に示すように、検出処理範囲Ｒ３は矩形領域であり、眼鏡上フレームＩの左端点Ｉ１及び右端点Ｉ２を横方向両端とし、垂直方向上側及び下側へ適宜長の広がりを有する領域である。より具体的には、検出処理範囲Ｒ３の左上端Ｒ３１のＸ座標は上フレームの左端点Ｉ１のＸ座標値であり、Ｙ座標は左端点Ｉ１及び右端点Ｉ２の内、最も上側の点、つまり最も値が小さいＹ座標値から所定値Ｎ５を減算した座標値である。また、検出処理範囲Ｒ３の右下端Ｒ３２のＸ座標は、眼鏡上フレームＩの右端点Ｉ２のＸ座標であり、Ｙ座標は左端点Ｉ１及び右端点Ｉ２の内、最も下側の点、つまり最も値が大きいＹ座標値に所定値Ｎ６加算した座標値である。なお、Ｎ５及びＮ６は、顔幅Ｆｗに対する固定比である。
【００６７】
次いで、ＣＰＵ２１は、画像データ、例えば顔領域Ｒ０の画像データに所定の画像処理を実行して処理画像を作成する（ステップＳ７４）。具体的には、画像データに対してラプラシアンフィルタを用いたフィルタ処理を実行し、フィルタ処理された画像を２値化する。２値化する際に使用する閾値は、処理範囲における閾値以上の輝度値を有する画素の数と、閾値未満の輝度値を有する画素の数との比が所定割合になるように設定する。そして、孤立点除去等のノイズ除去処理を実行する。ステップＳ７４の処理によって、エッジが強い箇所が１、弱い箇所が０となる２値画像を得ることができる。
【００６８】
次いで、ＣＰＵ２１は、眼鏡ブリッジＨの有無を評価するための眼鏡ブリッジスコアを算出する（ステップＳ７５）。
図１６は、眼鏡ブリッジＨの再評価処理方法を説明するための説明図である。ＣＰＵ２１は、ステップＳ７４で処理された画像であって、眼鏡ブリッジＨの左端点Ｈ１と右端点Ｈ２とを結ぶ直線から上下に所定幅Ｎ７を有する画像領域中における輝度値１の含有率を眼鏡ブリッジスコアとして算出する。含有率は、前記画像領域を構成する画素の数に対する、輝度値１を有する画素の割合である。
【００６９】
次いで、ＣＰＵ２１は、眼鏡ブリッジスコアに基づいて眼鏡ブリッジＨが有るか否かを判定する（ステップＳ７６）。含有率が所定閾値以上であるか否かを判断することによって、眼鏡ブリッジＨが存在するか否かを再評価する。眼鏡ブリッジＨが存在していれば、眼鏡ブリッジＨ周辺にエッジ成分が存在し、ステップＳ７４で処理された画像中に輝度値が１の画素として表出する。ステップＳ７６の処理によって、上述の眼鏡ブリッジＨの検出処理と、上述の再評価処理とによって、眼鏡ブリッジＨの有無を正確に判定することができる。
なお、現画像データの眼鏡ブリッジスコアのみならず、過去の画像データの眼鏡ブリッジスコアも用いて眼鏡ブリッジＨの有無を評価する。具体的には、現画像データの眼鏡ブリッジスコアが閾値以上であり、且つ第１所定数フレームの画像データの内、眼鏡ブリッジスコアが閾値以上である画像データの数が第２所定数以上である場合、眼鏡ブリッジＨ有りと判定する。
【００７０】
図１７は、眼鏡上フレームＩの頂点位置の探索方法を概念的に示す説明図である。ステップＳ７６で眼鏡ブリッジＨ有りと判定した場合（ステップＳ７６：ＹＥＳ）、検出処理範囲Ｒ３中を走査しながら眼鏡ブリッジＨの頂点Ｉ３を評価するための頂点スコアを算出する（ステップＳ７７）。具体的には、眼鏡上フレームＩの左端Ｉ１及び右端Ｉ２と、頂点Ｉ３とを結ぶ線分上にある眼鏡上フレームＩの輝度和を頂点スコアとして算出する。そして、ＣＰＵ２１は、頂点スコアが最大となる頂点Ｉ３の位置を特定し（ステップＳ７８）、頂点スコアの最大値が所定の閾値以上であるか否かを判定する（ステップＳ７９）。閾値以上であると判定した場合（ステップＳ７９：ＹＥＳ）、ＣＰＵ２１は、眼鏡上フレームＩの左端Ｉ１、右端Ｉ２及び頂点Ｉ３の位置座標を記憶し（ステップＳ８０）、眼鏡上フレームＩの検出に係る処理を終える。また、ステップＳ７６で眼鏡ブリッジＨが無いと判定した場合（ステップＳ７６：ＮＯ）、頂点スコアの最大値が閾値未満であると判定された場合（ステップＳ７９：ＮＯ）、ＣＰＵ２１は眼鏡上フレームＩが検出されなかったとして処理を終える。
【００７１】
図１８は、眼鏡蔓Ｊの検出に係るＣＰＵ２１の処理手順を示すフローチャートである。ＣＰＵ２１は、眼鏡蔓Ｊを検出するための所定の検出処理条件を具備しているか否かを判定する（ステップＳ９１）。眼鏡蔓Ｊを取得できる状況であるか否かを示す眼鏡蔓Ｊフラグが１であって、顔の向きが右向き又は左向きの場合、検出処理条件を具備していると判定する。眼鏡蔓Ｊフラグは、例えば、眼鏡学習処理において眼鏡ブリッジＨの取得率が所定値以上である場合、１に設定され、取得率が所定値未満である場合、０に設定される。また、眼鏡ブリッジＨの取得率が所定値以上であっても、眼鏡蔓Ｊの取得率が悪い場合、眼鏡蔓Ｊフラグを０に設定する。顔の向きに応じて眼鏡蔓Ｊ検出の要否を判定するように構成することにより、無駄な検出処理を省き、眼鏡蔓Ｊの検出精度を向上させることができる。
【００７２】
検出処理条件を具備していると判定した場合（ステップＳ９１：ＹＥＳ）、ＣＰＵ２１は、眼鏡蔓Ｊの検出処理範囲Ｒ６を算出する（ステップＳ９２）。
【００７３】
図１９は、眼鏡蔓Ｊの検出処理範囲Ｒ６の算出方法を概念的に示す説明図である。まずＣＰＵ２１は、図１９（ａ）中、実線の矩形枠で示すような基準範囲Ｒ４を算出する。基準領域Ｒ４は顔領域Ｒ０の上半分である。つまり、基準領域Ｒ４の左右端及び上端は顔領域Ｒ０の左右端及び上端に一致し、基準領域Ｒ４の下端は顔領域Ｒ０の上下端の中間位置である。
次いで、ＣＰＵ２１は図１９（ｂ）中、実線の矩形枠で示すように、上下範囲を一定範囲に限定する。具体的には、ＣＰＵ２１は過去に検出された眼位置中点のＹ座標軸を中心にして上下に顔幅ＦｗのＮ８１％の広がりを有する範囲Ｒ５に限定する。なお、過去に検出された眼位置中点が無い場合、眼鏡ブリッジＨの中点Ｈ１を基準にして上下範囲を設定すれば良い。
【００７４】
そして、ＣＰＵ２１は図１９（ｃ）中、実線の矩形枠で示すように、水平方向の範囲を一定範囲に限定する。具体的にはＣＰＵ２１は、図１９（ｃ）に示すように顔が左を向いている場合、範囲Ｒ５の右端から顔幅ＦｗのＮ８２％の幅を有する範囲を眼鏡蔓Ｊの検出処理範囲Ｒ６とする。顔が右を向いている場合は、範囲Ｒ５の左端から顔幅ＦｗのＮ８２％の幅を有する範囲を眼鏡蔓Ｊの検出処理範囲Ｒ６とする。
【００７５】
ステップＳ９２の処理を終えた場合、ＣＰＵ２１は、検出処理範囲Ｒ６における各Ｘ座標と、眼鏡蔓Ｊと推定される画素のＹ座標とを対応付けたＹ位置テーブルを算出する（ステップＳ９３）。
【００７６】
図２０は、Ｙ位置テーブルの算出方法を概念的に示す説明図である。まずＣＰＵ２１は、検出処理範囲Ｒ６の左端においてＹ方向に並ぶ複数の画素から眼鏡蔓Ｊと推定される画素を特定し、該画素のＹ座標を記憶する。以下、ＣＰＵ２１は同様の処理を検出処理範囲Ｒ６の左端から右端までＸ方向へ順次走査し、各Ｙ方向ラインに対して実行する。
より具体的には、図２０に示すようにＸ座標がｘ１のＹ方向ラインで各画素について上下の輝度差及び素直方向の微分値を算出する。例えば、Ｙ座標がｙ１の対象画素についてその上下、つまりＹ座標がｙ１＋Δｙの画素と、Ｙ座標がｙ１−Δｙの画素との輝度差、及び垂直方向における微分値を算出する。そして、前記輝度差が閾値以上であって、垂直方向における微分値が最大の対象画素を眼鏡蔓Ｊと推定される画素として特定し、該画素のＸ座標及びＹ座標（以下、Ｙ位置という）をＹ位置テーブルに記憶する。Ｙ位置テーブルは、連続する複数のＸ座標の値と、各Ｘ座標に対応するＹ位置とを対応付けた情報である。
【００７７】
なお、Ｙ位置テーブルを算出する際、ノイズ除去処理を実行すると良い。
図２１は、Ｙ位置テーブルに係るノイズ除去方法を概念的に示す説明図である。３本の縦線は眼鏡蔓Ｊを抽出する処理ラインＬ１，Ｌ２，Ｌ３を示しており、ＣＰＵ２１は左側の処理ラインＬ１から右側の処理ラインＬ３へ順に眼鏡蔓Ｊの画素を抽出する。黒色四角印は各ラインＬ１，Ｌ２，Ｌ３で眼鏡蔓Ｊの位置として算出された画素を示しており、白抜き四角印はノイズ除去処理された後の画素を示している。具体的には、ＣＰＵ２１は、処理ラインＬ２におけるＹ位置と処理ラインＬ３におけるＹ位置との差が第１の所定値以上であって、処理ラインＬ１におけるＹ位置と処理ラインＬ１におけるＹ位置との差が第２の所定値未満である場合、処理ラインＬ２における眼鏡蔓画素のＹ座標を、図２１に示すように処理ラインＬ１におけるＹ位置と処理ラインＬ３におけるＹ位置との中間値に補正する。
【００７８】
図２２は、眼鏡蔓Ｊの左端及び右端の検出方法を概念的に示す説明図である。ＣＰＵ２１は、ステップＳ９３で作成したＹ位置テーブルを参照して、連続性を有する眼鏡蔓画素を特定し、最長となる連続線の左端点Ｊ１及び右端点Ｊ２の位置を算出する（ステップＳ９４）。
具体的には、ＣＰＵ２１は、Ｙ位置テーブルを参照して、隣り合うＸ座標におけるＹ位置の差が所定閾値以下の場合、連続性ありと判定する。概念的には、水平方向において隣り合う眼鏡蔓画素のＹ位置の差、例えばＸ座標がｘ１の眼鏡蔓画素と、Ｘ座標がｘ１＋１の眼鏡蔓画素とのＹ座標の差が所定閾値以下の場合、各眼鏡蔓画素は連続性があると判定する。
【００７９】
そして、ＣＰＵ２１は、連続性を有する眼鏡蔓画素の群が複数ある場合、連続する画素数が最大の眼鏡蔓画素群を特定し、該眼鏡蔓画素群において最小のＸ座標及び最大のＸ座標を眼鏡蔓Ｊの左端点候補及び右端点候補のＸ座標として記憶する。但し、左端点候補のＸ座標と、右端点候補のＸ座標との差が所定閾値以下の場合、つまり眼鏡蔓Ｊとしての長さが短すぎる場合、眼鏡蔓Ｊ無しと判断する。
眼鏡蔓Ｊ無しと判断されずに左端点候補及び右端点候補のＸ座標が算出された場合、ＣＰＵ２１は、Ｙ位置テーブルを参照し、左端点候補及び右端点候補間のＸ座標及びＹ位置を用いて最小自乗法により眼鏡蔓Ｊの近似直線を算出する（ステップＳ９５）。
そして、ＣＰＵ２１は、左端点候補のＸ座標から近似直線を用いて左端点候補のＹ座標を算出し、右端点候補のＸ座標から近似直線を用いて右端点候補のＹ座標を算出する（ステップＳ９６）。
【００８０】
次いで、ＣＰＵ２１は、眼鏡蔓Ｊの候補を評価し、眼鏡蔓Ｊの左端点候補及び右端点候補が所定条件を満たした場合、眼鏡蔓Ｊの左端点Ｊ１及び右端点Ｊ２であると判断し、左右端点候補の座標を左端点Ｊ１及び右端点Ｊ２の座標として決定し、記憶する（ステップＳ９７）。第１の所定条件は左端点候補及び右端点候補の水平角度が所定角度範囲内であること、第２の所定条件は、近似曲線の残差の平均が所定閾値以下であることである。つまり、眼鏡蔓Ｊが略直線状であって、水平方向に対す角度が眼鏡蔓Ｊとして自然な範囲内にあるか否かを判定する。
【００８１】
次にステップＳ１５に係る第２の眼鏡部品認識の処理内容を具体的に説明する。
図２３は、第２の眼鏡部品認識に係るＣＰＵの処理手順を示すフローチャートである。ＣＰＵ２１は、微分フィルタを用いて眼鏡下フレームＫを検出し（ステップＳ１１１）、眼鏡上フレームＩを検出する（ステップＳ１１２）。そして、輝度平均値及び輝度の分散値を算出してサングラスであるか否かを判定する（ステップＳ１１３）。
【００８２】
次いで、ＣＰＵ２１は左右のフレームについて検出処理を終えたか否かを判定する（ステップＳ１１４）。左右のフレームについて検出処理を終えていないと判定した場合（ステップＳ１１４：ＮＯ）、ＣＰＵ２１は処理をステップＳ１１１に戻す。左右のフレームについて検出処理を終えたと判定した場合（ステップＳ１１４：ＹＥＳ）、ＣＰＵ２１は、過去の画像データに対するサングラス判定の結果を利用してサングラスを装着しているか否かを判定する総合サングラス判定処理を実行し（ステップＳ１１５）、第２の眼鏡部品認識に係る処理を終える。
【００８３】
図２４は、第２の眼鏡下フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。ＣＰＵ２１は、眼鏡下フレームＫを検出するための検出処理範囲Ｒ７を算出する（ステップＳ１３１）。
【００８４】
図２５は、眼鏡下フレームＫの検出処理範囲を概念的に示す説明図である。検出処理範囲Ｒ７の水平方向の範囲は、図２５（ａ）に示すように、過去に検出された眼位置を中心として左右に顔幅ＦｗのＮ９％の範囲である。つまり、検出処理範囲Ｒ７の左端のＸ座標は、眼位置のＸ座標をＥｘとした場合、Ｅｘ−Ｆｗ×Ｎ９／１００、検出処理範囲Ｒ７の右端のＸ座標は、Ｅｘ＋Ｆｗ×Ｎ９／１００である。
検出処理範囲Ｒ７の下端は鼻穴の中点Ｐ０から顔幅ＦｗのＮ１０％下側の位置である。つまり検出処理範囲Ｒ７の下端のＹ座標は、中点Ｐ０のＹ座標＋Ｆｗ×Ｎ１０／１００である。検出処理範囲Ｒ７の上端は、眼位置ＥのＹ座標Ｅｙである。
【００８５】
検出処理範囲Ｒ７を算出した場合、ＣＰＵ２１は、検出処理範囲Ｒ７において微分フィルタを用いて微分フィルタ抽出処理を実行する（ステップＳ１３２）。図２５（ｂ）は、微分フィルタの係数の一例を示している。微分フィルタは、垂直方向において上方から下方へ輝度が高い画像領域、輝度が低い画像領域、輝度が高い画像領域へと変化する下フレーム部分を抽出するフィルタである。ＣＰＵ２１は、一のＹ方向ラインにおいて検出処理範囲Ｒ７の下方から上方へ順に微分フィルタ値を算出し、最初に所定閾値以上になった画素を検出する。微分フィルタ値は、対象画素を中心とした８近傍の８画素にそれぞれ微分フィルタの係数を乗算し、乗算して得た値を加算した数値である。
【００８６】
なお、微分フィルタ処理中、対象画素より１画素上方の画素、例えば対象画素のＹ座標がｙ１である場合、Ｙ座標がｙ１−１の画素の輝度が第１所定輝度以上である場合、外部光源からの光を眼鏡レンズが反射している部分であると判定し、その画素（以下、反射部分画素という）を検出する。第１所定輝度は、例えば２５５階調で２４０である。外部光源は、顔認識等の各種目的で運転者を照明するために車内に設置されているＬＥＤ光源である。
【００８７】
また、微分フィルタ処理開始時の対象画素、つまり検出処理範囲Ｒ７の下側部分で対象画素より１画素上方又は１画素下方の画素の輝度が一方でも第２所定輝度以上である場合、顔全体が明るい傾向にあると判断し、第１所定輝度を上げる。例えば第２所定輝度は、２５６階調で２１０であり、第１所定輝度を２４０から２５０に上げる。上記処理によって、反射部分のより正確な検出が可能になる。
【００８８】
一のＹ方向ラインに対して上述の処理を終えた場合、ＣＰＵ２１は、検出処理領域Ｒ６において左側から右側へ他のＹ方向ラインに対しても同様の処理を順次実行する。なお、検出処理範囲Ｒ７の水平方向の幅に応じて、微分フィルタ処理の対象となるＹ方向ラインを間引き、最大ｎ個の結果を算出する。ｎは、処理速度と、判定精度との兼ね合いで適宜設定すれば良い。
【００８９】
図２６は、眼鏡下フレームＫの下位置を概念的に示す説明図である。
ＣＰＵ２１は、微分フィルタ抽出処理を終えた場合、眼鏡下フレームＫの下位置を検出し（ステップＳ１３３）、眼鏡下フレーム検出に係る処理を終える。眼鏡下フレームＫの下位置は、図２６中、×印で示した箇所である。具体的には、ステップＳ１３２で複数の画素が検出されている場合、ＣＰＵ２１は、検出されたｎ個の画素中、各画素のＹ座標の中間値を下位置のＹ座標として記憶する。また、ＣＰＵ２１は、検出処理範囲Ｒ８の水平方向略中央部のＸ座標を、下位置のＸ座標として記憶する。
【００９０】
ステップＳ１３２で検出された画素が１つも無い場合、反射部分画素が検出されたか否かを判定する。反射部分画素が検出されていると判定した場合、該反射部分画素のＹ座標を下位置のＹ座標として記憶する。なお、反射部分画素が複数ある場合は、最大のＹ座標を下位置のＹ座標として記憶する。
下フレームが無い眼鏡Ｇの場合、眼鏡下フレームＫが検出されないが、反射部分が検出されている場合、反射部分に眼鏡Ｇが存在していると考えられるため、反射部分の最下端を下位置として記憶する。
ＣＰＵ２１は、ステップＳ１３２で検出された画素が１つも無く、反射部分画素が検出されてない場合、眼鏡下フレームＫが無いと判定して、処理を終える。
【００９１】
なお、ｎ個検出した画素における微分フィルタ値の平均値を算出し、眼鏡下フレームスコアとして記憶する。眼鏡下フレームスコアにより、検出された下位置が眼鏡Ｇであるか眼であるかを判定することができる。ＣＰＵ２１は、眼鏡下フレームスコアが第１の閾値より大きい場合、眼鏡Ｇであると判定し、眼鏡下フレームスコアが第１の閾値より小さい第２の閾値未満の場合、眼であると判定する。
【００９２】
図２７は、第２の眼鏡上フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。ＣＰＵ２１は、眼鏡上フレームＩを検出するための検出処理範囲Ｒ８を算出する（ステップＳ１５１）。
【００９３】
図２８は、眼鏡上フレームＩの検出処理範囲Ｒ８を概念的に示す説明図である。ＣＰＵ２１は、検出処理範囲Ｒ８の水平方向範囲は、図２８（ａ）に示すように下フレームの検出処理範囲Ｒ８と同様である。検出処理範囲Ｒ８の下端は眼鏡下フレームＫの下位置とする。検出処理範囲Ｒ８の上端は、眼鏡下フレームＫの検出処理範囲Ｒ８の上端から更に顔幅Ｆｗの所定数％上側の位置である。
【００９４】
検出処理範囲Ｒ８を算出した場合、ＣＰＵ２１は、検出処理範囲Ｒ８において微分フィルタを用いて微分フィルタ抽出処理を実行する（ステップＳ１５２）。図２８（ｂ）は、微分フィルタの係数の一例を示している。微分フィルタは、垂直方向において下方から上方へ輝度が高い画像領域から輝度が低い画像領域へ変化する眼鏡上フレームＩ部分を抽出するフィルタである。ＣＰＵ２１は、一のＹ方向ラインにおいて検出処理範囲Ｒ８の下方から上方へ順に微分フィルタ値を算出し、最初に所定閾値以上になった画素を検出する。微分フィルタ値は、対象画素を中心とした８近傍の８画素にそれぞれ微分フィルタの係数を乗算し、乗算して得た値を加算した数値である。
【００９５】
一のＹ方向ラインに対して上述の処理を終えた場合、ＣＰＵ２１は、他のＹ方向ラインに対しても同様の処理を実行する。なお、検出処理範囲Ｒ８の水平方向の幅に応じて、微分フィルタ処理の対象となるＹ方向ラインを間引き、最大ｎ個の結果を算出する。
図２９は、眼鏡上フレームＩの上位置を概念的に示す説明図である。
ＣＰＵ２１は、微分フィルタ抽出処理を終えた場合、眼鏡上フレームＩの上位置を検出し（ステップＳ１５３）、眼鏡上フレーム検出に係る処理を終える。眼鏡上フレームＩの上位置は、図２９中、×印で示した箇所である。具体的には、ステップＳ１５２で複数の画素が検出されている場合、ＣＰＵ２１は、検出されたｎ個の画素中、各画素のＹ座標の中間値を上位置のＹ座標として記憶する。また、ＣＰＵ２１は、検出処理範囲Ｒ８の水平方向略中央部のＸ座標を、上位置のＸ座標として記憶する。
【００９６】
図３０は、サングラスの判定に係るＣＰＵの処理手順を示すフローチャート、図３１は、サングラスの判定方法を概念的に示す説明図である。ＣＰＵ２１は、現フレームにおいてサングラスであるか否かの判定結果を示すサングラスフラグをオフにする（ステップＳ１７１）。そして、ＣＰＵ２１は、サングラス処理範囲内の輝度平均及び輝度の分散値を算出する（ステップＳ１７２）。サングラス処理範囲の上下は、眼鏡上フレームＩの上位置Ｉ４及び下フレームの下位置Ｋ１であり、サングラス処理範囲の左右は眼鏡下フレームＫの処理範囲と同様である。
【００９７】
次いで、ＣＰＵ２１は、輝度平均値が閾値以下であるか否かを判定する（ステップＳ１７３）。輝度平均値が閾値以下であると判定した場合（ステップＳ１７３：ＹＥＳ）、ＣＰＵ２１は、輝度値の分散値が閾値以下であるか否かを判定する（ステップＳ１７４）。閾値以下であると判定した場合（ステップＳ１７４：ＹＥＳ）、ＣＰＵ２１は、サングラスフラグをオンにしてサングラスフラグの値を記憶する（ステップＳ１７５）。
【００９８】
ステップＳ１７５の処理を終えた場合、輝度平均値が閾値より大きいと判定した場合（ステップＳ１７３：ＮＯ）、分散値が閾値より大きいと判定した場合（ステップＳ１７４：ＮＯ）、ＣＰＵ２１は、眼鏡Ｇの左右両側のサングラス判定を実行したか否かを判定する（ステップＳ１７６）。左右両側又はいずれか一方のサングラス判定を実行していないと判定した場合（ステップＳ１７６：ＮＯ）、ＣＰＵ２１は処理をステップＳ１７１に戻す。左右両側のサングラス判定を実行したと判定した場合、ＣＰＵ２１はサングラス判定に係る処理を終える。
【００９９】
図３２は、サングラス総合判定に係るＣＰＵの処理手順を示すフローチャートである。ＣＰＵ２１は、過去の所定数フレームのサングラスフラグを読み出す（ステップＳ１９１）。そして、ＣＰＵ２１は所定数フレーム中、閾値以上のフレーム数においてサングラスフラグがオンであるか否かを判定する（ステップＳ１９２）。閾値以上のフレームでオンであると判定した場合（ステップＳ１９２：ＹＥＳ）、サングラスの有無を総合的に判断した結果を示す総合サングラスフラグをオンにし（ステップＳ１９３）、サングラス総合判定に係る処理を終える。閾値未満のフレーム数でオンであると判定した場合（ステップＳ１９２：ＮＯ）、ＣＰＵ２１は、総合サングラスフラグをオフにし（ステップＳ１９４）、サングラス総合判定に係る処理を終える。
サングラスフラグが示す１フレームのみの結果では、瞬間的な輝度変化、手の進入等によってサングラスを誤認識する虞があるが、複数フレームでのサングラス判定結果を用いて総合的に判定することにより、上述のような誤認識を防止することができる。
【０１００】
第２の眼鏡部品認識に係る処理を終えた場合、図２に示すようにＣＰＵ２１は、眼鏡学習、眼鏡判定処理を実行する（ステップＳ１６）。
具体的には、ＣＰＵ２１は、眼鏡蔓Ｊ、眼鏡上フレームＩ、眼鏡下フレームＫ、眼鏡ブリッジＨの検出の成否、及び各眼鏡部品の位置を記録する。
また、ＣＰＵ２１は、過去の所定数フレームにおける各眼鏡部品の取得率、即ち検出の成功率を算出し、ＨＤ２３に記録する。眼鏡部品の取得率は、各眼鏡部品毎に算出する。眼鏡Ｇによっては、眼鏡下フレームＫが検出されないが、眼鏡ブリッジＨは検出できるような場合が存在するからである。
そして、ＣＰＵ２１は、各眼鏡部品の取得率に基づいて眼鏡Ｇの有無を判定する。例えば、取得率が所定取得率以上の眼鏡部品が一つ以上ある場合、眼鏡Ｇ有りと判定する。また、顔が横向きの場合、眼鏡蔓Ｊの取得率を用いて眼鏡Ｇの有無を判定し、顔が正面向きの場合、眼鏡ブリッジの取得率を用いて眼鏡Ｇの有無を判定するように構成しても良い。
【０１０１】
次に、図２に示すステップＳ１８，１９の処理内容を説明する。
ＣＰＵ２１は、ステップＳ１６で眼鏡Ｇ有りと判定されている場合、眼鏡部品の領域を除外して探索領域を設定する。
【０１０２】
図３３は、眼の探索領域から眼鏡部品の領域を除外した状態を概念的に示す説明図である。例えば、ＣＰＵ２１は、眼の探索領域として顔領域Ｒ０を設定するような場合、該探索領域から各眼鏡部品の領域を除外した画像領域を探索領域として設定する。眼鏡ブリッジＨの領域は、例えば、眼鏡ブリッジＨの左端点Ｈ１と右端点Ｈ２とを結ぶ直線から上下に所定幅を有する画像領域である。眼鏡上フレームＩの領域は、眼鏡上フレームＩの上位置Ｉ４を中心として上下に所定幅を有し、水平方向範囲は、検出処理領域Ｒ７と同様である。眼鏡下フレームＫの領域は、眼鏡下フレームＫの下位置を中心として上下に所定幅を有し、水平方向範囲は検出処理領域Ｒ７と同様である。眼鏡蔓Ｊの領域は、眼鏡蔓Ｊの左端点Ｊ１及び右端点Ｊ２を頂点とする矩形領域である。
なお、眼鏡上フレームＩの領域を、第２の眼鏡部品認識処理によって検出した座標に基づいて算出しているが、第１の眼鏡部品認識処理によって検出した座標に基づいて算出するように構成しても良い。
【０１０３】
そして、ＣＰＵ２１は、眼鏡部品が除外された探索領域内でテンプレートマッチング等によって眼を検出する。また、垂直方向に輝度が高低変化する上瞼又は下瞼をエッジフィルタ処理によって検出することで眼を検出しても良い。
眼の探索領域から眼鏡部品の領域を除外することにより、眼鏡部品を眼の瞼と誤検出することを防止することができる。
【０１０４】
次に、ステップＳ２０の眼の再検出処理について説明する。
図３４は、眼の再検出に係るＣＰＵの処理手順を示すフローチャートである。まず、ＣＰＵ２１は、眼鏡蔓Ｊの位置を基準とした探索領域Ｓを設定し、眼の再検出処理を実行する（ステップＳ２１１）。眼鏡蔓Ｊに対する探索領域Ｓの相対距離は顔幅Ｆｗに比例し、その探索領域Ｓの寸法も顔幅Ｆｗに比例するように設定される。
【０１０５】
以下、ステップＳ２１１の処理内容を具体的に説明する。
図３５は、眼鏡蔓Ｊの検出結果を用いた眼の再検出に係るＣＰＵの処理手順を示すフローチャート、図３６は、眼鏡蔓Ｊの位置を基準として設定された探索領域を概念的に示す説明図である。ＣＰＵ２１は、顔幅Ｆｗを算出し（ステップＳ２３１）、顔幅Ｆｗに基づいて眼推定領域の縦幅Ｓｈを算出する（ステップＳ２３２）。また、ＣＰＵ２１は、顔幅Ｆｗに基づいて眼推定領域の横幅Ｓｗを算出する（ステップＳ２３３）。眼推定領域の横幅Ｓｗ及び縦幅Ｓｈは、顔幅Ｆｗに比例する。
【０１０６】
そして、ＣＰＵ２１は、眼鏡蔓Ｊの左端点Ｊ１より眼推定領域の横幅ＳｗのＷ１１％左側の位置を、探索領域Ｓの右端のＸ座標として設定する（ステップＳ２３４）。眼鏡蔓Ｊの左端点Ｊ１のＸ座標をＪ１ｘとした場合、探索領域Ｓの右端のＸ座標は、Ｊ１ｘ−Ｓｗ×Ｗ１１／１００で表される。
次いで、ＣＰＵ２１は、眼鏡蔓Ｊの左端点Ｊ１より眼推定領域の横幅ＳｗのＷ１２％左側の位置を、探索領域Ｓの左端のＸ座標として設定する（ステップＳ２３５）。探索領域Ｓの左端のＸ座標は、Ｊ１ｘ−Ｓｗ×Ｗ１２／１００で表される。
【０１０７】
次いで、ＣＰＵ２１は、眼鏡蔓Ｊの左端点Ｊ１より眼推定領域の縦幅ＳｈのＨ１１％下側の位置を、探索領域Ｓの上端のＸ座標として設定する（ステップＳ２３６）。眼鏡蔓Ｊの左端点Ｊ１のＹ座標をＪ１ｙとした場合、探索領域Ｓの上端のＹ座標は、Ｊ１ｙ＋Ｓｈ×Ｈ１１／１００で表される。
次いで、ＣＰＵ２１は、眼鏡蔓Ｊの左端点Ｊ１より眼推定領域の縦幅ＳｈのＨ１２％下側の位置を探索領域Ｓの下端のＹ座標として設定する（ステップＳ２３７）。探索領域Ｓの下端のＹ座標は、Ｊ１ｙ＋Ｓｈ×Ｈ１２／１００で表される。
【０１０８】
そして、ＣＰＵ２１は、図３６に示すように設定された探索領域Ｓから眼を検出し（ステップＳ２２８）、眼鏡蔓Ｊの検出結果を用いた眼の再検出に係る処理を終える。
【０１０９】
図３４に示すように眼鏡蔓Ｊに係る眼の再検出処理を終えた場合、眼鏡ブリッジＨが検出されているとき、ＣＰＵ２１は、過去にＨＤ２３に記録した眼鏡部品、顔部位及び眼位置と、現フレームで検出された眼鏡ブリッジＨ、顔部位の位置関係とに基づいて探索領域を設定し、眼の再検出処理を実行する（ステップＳ２１２）。
【０１１０】
以下、ステップＳ２１２の処理内容を具体的に説明する。
図３７は、眼鏡ブリッジＨの検出結果を用いた眼の再検出に係るＣＰＵのフローチャート、図３８は、眼鏡ブリッジＨの検出結果を用いて設定された探索領域を概念的に示す説明図である。
【０１１１】
まず、ＣＰＵ２１は過去に登録、つまりＨＤ２３に記録された眼鏡ブリッジＨ、両眼、及び鼻穴の位置座標を読み出す（ステップＳ２５１）。
【０１１２】
次いで、ＣＰＵ２１は、図３８（ａ）に示すように登録されている眼鏡ブリッジＨ、両眼及び鼻穴の位置関係と、現フレームの画像データから検出された眼鏡ブリッジＨ及び鼻穴の位置関係とに基づいて、現フレームにおける眼の再検出位置Ｅの座標（Ｅｘ，Ｅｙ）を算出する（ステップＳ２５２）。顔の位置、向き等が変化している場合であっても、登録されている各部の位置関係と、現フレームにおける各部との間には一定の関係がある。そこで、ＣＰＵ２１は、登録されている各部の座標を現フレームにおける各部の座標に変換する変換式を算出する。ＣＰＵ２１は、算出された変換式と、登録されている両眼の位置とを用いて、現フレームにおける眼位置を再検出位置の座標として算出する。
【０１１３】
次いで、ＣＰＵ２１は、顔幅Ｆｗを算出し（ステップＳ２５３）、顔幅Ｆｗに基づいて眼推定領域の縦幅Ｓｈを算出する（ステップＳ２５４）。また、ＣＰＵ２１は、顔幅Ｆｗに基づいて眼推定領域の横幅Ｓｗを算出する（ステップＳ２５５）。眼推定領域の横幅Ｓｗ及び縦幅Ｓｈは、顔幅Ｆｗに比例する。
【０１１４】
次いで、ＣＰＵ２１は、図３８（ｂ）に示すように、ＣＰＵ２１は、再検出位置Ｅより眼推定領域の横幅ＳｗのＷ１３％右側の位置を、探索領域の右端のＸ座標として設定し（ステップＳ２５６）、Ｗ１３％左側の位置を、探索領域の左端のＸ座標として設定する（ステップＳ２５７）。探索領域の右端のＸ座標は、Ｅｘ＋Ｓｗ×Ｗ１３／１００で表され、左端のＸ座標は、Ｊ１ｘ−Ｓｗ×Ｗ１３／１００で表される。
【０１１５】
次いで、ＣＰＵ２１は、再検出位置Ｅｙより眼推定領域の縦幅ＳｈのＨ１３％上側の位置を、探索領域の上端のＹ座標として設定し（ステップＳ２５８）、Ｈ１３％下側の位置を探索領域の下端のＹ座標として設定する（ステップＳ２５９）。探索領域の上端のＹ座標は、Ｅｙ−Ｓｈ×Ｈ１３／１００で表され、探索領域の下端のＹ座標は、Ｅｙ＋Ｓｈ×Ｈ１３／１００で表される。
【０１１６】
そして、ＣＰＵ２１は、図３８（ｂ）に示すように設定された探索領域から眼を検出し（ステップＳ２６０）、眼鏡ブリッジＨの検出結果を用いた眼の再検出に係る処理を終える。
【０１１７】
図３４に示すように眼鏡ブリッジＨに係る眼再検出の処理を終えた場合、眼鏡上フレームＩが検出されているとき、ＣＰＵ２１は、眼鏡部品及び顔部位の学習結果と、現フレームで検出された眼鏡上フレームＩ、顔部位の位置関係とに基づいて探索領域を設定し、眼の再検出処理を実行する（ステップＳ２１３）。
【０１１８】
図３９は、眼鏡上フレームＩの検出結果を用いて設定された探索領域を概念的に示す説明図である。処理内容は、眼鏡ブリッジＨに係る眼の再検出処理と同様であり、眼鏡ブリッジＨの位置の代わりに眼鏡上フレームＩの位置を用いてステップＳ２５１〜２５９と同様の処理を実行する。
【０１１９】
まず、ＣＰＵ２１は過去に登録された眼鏡上フレームＩ、両眼、及び鼻穴の位置を読み出す。特にＣＰＵ２１は、運転者が正面側を向いている場合の眼鏡ブリッジＨ、両眼及び鼻穴の位置を読み出す。
【０１２０】
そして、図３９（ａ）に示すように登録されている眼鏡上フレームＩ、両眼及び鼻穴の位置関係と、現フレームの画像データから検出された眼鏡上フレームＩ及び鼻穴の位置関係とに基づいて、現フレームにおける眼の再検出位置Ｅの座標（Ｅｘ，Ｅｙ）を算出する。
【０１２１】
次いで、再検出位置を中心として左右にＳｗ×Ｗ１３、上下にＳｈ×Ｈ１３の広がりを有する領域を、探索領域として設定する。そして、ＣＰＵ２１は、設定された探索領域から眼を再検出する。
【０１２２】
眼鏡上フレームＩに係る眼再検出の処理を終えた場合、図３４に示すようにＣＰＵ２１は、眼が再検出されたか否かを判定する（ステップＳ２１４）。眼が再検出されていないと判定した場合（ステップＳ２１４：ＮＯ）、ＣＰＵ２１は、眼再検出に係る処理を終える。眼が再検出されたと判定した場合（ステップＳ２１４：ＹＥＳ）、ＣＰＵ２１は、ステップＳ１９，２１１，２１２，２１３でそれぞれ検出された眼の位置を評価して、眼位置としてより正しいと推定される方を選択し（ステップＳ２１５）、眼再検出に係る処理を終える。例えば、過去の学習結果、両眼の位置関係等から眼の位置の良否を判定する。
【０１２３】
このように構成された実施の形態に係る画像処理方法、画像処理装置２、画像処理システム、コンピュータプログラム３１、及び記録媒体４１によれば、ステップＳ１４，１５でＣＰＵ２１は、眼と誤検出され易い眼鏡部品を検出し、ステップＳ１８、１９で該眼鏡部品を除外した探索領域を設定して、探索領域から眼を検出する構成であるため、眼鏡部品を眼と誤検出することを効果的に防止し、眼を正確に検出することができる。
【０１２４】
また、ステップＳ２１１〜２１３でＣＰＵ２１は、眼鏡部品から離隔していて、該眼鏡部品に対する相対距離が顔幅の広／狭に応じて長／短となるように、また寸法も顔幅の広／狭に応じて大／小となるように探索領域を設定する構成であるため、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる。
【０１２５】
更に、ステップＳ２１２、２１３でＣＰＵ２１は、過去にＨＤ２３に登録した顔部位、眼鏡Ｇ位置及び眼の位置と、現フレームの画像から検出された顔部位及び眼鏡部品の位置とを比較することによって、過去の一の画像における眼の位置と現時点の他の画像における探索領域の位置とが対応するように探索領域を設定して眼を検出する構成であるため、運転者の個人差、顔の向きを学習して探索領域を適切に設定することができ、眼の位置を正確に検出することができる。
【０１２６】
なお、実施の形態にあっては、該眼鏡部品に対する相対距離が顔幅の広／狭に応じて長／短となるように、また寸法も顔幅の広／狭に応じて大／小となるように探索領域を設定する構成であるが、眼、鼻等の顔部位の幅、複数の顔部位間の幅、例えば２つの眼の間の幅に応じて該眼鏡部品に対する相対距離が長／短し、寸法も前記幅に応じて大／小となるように探索領域を設定しても良い。このように構成した場合も、運転者の個人差又は顔の向きに応じた探索領域を設定することができ、眼の位置を正確に検出することができる。
【０１２７】
（付記１）
顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理方法において、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、
画像から眼鏡部品の位置を検出するステップと、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップと
を有することを特徴とする画像処理方法。
【０１２８】
（付記２）
顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出する画像処理装置において、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出する領域幅算出手段と、
画像から眼鏡部品の位置を検出する眼鏡部品検出手段と、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定する設定手段と
を備えることを特徴とする画像処理装置。
【０１２９】
（付記３）
前記設定手段は、前記幅が広い場合、眼鏡部品に対する相対距離が長くなるように探索領域を設定し、前記幅が狭い場合、眼鏡部品に対する相対距離が短くなるように探索領域を設定することを特徴とする付記２に記載の画像処理装置。
【０１３０】
（付記４）
前記設定手段は、
前記幅に応じた寸法を有する探索領域を設定するようにしてある
ことを特徴とする付記２又は付記３に記載の画像処理装置。
【０１３１】
（付記５）
探索領域中に眼鏡部品が含まれた場合、前記眼鏡部品検出手段にて検出された眼鏡部品の領域を探索領域から除外する手段を備える
ことを特徴とする付記２又は付記３に記載の画像処理装置。
【０１３２】
（付記６）
時系列で画像を取得するように構成してあり、
各画像から眼以外の顔部位を検出する顔部位検出手段と、
一の画像から検出された顔部位、眼鏡部品及び眼の位置を記憶する記憶手段と
を備え、
前記設定手段は、
他の画像から検出された顔部位及び眼鏡部品の位置、並びに前記記憶手段が記憶している顔部位、眼鏡部品及び眼の位置を比較して、一の画像における眼の位置と他の画像における探索領域の位置とが対応するように探索領域を設定する手段を備える
ことを特徴とする付記２乃至付記５のいずれか一つに記載の画像処理装置。
【０１３３】
（付記７）
前記眼鏡部品は、眼鏡ブリッジ、眼鏡フレーム又は眼鏡蔓を含む
ことを特徴とする付記２乃至付記６のいずれか一つに記載の画像処理装置。
【０１３４】
（付記８）
顔の向きを検出する顔の向き検出手段を備え、
前記眼鏡部品検出手段は、
前記検出手段が横向きであることを検出した場合、眼鏡蔓を検出するように構成してある
ことを特徴とする付記７に記載の画像処理装置。
【０１３５】
（付記９）
眼鏡部品検出手段は、眼鏡ブリッジを検出する眼鏡ブリッジ検出手段を備え、
該眼鏡ブリッジ検出手段は、
第１方向に並ぶ画素の輝度値を積算した輝度積算値を算出し、該第１方向と異なる第２方向における積算値の変化に基づいて、第１方向における眼鏡ブリッジの位置を算出する手段と、
第２方向に並ぶ画素の輝度値を積算した輝度積算値を算出し、第１方向における輝度積算値の変化に基づいて、第２方向における眼鏡ブリッジの位置を算出する手段と
を備えることを特徴とする付記７又は付記８に記載の画像処理装置。
【０１３６】
（付記１０）
前記眼鏡部品検出手段は、眼鏡フレームを検出する眼鏡フレーム検出手段を備え、
該眼鏡フレーム検出手段は、
ラプラシアンフィルタにて眼鏡フレームのエッジを抽出する手段と、
抽出されたエッジと、検出された眼鏡ブリッジ及び顔領域の端部を含む近似直線又は近似曲線との相関を算出し、該相関に基づいて近似直線又は曲線を特定する手段と
を備えることを特徴とする付記７乃至付記９に記載の画像処理装置。
【０１３７】
（付記１１）
眼鏡部品検出手段は、眼鏡フレームを検出する眼鏡フレーム検出手段を備え、
該眼鏡フレーム検出手段は、
所定方向に隣接して並ぶ画素の輝度差を算出する手段と、
算出された輝度差及び閾値を比較する比較手段と、
該比較手段の比較結果に基づいて眼鏡フレームの所定方向における位置を算出する手段と
を備えることを特徴とする付記７乃至付記９に記載の画像処理装置。
【０１３８】
（付記１２）
眼鏡部品検出手段は、眼鏡蔓を検出する眼鏡蔓検出手段を備え、
該眼鏡蔓検出手段は、
所定方向に隣接して並ぶ画素の輝度差を算出する手段と、
算出された輝度差の変化に基づいて眼鏡蔓の位置を算出する手段と
を備えることを特徴とする付記７乃至付記１１に記載の画像処理装置。
【０１３９】
（付記１３）
眼鏡部品を検出するための閾値を記憶する手段と、
前記眼鏡部品検出手段による眼鏡部品の検出率を算出する手段と、
検出された眼鏡部品の検出率に応じて前記閾値を増減させる手段と
を備えることを特徴とする付記２乃至付記１２に記載の画像処理装置。
【０１４０】
（付記１４）
眼鏡部品を基準として所定領域における輝度平均値を算出する手段と、
該所定領域における輝度分散値を算出する手段と、
算出された輝度平均値及び輝度分散値に基づいて、サングラスの有無を判定する手段と
を備え、
サングラス無しと判定された場合、探索領域から眼の位置を検出するように構成してある
ことを特徴とする付記２乃至付記１３に記載の画像処理装置。
【０１４１】
（付記１５）
付記２乃至付記１４のいずれか一つに記載の画像処理装置と、
車両の運転者を撮像する撮像装置と
を備え、
前記画像処理装置は、
前記撮像装置が撮像して得た画像から眼の位置を検出するように構成してあることを特徴とする画像処理システム。
【０１４２】
（付記１６）
コンピュータに、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出させるコンピュータプログラムにおいて、
コンピュータに、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、
画像から眼鏡部品の位置を検出するステップと、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップと
を実行させることを特徴とするコンピュータプログラム。
【０１４３】
（付記１７）
コンピュータに、顔及び眼鏡を含む画像から眼を探索すべき探索領域を設定し、該探索領域から眼の位置を検出させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
画像から一若しくは複数の顔部位又は顔領域を検出して顔部位、複数の顔部位間又は顔領域の幅を算出するステップと、
画像から眼鏡部品の位置を検出するステップと、
検出された眼鏡部品から離隔していて、前記幅の広／狭に応じて該眼鏡部品に対する相対距離が長／短になるように探索領域を設定するステップと
を実行させるコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１４４】
【図１】本発明の実施の形態における画像処理システムの構成例を示すブロック図である。
【図２】顔及び眼鏡を含む画像から眼を検出するＣＰＵの処理手順を示すフローチャートである。
【図３】顔領域の検出方法を概念的に示す説明図である。
【図４】鼻の位置検出方法を概念的に示す説明図である。
【図５】第１の眼鏡部品認識に係るＣＰＵの処理手順を示すフローチャートである。
【図６】眼鏡ブリッジの検出に係るＣＰＵの処理手順を示すフローチャートである。
【図７】眼鏡ブリッジの検出に係るＣＰＵの処理手順を示すフローチャートである。
【図８】眼鏡ブリッジの検出処理範囲を概念的に示す説明図である。
【図９】眼鏡ブリッジの上位置及び下位置の検出方法を概念的に示す説明図である。
【図１０】眼鏡ブリッジの左右位置候補の検出方法を概念的に示す説明図である。
【図１１】眼鏡ブリッジの中点、左端点、及び右端点を示す模式図である。
【図１２】第１の眼鏡上フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。
【図１３】第１の眼鏡上フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。
【図１４】眼鏡上フレームの左端点候補、及び右端点候補を概念的に示す説明図である。
【図１５】眼鏡上フレームの頂点を検出するための検出処理範囲を概念的に示す説明図である。
【図１６】眼鏡ブリッジの再評価処理方法を説明するための説明図である。
【図１７】眼鏡上フレームの頂点位置の探索方法を概念的に示す説明図である。
【図１８】眼鏡蔓の検出に係るＣＰＵの処理手順を示すフローチャートである。
【図１９】眼鏡蔓の検出処理範囲の算出方法を概念的に示す説明図である。
【図２０】Ｙ位置テーブルの算出方法を概念的に示す説明図である。
【図２１】Ｙ位置テーブルに係るノイズ除去方法を概念的に示す説明図である。
【図２２】眼鏡蔓の左端及び右端の検出方法を概念的に示す説明図である。
【図２３】第２の眼鏡部品認識に係るＣＰＵの処理手順を示すフローチャートである。
【図２４】第２の眼鏡下フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。
【図２５】眼鏡下フレームの検出処理範囲を概念的に示す説明図である。
【図２６】眼鏡下フレームの下位置を概念的に示す説明図である。
【図２７】第２の眼鏡上フレーム検出に係るＣＰＵの処理手順を示すフローチャートである。
【図２８】眼鏡上フレームの検出処理範囲を概念的に示す説明図である。
【図２９】眼鏡上フレームの上位置を概念的に示す説明図である。
【図３０】サングラスの判定に係るＣＰＵの処理手順を示すフローチャートである。
【図３１】サングラスの判定方法を概念的に示す説明図である。
【図３２】サングラス総合判定に係るＣＰＵの処理手順を示すフローチャートである。
【図３３】眼の探索領域から眼鏡部品の領域を除外した状態を概念的に示す説明図である。
【図３４】眼の再検出に係るＣＰＵの処理手順を示すフローチャートである。
【図３５】眼鏡蔓の検出結果を用いた眼の再検出に係るＣＰＵの処理手順を示すフローチャートである。
【図３６】眼鏡蔓の位置を基準として設定された探索領域を概念的に示す説明図である。
【図３７】眼鏡ブリッジの検出結果を用いた眼の再検出に係るＣＰＵのフローチャートである。
【図３８】眼鏡ブリッジの検出結果を用いて設定された探索領域を概念的に示す説明図である。
【図３９】眼鏡上フレームの検出結果を用いて設定された探索領域を概念的に示す説明図である。
【符号の説明】
【０１４５】
１  撮像装置
２  画像処理装置
２１  ＣＰＵ
Ｇ  眼鏡
Ｈ  眼鏡ブリッジ
Ｉ  眼鏡上フレーム
Ｊ  眼鏡蔓
Ｋ  眼鏡下フレーム
【図１】
2008269182.tif 000003
【図２】
2008269182.tif 000004
【図３】
2008269182.tif 000005
【図４】
2008269182.tif 000006
【図５】
2008269182.tif 000007
【図６】
2008269182.tif 000008
【図７】
2008269182.tif 000009
【図８】
2008269182.tif 000010
【図９】
2008269182.tif 000011
【図１０】
2008269182.tif 000012
【図１１】
2008269182.tif 000013
【図１２】
2008269182.tif 000014
【図１３】
2008269182.tif 000015
【図１４】
2008269182.tif 000016
【図１５】
2008269182.tif 000017
【図１６】
2008269182.tif 000018
【図１７】
2008269182.tif 000019
【図１８】
2008269182.tif 000020
【図１９】
2008269182.tif 000021
【図２０】
2008269182.tif 000022
【図２１】
2008269182.tif 000023
【図２２】
2008269182.tif 000024
【図２３】
2008269182.tif 000025
【図２４】
2008269182.tif 000026
【図２５】
2008269182.tif 000027
【図２６】
2008269182.tif 000028
【図２７】
2008269182.tif 000029
【図２８】
2008269182.tif 000030
【図２９】
2008269182.tif 000031
【図３０】
2008269182.tif 000032
【図３１】
2008269182.tif 000033
【図３２】
2008269182.tif 000034
【図３３】
2008269182.tif 000035
【図３４】
2008269182.tif 000036
【図３５】
2008269182.tif 000037
【図３６】
2008269182.tif 000038
【図３７】
2008269182.tif 000039
【図３８】
2008269182.tif 000040
【図３９】
2008269182.tif 000041