(57)【特許請求の範囲】
【請求項１】
注視対象となる物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部とを含み、
前記補正値算出部は、前記第１の複数の視線位置に外接する矩形形状の領域または前記物体の形状に応じた形状の領域の各隅の座標が、各座標の点で囲まれる前記物体の存在領域を表す領域の各隅の座標と対応するように変換する前記補正値を算出する、視線位置検出装置。
【請求項２】
注視対象となる物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部とを含み、
前記補正値算出部は、前記物体の存在領域と同一の形状及びサイズの仮想領域が、前記第１の複数の視線位置のうちの最大数の視線位置を含む位置を探索し、前記仮想領域が前記第１の複数の視線位置のうちの最大数の視線位置を含む位置にあるときの前記仮想領域の所定基準位置と、前記物体の存在領域の対応する所定基準位置との間のずれ量を前記補正値として算出する、視線位置検出装置。
【請求項３】
前記補正値算出部は、前記第１の複数の視線位置の数以上の数の第２の複数の視線位置であって、前記視線位置特定部が特定した前記第２の複数の視線位置を各視線位置に基づいてクラスタリングし、クラスタリングにより得られる複数のクラスタのうちから、最大数の視線位置を含むクラスタを選択し、選択したクラスタに含まれる複数の視線位置を前記第１の複数の視線位置として、前記補正値を算出する、請求項１または２に記載の視線位置検出装置。
【請求項４】
注視対象となる物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部と、
前記物体の周辺に位置する前記被写体の注視対象とならない非注視対象物体の位置情報を記憶する非注視物体位置記憶部とを含み、
前記補正値算出部は、前記第１の複数の視線位置が、前記物体位置記憶部に記憶された前記位置情報が示す各座標の点で囲まれる前記物体の存在領域に対応せず、且つ、前記第１の複数の視線位置が、前記非注視物体位置記憶部に記憶された前記位置情報が示す前記非注視対象物体の存在領域に対応する場合に、前記補正値を算出する、視線位置検出装置。
【請求項５】
前記視線位置特定部が前記被写体の視線位置を特定することは、前記補正値算出部により算出された前記補正値に基づいて、特定した前記視線位置を補正することを含む、請求項１〜４のうちのいずれか１項に記載の視線位置検出装置。
【請求項６】
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値であって、前記第１の複数の視線位置に外接する矩形形状の領域または前記物体の形状に応じた形状の領域の各隅の座標が、各座標の点で囲まれる前記物体の存在領域を表す領域の各隅の座標と対応するように変換する前記補正値を算出することを含む、コンピューターにより実行される視線位置検出方法。
【請求項７】
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値であって、前記物体の存在領域と同一の形状及びサイズの仮想領域が、前記第１の複数の視線位置のうちの最大数の視線位置を含む位置を探索し、前記仮想領域が前記第１の複数の視線位置のうちの最大数の視線位置を含む位置にあるときの前記仮想領域の所定基準位置と、前記物体の存在領域の対応する所定基準位置との間のずれ量である前記補正値を算出することを含む、コンピューターにより実行される視線位置検出方法。
【請求項８】
被写体の視線位置を特定し、
特定した第１の複数の視線位置が、注視対象となる物体の存在領域に対応せず、且つ、前記第１の複数の視線位置が、前記物体の周辺に位置する前記被写体の注視対象とならない非注視対象物体の存在領域に対応する場合に、
前記第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す各座標の点で囲まれる前記物体の位置に整合させる補正値を算出することを含む、コンピューターにより実行される視線位置検出方法。
【請求項９】
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値であって、前記第１の複数の視線位置に外接する矩形形状の領域または前記物体の形状に応じた形状の領域の各隅の座標が、各座標の点で囲まれる前記物体の存在領域を表す領域の各隅の座標と対応するように変換する前記補正値を算出する、
処理をコンピューターに実行させる視線位置検出プログラム。
【請求項１０】
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値であって、前記物体の存在領域と同一の形状及びサイズの仮想領域が、前記第１の複数の視線位置のうちの最大数の視線位置を含む位置を探索し、前記仮想領域が前記第１の複数の視線位置のうちの最大数の視線位置を含む位置にあるときの前記仮想領域の所定基準位置と、前記物体の存在領域の対応する所定基準位置との間のずれ量である前記補正値を算出する、
処理をコンピューターに実行させる視線位置検出プログラム。
【請求項１１】
被写体の視線位置を特定し、
特定した第１の複数の視線位置が、注視対象となる物体の存在領域に対応せず、且つ、前記第１の複数の視線位置が、前記物体の周辺に位置する前記被写体の注視対象とならない非注視対象物体の存在領域に対応する場合に、
前記第１の複数の視線位置と、注視対象となる物体の位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す各座標の点で囲まれる前記物体の位置に整合させる補正値を算出する、
処理をコンピューターに実行させる視線位置検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、視線位置検出装置、視線位置検出方法及び視線位置検出プログラムに関する。
【背景技術】
【０００２】
視線検出中に、対象者の個人差にともなう視線の誤差を補正するための補正値を算出する補正値算出装置が知られている（例えば、特許文献１参照）。この補正値算出装置は、被写体の眼の撮影画像に基づいて算出した眼から表示装置の画面に向かう第１の視線ベクトルと、表示画像上の特徴量に基づいて決定した被写体が注視している注視点に向かう第２の視線ベクトルとに基づいて、補正値を算出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2011-217764号公報
【特許文献２】特開平11-76165号公報
【特許文献３】特表2013-524390号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特許文献１に記載の構成では、ある一時点の撮影画像に基づいて算出した第１の視線ベクトルを用いて、補正値をリアルタイムに算出するので、精度の良い補正値を算出することが難しい。例えば、対象者が表示装置の画面の全体的に見渡してから、表示画像上の特徴量に基づく注視点を見た場合は、その間に得られる複数の視線位置の多くは、表示画像上の特徴量に基づく注視点を対象者が注視していないときの視線位置となる。このため、かかる視線位置を個別的に用いて補正値を算出する構成では、精度の良い補正値を算出することが難しい。
【０００５】
そこで、開示の技術は、精度の良い補正値を算出することが可能な視線位置検出装置、視線位置検出方法及び視線位置検出プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本開示の一局面によれば、注視対象となる物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部とを含み、前記補正値算出部は、前記第１の複数の視線位置に外接する矩形形状の領域または前記物体の形状に応じた形状の領域の各隅の座標が、各座標の点で囲まれる前記物体の存在領域を表す領域の各隅の座標と対応するように変換する前記補正値を算出する、視線位置検出装置が提供される。
【発明の効果】
【０００７】
本開示の技術によれば、精度の良い補正値を算出することが可能な視線位置検出装置、視線位置検出方法及び視線位置検出プログラムが得られる。
【図面の簡単な説明】
【０００８】
【図１】視線位置検出装置が適用される視線位置検出システム１の一例を示す図である。
【図２】視線位置検出装置１００のハードウェア構成の一例を示す図である。
【図３】視線位置検出装置１００の機能ブロック図である。
【図４】商品位置データベース１４の説明図（その１）である。
【図５】商品位置データベース１４の説明図（その２）である。
【図６】視線位置検出装置１００により実行される視線位置データベース生成処理の一例を示すフローチャートである。
【図７】瞳孔間距離と商品−ユーザ間距離との関係の一例を示す図である。
【図８】商品−ユーザ間距離とカテゴリとの関係の一例を示す図である。
【図９】視線位置検出装置１００により実行される補正値データベース生成処理の一例を示すフローチャートである。
【図１０】視線位置検出装置１００により実行されるキャリブレーション処理の一例を示すフローチャートである。
【図１１】想定シーンの一例を示す図である。
【図１２】補正規則の一例の説明図である。
【図１３】補正規則の一例による補正値算出処理を示すフローチャートである。
【図１４】補正規則の他の一例の説明図である。
【図１５】補正規則の他の一例による補正値算出処理を示すフローチャートである。
【図１６】補正規則の更なる他の一例の説明図である。
【図１７】補正規則の更なる他の一例による補正値算出処理を示すフローチャートである。
【図１８】視線位置選別処理の説明図である。
【図１９】補正値算出部１２により実行される視線位置選別処理の一例を示すフローチャートである。
【図２０】ステップＳ１９１２で抽出される複数の視線位置及び商品Ｃｔの位置関係とキャリブレーションの必要性との関係を示す図である。
【図２１】視線センサ２０と３つの商品Ｃ１乃至Ｃ３の位置関係の一例を示す上面図である。
【図２２】図２１に示す例で使用される商品位置データベース１４内のデータの一例を示す図である。
【図２３】想定シーンの他の一例を示す図である。
【図２４】視線位置検出装置１００により実行される補正値データベース生成処理の他の一例を示すフローチャートである。
【図２５】クラスタと複数の視線位置との関係の説明図である。
【図２６】複数のクラスタと複数の商品との位置関係の一例を示す図である。
【図２７】補正値の算出方法の説明図である。
【図２８】補正値算出部１２により実行される視線位置選別処理の他の一例を示すフローチャートである。
【図２９】対応付け処理の一例を示すフローチャートである。
【図３０】各距離を表す表図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
図１は、視線位置検出装置が適用される視線位置検出システム１の一例を示す図である。
【００１１】
視線位置検出システム１は、視線センサ２０と、視線位置検出装置１００とを含む。視線位置検出装置１００は、視線センサ２０とは有線または無線で通信可能に接続される。
【００１２】
視線センサ２０は、カメラ２１と、視線ベクトル算出装置２２とを含む。
【００１３】
カメラ２１は、ユーザＳ（被写体の一例）の眼の撮影画像を取得する。カメラ２１は、任意のタイプの撮像素子を含んでよい。例えば、カメラ２１は、比較的安価なＣＭＯＳ(complementary metal-oxide-semiconductor)カメラであってよい。
【００１４】
視線ベクトル算出装置２２は、カメラ２１の撮影画像に基づいて、ユーザＳの視線ベクトルＶ１を算出する。ユーザＳの視線ベクトルＶ１の算出方法は、任意である。ユーザＳの視線ベクトルＶ１の算出方法は、例えば特開2011-217764号公報に開示される方法であってよい。また、視線方向（視線ベクトルＶ１）の検出方法は、瞳孔と角膜反射を検知し、それらの位置関係から視線方向を算出する角膜反射法であってもよい。この場合、視線センサ２０は、近赤外ＬＥＤ(Light-Emitting Diode)を含む。近赤外ＬＥＤによる近赤外光をユーザＳの顔に当てるこの方法は、瞳孔は、視線方向によって位置が変わるが、角膜反射の位置は、視線方向には影響を受けないことを利用するものである。近赤外ＬＥＤによる近赤外光を顔に当てる場合は、目の中に基準点となる角膜反射が発生するため、カメラのみから計測する方法と比較し計測精度が向上する。
【００１５】
尚、視線ベクトル算出装置２２は、図１に示すように、カメラ２１に内蔵されてもよいが、他の実施例では、例えばネットワーク２を介してカメラ２１及び視線位置検出装置１００に接続されてもよい。また、視線ベクトル算出装置２２は、視線位置検出装置１００に組み込まれてもよい。或いは、視線位置検出装置１００の機能の一部又は全部は、カメラ２１に内蔵されてもよい。
【００１６】
視線位置検出装置１００は、視線センサ２０により検出される視線位置Ｐを補正するための補正値を算出する。補正値の算出方法については後述する。
【００１７】
図２は、視線位置検出装置１００のハードウェア構成の一例を示す図である。
【００１８】
視線位置検出装置１００は、例えばコンピューターにより実現される。図２に示す例では、視線位置検出装置１００は、制御部１０１、主記憶部１０２、補助記憶部１０３、ドライブ装置１０４、ネットワークＩ／Ｆ部１０６、入力部１０７を含む。
【００１９】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力部１０７や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。
【００２０】
主記憶部１０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などである。主記憶部１０２は、制御部１０１が実行する基本ソフトウェアであるＯＳ（Operating System）やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２１】
補助記憶部１０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２２】
ドライブ装置１０４は、記録媒体１０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【００２３】
記録媒体１０５は、所定のプログラムを格納する。この記録媒体１０５に格納されたプログラムは、ドライブ装置１０４を介して視線位置検出装置１００にインストールされる。インストールされた所定のプログラムは、視線位置検出装置１００により実行可能となる。
【００２４】
ネットワークＩ／Ｆ部１０６は、有線及び／又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と視線位置検出装置１００とのインターフェースである。
【００２５】
入力部１０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやタッチパッド等を有する。
【００２６】
尚、図２に示す例において、以下で説明する各種処理等は、プログラムを視線位置検出装置１００に実行させることで実現することができる。また、プログラムを記録媒体１０５に記録し、このプログラムが記録された記録媒体１０５を視線位置検出装置１００に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体１０５は、様々なタイプの記録媒体を用いることができる。例えば、記録媒体１０５は、ＣＤ(Compact Disc)−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１０５には、搬送波は含まれない。
【００２７】
図３は、視線位置検出装置１００の機能ブロック図である。
【００２８】
視線位置検出装置１００は、視線ベクトル取得部１０と、視線位置特定部１１と、補正値算出部１２とを含む。視線位置特定部１１は、補正前視線位置特定部１１ａと、キャリブレーション処理部１１ｂとを含む。視線ベクトル取得部１０は、例えば図２に示すネットワークＩ／Ｆ部１０６により実現できる。また、視線位置特定部１１及び補正値算出部１２は、例えば図２に示す制御部１０１により実現できる。視線位置検出装置１００は、更に、視線位置データベース１３と、商品位置データベース（物体位置記憶部の一例）１４と、非商品位置データベース（非注視物体位置記憶部の一例）１５とを含む。また、視線位置検出装置１００は、更に、商品対応規則データベース１６と、補正規則データベース１７と、補正値データベース１８とを含む。視線位置データベース１３、商品位置データベース１４、非商品位置データベース１５、商品対応規則データベース１６、補正規則データベース１７及び補正値データベース１８は、例えば図２に示す補助記憶部１０３により実現できる。
【００２９】
視線ベクトル取得部１０は、視線センサ２０からユーザＳの視線ベクトルを取得する。尚、視線ベクトル取得部１０は、視線ベクトルと共に、当該視線ベクトルに係るユーザＳを特定する情報を取得してもよい。視線ベクトルに係るユーザＳを特定する情報は、例えば、顔認識技術等により視線ベクトル算出装置２２が生成できる。
【００３０】
補正前視線位置特定部１１ａは、視線ベクトル取得部１０が取得した視線ベクトルに基づいてユーザＳの視線位置を算出する。例えば、補正前視線位置特定部１１ａは、視線ベクトルと、ユーザＳ及び物体間の距離とに基づいて、物体が位置する仮想平面Ｍ上におけるユーザＳの視線位置を算出する。補正前視線位置特定部１１ａは、一の視線ベクトルに対して一の視線位置を算出する。従って、ユーザＳの視線位置は、複数の視線ベクトルの数と同じ数算出されることになる。
【００３１】
ここで、物体とは、任意であるが、以下では、一例として、ユーザＳによる注視対象となる商品であるとする。また、以下では、一例として、商品は、店舗に陳列される任意の商品を想定する。従って、ユーザＳは、店舗に来る人（商品を購買する可能性のある人）である。
【００３２】
ユーザＳ及び物体間の距離は、測定値であってもよいし、固定値（想定値）であってよい。以下では、一例として、補正前視線位置特定部１１ａは、ユーザＳの瞳孔間距離に基づいて、ユーザＳ及び商品間の距離（以下、「商品−ユーザ間距離」とも称する）を算出する。但し、商品−ユーザ間距離の算出方法は、任意であり、例えば視線センサ２０が距離画像を取得する場合は、商品−ユーザ間距離は距離画像に基づいて算出されてもよい。
【００３３】
仮想平面Ｍは、図１に示すように、例えば、商品の位置（座標）を含む鉛直平面である。視線位置Ｐは、図１に示すように、視線ベクトルＶ１が仮想平面Ｍに交わる点の位置である。以下では、便宜上、図１に示すように、仮想平面Ｍの左端を原点としてＸＹＺ軸を定義し、Ｚ軸の正方向は、ユーザＳ側であるとする。
【００３４】
キャリブレーション処理部１１ｂは、補正値データベース１８内の補正値に基づいて、補正前視線位置特定部１１ａにより算出されるユーザＳの視線位置を補正する。キャリブレーション処理部１１ｂにより補正された視線位置は、視線位置特定部１１による最終的な視線位置の算出結果として出力される。
【００３５】
キャリブレーション処理部１１ｂは、補正値データベース１８内に補正値が存在するときは、補正前視線位置特定部１１ａにより算出されるユーザＳの視線位置を補正するが、補正値が存在しないときは、補正しない。補正値が存在しないとは、補正値が０であることを含む。以下、キャリブレーション処理部１１ｂによる補正後の視線位置と、補正前視線位置特定部１１ａによる補正前の視線位置とを特に区別しない場合は、単に「視線位置特定部１１により算出された視線位置」という。即ち、以下の説明で「視線位置特定部１１により算出された視線位置」は、キャリブレーション処理部１１ｂによる補正後の視線位置、及び、補正前視線位置特定部１１ａによる補正前の視線位置のいずれであってもよい。
【００３６】
補正値算出部１２は、視線位置特定部１１により算出された複数の視線位置と、商品位置データベース１４に記憶された商品の位置情報とに基づいて、複数の視線位置を位置情報が示す商品の位置に整合させる補正値を算出する。補正値を算出することは、既にある補正値（例えば初期値や前回値）を更新すること伴ってもよい。補正値算出部１２による補正値の算出方法の具体例については後述する。
【００３７】
視線位置データベース１３は、視線位置特定部１１により算出された視線位置を記憶する。従って、視線位置データベース１３には、視線位置特定部１１により算出された複数の視線位置が記憶される。視線位置データベース１３内の各視線位置は、補正値算出部１２により抽出されるまで保持されてよい。視線位置データベース１３の生成方法の一例は、図６を参照して後述する。
【００３８】
商品位置データベース１４は、ユーザＳの注視対象となる商品の位置を表す位置情報を記憶する。位置情報が表す商品の位置は、任意であり、例えば商品の中心位置、重心位置、商品の顕著性の高い部位の位置等であってもよい。図４及び図５は、商品位置データベース１４の説明図である。図４に示す例では、商品位置データベース１４には、商品Ｃ１，Ｃ２・・・に関する左上位置Ｎ１及び右下位置Ｎ２（図５参照）のＸＹ座標が記憶される。商品位置データベース１４は、商品の位置情報に加えて、商品領域の形状及びサイズに関する情報を記憶してもよい。商品領域とは、仮想平面上における商品が占める領域を指すが、簡易的な商品外形に対応した領域であってもよい。
【００３９】
非商品位置データベース１５は、商品周辺に位置する非注視対象物体の位置を表す位置情報（以下、「非注視対象物体位置情報」と称する）を記憶する。非注視対象物体とは、ユーザＳの注視対象とならない物体である。ユーザＳの注視対象とならない物体とは、一般的な基準で決定され、特殊なユーザＳにとっては注視対象となるような物体を意味しない。非注視対象物体とは、例えば、商品棚自体（例えばフレームなど）、商品と隣の商品との隙間、店舗の壁、柱又はその類である。非注視対象物体位置情報は、商品ごとに、商品に対応付けて記憶されてよい。尚、非注視対象物体位置情報は、好ましくは、商品周辺に位置する所定物体の位置が、非注視対象物体位置情報が示す非注視対象物体の存在領域に含まれないように生成される。所定物体は、ユーザＳによる注視対象となる、商品以外の物体であり、例えば商品の説明や値段が書かれた札又はその類である。尚、所定物体の位置情報は、商品位置データベース１４内に、商品ごとに、商品に対応付けて記憶されてもよい。非商品位置データベース１５は、適宜、省略されてもよい。
【００４０】
商品対応規則データベース１６は、視線位置特定部１１により算出される視線位置と、商品との対応関係を特定するための情報を記憶する。例えば、商品対応規則データベース１６は、商品ごとに、それぞれに商品をユーザＳが注視しているときに視線位置特定部１１により算出される視線位置の取り得る範囲を記憶する。かかる範囲は、商品位置データベース１４内の商品の位置情報に基づいて算出されてもよいし、試験や経験則等に基づいて設定されてもよい。尚、商品対応規則データベース１６は、適宜、省略されてもよい。
【００４１】
補正規則データベース１７は、補正値算出部１２による補正を行う際の補正規則を記憶する。補正規則は、視線位置特定部１１により算出される複数の視線位置と、該複数の視線位置に対応する商品に係る位置情報（商品位置データベース１４内の位置情報）とから、補正値を導き出す算出式（後述）に対応してよい。
【００４２】
補正値データベース１８は、補正値算出部１２により算出された補正値を記憶する。補正値は、商品ごとに記憶される。また、補正値は、ユーザＳや仮想平面やユーザ位置ごとに記憶されてもよい。補正値の算出方法については後述する。
【００４３】
図３に示す視線位置検出装置１００によれば、補正値算出部１２が複数の視線位置（即ち視線位置の集まり）に基づいて補正値を算出するので、一の視線位置毎に補正値を算出する場合に比べて、補正値の精度を高めることができる。これは、複数の視線位置のそれぞれが、必ずしも商品をユーザＳが見ているときの視線位置に対応せず、例えば商品周辺を見渡しているときの視線位置を含む場合があるためである。
【００４４】
また、図３に示す視線位置検出装置１００によれば、ユーザＳが商品を見ている（注視している）ときの複数の視線位置を用いて、補正値を算出することが可能である。このため、商品以外の顕著性の高い特別な物体（キャリブレーション用基準点）をキャリブレーションの目的で配置する必要が無くなる。即ち、商品自体がキャリブレーション用基準点となるので、商品以外のキャリブレーション用基準点をユーザＳに注視してもらう必要がなくなる。このように図３に示す視線位置検出装置１００によれば、ユーザＳの自然な視線の動き（興味のある商品の注視等）の中で得られる複数の視線位置を用いて、補正値を算出できる。これにより、ユーザＳに特別な負荷をかけることなく、補正値の算出機会を効率的に増加できる。
【００４５】
次に、図６乃至図１１を参照して、視線位置検出装置１００の動作例について説明する。ここでは、視線センサ２０のカメラ２１が、ある特定の一の商品（以下、「商品Ｃｔ」と称する）を注視するユーザＳを撮像するように設けられているシーン（図１１参照）を想定する。尚、図１１に示す例では、商品Ｃｔが商品棚２００上に置かれている状況を概略的に示す図である。尚、この場合、カメラ２１（図示せず）は、例えば商品Ｃｔの近傍に配置され、Ｚ軸の正方向に視線方向を有する。また、ユーザＳ（図示せず）は、商品ＣｔよりもＺ軸の正方向側の位置から、商品Ｃｔを注視するものとする。
【００４６】
図６は、視線位置検出装置１００により実行される視線位置データベース生成処理の一例を示すフローチャートである。図６に示す処理は、視線センサ２０が同一のユーザＳに係る視線ベクトルを算出する毎に実行されてよい。尚、視線センサ２０が複数のユーザＳに係る視線ベクトルを同時に算出する場合は、図６に示す処理は、ユーザＳ毎に並列的に実行されてよい。
【００４７】
ステップＳ６００では、視線ベクトル取得部１０は、視線センサ２０からユーザＳの視線ベクトルを取得する。また、視線ベクトル取得部１０は、視線センサ２０からユーザＳの瞳孔間距離を取得する。例えば、視線センサ２０は、視線ベクトルを算出した際の画像から得られるユーザＳの瞳孔間距離を、視線ベクトルに対応付けて視線位置検出装置１００に送信する。
【００４８】
ステップＳ６０２では、補正前視線位置特定部１１ａは、ユーザＳの瞳孔間距離に基づいて商品−ユーザ間距離を算出する。例えば、補正前視線位置特定部１１ａは、図７に示すような瞳孔間距離と商品−ユーザ間距離との関係を示す情報を参照して、商品−ユーザ間距離を算出してよい。尚、商品−ユーザ間距離の算出は、視線センサ２０により実現されてもよい。この場合、視線ベクトル取得部１０は、瞳孔間距離に代えて、商品−ユーザ間距離を視線センサ２０から取得してよい。この場合、ステップＳ６０２の処理は省略される。
【００４９】
ステップＳ６０４では、補正前視線位置特定部１１ａは、ステップＳ６０２で算出した商品−ユーザ間距離のカテゴリを設定する。例えば、図８に示すような商品−ユーザ間距離とカテゴリとの関係を示す情報を参照して、商品−ユーザ間距離のカテゴリを設定してよい。尚、ここでは、算出した商品−ユーザ間距離が高精度でない点を考慮して、カテゴリを設定しているが、算出した商品−ユーザ間距離をそのまま利用することもできる。この場合は、ステップＳ６０４の処理は省略される。
【００５０】
ステップＳ６０６では、補正前視線位置特定部１１ａは、ステップＳ６００で取得した視線ベクトルに対応する視線位置を算出する。この際、補正前視線位置特定部１１ａは、ステップＳ６０２で設定したカテゴリに基づいて、ユーザＳの視線ベクトルの始点のＺ座標を設定（推定）する。即ち、補正前視線位置特定部１１ａは、仮想平面ＭとユーザＳの視線ベクトルの始点との間の距離（Ｚ方向の距離）を設定する。例えば、図８に示すカテゴリ"Ｔ１"の場合、補正前視線位置特定部１１ａは、ユーザＳの視線ベクトルの始点のＺ座標を例えば５０［ｃｍ］に設定する。また、図８に示すカテゴリ"Ｔ２"の場合、補正前視線位置特定部１１ａは、ユーザＳの視線ベクトルの始点のＺ座標を例えば７５［ｃｍ］に設定する。また、図８に示すカテゴリ"Ｔ３"の場合、補正前視線位置特定部１１ａは、ユーザＳの視線ベクトルの始点のＺ座標を例えば１００［ｃｍ］に設定する。尚、このようなカテゴリに応じたＺ方向の距離は、商品Ｃｔの手前の通路の幅等に基づいて予め設定されてよい。また、商品−ユーザ間距離をそのまま利用して、ユーザＳの視線ベクトルの始点のＺ座標を設定することも可能である。この場合、補正前視線位置特定部１１ａは、ユーザＳの視線ベクトルの始点のＺ座標を商品−ユーザ間距離の値に設定する。補正前視線位置特定部１１ａは、設定した視線ベクトルの始点のＺ座標に基づいて、仮想平面Ｍに視線ベクトルが交わる交点（図１の視線位置Ｐ参照）を、視線位置として算出する。
【００５１】
ステップＳ６０８では、補正前視線位置特定部１１ａは、ステップＳ６０６で算出した視線位置を視線位置データベース１３に記憶する。或いは、補正規則データベース１７内に補正値が存在する場合は、キャリブレーション処理部１１ｂは、ステップＳ６０６で補正前視線位置特定部１１ａが算出した視線位置を補正値により補正した上で、視線位置データベース１３に記憶してもよい。このようにして視線位置特定部１１により算出される複数の視線位置が視線位置データベース１３に記憶（蓄積）される。この際、複数の視線位置は、ユーザＳや仮想平面や商品−ユーザ間距離ごとに記憶されてよい。以下では、複数の視線位置は、ユーザＳごとに記憶されているものとする。
【００５２】
図９は、視線位置検出装置１００により実行される補正値データベース生成処理の一例を示すフローチャートである。図９に示す処理は、例えば、視線位置特定部１１により算出される視線位置が視線位置データベース１３に所定数蓄積される毎に実行されてもよいし、所定時間毎で実行されてもよい。
【００５３】
ステップＳ９００では、補正値算出部１２は、視線位置データベース１３内から複数の視線位置（第１の複数の視線位置の一例）を抽出する。抽出する複数の視線位置は、好ましくは、同一のユーザに係る視線位置である。この場合、抽出する複数の視線位置は、同一のユーザＳに係る全ての視線位置であってもよい。或いは、抽出する複数の視線位置は、所定時間当たりに得られる同一のユーザＳに係る視線位置であってよい。尚、抽出する視線位置の数は、ユーザＳが商品を見ている時間やカメラ２１のフレームレート等に依存する。或いは、補正値算出部１２は、視線位置データベース１３内の同一のユーザＳに係る複数の視線位置（第２の複数の視線位置の一例）のうちから、所定条件を満たす複数の視線位置（第１の複数の視線位置の他の一例）のみを抽出してもよい。所定条件を満たす複数の視線位置は、例えば、広がりが小さい（隣接する視線位置との距離が小さい）集まりを形成する複数の視線位置であってもよい。また、商品の近傍（例えば、商品−ユーザ間距離や検出誤差に基づいて設定した範囲）に存在する複数の視線位置であってもよい。この種の抽出処理（視線位置選別処理）の例については、図１９等を参照して後述する。
【００５４】
ステップＳ９０２では、補正値算出部１２は、商品位置データベース１４内の商品Ｃｔに係る位置情報を参照して、ステップＳ９００で抽出した複数の視線位置が商品Ｃｔの位置に対応するか否かを判定する。商品Ｃｔの位置に対応するか否かは任意の方法で判定されてもよい。例えば、補正値算出部１２は、複数の視線位置の重心位置（平均位置）が、商品Ｃｔに関する左上位置Ｎ１及び右下位置Ｎ２で規定される矩形領域（商品領域）内に存在する場合は、商品Ｃｔの位置に対応すると判定してもよい。複数の視線位置の重心位置とは、各視線位置に同一の質量を与えるときに得られる重心位置に対応してよい。複数の視線位置が商品Ｃｔの位置に対応する場合は、補正値算出部１２は補正値の算出は不要と判断して、処理はステップＳ９００に戻り、それ以外の場合は、ステップＳ９０４に進む。
【００５５】
ステップＳ９０４では、補正値算出部１２は、非商品位置データベース１５内の商品Ｃｔに対応付けられた非注視対象物体位置情報を参照して、ステップＳ９００で抽出した複数の視線位置が非注視対象物体の位置に対応するか否かを判定する。非注視対象物体の位置に対応するか否かは任意の方法で判定されてもよく、ステップＳ９０２と同様の方法で判定されてもよい。即ち、補正値算出部１２は、複数の視線位置の重心位置が、非注視対象物体位置情報が示す非注視対象物体の存在領域内に存在する場合は、非注視対象物体の位置に対応すると判定してもよい。複数の視線位置が非注視対象物体の位置に対応する場合は、処理はステップＳ９０６に進み、それ以外の場合は、補正値算出部１２は補正値の算出は不要と判断して、ステップＳ９００に戻る。尚、ステップＳ９０４で否定判定となる場合とは、例えば、複数の視線位置の重心位置が所定物体（例えば値札）の存在領域内に存在する場合等である。
【００５６】
ステップＳ９０６では、補正値算出部１２は、商品対応規則データベース１６を参照して、ステップＳ９００で抽出した複数の視線位置を、商品位置データベース１４内の商品に対応付ける。例えば、補正値算出部１２は、ステップＳ９００で抽出した複数の視線位置に最も近い位置情報を持つ商品を、ステップＳ９００で抽出した複数の視線位置に対応付ける。本例では、補正値算出部１２は、ステップＳ９００で抽出した複数の視線位置を、商品位置データベース１４内の商品Ｃｔに対応付けることになる。尚、かかる対応付けができない場合は、ステップＳ９００に戻ることとしてよい。尚、かかる対応付けができない場合としては、例えば、ステップＳ９００で抽出した複数の視線位置が、例えば商品Ｃｔ以外の他の商品（ユーザＳによる注視対象となる他の商品）をユーザＳが注視しているときの視線位置である可能性がある場合である。
【００５７】
ステップＳ９０８では、補正値算出部１２は、ステップＳ９００で抽出した複数の視線位置を、商品位置データベース１４内の位置情報に基づく商品Ｃｔの位置に整合させる補正値を算出する。補正値の算出方法は、任意である。補正値の算出方法の例は後述する。
【００５８】
ステップＳ９１０では、補正値算出部１２は、ステップＳ９０８で算出した補正値を補正値データベース１８に記憶する。補正値算出部１２は、ユーザＳ毎に、商品Ｃｔに係る補正値を記憶してもよいし、ユーザＳの如何に拘らず、商品Ｃｔに係る一の補正値を記憶してもよい。また、補正値算出部１２は、既に商品Ｃｔに係る補正値が補正値データベース１８に記憶されている場合は、補正値を更新する。尚、補正値の更新は、上書きであってもよいし、既存の補正値との平均化を伴ってもよい。
【００５９】
図９に示す処理によれば、複数の視線位置（即ち視線位置の集まり）に基づいて補正値を算出するので、一の視線位置毎に補正値を算出する場合に比べて、補正値の精度を高めることができる。これは、複数の視線位置のそれぞれが、必ずしも商品ＣｔをユーザＳが見ているときの視線位置に対応せず、例えば商品Ｃｔ周辺を見渡しているときの視線位置を含む場合があるためである。
【００６０】
また、図９に示す処理によれば、上述の如く、複数の視線位置が非注視対象物体の位置に対応する場合（ステップＳ９０４のＹＥＳ）に、補正値算出部１２は、非注視対象物体の位置に対応する複数の視線位置を商品Ｃｔの位置に整合させる補正値を算出する。これにより、補正値の精度を高めることができる。これは、非注視対象物体の位置に対応する複数の視線位置は、ユーザＳが商品Ｃｔを見ている（注視している）ときの複数の視線位置である可能性が高いためである。具体的には、商品棚自体のような非注視対象物体をユーザＳが注視するのは不自然である。従って、非注視対象物体の位置に対応する複数の視線位置は、非注視対象物体周辺の商品ＣｔをユーザＳが見ている（注視している）ときの複数の視線位置である可能性が高い傾向にある。即ち、視線位置の算出誤差に起因して、複数の視線位置が商品Ｃｔの位置に対応していない可能性が高い。従って、非注視対象物体の位置に対応する複数の視線位置に基づいて、複数の視線位置を商品Ｃｔの位置に整合させる補正値を算出することで、補正値の精度を高めることができる。
【００６１】
また、図９に示す処理によれば、ユーザＳが商品Ｃｔを見ている（注視している）ときの複数の視線位置を用いて、補正値を算出することが可能となるので、キャリブレーション用基準点を別途配置する必要が無くなる。このように図９に示す処理によれば、ユーザＳの自然な視線の動き（興味のある商品Ｃｔの注視等）の中で得られる複数の視線位置を用いて、補正値を算出できる。これにより、ユーザＳに特別な負荷をかけることなく、補正値の算出機会を効率的に増加できる。
【００６２】
尚、図９に示す例において、ステップＳ９０２及び／又はステップＳ９０４の処理は省略されてもよい。例えば、ステップＳ９０４の処理は、非注視対象物体が想定されない場合に省略されてもよい。この場合は、非商品位置データベース１５も省略されてもよい。
【００６３】
図１０は、視線位置検出装置１００により実行されるキャリブレーション処理の一例を示すフローチャートである。図１０に示す処理は、補正前視線位置特定部１１ａが視線位置を算出する毎に実行される。
【００６４】
ステップＳ１０００では、キャリブレーション処理部１１ｂは、補正前視線位置特定部１１ａで算出された視線位置を取得する。
【００６５】
ステップＳ１００２では、キャリブレーション処理部１１ｂは、ステップＳ１０００で取得した視線位置に対応する補正値を補正値データベース１８から抽出する。例えば、補正値データベース１８にユーザごとに商品Ｃｔに係る補正値が記憶されている場合は、キャリブレーション処理部１１ｂは、今回のユーザＳに係る補正値を抽出する。尚、商品Ｃｔに係る補正値が補正値データベース１８に１つしか記憶されない場合は、キャリブレーション処理部１１ｂは、商品Ｃｔに係る補正値を抽出する。
【００６６】
ステップＳ１００４では、キャリブレーション処理部１１ｂは、ステップＳ１００２で抽出した補正値に基づいて、ステップＳ１０００で取得した視線位置を補正する。補正方法は、任意である。補正方法の例は、補正値の算出方法に関連して後述する。キャリブレーション処理部１１ｂは、補正した視線位置を視線位置データベース１３に記憶してよい。
【００６７】
図１０に示す処理によれば、上述の如く精度の高い補正値を用いてキャリブレーションを行うことができる。これにより、精度の高い視線位置を出力できる。
【００６８】
尚、図１０に示す処理は、補正前視線位置特定部１１ａが視線位置を算出する毎に実行されるが、他の態様であってよい。例えば、図１０に示す処理は、視線位置データベース１３に記憶された補正前視線位置特定部１１ａにより算出された複数の視線位置に対して一括的に実行されてもよい。
【００６９】
次に、図１１乃至図１７を参照して、補正値の算出方法（補正規則）の例について説明する。ここでも、視線センサ２０のカメラ２１が、ある特定の一の商品Ｃｔを注視するユーザＳを撮像するように設けられているシーン（図１１参照）を想定する。
【００７０】
図１２は、補正規則の一例の説明図である。図１２は、仮想平面Ｍ上における複数の視線位置Ｐ１〜Ｐ５及び商品Ｃｔが模式的に示されている。図１２に示す補正規則の例では、補正値は、以下の変換行列で表される。
【００７１】
【数１】
0006547268.tif 000002
図１３は、補正規則の一例による補正値算出処理を示すフローチャートである。図１３に示す処理は、図９に示したステップＳ９０８の処理の一例として実行される。
【００７２】
ステップＳ１３００では、補正値算出部１２は、ステップＳ９００で抽出した複数の視線位置のＸ座標の最大値（ｘｍａｘ）及び最小値（ｘｍｉｎ）とＹ座標の最大値（ｙｍａｘ）及び最小値（ｙｍｉｎ）を算出する。図１２には、複数の視線位置Ｐ１〜Ｐ５のＸ座標の最大値（ｘｍａｘ）及び最小値（ｘｍｉｎ）とＹ座標の最大値（ｙｍａｘ）及び最小値（ｙｍｉｎ）が図示されている。
【００７３】
ステップＳ１３０２では、補正値算出部１２は、ステップＳ１３００で算出した各値に基づいて、ステップＳ９００で抽出した複数の視線位置を外接する外接領域の各隅の座標を設定する。各隅の座標は、図１２に示すように、左上隅が（ｘｍｉｎ、ｙｍａｘ）、右上隅が（ｘｍａｘ、ｙｍａｘ）、右下隅が（ｘｍａｘ、ｙｍｉｎ）、左下隅が（ｘｍｉｎ、ｙｍｉｎ）と設定される。
【００７４】
ステップＳ１３０４では、補正値算出部１２は、商品位置データベース１４を参照して、商品Ｃｔに係る商品領域の各隅の座標を取得する。図１２に示す例では、商品Ｃｔに係る商品領域の各隅の座標は、左上隅が（Ｘ１、Ｙ１）、右上隅が（Ｘ２、Ｙ２）、右下隅が（Ｘ３、Ｙ３）左下隅が（Ｘ４、Ｙ４）である。
【００７５】
ステップＳ１３０６では、補正値算出部１２は、ステップＳ１３０２及びＳ１３０４で設定した各隅の座標が対応するように、数１に示す変換行列の各値ａ，ｂ，ｃ，ｄ，ｅ，ｆを算出する。即ち、補正値算出部１２は、（ｘｍｉｎ、ｙｍａｘ）が（Ｘ１、Ｙ１）、（ｘｍａｘ、ｙｍａｘ）が（Ｘ２、Ｙ２）、（ｘｍａｘ、ｙｍｉｎ）が（Ｘ３、Ｙ３）、（ｘｍｉｎ、ｙｍｉｎ）が（Ｘ４、Ｙ４）となるような、変換行列の各値ａ〜ｆを求める。補正値算出部１２は、算出した各値ａ，ｂ，ｃ，ｄ，ｅ，ｆを補正値として補正値データベース１８内に記憶することになる（図９のステップＳ９１０参照）。
【００７６】
図１２及び図１３に示す補正規則では、キャリブレーション処理部１１ｂは、以下の式に従って、補正前視線位置特定部１１ａにより算出された視線位置を補正してよい。
【００７７】
【数２】
0006547268.tif 000003
ここで、（ｘ、ｙ）は補正前視線位置特定部１１ａにより算出された視線位置のＸ座標及びＹ座標を表し、（ｕ，ｖ）は、キャリブレーション処理部１１ｂによる補正後の視線位置のＸ座標及びＹ座標を表す。
【００７８】
図１２及び図１３に示す補正規則によれば、ステップＳ９００で抽出した複数の視線位置に外接する矩形領域内の視線位置は、商品Ｃｔに係る商品領域内に補正可能となる。尚、図１２及び図１３に示す補正規則では、変換行列として、アフィン変換を例に示したが、アフィン変換以外に射影変換などを用いてもよい。また、補正値は、行列ではなく、関数で表現されてもよい。また、外接する領域形状は矩形以外に、商品領域の形状を基にした形状など任意の形状であってもよい。
【００７９】
図１４は、補正規則の他の一例の説明図である。図１４は、仮想平面Ｍ上における複数の視線位置Ｐ１〜Ｐ５及び商品Ｃｔが模式的に示されている。図１５は、補正規則の他の一例による補正値算出処理を示すフローチャートである。図１５に示す処理は、図９に示したステップＳ９０８の処理の一例として実行される。
【００８０】
ステップＳ１５００では、補正値算出部１２は、商品位置データベース１４を参照して、商品Ｃｔに係る商品領域の形状及びサイズを取得する。尚、商品Ｃｔに係る商品領域の形状及びサイズは、商品Ｃｔに係る商品領域の各隅の座標に基づいて算出されてもよい。
【００８１】
ステップＳ１５０２では、補正値算出部１２は、商品Ｃｔに係る商品領域を仮想平面Ｍ上で仮想的に動かしながら、ステップＳ９００で抽出した複数の視線位置が一番多く入る商品領域の位置を探索する。即ち、補正値算出部１２は、商品Ｃｔに係る商品領域と同じ大きさ・形状の領域Ｒ１（以下、「仮想領域Ｒ１」という）を、ステップＳ９００で抽出した複数の視線位置のうちの最大数が入るような位置に配置する。尚、補正値算出部１２は、一番多くの視線位置が入る仮想領域Ｒ１の位置が複数ある場合には、所定基準位置（後述）間の距離が最小になるような仮想領域Ｒ１の位置を選択する。或いは、補正値算出部１２は、商品Ｃｔに係る商品領域と同じ大きさ・形状の領域の重心と、ステップＳ９００で抽出した複数の視線位置のそれぞれとの距離の和が最小になるように、仮想領域Ｒ１の位置を決定してもよい。
【００８２】
ステップＳ１５０４では、補正値算出部１２は、ステップＳ１５０２で決定した位置の仮想領域Ｒ１の所定基準位置の座標を取得する。所定基準位置は、仮想領域Ｒ１内の任意である。図１４に示す例では、所定基準位置は、左上隅であり、そのＸＹ座標は（ｘｍｉｎ、ｙｍａｘ）である。
【００８３】
ステップＳ１５０６では、補正値算出部１２は、商品位置データベース１４を参照して、商品Ｃｔに係る商品領域の、対応する所定基準位置の座標を取得する。対応する所定基準位置とは、仮想領域Ｒ１の所定基準位置に対応することを意味し、仮想領域Ｒ１の所定基準位置に応じて決まる。図１４に示す例では、商品領域の対応する所定基準位置は、仮想領域Ｒ１の所定基準位置が仮想領域Ｒ１の左上隅であることに対応して、商品領域の左上隅であり、そのＸＹ座標は（Ｘ１、Ｙ１）である。
【００８４】
ステップＳ１５０８では、補正値算出部１２は、ステップＳ１５０４及びＳ１５０６で得た各所定基準位置のＸＹ座標が対応するように、補正値（ｄｘ、ｄｙ）を算出する。即ち、補正値（ｄｘ、ｄｙ）は、ステップＳ１５０４及びＳ１５０６で得た各所定基準位置のずれ量に対応する。例えば、補正値算出部１２は、ｄｘ＝ｘｍｉｎ−Ｘ１，ｄｙ＝ｙｍａｘ−Ｙ１として、補正値（ｄｘ、ｄｙ）を算出する。補正値算出部１２は、算出した補正値（ｄｘ、ｄｙ）を補正値データベース１８内に記憶することになる（図９のステップＳ９１０参照）。
【００８５】
図１４及び図１５に示す補正規則では、キャリブレーション処理部１１ｂは、以下の式に従って、補正前視線位置特定部１１ａにより算出された視線位置を補正してよい。
【００８６】
【数３】
0006547268.tif 000004
ここで、（ｘ、ｙ）は補正前視線位置特定部１１ａにより算出された視線位置のＸ座標及びＹ座標を表し、（ｕ，ｖ）は、キャリブレーション処理部１１ｂによる補正後の視線位置のＸ座標及びＹ座標を表す。
【００８７】
図１６は、補正規則の更なる他の一例の説明図である。図１６は、仮想平面Ｍ上における複数の視線位置Ｐ１〜Ｐ５及び商品Ｃｔが模式的に示されている。図１７は、補正規則の更なる他の一例による補正値算出処理を示すフローチャートである。図１７に示す処理は、図９に示したステップＳ９０８の処理の一例として実行される。
【００８８】
ステップＳ１７００では、補正値算出部１２は、ステップＳ９００で抽出した複数の視線位置の重心位置のＸＹ座標を算出する。図１６に示す例では、複数の視線位置Ｐ１〜Ｐ５の重心位置のＸＹ座標（ｘｇ、ｙｇ）が算出される。また、重心位置以外に、重心最近傍の視線位置や最頻の視線位置のような他の位置であってもよい。
【００８９】
ステップＳ１７０２では、補正値算出部１２は、商品位置データベース１４を参照して、商品Ｃｔに係る商品領域の所定位置（本例では重心位置）のＸＹ座標（Ｘｇ、Ｙｇ）を算出する。尚、所定位置は、商品領域の重心位置に代えて、商品Ｃｔにおける顕著性の高い部位の位置のような他の位置であってもよい。
【００９０】
ステップＳ１７０４では、補正値算出部１２は、ステップＳ１７００及びＳ１７０２で得た各重心位置のＸＹ座標が対応するように、補正値（ｄｘ、ｄｙ）を算出する。即ち、補正値（ｄｘ、ｄｙ）は、ステップＳ１７００及びＳ１７０２で得た各重心位置のずれ量に対応する。例えば、補正値算出部１２は、ｄｘ＝ｘｇ−Ｘｇ，ｄｙ＝ｙｇ−Ｙｇとして、補正値（ｄｘ、ｄｙ）を算出する。補正値算出部１２は、算出した補正値（ｄｘ、ｄｙ）を補正値データベース１８内に記憶することになる（図９のステップＳ９１０参照）。
【００９１】
図１６及び図１７に示す補正規則では、キャリブレーション処理部１１ｂは、数３で示した式に従って、補正前視線位置特定部１１ａにより算出された視線位置を補正してよい。
【００９２】
図１１乃至図１７に示す補正規則によれば、複数の視線位置を用いて補正値を算出するので、一の視線位置毎に補正値を算出する場合に比べて、補正値の精度を高めることができる。
【００９３】
次に、図１８乃至図２０を参照して、補正値算出部１２が所定条件を満たす複数の視線位置のみを抽出（選別）するための抽出処理（以下、「視線位置選別処理」と称する）について説明する。
【００９４】
図１８は、図１１に示したシーンと同一のシーンを示す図である。図１８には、仮想平面Ｍ上における複数の視線位置Ｐ１〜Ｐ７及び商品Ｃｔが模式的に示されている。
【００９５】
図１９は、補正値算出部１２により実行される視線位置選別処理の一例を示すフローチャートである。図１９に示す処理は、図９に示したステップＳ９００の処理の一例として実行される。
【００９６】
ステップＳ１９００では、補正値算出部１２は、視線位置データベース１３内から同一のユーザに係る全ての視線位置（第２の複数の視線位置の一例）を初期的に抽出する。
【００９７】
ステップＳ１９０２では、補正値算出部１２は、ステップＳ１９００で初期的に抽出した全ての視線位置を、各位置に基づいてクラスタリングする。クラスタリング方法は任意である。例えば、クラスタリング方法は、階層的なクラスタリング方法であってもよいし、非階層的なクラスタリング方法であってもよい。階層型クラスタリングとしては、最短距離法(単連結法・最近隣法)、最長距離法(完全連結法・最遠隣法)などがある。また、非階層型クラスタリングとしては、K平均法（k-means法）を使用してもよい。
【００９８】
ステップＳ１９０４では、補正値算出部１２は、ステップＳ１９０２でのクラスタリングで得られる複数のクラスタに対して、各クラスタ内の視線位置の数、即ち各クラスタを形成する視線位置の数をカウントする。
【００９９】
ステップＳ１９０６では、補正値算出部１２は、ステップＳ１９０４でのカウント結果に基づいて、含まれる視線位置の数が最も多いクラスタを選択する。
【０１００】
ステップＳ１９０８では、補正値算出部１２は、ステップＳ１９０４で選択したクラスタ内の視線位置の数が所定閾値以上であるか否かを判定する。ここでは、所定閾値は、全視線位置の数の５０％であるが、５０％は一例であり、他の数値が使用されてもよい。ステップＳ１９０４で選択したクラスタ内の視線位置の数が、全視線位置の数の５０％以上である場合は、ステップＳ１９１２に進み、それ以外の場合は、ステップＳ１９１０に進む。
【０１０１】
ステップＳ１９１０では、補正値算出部１２は、商品位置データベース１４を参照して、ステップＳ１９０２でのクラスタリングで得られる複数のクラスタの中から、商品Ｃｔの位置に最も近いクラスタを選択する。即ち、補正値算出部１２は、現在選択中の視線位置の数が最も多いクラスタに代えて、商品Ｃｔの位置に最も近いクラスタを選択し直す。商品Ｃｔと各クラスタとの距離は、各クラスタを形成する視線位置の重心位置に基づいて算出されてもよい。
【０１０２】
ステップＳ１９１２では、補正値算出部１２は、現在選択中のクラスタ内の全視線位置（第１の複数の視線位置の他の一例）を抽出する。現在選択中のクラスタとは、ステップＳ１９０８の判定結果が肯定判定であるときは、視線位置の数が最も多いクラスタ（ステップＳ１９０６で選択したクラスタ）である。また、現在選択中のクラスタとは、ステップＳ１９０８の判定結果が否定判定であるときは、商品Ｃｔの位置に最も近いクラスタ（ステップＳ１９１０で再選択したクラスタ）である。このようにしてステップＳ１９１２で抽出された全視線位置は、図９のステップＳ９０２以後の処理で、「ステップＳ９００で抽出された複数の視線位置（第１の複数の視線位置の他の一例）」として利用される。
【０１０３】
ところで、ユーザＳが、商品Ｃｔを注視するときは、直ぐに商品Ｃｔへと視線を向ける場合もあれば、周辺を見渡しながら商品Ｃｔを注視する場合など、様々である。例えば、図１８に示す例では、視線位置Ｐ１〜Ｐ３は、それぞれ孤立した位置にある一方、視線位置Ｐ４〜Ｐ７は、互いに対して比較的近接した位置にある。かかる状況では、視線位置Ｐ１〜Ｐ３は、商品Ｃｔを注視しているときの視線位置である可能性が低い。これは、商品Ｃｔを注視しているときは複数の視線位置が比較的近接しあう傾向となるためである。例えば、一般的に人が物体を注視するときは、２００ｍｓ〜３５０ｍｓ程度、物体を見続ける（注視する）傾向がある。この場合、視線位置の算出周期が例えば１ｍｓであれば、２００個から３５０個程度の視線位置が比較的近接しあう傾向となる。視線位置Ｐ４〜Ｐ７は、ユーザＳが何かを注視しているときの視線位置である可能性が高い傾向にある。このとき、商品Ｃｔ以外にユーザＳの注視対象となる物体が商品Ｃｔの周辺に存在しない場合、視線位置Ｐ４〜Ｐ７は、ユーザＳが商品Ｃｔを注視しているときの視線位置である可能性が高い傾向となる。例えば、図１８に示すように、商品棚２００上には商品Ｃｔ以外の物体が存在しない場合、ユーザＳが例えば商品棚２００の上方の何もない空間を注視している可能性は低い。従って、視線位置Ｐ４〜Ｐ７は、ユーザＳが商品Ｃｔを注視しているときの視線位置である可能性が高い（視線位置Ｐ４〜Ｐ７の算出誤差に起因して、視線位置Ｐ４〜Ｐ７が商品Ｃｔの位置に対応していない可能性が高い）。
【０１０４】
この点、図１９に示す処理によれば、互いに対して比較的近接した視線位置のみを抽出するので、ユーザＳが商品Ｃｔを注視しているときの視線位置である可能性が高い複数の視線位置のみを抽出できる。この結果、補正値の精度を更に高めることができる。
【０１０５】
尚、図１９に示す処理では、ステップＳ１９０６で、含まれる視線位置の数が最も多いクラスタを選択するが、これに代えて、含まれる視線位置の数が所定閾値以上のクラスタを選択してもよい。所定閾値は、２００ｍｓ間に得られる視線位置の数に対応してもよい。これは、上述の如く、一般的に人が物を注視するときは、少なくとも２００ｍｓ程度、物を見る傾向があるためである。これにより、ユーザＳが何かに注視しているときの視線位置のみを精度良く抽出できる。尚、含まれる視線位置の数が所定閾値以上のクラスタが複数存在する場合は、補正値算出部１２は、複数のクラスタのそれぞれに対して、ステップＳ９０２以降の処理を実行してもよい。尚、このような複数のクラスタの抽出は、例えば商品Ｃｔの近傍にある所定物体（例えば値札）をユーザＳが注視している場合に生じうる。
【０１０６】
また、図１９に示す処理では、ステップＳ１９１０で、補正値算出部１２は、商品Ｃｔの位置に最も近いクラスタを選択するが、非商品位置データベース１５内の非注視対象物体位置情報を考慮してクラスタを選択してもよい。非注視対象物体は、上述の如く、商品棚２０２自体（例えばフレームなど）、商品Ｃｔと隣の商品との隙間、店舗の壁、柱などである。このような非注視対象物体の位置に、特定のクラスタ内の複数の視線位置が対応する場合は、当該クラスタ内の複数の視線位置は、商品Ｃｔを注視しているときの視線位置に対応する可能性が高い。これは、非注視対象物体をユーザＳが注視するのは不自然であるためである。この点を考慮して、例えば、ステップＳ１９１０で、補正値算出部１２は、商品Ｃｔ周辺の非注視対象物体の位置に対応する複数の視線位置を有するクラスタを選択してもよい。
【０１０７】
図２０は、ステップＳ１９１２で抽出される複数の視線位置及び商品Ｃｔの位置関係とキャリブレーションの必要性との関係を示す図である。図２０には、仮想平面Ｍ（図示せず）上における複数の視線位置Ｐ１〜Ｐ７及び商品Ｃｔが模式的に示されている。複数の視線位置Ｐ１〜Ｐ７は、ステップＳ１９１２で抽出される複数の視線位置の一例であるとする。
【０１０８】
図２０（Ａ）に示す例では、ステップＳ１９１２で抽出される複数の視線位置Ｐ１〜Ｐ７は、図２０（Ｂ）に示す例に比べて、商品Ｃｔから離れた位置にあり、且つ、広がりが小さい。図２０（Ａ）に示す例に示すような複数の視線位置Ｐ１〜Ｐ７がステップＳ１９１２で抽出された場合は、図２０（Ｂ）に示す例に比べて、キャリブレーションの必要性が高い。これは、上述の如く、複数の視線位置Ｐ１〜Ｐ７は、ユーザＳが商品Ｃｔを注視しているときの視線位置である可能性が高い傾向であるためである。また、広がりが小さいので、補正値を比較的高い精度で算出できるためである。他方、図２０（Ｂ）に示す例では、広がりが多く、補正値を比較的高い精度で算出できる可能性が低い。尚、図２０（Ｂ）に示す例では、複数の視線位置Ｐ１〜Ｐ７は、商品Ｃｔの近傍に位置するため、ステップＳ９０２の判定結果が肯定判定となる可能性がある（補正値が算出されない可能性がある）。
【０１０９】
次に、図２１乃至図３０を参照して、１つの視線センサ２０により複数の商品をカバーする方法について説明する。
【０１１０】
図２１は、視線センサ２０と３つの商品Ｃ１乃至Ｃ３の位置関係の一例を示す上面図である。図２２は、図２１に示す例で使用される商品位置データベース１４内のデータの一例を示す図である。
【０１１１】
図２１に示す例では、商品Ｃ１は、視線センサ２０と同一の位置に配置され、商品Ｃ２は、視線センサ２０に対してＸ軸方向でｘ２だけオフセットした位置に配置されている。また、商品Ｃ３は、視線センサ２０に対してＸ軸方向で−ｘ３だけオフセットし且つＺ軸方向のｚ３だけオフセットした位置に配置されている。図２２には、視線センサ２０の位置を原点としたときの各商品Ｃ１乃至Ｃ３の位置情報が示される。
【０１１２】
この場合、視線位置特定部１１は、図６に示した処理において、商品Ｃ１及び商品Ｃ２用に、Ｚ＝０における仮想平面上の視線位置を算出する一方、商品Ｃ３用に、Ｚ＝ｚ３における仮想平面上の視線位置を算出する。また、補正値算出部１２は、図９に示した処理において、Ｚ＝０における仮想平面上の複数の視線位置、及び、Ｚ＝ｚ３における仮想平面上の複数の視線位置を、それぞれ別々に抽出してステップＳ９０２以降の処理を別々に実行する。Ｚ＝０における仮想平面上の複数の視線位置に対しては、ユーザＳが注視しうる商品は、商品Ｃ１及び商品Ｃ２の２つある。従って、ステップＳ９０６において、補正値算出部１２は、抽出した複数の視線位置が、商品Ｃ１及び商品Ｃ２のいずれに対応するかを判定してよい。この際、補正値算出部１２は、抽出した複数の視線位置の重心位置と、商品Ｃ１及び商品Ｃ２の各位置との関係に基づいて、抽出した複数の視線位置の重心位置が近い方の商品に対応付けてよい。
【０１１３】
図２３は、想定シーンの他の一例を示す図である。図２３に示す例では、商品棚２０２の上下に２つの商品Ｃ１，Ｃ２が配置されている。ここでは、視線センサ２０のカメラ２１が、商品Ｃ１，Ｃ２を注視するユーザＳを撮像するように設けられているものとする。尚、この場合、カメラ２１（図示せず）は、例えば商品Ｃ１，Ｃ２の近傍に配置され、Ｚ軸の正方向に視線方向を有する。また、ユーザＳ（図示せず）は、商品Ｃ１，Ｃ２よりもＺ軸の正方向側の位置から、商品Ｃ１，Ｃ２を注視するものとする。また、ここでは、説明の複雑化を防止するための都合上、商品Ｃ１，Ｃ２の商品位置は同一のＺ座標を有するものとするが、異なるＺ座標を有してもよい。また、商品Ｃ３をＺ＝０の他の商品と同一の仮想平面上に存在するように仮定した上で、抽出した複数の視線位置と、各商品を対応付けてもよい。
【０１１４】
図２４は、視線位置検出装置１００により実行される補正値データベース生成処理の他の一例を示すフローチャートである。図２４に示す処理は、例えば図２３に示すシーンに適用できる。以下では、図２５乃至図２７の説明図は、図２３に示すシーンに関する例を示す。
【０１１５】
ステップＳ２４００では、補正値算出部１２は、複数のクラスタ（それに伴い各クラスタ内の複数の視線位置）を抽出する。この方法については後述する。図２５は、クラスタと複数の視線位置との関係の説明図であり、（Ａ）には、仮想平面Ｍ上の複数の視線位置Ｐが×印で示されており、（Ｂ）には、仮想平面Ｍ上の複数の視線位置Ｐから抽出されたクラスタＱ１，Ｑ２が模式的に示されている。
【０１１６】
ステップＳ２４０２では、補正値算出部１２は、各クラスタ（それに伴い各クラスタ内の複数の視線位置）を商品位置データベース１４内の各商品に対応付ける。補正値算出部１２は、あるクラスタ内の複数の視線位置に最も近い位置情報を持つ商品を、当該クラスタ内の複数の視線位置に対応付けるのではなく、クラスタ間の位置関係と、商品間の位置関係との関係に基づいて、対応付けを行う。対応付け方法の例は後述する。例えば図２６には、仮想平面Ｍ（図示せず）上におけるクラスタＱ１，Ｑ２と商品Ｃ１，Ｃ２に係る商品領域とが模式的に示されている。ここでは、補正値算出部１２は、各クラスタＱ１，Ｑ２内の複数の視線位置を、商品位置データベース１４内の商品Ｃ１、Ｃ２にそれぞれ対応付けることができた場合を想定する。尚、かかる対応付けができない場合は、ステップＳ２４００に戻り、クラスタリング方法を変更して再度ステップＳ２４０２を実行してもよい。
【０１１７】
ステップＳ２４０４では、補正値算出部１２は、各クラスタ内の複数の視線位置を、対応する各商品の位置に整合させる補正値を算出する。例えば、図２３に示すシーンにおいては、補正値算出部１２は、図２７に示すように、クラスタＱ１内の複数の視線位置を商品Ｃ１の位置に整合させ且つクラスタＱ２内の複数の視線位置を商品Ｃ２の位置に整合させる補正値を算出する。補正値は、図２７に示すように、クラスタ間で同一のベクトルＨであってよい。図２７に示す例では、ベクトルＨで移動された場合のクラスタＱ１、Ｑ２が、それぞれ符号Ｑ１'、Ｑ２'で示されている。補正方法は、任意であり、上述した方法が利用されてもよい。例えば、補正値算出部１２は、各クラスタ（外接矩形、外接円や重心位置など）を各々同様に移動させた際に、各商品の位置や、各商品の位置の重心位置に、各クラスタがより重畳することとなる移動ベクトルを、補正値として求めてよい。あるいは、補正値算出部１２は、各クラスタ（外接矩形、外接円や重心位置など）を各々同様に移動させた際に、各商品の位置や、各商品の位置の重心位置に、各クラスタがより近接することとなる移動ベクトルを、補正値として求めてもよい。あるいは、補正値算出部１２は、各クラスタの外接矩形や外接円の中心又は重心が各商品領域内に含まれることとなる移動ベクトルを、補正値として求めてもよい。或いは、補正値算出部１２は、各商品領域の中心又は重心が各クラスタの外接矩形や外接円内に含まれることとなる移動ベクトルを、補正値として求めてもよい。或いは、補正値算出部１２は、各商品領域の中心又は重心と各クラスタの外接矩形や外接円の中心又は重心との各距離の総和が最小となることとなる移動ベクトルを、補正値として求めてもよい。或いは、補正値算出部１２は、これらの方法を任意に組み合わせて補正値を算出してもよい。
【０１１８】
ステップＳ２４０６では、補正値算出部１２は、ステップＳ２４０４で算出した補正値を補正値データベース１８に記憶する。この処理自体は、上述したステップＳ９１０の処理と同様であってよい。
【０１１９】
図２４に示す処理によれば、図２３に示すシーンのように商品棚に複数の商品がある場合など、ユーザＳの視線が向くであろう箇所を一か所に特定できない場合でも、補正値を算出することが可能である。その結果、補正値を用いたキャリブレーションが可能になる（図１０参照）。
【０１２０】
尚、図２４に示す処理では、補正値算出部１２は、各クラスタ（それに伴い各クラスタ内の複数の視線位置）を商品位置データベース１４内の各商品に対応付けるが、かかる対応付けは省略されてもよい。補正値算出部１２は、各クラスタの位置を同様に移動させた際に、各クラスタの位置が、より物体の位置に重畳することになる又は近づくことになる補正値を求めてもよい。
【０１２１】
図２８は、補正値算出部１２により実行される視線位置選別処理の他の一例を示すフローチャートである。図２８に示す処理は、図２４に示したステップＳ２４００の処理の一例として実行される。
【０１２２】
ステップＳ２８００では、補正値算出部１２は、視線位置データベース１３内から同一のユーザに係る複数の視線位置を初期的に抽出する。
【０１２３】
ステップＳ２８０２では、補正値算出部１２は、ステップＳ２８００で初期的に抽出した全ての視線位置を、各位置に基づいてクラスタリングする。ステップＳ２８０２の処理は、上述のステップＳ１９０２の処理と同様であってよい。
【０１２４】
ステップＳ２８０４では、補正値算出部１２は、ステップＳ２８０２でのクラスタリングで得られる複数のクラスタに対して、各クラスタ内の視線位置の数、即ち各クラスタを形成する視線位置の数をカウントする。
【０１２５】
ステップＳ２８０６では、補正値算出部１２は、ステップＳ２８０４でのカウント結果に基づいて、含まれる視線位置の数が所定閾値以上であるクラスタを抽出する。尚、予め抽出すべきクラスタの数が決まっている場合は、補正値算出部１２は、視線位置の数が所定閾値以上である複数のクラスタから、決まった数のクラスタを、含まれる視線位置の数が最も多い順から抽出する。例えば図２３に示すシーンでは、補正値算出部１２は、視線位置の数が所定閾値以上である複数のクラスタから、２つクラスタを、含まれる視線位置の数が最も多い順から抽出する。
【０１２６】
図２８に示す処理によれば、上述した図１９に示す処理と同様、互いに対して比較的近接した視線位置のみを抽出するので、ユーザＳが商品を注視しているときの視線位置である可能性が高い複数の視線位置のみを抽出できる。また、図２８に示す処理によれば、ユーザＳが商品を注視しているときの視線位置である可能性が高い複数の視線位置をそれぞれ含む複数のクラスタを抽出できる。
【０１２７】
尚、図２８に示す処理では、視線位置に基づいて複数の視線位置をクラスタリングしているが、これに限られない。例えば、補正値算出部１２は、複数の視線位置を取得した時間を参照し、視線位置の時系列の動きや速度に基づいて、ユーザＳが商品を注視しているときの視線位置である可能性が高い視線位置のみを抽出してもよい。例えば、補正値算出部１２は、ある時間に取得した視線位置と、その時間から所定時間内に取得をした視線位置が、所定の距離内であれば、その視線位置の近傍を注視していた（なんらかの商品を見ていた）と判断する。この場合、補正値算出部１２は、これらの視線位置を用いてクラスタリングを行うこととしてよい。他方、補正値算出部１２は、ある時間に取得した視線位置と、その時間から所定時間内に取得をした視線位置が、所定の距離内でなければ、何かを注視していた際の視線ではない（商品を見ていた際の視線位置ではない）と判断する。この場合、補正値算出部１２は、これらの視線位置を破棄し、その他の視線位置を用いてクラスタリングを行うこととしてよい。
【０１２８】
図２９は、対応付け処理の一例を示すフローチャートである。図２９に示す処理は、図４に示したステップＳ２４０６の処理の一例として実行される。以下では、図２３に示すシーンにおいて、２つのクラスタに係る複数の視線位置が抽出された場合を想定する。ここでは、２つのクラスタを第１クラスタＱ１及び第２クラスタＱ２と称する。
【０１２９】
ステップＳ２９００では、補正値算出部１２は、ステップＳ９００で抽出した第１クラスタＱ１及び第２クラスタＱ２に係る複数の視線位置の重心位置を、クラスタごとに算出する。また、補正値算出部１２は、商品位置データベース１４を参照して、第１クラスタＱ１及び第２クラスタＱ２のそれぞれに係る重心位置と、商品Ｃ１，Ｃ２の各位置との間の各距離Ｄ１１，Ｄ１２，Ｄ２１，Ｄ２２を算出する。図２５に示すように、距離Ｄ１１は、第１クラスタＱ１に係る重心位置と商品Ｃ１との間の距離であり、距離Ｄ１２は、第１クラスタＱ１に係る重心位置と商品Ｃ２との間の距離である。また、距離Ｄ２１は、第２クラスタＱ２に係る重心位置と商品Ｃ１との間の距離であり、距離Ｄ２２は、第２クラスタＱ２に係る重心位置と商品Ｃ２との間の距離である。
【０１３０】
ステップＳ２９０２乃至ステップＳ２９０６では、補正値算出部１２は、商品対応規則データベース１６を参照して、ステップＳ９００で抽出した複数の視線位置を、商品位置データベース１４内の商品に対応付ける。ここでは、商品対応規則データベース１６には、ステップＳ２９０２に示すような関係式が記憶されているものとする。
【０１３１】
具体的には、ステップＳ２９０２では、補正値算出部１２は、ステップＳ２９００で算出した距離Ｄ１１，Ｄ１２，Ｄ２１，Ｄ２２が、Ｄ１１＋Ｄ２２≦Ｄ１２＋Ｄ２１なる関係を満たすか否かを判定する。Ｄ１１＋Ｄ２２≦Ｄ１２＋Ｄ２１なる関係を満たす場合は、ステップＳ２９０４に進み、それ以外の場合は、ステップＳ２９０６に進む。
【０１３２】
ステップＳ２９０４では、補正値算出部１２は、第１クラスタＱ１内の複数の視線位置を商品位置データベース１４内の商品Ｃ１に対応付けると共に、第２クラスタＱ２内の複数の視線位置を商品位置データベース１４内の商品Ｃ２に対応付ける。
【０１３３】
ステップＳ２９０６では、補正値算出部１２は、第１クラスタＱ１内の複数の視線位置を商品位置データベース１４内の商品Ｃ２に対応付けると共に、第２クラスタＱ２内の複数の視線位置を商品位置データベース１４内の商品Ｃ１に対応付ける。
【０１３４】
図２９に示す処理によれば、図２３に示すような２つの商品Ｃ１，Ｃ２が上下に配置されているシーンにおいても、各クラスタ内の複数の視線位置を、２つの商品Ｃ１，Ｃ２のいずれかに精度良く対応付けることができる。
【０１３５】
尚、図２９に示す処理では、図２３に示すような２つの商品Ｃ１，Ｃ２が上下に配置されているシーンを想定しているが、２つの商品Ｃ１，Ｃ２が左右に配置されているシーンにも同様に適用可能である。また、３つ以上の商品が上下や左右に配置されているシーンにも適用可能である。
【０１３６】
また、図２９に示す処理では、ステップＳ２９０２では、補正値算出部１２は、Ｄ１１＋Ｄ２２≦Ｄ１２＋Ｄ２１なる関係を満たすか否かを判定しているが、他の方法で対応付けしてもよい。例えば、第１クラスタＱ１に係る重心位置と第２クラスタＱ２に係る重心位置との距離が、商品Ｃ１と商品Ｃ２との間の距離と略一致した場合に、商品Ｃ１，Ｃ２に第１クラスタＱ１及び第２クラスタＱ２を対応付けてもよい。この場合、補正値算出部１２は、第１クラスタＱ１及び第２クラスタＱ２のうちの重心位置のＹ座標の大きい方のクラスタを、商品Ｃ２に対応付け、Ｙ座標の小さい方のクラスタを、商品Ｃ１に対応付ければよい。
【０１３７】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１３８】
例えば、上述した説明では、ユーザＳは、人が想定されているが、ユーザＳは、ゴリラや猿などの人以外の動物であってもよい。
【０１３９】
また、上述した実施例では、ユーザＳごとの個人差を考慮するために、補正値算出部１２は、ユーザＳごとの複数の視線位置を用いて補正値を算出しているが、複数のユーザＳに係る複数の視線位置を用いて補正値を算出してもよい。これにより、あるユーザＳに係る複数の視線位置を用いて算出した補正値を、他のユーザＳに係る視線位置の算出の際に利用できるので、補正値の使用機会を増加できる。但し、ユーザＳごとの補正値を算出する構成において、キャリブレーション処理部１１ｂは、新たなユーザＳに対して、当該新たなユーザＳに係る補正値が補正値算出部１２により算出されるまでは、他のユーザＳに係る補正値を用いて補正することとしてもよい。
【０１４０】
また、上述した説明では、ユーザＳの注視対象となる物体は、商品であったが、商品以外の物体（商取引の対象とならない物体）であってもよい。例えば、ユーザＳの注視対象となる物体は、ポスター、広告、絵画、彫刻、画像、建造物等であってよい。また、ユーザＳの注視対象となる物体は、ディスプレイ、携帯型端末、装着型端末などの画面に表示されるコンテンツであってもよい。
【０１４１】
また、上述した説明では、ユーザＳの注視対象となる物体は、商品棚に陳列できるような商品であったが、商品のサイズや形状等は任意であるし、商品の陳列方法も任意である。
【０１４２】
また、上述した説明では、仮想平面Ｍは、ユーザＳの注視対象となる物体の位置（座標）を含むが、仮想平面Ｍは、商品位置データベース１４に基づく商品の位置（Ｚ座標）を必ずしも含む必要はない。例えば、仮想平面Ｍは、商品位置データベース１４に基づく商品の位置（Ｚ座標）を所定値だけＺ軸正方向にオフセットした位置を含むように設定されてもよい。所定値は、商品のＺ方向の長さの半分等であってもよい。
【０１４３】
また、上述した説明では、仮想平面Ｍは、鉛直平面であるが、鉛直平面に対して傾斜していてもよい。
【０１４４】
また、上述した実施例では、視線位置特定部１１が算出した視線位置を視線位置データベース１３に記憶（蓄積）し、補正値算出部１２が視線位置データベース１３から複数の視線位置を取り出しているが、これに限られない。例えば、視線ベクトル取得部１０が取得した視線ベクトルを記憶（蓄積）するデータベースを備え、視線位置特定部１１が当該データベースから複数の視線ベクトルを取り出して複数の視線位置を一括的に算出してもよい。この場合、補正値算出部１２は、視線位置特定部１１が一括的に算出した複数の視線位置（第１又は第２の複数の視線位置の他の一例）を用いて上述した処理を行うこととしてよい。
【０１４５】
また、上述した実施例では、視線位置特定部１１は視線ベクトルから視線位置を算出（特定）しているが、視線位置は任意の方法で取得すればよく、視線ベクトル取得部や視線ベクトルから視線位置を算出する処理は、視線位置を取得する方法の一形態である。
【０１４６】
また、上述した実施例では、補正値算出部１２は、複数の視線位置をＸ方向及びＹ方向の双方で商品の位置に整合させる補正値を算出しているが、複数の視線位置をＸ方向及びＹ方向のいずれか一方のみで商品の位置に整合させる補正値を算出してもよい。例えば、図１１に示すようなシーンにおいて、商品Ｃｔが１つでなくＸ方向に複数個並んでいる場合、Ｘ方向のどの商品ＣｔをユーザＳが注視しているかを判断することは困難な場合がある。この場合、補正値算出部１２は、複数の視線位置をＹ方向のみで商品の位置に整合させる補正値を算出してもよい。
【０１４７】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
注視対象となる物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部とを含む、視線位置検出装置。
（付記２）
前記補正値算出部は、前記第１の複数の視線位置の位置と前記位置情報が示す前記物体の位置との間のずれ量を前記補正値として算出する、付記１に記載の視線位置検出装置。
（付記３）
前記補正値算出部は、前記第１の複数の視線位置に外接する領域を、前記位置情報に基づく前記物体の存在領域を表す領域へと変換する変換行列を前記補正値として算出する、付記１に記載の視線位置検出装置。
（付記４）
前記補正値算出部は、前記位置情報に基づく前記物体の存在領域と同一の形状及びサイズの仮想領域が、前記第１の複数の視線位置のうちの最大数の視線位置を含む位置を探索し、前記仮想領域が前記第１の複数の視線位置のうちの最大数の視線位置を含む位置にあるときの前記仮想領域の所定基準位置と、前記物体の存在領域の対応する所定基準位置との間のずれ量を前記補正値として算出する、付記１に記載の視線位置検出装置。
（付記５）
前記補正値算出部は、前記第１の複数の視線位置の数以上の数の第２の複数の視線位置であって、前記視線位置特定部が特定した前記第２の複数の視線位置を各視線位置に基づいてクラスタリングし、クラスタリングにより得られる複数のクラスタのうちから、最大数の視線位置を含むクラスタを選択し、選択したクラスタに含まれる複数の視線位置を前記第１の複数の視線位置として、前記補正値を算出する、付記１〜４のうちのいずれか１項に記載の視線位置検出装置。
（付記６）
前記補正値算出部は、選択したクラスタに含まれる複数の視線位置の数が所定閾値未満である場合、前記位置情報が示す前記物体の位置に最も近いクラスタを再選択し、再選択したクラスタに含まれる複数の視線位置を前記第１の複数の視線位置として、前記補正値を算出する、付記５に記載の視線位置検出装置。
（付記７）
前記補正値算出部は、前記第１の複数の視線位置が、前記位置情報が示す前記物体の存在領域に対応しない場合に、前記補正値を算出する、付記１に記載の視線位置検出装置。
（付記８）
前記物体の周辺に位置する前記被写体の注視対象とならない非注視対象物体の位置情報を記憶する非注視物体位置記憶部を更に含み、
前記補正値算出部は、前記第１の複数の視線位置が、前記物体位置記憶部に記憶された前記位置情報が示す前記物体の存在領域に対応せず、且つ、前記第１の複数の視線位置が、前記非注視物体位置記憶部に記憶された前記位置情報が示す前記非注視対象物体の存在領域に対応する場合に、前記補正値を算出する、付記１に記載の視線位置検出装置。
（付記９）
注視対象となる複数の物体の位置情報を記憶する物体位置記憶部と、
被写体の視線位置を特定する視線位置特定部と、
前記視線位置特定部が特定した複数の視線位置を各視線位置に基づいてクラスタリングし、クラスタリングにより得られる複数のクラスタを、対応する各物体の位置に同時に整合させる補正値を算出する補正値算出部とを含む、視線位置検出装置。
（付記１０）
前記視線位置特定部が前記被写体の視線位置を特定することは、前記補正値算出部により算出された前記補正値に基づいて、特定した前記視線位置を補正することを含む、付記１〜９のうちのいずれか１項に記載の視線位置検出装置。
（付記１１）
前記視線位置特定部は、視線ベクトルに基づいて、前記物体が位置する仮想平面上における前記被写体の視線位置を算出し、
前記仮想平面は、前記位置情報が示す前記物体の位置を含む鉛直平面である、付記１〜１０のうちのいずれか１項に記載の視線位置検出装置。
（付記１２）
前記視線位置特定部は、前記被写体及び前記物体間の距離に更に基づいて、前記仮想平面から前記被写体及び前記物体間の距離だけ前記仮想平面の面直方向に離れた位置に、前記仮想平面の面直方向における前記視線ベクトルの始点を想定して、前記第１の複数の視線位置を算出する、付記１１に記載の視線位置検出装置。
（付記１３）
前記視線位置特定部は、前記被写体及び前記物体間の距離を、前記撮影画像に基づく前記被写体の瞳孔間距離に基づいて算出する、付記１２に記載の視線位置検出装置。
（付記１４）
前記補正値算出部は、クラスタリングにより得られる複数のクラスタを、前記物体位置記憶部に位置情報が記憶される複数の物体のそれぞれに対応付け、各クラスタ内に含まれる複数の視線位置を、対応する各物体の位置に同時に整合させる補正値を算出する、付記９に記載の視線位置検出装置。
（付記１５）
前記物体は、商品棚に陳列される商品である、付記１〜１４のうちのいずれか１項に記載の視線位置検出装置。
（付記１６）
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報を記憶する物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出することを含む、コンピューターにより実行される視線位置検出方法。
（付記１７）
被写体の視線位置を特定し、
特定した第１の複数の視線位置と、注視対象となる物体の位置情報を記憶する物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する、
処理をコンピューターに実行させる視線位置検出プログラム。
（付記１８）
カメラと、
前記カメラによる被写体の眼の撮影画像に基づいて、視線ベクトルを算出する視線ベクトル算出装置と、
前記視線ベクトル算出装置により算出された前記被写体の視線ベクトルを取得する視線ベクトル取得部と、
前記被写体の注視対象となる物体の位置情報を記憶する物体位置記憶部と、
前記視線ベクトルに基づいて、前記物体が位置する仮想平面上における前記被写体の視線位置を算出する視線位置特定部と、
前記視線位置特定部により算出された第１の複数の視線位置と、前記物体位置記憶部に記憶された前記位置情報とに基づいて、前記第１の複数の視線位置を前記位置情報が示す前記物体の位置に整合させる補正値を算出する補正値算出部とを含む、視線位置検出システム。
（付記１９）
付記１〜１８のうちのいずれか１項において、前記複数の視線位置は、同一ユーザに係る視線位置である。
【符号の説明】
【０１４８】
１    視線位置検出システム
１０    視線ベクトル取得部
１１    視線位置特定部
１２    補正値算出部
１３    視線位置データベース
１４    商品位置データベース
１５    非商品位置データベース
１８    補正値データベース
２０    視線センサ
２１    カメラ
２２    視線ベクトル算出装置
１００    視線位置検出装置
【図１】
0006547268.tif 000005
【図２】
0006547268.tif 000006
【図３】
0006547268.tif 000007
【図４】
0006547268.tif 000008
【図５】
0006547268.tif 000009
【図６】
0006547268.tif 000010
【図７】
0006547268.tif 000011
【図８】
0006547268.tif 000012
【図９】
0006547268.tif 000013
【図１０】
0006547268.tif 000014
【図１１】
0006547268.tif 000015
【図１２】
0006547268.tif 000016
【図１３】
0006547268.tif 000017
【図１４】
0006547268.tif 000018
【図１５】
0006547268.tif 000019
【図１６】
0006547268.tif 000020
【図１７】
0006547268.tif 000021
【図１８】
0006547268.tif 000022
【図１９】
0006547268.tif 000023
【図２０】
0006547268.tif 000024
【図２１】
0006547268.tif 000025
【図２２】
0006547268.tif 000026
【図２３】
0006547268.tif 000027
【図２４】
0006547268.tif 000028
【図２５】
0006547268.tif 000029
【図２６】
0006547268.tif 000030
【図２７】
0006547268.tif 000031
【図２８】
0006547268.tif 000032
【図２９】
0006547268.tif 000033
【図３０】
0006547268.tif 000034