以下に添付図面を参照して本願に係る食事検知プログラム、食事検知方法及び食事検知装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るヘルスケア支援システムに含まれる各装置の機能的構成の一例を示す図である。図1に示すヘルスケア支援システム1は、各種のヘルスケア支援サービスを提供するものである。このようなヘルスケア支援サービスの例として、ウェアラブル端末10により取得される心拍データを用いて、対象者の日常生活の行動、例えば食事等を記録するサービス、さらには、その記録を活用する派生のサービスなどが挙げられる。
図1に示すように、ヘルスケア支援システム1には、ウェアラブル端末10と、IoT(Internet of Things)デバイス20と、サーバ装置30とが含まれる。なお、図1には、IoTデバイス20に1つのウェアラブル端末10が接続される場合を図示したが、IoTデバイス20には複数のウェアラブル端末10が接続されることとしてもかまわない。また、図1には、サーバ装置30に1つのIoTデバイス20が接続される場合を例示したが、サーバ装置30には、複数のIoTデバイス20が接続されることとしてもかまわない。
これらのうち、ウェアラブル端末10及びIoTデバイス20の間では、一例として、BLE(Bluetooth(登録商標) Low Energy)などの近距離無線通信を介してデータが授受される。これはあくまで一例であり、ウェアラブル端末10及びIoTデバイス20が有線により接続されることとしてもかまわない。また、IoTデバイス20及びサーバ装置30の間は、有線または無線を問わず、任意のネットワークを介して接続することができる。このようなネットワークの例として、3G(Generation)、LTE(Long Term Evolution)、4Gや5Gなどに対応するモバイルネットワーク、LAN(Local Area Network)やVPN(Virtual Private Network)などの構内通信網の他、インターネットなどの任意のネットワークが該当する。
ウェアラブル端末10は、上記のヘルスケア支援サービスの提供を受ける対象者が装着することにより利用されるコンピュータである。例えば、ウェアラブル端末10は、腕輪型、リストバンド型、あるいは指輪型のガジェットであってもよいし、頭部に装着されるヘッドマウントディスプレイやスマートグラスであってもよいし、また、胸部や腰部などの胴体の他、足首に装着されるタイプのデバイスであってもよい。
例えば、ウェアラブル端末10には、対象者の心拍を計測する心拍センサ11が搭載される。ここで言う「心拍数」とは、血液を送り出す心臓の拍動回数を指す。例えば、心拍センサ11に心拍数の変化に対応する血流量の変化を測定する光電脈波センサを採用することにより、単位時間あたりの心拍数を計測できる。このとき、単位時間を1分間とする場合、心拍数はbpm(beats per minute)等で表現される。また、単位時間を1秒間とする場合、心拍数はHzで表現される。この他、心拍センサ11には、心臓の電気的活動を計測する心電センサを採用することもできる。この場合、心電波形におけるR波とR波の間隔を心拍数の代わりに用いることができる。このように心拍センサ11により計測される心拍数の時系列データは、IoTデバイス20へ出力される。以下では、心拍センサ11により計測される心拍数の時系列データのことを「心拍データ」と記載する場合がある。
なお、ここでは、心拍センサ11がウェアラブル端末10に搭載される場合を例示したが、必ずしもウェアラブル端末10に搭載されずともよく、対象者が生活する環境側に設置される環境センサであってもかまわない。例えば、対象者の生体の一部が所定のサンプリング周波数で撮像される画像に関する輝度の時系列変化から心拍数を検出したり、RF(Radio Frequency)モーションセンサを用いて拍動に伴うドップラ周波数を検出したりすることにより、心拍数の検出を対象者の生体部位に非接触の状態で実現することとしてもかまわない。
IoTデバイス20は、ウェアラブル端末10をネットワークに接続する機能を一側面として有するデバイスである。このIoTデバイス20には、一例として、対象者が使用するスマートフォンや携帯電話機、PHS(Personal Handyphone System)などを始め、スレート端末やタブレット端末などの携帯端末装置が対応する。
例えば、IoTデバイス20は、ウェアラブル端末10からBLE通信等を介して通知された心拍データをネットワークを介してサーバ装置30に転送する。このようにウェアラブル端末10からIoTデバイス20を介してサーバ装置30へ転送される心拍データなどのセンサイベントは、一例として、MQTT(Message Queuing Telemetry Transport)メッセージとして転送できる。このとき、心拍データは、心拍数が計測される度にリアルタイムで伝送されることとしてもよいし、所定期間、例えば12時間、1日間、1週間や1ヶ月などにわたって蓄積してから伝送することとしてもかまわない。また、心拍データは、心拍データを受信するサーバ装置30側で対象者であるウェアラブル端末10のユーザが識別可能な状態で送信される。例えば、心拍データは、ユーザの識別情報もしくはユーザの識別情報と関連付けられたウェアラブル端末10のMAC(Media Access Control)アドレスや個体識別番号などの情報と共にサーバ装置30へ転送される。
サーバ装置30は、上記のヘルスケア支援サービスを提供するコンピュータである。例えば、サーバ装置30は、パッケージソフトウェア又はオンラインソフトウェアとして、上記のヘルスケア支援サービスに対応する機能を実現するヘルスケア支援プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置30は、上記のヘルスケア支援サービスを提供するサーバとしてオンプレミスまたはレンタルで実装することとしてもよいし、アウトソーシングによって上記のヘルスケア支援サービスを提供するクラウドとして実装することとしてもかまわない。
[課題の一側面]
上述の通り、上記の背景技術の欄で挙げた技術は、一食分の食事が一度にまとめて摂取される食事によって表れる心拍の特徴を検知するものに過ぎない。すなわち、上記の背景技術の欄で挙げた技術では、一食分のメニューが一度に提供される食事の想定しかなく、一食分のメニューが複数回に分けて提供される食事の想定がない。例えば、コース料理等の食事では、メニューに定められた品目および順序にしたがっていわゆる「皿」と呼ばれる料理が提供される。
このように複数の品目が一定の順序で摂取される場合、コース料理全体で一品あたりが占める食事量は、一食分の食べ物が一度にまとめて摂取される食事、例えば定食やセットメニュー等の食事の食事量に比べて少ない。これが一因となって、コース料理等のメニューの中の一皿の食べ物が摂取された場合に発生する心拍変化も抑えられる。このように心拍変化が抑えられる場合、心拍波形に食事らしい特徴が現れにくいので、コース料理等の食事を検知するのが困難である。
以下では、一食分の食べ物が一度にまとめて摂取される食事、例えば定食やセットメニュー等の食事のことを「通常の食事」と記載すると共に、一食分の食事が複数回に分けて摂取される食事、例えばコース料理等の食事のことを「コース料理」と記載する場合がある。
図2及び図3は、心拍データの一例を示す図である。図2及び図3に示すグラフの縦軸は、心拍数(bpm)を指し、横軸は、時間を指す。図2には、通常の食事が行われた場合に計測された心拍データh1が細線で示されると共に、心拍データh1に所定のフィルタ、例えばメジアンフィルタが適用された心拍データH1が太線で示されている。さらに、図2には、リファレンスとして、通常の食事が開始されてから終了するまでの食事期間R11がハッチングで示されている。また、図3には、コース料理が行われた場合に計測された心拍データh2が細線で示されると共に、心拍データh2にメジアンフィルタが適用された心拍データH2が太線で示されている。さらに、図3には、リファレンスとして、コース料理における一皿目の食事期間R21、二皿目の食事期間R22および三皿目の食事期間R23がハッチングで示されている。
図2に示すように、心拍データH1では、通常の食事が食事期間R11に行われることにより、心拍数の上昇が観測される。この場合、通常の食事が行われる前に観測された心拍数、例えば心拍データH1の波形で観測される心拍数の最低値をベースラインBL1とし、通常の食事による心拍上昇のピーク点p11の心拍数からベースラインBL1の心拍数を減算する。これによって、通常の食事による心拍変化のピークの振幅P11は、30bpm程度と求まる。
一方、図3に示すように、心拍データH2では、コース料理のうち一皿目の料理が食事期間R21に摂取され、二皿目の料理が食事期間R22に摂取されると共に、三皿目の料理が食事期間R23に摂取される。このようにコース料理が行われた場合にも、心拍数の上昇は観測されるが、各皿の料理が摂取されることによる心拍数の上昇幅は、いずれも通常の食事による心拍数の上昇幅には及ばない。例えば、一皿目の料理による心拍上昇のピーク点p21の心拍数からベースラインBL2の心拍数を減算することにより、一皿目の料理による心拍変化のピークの振幅P21は、10bpm程度と求まる。
これらピークの振幅P11およびピークの振幅P21を比較すると、通常の食事が行われる場合と、一皿目の料理が摂取される場合とでは、3倍程度の開きがある。これは、コース料理では各皿の料理が摂取される食事期間と食事期間の間にインターバルがあるので、一皿当たりの食べ物の摂取量が通常の食事の一食分の摂取量に比べて少ないことが一因に挙げられる。このようにコース料理が行われる場合、通常の食事が行われる場合に比べて食事らしい特徴が心拍変化として現れにくい。
例えば、心拍変化の特徴量として、食事開始後に先行して現れる第1ピークおよび第1ピークに後続して現れる第2ピークのうち、食事行為、例えば食道の蠕動運動等に伴って現れる第1ピークの振幅が算出される場合を例に挙げる。このとき、図2に示す心拍データH1で観測されるピークの振幅P11が第1ピークの振幅として算出される場合と、図3に示す心拍データH2で観測されるピークの振幅P21が第1ピークの振幅として算出される場合とを比べると、後者は前者に比べて3分の1程度しかない。このような特徴量を閾値と比較することで食事または非食事を判定したり、機械学習により生成されたモデルへ特徴量を入力することで食事または非食事のクラス分類を行ったりしても、コース料理は、通常の食事よりも検知しづらいことがわかる。
[課題解決のアプローチの一面]
そこで、本実施例に係るサーバ装置30は、上記のヘルスケア支援サービスの一環として、心拍データに複数のピークが含まれる場合、各ピークから算出される特徴量と、ピークの出現間隔とに基づいてコース料理が摂取されたか否かを判定する。
図4及び図5は、心拍データの一例を示す図である。図4及び図5には、いずれも図3に示す心拍データH2が示されている。これらのうち、図4に示す心拍データH2には、心拍データH2に含まれる3つのピークp21~p23が丸囲いの標示でピックアップして示されている。さらに、図5に示す心拍データH2には、3つのピークp21~p23ごとに面積S1~S3の特徴量がハッチングで示されている。さらに、図5には、ピークp21の出現が終了してからピークp22の出現が開始するまでの間隔がピークの出現間隔T1として示されると共に、ピークp22の出現が終了してからピークp23の出現が開始するまでの間隔がピークの出現間隔T2として示されている。
図4に示す心拍データH2には、心拍数の振幅が所定の閾値Th1を超えるピークの検出が実行される。例えば、閾値Th1には、コース料理における一皿当たりの食べ物の摂取量が通常の食事の一食分の摂取量に比べて少ない側面から、通常の食事時に観測される心拍上昇幅よりも小さい値、例えば8bpmを設定することができる。このような側面から、心拍数の振幅が上記の閾値Th1を超えるピークのことを「弱ピーク」と記載する場合がある。これによって、図4に丸囲いの標示で示される通り、心拍データH2から弱ピークp21~p23が得られる。
続いて、図5に示すように、3つの弱ピークp21~p23ごとに面積S1~S3が各弱ピークp21~p23の特徴量として算出される。例えば、弱ピークp21の開始から弱ピークp21の終了までの区間において、心拍データH2の波形およびベースラインBL2により囲まれる図形の面積S1が弱ピークp21の特徴量として算出される。これと同様にして、弱ピークp22の開始から弱ピークp22の終了までの区間において、心拍データH2の波形およびベースラインBL2により囲まれる図形の面積S2が弱ピークp22の特徴量として算出される。さらに、弱ピークp23の開始から弱ピークp23の終了までの区間において、心拍データH2の波形およびベースラインBL2により囲まれる図形の面積S3が弱ピークp23の特徴量として算出される。
さらに、図5に示すように、心拍データH2から弱ピークの出現間隔T1および出現間隔T2が算出される。ここで言う「出現間隔」とは、あくまで一側面として、ある弱ピークの出現が終了してからその次の弱ピークの出現が開始するまでの間隔を指す。このような定義の場合、2つの隣接する弱ピークにつき1つの出現間隔が算出されるので、弱ピークの数をN個としたとき、出現間隔は(N-1)個となる。図5に示す心拍データH2には、3つの弱ピークp21~p23が含まれるので、2(=3-1)個の出現間隔が求められる。すなわち、弱ピークp21の出現から終了した時点から弱ピークp22の出現が開始した時点までの期間が出現間隔T1として算出される。これと共に、弱ピークp22の出現から終了した時点から弱ピークp23の出現が開始した時点までの期間が出現間隔T2として算出される。なお、図5には、特徴量のあくまで一例として、弱ピークの面積や出現間隔を例に挙げたが、弱ピークの振幅、例えば弱ピークの心拍数およびベースラインの心拍数の差などの他の特徴量として算出することとしてもかまない。
その上で、各弱ピークの特徴量が第1の条件を満たすか否かが判定される。あくまで一例として、各弱ピークの特徴量の大小に関する順序がコース料理の各皿の摂取量の大小に関する順序と対応するか否かが判定される。例えば、コース料理では、順番が後になるにつれて摂取量が大きい食べ物が提供される側面がある。このような側面に従えば、メニューに含まれる皿が弱ピークの個数と同数である3つであるとしたとき、各皿の摂取量は、一皿目の摂取量<二皿目の摂取量<三皿目の摂取量といった大小関係の順序になる可能性が高い。このことから、弱ピークp21~p23の特徴量の大小に関する順序が弱ピークp21の面積S1<弱ピークp22の面積S2<弱ピークp23の面積S3の順、すなわちコース料理の各皿で提供される摂取量の順に対応するか否かが判定される。
これと同時または並行して、弱ピークの出現間隔が第2の条件を満たすか否かが判定される。あくまで一例として、弱ピークの出現間隔がコース料理で各皿の食べ物が提供される間隔に対応するか否かが判定される。例えば、コース料理では、メニューで定められた順番にしたがって当該順番に対応する皿が提供されるが、ある皿が提供されてから次の皿が提供されるまでには一定のインターバルが存在する。すなわち、次の皿は、その直前に提供された皿の料理が食べ終えられたのがコース料理の皿をサーブする人物に確認されてからとなる。その一方で、前の皿の料理が食べ終えられたままの状態で放置される事態も起こりづらい。このことから、上記のインターバルは、一定の時間以内に収束する可能性が高い。そこで、弱ピークの出現間隔が下限値Tminおよび上限値Tmaxにより設定される料理のサーブ間隔以内であるか否かが判定される。
ここで、各弱ピークの特徴量が第1の条件を満たす場合、対象者の心拍上昇の推移がコース料理のメニューにしたがって提供される各皿の摂取量の推移に対応する可能性が高まる。さらに、弱ピークの出現間隔が第2の条件を満たす場合、対象者の心拍上昇がコース料理で各皿の食べ物が提供される間隔に対応する可能性が高まる。言い換えれば、運動や精神的要素などの食事以外の外乱が原因となって心拍上昇が発生している可能性が低くなる。
これらのことから、本実施例では、各弱ピークの特徴量が第1の条件を満たし、かつ弱ピークの出現間隔が第2の条件を満たす場合、コース料理が摂取されたと判定する。これによって、コース料理が摂取される場合に現れる心拍変化の特徴を捉えて食事または非食事を判定することができる。したがって、コース料理の食事の検知を実現できる。
[サーバ装置30の機能的構成]
次に、本実施例に係るサーバ装置30の機能的構成について説明する。図1に示すように、サーバ装置30は、取得部31と、適用部32と、第1検知部33と、第2検知部34と、提供部35とを有する。なお、サーバ装置30は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば他の装置との間で通信制御を行う通信インタフェースなどを有することとしてもかまわない。
図1に示す取得部31、適用部32、第1検知部33、第2検知部34及び提供部35などの機能部は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサは、図示しない記憶装置、例えばHDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などからOS(Operating System)の他、上記のヘルスケア支援プログラムまたはそのモジュールである食事検知プログラムなどのプログラムを読み出す。その上で、プロセッサは、ヘルスケア支援プログラムや食事検知プログラムを実行することにより、RAM(Random Access Memory)等のメモリ上に上記の機能部に対応するプロセスを展開する。このようにプログラムが実行される結果、上記の機能部がプロセスとして仮想的に実現される。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部または機能部の一部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
上記の機能部には、HDD、光ディスクやSSDなどの記憶装置を外部記憶装置または補助記憶装置として使用できる動作環境が与えられると共に、プロセッサがアクセス可能なメモリもしくはメモリが有する記憶領域の一部がワークエリアとして割り当てられる。例えば、メモリの例として、各種の半導体メモリ素子、例えばRAMやフラッシュメモリなどの主記憶装置が対応する。また、プロセッサがアクセス可能な記憶領域は、メモリ上にワークエリアとして実現されずともよく、外部記憶装置や補助記憶装置に退避されたスワップ領域であってもかまわない。
取得部31は、心拍データを取得する処理部である。
一実施形態として、取得部31は、心拍センサ11から取得された心拍データを適用部32へ出力する。このようにウェアラブル端末10から心拍データなどのセンサイベントを取得する取得部31の機能は、一例として、MQTTサーバ用のプログラムを実行させることにより実装できる。
適用部32は、心拍データに所定のフィルタを適用する処理部である。
一実施形態として、適用部32は、取得部31により取得された心拍データに中央値を抽出するメジアンフィルタを適用する。このようにメジアンフィルタが適用された心拍データは、通常の食事を検知する第1検知部33およびコース料理を検知する第2検知部34へ出力される。
ここで、心拍データにメジアンフィルタを適用するのは、1つの側面として、心拍データには急峻なノイズが含まれるからである。すなわち、心拍数は、コンピュータ上では42bpm~240bpmの離散値として観測されるが、時間的に連続して変化する性質を有する。このため、心拍数が上昇したり、あるいは上昇した心拍数が降下したりする場合でも、ある時点の心拍数が次の時点でかけ離れた値には変化しにくい。例えば、心拍データにおいて80bpm、120bpm、81bpmといった心拍数が時系列に観測されたとしても、現実には、心拍数が80bpmから120bpmへ上昇したり、心拍数が120bpmから81bpmへ下降したりする心拍変化は起こりづらい。このため、心拍データにメディアフィルタを適用することにより、各時点における心拍数の観測値は移動中央値に置き換えられる。例えば、上記の例で言えば、120bpmの観測値は3つの心拍数の中央値である81bpmへ置き換えられる。これによって、急峻なノイズを含む心拍データが心拍の性質に反しない程度に滑らかにされる。
なお、ここでは、心拍データに適用するフィルタの一例として、メジアンフィルタを例に挙げたが、これに限定されない。例えば、ローパスフィルタ等の他のフィルタを心拍データに適用することができるのは言うまでもない。
第1検知部33は、通常の食事を検知する処理部である。
一実施形態として、第1検知部33は、適用部32によりメジアンフィルタが適用された心拍データに所定の時間長、例えば210分間を持つ第1窓を設定する。続いて、第1検知部33は、第1窓が設定された区間に対応する部分データを切り出す。このように第1窓に対応する部分データが切り出された後、第1検知部33は、前回に設定された第1窓を所定のずらし幅、例えば5分間だけシフトさせる。その上で、第1検知部33は、シフト後の第1窓に対応する部分データを切り出す。以下、心拍データのうち第1窓に対応する部分が切り出された部分データのことを「第1窓データ」と記載する場合がある。
このように切り出された第1窓データごとに、第1検知部33は、当該第1窓データの開始時刻から所定の期間、例えば60分間までの期間を食事前とし、第1窓データの開始時刻から所定の時間後を「食事開始時刻」として、通常の食事に対応する心拍変化を表す特徴量を算する。
ここで、通常の食事に関する特徴量の一例について説明する。例えば、通常の食事に伴って食事開始後に発生する心拍数の変化には、時間経過に伴って心拍数が上昇(増加)して下降(減少)に転ずる2つのピークが存在する。すなわち、食事開始時刻からの時間経過に伴って、通常の食事が開始された後に先行して出現する心拍変化のピークである「第1ピーク」と、第1ピークに後続して出現する心拍変化のピークである「第2ピーク」とが出現する。なお、以下では、第1ピークの部分の波形を含む所定の領域のことを「第1ピーク領域」と記載し、第2ピークの部分の波形を含む所定の領域のことを「第2ピーク領域」と記載する場合がある。
このうち、「第1ピーク」は、食事行為に伴う心拍上昇であり、例えば、咀嚼や食道の蠕動運動に起因する心拍数上昇と推定される。また、「第2ピーク」は、例えば、食事行為により摂取された摂取物、すなわち食物等に対する消化器官(胃腸等)内の消化活動に起因する心拍数上昇と推定される。このことから、食事後には、第1ピークが現れた後に第2ピークが現れ、かつ第1ピークよりも第2ピークの方が長期間にわたる傾向にあるという知見を得ることができる。
これら第1ピークおよび第2ピークの傾向から、第1検知部33は、一例として、メジアンフィルタ適用後の心拍データから、下記の特徴量を算出することができる。例えば、第1ピーク領域a1の面積、及び、第2ピーク領域a2の面積などを特徴量として算出できる。また、第1ピークへ至るまでの心拍数の上昇速度、第2ピークへ至るまでの心拍数の上昇速度、第1ピークからの心拍数の回復速度、及び、第2ピークからの心拍数の回復速度なども特徴量として算出できる。また、第1ピークを形成する波形のうち心拍数が最大の値をとるピークの振幅P1、及び、第2ピークを形成する波形のうち心拍数が最大の値をとるピークの振幅P2を特徴量として算出できる。また、食事開始時刻を始点としたとき、ピークの振幅P1が計測される時刻を終点とする経過時間t1、ピークの振幅P1を経た心拍数が所定値まで回復する時刻を終点とする経過時間t2、ピークの振幅P2が計測される時刻を終点とする経過時間t3、及び、ピークの振幅P2を経た心拍数が所定値まで回復する時刻を終点とする経過時間t4などを特徴量として算出することもできる。この他、食事開始時刻以前に計測される心拍数のうち最低の値をとる食事前心拍数と、食事開始時刻以前の区間で食事前心拍数から食事開始時刻の心拍数までの心拍数の上昇幅により形成される領域の面積とを特徴量として算出することもできる。
このような特徴量が算出された後、第1検知部33は、上記の特徴量がベクトル化された特徴量ベクトルを入力として食事らしさを表す確信度を出力するモデルを用いて、第1窓データのクラス分類、例えば通常の食事または非通常の食事を行うことにより、通常の食事を検知する。例えば、上記のモデルが-1から+1までの値を出力する場合、第1検知部33は、第1窓データごとに当該第1窓データから算出された特徴量ベクトルを上記のモデルに入力する。この結果、上記のモデルからの出力値が所定値、例えば「0」以上である場合、第1検知部33は、当該第1窓データを通常の食事に分類する。一方、食事推定モデルからの出力値が所定値、例えば「0」未満である場合、第1検知部33は、当該第1窓データを非通常の食事に分類する。なお、上記のモデルは、サポートベクタマシン、ブースティングやニューラルネットワークなどの任意のアルゴリズムにしたがって、部分データに正例「通常の食事」または負例「非通常の食事」の正解のラベルが付与された教師データに機械学習を実行することにより得ることができる。
このように、第1検知部33は、第1窓データごとに当該第1窓データを通常の食事または非通常の食事に分類することができる。
第2検知部34は、コース料理の摂取を検知する処理部である。第2検知部34は、図1に示すように、検出部34A、設定部34B、抽出部34C、算出部34Dおよび判定部34Eを有する。
検出部34Aは、心拍データから上記の弱ピークを検出する処理部である。
一実施形態として、検出部34Aは、適用部32によりメジアンフィルタが適用された心拍データから上記の弱ピークを検出する。例えば、検出部34Aは、メジアンフィルタ適用後の心拍データから検出されるピーク点で計測される心拍数と、当該ピーク点への心拍上昇が開始する開始点で計測される心拍数との差分が上記の閾値Th1を超える弱ピークを検出する。ここで、上記の「ピーク点」の一例として、上記の心拍データの微分波形で観測される上に凸のゼロクロス点が用いられる。さらに、上記の「開始点」の一例として、ピーク点よりも前に観測される下に凸のゼロクロス点のうち心拍数が下がりきった点が用いられる。
設定部34Bは、心拍データに第2窓を設定する。
一実施形態として、設定部34Bは、適用部32によりメジアンフィルタが適用された心拍データに所定の時間長、例えば90分間を持つ第2窓を設定する。ここで言う「第2窓」は、通常の食事の摂取に伴って発生する第2ピークの心拍上昇が平常の心拍数に回復するまでの変化を捉えるための第1窓とは用途が異なる。すなわち、第2窓は、一側面として、コース料理で提供される複数の皿の食べ物が摂取されるのに伴って発生する複数の弱ピークを捉えるために用いられる。例えば、第2窓には、コース料理が摂取される場合にかかると予想される最大の時間長、例えば90分間が設定される。
続いて、設定部34Bは、第2窓が設定された区間に対応する部分データを切り出す。このように第2窓に対応する部分データが切り出された後、設定部34Bは、前回に設定された第2窓を所定のずらし幅、例えば5分間だけシフトさせる。その上で、設定部34Bは、は、シフト後の第2窓に対応する部分データを切り出す。以下、心拍データのうち第2窓に対応する部分が切り出された部分データのことを「第2窓データ」と記載する場合がある。
抽出部34Cは、上記の第2窓データからコース料理の消化に伴って発生する心拍変化に対応する長期トレンドを抽出する処理部である。
ここで、上記の長期トレンドを抽出するのは、コース料理において終盤の皿の摂取に対応して現れる弱ピークに重畳する、序盤の皿の消化に対応して現れる長期トレンドの影響を心拍データから除去するためである。
すなわち、コース料理において提供されるメニューの順番が進むにつれてその順番よりも前に摂取された食べ物の消化活動も進む。このように、皿の料理が摂取される食事行為、例えば食道の蠕動運動等に加えて、それよりも前の順番で摂取された食べ物の消化活動が並行して行われる分、メニューの序盤に比べてメニューの終盤の方が心拍の上昇幅が大きくなりやすい傾向がある。図3の例で言えば、弱ピークの振幅は、一皿目、二皿目、三皿目の順に増加する傾向にあるので、メニューの終盤の方がメニューの序盤に比べて大きくなる。このように、序盤の皿の食べ物の消化に伴って現れる心拍変化が終盤の皿に対応して現れる弱ピークに重畳したままでは、一側面として、終盤の弱ピークから指標化される特徴量、例えば振幅や面積などが過大に評価されることがある。これが一因となって、コース料理の各皿に対応して現れる弱ピークの特徴そのものを評価してコース料理の食事を検知するのが困難になる。このことから、弱ピークに重畳する消化の心拍変化の影響を除去する側面から、第2窓データから長期トレンドが抽出される。
このとき、抽出部34Cは、設定部34Bにより心拍データから切り出される全ての第2窓データから必ずしも長期トレンドを抽出せずともかまわない。例えば、抽出部34Cは、設定部34Bにより第2窓データが切り出される度に、当該第2窓データと、第1検知部33により通常の食事に分類された第1窓データとが重複するか否かを判定する。このとき、通常の食事のクラスに分類された第1窓データと第2窓データが重複する場合、第1検知部33により既に食事が検知できているので、必ずしも改めてコース料理の食事として検知し直さずともかまわない。一方、通常の食事のクラスに分類された第1窓データと第2窓データが重複しない場合、第1窓データから算出される通常の食事の特徴量では評価されづらいコース料理の特徴が見逃されている可能性が残る。このため、抽出部34Cは、第2窓データに含まれる弱ピークの個数が所定数、例えば「3」以上であるか否かをさらに判定する。このとき、第2窓データに含まれる弱ピークの個数が所定数未満である場合、複数の皿の食べ物が摂食されていない可能性が高まる。この場合、コース料理の食事が行われていないと識別し、以降の処理を中止することができる。一方、第2窓データに含まれる弱ピークの個数が所定数以上である場合、複数の皿の食べ物が摂食された可能性が高まる。この場合、上記の長期トレンドの抽出が開始される。
例えば、抽出部34Cは、第2窓データに次のような処理を行うことで長期トレンドを抽出することができる。具体的には、抽出部34Cは、第2窓データに所定のフィルタ、例えばローパスフィルタを適用することにより長期トレンドに対応する心拍波形を抽出する。このとき、弱ピーク群に対応する短期トレンドの成分を除去する側面から、ローパスフィルタには、カットオフ周波数の一例として、0.001Hzを設定することができる。その後、抽出部34Cは、第2窓データから抽出された長期トレンドの心拍波形に線形回帰分析を適用することにより得られる回帰直線の傾きをトレンド係数として算出する。そして、抽出部34Cは、長期トレンドのトレンド係数が正の値であるか否か、すなわち長期トレンドが右肩上がりの直線であるか否かを判定する。このとき、長期トレンドのトレンド係数が正の値である場合、第2窓データから食べ物の摂食活動と共に消化活動が観測されている可能性が高まるので、コース料理の食事の検知が継続される。一方、長期トレンドのトレンド係数が正の値でない場合、第2窓データから消化活動が観測できない可能性が高まるので、コース料理の食事の検知が中断される。
図6は、心拍データの一例を示す図である。図6に示すグラフの縦軸は、心拍数(bpm)を指し、横軸は、時間を指す。図6には、メジアンフィルタ適用後の心拍データH6が示されている。図6に示すように、心拍データH6からピーク点およびその開始点における心拍数の差分が閾値Th1以上である8つの弱ピークp61~p68が検出される。このように心拍データH6から弱ピークの検出が行われた後、心拍データH6には、第2窓が設定される。
図7は、第2窓データの一例を示す図である。図7には、上記の心拍データH6と共に、心拍データH6に設定された第2窓W2に対応する区間がハッチングで示されている。図7に示す通り、心拍データH6には、コース料理が摂取される場合にかかると予想される最大の時間長、例えば90分間程度の第2窓が設定される。これによって、心拍データH6から第2窓W2に対応する部分データ、すなわち第2窓データが切り出される。
図8は、長期トレンドの一例を示す図である。図8には、上記の心拍データH6のうち第2窓W2に対応する部分データが第2窓データ80として抜粋して示されている。図8に示す第2窓データ80は、通常の食事に分類された第1窓データと重複しないものと仮定する。図8に示すように、第2窓データ80には、3つの弱ピークp62~p64が含まれるので、長期トレンドの抽出が実行される。すなわち、第2窓データ80にローパスフィルタを適用することにより、3つの弱ピークp62~p64に対応する短期トレンドの成分が除去された長期トレンドの心拍波形N1が抽出される。このように抽出された長期トレンドの心拍波形N1には、線形回帰分析が適用される。
図9は、回帰直線の一例を示す図である。図9には、図8に示す長期トレンドの心拍波形N1に線形回帰分析を適用することにより得られた回帰直線L1が示されている。図9に示すように、長期トレンドの回帰直線L1は、右肩上がりの直線であるので、回帰直線L1の傾き、すなわちトレンド係数は、正の値として観測される。この場合、第2窓データ80から食べ物の摂食活動と共に消化活動が観測されており、第2窓W2に対応する区間でコース料理の食事が行われる可能性が高まる。それ故、第2窓データ80には、弱ピーク群の特徴量を算出する処理が実行される。
算出部34Dは、弱ピーク群の特徴量を算出する処理部である。
一実施形態として、算出部34Dは、弱ピーク群の特徴量を算出するのに先立って、第2窓データから長期トレンドを除去することができる。例えば、算出部34Dは、設定部34Bにより第2窓が設定されることにより切り出された第2窓データの心拍波形から、抽出部34Cにより抽出された長期トレンドの心拍波形を減算することにより、弱ピーク群に対応する短期トレンドの心拍波形を算出する。このとき、算出部34Dは、第2窓データに含まれる弱ピーク群の中で先頭の弱ピークの開始点の心拍数の値がゼロになるように短期トレンドの心拍波形のベースラインを調整する。例えば、算出部34Dは、短期トレンドの心拍波形における各時刻の心拍数から、先頭の弱ピークの開始点における心拍数の値を減算する。このようにベースラインを調整するのは、第2窓データの心拍波形から長期トレンドの心拍波形を減算することにより、先頭の弱ピークの開始点の心拍数の値が負になることがあるからである。この場合、弱ピーク群の特徴量の1つとして、弱ピークの面積が算出される場合に先頭の弱ピークの開始点の心拍数が負の値に落ち込んだ分、先頭の弱ピークの面積が他の弱ピークの面積に比べて割り引いて評価される事態が起こり得る。これを回避する側面から、短期トレンドの心拍波形のベースラインが調整される。
このように短期トレンドの心拍波形のベースラインが調整された後、算出部34Dは、ベースライン調整後の短期トレンドの心拍波形から弱ピークのピーク点への心拍上昇が開始する開始点および弱ピークのピーク点からの心拍降下が終了する終了点を特定する。図10は、短期トレンドの一例を示す図である。図10には、図8に示す第2窓データ80の心拍波形から長期トレンドの心拍波形N1が除去された後にベースラインの調整が行われた短期トレンドの心拍波形Dが示されている。図10に示すように、算出部34Dは、弱ピークp62~p64ごとに、弱ピークのピーク点への心拍上昇が開始する開始点および弱ピークのピーク点からの心拍降下が終了する終了点を特定する。例えば、弱ピークp62の例で言えば、三角形のマークで示される通り、弱ピークp62のピーク点よりも前に遡って心拍数が下がりきる点が開始点p62sとして特定される。さらに、バツのマークで示される通り、弱ピークp62のピーク点に後続して心拍数が下がりきる点が終了点p62eとして特定される。さらに、弱ピークp63および弱ピークp64についても同様に、開始点p63sおよび終了点p63eと、開始点p64sおよび終了点p64eとが特定される。
これら弱ピークの開始点および終了点が特定された後、算出部34Dは、弱ピーク群の特徴量として、(1)弱ピークの面積、(2)弱ピークの出現間隔、並びに、(3)弱ピークの継続時間を算出する。
(1)弱ピークの面積
例えば、図10に示す弱ピークp62~p64の例で言えば、3つの弱ピークp62~p64ごとに面積S62~S64が各弱ピークp62~p64の特徴量として算出される。例えば、弱ピークp62の開始点p62sから終了点p62eの終了までの区間において、短期トレンドの心拍波形DおよびベースラインBL3により囲まれる図形の面積S62が弱ピークp62の特徴量として算出される。これと同様にして、弱ピークp63の開始点p63sから終了点p63eの終了までの区間において、短期トレンドの心拍波形DおよびベースラインBL3により囲まれる図形の面積S63が弱ピークp63の特徴量として算出される。さらに、弱ピークp64の開始点p64sから終了点p64eの終了までの区間において、短期トレンドの心拍波形DおよびベースラインBL3により囲まれる図形の面積S64が弱ピークp64の特徴量として算出される。
(2)弱ピークの出現間隔
また、図10に示す弱ピークp62~p64の例で言えば、3つの弱ピークp62~p64が含まれるので、2(=3-1)個の出現間隔が求められる。すなわち、弱ピークp62の終了点p62eから弱ピークp63の開始点p63sまでの期間が出現間隔T11として算出される。これと共に、弱ピークp63の終了点p63eから弱ピークp64の開始点p64sまでの期間が出現間隔T12として算出される。
(3)弱ピークの継続時間
さらに、図10に示す弱ピークp62~p64の例で言えば、3つの弱ピークp62~p64ごとにその継続時間C62~C64が各弱ピークp62~p64の特徴量として算出される。例えば、弱ピークp62の場合、弱ピークp62の開始点p62sから弱ピークp62の終了点p62eの終了までの時間長が継続時間C62として算出される。また、弱ピークp63の場合、弱ピークp63の開始点p63sから弱ピークp63の終了点p63eの終了までの時間長が継続時間C63として算出される。さらに、弱ピークp64の場合、弱ピークp64の開始点p64sから弱ピークp64の終了点p64eの終了までの時間長が継続時間C64として算出される。
判定部34Eは、コース料理が摂取されたか否かを判定する処理部である。あくまで一例として、判定部34Eは、算出部34Dにより算出された弱ピーク群の特徴量が所定の条件を満たすか否かを判定する。
一側面として、判定部34Eは、各弱ピークの面積が第1の条件を満たすか否かを判定する。例えば、判定部34Eは、各弱ピークの特徴量の大小に関する順序がコース料理の各皿の摂取量の大小に関する順序と対応するか否かを判定する。すなわち、コース料理では、順番が後になるにつれて摂取量が大きい食べ物が提供される側面があるので、各皿の摂取量は、一皿目の摂取量<二皿目の摂取量<三皿目の摂取量といった大小関係の順序になる可能性が高い。このことから、判定部34Eは、各弱ピークの面積が先頭の弱ピークから順番に増加しているか否かを判定する。例えば、図10に示す3つの弱ピークp62~p64の例で言えば、判定部34Eは、弱ピークp62~p64の面積S62~S64の大小の順序が弱ピークp62の面積S62<弱ピークp63の面積S63<弱ピークp64の面積S64の順、すなわちコース料理の各皿で提供される摂取量の順に対応するか否かを判定する。
他の側面として、判定部34Eは、弱ピークの出現間隔が第2の条件を満たすか否かを判定する。例えば、判定部34Eは、弱ピークの出現間隔がコース料理で各皿の食べ物が提供される間隔に対応するか否かを判定する。図10に示す3つの弱ピークp62~p64の例で言えば、判定部34Eは、弱ピークの出現間隔T11および弱ピークの出現間隔T12が下限値Tminおよび上限値Tmaxにより設定される料理のサーブ間隔以内であるか否かを判定する。
更なる側面として、判定部34Eは、各弱ピークの継続時間が第3の条件を満たすか否かを判定する。すなわち、コース料理では、皿ごとに当該皿の食べ物が摂取され終わるまでに一定の時間が消費される。このように一皿あたりで食べ物の摂取に使用される時間のことを「摂取所要時間」と記載する場合がある。この摂取所要時間には、コース料理の一皿あたりの摂取量が定食やセットメニューなどの通常の食事全体の摂取量に比べれば少ない側面から、通常の食事が行われる所要時間よりも短い時間長を設定することができる。このことから、判定部34Eは、弱ピークの継続時間が一皿当たりの摂取所要時間以内であるか否かを判定する。例えば、図10に示す3つの弱ピークp62~p64の例で言えば、判定部34Eは、弱ピークp62の継続時間C62、弱ピークp63の継続時間C63および弱ピークp64の継続時間C64が下限値Dminおよび上限値Dmaxにより設定される一皿当たりの摂取所要時間以内であるか否かを判定する。
ここで、各弱ピークの特徴量が第1の条件を満たす場合、対象者の心拍上昇の推移がコース料理のメニューにしたがって提供される各皿の摂取量の推移に対応する可能性が高まる。また、弱ピークの出現間隔が第2の条件を満たす場合、対象者の心拍上昇の発生間隔がコース料理で各皿の食べ物が提供される間隔に対応する可能性が高まる。言い換えれば、運動や精神的要素などの食事以外の外乱が原因となって心拍上昇が発生している可能性が低くなる。さらに、各弱ピークの継続時間が第3の条件を満たす場合、対象者の心拍上昇の継続時間がコース料理で各皿の食べ物が摂取され終わるまでの期間に対応する可能性が高まる。
図11は、弱ピークの一例を示す図である。図11には、食事以外の要因、例えば会話や緊張が一因となって現れる弱ピーク群が時系列に示されている。図11に示すように、会話や緊張が一因となって弱ピークが現れる場合、弱ピークとして現れる心拍上昇、例えば面積や振幅の大きさ、弱ピークの出現間隔、弱ピークの継続時間は、不規則となる。このため、短期トレンドの心拍波形Dから複数の弱ピークが検出された場合でも、第1の条件~第3の条件の全ての条件を偶然に満たす可能性は低い。このため、第1の条件~第3の条件を用いる条件判定により、食事以外の要因、例えば会話や緊張が一因となって現れる弱ピーク群がコース料理の食事と誤検知されるのを抑制できる。
これらの側面から、判定部34Eは、各弱ピークの特徴量が第1の条件を満たし、弱ピークの出現間隔が第2の条件を満たし、かつ各弱ピークの継続時間が第3の条件を満たす場合、当該第2窓データにおいてコース料理が摂取されたと判定する。この場合、判定部34Eは、コース料理の食事時間を算出する。例えば、図10に示す短期トレンドの心拍波形Dの例で言えば、判定部34Eは、先頭の弱ピークp62の開始点p62sを食事開始時刻に設定すると共に末尾の弱ピークp64のピーク点を食事終了時刻に設定する。その上で、判定部34Eは、これら食事開始時刻および食事終了時刻の差分、例えば「食事終了時刻-食事開始時刻」を計算することにより、コース料理の食事時間を算出する。
なお、ここでは、コース料理の各皿で提供される摂取量の順序の一例として、一皿目の摂取量<二皿目の摂取量<三皿目の摂取量といった大小関係の順序を例示したが、コース料理の各皿で提供される摂取量の順序は、必ずしも上記の例に限定されない。
例えば、コース料理では、メニューによって必ずしも各皿の摂取量が上記の順序を満たさない場合がある。図12は、弱ピークの一例を示す図である。図12には、前菜、メイン、デザートの順に各皿が提供される場合に現れる弱ピークが時系列に示されている。例えば、前菜、メイン、デザートの各皿が提供される場合、摂取量の順序は、デザート(三皿目)の摂取量<前菜(一皿目)の摂取量<メイン(二皿目)の摂取量といった大小関係の順序になる。これら摂取量の順序は、各弱ピークの特徴量の大小に関する順序とも一致する。すなわち、図12に示すように、弱ピークの面積は、デザートに対応して現れる弱ピーク、前菜に対応して現れる弱ピーク、メインに対応して現れる弱ピークの順となる。このように、コース料理のメニューも画一的でないことから、コース料理のメニューのパターンごとに各皿で提供される摂取量の順序を設定しておき、コース料理のメニューのパターンごとに各弱ピークの特徴量の大小に関する順序が当該パターンに定められた各皿の摂取量の大小に関する順序と対応するか否かを判定することもできる。この場合、コース料理のメニューのパターンのうちいずれかのパターンの順序に各弱ピークの特徴量の大小に関する順序が対応する場合、第1の条件を満たすと判定することとすればよい。
提供部35は、上記のヘルスケア支援サービスを提供する処理部である。
一実施形態として、提供部35は、第1検知部33により検知された通常の食事に関する食事時間、および、第2検知部34により検知されたコース料理の食事に関する食事時間を記録したり、それまでに記録された食事時間から所定期間、例えば1週間などにわたる食事時間帯の一覧表を生成した上で出力したり、それまでに記録された食事時間から食習慣またはダイエットに関する分析を行った上で各種のアドバイスを出力したりする。なお、ここで挙げたヘルスケア支援サービスに対応する処理は、バックエンドで実行するサービスやアプリケーション、AI、サーバ装置30外部のコンピュータで行われることとしてもかまわない。また、ここでは、食事時間が上記のヘルスケア支援サービスに用いられる場合を例示したが、必ずしも食事時間が上記のヘルスケア支援サービスに用いられずともよく、食事開始時刻、食事終了時刻、食事時間もしくはこれらのうち少なくともいずれか1つを上記のヘルスケア支援サービスに用いることができる。
図13は、ヘルスケア支援サービスの一例を示す図である。図13には、生活習慣モニタリングが実施される場合の出力例が示されている。なお、図13に示す表示レイアウトは、あくまで一例であり、図13に示される例に限定されないことは言うまでもない。
図13に示すように、1週間に含まれる日ごとに食事時間に関するタイムテーブルを表示させることができる。かかるタイムテーブルでは、通常の食事が行われた食事時間の帯と、コース料理の食事が行われた食事時間の帯との間で表示形態が区別されている。この表示形態の区別は、表示色を変えることにより実現されることとしてもよいし、フォントや塗り潰しを変えることにより実現されることとしてもかまわない。これにより、食事イベントが通常の食事またはコース料理の食事のいずれであるのかを区別させることができる。このようなタイムテーブルに加えて、生活習慣に関するアドバイス等のメッセージも表示させることができる。例えば、食事イベントの中でも夕食が夜9時以降に行われる頻度が所定の頻度、例えば週2回を超える場合、図13に示すように、「早めに夕食をとりましょう」や「運動しましょう」などのメッセージを表示させることができる。この他、午前6時から正午までに食事イベントが存在しない日が存在する場合、「朝食をとる習慣をつけましょう」などのメッセージを表示させることができる。
[処理の流れ]
次に、本実施例に係るサーバ装置30の処理の流れについて説明する。なお、ここでは、サーバ装置30により実行される(1)ヘルスケア支援処理を説明した後に、ヘルスケア支援処理のサブルーチンとして実行される(2)第2検知処理を説明することとする。
(1)ヘルスケア支援処理
図14は、実施例1に係るヘルスケア支援処理の手順を示すフローチャートである。この処理は、一例として、ウェアラブル端末10に搭載された心拍センサ11から心拍データが取得される度に開始される。
図14に示すように、取得部31により心拍データが取得されると(ステップS101)、適用部32は、ステップS101で取得された心拍データに中央値を抽出するメジアンフィルタを適用する(ステップS102)。これにより、急峻なノイズを含む心拍データが心拍の性質に反しない程度に滑らかにフィルタ処理された心拍データを得ることができる。
続いて、第1検知部33は、ステップS102でメジアンフィルタが適用された心拍データから通常の食事を検知する「第1検知処理」を実行する(ステップS103)。さらに、第2検知部34は、ステップS102でメジアンフィルタが適用された心拍データからコース料理の食事を検知する「第2検知処理」を実行する(ステップS104)。
その後、提供部35は、ステップS103で検知された通常の食事に関する食事時間およびステップS104で検知されたコース料理の食事に関する食事時間に基づいて上記のヘルスケア支援サービスに対応する出力、例えばタイムテーブルやアドバイスを生成して出力し(ステップS105)、処理を終了する。
(2)第2検知処理
図15は、実施例1に係る第2検知処理の手順を示すフローチャートである。この処理は、一側面として、図14に示すステップS104の処理に対応する。図15に示すように、検出部34Aは、ステップS102でメジアンフィルタが適用された心拍データから検出されるピーク点で計測される心拍数と、当該ピーク点への心拍上昇が開始する開始点で計測される心拍数との差分が上記の閾値Th1を超える弱ピークを検出する(ステップS201)。
続いて、設定部34Bは、ステップS102でメジアンフィルタが適用された心拍データに所定の時間長、例えば90分間を持つ第2窓を設定する(ステップS202)。これによって、メジアンフィルタが適用された心拍データから第2窓に対応する区間の部分データが第2窓データとして切り出される。
そして、抽出部34Cは、ステップS202で第2窓が設定されることにより切り出された第2窓データと、ステップS104の第1検知処理で通常の食事に分類された第1窓データとが重複するか否かを判定する(ステップS203)。
このとき、通常の食事のクラスに分類された第1窓データと第2窓データが重複する場合(ステップS203Yes)、第1検知部33により既に食事が検知できているので、必ずしも改めてコース料理の食事として検知し直さずともかまわない。この場合、ステップS213の処理へ移行する。
一方、通常の食事のクラスに分類された第1窓データと第2窓データが重複しない場合(ステップS203No)、第1窓データから算出される通常の食事の特徴量では評価されづらいコース料理の特徴が見逃されている可能性が残る。このため、抽出部34Cは、第2窓データに含まれる弱ピークの個数が所定数、例えば「3」以上であるか否かをさらに判定する(ステップS204)。
このとき、第2窓データに含まれる弱ピークの個数が所定数未満である場合(ステップS204No)、複数の皿の食べ物が摂食されていない可能性が高まる。この場合、コース料理の食事が行われていないと識別できる。この場合、ステップS213の処理へ移行する。
一方、第2窓データに含まれる弱ピークの個数が所定数以上である場合(ステップS204Yes)、複数の皿の食べ物が摂食された可能性が高まる。この場合、抽出部34Cは、ステップS202で得られた第2窓データに所定のフィルタ、例えばローパスフィルタを適用することにより長期トレンドに対応する心拍波形を抽出する(ステップS205)。
続いて、抽出部34Cは、ステップS205で抽出された長期トレンドの心拍波形に線形回帰分析を適用することにより得られる回帰直線の傾きが正の値であるか否か、すなわち長期トレンドが右肩上がりの直線であるか否かを判定する(ステップS206)。
このとき、長期トレンドのトレンド係数が正の値でない場合(ステップS206No)、第2窓データから消化活動が観測できない可能性が高まる。この場合、ステップS213の処理へ移行する。
ここで、長期トレンドのトレンド係数が正の値である場合(ステップS206Yes)、第2窓データから食べ物の摂食活動と共に消化活動が観測されている可能性が高まるので、コース料理の食事の検知が継続される。
すなわち、算出部34Dは、ステップS202で得られた第2窓データの心拍波形から、ステップS205で抽出された長期トレンドの心拍波形を減算することにより、弱ピーク群に対応する短期トレンドの心拍波形を算出する(ステップS207)。
このとき、算出部34Dは、第2窓データに含まれる弱ピーク群の中で先頭の弱ピークの開始点の心拍数の値がゼロになるように短期トレンドの心拍波形のベースラインを調整する(ステップS208)。
その後、算出部34Dは、ベースライン調整後の短期トレンドの心拍波形から弱ピークのピーク点への心拍上昇が開始する開始点および弱ピークのピーク点からの心拍降下が終了する終了点を特定する(ステップS209)。その上で、算出部34Dは、弱ピーク群の特徴量として、弱ピークの面積、弱ピークの出現間隔、並びに、弱ピークの継続時間を算出する(ステップS210)。
そして、判定部34Eは、ステップS210で算出された弱ピーク群の特徴量が第1の条件、第2の条件および第3の条件を満たすか否かを判定する(ステップS211)。
ここで、各弱ピーク群の特徴量が第1の条件、第2の条件および第3の条件を満たす場合(ステップS211Yes)、当該第2窓データにおいてコース料理が摂取されたと判定する。この場合、判定部34Eは、先頭の弱ピークの開始点を食事開始時刻に設定すると共に末尾の弱ピークのピーク点を食事終了時刻に設定した上で、食事開始時刻および食事終了時刻の差分を計算することにより、コース料理の食事時間を算出する(ステップS212)。
そして、メジアンフィルタが適用された心拍データに対する第2窓の設定が終了するまで(ステップS213No)、ステップS202の処理へ移行する。すなわち、設定部34Bは、前回に設定された第2窓を所定のずらし幅だけシフトさせて設定することにより、シフト後の第2窓に対応する区間の部分データを第2窓データとして切り出す。以降、ステップS203~ステップS212までの処理が実行される。
その後、そして、メジアンフィルタが適用された心拍データに対する第2窓の設定が終了した場合(ステップS213Yes)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置30は、心拍データに複数のピークが含まれる場合、各ピークから算出される特徴量と、ピークの出現間隔とに基づいてコース料理が摂取されたか否かを判定する。これによって、コース料理が摂取される場合に現れる心拍変化の特徴を捉えて食事または非食事を判定することができる。したがって、本実施例に係るサーバ装置30によれば、コース料理の食事の検知を実現できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[コース料理のパターン]
コース料理では、メニューによって必ずしも各皿の摂取量が上記の実施例1で例に挙げた順序を満たさない場合がある。図16は、弱ピークの一例を示す図である。図16には、前菜、スープ、メイン1、メイン2、デザートの順に各皿が提供されるフランス料理のメニューで現れる弱ピークが時系列に示されている。このメニューの場合、摂取量の大小関係の順序は、デザート(五皿目)の摂取量<前菜(一皿目)の摂取量≒スープ(二皿目)の摂取量<メイン1(三皿目)の摂取量≒メイン2(四皿目)の摂取量といった大小関係の順序になる。これら摂取量の順序は、図16に示す通り、各弱ピークの特徴量の大小に関する順序とも一致する。すなわち、図16に示すように、弱ピークの面積も、デザートに対応して現れる弱ピーク、前菜およびスープに対応して現れる弱ピーク、メイン1およびメイン2に対応して現れる弱ピークの順となる。
図17は、弱ピークの一例を示す図である。図17には、先付、お凌ぎ、お椀、八寸、焼き物、ご飯、水菓子の順に各皿が提供される懐石料理のメニューで現れる弱ピークが時系列に示されている。このメニューの場合、摂取量の大小関係の順序は、先付(一皿目)の摂取量≒お凌ぎ(二皿目)の摂取量<水菓子(七皿目)の摂取量<お椀(三皿目)の摂取量≒八寸(四皿目)の摂取量<ご飯(六皿目)の摂取量<焼き物(五皿目)の摂取量といった大小関係の順序になる。これら摂取量の順序は、図17に示す通り、各弱ピークの特徴量の大小に関する順序とも一致する。すなわち、図17に示すように、弱ピークの面積も、先付およびお凌ぎに対応して現れる弱ピーク、水菓子に対応して現れる弱ピーク、お椀および八寸に対応して現れる弱ピーク、ご飯に対応して現れる弱ピーク、焼き物に対応して現れる弱ピークの順となる。
図18は、弱ピークの一例を示す図である。図17には、前菜、メイン、デザートの順に各皿が提供されるランチコースのメニューで現れる弱ピークが時系列に示されている。このメニューの場合、摂取量の大小関係の順序は、デザート(三皿目)の摂取量<前菜(一皿目)の摂取量<メイン(三皿目)の摂取量といった大小関係の順序になる。これら摂取量の順序は、図18に示す通り、各弱ピークの特徴量の大小に関する順序とも一致する。すなわち、図18に示すように、弱ピークの面積も、デザートに対応して現れる弱ピーク、前菜に対応して現れる弱ピーク、メインに対応して現れる弱ピークの順となる。
このように、コース料理のメニューも画一的でないことから、コース料理のメニューのパターンごとに各皿で提供される摂取量の順序を設定しておき、コース料理のメニューのパターンごとに各弱ピークの特徴量の大小に関する順序が当該パターンに定められた各皿の摂取量の大小に関する順序と対応するか否かを判定することもできる。この場合、コース料理のメニューのパターンのうちいずれかのパターンの順序に各弱ピークの特徴量の大小に関する順序が対応する場合、第1の条件を満たすと判定することとすればよい。
[スタンドアローン]
上記の実施例1では、上記のヘルスケア支援システム1をクライアントサーバシステムとして構築される場合を例示したが、必ずしもクライアントサーバシステムとして構築されずともよい。例えば、サーバ装置30が有する機能部により実行される図14や図15に示す処理は、ウェアラブル端末10に接続されたIoTデバイス20によりスタンドアローンで実行されることとしてもかまわない。さらに、ウェアラブル端末10及びIoTデバイス20は、必ずしも別個の装置として構成されずともよい。すなわち、心拍センサ11を搭載するコンピュータにより、サーバ装置30が有する機能部により実行される図14や図15に示す処理がスタンドアローンで実行されることとしてもかまわない。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部31、適用部32、第1検知部33または第2検知部34をサーバ装置30の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部31、適用部32、第1検知部33または検知部34を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置30の機能を実現するようにしてもよい。
[食事検知プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図19を用いて、上記の実施例と同様の機能を有する食事検知プログラムを実行するコンピュータの一例について説明する。
図19は、実施例1及び実施例2に係る食事検知プログラムを実行するコンピュータのハードウェア構成例を示す図である。図19に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
HDD170には、図19に示すように、上記の実施例1で示した取得部31、適用部32、第1検知部33および第2検知部34と同様の機能を発揮する食事検知プログラム170aが記憶される。この食事検知プログラム170aは、図1に示した取得部31、適用部32、第1検知部33および第2検知部34の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から食事検知プログラム170aを読み出した上でRAM180へ展開する。この結果、食事検知プログラム170aは、図19に示すように、食事検知プロセス180aとして機能する。この食事検知プロセス180aは、RAM180が有する記憶領域のうち食事検知プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、食事検知プロセス180aが実行する処理の一例として、図14や図15に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の食事検知プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に食事検知プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から食事検知プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに食事検知プログラム170aを記憶させておき、コンピュータ100がこれらから食事検知プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)対象者の心拍データを取得し、
取得した前記心拍データにおいて振幅が所定の閾値を超えるピークを検出し、
前記検出したピークの数が複数である場合、前記検出したピークごとに求まるピークの振幅または面積と、前記検出したピーク間で求まるピークの出現間隔とに基づいて、前記対象者によりコース料理が摂取されたか否かを判定する、
処理をコンピュータに実行させる食事検知プログラム。
(付記2)前記判定する処理は、前記検出したピークごとに求まるピークの振幅または面積の大小に関する順序が前記コース料理のメニューに含まれる各品目の摂取量の大小に関する順序と対応し、かつ前記検出したピーク間で求まるピークの出現間隔が前記コース料理のメニューで各品目が提供される間隔の範囲内であるか否かを判定する付記1に記載の食事検知プログラム。
(付記3)前記判定する処理は、前記検出したピークごとに求まるピークの継続時間にさらに基づいて前記コース料理が摂取されたか否かを判定する付記1に記載の食事検知プログラム。
(付記4)前記判定する処理は、前記検出したピークごとに求まるピークの継続時間が前記コース料理の一品目あたりの摂取所要時間の範囲内であるか否かを判定する付記3に記載の食事検知プログラム。
(付記5)前記判定する処理は、前記心拍データの第1心拍波形にフィルタが適用された第2心拍波形が近似された直線の傾きが正の値である場合、前記コース料理が摂取されたか否かの判定を実行する付記1に記載の食事検知プログラム。
(付記6)前記心拍データの第1心拍波形から前記心拍データにフィルタが適用された第2心拍波形を減算することにより、第3心拍波形を算出し、前記第3心拍波形から、前記ピークの振幅または面積と、前記ピークの出現間隔とを算出する処理を前記コンピュータに実行させる付記1に記載の食事検知プログラム。
(付記7)対象者の心拍データを取得し、
取得した前記心拍データにおいて振幅が所定の閾値を超えるピークを検出し、
前記検出したピークの数が複数である場合、前記検出したピークごとに求まるピークの振幅または面積と、前記検出したピーク間で求まるピークの出現間隔とに基づいて、前記対象者によりコース料理が摂取されたか否かを判定する、
処理をコンピュータが実行する食事検知方法。
(付記8)前記判定する処理は、前記検出したピークごとに求まるピークの振幅または面積の大小に関する順序が前記コース料理のメニューに含まれる各品目の摂取量の大小に関する順序と対応し、かつ前記検出したピーク間で求まるピークの出現間隔が前記コース料理のメニューで各品目が提供される間隔の範囲内であるか否かを判定する付記7に記載の食事検知方法。
(付記9)前記判定する処理は、前記検出したピークごとに求まるピークの継続時間にさらに基づいて前記コース料理が摂取されたか否かを判定する付記7に記載の食事検知方法。
(付記10)前記判定する処理は、前記検出したピークごとに求まるピークの継続時間が前記コース料理の一品目あたりの摂取所要時間の範囲内であるか否かを判定する付記9に記載の食事検知方法。
(付記11)前記判定する処理は、前記心拍データの第1心拍波形にフィルタが適用された第2心拍波形が近似された直線の傾きが正の値である場合、前記コース料理が摂取されたか否かの判定を実行する付記7に記載の食事検知方法。
(付記12)前記心拍データの第1心拍波形から前記心拍データにフィルタが適用された第2心拍波形を減算することにより、第3心拍波形を算出し、前記第3心拍波形から、前記ピークの振幅または面積と、前記ピークの出現間隔とを算出する処理を前記コンピュータが実行する付記7に記載の食事検知方法。
(付記13)対象者の心拍データを取得する取得部と、
取得した前記心拍データにおいて振幅が所定の閾値を超えるピークを検出する検出部と、
前記検出したピークの数が複数である場合、前記検出したピークごとに求まるピークの振幅または面積と、前記検出したピーク間で求まるピークの出現間隔とに基づいて、前記対象者によりコース料理が摂取されたか否かを判定する判定部と、
を有する食事検知装置。
(付記14)前記判定部は、前記検出したピークごとに求まるピークの振幅または面積の大小に関する順序が前記コース料理のメニューに含まれる各品目の摂取量の大小に関する順序と対応し、かつ前記検出したピーク間で求まるピークの出現間隔が前記コース料理のメニューで各品目が提供される間隔の範囲内であるか否かを判定する付記13に記載の食事検知装置。
(付記15)前記判定部は、前記検出したピークごとに求まるピークの継続時間にさらに基づいて前記コース料理が摂取されたか否かを判定する付記13に記載の食事検知装置。
(付記16)前記判定部は、前記検出したピークごとに求まるピークの継続時間が前記コース料理の一品目あたりの摂取所要時間の範囲内であるか否かを判定する付記15に記載の食事検知装置。
(付記17)前記判定部は、前記心拍データの第1心拍波形にフィルタが適用された第2心拍波形が近似された直線の傾きが正の値である場合、前記コース料理が摂取されたか否かの判定を実行する付記13に記載の食事検知装置。
(付記18)前記心拍データの第1心拍波形から前記心拍データにフィルタが適用された第2心拍波形を減算することにより、第3心拍波形を算出し、前記第3心拍波形から、前記ピークの振幅または面積と、前記ピークの出現間隔とを算出する算出部をさらに有する付記13に記載の食事検知装置。