【実施例1】
【0011】
[システム構成]
本実施例における検知システムについて、
図1を用いて説明する。
図1は、実施例1におけるシステム構成の一例を示す図である。
図1に示す検知システム1は、腕動作測定装置10と、心拍測定装置20と、検知装置100と、端末装置200とを有する。検知装置100の構成については、後に詳しく説明する。
【0012】
本実施例において、検知装置100と端末装置200、並びに腕動作測定装置10及び心拍測定装置20と端末装置200とは、無線又は有線のネットワークを通じて通信可能に接続される。かかるネットワークの一態様としては、有線または無線を問わず、携帯電話などの移動体通信、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。なお、
図1には、腕動作測定装置10及び心拍測定装置20並びに端末装置200がそれぞれ1つである場合を図示したが、検知システム1には、複数の腕動作測定装置10及び心拍測定装置20並びに端末装置200が収容されることとしてもかまわない。
【0013】
図1に示す腕動作測定装置10は、例えばリストバンド型の測定装置であり、対象者の利き腕等に装着される。腕動作測定装置10は、例えば相直交する3軸の加速度を検出するモーションセンサ11を用いて、所定のサンプリング周期で対象者の腕の動きを測定する。腕動作測定装置10は、測定した腕の動きに関するデータを、通信I/F(Interface)部13により端末装置200に送信する。なお、腕動作測定装置10は、第一のセンサの一例であり、腕の動きに関するデータは、第一のセンシングデータの一例である。
【0014】
これによって、腕動作測定装置10は、サンプリング点ごとにモーションセンサ11によりセンシングされる上下左右前後の加速度の時系列データを加速度データとして取得する。かかる加速度データには、一例として、時間及び加速度などの項目が対応付けられたデータを採用できる。ここで言う「時間」は、上記の心拍データと同様、腕動作測定装置10上でローカルに管理されるシステム時間、例えば任意の開始時点からの経過時間であってもよいし、年月日時分秒等のカレンダ上の暦で表現される時間であってもかまわない。また、「加速度」には、上下方向、左右方向および前後方向の3軸の加速度を含めることができる。例えば、3軸の加速度のうち一部の方向の加速度に絞って検知装置100に使用させる場合、検知装置100で使用されない方向の加速度は加速度データから除去することもできる。
【0015】
図1に示す心拍測定装置20は、心拍取得部21として、ユーザの生体部位、例えば胸、腕、手首などに装着する装着型の心拍センサを採用することができる。例えば光電脈波センサによる脈拍を採用することもできる。心拍測定装置20は、心拍取得部21が測定した心拍に関するデータを、通信I/F部23により端末装置200に送信する。なお、心拍測定装置20は、第二のセンサの一例であり、心拍に関するデータは、第二のセンシングデータの一例である。
【0016】
図1に示す端末装置200は、例えば腕動作測定装置10及び心拍測定装置20を装着する対象者により利用される。なお、端末装置200は、例えばスマートフォンやタブレット、ノート型コンピュータなどの携帯可能なコンピュータであるが、これに限られず、据置型のコンピュータなどであってもよい。
【0017】
端末装置200は、通信I/F部210を通じて、腕動作測定装置10及び心拍測定装置20から腕の動作に関するデータ及び心拍に関するデータを受信し、検知装置100に送信する。端末装置200は、検知装置100から食事判定結果に関する情報を受信し、表示操作部220に表示させる。
【0018】
図1に示す検知装置100は、端末装置200から受信した腕の動作に関するデータ及び心拍に関するデータを用いて、対象者が食事中であるか否かを検知する。検知装置100は、例えば対象者の心拍の変化が、食事をする場合に生じる心拍のパターンとどれだけ類似しているかを判定する。また、検知装置100は、例えば対象者の腕の動作が、食事をする場合に生じる腕の動作のパターンとどれだけ類似しているかを判定する。そして、検知装置100は、パターンとの類似度を示す評価値が所定の条件を満たす場合に、対象者が食事中であると判定する。なお、本実施例における評価値は、例えば0から1の間での値をとり、1に近いほど、特定された心拍又は腕動作が食事をする際のパターンに類似することを示す。
【0019】
食事をする場合における心拍は、第1ピークが現れた後に第2ピークが現れ、かつ第1ピークよりも第2ピークの方が長期間にわたる傾向にある。
図2は、食事時の心拍変化のパターンの一例を示す図である。
図2には、一例として、食事開始前後の心拍数の変化がグラフ化されている。
図2に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
【0020】
図2に示すように、食事に伴って食事開始後に発生する心拍数の変化には、時間経過に伴って心拍数が上昇(増加)して下降(減少)に転ずる2つのピークが存在する。すなわち、食事開始時刻Tsから時間経過に伴って、食事開始後に先行して出現する心拍数変化のピークである「第1ピーク」と、第1ピークに後続して出現する心拍数変化のピークである「第2ピーク」とが出現する。なお、以下では、第1ピークの部分の波形を含む所定の領域のことを「第1ピーク領域A1」と記載し、第2ピークの部分の波形を含む所定の領域のことを「第2ピーク領域A2」と記載する場合がある。
【0021】
このうち、「第1ピーク」は、食事行為に伴う心拍上昇であり、例えば、咀嚼や食道の蠕動運動に起因する心拍数上昇と推定される。また、「第2ピーク」は、例えば、食事行為により摂取された摂取物、すなわち食物等に対する消化器官(胃腸等)内の消化活動に起因する心拍数上昇と推定される。
【0022】
本実施例における検知装置100は、例えば取得した心拍に関するデータから算出される第一の特徴量と、
図2に示すような食事をする場合に生じる心拍のパターンとの類似度を、心拍に関する評価値として算出する。なお、心拍に関する評価値は、第二の評価値の一例である。
【0023】
同様に、食事をする場合に生じる腕の動きも、
図2に示すような心拍変化のパターンと同様に、一定のパターンが生じる場合がある。例えば、取得した腕の動作に関するデータから特定される、腕を上げて降ろす動作が所定時間以内に発生している回数を、腕の動作に関する特徴量として用いてもよい。本実施例における検知装置100は、例えば取得した腕の動作に関するデータから算出される第二の特徴量と、食事をする場合に生じる腕の動作のパターンとの類似度を、腕の動作に関する評価値として算出する。なお、腕の動作に関する評価値は、第一の評価値の一例である。
【0024】
そして、本実施例における検知装置100は、腕の動作に関する評価値と、心拍の変化に関する評価値とが所定の条件を満たす場合に、対象者が食事中であると判定する。なお、以下において、対象者が食事中であると判定することを「食事と判定する」と表記する場合がある。また、以下において、対象者が食事中ではないことを単に「非食事」と表記する場合がある。
【0025】
特定の時点における対象者の腕の動作に関する評価値及び心拍の変化に関する評価値と、当該時点において対象者が食事中か否かとの対応関係をプロットすると、例えば
図3に示すようなグラフとなる。
図3は、心拍及び腕動作と行動との対応関係の一例を示す図である。
図3に示す縦軸2002は、心拍の変化に関する評価値を指し、横軸2001は、腕の動作に関する評価値を指す。また、マーカ2100は、食事時のデータを示し、マーカ2200は、食事以外の行動のデータを示す。
【0026】
ところで、食事を検知する際に、検知漏れを減らそうとすると、食事以外の行動時のデータであっても、食事中であると判定される誤検知が増加する。一方、誤検知を抑制しようとすると、食事時のデータであっても、食事であると検知されないという検知漏れが増えるおそれがある。
【0027】
図4Aは、食事判定結果の一例を示す図である。
図4Aに示す例においては、縦軸に示す腕の動作の評価値と、横軸に示す心拍の評価値との両方が所定の閾値2901以上である場合に限り、食事中であると判定される。すなわち、領域2902に含まれるデータは食事時のデータであると判定され、それ以外のデータは食事以外の行動時のデータであると判定される。
【0028】
図4Aに示す例においては、食事以外の行動が、食事であると誤検知される可能性は小さい。一方、データ2911及び2912のように検知漏れの可能性が高くなる。
【0029】
次に、
図4Bは、食事判定結果の別の一例を示す図である。
図4Bに示す例においては、縦軸に示す腕の動作の評価値と、横軸に示す心拍の評価値との少なくともいずれかが所定の閾値2921以上である場合、食事中であると判定される。すなわち、領域2922に含まれるデータは食事時のデータであると判定され、それ以外のデータは食事以外の行動時のデータであると判定される。
【0030】
図4Bに示す例においては、食事時のデータが、食事であると検知されない可能性は小さくなる。一方、データ2933及び2934のように、食事以外の行動が、食事であると誤検知される可能性は大きくなる。
【0031】
一方、本実施例において、検知装置100は、例えば、心拍評価値と腕動作評価値とのうちいずれか一方だけが高い時点のデータ、及び心拍評価値と腕動作評価値とが類似する値となる時点のデータを、食事時のデータであると判定する。例えば、検知装置100は、心拍評価値と腕動作評価値との差異が第一の閾値以下であり、かつ心拍評価値と腕動作評価値との平均値が第二の閾値以上である場合に、対象者が食事をしたと判定する。また、検知装置100は、心拍評価値と腕動作評価値とのうち、いずれか一方が第三の閾値以上である場合に、対象者が食事をしたと判定してもよい。なお、第三の閾値は、例えば第二の閾値より大きい値とする。
【0032】
例えば、検知装置100は、ある時点における心拍評価値と腕動作評価値との平均値が0.6以上である場合に、当該時点を食事中であると判定する。また、検知装置100は、ある時点における心拍評価値と腕動作評価値との平均値が0.2以上で、かつ腕動作評価値と心拍評価値との差の絶対値が0.1未満である領域に入る場合にも、当該時点を食事であると判定する。
【0033】
本実施例における、心拍評価値及び腕動作評価値を用いた食事判定処理の結果について、
図5を用いて説明する。
図5は、実施例1における食事判定結果の一例を示す図である。
図5に示すように、本実施例における食事判定結果においては、
図4Aに示す領域2902に含まれるデータに加えて、領域2111及び2112に含まれる、心拍評価値と腕動作評価値との平均値が閾値2101以上、例えば0.6以上であるデータも食事と判定される。なお、閾値2101は、第一の閾値の一例である。
【0034】
さらに、
図5においては、領域2121に含まれる、心拍評価値と腕動作評価値との平均値が第二の閾値以上、例えば0.2以上で、かつ腕動作評価値と心拍評価値との差の絶対値が第三の閾値未満、例えば0.1未満であるデータも食事と判定される。
【0035】
以上のような構成により、本実施例においては、
図4Aに示す食事判定結果よりも検知漏れを抑制し、かつ
図4Bに示す食事判定結果よりも誤検知を抑制することができる。
【0036】
なお、本実施例において精度よく食事を検知できるのは、食事の行動が、以下のような2つの性質を有するためである。
【0037】
第1の性質として、食事を検知する際の誤検知の原因は、心拍数変化の特徴を用いた食事検知の場合と、腕の動作の特徴を用いた食事検知の場合とで異なる。例えば、対象者の心拍の変化が、精神的な緊張や外部環境の変化に応じて、食事をする場合に生じる心拍のパターンと類似する場合、心拍の変化に関する評価値が高くなる。この場合、心拍の変化に関する評価値に対する閾値を低く設定していると、食事検知の際に誤検知が生じるおそれがある。
【0038】
しかし、この場合において、腕の動作が、食事をする場合に生じる動作のパターン、例えば顔に手を近づける動きと類似する可能性は小さい。すなわち、食事以外の要因により心拍の変化に関する評価値が高くなる場合であっても、食事をする場合に生じる腕の動作が連動して発生するとは限らない。
【0039】
このため、心拍の変化に関する評価値に基づいて誤検知が生じる場合においても、腕の動作の特徴に基づいた誤検知が同時に生じる可能性は小さい。同様に、腕の動作が、対象者が顔を掻く動作など、食事をする場合に生じる動作のパターンと類似し、腕の動作の特徴に基づいた誤検知が生じる場合においても、心拍の変化の特徴に基づいた誤検知が同時に生じる可能性は小さい。
【0040】
また、第2の性質として、食事の際は、腕の動作の特徴と心拍変化の特徴には関係性がある場合が多い。例えば、食事の量が少ない場合には、腕を顔に近づける動きの回数は少なく、心拍変化も少ないことが多い。すなわち、腕の動作が、通常の食事における動作よりも小さい場合、心拍の変化も小さいことが多い。
【0041】
一方、食事以外の行動においては、以上の第1の性質及び第2の性質のうち、少なくともいずれかが満たされない場合が多い。
図6は、心拍及び腕動作と行動との対応関係の別の一例を示す図である。
図6の(a)は、第1の性質を満たさない行動9100と、行動9100以外の行動9200における、心拍の変化と腕の動作との対応関係を示す。また、
図6の(b)は、第2の性質を満たさない行動9300と、行動9300以外の行動9400における、心拍の変化と腕の動作との対応関係を示す。
【0042】
図6の(a)に示すように、心拍評価値と腕動作評価値との平均値がやや高く、かつ腕動作評価値と心拍評価値とが近い値が含まれる領域9121において、行動9100と9200とが混在する。同様に、
図6の(b)に示すように、心拍評価値と腕動作評価値との平均値がやや高く、かつ腕動作評価値と心拍評価値とが近い値が含まれる領域9121において、行動9300と9400とが混在する。このような場合、本実施例における食事判定結果においては、領域9121における誤検知が多くなる可能性が高い。
【0043】
以上のような第1の性質及び第2の性質により、
図5の領域2121に含まれるような、心拍評価値と腕動作評価値との平均値がやや高く、かつ腕動作評価値と心拍評価値とが近い値であるような場合に、精度よく食事を検知することができる。
【0044】
なお、例えば、豆を一粒ずつ食べるような場合には、腕の動作は食事らしいが、心拍は量が少ないため反応しづらい。例えば、センサをつけている手と逆の手を用いて食事をした場合は心拍の反応は通常の食事に近いが、腕の動作は食事らしい動作ではない。このような場合は、心拍評価値と腕動作評価値とのうち、いずれか一方だけが高くなるので、
図5の領域2111又は2112に含まれる。
【0045】
以上説明したように、本実施例における検知装置は、腕の動作に基づく評価値と心拍に基づく評価値との少なくともいずれかが高い場合、及び両者とも中間的でかつ類似する値である場合に対象者が食事をしたと判定するので、精度よく食事を検知できる。
【0046】
[機能ブロック]
次に、本実施例における検知装置100について、
図7を用いて説明する。
図7は、実施例1における検知装置の機能構成の一例を示す図である。
図7に示す検知装置100は、通信I/F部110と、記憶部120と、制御部130とを有する。なお、本実施例における検知装置100は、例えば端末装置200から処理要求を受け付けるサーバコンピュータ等のコンピュータであるが、これに限られない。検知装置100は、例えばパーソナルコンピュータ等のスタンドアロン型コンピュータであってもよく、またスマートフォンやタブレット、ノート型コンピュータなどの携帯可能なコンピュータであってもよい。
【0047】
通信I/F部110は、有線又は無線を問わず、端末装置200など、その他のコンピュータ等との通信を制御する。通信I/F部110は、例えばNIC(Network Interface Card)等の通信インタフェース等である。
【0048】
記憶部120は、例えば制御部130が実行するプログラムや、各種データなどを記憶する。また、記憶部120は、心拍パターン記憶部121、腕動作パターン記憶部122及び閾値記憶部123を有する。記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0049】
心拍パターン記憶部121は、例えば
図2に示すような、食事時の心拍変化のパターンを記憶する。心拍変化のパターンは、例えば通信I/F部110及び入出力部131を通じて、外部のコンピュータから取得される。
【0050】
腕動作パターン記憶部122は、食事時の腕の動作のパターンを記憶する。腕の動作のパターンは、例えば所定時間内における、腕を上げて降ろす動作の回数を記憶する。腕の動作のパターンは、心拍変化のパターンと同様に、例えば通信I/F部110及び入出力部131を通じて、外部のコンピュータから取得される。
【0051】
閾値記憶部123は、評価値が食事に該当するか否かを判定するための閾値を記憶する。閾値は、例えば図示しない検知装置100の管理者により入力されるが、これに限られず、心拍評価値算出部134及び腕動作評価値算出部135により更新されるような構成であってもよい。
【0052】
制御部130は、検知装置100の全体的な処理を司る処理部である。制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。
【0053】
制御部130は、入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部134、腕動作評価値算出部135及び判定部136を有する。なお、入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部134、腕動作評価値算出部135及び判定部136は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0054】
入出力部131は、通信I/F部110を通じて、端末装置200との間において情報の入出力を行う。入出力部131は、端末装置200等のその他のコンピュータから、食事検知処理の開始指示を受け付ける。入出力部131は、端末装置200から、腕の動作に関するデータ及び心拍に関するデータの入力を受け、心拍特徴量算出部132及び腕動作特徴量算出部133に出力する。また、入出力部131は、判定部136による食事判定結果を、端末装置200等のその他のコンピュータに出力する。なお、入出力部131は、第一取得部及び第二取得部の一例である。
【0055】
心拍特徴量算出部132は、入出力部131から出力された心拍に関するデータを用いて、心拍特徴量を算出する。心拍特徴量算出部132は、例えば、食事かどうかを判定する時刻の所定時間前に始端、所定時間後に終端を持つ、所定の時間の幅を有する「窓」を設定し、この窓内において心拍特徴量を計算する。なお、以下において、食事かどうかを判定する時刻を「判定時刻」と表記する場合がある。
【0056】
心拍特徴量算出部132は、窓の幅を満たす期間分の心拍に関するデータを取得するまで、入出力部131から心拍に関するデータの取得を繰り返す。そして、心拍特徴量算出部132は、判定時刻を逐次後ろに動かしながら、取得した心拍に関するデータを用いて、各判定時刻に対応する窓内の心拍特徴量を算出する。心拍特徴量算出部132は、算出した心拍特徴量を、心拍評価値算出部134に出力する。心拍特徴量は、例えば、判定時刻から所定時間の間の10分ごとの心拍数とする。他にも、例えば、特許文献2や特許文献3に記載の振幅等の特徴量を計算する。
【0057】
腕動作特徴量算出部133は、入出力部131から出力された腕の動作に関するデータを用いて、腕動作特徴量を算出する。腕動作特徴量算出部133は、窓の幅を満たす期間分の腕の動作に関するデータを取得するまで、入出力部131から腕の動作に関するデータの取得を繰り返す。そして、腕動作特徴量算出部133は、判定時刻を逐次後ろに動かしながら、取得した腕の動作に関するデータを用いて、各判定時刻に対応する窓内の腕動作特徴量を算出する。腕動作特徴量算出部133は、算出した腕動作特徴量を、腕動作評価値算出部135に出力する。
【0058】
心拍評価値算出部134は、心拍特徴量算出部132から取得した心拍特徴量を用いて、心拍評価値を算出する。心拍評価値算出部134は、例えば心拍特徴量と心拍パターン記憶部121に記憶された心拍変化のパターンとの類似度を、心拍評価値として算出し、判定部136に出力する。なお、心拍評価値算出部134は、第一算出部の一例である。
【0059】
腕動作評価値算出部135は、腕動作特徴量算出部133から取得した腕動作特徴量を用いて、腕動作評価値を算出する。腕動作評価値算出部135は、例えば腕動作特徴量と腕動作パターン記憶部122に記憶された腕の動作のパターンとの類似度を、腕動作評価値として算出し、判定部136に出力する。なお、腕動作評価値算出部135は、第二算出部の一例である。
【0060】
判定部136は、心拍評価値及び腕動作評価値を用いて、判定時刻が食事に該当するか否かを判定する。例えば、判定部136は、閾値記憶部123を参照し、心拍評価値と腕動作評価値との平均値又は差分と所定の閾値とを比較する。判定部136は、食事判定結果を、例えば通信I/F部110を通じて端末装置200に出力する。なお、判定部136は、判定部の一例である。
【0061】
[処理の流れ]
次に、本実施例における処理について、
図8を用いて説明する。
図8は、実施例1における検知処理の一例を示すフローチャートである。
図8に示すように、検知装置100の入出力部131は、例えば通信I/F部110を通じて、端末装置200又はその他のコンピュータから開始指示を受け付けるまで待機する(S100:No)。
【0062】
入出力部131は、開始指示を受け付けたと判定した場合(S100:Yes)、特徴量を算出する対象とする時間を設定する(S101)。次に、入出力部131は、通信I/F部110を通じて、端末装置200から腕の動作に関するセンサデータ及び心拍の変化に関するセンサデータを取得する(S102)。次に、心拍特徴量算出部132は、特徴量算出に必要な量のセンサデータが得られたか否かを判定する(S110)。心拍特徴量算出部132は、必要な量のセンサデータが得られていないと判定した場合(S110:No)、S102に戻って処理を繰り返す。
【0063】
一方、心拍特徴量算出部132は、必要な量のセンサデータが得られたと判定した場合(S110:Yes)、センサデータを用いて心拍特徴量を算出する。同様に、腕動作特徴量算出部133も、センサデータを用いて腕動作特徴量を算出する(S111)。次に、心拍評価値算出部134は、算出された心拍特徴量を用いて、心拍の評価値を算出する。同様に、腕動作評価値算出部135は、算出された腕動作特徴量を用いて、腕動作の評価値を算出する(S112)。
【0064】
そして、判定部136は、算出された評価値が、所定の判定領域内にあるか否かを判定する(S140)。判定部136は、評価値が所定の判定領域内にあると判定した場合(S140:Yes)、判定時刻を食事であると判定し(S141)、S150へ移行する。一方、判定部136は、評価値が所定の判定領域内にはないと判定した場合(S140:No)、判定時刻を非食事であると判定し(S142)、S150へ移行する。
【0065】
そして、入出力部131は、例えば通信I/F部110を通じて、端末装置200又はその他のコンピュータから終了指示を受け付けたか否かを判定する(S150)。入出力部131は、終了指示を受け付けていないと判定した場合(S150:No)、判定時刻を進めて(S151)、S102に戻って処理を繰り返す。一方、入出力部131は、終了指示を受け付けたと判定した場合(S150:Yes)、処理を終了する。
【0066】
[効果]
以上説明したように、本実施例における検知装置は、対象者の腕の動作を検知可能な第一のセンサから第一のセンシングデータを取得し、対象者の心拍を検知可能な第二のセンサから第二のセンシングデータを取得する。検知装置は、第一のセンシングデータから抽出した第一の特徴量から、腕の動作に基づく食事を行っていることの確からしさを示す第一の評価値を算出する。検知装置は、第二のセンシングデータから抽出した第二の特徴量から、心拍の状態に基づく食事を行っていることの確からしさを示す第二の評価値を算出する。さらに、検知装置は、第一の評価値と第二の評価値に基づき、対象者が食事をしたか否かを判定する。これにより、食事中の腕の動きが小さい場合や、心拍の反応が少ない場合であっても、食事を検知できる。また、本実施例における検知装置は、対象者の頸部に集音マイクを装着する構成等と比べると、対象者によるセンサ装着の負担を軽減できる。
【0067】
また、本実施例における検知装置は、第一の評価値と第二の評価値との差異が所定の第一の閾値以下である場合に、対象者が食事をしたと判定してもよい。さらに、検知装置は、第一の評価値及び第二の評価値が所定の第二の閾値以上である場合に、対象者が食事をしたと判定してもよい。これにより、腕の動作と心拍の変化とを組み合わせて食事を検知する際における誤検知を抑制できる。
【0068】
また、本実施例における検知装置は、第一の評価値と第二の評価値とのうちいずれか一方が所定の第三の閾値以上である場合に、対象者が食事をしたと判定してもよい。これにより、何らかの原因により、腕動作評価値と心拍評価値とのいずれかが閾値に満たない場合であっても、検知漏れを抑制できる。
【実施例2】
【0069】
実施例1においては、腕の動作に関する評価値及び心拍の変化に関する評価値と、第一の閾値乃至第三の閾値とを比較することにより、対象者が食事中であるか否かを判定したが、実施の形態はこれに限られない。例えば、機械学習により生成されたモデルを用いて、対象者が食事中であるか否かを判定するような構成であってもよい。
【0070】
そこで、本実施例においては、機械学習を用いて、腕の動作と心拍の変化とに基づいて対象者の食事を検知する構成について説明する。本実施例においては、例えば腕の動作と心拍の変化を示す情報として、時系列データごとに算出した心拍評価値又は腕動作評価値をまとめた値である評価値ベクトルを用いる。
【0071】
なお、機械学習には、例えばディープラーニングやSVM(Support Vector Machine)、決定木やランダムフォレスト、ニアレストネイバーといったアルゴリズムを用いることができる。また、機械学習において用いるモデルは、例えば各判定時刻における腕動作評価値及び心拍評価値に、各判定時刻において実際に食事をしていたか否かの情報をさらに紐づけたデータから生成される。
【0072】
[機能ブロック]
本実施例における検知装置500について、
図9を用いて説明する。
図9は、実施例2における検知装置の機能構成の一例を示す図である。
図9に示す検知装置500は、通信I/F部110と、記憶部520と、制御部530とを有する。
【0073】
記憶部520は、例えば制御部530が実行するプログラムや、各種データなどを記憶する。また、記憶部520は、心拍評価値モデル524、腕動作評価値モデル525及び判定モデル526を有する。記憶部520は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0074】
心拍評価値モデル524は、心拍特徴量から心拍評価値を算出する際に用いられる学習モデルである。心拍評価値モデル524は、過去の既知の情報、例えば判定時刻における心拍特徴量と心拍評価値との対応関係を用いて生成される。心拍評価値モデル524は、例えば心拍評価値算出部534により生成され、又は教師データ取得の都度更新される。
【0075】
腕動作評価値モデル525は、腕動作特徴量から腕動作評価値を算出する際に用いられる学習モデルである。腕動作評価値モデル525は、過去の既知の情報、例えば判定時刻における腕動作特徴量と腕動作評価値との対応関係を用いて生成される。腕動作評価値モデル525は、例えば腕動作評価値算出部535により生成され、又は教師データ取得の都度更新される。
【0076】
判定モデル526は、心拍評価値及び腕動作評価値から、食事か非食事かを判定する際に用いられる学習モデルである。判定モデル526は、例えば心拍評価値と腕動作評価値との差の絶対値並びに腕動作評価値及び心拍評価値と、各判定時刻における食事か非食事かを示す情報とを教師データとして生成される。判定モデル526は、例えば判定部536により生成され、又は教師データ取得の都度更新される。
【0077】
図10は、実施例2における教師データの一例を示す図である。
図10に示すように、本実施例における教師データは、「判定時刻」における「食事」の有無と「心拍評価値」及び「腕動作評価値」とを、「判定時刻」ごとに対応付けて記憶する。なお、教師データは、心拍評価値及び腕動作評価値に加えて、又はこれらに代えて、後に説明する心拍評価値ベクトル及び腕動作評価値ベクトルを含んでもよい。また、教師は、心拍評価値ベクトルの絶対値と、腕動作評価値ベクトルの絶対値との差をさらに含んでもよい。
【0078】
制御部530は、検知装置500の全体的な処理を司る処理部である。制御部530は、例えば、CPUやMPU等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部530は、例えば、ASICやFPGA等の集積回路により実現されるようにしてもよい。
【0079】
制御部530は、入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部534、腕動作評価値算出部535及び判定部536を有する。なお、心拍評価値算出部534、腕動作評価値算出部535及び判定部536も、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0080】
心拍評価値算出部534は、心拍評価値モデル524を参照して、心拍評価値を算出する。また、心拍評価値算出部534は、算出した心拍評価値を時系列データごとにまとめて、心拍評価値ベクトルを生成する。なお、心拍評価値ベクトルは、第一の評価値ベクトルの一例である。
【0081】
腕動作評価値算出部535は、腕動作評価値モデル525を参照して、腕動作評価値を算出する。また、腕動作評価値算出部535は、算出した腕動作評価値を時系列データごとにまとめて、腕動作評価値ベクトルを生成する。なお、腕動作評価値ベクトルは、第二の評価値ベクトルの一例である。
【0082】
判定部536は、判定モデル526を参照して、心拍評価値ベクトル及び腕動作評価値ベクトルを用いて、判定時刻が食事に該当するか否かを判定する。また、判定部536は、新たな教師データを取得すると、後に説明する学習処理を行い、学習モデルを生成又は更新する。
【0083】
[処理の流れ]
次に、本実施例における処理について、
図11を用いて説明する。
図11は、実施例2における学習処理の一例を示すフローチャートである。
図11に示す学習処理は、例えば新たな教師データを取得する度に実行される。
【0084】
まず、
図11に示すように、検知装置100の入出力部531は、例えば通信I/F部110を通じて端末装置200からセンサデータを取得するまで待機する(S500:No)。
【0085】
入出力部131は、センサデータを取得したと判定した場合(S500:Yes)、取得したセンサデータを心拍特徴量算出部132及び腕動作特徴量算出部133に出力する。心拍特徴量算出部132は、取得したセンサデータを用いて、各判定時刻での心拍特徴量を算出する。同様に、腕動作特徴量算出部133は、取得したセンサデータを用いて、各判定時刻での腕動作特徴量を算出する(S501)。
【0086】
次に、判定部536は、各判定時刻での食事の有無に関する教師データを取得する(S502)。そして、判定部536は、教師データを用いて教師あり機械学習を行い(S503)、学習モデルを生成して(S504)、処理を終了する。
【0087】
[処理結果]
以上のような機械学習を用いた判定処理による食事判定結果について、
図12を用いて説明する。
図12は、実施例2における食事判定結果の一例を示す図である。
図12の符号2201に示すように、機械学習を用いた判定の結果、閾値を用いる場合と比べて、誤検知や検知漏れを抑制することができる。
【0088】
[効果]
以上説明したように、本実施例における検知装置は、心拍の時系列データごとに食事に関する第一の評価値ベクトルを算出する。検知装置は、腕の動作の時系列データごとに食事に関する第二の評価値ベクトルを算出する。検知装置は、時系列データに対応する食事又は非食事の分類、並びに第一の評価値ベクトル及び第二の評価値ベクトルを教師データとして、任意の第一の評価値ベクトル及び第二の評価値ベクトルを食事または非食事に分類する食事推定モデルを生成する。また、検知装置は、食事推定モデルを用いて、第一の評価値ベクトル及び第二の評価値ベクトルを食事または非食事に分類することにより、対象者が食事をしたか否かを判定する。これにより、閾値を用いる構成よりも、より食事を検知できる。
【実施例3】
【0089】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【0090】
なお、特定の判定時刻における食事の有無の判定結果が、当該判定時刻の前後の時刻での判定結果と異なる場合、当該特定の判定時刻における食事の有無の判定結果が誤検知又は検知漏れによるものである可能性が高い。
図13は、実施例3における判定時刻の前後の時間帯との検知結果の比較の一例を示す図である。
図13は、判定時刻5001の「×」は、当該時刻において非食事であると判定されたことを示す。同様に、判定時刻5002の「○」は、当該時刻が食事であると判定されたことを示す。
【0091】
この場合において、期間5100は、対象者が食事をとっている期間であると考えられる。しかし、期間5100に含まれる判定時刻5011においては、非食事であると判定されている。この場合において、本実施例における検知装置は、判定時刻5011は、検知結果にかかわらず、「食事である」と判定してもよい。このように、前後の判定時刻における検知結果に応じて食事判定結果を更新することにより、誤検知又は検知漏れによる判定制度の低下を抑制することができる。
【0092】
また、実施例2では、機械学習により、判定時刻において対象者が食事中であるか否かを判定する構成について説明したが、これに限られず、対象者の食事の内容又は種類等をさらに判定するような構成であってもよい。このような構成は、
図10に示すような項目に加えて、食事の分類又は内容をさらに含む教師データを用意することにより実現できる。
【0093】
図14は、実施例3における教師データの一例を示す図である。
図14に示すように、本実施例における教師データは、「判定時刻」における「食事」の有無、「心拍評価値」及び「腕動作評価値」に加えて、さらに食事の「分類」及び「内容」を対応付けて記憶する。
【0094】
図14において、「分類」は、「菓子」や「主食」など、食事をカテゴリ分けする。「内容」は、対象者が食べた食料の内容を示す。本実施例において、判定部136は、
図14に示すような教師データを用いて、学習モデルを生成する。これにより、食事の有無に加えて、食事の分類や内容についても検知できる。なお、教師データとして、食事の分類や内容に加えて、食事のカロリー量などを与えて、腕動作評価値及び心拍評価値を用いて摂取カロリー量を検知するような構成であってもよい。
【0095】
また、腕動作測定装置10及び心拍測定装置20は、上記した例に限られない。例えば、腕動作測定装置10は、モーションセンサ11として、加速度センサの代わりにジャイロセンサを用いることができる。この場合、腕動作測定装置10は、ジャイロセンサによりセンシングされた慣性データを用いて、対象者の腕の動きを取得する。
【0096】
また、心拍センサには、必ずしも装着型のものを採用せずともかまわない。例えば、ユーザの生体の一部が所定のサンプリング周波数で撮像される画像に関する輝度の時系列変化から心拍数を検出したり、RF(Radio Frequency)モーションセンサを用いて拍動に伴うドップラ周波数を検出したりすることにより、心拍数の検出をユーザの生体部位に非接触の状態で実現することとしてもかまわない。
【0097】
また、心拍特徴量は必ずしも心拍数から計算できるものでなくても、心拍の状態に関するものであれば良い。例えば、脈波の形やその変化、心電からRR間隔算出し、その揺らぎ具合を指標化した値で合っても良い。また、血圧やその変化であっても良い。
【0098】
[システム]
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0099】
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【0100】
[スタンドアロン]
上記の実施例1では、腕動作測定装置10、心拍測定装置20及び検知装置100を含むクライアントサーバシステムとして構築される場合を例示したが、これに限定されない。例えば、心拍データの取得から食事時刻の推定までの一連の処理を腕動作測定装置10、心拍測定装置20、検知装置100、あるいはその他のコンピュータにスタンドアロンで実行させることとしてもかまわない。
【0101】
[システムの応用例]
上記の実施例1では、検知システム1に検知装置100が含まれることとしたが、必ずしも検知装置100が含まれずともかまわない。すなわち、端末装置200がウェアラブルガジェット等として実装される場合、ウェアラブルガジェットにより近距離無線通信等で接続されるスマートフォンやタブレット端末で心拍データの取得以外の各種の処理、例えば食事時刻の推定を実行させることとしてもかまわない。
【0102】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部134、腕動作評価値算出部135及び判定部136を検知装置100の外部装置としてネットワーク経由で接続するようにしてもよい。
【0103】
[食事検知プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図15を用いて、上記の実施例と同様の機能を有する食事検知プログラムを実行するコンピュータの一例について説明する。
【0104】
図15は、食事検知プログラムを実行するコンピュータのハードウェア構成例を示す図である。
図15に示すように、コンピュータ1000は、操作部1100aと、スピーカ1100bと、カメラ1100cと、ディスプレイ1200と、通信部1300とを有する。さらに、このコンピュータ1000は、CPU1500と、ROM1600と、HDD1700と、RAM1800とを有する。これら1100〜1800の各部はバス1400を介して接続される。
【0105】
HDD1700には、
図15に示すように、上記の実施例1で示した入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部134、腕動作評価値算出部135及び判定部136と同様の機能を発揮する食事検知プログラム1700aが記憶される。この食事検知プログラム1700aは、
図7に示した入出力部131、心拍特徴量算出部132、腕動作特徴量算出部133、心拍評価値算出部134、腕動作評価値算出部135及び判定部136の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD1700には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD1700に格納されればよい。
【0106】
このような環境の下、CPU1500は、HDD1700から食事検知プログラム1700aを読み出した上でRAM1800へ展開する。この結果、食事検知プログラム1700aは、
図15に示すように、食事検知プロセス1800aとして機能する。この食事検知プロセス1800aは、RAM1800が有する記憶領域のうち食事検知プロセス1800aに割り当てられた領域にHDD1700から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、食事検知プロセス1800aが実行する処理の一例として、
図8に示す処理などが含まれる。なお、CPU1500では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0107】
なお、上記の食事検知プログラム1700aは、必ずしも最初からHDD1700やROM1600に記憶されておらずともかまわない。例えば、コンピュータ1000に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ1000がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ1000がこれらから各プログラムを取得して実行するようにしてもよい。