(57)【要約】【課題】  人物の視線を精度良く検出することを目的とする。【解決手段】  被写体の撮影時における撮像部の状態を示す情報を取得する取得部と、取得した情報に基づいて撮像部により撮影された画像が撮像部のぶれによるボケを含むか否かを判定する判定部と、判定部によりボケがないと判定された画像を用いて、撮影された被写体の視線を検出する検出部と、を有する。【選択図】    図１
2015000156.tif 000002
【特許請求の範囲】
【請求項１】
被写体の撮影時における撮像部の状態を示す情報を取得する取得部と、
取得した前記情報に基づいて前記撮像部により撮影された画像が前記撮像部のぶれによるボケを含むか否かを判定する判定部と、
前記判定部によりボケがないと判定された画像を用いて、撮影された前記被写体の視線を検出する検出部と、
を備えることを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置において、
前記取得部は、前記端末装置の姿勢を示す情報を前記撮像部の状態を示す情報として取得し、
前記判定部は、前記姿勢を示す情報において示される前記姿勢の変化の大きさが所定値以上の場合、前記撮像部により撮影された画像がボケを含むと判定する
ことを特徴とする端末装置。
【請求項３】
請求項１に記載の端末装置において、
前記取得部は、前記撮像部により前記被写体を連続して撮影することで生成される複数の画像のうちの第１の画像と前記第１の画像より前に撮影された第２の画像とのそれぞれに含まれる各画素に対応して抽出した前記第１の画像の特徴量と前記第２の画像の特徴量との差分が所定の閾値以上となる画素が分布する画像領域の大きさを、前記撮像部の状態を示す情報として取得し、
前記判定部は、前記画像領域の大きさが所定値以上の場合に、前記第１の画像がボケを含むと判定する
ことを特徴とする端末装置。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の端末装置において、
前記撮像部により前記被写体を連続して撮影することで生成された複数の画像のうちの第１の画像がボケを含み、前記第１の画像より前に撮影された第２の画像がボケを含まないと前記判定部により判定された場合、前記第１の画像と前記第２の画像との比較に基づいて、前記第１の画像における前記被写体の位置を特定する特定部を備えることを特徴とする端末装置。
【請求項５】
被写体の撮影時における撮像部の状態を示す情報を取得し、
取得した前記情報に基づいて前記撮像部により撮影された画像が前記撮像部のぶれによるボケを含むか否かを判定し、
前記判定の処理により前記ボケがないと判定された画像を用いて、撮影された前記被写体の視線を検出する、
処理をコンピュータに実行させる視線検出プログラム。
【請求項６】
被写体の撮影時における撮像部の状態を示す情報を取得し、
取得した前記情報に基づいて前記撮像部により撮影された画像が前記撮像部のぶれによるボケを含むか否かを判定し、
前記判定の処理により前記ボケがないと判定された画像を用いて、撮影された前記被写体の視線を検出する、
ことを特徴とする視線検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人物の視線を検出する端末装置、視線検出プログラムおよび視線検出方法に関する。
【背景技術】
【０００２】
従来、カメラにより撮影された画像から人物の視線を検出し、検出した視線の動きに基づいて、コンピュータ等を操作し、あるいは自動車等を運転する人物の状態を検出する技術が提案されている（例えば、特許文献１，２参照）。この種の技術では、視線の検出に使用されるカメラは、コンピュータや自動車等に固定して配置される場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６８１６４号公報
【特許文献２】特開２０１１−９０７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、カメラ機能を含むスマートフォンやタブレット型端末等は、人物に持たれて操作されるため、手ぶれ等により撮影された画像がボケる場合があり、撮影された画像から視線の検出が困難となる場合がある。
【０００５】
１つの側面では、本発明は、人物の視線を精度良く検出することを目的とする。
【課題を解決するための手段】
【０００６】
一つの観点によれば、端末装置は、被写体の撮影時における撮像部の状態を示す情報を取得する取得部と、取得した情報に基づいて撮像部により撮影された画像が撮像部のぶれによるボケを含むか否かを判定する判定部と、判定部によりボケがないと判定された画像を用いて、撮影された被写体の視線を検出する検出部と、を有する。
【０００７】
別の観点によれば、視線検出プログラムは、被写体の撮影時における撮像部の状態を示す情報を取得し、取得した情報に基づいて撮像部により撮影された画像が撮像部のぶれによるボケを含むか否かを判定し、判定の処理によりボケがないと判定された画像を用いて、撮影された被写体の視線を検出する、処理をコンピュータに実行させる。
【０００８】
また、別の観点によれば、視線検出方法は、被写体の撮影時における撮像部の状態を示す情報を取得し、取得した情報に基づいて撮像部により撮影された画像が撮像部のぶれによるボケを含むか否かを判定し、判定の処理によりボケがないと判定された画像を用いて、撮影された被写体の視線を検出する。
【発明の効果】
【０００９】
人物の視線を精度良く検出できる。
【図面の簡単な説明】
【００１０】
【図１】端末装置の一実施形態を示す図である。
【図２】図１に示す撮像部の撮影により生成された画像の一例を示す図である。
【図３】図１に示した端末装置における被写体の視線の検出処理の例を示す図である。
【図４】端末装置の別実施形態を示す図である。
【図５】図４に示した端末装置における被写体の視線の検出処理の例を示す図である。
【図６】端末装置の別実施形態を示す図である。
【図７】図６に示した端末装置における被写体の視線の検出処理の例を示す図である。
【図８】端末装置の別実施形態を示す図である。
【図９】図８に示した端末装置における被写体の視線の検出処理の例を示す図である。
【図１０】図６および図８に示す端末装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、端末装置の一実施形態を示す。
【００１３】
図１に示す端末装置１００は、例えば、スマートフォンやタブレット型端末等の携帯端末であり、撮像部１０、光源１５、取得部２０、判定部３０および検出部４０を有する。なお、図１に示す端末装置１００は、光源１５を含むが、光源１５を含まなくてもよい。
【００１４】
撮像部１０は、例えば、レンズと、ＣＣＤ（Charge-Coupled Device）またはＣＭＯＳ（Complementary Metal-Oxide Semiconductor）等の撮像素子とを含むカメラである。例えば、撮像部１０は、赤外線を射出するＬＥＤ（Light Emitting Diode）等の光源１５に、手に持った端末装置１００を操作するユーザＰ１に赤外線を照射させる。撮像部１０は、赤外線で照明されたユーザＰ１を撮影することで画像を生成する。撮像部１０は、生成した画像を判定部３０に出力する。ここで、撮像部１０が生成する画像は、静止画像または動画の各フレームである。また、ユーザＰ１は、被写体の一例である。
【００１５】
なお、撮像部１０は、光源１５に、赤外線をユーザＰ１に照射させてユーザＰ１を撮影したが、光源１５に赤外線を照射させることなくユーザＰ１を撮影してもよい。また、撮像部１０は、端末装置１００に配置されたが、これに限定されない。例えば、撮像部１０は、端末装置１００の外部に、端末装置１００との位置関係が固定されて配置されてもよい。この場合、撮像部１０は、端末装置１００が内蔵するＵＳＢ（Universal Serial Bus）規格等のインタフェースを介して、端末装置１００に接続され、端末装置１００を操作するユーザＰ１を撮影するのが好ましい。
【００１６】
取得部２０は、被写体の撮影時における撮像部１０の状態を示す情報を取得する。例えば、取得部２０は、ジャイロセンサを含み、端末装置１００の姿勢の変化を示す角速度等のパラメータを検出する。取得部２０は、検出したパラメータの値を、撮影時における撮像部１０の状態を示す情報として判定部３０に出力する。なお、取得部２０は、端末装置１００の姿勢の変化を示す角速度等のパラメータを検出したが、これに限定されない。例えば、取得部２０は、端末装置１００の姿勢を示す傾き角を検出し、撮影前後における傾き角の変化量を撮影時における撮像部１０の状態を示す情報として判定部３０に出力してもよい。また、取得部２０は、加速度センサを含み、加速度センサにより端末装置１００の加速度を検出し、撮影時における撮像部１０の状態を示す情報として判定部３０に出力してもよい。
【００１７】
例えば、判定部３０は、取得部２０から受信した角速度の大きさに基づいて、撮像部１０により撮影された画像が撮像部１０のぶれによるボケを含むか否かを判定する。判定部３０は、例えば、角速度の大きさが閾値α以上の場合、ユーザＰ１による手ぶれ等により、撮影された画像はボケを含む画像と判定する。そして、判定部３０は、例えば、ボケを含むと判定した画像を破棄する。一方、判定部３０は、角速度の大きさが閾値αより小さい場合、撮影された画像にボケがないと判定し、画像を検出部４０へ出力する。
【００１８】
なお、閾値αは、検出部４０に要求される視線検出の精度が得られる許容範囲内で、設計段階や製造段階等の実験により決定される角速度の大きさに設定されることが好ましい。また、椅子等に座ってユーザＰ１が端末装置１００を操作する場合と、バスや電車等の車中でユーザＰ１が端末装置１００を操作する場合とで、取得部２０が取得する角速度の大きさは異なる。そこで、ユーザＰ１が、端末装置１００を操作する環境を、端末装置１００に設けられたキーボードやタッチパネル等を用いて選択することで、環境に対応する閾値αを適宜設定してもよい。
【００１９】
検出部４０は、判定部３０によりボケがないと判定された画像を受信し、ユーザＰ１の視線を検出する。検出部４０の動作については、図２を参照し説明する。
【００２０】
図２は、図１に示す撮像部１０の撮影により生成された画像の一例を示す。図２（ａ）は、端末装置１００を操作するユーザＰ１が被写体として撮像部１０によって撮影された画像５０の例を示す。図２（ｂ）は、図２（ａ）に示す画像５０において、ユーザＰ１の目（例えば、右目）を含む領域６０の例を示す。
【００２１】
検出部４０は、例えば、図２（ａ）に示すように、判定部３０より受信した画像５０からユーザＰ１の顔を含む領域５１を検出する。例えば、検出部４０は、画像５０において、輝度の不連続な変化を示すエッジ等の特徴点を抽出し、抽出した特徴点の分布に基づいて眉，目，鼻，唇等の各端点を特定する。そして、検出部４０は、特定した各端点の位置に基づいて領域５１を検出する。あるいは、検出部４０は、顔画像のテンプレートと、受信した画像５０との相関を求め、求めた相関係数が所定の値以上となる画像領域を領域５１として検出してもよい。例えば、顔画像のテンプレートは、端末装置１００が内蔵するＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等に予め記憶される。
【００２２】
また、検出部４０は、領域５１の抽出時に特定した目の端点等の情報に基づいて、領域５１から目を含む領域６０および目の輪郭６１を検出する。そして、検出部４０は、検出した輪郭６１内の画像領域において、例えば、エッジ等の特徴点が円形状に分布し、円形状の領域の輝度値が周囲の領域の輝度値より低い領域を、瞳孔６２および虹彩６３を含む領域６４として検出する。検出部４０は、検出した領域６４から瞳孔６２の中心位置を求める。また、検出部４０は、光源１５から照射された赤外線がユーザＰ１の目の角膜で反射した箇所を示す輝点を、領域６４において所定の閾値以上の輝度値を有し、かつ円形の形状を有する角膜による光源１５の反射像６５として検出する。そして、検出部４０は、例えば、角膜反射法に基づいて、求めた瞳孔６２の中心位置と検出した反射像６５との間の距離と、予め設定された角膜の曲率半径とに基づいてユーザＰ１の視線方向を検出する。
【００２３】
なお、検出部４０は、輪郭６１におけるエッジ等の特徴点に基づいて、瞳孔６２および虹彩６３を含む領域６４を検出したが、これに限定されない。例えば、検出部４０は、端末装置１００が内蔵するＥＥＰＲＯＭ等に予め記憶された瞳の領域のテンプレートと、検出した輪郭６１の画像領域との相関を求め、求めた相関係数が所定の閾値を超える画像領域を領域６４として検出してもよい。
【００２４】
また、検出部４０は、赤外線でユーザＰ１を照明した状態で撮影された画像５０を用いてユーザＰ１の視線を検出したが、これに限定されない。例えば、撮像部１０は、太陽光等の可視光で照明されたユーザＰ１を撮影することで可視光領域に含まれる色の情報を含む画像を生成し、検出部４０は、可視光領域に含まれる色の情報を含む画像からユーザＰ１の視線を検出してもよい。この場合、様々な方向に視線を向けている状態で撮影された画像のそれぞれから抽出した領域６０の画像データが、内蔵するＥＥＰＲＯＭ等に予め記憶されているのが好ましい。そして、検出部４０は、撮像部１０で撮影された可視光の画像と、予め記憶された複数の画像データとの比較からユーザＰ１の視線を検出する。
【００２５】
また、図２に示す領域６０は、右目の領域としたが、これに限定されず、左目の領域でもよい。
【００２６】
図３は、図１に示した端末装置１００における被写体の視線の検出処理の例を示す。ステップＳ１０，Ｓ１１，Ｓ１２およびＳ１３は、端末装置１００の動作を示すとともに、視線検出プログラムおよび視線検出方法の例を示す。例えば、図３に示す処理は、端末装置１００に搭載されるプロセッサがプログラムを実行することにより実行される。なお、図３に示す処理は、端末装置１００に搭載されるハードウェアにより実行されてもよい。
【００２７】
ステップＳ１０において、撮像部１０は、光源１５に、手に持った端末装置１００を操作するユーザＰ１に赤外線を照射させ、ユーザＰ１を撮影し画像を生成する。撮像部１０は、生成した画像を判定部３０に出力する。
【００２８】
次に、ステップＳ１１において、取得部２０は、撮像部１０の撮影動作時における端末装置１００の姿勢の変化を示す角速度等のパラメータを検出する。取得部２０は、検出したパラメータを撮影時における撮像部１０の状態を示す情報として取得する。取得部２０は、取得した情報を判定部３０に出力する。
【００２９】
次に、ステップＳ１２において、判定部３０は、取得部２０から受信した情報に基づいて、ステップＳ１０で撮影された画像が撮像部１０のぶれによるボケを含むか否かを判定する。例えば、判定部３０は、ステップＳ１１で取得された角速度の大きさが閾値α以上の場合、ユーザＰ１による手ぶれ等により、ステップＳ１０で撮影された画像がボケを含むと判定する。そして、判定部３０は、画像がボケを含むと判定した場合（ＹＥＳ）、一連の処理を終了する。一方、判定部３０は、ステップＳ１１で取得された角速度の大きさが閾値αより小さい場合、ステップＳ１０で撮影された画像がボケを含まないと判定する。そして、判定部３０は、画像がボケを含まないと判定した場合（ＮＯ）、画像を検出部４０へ出力し、処理をステップＳ１３に移行する。
【００３０】
ステップＳ１３において、検出部４０は、判定部３０によりボケがないと判定された画像を受信し、被写体であるユーザＰ１の視線を検出する。
【００３１】
以上、この実施形態では、取得部２０は、端末装置１００の姿勢を示すパラメータを検出し、検出したパラメータを撮影時における撮像部１０の状況を示す情報として取得する。判定部３０は、取得した情報に基づいて撮像部１０により撮影された画像が撮像部１０のぶれによるボケを含むか否かを判定し、ボケがないと判定した画像を検出部４０に選択的に出力する。検出部４０は、端末装置１００がユーザＰ１の手に持って操作される場合であっても、ボケがないと判定した画像を受けることから、目の領域６０から角膜による光源１５の反射像６５を高い精度で検出することができる。これにより、検出部４０は、人物の視線を精度良く検出することができる。
【００３２】
なお、端末装置１００は、スマートフォンやタブレット型端末としたが、これに限定されない。端末装置１００は、カーナビゲーション等の車載用の端末装置でもよい。この場合、例えば、判定部３０は、自動車が走行時の振動により、撮像部１０により撮影された画像がボケを含むか否かを判定し、ボケがないと判定した画像を検出部４０に選択的に出力する。これにより、検出部４０は、ボケがある画像を含めて視線の検出を行った場合に比べて、被写体である運転手等の視線を精度良く検出することができる。
【００３３】
図４は、端末装置の別実施形態を示す。図４に示す端末装置１００ａは、例えば、スマートフォンやタブレット型端末等の携帯端末である。なお、図４に示す端末装置１００ａの各要素のうち、図１に示す要素と同一または同等の機能を有するものについては、同一の符号を付し説明を省略する。
【００３４】
撮像部１０ａは、例えば、レンズとＣＣＤまたはＣＭＯＳ等の撮像素子とを含むカメラである。例えば、撮像部１０ａは、光源１５に、手に持った端末装置１００ａを操作するユーザＰ１に赤外線の光を照射させ、毎秒数コマから数十コマ等の所定のフレームレートで連続してユーザＰ１を撮影することで動画の各フレームを生成する。撮像部１０ａは、生成した各フレームを取得部２０ａと判定部３０ａとに順次に出力する。なお、撮像部１０ａは、光源１５に赤外線をユーザＰ１に照射させてユーザＰ１を撮影したが、光源１５に赤外線を照射させることなくユーザＰ１を撮影してもよい。また、撮像部１０ａは、端末装置１００ａに配置されたが、これに限定されない。例えば、撮像部１０ａは、端末装置１００ａの外部に、端末装置１００ａとの位置関係が固定されて配置されてもよい。この場合、撮像部１０ａは、端末装置１００ａが内蔵するＵＳＢ規格等のインタフェースを介して、端末装置１００ａに接続され、端末装置１００ａを操作するユーザＰ１を撮影するのが好ましい。
【００３５】
取得部２０ａは、被写体の撮影時における撮像部１０ａの状態を示す情報を取得する。例えば、取得部２０ａは、撮像部１０ａにより撮影された最新のフレームを順次に受信し、受信した最新のフレームと、最新のフレームより前に撮影され受信したフレームとからエッジの特徴を示すエッジ情報や輝度等をそれぞれ抽出する。以下、最新のフレームを現在のフレームとも称し、最新のフレームより前に撮影されたフレームを過去のフレームとも称する。現在のフレームは、第１の画像の一例であり、過去のフレームは、第２の画像の一例である。また、エッジ情報および輝度は、特徴量の一例である。
【００３６】
例えば、取得部２０ａは、現在のフレームと過去のフレームとのそれぞれに含まれる各画素に対応して抽出した現在のフレームの特徴量と過去のフレームの特徴量との差分を算出し、算出した特徴量の差分が所定の閾値以上となる画素が分布する画像領域を求める。取得部２０は、求めた画像領域の大きさを撮影時における撮像部１０ａの状態を示す情報として判定部３０に出力する。
【００３７】
ここで、取得部２０ａが、求めた画像領域の大きさを撮影時における撮像部１０ａの状態を示す情報とすることについて説明する。例えば、ユーザＰ１による手ぶれ等の影響がない場合、撮像部１０ａにより撮影された現在のフレームは、過去のフレームと同一または同様の画像となる。つまり、現在のフレームと過去のフレームとにおける特徴量の分布は同様であり、現在のフレームと過去のフレームとの特徴量の差分を求めた場合、所定の閾値より小さな値となる画素の方が所定の閾値以上となる画素より多くなる。一方、例えば、ユーザＰ１による手ぶれ等の影響により、現在のフレームがボケを含む場合、現在のフレームと過去のフレームとにおける特徴量の分布が異なる。つまり、現在のフレームがボケを含む場合、現在のフレームと過去のフレームとの特徴量の差分を求めると、差分が所定の閾値以上となる画素の数が、ユーザＰ１による手ぶれ等の影響がない場合と比べて増加する。すなわち、ユーザＰ１による手ぶれ等の影響の大きさに応じて、差分が所定の閾値以上となる画素が分布する画像領域の大きさが変化することから、取得部２０ａは、求めた画像領域の大きさを撮影時における撮像部１０ａの状態を示す情報とする。
【００３８】
なお、取得部２０ａは、差分が所定の閾値以上となる画素が分布する画像領域の大きさを撮影時における撮像部１０ａの状態を示す情報としたが、差分が所定の閾値以上となる画素数を撮影時における撮像部１０ａの状態を示す情報としてもよい。
【００３９】
また、所定の閾値は、検出部４０に要求される視線検出の精度が得られる範囲内で、設計段階や製造段階等の実験により決定され設定されることが好ましい。
【００４０】
例えば、判定部３０ａは、撮像部１０ａから現在のフレームを受信するとともに、取得部２０ａから、現在のフレームが撮影された際の撮像部１０ａの状態を示す情報として求められた画像領域の大きさを受信する。判定部３０ａは、取得部２０ａから受信した画像領域の大きさに基づいて、撮像部１０ａにより撮影された現在のフレームが撮像部１０ａのぶれによるボケを含むか否かを判定する。例えば、判定部３０ａは、受信した画像領域の大きさが閾値β以上の場合、ユーザＰ１による手ぶれ等により、現在のフレームはボケを含む画像と判定する。そして、判定部３０ａは、例えば、ボケを含むと判定した現在のフレームを破棄する。一方、判定部３０ａは、画像領域の大きさが閾値βより小さい場合、現在のフレームはボケがないと判定し、現在のフレームを検出部４０へ出力する。
【００４１】
なお、閾値βは、検出部４０に要求される視線検出の精度が得られる範囲内で、設計段階や製造段階等の実験により決定され設定されることが好ましい。また、椅子等に座ってユーザＰ１が端末装置１００ａを操作する場合と、バスや電車等の車中でユーザＰ１が端末装置１００ａを操作する場合とで、取得部２０ａが取得する画像領域の大きさは異なる。そこで、ユーザＰ１が、端末装置１００ａを操作する環境を、端末装置１００ａに設けられたキーボードやタッチパネル等を用いて選択することで、環境に対応する閾値βを適宜設定してもよい。
【００４２】
また、判定部３０ａは、受信した画像領域の大きさと閾値βとの比較から、受信した現在のフレームがボケを含むか否かを判定したが、これに限定されない。例えば、取得部２０ａは、検出部４０と同様に、受信した現在のフレームからユーザＰ１の所定の部位である瞳の領域６４や反射像６５を検出し、検出した領域６４や反射像６５の形状を求める。取得部２０ａは、画像がボケを含まない場合に領域６４や反射像６５が示す円形等の形状に対する、求めた領域６４や反射像６５が示す楕円等の形状の歪んだ度合いを示す歪み量を撮影時における撮像部１０ａの状態を示す情報として取得する。そして、判定部３０ａは、求めた歪み量と所定の値との比較に基づいて、現在のフレームがボケを含むか否かを判定してもよい。
【００４３】
図５は、図４に示した端末装置１００ａにおける被写体の視線の検出処理の例を示す。ステップＳ２０，Ｓ２１，Ｓ２２およびＳ２３は、端末装置１００ａの動作を示すとともに、視線検出プログラムおよび視線検出方法の例を示す。例えば、図５に示す処理は、端末装置１００ａに搭載されるプロセッサがプログラムを実行することにより実行される。なお、図５に示す処理は、端末装置１００ａに搭載されるハードウェアにより実行されてもよい。また、図５に示す処理は、撮像部１０ａが、ユーザＰ１を所定のフレームレートで撮影することで生成されるフレームごとに繰り返し実行されることが好ましい。
【００４４】
ステップＳ２０において、撮像部１０ａは、光源１５に、手に持って端末装置１００ａを操作するユーザＰ１に赤外線を照射させ、所定のフレームレートでユーザＰ１を撮影することでフレームを生成する。撮像部１０ａは、生成したフレームを現在のフレームとして取得部２０ａと判定部３０ａとに順次に出力する。
【００４５】
次に、ステップＳ２１において、取得部２０ａは、撮像部１０ａから現在のフレームを受信し、現在のフレームと現在のフレームより前に撮影された過去のフレームとからエッジ情報や輝度等の特徴量を抽出する。取得部２０ａは、現在のフレームと過去のフレームとのそれぞれに含まれる各画素に対応して抽出した現在のフレームの特徴量と過去のフレームの特徴量との差分を算出し、算出した特徴量の差分が所定の閾値以上となる画素が分布する画像領域を求める。取得部２０ａは、求めた画像領域の大きさを撮影時における撮像部１０ａの状態を示す情報として判定部３０ａに出力する。
【００４６】
次に、ステップＳ２２において、判定部３０ａは、取得部２０ａから受信した情報に基づいて、ステップＳ２０で撮影された現在のフレームが撮像部１０ａのぶれによるボケを含むか否かを判定する。例えば、判定部３０ａは、ステップＳ２１で取得された画像領域の大きさが閾値β以上の場合、ユーザＰ１による手ぶれ等により、ステップＳ２０で撮影された現在のフレームはボケを含むと判定する。そして、判定部３０ａは、現在のフレームがボケを含むと判定した場合（ＹＥＳ）、一連の処理を終了する。一方、判定部３０ａは、ステップＳ２１で取得された画像領域の大きさが閾値βより小さい場合、ステップＳ２０で撮影された現在のフレームがボケを含まないと判定する。そして、判定部３０ａは、現在のフレームがボケを含まないと判定した場合（ＮＯ）、現在のフレームを検出部４０へ出力し、処理をステップＳ２３に移行する。
【００４７】
ステップＳ２３において、検出部４０は、判定部３０ａによりボケがないと判定された現在のフレームを受信し、被写体であるユーザＰ１の視線を検出する。
【００４８】
以上、この実施形態では、取得部２０ａは、現在のフレームと過去のフレームとから抽出されるエッジ情報や輝度等の特徴量の差分に基づいて、撮影時における撮像部１０ａの状況を示す情報を取得する。判定部３０ａは、取得した情報に基づいて撮像部１０ａにより撮影されたフレームがボケを含むか否かを判定し、ボケがないと判定したフレームを検出部４０に選択的に出力する。検出部４０は、端末装置１００ａがユーザＰ１の手に持って操作される場合であっても、ボケがないと判定したフレームを受けることから、目の領域６０から角膜による光源１５の反射像６５を高い精度で検出することができる。これにより、検出部４０は、人物の視線を精度良く検出することができる。
【００４９】
なお、端末装置１００ａは、スマートフォンやタブレット型端末としたが、これに限定されない。端末装置１００ａは、カーナビゲーション等の車載用の端末装置でもよい。この場合、例えば、判定部３０ａは、自動車が走行時の振動により、撮像部１０ａにより撮影された画像がボケを含むか否かを判定し、ボケがないと判定した画像を検出部４０に選択的に出力する。これにより、検出部４０は、ボケがある画像を含めて視線の検出を行った場合に比べて、被写体である運転手等の視線を精度良く検出することができる。
【００５０】
図６は、端末装置の別実施形態を示す。図６に示す端末装置２００は、例えば、スマートフォンやタブレット型端末等の携帯端末であり、撮像部２１０、光源２１５、バッファ部２２０、ジャイロセンサ２３０、制御部２４０、表示部２５０、記憶部２６０および入力部２７０を有する。
【００５１】
撮像部２１０は、例えば、レンズとＣＣＤまたはＣＭＯＳ等の撮像素子とを含むカメラである。例えば、撮像部２１０は、赤外線を射出するＬＥＤ等の光源２１５に、手に持った端末装置２００を操作するユーザＰ１に赤外線を照射させ、毎秒数コマから数十コマ等の所定のフレームレートでユーザＰ１を撮影することで動画の各フレームを生成する。撮像部２１０は、生成したフレームを順次にバッファ部２２０に出力する。
【００５２】
バッファ部２２０は、ＲＡＭ（Random Access Memory）等であり、撮像部２１０から生成されたフレームを順次に受信し記憶する。バッファ部２２０は、記憶するフレームを制御部２４０に出力する。
【００５３】
ジャイロセンサ２３０は、端末装置２００の姿勢の変化を示す角速度等のパラメータを検出し、撮影時における撮像部２１０の状態を示す情報として取得する。ジャイロセンサ２３０は、取得した情報を、制御部２４０に出力する。ジャイロセンサ２３０は、取得部の一例である。
【００５４】
制御部２４０は、例えば、ＥＥＰＲＯＭ等の記憶部２６０に記憶されたプログラムを実行し、端末装置２００の各部を制御するプロセッサ等を含む。判定部２４１、検出部２４２および特定部２４３は、記憶部２６０に記憶された視線検出プログラムを制御部２４０が実行すること実現される。
【００５５】
判定部２４１は、例えば、撮像部２１０により撮影されたフレームをバッファ部２２０から読み込み、ジャイロセンサ２３０から受信した情報に基づいて、読み込んだフレームが撮像部２１０のぶれによるボケを含むか否かを判定する。例えば、判定部２４１は、読み込んだフレームが撮影された時にジャイロセンサ２３０から受信した情報により、角速度の大きさが閾値α１以上の場合、ユーザＰ１による手ぶれ等により、読み込んだフレームはボケを含む画像と判定する。そして、判定部２４１は、読み込んだフレームを特定部２４３に出力する。一方、判定部２４１は、角速度の大きさが閾値α１より小さい場合、読み込んだフレームはボケがないと判定し、フレームを検出部２４２へ出力する。
【００５６】
なお、閾値α１は、検出部２４２に要求される視線検出の精度が得られる許容範囲内で、設計段階や製造段階等の実験により決定される角速度の大きさに設定されることが好ましい。また、椅子等に座ってユーザＰ１が端末装置２００を操作する場合と、バスや電車等の車中でユーザＰ１が端末装置２００を操作する場合とで、ジャイロセンサ２３０が検出する角速度の大きさは異なる。そこで、ユーザＰ１が、端末装置２００を操作する環境を、例えば、キーボードやタッチパネル等の入力部２７０を用いて選択することで、環境に対応する閾値α１を適宜設定してもよい。
【００５７】
検出部２４２は、判定部２４１によりボケがないと判定されたフレームを受信し、被写体であるユーザＰ１の視線を検出する。なお、検出部２４２による視線の検出処理は、受信したフレームを図２（ａ）に示す画像５０とした場合に、図１に示す検出部４０と同一または同様であり、説明は省略する。また、検出部２４２は、判定部２４１によりボケがないと判定されたフレームから検出した、例えば、図２に示す目を含む領域６０の画像データ等を特定部２４３に出力する。
【００５８】
特定部２４３は、例えば、ボケを含むと判定されたフレームを判定部２４１から受信するとともに、受信したフレームより前に撮影され、ボケがないと判定されたフレームにおける領域６０の画像データを検出部２４２から受信する。特定部２４３は、例えば、判定部２４１から受信したボケを含むフレームと、検出部２４２から受信した領域６０の画像データとの相関を求める。特定部２４３は、求めた相関係数が所定の閾値を超えた場合に、ボケを含むフレームにおける画像領域を領域６０に対応する目を含む領域として特定する。そして、特定部２４３は、ボケを含むフレームにおいて特定した目を含む領域の画像データを検出部２４２に出力する。検出部２４２は、例えば、判定部２４１によりボケがないと判定された次のフレームに対して、特定部２４３から受信した目を含む領域の画像データとの相関を求める。検出部２４２は、求めた相関係数が所定の閾値を超える次のフレームにおける画像領域を図２に示す領域６０として検出する。これにより、検出部２４２は、顔および目の検出処理を省略することができ、端末装置２００における視線の検出処理の高速化を図ることができる。
【００５９】
表示部２５０は、有機ＥＬ（Electro Luminescence）や液晶等のディスプレイであり、例えば、制御部２４０からの制御指示に基づいて、文字や画像等を表示するとともに、検出部２４２で得られた検出結果を表示する。
【００６０】
図７は、図６に示した端末装置２００における被写体の視線の検出処理の例を示す。ステップＳ１００からステップＳ１０７は、端末装置２００の動作を示すとともに、視線検出プログラムおよび視線検出方法の例を示す。例えば、図７に示す処理は、端末装置２００に搭載されるプロセッサがプログラムを実行することにより実行される。なお、図７に示す処理は、端末装置２００に搭載されるハードウェアにより実行されてもよい。また、図７に示す処理は、撮像部２１０が、ユーザＰ１を所定のフレームレートで撮影することで生成されるフレームごとに繰り返し実行されることが好ましい。
【００６１】
ステップＳ１００において、撮像部２１０は、光源２１５に、手に持った端末装置２００を操作するユーザＰ１に赤外線の光を照射させ、所定のフレームレートでユーザＰ１を撮影しフレームを生成する。撮像部２１０は、生成したフレームを順次にバッファ部２２０に出力する。バッファ部２２０は、受信したフレームを記憶する。
【００６２】
次に、ステップＳ１０１において、ジャイロセンサ２３０は、撮像部２１０の撮影動作時における端末装置２００の姿勢の変化を示す角速度等のパラメータを検出する。ジャイロセンサ２３０は、検出したパラメータを、撮影時における撮像部２１０の状態を示す情報として判定部２４１に出力し、処理をステップＳ１０２に移行する。
【００６３】
ステップＳ１０２において、判定部２４１は、ジャイロセンサ２３０から受信した情報に基づいて、ステップＳ１００で撮影されたフレームが撮像部２１０のぶれによるボケを含むか否かを判定する。例えば、判定部２４１は、ステップＳ１００で撮影されたフレームをバッファ部２２０から読み込む。判定部２４１は、ステップＳ１０１で検出された角速度の大きさが閾値α１以上の場合、ユーザＰ１による手ぶれ等により、読み込んだフレームはボケを含むと判定する。そして、判定部２４１は、読み込んだフレームがボケを含むと判定した場合（ＹＥＳ）、フレームを特定部２４３に出力し、処理をステップＳ１０７に移行する。一方、判定部２４１は、ステップＳ１０１で検出された角速度の大きさが閾値α１より小さい場合、読み込んだフレームはボケを含まないと判定する。そして、判定部２４１は、読み込んだフレームがボケを含まないと判定した場合（ＮＯ）、フレームを検出部２４２へ出力し、処理をステップＳ１０３に移行する。
【００６４】
ステップＳ１０３において、検出部２４２は、判定部２４１によりボケがないと判定されたフレームを受信し、受信したフレームが目を含む領域６０を含むか否かを判定する。例えば、検出部２４２は、判定部２４１から受信したフレームである、図２に示す画像５０において、エッジ等の特徴点を抽出し、抽出した特徴点の分布に基づいて眉，目，鼻，唇等の各端点を特定する。そして、検出部２４２は、特定した各端点の位置に基づいて領域５１を検出する。また、検出部２４２は、領域５１の抽出時に特定した目の端点等の情報に基づいて、目を含む領域６０を検出する。そして、検出部２４２は、領域６０を検出した場合（ＹＥＳ）、処理をステップＳ１０４に移行する。一方、検出部２４２は、例えば、ユーザＰ１の目が閉じている、ユーザＰ１が横を向いている、あるいはユーザＰ１が写ってない等により、領域６０が検出されなかった場合（ＮＯ）、処理をステップＳ１００に移行する。
【００６５】
なお、検出部２４２は、例えば、記憶部２６０に予め記憶された顔や目の画像のテンプレートと、判定部２４１から受信したフレームとの相関を求め、求めた相関係数が所定の閾値を超える画像領域を領域５１や領域６０として検出してもよい。
【００６６】
また、検出部２４２は、例えば、特定部２４３から目を含む領域の画像データを受信した後、判定部２４１によりボケがないと判定された次のフレームを受信した場合、次のフレームと特定部２４３から受信した領域の画像データとの相関を求める。検出部２４２は、求めた相関係数が所定の閾値を超える次のフレームにおける画像領域を領域６０として検出してもよい。これにより、検出部２４２は、顔や目の検出処理を省略できることから、領域６０を高速に検出することができる。
【００６７】
ステップＳ１０４において、検出部２４２は、例えば、ステップＳ１０３で検出した領域６０において、領域６０の検出時に特定された目の端点等に基づいて目の輪郭６１を検出する。検出部２４２は、検出した輪郭６１内の画像領域において、例えば、エッジ等の特徴点が円形状に分布し、円形状の領域の輝度値が周囲の領域の輝度値より低い領域を、瞳孔６２および虹彩６３を含む領域６４として検出する。検出部２４２は、検出した領域６４から瞳孔６２の中心位置を求める。また、検出部２４２は、光源２１５から照射されて赤外線がユーザＰ１の目の角膜で反射した箇所を示す輝点を、領域６４において所定の閾値以上の輝度値を有し、かつ円形の形状を有する角膜による光源１５の反射像６５として検出する。そして、検出部２４２は、例えば、角膜反射法に基づいて、求めた瞳孔６２の中心位置と検出した反射像６５との間の距離、および予め設定された角膜の曲率半径に基づいて、ユーザＰ１の視線方向を検出する。また、検出部２４２は、検出した領域６０の画像データを特定部２４３に出力する。
【００６８】
次に、ステップＳ１０５において、検出部２４２は、ユーザＰ１の視線の検出結果を出力する。例えば、制御部２４０は、受信した検出結果に基づいて、表示部２５０の表示を制御する。制御部２４０は、例えば、ステップＳ１０３で検出された領域５１の大きさから、端末装置２００とユーザＰ１との距離を求める。制御部２４０は、求めた距離と、ステップＳ１０４で検出されたユーザＰ１の視線方向とに基づいて、表示部２５０の表示画面においてユーザＰ１が見ている位置を求める。制御部２４０は、例えば、カーソルの表示位置として求めた位置を指定する旨の制御指示を表示部２５０に出力し、表示部２５０に表示されたカーソルを移動させる。また、制御部２４０は、求めた位置に表示されたアイコンを選択してもよい。あるいは、制御部２４０は、求めた位置を中心とする所定の領域の表示を拡大等し、拡大した表示を表示部２５０に表示してもよい。
【００６９】
次に、ステップＳ１０６において、制御部２４０は、例えば、入力部２７０を介して、ユーザＰ１より視線検出の終了指示を受けたか否かを判定する。制御部２４０は、終了指示を受けた場合（ＹＥＳ）、一連の処理を終了する。一方、制御部２４０は、終了指示を受けてない場合（ＮＯ）、処理をステップＳ１００に移行する。
【００７０】
ステップＳ１０７において、特定部２４３は、ボケを含むと判定されたフレームを判定部２４１から受信するとともに、受信したフレームより前に撮影され、ボケがないと判定されたフレームにおいて検出された領域６０の画像データを検出部２４２から受信する。特定部２４３は、判定部２４１から受信したボケを含むフレームと、検出部２４２から受信した領域６０の画像データとの相関処理を行う。特定部２４３は、ボケを含むフレームにおいて、求めた相関係数が所定の閾値を超えた画像領域を領域６０に対応する目を含む領域として特定する。そして、特定部２４３は、ボケを含むフレームにおいて特定した目を含む領域の画像データを検出部２４２に出力する。その後、制御部２４０は、ステップＳ１００の処理に移行し、撮像部２１０により撮影された次のフレームに対して、ステップＳ１００からステップＳ１０６の処理を施す。
【００７１】
以上、この実施形態では、ジャイロセンサ２３０が、端末装置２００の姿勢を示すパラメータを検出し、検出したパラメータを撮影時における撮像部２１０の状況を示す情報として取得する。判定部２４２は、取得した情報に基づいて撮像部２１０により撮影されたフレームがボケを含むか否かを判定し、ボケがないと判定したフレームを検出部２４２に選択的に出力する。検出部２４２は、端末装置２００がユーザＰ１の手に持って操作される場合であっても、ボケがないと判定したフレームを受けることから、目の領域６０から角膜による光源１５の反射像６５を高い精度で検出することができる。これにより、検出部２４２は、人物の視線を精度良く検出することができる。
【００７２】
また、特定部２４３は、ボケを含むと判定されたフレームから目を含む領域を特定し、検出部２４２は、特定された領域に基づいて、ボケがないと判定された次のフレームにおける領域６０を検出する。これにより、検出部２４２は、顔や目の検出処理を省略でき、視線の検出処理の高速化を図ることができる。
【００７３】
なお、端末装置２００は、スマートフォンやタブレット型端末としたが、これに限定されない。端末装置２００は、カーナビゲーション等の車載用の端末装置でもよい。この場合、例えば、判定部２４１は、自動車が走行時の振動により、撮像部２１０により撮影されたフレームがボケを含むか否かを判定し、ボケがないと判定したフレームを検出部２４２に出力する。これにより、検出部２４２は、ボケがあるフレームを含めて視線の検出を行った場合に比べて、被写体である運転手等の視線を精度良く検出することができる。
【００７４】
なお、端末装置２００は、ジャイロセンサ２３０を有したが、これに限定されず、加速度センサ等を有してもよい。
【００７５】
なお、判定部２４１における閾値α１は、設計段階や製造段階等の実験により決定された値や、端末装置２００が操作される環境に応じて、ユーザＰ１により選択された値が設定されるとしたが、これに限定されない。例えば、判定部２４１は、ジャイロセンサ２３０により検出される角速度の大きさ等に基づいて、端末装置２００が操作される環境を推定し、推定した環境に基づいて決定される値を閾値α１として設定してもよい。
【００７６】
なお、検出部２４２は、赤外線でユーザＰ１を照明した状態で撮影されたフレームを用いてユーザＰ１の視線を検出したが、これに限定されない。例えば、撮像部２１０は、太陽光等の可視光で照明されたユーザＰ１を撮影することで可視光領域に含まれる色の情報を含むフレームを生成し、検出部２４２は、可視光領域に含まれる色の情報を含むフレームからユーザＰ１の視線を検出してもよい。この場合、記憶部２６０は、様々な方向に視線を向けている状態で撮影された画像のそれぞれから抽出した領域６０の画像データを予め記憶するのが好ましい。そして、検出部２４２は、撮像部２１０で撮影された可視光のフレームと、予め記憶された複数の画像データとの比較からユーザＰ１の視線を検出する。
【００７７】
なお、検出部２４２は、ボケがないと判定された全てのフレームに対して視線の検出処理を施したが、これに限定されない。例えば、検出部２４２は、判定部２４１から連続して、ボケがないと判定されたフレーム受信する場合、受信したフレームを間引いて視線の検出処理を施してもよい。ただし、フレームを間引く数は、撮像部２１０のフレームレート等に応じて、適宜設定されることが好ましい。
【００７８】
なお、制御部２４０は、検出部２４２により検出されたユーザＰ１の視線方向に基づいて、表示部２５０を制御したが、これに限定されない。例えば、制御部２４０は、端末装置２００が内蔵する無線ＬＡＮ（Local Area Network）やＷｉ−Ｆｉ（Wireless Fidelity）規格等の無線通信を介して、視線の検出結果を、外部のコンピュータ等に出力してもよい。これにより、外部のコンピュータ等は、視線の検出結果から表示部２５０に表示された情報のうち、ユーザＰ１が興味を示した画像や記事等の情報を取得でき、取得した情報に基づいて、ユーザＰ１に応じた情報を提供することができる。
【００７９】
図８は、端末装置の別実施形態を示す。図８に示す端末装置２００ａは、例えば、スマートフォンやタブレット型端末等の携帯端末である。なお、図８に示す端末装置２００ａの各要素のうち、図６に示す要素と同一または同等の機能を有するものについては、同一の符号を付し説明を省略する。
【００８０】
取得部２４４は、被写体の撮影時における撮像部２１０の状態を示す情報を取得する。例えば、取得部２４４は、撮像部２１０により撮影された最新のフレームとともに、１コマ前に撮影されたフレームをバッファ部２２０から読み込む。以下、最新のフレームを現在のフレームとも称し、１コマ前に撮影されたフレームを過去のフレームとも称する。
【００８１】
例えば、取得部２４４は、読み込んだ現在のフレームと過去のフレームとからエッジの特徴を示すエッジ情報や輝度等の特徴量をそれぞれ抽出する。取得部２４４は、現在のフレームと過去のフレームとのそれぞれに含まれる各画素に対応して抽出した現在のフレームの特徴量と過去のフレームの特徴量との差分の絶対値を算出し、算出した差分の絶対値が閾値ε以上となる画素が分布する画像領域を求める。取得部２４４は、求めた画像領域の大きさを撮影時における撮像部２１０の状態を示す情報として判定部２４１ａに出力する。なお、取得部２４４は、求めた画像領域の大きさの代わりに、求めた画像領域に含まれる画素数を撮影時における撮像部２１０の状態を示す情報として判定部２４１ａに出力してもよい。また、閾値εは、検出部２４２に要求される視線検出の精度が得られる範囲内で、設計段階や製造段階等の実験により決定され設定されることが好ましい。
【００８２】
判定部２４１ａは、バッファ部２２０から現在のフレームを読み込むとともに、取得部２４４から画像領域の大きさを受信する。例えば、判定部２４１ａは、受信した画像領域の大きさに基づいて、現在のフレームが撮像部２１０のぶれによるボケを含むか否かを判定する。判定部２４１ａは、例えば、受信した画像領域の大きさが閾値β１以上の場合、ユーザＰ１による手ぶれ等により、受信した現在のフレームはボケを含む画像と判定する。そして、判定部２４１ａは、ボケを含むと判定した現在のフレームを特定部２４３に出力する。一方、判定部２４１ａは、受信した画像領域の大きさが閾値β１より小さい場合、現在のフレームはボケがないと判定し、現在のフレームを検出部２４２へ出力する。
【００８３】
なお、閾値β１は、検出部２４２に要求される視線検出の精度が得られる範囲内で、設計段階や製造段階等の実験により決定され設定されることが好ましい。また、椅子等に座ってユーザＰ１が端末装置２００を操作する場合と、バスや電車等の車中でユーザＰ１が端末装置２００ａを操作する場合とで、取得部２４１ａが取得する画像領域の大きさは異なる。そこで、ユーザＰ１が、端末装置２００ａを操作する環境を、例えば、キーボードやタッチパネル等の入力部２７０を用いて選択することで、環境に対応する閾値β１を適宜設定してもよい。
【００８４】
また、判定部２４１ａは、取得部２４４から撮影時における撮像部２１０の状態を示す情報として画像領域に含まれる画像数を受信してもよい。すなわち、判定部２４１ａは、受信した画像領域に含まれる画像数に基づいて、現在のフレームが撮像部２１０のぶれによるボケを含むか否かを判定してもよい。
【００８５】
また、撮像部２１０により最初に撮影されたフレームには、１コマ前の過去のフレームが存在しないことから、取得部２４４および判定部２４１ａは、最初に撮影されたフレームについて、ボケがない画像として扱う。
【００８６】
図９は、図８に示した端末装置２００ａにおける被写体の視線検出処理の例を示す。ステップＳ１００，Ｓ１０１ａ，Ｓ１０２ａ，Ｓ１０３，Ｓ１０４，Ｓ１０５およびＳ１０６は、端末装置２００ａの動作を示すとともに、視線検出プログラムおよび視線検出方法の例を示す。例えば、図９に示す処理は、端末装置２００ａに搭載されるプロセッサがプログラムを実行することにより実行される。なお、図９に示す処理は、端末装置２００ａに搭載されるハードウェアにより実行されてもよい。
【００８７】
図９に示す各ステップの処理のうち、図７に示すステップと同一または同等の処理のものについては、同一のステップの番号を付し説明を省略する。
【００８８】
ステップＳ１０１ａにおいて、取得部２４４は、ステップＳ１００で撮像部２１０により撮影された現在のフレームとともに、１コマ前の過去のフレームをバッファ部２２０から読み込む。取得部２４４は、読み込んだ現在のフレームと過去のフレームとからエッジ情報や輝度等の特徴量を抽出する。取得部２４４は、現在のフレームと過去のフレームとのそれぞれに含まれる各画素に対応して抽出した現在のフレームの特徴量と過去のフレームの特徴量との差分の絶対値を算出する。取得部２４４は、算出した差分の絶対値が閾値ε以上の差分の絶対値を有する画素が分布する画像領域を求める。取得部２４４は、求めた画像領域の大きさを撮影時における撮像部２１０の状態を示す情報として判定部２４１ａに出力し、処理をステップＳ１０２ａに移行する。
【００８９】
ステップＳ１０２ａにおいて、判定部２４１ａは、取得部２４４から受信した情報に基づいて、ステップＳ１００で撮影された現在のフレームが撮像部２１０のぶれによるボケを含むか否かを判定する。例えば、判定部２４１ａは、バッファ部２２０から現在のフレームを読み込むとともに、取得部２４４から画像領域の大きさを受信する。例えば、判定部２４１ａは、ステップＳ１０１ａで取得された画像領域の大きさが閾値β１以上の場合、ユーザＰ１による手ぶれ等により、現在のフレームはボケを含むと判定する。そして、判定部２４１ａは、現在のフレームがボケを含むと判定した場合（ＹＥＳ）、現在のフレームを特定部２４３に出力し、処理をステップＳ１０６に移行する。一方、判定部２４１ａは、ステップＳ１０１ａで取得された画像領域の大きさが閾値β１より小さい場合、現在のフレームはボケを含まないと判定する。そして、判定部２４１ａは、現在のフレームがボケを含まないと判定した場合（ＮＯ）、現在のフレームを検出部２４２へ出力し、処理をステップＳ１０３に移行する。
【００９０】
以上、この実施形態では、取得部２４４が、現在のフレームと過去のフレームとから抽出されるエッジ情報や輝度等の特徴量の差分の絶対値に基づいて、撮影時における撮像部２１０の状況を示す情報を取得する。判定部２４１ａは、取得した情報に基づいて撮像部２１０により撮影されたフレームがボケを含むか否かを判定し、ボケがないと判定したフレームを検出部２４２に選択的に出力する。これにより、手に持って端末装置２００ａがユーザＰ１に操作される場合であっても、検出部２４２は、目の領域６０から角膜による光源１５の反射像６５を高い精度で検出することができる。その結果、検出部２４２は、人物の視線を精度良く検出することができる。
【００９１】
また、特定部２４３は、ボケを含むと判定されたフレームから目を含む領域を特定し、検出部２４２は、特定された領域に基づいて、ボケがないと判定された次のフレームにおける領域６０を検出する。これにより、検出部２４２は、顔や目の検出処理を省略でき、視線の検出処理の高速化を図ることができる。
【００９２】
なお、端末装置２００ａは、スマートフォンやタブレット型端末としたが、これに限定されない。端末装置２００ａは、カーナビゲーション等の車載用の端末装置でもよい。この場合、例えば、判定部２４１ａは、自動車が走行時の振動により、撮像部２１０により撮影されたフレームがボケを含むか否かを判定し、ボケがないと判定したフレームを検出部２４２に出力する。これにより、検出部２４２は、ボケがあるフレームを含めて視線の検出を行った場合に比べて、被写体である運転手等の視線を精度良く検出することができる。
【００９３】
なお、判定部２４１ａ、検出部２４２、特定部２４３および取得部２４４は、撮像部２１０により撮影され生成された各フレームをそのままの画像サイズで処理したが、これに限定されない。例えば、制御部２４０は、撮像部２１０により生成された各フレームを、４分の１等の縮小率で縮小し、判定部２４１ａ、検出部２４２、特定部２４３および取得部２４４に縮小した各フレームを処理させてもよい。各フレームが縮小されることで画素数が減少することから、判定部２４１ａ、検出部２４２、特定部２４３および取得部２４４の各処理の高速化を図ることができる。
【００９４】
なお、取得部２４４は、撮影時における撮像部２１０の状態を示す情報を取得するために、現在のフレームと過去のフレームとの画像全体における特徴量を用いて、撮像部２１０の撮影時における状態を示す情報を取得したが、これに限定されない。例えば、取得部２４４は、現在のフレームと過去のフレームとにおける領域６０の画像データから抽出された特徴量を用いて、撮像部２１０の撮影時における状態を示す情報を取得してもよい。これにより、特徴量の抽出および特徴量の差分の絶対値を求める範囲が領域６０の範囲内となることから、取得部２４４の処理の高速化を図ることができる。
【００９５】
なお、判定部２４１ａにおける閾値β１は、設計段階や製造段階等の実験により決定された値や、端末装置２００ａが操作される環境に応じて、ユーザＰ１により選択された値が設定されるとしたが、これに限定されない。例えば、判定部２４１ａは、端末装置２００ａに内蔵されたジャイロセンサや加速度センサ等より検出される傾き角、角速度や加速度等のパラメータに基づいて、端末装置２００ａが操作される環境を推定してもよい。また、判定部２４１ａは、推定した環境に基づいて決定される値を閾値β１として設定してもよい。
【００９６】
なお、検出部２４２は、赤外線でユーザＰ１を照明した状態で撮影されたフレームを用いてユーザＰ１の視線を検出したが、これに限定されない。例えば、撮像部２１０は、太陽光等の可視光で照明されたユーザＰ１を撮影することで可視光領域に含まれる色の情報を含むフレームを生成し、検出部２４２は、可視光領域に含まれる色の情報を含むフレームからユーザＰ１の視線を検出してもよい。この場合、記憶部２６０は、様々な方向に視線を向けている状態で撮影された画像のそれぞれから抽出した領域６０の画像データを予め記憶するのが好ましい。そして、検出部２４２は、撮像部２１０で撮影された可視光のフレームと、予め記憶された複数の画像データとの比較からユーザＰ１の視線を検出する。
【００９７】
なお、検出部２４２は、ボケがないと判定されたフレームを、判定部２４１ａから連続して受信する場合、受信した画像を間引いて視線の検出処理を施してもよい。ただし、フレームを間引く数は、撮像部２１０のフレームレート等に応じて、適宜設定されることが好ましい。
【００９８】
また、判定部２４１ａは、受信した画像領域の大きさと閾値β１との比較から、受信した現在のフレームがボケを含むか否かを判定したが、これに限定されない。例えば、取得部２４４は、検出部２４２と同様に、受信した現在のフレームからユーザＰ１の所定の部位である瞳の領域６４や反射像６５を検出し、検出した領域６４や反射像６５の形状を求める。取得部２４４は、画像がボケを含まない場合に領域６４や反射像６５が示す円形等の形状に対する、求めた領域６４や反射像６５が示す楕円等の形状の歪んだ度合いを示す歪み量を撮影時における撮像部２１０の状態を示す情報として取得する。そして、判定部２４１ａは、求めた歪み量と所定の値との比較に基づいて、現在のフレームがボケを含むか否かを判定してもよい。
【００９９】
なお、制御部２４０は、検出部２４２により検出されたユーザＰ１の視線方向に基づいて、表示部２５０を制御したが、これに限定されない。例えば、制御部２４０は、端末装置２００ａが内蔵する無線ＬＡＮやＷｉ−Ｆｉ規格等の無線通信を介して、視線の検出結果を、外部のコンピュータ等に出力してもよい。これにより、外部のコンピュータ等は、視線の検出結果から表示部２５０に表示された情報のうち、ユーザＰ１が興味を示した画像や記事等の情報を取得でき、取得した情報に基づいて、ユーザＰ１に応じた情報を提供することができる。
【０１００】
図１０は、図６および図８に示す端末装置のハードウェア構成の例を示す。なお、図１０に示す端末装置３００の各要素のうち、図６および図８で示した要素と同一または同様の機能を有するものについては、同様の符号を付し説明を省略する。
【０１０１】
端末装置３００は、撮像部２１０、光源２１５、ジャイロセンサ２３０、表示部２５０、入力部２７０、プロセッサ３１０、ＥＥＰＲＯＭ３２０、ＲＡＭ３３０、通信回路３４０、アンテナ３４５および加速度センサ３５０を有する。撮像部２１０、光源２１５、ジャイロセンサ２３０、表示部２５０、入力部２７０、プロセッサ３１０、ＥＥＰＲＯＭ３２０、ＲＡＭ３３０、通信回路３４０および加速度センサ３５０は、バスを介して互いに接続されている。また、通信回路３４０およびアンテナ３４５は、互いに接続される。
【０１０２】
ＥＥＰＲＯＭ３２０は、例えば、端末装置３００のオペレーティングシステムを格納する。また、ＥＥＰＲＯＭ３２０は、図７および図９に示す視線検出処理をプロセッサ３１０が実行するための視線検出プログラム等のアプリケーションプログラムを格納する。なお、端末装置３００がカーナビゲーション等で車載される場合、視線検出プログラム等のアプリケーションプログラムは、ＥＥＰＲＯＭ３２０に代えて、ハードディスク装置等に格納されてもよい。
【０１０３】
ＲＡＭ３３０は、例えば、バッファ部２２０として、撮像部２１０により撮影され生成された画像を格納する。
【０１０４】
通信回路３４０は、アンテナ３４５を介して、無線ＬＡＮやＷｉ−Ｆｉ規格等の無線通信で外部と各種アプリケーションプログラムや電子メール等のデータを送信または受信する。
【０１０５】
加速度センサ３５０は、端末装置３００の動きを示す加速度を検出し、検出した加速度を端末装置３００に含まれる撮像部２１０の状態を示す情報の一部として出力する。つまり、加速度センサ３５０およびジャイロセンサ２３０は、いずれも撮像部２１０の撮影時における状況を示す情報を取得する取得部の一例である。
【０１０６】
視線検出プログラム等のアプリケーションプログラムは、例えば、光ディスク等のリムーバブルディスクに記憶して頒布することができる。また、端末装置３００は、例えば、通信回路３４０およびアンテナ３４５を介して、インターネット等のネットワークに接続し、視線検出プログラム等のアプリケーションプログラムをダウンロードし、ＥＥＰＲＯＭ３２０等に格納してもよい。
【０１０７】
例えば、プロセッサ３１０は、ＥＥＰＲＯＭ３２０等に格納された視線検出プログラムを実行することにより、図６および図８に示した判定部２４１、２４１ａ、検出部２４２、特定部２４３および取得部２４４の機能を実現する。すなわち、プロセッサ３１０は、検出部および判定部の一例である。
【０１０８】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１０９】
１０，１０ａ，２１０…撮像部；１５，２１５…光源；２０，２０ａ，２４４…取得部；３０，３０ａ，２４１，２４１ａ…判定部；４０，２４２…検出部；５０…画像；５１…顔領域；６０…目領域；６１…目輪郭；６２…瞳孔；６３…虹彩；６４…角膜反射領域；１００，１００ａ，２００，２００ａ，３００…端末装置；２２０…バッファ部；２３０…ジャイロセンサ；２４０…制御部；２４３…特定部；２４４…取得部；２５０…表示部；２６０…記憶部；２７０…入力部；３２０…ＥＥＰＲＯＭ；３３０…ＲＡＭ；３４０…通信回路；３４５…アンテナ；３５０…加速度センサ；Ｐ１…ユーザ
【図１】
2015000156.tif 000003
【図２】
2015000156.tif 000004
【図３】
2015000156.tif 000005
【図４】
2015000156.tif 000006
【図５】
2015000156.tif 000007
【図６】
2015000156.tif 000008
【図７】
2015000156.tif 000009
【図８】
2015000156.tif 000010
【図９】
2015000156.tif 000011
【図１０】
2015000156.tif 000012