以下、本発明の実施形態について添付の図面を参照しながら説明する。
(第一の実施形態)
まず、本実施形態に係る視線位置検出システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る視線位置検出システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る視線位置検出システム1には、視線位置検出装置10と、視線センサ20とが含まれる。視線位置検出装置10と、視線センサ20とは、例えばLAN(Local Area Network)等のネットワークNを介して通信可能に接続されている。ネットワークNは、有線又は無線のいずれであっても良いし、有線及び無線の両方が含まれていても良い。
視線センサ20は、視線位置を検出する対象である対象者の視線方向を示す視線ベクトルを算出する。視線センサ20には、例えば、赤外線を撮像可能な赤外線カメラと、対象者の顔部分に赤外線を照射する赤外線LED(Light Emitting Diode)と、対象者の瞳孔と赤外線の角膜反射との位置関係から当該対象者の視線ベクトルを算出する装置とが含まれる。
視線位置検出装置10は、視線センサ20が算出した視線ベクトルから仮想平面上における対象者の視線位置を算出する。また、視線位置検出装置10は、当該視線位置に対する補正量を算出する。仮想平面とは、例えば、対象者が注視する物体(以降、「対象物」と表す。)上に設定された仮想的な平面のことである。仮想平面の具体例には、商品棚で商品が配置されている側に設定された平面やデジタルサイネージのディスプレイ上に設定された平面等が挙げられる。
なお、図1に示す視線位置検出システム1の構成は一例であって、他の構成であっても良い。例えば、視線位置検出装置10は、1台のコンピュータで構成されていても良いし、複数台のコンピュータで構成されていても良い。
次に、本実施形態に係る視線位置検出装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係る視線位置検出装置10のハードウェア構成の一例を示す図である。
図2に示すように、本実施形態に係る視線位置検出装置10は、入力装置11と、表示装置12と、外部I/F13と、通信I/F14とを有する。また、本実施形態に係る視線位置検出装置10は、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、補助記憶装置18とを有する。これら各ハードウェアは、それぞれがバス19で相互に接続されている。
入力装置11は、例えばキーボードやマウス、タッチパネル等であり、視線位置検出装置10に各種の操作信号を入力するのに用いられる。表示装置12は、例えばディスプレイ等であり、視線位置検出装置10による各種の処理結果を表示する。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。視線位置検出装置10は、外部I/F13を介して、記録媒体13aの読み取りや書き込みを行うことができる。
記録媒体13aには、例えば、SDメモリカード(SD memory card)やUSB(Universal Serial Bus)メモリ、CD(Compact Disk)、DVD(Digital Versatile Disk)等がある。
通信I/F14は、視線位置検出装置10がネットワークNに接続するためのインタフェースである。視線位置検出装置10は、通信I/F14を介して、視線センサ20から視線ベクトルを取得することができる。
ROM15は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM16は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU17は、例えば補助記憶装置18やROM15等からプログラムやデータをRAM16上に読み出して、各種処理を実行する演算装置である。
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置18には、例えば、基本ソフトウェアであるOS(Operating System)や各種アプリケーションプログラム、本実施形態を実現するプログラム等が格納される。
本実施形態に係る視線位置検出装置10は、図2に示すハードウェア構成を有することにより、後述する各種処理が実現される。
次に、本実施形態に係る視線位置検出装置10の機能構成について、図3を参照しながら説明する。図3は、本実施形態に係る視線位置検出装置10の機能構成の一例を示す図である。
図3に示すように、本実施形態に係る視線位置検出装置10は、視線位置算出部101と、補正量算出処理部102と、視線位置補正部103とを有する。これら各部は、視線位置検出装置10にインストールされた1以上のプログラムが、CPU17に実行させる処理により実現される。
また、本実施形態に係る視線位置検出装置10は、視線位置DB110と、配置座標DB120と、補正量DB130とを有する。これら各DBは、例えば補助記憶装置18を用いて実現可能である。なお、これら各DBのうちの少なくとも1つのDBが、視線位置検出装置10とネットワークNを介して接続される記憶装置等を用いて実現されていても良い。
視線位置算出部101は、視線センサ20から取得した視線ベクトルから視線位置を算出する。そして、視線位置算出部101は、算出した視線位置を視線位置DB110に格納する。視線位置は、仮想平面上に設定されたx軸及びy軸の座標値(x座標値とy座標値との組)で表される。
補正量算出処理部102は、視線位置に対する補正量を算出する。ここで、補正量算出処理部102は、入力部104と、積算部105と、ピーク特定部106と、補正量算出部107と、出力部108とを有する。
入力部104は、視線位置DB110に格納されている視線位置を入力する。積算部105は、入力部104により入力された視線位置をx軸方向(水平方向)とy軸方向(垂直方向)とにそれぞれ積算して、x軸方向における積算値とy軸方向における積算値とを算出する。
ピーク特定部106は、積算部105により算出された積算値から、x軸方向における積算値のピークと、y軸方向における積算値のピークとを特定する。x軸方向における積算値のピークとは、x軸方向における積算値の極大値である。同様に、y軸方向における積算値のピークとは、y軸方向における積算値の極大値である。
補正量算出部107は、ピーク特定部106により特定されたピークと、対象者が注視する対象物(例えば商品棚に配置された商品)の仮想平面上における座標とから、x軸方向における補正量と、y軸方向における補正量とをそれぞれ算出する。
以降では、対象者が注視する対象物は、商品棚に配置された商品であるものとする。商品棚は、例えば、M列N段であり、商品が規則的に配置されている。なお、対象者が注視する対象物は、商品棚に配置された商品に限られず、デジタルサイネージ上に表示された表示内容(例えば、M列N段に規則的に配置された商品の広告画像)等であっても良い。
出力部108は、補正量算出部107により算出された補正量を補正量DB130に格納する。
視線位置補正部103は、補正量DB130に格納されている補正量で、視線位置DB110に格納されている視線位置を補正する。
視線位置DB110は、視線位置算出部101により算出された視線位置が格納されている。視線位置DB110に格納されている視線位置の詳細については後述する。
配置座標DB120は、対象者が注視する対象物の仮想平面上における座標を示す配置座標が格納されている。配置座標DB120に格納されている配置座標の詳細については後述する。
補正量DB130は、補正量算出部107により算出された補正量が格納されている。補正量DB130に格納されている補正量の詳細については後述する。
次に、本実施形態に係る視線位置検出装置10による視線位置の算出処理について、図4を参照しながら説明する。図4は、本実施形態に係る視線位置の算出処理の一例を示すフローチャートである。
まず、視線位置算出部101は、視線センサ20から視線ベクトルVを取得する(ステップS401)。視線ベクトルVは、図5に示すように、対象者Sの視線方向を示すベクトルである。
視線ベクトルVは、角膜反射法により算出することができる。すなわち、視線ベクトルVは、視線センサ20が対象者Sに赤外線を照射すると共に赤外線カメラで撮像することで、対象者Sの瞳孔と赤外線の角膜反射との位置関係から算出することができる。ただし、視線ベクトルVは、角膜反射法に限られず、例えば、特開2016−73357号公報に開示されている方法で算出されても良い。
次に、視線位置算出部101は、上記のステップS401で取得した視線ベクトルVから視線位置Pを算出する(ステップS402)。すなわち、視線位置算出部101は、図5に示すように、視線ベクトルVと、仮想平面Lとの交点を示すxy座標値を視線位置Pとして算出する。
次に、視線位置算出部101は、上記のステップS402で算出された視線位置Pを視線位置DB110に格納する(ステップS403)。
以上で説明した視線位置の算出処理は、例えば、対象者Sが仮想平面Lの前にいる間、所定の時間毎に実行される。ここで、上記の視線位置の算出処理で視線位置Pが格納された視線位置DB110について、図6を参照しながら説明する。図6は、視線位置DB110の一例を示す図である。
図6に示す視線位置DB110には、時間t1、時間t2、時間t3、時間t4等における視線位置が格納されている。各視線位置には、視線位置のx座標と、視線位置のy座標とが含まれる。このように、視線位置DB110には、所定の時間毎の視線位置のx座標及びy座標(すなわち、仮想平面L上に設定されたx軸及びy軸の座標値)が格納されている。したがって、視線位置は、x座標の値とy座標の値との組(x,y)で表される。
ここで、上記の視線位置の算出処理で算出された視線位置は、対象者Sの個人差(例えば目の位置の高さや眼球の形状等)により、対象者Sが実際に見ている位置と、視線位置との間で誤差が生じる場合がある。
例えば、図7(a)に示すように、商品棚の中央付近に視線センサ20が配置されているものとする。このとき、商品棚に配置されている商品を対象者Sが正面から見るものとする。
対象者Sの目の位置の高さと視線センサ20の位置の高さとにあまり差がない場合、図7(b)に示すように、対象者Sの視認範囲T1に対して、視線センサ20の撮像範囲T2は、個人差により水平方向、垂直方向にずれを生じたものになる。
このため、図7(c)に示すように、対象者Sの視線位置Pを示す領域R1は、対象者Sが実際に見ている商品棚に対して垂直方向に誤差が生じる場合がある。同様に、対象者Sの眼球の形状等によっては、対象者Sが実際に見ている商品棚に対して水平方向に誤差が生じる場合がある。
そこで、対象者Sの個人差(例えば目の位置の高さや眼球の形状等)により生じる誤差を補正する必要がある。以降では、上記のような対象者Sの個人差により生じる誤差を補正するための補正量を算出する処理について、図8を参照しながら説明する。図8は、本実施形態に係る補正量の算出処理の一例を示すフローチャートである。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS801)。すなわち、入力部104は、時間t1における視線位置(xt1,yt1)、時間t2における視線位置(xt2,yt2)、時間t3における視線位置(xt3,yt3)等を視線位置DB110から取得する。
次に、積算部105は、入力部104により入力された視線位置(x,y)をy軸方向に積算して、y軸方向における積算値を算出する(ステップS802)。すなわち、積算部105は、x座標値毎に、x座標値が同一である視線位置(x,y)の個数(言い換えれば、x座標値が同一である視線位置(x,y)が検出された回数)を積算値として算出する。
例えば、図9(a)に示すように、仮想平面L上における複数の視線位置(x,y)が入力されたものとする。このとき、これら複数の視線位置(x,y)をy軸方向に積算した場合、図9(b)に示す積算値が得られる。視線位置(x,y)をy軸方向に積算することで、x座標値が同一である視線位置(x,y)が多い程、当該積算値は高くなる。
なお、積算部105は、x座標値が所定の範囲内(例えば、x座標値が±ε1以内)である視線位置(x,y)の個数を積算しても良い。
次に、積算部105は、入力部104により入力された視線位置(x,y)をx軸方向に積算して、x軸方向における積算値を算出する(ステップS803)。すなわち、積算部105は、y座標値毎に、y座標値が同一である視線位置(x,y)の個数(言い換えれば、y座標値が同一である視線位置(x,y)が検出された回数)を積算値として算出する。
例えば、図9(a)に示すように、仮想平面L上における複数の視線位置(x,y)が入力されたものとする。このとき、これら複数の視線位置(x,y)をx軸方向に積算した場合、図9(c)に示す積算値が得られる。視線位置(x,y)をx軸方向に積算することで、y座標値が同一である視線位置(x,y)が多い程、当該積算値は高くなる。
なお、積算部105は、y座標値が所定の範囲内(例えば、x座標値が±ε2以内)である視線位置(x,y)の個数を積算しても良い。
次に、ピーク特定部106は、y軸方向における積算値から、m=1,・・・,Mとして、y軸方向における積算値のピークpeak_xmを特定する(ステップS804)。すなわち、ピーク特定部106は、y軸方向における積算値のM個のピークpeak_xmを特定する。なお、Mは、商品が配置されている商品棚の列数である。
例えば、図9(a)に示すように、商品が配置されている商品棚が10列3段であるとする。この場合、図9(b)に示すように、ピーク特定部106は、y軸方向における積算値から、peak_x1,peak_x2,・・・,peak_x10を特定する。
次に、ピーク特定部106は、x軸方向における積算値から、n=1,・・・,Nとして、x軸方向における積算値のピークpeak_ynを特定する(ステップS805)。すなわち、ピーク特定部106は、x軸方向における積算値のN個のピークpeak_ynを特定する。なお、Nは、商品が配置されている商品棚の段数である。
例えば、図9(a)に示すように、商品が配置されている商品棚が10列3段であるとする。この場合、図9(c)に示すように、ピーク特定部106は、x軸方向における積算値から、peak_y1,peak_y2,peak_y3を特定する。
なお、上記のステップS804及びステップS805における列数M及び段数Nは配置座標DB120を参照することで特定することができる。
ここで、配置座標DB120について、図10を参照しながら説明する。図10は、配置座標DB120の一例を示す図である。図10では、一例として、商品棚が4列3段である場合の配置座標DB120を示している。
図10に示す配置座標DB120には、商品番号1、商品番号2、・・・、商品番号12における配置座標が格納されている。各配置座標には、配置と、当該配置の仮想平面Lにおける中心座標とが含まれる。
配置は、商品棚における列及び段の組である。また、中心座標は、当該列及び段の組の仮想平面Lにおけるx座標値及びy座標値である。
例えば、商品番号1の配置座標には、列「1」及び段「1」と、x座標「200」及びy座標「200」とが含まれる。これは、商品棚の1列1段目の仮想平面Lにおけるxy座標値は(x,y)=(200,200)であり、1列1段目には商品番号1の商品が配置されていることを示している。
同様に、例えば、商品番号2の配置座標には、列「2」及び段「1」と、x座標「400」及びy座標「200」とが含まれる。これは、商品棚の2列1段目の仮想平面Lにおけるxy座標値は(x,y)=(400,200)であり、2列1段目には商品番号2の商品が配置されていることを示している。
図8に戻る。ステップS805に続いて、補正量算出部107は、ピーク特定部106により特定されたピークpeak_xm(m=1,・・・,M)のうちの最大のピークpeak_xiを特定する。そして、補正量算出部107は、当該ピークpeak_xiと、商品棚の列のうち、当該ピークpeak_xiに対応するI列目とのx座標値の差から補正量cxを算出する(ステップS806)。
すなわち、最大のピークpeak_xiのx座標値を「xgaze_i」、当該ピークpeak_xiに対応するI列目のx座標値を「xI」とした場合、補正量算出部107は、補正量cx=xI−xgaze_iを算出する。補正量算出部107は、配置座標DB120を参照することで、商品棚のI列目のx座標値を特定することができる。なお、商品棚の列のうち、ピークpeak_xiに対応するI列目とは、例えば、商品棚の1列目〜M列目のうちI=iとなる列のことである。
次に、補正量算出部107は、ピーク特定部106により特定されたピークpeak_yn(n=1,・・・,N)のうちの最大のピークpeak_yjを特定する。そして、補正量算出部107は、当該ピークpeak_yjと、商品棚の段のうち、当該ピークpeak_yjに対応するJ段目とのy座標値の差から補正量cyを算出する(ステップS807)。
すなわち、最大のピークpeak_yjのy座標値を「ygaze_j」、当該ピークpeak_yjに対応するJ段目のy座標値を「yj」とした場合、補正量算出部107は、補正量cy=yJ−ygaze_jを算出する。補正量算出部107は、配置座標DB120を参照することで、商品棚のJ段目のy座標値を特定することができる。なお、商品棚の段のうち、ピークpeak_yjに対応するJ段目とは、例えば、商品棚の1段目〜N段目のうちJ=jとなる段のことである。
なお、上記のステップS806では、最大のピークpeak_xiと、当該ピークpeak_xiに対応するI列目とのx座標値の差から補正量cxを算出したが、これに限られない。補正量算出部107は、例えば、任意のピークpeak_xm´と、当該ピークpeak_xm´に対応するI´列とのx座標値の差から補正量cxを算出しても良い。
同様に、上記のステップS807では、最大のピークpeak_yjと、当該ピークpeak_yjに対応するJ列目とのy座標値の差から補正量cyを算出したが、これに限られない。補正量算出部107は、例えば、任意のピークpeak_yn´と、当該ピークpeak_yn´に対応するJ´列とのy座標値の差から補正量cyを算出しても良い。
次に、出力部108は、上記のステップS806及びステップS807で算出された補正量(cx,cy)を補正量DB130に格納する(ステップS808)。これにより、視線位置を補正するための補正量が補正量DB130に格納される。
ここで、補正量DB130について、図11を参照しながら説明する。図11は、本実施形態に係る補正量DB130の一例を示す図である。
図11に示す補正量DB130には、補正量が格納されている。補正量には、x座標の補正量(すなわち、上記のステップS806で算出されたcx)と、y座標の補正量(すなわち、上記のステップS807で算出されたcy)とが含まれる。
次に、補正量DB130に格納されている補正量(cx,cy)で、視線位置DB110に格納されている視線位置(x,y)を補正する処理について、図12を参照しながら説明する。図12は、本実施形態に係る視線位置の補正処理の一例を示すフローチャートである。
まず、視線位置補正部103は、補正量(cx,cy)を補正量DB130から取得する(ステップS1201)。
次に、視線位置補正部103は、視線位置DB110に格納されている視線位置(x,y)を補正量(cx,cy)で補正する(ステップS1202)。すなわち、視線位置補正部103は、視線位置DB110に格納されている各視線位置(x,y)を(x+cx,y+cy)と補正する。これにより、視線位置DB110に格納されている視線位置(x,y)が補正される。
以上のように、本実施形態に係る視線位置検出装置10は、対象者の視線位置を積算した上で、積算値が極大となる座標値と、対象者が注視する対象物(例えば商品)の座標値との差から補正量を算出する。
ここで、例えば、商品が存在する場所では、対象者が見る頻度が高くなり、積算値は高くなる。一方で、例えば、商品と商品との間や商品が存在しない場合では、対象者が見る頻度が低くなり、積算値は低くなる。このため、積算値が極大となる座標値と、対象者が注視する対象物の座標値との差を補正量とすることで、例えば視線位置が一様に分布している場合等であっても、対象者の個人差により生じる誤差を高い精度で補正することができる。
したがって、本実施形態に係る視線位置検出装置10によれば、積算値が極大となる座標値と、対象者が注視する対象物の座標値との差により、精度の良い補正量を算出することができる。
(第二の実施形態)
次に、第二の実施形態について説明する。第一の実施形態では、対象者Sの個人差により生じる誤差を補正する場合について説明したが、例えば、視線センサ20の設置位置等が対象者Sの目の高さよりも上方又は下方である場合(すなわち、対象者Sの目の位置の高さと視線センサ20の位置の高さとの差が第一の実施形態よりも大きい場合)や対象者Sが眼鏡等を掛けている場合等には、第一の実施形態よりも大きな誤差が生じる場合がある。
例えば、図13(a)に示すように、商品棚よりも下方に視線センサ20が配置されているものとする。このとき、商品棚に配置されている商品を対象者Sが正面から見るものとする。
商品棚よりも下方に視線センサ20が配置されている場合には、図13(b)に示すように、対象者Sの視認範囲T1と、視線センサ20の撮像範囲T3とに角度差が生じる。
このため、図13(c)に示すように、対象者Sの視線位置Pを示す領域R2は、対象者Sが実際に見ている商品棚に対して歪みが生じる場合がある。なお、このとき、更に、第一の実施形態と同様に、対象者Sの個人差により水平方向、垂直方向にずれが生じることがある。
また、例えば、対象者Sが眼鏡等を掛けている場合には、眼鏡のレンズの影響により、視線センサ20で撮像される目の大きさが実際よりも小さくなる場合がある。このため、図14に示すように、対象者Sの視線位置Pを示す領域R3は、対象者Sが実際に見ている商品棚よりも小さくなる場合がある。なお、このとき、更に、第一の実施形態と同様に、対象者Sの個人差により水平方向、垂直方向にずれが生じることがある。
そこで、第二の実施形態では、視線センサ20の設置位置等が対象者Sの目の高さよりも上方又は下方である場合や対象者Sが眼鏡等を掛けている場合等に生じる誤差の補正について説明する。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、適宜、その説明を省略する。
以降では、x座標の補正量を算出するための補正基準量を算出する処理について、図15を参照しながら説明する。図15は、本実施形態に係る補正基準量の算出処理の一例を示すフローチャート(その1)である。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS1501)。
次に、積算部105は、入力部104により入力された視線位置(x,y)をy軸方向に積算して、y軸方向における積算値を算出する(ステップS1502)。
次に、ピーク特定部106は、y軸方向における積算値から、m=1,・・・,Mとして、y軸方向における積算値のピークpeak_xmを特定する(ステップS1503)。なお、Mは、商品が配置されている商品棚の列数である。
次に、補正量算出部107は、ピークを示す変数iと、商品棚の列を示す変数Iとをそれぞれ「1」に初期化する(ステップS1504)。
次に、補正量算出部107は、ピークpeak_xiと、I列目とのx座標値の差から補正基準量cxiを算出する(ステップS1505)。
すなわち、peak_xiのx座標値を「xgaze_i」、I列目のx座標値を「xI」とした場合、補正量算出部107は、補正基準量cxi=xI−xgaze_iを算出する。補正量算出部107は、配置座標DB120を参照することで、商品棚のI列目のx座標値を特定することができる。
次に、補正量算出部107は、ピークを示す変数iと、商品棚の列を示す変数Iとにそれぞれ「1」を加算する(ステップS1506)。
次に、補正量算出部107は、i>Mであるか否かを判定する(ステップS1507)。すなわち、補正量算出部107は、変数iの値が、商品棚の列数Mを超えたか否かを判定する。
ステップS1507において、i>Mでないと判定された場合、補正量算出部107は、ピークpeak_xiと、I列目とのx座標値の差から補正基準量cxi=xI−xgaze_iを算出する(ステップS1508)。そして、補正量算出部107は、ステップS1506に戻る。これにより、i=1,・・・,Mに対して、補正基準量cxiが算出される。
ステップS1507において、i>Mであると判定された場合、出力部108は、補正量算出部107により算出された補正基準量cx1,・・・,cxMを保存する(ステップS1509)。なお、出力部108は、例えば、補助記憶装置18の所定の記憶領域にcx1,・・・,cxMを保存すれば良い。後述するように、視線位置(x,y)に応じて、補正基準量cx1,・・・,cxMからx座標の補正量cxが算出される。
次に、y座標の補正量を算出するための補正基準量を算出する処理について、図16を参照しながら説明する。図16は、本実施形態に係る補正基準量の算出処理の一例を示すフローチャート(その2)である。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS1601)。
次に、積算部105は、入力部104により入力された視線位置(x,y)をx軸方向に積算して、x軸方向における積算値を算出する(ステップS1602)。
次に、ピーク特定部106は、x軸方向における積算値から、n=1,・・・,Nとして、x軸方向における積算値のピークpeak_ynを特定する(ステップS1603)。なお、Nは、商品が配置されている商品棚の段数である。
次に、補正量算出部107は、ピークを示す変数jと、商品棚の段を示す変数Jとをそれぞれ「1」に初期化する(ステップS1604)。
次に、補正量算出部107は、ピークpeak_yjと、J段目とのy座標値の差から補正基準量cyjを算出する(ステップS1605)。
すなわち、peak_yjのy座標値を「ygaze_j」、J段目のy座標値を「yJ」とした場合、補正量算出部107は、補正基準量cyj=yJ−ygaze_jを算出する。補正量算出部107は、配置座標DB120を参照することで、商品棚のJ段目のy座標値を特定することができる。
次に、補正量算出部107は、ピークを示す変数jと、商品棚の段を示す変数Jとにそれぞれ「1」を加算する(ステップS1606)。
次に、補正量算出部107は、j>Nであるか否かを判定する(ステップS1607)。すなわち、補正量算出部107は、変数jの値が、商品棚の段数Nを超えたか否かを判定する。
ステップS1607において、j>Nでないと判定された場合、補正量算出部107は、ピークpeak_yjと、J段目とのx座標値の差から補正基準量cyj=yJ−ygaze_jを算出する(ステップS1608)。そして、補正量算出部107は、ステップS1606に戻る。これにより、j=1,・・・,Nに対して、補正基準量cyjが算出される。
ステップS1607において、j>Nであると判定された場合、出力部108は、補正量算出部107により算出された補正基準量cy1,・・・,cyNを保存する(ステップS1609)。なお、出力部108は、例えば、補助記憶装置18の所定の記憶領域にcy1,・・・,cyNを保存すれば良い。後述するように、視線位置(x,y)に応じて、補正基準量cy1,・・・,cyNからy座標の補正量cyが算出される。
以降では、補正基準量から補正量を算出した上で、視線位置を補正する処理について、図17を参照しながら説明する。図17は、本実施形態に係る視線位置の補正処理の一例を示すフローチャートである。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)のうち、1つの視線位置(xt,yt)を入力する(ステップS1701)。
次に、補正量算出部107は、入力部104により入力された視線位置(xt,yt)のx座標値(すなわち、xt)に応じた補正量cxを算出する(ステップS1702)。なお、本ステップにおける補正量の算出処理の詳細については後述する。
次に、補正量算出部107は、入力部104により入力された視線位置(xt,yt)のy座標値(すなわち、yt)に応じた補正量cyを算出する(ステップS1703)。なお、本ステップにおける補正量の算出処理の詳細については後述する。
次に、視線位置補正部103は、視線位置(xt,yt)を補正量(cx,cy)で補正する(ステップS1704)。すなわち、視線位置補正部103は、視線位置(xt,yt)を(xt+cx,yt+cy)と補正する。これにより、視線位置DB110に格納されている視線位置(xt,yt)が補正される。
次に、入力部104は、次の視線位置(xt,yt)が視線位置DB110に格納されているか否か(すなわち、未だ補正されていない視線位置(xt,yt)が視線位置DB110に格納されているか否か)を判定する(ステップS1705)。
そして、ステップS1705において、次の視線位置(xt,yt)が視線位置DB110に格納されている場合、入力部104は、ステップS1701に戻る。これにより、視線位置DB110に格納されている各視線位置(xt,yt)に対して、当該視線位置(xt,yt)に応じた補正量(cx,cy)が算出された上で、当該視線位置(xt,yt)が当該補正量(cx,cy)で補正される。
一方、ステップS1705において、次の視線位置(xt,yt)が視線位置DB110に格納されていない場合、視線位置検出装置10は、処理を終了させる。
ここで、上記のステップS1702における補正量cxの算出処理について、図18を参照しながら説明する。図18は、本実施形態に係る補正量の算出処理の一例を示すフローチャート(その1)である。なお、図18では、一例として、商品棚の列数Mが「4」である場合について説明する。したがって、補正基準量は、cx1,cx2,cx3,cx4である。
まず、補正量算出部107は、以下の式1を満たすか否かを判定する(ステップS1801)。
xt≦xgaze_1+(xgaze_2−xgaze_1)/2 ・・・ (式1)
すなわち、補正量算出部107は、xtが、peak_x2のx座標値とpeak_x1のx座標値との中間を示すx座標値以下であるか否かを判定する。
ステップS1801において、上記の式1を満たすと判定された場合、補正量算出部107は、補正量cxを、cx=cx1で算出する(ステップS1802)。
一方で、ステップS1801において、上記の式1を満たさないと判定された場合、補正量算出部107は、以下の式2及び式3を満たすか否かを判定する(ステップS1803)。
xt>xgaze_1+(xgaze_2−xgaze_1)/2 ・・・ (式2)
xt≦xgaze_2+(xgaze_3−xgaze_2)/2 ・・・ (式3)
すなわち、補正量算出部107は、xtが、peak_x2のx座標値とpeak_x1のx座標値との中間を示すx座標値より大きく、かつ、peak_x3のx座標値とpeak_x2のx座標値との中間を示すx座標値以下であるか否かを判定する。
ステップS1803において、上記の式2及び式3を満たすと判定された場合、補正量算出部107は、補正量cxを、cx=cx1+cx2で算出する(ステップS1804)。
一方で、ステップS1803において、上記の式2及び式3を満たさないと判定された場合、補正量算出部107は、以下の式4及び式5を満たすか否かを判定する(ステップS1805)。
xt>xgaze_2+(xgaze_3−xgaze_2)/2 ・・・ (式4)
xt≦xgaze_3+(xgaze_4−xgaze_3)/2 ・・・ (式5)
すなわち、補正量算出部107は、xtが、peak_x3のx座標値とpeak_x3のx座標値との中間を示すx座標値より大きく、かつ、peak_x4のx座標値とpeak_x3のx座標値との中間を示すx座標値以下であるか否かを判定する。
ステップS1805において、上記の式4及び式5を満たすと判定された場合、補正量算出部107は、補正量cxを、cx=cx1+cx2+cx3で算出する(ステップS1806)。
一方、ステップS1805において、上記の式4及び式5を満たさないと判定された場合、補正量算出部107は、補正量cxを、cx=cx1+cx2+cx3+cx4で算出する(ステップS1807)。
ステップS1802、ステップS1804、ステップS1806又はステップS1807に続いて、出力部108は、補正量算出部107により算出された補正量cxを補正量DB130に格納する(ステップS1808)。このとき、出力部108は、視線位置(xt,yt)の時間tと関連付けて補正量cxを補正量DB130に格納する。これにより、視線位置(xt,yt)の時間t毎に、当該視線位置(xt,yt)に応じた補正量cx(すなわち、x座標の補正量)が補正量DB130に格納される。
次に、上記のステップS1703における補正量cyの算出処理について、図19を参照しながら説明する。図19は、本実施形態に係る補正量の算出処理の一例を示すフローチャート(その2)である。なお、図19では、一例として、商品棚の段数Nが「4」である場合について説明する。したがって、補正基準量は、cy1,cy2,cy3,cy4である。
まず、補正量算出部107は、以下の式6を満たすか否かを判定する(ステップS1901)。
yt≦ygaze_1+(ygaze_2−ygaze_1)/2 ・・・ (式6)
すなわち、補正量算出部107は、ytが、peak_y2のy座標値とpeak_y1のy座標値との中間を示すy座標値以下であるか否かを判定する。
ステップS1901において、上記の式6を満たすと判定された場合、補正量算出部107は、補正量cyを、cy=cy1で算出する(ステップS1902)。
一方で、ステップS1901において、上記の式6を満たさないと判定された場合、補正量算出部107は、以下の式7及び式8を満たすか否かを判定する(ステップS1903)。
yt>ygaze_1+(ygaze_2−ygaze_1)/2 ・・・ (式7)
yt≦ygaze_2+(ygaze_3−ygaze_2)/2 ・・・ (式8)
すなわち、補正量算出部107は、ytが、peak_y2のy座標値とpeak_y1のy座標値との中間を示すy座標値より大きく、かつ、peak_y3のy座標値とpeak_y2のy座標値との中間を示すy座標値以下であるか否かを判定する。
ステップS1903において、上記の式7及び式8を満たすと判定された場合、補正量算出部107は、補正量cyを、cy=cy1+cy2で算出する(ステップS1904)。
一方で、ステップS1903において、上記の式7及び式8を満たさないと判定された場合、補正量算出部107は、以下の式9及び式10を満たすか否かを判定する(ステップS1905)。
yt>ygaze_2+(ygaze_3−ygaze_2)/2 ・・・ (式9)
yt≦ygaze_3+(ygaze_4−ygaze_3)/2 ・・・ (式10)
すなわち、補正量算出部107は、ytが、peak_y3のy座標値とpeak_y3のy座標値との中間を示すy座標値より大きく、かつ、peak_y4のy座標値とpeak_y3のy座標値との中間を示すy座標値以下であるか否かを判定する。
ステップS1905において、上記の式9及び式10を満たすと判定された場合、補正量算出部107は、補正量cyを、cy=cy1+cy2+cy3で算出する(ステップS1906)。
一方、ステップS1905において、上記の式9及び式10を満たさないと判定された場合、補正量算出部107は、補正量cyを、cy=cy1+cy2+cy3+cy4で算出する(ステップS1907)。
ステップS1902、ステップS1904、ステップS1906又はステップS1907に続いて、出力部108は、補正量算出部107により算出された補正量cyを補正量DB130に格納する(ステップS1908)。このとき、出力部108は、視線位置(xt,yt)の時間tと関連付けて補正量cyを補正量DB130に格納する。これにより、視線位置(xt,yt)の時間t毎に、当該視線位置(xt,yt)に応じた補正量cy(すなわち、y座標の補正量)が補正量DB130に格納される。
ここで、上記のステップS1808及びステップS1909で補正量が格納された補正量DB130について、図20を参照しながら説明する。図20は、本実施形態に係る補正量DB130の一例を示す図である。
図20に示す補正量DB130には、時間毎の補正量が格納されている。すなわち、図20に示す補正量DB130には、時間t1における補正量、時間t2における補正量、時間t3における補正量等が格納されている。
また、各補正量には、x座標の補正量(すなわち、図18で補正量算出部107のより算出された補正量cx)と、y座標の補正量(すなわち、図19で補正量算出部107により算出された補正量cy)とが含まれる。
このように、本実施形態に係る補正量DB130には、時間毎の補正量が格納されている。これにより、視線位置補正部103は、時間tにおける補正量を用いて、視線位置(xt,yt)を補正することができる。
以上のように、本実施形態に係る視線位置検出装置10は、対象者の視線位置を積算した上で、積算値が極大となる座標値と、対象者が注視する対象物(例えば商品)の座標値との差から補正基準量を算出する。
そして、本実施形態に係る視線位置検出装置10は、対象者の視線位置に応じて、補正基準量から補正量を算出する。これにより、本実施形態に係る視線位置検出装置10は、例えば、視線センサ20の設置位置等が対象者Sの目の高さよりも上方又は下方である場合や対象者Sが眼鏡等を掛けている場合等に生じる誤差を高い精度で補正することができる。
したがって、本実施形態に係る視線位置検出装置10によれば、積算値が極大となる座標値と、対象者が注視する対象物の座標値との差から算出された補正基準量により、精度の良い補正量を算出するができる。
(第三の実施形態)
次に、第三の実施形態について説明する。第一の実施形態及び第二の実施形態では、視線位置DB110に格納されている視線位置(x,y)を積算することで、M個のピークpeak_xm(m=1,・・・,M)と、N個のピークpeak_xn(n=1,・・・,N)とが得られるものとして説明した。なお、M及びNは、それぞれ商品棚の列数及び段数である。
ここで、例えば視線センサ20による計測時間が短い場合等には、視線位置DB110に格納されている視線位置(x,y)を積算しても、M個のピークpeak_xmと、N個のピークpeak_xnとが得られない場合がある。
そこで、第三の実施形態では、M個のピークpeak_xmと、N個のピークpeak_xnとが得られた場合に、第二の実施形態の補正基準量を算出する処理について説明する。
なお、第三の実施形態では、主に、第二の実施形態との相違点について説明し、第二の実施形態と実質的に同一の構成要素については、適宜、その説明を省略する。
まず、本実施形態に係る視線位置検出装置10の機能構成について、図21を参照しながら説明する。図21は、本実施形態に係る視線位置検出装置10の機能構成の一例を示す図である。
図21に示すように、本実施形態に係る視線位置検出装置10の補正量算出処理部102は、更に、算出開始判定部109を有する。
算出開始判定部109は、所定の閾値以上であるピークの個数により、補正基準量の算出を開始するか否かを判定する。ここで、所定の閾値は、例えば、視線位置検出装置10のユーザにより予め設定される。
以降では、x座標の補正量を算出するための補正基準量を算出する処理について、図22を参照しながら説明する。図22は、本実施形態に係る補正基準量の算出処理の一例を示すフローチャート(その1)である。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS2201)。
次に、積算部105は、入力部104により入力された視線位置(x,y)をy軸方向に積算して、y軸方向における積算値を算出する(ステップS2202)。
次に、ピーク特定部106は、y軸方向における積算値から特定されるピークpeak_xmのうち、所定の閾値以上であるピークpeak_xmの個数s1を特定する(ステップS2203)。
次に、算出開始判定部109は、ピーク特定部106により特定された個数s1がMであるか否かを判定する(ステップS2204)。
ステップS2204において、個数s1がMであると判定された場合、補正量算出処理部102は、図15のステップS1503〜ステップS1509を行う(ステップS2205)。これにより、x座標の補正量を算出するための補正基準量が算出される。
一方で、ステップS2204において、個数s1がMでないと判定された場合、補正量算出処理部102は、ステップS2201に戻る。この場合、入力部104により、視線位置DB110に格納されている視線位置(x,y)が再度入力される。
このように、y軸方向における積算値から特定されるピークpeak_xmであって、所定の閾値以上であるピークpeak_xmの個数s1がM個となった場合に、補正基準量が算出される。これにより、例えば、視線センサ20で対象者Sをリアルタイムで計測しながら視線位置(x,y)を算出するような場合に、所定の閾値以上であるピークpeak_xmの個数s1がM個になったときに、x座標の補正量を算出することができるようになる。
次に、y座標の補正量を算出するための補正基準量を算出する処理について、図23を参照しながら説明する。図23は、本実施形態に係る補正基準量の算出処理の一例を示すフローチャート(その2)である。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS2301)。
次に、積算部105は、入力部104により入力された視線位置(x,y)をx軸方向に積算して、x軸方向における積算値を算出する(ステップS2302)。
次に、ピーク特定部106は、x軸方向における積算値から特定されるピークpeak_ynのうち、所定の閾値以上であるピークpeak_ynの個数s2を特定する(ステップS2303)。
次に、算出開始判定部109は、ピーク特定部106により特定された個数s2がN以上であるか否かを判定する(ステップS2304)。
ステップS2304において、個数s2がNであると判定された場合、補正量算出処理部102は、図16のステップS1603〜ステップS1609を行う(ステップS2305)。これにより、y座標の補正量を算出するための補正基準量が算出される。
一方で、ステップS2304において、個数s2がNでないと判定された場合、補正量算出処理部102は、ステップS2301に戻る。この場合、入力部104により、視線位置DB110に格納されている視線位置(x,y)が再度入力される。
このように、x軸方向における積算値から特定されるピークpeak_ynで、所定の閾値以上であるピークpeak_ynの個数s2がN個となった場合に、補正基準量が算出される。これにより、例えば、視線センサ20で対象者Sをリアルタイムで計測しながら視線位置(x,y)を算出するような場合に、所定の閾値以上であるピークpeak_ynの個数s2がN個になったときに、y座標の補正量を算出することができるようになる。
以上のように、本実施形態に係る視線位置検出装置10は、例えば、視線センサ20で対象者Sをリアルタイムで計測しながら対象者Sの視線位置(x,y)を算出するような場合に、ピークの個数が所定の個数となったときに補正量を算出することができる。
したがって、本実施形態に係る視線位置検出装置10によれば、例えば、ピークの個数が商品棚の列数(又は段数)よりも少ない場合や多い場合を防止することができ、精度のよい補正量を算出することができるようになる。
(第四の実施形態)
次に、第四の実施形態について説明する。対象者Sが対象物を注視する場合、一般に、視線位置を中心とする中心視野内の対象物を高い解像度で認識することができる。そこで、中心視野に相当する範囲として、例えば、図24に示すように、視線位置Pを中心とした或る半径で表される範囲(この範囲を「視線位置範囲」と表す。)Qを考えることができる。そして、当該視線位置範囲Q内に含まれる各点(すなわち、仮想平面L上に設定されたx軸及びy軸で表されるxy座標平面の各点のうち、視線位置範囲内Qに含まれる各点)を積算の対象とすることで、第一の実施形態によって精度の良い補正量が算出することができると考えられる。
しかしながら、この場合、例えば、視線位置範囲Qと、対象物の大きさとの関係によっては、補正量の算出に用いるピークとして適切なピークpeak_xm及びpeak_ynを特定できず、精度の良い補正量が算出できないことがあった。例えば、対象物の大きさに比べて視線位置範囲Qが非常に小さい場合、同一の対象物に対応する複数のピークが特定されてしまうことがあった。一方で、例えば、対象物の大きさに比べて視線位置範囲Qが非常に大きい場合、複数の対象物に対応するピークが特定されてしまうことがあった。このように、対象物と1対1に対応しないピークが特定される場合、精度の良い補正量が算出できないことがある。
そこで、第四の実施形態では、対象物の大きさ(サイズ)に応じて、視線位置範囲Qとする範囲を設定した上で、当該視線位置範囲Q内に含まれる各点を積算することで、補正量を算出する場合について説明する。ただし、第四の実施形態では、各対象物の大きさ(サイズ)は同一であるものとする。
なお、第四の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、適宜、その説明を省略する。
まず、第四の実施形態に係る視線位置検出装置10の機能構成について、図25を参照しながら説明する。図25は、第四の実施形態に係る視線位置検出装置10の機能構成の一例を示す図である。
図25に示すように、本実施形態に係る視線位置検出装置10の補正量算出処理部102は、更に、視線位置範囲設定部201と、ヒートマップ作成部202とを有する。また、本実施形態に係る視線位置検出装置10は、サイズ情報DB140を有する。サイズ情報DB140は、例えば補助記憶装置18を用いて実現可能である。なお、サイズ情報DB140は、視線位置検出装置10とネットワークNを介して接続される記憶装置等を用いて実現されていても良い。
視線位置範囲設定部201は、対象物(すなわち、商品棚に配置された商品)のサイズに応じて、視線位置毎に、当該視線位置が含まれる視線位置範囲を設定する。
ヒートマップ作成部202は、視線位置範囲設定部201により設定された視線位置範囲からヒートマップを作成する。ヒートマップは、視線位置範囲を用いて、仮想平面上に設定されたxy座標平面の各点に座標値を設定することで作成される。
また、本実施形態に係る積算部105は、ヒートマップ作成部202により作成されたヒートマップを用いて、視線位置が含まれる視線位置範囲内の各点をx軸方向(水平方向)とy軸方向(垂直方向)とにそれぞれ積算して、x軸方向における積算値とy軸方向における積算値とを算出する。
サイズ情報DB140は、対象者が注視する対象物(商品)のサイズを示すサイズ情報が格納されている。サイズ情報DB140に格納されているサイズ情報の詳細については後述する。
以降では、対象物の大きさ(サイズ)に応じて視線位置範囲を設定した上で、当該視線位置範囲内に含まれる各点を積算することで、補正量を算出する処理について、図26を参照しながら説明する。図26は、第四の実施形態に係る補正量の算出処理の一例を示すフローチャートである。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS2601)。以降では、便宜上、時間をtとして、時間t=1における視線位置(x1,y1)、時間t=2における視線位置(x2,y2)、・・・、時間t=Tにおける視線位置(xT,yT)が入力されたものとする。
次に、視線位置範囲設定部201は、入力部104により入力された各視線位置(xt,yt)に対して、商品のサイズに応じた視線位置範囲Qを設定する(ステップS2602)。ここで、本ステップにおける視線位置範囲の設定処理について、図27を参照しながら説明する。図27は、第四の実施形態に係る視線位置範囲の設定処理の一例を示すフローチャートである。
まず、視線位置範囲設定部201は、各商品の仮想平面Lにおける面積(商品面積)Wを算出する(ステップS2701)。視線位置範囲設定部201は、例えば、サイズ情報DB140を参照することで、商品面積Wを算出することができる。
ここで、本実施形態に係るサイズ情報DB140について、図28を参照しながら説明する。図28は、サイズ情報DB140の一例を示す図(その1)である。
図28に示すサイズ情報DB140には、商品番号1、商品番号2、・・・、商品番号12におけるサイズ情報が格納されている。各サイズ情報には、配置と、当該配置が示す位置に配置されている商品の商品サイズとが含まれる。
配置は、商品棚における列及び段の組である。また、商品サイズは、商品の幅及び高さの組である。
例えば、商品番号1のサイズ情報には、列「1」及び段「1」と、幅「400」及び高さ「200」とが含まれる。これは、商品段の1列1段目には、幅400mm及び高さ200mmの商品が配置されていることを示している。なお、上述したように、第四の実施形態では、各商品の商品サイズ(幅及び高さの組)は同一であるものとする。
視線位置範囲設定部201は、例えば、サイズ情報DB140を参照して、商品面積Wを、幅×高さにより算出することができる。なお、図28に示す例では、商品サイズとして、商品の幅及び高さが設定されている場合を示したが、これに限られず、例えば、商品サイズとして商品面積Wが設定されていても良い。
図28に戻る。ステップS2701に続いて、視線位置範囲設定部201は、商品面積Wに対する視線位置範囲Qの割合aを用いて、視線位置範囲Qの半径rを算出する(ステップS2702)。視線位置範囲設定部201は、例えば、以下の式11及び式12により半径rを算出する。
aS=πr2 ・・・ (式11)
r=√(aS/π) ・・・(式12)
ここで、aは0<a≦1の値が予め設定される。なお、aの値は0<a≦1であれば任意の値に設定することができるが、例えば、a=0.8等とすることが考えられる。
次に、視線位置範囲設定部201は、入力部104により入力された各視線位置(x,y)に対して半径rを対応付けることで、当該視線位置(x,y)を中心として半径rの視線位置範囲Qを設定する(ステップS2703)。これにより、例えば、視線位置(xt,yt)を中心として半径rの視線位置範囲を「視線位置範囲Qt」と表せば、各視線位置(xt,yt),(t=1,2,3,・・・,T)に対して、視線位置範囲Qtがそれぞれ設定される。視線位置範囲Qが設定されることで、当該視線位置範囲Qを、視線が検出された範囲(言い換えれば、当該視線位置範囲Q内の各点を視線が検出された位置)と見做すことができる。
なお、図27では、円形領域で表される視線位置範囲Qを設定する場合について説明したが、視線位置範囲Qは円形領域に限られず、例えば、楕円領域や矩形領域等で表される範囲であっても良い。例えば、楕円領域で表される視線位置範囲Qを設定する場合、視線位置範囲設定部201は、上記のステップS2702で、以下の式13及び式14により、楕円の長軸r1及び短軸r2を算出すれば良い。
r1=bw/2 ・・・ (式13)
r2=ch/2 ・・・ (式14)
ここで、wは商品サイズの幅、hは商品サイズの高さであり、b及びcはそれぞれ0<b≦1及び0<c≦1の値が予め設定される。
図26に戻る。ステップS2602に続いて、ヒートマップ作成部202は、視線位置範囲設定部201により設定された視線位置範囲Qからヒートマップを作成する(ステップS2603)。ここで、本ステップにおけるヒートマップ作成処理について、図29を参照しながら説明する。図29は、第四の実施形態に係るヒートマップ作成処理の一例を示すフローチャートである。
まず、ヒートマップ作成部202は、時間を表す変数tを1に初期化する(ステップS2901)。また、ヒートマップ作成部202は、仮想平面L上の各点のヒートマップ値hxyを0に初期化する(ステップS2902)。ヒートマップ値hxyとは仮想平面L上の各点(x,y)に対応付けられた値であり、このヒートマップ値hxyによりヒートマップが表される。
次に、ヒートマップ作成部202は、視線位置(xt,yt)に対応する視線位置範囲Qt内に含まれる各点のヒートマップ値hxyに1を加算する(ステップS2903)。
次に、ヒートマップ作成部202は、tに1を加算する(ステップS2904)。次に、ヒートマップ作成部202は、tがTより大きいか否かを判定する(ステップS2905)。そして、tがTより大きいと判定されなかった場合(すなわち、tがT以下である場合)、ヒートマップ作成部202は、ステップS2903に戻る。これにより、t=1,2,・・・,Tに対して、上記のステップS2903及びステップS2904が繰り返し実行される。
一方で、tがTより大きいと判定された場合、ヒートマップ作成部202は、ヒートマップ作成処理を終了する。これにより、仮想平面Lのヒートマップ値hxyにより表されるヒートマップが作成される。ここで、一例として、視線位置範囲Q1、Q2及びQ3により作成されたヒートマップを図30に示す。図30に示す例は、半径r=2、視線位置(x1,y1)=(5,8)、視線位置(x2,y2)=(8,10)、視線位置(x3,y3)=(7,9)である場合における各視線位置範囲Q1、Q2及びQ3のヒートマップである。図30に示すように、1つの視線位置範囲Qに含まれるヒートマップ値hxyには1が設定され、2つの視線位置範囲Qに含まれるヒートマップ値hxyには2が設定され、3つの視線位置範囲Qに含まれるヒートマップ値hxyには3が設定される。
このように、ヒートマップでは、多くの視線位置範囲Qが重なっている箇所程(すなわち、視線が検出された回数が多い箇所程)、ヒートマップ値hxyが高い値となっている。
図26に戻る。ステップS2603に続いて、積算部105は、ヒートマップ作成部202により作成されたヒートマップを用いて、各ヒートマップ値hxyをy軸方向に積算して、y軸方向における積算値を算出する(ステップS2604)。すなわち、積算部105は、x座標値毎に、x座標値が同一である各ヒートマップ値hxyを加算することで、y軸方向における積算値を算出する。このy軸方向における積算値は、各視線位置範囲Qに含まれる各点を視線位置と見做した場合に、x座標値が同一である視線位置(x,y)の個数を表している。
次に、積算部105は、ヒートマップ作成部202により作成されたヒートマップを用いて、各ヒートマップ値をx軸方向に積算して、x軸方向における積算値を算出する(ステップS2605)。すなわち、積算部105は、y座標値毎に、y座標値が同一である各ヒートマップ値hxyを加算することで、x軸方向における積算値を算出する。このx軸方向における積算値は、各視線位置範囲Qに含まれる各点を視線位置と見做した場合に、y座標値が同一である視線位置(x,y)の個数を表している。
以降のステップS2606〜ステップS2610は、図8のステップS804〜ステップS808とそれぞれ同様であるため、その説明を省略する。
以上のように、本実施形態に係る視線位置検出装置10は、対象物(例えば商品)のサイズに応じて、各視線位置(x,y)に対して視線位置範囲Qを設定した上で、当該視線位置範囲Q内に含まれる各点を積算する。これにより、本実施形態に係る視線位置検出装置10は、上記のステップS2606及びステップS2607で適切なピークpeak_xm及びpeak_ynを特定することができるようになり、精度の良い補正量を算出することができる。
(第五の実施形態)
次に、第五の実施形態について説明する。第四の実施形態では、各対象物の大きさ(サイズ)が同一である場合について説明した。しかしながら、例えば、1つの商品棚に複数のサイズの商品が配置される場合も有り得る。言い換えれば、例えば、複数のサイズの商品が1つの商品棚に配置される場合も有り得る。
そこで、第五の実施形態では、対象物の大きさ(サイズ)が複数存在する場合について説明する。
なお、第五の実施形態では、主に、第四の実施形態との相違点について説明し、第四の実施形態と実質的に同一の構成要素については、適宜、その説明を省略する。
以降では、対象物の大きさ(サイズ)が複数存在する場合に、対象物の大きさ(サイズ)に応じて視線位置範囲を設定した上で、当該視線位置範囲内に含まれる各点を積算することで、補正量を算出する処理について、図31を参照しながら説明する。図31は、第五の実施形態に係る補正量の算出処理の一例を示すフローチャートである。
まず、入力部104は、視線位置DB110に格納されている視線位置(x,y)を入力する(ステップS3101)。以降では、第四の実施形態と同様に、時間をtとして、時間t=1における視線位置(x1,y1)、時間t=2における視線位置(x2,y2)、・・・、時間t=Tにおける視線位置(xT,yT)が入力されたものとする。
次に、視線位置範囲設定部201は、入力部104により入力された各視線位置(xt,yt)に対して、複数の商品サイズのうちの1つの商品サイズに応じた視線位置範囲Qを設定する(ステップS3102)。ここで、本ステップにおける視線位置範囲の設定処理について、図32を参照しながら説明する。図32は、第五の実施形態に係る視線位置範囲の設定処理の一例を示すフローチャートである。
まず、視線位置範囲設定部201は、複数の商品サイズの中から1つの商品サイズを選択する(ステップS3201)。視線位置範囲設定部201は、例えば、サイズ情報DB140を参照することで、複数の商品サイズの中から1つの商品サイズを選択することができる。
ここで、本実施形態に係るサイズ情報DB140について、図33を参照しながら説明する。図33は、サイズ情報DB140の一例を示す図(その2)である。
図33に示すサイズ情報DB140には、商品番号1、商品番号2、・・・、商品番号9におけるサイズ情報が格納されている。各サイズ情報には、配置と、当該配置が示す位置に配置されている商品の商品サイズとが含まれる。
例えば、商品番号1のサイズ情報には、列「1」及び段「1」と、幅「800」及び高さ「200」とが含まれる。これは、商品段の1列1段目には、幅800mm及び高さ200mmの商品が配置されていることを示している。
また、例えば、商品番号2のサイズ情報には、列「2」及び段「1」と、幅「400」及び高さ「200」とが含まれる。これは、商品段の2列1段目には、幅400mm及び高さ200mmの商品が配置されていることを示している。
このように、第五の実施形態では、商品サイズが異なるサイズ情報がサイズ情報DB140に格納されている。
視線位置範囲設定部201は、例えば、サイズ情報DB140を参照して、任意の1つの商品の商品サイズを選択すれば良い。このとき、視線位置範囲設定部201は、選択した商品の列及び段を、例えば、RAM16や補助記憶装置18等の記憶領域に保持しておく。
図32に戻る。ステップS3201に続いて、視線位置範囲設定部201は、上記のステップS3201で選択した商品サイズから商品面積Wを参照する(ステップS3202)。視線位置範囲設定部201は、第四の実施形態と同様に、商品面積Wを、幅×高さにより算出すれば良い。
以降のステップS3203〜ステップS3204は、図27のステップS2702〜ステップS2703とそれぞれ同様であるため、その説明を省略する。これにより、各視線位置(xt,yt)に対して、複数の商品サイズのうちの或る1つの商品サイズに応じた視線位置範囲Qtがそれぞれ設定される。
図31に戻る。ステップS3102に続いて、ヒートマップ作成部202は、視線位置範囲設定部201により設定された視線位置範囲Qからヒートマップを作成する(ステップS3103)。なお、本ステップにおけるヒートマップ作成処理は、図26のステップS2603と同様であるため、その説明を省略する。
以降のステップS3204〜ステップS3207は、図26のステップS2604〜ステップS2607とそれぞれ同様であるため、その説明を省略する。
ステップS3107に続いて、補正量算出部107は、ステップS3206で特定されたピークpeak_xm(m=1,・・・,M)のうち、上記のステップS3201で商品サイズが選択された商品に対応するピークpeak_xiを特定する。例えば、上記のステップS3201で商品サイズが選択された商品の列がI列目である場合、補正量算出部107は、ピークpeak_xm(m=1,・・・,M)のうち、I列目に対応するピークpeak_xiを特定する。
そして、補正量算出部107は、当該ピークpeak_xiと、商品棚の列のうち、当該ピークpeak_xiに対応するI列目とのx座標値の差から補正量cxを算出する(ステップS3108)。これにより、補正量cx=xI−xgaze_iが算出される。なお、xIはI列目のx座標値、xgaze_iはピークpeak_xiのx座標値である。
次に、補正量算出部107は、ステップS3207で特定されたピークpeak_yn(n=1,・・・,N)のうち、上記のステップS3201で商品サイズが選択された商品に対応するピークpeak_yjを特定する。例えば、上記のステップS3201で商品サイズが選択された商品の段がJ段目である場合、補正量算出部107は、ピークpeak_yn(n=1,・・・,N)のうち、J段目に対応するピークpeak_yjを特定する。
そして、補正量算出部107は、当該ピークpeak_yjと、商品棚の段のうち、当該ピークpeak_yjに対応するJ段目とのy座標値の差から補正量cyを算出する(ステップS3109)。これにより、補正量cy=yJ−ygaze_jが算出される。なお、yJはJ段目のy座標値、ygaze_jはピークpeak_yjのy座標値である。
以降のステップS3110は、図8のステップS808と同様であるため、その説明を省略する。
以上のように、本実施形態に係る視線位置検出装置10は、対象物の大きさ(サイズ)が複数存在する場合に、これらの複数のサイズのうちの1つのサイズを選択した上で、選択したサイズに応じて各視線位置(x,y)に対して視線位置範囲Qを設定する。そして、本実施形態に係る視線位置検出装置10は、選択したサイズに対応する対象物に対応するピークpeak_xm及びpeak_ynを用いて、補正量を算出する。これにより、本実施形態に係る視線位置検出装置10は、例えば、1つの商品棚に様々なサイズの商品が混在して配置されている場合等であっても、精度の良い補正量を算出することができる。
以上、本発明の実施形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更、組み合わせが可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
対象物に対する複数の位置、または範囲において視線が検出された回数を算出し、
算出した前記回数が極大となる位置、または範囲を特定し、
特定した前記位置、または前記範囲に基づいて、前記視線の位置補正する、
処理をコンピュータに実行させることを特徴とする視線位置検出プログラム。
(付記2)
位置、または範囲には、複数の方向をそれぞれ示す複数の成分が含まれ、
前記複数の位置、または範囲の所定の方向を示す成分において視線が検出された回数を算出し、
特定した前記位置、または前記範囲に基づいて、前記視線の位置の所定の方向を示す成分を補正する、ことを特徴とする付記1に記載の視線位置検出プログラム。
(付記3)
特定した前記位置、または前記範囲に基づいて、前記視線の位置の所定の方向を示す成分に対する複数の補正基準量を算出し、前記視線の位置に応じて、前記複数の補正基準量のうちの1以上の補正基準量から前記成分を補正する、ことを特徴とする付記2に記載の視線位置検出プログラム。
(付記4)
算出した前記回数が極大となる個数を特定し、
前記対象物が所定の方向に配置されている個数に関する情報が記憶された記憶部を参照して、特定した前記個数と、前記対象物が所定の方向に配置されている個数とが一致するか否かを判定し、
特定した前記個数と、前記対象物が所定の方向に配置されている個数とが一致すると判定した場合に、前記成分を補正する、ことを特徴とする付記2又は3に記載の視線位置検出プログラム。
(付記5)
算出した前記回数が極大となる位置のうち、前記回数が最大となる位置を特定する、ことを特徴とする付記1乃至4の何れか一項に記載の視線位置検出プログラム。
(付記6)
前記対象物の大きさに基づいて、前記範囲の設定し、
前記範囲において視線が検出された回数を算出する、ことを特徴とする付記1乃至5の何れか一項に記載の視線位置検出プログラム。
(付記7)
複数の前記対象物のうちの一の対象物の大きさに基づいて、前記範囲を設定し、
算出した前記回数のうち、前記一の対象物に対応する範囲を特定する、ことを特徴とする付記6に記載の視線位置検出プログラム。
(付記8)
対象物に対する複数の位置、または範囲において視線が検出された回数を算出する算出部と、
前記算出部が算出した前記回数が極大となる位置、または範囲を特定する特定部と、
前記特定部が特定した前記位置、または前記範囲に基づいて、前記視線の位置補正する補正部と、
を有することを特徴とする視線位置検出装置。
(付記9)
位置、または範囲には、複数の方向をそれぞれ示す複数の成分が含まれ、
前記算出部は、
前記複数の位置、または範囲の所定の方向を示す成分において視線が検出された回数を算出し、
前記補正部は、
前記特定部が特定した前記位置、または前記範囲に基づいて、前記視線の位置の所定の方向を示す成分を補正する、ことを特徴とする付記8に記載の視線位置検出装置。
(付記10)
前記補正部は、
前記特定部が特定した前記位置、または前記範囲に基づいて、前記視線の位置の所定の方向を示す成分に対する複数の補正基準量を算出し、前記視線の位置に応じて、前記複数の補正基準量のうちの1以上の補正基準量から前記成分を補正する、ことを特徴とする付記9に記載の視線位置検出装置。
(付記11)
前記算出部が算出した前記回数が極大となる個数を特定する個数特定部と、
前記対象物が所定の方向に配置されている個数に関する情報が記憶された記憶部を参照して、特定した前記個数と、前記対象物が所定の方向に配置されている個数とが一致するか否かを判定する判定部と、を有し、
前記補正部は、
前記個数特定部が特定した前記個数と、前記対象物が所定の方向に配置されている個数とが一致すると判定した場合に、前記成分を補正する、ことを特徴とする付記9又は10に記載の視線位置検出装置。
(付記12)
前記特定部は、
前記算出部が算出した前記回数が極大となる位置のうち、前記回数が最大となる位置を特定する、ことを特徴とする付記8乃至11の何れか一項に記載の視線位置検出装置。
(付記13)
対象物に対する複数の位置、または範囲において視線が検出された回数を算出し、
算出した前記回数が極大となる位置、または範囲を特定し、
特定した前記位置、または前記範囲に基づいて、前記視線の位置補正する、
処理をコンピュータが実行することを特徴とする視線位置検出方法。