以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態における端末装置10のハードウェア構成例を示す図である。図1において、端末装置10は、CPU101、メモリ102、補助記憶装置103、タッチパネル104、無線通信装置105及び加速度センサ106等を有する。
補助記憶装置103は、端末装置10にインストールされたプログラム等を記憶する。メモリ102は、プログラムの起動指示があった場合に、補助記憶装置103からプログラムを読み出して記憶する。CPU101は、メモリ102に記憶されたプログラムに従って端末装置10に係る機能を実現する。
タッチパネル104は、入力機能と表示機能との双方を備えた電子部品であり、情報の表示や、ユーザからの入力の受け付け等を行う。タッチパネル104は、表示装置111及び入力装置112等を含む。
表示装置111は、液晶ディスプレイ等であり、タッチパネル104の表示機能を担う。入力装置112は、表示装置111に対する接触物の接触を検出するセンサを含む電子部品である。接触物の接触の検出方式は、静電方式、抵抗膜方式、又は光学方式等、公知の方式のいずれであってもよい。なお、接触物とは、タッチパネル104の接触面(表面)に接触する物体をいう。斯かる物体の一例として、ユーザの指や専用又は一般のペン等が挙げられる。
無線通信装置105は、無線LAN(Local Area Network)又は移動体通信網等における通信を行うために必要とされるアンテナ等の電子部品である。加速度センサ106は、端末装置10の加速度を検出する。
図2は、第1の実施の形態における端末装置10の機能構成例を示す図である。図1において、端末装置10は、タッチ信号取得部11、加速度信号取得部12、端末状態取得部13、操作データ送信部14、連続データ生成部15、反復操作検出部16、意図的操作推定部17及びストレス推定部18等を有する。これら各部は、端末装置10にインストールされた1以上のプログラムが、CPU101に実行させる処理により実現される。端末装置10は、また、端末状態DB121、タッチ履歴DB122、加速度履歴DB123、タッチ連続データDB124、シェイク連続データDB125、反復操作回数DB126、操作ログDB127及び解消策DB128等のデータベース(記憶部)等を有する。これら各データベースは、例えば、メモリ102又は補助記憶装置103等を用いて実現可能である。
タッチ信号取得部11は、入力装置112がタッチ信号を検知している期間において、入力装置112からタッチ信号を取得し、当該タッチ信号が示す情報を含むデータ(以下、「タッチデータ」という。)を生成する。タッチ信号は、ユーザの指等がタッチパネル104に接触している期間において継続的に検知される。タッチ信号取得部11は、当該期間において一定間隔でタッチ信号を取得し、タッチ信号ごとにタッチデータを生成する。したがって、例えば、1回のタップ又は1回のスワイプであっても、複数のタッチデータが時系列に生成される。なお、1回のタップ又はスワイプとは、ユーザの指がタッチパネル104に接触してから離れるまでの操作をいう。また、タップとは、例えば、タッチパネル104を軽く叩く操作である。スワイプとは、例えば、指等をタッチパネル104に接触した状態で、指等を滑らせる(移動させる)操作である。
加速度信号取得部12は、加速度センサ106が検出した加速度を示すデータ(加速度データ)を、例えば、定期的に(一定時間間隔で)加速度センサ106から取得する。
端末状態取得部13は、端末装置10に関して所定の状態を示す情報(以下、「端末状態情報」という。)を端末装置10から取得する。端末状態情報の取得は、定期的に実行されてもよいし、当該所定の状態に変化が生じた際に行われてもよい。端末状態取得部13は、取得した端末状態情報を、端末状態DB121に記憶する。
図3は、第1の実施の形態における端末状態DB121の構成例を示す図である。図3において、端末状態DB121の各レコードは、時刻、画面更新、カーソル位置、起動中のアプリ名、及び無線LAN設定等の項目を含む。これらの項目のうち、画面更新有無、カーソル位置、起動中のアプリ名、及び無線LAN設定が、端末状態情報を構成するパラメータである。
時刻は、端末状態情報が取得された時刻である。画面更新有無は、表示装置111に表示されている画面又は画面の構成要素の変化の有無を示す情報である。カーソル位置は、当該画面におけるカーソルの位置の座標(X,Y)を示す情報である。起動中のアプリ名は、端末装置10において起動されている(操作対象とされている)アプリケーション(以下、単に「アプリ」という。)の名称である。無線LAN設定は、Wi−Fi(登録商標)の接続設定が、ON(有効)とされているかOFF(無効)とされているかを示す情報である。
図2に戻る。操作データ送信部14は、タッチ信号取得部11によって生成されたタッチデータと加速度信号取得部12によって取得された加速度データとの少なくともいずれか一方を含むデータ(以下、「操作データ」という。)を、タッチデータが生成されるたび、又は加速度データが取得されるたびに連続データ生成部15へ送信する。
連続データ生成部15は、操作データに含まれているタッチデータに基づいて、ユーザによる連続的なタップ又はスワイプを検出する。連続データ生成部15は、連続的なタップ又はスワイプを検出すると、当該タップ又は当該スワイプに係るタッチデータ群を、タッチ連続データDB124に記憶する。
連続データ生成部15は、また、操作データに含まれている加速度データに基づいて、ユーザによる連続的なシェイクを検出する。シェイクとは、端末操作を左右又は上下等に振る操作をいう。連続データ生成部15は、連続的なシェイクを検出すると、当該シェイクに係る加速度データ群を、シェイク連続データDB125に記憶する。
なお、タッチ履歴DB122には、連続データ生成部15が連続的なタップ又はスワイプを検出するために、最後のタップ又は最後のスワイプに係るタッチデータが記憶される。すなわち、タッチ履歴DB122は、タップ又はスワイプが行われるたびに更新される。なお、タップ及びスワイプは、タッチ信号を発生させる操作であるという点において共通する一方で、排他的な操作である。すなわち、通常、タップとスワイプとは同時には行われない。したがって、本実施の形態では、タップ及びスワイプについては、タッチ履歴DB122やタッチ連続データDB124等が共用される。
また、加速度履歴DB123には、連続データ生成部15が連続的なシェイクを検出するために、シェイクが行われるたびに、最後のシェイクに係る加速度データが記憶される。
反復操作検出部16は、タッチ連続データDB124及びシェイク連続データDB125を参照して、ユーザによる反復的又は周期的な操作(以下、「反復操作」という。)を検出する。反復操作とは、反復的又は周期的なタップ、反復的又は周期的なスワイプ、又は反復的又は周期的なシェイクである。反復操作の検出は、ユーザの操作に応じて端末装置10がユーザの意図した動作をしないことで、ユーザが端末装置10に対してストレスを感じている状態(以下、「ストレス状態」という。)である可能性の検出に相当する。すなわち、動物行動学の分野では、人は、ストレスがかかると、心の安定を保つために、その時の事態とは全く無関係の操作や、反復的な操作を行うことが知られている。例えば、スマートフォン等のような端末装置10が、ユーザの意図した動作をしない場合、ユーザは、以下の(1)〜(3)のような反復操作を行うことが考えられる。
(1)指で画面をトントン叩く。
(2)指を画面につけたまま、所定方向(例えば、上下方向)に複数回にわたって指をスライドさせる。
(3)端末装置10を所定方向(例えば、左右方向)にシェイクする。
上記において、(1)は、反復的なタップとして検出可能である。(2)は、反復的なスワイプとして検出可能である。(3)は、反復的なシェイクとして検出可能である。したがって、反復操作検出部16は、このような反復操作を検出することで、ユーザがストレス状態である可能性を検出する。
意図的操作推定部17は、反復操作検出部16によって反復操作が検出された場合に、当該反復操作が意図的なものであるか否かを、端末状態DB121に記憶されている端末状態情報の履歴を参照して推定する。本実施の形態では、反復操作の開始前から終了後までの間(以下、「反復操作の期間」という。)において、端末状態情報に変化が有るか否かによって、反復操作が意図的であるか否かが推定される。すなわち、反復操作によって端末状態情報が変化したか否かに基づいて、当該反復操作が意図的であるか否かが推定される。なお、本実施の形態において、意図的とは、端末装置10の特定の機能に関する操作を目的としていることをいう。
すなわち、例えば、ゲームアプリ等の利用や、他の目的に際して意図的に行われた反復操作であれば、ユーザの操作に応じて端末装置10の状態が変化し、当該変化が端末状態情報の変化として現れる可能性が高い。一方、通信速度が遅い、画面がフリーズしている等、何らかの外的要因によってユーザがイライラして反復操作を行っている場合、端末装置10は当該反復操作による反応を示さない状態であろうから、当該反復操作の期間において、端末装置10の状態は変化しない可能性が高い。そこで、本実施の形態において、意図的操作推定部17は、反復操作の期間における端末装置10の状態の変化の有無に基づいて、当該反復操作が意図的であるか否かを判定する。
ストレス推定部18は、反復操作検出部16によって反復操作が検出されたか否かと、意図的操作推定部17による推定結果(意図的であるか否か)とに基づいて、ユーザがストレス状態であるか否かを推定する。具体的には、ストレス推定部18は、反復操作が検出され、当該反復操作が意図的でない場合に、ユーザはストレス状態であると推定する。
なお、ユーザがストレス状態である場合には、そのストレスの由来(原因)を推定し、そのストレスの由来を取り除くための支援を行うこが効果的である。そこで、ストレス推定部18は、ストレス状態を解消するための処理(解消策)を実行する。例えば、ユーザがストレス状態にあることが推定され、その時点での端末装置10における通信スピードが遅い場合には、当該ストレス状態は通信スピードが遅いことに由来している可能性が高いため、ストレス推定部18は、ネットワークの接続手段を、無線LANからLTE等の移動体通信網(又はその逆)に切り替える。また、ユーザがストレス状態にあることが推定され、その時点での端末装置10でのCPU負荷が高い場合には、そのストレス状態は端末装置10の処理スピードが遅いことに由来している可能性が高いため、ストレス推定部18は、CPUの周波数を高周波数に切り替える。このような解消策は、解消策DB128に記憶されている。
なお、ストレス状態の判定を行わずとも、端末装置10の状態を監視して、好ましくない状態が検出された場合に当該状態を改善する(例えば、処理負荷が高くなったら高周波数に切り替える)ということも考えられる。しかし、処理負荷が高くなった場合に常に高周波数に切り替えていると端末装置10のバッテリーを消耗してしまう。そこで、本実施の形態では、ユーザがストレス状態であることが推定されたタイミングで、当該ストレス当該を解消するための対処が実行される。
以下、端末装置10が実行する処理手順について説明する。図4は、第1の実施の形態における端末装置10が実行する処理の処理手順の一例を説明するためのフローチャートである。
連続データ生成部15は、操作データ送信部14からの操作データの入力(送信)を待機している(S101)。操作データが入力されると(S101でYes)、連続データ生成部15は、当該操作データにタッチデータが含まれているか否かを判定する(S102)。
図5は、操作データの構成例を示す図である。図5の(1)及び(2)に示されるように、操作データは、時刻、タッチデータ部及び加速度データ部等を含む。時刻は、タッチデータが生成された時刻、又は加速度データが取得された時刻である。
タッチデータ部は、タッチデータを含む部分である。タッチデータは、X座標、Y座標及び面積等のパラメータを含む。X座標及びY座標は、タッチされた領域(以下、「タッチ領域」という。)の重心の座標である。なお、本実施の形態において、タッチパネル104の横方向がX軸であり、縦方向がY軸であるとする。面積は、タッチ領域の面積である。
加速度データ部は、加速度データを含む部分である。加速度データは、X軸、Y軸及びZ軸等のパラメータを含む。X軸は、X軸方向の加速度を示す。Y軸は、Y軸方向の加速度を示す。Z軸は、Z軸方向の加速度を示す。
なお、図5において、(1)は、タッチデータ及び加速度データの双方を含む操作データを示し、(2)は、タッチデータを含まない操作データを示す。
本実施の形態において、加速度データは、一定間隔(以下、「間隔a」という。)で取得される。また、タッチデータは、タッチ信号の発生中において一定間隔(以下、「間隔b」という。)で生成される。したがって、加速度データの取得時に、タッチ信号が発生していない場合が有るため、(2)に示されるような操作データが生成されうる。一方、本実施の形態において、間隔aは、間隔bよりも短いため、タッチデータの生成時においては、常に加速度データも取得される。したがって、本実施の形態では、加速度データを含まない操作データは生成されない。但し、タッチデータと加速度データとが個別に操作データ送信部14から連続データ生成部15へ入力されてもよい。
なお、操作データ送信部14からの操作データの入力は、タッチデータの生成又は加速度データの取得に応じて行われる。上記したように、タッチ信号は、1回のタップ等においても複数回発生する。したがって、この場合、複数の操作データが1つずつ連続的に連続データ生成部15に入力され、ステップS102以降は、各操作データを処理対象(以下、「対象操作データ」という。)として繰り返し実行される。
対象操作データにタッチデータが含まれていない場合(S102でNo)、ステップS104に進む。対象操作データにタッチデータが含まれている場合(S102でYes)、連続データ生成部15は、タッチ連続データ生成処理を実行し(S103)、ステップS104に進む。タッチ連続データ生成処理では、連続的なタップ又はスワイプが検出された場合に、当該タップ又は当該スワイプに係るタッチデータの履歴がタッチ連続データDB124に記憶される。
ステップS104において、連続データ生成部15は、シェイク連続データ生成処理を実行する。シェイク連続データ生成処理では、連続的なシェイクが検出された場合に、当該シェイクに係る加速度データの履歴がシェイク連続データDB125に記憶される。
続いて、反復操作検出部16は、反復操作検出処理を実行する(S105)。反復操作検出処理では、タッチ連続データDB124及びシェイク連続データDB125の記憶内容に基づいて、ユーザによる反復操作の発生の有無が判定される。
反復操作検出部16によって、反復操作が発生していないと判定された場合(S106でNo)、ステップS108に進む。反復操作検出部16によって、反復操作が発生したと判定された場合(S106でYes)、意図的操作推定部17は、意図的操作推定処理を実行し(S107)、ステップS108に進む。意図的操作推定処理では、反復操作検出部16によって検出された反復操作が、ユーザによる意図的なものか否か(無意識なものか)が推定(判定)される。
ステップS108において、ストレス推定部18は、ストレス推定処理を実行する。ストレス推定処理では、ユーザがストレス状態であるか否かが推定される。ユーザがストレス状態であると推定される場合、ストレス推定部18は、当該ストレス状態を解消するための制御を端末装置10に対して実行する。
続いて、ステップS103の詳細について説明する。図6は、第1の実施の形態におけるタッチ連続データ生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS121において、連続データ生成部15は、タッチ履歴DB122が空であるか否かを判定する。例えば、最初にステップS121が実行される場合、タッチ履歴DB122は空である。タッチ履歴DB122が空である場合(S121でYes)、連続データ生成部15は、対象操作データの時刻及びタッチデータ部を含むレコード(以下、「対象タッチデータ」という。)を、タッチ履歴DB122に記憶する(S122)。
図7は、第1の実施の形態におけるタッチ履歴DB122の構成例を示す図である。図7に示されるように、タッチ履歴DB122には、図5に示した操作データのうち、時刻と、タッチデータ部とを含むレコード(タッチデータ)が記憶される。
一方、タッチ履歴DB122が空でない場合、すなわち、既に1以上のレコードがタッチ履歴DB122に記憶されている場合(S121でNo)、連続データ生成部15は、対象タッチデータの時刻と、タッチ履歴DB122の最後(末尾)のタッチデータの時刻との時間差が閾値α(例えば、0.1秒)以上であるか否かを判定する(S123)。斯かる判定は、対象タッチデータが、タッチ履歴DB122に記憶されている1以上のタッチデータと、別のタップ又はスワイプに係るタッチデータであるか否かの判定に相当する。換言すれば、当該判定は、対象タッチデータが、タッチ履歴DB122に記憶されている1以上のタッチデータに係るタップ又はスワイプの後で指がタッチパネル104から離れてから再度行われたタップ又はスワイプに係る最初のタッチデータであるか否かの判定に相当する。例えば、タップ又はスワイプが2回行われる場合、1回目のタップ又はスワイプと2回目のタップ又はスワイプとの間では、指がタッチパネル104から離れる。したがって、1回目のタップ又はスワイプに関して生成される複数のタッチデータのうちの最後のタッチデータの時刻と、2回目のタップ又はスワイプに関して生成される複数のタッチデータのうちの最初のタッチデータの時刻との間には、1回のタップ又はスワイプに関して生成される各タッチデータの時刻の間隔に比べて大きな時間差が有ると考えられる。そこで、当該大きな時間差が閾値αと比較されることで、対象タッチデータが、新たなタップ又はスワイプに関する最初のタッチデータであるか否かが判定される。
対象タッチデータの時刻と、タッチ履歴DB122の最後のタッチデータの時刻との時間差が閾値α未満である場合(S123でNo)、連続データ生成部15は、対象タッチデータをタッチ履歴DB122の末尾に追加する(S124)。したがって、ユーザの指がタッチパネル104から離れるまでに生成されるタッチデータごとに、ステップS124が繰り返し実行され、当該各タッチデータがタッチ履歴DB122に追加される。
一方、当該時間差が閾値α以上である場合(S123でYes)、連続データ生成部15は、タッチ履歴DB122に記憶されている複数のタッチデータのそれぞれのX座標及びY座標に基づいて、当該複数のタッチデータに関してタッチ位置の変化の有無を判定する(S125)。すなわち、指がタッチしてから離れるまでに、タッチ位置が変化したか否かが判定される。例えば、当該複数のタッチデータのそれぞれのX座標及びY座標が、所定範囲内(例えば、X座標が、当該複数のタッチデータにおけるX座標の平均値の±5の範囲内であり、かつ、Y座標が当該複数のタッチデータにおけるY座標の平均値の±5の範囲内)であれば、タッチ位置は変化していないと判定されてもよい。
タッチ位置が変化していないと判定される場合(S125でYes)、連続データ生成部15は、タップに関するタッチ連続データ生成処理を実行する(S126)。すなわち、タッチしてから指が離れるまでにタッチ位置がほぼ変化していない場合、ユーザによる操作はタップであると推定される。したがって、タップに関するタッチ連続データ生成処理が実行される。なお、タップに関するタッチ連続データ生成処理の詳細は後述される。
一方、タッチ位置が変化していると判定される場合(S125でNo)、連続データ生成部15は、スワイプに関するタッチ連続データ生成処理を実行する(S127)。
例えば、図8は、タッチ位置が変化している場合のタッチ履歴DB122の例を示す図である。図8に示されるタッチ履歴DB122では、少なくともY座標の値が、全タッチデータの平均値の±5の範囲外である。この場合、本実施の形態では、タッチ位置が変化していると判定され、スワイプに関するタッチ連続データ生成処理が実行される。すなわち、タッチしてから指が離れるまでにタッチ位置が変化している場合、ユーザによる操作はスワイプであると推定される。したがって、スワイプに関するタッチ連続データ生成処理が実行される。なお、スワイプに関するタッチ連続データ生成処理の詳細は後述される。
ステップS126又はS127に続いて、連続データ生成部15は、対象タッチデータをタッチ履歴DB122に上書きする(S128)。すなわち、タッチ履歴DB122に記憶されていたタッチデータ群が削除されて、対象タッチデータが新たにタッチ履歴DB122に記憶される。タッチ履歴DB122は、1回分のタップ又はスワイプに関するタッチデータ群を記憶しておくための記憶部だからである。
続いて、ステップS126の詳細について説明する。図9は、第1の実施の形態におけるタップに関するタッチ連続データ生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS131において、連続データ生成部15は、タッチ連続データDB124が空であるか否かを判定する。タッチ連続データDB124が空である場合(S131でYes)、連続データ生成部15は、タッチ履歴DB122に記憶されている全てのタッチデータ(すなわち、最後に行われたタップに係るタッチデータ)のそれぞれごとに、当該タッチデータを含むレコードをタッチ連続データDB124に記憶する(S132)。
図10は、タッチ連続データDB124の構成例を示す図である。図10に示されるように、タッチ連続データDB124のレコードは、タッチ履歴DB122のレコードに対して「操作種別」の項目を追加した構成を有する。「操作種別」の値は、「タップ」又は「スワイプ」である。ステップS132では、タッチ連続データDB124に記憶される全てのタッチデータに対して、「操作種別」として「タップ」が付与される。
一方、タッチ連続データDB124が空でない場合(S131でNo)、連続データ生成部15は、タッチ連続データDB124に記憶されているレコード群の「操作種別」の値が「タップ」であるか否かを判定する(S133)。なお、タッチ連続データDB124に記憶されるレコード群の「操作種別」の値は「タップ」又は「スワイプ」のいずれか一方であり、2つの値が混在することは無い。したがって、ステップS133の判定は、タッチ連続データDB124に記憶されているいずれかのレコードが参照されて行なわれてもよい。
タッチ連続データDB124に記憶されているレコード群の「操作種別」の値が「タップ」である場合(S133でYes)、連続データ生成部15は、当該レコード群に係るタップと、タッチ履歴DB122に記憶されているタッチデータ群に係るタップとが連続しているか否かを判定する(S134)。例えば、以下の(条件1)及び(条件2)の2つの条件が満たされる場合、連続データ生成部15は、当該2つのタップが連続していると判定し、少なくともいずれか一方が満たされない場合、連続データ生成部15は、当該2つのタップが連続していないと判定する。
(条件1)タッチ履歴DB122の先頭のタッチデータの時刻と、タッチ連続データDB124の最後(末尾)のレコードの時刻との時間差が閾値β(例えば、1秒)以内である。
(条件2)タッチ履歴DB122の各タッチデータのX座標及びY座標に基づく位置が、タッチ連続データDB124の各レコードのX座標の平均及びY座標の平均を中心として所定の円(例えば、半径1cmの円)の範囲内である。
図11は、タップが連続しているか否かの判定を説明するための図である。図11において上側の表は、タッチ連続データDB124のレコード群を示す。下側の表は、タッチ履歴DB122に記憶されているタッチデータ群を示す。矢印a1は、(条件1)の判定を表現し、矢印a2は、(条件2)の判定を表現している。
タップが連続していると判定される場合(S134でYes)、連続データ生成部15は、タッチ履歴DB122に記憶されている全てのタッチデータ(すなわち、最後に行われたタップに係るタッチデータ)のそれぞれごとに、当該タッチデータを含み、「操作種別」を「タップ」とするレコードをタッチ連続データDB124に追加する(S135)。
図12は、タッチ連続データDB124へのタップに関するタッチデータ群の追加の例を示す図である。図12では、図11における判定において、タップが連続していると判定された場合に対応する。その結果、図12において破線によって囲まれるレコード群が、ステップS135においてタッチ連続データDB124へ追加される。
一方、タップが連続しないと判定される場合(S134でNo)、連続データ生成部15は、タッチ連続データDB124の全てのレコードを削除した上で、タッチ履歴DB122に記憶されている全てのタッチデータ(すなわち、最後に行われたタップに係るタッチデータ)のそれぞれごとに、当該タッチデータを含み、「操作種別」を「タップ」とするレコードをタッチ連続データDB124に記憶する(S136)。
続いて、図6のステップS127の詳細について説明する。図13は、第1の実施の形態におけるスワイプに関するタッチ連続データ生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS141において、連続データ生成部15は、スワイプが連続しているか否かを判定する。スワイプが連続しているか否かの判定とは、指(接触位置)の移動軌跡が往復しているか否かの判定である。例えば、連続データ生成部15は、上→下→上又は左→右→左のように、スワイプ(接触位置の軌跡)の方向が複数回(例えば2回以上)変化した場合、スワイプが連続していると判定する。上→下は、例えば、タッチ履歴DB122のY座標の時間変化(各タッチデータにおける時系列の変化)を調べ、増加から減少に切り替わるか否かに基づいて判定可能である。左→右は、X座標の時間変換に基づいて同様に判定可能である。
スワイプの連続の有無の判定について更に具体的に説明する。図14は、スワイプが連続しているか否かを説明するための図である。図14において、(1)は、ここで想定しているスワイプの方向を示す。すなわち、Y軸方向においてスワイプが行われている場合を想定する。
(2)は、(1)のようなスワイプが行われている場合にタッチ履歴DB122に記憶される各タッチデータを、スワイプの連続の有無の判定のために加工したデータ群を示す。具体的には、連続データ生成部15は、タッチ履歴DB122において2番目以降のタッチデータのX座標及びY座標の値を、1番目のタッチデータのX座標又はY座標との差分とし、1番目のタッチデータのX座標及びY座標を0としたデータ群(以下、「差分データ群」という。)を生成する。したがって、(2)では、「X座標」、「Y座標」の項目名が、「X座標差分」、「Y座標差分」とされている。
(3)は、(2)におけるX座標差分及びY座標差分の値の時系列の変化を曲線に近似した例を示す。
連続データ生成部15は、差分データ群のX座標差分及びY座標差分のそれぞれについてピーク検出を行う。例えば、ピークに対する閾値が予め設定され、当該閾値を超える座標がピークの候補とされる。ピークの候補を含む差分データが連続していない場合、当該ピークの候補がピークとされる。ピークの候補を含む差分データが連続している場合、連続しているピークの候補の中で最大の座標がピークとされる。連続データ生成部15は、X座標差分及びY座標差分の少なくともいずれか一方において、検出したピーク数が閾値以上であれば、スワイプが連続している(指が往復している)と判定する。例えば、図14の(3)には、X座標差分についてはピークが検出されず、Y座標差分については2以上のピークが検出された例が示されている。
スワイプが連続していると判定されない場合(S141でNo)、図13の処理は終了する。スワイプが連続していると判定される場合(S141でYes)、連続データ生成部15は、タッチ履歴DB122に記憶されているタッチデータ群の座標の次元数を2から1へ削減する(S142)。
座標の次元数の削減について説明する。まず、連続データ生成部15は、タッチ履歴DB122に記憶されているタッチデータ群に係るスワイプのうち、1番目のスワイプに係るタッチデータ群の2次元座標群の時系列を直線(以下、「近似直線」という。)に近似する。2次元座標群の直線への近似には、例えば、最小二乗法等が用いられてもよいし、他の方法が用いられてもよい。なお、本実施の形態において、スワイプの単位(1回のスワイプ)は、S141において検出された各ピークと、各ピークの前後の最小値に対応するタイミング(時刻)で区切られる。
図15は、スワイプの単位を説明するための図である。図15の(1)は、図14の(2)の元であるタッチデータ群を示す。但し、図15の(1)では、スワイプの単位が示されている。すなわち、(1)には、各タッチデータが、1番目のスワイプ、2番目のスワイプ、3番目のスワイプのいずれに対応するのかが示されている。
このようなスワイプの単位の区別は、例えば、(2)に示されるように、ピークが検出された座標軸(ここでは、Y座標差分)における値の変化に基づいて行うことができる。
また、図16は、1番目のスワイプに係る近似直線の例を示す図である。図16には、1番目のスワイプに対応するタッチデータ群のX座標及びY座標の値に基づく近似直線L1が示されている。すなわち、図16における各プロットは、1番目のスワイプに対応するタッチデータ群のX座標及びY座標に対応する。
連続データ生成部15は、更に、2番目以降のスワイプに係る各タッチデータ群の各2次元座標を、近似直線L1上に(例えば、垂直方向に)射影することで、当該2次元座標の次元を削減する。
図17は、近似直線上への2次元座標の射影の例を示す図である。図17には、或る2次元座標P1が、近似直線L1上に垂直方向に射影されている例が示されている。斯かる射影により、タッチ履歴DB122に記憶されている各タッチデータの2次元座標は、近似直線L1上の1次元の座標に変換される。
続いて、連続データ生成部15は、タッチ連続データDB124の全てのレコードを削除した上で、タッチ履歴DB122に記憶されている全てのタッチデータ(但し、2次元座標の次元が削減されたタッチデータ)のそれぞれごとに、当該タッチデータを含み、「操作種別」を「スワイプ」とする各レコードをタッチ連続データDB124に記憶する(S143)。
図18は、スワイプに関するタッチデータ群を記憶したタッチ連続データDB124の例を示す図である。図18の(1)に示されるように、スワイプに関するタッチデータについては、近似直線L1への射影後の座標の値が便宜上X座標の値とされ、Y座標の値は0とされる。
なお、(2)には、タッチ連続データDB124の各レコード群の時系列のX座標(近似直線L1への射影後の座標)の遷移例が示されている。
続いて、図4のステップS104の詳細について説明する。図19は、第1の実施の形態におけるシェイク連続データ生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS151において、連続データ生成部15は、加速度履歴DB123が空であるか否かを判定する(S151)。例えば、最初にステップS151が実行される場合、加速度履歴DB123は空である。加速度履歴DB123が空である場合(S151でYes)、連続データ生成部15は、対象操作データの時刻及び加速度データ部を含む加速度データ(以下、「対象加速度データ」という。)を、加速度履歴DB123に記憶する(S152)。
図20は、第1の実施の形態における加速度履歴DB123の構成例を示す図である。加速度履歴DB123には、図5に示した操作データのうち、時刻と加速度データ部とを含むレコード(加速度データ)が記憶される。
一方、加速度履歴DB123が空でない場合、すなわち、既に1以上のレコードが加速度履歴DB123に記憶されている場合(S151でNo)、連続データ生成部15は、端末装置10が動いたか否か(すなわち、ユーザが、端末装置10を動かしたか否か)を判定する(S153)。端末装置10が動いたか否かの判定は、加速度履歴DB123を参照して行われる。例えば、連続データ生成部15は、加速度履歴DB123に既に記憶されている、現在から所定時間前(例えば、5秒前)までの加速度データ群と、対象加速度データとの集合の加速度の分散が、所定値以上であれば、端末装置10が動いたと判定し、そうでなければ端末装置10が動いていないと判定する。ここで、加速度の分散は、加速度が3軸方向であれば、3軸のそれぞれの分散であってもよいし、いずれか1軸の分散であってもよいし、3軸を合成した加速度の分散であってもよい。なお、現在から所定時間前までの加速度データが加速度履歴DB123に記憶されていない場合、連続データ生成部15は、端末装置10が動いていないと判定する。
端末装置10が動いていないと判定される場合(S153でNo)、連続データ生成部15は、対象加速度データを加速度履歴DB123に追加する(S157)。端末装置10が動いたと判定される場合(S153でYes)、連続データ生成部15は、端末装置10に加わっている加速度方向の角度を算出する(S154)。当該角度は、緯度及び経度によって表現される。図21に、或る時刻の加速度ベクトルの角度の緯度及び経度の例を示す。当該角度(緯度、経度)は、対象加速度データの加速度(x,y,z)から重力加速度を除去した後で、以下のように算出される。
緯度=tan−1 (y/√(x2+z2))
経度=tan−1(z/x)
なお、ユーザが端末装置10を手に持ったまま端末装置10をシェイクすると、重力加速度を除いた加速度ベクトルの時間変化が、楕円を描く(角度が周期的に変化する)ことが想定される。重力加速度に対する端末装置10の傾斜角が加速度方向の角度とされてもよいが、本実施の形態では、歩行時の端末装置10のブレのような角度の反復性を除くべく、緯度及び経度によって加速度方向の角度が算出される。
続いて、連続データ生成部15は、シェイク連続データDB125が空であるか否かを判定する(S155)。シェイク連続データDB125が空である場合(S155でYes)、連続デー生成部15は、対象加速度データの時刻と、ステップS154で算出した角度(緯度及び経度)とを含むレコードをシェイク連続データDB125に記憶し(S156)、対象加速度データを加速度履歴DB123に追加する(S157)。
図22は、シェイク連続データDB125の構成例を示す図である。図22に示されるように、シェイク連続データDB125の各レコードは、時刻、緯度及び経度を含む。
シェイク連続データDB125が空でない場合(S155でNo)、連続データ生成部15は、端末装置10の動きが連続しているか否かを判定する(S158)。すなわち、今回の端末装置10の動きが、前回以前の加速度データに係る動きと連続したものであるか否かが判定される。当該角度が連続しているか否かは、シェイク連続データDB125に記憶されている最後のレコードの時刻と、対象加速度データの時刻とを比較することで行われる。当該2つの時刻の時間差が所定時間以下(例えば、0.5秒以下)であれば、端末装置10の動きが連続していると判定される。
端末装置10の動きが連続していると判定される場合(S158でYes)、連続データ生成部15は、対象加速度データの時刻と、ステップS154で算出した角度(緯度及び経度)とを含むレコードをシェイク連続データDB125に追加し(S159)、対象加速度データを加速度履歴DB123に追加する(S157)。
一方、端末装置10の動きが連続していると判定されない場合(S158でNo)、連続データ生成部15は、シェイク連続データDB125に記憶されている全てのレコードを削除した上で、対象加速度データの時刻と、ステップS154で算出した角度(緯度及び経度)とを含むレコードをシェイク連続データDB125に追加し(S160)、対象加速度データを加速度履歴DB123に追加する(S157)。すなわち、シェイク連続データDB125には、端末装置10の一連の動き(連続した動き)における加速度の角度の履歴が記憶される。
続いて、図4のステップS105の詳細について説明する。図23は、第1の実施の形態における反復操作検出処理の処理手順の一例を説明するためのフローチャートである。
ステップS171において、反復操作検出部16は、反復操作回数DB126をクリアする。すなわち、反復操作回数DB126に値が記憶されている場合、当該値が削除される。
図24は、第1の実施の形態における反復操作回数DB126の構成例を示す図である。図24に示されるように、反復操作回数DB126は、ステップS172以降で得られるタップの反復回数、スワイプの反復回数、及びシェイクの反復回数を記憶可能なように構成されている。ステップS171では、これら3つの反復回数の値が削除される。又は、これら3つの反復回数が0若しくはNULLに初期化されてもよい。
続いて、反復操作検出部16は、タッチ連続データDB124のレコード数が、反復操作の有無を判定するために十分であるが否かを判定する(S172)。例えば、当該レコード数が、所定数(例えば、3個)以上であれば、十分であると判定される。当該レコード数が十分でない場合(S172でNo)、ステップS175に進む。当該レコー数が十分である場合(S172でYes)、反復操作検出部16は、タッチ連続データDB124を参照して、タップ又はスワイプが周期的であるか否かを判定する(S173)。
タッチ連続データDB124(図12)に記憶されている各レコードの「操作種別」の値が「タップ」である場合、タッチ連続データDB124のレコード数が十分であることをもって、タップが周期的であると判定される。すなわち、図9のステップS134において判定されているように、タップについては、タップが連続している場合(すなわち、タップが周期的である場合)に、タッチ連続データDB124に対してレコードが記憶されるからである。
一方、タッチ連続データDB124(図12)に記憶されている各レコードの「操作種別」の値が「スワイプ」である場合、反復操作検出部16は、例えば、各ピーク間隔が所定時間以内(例えば、1秒以内)であれば、スワイプが周期的であると判定する。
タップ又はスワイプが周期的でないと判定される場合(S173でNo)、ステップS175に進む。タップ又はスワイプが周期的であると判定される場合(S173でYes)、反復操作検出部16は、タップ又はスワイプの反復回数を反復操作回数DB126に記憶し(S174)、ステップS175に進む。
タップについて、反復操作検出部16は、タッチ連続データDB124のレコード群を、「時刻」の値の間隔が閾値α以上であるレコード間で複数の集合に分割し、当該集合の数を反復回数とする。ここで、閾値αは、図6のステップS123において、各タップを区別するために用いられた閾値である。
スワイプについて、反復操作検出部16は、スワイプの周期性を判定するために用いられたピークの数を反復回数とする。
ステップS175において、反復操作検出部16は、シェイク連続データDB125のレコード数が、反復操作の有無を判定するために十分であるが否かを判定する。例えば、当該レコード数が、所定数(例えば、3個)以上であれば、十分であると判定される。当該レコード数が十分でない場合(S175でNo)、ステップS178に進む。当該レコー数が十分である場合(S175でYes)、反復操作検出部16は、シェイク連続データDB125(図22)を参照して、シェイクが周期的であるか否かを判定する(S176)。例えば、反復操作検出部16は、シェイク連続データDB125の緯度の時系列及び経度の時系列のそれぞれについてピーク検出を行う。ピーク検出の方法は、スワイプに関するタッチデータ群に関して説明した方法と同様でよい。反復操作検出部16は、緯度及び経度の少なくともいずれか一方において閾値以上の数のピークが検出され、各ピーク間隔が所定時間以内(例えば、1秒以内)であれば、シェイクが周期的であると判定する。
シェイクが周期的でないと判定される場合(S176でNo)、ステップS178に進む。シェイクが周期的であると判定される場合(S176でYes)、反復操作検出部16は、シェイクの反復回数を反復操作回数DB126に記憶し(S177)、ステップS178に進む。なお、シェイクについても、スワイプと同様に、ピーク数が反復回数とされる。
ステップS178において、反復操作検出部16は、タップ、スワイプ及びシェイクのうちのいずれかの操作の反復回数として1以上の値が反復操作回数DB126に記憶されているか否かを判定する。いずれかの操作の反復回数として1以上の値が反復回数DBに記憶されている場合(S178でYes)、反復操作検出部16は、反復操作が発生したと判定する(S179)。すなわち、反復操作が検出される。一方、いずれの操作についても「反復回数」として1以上の値が反復回数DBに記憶されていない場合(S178でNo)、反復操作検出部16は、反復操作は発生していないと判定する(S180)。すなわち、反復操作は検出されない。
続いて、図4のステップS107の詳細について説明する。図25は、第1の実施の形態における意図的操作推定処理の処理手順の一例を説明するためのフローチャートである。なお、図25の処理手順は、図4において説明したように、反復操作検出部16によって、反復的な操作が検出された場合に実行される。
ステップS191において、意図的操作推定部17は、反復操作検出部16によって検出された反復操作の前後において(すなわち、反復操作によって)、端末状態情報が変化したか否かを確認する。
図26は、反復操作の前後における端末状態の変化の有無を説明するための図である。例えば、図12に示したタッチ連続データDB124のレコード群に基づいて、反復操作が検出された場合、当該反復操作の開始時(以下、「反復操作開始時刻」という。)は、当該レコード群の最初のレコードの時刻で「8:59:55.000」であり、当該反復操作の終了時(以下、「反復操作終了時刻」という。)は、当該レコード群の最後のレコードの時刻で「8:59:58.990」である。
したがって、図26に示される端末状態DB121において、「時刻」が反復操作開始時刻より前のレコード群の中で「時刻」が最も遅いレコードR1が、反復操作の直前(反復操作前)の端末状態情報を示し、「時刻」が反復操作終了時刻より後のレコード群の中で「時刻」が最も早いレコードR2が、反復操作の直後(反復操作後)の端末状態情報を示す。また、レコードR1とレコードR2との間のレコード群が、反復操作中の端末状態情報の履歴を示す。
ステップS191では、レコードR1とレコードR2との間において、端末状態情報を構成する各パラメータ(「画面更新有無」、「カーソルの位置」、「起動中のアプリ名」、「無線LAN設定」)のいずれかが異なるか否かが確認される。図26の例では、「画面更新有無」の値が、レコードR1とレコードR2との間で異なる。したがって、この場合、反復操作前後で端末状態情報が変化したと判定される。仮に、レコードR1とレコードR2との間において、端末状態情報を構成する全てのパラメータの値が同じであれば、反復操作前後で端末状態情報は変化していないと判定される。
なお、反復操作前から反復操作後の期間を通して端末状態情報に変化が有るか否かが確認されてもよい。すなわち、図26におけるレコードR1及びレコードR2と、レコードR1及びレコードR2の間のレコード群とを含むレコードの集合において、端末状態情報を構成する各パラメータが一致するか否かが確認されてもよい。当該レコードの集合について端末状態情報の変更の有無が判定されることで、反復操作中に端末状態が変化した後で元に戻るケース(すなわち、反復操作中に端末状態が変化したにも関わらず、反復操作前と反復操作後とで端末状態情報が一致してしまうケース)についても、端末状態の変化を検出することができる。要するに、本実施の形態では、反復操作によって端末状態が変化したか否かを判定することが目的であるため、当該目的を達成可能な方法であれば、どのような方法が採用されてもよい。以下、便宜上、反復操作前及び反復操作後のみならず、反復操作前から反復操作後の間を含む期間(図26のレコードR1、反復操作中、レコードR2に係る期間)についても、「反復操作前後」という。
反復操作前後において端末状態情報が変化した場合(S192でYes)、意図的操作推定部17は、反復操作回数DB126に1以上の値が記憶されている反復回数(以下、「対象反復回数」といい、当該反復操作に係る操作(タップ、スワイプ又はシェイク)を「対象反復操作」という。)が、操作ログDB127に記憶されている対象反復操作に関する反復回数(以下、「過去反復回数」という。)と比較し、対象反復回数が過去反復回数に対して有意に異なるか否かを判定する(S193)。
図27は、第1の実施の形態における操作ログDB127の構成例を示す図である。図27に示されるように、操作ログDB127には、アプリごとに、当該アプリに関する過去の操作に関して、タップ、スワイプ、シェイクについての1分当たりの反復回数の履歴が記憶されている。アプリ別とされているのは、アプリごとに操作の態様に特徴が有ると考えられるからである。例えば、タップが主な操作であるゲームアプリであれば、タップの反復回数が非常に多くなると考えられる。したがって、本実施の形態では、アプリ別に、各操作の反復回数が区別されて記憶されている。
ステップS193では、意図的操作推定部17が、対象反復回数を1分当たりの反復回数に換算する(換算した結果を以下「対象反復回数換算値」という。)。例えば、対象反復操作が、図12に示したタッチ連続データDB124のレコード群に基づいて検出された場合、反復操作回数DB126(図24)において「タップの反復回数」として記憶されている対象反復回数は、最初のレコードの「時刻」から末尾のレコードの「時刻」までの経過時間T(秒)における反復回数である。したがって、この場合、意図的操作推定部17は、対象反復回数Nを以下のように換算した対象反復回数換算値Mと、現在起動中のアプリに関して操作ログDB127に記憶されている「1分当たりのタップの反復回数」の履歴(分布)との間に有意な違いが有るか否かを判定する。
対象反復回数換算値M=対象反復回数N×60/経過時間T
なお、現在起動中のアプリがいずれであるかについては、端末状態DB121を参照して特定可能である。
例えば、意図的操作推定部17は、現在起動中のアプリに関して操作ログDB127に記憶されている「1分当たりのタップの反復回数」の履歴(分布)が正規分布に従うと仮定して、反復回数Mについて有意差検定を実行することにより、対象反復回数が、対象反復操作に係る過去反復回数の履歴(分布)に対して有意に異なるか否かを判定する。
なお、操作ログDB127には、アプリごとではなく、場所ごとに、タップ、スワイプ、シェイクについての1分当たりの反復回数が記憶されてもよい。場所に応じて(例えば、駅での利用時と自宅での利用時とでは)、反復回数が異なる可能性が有ると考えられるからである。場所は、緯度及び経度によって表現されてもよい。この場合、意図的操作推定部17は、現在位置の緯度及び経度に最も近い緯度及び経度に対応する操作ログDB127のレコードを利用すればよい。
又は、操作ログDB127には、アプリごと、かつ、場所ごとに、タップ、スワイプ、シェイクについての1分当たりの反復回数が記憶されてもよい。この場合、意図的操作推定部17は、現在起動中のアプリに対応し、かつ、現在位置の緯度及び経度に最も近い緯度及び経度に対応する操作ログDB127のレコードを利用すればよい。
対象反復回数が過去反復回数に対して有意な違いを有さない場合(S193でNo)、意図的操作推定部17は、対象反復操作が意図的な操作であると推定(判定)する(S194)。すなわち、反復操作前後において端末状態情報が変化した場合であっても、起動中のアプリに関して通常の反復回数の範囲内であれば、当該反復操作は意図的な操作であると推定される。
一方、反復操作前後において端末状態情報が変化していない場合(S192でNo)、又は対象反復回数が過去反復回数に対して有意な違いを有する場合(S193でYes)、意図的操作推定部17は、対象反復操作が意図的な操作でないと推定(判定)する(S195)。なお、端末状態情報が変化していない場合には、多少の変化(例えば、閾値以内の変化)が有る場合が含まれてもよい。
ステップS194又はS195に続いて、意図的操作推定部17は、操作ログDB127(図27)において、現在起動中のアプリに対応するテーブルに、当該アプリのアプリ名を含み、対象反復回数換算値を対象反復操作の反復回数として含むレコードを追加する(S196)。なお、操作ログDB127が、場所ごと、又はアプリ及び場所ごとにタップ、スワイプ、シェイクについての1分当たりの反復回数を記憶するように構成されている場合、現在位置に対応するテーブル、又は現在位置及び現在起動中のアプリに対応するテーブルに対して、対象反復回数換算値が記憶されればよい。
なお、ステップS196は、ステップS194が実行された場合にのみ実行されるようにしてもよい。すなわち、意図的な操作であると推定された場合にのみ、ステップS195が実行されるようにしてもよい。但し、全てのケースの反復回数が操作ログDB127に記憶された方が、反復回数について精度の高い分布を得ることができるため、ステップS195が実行された場合にも、ステップS196が実行されるのが望ましい。
また、上記では、反復回数が、対象反復操作と過去の反復操作との有意差の有無を判定するための特徴量として利用される例について説明したが、反復回数以外の反復操作に関する特徴量(例えば、後述される付随特徴量)が、反復回数の代わりに又は反復回数と共に、過去の反復操作との有意差の有無の判定に利用されてもよい。この場合、反復操作以外の特徴量が操作ログDB127に記憶されるようにしてもよい。
続いて、図4のステップS108の詳細について説明する。図28は、第1の実施の形態におけるストレス推定処理の処理手順の一例を説明するためのフローチャートである。
ステップS201にいて、ストレス推定部18は、反復操作検出部16による検出結果と、意図的操作推定部17による推定結果とに基づいて、意図的な反復操作が発生したか否かを判定する。すなわち、反復操作検出部16によって、反復操作が検出され、かつ、意図的操作推定部17によって、当該反復操作が意図的であると推定された場合に意図的な反復操作が発生したと判定される。それ以外の場合は、意図的な反復操作は発生していないと判定される。
意図的な反復操作は発生していないと判定される場合(S201でNo)、ストレス推定部18は、ユーザがストレス状態でないと推定(判定)する(S202)。
一方、意図的な反復操作が発生したと判定される場合(S201でYes)、ストレス推定部18は、ユーザがストレス状態であると推定(判定)する(S203)。続いて、ストレス推定部18は、当該ストレス状態の解消策を解消策DB128から取得する(S204)。
図29は、第1の実施の形態における解消策DB128の構成例を示す図である。図29に示されるように、解消策DB128には、アプリ名及び端末状態変化の組み合わせごとに、解消策が記憶されている。すなわち、同一のアプリ(アプリ名)に対して、端末状態に応じて複数の解消策が記憶されている可能性が有る。
端末状態変化は、反復操作前後における端末状態の変化の有無を示す。図29における端末状態変化の括弧内の各値(「有」又は「無」)は、左から、「画面更新有無」、「カーソル位置」、「起動中のアプリ名」、「無線LAN設定」についての反復操作前後における変化の有無に対応する。したがって、(無、無、無、無)は、これら全てのパラメータについて、反復操作前後において変化が無いことを示す。
解消策は、ストレス状態の解消策である。例えば、「無線LAN設定のON/OFFの切り替え」、「画面の自動回転のON/OFFの切り替え」、「電池長持ちモードのON/OFFの切り替え」、「バックグラウンド処理を停止」等、端末装置10の負荷を軽減するための自動的な制御が、解消策の一例として挙げられる。
ステップS204では、ストレス推定部18は、現在起動中のアプリのアプリ名と、図25のステップS192における反復操作検出部16による判定結果とに対応する解消策を解消策DB128から取得する。
続いて、ストレス推定部18は、取得した解消策に応じた制御を端末装置10に対して実行する(S205)。その結果、ストレス状態の由来(原因)が除去される可能性を高めることができる。
なお、解消策は、端末装置10の制御ではなく、アプリ名及び端末状態変化の組み合わせに関連するQ&Aが掲載されたURL(Uniform Resource Locator)や、解消策の問い合わせ先の電話番号等のように、ストレス状態を解消するための操作支援に関する情報であってもよい。この場合、ストレス推定部18は、当該URL又は当該電話番号を表示装置111に表示してもよい。
又は、ストレス推定部18は、ステップS204及びS205を実行する代わりに、現在の(端末状態DB121に記憶されている最後の)端末状態情報を表示装置111に表示してもよい。すなわち、端末状態情報をユーザに通知し、その後の対処をユーザに委ねてもよい。端末装置10を強制的に制御されることに不快感を抱くユーザの存在も考えられるからである。
又は、ストレス推定部18は、ステップS204及びS205を実行する代わりに、ストレス状態が検出されたことを示す情報を、現在日時とともに補助記憶装置103に記憶してもよい。この場合、ユーザが、自身のストレス状態の履歴を参照可能としてもよい。
又は、ストレス推定部18は、ステップS204及びS205を実行する代わりに、ストレス状態が検出されたことを示す情報を、予め設定された連絡先(例えば、家族のメールアドレス等)に送信してもよい。そうすることで、離れて暮らす家族によるユーザの見守りを支援することができる。
上述したように、第1の実施の形態によれば、反復操作の検出と、当該反復操作前後における端末状態の変化の有無とに基づいて、ユーザがストレス状態であるか否かが判定される。したがって、個別の除外ケースを設定することなく、ユーザ操作(反復操作)からユーザがストレス状態であるか否かを判定可能とすることができる。また、ストレス状態の判定の精度の向上を期待することができる。
また、ストレス状態が検出された場合に、当該ストレス状態を解消するための対処策(解消策)が実行されるため、ユーザのストレスの緩和を期待することができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において、特に言及されない点については、第1の実施の形態と同様でもよい。
図30は、第2の実施の形態における端末装置10の機能構成例を示す図である。図30中、図2と同一部分には同一符号を付し、その説明は省略する。
図30において、端末装置10は、更に、タッチ付随特徴DB131及びシェイク付随特徴DB132等のデータベースを有する。これら各データベースは、例えば、メモリ102又は補助記憶装置103等を用いて実現可能である。タッチ付随特徴DB131には、ユーザがストレス状態ない場合におけるタッチに関する特徴量(後述の付随特徴量)の履歴が記憶される。シェイク随特徴DBには、ユーザがストレス状態ない場合におけるシェイクに関する特徴量(後述の付随特徴量)の履歴が記憶される。
第2の実施の形態では、図28の処理手順が図31の処理手順に置き換わる。図31は、第2の実施の形態におけるストレス推定処理の処理手順の一例を説明するためのフローチャートである。図31中、図28と同一ステップには同一ステップ番号を付し、その説明は省略する。
図31では、ステップS204がステップS204aに置換されている。また、ステップS202に続いてステップS211が実行される。更に、ステップ203とステップS204aとの間に、ステップS212〜S214が追加されている。
ステップS211において、ストレス推定部18は、タッチ連続データDB124及びシェイク連続データDB125の少なくともいずれか一方を参照して、反復操作検出部16によって検出された反復操作(対象反復操作)の期間中における、対象反復操作の付随的な特徴量(以下、「付随特徴量」という。)の集合を算出し、算出結果をタッチ付随特徴DB131又はシェイク付随特徴DB132に記憶する。
例えば、対象反復操作が、タップの反復操作であれば、付随特徴量として、反復回数、1回当たりのタップ時間最小値、最大値、平均値及び標準偏差等、反復操作時間(反復操作終了時刻−反復操作開始時刻)、並びに圧力及び面積それぞれの最小値、最大値、平均値及び標準偏差等が挙げられる。反復回数は、反復操作回数DB126から取得可能である。1回当たりのタップ時間は、タッチ連続データDB124のレコード群について、反復回数の判定時に分割された集合ごとに、最も遅い時刻−最も早い時刻で算出可能である。圧力及び面積は、タッチ連続データDB124から取得可能である。圧力とは、タッチ時においてタッチパネル104にかかる圧力である。なお、圧力は、便宜上、図示が省略されているが、タッチ信号に含まれており、その値が、操作データのタッチデータ部に含められ、更にタッチ連続データDB124のレコードに引き継がれる。
また、対象反復操作が、スワイプの反復操作であれば、付随特徴量として、反復回数、1回当たりのスワイプ時間の最小値、最大値、平均値及び標準偏差等、反復操作時間(反復操作終了時刻−反復操作開始時刻)、圧力及び面積それぞれの最小値、最大値、平均値及び標準偏差、スワイプの移動距離及び速度のそれぞれの最小値、最大値、平均値及び標準偏差、1番目の近似直線L1の傾き(近似直線L1がy=ax+bである場合のaの値)が挙げられる。反復回数、反復操作時間、圧力及び面積については、タップの場合と同様に取得可能である。1回当たりのスワイプ時間は、スワイプの周期性を判定するために検出されたピークと、タッチ連続データDB124において、ピーク間のX座標(近似直線L1上の座標)の最小値と、タッチ連続データDB124の最初のレコードと、最後のレコードとを区切りとする各区間(各スワイプ)の時間が採用されればよい。移動距離は、1回あたりのスワイプ及び連続した全スワイプのそれぞれについて求められてもよい。1回あたりのスワイプの移動距離は、タッチ連続データDB124において、各スワイプに対応するレコード群の最初のレコードのX座標と最後のレコードのX座標との差を求めることにより得ることができる。連続した全スワイプの移動距離は、1回あたりのスワイプの移動距離の総和によって得ることができる。速度は、各移動距離を、当該移動距離に係る移動に要した時間で除することで得ることができる。
また、対象反復操作が、シェイクの反復操作であれば、付随特徴量として、連続した全てのシェイクの緯度及び経度の最小、最大、平均・標準偏差、または、1回当たりのシェイクの緯度及び経度の最小・最大・平均・標準偏差、反復回数、1回当たりのシェイクの時間及び速度、連続した全てのシェイクの時間及び速度等が挙げられる。シェイクの単位は、スワイプの単位と同様に求められる。したがって、シェイク連続データDB125において各シェイクに対応するレコードに基づいて、これらの付随特徴量を算出可能である。
なお、タップ又はスワイプに関する付随特徴量は、タッチ付随特徴DB131に追加的に記憶される。また、シェイクに関する付随特徴量は、シェイク付随特徴DB132に追加的に記憶される。
一方、ステップS212において、ストレス推定部18は、タッチ連続データDB124及びシェイク連続データDB125の少なくともいずれか一方を参照して、反復操作検出部16によって検出された反復操作(対象反復操作)の期間中における付随特徴量の集合を算出する(S212)。算出される付随特徴量は、ステップS211と同様でよい。
続いて、ストレス推定部18は、算出した付随特徴量ごとに、当該付随特徴量の履歴(分布)との比較を行う(S213)。当該付随特徴量の履歴(分布)は、タッチ付随特徴DB131又はシェイク付随特徴DB132から取得可能である。
続いて、ストレス推定部18は、各付随特徴量と付随特徴量ごとの履歴(分布)との比較に基づいてストレス度合いを求める(S214)。ここで、ストレス度合いとは、ストレスの大きさを示す指標であり、その値が大きい程、ストレスが大きいことを示す。
具体的には、分布から大小いずれかの方向に大きく外れている付随特徴量の数が、ストレス度合いとされる。例えば、該当する付随特徴量の数が5であれば、ストレス度合いは5である。但し、付随特徴量ごとに重み付けがなされてもよい。また、分布から大きく外れている状態の定義は、適宜定められればよい。
続いて、ストレス推定部18は、起動中のアプリのアプリ名と端末状態変化とストレス度合いとに対応する解消策を解消策DB128から取得する(S204a)。すなわち、第2の実施の形態において、解消策DB128には、アプリ名、端末状態変化及びストレス度合いの組み合わせに応じて解消策が記憶されている。そうすることで、ストレスの大きさに応じた端末装置10の制御を可能とすることができる。
なお、上記各実施の形態では、意図的でない反復操作の検出に基づいて、ユーザがストレス状態であることを推定する例について説明したが、意図的でない反復操作の検出が他の用途に適用されてもよい。
例えば、意図的でない反復操作の検出に基づいて、ストレス以外の感情が推定されてもよい。例えば、反復操作の付随特徴量、時間帯、端末装置10のCPU負荷率、端末装置10の温度、操作中のアプリ、今後の予定、操作場所、外部環境情報などの複数情報を組み合わせて、例えば、ユーザが、ポジティブな興奮状態であることが推定されてもよい。例えば、これらの情報の組み合わせごとに、ユーザがどのような感情であるのかを示す定義情報が補助記憶装置103に記憶され、ストレス推定部18が、当該定義情報に基づいて、ユーザの感情を推定してもよい。この場合においても、ストレス推定部18は、推定した感情に応じて、端末装置10の制御、操作支援、又は情報提供等を行ってもよい。なお、今後の予定については、端末装置10に記憶されているスケジュール情報が用いられてもよい。また、操作場所については、GPS(Global Positioning System)によって取得可能である。また、外部環境情報としては、例えば、音、光、振動、湿度、臭気、外気温等、端末装置10のセンサによって検知可能な情報が挙げられる。
また、意図的でない反復操作の検出に基づいて、個人認証が行われてもよい。すなわち、人にはそれぞれ、自身の心を落ち着けるために、無意識な癖(=意図的でない反復操作)が有ると考えられる。そうすると、無意識な癖により、個人が特定できる可能性が有る。そこで、例えば、ストレス推定部18は、意図的でない反復操作を検出したら、端末装置10の現在の使用者が所有者か否かを推定し、所有者でない場合は自動的にロック画面に切り替えるといった制御を行ってもよい。使用者が所有者か否かの推定は、検出した意図的でない反復操作の特徴量(例えば、付随特徴量)と、所有者の意図的でない反復操作の特徴量(例えば、付随特徴量)とを比較することで行うことができる。所有者の意図的な反復操作の特徴量は、補助記憶装置103等に記憶されていてもよい。
なお、上記各実施の形態では、端末装置10が、状態判定方法を実行するコンピュータ又は状態判定装置の一例である場合について説明したが、端末装置10とネットワーク等の通信回線を介して接続される情報処理装置が、当該コンピュータ又は状態判定装置とされてもよい。この場合、図2に示される機能構成において、タッチ信号取得部11、加速度信号取得部12、及び操作データ送信部14を端末装置10が有し、これら以外の各部を当該コンピュータが有してもよい。すなわち、当該各部は、当該コンピュータにインストールされたプログラムが当該コンピュータに実行させる処理により実現されてもよい。
なお、上記各実施の形態において、反復操作検出部16は、検出部の一例である。意図的操作推定部17は、第1の判定部の一例である。ストレス推定部18は、第2の判定部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
端末を操作するユーザによる操作のうち、反復操作を検出する処理と、
前記ユーザによる前記操作に応じて変化する前記端末の状態について、前記反復操作による変化の有無を判定する処理と、
前記反復操作による前記端末の状態の変化の有無に基づいて、前記ユーザが前記端末に対してストレスを感じている状態を判定する処理と、
をコンピュータが実行することを特徴とする状態判定方法。
(付記2)
前記ユーザが前記端末に対してストレスを感じている状態を判定する処理は、前記反復操作による前記端末の状態に変化が有る場合に、前記反復操作の特徴量と、前記反復操作が検出された際に前記端末において利用されていたアプリケーションに関して過去に検出された反復操作の特徴量との比較に基づいて、前記ユーザがストレスを感じている状態であるか否かを判定する、
ことを特徴とする付記1記載の状態判定方法。
(付記3)
前記ユーザがストレスを感じている状態であると判定された場合に、前記反復操作が検出された際における前記端末の状態、又は前記反復操作が検出された際に前記端末において利用されていたアプリケーション、又は前記端末の状態と前記アプリケーションとの組み合わせに応じた制御を前記端末に対して実行する処理、
を前記コンピュータが実行することを特徴とする付記1又は2記載の状態判定方法。
(付記4)
前記制御を前記端末に対して実行する処理は、更に、前記反復操作の特徴に応じた制御を前記端末に対して実行する、
ことを特徴とする付記3記載の状態判定方法。
(付記5)
端末を操作するユーザによる操作のうち、反復操作を検出する処理と、
前記ユーザによる前記操作に応じて変化する前記端末の状態について、前記反復操作による変化の有無を判定する処理と、
前記反復操作による前記端末の状態の変化の有無に基づいて、前記ユーザが前記端末に対してストレスを感じている状態を判定する処理と、
をコンピュータに実行させることを特徴とする状態判定プログラム。
(付記6)
前記ユーザが前記端末に対してストレスを感じている状態を判定する処理は、前記反復操作による前記端末の状態に変化が有る場合に、前記反復操作の特徴量と、前記反復操作が検出された際に前記端末において利用されていたアプリケーションに関して過去に検出された反復操作の特徴量との比較に基づいて、前記ユーザがストレスを感じている状態であるか否かを判定する、
ことを特徴とする付記5記載の状態判定プログラム。
(付記7)
前記ユーザがストレスを感じている状態であると判定された場合に、前記反復操作が検出された際における前記端末の状態、又は前記反復操作が検出された際に前記端末において利用されていたアプリケーション、又は前記端末の状態と前記アプリケーションとの組み合わせに応じた制御を前記端末に対して実行する処理、
を前記コンピュータに実行させることを特徴とする付記5又は6記載の状態判定プログラム。
(付記8)
前記制御を前記端末に対して実行する処理は、更に、前記反復操作の特徴に応じた制御を前記端末に対して実行する、
ことを特徴とする付記7記載の状態判定プログラム。
(付記9)
端末を操作するユーザによる操作のうち、反復操作を検出する検出部と、
前記ユーザによる前記操作に応じて変化する前記端末の状態について、前記反復操作による変化の有無を判定する第1の判定部と、
前記反復操作による前記端末の状態の変化の有無に基づいて、前記ユーザが前記端末に対してストレスを感じている状態を判定する第2の判定部と、
を有することを特徴とする状態判定装置。
(付記10)
前記第2の判定部は、前記反復操作による前記端末の状態に変化が有る場合に、前記反復操作の特徴量と、前記反復操作が検出された際に前記端末において利用されていたアプリケーションに関して過去に検出された反復操作の特徴量との比較に基づいて、前記ユーザがストレスを感じている状態であるか否かを判定する、
ことを特徴とする付記9記載の状態判定装置。
(付記11)
前記ユーザがストレスを感じている状態であると判定された場合に、前記反復操作が検出された際における前記端末の状態、又は前記反復操作が検出された際に前記端末において利用されていたアプリケーション、又は前記端末の状態と前記アプリケーションとの組み合わせに応じた制御を前記端末に対して実行する制御部、
を有することを特徴とする付記9又は10記載の状態判定装置。
(付記12)
前記制御部は、更に、前記反復操作の特徴に応じた制御を前記端末に対して実行する、
ことを特徴とする付記11記載の状態判定装置。