(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024002267
(43)【公開日】2024-01-11
(54)【発明の名称】電子機器、行動推定方法及びプログラム
(51)【国際特許分類】
H04M 1/72 20210101AFI20231228BHJP
【FI】
H04M1/72
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022101358
(22)【出願日】2022-06-23
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】櫻井 智也
【テーマコード(参考)】
5K127
【Fターム(参考)】
5K127AA36
5K127BA03
5K127CA19
5K127JA02
5K127JA25
(57)【要約】
【課題】バイブレータを振動させる機能を備えていても、行動推定の精度が低下するのを防ぐ。
【解決手段】電子機器100は、検出部130と、振動部140と、検出部130が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力する制御部110と、を備え、制御部110は、振動部140が振動した振動期間を含んだ対象期間における行動推定結果を出力する場合には、振動期間に検出された検出値以外の検出値に基づいて推定された行動推定結果を出力する、ことを特徴とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
検出部と、
振動部と、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力する制御部と、
を備え、
前記制御部は、前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
ことを特徴とする電子機器。
【請求項2】
前記制御部は、
前記振動部を振動させる振動処理を実行する際には、前記振動処理を実行する前又は前記振動処理を終了した後の前記行動推定結果を、前記振動期間を含んだ前記対象期間における行動推定結果として出力する、
ことを特徴とする請求項1に記載の電子機器。
【請求項3】
前記制御部は、
前記振動部を振動させる振動処理を実行する際には、前記振動期間に検出された検出値を用いず、前記振動部の振動が停止してからの前記検出値を用いて前記行動推定処理を実行する、
ことを特徴とする請求項1に記載の電子機器。
【請求項4】
前記制御部は、
前記振動部を所定時間の休止を挟んで繰り返し振動させる短周期動作で振動させる際には、前記短周期動作を実行している間は、前記検出値を取得する頻度を増やし、
前記所定時間の休止中に取得した前記検出値も用いて前記行動推定処理を実行する、
ことを特徴とする請求項1に記載の電子機器。
【請求項5】
前記制御部は、
前記短周期動作中の前記所定時間の休止時間と他の所定時間の振動時間のデューティ比に応じて前記検出値を取得する頻度を増やす、
ことを特徴とする請求項4に記載の電子機器。
【請求項6】
前記制御部は、
前記振動期間における行動推定結果を、前記振動期間以外の期間における行動推定結果とは異なる態様で出力する、
請求項1から5のいずれか1項に記載の電子機器。
【請求項7】
検出部と振動部と制御部とを備える電子機器の前記制御部が、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力するが、
前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
ことを特徴とする行動推定方法。
【請求項8】
検出部と振動部と制御部とを備える電子機器の前記制御部に、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力するが、
前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器、行動推定方法及びプログラムに関する。
【背景技術】
【0002】
携帯機器やウェアラブル機器で検出した位置、速度、加速度等に基づいて、ユーザの行動を推定する技術が知られている。例えば特許文献1には加速度センサ、ジャイロセンサ、磁気センサ、気圧センサを含むセンサユニットにより、ユーザの動作や周辺環境を検出し、ユーザの行動を推定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような行動推定技術は、スマートフォンやスマートウォッチ等の携帯機器やウェアラブル機器に搭載されることが多いが、このような機器は、電話着信時やアラーム機能実行時等に、内蔵しているバイブレータを振動させる場合がある。その場合、加速度センサやジャイロセンサがバイブレータの振動による影響を受け、ユーザの正確な動作を検出できなくなり、行動推定の精度が低下してしまうおそれがある。
【0005】
本発明は上記実情に鑑みてなされたものであり、バイブレータを振動させる機能を備えていても、行動推定の精度が低下するのを防ぐことができる電子機器、行動推定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明に係る電子機器の一態様は、
検出部と、
振動部と、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力する制御部と、
を備え、
前記制御部は、前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、バイブレータを振動させる機能を備えていても、行動推定の精度が低下するのを防ぐことができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1に係る電子機器の機能構成の一例を示すブロック図である。
【
図2】実施の形態1に係る電子機器で行動推定を行った際に表示部に表示される画面の一例である。
【
図3】振動部が振動したために間違った行動推定が行われた場合を説明する図である。
【
図4】実施の形態1において振動部が振動しても間違った行動推定をしないようにする処理を説明する図である。
【
図5】振動部が振動しても間違った行動推定が行われなかった場合を説明する図である。
【
図6】実施の形態1に係る振動考慮推定処理のフローチャートである。
【
図7】実施の形態2において振動部が振動しても間違った行動推定をしないようにする処理を説明する図である。
【
図8】実施の形態2に係る振動考慮推定処理のフローチャートである。
【
図9】実施の形態3において振動部が振動しても間違った行動推定をしないようにする処理を説明する図である。
【
図10】実施の形態4において振動部が振動しても間違った行動推定をしないようにする処理を説明する図である。
【
図11】実施の形態4に係る振動考慮推定処理のフローチャートである。
【発明を実施するための形態】
【0009】
実施の形態に係る電子機器等について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【0010】
(実施の形態1)
実施の形態1に係る電子機器は、ユーザの行動を推定する機能を搭載したスマートウォッチである。この電子機器は、加速度センサ、ジャイロセンサ等の各種センサ(検出部)を備えており、これらのセンサで検出した加速度、角速度等の検出値を行動推定アルゴリズムに入力して行動推定処理を実行することで、行動推定の結果を得ることができる。行動推定アルゴリズムは、例えば、複数の検出値から行動推定結果を得る機械学習モデルを用いてユーザの行動を推定する。また、この電子機器は、バイブレータ(振動部)を備えており、電話やメッセージを着信したりアラーム時刻になったりすると、バイブレータを振動させる機能を持っている。なお、この電子機器はスマートウォッチに限定されるわけではなく、ユーザの行動を推定する機能とバイブレータを振動させる機能を持っているならば、任意の電子機器(例えばスマートフォン、ウェアラブル機器、タブレット等)でよい。
【0011】
実施の形態1に係る電子機器100は、
図1に示すように、制御部110、記憶部120、検出部130、振動部140、表示部150、操作部160を備える。
【0012】
制御部110は、例えばCPU(Central Processing Unit)等のプロセッサで構成される。制御部110は、記憶部120に記憶されているプログラムにより、電子機器100の各種機能を実現する処理、ユーザの行動を推定する処理、後述する振動考慮推定処理、等を実行する。
【0013】
記憶部120は、制御部110が実行するプログラムや、必要なデータを記憶する。記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等を含み得るが、これらに限られるものではない。なお、記憶部120は、制御部110の内部に設けられていてもよい。
【0014】
検出部130は、加速度センサ、ジャイロセンサ等、ユーザの行動を推定する際に用いるデータを検出するデバイスを備える。制御部110は、検出部130が備える各デバイスで検出した値を検出値として任意のタイミングで取得することができる。
【0015】
加速度センサは電子機器100の直交する3軸(X軸、Y軸、Z軸)の各方向の加速度を検出する。加速度センサが検出する加速度の値は、X軸方向の加速度、Y軸方向の加速度、Z軸方向の加速度の各値からなる3次元のデータである。また、ジャイロセンサは、電子機器100の直交する3軸(X軸、Y軸、Z軸)のそれぞれを回転軸とする回転の角速度を検出する。ジャイロセンサが検出する角速度の値は、X軸回転の角速度、Y軸回転の角速度、Z軸回転の角速度の各値からなる3次元のデータである。
【0016】
また、検出部130は、加速度センサ、ジャイロセンサ以外のデバイスを備えてもよい。例えば、検出部130は、周囲の音を検出するマイクロフォン、周囲の温度を測定する温度センサ、周囲の気圧を測定する気圧センサ、現在位置(例えば緯度、経度、高度の3次元のデータ)を取得するGPS(Global Positioning System)デバイス等を備えてもよい。
【0017】
したがって、検出部130が備えるデバイスには、加速度センサ、ジャイロセンサ、マイクロフォンのように、電子機器100の振動の影響を受ける(振動すると検出値が変化して誤差が生じる)デバイスと、温度センサ、気圧センサ、GPSデバイスのように、電子機器100の振動の影響を受けない(振動しても検出値は変化しない)デバイスとが存在する。
【0018】
検出部130を、電子機器100の振動の影響を受けるものと受けないものとに区別する必要がある場合には、電子機器100の振動の影響を受ける方を動的検出部と言い、振動の影響を受けない方を静的検出部と言う。つまり、動的検出部は加速度センサ、ジャイロセンサ、マイクロフォン等、振動の影響を受けるデバイスを備え、静的検出部は温度センサ、気圧センサ、GPSデバイス等、振動の影響を受けないデバイスを備える。
【0019】
振動部140は、いわゆるバイブレータであり、電子機器100を振動させるデバイスである。振動部140は、例えば回転軸からずれた位置に重心を備える物体を回転させることによって、電子機器100の本体を振動させる。
【0020】
表示部150は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等のディスプレイを備え、電子機器100の機能を提供する表示画面や操作画面等を表示する。
【0021】
操作部160は、押しボタンスイッチやタッチパネル等のユーザインタフェースであり、ユーザからの操作入力を受け付ける。操作部160がタッチパネルを備える場合は、表示部150のディスプレイと一体化したタッチパネルであってもよい。
【0022】
通常、電子機器100は、ユーザの手首に装着され、制御部110は、検出部130で検出した各検出値に基づいて、ユーザの行動を推定する。ユーザの行動を推定する処理(行動推定処理)のアルゴリズムは任意のアルゴリズムを利用できるが、本実施の形態1では、複数のタイミングにおける検出部130からの各検出値を入力すると行動推定結果が出力されるように機械学習された機械学習モデルを用いる。
【0023】
例えば、あるタイミングにおいて、検出部130から10個の検出値(例えば加速度センサからの3次元の加速度の値、ジャイロセンサからの3次元の角速度の値、GPSデバイスからの3次元の位置の値、気圧センサからの気圧の値)が得られるとする。すると、この機械学習モデルは、例えば、直近の5回のタイミングにおける検出値(全部で50個のデータ)を入力すると、行動推定結果(例えば、止まっている(静止)、歩いている(歩行)、走っている(走行)、自転車等の乗り物に乗っている(自転車)等)が出力されるような機械学習モデルである。もっとも、各タイミングにおいて取得する検出値の数、機械学習モデルに入力するデータ数、行動推定結果の種類数等は任意の数を設定可能である。
【0024】
また、電子機器100は、時計のアラーム機能を備えており、ユーザが指定した時刻になると、制御部110が振動部140を振動させる振動処理を実行することで電子機器100の本体を振動させ、ユーザに指定時刻になったことを知らせる。さらに、電子機器100は、電話の着信や、メール、SNS(Social Networking Service)等のメッセージの着信を知らせる通知機能を備えており、制御部110は、これらを着信すると振動部140を振動させる振動処理を実行することで電子機器100の本体を振動させ、ユーザに着信を知らせる。
【0025】
ユーザが電子機器100を装着し、行動推定機能を起動すると、制御部110は、検出部130が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行する。ここで対象期間とは、ユーザの行動推定を行う際の対象となる期間である。制御部110は、対象期間(例えば5秒間)毎に行動推定処理を実行することで、ユーザの行動を連続的に推定することができる。そして、表示部150には、例えば
図2に示すように、制御部110がユーザの行動を推定した結果が表示周期の期間(例えば5秒)毎に表示されていく。
図2の例は、ユーザが最初約15秒間静止していた後に歩き出し、歩き出してから約5秒後に走り出した場合の行動推定結果を表している。
【0026】
この例では、
図2示すように、制御部110は、ユーザの行動を正しく推定している。しかし、振動部140が振動すると、検出部130は、振動部140による振動の影響を受ける。すると、ユーザが静止していても、検出部130は振動部140の振動による加速度等を検出してしまうため、検出部130からの検出値をそのまま用いて行動推定を行うと、推定結果を間違える(例えばユーザは静止しているのに、歩行していると推定してしまう)可能性がある。
【0027】
例えば、
図2に示すようにユーザが行動したとしても、アラームや着信により振動部140(バイブ)が0:07から0:08の間に振動した場合には、
図3に示すように、制御部110は、その表示周期の期間(0:05~0:10)の行動を「歩行」と推定してしまう場合がある。
【0028】
そこで、本実施の形態1では、
図4に示すように、制御部110は、振動部140が振動している期間(振動期間)は検出値による行動推定処理を実行しないようにし、その振動期間における行動推定結果は直前の行動推定結果を用いるようにする。こうすれば、振動期間の行動推定結果は、直前の推定結果と同じ(
図4の例では「静止」)になる。したがって、
図5に示すように、振動部140(バイブ)が動作しても、制御部110は、
図2と同様の正しい推定結果を表示することができる。なお、制御部110は、振動期間における行動推定結果については、
図5に示すように、振動期間以外の期間(振動部140が振動していない期間)とは異なる態様(網掛け、異なる色等)で出力してもよい。
【0029】
なお、
図4は、6つの連続するタイミングで取得された検出値を行動推定のアルゴリズムに入力して行動推定を行っているように見える図になっているが、行動推定アルゴリズムに入力する検出値の数は任意である。通常は、入力される検出値の数は、機械学習モデルを学習させた時の入力数に合わせる。
【0030】
振動部140が振動しても、制御部110が正しい行動推定結果を表示できるようにするための処理(実施の形態1に係る振動考慮推定処理)について、
図6を参照して説明する。この振動考慮推定処理は、ユーザが電子機器100の行動推定機能を起動すると定期的に(例えば0.1秒に1回)起動される。そして、振動考慮推定処理によって行動推定した結果は記憶部120のメモリの特定のアドレスに記録される。行動推定結果を参照したいアプリケーションプログラムは、この特定のアドレスを参照することにより、行動推定結果を取得することができる。ただし、電子機器100の起動時に、この振動考慮推定処理で使用されるカウンタ変数は0に、フラグ変数はFalseに初期化され、行動推定アルゴリズムに入力される直近の検出値を格納するバッファもクリアされるものとする。また、振動部140が振動していない期間(非振動期間)における行動推定結果と振動期間における行動推定結果とを区別できるようにするための変数(ここでは判別変数とする。値は「非振動期間」又は「振動期間」)を用意してもよい。この場合、電子機器100の起動時に判別変数は「非振動期間」に初期化される。
【0031】
まず、制御部110は、検出部130からの検出値を取得し(ステップS101)、カウンタ変数に1を加算する(ステップS102)。
【0032】
そして、制御部110は、フラグ変数がTrueか否かを判定する(ステップS103)。フラグ変数がTrueなら(ステップS103;Yes)、ステップS107に進む。
【0033】
フラグ変数がFalseなら(ステップS103;No)、制御部110は、振動部140が振動中か否かを判定する(ステップS104)。なお、振動部140を振動させる制御は制御部110が行っているため、制御部110はこの判定を容易に行うことができる。
【0034】
振動部140が振動中なら(ステップS104;Yes)、制御部110はフラグ変数にTrueをセットし(ステップS106)、ステップS107に進む。振動部140が振動中でないなら(ステップS104;No)、制御部110は、ステップS101で取得した検出値をバッファに保存し(ステップS105)、ステップS107に進む。
【0035】
ステップS107では、制御部110は、カウンタ変数が規定回数(例えば10回)に達したか否かを判定する。この規定回数は、基本的には行動推定アルゴリズムが必要とする検出値の入力数であり、制御部110が行動推定を行う周期はこの規定回数によって決まる。
【0036】
カウンタ変数が規定回数に達していないなら(ステップS107;No)、制御部110は振動考慮推定処理を終了する。
【0037】
カウンタ変数が規定回数に達しているなら(ステップS107;Yes)、制御部110は、フラグ変数がTrueか否かを判定する(ステップS108)。フラグ変数がTrueなら(ステップS108;Yes)、制御部110は、過去にステップS110でメモリに保存された行動推定結果を今回の行動推定結果として採用し(ステップS111)、ステップS112に進む。なお、判別変数が用意されている場合には、制御部110は、ステップS111で判別変数に「振動期間」を代入する。
【0038】
フラグ変数がFalseなら(ステップS108;No)、制御部110は、それまでに規定回数分バッファに格納された検出値を用いて行動推定処理を実行する(ステップS109)。そして、制御部110は行動推定処理の実行結果をメモリに保存し(ステップS110)、ステップS112に進む。なお、判別変数が用意されている場合には、制御部110は、ステップS110で判別変数に「非振動期間」を代入する。
【0039】
ステップS112では、制御部110は、カウンタ変数及びフラグ変数を初期化(カウンタ変数を0に、フラグ変数をFalseに)し、バッファをクリアして、振動考慮推定処理を終了する。
【0040】
振動考慮推定処理を終了した後は、制御部110は、振動考慮推定処理の次の起動タイミング(例えば0.1秒後)に再度振動考慮推定処理を開始することになる。なお、
図6及び上述の説明では、制御部110は、検出部130から検出値を取得する処理をステップS101で行っているが、検出値の取得は必ずしもステップS101で行わなければいけないわけではない。例えば、制御部110は、ステップS101の処理を省略し、ステップS104での判定がNoの場合に検出値の取得を行って、それをステップS105でバッファに保存してもよい。このような処理にすることにより、制御部110は、振動部140を振動させている間は、検出部130から検出値を取得しないで済む。
【0041】
以上の振動考慮推定処理により、振動部140が振動したときは、制御部110は、その期間における検出値での行動推定処理は実行せず、直近の行動推定処理の実行結果を今回の行動推定結果として採用する。つまり、制御部110は、行動推定の対象期間が振動期間を含んでいる場合には、振動期間に検出された検出値以外の検出値に基づいて推定された行動推定結果を出力するので、振動部140の振動によって行動推定の精度が低下してしまうことを防ぐことができる。
【0042】
また、実施の形態1では、後述する実施の形態2と比較して、一定の周期で行動推定結果を出力できるので、電子機器100の他の処理(例えば、周期が乱れると問題が生じる処理等)に悪影響を与えないというメリットもある。
【0043】
(実施の形態2)
上述の実施の形態1では、振動部140が振動したときは、制御部110は、その期間における検出値での行動推定処理は実行せず、直近の行動推定処理の実行結果をその期間における行動推定結果として採用することで、規定の周期(例えば5秒周期)で行動推定結果を出力することができた。しかし、期間内で振動部140の振動の影響を受けた検出値が1つだけだったとしても、その期間での行動推定処理を実行しないことになるので、振動の影響を受けていない検出値が無駄になってしまう場合があった。そこで、振動の影響を受けていない検出値を無駄にせずに行動推定に用いる実施の形態2について説明する。
【0044】
実施の形態2に係る電子機器100の機能構成は
図1に示すように、実施の形態1に係る電子機器100と同様である。ただし、実施の形態2では、
図7に示すように、制御部110は、振動部140が振動している間の検出値は無視する(又は取得しない)ようにし、無視した分だけ追加で検出値を取得してから行動推定処理を実行するようにする。こうすれば、振動部140が振動していないときの検出値のみを用いて行動推定処理を実行することができる。ただし、振動部140が振動している時間に取得されるはずだった検出値を振動部140が振動しなくなってから取得しなければならなくなる関係上、
図7に示すように行動推定処理の実行結果が出力される周期は乱れる(少し後ろにずれる)ことになる。
【0045】
実施の形態2に係る振動考慮推定処理について、
図8を参照して説明する。この振動考慮推定処理も実施の形態1に係る振動考慮推定処理と同様に、ユーザが行動推定機能を起動すると定期的に(例えば0.1秒に1回)起動される。また、実施の形態1と同様に、電子機器100の起動時に、カウンタ変数は0に、フラグ変数はFalseに初期化され、行動推定アルゴリズムに入力される直近の検出値を格納するバッファもクリアされるものとする。また、判別変数を使用する場合には、判別変数も「非振動期間」に初期化されるものとする。
【0046】
まず、制御部110は、検出部130からの検出値を取得する(ステップS201)。そして、制御部110は、フラグ変数がTrueか否かを判定する(ステップS202)。
【0047】
フラグ変数がFalseなら(ステップS202;No)、制御部110は、振動部140が振動中か否かを判定する(ステップS203)。振動部140が振動中なら(ステップS203;Yes)、制御部110はフラグ変数にTrueをセットし(ステップ204)、ステップS209に進む。
【0048】
振動部140が振動中でないなら(ステップS203;No)、制御部110は、ステップS201で取得した検出値をバッファに保存し(ステップS205)、カウンタに1を加算して(ステップS206)、ステップS209に進む。
【0049】
一方ステップS202でフラグ変数がTrueなら(ステップS202;Yes)、制御部110は、振動部140が停止している(振動中でない)か否かを判定する(ステップS207)。振動部140が振動中なら(ステップS207;No)、ステップS209に進む。振動部140が停止しているなら(ステップS207;Yes)、制御部110は、フラグ変数をFalseに初期化し(ステップS208)、ステップS205に進む。
【0050】
ステップS209~ステップS214の処理は、実施の形態1の振動考慮推定処理(
図6)のステップS107~ステップS112の処理と同様なので、説明を省略する。なお、実施の形態2においても、実施の形態1と同様、制御部110が検出部130から検出値を取得する処理について、ステップS201の処理を省略し、ステップS205の直前で検出部130から検出値の取得を行って、それをステップS205でバッファに保存してもよい。
【0051】
以上の振動考慮推定処理により、制御部110は、振動部140が振動している間の検出値は用いずに、振動部140が振動していないときの検出値を用いて行動推定処理を実行する。つまり、制御部110は、行動推定の対象期間が振動期間を含んでいる場合には、振動期間に検出された検出値以外の検出値に基づいて推定された行動推定結果を出力するので、振動部140の振動によって行動推定の精度が低下してしまうことを防ぐことができる。
【0052】
なお、実施の形態2では、実施の形態1と異なり、行動推定結果を出力する周期が乱れる可能性があるが、振動部140の振動が停止したらその後可能な限り速やかに行動推定処理の実行結果を出力できるというメリットがある。
【0053】
(実施の形態3)
電子機器100は、何の通知かを振動の仕方によってユーザがわかるようにするために、振動部140の振動のさせ方にバリエーションを持たせることがある。例えば、以下のような振動のバリエーションが考えられる。
【0054】
-アラーム時の振動
アラーム設定時刻になったら、比較的長時間1回振動させる動作(例えば1秒振動)を3秒毎に繰り返す。(このように、振動から次の振動までの休止時間が比較的長い(この例では2秒)動作を以下「長周期動作」と言う。)
【0055】
-メール着信時の振動
メールを受信したら、1回だけ長時間振動(例えば2秒振動)する。(以下、「単発動作」と言う。)
【0056】
-電話着信時の振動
電話を着信したら、3回連続で短時間の所定時間振動させる動作(例えば0.2秒振動、0.2秒休止、0.2秒振動、0.2秒休止、0.2秒振動)を2秒毎に繰り返す。(このように、振動から振動までの休止時間が短い(この例では0.2秒)動作を以下「短周期動作」と言う。)
【0057】
なお、上記の各動作のうち、長周期動作とは、休止時間が長く(上記の例では2秒)、この休止時間内でも上述の各実施の形態で1回以上行動推定処理を実行できる周期動作を指す。そして、短周期動作とは、休止時間が短く(上記の例では0.2秒)、この休止時間内では上述の各実施の形態では1回も行動推定処理を実行できない周期動作を指す。つまり、行動推定処理を実行するために最低限必要な時間(行動推定アルゴリズムに必要な入力数分の検出値を取得するのに必要な時間)を短周期閾値とすると、休止時間が短周期閾値未満の周期動作が短周期動作であり、休止時間が短周期閾値以上の周期動作が長周期動作である。
【0058】
これらの動作のうち、長周期動作における休止時間は長いため、上述の各実施の形態においても、この休止時間において制御部110は、行動推定処理を実行することができる。また、単発動作では、単発の振動が終了した後は、上述の各実施の形態において制御部110は、問題なく行動推定処理を実行することができる。
【0059】
短周期動作においては、休止時間が短いため、1回の休止時間中に取得できる検出値の数が限られてしまう。しかし、短周期動作中においては、短い休止時間が周期的に複数生じるので、制御部110は、この短い休止時間(上記の例では0.2秒の休止時間)において取得可能な検出値を集めることで、短周期動作中の検出値を有効利用して行動推定処理を実行することが可能になる。このような実施の形態3について説明する。
【0060】
実施の形態3に係る電子機器100の機能構成は
図1に示すように、実施の形態1に係る電子機器100と同様である。ただし、実施の形態3では、
図9に示すように、制御部110が振動部140に短周期動作をさせる際には、検出部130からの検出値の取得頻度を増やす。取得頻度をどの程度増やすかは任意であるが、例えば短周期動作における振動部140の振動時間と休止時間のデューティ比に応じて増やす(例えば、振動時間がa、休止時間がbの場合、(a+b)/bにする)と、振動部140を振動させていないときと同様の周期で行動推定処理を実行することが可能になる。
図9に示す例では、振動時間と休止時間の比が1:1のため、制御部110は、検出値の取得頻度を2倍にすることで、振動部140が振動していないときと同じ周期で行動推定処理を実行できている。
【0061】
実施の形態3に係る振動考慮推定処理は、実施の形態2に係る振動考慮推定処理(
図8)と同様である。ただし、実施の形態2では、振動考慮推定処理が定期的に起動する周期(起動周期)は一定(例えば0.1秒)だったが、実施の形態3では、制御部110は、振動部140を短周期動作させている間は、振動考慮推定処理の起動周期を短くすることで検出値の取得頻度を増大させる(頻度をn倍にさせる場合には、起動周期を1/nにする)。例えば、
図9に示す例では、検出値の取得頻度を2倍にするために、起動周期を1/2にしている。
【0062】
このように起動周期を制御しつつ振動考慮推定処理を実行することにより、制御部110は、規定周期の間に振動部140が振動していないときの検出値を規定回数分保存することができるので、振動部140の振動によって行動推定の精度が低下してしまうことを防ぐとともに、同じ周期で行動推定の結果を出力することができる。そして、実施の形態3においても、制御部110は、行動推定の対象期間が振動期間を含んでいる場合には、振動期間に検出された検出値以外の検出値(振動部140が振動していないときの検出値)に基づいて推定された行動推定結果を出力することになる。
【0063】
(実施の形態4)
実施の形態1は、振動部140が振動したときは、制御部110は、その期間における検出値での行動推定は行わず、直近の行動推定結果を採用することで、行動推定の精度が低下することを防いだ。しかし、行動推定をリアルタイムに行わなくてもよい場合(又は若干遅れてもよい場合)においては、直近の行動推定結果を採用する代わりに直後の行動推定結果を採用してもよい。このような実施の形態4について説明する。
【0064】
実施の形態4に係る電子機器100の機能構成は
図1に示すように、実施の形態1に係る電子機器100と同様である。ただし、実施の形態4では、
図10に示すように、制御部110は、振動部140が振動している間は検出値による行動推定処理を実行しないようにし、その期間における行動推定結果は直後の行動推定結果を用いるようにする。このため、行動推定結果が得られるまでタイムラグが生じる(振動部140の振動が終了後に行動推定処理の実行結果が得られるまでの時間の分だけ遅れる)。しかし、振動部140の振動により、すぐに行動を変更する性質のユーザが電子機器100を装着している場合には、このような処理にした方が行動推定の精度の低下をより防ぐことができる。
【0065】
実施の形態4に係る振動考慮推定処理も実施の形態1に係る振動考慮推定処理と同様に、ユーザが行動推定機能を起動すると定期的(例えば0.1秒に1回)に起動される。また、この振動考慮推定処理では、各期間における行動推定結果は、それぞれの期間に対応するメモリに格納される。例えば、0:00~0:05の期間における行動推定結果はアドレス0に、0:05~0:10の期間における行動推定結果はアドレス1に、というように、期間毎にメモリの別のアドレスに格納されていく。
【0066】
そして、実施の形態1と同様に、電子機器100の起動時に、カウンタ変数は0に、フラグ変数はFalseに初期化され、行動推定アルゴリズムに入力される直近の検出値を格納するバッファもクリアされる。また、実施の形態4に特有のバッファとして、リアルタイムで行動推定できなかった期間(振動部140が振動していた期間)における行動推定結果を格納するメモリのアドレスを保存する表示待機バッファが用意され、この表示待機バッファも電子機器100の起動時にクリアされる。
【0067】
実施の形態4に係る振動考慮推定処理について、
図11を参照して説明する。この処理のうち、ステップS301~ステップS310及びステップS313の処理は、実施の形態1の振動考慮推定処理(
図6)のステップS101~ステップS110及びステップS112の処理と同様なので、説明を省略する。
【0068】
ステップS311では、制御部110は、その期間における行動推定結果を保存するメモリのアドレスを表示待機バッファに保存する。そして、ステップS312では、制御部110は、表示待機バッファに保存されているアドレスにも行動推定結果を保存し、表示待機バッファをクリアする。なお、振動が長時間続いた場合には、表示待機バッファに複数のアドレスが保存される場合があるが、その場合には、制御部110はステップS312で、その複数のアドレス全てに行動推定結果を保存する。なお、振動部140が振動していない期間(非振動期間)における行動推定結果と振動期間における行動推定結果とを区別する場合には、制御部110は、ステップS312で、それらが振動期間における行動推定結果であることを示す情報も、表示待機バッファに保存されていた各アドレスに保存する。
【0069】
実施の形態4に係る振動考慮推定処理では、このように、行動推定を行う期間において、振動部140が振動していた場合には、制御部110は、その時点では行動推定結果をメモリに保存せず、その後、振動が停止してからの行動推定結果をメモリの各期間に対応するアドレスに保存する。つまり、制御部110は、行動推定の対象期間が振動期間を含んでいる場合には、振動期間に検出された検出値以外の検出値(振動部140が振動していないときの検出値)に基づいて推定された行動推定結果を出力するので、振動部140の振動によって行動推定の精度が低下してしまうことを防ぐことができる。
【0070】
(変形例1)
上述の各実施の形態を組み合わせてもよい。例えば、実施の形態1と実施の形態4とを組み合わせ、振動部140が振動している期間については、直前の行動推定結果が直後の行動推定結果と一致したときのみ、その行動推定結果を出力し、一致しない場合には行動推定結果として両者を併記(例えば「静止又は歩行」と表示)したり、推定できなかったことを表示(例えば「不明」と表示)したりしてもよい。
【0071】
また、直前の行動推定結果と直後の行動推定結果とが異なる場合には、さらにその前や後ろの行動推定結果も取得し、取得した全ての行動推定結果で多数決を取って最終的な行動推定結果を決定してもよい。
【0072】
このように複数の実施の形態を組み合わせることにより、振動部140の振動による行動推定の精度の低下をより防ぐことができる。
【0073】
(変形例2)
上述の実施の形態では、制御部110は、検出部130の検出値を入力すると行動推定結果が出力されるように機械学習された機械学習モデルを用いているが、上述したように検出部130は、振動部140の振動の影響を受ける動的検出部と、振動の影響を受けない静的検出部とに分けることができる。そして、静的検出部による検出値のみを用いて行動推定を行うことができるなら、振動部140が振動していても問題なく行動推定ができることになる。
【0074】
そこで、行動推定に用いる機械学習モデルとしては、検出部130が備える全てのデバイスからの検出値を入力して行動推定するように学習された全データモデルと、静的検出部が備えるデバイスからの検出値のみを入力して行動推定するように学習された限定データモデルを用意し、制御部110は、通常は全データモデルを用いて行動推定を行うが、振動部140を振動させている間は限定データモデルで行動推定を行うようにしてもよい。
【0075】
限定データモデルで行動推定を行うことにより、振動部140が振動している時の検出値も利用して行動推定を行うことができるため、振動部140の振動による行動推定の精度の低下をより防ぐことができる。
【0076】
(変形例3)
行動推定に用いる機械学習モデルとして、振動部140を振動させた状態で検出部130から検出される検出値を入力して行動推定するように学習された振動データモデルを用意し、制御部110は、通常は全データモデルを用いて行動推定を行うが、振動部140を振動させている間は振動データモデルで行動推定を行うようにしてもよい。
【0077】
振動データモデルで行動推定を行うことにより、振動部140が振動している時もある程度の精度で行動推定を行うことができるため、振動部140の振動による行動推定の精度の低下をより防ぐことができる。
【0078】
(変形例4)
また、振動部140が振動している時の検出部130の各検出値を補正用データとして予め取得しておき、制御部110は、振動部140を振動させている間は検出部130からの検出値を補正用データで補正してから機械学習モデルに入力して行動推定を行うようにしてもよい。
【0079】
補正用データで検出値を補正することにより、振動部140が振動している時もある程度の精度で行動推定を行うことができるため、振動部140の振動による行動推定の精度の低下をより防ぐことができる。
【0080】
(変形例5)
また、変形例1と、変形例2~4とを組合せてもよい。すなわち、制御部110は、振動部140を振動させている間は、上述の各実施の形態による行動推定結果と、限定データモデル若しくは振動データモデルでの行動推定結果又は補正用データで補正してからの行動推定結果と、を組み合わせて、最終的な行動推定結果を出力するようにしてもよい。これにより、振動部140の振動による行動推定の精度の低下をより防ぐことができる。
【0081】
(その他の変形例)
なお、電子機器100は、検出部130及び振動部140を備えたタブレットやPC等のコンピュータによっても実現することができる。具体的には、上記実施の形態では、制御部110が実行する振動考慮推定処理等のプログラムが、記憶部120に予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto-Optical disc)、メモリカード、USBメモリ等の非一時的なコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各処理を実行することができるコンピュータを構成してもよい。
【0082】
さらに、プログラムを搬送波に重畳し、インターネットなどの通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、OS(Operating System)の制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の各処理を実行できるように構成してもよい。
【0083】
また、制御部110は、シングルプロセッサ、マルチプロセッサ、マルチコアプロセッサ等の任意のプロセッサ単体で構成されるものの他、これら任意のプロセッサと、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられて構成されてもよい。
【0084】
以上、本発明の好ましい実施の形態について説明したが、本発明は係る特定の実施の形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0085】
(付記1)
検出部と、
振動部と、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力する制御部と、
を備え、
前記制御部は、前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
ことを特徴とする電子機器。
【0086】
(付記2)
前記制御部は、
前記振動部を振動させる振動処理を実行する際には、前記振動処理を実行する前又は前記振動処理を終了した後の前記行動推定結果を、前記振動期間を含んだ前記対象期間における行動推定結果として出力する、
ことを特徴とする付記1に記載の電子機器。
【0087】
(付記3)
前記制御部は、
前記振動部を振動させる振動処理を実行する際には、前記振動期間に検出された検出値を用いず、前記振動部の振動が停止してからの前記検出値を用いて前記行動推定処理を実行する、
ことを特徴とする付記1に記載の電子機器。
【0088】
(付記4)
前記制御部は、
前記振動部を所定時間の休止を挟んで繰り返し振動させる短周期動作で振動させる際には、前記短周期動作を実行している間は、前記検出値を取得する頻度を増やし、
前記所定時間の休止中に取得した前記検出値も用いて前記行動推定処理を実行する、
ことを特徴とする付記1に記載の電子機器。
【0089】
(付記5)
前記制御部は、
前記短周期動作中の前記所定時間の休止時間と他の所定時間の振動時間のデューティ比に応じて前記検出値を取得する頻度を増やす、
ことを特徴とする付記4に記載の電子機器。
【0090】
(付記6)
前記制御部は、
前記振動期間における行動推定結果を、前記振動期間以外の期間における行動推定結果とは異なる態様で出力する、
付記1から5のいずれか1つに記載の電子機器。
【0091】
(付記7)
検出部と振動部と制御部とを備える電子機器の前記制御部が、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力するが、
前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
ことを特徴とする行動推定方法。
【0092】
(付記8)
検出部と振動部と制御部とを備える電子機器の前記制御部に、
前記検出部が取得した検出値に基づいて、対象期間におけるユーザの行動を推定する行動推定処理を実行して、行動推定結果を出力するが、
前記振動部が振動した振動期間を含んだ前記対象期間における行動推定結果を出力する場合には、前記振動期間に検出された検出値以外の前記検出値に基づいて推定された行動推定結果を出力する、
処理を実行させることを特徴とするプログラム。
【符号の説明】
【0093】
100…電子機器、110…制御部、120…記憶部、130…検出部、140…振動部、150…表示部、160…操作部