(57)【特許請求の範囲】
【請求項１】
利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する記憶部と、
目を含んだ顔の少なくとも一部が撮影された画像である顔画像から非利き目の特徴を抽出する抽出部と、
前記抽出部によって抽出された非利き目の特徴に対応する利き目の特徴を前記記憶部に記憶される対応情報から特定する特定部と、
前記特定部によって特定された利き目の特徴を用いて、前記顔画像の視線を検出する検出部と
を有することを特徴とする視線検出装置。
【請求項２】
前記記憶部は、利き目の目頭から瞳孔までの距離と非利き目の目頭から瞳孔までの距離と前記顔画像から対象物までの距離とを対応付けた前記対応情報を記憶し、
前記抽出部は、前記顔画像の利き目および非利き目について目頭から瞳孔までの距離を抽出し、抽出した各距離を用いて前記対象物までの距離をさらに特定し、
前記特定部は、前記抽出部によって特定された距離に対応する前記対応情報を用いて、前記利き目の特徴を特定することを特徴とする請求項１に記載の視線検出装置。
【請求項３】
前記記憶部は、前記利き目および非利き目の特徴として、目頭または目尻から瞳孔の中心までの画素数、または、瞳孔の中心から角膜反射像までの画素数を用いることを特徴とする請求項１または２に記載の視線検出装置。
【請求項４】
前記顔画像の移動量に対応付けて、前記記憶部に記憶される各特徴を補正する補正値を記憶する補正値記憶部をさらに有し、
前記検出部は、前記顔画像と前回視線が検出された顔画像とを比較して得られた移動量に対応する補正値を前記補正値記憶部から取得し、取得した補正値によって前記特定部によって特定された利き目の特徴を補正し、補正後の特徴を用いて前記顔画像の視線を検出することを特徴とする請求項１〜３のいずれか一つに記載の視線検出装置。
【請求項５】
コンピュータが、
目を含んだ顔の少なくとも一部が撮影された画像である顔画像から非利き目の特徴を抽出し、
抽出した非利き目の特徴に対応する利き目の特徴を、利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する記憶部から特定し、
特定した利き目の特徴を用いて、前記顔画像の視線を検出する
処理を含んだことを特徴とする視線検出方法。
【請求項６】
コンピュータに、
目を含んだ顔の少なくとも一部が撮影された画像である顔画像から非利き目の特徴を抽出し、
抽出した非利き目の特徴に対応する利き目の特徴を、利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する記憶部から特定し、
特定した利き目の特徴を用いて、前記顔画像の視線を検出する
処理を実行させることを特徴とする視線検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視線検出装置、視線検出方法および視線検出プログラムに関する。
【背景技術】
【０００２】
従来、視線検出手段の一つとして、目の周囲を含んだ顔画像から画像処理により検出した瞳孔中心と角膜反射像の位置から角膜反射法により視線を計算する方法が知られている。また、人間には利き手などのほかに、利き目と呼ばれる無意識に使う側の器官が存在する。利き目の役割としての多くは、対象物を正確に捉える側の目、いわゆるスコープのような機能を有する。
【０００３】
このようなことから、一般的な視線検出では、顔画像から利き目の視線を検出して、全体の視線を判断することが行われている。また、顔画像から利き目からの視線が特定できない場合は、非利き目の視線方向を判断基準として全体の視線を決定する方法も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２９３９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、利き目の画像の状態がよくない場合には、視線検出の精度も低下するという問題がある。
【０００６】
一般的に、非利き目は、精度の高い遠近感や奥行きを感じ取るために、対象物の近くに視線を向ける形になる。また、人間の目は、見ている先までの距離によって両目の瞳孔間距離が変化する現象が見られる。具体的には、近くを見るほど寄り目になり、両目の瞳孔間距離は小さくなる。
【０００７】
つまり、見ている対象物までの距離によって瞳孔間距離が変化するため、非利き目の視線だけでは、どこを見ているか特定できない場合もある。このように、非利き目から検出した視線が全体的な視線と必ずしも一致しないことが多く、非利き目の画像を用いた視線検出の精度は高くない。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、利き目の画像の状態がよくない場合でも、視線検出の精度を向上させることができる視線検出装置、視線検出方法および視線検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する視線検出装置、視線検出方法および視線検出プログラムは、一つの態様において、利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する記憶部を有する。また、目を含んだ顔の少なくとも一部が撮影された画像である顔画像から非利き目の特徴を抽出する抽出部とを有する。さらに、前記抽出部によって抽出された非利き目の特徴に対応する利き目の特徴を前記記憶部に記憶される対応情報から特定する特定部と、前記特定部によって特定された利き目の特徴を用いて、前記顔画像の視線を検出する検出部とを有する。
【発明の効果】
【００１０】
本願の開示する視線検出装置、視線検出方法および視線検出プログラムの一つの態様によれば、利き目の画像の状態がよくない場合でも、視線検出の精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る視線検出装置を含むシステムの全体構成を示す図である。
【図２】図２は、実施例１に係る視線検出装置の構成を示す機能ブロック図である。
【図３】図３は、距離対応ＤＢに記憶される情報の例を示す図である。
【図４】図４は、対応表ＤＢに記憶される情報の例を示す図である。
【図５】図５は、利き目および非利き目の特徴点を説明する図である。
【図６】図６は、実施例１に係る視線検出処理の流れを示すフローチャートである。
【図７】図７は、非利き目の特徴点の信頼性を向上させる例を示す図である。
【図８】図８は、顔画像の移動量に基づいて非利き目の特徴を補正する情報の例を示す図である。
【図９】図９は、角膜反射像を説明する図である。
【図１０】図１０は、視線検出プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する視線検出装置、視線検出方法および視線検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
実施例１では、視線検出装置を含むシステムの全体構成、視線検出装置の機能ブロック図、処理の流れ、効果を説明する。なお、ここでは、パーソナルコンピュータなどのディスプレイを閲覧するユーザの視線を検出する例について説明するが、開示する視線検出装置の用途を限定するものではない。
【００１４】
［全体構成］
図１は、実施例１に係る視線検出装置を含むシステムの全体構成を示す図である。図１に示すように、このシステムは、表示装置１と視線検出装置１０とを有する。表示装置１は、ディスプレイやタッチパネルなどの表示部と、ユーザから取得した要求に対応する画面や後述する視線検出装置１０が検出した視線によって特定される画面を当該表示部に表示させる制御部とを有するコンピュータ装置である。
【００１５】
この表示装置１には、例えば表示部の上部など、表示部近辺にカメラ１ａが設置されている。このカメラ１ａは、表示部を閲覧するユーザの目を含んだ顔の少なくとも一部が撮影された画像である顔画像を所定間隔で撮像する撮像機である。また、カメラ１ａは、撮像した画像を内部メモリ等に保持する。
【００１６】
視線検出装置１０は、カメラ１ａによって撮像された顔画像から視線を検出する装置である。具体的には、視線検出装置１０は、利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する。そして、視線検出装置１０は、顔画像から非利き目の特徴を抽出する。続いて、視線検出装置１０は、抽出された非利き目の特徴に対応する利き目の特徴を、記憶される対応情報から特定する。そして、視線検出装置１０は、特定された利き目の特徴を用いて、顔画像の視線を検出する。
【００１７】
なお、視線検出装置１０は、顔画像から利き目の特徴情報が検出できた場合には、検出できた利き目の特徴情報を用いて、顔画像の視線を検出することもできる。そして、視線検出装置１０は、検出した視線情報を表示装置１に送信する。表示装置１は、受信した視線情報が示す表示部の位置を特定し、特定した位置に表示されるアイコン等をダブルクリックした場合と同様の処理を実行し、新たな画面等を表示部に表示する。
【００１８】
このように、視線検出装置１０は、利き目の特徴と非利き目の特徴との対応関係を保持し、顔画像から検出した非利き目の特徴から利き目の視線を推測することができる。視線検出装置１０は、利き目の特徴点が顔画像から検出できない場合、言い換えると、利き目の画像の状態がよくない場合でも、視線検出の精度を向上させることができる。
【００１９】
［視線検出装置１０の構成］
図２は、実施例１に係る視線検出装置の構成を示す機能ブロック図である。図２に示すように、この視線検出装置１０は、カメラ１１と、入力部１２と、記憶部１３と、制御部１５とを有する。ここで示した記憶部１３は、半導体メモリ素子やハードディスクなどの記憶装置である。
【００２０】
なお、ここでは、視線検出装置１０がカメラ１１を内蔵している例を図示したが、これに限定されるものではなく、カメラ１１は外部装置であってもよく、外部のカメラからネットワーク等を介して画像を取得してもよい。また、実施例１では、視線検出装置１０が検出した視線の情報を、例えば表示装置など外部の装置に送信する例について説明するが、これに限定されるものではない。例えば、視線検出装置と表示装置とが同一の筐体で実現されていてもよい。また、外部装置は、表示装置に限られず、ユーザにサービスを提供するサーバ装置や、ユーザの情報を管理する管理サーバ等であってもよい。
【００２１】
カメラ１１は、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor  Image  Sensor）やＣＣＤ（Charge  Coupled  Device  Image  Sensor）などの撮像デバイスである。また、カメラ１１は、表示装置を閲覧するユーザの目を含む顔の画像を撮影可能な位置に設けられている。また、カメラ１１は、表示装置を閲覧するユーザの目を含む顔が撮影範囲に含まれるように設置される。このカメラ１１は、１秒間に１枚など、所定の間隔でユーザの顔画像を撮像する。なお、カメラ１１は、内部メモリ等に撮像した画像を保持する。
【００２２】
入力部１２は、キーボードやマウスなどの入力装置や、外部の装置と接続するポートなどのネットワークインタフェースである。例えば、入力部１２は、カメラ１１の撮像対象となるユーザ、すなわち、視線検出の対象となるユーザから、当該ユーザを識別するユーザＩＤ等の入力を受け付けて、制御部１５に出力する。
【００２３】
記憶部１３は、制御部１５が実行するプログラム等を記憶するとともに、ユーザＩＤごとに、当該ユーザＩＤによって特定されるユーザの利き目が左であるか右かを示す情報を記憶する。この情報は、管理者やユーザによって登録される。また、記憶部１３は、距離対応ＤＢ１３ａと対応表ＤＢ１３ｂとを有する。実施例で説明する距離対応ＤＢ１３ａや対応表ＤＢ１３ｂなどのデータ構成は、あくまで例示であり、図示するものに限定するものではなく、任意に設定変更することができる。
【００２４】
距離対応ＤＢ１３ａは、ユーザＩＤごとに、顔画像から対象物までの距離を特定する情報を記憶する。なお、ここで記憶される情報は、ユーザごとに、事前に測定した情報が格納される。図３は、距離対応ＤＢに記憶される情報の例を示す図である。図３に示すように、距離対応ＤＢ１３ａは、「対象物までの距離（ｍｍ：ミリメートル）」と「目頭から瞳孔までの画素数」とを対応付けて、例えば「２５０、７、８」や「３２０、１０、１２」などと記憶する。ここで記憶される「対象物までの距離（ｍｍ）」は、ユーザの目から対象物である画像までの距離を示し、「目頭から瞳孔までの画素数」は、目頭から瞳孔の中心までの存在する画素数を示す。
【００２５】
図３の場合、利き目について目頭から瞳孔までの画素数が「７」、非利き目について目頭から瞳孔までの画素数が「８」である場合に、ユーザは、目から２５０ｍｍ先の対象物を目視していることを示す。つまり、ユーザの目と画像とが２５０ｍｍ離れていることを示す。同様に、利き目について目頭から瞳孔までの画素数が「１０」、非利き目について目頭から瞳孔までの画素数が「１２」である場合に、ユーザは、目から３２０ｍｍ先の対象物を目視していることを示す。
【００２６】
対応表ＤＢ１３ｂは、顔画像から対象物までの距離およびユーザＩＤごとに、利き目の特徴と非利き目の特徴とを対応付けた対応情報を記憶する。具体的には、対応表ＤＢ１３ｂは、非利き目がある特徴を有する場合に想定される利き目の特徴を記憶する。なお、ここで記憶される情報は、ユーザごとに、事前に測定した情報が格納される。したがって、対応表ＤＢ１３ｂに記憶される情報は、顔画像から対象物までの距離とユーザＩＤとの組み合わせによって一意に特定することができる。
【００２７】
図４は、対応表ＤＢに記憶される情報の例を示す図である。図４に示すように、対応表ＤＢ１３ｂは、「非利き目（画素数）」と「利き目（画素数）」とを対応付けて、例えば「１、１」や「４、５」などと記憶する。ここで記憶される「非利き目（画素数）」は、非利き目の目頭から瞳孔の中心までの存在する画素数を示し、「利き目（画素数）」は、利き目の目頭から瞳孔の中心までの存在する画素数を示す。
【００２８】
図４の場合、非利き目の目頭から瞳孔の中心までの画素数が「１」である場合には、利き目の目頭から瞳孔の中心までの画素数が「１」であると推測されることを示す。同様に、非利き目の目頭から瞳孔の中心までの画素数が「４」である場合には、利き目の目頭から瞳孔の中心までの画素数が「５」であると推測されることを示す。
【００２９】
制御部１５は、ＯＳ（Operating  System）などを実行するＣＰＵ（Central  Processing  Unit）などの電子回路、または、ＦＰＧＡ（Field-Programmable  Gate  Array）などの集積回路などである。この制御部１５は、距離特定部１６と目検出部１７と抽出部１８と特定部１９と視線検出部２０とを有し、これらによってユーザの視線を検出する処理部である。
【００３０】
距離特定部１６は、カメラ１１により撮像された顔画像に基づいて、顔画像から対象物までの距離を特定する処理部である。例えば、距離特定部１６は、ユーザが入力部１２にユーザＩＤを入力した際の顔画像をカメラ１１から取得する。そして、距離特定部１６は、入力部１２が受け付けたユーザＩＤによってユーザの利き目を特定する。その後、距離特定部１６は、顔画像から利き目の位置を特定し、特定した利き目の目頭から瞳孔の中心までの画素数を計測する。同様に、距離特定部１６は、顔画像から非利き目の位置を特定し、特定した非利き目の目頭から瞳孔の中心までの画素数を計測する。
【００３１】
そして、距離特定部１６は、計測して得られた利き目の「画素数」と非利き目の「画素数」との組み合わせに対応する距離を距離対応ＤＢ１３ａから特定する。こうして、距離特定部１６は、画像を目視するユーザと当該画像との距離を特定することができる。また、距離特定部１６は、特定した距離の情報を目検出部１７に出力する。
【００３２】
また、距離特定部１６は、計測した「画素数」の組み合わせに対応する距離が距離対応ＤＢ１３ａに存在しない場合には、計測した「画素数」等に対して補間処理を実行した上で、距離を特定することもできる。ここでの補間処理には、一般的なアルゴリズム、公知の補間関数等を用いることができる。
【００３３】
また、距離特定部１６は、ユーザＩＤを入力する際の顔画像以外の画像から距離を特定することもでき、ユーザの任意のタイミングで処理を実行することもできる。また、距離特定部１６は、数枚の顔画像から特定した距離の平均値を顔画像から画像までの距離とすることもできる。また、距離特定部１６は、ユーザがカメラ１１の撮像範囲に存在する間、１０秒に１回など所定間隔で顔画像から画像までの距離測定を繰り返し、ユーザの顔が画像から離れたまたはユーザの顔が画像に近づいたなど、顔画像の距離変化を追従することもできる。
【００３４】
図２に戻り、目検出部１７は、顔画像から利き目の特徴または非利き目の特徴を抽出する処理部である。例えば、目検出部１７は、人物の目の特徴を含む画像パターンを保持しており、このパターンとカメラ１１によって撮像された顔画像とをマッチングさせて、目が存在する領域を顔画像から抽出する。または、目検出部１７は、目頭や目尻といった特徴点を含む領域を顔画像から抽出する。そして、目検出部１７は、顔画像から検出した目の画像を抽出部１８に出力する。なお、距離特定部１６も、目検出部１７と同様の手法で目を検出することができる。
【００３５】
抽出部１８は、顔画像から非利き目の特徴を抽出する処理部である。例えば、抽出部１８は、入力部１２に入力されたユーザＩＤからユーザの利き目および非利き目を特定する。また、抽出部１８は、目検出部１７から取得した目の画像から、両目について目頭および目尻を抽出する。このとき、抽出部１８は、両目について、目頭から目尻間に存在する画素数を計数し、視線検出部２０に出力する。なお、記憶部１３には、ユーザＩＤと対応付けて、利き目または非利き目を特定する情報が予め格納されているものとする。例えば、利き目または非利き目を特定する情報として、左右どちらの目が利き目であるかに関する情報を用いることができる。利き目が「右」であるという情報が記憶部１３に格納されている場合、抽出部１８は、顔画像から「右」の目を利き目として、もしくは「左」の目を非利き目として特定する。
【００３６】
また、抽出部１８は、目の画像から利き目の特徴が検出できるか否かを判定する。例えば、抽出部１８は、利き目の画像中に、瞳孔と判断できる箇所が１箇所である場合には、利き目の特徴が検出できると判定する。この場合、抽出部１８は、利き目の瞳孔の中心から目頭までの画素数を利き目の画像から計測し、計測した画素数を利き目の特徴として視線検出部２０に出力する。
【００３７】
一方、抽出部１８は、瞳孔と判断できる箇所が複数箇所ある場合には、利き目の特徴が検出できないと判定する。この場合、抽出部１８は、非利き目の瞳孔の中心から目頭までの画素数を非利き目の画像から計測し、計測した画素数を非利き目の特徴として特定部１９に出力する。なお、抽出部１８は、瞳孔と判断できるが複数箇所存在するか否かとして、例えば一般的な成人の瞳孔と同程度の大きさの画像が複数存在するか否かを判定する。
【００３８】
ここで、目を含んだ顔を撮影した画像から特徴を抽出する例について説明する。図５は、利き目および非利き目の特徴点を説明する図であり、目検出部１７が顔画像から抽出した目の画像である。
【００３９】
目の画像の中で、利き目および非利き目の特徴点、すなわち瞳孔の中心を一に特定できない場合がある。例えば、影や光の反射、また眼鏡やまつげや髪の毛など目の近傍に存在する目以外の物体の影響などにより、画像上の瞳孔の近傍に瞳孔と類似した画像特徴を有する領域が生じることがある。図５に示すように、抽出部１８は、利き目の画像において瞳孔と同程度の黒い円が複数存在することを確認できるので、利き目の特徴が検出できないと判定する。すると、抽出部１８は、非利き目の画像から瞳孔、目頭、目尻を検出する。そして、抽出部１８は、抽出した目頭から瞳孔の中心までの間に存在する画素数を非利き目の画像上で計数し、計数した画素数「４」を非利き目の特徴として特定部１９に出力する。なお、瞳孔の中心とは、瞳孔の中央の位置ということに限られず、瞳孔の中心付近や瞳孔の領域の内部に位置する点など、広義の中心と解することもできる。また、抽出部１８は、同様の手法を用いて、両目について、目頭から目尻までの画素数を計数する。
【００４０】
特定部１９は、抽出部１８によって抽出された非利き目の特徴に対応する利き目の特徴を対応表ＤＢ１３ｂから特定する。例えば、特定部１９は、抽出部１８から非利き目の特徴として画素数「４」を取得した場合、対応表ＤＢ１３ｂを参照し、非利き目の特徴として画素数「４」に対応した利き目の画素数「５」を特定する。そして、特定部１９は、特定した利き目の画素数「５」を視線検出部２０に出力する。
【００４１】
視線検出部２０は、特定部１９または抽出部１８から取得した利き目の特徴を用いて、顔画像の視線を検出する処理部である。具体的には、視線検出部２０は、利き目の特徴である「画素数」を式（１）の「目頭・瞳孔間の画素数」に代入するとともに、検出部１８が検出した利き目の目頭から目尻までの画素数を「目頭・目尻間の画素数」に代入して、視線角度を算出する。そして、視線検出部２０は、算出した視線角度をユーザの視線として検出する。
視線角度＝ａｒｃｓｉｎ（（１／２−（目頭・瞳孔間の画素数）／（目頭・目尻間の画素数））×（目頭・目尻間の距離）／（眼球中心から眼球表面までの距離））・・・式（１）
【００４２】
別の手法としては、視線検出部２０は、特定部１９または抽出部１８が検出した「画素数」を距離に変換してから、視線角度を検出することもできる。一例として、両目の目頭間隔を参考にすることで、変換のためのパラメータ（以下、変換パラメータ（単位はｍｍ／ｐｉｘｅｌなど）と呼ぶ）を算出できる。なお、両目頭間の画素数は目の画像から取得することもできるが、一般的な成人の場合には個人差があるものの３３ｍｍから３４ｍｍ程度であるので、この値を用いてもよい。なお、目頭間の距離に限らず、他の特徴量を使用して変換パラメータを算出することもできる。
【００４３】
具体的には、視線検出部２０は、目検出部１７が目を検出した顔画像から「両目頭間に存在する画素数」を計測する。そして、視線検出部２０は、計測した「両目頭間に存在する画素数」を式（２）の「両目頭間の画素数」に代入するとともに、規定値である「３３」を式（２）の「目頭間の距離」に代入して、「変換パラメータ」を算出する。
変換パラメータ＝（目頭間の距離）／（両目頭間の画素数）・・・式（２）
【００４４】
その後、視線検出部２０は、特定部１９が特定した「利き目の画素数」と「変換パラメータ」とを乗算して、「目頭・瞳孔間の距離」を算出する。同様に、視線検出部２０は、抽出部１８が抽出した利き目の「目頭から目尻までの画素数」と「変換パラメータ」とを乗算して、「目頭・目尻間の距離」を算出する。そして、視線検出部２０は、算出したこれらの距離各々を式（３）に代入することで、視線角度を算出することもできる。
視線角度＝ａｒｃｓｉｎ（（１／２−（目頭・瞳孔間の距離）／（目頭・目尻間の距離））×（目頭・目尻間の距離）／（眼球中心から眼球表面までの距離））・・・式（３）
【００４５】
［処理の流れ］
次に、実施例１に係る視線検出装置１０が実行する処理の流れについて説明する。図６は、実施例１に係る視線検出処理の流れを示すフローチャートである。
【００４６】
図６に示すように、視線検出装置１０の抽出部１８は、入力部１２によってユーザＩＤが受け付けられると（Ｓ１０１肯定）、受け付けたユーザＩＤからユーザを特定する（Ｓ１０２）。すなわち、検出部１６は、記憶部１３に記憶される情報から、ユーザＩＤからユーザの利き目および非利き目を特定する。
【００４７】
続いて、距離特定部１６は、カメラ１１が撮像した顔画像を取得すると（Ｓ１０３肯定）、当該顔画像から画像までの距離を算出する（Ｓ１０４）。そして、抽出部１８は、距離特定部１６が算出した距離およびユーザＩＤに対応する対応表を対応表ＤＢ１３ｂから特定する（Ｓ１０５）。
【００４８】
その後、目検出部１７は、カメラ１１が撮像した顔画像から目の領域、すなわち、目の画像を抽出する（Ｓ１０６）。なお、目の画像を抽出することなく、顔画像を用いて後述する処理を実行することもできる。
【００４９】
続いて、抽出部１８は、目検出部１７が抽出した目の画像から利き目の特徴を抽出できるか否かを判定する（Ｓ１０７）。そして、抽出部１８が利き目の特徴を抽出できた場合（Ｓ１０７肯定）、視線検出部２０は、抽出された利き目の特徴を用いて視線を検出して処理を終了する（Ｓ１０８）。
【００５０】
一方、抽出部１８は、目の画像から利き目の特徴を抽出できない場合（Ｓ１０７否定）、当該目の画像から非利き目の特徴を抽出する（Ｓ１０９）。続いて、特定部１９は、抽出部１８が抽出した非利き目の特徴に基づいて、対応表ＤＢ１３ｂから利き目の特徴を特定する（Ｓ１１０）。すなわち、特定部１９は、抽出部１８が抽出した非利き目の特徴に基づいて、利き目の特徴を推定する。その後、視線検出部２０は、抽出された利き目の特徴を用いて視線を検出して処理を終了する（Ｓ１１１）。
【００５１】
なお、距離特定部１６が定期的に距離を測定し、測定した距離に変化が生じた場合、Ｓ１０４およびＳ１０５を実行し、視線検出に用いる対応表を距離に応じたものに交換することで、距離の変化に追従することもできる。
【００５２】
［実施例１による効果］
実施例１によれば、視線検出装置１０は、顔画像からユーザの利き目の特徴が検出できた場合には、利き目の特徴を用いて視線を検出する。一方、視線検出装置１０は、顔画像からユーザの利き目の特徴が検出できない場合には、非利き目の特徴を検出し、検出した非利き目の特徴から推定できる利き目の特徴を用いて視線を検出する。
【００５３】
したがって、精度の高い遠近感や奥行きを感じ取るために、対象物の近くに視線を向ける形になる「非利き目の状態」から視線を検出するのではなく、「非利き目の状態」から推定される「利き目の状態」に基づいて視線を検出する。このように、視線検出装置１０は、「非利き目の状態」から視線を検出せずに、推定した「利き目の状態」から視線を検出するので、利き目の画像の状態がよくない場合でも、視線検出の精度を向上させることができる。
【実施例２】
【００５４】
ところで、実施例１では、非利き目の特徴から推定した利き目の特徴を用いて視線を検出する例について説明したが、開示する視線検出装置はこれに限定されるものではない。例えば、非利き目の特徴と利き目の特徴とを組み合わせることで、より精度の高い視線検出を実行することもできる。
【００５５】
そこで、実施例２では、非利き目の特徴と利き目の特徴とを組み合わせて、より精度の高い視線検出を実行する例について説明する。図７は、非利き目の特徴点の信頼性を向上させる例を示す図である。なお、ここで、利き目の画像から瞳孔が一意に特定できない例について説明する。
【００５６】
図７に示すように、抽出部１８は、利き目の画像から瞳孔と判断される領域Ａ、領域Ｂ、領域Ｃを特定する。例えば、抽出部１８は、ユーザおよび対象物まで距離ごとに、ユーザの瞳孔の大きさを保持しておき、保持する瞳孔と同程度の大きさの領域を特定する。そして、抽出部１８は、各領域と目頭間の画素数を計測する。さらに、抽出部１８は、各領域ごとに、領域の大きさと予め保持する瞳孔の大きさとを比較して、瞳孔の尤もらしさ（信頼度）を算出する。
【００５７】
同様の手法で、抽出部１８は、非利き目の画像から瞳孔と判断される領域Ｄを特定し、領域Ｄと目頭間の画素数を計測する。さらに、抽出部１８は、領域Ｄの大きさと予め保持する瞳孔の大きさとを比較して、瞳孔の尤もらしさ（信頼度）を算出する。
【００５８】
その後、抽出部１８は、鏡対称のように目の画像の中心を境にして、利き目の画像および非利き目の画像を重ねる。こうして、抽出部１８は、図７に示すように、それぞれの目の画像から算出した、瞳孔の尤もらしさを重畳することができる。そして、抽出部１８は、最も尤もらしさが大きい点から目頭までの画素数を「非利き目の特徴」とする。なお、「非利き目の特徴」を用いて視線検出するまでの処理は、実施例１と同様なので、ここでは省略する。
【００５９】
一般的に、利き目と非利き目の視線を組み合わせることで全体の視線が特定される。実施例２に係る視線検出装置１０は、瞳孔が正確に検出できない利き目の情報と、瞳孔が検出できる非利き目の情報と組み合わせるので、抽出できる非利き目の情報の信頼度を向上させることができる。この結果、視線検出装置１０は、より精度の高い視線検出を実行することができる。
【実施例３】
【００６０】
例えば、開示する視線検出装置は、カメラ１１が撮像する画像の変化量から、ユーザの顔が移動したことを検出した場合に、顔移動時の視線補正を実行することもできる。図８は、顔画像の移動量に基づいて非利き目の特徴を補正する情報の例を示す図である。視線検出装置は、図８に示すように、「顔の移動量（画素数）、補正量（画素数）」として「−１５０、−３」や「１００、２」などと記憶する。なお、単位はｐｉｘｅｌでもよい。
【００６１】
ここで記憶される「顔の移動量（画素数）」は、前回の顔画像から現在視線検出対象となっている顔画像とを比較した場合の移動量であり、両顔画像を比較することで算出することができる。例えば、「−」は左方向への移動を示し、「＋」は右方向への移動を示す。また、「補正量（画素数）」は、非利き目の特徴を補正する値を示す。
【００６２】
例えば、図８の場合、特定部１９は、左方向に１５０ピクセル移動した場合には、抽出部１８が抽出した「非利き目の画素数」を「−３」した値を、補正後の「非利き目の画素数」として視線検出処理を実行する。
【００６３】
また、図８では、顔の移動量に対応付けて「非利き目の特徴を補正する」情報を記憶する例について説明したが、これに限定されるものではなく、特定された「利き目の特徴を補正する」情報を記憶することもできる。この場合、例えば、視線検出部２０は、左方向に１５０ピクセル移動した場合には、対応表ＤＢ１３ｂから特定された「利き目の画素数」を「−３」した値を、補正後の「利き目の画素数」として視線検出処理を実行する。
【００６４】
このようにすることで、視線検出装置は、ユーザの顔が移動した場合でも追従することができるので、顔の移動に伴う精度の劣化を防止し、高い精度で視線を検出することができる。また、図８では、顔が左右に移動した場合の例を説明したが、顔が上下に移動した場合についても同様の補正をすることができる。例えば、図８に対して、顔の左右の移動量と上下の移動量各々のカラムを設けて、「＋」が左または上方向、「−」が右または下方向とし、それぞれに補正量を設定しておくようにすればよい。なお、図８、図３、図５の情報は、キャリブレーション等を行って校正しておいてもよい。
【実施例４】
【００６５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００６６】
（角膜反射像を用いる場合）
例えば、上述した実施例では、目頭から瞳孔の中心までの画素数を特徴として抽出する例について説明したが、これに限定されるものではない。例えば、視線検出装置は、目に映る角膜反射像を用いて、利き目または非利き目の特徴を抽出することもできる。図９は、角膜反射像を説明する図である。図９に示すように、視線検出装置は、瞳孔の中心から角膜反射像までの画素数として、「瞳孔・反射間距離１」と「瞳孔・反射間距離２」とを抽出する。
【００６７】
そして、視線検出装置は、式（２）で算出した「変換パラメータ」を用いた式（４）の「瞳孔・角膜反射像の画素数」に、上記「瞳孔・反射間距離１」または「瞳孔・反射間距離１」を代入することで、視線角度を算出することができる。
視線角度＝ａｒｃｓｉｎ（（瞳孔・角膜反射像の画素数×変換パラメータ）／（角膜曲率半径））・・・式（４）
【００６８】
（利用形態）
開示する視線検出装置が利用できるサービス形態の例としては、工場における熟練者の視線を検出して蓄積することで、作業履歴等では得ることのできない熟練者のノウハウを蓄積することができる。また、開示する視線検出装置を車載装置として車両に搭載することで、運転者の視線を随時検出し、居眠りやわき見運転を検出してアラームを報知したりすることで、安全運転を提供するのに役立てることもできる。
【００６９】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７１】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【００７２】
図１０は、視線検出プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１０に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、表示装置１０４、通信インタフェース１０５、媒体読み取り装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１０に示した各部は、バス１０１で相互に接続される。
【００７３】
入力装置１０３は、マウスやキーボードであり、表示装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、視線検出プログラム１０７ａとともに、図３や図４等に示した各テーブル等に記憶される情報を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【００７４】
ＣＰＵ１０２は、視線検出プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図２等で説明した各機能を実行する視線検出プロセス１０８ａを動作させる。すなわち、視線検出プロセス１０８ａは、図２に記載した距離特定部１６、目検出部１７、抽出部１８、特定部１９、視線検出部２０と同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することで視線検出方法を実行する情報処理装置として動作する。
【００７５】
例えば、コンピュータ１００は、媒体読み取り装置１０６によって記録媒体から視線検出プログラムを読み出し、読み出された視線検出プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７６】
１  表示装置
１ａ  カメラ
１０  視線検出装置
１１  カメラ
１２  入力部
１３  記憶部
１３ａ  距離対応ＤＢ
１３ｂ  対応表ＤＢ
１５  制御部
１６  距離特定部
１７  目検出部
１８  抽出部
１９  特定部
２０  視線検出部
【図１】
0005765015.tif 000002
【図２】
0005765015.tif 000003
【図３】
0005765015.tif 000004
【図４】
0005765015.tif 000005
【図５】
0005765015.tif 000006
【図６】
0005765015.tif 000007
【図７】
0005765015.tif 000008
【図８】
0005765015.tif 000009
【図９】
0005765015.tif 000010
【図１０】
0005765015.tif 000011