(57)【要約】【課題】外乱光や個人差があっても、顔画像から特徴点を精度よく検出する装置を提供する。【解決手段】カメラ２及び画像入力部２１で顔画像データ５１を取得する。エッジ算出部２３は顔画像データ５１から、水平方向の輝度の変化を表す水平方向エッジ値、または垂直方向の輝度の変化を表す垂直方向エッジ値を算出する。画像ウィンドウ走査部２５は、エッジ算出部２３が算出した画素ごとの水平方向または垂直方向のエッジ値を顔画像の画素に対応して配列したエッジ画像について、所定の形に選択した画素の集合である画像ウィンドウで走査し、画像ウィンドウ内の画素に対応するエッジ値に画像ウィンドウの画素ごとの所定の値を乗じて加算した加重和を求め走査スコアデータ５６とする。特徴位置判定部２６は、加重和が最も大きい前記画像ウィンドウの位置を、検出対象が存在する検出位置と判定する。【選択図】図２
2008225838.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）インタフェースあるいはＮＴＳＣインタフェース等から構成されている。制御部１４は、送受信部１６を介して、カメラ２から画像データを入力する。画像メモリ１２は、カメラ２により生成され、送受信部１６を経由して入力された画像データを記憶する。
【００２７】
表示制御装置１７は、制御部１４の制御下に、表示装置４を制御する。
光源制御装置１８は、照明光源３の点灯・消灯を制御する。
【００２８】
制御部１４は、外部記憶部１３に格納されているプログラムを実行することにより、カメラ２により取得された画像データを処理して顔の両端位置、上下位置を検出し、この検出した両端位置、上下位置に基づいて、眼部探索領域を設定する。そして、眼部探索領域において、画像の水平方向及び垂直方向の輝度の変化を表すエッジを算出し、エッジデータから上下瞼を検出する。
【００２９】
図２に戻って、眼部検出装置１の各部の作用を説明する。カメラ２は顔の画像を撮像する。画像入力部２１は、一定時間間隔でカメラ２から時系列の画像データを入力し、データ保持部５に顔画像データ５１として記憶する。  
【００３０】
眼探索領域設定部２２は、顔画像データ５１から顔領域を抽出し、顔領域の中に眼探索領域を設定する。顔の領域を抽出するには、例えば、顔画像から顔輪郭のエッジを算出する。あるいは、顔輪郭のパターンマッチングによって顔輪郭を抽出してもよい。顔輪郭の範囲で、上から眉のエッジを、下から口下のエッジを検出することによって、顔の領域を設定する。そして、例えば、統計的データに基づいた比率で、顔領域の中に眼探索領域を設定する。図４は、顔領域Ｆと眼探索領域Ｅの例を示す。眼探索領域設定部２２は、設定した顔領域Ｆ及び眼探索領域Ｅを、顔領域・眼探索領域データ５２として、データ保持部５に記憶する。
【００３１】
なお、検出しやすい特徴的な部分、例えば鼻孔を検出し、鼻孔の位置に基づいて眼探索領域Ｅを設定してもよい。例えば、鼻孔の上から眉までの距離に所定の比率を乗じた長さを眉からとり、顔輪郭の幅に所定の比率を乗じた長さを顔輪郭の中央にとって、眼探索領域Ｅとすることができる。眼探索領域Ｅを設定することによって、眼部検出の効率を向上できる。
【００３２】
図５は、鼻孔探索領域Ｎの例を示す図である。図５で一点鎖線で囲まれた範囲が鼻孔探索領域Ｎを表す。例えば、顔領域Ｆの縦をＨ、幅をＷとして、縦９／１６・Ｈ、幅６／１６・Ｗの長方形の領域を、口下位置Ｍから上に２／１６・Ｈの位置で、横方向は顔領域Ｆの中央に、鼻孔探索領域Ｎとして設定する。
【００３３】
図６は、眼探索領域Ｅの例を示す図である。図６で一点鎖線で囲まれた２つの長方形が眼探索領域Ｅを表す。例えば、顔領域Ｆの幅をＷとして、眼探索領域Ｅの１つを、縦０．３５Ｗ、横０．２６Ｗの長方形とする。そして、鼻孔の重心Ｃｎの上０．０８Ｗから上に、また、左右は鼻孔の重心Ｃｎを中心に間を０．１３Ｗだけ離して２つの長方形を眼探索領域Ｅとして設定する。
【００３４】
外部記憶部１３は、図４又は図６に示すように、主記憶部１５に格納される顔画像のうち、顔の範囲Ｆを特定するデータ、眼や眉の画像が存在すると想定される眼探索領域Ｅを特定するデータ、及び、エッジ画像を走査して顔の特徴点である瞼などを検出するための画像ウィンドウデータ５５を格納する。
【００３５】
図７Ａ乃至図７Ｄは、エッジ算出用の固定データの例を説明する図である。外部記憶部１３は、図７Ａ、図７Ｂに示すような、水平方向エッジ検出用と垂直方向エッジ検出用ソーベルフィルタのオペレータを格納する。本発明では、画像中で水平方向に輝度が明から暗、又は暗から明に変化する点の連なりを水平方向エッジという。水平方向エッジの点は概ね縦方向に連続するので、縦エッジともいう。また、垂直方向に輝度が明から暗、又は暗から明に変化する点の連なりを垂直方向エッジという。垂直方向エッジの点は概ね横方向に連続するので、横エッジともいう。
【００３６】
図７Ａに示す水平方向エッジ（縦エッジ）検出用ソーベルフィルタは、図７Ｃに示すような縦方向に連続する濃淡差の境界（エッジ）を抽出するためのオペレータである。図７Ｂに示す垂直方向エッジ（横エッジ）検出用のソーベルフィルタは、図７Ｄに示すような横方向に連続する濃淡差の境界（エッジ）を抽出するためのオペレータである。
【００３７】
水平方向エッジ検出用ソーベルフィルタの各数値を、対応する画素の輝度値に乗じて合計した値を、フィルタの中央に位置する画素の水平方向エッジ値とする。同様に、垂直方向エッジ検出用ソーベルフィルタの各数値を、対応する画素の輝度値に乗じて合計した値を、フィルタの中央に位置する画素の垂直方向エッジ値とする。
【００３８】
エッジ値は、その方向の輝度の変化が大きい部分では絶対値が大きくなる。輝度の変化が小さい部分では絶対値が小さく、輝度の変化がない部分ではエッジ値は０になる。いわば、エッジ値はある方向について輝度の偏微分に相当する。ある方向の輝度の変化の度合いを表せば、エッジ値は図７Ａ又は図７Ｂのソーベルフィルタによる演算以外の方法で求めた数値であってよい。
【００３９】
画像の各画素について、水平方向エッジ値及び垂直方向エッジ値を演算できる。各画素の水平方向エッジ値を、元の画像の画素の配列に従って配列したものを、水平エッジ画像という。各画素の垂直方向エッジ値を、元の画像の画素に従って配列したものを、垂直エッジ画像という。
【００４０】
エッジ値は、画像の水平方向又は垂直方向に限らず、画面の任意の方向の輝度の変化であってよい。例えば、画像の右上４５度方向に向かう輝度の変化、又は画像の右下４５度方向に向かう輝度の変化をエッジ値として算出することができる。エッジ値を２方向にとる場合、互いに直交する方向の輝度の変化をとることが望ましい。通常、画像は水平及び垂直の格子に区切られた画素の配列で表されるので、エッジ値も水平方向及び垂直方向の２方向で算出する。
【００４１】
図７Ａの水平方向エッジ検出用ソーベルフィルタを用いた場合、画像の左から右に向かって輝度が明から暗に変化する画素の水平方向エッジ値は正であり、暗から明に変化する画素の水平方向エッジ値は負である。左から右に向かって明から暗に変化する画素で水平方向エッジ値が所定の値以上の点を縦プラスエッジという。また、左から右に向かって暗から明に変化する画素で水平方向エッジ値の絶対値が所定の値以上の点を縦マイナスエッジという。
【００４２】
図７Ｂの垂直方向エッジ検出用ソーベルフィルタを用いた場合、画像の上から下に向かって輝度が明から暗に変化する画素の垂直方向エッジ値は正であり、暗から明に変化する画素の垂直方向エッジ値は負である。上から下に向かって明から暗に変化する画素で垂直方向エッジ値が所定の値以上の点を横プラスエッジという。また、上から下に向かって暗から明に変化する画素で垂直方向エッジ値の絶対値が所定の値以上の点を横マイナスエッジという。
【００４３】
エッジ算出部２３は、眼探索領域Ｅから、例えば図７Ａ及び図７Ｂに示すフィルタを用いて、水平エッジ画像及び垂直エッジ画像を算出する。図８は、眼探索領域Ｅの原画像の例を模式的に示す。図８では、画像の暗領域をハッチングを付して表している。図８は、例として上瞼の影が生じている場合を示す。図９Ａは、眼探索領域Ｅの原画像から算出した垂直方向エッジの例を示す。図９Ｂは、眼探索領域Ｅの原画像から算出した水平方向エッジの例を示す。
【００４４】
図９Ａにおいて、上から下に向かって明から暗に変化する点を横プラスエッジＡ、上から下に向かって暗から明に変化する点を横マイナスエッジＢで表す。横プラスエッジＡのうち、主要なものが上瞼候補になる。また、横マイナスエッジＢのうち、主要なものが下瞼候補になる。他に、眉の上下エッジ、上瞼の影（又はアイシャドウ）の下エッジ、虹彩の下エッジなどが垂直方向エッジとして算出される。
【００４５】
図９Ｂにおいて、左から右に向かって明から暗に変化する点を縦プラスエッジＣ、左から右に向かって暗から明に変化する点を縦マイナスエッジＤで表す。上瞼の両端には縦エッジ（水平方向エッジ）が現れるので、上瞼は概ね、左から縦プラスエッジＣ、横プラスエッジＡ、縦マイナスエッジＤで構成される。下瞼には、横マイナスエッジＢ（垂直方向エッジ）が現れるが、縦エッジ（水平方向エッジ）はほとんど現れない。図７Ｂでは、眼探索領域Ｅを横に広く取っているので、顔の輪郭も縦エッジとして現れている。他に、眼窩の影、上瞼の影（又はアイシャドウ）、虹彩の左右のエッジなどが水平方向エッジとして算出される。
【００４６】
エッジ算出部２３はさらに、算出したエッジのうち、濃淡差（水平方向／垂直方向エッジを構成する画素の、水平方向／垂直方向のエッジ値の差）が所定の値未満であるエッジを除去する。図９Ａ及び図９Ｂに対して、それぞれ濃淡差の小さいエッジを除去した図を図９Ｃ及び図９Ｄに示す。
【００４７】
エッジ算出部２３は、算出した水平方向エッジ及び垂直方向エッジを、水平・垂直エッジデータ５３として、データ保持部５に記憶する。
【００４８】
エッジラベリング部２４は、水平・垂直エッジデータ５３から、エッジ値の絶対値が所定のしきい値以上である画素の連続する数が、所定の値（連続点数）未満であるエッジを除去する。ここで、エッジを除去するとは、その画素のエッジ値を０（輝度の変化がない点）とすることに相当する。また所定の長さ以上連続する点をエッジとしてグループ化する。図９Ｅは、図９Ｃの垂直方向エッジから瞼エッジラベリング処理を施した結果を示す。図９Ｆは、図９Ｄの水平方向エッジから瞼エッジラベリング処理を施した結果を示す。ノイズである短いエッジ点をエッジ画像から除去することによって、後述する画像ウィンドウによる走査と最大値の判定をさらに正確に行うことができる。
【００４９】
エッジラベリング部２４は、ノイズ除去処理した水平・垂直エッジ画像のデータを候補エッジデータ５４としてデータ保持部５に記憶する。図９Ｅ及び図９Ｆでは、短いエッジが削除されている。候補エッジデータ５４では、連続する点がひとまとまりのエッジとしてラベリングされている。
【００５０】
図１０は、瞼エッジラベリング処理した結果の垂直方向エッジと水平方向エッジを重ねて表した図である。両側に縦プラスエッジＣと縦マイナスエッジＤが存在する横プラスエッジＡが、確からしい上瞼候補であることが示されている。
【００５１】
画像ウィンドウ走査部２５は、所定の形に選択した画素の集合である画像ウィンドウで候補エッジデータ５４（又は、水平・垂直エッジデータ５３）を走査し、画像ウィンドウ内の画素に対応するエッジ値に画像ウィンドウの画素ごとの所定の値を乗じて加算した加重和を算出する。画像ウィンドウを１画素ずつ移動して、移動するごとに画像ウィンドウに含まれる画素の加重和を算出する。
【００５２】
エッジ値に乗ずる所定の値である加重係数は、検出すべき顔の特徴点の性質に基づいて設定する。加重係数は画像ウィンドウ内で一定の値、例えば１、又は−１であってよい。あるいは、画像ウィンドウ内で画素ごとに異なる値であってもよい。加重係数が全画素で１の場合は、加重和は画像ウィンドウ内の画素のエッジ値の和である。加重係数が全画素で−１の場合は、加重和は画像ウィンドウ内の画素のエッジ値を符号反転して加算した値である。
【００５３】
画像ウィンドウは、水平エッジ画像を走査する水平エッジウィンドウと、垂直エッジ画像を走査する垂直エッジウィンドウから構成される場合がある。水平エッジウィンドウと垂直エッジウィンドウは、走査するときに、その位置関係は一定である。その場合、画像ウィンドウ走査部２５は、水平エッジウィンドウ内の画素に対応する水平方向エッジ値に水平エッジウィンドウの画素ごとの所定の値を乗じて加算した加重和と、垂直エッジウィンドウ内の画素に対応する垂直方向エッジ値に垂直エッジウィンドウの画素ごとの所定の値を乗じて加算した加重和の和を全体の加重和（総和）とする。画像ウィンドウ走査部２５は、算出した加重和又は総和を走査スコアデータ５６として、データ保持部５に記憶する。
【００５４】
特徴位置判定部２６は、画像ウィンドウ走査部２５が算出した加重和（又は総和）のうち最大値をとる画像ウィンドウの位置を、検出対象とする特徴点が存在する位置として判定する。
【００５５】
図１１乃至図１３は、画像ウィンドウ走査と特徴点検出を説明する図である。図１１乃至図１３は、図１０の長方形Ｒで囲まれた領域を拡大して示す。画像ウィンドウは、水平エッジウィンドウ７Ｌ及び７Ｒと、垂直エッジウィンドウ８から構成される。画像ウィンドウ走査部２５は、水平エッジウィンドウ７Ｌ及び７Ｒと垂直エッジウィンドウ８の位置関係を一定に保持して、水平・垂直エッジ画像を走査する。図１１では、加重和の総和が最大である画像ウィンドウの位置を２点鎖線で示す。
【００５６】
図１２は、画像ウィンドウを分解した垂直エッジウィンドウによる走査を示す。垂直エッジウィンドウ８で垂直エッジ画像を走査するが、水平エッジウィンドウ７Ｌ、７Ｒとの位置関係が一定であることを示すために、それらを破線で表している。図１２では、加重和の総和が最大である垂直エッジウィンドウ８の位置を２点鎖線で示す。
【００５７】
垂直エッジウィンドウ８における加重係数は、上瞼の横プラスエッジを検出するために、例えば、一定の値「１」である。横マイナスエッジはエッジ値が負なので、垂直エッジウィンドウ８で最大値となることはない。従って、図１２の横マイナスエッジＢが検出されることはない。垂直エッジウィンドウ８単独の場合の加重和の最大は、図１２の２点鎖線で示した位置より少し下になるかもしれない。垂直エッジウィンドウ８単独では、水平方向の位置が決まらない場合がある。
【００５８】
図１３は、画像ウィンドウを分解した水平エッジウィンドウによる走査を示す。水平エッジウィンドウ７Ｌ、７Ｒで垂直エッジ画像を走査するが、垂直エッジウィンドウ８との位置関係が一定であることを示すために、垂直エッジウィンドウ８を破線で表している。図１３では、加重和の総和が最大である水平エッジウィンドウ７Ｌ、７Ｒの位置を２点鎖線で示す。
【００５９】
水平エッジウィンドウ７Ｌにおける加重係数は、上瞼の縦プラスエッジＣを検出するために、例えば、一定の値「１」である。水平エッジウィンドウ７Ｒにおける加重係数は、上瞼の縦マイナスエッジＤを検出するために、例えば、一定の値「−１」である。従って、図１３の２点鎖線で示すように、縦プラスエッジＣに水平エッジウィンドウ７Ｌが位置し、縦マイナスエッジＤに水平エッジウィンドウ７Ｒが位置する場所で加重和が最大となる。水平ウィンドウＷｈｌ、７Ｒ単独の場合は、加重和の最大は図１３の２点鎖線で示した位置より少し上になるかもしれないが、垂直ウィンドウＷｖとの関係で総和の最大値の位置が決まる。
【００６０】
図１１は、図１２の垂直エッジ画像と図１３の水平エッジ画像を重ね合わせた図になっている。前述のとおり、水平エッジウィンドウ７Ｌ、７Ｒと垂直エッジウィンドウ８の位置関係を一定に保持して、それぞれ水平エッジ画像と垂直エッジ画像を走査し、加重和の総和が最大値となる画像ウィンドウの位置を検出位置とする。その結果、例えば、図１１の２点鎖線で示す画像ウィンドウの位置が上瞼の位置として判定される。
【００６１】
図１４は、画像ウィンドウの異なる例を示す図である。画像ウィンドウの中で、水平エッジウィンドウ７Ｌ、７Ｒと垂直エッジウィンドウ８が接している必要はなく、相互の位置関係が一定であれば、画素が重複したり間があいていても構わない。図１４では、水平エッジウィンドウ７Ｌ、７Ｒと垂直エッジウィンドウ８の画素が重複している例を示す。
【００６２】
画像ウィンドウは長方形に選択された画素の集合である部分ウィンドウで構成されなくてもよい。画像ウィンドウの形は、検出する特徴点に対応して決めることができる。例えば、円弧の一部やそれらの集合、又は、統計的に定めた画素のパターンなどであってよい。また、加重係数も、検出すべき顔の特徴点の性質に基づいて設定する。
【００６３】
図１５は、下瞼を検出する場合の画像ウィンドウの例を示す。下瞼には、ほとんど水平方向エッジが現れないので、垂直エッジ画像の走査でよい。例えば、図１５に示す画像ウィンドウ６で垂直エッジ画像を走査して、図１５に２点鎖線で示される、加重和が最大となる位置を判定する。上瞼の位置が検出されていれば、下瞼を検出する画像ウィンドウ６で走査する範囲をさらに限定してもよい。
【００６４】
以上説明したように、上瞼と下瞼の位置を特定することができる。図１６は検出された上瞼と下瞼の垂直方向エッジＡ、Ｂを示す。瞼判定部２７は、上瞼と下瞼の位置にあるエッジのデータから眼の開閉度を判定する。
【００６５】
表示処理部２８は、検出された結果の上下瞼を顔の輪郭等とともに表示装置４に表示する。上下瞼の開閉度から運転者の覚醒度合いを推定し、居眠りと判定された場合に、表示装置４で警告を表示（音響等を含む）してもよい。また、視線の方向の推定に、上下瞼データを利用することもできる。
【００６６】
つぎに、眼部検出装置１の動作について説明する。なお、眼部検出装置１の動作は、制御部１４がカメラ２、送受信部１６、画像メモリ１２、外部記憶部１３及び主記憶部１５と協働して行う。
【００６７】
図１７は、顔特徴点検出処理の動作の一例を示すフローチャートである。制御部１４は送受信部１６を介してカメラ２から顔画像を入力する（ステップＳ１）。そして、前述のとおり、顔領域を設定し、顔領域の中に眼探索領域を設定する（ステップＳ２）。
【００６８】
制御部１４は、設定された眼探索領域内で水平方向エッジ及び垂直方向エッジを算出する（ステップＳ３）。制御部１４は、算出した水平方向エッジ及び垂直方向エッジについて、グループ化し、所定の長さ（連続点数）以下のエッジを削除するなどの瞼エッジラベリング処理を行う（ステップＳ４）。また、画像ウィンドウのエッジ画像内での位置を初期設定する。
【００６９】
次に、制御部１４は、水平エッジウィンドウ内の画素に対応する水平方向エッジ値に水平エッジウィンドウの画素ごとの所定の値を乗じて加算した加重和と、垂直エッジウィンドウ内の画素に対応する垂直方向エッジ値に垂直エッジウィンドウの画素ごとの所定の値を乗じて加算した加重和を計算し、それらの総和を算出する（ステップＳ５）。計算した総和をその画像ウィンドウの位置における値として記憶する。
【００７０】
制御部１４は、画像ウィンドウを１画素シフトする（ステップＳ６）。画像ウィンドウが探索領域内であるかどうか判定し、探索領域内であれば（ステップＳ７；Ｙｅｓ）、ステップＳ５に戻って画像ウィンドウの加重和の総和を計算する。
【００７１】
画像ウィンドウが探索領域内でない場合（ステップＳ７；Ｎｏ）、画像ウィンドウを次の行に移動する（ステップＳ８）。そして、画像ウィンドウが探索領域内であれば（ステップＳ９；Ｙｅｓ）、画像ウィンドウの加重和の計算（ステップＳ５）から繰り返す。
【００７２】
画像ウィンドウを次の行に移動して（ステップＳ８）、画像ウィンドウが探索領域内でなければ（ステップＳ９；Ｎｏ）、特徴点の位置を検出する（ステップＳ１０）。すなわち、ステップＳ５で算出した加重和の総和のうち、最大値をとる画像ウィンドウの位置を特徴点の検出位置と判定する。その画像ウィンドウの位置にある水平方向エッジ及び／又は垂直方向エッジを特徴点を構成するエッジとして抽出する。
【００７３】
本発明の眼部検出装置１によれば、外乱光が当たっている場合や、顔の造りの個人差がある場合であっても、顔画像データから、精度よく眼を検出することができる。
【００７４】
本実施の形態では、瞼の検出を例に説明したが、画像ウィンドウ及び加重係数を検出すべき対象に合わせて設定することによって、本発明の方法を用いて瞼以外の特徴点を検出することが可能である。特徴点を探索する顔画像にノイズ成分が含まれる場合でも、所定の大きさ未満であるエッジラインをノイズ成分として除去することにより、ノイズ成分がある程度除去され、特徴点の位置をさらに正確に判定できる。本実施の形態では、加重和が最も大きい画像ウィンドウの位置を検出対象が存在する検出位置と判定しているが、これに限定されるものではなく、各ウィンドウ内でエッジの最大値を決定し、エッジ数の最大値等に基づいて検出対象が存在する検出位置を判定してもよい。
【００７５】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
【００７６】
制御部１４、送受信部１６、画像メモリ１２、外部記憶部１３及び主記憶部１５などから構成される眼部検出装置１の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読みとり可能な記録媒体（フレキシブルディスク、CD-ROM、DVD-ROM等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する眼部検出装置１を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで眼部検出装置１を構成してもよい。
【００７７】
また、眼部検出装置１の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００７８】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施形態に係る眼部検出装置のブロック図である。
【図２】本発明の一実施の形態である眼部検出装置の論理的な構成を示すブロック図である。
【図３】図１に示すコンピュータの構成を示すブロック図である。
【図４】顔画像の領域を特定するデータの例を示す図である。
【図５】鼻孔探索領域の例を示す図である。
【図６】眼探索領域の例を示す図である。
【図７Ａ】縦エッジ検出用オペレータの例を示す図である。
【図７Ｂ】横エッジ検出用オペレータの例を示す図である。
【図７Ｃ】縦方向に連続する濃淡差の例を表す図である。
【図７Ｄ】横方向に連続する濃淡差の例を表す図である。
【図８】眼探索領域の原画像の例を模式的に示す図である。
【図９Ａ】眼探索領域における垂直方向エッジの検出例を示す図である。
【図９Ｂ】眼探索領域における水平方向エッジの検出例を示す図である。
【図９Ｃ】図９Ａの垂直方向エッジから、濃淡差の小さいエッジを除去した結果を示す図である。
【図９Ｄ】図９Ｂの水平方向エッジから、濃淡差の小さいエッジを除去した結果を示す図である。
【図９Ｅ】図９Ｃの垂直方向エッジから、短いエッジを除去した結果を示す図である。
【図９Ｆ】図９Ｄの水平方向エッジから、短いエッジを除去した結果を示す図である。
【図１０】垂直方向エッジと水平方向エッジを重ねて表した図である。
【図１１】画像ウィンドウ走査と特徴点検出を説明する図である。
【図１２】画像ウィンドウを分解した垂直エッジウィンドウによる走査を示す図である。
【図１３】画像ウィンドウを分解した水平エッジウィンドウによる走査を示す図である。
【図１４】画像ウィンドウの異なる例を示す図である。
【図１５】下瞼を検出する場合の画像ウィンドウの例を示す図である。
【図１６】検出された上瞼と下瞼の垂直方向エッジを示す図である。
【図１７】顔特徴点検出処理の動作の一例を示すフローチャートである。
【符号の説明】
【００８０】
１  眼部検出装置（顔特徴点検出装置）
２  カメラ（画像取得手段）
５  データ保持部
６  画像ウィンドウ
７Ｌ、７Ｒ  水平エッジウィンドウ
８  垂直エッジウィンドウ
１０  コンピュータ
１２  画像メモリ
１３  外部記憶部
１４  制御部（画像取得手段、エッジ算出手段、検出対象判定手段）
１５  主記憶部
１６  送受信部（画像取得手段）
２１  画像入力部
２２  眼探索領域設定部
２３  エッジ算出部（エッジ算出手段）
２４  エッジラベリング部（ノイズ除去手段）
２５  画像ウィンドウ走査部（検出対象判定手段）
２６  特徴位置判定部（検出対象判定手段）
５１  顔画像データ
５２  顔領域・眼探索領域データ
５３  水平・垂直エッジデータ
５４  候補エッジデータ
５５  画像ウィンドウデータ
５６  走査スコアデータ
【図１】
2008225838.tif 000003
【図２】
2008225838.tif 000004
【図３】
2008225838.tif 000005
【図４】
2008225838.tif 000006
【図５】
2008225838.tif 000007
【図６】
2008225838.tif 000008
【図７Ａ】
2008225838.tif 000009
【図７Ｂ】
2008225838.tif 000010
【図７Ｃ】
2008225838.tif 000011
【図７Ｄ】
2008225838.tif 000012
【図８】
2008225838.tif 000013
【図１７】
2008225838.tif 000014
【図９Ａ】
2008225838.tif 000015
【図９Ｂ】
2008225838.tif 000016
【図９Ｃ】
2008225838.tif 000017
【図９Ｄ】
2008225838.tif 000018
【図９Ｅ】
2008225838.tif 000019
【図９Ｆ】
2008225838.tif 000020
【図１０】
2008225838.tif 000021
【図１１】
2008225838.tif 000022
【図１２】
2008225838.tif 000023
【図１３】
2008225838.tif 000024
【図１４】
2008225838.tif 000025
【図１５】
2008225838.tif 000026
【図１６】
2008225838.tif 000027