以下に添付図面を参照して本願に係る食事推定プログラム、食事推定方法及び食事推定装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るヘルスケア支援システムの構成を示す図である。図1に示すヘルスケア支援システム1は、各種のヘルスケア支援サービスを提供するものである。例えば、ヘルスケア支援サービスの一例として、センサ端末10により採取されたセンシングデータを用いてセンサ端末10のユーザの生活行動、例えば食事時刻を記録するサービス、さらには、その記録を活用する派生のサービスなどが挙げられる。
かかるヘルスケア支援サービスの一環として、ヘルスケア支援システム1は、心拍数の時系列データからユーザの食事時刻を推定する場合に、食事開始後に現れる2つの心拍数変化のピークに関する特徴量を用いる。これによって、例えば、食事以外の原因、例えば精神の緊張、環境温度の変化や運動行為などによって心拍数が上昇する場面で食事時刻が推定されるのを抑制し、もって食事時刻の誤判定を抑制する。
以下では、上記2つの心拍数変化のピークのうち食事開始後に先行して出現するピークのことを「第1ピーク」と記載すると共に、第1ピークに後続して出現するピークのことを「第2ピーク」と記載する場合がある。
図1に示すように、ヘルスケア支援システム1には、センサ端末10と、サーバ装置100とが収容される。なお、図1には、センサ端末が1つである場合を図示したが、ヘルスケア支援システム1には、複数のセンサ端末が収容されることとしてもかまわない。
これらセンサ端末10及びサーバ装置100の間は、ネットワーク5を介して相互に通信可能に接続される。かかるネットワーク5には、有線または無線を問わず、LAN(Local Area Network)やVPN(Virtual Private Network)などの構内通信網を始め、インターネット(Internet)などの任意の種類の通信網を採用できる。
センサ端末10は、センサを実装する端末装置である。
一実施形態として、センサ端末10には、ヘルスケア専用の端末装置、スマートグラスやスマートウォッチ等のウェアラブルガジェット、さらには、携帯端末装置などを採用できる。なお、携帯端末装置には、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末のみならず、タブレット端末やスレート端末などがその範疇に含まれる。
かかるセンサ端末10には、少なくとも心拍センサが実装される。この心拍センサを用いて、センサ端末10は、例えば、センサ端末10を利用するユーザの単位時間当たりの心拍数を検出する。このように心拍センサを用いてセンシングされる心拍数の時系列データは、特徴量の算出や食事開始時刻の推定に用いられる。以下では、心拍センサを用いてセンシングされる心拍数の時系列データのことを「心拍数データ」と記載する場合がある。かかる心拍センサ以外にも、センサ端末10には、加速度センサを実装することもできる。この加速度センサには、一例として、3軸の加速度センサを採用することができる。このように加速度センサを用いてセンシングされる3軸の加速度の時系列データ、すなわちセンサ端末10の上下左右前後の加速度変化は、センサ端末10を使用するユーザが歩行、昇降や走行などの運動状態を検出するのに用いられる。これによって、加速度の時系列データは、心拍数の時系列データから運動状態が継続する運動期間を除去するのに寄与する。以下では、加速度センサを用いてセンシングされる加速度の時系列データのことを「加速度データ」と記載する場合がある。なお、ここでは、一例として、心拍センサ及び加速度センサを例示したが、ジャイロセンサやGPS(Global Positioning System)受信機などの他のセンサが実装されることを妨げない。
このように心拍センサが実装される場合、ユーザの生体部位、例えば胸、腕、手首などに装着する装着型の心拍センサを採用することができる。例えば光電脈波センサによる脈拍を採用することも出来る。この場合、ヘルスケア専用に心拍センサを実装することもできれば、ウェアラブルガジェットが心拍センサを搭載する場合、その心拍センサを流用することもできる。さらに、必ずしも心拍数を検出する心拍センサがセンサ端末10に実装されずともよく、心電信号を検出する心電センサがセンサ端末10に実装されることとしてもかまわない。また、心拍センサには、必ずしも装着型のものを採用せずともかまわない。例えば、ユーザの生体の一部が所定のサンプリング周波数で撮像される画像に関する輝度の時系列変化から心拍数を検出したり、RF(Radio Frequency)モーションセンサを用いて拍動に伴うドップラ周波数を検出したりすることにより、心拍数の検出をユーザの生体部位に非接触の状態で実現することとしてもかまわない。
ここで、センサ端末10からサーバ装置100へは、上記の心拍数データから求められた特徴量と、上記の加速度データとがユーザの識別情報、例えばセンサ端末10のマシン名やシリアル番号などが対応付けられた状態で伝送される。このように特徴量をセンサ端末10に算出させるのは、ネットワークへ送出されるデータ量を低減すると共に、伝送時に個人情報である心拍数データが第三者に公開される事態を抑制するためである。なお、ここでは、センサ端末10からサーバ装置100へ特徴量が伝送される場合を例示したが、センサ端末10に心拍数データを送出させることによりサーバ装置100に特徴量を算出させることとしてもかまわない。
サーバ装置100は、上記のヘルスケア支援サービスを提供するコンピュータである。
一実施形態として、サーバ装置100は、パッケージソフトウェアやオンラインソフトウェアとして上記のヘルスケア支援サービスを実現する食事時刻の推定プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置100は、上記のヘルスケア支援サービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって上記のヘルスケア支援サービスを提供するクラウドとして実装することとしてもかまわない。
例えば、サーバ装置100は、センサ端末10から受け付けた特徴量を用いて、センサ端末10のユーザの食事時刻を推定する。その上で、サーバ装置100は、食事時刻を記録したり、それまでに記録された食事時刻から所定期間、例えば1週間などにわたる食事時間帯の一覧表を生成した上で出力したり、それまでに記録された食事時刻から食習慣またはダイエットに関する分析を行った上で各種のアドバイスを出力したりする。例えば、センサ端末10が表示デバイス、音声出力デバイス、印字デバイスなどの出力デバイスを有する場合、上記の各種の情報をセンサ端末10の出力デバイスを介して出力させることができる。また、情報の出力先は、必ずしもセンサ端末10でなくともよく、ユーザが使用する他の端末装置とすることもできるし、その関係者、例えばユーザの親族、医療または介護の担当者などが使用する端末装置とすることもできる。これによって、上記のヘルスケア支援サービスが実現される。
以下では、本実施例に係るヘルスケア支援システム1で食事時刻の推定に用いる特徴量について説明してから、本実施例に係るヘルスケア支援システム1に含まれる各装置の機能的構成について説明することとする。
[特徴量]
図2は、心拍数データの一例を示す図である。図2には、一例として、食事開始前後の心拍数の変化がグラフ化されている。図2に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
図2に示すように、食事に伴って食事開始後に発生する心拍数の変化には、時間経過に伴って心拍数が上昇(増加)して下降(減少)に転ずる2つのピークが存在する。すなわち、食事開始時刻Tsから時間経過に伴って、食事開始後に先行して出現する心拍数変化のピークである「第1ピーク」と、第1ピークに後続して出現する心拍数変化のピークである「第2ピーク」とが出現する。なお、以下では、第1ピークの部分の波形を含む所定の領域のことを「第1ピーク領域A1」と記載し、第2ピークの部分の波形を含む所定の領域のことを「第2ピーク領域A2」と記載する場合がある。
このうち、「第1ピーク」は、食事行為に伴う心拍上昇であり、例えば、食道の蠕動運動に起因する心拍数上昇と推定される。また、「第2ピーク」は、例えば、食事行為により摂取された摂取物、すなわち食物等に対する消化器官(胃腸等)内の消化活動に起因する心拍数上昇と推定される。
このように、食事後には、第1ピークが現れた後に第2ピークが現れ、かつ第1ピークよりも第2ピークの方が長期間にわたる傾向にある。このような傾向を食事とそれ以外の要因による心拍上昇を弁別するために、下記の(1)〜(5)に示す通り、第1ピークまたは第2ピークに関する特徴量を定義する。
図3及び図4は、心拍数データの一例を示す図である。これら図3及び図4には、食事開始前後の心拍数の変化がグラフ化されており、図3及び図4に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。このうち、図3には、特徴量(1)、(3)及び(5)が図示される一方で、図4には、特徴量(2)及び(4)が図示されている。なお、図3に示す「BL」は、心拍数のベースラインを指す。かかるベースラインBLは、食事を原因とする心拍数の上昇幅を求めるための基準値である。これは、ユーザが食事を行う場面の各々で心拍数が同一の値をとるとは限らないので、心拍数の絶対値の代わりに、心拍数の上昇幅を用いて特徴量を求めることにより、食事が摂取される各場面で心拍数がばらつくことによって食事時刻の推定精度が低下するのを抑制するために用いられる。例えば、ベースラインの心拍数の値として、食事開始時刻Tsの心拍数を用いることができる他、ユーザの食事開始前の30分間、1時間等の所定期間の心拍数の平均値、食事開始時刻Tsの心拍数、第1ピークと第2ピークとの間で最小となる心拍数を採用できる。
例えば、(1)面積、(2)速度、(3)振幅、(4)時間および(5)食事前などの5つの観点から、心拍数の変化の原因が食事である尤もらしさを表す特徴量を定義できる。なお、ここでは、5つの特徴量を例示したが、必ずしも全ての特徴量を食事時刻の推定に用いずともよく、5つの特徴量のうち少なくともいずれか1つの特徴量を用いることにより食事時刻を推定できる。
すなわち、図3に示すように、第1ピーク領域A1の面積、及び、第2ピーク領域A2の面積が特徴量(1)として定義される。また、図4に示すように、第1ピークへ至るまでの心拍数の上昇速度、第2ピークへ至るまでの心拍数の上昇速度、第1ピークからの心拍数の回復速度、及び、第2ピークからの心拍数の回復速度が特徴量(2)として定義される。また、図3に示すように、第1ピークを形成する波形のうち心拍数が最大の値をとる最大心拍数P1、及び、第2ピークを形成する波形のうち心拍数が最大の値をとる最大心拍数P2が特徴量(3)として定義される。また、図4に示すように、食事開始時刻Tsを始点としたとき、最大心拍数P1が計測される時刻を終点とする経過時間t1、最大心拍数P1を経た心拍数が所定値まで回復する時刻を終点とする経過時間t2、最大心拍数P2が計測される時刻を終点とする経過時間t3、及び、最大心拍数P2を経た心拍数が所定値まで回復する時刻を終点とする経過時間t4が特徴量(4)として定義される。また、図3に示すように、食事開始時刻Ts以前に計測される心拍数のうち最低の値をとる食事前心拍数と、食事開始時刻Ts以前の区間で食事前心拍数からベースラインBLまでの心拍数の上昇幅により形成される領域の面積とが特徴量(5)として定義される。なお、以下では、上記の上昇速度および上記の回復速度を総称して「応答速度」と記載する場合がある。
以下では、上記5つの特徴量、すなわち(1)面積、(2)速度、(3)振幅、(4)時間および(5)食事前についてその算出方法を説明する。
(1)面積
図5は、特徴量(1)の算出方法の一例を示す図である。図5には、食事開始前後の心拍数の変化がグラフ化されており、図5に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
上記の特徴量(1)のうち、第1ピーク領域A1の面積S1は、図5に示すように、食事期間Ta1においてベースラインBLからの心拍数の上昇幅を合計することにより求めることができる。なお、ここでは、心拍数の上昇幅を合計することにより面積を算出する場合を例示したが、心拍数の上昇幅の平均値を算出することにより面積を求めることとしてもかまわない。
例えば、食事期間Ta1には、図5に破線で示すように、食事開始時刻Tsを始点とし、心拍数が第1ピークを経てベースラインBLまで回復した時刻を終点とする区間が設定される。ここで、第1ピーク付近における心拍数の変動は、ユーザの蠕動運動に影響を受ける。例えば、蠕動運動が長引く場合、心拍数が第1ピークを過ぎた後にベースラインBLまで回復しないケースも想定され得る。このことから、食事期間Ta1の終点は、第1ピークと第2ピークとの区間における最小の心拍数をとる時刻とすることもできる。また、食事期間Ta1の終点は、食事開始時刻Tsから一定期間、例えば10分間や20分間などにわたって経過した時刻とすることもできる。なお、上記の一定期間は、一例として、蠕動運動の所要時間の統計値を基準に決定することができる。
一方、第2ピーク領域A2の面積S2は、一例として、食後期間Ta2においてベースラインBLからの心拍数の上昇幅を合計することにより求めることができる。
例えば、食後期間Ta2には、第1ピーク領域A1の食事期間Ta1の終点もしくはその終点よりも後の時刻を始点とし、心拍数が第2ピークを経てベースラインBLまで回復した時刻を終点とする区間が設定される。ここで、第2ピークにおける心拍数の変動は、消化器官内の消化活動に影響を受ける。例えば、消化活動が長引く場合、心拍数が第2ピークを過ぎた後にベースラインBLまで回復しないケースも想定され得る。このことから、食後期間Ta2の終点は、食後期間Ta2の始点から一定期間、例えば240分間にわたって経過した時刻とすることもできる。なお、上記の一定期間は、一例として、消化活動の所要時間の統計値を基準に決定することができる。
なお、ここでは、第1ピーク領域A1の面積S1及び第2ピーク領域A2の面積S2がベースラインBLからの心拍数の上昇幅から算出される場合を例示したが、これに限らず、食事前心拍数からの上昇幅から算出することとしてもかまわない。
(2)速度
図6〜図9は、特徴量(2)の算出方法の一例を示す図である。これら図6〜図9の縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。このうち、図6及び図7には、食事開始後に計測される心拍数の波形のうち第1ピーク付近の波形がクローズアップされて図示される一方で、図8及び図9には、第2ピーク付近の波形がクローズアップされて図示されている。なお、図6及び図7では、心拍数の波形のうち食事期間Ta1に対応する区間が破線で囲われる一方で、図8及び図9では、心拍数の波形のうち食後期間Ta2に対応する区間が破線で囲われている。
上記の特徴量(2)のうち、第1ピークへ至るまでの心拍数の上昇速度は、例えば、食事開始時刻Tsを始点とし、食事期間Ta1で最大心拍数P1が計測された時刻を終点とする期間で観測される心拍数の上昇変化から算出できる。具体的には、図6に示すように、食事開始時刻Tsから最大心拍数P1が計測された時刻までの期間を「近似対象期間Ts_P1」に設定し、図6に一点鎖線で示された近似対象期間Ts_P1に含まれる心拍数のデータ列に対し、一次関数等による関数近似を行う。これによって、近似対象期間Ts_P1の心拍数の推移に近似された近似式の傾きを求める。かかる傾きは、近似対象期間Ts_P1内の心拍数の上昇速度と等価であるので、これを第1ピークの上昇速度として用いることができる。
これと同様に、第1ピークからの心拍数の回復速度についても算出することができる。例えば、食事期間Ta1で最大心拍数P1が計測された時刻から、食事終了後の一定期間を経過するまでの心拍数の回復変化を速度として算出できる。かかる食事終了後の一定期間には、一例として、5分間といった分単位の期間を採用することできる。具体的には、図7に示すように、最大心拍数P1が計測された時刻から、食事終了後の一定期間を経過するまでの期間が「近似対象期間Ta1_P1」に設定される。このような設定の下、図7に一点鎖線で示された近似対象期間Ta1_P1に含まれる心拍数のデータ列に対し、一次関数等による関数近似を行う。これによって、近似対象期間Ts_P1の心拍数の推移に近似された近似式の傾きを求める。かかる傾きは、近似対象期間Ts_P1内の心拍数の回復速度と等価であるので、これを第1ピークの回復速度として用いることができる。
また、第2ピークへ至るまでの心拍数の上昇速度は、一例として、食後期間Ta2の開始時刻、すなわち食事期間Ta1の終了時刻を始点とし、食後期間Ta2内で最大心拍数P2が計測された時刻を終点とする期間で観測される心拍数の上昇変化から算出できる。具体的には、図8に示すように、食後期間Ta2の開始時刻から最大心拍数P2が計測された時刻までの期間を「近似対象期間Ta2_P2」に設定し、図8に一点鎖線で示した近似対象期間Ta2_P2に含まれる心拍数のデータ列に対し、一次関数等による関数近似を行う。これによって、近似対象期間Ta2_P2の心拍数の推移に近似された近似式の傾きを求める。かかる傾きは、近似対象期間Ta2_P2内の心拍数の上昇速度と等価であるので、これを第2ピークの上昇速度として用いることができる。
また、第2ピークからの心拍数の回復速度は、一例として、食後期間Ta2で最大心拍数P2が計測された時刻から、消化器官による消化活動が終了する時刻までの心拍数の回復変化を速度として算出できる。例えば、消化活動が終了する時刻の一例として、食後期間Ta2の終了時刻を採用することができる。具体的には、図9に示すように、食後期間Ta2で最大心拍数P2が計測された時刻から、食後期間Ta2の終了時刻までの期間が「近似対象期間TP2_a2」に設定される。このような設定の下、図9に一点鎖線で示された近似対象期間TP2_a2に含まれる心拍数のデータ列に対し、一次関数等による関数近似を行う。このように近似対象期間TP2_a2の心拍数の推移に近似された近似式の傾きを求める。かかる傾きは、近似対象期間TP2_a2内の心拍数の回復速度と等価であるので、これを第2ピークの回復速度として用いることができる。
なお、ここでは、2組の上昇速度および2組の回復速度を含む4つの応答速度を例示したが、必ずしも食事時刻の推定に全ての応答速度を用いずともかまわない。例えば、4つの応答速度のうち2組の上昇速度または2組の回復速度のいずれかを食事時刻の推定に用いることができる。
(3)振幅
図10は、特徴量(3)の算出方法の一例を示す図である。図10には、食事開始前後の心拍数の変化がグラフ化されており、図10に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
上記の特徴量(3)のうち、第1ピークの振幅は、図10に示すように、食事期間Ta1で計測される心拍数のうち心拍数が最大である最大心拍数P1を心拍数データから抽出することにより導出することができる。これと同様に、第2ピークの振幅は、食後期間Ta2で計測される心拍数のうち心拍数が最大である最大心拍数P2を心拍数データを抽出することにより導出することができる。
これら第1ピークの振幅および第2ピークの振幅は、必ずしもゼロからの絶対値でなくともよく、最大心拍数P1または最大心拍数P2からベースラインBLの心拍数を差し引くことにより、第1ピークまたは第2ピークの各々で心拍数の上昇幅の最大値を算出することとしてもかまわない。なお、第2ピークは、消化活動により影響を受けるので、例えば、食後期間Ta2における最大心拍数P2を検出する時間帯を、消化活動が最も活発となると想定される時間帯に限定するとしてもよい。例えば、消化活動が最も活発になると想定される時間帯の一例として、食事開始時刻Tsから30分後から80分後までの期間が挙げられる。
(4)時間
図11及び図12は、特徴量(4)の算出方法の一例を示す図である。図11及び図12には、食事開始前後の心拍数の変化がグラフ化されており、図11及び図12に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
このうち、図11には、食事開始後に計測される心拍数の波形のうち第1ピーク付近の波形がクローズアップされて図示されている。さらに、図11では、心拍数の波形のうち食事期間Ta1に対応する区間が矩形状の破線で囲われると共に、心拍数の波形のうち第1ピークの振幅である最大心拍数P1の値をとるグラフの部分が円形状の破線で囲われている。
上記の特徴量(4)として定義される応答時間のうち、第1ピークまでの心拍数の上昇時間は、図11に示すように、食事期間Ta1の開始時刻、すなわち食事開始時刻Tsから、食事期間Ta1で最大心拍数P1が計測される時刻までの時間として算出できる。さらに、第1ピークからの心拍数の回復時間は、例えば、食事期間Ta1で最大心拍数P1が計測された時刻から、心拍数がベースラインBLの心拍数に回復するまでの時間として算出できる。
ここで、第1ピーク周辺で計測される心拍数は、上述のように、食道の蠕動運動による影響を受けるので、心拍数が第2ピークに到達するまでの間にベースラインBLまで回復しないケースが想定される。
このため、第1ピークからの心拍数の回復時間は、上記の特徴量(2)で図7に示して説明を行った近似式を使用することにより求めることもできる。図7に示した第1ピークの回復速度は、第1ピークの到達後に発生する心拍数の回復変化から近似された近似関数の傾きとして算出される。それ故、図11に示すように、近似関数の傾きで推移する心拍数がベースラインBLの心拍数に到達するまでの経過時間を求めればよい。例えば、最大心拍数P1の計測後の回復速度を表す近似関数とベースラインBLとの交点の時間、すなわち図11で円形状に一点鎖線で囲われた点の時刻を求める。つまり、近似関数が含む時間及び心拍数の2つの変数のうち心拍数の変数にベースラインBLの心拍数を代入することにより交点が持つ時刻を求め、そこから最大心拍数P1が計測される時刻を差し引くことにより第1ピークからの心拍数の回復時間を求めることができる。また、最大心拍数P1とベースラインBLの心拍数との差分を求め、両者の差分を近似関数の傾きで除算することでも、第1ピークからの心拍数の回復時間を算出することもできる。
一方、図12では、心拍数の波形のうち食事期間Ta1及び食後期間Ta2に対応する区間が矩形状の破線で囲われると共に、心拍数の波形のうち第2ピークの振幅である最大心拍数P2の値をとるグラフの部分が円形状の破線で囲われている。
上記の特徴量(4)として定義される応答時間のうち、第2ピークまでの心拍数の上昇時間は、図12に示すように、食事期間Ta1の開始時刻、すなわち食事開始時刻Tsから、食後期間Ta2で最大心拍数P2が計測される時刻までの時間として算出できる。さらに、第2ピークからの心拍数の回復時間は、例えば、食後期間Ta2で最大心拍数P2が計測された時刻から、心拍数がベースラインBLの心拍数に回復するまでの時間として算出できる。
ここで、第2ピーク周辺で計測される心拍数は、上述のように、消化活動による影響を受けるので、心拍数が第2ピークの到達後にベースラインBLまで回復しないケースが想定される。
このため、第2ピークからの心拍数の回復時間は、上記の特徴量(2)で図9に示して説明を行った近似式を使用することにより求めることもできる。図9に示した第2ピークの回復速度は、第2ピークの到達後に発生する心拍数の回復変化から近似された近似関数の傾きとして算出される。それ故、図12に示すように、近似関数の傾きで推移する心拍数がベースラインBLの心拍数に到達するまでの経過時間を求めればよい。例えば、最大心拍数P2の計測後の回復速度を表す近似関数とベースラインBLとの交点の時間、すなわち図12で円形状に一点鎖線で囲われた点の時刻を求める。つまり、近似関数が含む時間及び心拍数の2つの変数のうち心拍数の変数にベースラインBLの心拍数を代入することにより交点が持つ時刻を求め、そこから最大心拍数P2が計測される時刻を差し引くことにより第2ピークからの心拍数の回復時間を求めることができる。また、最大心拍数P2とベースラインBLの心拍数との差分を求め、両者の差分を近似関数の傾きで除算することでも、第2ピークからの心拍数の回復時間を算出することもできる。
(5)食事前
図13は、特徴量(5)の算出方法の一例を示す図である。図13には、食事開始前後の心拍数の変化がグラフ化されており、図13に示す縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
図13に示すように、上記の特徴量(5)のうち、食事前心拍数は、食事開始時刻Ts以前に計測される心拍数のうち最低の値をとる心拍数を心拍数データから抽出することにより導出することができる。このとき、食事開始時刻Ts以前に遡る区間の一例として、60分間などの期間を採用することができる。さらに、食事前面積は、食事開始時刻Ts以前の区間で食事前心拍数からの心拍数の上昇幅を合計することにより求めることができる。なお、ここでは、心拍数の上昇幅を合計することにより面積を算出する場合を例示したが、心拍数の上昇幅の平均値を算出することにより面積を求めることとしてもかまわない。
以上説明した5種類14個の特徴量を食事時刻の推定に用いることにより、食事とそれ以外の要因による心拍数上昇を弁別できる結果、食事時刻の推定精度の低下を抑制できる。さらに、上記の特徴量の算出には、必ずしも心拍数データ以外の情報を用いずともよいので、心拍センサ以外の他のセンサ類を用いずとも算出できる。つまり、必ずしも心拍センサを単独で用いずともよいことを前提に付言すれば、食事時刻の推定精度の維持を心拍センサ単独で実現することができる。
さらに、心拍センサ単独で食事時刻の推定精度の低下を抑制できる一因として、少なくとも下記2点の理由が挙げられる。1つ目の理由として、消化活動に起因する心拍数の変化、すなわち第2ピーク領域A2を含めて食事かそれ以外かを評価することができる特徴量を食事時刻の推定に用いることとした点が挙げられる。さらに、2つ目の理由として、心拍数の回復変化を表す特徴量、すなわち回復速度や回復時間を食事時刻の推定に用いることとした点が挙げられる。これら2点を含め、他の特徴量を用いる食事時刻の推定についても、上記の従来の食事判定では想定さえされていない。したがって、本実施例に係る食事時刻の推定方法によれば、上記の従来の食事判定ではなし得ない有利な効果、すなわち心拍センサ単独で食事時刻の推定精度の低下を抑制できるという効果を発揮できる。
[センサ端末10の構成]
次に、本実施例に係るセンサ端末10の機能的構成について説明する。図1に示すように、センサ端末10は、心拍数データ取得部11と、加速度データ取得部12と、運動期間判定部13と、ノイズ心拍数除去部14と、窓データ作成部15と、特徴量算出部16と、摂食動作判定部17と、通信I/F(InterFace)部18とを有する。なお、センサ端末10は、図1に示した機能部以外にも既知のコンピュータが有する機能部を有することとしてもよい。例えば、ヘルスケア専用の端末装置、ウェアラブルガジェットまたは携帯端末装置がセンサ端末10として実行される場合、これらの各装置が標準装備するハードウェア及びソフトウェアを実装できるのは言うまでもない。
心拍数データ取得部11は、上記の心拍数データを取得する処理部である。
一実施形態として、心拍数データ取得部11は、心拍センサを制御して、所定のサンプリング周期で心拍センサに心拍数をセンシングさせる。これによって、心拍数データ取得部11は、サンプリング点ごとに心拍センサによりセンシングされる心拍数の時系列データを心拍数データとして取得する。かかる心拍数データには、一例として、時間及び心拍数などの項目が対応付けられたデータを採用できる。ここで言う「時間」は、センサ端末10上でローカルに管理されるシステム時間、例えば任意の開始時点からの経過時間であってもよいし、年月日時分秒等のカレンダ上の暦で表現される時間であってもかまわない。また、「心拍数」は、単位時間あたりの心拍数として表現される。例えば、単位時間を1分間とする場合、心拍数はbpm(beats per minute)等で表現される。また、単位時間を1秒間とする場合、心拍数はHzで表現される。
このようにして取得される心拍数データは、心拍数がセンシングされる度に後段の機能部へ出力することとしてもよいし、所定の期間、例えば12時間や1日間などにわたって蓄積してから後段の機能部へ出力することとしてもかまわない。
加速度データ取得部12は、上記の加速度データを取得する処理部である。
一実施形態として、加速度データ取得部12は、加速度センサを制御して、所定のサンプリング周期で加速度センサに3軸、すなわち上下左右前後の加速度をセンシングさせる。これによって、加速度データ取得部12は、サンプリング点ごとに加速度センサによりセンシングされる上下左右前後の加速度の時系列データを加速度データとして取得する。かかる加速度データには、一例として、時間及び加速度などの項目が対応付けられたデータを採用できる。ここで言う「時間」は、上記の心拍数データと同様、センサ端末10上でローカルに管理されるシステム時間、例えば任意の開始時点からの経過時間であってもよいし、年月日時分秒等のカレンダ上の暦で表現される時間であってもかまわない。また、「加速度」には、上下方向、左右方向および前後方向の3軸の加速度を含めることができる。例えば、3軸の加速度のうち一部の方向の加速度に絞って後段の機能部に使用させる場合、後段の機能部で使用されない方向の加速度は加速度データから除去することもできる。なお、加速度センサには、心拍センサと同一のサンプリング周期を採用させることもできるし、異なるサンプリング周期を採用させることもできる。
このようにして取得される加速度データは、加速度がセンシングされる度に後段の機能部へ出力することとしてもよいし、所定の期間、例えば12時間や1日間などにわたって蓄積してから後段の機能部へ出力することとしてもかまわない。
運動期間判定部13は、運動期間を判定する処理部である。ここで言う「運動期間」とは、歩行、走行や階段の昇降などの運動が行われたと想定される期間を指し、例えば、運動期間の判定に加速度データ取得部12により取得される加速度データが用いられる。
一実施形態として、運動期間判定部13は、上記の運動期間の判定に、加速度データ取得部12により取得される加速度データに含まれる加速度のうち少なくとも上下方向、すなわち重力方向の加速度を用いる。このように重力方向の加速度を用いるのは、歩行、走行や階段の昇降などの運動が行われる場合、加速度が特定のパターンで変化すると共に当該パターンが周期的に現れるからである。
図14は、加速度データの一例を示す図である。図14には、運動時に加速度センサによりセンシングされた加速度のうち上下方向の加速度の変化が抜粋して示されている。図14に示す縦軸は、重力方向の加速度を指し、また、横軸は、時間を指す。また、図14には、運動時に計測される加速度変化のパターンの一例が破線で矩形状に囲われている。なお、図14に示す重力方向の加速度は、加速度センサを搭載するセンサ端末10がユーザの胸部に装着された状態で計測されたものとする。
図14に破線で囲って示すように、歩行、走行や階段の昇降などの運動時には、脚部の蹴り出し時および着地時に地面等から反力を受けるので、重力方向の加速度に上昇及び下降の変化が短期間で現れる。さらに、図14に示すように、重力方向の加速度に関する上昇及び下降の変化は、地面から荷重が除かれて足が地面に接地する度に周期的に現れる。
このことから、運動期間判定部13は、一例として、加速度データ取得部12により取得される重力方向の加速度から図14に示した上昇および下降のパターンを検出する。その上で、運動期間判定部13は、パターンが現れる間隔が所定期間内であるか否かを判定する。このとき、パターンが現れる間隔が所定期間以内である場合、当該パターンが所定期間内に繰り返して現れる区間を運動期間と判定する。ここで、上記の運動期間の判定には、一例として、センサ端末10が装着された状態でユーザが運動活動を行い、運動活動に伴う加速度変化を実験的に採取することにより、上記のパターンを形成する上昇および下降の程度から上昇及び下降を弁別する閾値を設定することができる。さらに、パターンが現れる間隔についても実験的に現れる値から上記の所定期間を定めることもできる。なお、上記の運動期間は、運動期間の開始時刻とその継続時間により表現することもできるし、運動開始時刻及び運動終了時刻として表現することもできる。
ノイズ心拍数除去部14は、上記の心拍数データから食事以外のノイズが原因で心拍数が変化すると推定される区間を除去する処理部である。
一実施形態として、ノイズ心拍数除去部14は、心拍数データ取得部11により取得される心拍数の時系列の変化に影響を与える、運動活動による心拍数の上昇変化、食事期間や食後期間中に不特定に発生する心拍数のノイズ変化等を特定する。ノイズ心拍数除去部14は、心拍数データ取得部11で取得した心拍数の時系列から、特定した運動活動による心拍数の上昇変化、食事期間や食後期間中に不特定に発生する心拍数のノイズ変化等で検出された心拍数データを取り除く。
図15は、ノイズ心拍数の除去方法の一例を示す図である。図15には、食事に伴う心拍数の変化及び運動に伴う心拍数の変化を含む心拍数データがグラフ化されており、縦軸は、単位時間当たりの心拍数を指し、横軸は、食事開始直前からの経過時刻(時間)を指す。
図15の(1)には、心拍数データのうち運動期間に対応する区間が右下がりの塗りつぶしにより示されている。このように、運動に伴う心拍数の変化が心拍数データに含まれる場合、運動期間で心拍数の上昇変化、及び、上昇した心拍数の時間経過による回復変化が現れる。一方、食後期間等の消化活動は、摂食および食道の蠕動運動に比べて長期間にわたって心拍数に影響を与えるので、食事後に運動が行われた場合、消化活動に伴う心拍数の変化に運動に伴う心拍数の変化が重畳する場合がある。この場合、運動に伴う心拍数変化が食事時刻の推定に悪影響を及ぼすことが想定される。
図15の(2)には、運動による心拍数の上昇変化および回復変化を伴わない場合の心拍数の変化、すなわち食事単独での心拍数の変化が矢印付き破線で示されている。このように、運動による心拍数の変化が食事に伴う心拍数の変化に重畳することにより、第2ピークに関する特徴量、例えば振幅、上昇速度や回復速度、さらには、上昇時間、回復時間といった特徴量が運動が伴わなかった場合に比べて大きな値で指標化される場合がある。この結果、運動に伴う心拍数変化が食事時刻の推定に悪影響を及ぼすことが想定される。
例えば、図15の(2)に示す例では、Pxの心拍数を第2ピークの振幅、すなわち最大心拍数として算出される。さらに、図15に矢印付き実線で示されるように、運動による心拍数の上昇変化および回復変化が重畳された心拍数の変化から、第2ピークに関する特徴量、例えば上昇速度や回復速度、さらには、上昇時間や回復時間が算出されることが想定される。
このように、運動に伴う心拍数の変化が食事時刻の推定に悪影響を与えるのを抑制するために、ノイズ心拍数除去部14は、心拍数データ取得部11により取得された心拍数データのうち運動期間判定部13により判定された運動期間に対応する区間を除去する。
このとき、ノイズ心拍数除去部14は、運動期間に対応する区間だけでなく、一例として、運動終了時刻から運動により上昇する心拍数が回復するまでの一定期間を運動終了時刻に加えることにより、運動後の心拍数の回復変化が含まれた除去期間を求め、当該除去期間に対応する区間を心拍数データから除去することもできる。かかる運動終了時刻に加える一定期間には、一例として、運動後の回復変化を測定する実験を実施することによりユーザ個別の時間を設定することもできるし、全ユーザ共通の時間をデフォルト値として設定することもできる。なお、運動期間または除去期間に対応する区間のデータが心拍数データから除去された場合、線形補間、多項式補間、スプライン補間などを実行することで、除去により欠落する部分のデータを内挿補間することができる。
図15の(3)には、図15の(1)に示した心拍数のデータから除去期間に該当する区間が除去された心拍数データが示されていると共に、除去期間が破線により矩形状に囲んで示されている。図15の(3)に示すように、除去期間に対応する区間が心拍数データから除去されることにより、例えば、運動による心拍数の上昇変化および回復変化の影響を受けずに食事に伴う心拍数変化の特徴量を算出することが可能となる。
なお、図15の(2)に矢印付き破線で示すように、食事単独での心拍数の変化は、心拍数の相対的な下限に沿って推移する傾向にある。このため、例えば、時系列上に前後する心拍数の比較を行い、前後間の心拍数の差分値が所定の閾値以上、または、所定の閾値以下となる変化点を捉え、該変化点により特定される区間を除去期間とするとしてもかまわない。
図16は、変化点による除去期間の算出方法の一例を示す図である。図16には、心拍数の変化に関するグラフが示されており、縦軸は、単位時間当たりの心拍数を指し、横軸は、経過時刻(時間)を指す。図6の(1)には、心拍数が急速に上昇および下降する変化点が実線により円形状に囲んで示されている。
例えば、ノイズ心拍数除去部14は、時系列上に前後する心拍数の比較を行う。これによって、図16の(1)に示すように、前後間の心拍数の差分値が所定の閾値以上、または、所定の閾値以下となる変化点を特定する。続いて、ノイズ心拍数除去部14は、例えば、特定した変化点に対して、変化点を識別する識別番号を付与する。そして、ノイズ心拍数除去部14は、例えば、時系列上の前後間の心拍数が所定値以上となる場合、時系列上で先行する心拍数と心拍数が計測された時刻情報とを、変化点に付与された識別番号に対応付けて図示しない内部メモリに保存する。また、ノイズ心拍数除去部14は、例えば、時系列上の前後間の心拍数が所定値以下となる場合にも、時系列上で後行する心拍数と心拍数が計測された時刻情報とを、変化点に付与された識別番号に対応付けて内部メモリに保存する。
その上で、ノイズ心拍数除去部14は、例えば、前後間の心拍数の差分値が所定の閾値以上となった変化点に対応付けられた時刻情報と、前後間の心拍数の差分値が所定の閾値以下となった変化点に対応付けられた時刻情報から除去期間を特定する。このとき、心拍数値の差分値が所定の閾値以上となる変化点が、時系列上に連続して検出されるケースが想定される。時系列上で、心拍数の差分値が所定の閾値以上となる変化点が連続するケースでは、例えば、時系列上で先行する、或いは、変化点に対応付けられた心拍数が低い変化点を除去期間の「開始時刻」とすればよい。また、同様にして、心拍数の差分値が所定の閾値以下となる変化点が、時系列上に連続して検出されるケースでは、例えば、時系列上で後行する、或いは、変化点に対応付けられた心拍数が低い変化点を除去期間の「終了時刻」とすればよい。
図16の(2)には、図16の(1)に示した心拍数のデータから、除去期間に該当する心拍数が除去されたグラフが示されている。図16の(2)には、除去期間が破線により矩形状に囲まれた状態で示されている。図16の(2)に示すように、除去期間に該当する区間が心拍数データから除去されることにより、例えば、除去期間の心拍数の上昇変化および回復変化の影響を受けずに食事に伴う心拍数変化の特徴量を算出することができる。例えば、食事期間や食後期間中に不特定に発生する心拍数の上昇変化および回復変化といったノイズのような心拍数データを取り除くことが可能となる。
窓データ作成部15は、窓データを作成する処理部である。ここで言う「窓データ」とは、心拍数データのうち一部が切り出された部分データを指す。
一実施形態として、窓データ作成部15は、ノイズ心拍数除去部14による除去が行われた後の心拍数データに所定の時間長、例えば210分間を持つ窓を設定する。続いて、窓データ作成部15は、窓が設定された区間に対応する部分データを切り出す。その後、窓データ作成部15は、前回に設定された窓を所定のずらし幅、例えば5分間にわたってシフトさせる。その上で、窓データ作成部15は、シフト後の窓に対応する部分データを切り出す。このように部分データが窓幅で切り出される度に窓データが作成されて後段の機能部へ出力される。
図17は、窓データの作成方法の一例を示す図である。図17には、心拍数の変化に関するグラフが示されており、縦軸は、単位時間当たりの心拍数を指し、横軸は、経過時刻(時間)を指す。例えば、心拍数データの開始時刻に窓の開始時刻を合わせることにより窓データの作成を開始する場合、窓の終了時刻が心拍数データの終了時刻と一致するまで窓のスライディングが繰り返して実行されることになる。図17には、一例として、i番目に設定された窓から作成された窓データiと、i+1番目に設定された窓から作成された窓データi+1とが示されている。例えば、窓データi+1を作成する場合、i番目に設定された窓を所定のずらし幅、例えば5分間にわたってシフトさせることによりi+1番目の窓を設定する。その上で、心拍数データのうちi+1番目の窓に対応する区間を切り出すことにより、窓データi+1を作成する。このようなスライディング処理は、窓の終了時刻が心拍数データの終了時刻と一致するまで繰り返し実行される。なお、ここでは、窓を時間の進行方向へシフトさせる場合を例示したが、時間の過去方向へ窓をシフトさせることができるのは言うまでもない。
特徴量算出部16は、食事に伴う心拍の特徴量を算出する処理部である。
一実施形態として、特徴量算出部16は、窓データ作成部15により作成された窓データごとに、上記の5種類14個の特徴量を算出することができる。このとき、特徴量算出部16は、一例として、図17に示した窓データの開始時刻から所定の期間、例えば60分間までの期間を食事前とし、窓データの開始時刻から所定の時間後を「食事開始時刻」として、特徴量の算出を実行する。例えば、特徴量算出部16は、上記の特徴量(1)として、第1ピーク領域A1の面積S1、及び、第2ピーク領域A2の面積S2を算出することができる。また、特徴量算出部16は、上記の特徴量(2)として、第1ピークへ至るまでの心拍数の上昇速度、第1ピークからの心拍数の回復速度、第2ピークへ至るまでの心拍数の上昇速度、及び、第2ピークからの心拍数の回復速度を算出することができる。また、特徴量算出部16は、上記の特徴量(3)として、第1ピークの振幅、及び、第2ピークの振幅を算出することができる。さらに、特徴量算出部16は、上記の特徴量(4)として、第1ピークまでの心拍数の上昇時間、第1ピークからの心拍数の回復時間、第2ピークまでの心拍数の上昇時間、及び、第2ピークからの心拍数の回復時間を算出することができる。また、特徴量算出部16は、上記の特徴量(5)として、食事前心拍数、及び、食事前面積を算出することができる。
摂食動作判定部17は、摂食動作を判定する処理部である。ここで言う「摂食動作」とは、食事を摂ることを目的になされる動作を指し、例えば、食物を口に運ぶ動作を含む。
一実施形態として、摂食動作判定部17は、上記の摂食動作の判定に、加速度データ取得部12により取得される加速度データに含まれる加速度のうち少なくとも1方向の加速度を用いる。例えば、センサ端末10が胸部に装着される場合、前後方向の加速度を用いることができる。このようにセンサ端末10が胸部に装着される場合に前後方向の加速度を用いるのは、食物を口に運ぶ動作が前後方向への往復運動として現れるからである。
図18は、加速度データの一例を示す図である。図18には、加速度センサによりセンシングされた加速度のうち前後方向の加速度の変化が抜粋して示されている。図18に示す縦軸は、前後方向の加速度を指し、また、横軸は、時間を指す。また、図18には、摂食動作に伴う前後方向への往復運動に対応する加速度変化のパターンの一例が破線で矩形状に囲われている。なお、図18に示す前後方向の加速度は、加速度センサを搭載するセンサ端末10がユーザの胸部に装着された状態で計測されたものとする。
図18に破線で囲って示すように、食事が行われる場合、食物を口唇部に運ぶための動作を繰り返すことになるので、前後方向の加速度の変化に次のようなパターンが現れる。すなわち、摂食動作に伴う往復運動に連動して加速が下降後に上昇するパターンが繰り返して現れる。つまり、静止、下降、上昇、静止、下降、上昇、静止といったサイクルで加速度が変化する。
このことから、摂食動作判定部17は、一例として、加速度データ取得部12により取得される前後方向の加速度から図18に示した下降および上昇のパターンを検出する。このようにして摂食動作に対応する前後往復のパターンが検出された場合、摂食動作判定部17は、一例として、図示しない内部メモリに対し、当該摂食動作に対応する前後往復のパターンごとに当該パターンを形成する下降の開始時刻および上昇の終了時刻、あるいは下降の開始時刻から往復運動の継続期間を保存する。
通信I/F部18は、他の装置、例えばサーバ装置100などとの間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部18には、LANカードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部18は、特徴量算出部16により窓データごとに算出された特徴量、さらには、摂食動作判定部17により判定された摂食動作情報、例えばパターンを形成する下降の開始時刻及び上昇の終了時刻などをサーバ装置100へ送信する。また、通信I/F部18は、算出対象とする特徴量の種類や数の指定の他、食事時刻の推定結果やそれを用いた診断結果などを受信したりする。
なお、上記の心拍数データ取得部11、加速度データ取得部12、運動期間判定部13、ノイズ心拍数除去部14、窓データ作成部15、特徴量算出部16及び摂食動作判定部17などの機能部は、次のようにして実装できる。例えば、中央処理装置、いわゆるCPU(Central Processing Unit)などに、上記の心拍数データ取得部11、加速度データ取得部12、運動期間判定部13、ノイズ心拍数除去部14、窓データ作成部15、特徴量算出部16及び摂食動作判定部17と同様の機能を発揮するプロセスをメモリ上に展開して実行させることにより実現できる。これらの機能部は、必ずしも中央処理装置で実行されずともよく、MPU(Micro Processing Unit)に実行させることとしてもよい。また、上記の各機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
また、上記の各機能部が用いる主記憶装置には、一例として、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。また、上記の各機能部が参照する記憶装置は、必ずしも主記憶装置でなくともよく、補助記憶装置であってもかまわない。この場合、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。
[サーバ装置100の構成]
次に、本実施例に係るサーバ装置100の機能的構成について説明する。図1に示すように、サーバ装置100は、通信I/F部110と、特徴量記憶部120と、モデル作成部130と、第1判定部140と、第2判定部150と、サービス提供部160とを有する。なお、サーバ装置100は、図1に示した機能部以外にも既知のコンピュータが有する機能部、例えば各種の入出力デバイスなどを有することとしてもよい。
通信I/F部110は、他の装置、例えばセンサ端末10などとの間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部110には、LANカードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部110は、窓データごとの特徴量、さらには、摂食動作情報などをセンサ端末10から受信する。また、通信I/F部110は、算出対象とする特徴量の種類や数の指定の他、食事時刻の推定結果やそれを用いた診断結果などを送信したりする。
特徴量記憶部120は、食事に関する心拍の特徴量を記憶する記憶部である。
一実施形態として、特徴量記憶部120には、機械学習により食事推定モデルを作成するために、教師データとして、共通の窓データから算出された特徴量の組ごとに、当該窓データに対応する区間にユーザが食事を行ったか否かを示す正解のクラスが対応付けて記憶される。ここで、特徴量記憶部120は、1つの窓データにつき、上記の5種類14個の特徴量のうち任意の種類および任意の個数の特徴量の組を記憶させることができる。また、上記の「クラス」の一例として、食事または非食事のいずれかのクラスが特徴量記憶部120に記憶される。
モデル作成部130は、食事推定モデルを作成する処理部である。
一実施形態として、モデル作成部130は、機械学習アルゴリズムの一例として、サポートベクトルマシンを用いる場合を例示する。かかるサポートベクトルマシンを用いてセンサ端末10で観測される特徴量ベクトルのクラス分類を行う場合、食事推定モデルの出力値は、下記の式(1)に示すように、サポートベクトルを引数としたカーネル関数の重み付け和で表される。
上記の式(1)における「y」は、食事推定モデルの出力値を指す。また、「x」は、センサ端末10で観測される特徴量ベクトルを指す。また、「x(support)」は、上記の特徴量記憶部120に教師データとして予め記憶される特徴量ベクトルのうちクラス分類の識別境界付近に位置する特徴量ベクトル、いわゆるサポートベクトルを指す。また、「ci」は、サポートベクトルに付与される重みを指す。また、「γ」は、関数パラメータを指す。また、式(1)における「I+」は、クラス「食事」のサポートベクトルのインデクス集合を表し、また、「I−」は、クラス「非食事」のサポートベクトルのインデクス集合を表す。なお、ここでは、機械学習の一例として、サポートベクタマシンを例示したが、これ以外にも、ブースティングやニューラルネットワークなどの任意のアルゴリズムを適用することができる。
このような仮定の下、モデル作成部130は、サポートベクトルマシンにおける最適化アルゴリズムを適用することにより、サポートベクトルx(support)とその重みcを特定することにより、食事推定モデルを作成する。
図19は、識別境界の一例を示す図である。図19には、説明の便宜上、特徴量のうち2つの特徴量が説明変数として抜粋された2次元のベクトル空間が例示されているが、食事推定モデルで用いる特徴量の個数に対応する次元数のベクトル空間でもその意味合いは同様である。図19には、教師データの特徴量ベクトルのうちクラスが「食事」である特徴量ベクトルを●印で示し、クラスが「非食事」である特徴量ベクトルを×印で示し、識別境界の付近に位置する特徴量ベクトルを実線により円形状で囲んで示している。
図19に示すように、サポートベクトルマシンでは、識別境界の近くの特徴量ベクトル、すなわちサポートベクトルを用いて、クラス「食事」及びクラス「非食事」を分類する識別境界のマージンの幅が最大となるような識別境界を学習する。これによって、上記の式(1)において各サポートベクトルに付与される重みcが学習される。かかる学習により得られた食事推定モデルに対し、センサ端末10で観測される特徴量ベクトルを代入させることにより、−1から+1までの値をとる出力値が得られる。
第1判定部140は、上記の食事推定モデルを用いて、各窓データに対応する区間が食事または非食事であるか判定する処理部である。
一実施形態として、第1判定部140は、センサ端末10から受け付けた窓データの特徴量ごとに、モデル作成部130により作成された食事推定モデルに当該窓データの特徴量を適用することにより、当該窓データでの食事の有無を判定する。例えば、第1判定部140は、上記の式(1)に対し、センサ端末10で観測される特徴量ベクトルをそれぞれ代入する。これによって、−1から+1までの値をとる食事推定モデルの出力値が得られる。このとき、第1判定部140は、食事推定モデルの出力値が所定の閾値、例えばゼロ以上である場合、当該窓データをクラス「食事」に分類する。一方、第1判定部140は、食事推定モデルの出力値が所定の閾値、例えばゼロ未満である場合、当該窓データをクラス「非食事」に分類する。このようにして窓データごとに食事の有無が判定されることになる。
第2判定部150は、加速度データから検出された摂食動作情報を用いて、第1判定部140により食事と判定された窓データで食事が行われたか否かをさらに判定する処理部である。
一実施形態として、第2判定部150は、第1判定部140により食事と判定された窓データの所定区間、すなわち食事開始時刻から20分間までの区間内に、上記の摂食動作のパターンが所定回数以上含まれているか否かを判定する。すなわち、食事を行う場合、食物を口に運ぶ動作は、1度や2度などの少数であることは稀であり、一定の回数にわたって反復される可能性の方が高い。このことから、第2判定部150は、第1判定部140により食事と判定されたからといって直ちに食事と判定せずに、一定の回数、例えば10回以上である場合に、当該窓データが食事に該当すると判定する。一方、第2判定部150は、窓データの所定区間内に所定回数の摂食動作が含まれない場合、当該窓データが非食事に該当すると判定する。
その後、第2判定部150は、食事に該当すると判定された窓データから食事時刻、例えば食事開始時刻を特定する。このとき、第2判定部150は、窓データから食事前の区間が除かれた時点を食事開始時刻として特定することもできるし、窓データの所定区間内で摂食動作に対応するパターンが最初に検出された時刻を食事開始時刻として特定することもできる。さらに、第2判定部150は、必ずしも食事開始時刻だけを特定せずともよく、食事終了時刻も特定することもできる。例えば、第2判定部150は、食事開始時刻から一定時間、例えば15分、30分や1時間後を食事終了時刻として特定することもできるし、また、窓データの所定区間内で摂食動作に対応するパターンが最後に検出された時刻を食事終了時刻として特定することもできる。このようして特定される食事開始時刻、食事終了時刻、もしくは、これらの組合せのうち少なくともいずれか1つがサービス提供部160へ出力されることになる。
サービス提供部160は、上記のヘルスケア支援サービスを提供する処理部である。
一実施形態として、サービス提供部160は、食事時刻、例えば食事開始時刻、食事終了時刻、もしくは、食事開始時刻及び食事終了時刻のうち少なくともいずれか1つを記録したり、それまでに記録された食事時刻から所定期間、例えば1週間などにわたる食事時間帯の一覧表を生成した上で出力したり、それまでに記録された食事時刻から食習慣またはダイエットに関する分析を行った上で各種のアドバイスを出力したりする。
図20及び図21は、ヘルスケア支援サービスの一例を示す図である。このうち、図20には、生活習慣モニタリングが実施される場合の出力例が示される一方で、図21には、ダイエットのための生活習慣分析が実施される場合の出力例が示されている。なお、図20や図21に示す表示レイアウトは、あくまで一例であり、図20や図21に示される例に限定されないことは言うまでもない。
例えば、上記の食事時刻と共に、運動や睡眠などのスケジュールと連動させることにより、生活習慣の分析が可能になる。すなわち、図20に示すように、1週間に含まれる日ごとに当該日の生活習慣に関するタイムテーブルを表示させることができる。かかるタイムテーブルには、生活習慣に関する属性、例えば食事、運動及び睡眠ごとに当該生活習慣が行われる時間帯などを表示させることができる。さらに、図20に示すように、食事を含め、生活習慣に関するアドバイスも表示させることができる。例えば、生活習慣に関し、朝食抜き、睡眠前の食事、運動不足などの分析結果が得られた場合、図20に示すように、「朝食をとる習慣をつけましょう」、「早めに夕食をとりましょう」や「運動しましょう」などのアドバイスを表示させることができる。
また、上記の食事時刻と共に、運動や睡眠などに加え、体重などの情報をさらに併せることにより、ダイエットを促進するための分析も可能になる。すなわち、図21に示すように、1週間に含まれる日ごとに当該日の生活習慣に関するタイムテーブルを表示させることができる。さらに、図21に示すように、ダイエットを促進するためのアドバイスも表示させることができる。例えば、肥満の要因に該当する分析結果として、食事回数の過多、睡眠前の食事などが得られた場合、次のような表示が実現できる。例えば、図21に示すように、体重増加の原因として、「食事回数が多い」や「睡眠前の食事が多い」などのメッセージを表示させることができる。さらに、その対策として、「朝食をとって規則正しい食習慣を」や「睡眠前に食事すると消化に悪く、肥満の原因になります。早めに夕食をとりましょう」などのメッセージを表示させることもできる。
なお、上記のモデル作成部130、第1判定部140、第2判定部150及びサービス提供部160などの機能部は、次のようにして実装できる。例えば、中央処理装置などに、上記のモデル作成部130、第1判定部140、第2判定部150及びサービス提供部160と同様の機能を発揮するプロセスをメモリ上に展開して実行させることにより実現できる。これらの機能部は、必ずしも中央処理装置で実行されずともよく、MPUに実行させることとしてもよい。また、上記の各機能部は、ハードワイヤードロジックによっても実現できる。
また、上記の特徴量記憶部120を始め、各機能部が用いる主記憶装置には、一例として、各種の半導体メモリ素子、例えばRAMやフラッシュメモリを採用できる。また、上記の各機能部が参照する記憶装置は、必ずしも主記憶装置でなくともよく、補助記憶装置であってもかまわない。この場合、HDD、光ディスクやSSDなどを採用できる。
[具体例]
ここでは、図22〜図41を用いて、食事時刻の推定に関する具体例を説明する。図22は、心拍数データの一例を示す図である。図23は、加速度データの一例を示す図である。図22には、一例として、心拍数が30秒周期でセンシングされた心拍数データが示されると共に、図23には、加速度が0.1秒周期でセンシングされた加速度データが示されている。なお、ここでは、実線により矩形状に囲われた部分、すなわち9月2日の11時00分00秒から23時55分00秒までの部分が心拍数データ及び加速度データとして取得されたこととし、図22及び図23には、その中で一部の時刻に関するデータが抜粋して例示されていることとする。
これら図22に示す心拍数データ及び図23に示す加速度データが取得されたとしたとき、上記の運動期間の判定および上記の摂食動作の判定が実行される。例えば、運動期間の判定の場合、図23に示した加速度データに含まれる加速度のうち重力方向の加速度から図14に示した上昇および下降のパターンが検出される。その上で、上記のパターンが現れる間隔が所定期間以内である場合、当該パターンが所定期間内に繰り返して現れる区間が運動期間と判定される。また、摂食動作の判定の場合、図23に示した加速度データに含まれる加速度のうち前後方向の加速度から摂食動作に対応する前後往復のパターン、すなわち図18に示した下降および上昇のパターンが検出される。その上で、摂食動作に対応する前後往復のパターンが検出される度に、摂食動作が1回行われたと判定される。
このように運動期間および摂食動作が判定された場合、図24に示した通りに、運動期間および摂食動作回数がセンサ端末10の内部メモリ上で管理される。図24は、心拍数と摂食動作回数及び運動期間との対応関係表の一例を示す図である。ここで、加速度データは、0.1秒周期でセンシングされるが、心拍数データのサンプリング周期である30秒に合わせて、図24には、30秒ごとに摂食動作回数及び運動期間が記入されている。例えば、図24に示す摂食動作回数のレコードには、30秒間で摂食動作に対応する前後往復のパターンが検知された回数の累積値が保存される。また、運動期間のレコードには、30秒間に運動期間が含まれる場合に「1」が設定される一方で運動期間が含まれない場合に「0」が設定されることとする。なお、図24には、9月2日の11時00分00秒から11時00分30秒までの区間、同日の12時41分30秒から12時42分00秒までの区間、同日の12時42分00秒から12時42分30秒までの区間、同日の12時42分30秒から12時43分00秒までの区間、さらには、同日の15時42分00秒から15時42分30秒までの区間が抜粋して示されているが、他の区間についても心拍数、摂食動作回数及び運動期間の値が保存されているのは言うまでもない。以下では、区間の開始時刻及び終了時刻のうち区間の開始時刻で区間の列を識別して説明を行うこととする。
図24に示す対応管理表に抜粋された区間の中には、運動期間と判定された区間が存在しないことを意味する。また、図24に示す対応管理表に抜粋された区間のうち、12時41分30秒の列、及び、15時42分00秒の列では、摂食動作回数が0回と計測されている一方で、他の列では、1回以上の摂食動作回数が計測されていることを意味する。
このように運動期間が判定された状況の下、図22に示した心拍数データから運動が原因となって心拍数の上昇変化および回復変化が発生している可能性が高い区間がノイズとして除去される。図25は、ノイズ心拍数の除去例を示す図である。図25の上段には、ノイズ心拍数の除去前の対応管理表が示されている一方で、図25の下段には、ノイズ心拍数の除去後の対応管理表が示されている。なお、図25の上段及び下段に示す各対応管理表は、図24に示したものと同様であるが、心拍数、摂食動作回数及び運動期間が抜粋されている区間は一部異なる。
図25の上段に示す対応管理表の例では、12時26分00秒の列が運動開始時刻に対応する一方で、12時33分00秒の列が運動終了時刻に対応する。つまり、12時26分00秒から12時33分00秒までの期間が運動期間であることを意味する。この場合、12時26分00秒の列を起点とし、運動終了時刻に所定時間、例えば5分間が加算された12時38分の列までが除去期間として決定される。この場合、図25の下段に示す対応管理表のように、除去期間に対応する部分の心拍数がノイズ心拍数として除去されてブランクの状態にされる。
このようにノイズ心拍数が除去された状態で、窓データの作成が実行される。図25の下段に示した対応管理表の場合、心拍数データの開始時刻である11時00分00秒に窓の開始時刻を合わせることにより窓データの作成が開始される。例えば、窓幅が210分であるとしたとき、11時00分00秒から14時30分00秒までの心拍数のデータ列が窓データとして抽出される。この窓データを識別する番号を「1」としたとき、次の2番目の窓は、窓データ「1」に設定された窓を所定のずらし幅、例えば5分間にわたってシフトさせることにより設定される。つまり、心拍数データの11時05分00秒に窓の開始時刻を合わせることにより、窓データ「2」が作成される。その後、スライディング処理は、窓の終了時刻が心拍数データの終了時刻である23時55分00秒と一致するまで繰り返し実行される。
この結果、図26に示すM個の窓データが作成されることになる。図26は、窓データの抽出結果の一例を示す図である。図26には、窓データ「1」から窓データ「M」までのM個の窓データが示されている。図26に示す「T1」〜「TN」は、各窓データに含まれる心拍数のデータ列を指す。例えば、図26に示す番号「3」の窓データの場合、窓データの開始時刻が9月2日の11時10分00秒であり、終了時刻が9月2日の14時40分00秒であることを意味する。さらに、食事開始時刻が9月2日の11時40分00秒であることを意味する。さらに、11時10分00秒から30秒おきに、心拍数が62.5、59.2、・・・、63.2と計測されていることを意味する。
その後、各窓データごとに特徴量が算出される。ここでは、一例として、図27に示す番号「i」の窓データに関する特徴量が算出される場合を例示する。図27は、窓データの一例を示す図である。図27には、i番目の窓データに含まれる心拍数系列から、上記の特徴量として、第1ピーク面積、第2ピーク面積、第2ピーク回復速度、第2ピーク上昇速度、第1ピーク振幅、第2ピーク振幅、食事前心拍数及び食事前面積を求める場合が図示されている。図27に示すように、i番目の窓データは、開始時刻及び終了時刻が12時12分00秒及び15時42分00秒であり、食事開始時刻が窓データの開始時刻から30分後の12時42分00秒である。
例えば、面積に関する特徴量を算出する場合、番号「i」の窓データに含まれる心拍数系列から心拍数のベースライン及び食事前心拍数が決定される。例えば、番号「i」の窓データに含まれる心拍数系列のうち当該窓データの食事開始時刻に計測される心拍数が「ベースライン」として決定される。さらに、番号「i」の窓データに含まれる心拍数系列のうち窓データの開始時刻から食事開始時刻までの範囲で最低の値を持つ心拍数が「食事前心拍数」として決定される。図28は、食事前心拍数の決定方法の一例を示す図である。図28の上段に示すように、番号「i」の窓データに含まれる心拍数系列のうち窓データの開始時刻から食事開始時刻までの範囲に含まれる心拍数から食事前心拍数が決定される。すなわち、図28の下段に示すように、最低の値「59.0」を持つ心拍数が食事前心拍数として決定される。
その後、番号「i」の窓データに含まれる心拍数系列は、食事前期間と、食事期間Ta1と、食後期間Ta2との3つの期間に分けられる。図29は、特徴量の算出過程の一例を示す図である。図30は、窓データの一例を示す図である。図29の上段には、番号「i」の窓データに含まれる心拍数系列及び上昇幅が示されると共に、図29の下段には、番号「i」の窓データに関する特徴量のうち食事前心拍数、第1ピーク面積、第2ピーク面積及び食事前面積の算出結果が示されている。また、図30には、番号「i」の窓データに含まれる心拍数系列がグラフ化されており、縦軸は、単位時間当たりの心拍数を指し、横軸は、経過時刻(時間)を指す。
図29の上段に示すように、番号「i」の窓データの場合、窓データの開始時刻「12時12分00秒」から食事開始時刻の直前、すなわち「12時41分30秒」までの期間が食事前期間と仮定される。さらに、食事開始時刻「12時42分00秒」から所定時間、例えば15分後、すなわち「12時56分30秒」までの期間が食事期間と仮定される。さらに、食事時間の終了時刻「12時57分00秒」から窓データの終了時刻「15時42分00秒」までの期間が食後期間と仮定される。これら3つの期間がグラフ化された場合、図30に示す通りとなる。
このうち、食事前期間に含まれる心拍数と食事前心拍数との間で差分が時刻ごとに計算される。これによって、食事前期間に含まれる時刻ごとに食事前心拍数からの心拍数の上昇幅が算出されることになる。例えば、時刻「12時12分00秒」の場合、その時刻で計測された心拍数「61.8」から食事前心拍数「59.0」を減算することにより、上昇幅「2.8」が算出される。このようにして食事前期間に含まれる時刻ごとに心拍数の上昇幅が算出された後、各時刻の心拍数の上昇幅を平均する計算を行うことにより、図30に示す食事前面積が「3.1」と求まる。この結果、図29の下段に示すように、食事前面積の値として「3.1」が保存されることになる。
また、食事期間Ta1に含まれる心拍数と食事前心拍数との間で差分が時刻ごとに計算される。これによって、食事期間Ta1に含まれる時刻ごとに食事前心拍数からの心拍数の上昇幅が算出されることになる。例えば、時刻「12時42分00秒」の場合、その時刻で計測された心拍数「71.3」から食事前心拍数「59.0」を減算することにより、上昇幅「12.3」が算出される。このようにして食事期間Ta1に含まれる時刻ごとに心拍数の上昇幅が算出された後、各時刻の心拍数の上昇幅を平均する計算を行うことにより、図30に示す第1ピーク面積が「17.3」と求まる。この結果、図29の下段に示すように、第1ピーク面積の値として「17.3」が保存されることになる。
さらに、食後期間Ta2に含まれる心拍数と食事前心拍数との間で差分が時刻ごとに計算される。これによって、食後期間Ta2に含まれる時刻ごとに食事前心拍数からの心拍数の上昇幅が算出されることになる。例えば、時刻「12時57分00秒」の場合、その時刻で計測された心拍数「75.3」から食事前心拍数「59.0」を減算することにより、上昇幅「16.3」が算出される。このようにして食後期間Ta2に含まれる時刻ごとに心拍数の上昇幅が算出された後、各時刻の心拍数の上昇幅を平均する計算を行うことにより、図30に示す第2ピーク面積が「16.2」と求まる。この結果、図29の下段に示すように、第2ピーク面積の値として「16.2」が保存されることになる。
続いて、第1ピークの振幅が求められる。図31は、特徴量の算出過程の一例を示す図である。図31の上段には、番号「i」の窓データのうち食事期間Ta1に含まれる心拍数のデータ列が抜粋して示されると共に、図31の下段には、番号「i」の窓データに関する特徴量のうち食事前心拍数、第1ピーク面積、第2ピーク面積及び食事前面積に加え、第1ピークの振幅の算出結果がさらに示されている。
図31に示すように、食事期間Ta1に含まれる心拍数のデータ列のうち時刻「12時49分00秒」に計測された心拍数「85.2」が最大心拍数P1であるとしたとき、この最大心拍数P1「85.2」が第1ピークの振幅として抽出される。この結果、図31の下段に示すように、第1ピークの振幅の値として「85.2」が保存されることになる。
さらに、第2ピークの振幅が求められる。図32は、特徴量の算出過程の一例を示す図である。図32の上段には、番号「i」の窓データのうち食後期間Ta2に含まれる心拍数のデータ列が抜粋して示されると共に、図32の下段には、番号「i」の窓データに関する特徴量のうち食事前心拍数、第1ピーク面積、第2ピーク面積、食事前面積及び第1ピークの振幅に加え、第2ピークの振幅の算出結果がさらに示されている。
図32に示すように、食後期間Ta2に含まれる心拍数のデータ列のうち時刻「13時19分00秒」に計測された心拍数「83.7」が最大心拍数P2であるとしたとき、この最大心拍数P2「83.7」が第2ピークの振幅として抽出される。この結果、図32の下段に示すように、第2ピークの振幅の値として「83.7」が保存されることになる。
加えて、第2ピークの上昇速度が求められる。図33は、特徴量の算出過程の一例を示す図である。図33の最上段には、番号「i」の窓データのうち食後期間Ta2に含まれる心拍数のデータ列が抜粋して示されると共に、図33の最下段には、番号「i」の窓データに関する特徴量のうち食事前心拍数、第1ピーク面積、第2ピーク面積、食事前面積、第1ピークの振幅及び第2ピークの振幅に加え、第2ピークの上昇速度の算出結果がさらに示されている。
このように第2ピークの上昇速度を求める場合、食後期間Ta2の開始時刻、言い換えれば食事期間Ta1の終了時刻「12時57分00秒」を始点とし、第2ピークの最大心拍数P2が計測された時刻「13時19分00秒」を終点とする期間が近似対象期間Ta2_P2として設定される。
その上で、当該近似対象期間Ta2_P2に含まれる心拍数のデータ列を用いて、関数近似を行うことにより、第2ピークの上昇速度が算出される。例えば、“f(t)=αt+β”等の一次線形関数を用いた関数近似を適用することができる。一次線形関数を用いた関数近似では、近似対象となるデータ列に含まれる各時刻における近似誤差が最小となるような傾きパラメータα及び切片パラメータβの組合せを求めることにより、近似対象となるデータ列に適した関数近似を行うことができる。
図34は、近似誤差の一例を示す図である。図34には、番号「i」の窓データのうち近似対象期間Ta2_P2に含まれる心拍数のデータ列がグラフ上に●印でプロットされており、かかるグラフの縦軸は、単位時間当たりの心拍数を指し、横軸は、経過時刻(時間)を指す。図34に示す時刻「t1」は、例えば、食後期間Ta2の開始時刻を指し、また、時刻「tN」は、最大心拍数P2が計測された時刻を指す。図34には、近似対象期間Ta2_P2に含まれる心拍数のデータ列に近似する、一次線形関数「f(t)=αt+β」が太線により示されている。
図34に示すように、時刻tiにおける心拍数yiと、一次線形関数「f(t)=αt+β」との間の近似誤差は、下記の式(2)に示すように、{yi−(αti+β)}の2乗として表すことができる。ここで、近似対象期間Ta2_P2に含まれる心拍数のデータ列に適する近似関数を求める場合、各時刻における心拍数の近似誤差、すなわち{yi−(αti+β)}の2乗の和が最小となる傾きパラメータα及び切片パラメータβの組合せを求めればよい。なお、下記の式(2)における「α」は、近似関数の傾きパラメータを指し、「β」は、近似関数の切片パラメータを指す。また、「yi」は、i番目の心拍数を指し、「ti」は、i番目の時刻を指し、「N」は、近似対象となるデータ数を指す。
例えば、図33の最上段に示す近似対象期間Ta2_P2に含まれる心拍数のデータ列の場合、傾きパラメータαが「17.1(bpm/hour)」と求まり、切片パラメータβが「66.9(bpm/hour)」と求まる。図33の最下段に示すように、このようにして求められた傾きパラメータα「17.1」が第2ピークの上昇速度として保存されることになる。
さらに、第2ピークの回復速度が求められる。図35は、特徴量の算出過程の一例を示す図である。図35の最上段には、番号「i」の窓データのうち食後期間Ta2に含まれる心拍数のデータ列が抜粋して示されると共に、図35の最下段には、番号「i」の窓データに関する特徴量のうち食事前心拍数、第1ピーク面積、第2ピーク面積、食事前面積、第1ピークの振幅、第2ピークの振幅及び第2ピークの上昇速度に加え、第2ピークの回復速度の算出結果がさらに示されている。
このように第2ピークの回復速度を求める場合、第2ピークの最大心拍数P2が計測された時刻「13時19分00秒」を始点とし、食後期間Ta2の終了時刻「15時42分00秒」を終点とする期間が近似対象期間TP2_a2として設定される。
その上で、上記の第2ピークの上昇速度を算出する場合と同様にして、当該近似対象期間TP2_a2に含まれる心拍数のデータ列を用いて、関数近似を行うことにより、第2ピークの回復速度が算出される。つまり、近似対象期間TP2_a2に含まれる心拍数のデータ列に適する近似関数を求める場合、各時刻における心拍数の近似誤差、すなわち{yi−(αti+β)}の2乗の和が最小となる傾きパラメータα及び切片パラメータβの組合せを求めればよい。
この結果、図35の最上段に示す近似対象期間TP2_a2に含まれる心拍数のデータ列の場合、傾きパラメータαが「−6.4(bpm/hour)」と求まり、切片パラメータβが「83.9(bpm/hour)」と求まる。すると、図35の最下段に示すように、傾きパラメータα「−6.4」が第2ピークの回復速度として保存されることになる。
このようにして、i番目の窓データに含まれる心拍数系列から、上記の特徴量として、第1ピーク面積、第2ピーク面積、第2ピーク回復速度、第2ピーク上昇速度、第1ピーク振幅、第2ピーク振幅、食事前心拍数及び食事前面積が求まることになる。
その後、全ての窓データに関する特徴量が算出されると、各窓データの特徴量がリスト化された観測特徴量リストと共に時刻ごとの摂食動作回数がリスト化された摂食動作回数リストがセンサ端末10からサーバ装置100へ送信されることになる。図36は、観測特徴量リストの一例を示す図であり、図37は、摂食動作回数リストの一例を示す図である。図36に示すように、番号「1」から番号「M」までの窓データごとに算出された第1ピーク面積、第2ピーク面積、第2ピーク回復速度、第2ピーク上昇速度、第1ピーク振幅、第2ピーク振幅、食事前心拍数及び食事前面積が登載された観測特徴量リストがセンサ端末10からサーバ装置100へ送信される。さらに、図37に示すように、心拍数データの開始時刻から心拍数データの終了時刻までの各時刻の摂食動作回数が登載された摂食動作回数リストがセンサ端末10からサーバ装置100へ送信される。
これを受けたサーバ装置100では、上記の特徴量記憶部120に教師データとして予め記憶された特徴量ベクトルを用いて、サポートベクトルマシンにおける最適化アルゴリズムを適用することにより、サポートベクトルx(support)とその重みcを特定することにより、食事推定モデルが作成される。
図38は、教師データの一例を示す図である。図39は、食事推定モデルの一例を示す図である。図38に示すように、教師データは、各窓データごとに第1ピーク面積、第2ピーク面積、第2ピーク回復速度、第2ピーク上昇速度、第1ピーク振幅、第2ピーク振幅、食事前心拍数及び食事前面積などの各特徴量と共に当該窓データの食事クラスが対応付けられた正解付きのデータである。ここで、図38に示す食事クラスが「●」である場合、当該窓データの特徴量が「食事」に分類されていることを示す一方で、食事クラスが「×」である場合、当該窓データの特徴量が「非食事」に分類されていることを示す。図38に示す教師データの場合、食事開始時刻を8月29日の12時20分00秒とする窓データの特徴量、及び、食事開始時刻を8月30日の12時35分00秒とする窓データの特徴量が食事に分類されていることを意味する。さらに、食事開始時刻を8月30日の20時50分00秒とする窓データの特徴量が非食事に分類されていることを意味する。かかる図38に示す教師データを用いて学習が行われた場合、図39に示す食事推定モデルが得られることになる。図39に示す食事推定モデルの場合、クラス分類の識別境界付近に位置するサポートベクトルが「1」〜「L」のL個存在することを意味する。例えば、サポートベクトル「1」には重み「0.42」が付与され、サポートベクトル「L」には重み「0.11」が付与されることを意味する。
このような食事推定モデルに対し、図36に示した観測特徴量リストに含まれる特徴量ベクトルを代入させることにより、図40に示す出力結果が得られることになる。図40は、食事有無の推定結果の一例を示す図である。図40には、図36に示した観測特徴量リストに食事推定モデルの出力値および食事有無の推定結果が付加されている。番号「1」〜番号「M」の窓データのうち図40に抜粋されている窓データの中では、番号「m」の窓データの出力値「0.87」だけがゼロ以上であり、クラス「食事」に分類されていることがわかる。
かかる食事推定モデルによる食事有無の判定が行われた後、センサ端末10から受け付けた摂食動作回数リストを用いて、食事にクラス分類された窓データで食事が行われたのか否かがさらに判定される。図41は、摂食動作回数リストを用いる食事判定の一例を示す図である。図41の左側には、食事判定結果が示されており、図41の中央には、摂食動作回数リストが示されており、図41の右側には、判定結果が示されている。図41に示すように、食事推定モデルによる食事判定では、番号「m」の窓データがクラス「食事」に分類されている。このため、番号「m」の窓データの食事開始時刻から所定期間、例えば20分間の区間で、所定回数、例えば10回以上の摂食動作回数が検出されているかが判定される。本例では、番号「m」の窓データの食事開始時刻である12時42分00秒からその20分後の13時02分00秒までに17回の摂食動作が検出されているので、図41の右側に示すように、番号「m」の窓データは、食事と判定されることになる。
[処理の流れ]
続いて、本実施例に係るヘルスケア支援システムの処理の流れについて説明する。なお、ここでは、センサ端末10及びサーバ装置100によって実行される全体フローを説明してから、センサ端末10によって実行される特徴量(1)〜特徴量(5)の算出処理について説明することとする。
(1)全体フロー
図42は、実施例1に係る全体フローの手順を示すフローチャートである。この処理は、一例として、所定の時間長、例えば12時間や1日間などにわたる心拍数データ及び加速度データが取得された場合に起動される。
図42に示すように、心拍数データ取得部11により心拍数データが取得されると共に加速度データ取得部12により加速度データが取得されると(ステップS101)、運動期間判定部13は、次のような処理を実行する。すなわち、運動期間判定部13は、ステップS101で取得された加速度データのうち重力方向の加速度を用いて、運動に対応する上昇および下降のパターン同士の間隔が所定期間内に繰り返して現れる区間を運動期間として判定する(ステップS102)。
続いて、摂食動作判定部17は、ステップS101で取得された加速度データのうち前後方向の加速度を用いて、摂食動作に対応する前後往復のパターンを判定する(ステップS103)。
そして、ノイズ心拍数除去部14は、ステップS101で取得された心拍数データから、ステップS102で判定された運動期間に一定期間を加えた除去期間に対応する区間を除去する(ステップS104)。
その上で、窓データ作成部15は、ステップS104による除去が行われた心拍数データに、所定の時間長を持つ窓を所定のずらし幅で窓の終了時刻が心拍数データの終了時刻と一致するまでシフトさせながら窓内の部分データを切り出すことにより、心拍数データがセグメント化された窓データを作成する(ステップS105)。
そして、特徴量算出部16は、ステップS105で作成された窓データのうち窓データを1つ選択する(ステップS106)。続いて、特徴量算出部16は、ステップS106で選択された窓データを用いて、特徴量(1)〜特徴量(5)のうち少なくともいずれか1つもしくはこれらの組合せを算出する特徴量の算出処理を実行する(ステップS107)。
その後、ステップS105で作成された全ての窓データが選択されるまで(ステップS108No)、特徴量算出部16は、上記のステップS106及びステップS107の処理を繰り返し実行する。
そして、ステップS105で作成された全ての窓データが選択された場合(ステップS108Yes)、センサ端末10の通信I/F部18は、ステップS107で窓データごとに算出された特徴量、及び、ステップS103で判定された摂食動作情報、例えば摂食動作に対応する前後往復のパターンを形成する下降の開始時刻及び上昇の終了時刻などをサーバ装置100へ送信する(ステップS109)。
一方、サーバ装置100のモデル作成部130は、特徴量記憶部120に教師データとして記憶された正解付きの特徴量を用いて、サポートベクトルx(support)とその重みcを特定することにより、食事推定モデルを作成する(ステップS110)。
続いて、第1判定部140は、センサ端末10から受信された窓データの特徴量ごとに、ステップS110で作成された食事推定モデルに当該窓データの特徴量を代入することにより出力された出力値が所定の閾値以上であるか否かにより、当該窓データでの食事の有無を判定する(ステップS111)。なお、センサ端末10から受信された窓データの中にステップS111で食事にクラス分類された窓データが存在しない場合(ステップS112No)、そのまま処理を終了する。
そして、センサ端末10から受信された窓データの中にステップS111で食事にクラス分類された窓データが存在する場合(ステップS112Yes)、第2判定部150は、次のような処理を実行する。すなわち、第2判定部150は、ステップS111で食事と判定された窓データの所定区間、すなわち食事開始時刻から20分間までの区間内に、上記の摂食動作に対応する前後往復のパターンが所定回数以上含まれているか否かを判定する(ステップS113)。なお、摂食動作に対応する前後往復のパターンが所定回数以上含まれない場合(ステップS113No)にも、そのまま処理を終了する。
ここで、摂食動作に対応する前後往復のパターンが所定回数以上含まれている場合(ステップS113Yes)には、当該窓データで仮定した食事開始時刻が妥当である可能性が高いと推定できる。この場合、第2判定部150は、当該窓データから食事時刻、すなわち食事開始時刻、食事終了時刻、もしくは、これらの組合せのうち少なくともいずれか1つを食事時刻として特定する(ステップS114)。
その後、サービス提供部160は、ステップS114で特定された食事時刻を記録したり、それまでに記録された食事時刻から所定期間にわたる食事時間帯の一覧表を生成した上で出力したり、それまでに記録された食事時刻から食習慣またはダイエットに関する分析を行った上で各種のアドバイスを出力したりすることにより、ヘルスケア支援サービスを提供し(ステップS115)、処理を終了する。
(2.1)特徴量(1)の算出処理
図43は、特徴量(1)の算出処理の手順を示すフローチャートである。この処理は、ステップS107に対応する処理であり、特徴量(2)〜特徴量(5)の算出処理との間で互いを並行して実行することもできるし、互いの後先を問わずに任意の順序で実行することもできる。
図43に示すように、特徴量算出部16は、一例として、窓データに含まれる食事開始時刻Tsで計測される心拍数をベースラインとして導出する(ステップS201)。続いて、特徴量算出部16は、食事開始時刻Tsを始点とし、心拍数が第1ピークを経てベースラインBLまで回復した時刻を終点とする食事期間Ta1において、ステップS201で導出されたベースラインBLからの心拍数の上昇幅を合計または平均することにより、第1ピーク領域A1の面積S1を求める(ステップS202)。
そして、特徴量算出部16は、第1ピーク領域A1の食事期間Ta1の終点もしくはその終点よりも後の時刻を始点とし、心拍数が第2ピークを経てベースラインBLまで回復した時刻を終点とする食後期間Ta2において、ステップS201で導出されたベースラインBLからの心拍数の上昇幅を合計または平均することにより、第2ピーク領域A2の面積S2を算出し(ステップS203)、処理を終了する。なお、各時刻の心拍数の値として、その時刻前後の時間帯における心拍数を移動平均した値を用いてもよい。
このように、特徴量(1)として、第1ピーク領域A1の面積、及び、第2ピーク領域A2の面積が算出される。
(2.2)特徴量(2)の算出処理
図44は、特徴量(2)の算出処理の手順を示すフローチャートである。この処理は、ステップS107に対応する処理であり、特徴量(1)、特徴量(3)〜特徴量(5)の算出処理との間で互いを並行して実行することもできるし、互いの後先を問わずに任意の順序で実行することもできる。
図44に示すように、特徴量算出部16は、食事期間Ta1で計測される心拍数のうち心拍数が最大である第1ピークの最大心拍数P1が計測された時刻を特定する(ステップS301)。
続いて、特徴量算出部16は、食事開始時刻TsからステップS301で特定された最大心拍数P1の計測時刻までの期間を近似対象期間Ts_P1とし、近似対象期間Ts_P1に含まれる心拍数のデータ列に関数近似を行うことにより、第1ピークの上昇速度を算出する(ステップS302)。
そして、特徴量算出部16は、第1ピークの最大心拍数P1の計測時刻から食事終了後の一定期間を経過するまでの期間を近似対象期間Ta1_P1とし、近似対象期間Ta1_P1に含まれる心拍数のデータ列に関数近似を行うことにより、第1ピークの回復速度を算出する(ステップS303)。
また、特徴量算出部16は、食後期間Ta2で計測される心拍数のうち心拍数が最大である第2ピークの最大心拍数P2が計測された時刻を特定する(ステップS304)。
続いて、特徴量算出部16は、食後期間Ta2の開始時刻からステップS304で特定された第2ピークの最大心拍数P2の計測時刻までの期間を近似対象期間Ta2_P2とし、近似対象期間Ta2_P2に含まれる心拍数のデータ列に関数近似を行うことにより、第2ピークの上昇速度を算出する(ステップS305)。
そして、特徴量算出部16は、第2ピークの最大心拍数P2の計測時刻から食後期間Ta2の終了時刻までの期間を近似対象期間TP2_a2とし、近似対象期間TP2_a2に含まれる心拍数のデータ列に関数近似を行うことにより、第2ピークの回復速度を算出し(ステップS306)、処理を終了する。
このように、特徴量(2)として、第1ピークへ至るまでの心拍数の上昇速度、第1ピークからの心拍数の回復速度、第2ピークへ至るまでの心拍数の上昇速度、及び、第2ピークからの心拍数の回復速度が算出される。
(2.3)特徴量(3)の算出処理
図45は、特徴量(3)の算出処理の手順を示すフローチャートである。この処理は、ステップS107に対応する処理であり、特徴量(1)〜特徴量(2)、特徴量(4)〜特徴量(5)の算出処理との間で互いを並行して実行することもできるし、互いの後先を問わずに任意の順序で実行することもできる。
図45に示すように、特徴量算出部16は、食事期間Ta1で計測される心拍数のうち心拍数が最大である第1ピークの最大心拍数P1を導出する(ステップS401)。さらに、特徴量算出部16は、食後期間Ta2で計測される心拍数のうち心拍数が最大である第2ピークの最大心拍数P2を導出し(ステップS402)、処理を終了する。
このように、上記の特徴量(3)として、第1ピークの振幅、及び、第2ピークの振幅が算出される。
(2.4)特徴量(4)の算出処理
図46は、特徴量(4)の算出処理の手順を示すフローチャートである。この処理は、ステップS107に対応する処理であり、特徴量(1)〜特徴量(3)及び特徴量(5)の算出処理との間で互いを並行して実行することもできるし、互いの後先を問わずに任意の順序で実行することもできる。
図46に示すように、特徴量算出部16は、食事期間Ta1で計測される心拍数のうち心拍数が最大である第1ピークの最大心拍数P1が計測された時刻を特定する(ステップS501)。
そして、特徴量算出部16は、食事期間Ta1の開始時刻、すなわち食事開始時刻TsからステップS501で導出された第1ピークの最大心拍数P1の計測時刻までの時間を第1ピークの上昇時間として算出する(ステップS502)。
続いて、特徴量算出部16は、第1ピークの最大心拍数P1の計測時刻から食事終了後の一定期間を経過するまでの期間を近似対象期間Ta1_P1とし、近似対象期間Ta1_P1に含まれる心拍数のデータ列に関数近似を行うことにより、第1ピークの回復速度を算出する(ステップS503)。
その上で、特徴量算出部16は、ステップS503で算出された第1ピークの回復速度、すなわち近似関数の傾きで推移する心拍数がベースラインBLの心拍数に到達するまでの経過時間を第1ピークの回復時間として算出する(ステップS504)。
また、特徴量算出部16は、食後期間Ta2で計測される心拍数のうち心拍数が最大である第2ピークの最大心拍数P2が計測された時刻を特定する(ステップS505)。
そして、特徴量算出部16は、食事期間Ta1の開始時刻、すなわち食事開始時刻TsからステップS505で特定された第2ピークの最大心拍数P2の計測時刻までの時間を第2ピークの上昇時間として算出する(ステップS506)。
続いて、特徴量算出部16は、第2ピークの最大心拍数P2の計測時刻から食後期間Ta2の終了時刻までの期間を近似対象期間TP2_a2とし、近似対象期間TP2_a2に含まれる心拍数のデータ列に関数近似を行うことにより、第2ピークの回復速度を算出する(ステップS507)。
その後、特徴量算出部16は、ステップS507で算出された第2ピークの回復速度、すなわち近似関数の傾きで推移する心拍数がベースラインBLの心拍数に到達するまでの経過時間を第2ピークの回復時間として算出し(ステップS508)、処理を終了する。
このように、上記の特徴量(4)として、第1ピークまでの心拍数の上昇時間、第1ピークからの心拍数の回復時間、第2ピークまでの心拍数の上昇時間、及び、第2ピークからの心拍数の回復時間が算出される。
(2.5)特徴量(5)の算出処理
図47は、特徴量(5)の算出処理の手順を示すフローチャートである。この処理は、ステップS107に対応する処理であり、特徴量(1)〜特徴量(4)の算出処理との間で互いを並行して実行することもできるし、互いの後先を問わずに任意の順序で実行することもできる。
図47に示すように、特徴量算出部16は、窓データの開始時刻から食事開始時刻までの食事前期間で計測される心拍数のうち最低の値をとる心拍数を食事前心拍数として導出する(ステップS601)。
その上で、特徴量算出部16は、窓データの開始時刻から食事開始時刻までの食事前期間において、食事前心拍数からの心拍数の上昇幅を合計または平均することにより、食事前面積を算出し(ステップS602)、処理を終了する。
このように、上記の特徴量(5)として、食事前心拍数、及び、食事前面積が算出される。
[効果の一側面]
上述してきたように、本実施例に係るヘルスケア支援システム1は、心拍数の時系列データから食事時刻を推定する場合に、食事開始後に先行して現れる第1ピークに後続して現れる第2ピークに関する特徴量を算出して食事時刻の推定に用いる。したがって、本実施例に係るヘルスケア支援システム1によれば、食事判定の精度低下を抑制できる。
さらに、本実施例に係るヘルスケア支援システム1は、食事開始後に現れる第1ピーク及び第2ピークの特徴量として心拍数の回復変化に関する特徴量を算出して食事時刻の推定に用いる。それ故、本実施例に係るヘルスケア支援システム1によれば、食事判定の精度低下を抑制できる。
[実験例]
ここで、既存の技術と本実施例との間で食事時刻の推定精度とを比較することにより、本実施例が既存の技術に比べて有利な効果を有する点について説明する。例えば、既存の技術では、第1ピークの心拍数上昇幅を使って食事時刻を推定する一方で、本実施例では、上記の5種14個の特徴量を用いて食事時刻を推定する。
このような前提の下、既存の技術と本実施例との間で「食事」及び「非食事」のクラス分類の正解率、すなわちクラス分類が正解した窓データの数/全窓データの数を比較する。ここで、既存の技術では、平均正解率が「49.2%」であったのに対し、本実施例では、平均正解率が「98.4%」であることが実験の結果として判明した。このように、本実施例では、既存の技術に比べて平均正解率が約2倍ほど高いので、既存の技術に比べて有利な効果を奏すると言える。