(57)【特許請求の範囲】
【請求項１】
顔画像を撮像する顔画像撮像手段と、
前記顔画像から画像上の眼の位置を特定する眼位置特定手段と、
前記顔画像及び前記特定された眼の位置から眼球の回転角を検出する眼球回転角検出手段と、
前記顔画像から顔の向きを検出する顔の向き検出手段と、
眼球回転角検出手段によって検出された眼球の回転角と顔の向き検出手段によって検出された顔の向きから視線方向を算出する視線方向算出手段と、
を備え、
前記顔の向き検出手段は、
前記眼位置特定手段によって特定された位置を中心とした前記顔画像中に上凸もしくは下凸の円弧状のラインを見つけ、その円弧状ラインの画像上の上凸もしくは下凸のピーク位置を検出する円弧状ラインピーク位置検出手段と、
前記顔画像の中で画像上の目頭位置と画像上の目尻位置を検出する目頭・目尻位置検出手段と、を備え、
前記円弧状ラインピーク位置検出手段が検出した前記ピーク位置と、前記目頭・目尻位置検出手段が検出した前記目頭位置及び前記目尻位置に基づいて、目頭位置からピーク位置までの距離と目尻位置からピーク位置までの距離とをそれぞれ算出し、
算出された目頭位置からピーク位置までの距離と目尻位置からピーク位置までの距離との比から顔の向きを算出することを特徴とする視線方向検出装置。
【請求項２】
前記眼球回転角検出手段は、
前記眼位置特定手段によって特定された位置を中心とした前記顔画像中に上凸もしくは下凸の円弧状のラインを見つけ、その円弧状ラインの画像上の上凸もしくは下凸のピーク位置を検出する円弧状ラインピーク位置検出手段と、
前記微小画像の中で画像上の目頭位置と画像上の瞳の位置とを検出する瞳位置検出手段と、を備え、
前記円弧状ラインピーク位置検出手段が検出した前記ピーク位置と、前記瞳位置検出手段が検出した前記瞳の位置に基づいて、瞳位置とピーク位置との距離を算出し、その距離から眼球の回転角を検出することを特徴とする請求項１に記載の視線方向検出装置。
【請求項３】
前記眼球回転角検出手段は、
前記顔画像の中で画像上の瞳の横径と縦径を検出する瞳径検出手段を備え、
該瞳径検出手段によって検出された画像上の瞳の横径と縦径との比に基づいて眼球の回転角を検出することを特徴とする請求項１に記載の視線方向検出装置。
【請求項４】
前記眼球回転角検出手段は、
前記眼位置特定手段によって特定された位置を中心とした前記顔画像中で画像上の目頭位置と画像上の目尻位置を検出する目頭・目尻位置検出手段と、
前記微小画像の中で画像上の目頭位置と画像上の瞳の位置とを検出する瞳位置検出手段と、を備え、
前記顔の向き検出手段が検出した顔の向きが前記顔画像撮像手段の光軸正面方向になっている場合には、
前記眼球回転角検出手段は、目頭・目尻位置検出手段が検出した画像上の目頭位置と目尻位置と瞳位置検出手段が検出した画像上の瞳位置から眼球の回転角を検出し、
前記視線方向算出手段は、前記眼球回転角検出手段が検出した眼球の回転角を前記視線方向とすることを特徴とする請求項１に記載の視線方向検出装置。
【請求項５】
前記眼位置特定手段は、
前記顔画像から眼の候補の位置を特定する眼の候補の位置の特定処理と、
該眼の候補の位置の特定処理によって特定された眼の候補の位置を中心とした微小画像を画像処理することによって、その眼の候補の位置が眼か否かを判断する眼判定処理と、
を備えたことを特徴とする請求項１に記載の視線方向検出装置。
【請求項６】
前記目頭・目尻位置検出手段は、
前記顔画像から眼の輪郭を検出し、検出した眼の輪郭の両端位置を目頭位置および目尻位置とすることを特徴とする請求項１に記載の視線方向検出装置。
【請求項７】
前記瞳位置検出手段は、
前記顔画像から眼の輪郭を検出し、検出した眼の輪郭の縦方向に最も広い位置の中心を瞳の中心位置とすることを特徴とする請求項２に記載の視線方向検出装置。
【請求項８】
前記瞳位置検出手段は、
前記顔画像から眼の輪郭を検出し、
検出した眼の輪郭のうち下側のラインにおいて上凸から下凸へと変化する変曲点を２カ所検出し、
検出された２カ所の変曲点の中点位置を瞳の中心位置とすることを特徴とする請求項２に記載の視線方向検出装置。
【請求項９】
前記瞳位置検出手段は、
前記顔画像から楕円状のオブジェクトを抽出し、該楕円状オブジェクトの中心位置を瞳の中心位置とすることを特徴とする請求項２に記載の視線方向検出装置。
【請求項１０】
前記円弧状ラインピーク位置検出手段は、
円弧状ラインの高さが最も高い場所を円弧状ラインピーク位置とすることを特徴とする請求項１または請求項２に記載の視線方向検出装置。
【請求項１１】
前記円弧状ラインピーク位置検出手段は、
前記円弧状ラインの両端点を結んだ線分に対して該円弧状ライン上のある点からへ降ろした垂線の長さが最も長い点を円弧状ラインピーク位置とすることを特徴とする請求項１または請求項２に記載の視線方向検出装置。
【請求項１２】
前記円弧状ラインピーク位置検出手段は、
円弧状のラインとして検出する顔部位として、上瞼または下瞼または眼鏡フレームの上側または眼鏡フレームの下側または眉とすることを特徴とする請求項１または請求項２に記載の視線方向検出装置。
【請求項１３】
前記瞳径検出手段は、
前記顔画像から楕円状のオブジェクトを抽出し、該楕円状オブジェクトの横径と縦径とを画像上の瞳のそれぞれ横径と縦径とすることを特徴とする請求項３に記載の視線方向検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、被験者の顔面を撮影した顔画像から視線方向を検出する視線方向検出装置に関する。
【０００２】
【従来の技術】
視線方向を検出する装置としては、特開平９−５３９１７号「車両用視線方向計測装置」が知られている。この装置は、乗員の眼球からの反射像を撮像する撮像装置と、撮像装置と共軸の不可視光を照射する第１照明と、第１照明とは異なる位置から不可視光を照射する第２照明とを備えている。そして、第１、第２照明から交互に顔を照射して得られた画像データから、画像処理によって瞳孔中心の位置と角膜反射像の位置を求め、両者に基づいて視線方向を算出している。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来技術にあっては、瞳孔の中の角膜反射像の位置をとらえるという顔画像の狭い範囲から視線方向を計測しているため、精度の高い視線方向の検出ができないという問題点があった。
【０００４】
また、眼の位置が動かないという前提であれば視線を検知できるが、運転中など顔が動いている環境では視線方向を特定することは更に難しい。
【０００５】
以上の問題点に鑑み本発明の目的は、顔を撮像した画像から精度良く視線方向を検出することが出来る視線方向検出装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明は、顔画像を撮像する顔画像撮像手段と、前記顔画像から画像上の眼の位置を特定する眼位置特定手段と、前記顔画像及び前記特定された眼の位置から眼球の回転角を検出する眼球回転角検出手段と、前記顔画像から顔の向きを検出する顔の向き検出手段と、眼球回転角検出手段によって検出された眼球の回転角と顔の向き検出手段によって検出された顔の向きから視線方向を算出する視線方向算出手段と、を備え、前記顔の向き検出手段は、前記眼位置特定手段によって特定された位置を中心とした前記顔画像中に上凸もしくは下凸の円弧状のラインを見つけ、その円弧状ラインの画像上の上凸もしくは下凸のピーク位置を検出する円弧状ラインピーク位置検出手段と、前記顔画像の中で画像上の目頭位置と画像上の目尻位置を検出する目頭・目尻位置検出手段と、を備え、前記円弧状ラインピーク位置検出手段が検出した前記ピーク位置と、前記目頭・目尻位置検出手段が検出した前記目頭位置及び前記目尻位置に基づいて、目頭位置からピーク位置までの距離と目尻位置からピーク位置までの距離とをそれぞれ算出し、算出された目頭位置からピーク位置までの距離と目尻位置からピーク位置までの距離との比から顔の向きを算出することを要旨とする視線方向検出装置である。
【０００８】
【発明の効果】
本発明によれば、精度良く視線方向を検出する視線方向検出装置を提供することができるという効果がある。
【０００９】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【００１０】
〔第１実施形態〕
図１は、本発明に係る視線方向検出装置の第１実施形態の構成を説明するブロック図である。同図において、視線方向検出装置は、顔画像を撮像する顔画像撮像手段ＣＬ１と、顔画像撮像手段ＣＬ１によって撮像された顔画像から画像上の眼の位置を特定する眼位置特定手段ＣＬ２と、顔画像撮像手段ＣＬ１によって撮像された顔画像から眼球の回転角を検出する眼球回転角検出手段ＣＬ４と、顔画像撮像手段ＣＬ１によって撮像された顔画像から顔の向きを検出する顔の向き検出手段ＣＬ３と、眼球回転角検出手段ＣＬ４によって検出された眼球の回転角と顔の向き検出手段ＣＬ３によって検出された顔の向きから視線方向を算出する視線方向算出手段ＣＬ５とを備えている。
【００１１】
顔画像撮像手段ＣＬ１は、運転者またはオペレータ等の顔を撮像して顔画像データを出力するＴＶカメラ等の撮像手段である。眼位置特定手段ＣＬ２は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して、画像上の眼の位置を特定する。
【００１２】
顔の向き検出手段ＣＬ３は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して顔画像撮像手段ＣＬ１の光軸ラインを正面とした顔の向きを検出する。
【００１３】
眼球回転角検出手段ＣＬ４は、さらに瞳位置検出手段ＣＬ４１と円弧状ラインのピーク位置検出手段ＣＬ４２とを備えて構成されている。
【００１４】
瞳位置検出手段ＣＬ４１は、眼位置特定手段ＣＬ２で特定された眼の位置を中心とした顔画像の部分画像である微小画像を画像処理することによって、瞳の位置を検出する。
【００１５】
円弧状ラインのピーク位置検出手段ＣＬ４２は、眼位置特定手段ＣＬ２で特定された眼の位置を中心とした顔画像の部分画像である微小画像を画像処理することによって、上瞼、下瞼、眉毛、眼鏡の上フレーム、眼鏡の下フレームなど視線の基準となる円弧状ラインの検出を行い、その中から円弧状ラインのピーク位置を求める。
【００１６】
本実施形態では上瞼での場合のみ説明するが、他の部位についても同様の処理を行うことで検出することができる。
【００１７】
本装置は、自動車、鉄道車両、船舶、プラントのオペレータ等の視線方向検知に用いることができるが、本発明のすべての実施形態で自動車の運転手の眼に適用した場合で説明する。
【００１８】
［機器の配置］
図２は、本発明の機器の配置図である。顔画像撮像手段ＣＬ１としてＴＶカメラ１が自動車のインストルメントパネル上で運転者を略正面で撮像できる位置に設置され、運転者の顔部分を撮影する。ＴＶカメラ１の入力画像は、本実施形態では、例えば横方向（Ｘ）６４０画素、縦方向（Ｙ）４８０画素からなる白黒画像である。ＴＶカメラ１で撮像された入力画像は、インストルメントパネル裏側など車体内部に設置されたマイクロコンピュータ２に画像データとして入力される。
【００１９】
マイクロコンピュータ２は、ＴＶカメラ１から入力された画像データを記憶する画像メモリを備えている。さらにマイクロコンピュータ２には、この画像データを処理して視線方向を検出するために、眼位置特定手段ＣＬ２と、顔の向き検出手段ＣＬ３と、眼球回転角検出手段ＣＬ４と、視線方向算出手段ＣＬ５とを実現するためのロジックがプログラミングされている。
【００２０】
次にシステムの処理内容について説明する。
【００２１】
［システム全体の処理］
図３はシステムの全体の処理の流れを説明する概略フローチャートである。まず、処理が開始されると、ステップＳ１（以下、「ステップＳ」は単に「Ｓ」と表す）で、「初期値入力」の処理が実行され、マイクロコンピュータの作業エリアの初期化や各種パラメータの初期値の設定が行われる。
【００２２】
Ｓ２の「顔画像の撮像処理」ではＴＶカメラ１で顔画像を撮像し、マイクロコンピュータ２に画像データとして入力する。
【００２３】
Ｓ３の「眼の位置特定処理」ではマイクロコンピュータ２に入力された画像データを画像処理することによって顔画像上の眼の位置を特定する。
【００２４】
Ｓ４ではＳ３の出力結果をもとに顔画像上に眼が特定できればＳ４ＹＥＳ、Ｓ５へ処理を進め、顔画像上に眼が特定できなければＳ４ＮＯ、Ｓ２へ処理を戻し、眼が特定できるまでＳ２からＳ４までの処理を繰り返す。
【００２５】
Ｓ５の「顔の向き検出処理」では、マイクロコンピュータ２に入力された画像データを画像処理することによって、顔画像撮像手段の光軸方向に対する画像上の顔の向きを検出する。
【００２６】
Ｓ６の「円弧状ラインピーク位置検出処理」では、Ｓ３で特定された眼の位置を中心とする顔画像の部分画像である微小画像（以下、微小エリアとも呼ぶ）を画像処理することで微小画像上の円弧状ライン及びそのピーク位置を検出する。
【００２７】
Ｓ７の「瞳位置の検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の瞳の位置を検出する。
【００２８】
Ｓ８の「眼球の回転角検出処理Ｉ」では、Ｓ６で検出した円弧状ラインのピーク位置と、Ｓ７で検出した瞳の位置とから、眼球の回転角を検出する。
【００２９】
Ｓ９の「視線方向の算出処理」では、Ｓ５で検出した顔の向きと、Ｓ８で検出した眼球の回転角とから、視線方向を算出し、処理を終了する。
【００３０】
［眼の位置特定処理］（Ｓ３）
図３の「眼の位置特定処理」Ｓ３を図４の詳細フローチャートを用いて説明する。まず、図４のＳ３１では、顔画像から眼の候補の位置を特定する「眼の候補の位置の特定処理」を実行する。Ｓ３２では、特定されたそれぞれの眼の候補の位置から眼であるか否かを判定する「眼判定処理」を行う。
【００３１】
Ｓ３３ではＳ３１で眼の候補の位置の特定の処理で検出した眼の候補点すべてを判定したかどうかを判定する。眼の候補点すべてを判定した場合とした場合Ｓ３３ＹＥＳはメインルーチンのＳ４に処理が移る。眼の候補点すべてを判定し終わっていない場合Ｓ３３ＮＯは、Ｓ３２の眼判定処理に戻る。
【００３２】
［眼の候補の位置の特定処理］（Ｓ３１）
「眼の候補の位置の特定処理」Ｓ３１の流れを、図５の詳細フローチャートと、図６〜図１０を用いて説明する。
【００３３】
まず、図５のＳ３１１は、「顔画像の撮像処理」Ｓ２で撮像しマイクロコンピュータ２に入力した顔画像データ全体を全体画像Ｇとして画像メモリに保存する。
【００３４】
次いで、Ｓ３１２からＳ３１６の処理で、全体画像ＧをＹ方向にスキャンして特徴点を抽出する。Ｓ３１２では、縦方向に１ライン終了後に、一つ隣のラインの処理に移して行き、縦方向の全ラインでの特徴点抽出が終了したか否かを判断する。Ｓ３１２で全ラインにおいて特徴点抽出が終了していないと判断された場合は、Ｓ３１３に移行する。
【００３５】
Ｓ３１３では、縦方向（Ｙ軸方向）の１ラインの濃度値（輝度値）の縦方向（Ｙ軸方向）のスムージング処理を相加平均演算によって行う。この処理は、画像データ撮影時の濃度値の変化の小さなバラツキを無くすことを目的としており、濃度値の大局的な変化を捉えるためである。
【００３６】
例えば、画像を２次元配列の画素の集まりとして、処理前の画像の各画素の濃度値をＡ(i,j)とし、この画素自身とその前後ｎ個づつの画素を用いてスムージングすれば、スムージング処理後の各画素の濃度値Ｂ(i,j)は、式（１）の相加平均値で示される。
【００３７】
【数１】
Ｂ(i,j)＝〔１／（２ｎ＋１）〕〔Ａ(i-n,j)＋…＋Ａ(i-1,j)＋Ａ(i,j)＋Ａ(i+1,j)＋…＋Ａ(i+n,j)〕                …（１）
Ｓ３１４では、Ｓ３１３の演算結果である相加平均値における画像の縦方向（Ｙ軸方向）の微分演算（差分演算）を行う。Ｓ３１４では、Ｓ３１４の演算結果である微分値による特徴点抽出を行う。ここで、微分値が負から正に変化する点を特徴点として抽出する。言い換えれば、１ライン中の縦方向の濃度変化の極小値を特徴点として抽出する。この処理が１ライン終了した後、Ｓ３１６で、次のラインの処理に切り替えて行く。
【００３８】
Ｓ３１２で全ラインの特徴点抽出が終了したと判断されると、Ｓ３１７へ移行し、隣合う各ラインの抽出特徴点のＹ座標値を比較し、Ｙ座標値が所定値以内の場合、連続データとして、▲１▼連続データのグループ番号、▲２▼連続開始ライン番号、▲３▼連続データ数、▲４▼連続データを構成する各抽出特徴点の縦方向位置の平均値（その連続データの代表Ｙ座標値）、▲５▼連続開始ラインと終了ラインの横方向位置の平均値（その連続データの代表Ｘ座標値）をメモリする。
【００３９】
ここでの検出対象は眼としているため、その特徴パターンは横に比較的長く続くデータであるといえるので、横方向に所定値以上続くことを条件に連続データを選択することができる。
【００４０】
このようにして選択した顔の特徴パターンを連続データｇとして表したものを図６に示す。以上、連続データｇの抽出方法を簡単に説明したが、処理状態の詳細については、「特開平１０−４０３６１号」、「特開平１０−１４３６６９号」などにも記載されている。連続データｇがいわば眼の候補となり、この連続データｇの代表座標値Ｃが眼の候補の位置となる。
【００４１】
次いでＳ３１８において、図６に示すような各連続データｇの代表座標値Ｃを基準に各連続データｇを含む存在領域ＥＡを設定する。この存在領域ＥＡは、次のようにして決定する。
【００４２】
（存在領域ＥＡの大きさの決め方）
存在領域ＥＡの大きさは、図７〜図１０のようにして決めている。図７は存在領域ＥＡの大きさを示し、図８，図９は数人の眼の大きさを調べて得られた眼の横、縦の長さの統計データを示している。ここで存在領域ＥＡの大きさはノイズ（顔の皺や明暗などを抽出してしまう）の低減や処理速度を落とさないためにも、可能な限り小さい領域が良い。現在の居眠り検出などの処理で使っている大きさは数人の眼の大きさを調べ、それに余裕分（例えば×１．５倍）を加味した大きさにしている。
【００４３】
眼の大きさを統計的に求める方法としては、図８，図９のように、眼の縦横寸法のデータを集め、その分布の例えば９５％をカバーする寸法に余裕分をみて決定する方法が考えられる。そしてこの９５％をカバーする寸法、すなわち横寸法ｘａ´，縦寸法ｙａ´に図６のように余裕分（×１．５）をみて決定している。尚、画像処理により眼の幅や高さを推定し、縦横の大きさに余裕分を加える方法も考えられる。
【００４４】
（存在領域ＥＡの位置の決め方）
図１０は、例えば右眼の存在領域ＥＡを位置決めする方法について示している。眼の座標値（ｘ１，ｙ１）を基準に、距離ｘ２，ｙ２の位置に存在領域ＥＡを描く基準点Ｐを決め、Ｐ点から予め決めておいた存在領域ＥＡの寸法ｘ３，ｙ３を描画し、位置を決める。ｘ２及びｙ２はｘ３，ｙ３の１／２で予め存在領域ＥＡが眼の中心にくるような長さとしている。
【００４５】
存在領域ＥＡを画像全体で見つかった連続データｇすべてについて設定する。
【００４６】
［眼判定処理］（Ｓ３２）
次に、「眼判定処理」Ｓ３２を図１１の詳細フローチャートと、図１２〜図１４を用いて説明する。
【００４７】
まず、図１１のＳ３２０１は、眼の候補点の存在領域ＥＡの画像データを全体画像Ｇの部分画像である微小画像ＩＧとして画像メモリに保存する。全体画像Ｇと保存される微小画像ＩＧの状態を図１２に示す。「顔画像の撮像処理」Ｓ２で撮像しマイクロコンピュータ２に入力された画像データは、全体画像Ｇとして既に画像メモリに保存されている。
【００４８】
次いでＳ３２０２では、全体画像Ｇの代表座標値Ｃに相当する微小画像ＩＧの代表座標値ＩＣを基準とした範囲ＡＲの濃度情報をもとに二値化閾値を設定する。この範囲ＡＲは、前記存在領域ＥＡより小さく、二値化閾値を正確に設定できるようにしている。
【００４９】
各範囲ＡＲでの二値化閾値の算出方法の一例を、図１３を用いて説明する。範囲ＡＲにおいて縦方向に数ラインの濃度値の読み出しを行う。図１３では、この縦方向へのラインが４本あることを示している。この各ラインにおいて濃度値の最も高い（明るい）濃度値と、最も低い（暗い）濃度値をメモリして行き、全ラインのメモリが終了したら、各ラインの最も高い（明るい）濃度値の中で、一番低い濃度値（皮膚の部分）と、各ラインの最も低い（暗い）濃度値の中で、一番低い濃度値（眼の部分）とを求め、その中央値を二値化閾値とする。
【００５０】
この二値化閾値のための範囲ＡＲは、眼の黒い部分と眼の周囲の皮膚の白い部分が入るように設定し、また、画像の明るさのバラツキによる影響を少なくするために必要最小限の大きさにしている。また、二値化閾値は、その領域内の眼の一番低い（暗い）濃度値と、皮膚の部分の一番低い（暗い）濃度値の中央値とすることで、顔画像の皮膚の部分から眼の部分を切り出すのに適した値になる。
【００５１】
さらに、二値化閾値を決定するのに皮膚の部分の濃度値の一番低い（暗い）濃度値を用いている理由は、次の通りである。前述したように眼の周囲の明るさのバラツキによる影響を少なくするために、濃度値を読み出す範囲ＡＲを極力小さくしていても、該範囲ＡＲの一部に直射光が当たっているような部分が外乱として入ることがあり、この部分を二値化閾値の決定に用いないようにするためである。
【００５２】
Ｓ３２０３では、こうして決定した二値化閾値を用いて微小画像ＩＧを二値化処理して、二値画像ｂＧとして画像メモリに保存する。
【００５３】
このような二値化閾値を用いて二値化した候補オブジェクトを検出することにより、眼を正確に捉えて候補オブジェクトの幾何形状を用いた判定をより正確に行うことができ、眼の位置検出精度をより向上することができる。
【００５４】
次にＳ３２０４に移行し、全体画像Ｇの代表座標値Ｃに相当する二値画像ｂＧの位置ｂＣを初期位置に設定する。
【００５５】
設定位置の画素が黒画素か否かを判定Ｓ３２０５し、設定位置が黒画素と判定されればＳ３２０５ＹＥＳ、処理をＳ３２０６に移行する。設定位置が黒画素と判定されなければ（この場合、白画素）Ｓ３２０５ＮＯとして設定位置を上下左右に１画素ずつずらして、再度、設定位置が黒画素か否かを判定Ｓ３２０５を行い、設定位置が黒画素になるまで処理を行う。
【００５６】
Ｓ３２０６ではその黒画素を包括する連結成分を候補オブジェクトとして設定する。Ｓ３２０７では候補オブジェクトの幾何形状を算出し、Ｓ３２０８で特定したい眼テンプレートの幾何形状と候補オブジェクトの幾何形状を比較する。
【００５７】
Ｓ３２０８の候補オブジェクトと眼テンプレートの幾何形状の比較方法の一例を眼の場合について図１４を用いて説明する。
【００５８】
眼の二値化した形状は光環境が良く安定した画像であれば図１４の（ａ）に示すようなものになるが、車室内に直射日光が一側から当たる等して光環境が悪化した時は、図１４の（ｂ）や（ｃ）のような形状になることもある。
【００５９】
眼のテンプレートは、横幅が眼の平均値の２／３以上あり、且つ上に凸の所定範囲の曲率を持っているという条件▲１▼と、黒眼の左側に凹み形状を有する条件▲２▼と、黒眼の右側に凹み形状を有する条件▲３▼とからなる組み合わせにより設定している。そして、図１４の（ｂ），（ｃ）の例を許容するために▲１▼と▲２▼、または▲１▼と▲３▼の条件を満たすものであっても良いものとする。
【００６０】
Ｓ３２０９ではＳ３２０８の結果、候補オブジェクトと眼テンプレートの幾何形状が一致するか否かを判定する。候補オブジェクトと眼テンプレートの幾何形状が一致する場合Ｓ３２０９ＹＥＳには、Ｓ３２１０でその候補オブジェクトを眼と判定しする。候補オブジェクトと眼テンプレートの幾何形状が一致しない場合Ｓ３２０９ＮＯにはＳ３２１４でその候補オブジェクトを眼ではないと判定しする。
【００６１】
Ｓ３２１１では眼と判定された候補オブジェクトの全体画像Ｇでの代表座標値Ｃをこの画像フレームでの眼の座標としてメモリする。
【００６２】
Ｓ３２１２では眼だと判定された代表候補点を含む微小画像ＩＧを眼画像ＭＧｉとして画像メモリに保存する。
【００６３】
［顔の向きの検出処理］（Ｓ５）
図１５は、「顔の向き検出処理」Ｓ５を説明する概略フローチャートである。まず、「眼判定処理」Ｓ３２で眼と判定した微小画像から、Ｓ５１で眼の外周輪郭を検出する。次いでＳ５２で眼の目頭及び目尻の位置を検出する。Ｓ５３で微小画像から円弧状ラインのピーク位置を検出する。そして、Ｓ５４で、目頭位置、目尻位置、ピーク位置から顔の向きを示す顔の方向角θｆを検出する。なお、本説明での処理対象は画像上の右側の目（運転者の左目）とする。
【００６４】
［眼の外周輪郭の検出］（Ｓ５１）
図１８（ａ）は眼位置特定処理によって特定された眼位置を中心とした微小画像ＭＧｉを示している。ここでの微小画像は眼判定処理のＳ３２１２で画像メモリの保管された微小画像ＭＧｉを用いるのが通常であるが、状況に応じて、画像メモリに保管されている全体画像Ｇからサイズの位置を再定義した微小画像を抽出して用いてもよい。
【００６５】
図１８（ａ）の微小画像を二値化閾値より小さい画像を黒（濃度値０）、二値化閾値よりも大きいところを白（濃度値２５５）となるように二値化することによって、図１８（ｂ）の二値化画像ｂＭＧｉを得ることができる。ここで行う二値化処理の二値化閾値は眼判定処理で行った二値化処理に用いた二値化閾値と同じとしてもよい。
【００６６】
図１８（ｃ）では得られた二値化画像の左上から下向きに向かって画素値０の黒画素を検索する。一番下の画素まで検索し終わったら一つ右の画素列を検索していく。その画素列で最初に見つかった黒画素と最後に見つかった黒画素をそれぞれの画素列について求めていくと図１８（ｄ）の様に眼の外周輪郭を得ることができる。
【００６７】
図１６（ａ）は、図１５の「眼の外周輪郭の検出処理」Ｓ５１を説明するフローチャートである。まずＳ５１０１で、先に「眼判定処理」（図１１のＳ３２１２）で眼と判定した微小画像ＭＧｉを二値化して、二値画像ｂＭＧｉを画像メモリに保存する。次いで、Ｓ５１０２で二値画像ｂＭＧｉの左上に初期位置を設定する。Ｓ５１０３でＹ方向に二値画像ｂＭＧｉのラインを検索して、黒領域のライン上両端部の位置を検出して記憶する。Ｓ５１０４で全ラインを終了したか否かを判定し、全ライン終了していなければ、Ｓ５１０５でラインを右へ（Ｘ方向）１つずらし、ライン内位置を最上部へ設定し、Ｓ５１０３へ戻る。Ｓ５１０４で全ライン終了していれば、眼の外周輪郭の検出処理は終了である。
【００６８】
［眼の目頭・目尻の検出］（Ｓ５２）
眼の目頭・目尻の位置は、図１９のように画像上の右側の目の場合では外周輪郭線の左端が目頭、右端が目尻位置となる。なお、平面座標として目頭、目尻位置を特定する場合、図１８（ｄ）に示すように下側ラインの左右端を目頭位置、目尻位置として、その座標を使う方法のほかに上側ラインの左右端を目頭位置、目尻位置として、その座標を使う方法や上側ラインと下側ラインの左右端の中点を目頭位置、目尻位置として、その座標を使う方法もある。
【００６９】
図１６（ｂ）は、図１５の「眼の目頭・目尻の検出処理」Ｓ５２を説明するフローチャートである。まずＳ５２０１で、処理対象の微小画像が運転者の左目か右目かを判定する。Ｓ５２０１で左目であれば、眼の外周輪郭線の画像上の左端を目頭位置、眼の外周輪郭線の画像上の右端を目尻位置とする。Ｓ５２０１で右目であれば、眼の外周輪郭線の画像上の右端を目頭位置、眼の外周輪郭線の画像上の左端を目尻位置とする。
【００７０】
［円弧状ラインのピーク位置検出］（Ｓ５３）
円弧状ラインとして上瞼を用いる場合、図１９に示すように眼の外周輪郭のラインで上側ラインの最も高い位置をピーク位置とすることができる。また図２０のように顔がカメラに対して正面を向いていないような場合、図２１に示すように画像上眼が傾き、必ずしも上側ラインの高さ方向で最も高い位置がピーク位置とはならない。このような場合も想定して目頭位置と目尻位置を結んだ線分と眼の外周輪郭のラインで上側ラインの距離が最も大きいところをピーク位置とすることもできる。
【００７１】
図１７（ａ）は、図１５の「円弧状ラインのピーク位置検出処理」Ｓ５３を説明するフローチャートである。まずＳ５３０１で、微小画像上の目頭位置と目尻位置を通る直線ＨＰを算出する。次いでＳ５３０２で、円弧状ラインから直線ＨＰまでの垂線の長さを算出する。Ｓ５３０３で、垂線の長さが最大となる円弧状ライン上の点の位置をピーク位置とする。
【００７２】
［顔の方向角θｆの検出処理］（Ｓ５４）
図１２，図１９に示すように顔を正面に向けている場合、円弧状ラインのピーク位置は眼のほぼ中心位置にあり、ピーク位置から目頭位置までの距離Ｌ２とピーク位置から目尻位置までの距離Ｌ１はほぼ等しくなる。
【００７３】
次いで、図２０に示すように顔が左（画像中右）を向いている場合には、図２１に示すように、左目（画像中右側の眼）の円弧状ラインのピーク位置から目頭位置までの距離Ｌ２は大きくなり、ピーク位置から目尻位置までの距離Ｌ１は小さくなる。Ｌ１とＬ２の関係をＬ２／Ｌ１というパラメータで表すと正面に顔がある場合はＬ２／Ｌ１は１となる。顔を右側に向けていくとＬ２／Ｌ１は次第に小さくなっていき、顔がカメラに対して真横を向いた時（顔が９０度右向いたとき）に円弧状ラインのピーク位置は目尻側に寄り、Ｌ２の長さは０となるのでＬ２／Ｌ１は０となる。
【００７４】
ただし、実際は顔の向きが右４５度程度を越えた後は右目は顔の陰に隠れてカメラには写らなくなるため、本来の処理においては両目を監視する。眼に斜視などの異常がなければ、左右両眼とも眼球は同様に動くので、顔画像データである全体画像Ｇ上で一方の眼が見えないときは、他方の眼のデータで処理を行う。
【００７５】
反対に顔が左側を向いていくとＬ２／Ｌ１は次第に大きくなっていき、顔がカメラに対して真横を向いた時（顔が９０度左向いたとき）に円弧状ラインのピーク位置は目頭側に寄りＬ１の長さは０となるのでＬ２／Ｌ１は無限大となる。
【００７６】
この関係を示したグラフを図２２に示す。このグラフを参照することにより、Ｌ２／Ｌ１から顔の向き（顔の方向角）θｆを求めることができる。ここで、顔の向きは、正面を向いた時を０度とし、右向き（画像上左向き）を正、左向き（画像上右向き）を負の角度としている。
【００７７】
図１７（ｂ）は、図１５の「顔の方向角θｆの検出処理」Ｓ５４を示すフローチャートである。まずＳ５４０１で、目頭から円弧状ラインのピーク位置までのＸ方向の距離Ｌ２を算出する。Ｓ５４０２で、目尻から円弧状ラインのピーク位置までのＸ方向の距離Ｌ１を算出する。５４０３で、Ｌ２／Ｌ１を算出し、Ｌ２／Ｌ１から図２２のようなマップを検索して、顔の方向角θｆを求める。
【００７８】
ここで例示した顔の向き検出処理は一例であり、この方法のほかにも両目の間隔から顔の向きを検出する方法などが公知である。
【００７９】
［円弧状ラインのピーク位置検出処理］（Ｓ６）
図３の「円弧状ラインのピーク位置検出処理」Ｓ６は、「顔の向きの検出処理」Ｓ５中の「円弧状ラインのピーク位置検出処理」Ｓ５３と同様にして行う。「顔の向き検出処理」を本実施形態で説明した方法で処理した場合は、「顔の向き検出処理」Ｓ５で検出された結果をメモリ上に残しておき、それを呼び出すことで円弧状ラインのピーク位置を得ることができる。
【００８０】
［瞳位置の検出処理Ｉ］（Ｓ７ａ）
図３の「瞳位置の検出処理」Ｓ７の第１の方法について図２３（ａ）のフローチャートと図２５（ａ）とを用いて説明する。
【００８１】
図１８（ｄ）で説明したように、眼の外周輪郭ラインの下凸となった部分が瞳であるので、図２５（ａ）に示すように、眼全体でみると上側ラインと下側ラインの最も間隔が広い部分の中点（２等分点）を瞳位置とする。なお、平面座標として瞳位置を検出する場合は横方向の瞳位置の座標位置を上記方法で求めた後、その位置での上側ラインと下側ラインの中点を縦方向の瞳位置の座標を用いることができる。
【００８２】
まず、Ｓ７１において、先の「眼の位置特定処理」Ｓ３によって特定された眼位置を中心とした微小画像である眼画像ＭＧｉを呼び出す。次いでＳ７２で眼の外周輪郭のラインを検出する。次いで、Ｓ７３で、眼の外周輪郭の上側ラインと下側ラインの最も間隔が広い部分の中点（２等分点）を瞳位置とする。
【００８３】
「顔の向き検出処理」を本実施形態で説明した方法で処理した場合は、「顔の向き検出処理」Ｓ５で検出された結果をメモリ上に残しておき、それを呼び出すことで外周輪郭のラインを得ることができる。また、顔の向き検出処理を本実施形態で説明した方法以外の公知の方法で行った場合は「顔の向き検出処理」Ｓ５中の「眼の外周輪郭の検出処理」Ｓ５１で説明した方法を行うことで、外周輪郭のラインを新たに得ることができる。
【００８４】
なお、平面座標として瞳位置を検出する場合は横方向の瞳位置の座標位置を上記方法で求めた後、その位置での上側ラインと下側ラインの中点を縦方向の瞳位置の座標を用いることができる。
【００８５】
［瞳位置の検出処理II］（Ｓ７ｂ）
図３の「瞳位置の検出処理」Ｓ７の第２の方法について図２３（ｂ）のフローチャートと図２５（ｂ）を用いて説明する。
【００８６】
検出された眼の外周輪郭のラインで上側ラインは上凸形状のラインとなり、下側ラインは上凸のラインと下凸のラインの組み合わせによって構成されている。通常は眼の両側では上凸となり、ラインの真ん中で大きく下凸となる。第２の方法では、図２５（ｂ）に示すように下側ラインの上凸ラインから下凸ラインへと変化する変曲点を２つ検出し、これら検出した２つの変曲点を結んだ線分の中点位置を瞳位置とする。
【００８７】
図２３（ｂ）において、まず第１の方法と同様にＳ７１，Ｓ７２で眼の外周輪郭の検出を行う。次いでＳ７５で、眼の外周輪郭ラインの下側ラインの上凸ラインから下凸ラインへと変化する変曲点を２つ検出する。次いで、Ｓ７６で、これら２つの変曲点を結んだ線分の中点位置を瞳位置とする。
【００８８】
ただし、瞳が大きく左右のどちら側かによっている場合や画像の状態がよくなく目頭側もしくは目尻側のどちら側が二値化処理の段階で欠損するような場合もある。この場合は目頭側もしくは目尻側のいずれかの上凸ラインが消えて、消えた方の上凸ラインの変曲点が抽出できない場合がある。その場合は片側の変曲点と、変曲点が抽出できなかった側の端部を結んだ線分の中点位置を瞳位置とすることができる。なお、平面座標として瞳位置を検出する場合は横方向の瞳位置の座標位置を上記方法で求めた後、その位置での上側ラインと下側ラインの中点を縦方向の瞳位置の座標を用いることができる。
【００８９】
［瞳位置の検出処理III ］（Ｓ７ｃ）
図３の「瞳位置の検出処理」Ｓ７の第３の方法について図２４（ａ）のフローチャートと図２５（ｃ）とを用いて説明する。
【００９０】
第３の方法では、図２５（ｃ）に示すように微小画像の中から楕円成分を抽出して、その楕円の中心を瞳位置として検出する。
【００９１】
図２４（ａ）において、まず第１の方法と同様にＳ７１，Ｓ７２で眼の外周輪郭の検出を行う。次いで、Ｓ７７で眼の外周輪郭から楕円成分を抽出する。Ｓ７８で楕円の中心を瞳位置とする。Ｓ７７の楕円成分の抽出方法には、ハフ変換や画像処理による領域分割や最小二乗法による楕円方程式への近似などがある（参考「マルチカメラによる視線検出のための顔部品抽出」第６回画像センシングシンポジウム講演論文集Ｐ３４７の瞳抽出方法）。
【００９２】
［眼球の回転角検出処理Ｉ］（Ｓ８）
次に、図３の「眼球の回転角検出処理Ｉ」Ｓ８を説明する。この眼球の回転角検出処理は、「円弧状ラインのピーク位置検出処理」Ｓ６で求めたピーク位置と、「瞳位置の検出処理」Ｓ７で求めた瞳位置とを使用して、眼球の回転角θｐを検出する。
【００９３】
ここで、円弧状ラインのピーク位置から瞳の中心までの距離をＬ３とする。図１９に示すように瞳が顔の正面方向を向いている場合は、瞳中心と円弧状ラインのピーク位置はほぼ一致するためＬ３は０となる。図２６のように眼球を動かし顔の正面方向を見ていないときは図２７（ａ）のように、Ｌ３の値（絶対値）は大きくなる。また、図２０のように顔がカメラに対して正面を向いていない場合でも図２１に示すように瞳が顔の正面方向を向いている場合は、瞳中心と円弧のピーク位置はほぼ一致するためＬ３は０となる。眼球を動かし顔の正面方向を見ていないときは図２７（ｂ）のように、Ｌ３の値（絶対値）は大きくなる。
【００９４】
画像上顔の正面より右側に眼球を向けた時のＬ３の値を正とすると、Ｌ３と眼球の回転角θｐとの関係は、Ｌ２／Ｌ１をパラメータとして、図２８のようになる。従って、Ｌ３と、先に「顔の方向角θｆの検出処理」Ｓ５４で求めたＬ２／Ｌ１とから、図２８に示したようなマップを参照することにより、眼球の回転角θｐを求めることができる。なお、眼球の回転移動範囲は正面から左右約４３度までの範囲である。
【００９５】
図２４（ｂ）は、図３の「眼球の回転角検出処理」Ｓ８を説明するフローチャートである。まずＳ８１で円弧状ラインのピーク位置から瞳の中心位置までの距離Ｌ３を算出する。次いで図２８に示したようなマップを参照して、Ｌ２／Ｌ１とＬ３から眼球の回転角θｐを求める。
【００９６】
［視線方向の算出処理］（Ｓ９）
次に、図３の「視線方向の算出処理」Ｓ９を図２４（ｃ）のフローチャートを参照して説明する。視線方向は、「顔の向き検出処理」Ｓ５で求めた顔の方向角θｆと、「眼球の回転角検出処理Ｉ」Ｓ８で求めた眼球の回転角θｐとを合成した方向であるので、Ｓ９１で眼球の回転角θｐと顔の方向角θｆとを加算して視線方向とする。
【００９７】
次に、上記の第１実施形態の効果を説明する。
【００９８】
（イ）単に眼球の方向だけで視線方向を検出するのではなく、顔の向きと眼球の回転角から視線方向を検出しているので、視線方向を検出できるようになり、検出精度を一層向上させることができる。
【００９９】
（ロ）眼球回転角検出手段として、顔画像の円弧状ラインを見つけそのピーク位置を検出する円弧状ラインピーク位置検出手段と、瞳の位置を検出する瞳位置検出手段とを備えて、瞳位置とピーク位置との距離から眼球回転角を検出しているため、視線位置の基本となる瞳を基準にして視線角度を検出できるようになり、検出精度を一層向上させることができる。また、円弧状ラインピーク位置から眼の中心位置を検出しているため、人間の顔の特徴を捉えてより正確な検出を行うことができる。
【０１００】
（ハ）顔画像から眼の位置を特定する際に、顔画像から眼の候補位置を特定する眼の候補位置特定処理を行い、この部分を中心とした微小画像から眼か否かを判定しているため、演算処理量を少なくすることができ、処理を迅速に行うことができる。
【０１０１】
（ニ）目頭・目尻位置を検出する際に、眼の輪郭を検出し、輪郭から目頭・目尻位置を特定しているため、眼の形状に合わせた正確な検出を行うことができ、視線方向検出精度を一層向上させることができる。
【０１０２】
（ホ）瞳位置を検出する際に、眼の輪郭の縦方向に最も広い位置の中心を瞳の中心としたため、人体の眼の特徴に合わせて瞳位置の正確な検出を行うことができ、視線方向検出精度を一層向上させることができる。
【０１０３】
（へ）瞳位置を検出する際に、眼の輪郭の下側ラインの変曲点を２箇所検出し、その中心位置を瞳の中心位置としているため、単に眼の輪郭から決めるのでなく、黒目の要素も考慮して瞳位置の正確な検出を行うことができ、視線方向検出精度を一層向上させることができる。
【０１０４】
（ト）瞳位置を検出する際に、微小画像の楕円形状のオブジェクトの中心位置から瞳位置を決定しているため、眼の位置を正確に推定することができ、視線方向検出精度を一層向上させることができる。
【０１０５】
（チ）円弧状ラインのピーク位置検出において、円弧状ラインの高さが最も高い位置をピーク位置としているため、人体の特性に合わせた正確な眼の位置検出を行うことができ、視線方向検出精度を一層向上させることができる。
【０１０６】
（リ）円弧状ラインのピーク位置検出において、円弧状ラインの両端を結ぶ線分に対する円弧状ラインからの垂線の長さが最も長い位置をピーク位置としているため、ピーク位置の検出を正確に行うことができ、視線方向検出精度を一層向上させることができる。
【０１０７】
（ヌ）円弧状ラインを検出する顔部位として、上下の瞼、上下眼鏡フレーム、眉の何れかを用いたため、人体や装着品として特徴的な項目を用いることができ、円弧状ラインの検出を確実に行うことができ、視線方向検出精度を一層向上させることができる。
【０１０８】
（ル）瞳径検出において、微小画像から楕円状のオブジェクトを検出し、この楕円状オブジェクトの横径と縦径とを瞳の横径と縦径に見立てたため、瞳自体の径を計測する必要が無く、より簡易な構成で検出することができる。
【０１０９】
〔第２実施形態〕
図２９は、本発明に係る視線方向検出装置の第２実施形態の構成を説明するブロック図である。同図において、視線方向検出装置は、顔画像を撮像する顔画像撮像手段ＣＬ１と、顔画像撮像手段ＣＬ１によって撮像された顔画像から画像上の眼の位置を特定する眼位置特定手段ＣＬ２と、顔画像撮像手段ＣＬ１によって撮像された顔画像から眼球の回転角を検出する眼球回転角検出手段ＣＬ４と、顔画像撮像手段ＣＬ１によって撮像された顔画像から顔の向きを検出する顔の向き検出手段ＣＬ３と、眼球回転角検出手段ＣＬ４によって検出された眼球の回転角と顔の向き検出手段ＣＬ３によって検出された顔の向きから視線方向を算出する視線方向算出手段ＣＬ５とを備えている。
【０１１０】
顔画像撮像手段ＣＬ１は、運転者またはオペレータ等の顔を撮像して顔画像データを出力するＴＶカメラ等の撮像手段である。眼位置特定手段ＣＬ２は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して、画像上の眼の位置を特定する。
【０１１１】
顔の向き検出手段ＣＬ３は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して顔画像撮像手段ＣＬ１の光軸ラインを正面とした顔の向きを検出する。
【０１１２】
眼球回転角検出手段ＣＬ４は、さらに瞳位置検出手段ＣＬ４１と、円弧状ラインのピーク位置検出手段ＣＬ４２と、瞳径検出手段ＣＬ４３とを備えて構成されている。
【０１１３】
瞳位置検出手段ＣＬ４１は、眼位置特定手段ＣＬ２で特定された眼の位置を中心とした微小画像を画像処理することによって瞳の位置を検出する。
【０１１４】
円弧状ラインのピーク位置検出手段ＣＬ４２は、上瞼、下瞼、眉毛、眼鏡の上フレーム、眼鏡の下フレームなど視線の基準となる円弧状ラインの検出を行い、その中から円弧状ラインのピーク位置を求める。本実施形態では上瞼での場合のみ説明するが他の部位についても同様の処理を行うことで検出することができる。
【０１１５】
瞳径検出手段ＣＬ４３は眼位置特定手段ＣＬ２で特定された眼の位置を中心とした微小画像を画像処理することによって画像上の瞳の横径および縦径を検出する。
【０１１６】
眼球回転角検出手段ＣＬ４は、瞳位置検出手段ＣＬ４１で検出された瞳の位置と円弧状ラインのピーク位置検出手段ＣＬ４２の円弧状ラインのピーク位置から瞳がピーク位置に対して左右どちら側にあるかを検出し、瞳のピーク位置に対する位置と瞳径検出手段ＣＬ４３で検出された画像上の瞳の横径および縦径から眼球の回転角を検出する。
【０１１７】
［機器の配置］
本発明の機器の配置、顔画像撮像手段ＣＬ１としてＴＶカメラ１は第１実施形態と同じであるので省略する。
【０１１８】
マイクロコンピュータ２は、ＴＶカメラ１から入力された画像データを記憶する画像メモリを備えている。さらにマイクロコンピュータ２には、この画像データを処理して視線方向を検出するために、眼位置特定手段ＣＬ２と、顔の向き検出手段ＣＬ３と、瞳位置検出手段ＣＬ４１と、円弧状ラインピーク位置検出手段ＣＬ４２と、瞳径検出手段ＣＬ４３と、視線方向算出手段ＣＬ５とを実現するロジックがプログラミングされている。
【０１１９】
［システム全体の処理］
図３０は、システムの全体の処理の流れを説明する概略フローチャートである。まず、処理が開始されると、Ｓ１で、「初期値入力」の処理が実行され、マイクロコンピュータの作業エリアの初期化や各種パラメータの初期値の設定が行われる。
【０１２０】
Ｓ２の「顔画像の撮像処理」ではＴＶカメラ１で顔画像を撮像し、マイクロコンピュータ２に画像データとして入力する。
【０１２１】
Ｓ３の「眼の位置特定処理」ではマイクロコンピュータ２に入力された画像データを画像処理することによって顔画像上の眼の位置を特定する。
【０１２２】
Ｓ４ではＳ３の出力結果をもとに顔画像上に眼が特定できればＳ４ＹＥＳ、Ｓ５へ処理を進め、顔画像上に眼が特定できなければＳ４ＮＯ、Ｓ２へ処理を戻し、眼が特定できるまでＳ２からＳ４までの処理を繰り返す。
【０１２３】
Ｓ６の「円弧状ラインピーク位置検出処理」では、Ｓ３で特定された眼の位置を中心とする顔画像の部分画像である微小画像（微小エリアとも呼ぶ）を画像処理することで微小画像上の円弧状ライン及びそのピーク位置を検出する。
【０１２４】
Ｓ７の「瞳位置の検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の瞳の位置を検出する。
【０１２５】
Ｓ５の「顔の向き検出処理」では、マイクロコンピュータ２に入力された画像データを画像処理することによって、顔画像撮像手段の光軸方向に対する画像上の顔の向きを検出する。
【０１２６】
Ｓ１０の「瞳径の検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の瞳の横径と縦径を検出する。
【０１２７】
Ｓ１１の「眼球の回転角検出処理II」では、Ｓ１０で検出した画像上の瞳の横径と縦径とから眼球の回転角θｐを検出する。
【０１２８】
Ｓ９の「視線方向の算出処理」では、Ｓ５で検出した顔の向きとＳ１１で検出した眼球の回転角から視線方向を算出して処理を終了する。
【０１２９】
［眼の位置特定処理］（Ｓ３）
第１実施形態の「眼の位置特定処理」Ｓ３と同じなので説明は省略する。
【０１３０】
［瞳位置の検出処理］（Ｓ７）
第１実施形態の「瞳位置の検出処理」Ｓ７と同じなので説明は省略する。
【０１３１】
［円弧状ラインのピーク位置検出処理］（Ｓ６）
第１実施形態の「円弧状ラインのピーク位置検出処理」Ｓ６、及び「顔の向き検出処理」中の「円弧状ラインのピーク位置検出処理」Ｓ５３と同じなので説明は省略する。
【０１３２】
［顔の向き検出処理］（Ｓ５）
第１実施形態の「顔の向き検出処理」Ｓ５と同じなので説明は省略する。
【０１３３】
［瞳径の検出処理］（Ｓ１０）
瞳径の検出処理方法について説明する。まず微小画像の中から楕円成分を抽出する。瞳位置の検出処理で第３の方法を用いている場合はそのときの検出結果をメモリに保存しておき、保存されている結果を呼び出すことで処理を簡素化することができる。瞳位置の検出処理で第３の方法以外の方法を用いている場合は、瞳位置検出処理で第３の方法と同様に、ハフ変換や画像処理による領域分割や最小二乗法による楕円方程式への近似などで楕円成分を微小画像の中から抽出する。次に抽出された楕円成分の縦径および横径を瞳の縦径と横径とする。
【０１３４】
図３１（ａ）は、瞳径の検出処理を説明するフローチャートである。まずＳ７１で眼画像ＭＧｉを呼び出す。次いでＳ７２で眼の外周輪郭を検出する。Ｓ７７で眼の外周輪郭から楕円成分を抽出する。Ｓ７８で楕円の中心を瞳位置とする。Ｓ１０１で、楕円の縦径、横径の長さを求め、楕円の縦径を瞳の縦径、楕円の横径を瞳の横径とする。
【０１３５】
［眼球の回転角検出処理II］（Ｓ１１）
図３２（ａ）、図３２（ｂ）はそれぞれ図２０のような顔をカメラの光軸正面から画像内の方向で右方向に顔を向けた場合で瞳が顔の正面を見ている場合と瞳が顔の正面に対して画像上で左方向を見ている場合を示している。
【０１３６】
この図からわかるように、瞳がカメラ正面にある場合が横径が最も広くなり、カメラ正面から左右に離れるに従って横径が小さくなり、画像上の瞳の形状は縦長になっていく。この傾向は顔がカメラ正面を見ている場合よりカメラの光軸正面に対して左右方向に大きく向けるほど大きくなっていく。顔の向きがある程度カメラの光軸正面に対して大きく左右に向けられると、顔を向けた方向と同じ方向に眼球を動かしていくと瞳の画像上の横径は細くなっていき、最後はカメラの視界から消えてしまう。
【０１３７】
瞳の横径をＬＨ、瞳の縦径をＬＶとし、瞳の画像上の形状を縦長比ＬＶ／ＬＨで表すと縦長比ＬＶ／ＬＨと眼球の回転角θｐとの間には図３３のような関係が得られる。これにより眼のピーク位置に対する瞳の位置と瞳の画像上の形状を縦長比ＬＶ／ＬＨから眼球の回転角θｐを求めることができる。
【０１３８】
図３１（ｂ）は、「眼球の回転角検出処理II」Ｓ１１を説明する詳細フローチャートである。まずＳ１１１で瞳の縦径ＬＶ、瞳の横径ＬＨから、縦横比ＬＶ／ＬＨを算出する。次いでＳ１１２で縦横比ＬＶ／ＬＨと、顔の向き検出処理で求めたＬ２／Ｌ１とから図３３のようなマップを参照して、眼球の回転角θｐを求める。
【０１３９】
［視線方向の算出処理］（Ｓ９）
第１実施形態の「視線方向の算出処理」Ｓ９と同じなので説明は省略する。
【０１４０】
次に、上記の第２実施形態の効果を説明する。
【０１４１】
眼球回転角検出手段として、瞳の横径と縦径を検出する瞳径検出手段を備え、瞳の横径と縦径との比に基づき眼球の回転角を検出しているため、瞳の動きに忠実に視線変化を検出することができ、この点で精度をより向上することができる。
【０１４２】
〔第３実施形態〕
［システムブロック図］
図３４は、本発明に係る視線方向検出装置の第３実施形態の構成を説明するブロック図である。同図において、視線方向検出装置は、顔画像を撮像する顔画像撮像手段ＣＬ１と、顔画像撮像手段ＣＬ１によって撮像された顔画像から画像上の眼の位置を特定する眼位置特定手段ＣＬ２と、顔画像撮像手段ＣＬ１によって撮像された顔画像から眼球の回転角を検出する第１の眼球回転角検出手段ＣＬ４Ａと、顔画像撮像手段ＣＬ１によって撮像された顔画像から眼球の回転角を検出する第２の眼球回転角検出手段ＣＬ４Ｂと、顔画像撮像手段ＣＬ１によって撮像された顔画像から顔の向きを検出する顔の向き検出手段ＣＬ３と、眼球回転角検出手段ＣＬ４ＡまたはＣＬ４Ｂによって検出された眼球の回転角と顔の向き検出手段ＣＬ３によって検出された顔の向きから視線方向を算出する視線方向算出手段ＣＬ５とを備えている。
【０１４３】
顔画像撮像手段ＣＬ１は、運転者またはオペレータ等の顔を撮像して顔画像データを出力するＴＶカメラ等の撮像手段である。眼位置特定手段ＣＬ２は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して、画像上の眼の位置を特定する。
【０１４４】
顔の向き検出手段ＣＬ３は、顔画像撮像手段ＣＬ１から出力された顔画像データを処理して顔画像撮像手段ＣＬ１の光軸ラインを正面とした顔の向きを検出する。
【０１４５】
第１の眼球回転角検出手段ＣＬ４Ａは、瞳位置検出手段ＣＬ４１と円弧状ラインのピーク位置検出手段ＣＬ４２とを備えて構成されている。
【０１４６】
第２の眼球回転角検出手段ＣＬ４Ｂは、瞳位置検出手段ＣＬ４１と、目頭・目尻位置検出手段ＣＬ４４とを備えて構成されている。
【０１４７】
言い換えれば、第１、第２の眼球回転角検出手段ＣＬ４Ａ及びＣＬ４Ｂは、瞳位置検出手段ＣＬ４１を共有している。
【０１４８】
なお、第１、第２の眼球回転角検出手段ＣＬ４Ａ、ＣＬ４Ｂのいずれを用いるかは、顔の向き検出手段ＣＬ３の検出結果により、顔が正面を向いていれば第２の眼球回転角検出手段ＣＬ４Ｂを用い、正面を向いていなければ第１の眼球回転角検出手段ＣＬ４Ａを用いる。
【０１４９】
瞳位置検出手段ＣＬ４１は、眼位置特定手段ＣＬ２で特定された眼の位置を中心とした微小画像を画像処理することによって瞳の位置を検出する。
【０１５０】
円弧状ラインのピーク位置検出手段ＣＬ４２は、上瞼、下瞼、眉毛、眼鏡の上フレーム、眼鏡の下フレームなど視線の基準となる円弧状ラインの検出を行い、その中から円弧状ラインのピーク位置を求める。本実施形態では上瞼での場合のみ説明するが他の部分についても同様の処理を行うことで検出することができる。
【０１５１】
目頭・目尻位置検出手段ＣＬ４４は、眼位置特定手段ＣＬ２で特定された眼の位置を中心とした微小画像を画像処理することによって目尻と目頭の位置を検出する。
【０１５２】
［機器の配置］
本発明の機器の配置、顔画像撮像手段ＣＬ１としてＴＶカメラ１は第１実施形態と同じであるので省略する。
【０１５３】
マイクロコンピュータ２は、ＴＶカメラ１から入力された画像データを記憶する画像メモリを備えている。さらにマイクロコンピュータ２には、眼位置特定手段ＣＬ２と、顔の向き検出手段ＣＬ３と、瞳位置検出手段ＣＬ４１と、円弧状ラインのピーク位置検出手段ＣＬ４２と、目頭・目尻位置検出手段ＣＬ４４と、視線方向算出手段ＣＬ５とを実現するロジックがプログラミングされている。
【０１５４】
［システム全体の処理］
図３５は、システムの全体の処理の流れを説明する概略フローチャートである。まず、処理が開始されると、Ｓ１で、「初期値入力」の処理が実行され、マイクロコンピュータの作業エリアの初期化や各種パラメータの初期値の設定が行われる。
【０１５５】
Ｓ２の「顔画像の撮像処理」ではＴＶカメラ１で顔画像を撮像し、マイクロコンピュータ２に画像データとして入力する。
【０１５６】
Ｓ３の「眼の位置特定処理」ではマイクロコンピュータ２に入力された画像データを画像処理することによって顔画像上の眼の位置を特定する。
【０１５７】
Ｓ４ではＳ３の出力結果をもとに顔画像上に眼が特定できればＳ４ＹＥＳ、Ｓ５へ処理を進め、顔画像上に眼が特定できなければＳ４ＮＯ、Ｓ２へ処理を戻し、眼が特定できるまでＳ２からＳ４までの処理を繰り返す。
【０１５８】
Ｓ５の「顔の向き検出処理」では、マイクロコンピュータ２に入力された画像データを画像処理することによって、顔画像撮像手段の光軸方向に対する画像上の顔の向きを検出する。
【０１５９】
Ｓ７の「瞳位置の検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の瞳の位置を検出する。
【０１６０】
Ｓ１２では、Ｓ５の結果をもとに顔が画像上の正面を向いているか否かを判定する。顔が画像上の正面を向いている場合Ｓ１２ＹＥＳは、Ｓ１３に処理を進め、顔が画像上の正面を向いていない場合Ｓ１２ＮＯは、Ｓ６に処理を進める。
【０１６１】
Ｓ１３の「目頭・目尻位置の検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の目頭・目尻位置を検出する。
【０１６２】
Ｓ１４の「眼球の回転角検出処理」では、Ｓ７で検出された瞳の位置とＳ１３で検出された目尻・目頭位置から眼球の回転角（＝視線方向）を算出し、処理を終了する。
【０１６３】
Ｓ６の「円弧状ラインのピーク位置検出処理」では、Ｓ３で特定された眼の位置を中心とする微小エリアを画像処理することで画像上の円弧状ラインのピーク位置を検出する。
【０１６４】
Ｓ８の「眼球の回転角検出処理Ｉ」では、Ｓ６で検出された円弧状ラインのピーク位置とＳ７で検出された瞳の位置から眼球の回転角θｐを検出する。
【０１６５】
Ｓ９の「視線方向の算出処理」では、Ｓ５で検出された顔の向きθｆとＳ８で検出された眼球の回転角θｐとを加算したものを視線方向として処理を終了する。
【０１６６】
［眼の位置特定処理］（Ｓ３）
第１実施形態の「眼の位置特定処理」Ｓ３と同じなので説明は省略する。
【０１６７】
［顔の向き検出処理］（Ｓ５）
第１実施形態の「顔の向き検出処理」Ｓ５と同じなので説明は省略する。
【０１６８】
［瞳位置の検出処理］（Ｓ７）
第１実施形態の「瞳位置の検出処理」Ｓ７と同じなので説明は省略する。
【０１６９】
［目頭・目尻位置の検出処理］（Ｓ１３）
第１実施形態の「眼の目頭・目尻の検出」Ｓ５２と同じなので説明は省略する。
【０１７０】
［眼球の回転角（＝視線方向）の検出処理］（Ｓ１４）
図３６は、眼球の左右回転運動を模式的に示す平面図である。眼球の回転中心は角膜頂点から約１３．６ｍｍ後方にあり、移動範囲は正面から左右約４３度である。このことから瞳が左右端位置にある場合、正面から１２．６ｍｍ動いていることになる。
【０１７１】
図３７（ａ）、図３７（ｂ）に示すように目頭位置から瞳位置までの距離をＬＳ、瞳位置から目尻位置までの距離をＬＥとしたときに、眼球の回転角θｐとすると、
【数２】
θｐ＝ｔａｎ-1 ｛12.6/13.6*(LS+LE)(LS-LE)｝  …（２）
式（２）で眼球の回転角θｐを求めることができる。この場合顔の向きが正面であるので、この眼球の回転角θｐそのものが視線方向となる。
【０１７２】
［円弧状ラインのピーク位置検出処理］（Ｓ６）
第１実施形態の［円弧状ラインのピーク位置の検出処理］と同じなので説明は省略する。
【０１７３】
［眼球の回転角検出処理Ｉ］（Ｓ８）
第１実施形態の「眼球の回転角検出処理Ｉ」Ｓ８と同じなので説明は省略する。
【０１７４】
［視線方向の算出処理］（Ｓ９）
第１実施形態の「視線方向の算出処理」Ｓ９と同じなので説明は省略する。
【０１７５】
次に、上記の第３実施形態の効果を説明する。
【０１７６】
（イ）顔の向き検出において、顔画像から円弧状ラインのピーク位置を検出する円弧状ライン検出手段と顔画像から目頭位置と目尻位置とを検出する目頭・目尻位置検出手段とを備え、目尻と目頭のピーク位置からの距離の比を算出しているため、複数の情報を取り込んだ分より精度を向上させることができる。
【０１７７】
（ロ）眼球回転角検出において、画像上の目頭位置と画像上の目尻位置を検出する目頭・目尻位置検出手段と、画像上の瞳の位置とを検出する瞳位置検出手段と、を備え、顔の撮像画像が正面を向いているときに、画像上の目頭位置と目尻位置と瞳位置から眼球の回転角を検出し、この眼球の回転角を視線方向とするようにしたので、目頭位置と目尻位置を正確に検出することができ、これにより視線方向の検出精度を一層向上させることができる。
【図面の簡単な説明】
【図１】本発明に係る視線方向検出装置の第１実施形態の構成を説明するブロック図である。
【図２】本発明に係る視線方向検出装置を車両の運転者に適用した場合の配置図である。
【図３】第１実施形態における視線方向検出処理の全体を示す概略フローチャートである。
【図４】眼の位置特定処理を示す詳細フローチャートである。
【図５】眼の候補の位置の特定処理を示す詳細フローチャートである。
【図６】眼のテンプレートを用いた眼の位置検出の説明図である。
【図７】眼の存在領域の大きさを示す説明図である。
【図８】眼の横方向の長さの統計図である。
【図９】眼の縦方向の長さの統計図である。
【図１０】眼の存在領域の位置を決める説明図である。
【図１１】眼判定処理を示す詳細フローチャートである。
【図１２】微小画像ＩＧ抽出の説明図である。
【図１３】二値化閾値の求め方の説明図である。
【図１４】眼のテンプレートを用いた眼の位置検出の説明図である。
【図１５】顔の向き検出処理を示すフローチャートである。
【図１６】（ａ）眼の外周輪郭の検出処理を示す詳細フローチャートである。
（ｂ）眼の目頭・目尻の検出処理を示す詳細フローチャートである。
【図１７】（ａ）円弧状ラインのピーク位置検出処理を示す詳細フローチャートである。
（ｂ）顔の方向角θｆの検出処理を示す詳細フローチャートである。
【図１８】眼の輪郭線を画像処理によって抽出する方法の概略説明図である。
【図１９】目頭・目尻、円弧状ラインのピーク位置、及び瞳位置の相互位置関係を示す説明図である。
【図２０】顔が画像上右側を向いた時の説明図である。
【図２１】顔が画像上右側を向いた時の円弧状ラインのピーク位置、目頭・目尻位置、瞳の位置の相互関係の説明図である。
【図２２】顔の向きθｆと、円弧状ラインのピーク位置と目頭・目尻位置の距離の比Ｌ２／Ｌ１の関係を示す図である。
【図２３】（ａ）瞳位置の検出処理Ｉを示す詳細フローチャートである。
（ｂ）瞳位置の検出処理IIを示す詳細フローチャートである。
【図２４】（ａ）瞳位置の検出処理IIIを示す詳細フローチャートである。
（ｂ）眼球の回転角検出処理Ｉを示す詳細フローチャートである。
（ｃ）視線方向の算出処理を示す詳細フローチャートである。
【図２５】瞳の中心位置を求める方法の説明図である。
【図２６】眼球を動かしたときの顔画像の説明図である。
【図２７】眼球を動かしたときの微小画像上の円弧状ラインのピーク位置の変化を説明する図である。
【図２８】円弧状ラインのピーク位置と瞳の位置との距離と、眼球の回転角θｐとの関係を示す図である。
【図２９】本発明に係る視線方向検出装置の第２実施形態の構成を説明するブロック図である。
【図３０】第２実施形態における視線方向検出処理の全体を示す概略フローチャートである。
【図３１】（ａ）瞳径の検出処理を示す詳細フローチャートである。
（ｂ）眼球の回転角検出処理IIを示す詳細フローチャートである。
【図３２】瞳径を求める説明図である。
【図３３】瞳の縦径と横径の比ＬＶ／ＬＨと眼球の回転角θｐとの関係を示す図である。
【図３４】本発明に係る視線方向検出装置の第３実施形態の構成を説明するブロック図である。
【図３５】第３実施形態における視線方向検出処理の全体を示す概略フローチャートである。
【図３６】眼球の左右の動きを説明する平面図である。
【図３７】瞳位置と目尻・目頭位置の説明図である。
【符号の説明】
ＣＬ１…顔画像撮像手段
ＣＬ２…眼位置特定手段
ＣＬ３…顔の向き検出手段
ＣＬ４…眼球回転角検出手段
ＣＬ４１…瞳位置検出手段
ＣＬ４２…円弧状ラインピーク位置検出手段
ＣＬ５…視線方向算出手段
【図１】
0003797253.tif 000002
【図２】
0003797253.tif 000003
【図３】
0003797253.tif 000004
【図４】
0003797253.tif 000005
【図５】
0003797253.tif 000006
【図６】
0003797253.tif 000007
【図７】
0003797253.tif 000008
【図８】
0003797253.tif 000009
【図９】
0003797253.tif 000010
【図１０】
0003797253.tif 000011
【図１１】
0003797253.tif 000012
【図１２】
0003797253.tif 000013
【図１３】
0003797253.tif 000014
【図１４】
0003797253.tif 000015
【図１５】
0003797253.tif 000016
【図１６】
0003797253.tif 000017
【図１７】
0003797253.tif 000018
【図１８】
0003797253.tif 000019
【図１９】
0003797253.tif 000020
【図２０】
0003797253.tif 000021
【図２１】
0003797253.tif 000022
【図２２】
0003797253.tif 000023
【図２３】
0003797253.tif 000024
【図２４】
0003797253.tif 000025
【図２５】
0003797253.tif 000026
【図２６】
0003797253.tif 000027
【図２７】
0003797253.tif 000028
【図２８】
0003797253.tif 000029
【図２９】
0003797253.tif 000030
【図３０】
0003797253.tif 000031
【図３１】
0003797253.tif 000032
【図３２】
0003797253.tif 000033
【図３３】
0003797253.tif 000034
【図３４】
0003797253.tif 000035
【図３５】
0003797253.tif 000036
【図３６】
0003797253.tif 000037
【図３７】
0003797253.tif 000038