以下、図面を参照しながら、本発明の実施形態について説明する。以下の実施形態では、カメラ画像上のユーザと端末(制御端末)との対応付け方法を提案する。この対応付け方法は、館内などの歩行速度が遅い場面においても、適用可能である。以下の対応付け方法では、端末の画面閲覧に伴って手が上下動する時刻を検出する。そして、手の上下動の時刻に関する検出結果に基づいて、対応付けを行う。
[第1実施形態]
以下、第1実施形態について説明する。図3は、本実施形態の対応付けシステム(通信システム)1のシステムモデルを示す。対応付けシステム1は、情報処理装置(マッチング処理ユニット)としてマッチング用サーバ2を備える。また、対応付けシステム1には、撮影機器であるカメラ3、および、ユーザUの端末4が設けられる。マッチング用サーバ2は、カメラ3から情報を取得するとともに、端末4から情報を取得する。すなわち、情報処理装置であるマッチング用サーバ2は、カメラ3及び端末4に対して、情報交換が可能である。
マッチング用サーバ2は、カメラ3からの情報に基づいて、ユーザUが端末4を上下させる動作、および、その上下動が行われた時刻を算出する。また、マッチング用サーバ2は、端末4からの情報に基づいても、ユーザUが端末4を上下させる動作、および、その上下動が行われた時刻を算出する。そして、マッチング用サーバ2は、カメラ3からの情報に基づく上下動が行われた時刻の算出結果、および、端末4からの情報に基づく上下動が行われた時刻の算出結果を用いて、カメラ画像上のユーザUと端末4との対応付けを行う。
図4は、本実施形態における対応付けシステム1の構成をブロック図で示す。本実施形態では、情報処理装置(対応付け装置)であるマッチング用サーバ2は、情報送受信部5を備える。情報送受信部5は、マッチング用サーバ2からの情報の送信、および、マッチング用サーバ2への情報の受信を行う。情報送受信部5は、有線または無線のインターフェースから形成される。また、本実施形態では、カメラ3としてKinect−v2が用いられ、用いられる。カメラ3では、深度画像情報を生成し、生成した深度画像情報をマッチング用サーバ2に送信する。
端末4には、加速度センサ6が設けられる。また、端末4は、センサ情報取得部7と、通信制御部8とを備える。ここで、端末4は、CPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などを含むプロセッサ、および、メモリを備える。そして、メモリに格納されたプログラムをプロセッサが実行することにより、センサ情報取得部7および通信制御部8のそれぞれの機能が、実現される。センサ情報取得部7は、加速度センサ6での検知結果に関するセンサ情報を取得する。通信制御部8は、端末4とマッチング用サーバ2の情報送受信部5との間の無線通信等による通信状態を制御する。通信制御部8は、センサ情報取得部7が取得したセンサ情報を、マッチング用サーバ2に送信させる。
マッチング用サーバ2は、位置検出部11と、第1運動データ算出部12と、加速度検出部13と、第2運動データ算出部14と、マッチング処理部15とを備える。ここで、マッチング用サーバ2は、CPU、ASICまたはFPGAなどを含むプロセッサ、および、メモリを備える。そして、メモリに格納されたプログラムをプロセッサが実行することにより、位置検出部11、第1運動データ算出部12、加速度検出部13、第2運動データ算出部14およびマッチング処理部15のそれぞれの機能が、実現される。
位置検出部11は、カメラ3からの深度画像情報に基づいて、ユーザUの手の位置を検出する。この際、ユーザUの手の位置に加えて、その手を検出した画像の時刻も、ユーザUの手の位置情報として取得する。第1運動データ算出部12は、ユーザUの手の位置情報を用いて、ユーザUの手の上下動に関する時刻情報を算出する。そして、第1運動データ算出部12は、手の鉛直方向についての運動状態に関する時系列データである第1運動データを、生成する。第1運動データでは、ユーザUの手の位置情報に基づくユーザUの手の上下動に関する時刻情報が、示される。
加速度検出部13は、端末4からのセンサ情報に基づいて、端末4の加速度を検出する。この際、端末4の加速度に加えて、検出した加速度になった時刻も、端末4の加速度情報として取得する。第2運動データ算出部14は、端末4の加速度情報を用いて、端末4(ユーザUの手)の上下動に関する時刻情報を算出する。そして、第2運動データ算出部14は、端末4の鉛直方向についての運動状態に関する時系列データである第2運動データを、生成する。第2運動データでは、端末4の加速度情報に基づく端末4の上下動に関する時刻情報が、示される。
マッチング処理部15は、第1運動データ算出部12が算出したユーザUの手の上下動に関する時刻情報、および、第2運動データ算出部14が算出した端末4の上下動に関する時刻情報を用いて、マッチング処理を行う。すなわち、マッチング処理部15は、ユーザUの手の位置情報に基づく手の鉛直方向についての運動状態を示す第1運動データ、および、端末4の加速度情報に基づく端末4の鉛直方向についての運動状態を示す第2運動データを用いて、カメラ画像上のユーザUと端末(通信端末)4との対応付けを行う。本実施形態では、ユーザUの手の上下動に関する時刻情報、および、端末4の上下動に関する時刻情報に基づいてマッチング処理が行われるため、後述のように、歩行速度が遅い場合、および、停止中の場合のそれぞれでも、ユーザUと端末4との対応付けが適切に行われる。
図5は、本実施形態の対応付けシステム1で行われる処理を示す。対応付けシステム1では、S1において、撮影機器であるカメラ3が、館内などの画像を取得する。この際、カメラ3は、画像として、深度画像を取得する。また、S2において、カメラ3は、S1で深度画像を取得した時点の時刻、すなわち、画像を撮影した時点の時刻を取得する。そして、カメラ3は、S1で取得した深度画像、および、S2で取得した時刻を含む深度画像情報を生成する。そして、カメラ3は、生成した深度画像情報を、マッチング用サーバ2に送信する。
そして、S3で、マッチング用サーバ2の位置検出部11は、深度画像情報からユーザUの手の位置を検出する。この際、Microsoft社のKinectのライブラリを用いて、深度画像からユーザ(人)Uの手の位置を抽出し、ユーザUの手の高さについてのデータを算出する。また、この際、位置検出部11は、手を抽出した画像を取得した時刻、すなわち、手を抽出した画像が撮影された時刻も、取得する。これにより、ユーザUの手の位置、および、その手を抽出した画像を取得した時刻を含む、ユーザUの手の位置情報が生成される。
ここで、画像が撮影されたタイミングが一定でないため、手の位置情報を示すデータでは、互いに対して隣り合うデータ点間の時間間隔が一定でない。このため、S4において、第1運動データ算出部12は、手の位置情報を示すデータのテータ点間を線形補間する。線形補間が行われることにより、手の位置情報を示すデータにおいて、互いに対して隣り合うデータ点間のある時点における手の位置も、算出可能になる。そして、第1運動データ算出部12は、線形補間の結果を用いて、観察開始から観察終了まで一定のサンプリング間隔Tでサンプリングされたデータに変換する。これにより、手の位置情報について、一定のサンプリング間隔Tでサンプリングされたデータが生成される。
図6は、S3,S4の処理で生成された、手の鉛直方向についての位置情報に関するデータの一例を示す。手の位置情報を示すデータでは、鉛直方向についての手の位置(高さ)の経時的な変化が示される。図6の一例では、範囲ΔT1において、手が上昇中であり、範囲ΔT2において、手が下降中である。
そして、図5に示すように、S5において、第1運動データ算出部12は、手の位置情報についてサンプリングされたデータから、手の鉛直方向についての速度vを示すデータを算出する。この際、鉛直方向についての手の位置を時間微分することにより、手の鉛直方向についての速度データが算出される。例えば、サンプリングされたデータにおいてデータ点(t1,h1)とそのテータ点(t1,h1)の1つ後のデータ点(t2,h2)との間での手の鉛直方向についての速度v1→2は、式(1)のようにして算出される。
そして、S6において、第1運動データ算出部12は、手の鉛直方向についての速度データから、手の鉛直方向についての運動状態に関する第1運動データを算出する。第1運動データでは、観察開始から観察終了までの間のデータ点のそれぞれにおいて、ユーザUの手が、上昇中、下降中、および、上下の変化なしの3つの状態のいずれであるかが、示される。したがって、第1運動データでは、手が上昇している上昇時刻、および、手が下降している下降時刻を示すデータである。
ここで、鉛直方向についての手の速度vに関して、上側を正とし、下側を負とする。手を上昇させる動作では、鉛直方向についての手の速度vは正になり、0から離れた値になる。一方、手を下降させる動作では、鉛直方向についての手の速度vは負になり、0から離れた値になる。前述のような特徴を利用して、第1運動データ算出部12は、それぞれの時点(データ点)において、ユーザUの手が、上昇中、下降中、および、上下の変化なしのいずれであるかを、判断する。
また、第1運動データでは、各データ点において、手の運動状態を示すパラメータが設定される。すなわち、第1運動データでは、手の運動状態を示すパラメータの経時的な変化が示される。手が上昇中であると判断されたデータ点では、パラメータは、1に設定され、手が下降中であると判断されたデータ点では、パラメータは、−1に設定される。そして、手の上下の変化なしと判断されたデータ点では、パラメータは、0に設定される。
まず、手が上昇中であるか否かの判断について、説明する。手が上昇中であるか否かの判断では、第1運動データ算出部12は、鉛直方向の速度vに関して、2つの閾値β+,γ+を正の閾値として設定する。ここで、閾値β+,γ+は、0より大きく、閾値(第1閾値)β+は、閾値(第2閾値)γ+より大きい。すなわち、閾値β+の絶対値は、閾値γ+の絶対値より大きく、0<γ+<β+の関係が成立する。なお、ある一例では、閾値β+は1m/sであり、閾値γ+は0.1m/sである。
手が上昇中であるか否かの判断では、第1運動データ算出部12は、速度データのデータ点の中で、速度vが閾値β+以上になるデータ点を検出する。そして、第1運動データ算出部12は、速度vが閾値β+以上になるデータ点およびそのデータ点の前後において、経時的に継続して速度vが閾値γ+以上になる範囲を、検出する。そして、第1運動データ算出部12は、速度vが経時的に継続して閾値γ+以上になる範囲として検出した範囲では、手が上昇中であると判断する。また、第1運動データ算出部12は、前述の検出した範囲内で一番早い時刻のデータ点を手の上昇開始時刻とし、前述の検出した範囲内で一番遅い時刻のデータ点を手の上昇終了時刻とする。
図7は、手が上昇中であるか否かの判断の一例を説明する。図7の一例では、手の鉛直方向についての速度データが示される。図7の一例では、例えばデータ点D1が、速度vが閾値β+以上になるデータ点として検出される。そして、データ点D1およびデータ点D1の前後において経時的に継続して速度vが閾値γ+以上になる範囲として、範囲ΔT3が検出される。そして、範囲ΔT3では、手が上昇中であると判断される。また、範囲ΔT3内で一番早い時刻のデータ点D2が手の上昇開始時刻とされ、範囲ΔT3内で一番遅い時刻のデータ点D3が手の上昇終了時刻とされる。
次に、手が下降中であるか否かの判断について、説明する。手が下降中であるか否かの判断では、第1運動データ算出部12は、鉛直方向の速度vに関して、2つの閾値β―,γ―を負の閾値として設定する。ここで、閾値β−,γ−は、0より小さく、閾値(第1閾値)β−は、閾値(第2閾値)γ−より小さい。すなわち、閾値β−の絶対値は、閾値γ−の絶対値より大きく、0>γ−>β−の関係が成立する。なお、ある一例では、閾値β−は−1m/sであり、閾値γ―は−0.1m/sである。
手が下降中であるか否かの判断では、第1運動データ算出部12は、速度データのデータ点の中で、速度vが閾値β−以下になるデータ点を検出する。そして、第1運動データ算出部12は、速度vが閾値β−以下になるデータ点およびそのデータ点の前後において、経時的に継続して速度vが閾値γ−以下になる範囲を、検出する。そして、第1運動データ算出部12は、速度vが経時的に継続して閾値γ−以下になる範囲として検出した範囲では、手が下降中であると判断する。また、第1運動データ算出部12は、前述の検出した範囲内で一番早い時刻のデータ点を手の下降開始時刻とし、前述の検出した範囲内で一番遅い時刻のデータ点を手の下降終了時刻とする。
また、第1運動データ算出部12は、手が上昇中と判断した範囲、および、手が下降中と判断した範囲のいずれにも該当しない範囲では、手の上下の変化なしと判断する。
図8は、第1運動データの一例を示す。図8の一例の第1運動データでは、範囲ΔT4において、手が上昇中であると判断され、手の運動状態を示すパラメータが1に設定される。そして、範囲ΔT5において、手が下降中であると判断され、手の運動状態を示すパラメータが−1に設定される。そして、範囲ΔT4,ΔT5のいずれにも該当しない範囲では、手の上下の変化なしと判断され、手の運動状態を示すパラメータが0に設定される。
なお、前述の一例では、手の上昇中の速度について2つの閾値β+,γ+が設定され、手の下降中の速度について2つの閾値β−,γ−が設定されるが、これに限るものではない。手の上昇中の速度については、1つの閾値が設定されてもよく、3つ以上の閾値が設定されてもよい。同様に、手の下降中の速度についても、1つの閾値が設定されてもよく、3つ以上の閾値が設定されてもよい。速度についての閾値の数が増加することにより、手の運動状態を示すパラメータの数を増加させることも可能になる。
例えば、ある一例では、手の上昇中の速度について3つの閾値β+,γ+,ε+が設定される。そして、上昇中の速度についての3つの閾値β+,γ+,ε+に基づいて、第1の運動データ算出部12は、ユーザUの手が、上下の変化なし、比較的遅い速度で上昇中、および、比較的速い速度で上昇中のいずれであるかを、判断する。この場合、手の運動状態を示すパラメータは、手が比較的速い速度で上昇中と判断されたデータ点では2に設定され、手が比較的遅い速度で上昇中と判断されたデータ点では1に設定される。そして、手の上下の変化なしと判断されたデータ点では、パラメータは0に設定される。
また、この一例では、手の下降中の速度について3つの閾値β−,γ−,ε−が設定される。そして、下降中の速度についての3つの閾値β−,γ−,ε−に基づいて、第1の運動データ算出部12は、ユーザUの手が、上下の変化なし、比較的遅い速度で下降中、および、比較的速い速度で下降中のいずれであるかを、判断する。この場合、手の運動状態を示すパラメータは、手が比較的速い速度で下降中と判断されたデータ点では−2に設定され、手が比較的遅い速度で下降中と判断されたデータ点では−1に設定される。そして、手の上下の変化なしと判断されたデータ点では、パラメータは0に設定される。
また、図5に示すように、対応付けシステム1では、S7において、端末4のセンサ情報取得部7が、加速度センサ6での検知結果を取得する。また、S8において、センサ情報取得部7は、加速度センサ6が検知を行った時点の時刻を取得する。そして、端末4は、S7で取得した検知結果、および、S8で取得した時刻を含むセンサ情報を生成する。そして、端末4の通信制御部8は、生成したセンサ情報を、マッチング用サーバ2に送信させる。
そして、S9で、マッチング用サーバ2の加速度検出部13は、センサ情報から端末4の鉛直方向の加速度aを検出する。加速度検出部13は、端末4が検出した加速度aになった時刻も、取得する。これにより、端末4の鉛直方向の加速度a、および、端末4がその加速度aになった時刻を含む、端末4の鉛直方向の加速度情報が生成される。
ここで、加速度センサ6が検知を行うタイミングが一定でないため、端末4の加速度情報を示すデータでは、互いに対して隣り合うデータ点間の時間間隔が一定でない。このため、S10において、第2運動データ算出部14は、端末4の鉛直方向の加速度情報を示すデータのテータ点間を線形補間する。線形補間が行われることにより、端末4の加速度情報を示すデータにおいて、互いに対して隣り合うデータ点間のある時点における端末4の鉛直方向の加速度aも、算出可能になる。そして、第2運動データ算出部14は、線形補間の結果を用いて、観察開始から観察終了まで一定のサンプリング間隔Tでサンプリングされたデータに変換する。これにより、端末4の鉛直方向の加速度情報について、一定のサンプリング間隔Tでサンプリングされたデータが生成される。なお、S10では、S4と同一のサンプリング間隔Tでサンプリングが行われる。
そして、S11において、第2運動データ算出部14は、端末4の加速度情報についてサンプリングされたデータから、端末4に作用する力の方向に関するデータを算出する。端末4に作用する力の方向に関するデータでは、観察開始から観察終了までの間のデータ点のそれぞれにおいて、端末4に力が、上方向に作用している、下方向に作用している、および、作用していないまたはほとんど作用していない、の3つの状態のいずれであるかが、示される。
端末4に作用する力の方向に関するデータでは、各データ点において、力の方向を示すパラメータが設定される。すなわち、力の方向に関するデータでは、力の方向を示すパラメータの経時的な変化が示される。力が上方向に作用していると判断されたデータ点では、パラメータは、1に設定され、力が下方向にしていると判断されたデータ点では、パラメータは、−1に設定される。そして、力が作用していないまたはほとんど作用していないと判断されたデータ点では、パラメータは、0に設定される。
ここで、鉛直方向についての端末4の加速度aに関して、上側を正とし、下側を負とする。端末4に作用する力の方向に関するデータの算出においては、第2運動データ算出部14は、鉛直方向の加速度aに関して、2つの閾値θ,φを設定する。閾値θは、閾値φより大きく、φ<θの関係が成立する。ある実施例では、鉛直方向の加速度aとして、加速度センサでの検知された鉛直方向の加速度から重力加速度(9.8m/s2)を減算した値が、用いられる。そして、閾値θは、0より大きく、閾値φは、0より小さい。このため、φ<0<θの関係が成立する。この場合、例えば、閾値θは、2m/s2であり、閾値φは−2m/s2である。また、別のある実施例では、鉛直方向の加速度aの算出において、重量加速度の減算等が行われず、加速度aとして、加速度センサでの検知された鉛直方向の加速度が、そのまま用いられる。そして、閾値θは、重力加速度より大きく、閾値φは、重力加速度より小さい。このため、φ<9.8<θの関係が成立する。
力の方向に関するデータの算出では、第2運動データ算出部14は、加速度aが閾値θより大きいデータ点、すなわち、a>θになるデータ点において、端末4に力が上方向に作用していると、判断する。また、第2運動データ算出部14は、加速度aが閾値φより小さいデータ点、すなわち、φ>aになるデータ点において、端末4に力が下方向に作用していると、判断する。そして、第2運動データ算出部14は、加速度aが閾値φ以上閾値θ以下になるデータ点、すなわち、φ≦a≦θになるデータ点において、端末4に力が作用していないまたはほとんど作用していないと、判断する。
図9は、S11の処理の一例を示す。図9の一例では、S11において、端末4の鉛直方向についての加速度aを示すデータB1が、端末4に作用する力の方向を示すデータB2に変換される。そして、図9の一例では、範囲ΔT6,ΔT9において、端末4に上方向の力が作用していると、判断される。このため、データB2では、範囲ΔT6,ΔT9において、作用する力の方向を示すパラメータが1に設定される。また、範囲ΔT7,ΔT8において、端末4に下方向の力が作用していると、判断される。このため、データB2では、範囲ΔT7,ΔT8において、作用する力の方向を示すパラメータが−1に設定される。そして、範囲ΔT6〜ΔT9のいずれにも該当しない範囲では、端末4に鉛直方向の力が作用していないまたはほとんど作用していないと、判断される。このため、データB2では、範囲ΔT6〜ΔT9のいずれにも該当しない範囲において、作用する力の方向を示すパラメータが0に設定される。
なお、前述の一例では、加速度aについて2つの閾値θ,φが設定されるが、これに限るものではない。例えば、加速度aについては、3つ以上の閾値が設定されてもよい。加速度aについての閾値の数が増加することにより、端末4に作用する力に関するパラメータの数を増加させることも可能になる。
ある一例では、加速度aについての閾値が3つ以上設定される。そして、第2運動データ算出部14は、端末4に上方向に作用していると判断した場合に、端末4への上方向への大きさを判断する。そして、端末4に作用する力に関するパラメータは、端末4への上方向の力が比較的大きいと判断されたデータ点では2に設定され、端末4への上方向の力が比較的小さいと判断されたデータ点では1に設定される。
また、この一例では、第2運動データ算出部14は、端末4に下方向に作用していると判断した場合に、端末4への下方向への大きさを判断する。そして、端末4に作用する力に関するパラメータは、端末4への下方向の力が比較的大きいと判断されたデータ点では−2に設定され、端末4への下方向の力が比較的小さいと判断されたデータ点では−1に設定される。本一例でも、端末4に力が作用しないまたはほとんど作用しないと判断されたデータ点では、パラメータは0に設定される。
そして、図5に示すように、S12において、第2運動データ算出部14は、端末4に作用する力の方向に関するデータを用いて、端末4の鉛直方向についての運動状態に関する第2運動データを算出する。第2運動データでは、観察開始から観察終了までの間のデータ点のそれぞれにおいて、端末4が、上昇中、下降中、および、上下の変化なしの3つの状態のいずれであるかが、示される。したがって、第2運動データは、端末4が上昇している上昇時刻、および、端末4が下降している下降時刻を示すデータである。
端末4(手)を上昇させる動作では、上昇開始時およびその直後において、端末4に上方向への力が作用する。そして、上昇終了時およびその直前において、端末4に下方向への力が作用する。このため、端末4の上昇中は、端末4に作用する力が上方向から下方向へ変化する。一方、端末4(手)を下降させる動作では、下降開始時およびその直後において、端末4に下方向への力が作用する。そして、下降終了時およびその直前において、端末4に上方向への力が作用する。このため、端末4の下降中は、端末4に作用する力が下方向から上方向へ変化する。前述のような特徴を利用して、第2運動データ算出部14は、端末4に作用する力の方向に関するデータに基づいて、それぞれの時点(データ点)において、端末4が、上昇中、下降中、および、上下の変化なしのいずれであるかを、判断する。
また、第2運動データでは、各データ点において、端末4の運動状態を示すパラメータが設定される。すなわち、第2運動データでは、端末4の運動状態を示すパラメータの経時的な変化が示される。端末4が上昇中であると判断されたデータ点では、パラメータは1に設定され、端末4が下降中であると判断されたデータ点では、パラメータは−1に設定される。そして、端末4の上下の変化なしと判断されたデータ点では、パラメータは0に設定される。
以下、第2運動データの算出について詳細に説明する。なお、以下の説明では、加速度aについての2つの閾値θ,φに基づいて端末4に作用する力の方向に関する前述のデータが算出された場合について、説明する。
まず、端末4が上昇中であるか否かの判断について、説明する。端末4が上昇中であるか否かの判断では、第2運動データ算出部14は、端末4に作用する力の方向に関するデータから、次の2つの条件を満たす基準データ点(第1基準データ点)を検出する。1つ目の条件として、基準データ点において力が下方向に作用していることが、必要になる。また、2つ目の条件は、基準データ点に対して1つ前のデータ点以前で、かつ、p個前のデータ点以後のデータ点、すなわち、基準データ点の直前のp個のデータ点に基づいて、設定される。そして、2つ目の条件として、基準データ点の直前のp個のデータ点の中で、q個以上のデータ点で力が上方向に作用していることが、必要になる。ここで、p>qである。
そして、第2運動データ算出部14は、前述の条件を満たす基準データ点を検出すると、検出した基準データ点の直前において、経時的に継続して力が上方向に作用している範囲を検出する。経時的に継続して力が上方向に作用している範囲として検出した範囲内では、全てのデータ点において、力が上方向に作用し、力の方向を示すパラメータが1である。そして、第2運動データ算出部14は、継続して力が上方向に作用している範囲として検出した範囲内の中で、一番早い時刻のデータ点を、端末4の上昇開始時刻とする。
また、第2運動データ算出部14は、前述の条件を満たす基準データ点を検出すると、検出した基準データ点およびその直後において、経時的に継続して力が下方向に作用している範囲を検出する。経時的に継続して力が下方向に作用している範囲として検出した範囲内では、全てのデータ点において、力が下方向に作用していると判断され、力の方向を示すパラメータが−1である。そして、第2運動データ算出部14は、継続して力が下方向に作用している範囲として検出した範囲内の中で、一番遅い時刻のデータ点を、端末4の上昇終了時刻とする。
そして、第2運動データ算出部14は、端末4の上昇開始時刻と判断したデータ点以後で、かつ、端末4の上昇終了時刻と判断したデータ点以前の範囲において、端末4が上昇中と判断する。このため、端末4の上昇開始時刻と判断したデータ点以後で、かつ、端末4の上昇終了時刻と判断したデータ点以前の範囲では、全てのデータ点において、端末4が上昇中と判断され、端末4の運動状態を示すパラメータが1である。
図10は、端末4が上昇中であるか否かの判断の一例を説明する。図10の一例では、端末4に作用する力の方向に関するデータが示される。また、図10の一例では、前述のpが7であり、前述のqが3に設定される。図10の一例では、例えば、端末4に作用する力の方向を示すデータにおいて、データ点D11が、基準データ点として検出される。データ点D11では、端末4に力が下方向に作用している。そして、データ点D11の直前の7個のデータ点D4〜D10の中、すなわち、範囲ΔT10内では、データ点D5〜D9で、端末4に力が上方向に作用している。すなわち、データ点(基準データ点)D11の直前の7個のデータ点D4〜D10の中で、3個以上(5個)のデータ点D5〜D9で、力が上方向に作用している。
また、図10の一例では、データ点D11の直前において、データ点D5以後データ点D9以前の範囲ΔT11内で、力が経時的に継続して上方向に作用している。このため、データ点D5が、端末4の上昇開始時刻と判断される。そして、図10の一例では、データ点(基準データ点)D11およびその直後において、データ点D11〜D15で、力が下方向に作用している。すなわち、データ点D11以後データ点D15以前の範囲ΔT12内で、力が経時的に継続して下方向に作用している。このため、データ点D15が、端末4の上昇終了時刻と判断される。そして、端末4の上昇開始時刻と判断されたデータ点D5以後で、かつ、端末4の上昇終了時刻と判断したデータ点D15以前の範囲ΔT13で、端末4が上昇中と判断される。
次に、端末4が下降中であるか否かの判断について、説明する。端末4が下降中であるか否かの判断では、第2運動データ算出部14は、端末4に作用する力の方向に関するデータから、次の2つの条件を満たす基準データ点(第2基準データ点)を検出する。1つ目の条件として、基準データ点において力が上方向に作用していることが、必要になる。また、2つ目の条件は、基準データ点に対して1つ前のデータ点以前で、かつ、k個前のデータ点以後のデータ点、すなわち、基準データ点の直前のk個のデータ点に基づいて、設定される。そして、2つ目の条件として、基準データ点の直前のk個のデータ点の中で、l個以上のデータ点で力が下方向に作用していることが、必要になる。ここで、k>lである。kは、前述のpに対して、同一の値であってもよく、異なる値であってもよい。同様に、lは、前述のqに対して、同一の値であってもよく、異なる値であってもよい。
そして、第2運動データ算出部14は、前述の条件を満たす基準データ点を検出すると、検出した基準データ点の直前において、経時的に継続して力が下方向に作用している範囲を検出する。経時的に継続して力が下方向に作用している範囲として検出した範囲内では、全てのデータ点において、力が下方向に作用し、力の方向を示すパラメータが−1である。そして、第2運動データ算出部14は、継続して力が下方向に作用している範囲として検出した範囲内の中で、一番早い時刻のデータ点を、端末4の下降開始時刻とする。
また、第2運動データ算出部14は、前述の条件を満たす基準データ点を検出すると、検出した基準データ点およびその直後において、経時的に継続して力が上方向に作用している範囲を検出する。経時的に継続して力が上方向に作用している範囲として検出した範囲内では、全てのデータ点において、力が上方向に作用していると判断され、力の方向を示すパラメータが1である。そして、第2運動データ算出部14は、継続して力が上方向に作用している範囲として検出した範囲内の中で、一番遅い時刻のデータ点を、端末4の下降終了時刻とする。
そして、第2運動データ算出部14は、端末4の下降開始時刻と判断したデータ点以後で、かつ、端末4の下降終了時刻と判断したデータ点以前の範囲において、端末4が下降中と判断する。このため、端末4の下降開始時刻と判断したデータ点以後で、かつ、端末4の下降終了時刻と判断したデータ点以前の範囲では、全てのデータ点において、端末4が下降中と判断され、端末4の運動状態を示すパラメータが−1である。
また、第2運動データ算出部14は、端末4が上昇中と判断した範囲、および、端末4が下降中と判断した範囲のいずれにも該当しない範囲では、端末4の上下の変化なしと判断する。
図11は、第2運動データの一例を示す。図11の一例の第2運動データでは、範囲ΔT14において、端末4が上昇中であると判断され、端末4の運動状態を示すパラメータが1に設定される。そして、範囲ΔT15において、端末4が下降中であると判断され、端末4の運動状態を示すパラメータが−1に設定される。そして、範囲ΔT14,ΔT15のいずれにも該当しない範囲では、端末4の上下の変化なしと判断され、手の運動状態を示すパラメータが0に設定される。
また、図9の一例の端末4に作用する力の方向を示すデータB2を、第2の運動データに変換する場合を考える。データB2の第2の運動データへの変換では、範囲ΔT16において、端末4が上昇中と判断され、端末4の運動状態を示すパラメータが1に設定される。範囲ΔT16には、前述の範囲ΔT6,ΔT7が含まれる。また、データB2の第2の運動データへの変換では、範囲ΔT17において、端末4が下降中と判断され、端末4の運動状態を示すパラメータが−1に設定される。範囲ΔT17には、前述の範囲ΔT8,ΔT9が含まれる。また、データB2の第2の運動データへの変換では、範囲ΔT16,ΔT17のいずれにも該当しない範囲において、端末4の上下の変化なしと判断され、端末4の運動状態を示すパラメータが0に設定される。
また、図5に示すように、対応付けシステム1では、S13において、マッチング処理部15は、S6で算出されたユーザUの手の第1運動データとS12で算出された端末4の第2運動データとの相関値rを、算出する。例えば、カメラ3の撮影範囲に複数のユーザUが存在し、ユーザUのそれぞれが1つの端末4を所有するものとする。そして、S6で、全てのユーザUのそれぞれについて、手の運動状態に関する第1運動データが算出され、S12で、全てのユーザの端末4のそれぞれについて、端末4の運動状態に関する第2運動データが算出されるものとする。この場合、S13では、各第1運動データに関して、全ての第2運動データのそれぞれに対する相関値rが、算出される。すなわち、各第2運動データに関して、全ての第1運動データのそれぞれに対する相関値rが、算出される。
以下、相関値rの算出について詳細に説明する。なお、以下の説明では、加速度aについての2つの閾値θ,φに基づいて端末4に作用する力の方向に関する前述のデータが算出された場合について、説明する。この場合、相関値rは、以下の式(2)を用いて算出される。
式(2)では、第1運動データ及び第2運動データのそれぞれにおいて、1〜nのn個のデータ点が存在する。そして、xiは、第1運動データの各データ点での手の運動状態を示すパラメータであり、−1,0,1のいずれかの値である。同様に、yiは、第2運動データの各データ点での端末4の運動状態を示すパラメータであり、−1,0,1のいずれかの値である。そして、xavは、第1運動データの全てのデータ点での手の運動状態を示すパラメータの平均値であり、yavは、第2運動データの全てのデータ点での端末4の運動状態を示すパラメータの平均値である。
なお、式(2)で示される相関値rの算出では、第1運動データの全てのデータ点の標準偏差を算出するとともに、第2運動データの全てのデータ点の標準偏差を算出する。また、第1運動データと第2運動データとの共分散を算出する。そして、第1運動データと第2運動データとの共分散を第1運動データの標準偏差と第2運動データの標準偏差との積で除算することにより、相関値rが算出される。
そして、S14において、マッチング処理部15は、算出された相関値rに基づいて、ユーザUと端末4とを対応付ける。ある実施例では、各端末4について、相関値rが最も高いカメラ3上のユーザUと対応付ける。別のある実施例では、各ユーザUについて、相関値rが最も高い端末4と対応付ける。
また、マッチング処理は、ユーザUと端末4とを一対一で対応付けるアルゴリズムを用いて、行われることが好ましい。この場合、例えば、マッチング処理を安定結婚問題とみなして、ゲーリーシャプレーアルゴリズムを適用して、ユーザUと端末4とを一対一で対応付ける。ゲーリーシャプレーアルゴリズムを適用した対応付け方法については、参照文献1(久保幹雄・田村明久・松井友己編 (2012) 『応用数理計画ハンドブック』朝倉書店)等に詳細に示される。
図12では、ゲーリーシャプレーアルゴリズムを適用したユーザUと端末4との対応付けについて説明する。図12の一例では、ユーザUa〜Ueのそれぞれについて、端末4a〜4eのそれぞれに対する相関値rが示される。例えば、端末4aの第2運動データは、ユーザUaの第1運動データに対して相関値rが0.8243、ユーザUbの第1運動データに対して相関値rが0.1234、ユーザUcの第1運動データに対して相関値rが0.2087、ユーザUdの第1運動データに対して相関値rが0.0149、ユーザUeの第1運動データに対して相関値rが0.2108となる。
ここで、図12の一例において、いずれの端末4a〜4eもユーザUa〜Ueとマッチングされていない状態で、端末4aをユーザUa〜Ueのいずれか1つとマッチングする場合を考える。この場合、端末4aは、ユーザUa〜Ueの中で相関値rが最も高いユーザUaとマッチングされる。
また、端末4bがユーザUbと既にマッチングされた状態で、端末4dをユーザUa〜Ueのいずれか1つとマッチングする場合を考える。この場合、端末4dは、ユーザUa〜Ueの中で相関値rが最も高いユーザUbにマッチングの要求をする。ただし、ユーザUbは、端末4bと既にマッチングされている。このため、端末4bのユーザUbに対する相関値rと端末4dのユーザUbに対する相関値rとを、比較する。図12の一例では、端末4dのユーザUbに対する相関値rは、端末4bのユーザUbに対する相関値rに比べて、低い。このため、端末4bとユーザUbとのマッチングが維持される。また、端末4dのユーザUbへのマッチング要求は、拒絶され、端末4dは、ユーザUbとマッチングされない。そして、端末4dは、ユーザUa〜Ueの中で相関値rがユーザUbの次に高いユーザUdにマッチングの要求をする。これにより、端末4dは、ユーザUdとマッチングされる。
また、端末4dがユーザUbと既にマッチングされた状態で、端末4bをユーザUa〜Ueのいずれか1つとマッチングする場合を考える。この場合、端末4bは、ユーザUa〜Ueの中で相関値rが最も高いユーザUbにマッチングの要求をする。ただし、ユーザUbは、端末4dと既にマッチングされている。このため、端末4bのユーザUbに対する相関値rと端末4dのユーザUbに対する相関値rとを、比較する。図12の一例では、端末4bのユーザUbに対する相関値rは、端末4dのユーザUbに対する相関値rに比べて、高い。このため、端末4dとユーザUbとのマッチングが解消される。また、端末4bのユーザUbへのマッチング要求は、許可され、端末4bは、ユーザUbとマッチングされる。そして、マッチングが解消された端末4dは、ユーザUa〜Ueの中で相関値rがユーザUbの次に高いユーザUdにマッチングの要求をする。これにより、端末4dは、ユーザUdとマッチングされる。
前述のようにゲーリーシャプレーアルゴリズムを適用した対応付けが行われることにより、ユーザUaと端末4aとが一対一で対応付けられ、ユーザUbと端末4bとが一対一で対応付けられる。そして、ユーザUcと端末4cとが一対一で対応付けられ、ユーザUdと端末4dとが一対一で対応付けられ、ユーザUeと端末4eとが一対一で対応付けられる。したがって、ユーザUa〜Ueのそれぞれは、対応する端末(4a〜4eの対応する1つ)と一対一で対応付けられる。なお、図12では、一対一に対応付けられるユーザUと端末4との相関値rを、強調して示す。
前述のような処理が行われることにより、本実施形態では、ユーザUが手を上下動させる動作に基づいて、カメラ3の画像上のユーザUと端末(制御端末)4とが、対応付けられる。ユーザUの手の上下動に基づいて対応付けが行われるため、ユーザUの歩行速度が遅い場合、および、ユーザUが静止している場合のそれぞれにおいても、ユーザUと端末との対応付けを適切に行うことができる。
また、本実施形態では、手の鉛直方向についての位置を時間微分することにより、手の鉛直方向についての速度データが算出される。そして、算出された速度データに基づいて、手の上下動、すなわち、手の鉛直方向についての運動状態に関する第1運動データが算出される。前述のように第1運動データが算出されるため、第1運動データでは、手が上昇している上昇時刻、および、手が下降している下降時刻が適切に算出される。
また、本実施形態では、端末4の鉛直方向についての加速度aに基づいて、端末4に作用する力の方向を示すデータが、算出される。そして、算出された力の方向を示すデータに基づいて、端末4の鉛直方向についての運動状態に関する第2運動データが算出される。前述のように第2運動データが算出されるため、第2運動データでは、端末4が上昇している上昇時刻、および、端末4が下降している下降時刻が適切に算出される。
また、本実施形態では、第1運動データ及び第2運動データに基づくユーザUと端末4との対応付けにおいて、ユーザUと端末4とを一対一で対応付けるアルゴリズムを用いられる。このため、各ユーザUは対応する端末4に一対一で適切にマッチングされる。したがって、1つのユーザUが複数の端末4と対応付けられたり、1つの端末4が複数のユーザUと対応付けられたりすることが、有効に防止される。
[第1実施形態の変形例]
なお、前述の第1実施形態では、位置検出部11、第1運動データ算出部12、加速度検出部13、第2運動データ算出部14およびマッチング処理部15での前述の処理は、マッチング用サーバ2のプロセッサなどによって行われるが、これに限るものではない。例えば、図13に示す第1の実施形態のある変形例では、端末4に、加速度検出部13および第2運動データ算出部14が設けられる。すなわち、加速度検出部13および第2運動データ算出部14での前述した処理は、端末4のプロセッサなどによって行われる。
本変形例では、端末4において、第2運動データが算出される。そして、算出された第2運動データは、無線通信などによって、端末4からマッチング用サーバ(マッチング処理ユニット)2に送信される。なお、本変形例でも、位置検出部11、第1運動データ算出部12およびマッチング処理部15での処理は、マッチング用サーバ2によって行われる。したがって、マッチング処理部15は、第1運動データ算出部12で算出された第1運動データ、および、端末4から送信された第2運動データを用いて、マッチング処理を行う。
[第2実施形態]
以下、第2実施形態として、第1実施形態と同様の対応付けシステム1の適用例について説明する。図14は、端末4の接続状態を管理する管理システム10を示す。管理システム10では、対応付けシステム1が適用され、管理システム10は、マッチング用サーバ2、カメラ3および端末4を備える。マッチング用サーバ2、カメラ3および端末4では、第1実施形態と同様の処理が行われる。
また、管理システム10は、複数のアクセスポイント(AP)A1〜Akと、マッチング情報管理サーバ(マッチング情報管理ユニット)20と、接続状態管理サーバ(接続状態管理ユニット)30とを備える。本実施形態では、マッチング用サーバ2、マッチング情報管理サーバ20および接続状態管理サーバ30によって、情報処理装置が構成される。端末4は、アクセスポイントA1〜Akの中から接続先となる1つに、無線通信によって、接続される。ここで、アクセスポイントA1〜Akの1つであるアクセスポイントAαが端末4の接続先となる場合を考える。この場合、前述のセンサ情報などの情報が、端末4からアクセスポイントAαに送信される。そして、センサ情報は、端末4からの情報を受けたアクセスポイントAαを介して、マッチング用サーバ2に送信される。マッチング用サーバ2は、アクセスポイントAαを介して送信されたセンサ情報を用いて、第1実施形態などと同様の処理を行う。
マッチング情報管理サーバ20は、マッチング情報登録部21、マッチング情報読取部22およびマッチング情報管理データベース(DB)23を備える。ここで、マッチング情報管理サーバ20は、CPU、ASICまたはFPGAなどを含むプロセッサ、および、メモリを備える。そして、メモリに格納されたプログラムをプロセッサが実行することにより、マッチング情報登録部21およびマッチング情報読取部22のそれぞれの機能が、実現される。
マッチング情報管理サーバ20のマッチング情報登録部21は、マッチング処理部15からマッチング処理の処理結果を受取る。すなわち、マッチング処理部15は、マッチング情報管理サーバ20に、ユーザUと端末4とのマッチング情報を送信する。そして、マッチング情報管理サーバ20は、ユーザUと端末4とのマッチング情報を管理する。
マッチング情報管理DB23には、ユーザUと端末4とのマッチング情報が記憶される。そして、マッチング情報登録部21は、受取ったマッチング情報を、マッチング情報管理DB23に登録する。また、マッチング情報登録部21は、受取ったマッチング情報に基づいて、マッチング情報管理DB23に記憶されるマッチング情報を更新する。そして、マッチング情報読取部22は、マッチング情報管理DB23に記憶されたマッチング情報を読取る。
接続状態管理サーバ30は、接続状態登録部31、接続状態読取部32、接続状態制御部33および接続状態管理データベース(DB)34を備える。ここで、接続状態管理サーバ30は、CPU、ASICまたはFPGAなどを含むプロセッサ、および、メモリを備える。そして、メモリに格納されたプログラムをプロセッサが実行することにより、接続状態登録部31、接続状態読取部32および接続状態制御部33のそれぞれの機能が、実現される。
接続状態管理サーバ30は、アクセスポイントA1〜Akの中で端末4の接続先となる1つ(例えばAα)を介して、端末4と情報交換可能である。そして、接続状態登録部31は、端末4のリアルタイムの接続状態を取得し、端末4のリアルタイムの接続先を取得する。すなわち、接続状態登録部31は、端末4がリアルタイムでアクセスポイントA1〜Akの中のいずれに接続されているかを、認識する。
接続状態管理DB34には、端末4の接続状態に関する情報が記憶される。接続状態登録部31は、端末4のリアルタイムの接続状態に関する情報を、接続状態管理DB34に登録する。この際、端末4のリアルタイムの接続先が、接続状態管理DB34に登録される。また、アクセスポイントA1〜Ak間で端末4の接続先が切替えられた場合は、接続状態登録部31は、接続状態管理DB34に記憶される接続状態に関する情報を更新する。この際、接続状態管理DB34において、端末4のリアルタイムの接続先に関する情報も、更新される。そして、接続状態読取部32は、接続状態管理DB34に記憶された接続状態に関する情報を読取る。この際、接続状態読取部32は、端末4のリアルタイムの接続先、すなわち、端末4がリアルタイムにおいてアクセスポイントA1〜Akのいずれに接続されているかを、読取る。
接続状態読取部32は、接続状態制御部33に、接続状態管理DB34から読取ったリアルタイムの接続状態に関する情報を送信する。また、接続状態制御部33は、マッチング情報読取部22から、マッチング情報管理DB23に記憶されるマッチング情報を受取る。すなわち、マッチング情報読取部22は、接続状態管理サーバ30に、マッチング情報管理DB23から読取ったマッチング情報を送信する。
接続状態管理サーバ30の接続状態制御部33は、アクセスポイントA1〜Akの中で端末4の接続先となる1つ(例えばAα)を介して、端末4を制御する。この際、接続状態制御部33は、マッチング情報管理サーバ20によって管理されるマッチング情報、および、接続状態読取部32から受取った端末4のリアルタイムの接続状態に関する情報を用いて、端末4の接続先を制御および管理する。すなわち、接続状態制御部33は、マッチング情報、及び、端末4のリアルタイムの接続状態に基づいて、アクセスポイントA1〜Akの中のいずれに端末4を接続するかを、制御および管理する。
接続状態制御部33は、マッチング情報管理サーバ20に、マッチング情報を定期的に問合わせる。そして、接続状態制御部33は、マッチング情報管理サーバ20から取得したマッチング情報に基づいて、端末4がいずれのカメラ3の視野に位置するかに関する情報、及び、端末4がいずれのユーザUと対応付けられているかに関する情報などを、取得する。そして、接続状態制御部33は、取得した情報に基づいて、端末4がアクセスポイントA1〜Akのいずれに接続すべきか判断する。そして、判断結果、端末4のリアルタイムの接続先が適切でない場合、接続状態制御部33は、アクセスポイントA1〜Ak間で端末4の接続先を切替える制御信号を生成する。
アクセスポイントA1〜Ak間で端末4の接続先を切替える制御信号は、アクセスポイントA1〜Akの中で端末4のリアルタイムの接続先となる1つ(例えばAα)を介して、端末4に伝達される。端末4は、接続状態制御部33からの制御信号に基づいて、接続先を切替える。この際、接続状態制御部33が端末4の接続先として適切だと判断したアクセスポイントに、接続先が切替えられる。端末4の接続先として適切だと判断したアクセスポイントとしては、端末4に対応付けられたユーザUを撮影したカメラに近いアクセスポイント、及び、通信エリアが広いアクセスポイント等である。
例えば、端末4がアクセスポイントAαに接続されている状態で、接続状態制御部33が、端末4の接続先としてアクセスポイントAβが適切であると判断したとする。この場合、接続状態制御部33は、端末4の接続先をアクセスポイントAαからアクセスポイントAβへ切替える指令を含む制御信号を生成する。そして、制御信号は、リアルタイムの接続先であるアクセスポイントAαを介して、端末4に送信される。制御信号を受取ると、端末4は、アクセスポイントAαとの接続を遮断する。そして、端末4は、アクセスポイントAβに対して接続の要求を行い、端末4がアクセスポイントAβに接続される。
本実施形態でも、第1の実施形態と同様に、ユーザUと端末4とが適切にマッチングされる。このため、ユーザUと端末4とのマッチング情報が、適切に生成される。そして、本実施形態では、適切なマッチング情報を用いて、端末4の接続先を含む端末4の接続状態が制御および管理される。したがって、端末4の接続状態が、適切に管理される。
[第2の実施形態の変形例]
なお、第2の実施形態では、マッチング用サーバ2、マッチング情報管理サーバ20および接続状態管理サーバ30が別個に設けられるが、これに限るものではない。ある変形例では、1つのサーバが、マッチング情報管理サーバ20の前述の処理、および、接続状態管理サーバ30の前述の処理の両方を、行う。また、ある変形例では、1つのサーバが、マッチング用サーバ2の前述の処理に加えて、マッチング情報管理サーバ20の前述の処理、および、接続状態管理サーバ30の前述の処理の少なくとも一方を行う。
また、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。