以下に、本願の開示する波形検出装置、波形検出方法及び波形検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る波形検出装置の機能的構成を示すブロック図である。図1に示す波形検出装置10は、被験者が装着する心電センサ20によって採取される信号から被験者の心電波形の形状、例えば心電波形の一部を形成するR波やT波などを検出する波形検出処理を実行するものである。
一態様としては、波形検出装置10は、パッケージソフトウェアやオンラインソフトウェアとして提供される波形検出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の波形検出プログラムは、パーソナルコンピュータを始めとする固定端末にインストールされることとしてもよい。また、上記の波形検出プログラムは、スマートフォン、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistants)などの携帯端末装置にインストールされることとしてもかまわない。他の一態様としては、波形検出装置10は、心電センサ20と一体化して上記の波形検出機能を提供する専用のデバイスとして実装されることとしてもよい。更なる一態様としては、波形検出装置10は、波形検出サービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって上記の波形検出サービスを提供するクラウドとして実装することとしてもかまわない。
図1に示すように、波形検出装置10及び心電センサ20は、少なくとも心電センサ20から波形検出装置10へ通信可能に接続される。これら波形検出装置10及び心電センサ20は、有線または無線のいずれの接続形態で通信されることとしてもかまわない。例えば、ネットワークを介して通信が行われる場合には、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。なお、図1には、波形検出装置10に接続される心電センサ20の数が1つである場合を図示したが、複数の心電センサ20を波形検出装置10に接続することもできる。
心電センサ20は、複数の電極間の電位差を採取するデバイスである。かかる電位差を採取することによって、数mV程度の電圧、0.1〜200Hz程度の周波数、1〜20kΩ程度のインピーダンスを持つ生体電気現象、いわゆる心起電力が心電信号として測定される。例えば、心電センサ20は、電極間の電位差の検出および増幅を行う電子回路や所定のサンプリング周波数で電位差のアナログ信号をデジタル信号へ変換するデジタル信号回路などを含んで実装される。
上記の心電センサ20には、導電性の粘着ゲルを付着させたディスポ電極が少なくとも2つ以上取り付けられる。これらディスポ電極が被験者の生体の表面、例えば胸部に装着された状態で心電信号の測定がなされる。このとき、被験者の体動によってディスポ電極と体表面との間で接触状態が変化すると、接触状態の変化に伴って電極間の電位差も変化する。この場合には、心電センサ20から波形検出装置10へ入力される信号にノイズが重畳し、例えば、心電波形の基線が変動する。また、電極が胸筋の直上に貼付された場合には、筋電信号も同時に観測されるので、心電信号に筋電信号が重畳する。かかる筋電信号は、心電信号よりも高周波であるので、筋電信号が重畳されると心電波形の凸部が検出されづらくなる。
これらのノイズが心電信号に及ぼす影響は、被験者によって個人差があり、体動の種類や大きさによっても異なる。さらに、生体の表面に装着する電極の数を少なくするほど、あるいはデジタル信号回路に簡易なものを採用するほどノイズの影響が大きくなる。このため、ハイパスフィルタ等のデジタルフィルタを用いてノイズを低減する場合には、カットオフ周波数などのパラメータを適切に設定するのは困難である。
そこで、本実施例に係る波形検出装置10は、入力信号の波形を折れ線の波形へ近似し、折れ線を形成する直線の交点のうち互いに隣接する直線の傾きの正負が反転する極値を持つ極値点の特徴量を用いて極値点を凸部と基線部に分類する。
このように、本実施例に係る波形検出装置10では、入力信号の波形に近似する折れ線の波形へモデル化する。このため、心電信号に重畳するノイズの中でも筋電信号などの高周波のノイズが極値点と検出される事態を抑制できる。さらに、本実施例に係る波形検出装置10では、折れ線の波形を形成する直線の交点の中でも凸形状を持つ極値点に絞り、凸形状の鋭さによって極値点を心電波形の凸部と基線部に分類する。このため、心電波形の「凸部」、すなわち一拍の心電波形で振幅の変化が大きい部分と「基線部」、すなわち一拍の心電波形で振幅の変化が少ない平坦な部分とへ極値点を分類するのに、特定の周波数成分を抽出または遮断する信号処理を適用する頻度を低減できる。この結果、ハイパスフィルタ等のデジタルフィルタのように、フィルタの設計、例えばカットオフ周波数などのパラメータの設定によって検出精度が左右されず、体動や筋電信号によってノイズが発生しても極値点を凸部または基線部へ安定して分類できる。
したがって、本実施例に係る波形検出装置10によれば、入力信号から心電波形の形状を精度よく検出できる。
図1に示すように、波形検出装置10は、取得部11と、ローパスフィルタ(LPF:Low-Pass Filter)12と、生成部13と、算出部14と、極値点記憶部15と、学習部16と、学習結果記憶部17と、分類部18とを有する。なお、波形検出装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。例えば、波形検出装置10が携帯端末として実装される場合には、アンテナ、キャリア網を介して通信を行うキャリア通信部、GPS(Global Positioning System)受信機などのように、携帯端末が持つ機能部をさらに有していてもよい。
取得部11は、心電センサ20によって採取される信号を取得する処理部である。一態様としては、取得部11は、心電センサ20によって電極間の電位差が時系列に採取される信号を一定の周期で取得する。以下では、心電センサ20から波形検出装置10へ入力される信号のことを「入力信号」と記載する場合がある。他の一態様としては、取得部11は、心電センサ20を用いて被験者から採取された信号を蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアから信号を取得することもできる。更なる一態様としては、取得部11は、心電センサ20または心電センサ20を搭載する外部装置からネットワークを経由して入力信号を取得することもできる。
ローパスフィルタ12は、取得部11によって取得された入力信号のうち低域周波数の信号成分を通過させるデジタルフィルタである。かかるローパスフィルタ12には、双2次型やバターワース型などの任意のフィルタ回路の設計方式を採用できる。また、ローパスフィルタ12の伝達関数に設定されるカットオフ周波数や次数は、心電信号よりも高周波である筋電信号の信号成分を遮断しつつも、目的とする心電波形のR波やT波などの凸部の信号成分が抽出される程度の値であることが好ましい。
生成部13は、ローパスフィルタ12によって出力されるローパス信号の波形に近似する折れ線の波形を生成する処理部である。一態様としては、生成部13は、ローパスフィルタ12によって出力されるローパス信号の波形を等間隔に時分割する。以下では、ローパス信号の波形のことを「ローパス波形」と記載するとともに、折れ線の波形のことを「折れ線波形」と記載する場合がある。その上で、生成部13は、等間隔に時分割されたローパス波形の区間ごとに当該ローパス波形が含むサンプリング点のデジタル値から当該区間の回帰直線を生成する。なお、上記の区間が時分割される分割幅は、波形検出プログラムの設計者や波形検出装置10の利用者などが任意の値を設定することができ、各区間の間で異なる分割幅を設定することもできる。
図2は、ローパス波形および折れ線波形を示すグラフの一例である。図2に示すグラフの縦軸は、電気的刺激の強さを表す振幅を指し、グラフの横軸は、時間を指す。図2には、ローパス波形が破線で図示されており、折れ線波形が実線で図示されている。図2に示すように、折れ線への近似を行う場合には、ローパス波形が等間隔Ts、例えば心電センサ20で電位差が10回サンプリングされる期間に時分割される。このとき、時分割された区間ごとに回帰直線を独立して求めると、各区間の間で回帰直線が連続せず、折れ線波形が得られない場合がある。このため、各区間の間で回帰直線を連続させるために、1つ前の区間で生成された回帰直線の終点E0を通る回帰直線が生成される。
例えば、1つ前の回帰直線の終点の座標を(t0,S0)、回帰直線を求める区間におけるローパス波形のサンプリング点の座標を(t1,S1)、・・・、(tN,SN)としたとき、下記の式(1)及び式(2)によって回帰直線S=at+bの傾きa及び切片bを算出できる。ここで言う「切片b」とは、折れ線波形への近似が開始された時点の振幅、すなわち回帰直線と横軸の交点を表す。下記の傾きa及び切片bの算出式によって、各区間の間で終点と始点が共有された回帰直線の連なり、すなわち折れ線波形を得ることができる。
算出部14は、折れ線を形成する直線の交点のうち互いに隣接する直線の傾きの正負が反転する極値点の特徴量を算出する処理部である。ここで、上記の「極値点」は、回帰直線と回帰直線の交点の中でも折れ線の傾きが正から負、あるいは負から正へ変化する点であるので、一拍の心電波形に含まれるR波やT波といった振幅が大きい凸部に該当する可能性が高い。かかる極値点の性質を利用して、折れ線波形の中から一拍の心電波形に含まれるR波やT波といった振幅が大きい凸部を検出するために、極値点の凸部らしさ、すなわち凸形状の鋭さを表す指標が特徴量として算出される。
上記の特徴量の一例としては、下記の(1)〜(11)の種類が挙げられる。具体的には、(1)折れ線の傾きの差、(2)前方極値との縦軸変化量、(3)後方極値との縦軸変化量、(4)前方折れ線の傾き、(5)前方折れ線の切片、(6)後方折れ線の傾きなどを特徴量として算出できる。さらに、(7)後方折れ線の切片、(8)回帰直線の交点と極値点との縦軸方向の差分、(9)回帰直線の傾きの差、(10)凸部高さ、(11)鋭さ指標などを特徴量として算出できる。
図3及び図4は、極値点の特徴量の一例を示す図である。これら図3及び図4に示すグラフの縦軸は、振幅を指し、グラフの横軸は、時間を指す。図3及び図4においても、ローパス波形が破線で図示されるとともに折れ線波形が実線で図示されており、折れ線上の極値点が黒丸にて図示されている。なお、ここでは、特徴量を求める極値点がサンプリングされる以前のことを「前方」と記載し、特徴量を求める極値点がサンプリングされる以後のことを「後方」と記載する場合がある。
例えば、(1)「折れ線の傾きの差」とは、極値点の前方の区間で生成された回帰直線の傾きと極値点の後方の区間で生成された回帰直線の傾きとの差を指す。例えば、図3に示す極値点emを特徴量を求める対象として着目したとき、極値点emの前方の区間で生成された回帰直線(イ)の傾きと、極値点emの後方の区間で生成された回帰直線(ロ)の傾きとの差が(1)の特徴量として算出される。かかる(1)の特徴量が小さいほど傾きの差が小さいので、極値点を含む局所的な波の凸形状が鋭いと評価できる。したがって、(1)の特徴量が小さいほど極値点が心電波形の凸部である可能性が高いと推定できる。
また、(2)「前方極値との縦軸変化量」とは、特徴量を求める極値点とその前方の極値点との間で測定される振幅の変化量を指し、(3)「後方極値との縦軸変化量」とは、特徴量を求める極値点とその後方の極値点との間で測定される振幅の変化量を指す。例えば、図3に示す極値点emに着目したとき、着目の極値点emの振幅値と、前方の極値点em-1の振幅値との差が(2)の特徴量として算出される。一方、着目の極値点emの振幅値と、後方の極値点em+1の振幅値との差が(3)の特徴量として算出される。このため、極値点emの(2)の特徴量と、極値点em-1の(3)の特徴量とは同じ値となる。かかる(2)及び(3)の特徴量が大きいほど極値点を含む局所的な波の凸形状が鋭いと評価できる。したがって、(2)及び(3)の特徴量が大きいほど極値点が心電波形の凸部である可能性が高いと推定できる。
また、(4)「前方折れ線の傾き」、(5)「前方折れ線の切片」、(6)「後方折れ線の傾き」及び(7)「後方折れ線の切片」は、極値点の前方の区間で生成された回帰直線または極値点の後方の区間で生成された回帰直線に関するパラメータである。図3に示す極値点emに着目したとき、極値点emの前方の区間で生成された回帰直線(イ)の傾きが(4)の特徴量として算出されるとともに、前方の回帰直線(イ)の切片が(5)の特徴量として算出される。また、極値点emの後方の区間で生成された回帰直線(ロ)の傾きが(6)の特徴量として算出されるとともに、後方の回帰直線(ロ)の切片が(7)の特徴量として算出される。このように、回帰直線の切片を特徴量として用いるのは、回帰直線の傾きだけでは、折れ線波形の急峻な変化が体動に起因する基線動揺であるのか、拍動に起因する凸部、すなわちR波やT波であるのかを識別できない場合もあるからである。
また、(8)「回帰直線の交点と極値点との縦軸方向の差分」とは、特徴量を求める極値点及び前方の極値点の区間で生成された回帰直線と特徴量を求める極値点及び後方の極値点の区間で生成された回帰直線との交点の振幅値と、ローパス波形の極値点の振幅との差を指す。例えば、図4に示す極値点emに着目したとき、前方の極値点em-1及び着目の極値点emの区間で回帰直線(α)が算出されるとともに、着目の極値点em及び後方の極値点em+1の区間で回帰直線(β)が算出される。このうち、前方の極値点em-1及び着目の極値点emの時間間隔は、ローパス波形の分割幅Tsと一致するので、図3に示した回帰直線(イ)と同一の回帰直線(α)が算出される。一方、着目の極値点em及び後方の極値点em+1の時間間隔は、ローパス波形の分割幅Tsよりも大きく、ローパス波形の分割幅Tsと一致しないので、図3に示した回帰直線(ロ)とは異なり、ローパス波形の分割幅Tsよりも長い区間で回帰直線(β)が算出される。その上で、回帰直線(α)及び回帰直線(β)の交点Pmの振幅値と、ローパス波形の極値点Qの振幅値との差が(8)の特徴量として算出される。かかる(8)の特徴量が小さいほど折れ線波形の極値点とローパス波形の極値点との一致度が高いと評価できる。したがって、(8)の特徴量が小さいほど極値点の特徴量がデータとして信頼性が高いと推定できる。
また、(9)「回帰直線の傾きの差」とは、極値点及び前方の極値点の区間で生成された回帰直線と極値点及び後方の極値点の区間で生成された回帰直線との傾きの差を指す。図4に示すように、(8)の特徴量で説明した回帰直線(α)の傾きと回帰直線(β)の傾きとの差が(9)の特徴量として算出される。かかる(9)の特徴量が小さいほど傾きの差が小さいので、極値点を含む局所的な波の凸形状が鋭いと評価できる。したがって、(9)の特徴量が小さいほど極値点が心電波形の凸部である可能性が高いと推定できる。
また、(10)「凸部高さ」とは、振動の基線からの高さを指し、例えば、(2)の特徴量及び(3)の特徴量のうち小さい方の値が採用される。図3に示す極値点emに着目したとき、(2)及び(3)のうち(3)の特徴量の値が(2)の特徴量の値よりも小さいので、(3)の特徴量の値が(10)の特徴量として採用される。このように、(2)及び(3)のうち小さい値を持つ方を凸部高さとして採用するのは、大きい値を持つ方を凸部高さとして採用すると、回帰直線の傾きが負から正へ変化する極値点および回帰直線の傾きが正から負へ変化する極値点が連続して出現する場合に、連続する極値点の間で特徴量が同一の値となってしまうケースがあるからである。このように、同一の特徴量を持つ極値点が連続すると、各々の極値点が心電波形の凸部上にある変曲点であるのか、あるいは基線上にある変曲点であるのかを識別できない。これらの変曲点を識別するために、(2)及び(3)のうち小さい値を持つ方が(10)の特徴量として採用される。
また、(11)「鋭さ指標」とは、特徴量を求める極値点を基準に前方の極値点から後方の極値点までの時間幅で(10)の特徴量を割った値を指す。図4の例で言えば、前方の極値点em-1から後方の極値点m+1までの時間幅で極値点emの凸部高さ、すなわち図3に示す(10)の特徴量を割った値が(11)の特徴量として算出される。かかる(11)の特徴量が大きいほど極値点を含む局所的な波の凸形状が鋭いと評価できる。したがって、(11)の特徴量が大きいほど極値点が心電波形の凸部である可能性が高いと推定できる。
このように、算出部14は、極値点の特徴量として上記の(1)〜(11)の特徴量を算出することができる。このとき、算出部14は、必ずしも上記の(1)〜(11)の特徴量を全て算出せずともよく、上記の(1)〜(11)の特徴量のうち少なくとも1つの特徴量を算出すればよい。また、算出部14は、上記の(1)〜(11)の特徴量のうち任意の数および任意の組合せについて特徴量を算出することもできる。
ここで、上記の極値点の特徴量は、折れ線波形の極値点を凸部または基線部に分類する分類処理を実行することによって心電波形の形状を検出するために使用できる他、上記の分類処理に適用する判定モデルを生成するための学習用のデータセットとして用いることもできる。以下では、学習用のデータセットを用いて分類処理に適用する判定モデルを学習する学習系の機能部、すなわち極値点記憶部15、学習部16及び学習結果記憶部17を説明した後に、学習結果として得られた判定モデルを用いて極値点を分類する分類系の機能部、すなわち分類部18を説明することとする。なお、図1には、波形検出装置10が学習系の機能部および分類系の機能部の両方を有する場合を例示したが、学習系の機能部を有さず、分類部18だけを有することとしてもかまわない。
図1の説明に戻り、極値点記憶部15は、極値点に関する各種の情報を記憶する記憶部である。かかる極値点記憶部15へのアクセスの一例としては、算出部14によって極値点の特徴量が算出された場合に、極値点ごとの特徴量が極値点記憶部15へ登録される。他の一例としては、極値点の特徴量が新規に登録された場合に、波形検出プログラムの設計者や波形検出装置10の利用者などによって極値点がローパス波形や折れ線波形の目視等で分類されたクラスの正解が極値点記憶部15に追加登録される。更なる一例としては、極値点の特徴量にクラスが追加登録されることによって新たな学習用のデータセットが完成した場合に、極値点記憶部15に記憶された全ての学習用のデータセットが学習部16によって参照される。
かかる極値点記憶部15のデータ構造の一例としては、極値点がサンプリングされた時刻、極値点の特徴量及び極値点が属するクラスなどの項目が対応付けられたデータを採用できる。図5は、極値点記憶部15に記憶されるデータの構成例を示す図である。図5に示すように、上記の(1)〜(11)までの特徴量が極値点ごとに記憶されている。図5の例では、極値点が30個目、50個目、80個目及び120個目のサンプリング点に出現していることを意味する。さらに、図5の例では、30個目及び120個目にサンプリングされた極値点が「基線部」に属しており、また、50個目および80個目にサンプリングされた極値点が「凸部」に属していることを意味する。
学習部16は、極値点記憶部15に記憶された極値点の特徴量及びクラスを用いて、極値点が凸部のクラスに属するか、もしくは基線部のクラスに属するかを分類する分類処理に適用する判定モデルを学習する処理部である。かかるクラス分けの機械学習には、ブースティング、ニューラルネットワーク、サポートベクターマシンなどの任意のアルゴリズムを採用することができる。ここでは、一例として、極値点の特徴量をノードとする分類木を生成する場合を例示する。この場合には、学習部16は、例えば、上記の(1)〜(11)の特徴量のうちノードとして採用するノード、ノードを配置する階層、さらには、各ノードで設定する閾値をクラス分けの正解率が最も高くなるように分類木を生成する。そして、学習部16は、生成された分類木、すなわち判定モデルの学習結果を学習結果記憶部17へ登録する。このように、分類木を生成する場合には、学習用のデータセットが多いほど極値点の分類の精度を高めることができる。
図6は、分類木の一例を示す図である。図6に示す分類木を判定モデルとして用いる場合には、極値点の(10)凸部高さが27.8未満であるか否かが最初に判定される(ステップS11)。このように、図6に示す分類木からは、極値点を凸部または基線部へ大別するのに(10)の特徴量である凸部高さが有用であることがわかる。
このとき、凸部高さが27.8未満である場合には、極値点の(10)凸部高さが22.3未満であるか否かがさらに判定される(ステップS12)。このように、閾値を下げて凸部高さが再判定されるのは、凸部高さが27.8未満であっても極値点が凸部である余地が残されているからである。そして、凸部高さが22.3未満である場合には、極値点が「基線部」に分類される。一方、凸部高さが22.3以上である場合には、極値点の(4)前方折れ線の傾きが−1.18未満であるか否かがさらに判定される(ステップS13)。このとき、前方折れ線の傾きが−1.18未満である場合には、極値点が「基線部」に分類される一方で、前方折れ線の傾きが−1.18以上である場合には、極値点が「凸部」に分類される。
また、凸部高さが27.8以上である場合には、極値点の(4)前方折れ線の傾きが−1.27以上であるか否かがさらに判定される(ステップS14)。このように、特徴量の種類を変えて判定が継続されるのは、凸部高さが27.8以上であっても極値点が凸部でない余地が残されているからである。そして、前方折れ線の傾きが−1.27以上である場合には、極値点が「凸部」に分類される。一方、前方折れ線の傾きが−1.27未満である場合には、極値点の(10)凸部高さが41.8未満であるか否かがさらに判定される(ステップS15)。このとき、凸部高さが41.8未満である場合には、極値点が「基線部」に分類される。また、凸部高さが41.8以上である場合には、(8)回帰直線の交点と極値点との縦軸方向の差分が9.0以上であるか否かがさらに判定される(ステップS16)。かかる判定は、当該極値点の特徴量に関するデータの信頼性を判定することを目的としている。このため、(8)の特徴量が過度に大きい場合には、データの信頼性が低いと推定して凸部と分類するのを回避する。すなわち、回帰直線の交点と極値点との縦軸方向の差分が9.0以上である場合には、極値点が「基線部」に分類される。一方、回帰直線の交点と極値点との縦軸方向の差分が9.0未満である場合には、データの信頼性が確認されたとみなし、極値点が「凸部」に分類される。
なお、ここでは、判定モデルの生成に機械学習を用いる場合を例示したが、必ずしも判定モデルの生成に機械学習を用いずともよく、1種類の特徴量を用いて閾値判定を簡易に行うこととしてもかまわない。例えば、凸部高さが所定の閾値以上であるか否かを判定し、閾値以上であれば極値点を「凸部」に分類する一方で、閾値未満であれば極値点を「基線部」に分類するという簡易な判定モデルを用いることによって学習用のデータセットを用意せずともよくなる。このとき、凸部高さが所定の閾値以上である場合には、回帰直線の交点と極値点との縦軸方向の差分が所定の閾値以上であるか否かをさらに判定し、閾値以上である場合に絞って極値点を「凸部」に分類することとしてもよい。
図1の説明に戻り、学習結果記憶部17は、判定モデルの学習結果を記憶する記憶部である。かかる学習結果記憶部17へのアクセスの一例としては、学習部16によって分類木が判定モデルとして学習された場合に、分類木が学習結果記憶部17へ登録される。他の一例としては、後述の分類部18によって極値点の特徴量が分類される場合に、学習結果記憶部17に判定モデルの学習結果として記憶された分類木が分類部18によって参照される。かかる学習結果記憶部17に記憶されるデータ形式の一例としては、分類木に含まれるノードの階層構造、各ノードに出現する特徴量および各ノードの閾値がIF〜THEN〜文の形式で記述されたデータを採用できる。
分類部18は、折れ線波形に含まれる極値点の特徴量を用いて、当該極値点を凸形状を持つ凸部または平坦状の基線部に分類する処理部である。一態様としては、分類部18は、算出部14によって算出された極値点の特徴量に学習結果記憶部17に記憶された分類木を適用することによって極値点を凸部または基線部に分類する。その後、分類部18は、各極値点の分類結果を波形検出装置10内の記憶部へ保存したり、波形検出装置10に接続された表示デバイスに表示させたり、外部装置へ出力したりする。
例えば、分類結果の表示方法の一例としては、入力信号の波形、ローパス波形または折れ線波形のうち少なくともいずれか1つとの間で時間を同期させてR波やT波などの凸部の出現時間を表示させることができる。さらに、心電信号が持つ特性、すなわち一拍の時間間隔が略同一であり、一拍の心電波形においてP波、Q波、R波、S波、T波の順に特徴的な形状が出現し、かつ周期性があるという性質を利用して、凸部に分類された極値点の出現時間からR波とR波の間隔、いわゆるRRI(R-R Interval)や心拍数を求めて表示させることもできる。
また、分類結果の出力先の一例としては、波形検出装置10を利用する利用者の関係者、例えば介護士や医者などが使用する端末装置が挙げられる。他の一例としては、RRIや心拍数から心疾患や自律神経の失調の有無を診断する診断プログラムが実装されているサーバなどが挙げられる。この場合には、サーバ上で動作される診断プログラムによって被験者の心疾患や自律神経の失調の有無を診断させた診断結果を波形検出装置10の表示デバイスに表示させることもできる。そして、診断結果に異常がある場合には、波形検出装置10を利用する利用者の関係者が使用する端末装置へ診断内容を出力することもできる。このように、各極値点の分類結果を始め、分類結果から求められたRRIや心拍数、さらには、上記の診断結果を波形検出装置10を利用する利用者の関係者が使用する端末装置へ出力することによって、院外、例えば在宅や在席のモニタリングサービスも可能になる。
なお、図1に示した取得部11、ローパスフィルタ12、生成部13、算出部14、学習部16及び分類部18などの各種の機能部には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
また、図1に示した極値点記憶部15及び学習結果記憶部17などの各種の記憶部には、次のようなデバイスを採用できる。例えば、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などの半導体メモリ素子を採用できる。また、ハードディスク、光ディスクなどの記憶装置も採用できる。
[処理の流れ]
続いて、本実施例に係る波形検出装置10の処理の流れについて説明する。なお、ここでは、波形検出装置10によって実行される(1)学習処理について説明した後に、(2)分類処理について説明することとする。
(1)学習処理
図7は、実施例1に係る学習処理の手順を示すフローチャートである。この学習処理は、例えば、判定モデルを学習する「学習モード」または極値点を分類する「分類モード」のうち「学習モード」が選択された場合に実行される処理である。
図7に示すように、取得部11は、心電センサ20によって電極間の電位差が時系列に採取される信号を一定の周期で取得する(ステップS101)。続いて、ローパスフィルタ12は、ステップS101で取得された信号のうち低域周波数の信号成分を通過させることによって高周波ノイズを除去する(ステップS102)。
そして、生成部13は、ステップS102で高周波ノイズが除去されたローパス波形に近似する折れ線波形を生成する(ステップS103)。続いて、算出部14は、ステップS103で生成された折れ線波形に含まれる回帰直線と回帰直線の交点の中に折れ線の傾きが正から負、あるいは負から正へ変化する極値点が存在するか否かを判定する(ステップS104)。
このとき、極値点が存在する場合(ステップS104Yes)には、算出部14は、各極値点の特徴量、例えば上記の(1)〜(11)の特徴量を算出する(ステップS105)。なお、極値点が存在しない場合(ステップS104No)には、ステップS105〜ステップS109までの処理をとばし、そのまま処理を終了する。かかる極値点が存在しないケースの一例としては、利用者が心電センサ20を装着していないか、装着の仕方が不適切で入力信号に心電信号が含まれていない状況が挙げられる。
続いて、算出部14は、波形検出プログラムの設計者や波形検出装置10の利用者などによって極値点の形状がローパス波形や折れ線波形の目視等で分類された分類結果の正解を取得する(ステップS106)。
その後、算出部14は、各極値点ごとに当該極値点の特徴量および分類結果の正解を対応付けて極値点記憶部15へ登録する(ステップS107)。
その上で、学習部16は、極値点記憶部15に記憶された極値点の特徴量及びクラスを用いて、極値点が凸部のクラスに属するか、もしくは基線部のクラスに属するかを分類する分類処理に適用する判定モデルを学習する(ステップS108)。
そして、学習部16は、ステップS108で生成された判定モデルの学習結果を学習結果記憶部17へ登録し(ステップS109)、処理を終了する。
このように、図7に示す学習処理では、波形検出装置10が「学習モード」に設定されている限り、ステップS101〜ステップS109の処理が繰り返し実行される。
なお、図7に示したフローチャートでは、心電センサ20から信号が一定の周期で取得される度に処理が実行される場合を例示したが、極値点記憶部15に各極値点の特徴量を登録しておき、ステップS106から処理を実行することとしてもかまわない。また、極値点記憶部15に各極値点の特徴量および分類結果の正解を予め登録しておき、ステップS108から処理を開始することとしてもかまわない。
(2)分類処理
図8は、実施例1に係る分類処理の手順を示すフローチャートである。この分類処理は、例えば、「学習モード」または「分類モード」のうち「分類モード」が選択された場合に実行される処理である。
図8に示すように、取得部11は、心電センサ20によって電極間の電位差が時系列に採取される信号を一定の周期で取得する(ステップS201)。続いて、ローパスフィルタ12は、ステップS201で取得された信号のうち低域周波数の信号成分を通過させることによって高周波ノイズを除去する(ステップS202)。
そして、生成部13は、ステップS202で高周波ノイズが除去されたローパス波形に近似する折れ線波形を生成する(ステップS203)。続いて、算出部14は、ステップS203で生成された折れ線波形に含まれる回帰直線と回帰直線の交点の中に折れ線の傾きが正から負、あるいは負から正へ変化する極値点が存在するか否かを判定する(ステップS204)。
このとき、極値点が存在する場合(ステップS204Yes)には、算出部14は、各極値点の特徴量、例えば上記の(1)〜(11)の特徴量を算出する(ステップS205)。なお、極値点が存在しない場合(ステップS204No)には、ステップS205〜ステップS207までの処理をとばし、そのまま処理を終了する。かかる極値点が存在しないケースの一例としては、利用者が心電センサ20を装着していないか、装着の仕方が不適切で入力信号に心電信号が含まれていない状況が挙げられる。
続いて、分類部18は、ステップS205で算出された極値点の特徴量に学習結果記憶部17に記憶された判定モデルを適用することによって極値点を凸部または基線部に分類する(ステップS206)。
その後、分類部18は、ステップS206で分類された各極値点の分類結果を波形検出装置10に接続された表示デバイスに表示させたり、外部装置へ出力したりし(ステップS207)、処理を終了する。
このように、図8に示す分類処理では、波形検出装置10が「分類モード」に設定されている限り、ステップS201〜ステップS207の処理が繰り返し実行される。
[実施例1の効果]
上述してきたように、本実施例に係る波形検出装置10は、入力信号の波形を折れ線の波形へ近似し、折れ線を形成する直線の交点のうち互いに隣接する直線の傾きの正負が反転する極値を持つ極値点の特徴量を用いて極値点を凸部と基線部に分類する。
このように、本実施例に係る波形検出装置10では、入力信号の波形に近似する折れ線の波形へモデル化する。このため、心電信号に重畳するノイズの中でも筋電信号などの高周波のノイズが極値点と検出される事態を抑制できる。さらに、本実施例に係る波形検出装置10では、折れ線の波形を形成する直線の交点の中でも凸形状を持つ極値点に絞り、凸形状の鋭さによって極値点を心電波形の凸部と基線部に分類する。このため、心電波形の「凸部」と「基線部」とへ極値点を分類するのに、特定の周波数成分を抽出または遮断する信号処理を適用する頻度を低減できる。この結果、ハイパスフィルタ等のデジタルフィルタのように、フィルタの設計、例えばカットオフ周波数などのパラメータの設定によって検出精度が左右されず、体動や筋電信号によってノイズが発生しても極値点を凸部または基線部へ安定して分類できる。
したがって、本実施例に係る波形検出装置10によれば、入力信号から心電波形の形状を精度よく検出できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[応用例1]
例えば、上記の実施例1では、ローパス波形を等間隔に時分割する場合を例示したが、時分割される区間ごとに任意の分割幅に変更することができる。一例としては、波形検出装置10は、ローパス波形と折れ線波形の乖離度が所定の閾値以上である場合に、時分割する区間の分割幅を下げて折れ線への近似を再試行することができる。
図9及び図10は、ローパス波形および折れ線波形を示すグラフの一例である。図9及び図10に示すグラフの縦軸は、電気的刺激の強さを表す振幅を指し、グラフの横軸は、時間を指す。図9及び図10には、これまで説明した例と同様に、ローパス波形が破線で図示されており、折れ線波形が実線で図示されている。これに加えて、図9及び図10には、ローパス波形と折れ線波形の乖離度が一点鎖線で図示されている。なお、図9には、ローパス信号の波形が等間隔に時分割された場合の折れ線波形が図示されており、図10には、ローパス波形と折れ線波形の乖離度が閾値未満になるまで時分割する区間の分割幅が再調整された折れ線波形が図示されている。
ローパス波形が等間隔で時分割された場合には、ローパス波形の変化が大きい箇所で折れ線への近似に失敗するケースがある。例えば、図9に示す丸の部分では、一点鎖線で図示されたローパス波形と折れ線波形の乖離度が他の箇所よりも増大している。この場合には、ローパス波形でR波として変曲点が出現している一方で折れ線波形にR波に対応する極値点が出現していない。このため、折れ線波形からR波に対応する極値点が検出されず、R波を検出できない可能性がある。
このような事態を抑制するために、まず、波形検出装置10は、ローパス波形に近似する折れ線波形が生成される度に、ローパス波形と折れ線波形の乖離度を算出する。かかる乖離度の一例としては、下記の式(3)を用いて、ローパス波形からの乖離度Mを差の2乗和で与える。なお、下記の式(3)における「Un」は、ローパス波形の振幅値を指し、また、「Sn」は、折れ線波形の振幅値を指す。
その上で、波形検出装置10は、上記の式(3)にローパス波形の振幅値及び折れ線波形の振幅値を代入することによって算出された乖離度Mが所定の閾値以上であるか否かを判定する。かかる乖離度Mと比較する閾値は、波形検出プログラムの設計者が設定することもできるし、設計者または利用者が要求する分類の精度から算出することとしてもよい。
このとき、乖離度Mが閾値以上である場合には、波形検出装置10は、時分割する区間の分割幅を所定の割合、例えば変更前の半分に下げる変更を実行する。例えば、図9の例では、分割幅が10サンプリングとされているので、その半分の5サンプリングが分割幅に変更される。その上で、波形検出装置10は、ローパス波形を変更後の分割幅で時分割する。その後、波形検出装置10は、ローパス波形と折れ線波形の乖離度を改めて算出し、乖離度が閾値未満になるまで、分割幅の変更、折れ線への近似を繰り返し実行する。
このように、ローパス波形と折れ線波形の乖離度に応じて時分割する区間の分割幅を調整した場合には、図10に示すように、一点鎖線で図示されたローパス波形と折れ線波形が略一致し、両者の乖離が小さくなっていることがわかる。
図11は、応用例1に係る判定処理の手順を示すフローチャートである。なお、ここでは、時分割する区間の分割幅を調整する処理を図8に示した分類処理のステップS203へ組み込む場合を例示するが、図7に示した学習処理のステップS103へ組み込むこともできる。
図11に示すように、取得部11は、心電センサ20によって電極間の電位差が時系列に採取される信号を一定の周期で取得する(ステップS201)。続いて、ローパスフィルタ12は、ステップS201で取得された信号のうち低域周波数の信号成分を通過させることによって高周波ノイズを除去する(ステップS202)。
そして、生成部13は、ステップS202で高周波ノイズが除去されたローパス波形を所定の分割幅で時分割する(ステップS301)。続いて、生成部13は、時分割された区間ごとに当該区間のローパス波形に近似する回帰直線を生成する(ステップS302)。これによって、ローパス波形から折れ線波形が生成されることになる。続いて、生成部13は、ローパス波形及び折れ線波形の乖離度Mが所定の閾値以上であるか否かを判定する(ステップS303)。
ここで、乖離度Mが閾値以上である場合(ステップS303Yes)には、生成部13は、時分割する区間の分割幅をステップS301で用いられた分割幅の所定の割合に引き下げる変更を実行する(ステップS304)。なお、乖離度Mが閾値未満である場合(ステップS303No)には、ステップS304の処理をとばし、ステップS204の処理へ移行する。
その上で、生成部13は、乖離度Mが閾値未満になるまで(ステップS303Yes)、上記のステップS301〜ステップS304の処理を繰り返し実行し、乖離度Mが閾値未満になると(ステップS303No)、ステップS204の処理へ移行する。
その後、算出部14は、ステップS302で生成された折れ線波形に含まれる回帰直線と回帰直線の交点の中に折れ線の傾きが正から負、あるいは負から正へ変化する極値点が存在するか否かを判定する(ステップS204)。
このとき、極値点が存在する場合(ステップS204Yes)には、算出部14は、各極値点の特徴量、例えば上記の(1)〜(11)の特徴量を算出する(ステップS205)。なお、極値点が存在しない場合(ステップS204No)には、ステップS205〜ステップS207までの処理をとばし、そのまま処理を終了する。かかる極値点が存在しないケースの一例としては、利用者が心電センサ20を装着していないか、装着の仕方が不適切で入力信号に心電信号が含まれていない状況が挙げられる。
続いて、分類部18は、ステップS205で算出された極値点の特徴量に学習結果記憶部17に記憶された判定モデルを適用することによって極値点を凸部または基線部に分類する(ステップS206)。
その後、分類部18は、ステップS206で分類された各極値点の分類結果を波形検出装置10に接続された表示デバイスに表示させたり、外部装置へ出力したりし(ステップS207)、処理を終了する。
このように、ローパス波形と折れ線波形の乖離度に応じて時分割する区間の分割幅を調整することによってローパス波形と折れ線波形が乖離し、極値点が誤って分類される事態を抑制できる。
[応用例2]
また、個人差の影響を低減するために、波形検出装置10が波形の振幅を正規化する正規化部をさらに有するように構成することで、分類性能の低下を抑制することもできる。
すなわち、心電信号の波形の振幅や形状には、個人差がある。このため、図5に示した極値点の特徴量の中には、被験者が変わると極値点の分類性能が劣化する特徴量がある。例えば、(10)凸部高さは、波形の振幅を表す特徴量であり、データセットに心肺機能が強い人物のサンプルばかり登録されていると、心肺機能が通常または弱い被験者に、図6に示した分類木をそのまま適用しても、極値点の分類に失敗する場合がある。そこで、個人差の影響をできるだけ低減するため、波形の振幅を拡縮することで、分類性能の低下を抑制する。
まず、学習時には、波形検出装置10は、極値点記憶部15に記憶された学習用のデータセットに含まれる凸部高さの中央値を個人別に算出した上で個人別の凸部高さの中央値を用いて各個人のローパス波形の振幅を割ってローパス波形を正規化する。そして、波形検出装置10は、正規化したローパス波形に対して折れ線への近似、極値点の特徴量の算出を適用し、分類木を生成する。
一方、判定時には、波形検出装置10は、判定対象区間の先頭の適当な区間を対象として、正規化前の折れ線波形について極値点の特徴量によるクラス分けで凸部を検出し、凸部高さの中央値を算出する。その後、波形検出装置10は、心電センサ20から入力される信号の波形を折れ線へ近似した折れ線波形を、逐次、求めた凸部高さ中央値で正規化し、正規化後の折れ線波形の極値点を用いて、極値点の特徴量の算出および極値点の分類を行う。なお、ここでは、凸部高さの中央値を用いて正規化を行う場合を例示したが、凸部高さの平均値を用いて正規化を行うこととしてもよく、他の種類の特徴量の中央値や平均値を用いて正規化を行うこととしてもかまわない。
[応用例3]
また、波形検出装置10は、心電信号特有の波形の特徴を利用することによって分類結果が凸部である極値点をさらにR波とT波のペアに分類することもできる。すなわち、波形検出装置10は、心電波形の1拍の時間間隔は、略同一であり周期性があるという特徴を利用する。以下では、1拍の心電波形の中に現れるR波及びT波のことを「RTペア」と記載する場合がある。
図12は、ローパス波形および折れ線波形を示すグラフの一例である。図12に示すグラフの縦軸は、電気的刺激の強さを表す振幅を指し、グラフの横軸は、時間を指す。図12には、これまで説明した例と同様に、ローパス波形が破線で図示されており、折れ線波形が実線で図示されている。これに加えて、図12には、図6に示した分類木を用いて凸部に分類された極値点がグラフの上方にプロットされており、ひげ状のスパイク波形が凸部の極値点に対応する。なお、図12のグラフにプロットされた極値点は、その線の種類が区別されており、太線で表した区間はRTペアの確定済みを、細線で表した区間はRTペアが未確定であることを示している。RTペアの確定区間では、既に求めた凸部の極値点を手掛かりに、RRIを求めることができる。
ここで、図12に示すように、心電波形の周期性を利用すると、RTペアの確定区間の最右端のR波を起点に、求めたRRIに相当する時間区間を設定し、RTペアの未確定区間においてR波が出現する時刻を推定できる。かかる推定時刻を基準に、RTペアの極値点が現れると予測される予測区間のRTペアの出現確率を「1」に設定する。例えば、予測区間の幅は、推定時刻の前方についてはRRIの推定時刻から10%の範囲とする一方で、推定時刻の後方は50%の範囲とし、RRIに連動させる。これによって、予測区間に含まれる極値点をRTペアとして選択することで、RTペアの誤検出を低減できる。
次に、図13を用いて、凸部と分類された極値点の中から心電波形の周期性をもとにRTペアの候補を抽出する処理の手順を具体的に説明する。図13は、応用例3に係るRTペアの候補抽出処理の手順を示すフローチャートである。この候補抽出処理は、図8に示した分類処理のステップS206の後に実行される処理である。
図13に示すように、分類部18は、ステップS206で極値点が分類された後に、極値点の分類結果が「凸部」であるか否かを判定する(ステップS401)。このとき、極値点が「凸部」である場合(ステップS401Yes)には、分類部18は、現時刻、すなわち極値点の出現時刻が前回にR波が出現してから今回にRTペアとして出現する可能性がある最短の時刻として設定された「出現最短時刻」に到達しているか否かをさらに判定する(ステップS402)。
そして、出現最短時刻に到達している場合(ステップS402Yes)には、分類部18は、現時刻が前回にR波が出現してから今回にRTペアとして出現する可能性がある最長の時刻として設定された「出現最長時刻」を経過したか否かをさらに判定する(ステップS403)。
このとき、出現最長時刻を経過した場合(ステップS403Yes)には、分類部18は、前回にR波が出現した時刻から次のRTペアの出現最短時刻および出現最長時刻を再設定する(ステップS404)。その後、分類部18は、これまでに図示しない内部メモリ等で保持していたRTペアの候補を消去することによって初期化する(ステップS405)。
例えば、出現最長時刻には、人の心拍数として計測される範囲の中でも最低値の一例として挙げられる40bpm、すなわち1分間に40回を基準に1.5秒が設定される。また、出現最短時刻には、人の心拍数として計測される範囲の中でも最高値の一例として挙げられる240bpm、すなわち1分間に240回を基準に0.25秒が設定される。
一方、出現最長時刻を経過していない場合(ステップS403No)には、分類部18は、極値点が出現最短時刻および出現最長時刻の出現範囲で最初に検出された凸部であるか否か、すなわち内部メモリにRTペアの候補が1つも格納されていないか否かを判定する(ステップS406)。
このとき、極値点が出現範囲で最初に検出された凸部である場合(ステップS406Yes)には、分類部18は、当該極値点をRTペアの候補として抽出する(ステップS409)。
一方、極値点が出現範囲で最初に検出された凸部でない場合(ステップS406No)には、分類部18は、最初にRTペアとして抽出された極値点の出現時刻から経過した経過時間がRRIの半値、例えば750ms(=1.5/2)以下であるか否かをさらに判定する(ステップS407)。
そして、最初のRTペアの候補が抽出されてからの経過時間がRRIの半値以下である場合(ステップS407Yes)には、分類部18は、直前にRTペアとして抽出された極値点の出現時刻から経過した経過時間が所定の閾値、例えば150ms以下であるか否かをさらに判定する(ステップS408)。
ここで、直前のRTペアの候補が抽出されてからの経過時間が閾値以下である場合(ステップS408Yes)には、分類部18は、当該極値点をRTペアの候補として抽出し(ステップS409)、処理を終了する。
一方、最初のRTペアの候補が抽出されてからの経過時間がRRIの半値以下でない場合、あるいは直前のRTペアの候補が抽出されてからの経過時間が閾値以下でない場合(ステップS407NoまたはステップS408No)には、当該極値点はRTペアの候補として抽出されず、そのまま処理を終了する。
続いて、図14を用いて、RTペアの候補として抽出された極値点の中からRTペアを確定する処理の手順について説明する。図14は、応用例3に係るRTペア確定処理の手順を示すフローチャートである。このRTペア確定処理は、波形検出装置10で計測される時刻が出現最長時刻を経過した場合に実行される処理である。
図14に示すように、RTペアの候補が1つである場合(ステップS501Yes)には、分類部18は、RTペアの候補として抽出された凸部の極値点を「T波」に分類し(ステップS502)、RTペアの候補として抽出された凸部よりも以前に基線部と分類された極値点の中で凸部高さが最大の極値点を「R波」に分類する(ステップS503)。
また、RTペアの候補が2つである場合(ステップS504Yes)には、分類部18は、RTペアの候補として先に抽出された凸部の極値点を「R波」に分類し(ステップS505)、RTペアの候補として後に抽出された凸部の極値点を「T波」に分類する(ステップS506)。
また、RTペアの候補が3つ以上である場合(ステップS504No)には、分類部18は、RTペアの候補として抽出された凸部の極値点のうち凸部高さが上位2つに入る極値点を抽出する(ステップS507)。そして、分類部18は、ステップS507で抽出された2つの極値点のうちRTペアの候補として先に抽出された凸部の極値点を「R波」に分類し(ステップS508)、後に抽出された凸部の極値点を「T波」に分類する(ステップS509)。
このように、凸部に分類された極値点を上記のRTペアの候補抽出処理およびRTペア確定処理によって心電波形のR波およびT波へさらに詳細に分類することができる。さらに、心電信号の周期性を利用してRTペアの候補を抽出しているので、R波およびT波に対応しない凸部のノイズ成分をフィルタリングできる。例えば、図12の例で言えば、RTペアが未確定である区間で最初に検出される極値点は、出現確率が「1」に設定されていない範囲、すなわち出現最短時刻よりも前に出現するので、当該極値点の凸部をRTペアの候補から除外できる。
なお、ここでは、RRIを固定としてRTペアの出現範囲を設定する場合を例示したが、RRIを可変とすることもできる。例えば、波形検出装置10は、RTペアが確定される度にRTペアが確定済みである区間のRRIの平均や中央値などのRRIの統計値を更新し、更新後のRRIの統計値を用いてRTペアの出現範囲を設定することもできる。
[応用例4]
また、波形検出装置10は、極値点の極値の種別が出現する順序、すなわち極大または極小が出現する順序の傾向を利用して、RTペアの分類性能を向上させることができる。
図15及び図16は、ローパス波形および折れ線波形を示すグラフの一例である。図15及び図16に示すグラフの縦軸は、電気的刺激の強さを表す振幅を指し、グラフの横軸は、時間を指す。図15及び図16には、ローパス波形が図示されている。これに加えて、図15及び図16には、図6に示した分類木を用いて凸部に分類された極値点がグラフの上方にプロットされており、ひげ状のスパイク波形が凸部の極値点に対応する。
図15及び図16に示すように、RTペアの出現順序は、被験者によって「下に凸」の極小の極値が検出されてからその次に「上に凸」の極大の極値が検出される順になる場合と、「上に凸」の極大の極値が検出されてからその次に「上に凸」の極大の極値が検出される順になる場合がある。これら「上に凸」、「下に凸」を折れ線のパラメータで表現すると、「上に凸」は折れ線の傾きが正から負に変化する極大に相当し、「下に凸」は折れ線の傾きが負から正に変化する極小に相当する。
そこで、波形検出装置10は、入力信号の時系列データの最初の時間区間で極値が出現する順番の傾向を自動的に検出しておき、それ以降の時系列データの分類処理で、検出した極値の出現順序の傾向に合う極値点を選択することで分類性能の向上が期待できる。
例えば、前述の周期性を利用する手順で、極値点をRTペアに分類する。具体的には、折れ線の正負を調べ、1個目の凸部が極大のときはiMaximal1に1を加算し、極小のときはiMinimal1に1を加算する。そして、2個目の凸部についても同様に処理し、iMaximal2、あるいは、iMinimal2に1を加算する。以上の処理を、所定回、例えば5拍分繰り返し、iMaximal1とiMinimal1の大小、および、iMaximal2とiMinimal2の大小とを比較することよって、1個目と2個目の凸部の極値の出現順序の傾向を決定する。
例えば、図15及び図16に示した2つのローパス波形に対して上記の処理を適用すると、図17〜図18と図19〜図20とに示す結果となる。図17〜図20は、極値の出現順序の傾向の一例を示す図である。例えば、図15に示したローパス波形の場合には、図17に示すように、R波に対応する1個目の凸部の極値としてiMinimal1が5拍中に5回計測されるとともに、図18に示すように、T波に対応する2個目の凸部の極値としてiMaximal2が5拍中に5回計測される。つまり、2つの凸部の出現順序の傾向は、「iMaximal1>iMinimal1」ではなく、かつ「iMaximal2>iMinimal2」であるので、極小、極大の順と検出される。一方、図16に示したローパス波形の場合には、図19に示すように、R波に対応する1個目の凸部の極値としてiMaximal1が5拍中に5回計測されるとともに、図20に示すように、T波に対応する2個目の凸部の極値としてiMaximal2が5拍中に5回計測される。つまり、2つの凸部の出現順序の傾向は、「iMaximal1>iMinimal1」であり、かつ「iMaximal2>iMinimal2」であるので、極大、極大の順と検出される。
続いて、図21を用いて、極値が出現する順序の傾向を決定する傾向決定処理の手順について説明する。図21は、応用例4に係る傾向決定処理の手順を示すフローチャートである。図21に示すように、RTペアのR波が「極大」である場合(ステップS601Yes)には、波形検出装置10は、図17及び図18に例示したRTの出現順序と極値の種別との対応テーブルのうちiMaximal1の計測回数を1つインクリメントする(ステップS602)。一方、RTペアのR波が「極小」である場合(ステップS601No)には、波形検出装置10は、上記の対応テーブルのうちiMinimal1の計測回数を1つインクリメントする(ステップS603)。
また、RTペアのT波が「極大」である場合(ステップS604Yes)には、波形検出装置10は、上記の対応テーブルのうちiMaximal2の計測回数を1つインクリメントする(ステップS605)。一方、RTペアのT波が「極小」である場合(ステップS604No)には、波形検出装置10は、上記の対応テーブルのうちiMinimal2の計測回数を1つインクリメントする(ステップS606)。
そして、RTペアの極値の出現順序が所定の回数、例えば5回にわたって計測されるまで(ステップS607No)、波形検出装置10は、上記のステップS601〜ステップS606までの処理を繰り返し実行する。
その後、RTペアの極値の出現順序が所定の回数にわたって計測されると(ステップS607Yes)、波形検出装置10は、次のような処理を実行する。すなわち、計測結果が「iMaximal1>iMinimal1」である場合(ステップS608Yes)には、波形検出装置10は、R波の極値パターンを「極大」に設定する(ステップS609)。一方、計測結果が「iMaximal1>iMinimal1」でない場合(ステップS608No)には、R波の極値パターンを「極小」に設定する(ステップS610)。
さらに、計測結果が「iMaximal2>iMinimal2」である場合(ステップS611Yes)には、波形検出装置10は、T波の極値パターンを「極大」に設定する(ステップS612)。一方、計測結果が「iMaximal2>iMinimal2」でない場合(ステップS611No)には、T波の極値パターンを「極小」に設定する(ステップS613)。
このように、図21に示したフローチャートにしたがってRTペアの極値の出現順序の傾向を決定することによって極値の出現順序の傾向に適合しない極値点をRTペアの候補から除外することができる。例えば、図12の例で言えば、R波及びT波の極値パターンはいずれも「極大」に設定されるので、RTペアが未確定である区間で3番目に検出される極値点の極値が「極小」であるので、当該3番目の極値点をRTペアの候補から除外できる。
[正解率]
図22は、正解率を示すグラフの一例である。図22に示す(a)のヒストグラムには、実施例1を用いた場合、すなわち分類木を用いた場合の正解率が図示されている。図22に示す(b)のヒストグラムには、応用例2を用いた場合、すなわち凸部高さを正規化した場合の正解率が図示されている。図22に示す(c)のヒストグラムには、応用例3を用いた場合、すなわち心電波形の周期性を利用して極値点をRTペアへ分類する場合の正解率が図示されている。図22に示す(d)のヒストグラムには、応用例3及び応用例4を組み合わせて用いた場合、すなわちRTペアの分類に極値の出現順序の傾向を用いた場合の正解率が図示されている。さらに、図22に示す(e)のヒストグラムには、応用例3及び応用例4を組み合わせるにあたってRRIの間隔を可変とした場合の正解率が図示されている。図22に示すように、分類木だけを用いた場合でも「93.9%」という高い正解率を発揮することができるが、実施例1で説明した分類木に応用例2、応用例3、応用例4を組み合わせる度に正解率を向上させることができ、最終的には、「99.1%」まで正解率を向上させることができる。なお、上記の実施例1及び上記の応用例1〜応用例4は、任意の組合せで波形検出装置10を実装できる。
[適用範囲]
上記の実施例1及び上記の応用例1〜4では、センサによって採取される入力信号が心電信号である場合を例示したが、入力信号が心電信号以外である場合にも波形検出装置10の適用範囲に収まる。
例えば、加速度センサやジャイロセンサによって採取される信号から「静止状態」と「歩行状態」とを判別することが可能である。例えば、利用者に加速度センサを装着し、図1に示した心電センサ20を加速度センサに置き換えて、加速度信号を出力する。例えば、加速度信号として、3軸(X,Y,Z)の加速度センサを用い、3方向のベクトルの合成ベクトルの大きさ、あるいは、鉛直軸の加速度の大きさのみを使用してもよい。加速度センサは、加速度信号をアナログ値からデジタル値へ変換し、図1に示したブロック図に従って、生成部において折れ線で近似し、算出部で特徴量を算出する。
ここで、歩行中の加速度は、正弦波状に上に凸、下に凸の波が連続的に出現する。そこで、静止状態、歩行状態の分類では、静止状態を基線部、歩行状態を凸部に分類することを想定する。つまり、静止状態では、加速度の変化は殆どないため、算出される極値点の特徴量の凸部高さは小さく、折れ線の傾きも小さいという傾向がある。一方、歩行状態では、極値点の特徴量の凸部高さや、折れ線の傾きは大きい。したがって、静止している時間区間に含まれる極値と、歩行している時間区間に含まれる極値を判別することは容易である。
図23は、加速度センサの信号波形を示すグラフの一例である。図24は、分類木の一例を示す図である。図23に示すグラフの縦軸は、電気的刺激の強さを表す振幅を指し、グラフの横軸は、時間を指す。図23には、静止状態、歩行状態、静止状態と変化したときの加速度の折れ線波形が図示されている。図24には、図23に示した波形について極値点の特徴量を算出し、学習部で求めた分類木が図示されている。図24に示す分類木に加速度信号を入力すると、ステップS21及びステップS22の判定によって基線部に含まれる極値点と凸部に含まれる極値点とに分類でき、静止状態と歩行状態の時間区間に判別できる。
このように、波形検出装置10は、信号波形を比較的平坦な部分である「基線部」と特徴的な波の部分「凸部」とに分類する処理に汎用的に適用可能である。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部11、ローパスフィルタ12、生成部13、算出部14、学習部16または分類部18を波形検出装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部11、ローパスフィルタ12、生成部13、算出部14、学習部16または分類部18を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の波形検出装置10の機能を実現するようにしてもよい。
[波形検出プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図25を用いて、上記の実施例と同様の機能を有する波形検出プログラムを実行するコンピュータの一例について説明する。
図25は、実施例1及び実施例2に係る波形検出プログラムを実行するコンピュータの一例について説明するための図である。図25に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図25に示すように、上記の実施例1に示した取得部11、生成部13、算出部14及び分類部18と同様の機能を発揮する波形検出プログラム170aが予め記憶される。この波形検出プログラム170aについては、図1に示した各々の取得部11、生成部13、算出部14及び分類部18の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
そして、CPU150が、波形検出プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図25に示すように、波形検出プログラム170aは、波形検出プロセス180aとして機能する。この波形検出プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、波形検出プロセス180aは、図1に示した取得部11、生成部13、算出部14及び分類部18にて実行される処理、例えば図7〜図8、図11、図13〜図14および図21に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
なお、上記の波形検出プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。