(57)【要約】【課題】ユーザの瞳孔間距離を推定できる注視位置検出用コンピュータプログラムを提供する。【解決手段】注視位置検出用コンピュータプログラムは、撮像部により生成された画像から、ユーザの顔が撮像部に対して正対しているか否かを判定し、ユーザの顔が撮像部に対して正対しているときの画像から、左眼及び右眼のそれぞれの瞳孔を検出し、画像上の左眼及び右眼のそれぞれについて視線方向を検出し、ユーザの顔が撮像部に対して正対しているときの画像上の左眼の瞳孔の位置及び右眼の瞳孔の位置に応じた撮像部と左眼及び右眼間の位置関係と、左眼の視線方向及び右眼の視線方向と、撮像部と注視対象面間の位置関係とに基づいて実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置を算出し、実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置から実空間での左眼と右眼間の瞳孔間距離を算出する、ことをコンピュータに実行させるための命令を含む。【選択図】図７
2018205819.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、
前記画像上の前記右眼に基づいて前記右眼の視線方向を検出し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、
実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置から、実空間での前記左眼と前記右眼間の瞳孔間距離を算出する、
ことをコンピュータに実行させるための注視位置検出用コンピュータプログラム。
【請求項２】
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係は、前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置に応じた前記撮像部から前記左眼の瞳孔への方向及び前記画像上の前記右眼の瞳孔の位置に応じた前記撮像部から前記右眼の瞳孔への方向と、前記撮像部から前記左眼までの前記撮像部の光軸に沿った距離と前記撮像部から前記右眼までの前記撮像部の光軸に沿った距離とが等しいこととを含む、請求項１に記載の注視位置検出用コンピュータプログラム。
【請求項３】
前記注視対象となる面の法線方向と前記撮像部の光軸は平行であり、かつ、前記撮像部と前記注視対象となる面間の位置関係は、前記撮像部と前記注視対象となる面間の距離を含む、請求項１または２に記載の注視位置検出用コンピュータプログラム。
【請求項４】
前記撮像部と前記注視対象となる面間の位置関係は、前記撮像部の光軸方向に対する前記注視対象となる面の傾きを含む、請求項１または２に記載の注視位置検出用コンピュータプログラム。
【請求項５】
前記瞳孔間距離が算出された画像と異なる、前記撮像部により生成された、左眼及び右眼を含む前記ユーザの顔の少なくとも一部が表された第２の画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記第２の画像上の前記左眼に基づいて前記左眼の第２の視線方向を検出し、
前記第２の画像上の前記右眼に基づいて前記右眼の第２の視線方向を検出し、
前記第２の画像に基づいて前記ユーザの顔向きを判定し、
前記第２の画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係、前記左眼の第２の視線方向及び前記右眼の第２の視線方向、前記ユーザの顔の向き、前記撮像部と前記注視対象となる面間の位置関係、及び、前記瞳孔間距離に基づいて、前記注視対象となる面上の注視位置を検出する、
ことをさらにコンピュータに実行させるための請求項１〜４の何れか一項に記載の注視位置検出用コンピュータプログラム。
【請求項６】
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、
前記画像上の前記右眼に基づいて前記右眼の視線方向を検出し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、
実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置から、実空間での前記左眼と前記右眼間の瞳孔間距離を算出する、
ことを含む注視位置検出方法。
【請求項７】
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定する顔向き判定部と、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出する瞳孔検出部と、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、かつ、前記画像上の前記右眼に基づいて前記右眼の視線方向を検出する視線検出部と、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置から、実空間での前記左眼と前記右眼間の瞳孔間距離を算出する瞳孔間距離算出部と、
を有する注視位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、眼を撮影して得られた画像に基づいて注視位置を検出する注視位置検出用コンピュータプログラム、注視位置検出装置及び注視位置検出方法に関する。
【背景技術】
【０００２】
人の視線方向を検出することで、その人が興味を有しているものに関する情報を得たり、あるいは、視線方向または注視している位置に関連する操作を自動的に実行することが検討されている。なお、以下では、便宜上、人が注視している位置を単に注視位置と呼ぶ。
【０００３】
人の注視位置、あるいは、視線方向は、その人の瞳孔の向きと密接に関連している。そこで、人の眼をカメラにより撮影して得られた画像から瞳孔を検出し、その瞳孔と基準点との位置関係により、その人の視線方向または注視位置を特定する技術が知られている。
【０００４】
視線方向が一定でも、カメラから人までの距離に応じて注視位置は異なる。そのため、注視位置を正確に検出するためには、カメラから人までの距離を正確に求めることが好ましい。そこで、人の顔が写った画像上での両眼の瞳孔間距離（以下、単に瞳孔間距離と呼ぶ）と、実空間での瞳孔間距離と、カメラの焦点距離などに基づいて、実空間での視点距離を算出する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−８９３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、瞳孔間距離は、人によって異なる。そのため、注視位置の検出対象となるユーザが不特定の人物である場合、実空間での瞳孔間距離が未知であるため、上記の技術では、カメラから人物までの距離は正確には算出されない。その結果として、注視位置の検出精度が不十分となることがある。
【０００７】
一つの側面では、本発明は、ユーザの瞳孔間距離を推定できる注視位置検出用コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの実施形態によれば、注視位置検出用コンピュータプログラムが提供される。この注視位置検出用コンピュータプログラムは、撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、ユーザの顔が撮像部に対して正対しているか否かを判定し、ユーザの顔が撮像部に対して正対しているときの画像から、左眼及び右眼のそれぞれの瞳孔を検出し、画像上の左眼に基づいて左眼の視線方向を検出し、画像上の右眼に基づいて右眼の視線方向を検出し、ユーザの顔が撮像部に対して正対しているときの画像上の左眼の瞳孔の位置及び右眼の瞳孔の位置に応じた撮像部と左眼及び右眼間の位置関係と、左眼の視線方向及び右眼の視線方向と、撮像部とユーザによる注視対象となる面間の位置関係とに基づいて実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置を算出し、実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置から、実空間での左眼と右眼の間の瞳孔間距離を算出する、ことをコンピュータに実行させるための命令を含む。
【発明の効果】
【０００９】
ユーザの瞳孔間距離を推定できる。
【図面の簡単な説明】
【００１０】
【図１】注視位置検出装置の一実施形態であるデジタルサイネージシステムのハードウェア構成図である。
【図２】カメラ及び表示装置の配置の一例を示す図である。
【図３】プロセッサの瞳孔間距離推定処理及び注視位置検出処理に関する機能ブロック図である。
【図４】瞳孔間距離推定についての原理の説明図である。
【図５】（ａ）は、ユーザの顔がカメラに対して正対している場合の顔の画像の一例を示す図であり、（ｂ）は、ユーザがカメラに対して顔を傾けている場合の顔の画像の一例を示す図である。
【図６】（ａ）及び（ｂ）は、表示装置及びカメラと、瞳孔の位置及び注視位置との関係の一例を示す図である。
【図７】瞳孔間距離推定処理の動作フローチャートである。
【図８】注視位置検出についての原理の説明図である。
【図９】注視位置検出処理の動作フローチャートである。
【図１０】変形例による、表示装置及びカメラと、ユーザの瞳孔重心及び注視位置との関係の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図を参照しつつ、注視位置検出装置について説明する。
この注視位置検出装置は、ユーザの両眼をカメラにより撮影して画像を生成し、その画像上で左右それぞれの眼の瞳孔、及び、左右それぞれの眼の視線方向を検出する。ここで、ユーザの顔がカメラに対して正対しているとき、すなわち、カメラに対して正面を向いているときには、カメラの光軸方向に沿った方向のカメラから左眼までの距離とカメラから右眼までの距離が同一となるという条件が満たされる。この条件が満たされるときには、両眼の視線方向と、カメラからそれぞれの眼の瞳孔へ向かう方向とに基づいて、実空間での両眼の瞳孔位置は一意に求められる。そこで、この注視位置検出装置は、ユーザの顔がカメラに対して正対しているときの画像から算出されたそれぞれの眼についての視線方向と、画像上のそれぞれの眼の瞳孔位置とから、実空間でのそれぞれの眼の瞳孔位置及び瞳孔間距離を算出する。そしてこの注視位置検出装置は、一旦瞳孔間距離が算出されると、その後に得られた画像から検出された両眼の視線方向と、実空間での瞳孔間距離とに基づいて、注視位置を検出する。
【００１２】
なお、以下に説明する実施形態では、注視位置検出装置は、デジタルサイネージシステムに実装され、そして注視位置検出装置は、デジタルサイネージシステムのユーザの注視位置を検出する。
【００１３】
図１は、注視位置検出装置の一実施形態であるデジタルサイネージシステムのハードウェア構成図である。デジタルサイネージシステム１は、表示装置２と、カメラ３と、入力装置４と、記憶媒体アクセス装置５と、メモリ６と、プロセッサ７とを有する。さらにデジタルサイネージシステム１は、デジタルサイネージシステム１のユーザの眼を照明するための、赤外発光ダイオードといった光源（図示せず）を有していてもよい。さらにまた、デジタルサイネージシステムは、デジタルサイネージシステム１を他の機器に接続するための通信インターフェース回路（図示せず）を有していてもよい。
【００１４】
表示装置２は、例えば、液晶ディスプレイまたは有機エレクトロルミネッセンスディスプレイを有する。そして表示装置２は、例えば、様々なテキスト、アイコン、静止画像または動画像をプロセッサ７からの映像信号に応じて表示する。
【００１５】
カメラ３は、撮像部の一例であり、両方の眼を含む、少なくともユーザの顔の一部が写った画像を生成する。そのために、カメラ３は、２次元状に配列された固体撮像素子を有するイメージセンサと、そのイメージセンサ上に被写体の像を結像する撮像光学系を有する。また、撮像光学系は、単焦点の光学系でもよく、あるいは、可変焦点光学系であってもよい。カメラ３は、瞳孔間距離推定処理の実行中、または、注視位置検出処理の実行中、所定のフレームレートで撮影して画像を生成する。なお、カメラ３は、この画像上でデジタルサイネージシステム１を利用するユーザの瞳孔が識別可能な解像度を有する。そしてカメラ３は、画像を生成する度に、その画像をプロセッサ７へ渡す。なお、以下の説明において、「画像」とは、特に説明が無い限り、カメラ３により生成され、かつ、両方の眼を含む、少なくともユーザの顔の一部が写った画像を表す。
【００１６】
図２は、カメラ３及び表示装置２の配置の一例を示す図である。この例では、表示装置２の表示画面２ａの下側に、カメラ３が取り付けられている。なお、表示装置２の表示画面２ａは、ユーザによる注視対象となる面（以下、注視対象面と呼ぶ）の一例である。そしてカメラ３は、表示装置２の表示画面２ａを見るユーザ２００の両方の眼を含む、ユーザ２００の顔全体あるいは顔の一部を撮影可能なように、カメラ３の光軸OAが表示画面２ａの法線方向nと平行となるように設置される。
【００１７】
なお、カメラ３は、注視対象面に対して、ユーザの眼の並び方向（例えば、水平方向）とは異なる方向に並ぶように設けられればよく、例えば、表示画面２ａの上側に設けられてもよい。
【００１８】
入力装置４は、例えば、キーボードと、マウスのようなポインティングデバイスとを有する。そして入力装置４を介してユーザにより入力された操作信号は、プロセッサ７へ渡される。
【００１９】
なお、表示装置２と入力装置４とは、例えば、タッチパネルディスプレイのように一体化されていてもよい。この場合、入力装置４は、表示装置２の表示画面上に表示されたアイコンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号をプロセッサ７へ出力する。
【００２０】
記憶媒体アクセス装置５は、記憶部の一例であり、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体８にアクセスする装置である。記憶媒体アクセス装置５は、例えば、記憶媒体８に記憶された、プロセッサ７上で実行される、瞳孔間距離推定処理及び注視位置検出処理用のコンピュータプログラムを読み込み、プロセッサ７に渡す。
【００２１】
メモリ６は、記憶部の他の一例であり、例えば、読み書き可能な不揮発性の半導体メモリ、及び読み書き可能な揮発性の半導体メモリを有する。そしてメモリ６は、プロセッサ７上で実行される、瞳孔間距離推定処理及び注視位置検出処理用のコンピュータプログラム、各種のアプリケーションプログラム及び各種のデータを記憶する。
【００２２】
さらに、メモリ６は、ユーザの瞳孔間距離を算出するために利用される各種のデータ、及び、ユーザの注視位置を検出するために利用される各種のデータを記憶してもよい。例えば、メモリ６は、表示装置２及びカメラ３の実空間での位置、カメラ３の焦点距離などを記憶する。さらにまた、メモリ６は、算出された瞳孔間距離を記憶する。
【００２３】
プロセッサ７は、例えば、少なくとも一つのCentral Processing Unit(CPU)及びその周辺回路を有する。さらに、プロセッサ７は、数値演算プロセッサまたはGraphics Processing Unit(GPU)を有していてもよい。そしてプロセッサ７は、デジタルサイネージシステム１の各部と信号線を介して接続されており、デジタルサイネージシステム１全体を制御する。例えば、プロセッサ７は、入力装置４から受け取った操作信号と実行中のアプリケーションプログラムに応じて、所定の動画像などを表示装置２に表示させる。
【００２４】
さらに、プロセッサ７は、ユーザがデジタルサイネージシステム１に接近したことを検知すると、最初に、実空間におけるユーザの瞳孔間距離をもとめる。そしてプロセッサ７は、一旦瞳孔間距離が求められると、その瞳孔間距離を利用して、画像が得られる度に、注視位置検出処理を実行することにより、ユーザの視線方向及び注視位置を検出する。
【００２５】
図３は、プロセッサ７の瞳孔間距離推定処理及び注視位置検出処理に関する機能ブロック図である。プロセッサ７は、瞳孔検出部２１と、視線検出部２２と、顔向き判定部２３と、瞳孔間距離算出部２４と、注視位置検出部２５とを有する。
プロセッサ７が有するこれらの各部は、プロセッサ７上で実行されるコンピュータプログラムにより実現される機能モジュールである。またプロセッサ７が有するこれらの各部は、その各部の機能を実現するプロセッサ７内の回路の一部として実装されてもよい。
【００２６】
プロセッサ７が有するこれらの各部のうち、瞳孔検出部２１、視線検出部２２、顔向き判定部２３は、瞳孔間距離推定処理及び注視位置検出処理の両方で用いられる。また、瞳孔間距離算出部２４は、瞳孔間距離推定処理で用いられる。一方、注視位置検出部２５は、注視位置検出処理で用いられる。以下、瞳孔間距離推定処理及び注視位置検出処理のそれぞれについて、プロセッサ７が有するこれらの各部について説明する。
【００２７】
（瞳孔間距離推定処理）
本実施形態では、プロセッサ７は、瞳孔間距離推定処理を開始するまで、カメラ３から画像が得られる度に、その画像とメモリ６に記憶されている背景画像との間で背景差分処理を実行して、対応画素間の差分絶対値が所定値以上となる画素を抽出する。そしてプロセッサ７は、抽出された画素の数が所定数以上になると、瞳孔間距離推定処理を開始する。
なお、デジタルサイネージシステム１は、近接センサ（図示せず）を有していてもよい。そして近接センサが、カメラ３の正面に位置する物体を検知すると、プロセッサ７は、瞳孔間距離推定処理を開始してもよい。
【００２８】
図４を参照しつつ、最初に、瞳孔間距離を検出するための原理を説明する。図４は、実空間において、カメラ３の撮像面４００の垂直方向に沿って上方から見た、表示装置２及びカメラ３と、ユーザの瞳孔との位置関係の一例を示す図である。画像上の瞳孔の位置は、カメラ３から瞳孔へ向かう方向を表すので、画像上で瞳孔を検出することにより、カメラ３から瞳孔への方向が分かる。すなわち、画像上の瞳孔の位置に基づいて、矢印４０１で示される、カメラ３からユーザの左眼の瞳孔へ向かう方向、及び、矢印４０２で示される、カメラ３からユーザの右眼の瞳孔へ向かう方向が求められる。
【００２９】
また、ユーザは、両眼で表示装置２の表示画面上の注視位置を見ると想定されるので、矢印４０３で示される、左眼の視線方向と、矢印４０４で示される、右眼の視線方向とは、注視位置で交差する。したがって、注視位置から見て、左眼の視線方向に沿った直線と、カメラ３から見て、左眼の瞳孔へ向かう方向に沿った直線との交点が、実空間での左眼の瞳孔の位置となる。同様に、注視位置から見て、右眼の視線方向に沿った直線と、カメラ３から見て、右眼の瞳孔へ向かう方向に沿った直線との交点が、実空間での右眼の瞳孔の位置となる。ただし、注視位置は、事前には分からない。そのため、注視位置の候補（図４では、４個の注視位置の候補４１１〜４１４が示される）のそれぞれごとに、左眼の瞳孔の位置と右眼の瞳孔の位置の組み合わせの候補（図４では、候補４２１〜４２４）が求められることになる。
【００３０】
ここで、ユーザがカメラ３に対して正対している場合、カメラ３の光軸OAの方向に沿った、カメラ３から左眼までの距離と、カメラ３から右眼までの距離は等しい。上記の左眼の瞳孔の位置と右眼の瞳孔の位置の組み合わせのうち、カメラ３から左眼までの距離と、カメラ３から右眼までの距離が等しくなる組み合わせ（図４では、候補４２２）は一意に定められる。したがって、ユーザがカメラ３に対して正対している場合には、左眼の瞳孔の実空間での位置Prleft及び右眼の瞳孔の実空間での位置Prrightが求められ、その結果として、実空間での瞳孔間距離ppが算出される。
【００３１】
そこで、本実施形態では、瞳孔検出部２１が、画像からユーザの左眼及び右眼のそれぞれの瞳孔を検出し、視線検出部２２が、画像上での左眼及び右眼に基づいて、左眼の視線方向及び右眼の視線方向を検出する。また、顔向き判定部２３が、ユーザの顔がカメラ３に対して正対しているか否か判定する。そして瞳孔間距離算出部２４が、ユーザの顔がカメラ３に対して正対している場合の左眼の視線方向及び右眼の視線方向と、カメラ３から左眼の瞳孔へ向かう方向及び右眼の瞳孔へ向かう方向とに基づいて、瞳孔間距離を算出する。
【００３２】
瞳孔検出部２１は、瞳孔間距離推定処理の実行中において、瞳孔間距離が算出されるまで、画像が得られる度に、画像上でユーザの左眼及び右眼の瞳孔を検出する。なお、瞳孔検出部２１は、全ての画像に対して同一の処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。
【００３３】
瞳孔検出部２１は、画像から、先ず、ユーザの左右の眼のそれぞれについて、その眼が写っている領域（以下、単に眼領域と呼ぶ）を検出する。そのために、瞳孔検出部２１は、例えば、画像から眼領域を検出するように予め学習された識別器を用いて眼領域を検出する。この場合、識別器として、例えば、アダブーストまたはリアルアダブースト、サポートベクトルマシン、あるいは、ディープニューラルネットワークが利用される。そして瞳孔検出部２１は、画像上にウインドウを設定し、そのウインドウの位置を変えながら、ウインドウ内の各画素の値またはそのウインドウから抽出した特徴量を識別器に入力することで、そのウインドウが眼領域か否かを判定する。また、特徴量として、例えば、Haar-like特徴量あるいはHistograms of Oriented Gradients特徴量が抽出される。
【００３４】
あるいは、瞳孔検出部２１は、眼を表すテンプレートと、画像とのテンプレートマッチングにより、テンプレートに最も一致する二つの領域を検出し、その検出した二つの領域のそれぞれを眼領域としてもよい。あるいはまた、瞳孔検出部２１は、画像上に写っている眼の領域を検出する他の様々な方法の何れかに従って眼領域を検出してもよい。
【００３５】
眼領域が検出されると、瞳孔検出部２１は、左右の眼のそれぞれの眼領域内で瞳孔を検出する。
【００３６】
例えば、瞳孔検出部２１は、瞳孔を検出するために、瞳孔に相当するテンプレートと眼領域との間でテンプレートマッチングを行い、眼領域内でテンプレートとの一致度が最も高くなる領域を検出する。そして瞳孔検出部２１は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域を、瞳孔が写っている瞳孔領域と判定する。なお、ユーザの周囲の明るさに応じて瞳孔のサイズは変化する。また、瞳孔は略円形であるが、カメラ３が瞳孔を斜めから見ている場合、画像上での瞳孔の形状は垂直方向に長い楕円形状となる。そこでテンプレートは、瞳孔の大きさまたは形状に応じて複数準備されてもよい。この場合、瞳孔検出部２１は、各テンプレートと眼領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、瞳孔検出部２１は、一致度の最高値に対応するテンプレートと重なった領域を瞳孔領域と判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【００３７】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこで瞳孔検出部２１は、眼領域内で、同心円状に半径の異なる２本のリングを持つ２重リングフィルタを設定する。そして瞳孔検出部２１は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。また瞳孔検出部２１は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼領域内の最大輝度値と最小輝度値の差の10％〜20％を、最小輝度値に加えた値に設定される。
【００３８】
なお、瞳孔検出部２１は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔領域を検出してもよい。
【００３９】
瞳孔検出部２１は、ユーザの左右の眼のそれぞれについて、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心（以下、単に瞳孔重心と呼ぶ）の位置座標として算出する。
【００４０】
瞳孔検出部２１は、ユーザの左右のそれぞれの眼について、眼領域を表す情報及び瞳孔重心の位置座標を視線検出部２２へ通知する。また瞳孔検出部２１は、ユーザの左右のそれぞれの眼について、瞳孔重心の位置座標を顔向き判定部２３及び瞳孔間距離算出部２４へ通知する。
【００４１】
視線検出部２２は、瞳孔間距離推定処理の実行中において、瞳孔間距離が算出されるまで、ユーザの左右のそれぞれの眼について瞳孔重心が検出される度に、ユーザの左右のそれぞれの眼について視線方向を検出する。なお、視線検出部２２は、左眼と右眼とで、同じ処理を実行すればよいので、以下では、一方の眼についての処理について説明する。
【００４２】
視線検出部２２は、例えば、画像上での虹彩に基づいて、視線方向を検出する。この場合、視線検出部２２は、例えば、西内他、「虹彩輪郭の楕円近似を用いた非接触視線検出法の研究」、日本機械学会、日本機械学会論文集、Ｃ編、69巻、682号、pp.1611-1617、2003年、に記載された方法に従って視線方向を検出すればよい。
【００４３】
この場合、視線検出部２２は、先ず、眼領域から虹彩の輪郭を抽出する。一般に、虹彩に相当する部分の画素の輝度は、虹彩の周囲に相当する部分（いわゆる白眼）の画素の輝度よりも低い。さらに、虹彩の輪郭（以下、単に虹彩輪郭と呼ぶ）は、瞳孔重心を中心とする略円形状となる。そこで視線検出部２２は、例えば、瞳孔重心から放射状に設定する複数の走査線のそれぞれにそって、例えば、CannyフィルタまたはSobelフィルタを用いてエッジ画素を検出する。そして視線検出部２２は、検出されたエッジ画素の集合に対して楕円近似を行うことで得られる輪郭線を虹彩輪郭として抽出する。その際、視線検出部２２は、瞳孔重心からの距離が所定の範囲内となるエッジ画素から虹彩輪郭を抽出してもよい。所定の範囲は、例えば、画像上で想定される虹彩のサイズの最小値に相当する、瞳孔重心から虹彩輪郭までの距離を下限とし、画像上で想定される虹彩のサイズの最大値に相当する、瞳孔重心から虹彩輪郭までの距離を上限とする範囲に設定される。
【００４４】
あるいは、視線検出部２２は、画像から虹彩輪郭を抽出する他の様々な方法の何れかに従って虹彩輪郭を抽出してもよい。
【００４５】
視線検出部２２は、画像上での、虹彩輪郭を近似する楕円の長軸RAに対する短軸RBの比に基づいて、カメラ座標系での原点Oと眼球の中心Cとを結ぶ線と、視線方向を表す視線ベクトルとがなす角度ηを、次式に従って算出する。
【数１】
2018205819.tif 000003
【００４６】
そして、視線検出部２２は、角度ηと、虹彩輪郭を近似する楕円の短軸RBと画像の垂直軸とがなす角度ζとに基づいて、次式に従って、視線ベクトルの単位ベクトルeを算出する。
【数２】
2018205819.tif 000004
ここで、角度αは、視線ベクトルを、カメラ座標系での光軸に沿った方向と画像の水平方向に対応するカメラ座標系での方向とを含む面へ射影したときの、視線ベクトルと光軸に沿った負の方向（ユーザからカメラ３へ向かう方向）とがなす角である。なお、以下では、カメラ座標系での光軸に沿った方向をz軸方向と呼び、画像の水平方向に対応するカメラ座標系での方向をx軸方向と呼ぶ。また角度βは、視線ベクトルを、z軸方向と画像の垂直方向に対応するカメラ座標系での方向（以下、y軸方向と呼ぶ）とを含む面へ射影したときの、視線ベクトルとz軸の負の方向とがなす角である。また、γxは、xz平面における、光軸（すなわち、z軸）と眼球中心とがなす角度であり、γyは、yz平面における、光軸と眼球中心とがなす角度である。なお、γx及びγyは、画像上での瞳孔重心の位置から算出される、xz平面及びyz平面のそれぞれにおける、光軸と瞳孔重心とがなす角度により近似的に算出されてもよい。
【００４７】
変形例によれば、視線検出部２２は、デジタルサイネージシステム１がユーザの眼を照明する光源を有している場合、画像上でのその光源の角膜反射像（以下、プルキンエ像と呼ぶ）の位置と瞳孔重心との位置関係に基づいて視線方向を検出してもよい。
この場合、視線検出部２２は、例えば、テンプレートマッチングにより眼領域内でプルキンエ像を検出する。そして視線検出部２２は、例えば、プルキンエ像と瞳孔重心間の相対的な位置関係と視線方向との関係を表す参照テーブルを参照して、プルキンエ像と瞳孔重心の位置に対応する視線方向を特定すればよい。なお、参照テーブルは、例えば、カメラ３と光源との位置関係に応じて予め作成され、メモリ６に保存されればよい。
【００４８】
視線検出部２２は、ユーザの左眼及び右眼のそれぞれについて検出された視線方向を瞳孔間距離算出部２４へ通知する。
【００４９】
顔向き判定部２３は、ユーザの顔がカメラ３に対して正対しているか否か判定する。
【００５０】
本実施形態では、カメラ３は、表示装置２の表示画面の下方に配置されているので、カメラ３はユーザの顔よりも下側を向いていると想定される。そのため、ユーザがカメラ３に対して正対していれば、画像上での左眼の瞳孔重心の垂直方向位置と、右眼の瞳孔重心の垂直方向位置とは略等しくなる。一方、ユーザがカメラ３に対して顔を傾けていれば、カメラ３の光軸と、カメラ３に近い方の眼へカメラ３から向かう方向とのなす角度は、カメラ３の光軸と、カメラ３から遠い方の眼へカメラ３から向かう方向とのなす角度よりも大きくなる。その結果として、画像上で、カメラ３に近い方の眼の瞳孔重心は、カメラ３から遠い方の眼の瞳孔重心よりも垂直方向に沿って上方に位置することになる。
【００５１】
図５（ａ）は、ユーザの顔がカメラ３に対して正対している場合の顔の画像の一例を示す図であり、図５（ｂ）は、ユーザがカメラ３に対して顔を傾けている場合の顔の画像の一例を示す図である。
【００５２】
図５（ａ）に示されるように、ユーザの顔５０１がカメラ３に対して正対している場合、画像５００上で、左眼５０２の垂直方向の位置と右眼５０３の垂直方向の位置とは略一致する。一方、図５（ｂ）に示されるように、ユーザの顔５１１がカメラ３に対して傾いている場合、画像５１０上で、カメラ３に近い方の眼（この例では、左眼）５１２よりも、カメラ３から遠い方の眼（この例では、右眼）５１３の方が下側に位置している。このように、顔向き判定部２３は、画像上での右目と左目の垂直方向の位置を比較することで、ユーザの顔がカメラ３に対して正対しているか否かを判定できる。
【００５３】
そこで、顔向き判定部２３は、画像上での左眼の瞳孔重心の垂直方向位置と右眼の瞳孔重心の垂直方向位置の差の絶対値を算出し、その差の絶対値を正対判定閾値（例えば、1〜2）と比較する。そして顔向き判定部２３は、その差の絶対値が正対判定閾値以下であれば、ユーザの顔はカメラ３に対して正対していると判定する。一方、その差の絶対値が正対判定閾値よりも大きければ、顔向き判定部２３は、ユーザの顔はカメラ３に対して正対していないと判定する。そして顔向き判定部２３は、左眼と右眼のうち、瞳孔重心の垂直方向位置が下方に位置している方がカメラ３から遠いと判定する。例えば、画像上での左眼の瞳孔重心が、右眼の瞳孔重心よりも下方に位置していれば、顔向き判定部２３は、右眼よりも左眼の方がカメラ３から遠い、すなわち、ユーザの顔はカメラ３よりも左側を向いていると判定する。なお、カメラ３から見れば、ユーザはカメラ３よりも右側を向いていることになる。逆に、画像上での右眼の瞳孔重心が、左眼の瞳孔重心よりも下方に位置していれば、顔向き判定部２３は、左眼よりも右眼の方がカメラ３から遠い、すなわち、ユーザの顔はカメラ３よりも右側を向いていると判定する。この場合、カメラ３から見れば、ユーザはカメラ３よりも左側を向いていることになる。
【００５４】
なお、カメラ３が表示装置２よりも上側に配置されている場合も、顔向き判定部２３は、上記と同様に、左眼の瞳孔重心の垂直方向位置と右眼の瞳孔重心の垂直方向位置とを比較することで、ユーザの顔がカメラ３に対して正対しているか否かを判定できる。またこの場合において、カメラ３がユーザの顔よりも上方を向いていると想定される場合は、顔向き判定部２３は、左眼と右眼のうち、瞳孔重心の垂直方向位置が上方に位置している方がカメラ３から遠いと判定すればよい。
【００５５】
また、顔向き判定部２３は、画像から顔の向きを判定する他の方法にしたがって、ユーザの顔がカメラ３に対して正対しているか否かを判定してもよい。例えば、顔向き判定部２３は、画像上でのユーザの顔の正中線及び鼻の頂点を検出し、鼻の頂点が正中線上に位置していれば、ユーザの顔がカメラ３に対して正対していると判定してもよい。この場合には、例えば、顔向き判定部２３は、画像上で肌色を有している画素を検出し、検出された肌色を持つ画素の集合を顔領域として検出する。そして顔向き判定部２３は、顔領域内で、例えば、口検出用の識別器を用いて、あるいは、テンプレートマッチングにより、口が写っている口領域を検出する。顔向き判定部２３は、左右の眼領域間の中点と、口領域の水平方向における中点とを結ぶ線を、顔の正中線とする。さらに、顔向き判定部２３は、鼻の頂点検出用の識別器を用いて、あるいは、テンプレートマッチングにより、鼻の頂点を検出すればよい。そして顔向き判定部２３は、画像上での鼻の頂点から正中線までの距離を算出し、その距離が所定の閾値未満であれば、鼻の頂点が正中線上に位置している、すなわち、ユーザの顔はカメラ３と正対していると判定すればよい。
【００５６】
顔向き判定部２３は、ユーザの顔がカメラ３に対して正対しているか否かの判定結果を瞳孔間距離算出部２４へ通知する。
【００５７】
瞳孔間距離算出部２４は、ユーザの顔がカメラ３に対して正対しているときの画像に基づいて、実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置を算出する。本実施形態では、瞳孔間距離算出部２４は、画像上での両眼の瞳孔重心の位置に応じたカメラ３と両眼間の位置関係と、両眼の視線方向と、カメラ３と表示装置２の表示画面との位置関係に基づいて、実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置を算出する。そして瞳孔間距離算出部２４は、実空間での左眼の瞳孔の位置及び右眼の瞳孔の位置から、瞳孔間距離を算出する。
【００５８】
図６（ａ）及び図６（ｂ）は、表示装置２及びカメラ３と、瞳孔の位置及び注視位置との関係の一例を示す図である。図６（ａ）及び図６（ｂ）において、カメラ座標系の原点Oは、例えば、カメラ３の撮像光学系の後側主点に設定される。そしてPileft及びPirightは、それぞれ、画像上の左眼及び右眼の瞳孔重心の位置に対応する、原点Oからカメラ３の撮像光学系の焦点距離fだけ離れた位置にある、カメラ３の撮像面６００上の位置を表す。またPrleft及びPrrightは、それぞれ、実空間でのユーザの左眼の瞳孔重心及び右眼の瞳孔重心を表す。Kは、カメラ３の光軸OAに沿った、原点Oから表示装置２の表示画面までの距離を表す。dは、カメラ３の光軸OAに沿った、原点Oから実空間でのユーザの左眼及び右眼の瞳孔重心Prleft及びPrrightまでの距離を表す。そしてEVleft及びEVrightは、それぞれ、ユーザの左眼の視線方向及び右眼の視線方向を表す。またLは、表示装置２の表示画面上の注視位置を表す。
【００５９】
カメラ座標系において、原点Oから左眼の瞳孔重心へ向かう方向を表すベクトルPVleft及び原点Oから右眼の瞳孔重心へ向かう方向を表すベクトルPVrightは、それぞれ、次式で表される。
【数３】
2018205819.tif 000005
したがって、カメラ座標系における、実空間での左眼の瞳孔重心の位置Prleft及び右眼の瞳孔重心の位置Prrightは、次式で表される。
【数４】
2018205819.tif 000006
ここで、φleftは、カメラ３から左眼の瞳孔重心Prleftへ向かう方向とカメラ３の光軸OAとがなす角である。またφrightは、カメラ３から右眼の瞳孔重心Prrightへ向かう方向とカメラ３の光軸OAとがなす角である。
【００６０】
一方、ユーザの左眼と右眼の両方は、同じ注視位置を見ていると想定されることから、次式が成立する。
【数５】
2018205819.tif 000007
ここで、σleftは、注視位置Lから左眼の瞳孔重心Prleftへ向かう方向とカメラ３の光軸OAとがなす角である。またσrightは、注視位置Lから右眼の瞳孔重心Prrightへ向かう方向とカメラ３の光軸OAとがなす角である。
【００６１】
したがって、瞳孔間距離算出部２４は、（４）式及び（５）式を解くことにより、距離d及び実空間での左眼の瞳孔重心の位置Prleft及び右眼の瞳孔重心の位置Prrightを算出できる。そして瞳孔間距離算出部２４は、次式に従って、実空間での瞳孔間距離ppを算出する。
【数６】
2018205819.tif 000008
【００６２】
瞳孔間距離算出部２４は、算出した瞳孔間距離ppをメモリ６に保存する。
【００６３】
図７は、プロセッサ７により実行される、瞳孔間距離推定処理の動作フローチャートである。プロセッサ７は、カメラ３から画像を受け取る度に、この動作フローチャートに従って瞳孔間距離推定処理を実行すればよい。
【００６４】
瞳孔検出部２１は、画像からユーザの左右の眼のそれぞれについて眼領域を検出する（ステップＳ１０１）。そして瞳孔検出部２１は、ユーザの左右の眼のそれぞれについて、眼領域内で瞳孔重心を検出する（ステップＳ１０２）。
【００６５】
視線検出部２２は、ユーザの左右の眼のそれぞれについて、視線方向を検出する（ステップＳ１０３）。
【００６６】
また、顔向き判定部２３は、例えば、画像上の左右の眼のそれぞれの垂直方向の位置に基づいて、ユーザの顔がカメラ３に対して正対しているか否か判定する（ステップＳ１０４）。ユーザの顔がカメラ３に対して正対していなければ（ステップＳ１０４−Ｎｏ）、プロセッサ７は、瞳孔間距離推定処理を終了する。
【００６７】
一方、ユーザの顔がカメラ３に対して正対していれば（ステップＳ１０４−Ｙｅｓ）、瞳孔間距離算出部２４は、左右それぞれの眼についての視線方向とカメラ３から瞳孔重心へ向かう方向とに基づいて、実空間での瞳孔間距離を算出する（ステップＳ１０５）。瞳孔間距離算出部２４は、算出した瞳孔間距離をメモリ６に保存する。そしてプロセッサ７は、瞳孔間距離推定処理を終了する。
【００６８】
なお、プロセッサ７は、ステップＳ１０３の処理とステップＳ１０４の処理の順序を入れ替えてもよい。すなわち、ステップＳ１０４にて、ユーザの顔がカメラ３に対して正対していると判定された場合に、視線検出部２２は、ユーザの左右の眼のそれぞれについて視線方向を検出してもよい。また、顔向き判定部２３が画像上での左右それぞれの眼の瞳孔重心の位置を利用せずにユーザの顔向きを判定する場合には、ステップＳ１０４の処理が最初に行われてもよい。そしてユーザの顔がカメラ３に対して正対していると判定された場合に、ステップＳ１０１〜Ｓ１０３及びＳ１０５の処理が行われてもよい。
【００６９】
（注視位置検出処理）
次に、注視位置検出処理について説明する。プロセッサ７は、例えば、ユーザがデジタルサイネージシステム１を利用しなくなるまで、カメラ３による画像が得られる度に、注視位置検出処理を実行する。なお、プロセッサ７は、例えば、所定期間（例えば、10秒間〜1分間）にわたって連続して、画像から眼領域を検出できなくなると、ユーザがデジタルサイネージシステム１を利用しなくなったと判断する。あるいは、デジタルサイネージシステム１が近接センサ（図示せず）を有する場合、近接センサがユーザを検知できなくなると、プロセッサ７は、ユーザがデジタルサイネージシステム１を利用しなくなったと判断してもよい。そしてプロセッサ７は、ユーザがデジタルサイネージシステム１を利用しなくなると、メモリ６に保存されている瞳孔間距離を消去する。
【００７０】
瞳孔検出部２１は、瞳孔間距離推定処理と同様に、画像から、ユーザの左右の眼のそれぞれについての眼領域を検出し、その眼領域から瞳孔重心を検出する。そして瞳孔検出部２１は、ユーザの左右の眼のそれぞれについての画像上での瞳孔重心の位置を、視線検出部２２、顔向き判定部２３及び注視位置検出部２５へ通知する。
【００７１】
また、視線検出部２２も、瞳孔間距離推定処理と同様に、ユーザの左右の眼のそれぞれについて視線方向を検出する。そして視線検出部２２は、ユーザの左右の眼のそれぞれについての視線方向を注視位置検出部２５へ通知する。
【００７２】
さらに、顔向き判定部２３は、瞳孔間距離推定処理と同様に、ユーザの顔がカメラ３に対して正対しているか、及び、ユーザの顔がカメラ３に対して正対していない場合、カメラ３の左側及び右側の何れを向いているかを判定する。そして顔向き判定部２３は、その判定結果を注視位置検出部２５へ通知する。
【００７３】
注視位置検出部２５は、ユーザの左右の眼のそれぞれの視線方向、画像上での瞳孔重心の位置、実空間での瞳孔間距離、及び、顔向きの判定結果に基づいて、注視位置を検出する。
【００７４】
図８は、注視位置検出の原理を説明する図である。図８において、カメラ座標系の原点Oは、例えば、カメラ３の撮像光学系の後側主点に設定される。そしてPrleft及びPrrightは、それぞれ、実空間でのユーザの左眼の瞳孔重心及び右眼の瞳孔重心を表す。Kは、カメラ３の光軸OAに沿った、原点Oから表示装置２の表示画面までの距離を表す。また、EVleft及びEVrightは、それぞれ、ユーザの左眼の視線方向及び右眼の視線方向を表す。またLは、表示装置２の表示画面上の注視位置を表す。さらに、ppは、実空間での瞳孔間距離を表す。そしてdleft及びdrightは、それぞれ、カメラ３の光軸OAに沿った、原点Oから実空間でのユーザの左眼及び右眼の瞳孔重心Prleft及びPrrightまでの距離を表す。
【００７５】
（４）式と同様に、カメラ座標系における、実空間での左眼の瞳孔重心の位置Prleft及び右眼の瞳孔重心の位置Prrightは、次式で表される。
【数７】
2018205819.tif 000009
【００７６】
一方、ユーザの左眼と右眼の両方は、同じ注視位置を見ていると想定されることから、次式が成立する。
【数８】
2018205819.tif 000010
ここで、ユーザの顔がカメラ３に対して正対していれば、dleft=drightが成立する。また、図８に示されるように、ユーザが、カメラ３よりも左側を見ていれば、dleft>drightが成立する。逆に、ユーザが、カメラ３よりも左側を見ていれば、dleft<drightが成立する。そこで、注視位置検出部２５は、ユーザの顔向きから求められる、dleftとdrightの大小関係を用いて、（７）式及び（８）式を解くことで、dleftとdrightを算出できる。そして注視位置検出部２５は、算出されたdleftまたはdrightを（８）式に代入することで、注視位置Lを算出できる。
【００７７】
注視位置検出部２５は、注視位置Lをメモリ６に保存する。
【００７８】
プロセッサ７は、ユーザの注視位置を追跡することで、注視位置が一定時間以上停滞した位置あるいは範囲を特定する。そしてプロセッサ７は、その位置または範囲に応じた処理を実行する。例えば、プロセッサ７は、その位置または範囲において、表示装置２に表示されているアイコンまたはコンテンツに関連する情報を表示装置２に表示させてもよい。
【００７９】
図９は、プロセッサ７により実行される、注視位置検出処理の動作フローチャートである。プロセッサ７は、カメラ３から画像を取得する度に、下記の動作フローチャートに従って、注視位置検出処理を実行すればよい。
【００８０】
瞳孔検出部２１は、画像からユーザの左右の眼のそれぞれについて眼領域を検出する（ステップＳ２０１）。そして瞳孔検出部２１は、ユーザの左右の眼のそれぞれについて、眼領域内で瞳孔重心を検出する（ステップＳ２０２）。
【００８１】
視線検出部２２は、ユーザの左右の眼のそれぞれについて視線方向を検出する（ステップＳ２０３）。
【００８２】
また、顔向き判定部２３は、例えば、画像上の左右の眼のそれぞれの垂直方向の位置に基づいて、画像からユーザの顔向きを判定する（ステップＳ２０４）。そして注視位置検出部２５は、ユーザの左右のそれぞれの眼の視線方向、カメラ３から左右のそれぞれの眼の瞳孔重心へ向かう方向、瞳孔間距離、及び顔向きに基づいて注視位置を検出する（ステップＳ２０５）。そしてプロセッサ７は、注視位置検出処理を終了する。
【００８３】
以上に説明してきたように、ユーザの顔がカメラに対して正対している場合には、カメラの光軸に沿った、カメラから左右それぞれの眼の瞳孔までの距離が互いに等しくなる。このことを利用して、この注視位置検出装置は、左右それぞれの眼についての視線方向及びカメラから瞳孔へ向かう方向に基づいて、左右それぞれの眼の瞳孔重心の実空間での位置を求める。そしてこの注視位置検出装置は、左右それぞれの眼の瞳孔重心の実空間での位置に基づいて、実空間でのユーザの瞳孔間距離を算出する。そのため、この注視位置検出装置は、カメラにより得られた画像から、実空間でのユーザの瞳孔間距離を正確に推定することができる。そしてこの注視位置検出装置は、実空間での瞳孔間距離を参照して、左右それぞれの眼の瞳孔の実空間での位置を検出できるので、左右それぞれの眼の視線方向に基づいて注視位置を正確に検出できる。そのため、この注視位置検出装置は、事前にキャリブレーション処理を行わなくても、かつ、カメラからユーザまでの距離を事前に知らなくても、注視位置を正確に検出できる。
【００８４】
なお、変形例によれば、カメラ３の光軸方向と表示装置２の表示画面の法線方向とが平行でなくてもよい。この場合には、注視対象面上の注視位置に応じて、カメラ３の光軸方向に沿った、カメラ３と表示画面上の注視位置間の距離が変動する。そこで、この変形例では、瞳孔間距離算出部２４は、カメラ３の光軸方向に対する表示装置２の表示画面の傾き角度を参照することで、カメラ３と注視位置間の距離が一定でなくても、瞳孔間距離を算出する。また、注視位置検出部２５も、傾き角度を参照することで、カメラ３と注視位置間の距離が一定でなくても、注視位置を検出する。
【００８５】
図１０は、この変形例による、表示装置２及びカメラ３と、ユーザの瞳孔重心及び注視位置との関係の一例を示す図である。図１０において、カメラ座標系の原点Oは、例えば、カメラ３の撮像光学系の後側主点に設定される。カメラ３の光軸OAに平行な方向がz軸となり、水平方向がx軸となり、垂直方向がy軸となるようにカメラ座標系が設定される。そして表示装置２の表示画面は、z軸に対して角度θをなし、かつ、表示画面を延長した面上に原点Oが位置するものとする。すなわち、注視対象面の一例である、表示装置２の表示画面は、カメラ３の光軸OAに対して角度θだけ傾いている。また、Prは、実空間でのユーザの何れか一方の眼の瞳孔重心を表し、PVは、原点Oから瞳孔重心Prへ向かうベクトルを表す。また、EVは、ユーザの何れか一方の眼の視線方向を表すベクトルである。またLは、表示装置２の表示画面上の注視位置を表す。そしてdは、z軸に沿った、原点Oから実空間でのユーザの何れか一方の眼の瞳孔重心Prまでの距離を表す。さらに、Hは、yz平面における、表示装置２の表示画面に平行なベクトルを表す。
【００８６】
この場合において、注視位置Lは、表示装置２の表示画面上に位置するとともに、ユーザの眼の瞳孔重心Prから視線方向を表すベクトルEVに沿った位置にある。そのため、次式が成立する。
【数９】
2018205819.tif 000011
ただし、tは、原点Oから注視位置Lまでの距離を表し、kは、瞳孔重心Prから注視位置Lまでの距離を表す。（９）式をk及びtについて解くことにより、次式が得られる。
【数１０】
2018205819.tif 000012
ただし、Pry及びPrzは、それぞれ、瞳孔重心Prのy軸座標及びz軸座標を表す。すなわち、Prz=dである。また、EVy及びEVzは、それぞれ、視線方向ベクトルEVのy軸成分及びz軸成分を表す。
【００８７】
（９）式は、左右それぞれの眼について成立する。そこで、瞳孔間距離算出部２４は、（１０）式に従って算出されたt及びkを用いて、左右それぞれの眼についての（９）式と、（４）式とを解くことで、左右それぞれの眼の瞳孔重心の実空間の位置を算出できる。そして左右それぞれの眼の瞳孔重心の実空間の位置が算出されると、瞳孔間距離算出部２４は、（６）式に従って、瞳孔間距離ppを算出すればよい。
【００８８】
この変形例によれば、注視位置検出装置は、注視対象面の法線方向とユーザの眼を撮影するカメラの光軸方向とが平行でなくても、すなわち、カメラと注視位置間の距離が一定でなくても、ユーザの瞳孔間距離をもとめることができる。
【００８９】
同様に、注視位置検出部２５は、顔向きの判定結果に基づくdleftとdrightの大小関係に従って、（１０）式に従って算出されたt及びkを用いて、左右それぞれの眼についての（９）式、（６）式及び（７）式を解くことで、注視位置Lを算出できる。
【００９０】
なお、注視対象面を延長した面上に原点Oが存在しない場合には、（９）式の上側の式の右辺において、注視対象面を延長した面についてのz軸に関する切片が加算されればよい。さらに、注視対象面が撮像部の光軸に対して水平方向にも傾いている場合には、（９）式は、xz平面についても成立する。そこでこの場合には、瞳孔間距離算出部２４は、（１０）式に従って算出されたt及びkを用いて、左右それぞれの眼についてのxz平面に関する（９）式と、（４）式とを解くことで、左右それぞれの眼の瞳孔重心の実空間の位置を算出できる。同様に、注視位置検出部２５は、顔向きの判定結果に基づくdleftとdrightの大小関係に従って、（１０）式に従って算出されたt及びkを用いて、左右それぞれの眼についてのxz平面に関する（９）式、（６）式及び（７）式を解くことで、注視位置Lを算出できる。
【００９１】
また他の変形例によれば、プロセッサ７は、ユーザの顔がカメラ３に正対しているときに得られた複数の画像のそれぞれについて、上記の瞳孔間距離推定処理を実行して瞳孔間距離の候補を算出し、メモリ６に保存してもよい。そして瞳孔間距離算出部２４は、複数の画像のそれぞれから得られた瞳孔間距離の候補の統計的代表値を、ユーザの瞳孔間距離としてもよい。この場合、瞳孔間距離算出部２４は、例えば、瞳孔間距離の候補の統計的代表値として、瞳孔間距離の候補の最頻値、中央値あるいは平均値を算出することができる。あるいは、瞳孔間距離算出部２４は、例えば、ガウス分布などにしたがって、瞳孔間距離の候補の確率分布を推定し、その確率分布における平均値を、ユーザの瞳孔間距離としてもよい。
この変形例によれば、注視位置検出装置は、ユーザの瞳孔間距離をより高精度でもとめることができる。
【００９２】
さらに他の変形例によれば、瞳孔間距離推定処理の実行中に得られた各画像について求められた左右それぞれの眼の視線方向及び瞳孔重心の位置がメモリ６に記憶されてもよい。そして瞳孔間距離推定後に、注視位置検出部２５は、それら各画像について、左右それぞれの眼の視線方向及び瞳孔重心の位置と算出された瞳孔間距離とに基づいて、注視位置を検出してもよい。これにより、この注視位置検出装置は、瞳孔間距離が算出されるよりも前のユーザの注視位置も検出できるので、注視位置の軌跡をより詳細に調べることができる。
【００９３】
なお、上記の実施形態または変形例による注視位置検出装置は、デジタルサイネージシステムに限られず、車両の運転支援システム、コンピュータの入力支援システムなどに利用されてもよい。
【００９４】
上記の実施形態またはその変形例による注視位置検出装置の制御部の機能を実現するコンピュータプログラムは、磁気記録媒体、光記録媒体といったコンピュータ読み取り可能な記録媒体に記録された形で提供されてもよい。なお、この記録媒体には、搬送波は含まれない。
【００９５】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００９６】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、
前記画像上の前記右眼に基づいて前記右眼の視線方向を検出し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、
実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置とから、実空間での前記左眼と前記右眼間の瞳孔間距離を算出する、
ことをコンピュータに実行させるための注視位置検出用コンピュータプログラム。
（付記２）
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係は、前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置に応じた前記撮像部から前記左眼の瞳孔への方向及び前記画像上の前記右眼の瞳孔の位置に応じた前記撮像部から前記右眼の瞳孔への方向と、前記撮像部から前記左眼までの前記撮像部の光軸に沿った距離と前記撮像部から前記右眼までの前記撮像部の光軸に沿った距離とが等しいこととを含む、付記１に記載の注視位置検出用コンピュータプログラム。
（付記３）
前記注視対象となる面の法線方向と前記撮像部の光軸は平行であり、かつ、前記撮像部と前記注視対象となる面間の位置関係は、前記撮像部と前記注視対象となる面間の距離を含む、付記１または２に記載の注視位置検出用コンピュータプログラム。
（付記４）
前記撮像部と前記注視対象となる面間の位置関係は、前記撮像部の光軸方向に対する前記注視対象となる面の傾きを含む、付記１または２に記載の注視位置検出用コンピュータプログラム。
（付記５）
実空間での前記左眼と前記右眼間の瞳孔間距離を算出することは、前記ユーザの顔が前記撮像部に対して正対しているときの複数の前記画像のそれぞれについて前記瞳孔間距離を算出し、複数の前記画像のそれぞれについて算出された前記左眼と前記右眼間の瞳孔間距離の統計的代表値を前記瞳孔間距離とする、付記１〜４の何れか一項に記載の注視位置検出用コンピュータプログラム。
（付記６）
前記瞳孔間距離が算出された画像と異なる、前記撮像部により生成された、左眼及び右眼を含む前記ユーザの顔の少なくとも一部が表された第２の画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記第２の画像上の前記左眼に基づいて前記左眼の第２の視線方向を検出し、
前記第２の画像上の前記右眼に基づいて前記右眼の第２の視線方向を検出し、
前記第２の画像に基づいて前記ユーザの顔向きを判定し、
前記第２の画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係、前記左眼の第２の視線方向及び前記右眼の第２の視線方向、前記ユーザの顔の向き、前記撮像部と前記注視対象となる面間の位置関係、及び、前記瞳孔間距離に基づいて、前記注視対象となる面上の注視位置を検出する、
ことをさらにコンピュータに実行させるための付記１〜５の何れか一項に記載の注視位置検出用コンピュータプログラム。
（付記７）
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、
前記画像上の前記右眼に基づいて前記右眼の視線方向を検出し、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、
実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置とから、実空間での前記左眼と前記右眼の間の瞳孔間距離を算出する、
ことを含む注視位置検出方法。
（付記８）
撮像部により生成された、左眼及び右眼を含むユーザの顔の少なくとも一部が表された画像から、前記ユーザの顔が前記撮像部に対して正対しているか否かを判定する顔向き判定部と、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出する瞳孔検出部と、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、かつ、前記画像上の前記右眼に基づいて前記右眼の視線方向を検出する視線検出部と、
前記ユーザの顔が前記撮像部に対して正対しているときの前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係と、前記左眼の視線方向及び前記右眼の視線方向と、前記撮像部と前記ユーザによる注視対象となる面間の位置関係とに基づいて実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置を算出し、実空間での前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置とから、実空間での前記左眼と前記右眼の間の瞳孔間距離を算出する瞳孔間距離算出部と、
を有する注視位置検出装置。
（付記９）
撮像部により生成された、左眼及び右眼を含む前記ユーザの顔の少なくとも一部が表された画像から、前記左眼及び前記右眼のそれぞれの瞳孔を検出し、
前記画像上の前記左眼に基づいて前記左眼の視線方向を検出し、
前記画像上の前記右眼に基づいて前記右眼の視線方向を検出し、
前記画像に基づいて前記ユーザの顔向きを判定し、
前記画像上の前記左眼の瞳孔の位置及び前記右眼の瞳孔の位置に応じた前記撮像部と前記左眼及び前記右眼間の位置関係、前記左眼の視線方向及び前記右眼の視線方向、前記ユーザの顔の向き、前記撮像部と前記ユーザによる注視対象となる面間の位置関係、及び、実空間での前記左眼と前記右眼間の瞳孔間距離に基づいて、前記注視対象となる面上の注視位置を検出する、
ことをコンピュータに実行させるための注視位置検出用コンピュータプログラム。
【符号の説明】
【００９７】
１    デジタルサイネージシステム（注視位置検出装置）
２    表示装置
２ａ    表示画面
３    カメラ
４    入力装置
５    記憶媒体アクセス装置
６    メモリ
７    プロセッサ
８    記憶媒体
２１    瞳孔検出部
２２    視線検出部
２３    顔向き判定部
２４    瞳孔間距離算出部
２５    注視位置検出部
【図１】
2018205819.tif 000013
【図２】
2018205819.tif 000014
【図３】
2018205819.tif 000015
【図４】
2018205819.tif 000016
【図５】
2018205819.tif 000017
【図６】
2018205819.tif 000018
【図７】
2018205819.tif 000019
【図８】
2018205819.tif 000020
【図９】
2018205819.tif 000021
【図１０】
2018205819.tif 000022