以下に添付図面を参照して本願に係る心拍数補正プログラム、心拍数補正方法及び心拍数補正システムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図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)などの構内通信網を始め、インターネット(Internet)などが挙げられる。
ウェアラブル端末10は、ヘルスケア支援サービスの提供を受ける対象者が装着することにより利用されるコンピュータである。例えば、ウェアラブル端末10は、腕輪型、リストバンド型、あるいは指輪型のガジェットであってもよいし、頭部に装着されるヘッドマウントディスプレイやスマートグラスであってもよいし、また、胸部や腰部などの胴体の他、足首に装着されるタイプのデバイスであってもよい。
例えば、ウェアラブル端末10には、対象者の心拍を計測する第一のセンサ11が搭載される。ここで言う「心拍数」とは、血液を送り出す心臓の拍動回数を指す。例えば、第一のセンサ11に心拍数の変化に対応する血流量の変化を測定する光電脈波センサを採用することにより、単位時間あたりの心拍数を計測できる。このとき、単位時間を1分間とする場合、心拍数はbpm(beats per minute)等で表現される。また、単位時間を1秒間とする場合、心拍数はHzで表現される。この他、第一のセンサ11には、心臓の電気的活動を計測する心電センサを採用することもできる。この場合、心電波形におけるR波とR波の間隔(msec)を心拍数の代わりに用いることができる。このように第一のセンサ11により計測される心拍数の時系列データは、IoTデバイス20へ出力される。以下では、第一のセンサ11により計測される心拍数の時系列データのことを「心拍数データ」と記載する場合がある。なお、心拍数データは、心拍の状態に関する心拍データの一例である。
なお、ここでは、第一のセンサ11がウェアラブル端末10に搭載される場合を例示したが、必ずしもウェアラブル端末10に搭載されずともよく、対象者が生活する環境側に設置される環境センサであってもかまわない。例えば、対象者の生体の一部が所定のサンプリング周波数で撮像される画像に関する輝度の時系列変化から心拍数を検出したり、RF(Radio Frequency)モーションセンサを用いて拍動に伴うドップラ周波数を検出したりすることにより、心拍数の検出を対象者の生体部位に非接触の状態で実現することとしてもかまわない。
このような第一のセンサ11の他、ウェアラブル端末10には、対象者の運動を計測する第二のセンサ12が搭載される。ここで言う「運動」とは、目的とする行動以外の体動を伴う活動全般を指し、例えば、歩行や走行、階段の昇降などが含まれる。例えば、第二のセンサ12には、一例として、3軸の加速度センサを採用することができる。このように第二のセンサ12により計測される加速度の時系列データが運動データの一例としてIoTデバイス20へ出力される。なお、ここでは、第二のセンサ12の一例として、加速度センサを用いる場合を例示したが、加速度センサと共に角速度センサを併用することもできるし、加速度センサの代わりに角速度センサを単独で用いることもできる。
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は、上記のヘルスケア支援サービスを提供するコンピュータである。例えば、サーバ装置30は、パッケージソフトウェア又はオンラインソフトウェアとして、上記のヘルスケア支援サービスに対応する機能を実現するヘルスケア支援プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置30は、上記のヘルスケア支援サービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって上記のヘルスケア支援サービスを提供するクラウドとして実装することとしてもかまわない。
ここで、本実施例に係るサーバ装置30には、心拍数データの計測区間のうち運動中と運動後からの所定区間とを補正対象区間に設定し、補正対象区間の始まりと終わりの心拍数のうちより低い心拍数に値が補正された補正データに置き換える心拍数補正機能が実装される。このように、ヘルスケア支援システム1は、心拍数補正システムの一例に対応する。以下では、補正値として用いる心拍数のことを「ベース心拍数」と記載する場合がある。
このように心拍数補正機能を実装するのは、一側面として、食事による心拍の立ち上がりや立ち下がりなどの行動を検知する上で手がかりとなる特徴が運動による心拍の影響に埋もれる場合があるからである。図2及び図3は、心拍波形の一例を示す図である。図2には、計測時に運動が行われていない心拍数データの波形が示されている。一方、図3には、計測時に運動が行われた心拍数データの波形が示されている。これら図2及び図3では、行動検知の一例として、食事の検知が行われる場合を示す。図2及び図3の食事区間L1は、濃いグラデーションのハッチングで示される一方で、4つの運動区間M1〜M4は、食事区間L1よりも薄いグラデーションのハッチングで示されている。なお、図2及び図3に示すグラフの縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図2に示す心拍数データの波形W1には、食事の作用として心拍の立ち上がりが明瞭に現れているので、食事区間L1を検知できる可能性が高い。一方、図3に示す心拍数データの波形W2には、4つの運動区間M1〜M4が含まれることにより、食事区間L1の検知漏れが発生するばかりか、誤検知まで発生するおそれがある。すなわち、図3に示すように、心拍数データの波形W2には、運動区間M1の直後に食事区間L1が存在する。これは、運動が行われた直後に食事が行われたことを意味する。このため、食事区間L1では、心拍数が上昇した状態で食事が行われるので、食事の作用により心拍が上昇する速度よりも運動区間M1の運動後に安静時の心拍に回復する速度が上回る。この結果、食事区間L1では、食事という現象に、心拍数が低下するという結果が現れる。このように食事による心拍の立ち上がりが運動による心拍の影響に埋もれる場合、運動による心拍の影響が検知漏れの一因となることがある。さらに、運動区間M2〜運動区間M4では、各々の運動による影響で心拍数が上昇している。これら運動区間M2〜運動区間M4における心拍数の上昇は、目的とする食事以外の運動による心拍の上昇が食事と誤検知される阻害要因となることがある。
これらの行動検知の阻害要因となりうる運動による心拍への影響を抑制するために、サーバ装置30には、上記の心拍数補正機能が実装される。この心拍数補正機能では、補正対象区間の設定と共に補正対象区間で計測された心拍数の代わりに置き換える補正値、すなわちベース心拍数の特定が実施される。
図4は、ベース心拍数の特定方法の一例を示す図である。図4の運動区間M5は、濃いグラデーションのハッチングで示される一方で、運動区間M5後の所定区間は、運動区間M5よりも薄いグラデーションのハッチングで示されている。なお、図4に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図4に示すように、心拍数データの波形W3の計測区間のうち運動区間M5に所定区間K1が付加された補正対象区間C1、例えば「運動区間M5+所定区間K1」が設定される。そして、補正対象区間C1の始まりA1と終わりB1の心拍数のうちより低い方の心拍数min(A1,B1)がベース心拍数b1として特定される。このように補正対象区間の始まりA1と終わりB1の心拍数のうち低い方の心拍数をベース心拍数b1として用いるのは、補正値を安静時の心拍数に近付けるためである。さらに、低い方を取ることで安静時の心拍数に近付いたと言えるのは、目的とする行動以外の運動は心拍に上昇する作用を与えるためである。このため、より低い心拍の計測値を用いて補正した方が目的とする行動以外の運動の影響を除去できている可能性が高いからである。ここではベース心拍数としてmin(A1,B1)を用いたが、これに限らない。例えば、min(A1,B1)にA1とB1の差の絶対値の10%を足したものでも良い。また、心拍数A1とB1は補正区間前後の所定区間の代表値であっても良い。たとえば、補正区間前の5分間の区間の心拍数の平均値をA1の心拍数としても良い。
min(A1,B1)によりベース心拍数b1が特定された後、補正対象区間C1の心拍数データがベース心拍数b1に値が補正された補正データに置換される。この補正データへの置換により、運動による心拍への影響を抑制することができる。
図5〜図8は、心拍波形の一例を示す図である。これら図5〜図8にも、行動検知の一例として、食事の検知が行われる場合を示す。図5〜図8の食事区間L2〜食事区間L5は、濃いグラデーションのハッチングで示される一方で、運動区間M6〜運動区間M13は、食事区間L1よりも薄いグラデーションのハッチングで示されている。さらに、運動後に付加される所定区間K2〜K9は、運動区間M6〜運動区間M13よりもさらに薄いグラデーションのハッチングで示されている。なお、図5〜図8に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図5に示す心拍数データの波形W4からは、第二のセンサ12から取得される運動データを用いて運動区間M6および運動区間M7が特定される。これらのうち、運動区間M6には、所定区間K2が加算されることにより補正対象区間C2が設定されると共に、運動区間M7には、所定区間K3が加算されることにより補正対象区間C3が設定される。さらに、補正対象区間C2の開始時点における心拍数A2及び終了時点における心拍数B2が比較されることにより、低い方の心拍数A2がベース心拍数b2として特定される。また、補正対象区間C3の開始時点における心拍数A3及び終了時点における心拍数B3が比較されることにより、低い方の心拍数A3がベース心拍数b3として特定される。その上で、補正対象区間C2の心拍数データは、ベース心拍数b2に値が補正された補正データに置換されると共に、補正対象区間C3の心拍数データは、ベース心拍数b3に値が補正された補正データに置換される。
この結果、第一のセンサ11から取得された心拍数データの波形W4からは、図5に太線により示された補正対象区間C2及びC3の補正データと、図5に一点鎖線により示された計測区間における補正対象区間C2及びC3以外の区間の心拍データとを含む波形が得られる。このようにして得られた補正後の心拍数データの波形からは、運動区間M6及び運動区間M7による運動の影響が除去される。それ故、実際の食事区間L2で食事行動が検知されることが期待できる上、補正対象区間C2及び補正対象区間C3で食事行動が誤検知されるのを抑制できる。
また、図6には、運動後すぐに食事が行われた状況で第一のセンサ11により計測された心拍数データの波形W5が示されている。図6に示す心拍数データの波形W5では、運動区間M8における運動で上昇した心拍数が安静時の心拍数へ回復する影響が食事区間L3における食事により心拍数が上昇する作用よりも強く、食事区間L3における食事で心拍数の立ち上がりが観測されない。
図6に示す心拍数データの波形W5においても、図5に示す心拍数データの波形W4と同様の処理が実行される。すなわち、図6に示す心拍数データの波形W5からは、運動区間M8および運動区間M9が特定された後、運動区間M8に所定区間K4が加算された補正対象区間C4が設定されると共に、運動区間M9に所定区間K5が加算された補正対象区間C5が設定される。さらに、補正対象区間C4からは、心拍数A4及び心拍数B4のうち低い方の心拍数A4がベース心拍数b4として特定されると共に、補正対象区間C5からは、心拍数A5及び心拍数B5のうち低い方の心拍数A5がベース心拍数b5として特定される。その上で、補正対象区間C4の心拍数データは、ベース心拍数b4に値が補正された補正データに置換されると共に、補正対象区間C5の心拍数データは、ベース心拍数b5に値が補正された補正データに置換される。
この結果、図6に示す心拍数データの波形W5からは、図6に太線により示された補正対象区間C4及びC5の補正データと、図6に一点鎖線により示された計測区間における補正対象区間C4及びC5以外の区間の心拍数データとを含む波形が得られる。
このようにして得られた補正後の心拍数データの波形からは、運動区間M8及び運動区間M9による運動の影響が除去される。それ故、図6に示す補正後の心拍数データの波形からは、運動区間M8における運動の影響で埋もれていた食事区間L3における食事で心拍数の立ち上がりが現れるので、食事区間L3における食事行動の検知漏れが発生するのを抑制できる。さらに、図6に示す補正後の心拍数データからは、補正対象区間C5で食事行動が誤検知されるのも抑制できる。
さらに、図7には、食後すぐに運動が行われた状況で第一のセンサ11により計測された心拍数データの波形W6が示されている。図7に示す心拍数データの波形W6では、食事区間L4における食事による心拍の立ち上がりは観測される。その一方で、食事区間L4における食事により上昇した心拍数が安静時の心拍数へ回復する心拍数の立ち下がりの特徴が運動区間M11における運動による心拍の上昇の影響に埋もれて観測されない。
図7に示す心拍数データの波形W6においても、図5に示す心拍数データの波形W4と同様の処理が実行される。すなわち、図7に示す心拍数データの波形W6からは、運動区間M10および運動区間M11が特定された後、運動区間M10に所定区間K6が加算された補正対象区間C6が設定されると共に、運動区間M11に所定区間K7が加算された補正対象区間C7が設定される。さらに、補正対象区間C6からは、心拍数A6及び心拍数B6のうち低い方の心拍数A6がベース心拍数b6として特定されると共に、補正対象区間C7からは、心拍数A7及び心拍数B7のうち低い方の心拍数B7がベース心拍数b7として特定される。その上で、補正対象区間C6の心拍数データは、ベース心拍数b6に値が補正された補正データに置換されると共に、補正対象区間C7の心拍数データは、ベース心拍数b7に値が補正された補正データに置換される。
この結果、図7に示す心拍数データの波形W6からは、図7に太線により示された補正対象区間C6及びC7の補正データと、図7に一点鎖線により示された計測区間における補正対象区間C6及びC7以外の区間の心拍数データとを含む波形が得られる。
このようにして得られた補正後の心拍数データの波形からは、運動区間M10及び運動区間M11による運動の影響が除去される。それ故、図7に示す補正後の心拍数データの波形からは、運動区間M11における運動の影響で埋もれていた食事区間L4における食事後の心拍数の立ち下がりが現れるので、食事区間L4における食事行動の検知漏れが発生するのを抑制できる。さらに、図7に示す補正後の心拍数データの波形からは、補正対象区間C6で食事行動が誤検知されるのも抑制できる。
さらに、図8には、運動後すぐに食事をして食後にすぐ運動が行われた状況で第一のセンサ11により計測された心拍数データの波形W7が示されている。図8に示す心拍数データの波形W7では、運動区間M12における運動で上昇した心拍数が安静時の心拍数へ回復する影響が食事区間L5における食事により心拍数が上昇する作用よりも強く、食事区間L5における食事で心拍数の立ち上がりが観測されない。加えて、図8に示す心拍数データの波形W7では、食事区間L5における食事により上昇した心拍数が安静時の心拍数へ回復する心拍数の立ち下がりの特徴が運動区間M13における運動による心拍の上昇の影響に埋もれて観測されない。
図8に示す心拍数データの波形W7においても、図5に示す心拍数データの波形W4と同様の処理が実行される。すなわち、図8に示す心拍数データの波形W7からは、運動区間M12および運動区間M13が特定された後、運動区間M12に所定区間K8が加算された補正対象区間C8が設定されると共に、運動区間M13に所定区間K9が加算された補正対象区間C9が設定される。さらに、補正対象区間C8からは、心拍数A8及び心拍数B8のうち低い方の心拍数A8がベース心拍数b8として特定されると共に、補正対象区間C9からは、心拍数A9及び心拍数B9のうち低い方の心拍数B9がベース心拍数b9として特定される。その上で、補正対象区間C8の心拍数データは、ベース心拍数b8に値が補正された補正データに置換されると共に、補正対象区間C9の心拍数データは、ベース心拍数b9に値が補正された補正データに置換される。
この結果、図8に示す心拍数データの波形W7からは、図8に太線により示された補正対象区間C8及びC9の補正データと、図8に一点鎖線により示された計測区間における補正対象区間C8及びC9以外の区間の心拍数データとを含む波形が得られる。
このようにして得られた補正後の心拍数データの波形からは、運動区間M12及び運動区間M13による運動の影響が除去される。それ故、図8に示す補正後の心拍数データの波形からは、運動区間M12における運動の影響で埋もれていた食事区間L5における食事で心拍数の立ち上がりが現れる。さらに、図8に示す補正後の心拍数データの波形からは、運動区間M13における運動の影響で埋もれていた食事区間L5における食事後の心拍数の立ち下がりが現れる。したがって、食事区間L5における食事行動の検知漏れが発生するのを抑制すると共に、補正対象区間C8や補正対処区間C9で食事行動が誤検知されるのも抑制できる。
図5〜図8を用いて説明した通り、本実施例に係るサーバ装置30では、食事による心拍の立ち上がりや立ち下がりなどの行動を検知する上で手がかりとなる特徴が運動による心拍の影響に埋もれるのを抑制できる。したがって、本実施例に係るサーバ装置30によれば、運動による心拍の影響が対象者による特定の行動検知を阻害することを抑制することが可能になる。
このような心拍数データの補正が実行された後、サーバ装置30は、補正対象区間の補正データと、計測区間における補正対象区間以外の区間の心拍数データとに基づいて、日常生活に関する行動、例えば食事や排尿、排便を検知する。
これによって、サーバ装置30は、日常生活に関する行動が行われた行動時間を記録することができる他、それまでに記録された行動時間に基づいてヘルスケアに関する各種のレコメンドを出力することができる。例えば、食事行動が検知される場合、サーバ装置30は、食事時間を記録したり、所定期間、例えば1週間などにわたる食事時間帯の一覧表を生成した上で出力したり、それまでに記録された食事時間から食習慣またはダイエットに関する分析を行った上で各種のレコメンドを出力したりすることもできる。このようなレコメンドは、一例として、対象者により使用されるIoTデバイス20に出力させることができる他、対象者の関係者、例えば親族、産業医などの医療担当者または介護担当者などにより使用される端末装置に出力することもできる。これによって、上記のヘルスケア支援サービスが実現される。
なお、ここでは、一例として、サーバ装置30が心拍数データ及び運動データを取得してから心拍数補正、行動検知、行動蓄積及びレコメンド出力を含む一連のヘルスケア支援サービスを実行する場合を例示したが、必ずしも全てがサーバ装置30により実行されずともよい。例えば、サーバ装置30上で上記の心拍数補正機能が抜粋された心拍数補正プログラムを動作させることにより、心拍数データ及び運動データを取得してから補正後の心拍数データが出力されるまでのフロントエンドの部分に絞ってサーバ装置30に実行させることもできる。この場合、サーバ装置30は、行動検知や行動蓄積、レコメンドの出力などの機能をバックエンドで実行するサービスやアプリケーション、AI(Artificial Intelligence)、データセンタ外の他のサーバ装置等に委ねることもできる。
[サーバ装置30の機能的構成]
次に、本実施例に係るサーバ装置30の機能的構成について説明する。図1に示すように、サーバ装置30は、第一の取得部31と、第二の取得部32と、第一の特定部33と、設定部34と、第二の特定部35と、置換部36と、検知部37とを有する。なお、サーバ装置30は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば他の装置との間で通信制御を行う通信インタフェースなどを有することとしてもかまわない。
図1に示す第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36及び検知部37などの機能部は、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)などのハードワイヤードロジックによって実現されることとしてもかまわない。
第一の取得部31は、第一のセンサ11から心拍数データを取得する処理部である。また、第二の取得部32は、第二のセンサ12から運動データを取得する処理部である。これら第一の取得部31及び第二の取得部32により取得された心拍数データ及び運動データは、第一の特定部33へ出力される。このようにウェアラブル端末10から心拍数データ及び運動データなどのセンサイベントを取得する第一の取得部31及び第二の取得部32の機能は、一例として、MQTTサーバ用のプログラムを実行させることにより実装できる。
第一の特定部33は、運動データから計測区間における運動区間を特定する処理部である。ここで言う「運動区間」とは、歩行、走行や階段の昇降などの運動が行われた期間を指し、例えば、運動区間の判定に第二の取得部32により運動データとして取得された加速度データが用いられる。
一実施形態として、第一の特定部33は、上記の運動区間の特定に、上記の加速度データに含まれる加速度のうち少なくとも上下方向、すなわち重力方向の加速度を用いる。このように重力方向の加速度を用いるのは、歩行、走行や階段の昇降などの運動が行われる場合、加速度が特定のパターンで変化すると共に当該パターンが周期的に現れるからである。すなわち、歩行、走行や階段の昇降などの運動時には、脚部の蹴り出し時および着地時に地面等から反力を受けるので、重力方向の加速度に上昇及び下降の変化が短期間で現れる。さらに、重力方向の加速度に関する上昇及び下降の変化は、地面から荷重が除かれて足が地面に接地する度に周期的に現れる。
このことから、第一の特定部33は、一例として、重力方向の加速度から上記の上昇および下降のパターンを歩行動作として検出する。そして、第一の特定部33は、歩行動作が現れる間隔が所定期間内であるか否かを判定する。このとき、歩行動作が現れる間隔が所定期間以内である場合、当該歩行動作が所定期間内に繰り返して現れる区間を運動区間と特定する。ここで、上記の運動区間の特定には、一例として、ウェアラブル端末10が装着された状態で対象者が運動活動を行い、運動活動に伴う加速度変化を実験的に採取することにより、上記のパターンを形成する上昇および下降の程度から歩行動作を弁別する閾値、例えば2Hz±0.5Hzを設定することができる。さらに、歩行動作が現れる間隔についても実験的に現れる値から上記の所定期間を定めることもできる。なお、上記の運動区間は、運動期間の開始時刻とその継続時間により表現することもできるし、運動開始時刻及び運動終了時刻として表現することもできる。また、心拍数変化に影響する腕や脚、上半身、下半身、姿勢変化などの動作が現れる動作期間も上記の運動区間とすることができる。
なお、ここでは、運動区間を特定する例を説明したが、運動区間に含まれる歩行動作の数をカウントすることにより歩数をさらに検出することもできる。
設定部34は、第一の特定部33により特定された運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定する処理部である。
一実施形態として、設定部34は、第一の特定部33により特定された運動区間ごとに、当該運動区間に所定区間を付加することにより、心拍数データに補正対象区間(=運動区間+所定区間)を設定する。このように運動区間に所定区間を付加することとしたのは、運動直後には運動による心拍の影響が残るからである。それ故、運動区間には、一例として、運動後に安静時の心拍数まで心拍が回復すると期待できる程度の期間、例えば1分間が所定区間として付加される。
第二の特定部35は、補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数を特定する処理部である。
一実施形態として、第二の特定部35は、設定部34により設定された補正対象区間ごとに、当該補正対象区間の始まりに第一のセンサ11により計測された心拍数Aおよび補正対象区間の終わりに第一のセンサ11により計測された心拍数Bを比較する。その上で、第二の特定部35は、上記の心拍数Aおよび上記の心拍数Bのうち低い方の心拍数、すなわちmin(A,B)をベース心拍数として特定する。
置換部36は、補正対象区間の心拍数データについては、特定した心拍数に補正した補正データへ置換する処理部である。
一実施形態として、置換部36は、設定部34により設定された補正対象区間ごとに、当該補正対象区間に対応する心拍数データを第二の特定部35により特定されたベース心拍数に値が補正された補正データに置換する。
検知部37は、補正対象区間の補正データと、計測区間における補正対象区間以外の区間の心拍数データとに基づき、行動を検知する処理部である。
一実施形態として、検知部37は、置換部36により補正対象区間の心拍データが補正データに置換された補正対象区間の補正データと、第一の取得部31により取得された心拍データの計測区間のうち補正データへの置換が行われていない補正対象区間以外の区間の心拍数データとを含む補正後の心拍数データが行動検知に用いられる。ここでは、あくまで行動の一例として、食事が検知される場合を例示するが、食事以外の排尿や排便を検知することとしてもよいし、心拍変動から検知可能な状態、例えば飲酒や睡眠、摂取カロリー量、消化状態、精神的負荷の上昇を検知することとしてもかまわない。
すなわち、検知部37は、補正後の心拍数データに所定の時間長、例えば210分間を持つ窓を設定する。続いて、検知部37は、窓が設定された区間に対応する部分データを切り出す。その後、検知部37は、前回に設定された窓を所定のずらし幅、例えば5分間にわたってシフトさせる。その上で、検知部37は、シフト後の窓に対応する部分データを切り出す。以下、心拍数データのうち窓に対応する部分が切り出された部分データのことを「窓データ」と記載する場合がある。
このように切り出された窓データごとに、検知部37は、当該窓データの開始時刻から所定の期間、例えば60分間までの期間を食事前とし、窓データの開始時刻から所定の時間後を「食事開始時刻」として、特徴量の算出を実行する。
ここで、特徴量の一例について説明する。例えば、食事に伴って食事開始後に発生する心拍数の変化には、時間経過に伴って心拍数が上昇(増加)して下降(減少)に転ずる2つのピークが存在する。すなわち、食事開始時刻から時間経過に伴って、食事開始後に先行して出現する心拍数変化のピークである「第1ピーク」と、第1ピークに後続して出現する心拍数変化のピークである「第2ピーク」とが出現する。なお、以下では、第1ピークの部分の波形を含む所定の領域のことを「第1ピーク領域」と記載し、第2ピークの部分の波形を含む所定の領域のことを「第2ピーク領域」と記載する場合がある。
このうち、「第1ピーク」は、食事行為に伴う心拍上昇であり、例えば、咀嚼や食道の蠕動運動に起因する心拍数上昇と推定される。また、「第2ピーク」は、例えば、食事行為により摂取された摂取物、すなわち食物等に対する消化器官(胃腸等)内の消化活動に起因する心拍数上昇と推定される。このことから、食事後には、第1ピークが現れた後に第2ピークが現れ、かつ第1ピークよりも第2ピークの方が長期間にわたる傾向にあるという知見を得ることができる。
これら第1ピークおよび第2ピークの傾向から、検知部37は、上記の補正後の心拍数データから、下記の特徴量を算出することができる。例えば、第1ピーク領域a1の面積、及び、第2ピーク領域a2の面積などを特徴量として算出できる。また、第1ピークへ至るまでの心拍数の上昇速度、第2ピークへ至るまでの心拍数の上昇速度、第1ピークからの心拍数の回復速度、及び、第2ピークからの心拍数の回復速度なども特徴量として算出できる。また、第1ピークを形成する波形のうち心拍数が最大の値をとる最大心拍数P1、及び、第2ピークを形成する波形のうち心拍数が最大の値をとる最大心拍数P2を特徴量として算出できる。また、食事開始時刻を始点としたとき、最大心拍数P1が計測される時刻を終点とする経過時間t1、最大心拍数P1を経た心拍数が所定値まで回復する時刻を終点とする経過時間t2、最大心拍数P2が計測される時刻を終点とする経過時間t3、及び、最大心拍数P2を経た心拍数が所定値まで回復する時刻を終点とする経過時間t4などを特徴量として算出することもできる。この他、食事開始時刻以前に計測される心拍数のうち最低の値をとる食事前心拍数と、食事開始時刻以前の区間で食事前心拍数から食事開始時刻の心拍数までの心拍数の上昇幅により形成される領域の面積とを特徴量として算出することもできる。
このような特徴量が算出された後、検知部37は、上記の特徴量がベクトル化された特徴量ベクトルを入力として食事らしさを表す尤度を出力する食事推定モデルを用いて、窓データの食事の有無を検知する。例えば、食事推定モデルが−1から+1までの値を出力する場合、検知部37は、窓データから算出された特徴量ベクトルを上記の食事推定モデルに入力する。この結果、食事推定モデルからの出力値が所定値、例えば「0」以上である場合、検知部37は、当該窓データを食事に分類する。一方、食事推定モデルからの出力値が所定値、例えば「0」未満である場合、検知部37は、当該窓データを非食事に分類する。なお、上記の食事推定モデルは、サポートベクタマシン、ブースティングやニューラルネットワークなどの任意のアルゴリズムにしたがって、部分データにクラス「食事」またはクラス「非食事」の正解のラベルが付与された教師データに機械学習を実行することにより得ることができる。
その後、検知部37は、部分データごとに分類された食事または非食事の分類結果を行動蓄積やレコメンドの出力などの機能をバックエンドで実行するサービスやアプリケーション、AI、サーバ装置30外部のコンピュータへ出力する。これによって、上述のヘルスケア支援サービスが実現される。
[処理の流れ]
図9は、実施例1に係る心拍数補正処理の手順を示すフローチャートである。この処理は、一例として、第一のセンサ11及び第二のセンサ12から送信される心拍数データ及び運動データを待機する状態から開始される。
図9に示すように、第一の取得部31は、第一のセンサ11から心拍数データを取得する(ステップS101)。また、第二の取得部32は、第二のセンサ12から運動データを取得する(ステップS102)。これらステップS101及びステップS102は、同時に実行されることとしてもよいし、順不同で実行されることとしてもかまわない。
そして、第一の特定部33は、ステップS102で取得された運動データからステップS101で取得された心拍数データの計測区間における運動区間を特定する(ステップS103)。続いて、設定部34は、ステップS103で特定された運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定する(ステップS104)。
その後、第二の特定部35は、ステップS104で設定された補正対象区間ごとに、当該補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数をベース心拍数として特定する(ステップS105)。
続いて、置換部36は、ステップS104で設定された補正対象区間ごとに、当該補正対象区間に対応する心拍数データをステップS105で特定されたベース心拍数に値が補正された補正データに置換する(ステップS106)。
そして、検知部37は、ステップS106で置換された補正対象区間の補正データと、ステップS101で取得された心拍数データの計測区間のうちステップS106で置換されていない補正対象区間以外の区間の心拍数データとに基づき、行動を検知し(ステップS107)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置30は、心拍数データの計測区間のうち運動中と運動後からの所定区間とを補正対象区間に設定し、補正対象区間の始まりと終わりの心拍数のうちより低い心拍数に値が補正された補正データに置き換える。これにより、食事による心拍の立ち上がりや立ち下がりなどの行動を検知する上で手がかりとなる特徴が運動による心拍の影響に埋もれるのを抑制できる。したがって、本実施例に係るサーバ装置30によれば、運動による心拍の影響が対象者による特定の行動検知を阻害することを抑制することが可能になる。
さて、上記の実施例1では、補正対象区間に対応する心拍数データをベース心拍数に値が補正された補正データに置換する例を説明したが、運動区間後の所定区間と実際に食事が行われた食事区間とが重複する場合、行動検知に用いる特徴量のうち一部の特徴量に対応する心拍変動の特徴が上記の補正データへの置換により劣化することがある。
そこで、本実施例では、運動区間後の所定区間と食事区間とが重複する場合でも、行動検知に用いる特徴量のうち一部の特徴量に対応する心拍変動の特徴が劣化するのを抑制できる補正データを生成する例について説明する。
図10は、実施例2に係るヘルスケア支援システムに含まれる各装置の機能的構成の一例を示す図である。なお、図10には、図1に示すヘルスケア支援システム1と同一の機能を発揮する機能部には同一の符号を付し、その説明を省略することとする。
ここで、図6及び図11を用いて、行動検知に用いる特徴量のうち一部の特徴量に対応する心拍変動の特徴が劣化する事例について説明する。
例えば、図6に示す心拍数データの波形W5からは、図6に太線で示された補正対象区間C4及びC5の補正データと、図6に一点鎖線で示された補正対象区間C4及びC5以外の区間の心拍データとを含む波形が補正後の心拍数データとして得られる。
図6に示す心拍数データの波形W5では、運動区間M8における運動が行われた後に食事区間L3で実際の食事が行われた状況で第一のセンサ11により心拍数が計測されているが、補正後の心拍数データでも、食事行動の検知に用いる特徴量の一部が劣化している。すなわち、補正後の心拍数データでは、補正対象区間C4と、実際に食事が行われた食事区間L3とが隣接する。それ故、補正対象区間C4及び食事区間L3との境界で、補正対象区間C4が持つベース心拍数b4、すなわち補正値A4から補正対象区間C4の終わりの心拍数B4へ不連続に変化する。このように、図6に示す補正後の心拍数データでは、補正対象区間C4及び食事区間L3の境界が直角になるので、食事検知に用いる特徴量のうち心拍数の立ち上がりの特徴、すなわち第1ピークへ至るまでの心拍数の上昇速度が劣化する。
図11は、心拍波形の一例を示す図である。図11にも、行動検知の一例として、食事の検知が行われる場合を示す。図11には、運動区間M14に付加される所定区間K10と食事区間L6とが重複する例が示されている。図11の運動区間M14及び運動区間M15は、2番目に濃いグラデーションのハッチングで示されている。さらに、図11における所定区間K10及び食事区間L6の重複部分は、最も濃いグラデーションのハッチングで示されている。さらに、運動区間M15に付加される所定区間K11は、最も薄いグラデーションのハッチングで示されている。なお、図11に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図11に示す心拍数データの波形W8からは、図11に太線で示された補正対象区間C10及びC11の補正データと、図11に一点鎖線で示された補正対象区間C10及びC11以外の区間の心拍データとを含む波形が補正後の心拍数データとして得られる。
図11に示す心拍数データの波形W8では、運動区間M14における運動が行われた後に食事区間L6で短い食事が行われた状況で第一のセンサ11により心拍数が計測されているが、補正後の心拍数データでも、食事行動の検知に用いる特徴量の一部が劣化している。すなわち、補正後の心拍数データでは、運動区間M14と、実際に食事が行われた食事区間L6とが隣接する。これにより、運動区間M14に付加される所定区間K10と、食事区間L6が重複する。この結果、補正対象区間C10及び補正対象区間C11との境界で、補正対象区間C10のベース心拍数b10から補正対象区間C11のベース心拍数b11へ不連続に変化する。このように、図11に示す補正後の心拍数データでは、食事区間L6で第一のセンサ11により計測される心拍数が補正対象区間C10のベース心拍数b10に補正されることにより、補正データからは、食事検知に用いる特徴量が失われる。
これら図6及び図11に示す通り、補正対象区間と実際に食事が行われた区間とに時間差がない場合、行動検知に用いる特徴量のうち一部の特徴量に対応する心拍変動の特徴が上記の補正データへの置換により劣化する。
そこで、本実施例に係るサーバ装置50は、補正対象区間のうち運動区間に付加される所定区間の心拍数データに置き換える補正値をベース心拍数とする代わりに次のように算出する。すなわち、本実施例に係るサーバ装置50は、運動区間の心拍数データの統計値と、運動後における心拍数の立ち下がりがモデル化されたモデルとから、運動区間後の所定区間における心拍数の立ち下がりの波形を推定する。その上で、本実施例に係るサーバ装置50は、補正対象区間のうち運動区間に付加される所定区間の心拍数データに置き換える補正データとして、推定された所定区間における心拍数の立ち下がりの波形と、所定区間の心拍数データの波形との差分波形を算出する。
図10の説明に戻り、図10に示すヘルスケア支援システム2は、図1に示すヘルスケア支援システム1に比べて、サーバ装置50が有する機能部の一部が異なる。すなわち、図10に示すサーバ装置50は、図1に示すサーバ装置30に比べて、生成部51と、推定部52と、算出部53とを有する点が異なる。
生成部51は、運動後における心拍数の立ち下がりモデルを生成する処理部である。
一実施形態として、生成部51は、第一の取得部31により取得される心拍数データの計測区間のうち、第一の特定部33により特定された運動区間後の所定区間の心拍数データを取得する。このとき、生成部51は、一例として、当該運動区間の次の運動区間までの間隔が所定の期間、例えば30分間以上であることを条件に、運動区間後の所定区間の心拍数データを取得することができる。これにより、運動後に運動で上昇した心拍数が安静時の心拍数へ回復する現象が後続して行われる運動の影響によって阻害されない状況に絞って運動区間後の所定区間の心拍数データを取得することができる。その後、運動区間後の所定区間の心拍数データが所定のサンプル数にわたって図示しない内部メモリに蓄積されるまで、所定区間の心拍数データの蓄積が繰り返される。
例えば、運動区間後の所定区間の心拍数データが所定のサンプル数にわたって図示しない内部メモリに蓄積されると、生成部51は、運動区間後の所定区間の心拍数データを正規化する。一例として、生成部51は、運動区間後の所定区間の心拍数データに含まれる心拍数を下記の式(1)に代入して正規化心拍数を算出することにより、所定区間の心拍数データを「0」から「1」までの値に正規化できる。
正規化心拍数=(心拍数−ベース心拍数)/振幅・・・(1)
図12は、正規化に用いるパラメータの一例を示す図である。図12の運動区間M15は、濃いグラデーションのハッチングで示される一方で、運動区間M15後の所定区間K12は、運動区間M15よりも薄いグラデーションのハッチングで示されている。なお、図12に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。上記の式(1)における「心拍数」は、所定区間K12の心拍数データに含まれる心拍数を指す。また、「ベース心拍数」は、補正対象区間C12の始まりA12および終わりB12のうち低い方の心拍数を指す。また、「振幅」は、運動区間M15に含まれる心拍数データに含まれる心拍数の統計値を指す。例えば、振幅には、運動区間M15で計測される心拍数の平均値からベース心拍数を減算した値を用いることができる。なお、ここでは、振幅の一例として、平均値を用いる場合を例示したが、運動区間M15で計測される心拍数の中央値や最頻値を振幅に用いることもできる。
図13は、運動後における心拍数の立ち下がりモデルの生成方法の一例を示す図である。図13の左側には、正規化心拍数の波形を示すグラフが示されている。図13の左側に示すグラフには、同一人物から計測された心拍数データから算出された、運動後の所定区間における正規化心拍数の波形が、所定のサンプル数にわたってプロットされている。このうち、運動区間後の所定区間に対応する部分が矩形61により囲って示されている。また、図13の右側のグラフには、立ち下がりモデルの一例が示されている。なお、図13の左側及び右側に示すグラフの縦軸は、正規化心拍数を指し、横軸は、運動区間の終了時点の時刻を原点とする経過時間を指す。
図13の左側のグラフに示す矩形61の通り、同一人物に関する正規化心拍数の波形であれば、運動後に運動で上昇した心拍数が安静時の心拍数へ回復する立ち下がりの波形は、サンプル間で大差が生じにくい。それ故、生成部51は、図13の左側のグラフに矩形61として示された運動区間後の所定区間における正規化心拍数の波形を複数のサンプルの間で平均することにより、図13の右側のグラフに示す立ち下がりモデル62を生成することができる。このように生成された立ち下がりモデル62は、推定部52が参照する図示しない内部メモリのワークエリアに保存される。
推定部52は、上記の立ち下がりモデルにしたがって運動区間後の所定区間における心拍数の立ち下がりの波形を推定する処理部である。
一実施形態として、推定部52は、第一の特定部33により特定された運動区間ごとに、当該運動区間の心拍数データの統計値、すなわち上記の振幅を算出する。そして、推定部52は、当該運動区間の心拍数データから算出された振幅を、図示しない内部メモリに保存された立ち下がりモデルに乗算することにより、運動区間後の所定区間における心拍数の立ち下がりの波形を推定する。
算出部53は、補正対象区間のうち運動区間に付加される所定区間の心拍数データに置き換える補正データを算出する処理部である。以下では、運動区間の補正データと区別する観点から、運動区間後の所定区間の補正データのことを「運動後補正データ」と記載する場合がある。
一実施形態として、算出部53は、第一の特定部33により特定された運動区間ごとに、当該運動区間後の所定区間の心拍数データの波形と、推定部52により推定された所定区間における心拍数の立ち下がりの波形との差分波形を運動後補正データとして算出する。
図14は、心拍波形の一例を示す図である。図14にも、行動検知の一例として、食事の検知が行われる場合を示す。図14には、運動区間M16に付加される所定区間K13と食事区間L7とが重複する例が示されている。図14の運動区間M16及び運動区間M17は、2番目に濃いグラデーションのハッチングで示されている。さらに、図14における所定区間K13及び食事区間L7の重複部分は、最も濃いグラデーションのハッチングで示されている。さらに、図14の所定区間K13及び食事区間L7の非重複部分と所定区間K14は、最も薄いグラデーションのハッチングで示されている。なお、図14に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図14に示す心拍数データの波形W10でも、図11に示す心拍数データの波形W8と同様、運動区間M16に付加される所定区間K13と、食事区間L7とが重複するが、所定区間K13の心拍数データは、ベース心拍数の値に補正された補正データの代わりに、運動後補正データに置換される。
すなわち、図14の上段のグラフに示すように、運動区間M16の心拍数データから算出された振幅を立ち下がりモデル62に乗算することにより、運動区間後の所定区間K13における心拍数の立ち下がりの波形63が推定部52により推定される。さらに、運動区間M17の心拍数データから算出された振幅を立ち下がりモデル62に乗算することにより、運動区間後の所定区間K14における心拍数の立ち下がりの波形64が推定部52により推定される。その後、所定区間K13における心拍数データから、所定区間K13における心拍数の立ち下がりの波形63を減算することにより、所定区間K13に置き換える運動後補正データが算出される。さらに、所定区間K14における心拍数データから、所定区間K14における心拍数の立ち下がりの波形64を減算することにより、所定区間K14に置き換える運動後補正データが算出される。
この結果、図14の下段のグラフに示すように、補正対象区間C13のうち運動区間M16の心拍数データがベース心拍数b13に値が補正された補正データに置換される一方で、所定区間K13の心拍数データが運動後補正データに置換される。さらに、補正対象区間C14のうち運動区間M17の心拍数データがベース心拍数b14に値が補正された補正データに置換される一方で、所定区間K14の心拍数データが運動後補正データに置換される。
ここで、所定区間K13で第一のセンサ11により計測される心拍数データには、運動区間M16における運動で上昇した心拍数が安静時の心拍数に回復する立ち下がりの成分と、食事区間L7における食事により現れる心拍数の立ち上がりの成分とが混在する。しかしながら、所定区間K13の心拍数データが置換される運動後補正データからは、運動区間M16における運動で上昇した心拍数が安静時の心拍数に回復する立ち下がりの成分を除去できる。その一方で、所定区間K13の心拍数データが置換される運動後補正データには、食事区間L7における食事により現れる心拍数の立ち上がりの成分が残すことができる。したがって、運動区間M16後の所定区間K13と、食事区間L7とが重複する場合でも、食事検知に用いる特徴量のうち心拍数の立ち上がりの特徴、すなわち第1ピークへ至るまでの心拍数の上昇速度が劣化するのを抑制できる。ここでは、運動区間後の所定区間内の補正方法について述べたが、補正する区間はこれに限らない。例えば、運動開始直後の所定区間において、運動開始後における心拍数の立ち上がりがモデル化されたモデルを同様の方法で作成し、モデルから推定した補正値を運動開始直後の所定区間において、心拍数データから減算した値を補正値とし、置換することで、心拍数の立下りの特徴の劣化を抑制することもできる。
[処理の流れ]
図15は、実施例2に係る心拍数補正処理の手順を示すフローチャートである。この処理は、一例として、第一のセンサ11及び第二のセンサ12から送信される心拍数データ及び運動データを待機する状態から開始される。
図15に示すように、第一の取得部31は、第一のセンサ11から心拍数データを取得する(ステップS201)。また、第二の取得部32は、第二のセンサ12から運動データを取得する(ステップS202)。これらステップS201及びステップS202は、同時に実行されることとしてもよいし、順不同で実行されることとしてもかまわない。
そして、第一の特定部33は、ステップS202で取得された運動データからステップS201で取得された心拍数データの計測区間における運動区間を特定する(ステップS203)。続いて、設定部34は、ステップS203で特定された運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定する(ステップS204)。
その後、第二の特定部35は、ステップS204で設定された補正対象区間ごとに、当該補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数をベース心拍数として特定する(ステップS205)。
続いて、置換部36は、ステップS204で設定された補正対象区間ごとに、当該補正対象区間のうち運動区間に対応する心拍数データをステップS205で特定されたベース心拍数に値が補正された補正データに置換する(ステップS206)。
そして、推定部52は、ステップS203で特定された運動区間ごとに、当該運動区間の心拍数データの統計値、すなわち上記の振幅を算出する(ステップS207)。続いて、推定部52は、ステップS207で算出された振幅を、図示しない内部メモリに保存された立ち下がりモデルに乗算することにより、運動区間後の所定区間における心拍数の立ち下がりの波形を推定する(ステップS208)。
その後、算出部53は、ステップS203で特定された運動区間ごとに、当該運動区間後の所定区間の心拍数データの波形と、ステップS208で推定された所定区間における心拍数の立ち下がりの波形との差分波形を運動後補正データとして算出する(ステップS209)。
そして、置換部36は、ステップS204で設定された補正対象区間ごとに、当該補正対象区間のうち運動区間後の所定区間に対応する心拍数データをステップS209で特定された運動後補正データに置換する(ステップS210)。
そして、検知部37は、ステップS206及びステップS210で置換された補正対象区間の補正データ及び運動後補正データと、ステップS201で取得された心拍数データの計測区間のうちステップS206及びステップS210で置換されていない補正対象区間以外の区間の心拍数データとに基づき、行動を検知し(ステップS211)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置50においても、上記の実施例1に係るサーバ装置30と同様、運動による心拍の影響が対象者による特定の行動検知を阻害することを抑制することが可能になる。
さらに、本実施例に係るサーバ装置50は、運動区間の心拍数データの統計値と、運動後における心拍数の立ち下がりがモデル化されたモデルとから、運動区間後の所定区間における心拍数の立ち下がりの波形を推定する。その上で、本実施例に係るサーバ装置50は、補正対象区間のうち運動区間に付加される所定区間の心拍数データに置き換える補正データとして、推定された所定区間における心拍数の立ち下がりの波形と、所定区間の心拍数データの波形との差分波形を算出する。したがって、本実施例に係るサーバ装置50によれば、運動区間後の所定区間と、食事区間とが重複する場合でも、食事検知に用いる特徴量のうち心拍数の立ち上がりの特徴、例えば第1ピークへ至るまでの心拍数の上昇速度が劣化するのを抑制できる。
さて、本実施例では、心拍数データの運動区間の前および後で運動以外の要因により心拍数が上昇する成分が含まれる場合でも、補正対象区間の心拍数データから運動による心拍数の影響を正確に除去できる例について説明する。
図16は、実施例3に係るヘルスケア支援システムに含まれる各装置の機能的構成の一例を示す図である。なお、図16においても、図1に示すヘルスケア支援システム1と同一の機能を発揮する機能部には同一の符号を付し、その説明を省略することとする。
図16に示すヘルスケア支援システム3は、図1に示すヘルスケア支援システム1に比べて、サーバ装置70が有する機能部の一部が異なる。すなわち、図16に示すサーバ装置70は、図1に示すサーバ装置30に比べて、生成部71と、算出部72とを有する点が異なる。
生成部71は、運動の強度と心拍数の上昇幅との関係がモデル化されたモデルを生成する処理部である。
一実施形態として、生成部71は、第一の取得部31により取得される心拍数データの計測区間のうち、第一の特定部33により特定された運動区間の心拍数データを取得する。その上で、生成部71は、運動区間で計測された運動データから当該運動区間における運動の強度を算出する。例えば、運動データが加速度データである場合、生成部71は、運動区間に含まれる歩行動作の数をカウントすることにより歩数を運動の強度の一例として算出することができる。また、単位時間当たりの歩数やMETsを歩数の代わりに用いても良い。さらに、生成部71は、当該運動区間における心拍数の上昇幅をさらに算出する。例えば、上昇幅には、当該運動区間で計測される心拍数の平均値からベース心拍数を減算した値を用いることができる。他にも、運動区間で計測される心拍数データのうち最大値から最小値を減算することにより、運動区間における心拍数の上昇幅を算出できる。これら歩数および心拍数の上昇幅の組が所定のサンプル数にわたって図示しない内部メモリに蓄積されるまで、歩数および心拍数の上昇幅の組の蓄積が繰り返される。
その後、歩数および心拍数の上昇幅の組が所定のサンプル数にわたって図示しない内部メモリに蓄積されると、生成部71は、次のような処理を実行する。すなわち、生成部71は、内部メモリに蓄積された歩数および心拍数の上昇幅の組のうち、歩数が所定数ごとに区分された帯域ごとに当該帯域に含まれる心拍数の上昇幅のうち最低の心拍数の上昇幅を抽出する。その上で、生成部71は、歩数の帯域ごとに抽出された最低の心拍数の上昇幅をつなぎ合わせることにより、歩数と、その歩数の運動が行われた場合に最低でも心拍が上昇する幅との対応関係をモデル化することができる。以下では、歩数に対応して最低でも心拍が上昇する幅のことを「最低心拍上昇幅」と記載する場合がある。
図17は、モデルの生成方法の一例を示す図である。図17の上段及び下段のグラフに示す縦軸は、心拍数の上昇幅を指し、横軸は、歩数を指す。図17の上段のグラフには、同一人物から計測された心拍数データ及び運動データから抽出された歩数および心拍数の上昇幅の組が所定のサンプル数にわたってプロットされている。例えば、生成部71は、図17の上段のグラフにおいて、歩数が30歩ごとに区分された帯域ごとに、当該帯域に含まれるプロットの中で心拍数の上昇幅が最下位からN(自然数)番目、例えば3番目のプロットに対応する心拍数の上昇幅を抽出する。これにより、図17の下段のグラフに示すように、歩数と最低心拍上昇幅との関係がモデル化されたモデル81が得られる。ここで、最下位から3番目のプロットに対応する心拍数の上昇幅を抽出するのは、計測異常値等が抽出されることにより、運動による最低心拍上昇幅を推定する精度が低下するのを抑制するためである。このように生成されたモデル81は、算出部72が参照する図示しない内部メモリのワークエリアに保存される。
算出部72は、運動区間における運動の強度に対応する最低心拍上昇幅を用いて、ベース心拍数を算出する処理部である。以下では、第二の特定部35により特定されるベース心拍数と区別する観点から、第二の特定部35により特定されるベース心拍数を「第1のベース心拍数」と記載し、算出部72が算出するベース心拍数を「第2のベース心拍数」と記載する場合がある。
一実施形態として、算出部72は、第一の特定部33により特定された運動区間ごとに、当該運動区間の運動データから当該運動区間における運動の強度を算出する。続いて、算出部72は、図示しない内部メモリに保存されたモデルに含まれる最低心拍上昇幅のうち、運動区間における運動の強度に対応する最低心拍上昇幅を抽出する。その上で、算出部72は、運動区間の心拍数データの統計値から、最低心拍上昇幅を減算することにより、第2のベース心拍数を算出する。
図18は、心拍波形の一例を示す図である。図18にも、行動検知の一例として、食事の検知が行われる場合を示す。図18の運動区間M18は、2番目に濃いグラデーションのハッチングで示されている。さらに、図18の食事区間L8は、最も濃いグラデーションのハッチングで示されている。さらに、図18の所定区間K15は、最も薄いグラデーションのハッチングで示されている。なお、図18に示すグラフにおいても、縦軸は、心拍数[bpm]を指し、横軸は、時刻[HH:MM]を指す。
図18には、運動区間M18の前および後で運動以外の要因、例えば精神的緊張により心拍数が上昇する成分が含まれる心拍数データの波形W11が示されている。図18の上段に示すように、心拍数データの波形W11からは、補正対象区間C15の始まりの心拍数A15及び終わりの心拍数B15のうち低い方の心拍数が第1のベース心拍数b15−1として特定される。このような第1のベース心拍数b15−1に補正対象区間C15の心拍数データを置換したとしても、運動による心拍数の影響を除去しきれない。なぜなら、補正対象区間C15の始まりの心拍数A15及び終わりの心拍数B15は、いずれも運動以外の要因、例えば精神的緊張が一因となって安静時の心拍数よりも上昇しているからである。この結果、運動による心拍数の上昇の影響が実際よりも低く見積もられることになる。
このように運動による心拍数の上昇の影響が実際よりも低く見積もられるのを抑制するために、図18の下段のグラフに示すように、モデル81に含まれる最低心拍上昇幅のうち、運動区間M18における運動の強度に対応する最低心拍上昇幅82が算出部72により抽出される。その上で、運動区間M18の心拍数データに含まれる心拍数のうち最大の心拍数m1から、最低心拍上昇幅82を減算することにより、第2のベース心拍数b15−2が算出部72により算出される。これら第1のベース心拍数b15−1及び第2のベース心拍数b15−2のうち、低い方のベース心拍数に値が補正された補正データに、補正対象区間C15の心拍数データが置換される。これにより、運動区間M18の前および後で運動以外の要因、例えば精神的緊張により心拍数が上昇する成分が含まれる場合でも、運動による心拍数の上昇の影響が実際よりも低く見積もられるのを抑制できる。
[処理の流れ]
図19は、実施例3に係る心拍数補正処理の手順を示すフローチャートである。この処理は、一例として、第一のセンサ11及び第二のセンサ12から送信される心拍数データ及び運動データを待機する状態から開始される。
図19に示すように、第一の取得部31は、第一のセンサ11から心拍数データを取得する(ステップS301)。また、第二の取得部32は、第二のセンサ12から運動データを取得する(ステップS302)。これらステップS301及びステップS302は、同時に実行されることとしてもよいし、順不同で実行されることとしてもかまわない。
そして、第一の特定部33は、ステップS302で取得された運動データからステップS301で取得された心拍数データの計測区間における運動区間を特定する(ステップS303)。続いて、設定部34は、ステップS303で特定された運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定する(ステップS304)。
その後、第二の特定部35は、ステップS304で設定された補正対象区間ごとに、当該補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数を第1のベース心拍数として特定する(ステップS305)。
そして、算出部72は、運動の強度と最低心拍上昇幅との関係がモデル化されたモデルから、ステップS303で特定された運動区間における運動の強度に対応する最低心拍上昇幅を抽出する(ステップS306)。その上で、算出部72は、ステップS303で特定された運動区間の心拍数データの心拍数のうち最大の心拍数から、ステップS306で抽出された最低心拍上昇幅を減算することにより、第2のベース心拍数を算出する(ステップS307)。
その後、置換部36は、ステップS304で設定された補正対象区間ごとに、ステップS305で特定された第1のベース心拍数b15−1及びステップS307で算出された第2のベース心拍数b15−2のうち、低い方のベース心拍数に値が補正された補正データに、補正対象区間の心拍数データを置換する(ステップS308)。
そして、検知部37は、ステップS308で置換された補正対象区間の補正データと、ステップS301で取得された心拍数データの計測区間のうちステップS308で置換されていない補正対象区間以外の区間の心拍数データとに基づき、行動を検知し(ステップS309)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置70においても、上記の実施例1に係るサーバ装置30と同様、運動による心拍の影響が対象者による特定の行動検知を阻害することを抑制することが可能になる。
さらに、本実施例に係るサーバ装置70は、運動の強度と最低心拍上昇幅との関係がモデル化されたモデルに含まれる最低心拍上昇幅のうち運動区間における運動の強度に対応する最低心拍上昇幅を、運動区間の心拍数データの統計値から減算することにより、第2のベース心拍数を算出する。その上で、本実施例に係るサーバ装置70は、第1のベース心拍数及び第2のベース心拍数のうち、低い方のベース心拍数に値が補正された補正データに、補正対象区間の心拍数データを置換する。したがって、本実施例に係るサーバ装置70によれば、運動区間の前および後で運動以外の要因、例えば精神的緊張により心拍数が上昇する成分が含まれる場合でも、運動による心拍数の上昇の影響が実際よりも低く見積もられるのを抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[スタンドアローン]
上記の実施例1〜実施例3では、上記のヘルスケア支援システム1〜3をクライアントサーバシステムとして構築される場合を例示したが、必ずしもクライアントサーバシステムとして構築されずともよい。例えば、サーバ装置30、50または70が有する機能部により実行される図9、図15または図19に示す心拍数補正処理は、ウェアラブル端末10に接続されたIoTデバイス20によりスタンドアローンで実行されることとしてもかまわない。さらに、ウェアラブル端末10及びIoTデバイス20は、必ずしも別個の装置として構成されずともよい。すなわち、第一のセンサ11及び第二のセンサを搭載するコンピュータにより、サーバ装置30、50または70が有する機能部により実行される図9、図15または図19に示す心拍数補正処理がスタンドアローンで実行されることとしてもかまわない。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36又は検知部37をサーバ装置30の外部装置としてネットワーク経由で接続するようにしてもよい。また、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部51、推定部52又は算出部53をサーバ装置50の外部装置としてネットワーク経由で接続するようにしてもよい。さらに、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部71または算出部72をサーバ装置70の外部装置としてネットワーク経由で接続するようにしてもよい。
また、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36又は検知部37を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置30の機能を実現するようにしてもよい。また、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部51、推定部52又は算出部53を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置50の機能を実現するようにしてもよい。また、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部71または算出部72を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置70の機能を実現するようにしてもよい。
[心拍数補正プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図20を用いて、上記の実施例と同様の機能を有する心拍数補正プログラムを実行するコンピュータの一例について説明する。
図20は、実施例1〜実施例4に係る心拍数補正プログラムを実行するコンピュータのハードウェア構成例を示す図である。図20に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、上記の実施例1で示した第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36及び検知部37と同様の機能を発揮する心拍数補正プログラム170aが記憶される。また、HDD170には、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部51、推定部52及び算出部53と同様の機能を発揮する心拍数補正プログラム170aが記憶されることとしてもかまわない。また、HDD170には、第一の取得部31、第二の取得部32、第一の特定部33、設定部34、第二の特定部35、置換部36、検知部37、生成部71及び算出部72と同様の機能を発揮する心拍数補正プログラム170aが記憶されることとしてもかまわない。この心拍数補正プログラム170aは、図1、図10または図16に示した構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1、2又は3で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から心拍数補正プログラム170aを読み出した上でRAM180へ展開する。この結果、心拍数補正プログラム170aは、図20に示すように、心拍数補正プロセス180aとして機能する。この心拍数補正プロセス180aは、RAM180が有する記憶領域のうち心拍数補正プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、心拍数補正プロセス180aが実行する処理の一例として、図9、図15または図19に示す処理などが含まれる。なお、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又は2に記載の心拍数補正プログラム。
(付記4)運動の強度と心拍の上昇幅との関係がモデル化されたモデルに含まれる心拍の上昇幅のうち、前記運動区間における運動の強度に対応する心拍の上昇幅を、該運動区間の心拍データの統計値から減算する処理を前記コンピュータにさらに実行させ、
前記置換する処理は、特定した心拍数、および、減算後の心拍数のうち、より低い方の心拍数に補正した補正データへ置換する付記1から3のいずれか一つに記載の心拍数補正プログラム。
(付記5)前記特定の行動は、前記対象者による食事行動であることを特徴とする付記1から4のいずれか一つに記載の心拍数補正プログラム。
(付記6)対象者の心拍を計測する第一のセンサから心拍の状態に関する心拍データを取得し、
前記対象者の運動を計測する第二のセンサから運動データを取得し、
前記運動データから計測区間における運動区間を特定し、
前記運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定し、
前記心拍データに基づき、前記補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数を特定し、
前記補正対象区間の心拍データについては、特定した心拍数に補正した補正データへ置換し、
前記補正対象区間の前記補正データと、前記計測区間における前記補正対象区間以外の区間の心拍データとに基づき、前記対象者による特定の行動を検知する、
処理をコンピュータが実行する心拍数補正方法。
(付記7)前記運動区間の心拍データの統計値と、運動後における心拍数の立ち下がりがモデル化されたモデルとから、前記運動区間後の所定区間における心拍数の立ち下がりの波形を推定し、推定された前記所定区間における心拍数の立ち下がりの波形と、該所定区間の心拍データの波形との差分波形を算出する処理を前記コンピュータがさらに実行し、
前記置換する処理は、前記補正対象区間のうち前記所定区間の心拍データを、前記差分波形に補正した補正データへ置換する付記6に記載の心拍数補正方法。
(付記8)前記運動区間の心拍データの統計値と、運動区間開始直後における心拍数の立ち上がりがモデル化されたモデルとから、前記運動区間開始直後の所定区間における心拍数の立ち上がりの波形を推定し、推定された前記所定区間における心拍数の立ち上がりの波形と、該所定区間の心拍データの波形との差分波形を算出する処理を前記コンピュータがさらに実行し、
前記置換する処理は、前記補正対象区間のうち前記所定区間の心拍データを、前記差分波形に補正した補正データへ置換する付記6又は7に記載の心拍数補正方法。
(付記9)運動の強度と心拍の上昇幅との関係がモデル化されたモデルに含まれる心拍の上昇幅のうち、前記運動区間における運動の強度に対応する心拍の上昇幅を、該運動区間の心拍データの統計値から減算する処理を前記コンピュータがさらに実行し、
前記置換する処理は、特定した心拍数、および、減算後の心拍数のうち、より低い方の心拍数に補正した補正データへ置換する付記6から8のいずれか一つに記載の心拍数補正方法。
(付記10)前記特定の行動は、前記対象者による食事行動であることを特徴とする付記6から9のいずれか一つに記載の心拍数補正方法。
(付記11)対象者の心拍を計測する第一のセンサと、
前記対象者の運動を計測する第二のセンサと、
前記第一のセンサから心拍の状態に関する心拍データを取得する第一の取得部と、
前記第二のセンサから運動データを取得する第二の取得部と、
前記運動データから計測区間における運動区間を特定する第一の特定部と、
前記運動区間と、該運動区間後の所定区間とを含む、補正対象区間を設定する設定部と、
前記心拍データに基づき、前記補正対象区間の始まりと終わりの心拍数のうち、より低い心拍数を特定する第二の特定部と、
前記補正対象区間の心拍データについては、特定した心拍数に補正した補正データへ置換する置換部と、
前記補正対象区間の前記補正データと、前記計測区間における前記補正対象区間以外の区間の心拍データとに基づき、前記対象者による特定の行動を検知する検知部と、
を有する心拍数補正システム。
(付記12)前記運動区間の心拍データの統計値と、運動後における心拍数の立ち下がりがモデル化されたモデルとから、前記運動区間後の所定区間における心拍数の立ち下がりの波形を推定する推定部と、
推定された前記所定区間における心拍数の立ち下がりの波形と、該所定区間の心拍データの波形との差分波形を算出する算出部とをさらに有し、
前記置換部は、前記補正対象区間のうち前記所定区間の心拍データを、前記差分波形に補正した補正データへ置換する付記11に記載の心拍数補正システム。
(付記13)前記運動区間の心拍データの統計値と、運動区間開始直後における心拍数の立ち上がりがモデル化されたモデルとから、前記運動区間開始直後の所定区間における心拍数の立ち上がりの波形を推定する推定部と、
推定された前記所定区間における心拍数の立ち上がりの波形と、該所定区間の心拍データの波形との差分波形を算出する算出部とをさらに有し、
前記置換部は、前記補正対象区間のうち前記所定区間の心拍データを、前記差分波形に補正した補正データへ置換する付記11又は12に記載の心拍数補正システム。
(付記14)運動の強度と心拍の上昇幅との関係がモデル化されたモデルに含まれる心拍の上昇幅のうち、前記運動区間における運動の強度に対応する心拍の上昇幅を、該運動区間の心拍データの統計値から減算する算出部をさらに有し、
前記置換部は、特定した心拍数、および、減算後の心拍数のうち、より低い方の心拍数に補正した補正データへ置換する付記11から13のいずれか一つに記載の心拍数補正システム。
(付記15)前記特定の行動は、前記対象者による食事行動であることを特徴とする付記11から14のいずれか一つに記載の心拍数補正システム。