以下に添付図面を参照して本願に係る心拍測定プログラム、心拍測定方法及び心拍測定装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[心拍測定装置の構成]
まず、本実施例に係る心拍測定装置の機能的構成について説明する。図1は、実施例1に係る心拍測定装置の機能的構成を示すブロック図である。図1に示す心拍測定装置10は、太陽光や室内光などの一般の環境光の下で被験者に計測器具を接触させずに、被験者の生体が撮影された画像を用いて被験者の心拍、すなわち心臓の拍動に伴う血液の体積の変動を測定する心拍測定処理を実行するものである。
かかる心拍測定装置10は、一態様として、上記の心拍測定処理がパッケージソフトウェアやオンラインソフトウェアとして提供される心拍測定プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末のみならず、移動体通信網に接続する能力を持たないデジタルカメラ、タブレット端末やスレート端末を含む携帯端末装置に上記の心拍測定プログラムをインストールさせる。これによって、携帯端末装置を心拍測定装置10として機能させることができる。なお、ここでは、心拍測定装置10の実装例として携帯端末装置を例示したが、パーソナルコンピュータを始めとする据置き型の端末装置に心拍測定プログラムをインストールさせることもできる。
図1に示すように、心拍測定装置10は、カメラ11と、タッチパネル12と、取得部13と、領域抽出部14と、波形検出部15と、パルス出力部16aと、パルス列抽出部16bと、組選択部16cとを有する。さらに、心拍測定装置10は、第1の計数部17aと、第2の計数部17bと、組抽出部18と、心拍測定部19とを有する。
かかる心拍測定装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。例えば、心拍測定装置10が据置き端末として実装される場合には、キーボード、マウスやディスプレイなどの入出力デバイスをさらに有することとしてもよい。また、心拍測定装置10がタブレット端末やスレート端末として実装される場合には、加速度センサや角速度センサをさらに有することとしてもよい。また、心拍測定装置10が移動体通信端末として実装される場合には、アンテナ、移動体通信網に接続する無線通信部、GPS(Global Positioning System)受信機などの機能部をさらに有していてもかまわない。
カメラ11は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を搭載する撮像装置である。例えば、カメラ11には、R(red)、G(green)、B(blue)など3種以上の受光素子を搭載することができる。かかるカメラ11の実装例としては、デジタルカメラやWebカメラを外部端子を介して接続することとしてもよい。また、他の実装例としては、インカメラやアウトカメラのように、カメラが出荷時から搭載されている場合にはそのカメラを流用できる。なお、ここでは、心拍測定装置10がカメラ11を有する場合を例示したが、ネットワークまたは記憶デバイスを経由して画像を取得できる場合には、必ずしも心拍測定装置10がカメラ11を有さずともよい。
タッチパネル12は、表示可能かつ入力可能なデバイスである。一態様としては、タッチパネル12は、心拍測定装置10上で実行される心拍測定プログラムを始め、OS(Operating System)やアプリケーションプログラムによって出力される画像を表示する。他の一態様としては、タッチパネル12は、画面のスクリーン上でなされるタップ、フリック、スイープ、ピンチインやピンチアウトなどのタッチ操作を受け付ける。なお、ここでは、心拍測定装置10に対する指示入力を行う入力デバイスとしてタッチパネル12を例示したが、これに限らず、タッチパネル12との間で相補的な入力を実現する物理キーなどをさらに有していてもよい。
ここで、上記の心拍測定プログラムが起動された場合には、タッチパネル12による画像表示や図示しないスピーカからの音声出力などを通じて、脈波を検出し易い被験者の画像がカメラ11によって撮像されるように画像の撮影操作を案内することができる。例えば、心拍測定プログラムは、タッチパネル12を介して起動されると、カメラ11を起動する。これを受けて、カメラ11は、カメラ11の撮影範囲に収容された被写体の撮影を開始する。このとき、被験者の顔が映る画像を撮影させる場合には、心拍測定プログラムは、カメラ11が撮影する画像を図示しない表示デバイスに表示しつつ、被験者の鼻を映す目標位置を照準として表示させることもできる。これによって、被験者の眼、耳、鼻や口などの顔パーツの中でも被験者の鼻が撮影範囲の中心部分に収まった画像が撮影できるようにする。そして、心拍測定プログラムは、カメラ11によって被験者の顔が撮影された画像を取得部13へ保存する。また、上記のガイダンスは、必ずしも実行されずともよく、被験者がスクリーンに表示された画面、例えばオペレーティングシステムやアプリケーションプログラムが出力する画像や動画などを閲覧している最中に当該被験者の顔を撮影することもできる。これによって、被験者に撮影を意識させずにバックグラウンドで撮影させることもできる。なお、以下では、顔が映った画像のことを「顔画像」と記載する場合がある。
取得部13は、画像を取得する処理部である。一態様としては、取得部13は、カメラ11によって撮像された顔画像を取得する。他の一態様としては、取得部13は、顔画像を蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアから画像を取得することもできる。更なる一態様としては、取得部13は、外部装置からネットワークを介して受信することによって顔画像を取得することもできる。なお、取得部13は、CCDやCMOSなどの撮像素子による出力から得られる2次元のビットマップデータやベクタデータなどの画像データを用いて処理を実行する場合を例示したが、1つのディテクタから出力される信号をそのまま取得して後段の処理を実行させることとしてもよい。
領域抽出部14は、取得部13によって取得された画像から生体領域を抽出する処理部である。一態様としては、顔画像から所定の顔パーツを基準とする生体領域を抽出する。例えば、領域抽出部14は、顔画像にテンプレートマッチング等の画像処理を実行することによって被験者の眼、耳、鼻や口などの顔の器官、いわゆる顔パーツのうち特定の顔パーツ、すなわち被験者の鼻を検出する。その上で、領域抽出部14は、被験者の鼻を中心とし、中心から所定の範囲に含まれる生体領域を抽出する。これによって、被験者の鼻、鼻の周辺に位置する頬の一部の顔中心部分を含んだ生体領域の画像が脈波の検出に使用する画像として抽出される。その後、領域抽出部14は、原画像から抽出した生体領域の画像を波形検出部15へ出力する。
図2は、顔画像の一例を示す図である。図2には、顔画像に映る被験者の眼、鼻及び口の一部または全部を含む領域が9つに分割されたブロックが図示されている。図2に示すブロックのうち上段の左及び右のブロックには、被験者の眼が映っている。これらのブロックの画像を検出に用いた場合には、眼の瞬きがノイズとなって心拍数の検出精度の低下を招く場合がある。また、図2に示すブロックのうち下段の3つのブロックには、被験者の口が映っている。これらのブロックの画像を検出に用いた場合には、口の動きがノイズとなって心拍数の検出精度の低下を招く場合がある。一方、図2に示す中段の真ん中のブロック、すなわち斜線の塗りつぶしが図示されたブロックは、眼や口が映るブロックから隔てられており、他のブロックに比べてノイズとなる成分が映っている可能性が低いので、良好な検出結果を期待できる。これらのことから、領域抽出部14は、原画像から図2に示す中段の真ん中のブロックの画像を生体領域の画像として抽出する。尚、抽出するブロックは中段の真ん中のブロックに限定するものでは無く、中段の左右も含めた3個のブロックとしても良い。
上記の生体領域の画像を抽出後に、領域抽出部14は、生体領域に含まれる各画素が持つ画素値に所定の統計処理を実行する。例えば、領域抽出部14は、生体領域に含まれる各画素が持つ画素値を波長成分ごとに平均する。この他、平均値以外にも、中央値や最頻値を計算することとしてもよく、また、平均以外にも任意の平均処理、例えば加重平均や移動平均などを実行することもできる。これによって、生体領域に含まれる各画素が持つ画素値の平均値が当該生体領域を代表する代表値として波長成分ごとに算出される。
波形検出部15は、脈波の検出対象とする生体領域に含まれる各画素の波長成分別の代表値の信号から、脈波信号の波形を検出する処理部である。一態様としては、波形検出部15は、下記の波形検出処理を実行することによって、生体領域に含まれる各画素の波長成分別の代表値の信号から各波長成分の間で脈波が採り得る脈波周波数帯以外の特定周波数帯の成分が互いに相殺された脈波信号の波形を検出する。例えば、波形検出部15は、画像に含まれる3つの波長成分、すなわちR成分、G成分およびB成分のうち血液の吸光特定が異なるR成分とG成分の2つの波長成分の代表値の時系列データを用いて、波形を検出する。
これを具体的に説明すると、顔表面には、毛細血管が流れており、心拍により血管に流れる血流が変化すると、血流で吸収される光量も心拍に応じて変化するため、顔からの反射によって得られる輝度も心拍に伴って変化する。かかる輝度の変化量は小さいが、顔領域全体の平均輝度を求めると、輝度の時系列データには脈波成分が含まれる。ところが、輝度は、脈波以外に体動等によっても変化し、これが、脈波検出のノイズ成分、いわゆる体動アーチファクトとなる。そこで、血液の吸光特性の異なる2種類以上の波長、例えば吸光特性が高いG成分(525nm程度)、吸光特性が低いR成分(700nm程度)で脈波を検出する。心拍は、0.5Hz〜4Hz、1分あたりに換算すれば30bpm〜240bpmの範囲であるので、それ以外の成分はノイズ成分とみなすことができる。ノイズには、波長特性は無い、あるいはあっても極小であると仮定すると、G信号およびR信号の間で0.5Hz〜4Hz以外の成分は等しいはずであるが、カメラの感度差により大きさが異なる。それゆえ、0.5Hz〜4Hz以外の成分の感度差を補正して、G成分からR成分を減算すれば、ノイズ成分は除去されて脈波成分のみを取り出すことができる。
例えば、G成分及びR成分は、下記の式(1)および下記の式(2)によって表すことができる。下記の式(1)における「Gs」は、G信号の脈波成分を指し、「Gn」は、G信号のノイズ成分を指し、また、下記の式(2)における「Rs」は、R信号の脈波成分を指し、「Rn」は、R信号のノイズ成分を指す。また、ノイズ成分は、G成分およびR成分の間で感度差があるので、感度差の補正係数kは、下記の式(3)によって表される。
Ga=Gs+Gn・・・(1)
Ra=Rs+Rn・・・(2)
k=Gn/Rn・・・(3)
感度差を補正してG成分からR成分を減算すると、脈波成分Sは、下記の式(4)となる。これを上記の式(1)及び上記の式(2)を用いて、Gs、Gn、Rs及びRnによって表される式へ変形すると、下記の式(5)となり、さらに、上記の式(3)を用いて、kを消し、式を整理すると下記の式(6)が導出される。
S=Ga−kRa・・・(4)
S=Gs+Gn−k(Rs+Rn)・・・(5)
S=Gs−(Gn/Rn)Rs・・・(6)
ここで、G信号およびR信号は、吸光特性が異なり、Gs>(Gn/Rn)Rsである。したがって、上記の式(6)によってノイズが除去された脈波成分Sを算出することができる。
図3は、G信号およびR信号の各信号のスペクトルの一例を示す図である。図3に示すグラフの縦軸は、信号強度を指し、また、横軸は、周波数(bpm)を指す。図3に示すように、G成分およびR成分は、撮像素子の感度が異なるので、両者の信号強度はそれぞれ異なる。その一方、R成分およびG成分は、いずれにおいても30bpm〜240bpmの範囲外、特に3bpm以上20bpm未満の特定周波数帯でノイズが現れることには変わりはない。このため、図3に示すように、3bpm以上20bpm未満の特定周波数帯に含まれる指定の周波数Fnに対応する信号強度をGn及びRnとして抽出できる。これらGn及びRnによって感度差の補正係数kを導出できる。
図4は、G成分および補正係数kが乗算されたR成分の各信号のスペクトルの一例を示す図である。図4の例では、説明の便宜上、補正係数の絶対値を乗算した結果が図示されている。図4に示すグラフにおいても、縦軸は、信号強度を指し、また、横軸は、周波数(bpm)を指す。図4に示すように、G成分及びR成分の各信号のスペクトルに補正係数kが乗算された場合には、G成分およびR成分の各成分の間で感度が揃う。特に、特定周波数帯におけるスペクトルの信号強度は、大部分においてスペクトルの信号強度が略同一になっている。その一方で、実際に脈波が含まれる周波数の周辺領域400は、G成分およびR成分の各成分の間でスペクトルの信号強度が揃っていない。
図5は、演算後のスペクトルの一例を示す図である。図5では、脈波が現れている周波数帯の視認性を上げる観点から縦軸である信号強度の尺度を大きくして図示している。図5に示すように、G信号のスペクトルから補正係数kの乗算後のR信号のスペクトルが差し引かれた場合には、G成分およびR成分の間での吸光特性の差によって脈波が現れる信号成分の強度が可及的に維持された状態でノイズ成分が低減されていることがわかる。このようにしてノイズ成分だけが除去された脈波信号の波形を検出することができる。
続いて、波形検出部15の機能的構成についてさらに具体的に説明する。図6は、図1に示した波形検出部15の機能的構成を示すブロック図である。図6に示すように、波形検出部15は、BPF(Band-Pass Filter)152R及び152Gと、抽出部153R及び153Gと、LPF(Low-Pass Filter)154R及び154Gと、算出部155と、BPF156R及び156Gと、乗算部157と、演算部158とを有する。なお、図3〜図5の例では、周波数空間にて脈波を検出する例を説明したが、図6では、周波数成分への変換にかかる時間を削減する観点から、時系列空間にてノイズ成分をキャンセルして脈波を検出する場合の機能的構成を図示している。
例えば、領域抽出部14から波形検出部15には、生体領域に含まれる各画素が持つR成分の画素値の代表値を信号値とするR信号の時系列データが入力されるとともに、生体領域に含まれる各画素が持つG成分の画素値の代表値を信号値とするG信号の時系列データが入力される。このうち、生体領域のR信号は、波形検出部15内のBPF152R及びBPF156Rへ入力されるとともに、生体領域のG信号は、波形検出部15内のBPF152G及びBPF156Gへ入力される。
BPF152R、BPF152G、BPF156R及びBPF156Gは、いずれも所定の周波数帯の信号成分だけを通過させてそれ以外の周波数帯の信号成分を除去するバンドパスフィルタである。これらBPF152R、BPF152G、BPF156R及びBPF156Gは、ハードウェアによって実装されることとしてもよいし、ソフトウェアによって実装されることとしてもよい。
これらBPFが通過させる周波数帯の違いについて説明する。BPF152R及びBPF152Gは、ノイズ成分が他の周波数帯よりも顕著に現れる特定周波数帯の信号成分を通過させる。
かかる特定周波数帯は、脈波が採り得る周波数帯との間で比較することによって定めることができる。脈波が採り得る周波数帯の一例としては、0.5Hz以上4Hz以下である周波数帯、1分あたりに換算すれば30bpm以上240bpm以下である周波数帯が挙げられる。このことから、特定周波数帯の一例としては、脈波として計測され得ない0.5Hz未満及び4Hz超過の周波数帯を採用することができる。また、特定周波数帯は、脈波が採り得る周波数帯との間でその一部が重複することとしてもよい。例えば、脈波として計測されることが想定しづらい0.7Hz〜1Hzの区間で脈波が採り得る周波数帯と重複することを許容し、1Hz未満及び4Hz以上の周波数帯を特定周波数帯として採用することもできる。また、特定周波数帯は、1Hz未満及び4Hz以上の周波数帯を外縁とし、ノイズがより顕著に現れる周波数帯に絞ることもできる。例えば、ノイズは、脈波が採り得る周波数帯よりも高い高周波数帯よりも、脈波が採り得る周波数帯よりも低い低周波数帯でより顕著に現れる。このため、1Hz未満の周波数帯に特定周波数帯を絞ることもできる。また、空間周波数がゼロである直流成分の近傍には、各成分の撮像素子の感度の差が多く含まれるので、0.05Hz以上1Hz未満の周波数帯に特定周波数帯を絞ることもできる。さらに、人の体の動き、例えば瞬きや体の揺れの他、環境光のチラツキなどのノイズが現れやすい0.05Hz以上0.3Hz以下の周波数帯に特定周波数帯を絞ることもできる。
ここでは、一例として、BPF152R及びBPF152Gが特定周波数帯として0.05Hz以上0.3Hz以下の周波数帯の信号成分を通過させる場合を想定して以下の説明を行う。なお、ここでは、特定周波数帯の信号成分を抽出するために、バンドパスフィルタを用いる場合を例示したが、一定の周波数未満の周波数帯の信号成分を抽出する場合などには、ローパスフィルタを用いることもできる。
一方、BPF156R及びBPF156Gは、脈波が採り得る周波数帯、例えば0.5Hz以上4Hz以下の周波数帯の信号成分を通過させる。なお、以下では、脈波が採り得る周波数帯のことを「脈波周波数帯」と記載する場合がある。
抽出部153Rは、R信号の特定周波数帯の信号成分の絶対強度値を抽出する。例えば、抽出部153Rは、R成分の特定周波数帯の信号成分に絶対値演算処理を実行することによって特定周波数帯の信号成分の絶対強度値を抽出する。また、抽出部153Gは、G信号の特定周波数帯の信号成分の絶対強度値を抽出する。例えば、抽出部153Gは、G成分の特定周波数帯の信号成分に絶対値演算処処理を実行することによって特定周波数帯の信号成分の絶対強度値を抽出する。
LPF154R及びLPF154Gは、特定周波数帯の絶対強度値の時系列データに対し、時間変化に応答させる平滑化処理を実行するローパスフィルタである。例えば、0.1Hz以下の周波数帯の信号成分を通過させる。これらLPF154R及びLPF154Gは、LPF154Rへ入力される信号がR信号であり、LPF154Gへ入力される信号がG信号である以外に違いはない。かかる平滑化処理によって、特定周波数帯の絶対値強度R´n及びG´nが得られる。
算出部155は、LPF154Gによって出力されたG信号の特定周波数帯の絶対値強度G´nを、LPF154Rによって出力されたR信号の特定周波数帯の絶対値強度R´nで除する除算「G´n/R´n」を実行する。これによって、感度差の補正係数kを算出する。
乗算部157は、BPF156Rによって出力されたR信号の脈波周波数帯の信号成分に算出部155によって算出された補正係数kを乗算する。
演算部158は、BPF156Gによって出力されたG信号の脈波周波数帯の信号成分から、乗算部157によって補正係数kが乗算されたR信号の脈波周波数帯の信号成分を差し引く演算「Gs−k*Rs」を実行する。このようにして得られた信号の時系列データは、顔の脈波信号の波形に相当し、そのサンプリング周波数は画像が撮像されるフレーム周波数に対応する。以下では、脈波信号の波形のことを「脈波波形」と記載する場合がある。
パルス出力部16aは、脈波波形から得られるピークごとに当該ピークに対応するパルスを出力する処理部である。一態様としては、パルス出力部16aは、波形検出部15によって脈波波形の振幅値が出力される度に、当該振幅値のサンプリング時間tよりも1サンプリング前のサンプリング時間t−1の脈波波形の振幅値が極大値であるか否かを判定する。このとき、パルス出力部16aは、サンプリング時間t−1の脈波波形の振幅値が極大点、すなわち脈波波形のピークである場合に、パルスをパルス列抽出部16bへ出力する。
例えば、最新のサンプリング時間tの振幅値をv(t)、v(t)の1つ前に出力されたサンプリング時間t−1の振幅値をv(t−1)、さらに、v(t)の2つ前に出力されたサンプリング時間t−2の振幅値をv(t−2)とする。かかる前提の下、パルス出力部16aは、最新のサンプリング時間tに振幅値v(t)が出力された場合に、サンプリング時間t−1の振幅値v(t−1)が下記の条件式(7)を満たすか否か、すなわち振幅値v(t−1)が極大点であるか否かを判定する。このとき、サンプリング時間t−1の振幅値v(t−1)が下記の条件式(7)を満たす場合には、サンプリング時間t−1の前後で振幅値が増加の後に減少に転じたことが判明する。したがって、振幅値v(t−1)を極大値、サンプリング時間t−1を極大点とみなすことができる。この場合には、パルス出力部16aは、パルスをパルス列抽出部16bへ出力する。
v(t−2)≦v(t−1) and v(t−1)>v(t)・・・(7)
パルス列抽出部16bは、パルス出力部16aによって出力されるパルスが連なるパルス列から心拍の測定に用いるパルス列を抽出する処理部である。一態様としては、パルス列抽出部16bは、上記のパルス列のうち、タッチパネル12や図示しない物理キーに対する操作がなされた期間に出力があったパルスを除外して、心拍の測定に用いるパルス列を抽出する。
これを具体的に説明すると、パルス列抽出部16bは、上記のパルス列の抽出のバックグラウンドで、タッチパネル12や物理キーの操作の開始および終了を監視する操作期間の監視を実行する。例えば、パルス列抽出部16bは、タッチパネル12または物理キーの操作が開始された場合に、当該操作が開始された時刻を操作開始時刻として内部メモリに保存する。その後、パルス列抽出部16bは、操作が開始されてから所定の期間、例えば5秒間にわたって操作がなされていない場合に、操作が終了されたと判断する。この場合には、パルス列抽出部16bは、当該操作が終了された時刻を操作終了時刻として内部メモリに保存する。以下では、操作開始時刻および操作終了時刻によって定まる期間のことを「操作期間」と記載する場合がある。
さらに、上記の操作期間の監視とともに、パルス列抽出部16bは、パルス出力部16aによってパルスが出力される度に、当該パルスが出力されたサンプリング時間を図示しない内部メモリに保存する処理もバックグラウンドで実行する。
このように、パルス列抽出部16bは、操作期間の監視及びパルスの保存をバックグラウンドで実行しながら、波形検出部15によって脈波波形の振幅値が出力される度に、操作期間中に出力されたパルスを除外して、心拍の測定に用いるパルス列を抽出する。例えば、パルス列抽出部16bは、内部メモリに保存されたサンプリング時間のうち、同内部メモリに保存された操作期間に含まれるサンプリング時間を除外し、残ったサンプリング時間を抽出する。
これによって、パルス出力部16aによって出力されるパルスが連なるパルス列のうち操作期間に出力がなされたパルスが除去される結果、操作期間中には出力がなされなかったパルス列に絞って抽出がなされることになる。かかるパルス列に絞って抽出がなされた場合には、例えば、タッチパネル12や物理キーの操作がなされることによって心拍測定装置10が揺動した状態で撮像された顔画像に由来するパルスを心拍の測定に用いる事態を抑制できる。
さらに、パルス列抽出部16bは、操作期間に含まれない時間帯であっても当該時間帯が所定の区間長、例えば標準の人物の心拍数が60bpm以上であると仮定したとき2拍分のパルスが採取できる2秒未満である場合には、当該時間帯に含まれるサンプリング時間のパルスは抽出しない。なぜなら、心拍の測定には、略同一の時間間隔で拍動するという心拍の周期性を利用してパルス列から尤もらしいパルスの組を抽出するが、測定に用いる時間の長さが不十分である場合には一拍を形成するパルスの組が含まれず、精度低下の原因となるからである。なお、上記の区間長は、上記の値に限定されず、任意の値を採用できる。例えば、上記の例では、心拍数が60bpmであるとの仮定の下、区間長を設定する場合を例示したが、心拍の周期が標準の人物よりも長い人物、例えばスポーツ心臓を持つ人物の心拍数を基準に区間長を設定することとしてもかまわない。
その後、パルス列抽出部16bは、内部メモリに保存されていた最初のサンプリング時間から最後のサンプリング時間までの期間、すなわちパルスの採取期間から先の抽出から除外された期間、例えば区間長に満たない時間帯および操作期間の総和を差し引く。これによって、心拍の測定に使用できるパルス列の採取期間を求める。その上で、パルス列抽出部16bは、差し引き実行後のパルス列の採取期間が所定の測定期間、例えば標準の人物の心拍数が60bpm以上であるとしたとき4拍分のパルスが採取できる8秒以上であるか否かを判定する。そして、パルス列抽出部16bは、パルス列の採取期間が所定の測定期間以上である場合には、サンプリング時間の集合、すなわちパルス列を後述の組選択部16cへ出力する。
これによって、脈波以外の動きの成分を含む顔画像に由来するパルスを除外しつつも、脈波以外の動きの成分が少ないと推定できる顔画像に由来するパルスだけを集めて心拍の測定に使用できる。したがって、心拍測定装置10によって心拍が測定されているか否かを被験者に意識させずに心拍を測定することが可能となる。
なお、上記の測定期間は、上記の値に限定されず、任意の値を採用できる。例えば、上記の例では、心拍数が60bpmであるとの仮定の下、区間長を設定する場合を例示したが、心拍の周期が標準の人物よりも長い人物、例えばスポーツ心臓を持つ人物の心拍数を基準に区間長を設定することとしてもかまわない。また、測定期間が長いほど心拍の測定精度の向上を期待できるので、精度の高い心拍を測定する場合には、上記の値よりもさらに長く設定することもできる。
組選択部16cは、パルス列のうち互いの時間差が所定の範囲内であるパルス組を選択する処理部である。一態様としては、組選択部16cは、パルス列抽出部16bによってパルス列が抽出されてから、互いを上記の時間差の範囲内で組み合わせることができるパルスの組がなくなるまで、下記のパルス組の選択を繰り返し実行する。例えば、組選択部16cは、パルス列抽出部16bによって抽出されたパルス列に含まれるパルスのサンプリング時間を参照し、互いのサンプリング時間の差が所定の範囲以内である2つのパルスの組を選択する。なお、範囲の一例としては、0.5Hz〜4Hzに対応する0.25秒〜2秒の範囲を採用できる。
第1の計数部17aは、パルス組ごとに、パルス組の周期の整数倍に対応する時点の近傍でパルスの出力が存在する第1の回数と、時点もしくは時点の近傍でパルスの出力が存在しない第2の回数とを計数する処理部である。一態様としては、第1の計数部17aは、組選択部16cによってパルス組が選択される度に、下記の計数を繰り返し実行する。以下では、説明の便宜上、パルス組のうちサンプリング時間の値が小さい方のパルスのことをパルスP1と表記し、サンプリング時間が大きい方のパルスのことをパルスP2と表記し、これらのサンプリング時間をtp1及びtp2(tp1<tp2)と表記する場合がある。例えば、第1の計数部17aは、パルスP2のサンプリング時間tp2からパルスP1のサンプリング時間tp1を減算することによってパルス組の時間間隔、すなわち周期T(=tp2−tp1)を算出する。
続いて、第1の計数部17aは、当該パルス組の周期の整数倍に対応する時点を下記の式(8)によって算出する。下記の式(8)における「n」は、正負の整数である。また、下記の式(8)における「T」は、先に求めたパルス組の周期である。また、下記の式(8)における「α」は、許容誤差であり、例えば、下記の式(9)によって導出できる。かかる許容誤差αは、下記の式(8)によって算出された時点にパルスの出力が存在せずとも当該時点から前後して±αの範囲にパルスの出力が存在すればよいことを意味する。
tp1+nT±α・・・(8)
α=0.1×(tp1+nT)・・・(9)
ここで、上記の式(8)によって、整数nごとに当該パルス組の周期が到来する時点が予測できる。かかる意味合いから、パルス組の周期の整数倍に対応する時点のことを「周期到来点」と記載する場合がある。
かかる周期到来点を算出した後に、第1の計数部17aは、各々の周期到来点ごとに、当該周期到来点から前後して許容誤差αの範囲内にパルスの出力が存在するか否か、すなわちサンプリング時間が周期到来点±α以内に含まれるパルスが存在するか否かを判定する。
このとき、第1の計数部17aは、サンプリング時間が周期到来点±α以内に含まれるパルスが存在する場合に、上記の第1の回数を1つインクリメントする。このように、周期到来点から前後して許容誤差αの範囲内にパルスの出力が存在する場合には、当該パルスがパルス組の周期と一致するタイミングで出力されていることを意味する。かかる意味合いから、上記の第1の回数のことを「一致回数」と記載し、「Na」を添え字として使用する場合がある。
一方、第1の計数部17aは、サンプリング時間が周期到来点±α以内に含まれるパルスが存在しない場合に、上記の第2の回数を1つインクリメントする。このように、周期到来点から前後して許容誤差αの範囲内にパルスの出力が存在しない場合には、パルス組の周期と一致する時間帯にパルスが欠落していることを意味する。かかる意味合いから、上記の第2の回数のことを「欠落回数」と記載し、「No」を添え字として使用する場合がある。
その後、第1の計数部17aは、全ての周期到来点について上記の一致回数Naまたは上記の欠落回数Noの計数が終了するまで、上記の一致回数Naまたは上記の欠落回数Noの計数を繰り返し実行する。
第2の計数部17bは、パルス組ごとに、パルス組の周期の整数倍に対応する時点の近傍以外でパルスの出力が存在する第3の回数を計数する処理部である。一態様としては、第2の計数部17bは、サンプリング時間が第1の計数部17aによって算出された各周期到来点から前後して許容誤差αの範囲外の時間帯にパルスの出力が存在する回数を計数する。このように、周期到来点から前後して許容誤差αの範囲外にパルスの出力が存在する場合には、当該パルスがパルス組の周期と一致しないタイミングで余分に出力されていることを意味する。かかる意味合いから、上記の第3の回数のことを「剰余回数」と記載し、「Nr」を添え字として使用する場合がある。
組抽出部18は、組選択部16cによって選択されたパルス組から最も周期性が高いパルス組を抽出する処理部である。一態様としては、組抽出部18は、パルス組の一致回数、欠落回数および剰余回数が集計される度に、下記の式(10)を用いて、当該パルス組の周期スコアNを算出する。
N=Na−No−Nr・・・(10)
ここで、上記の式(10)に示すように、周期スコアNの算出式は、パルス組の一致回数Naからパルス組の欠落回数Noおよびパルス組の剰余回数Nrを差し引くことによって算出される。このため、パルス組の一致回数Naが多いほど周期スコアNが高く、パルス組の欠落回数Noが多いほど周期スコアNが低く、パルス組の剰余回数Nrが多いほど周期スコアNが低く算出されることになる。したがって、周期スコアNは、値が高いほどパルス組の周期と一致するタイミングでパルスが計測される頻度が高く、パルス組の周期以外のタイミングでノイズが計測される頻度が低く、心拍の周期である公算も高まる。
上記の周期スコアNを算出した後に、組抽出部18は、当該パルス組の周期スコアNが内部メモリに保存された周期スコアNmaxよりも高いか否かを判定する。そして、組抽出部18は、周期スコアNが周期スコアNmaxよりも高い場合には、当該パルス組の周期スコアNを周期スコアNmaxとし、当該パルス組の周期を周期Topとし、内部メモリへ上書き更新する。このように、パルス組の周期スコアNが算出される度に内部メモリに保存された周期スコアNmaxと比較し、値が高い方の周期スコアおよび周期を内部メモリに残す。これによって、全てのパルス組の周期スコアNの算出が終了した段階では、最高の周期スコアNが内部メモリに残ることになる。その後、組抽出部18は、内部メモリに保存されたパルス組の周期スコアNmaxおよび周期Topを心拍測定部19へ出力する。
心拍測定部19は、パルス組の周期から心拍周期を測定する処理部である。一態様としては、心拍測定部19は、全てのパルス組の周期スコアNの算出が終了した後に、内部メモリに保存されたパルス組の周期Topを用いて、被験者の心拍数を算出する。例えば、心拍測定部19は、パルス組の周期Topを、任意の周波数の単位、例えばHzやbpmに換算することによって1秒あたりの心拍数や1分あたりの心拍数を算出できる。
このようにして得られた心拍数は、心拍測定装置10が有する図示しない表示デバイスを始め、任意の出力先へ出力することができる。例えば、心拍数から心疾患の有無などを診断したりする診断プログラムが心拍測定装置10にインストールされている場合には、診断プログラムを出力先とすることができる。例えば、診断プログラムでは、高血圧の人物が頻脈、例えば100bpm以上である場合に狭心症や心筋梗塞の疑いがあると診断したり、心拍数を用いて不整脈や精神疾患、例えば緊張やストレスを診断したりすることができる。また、診断プログラムをWebサービスとして提供するサーバ装置などを出力先とすることもできる。さらに、心拍測定装置10を利用する利用者の関係者、例えば介護士、看護師や医者などが使用する端末装置を出力先とすることもできる。これによって、院外、例えば在宅や在席のモニタリングサービスも可能になる。なお、診断プログラムの測定結果や診断結果も、心拍測定装置10を始め、関係者の端末装置に表示させることができるのも言うまでもない。
なお、上記の取得部13、領域抽出部14、波形検出部15、パルス出力部16a、パルス列抽出部16b、組選択部16c、第1の計数部17a、第2の計数部17b、組抽出部18及び心拍測定部19は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などに心拍測定プログラムを実行させることによって実現できる。また、上記の各機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
また、上記の内部メモリには、一例として、半導体メモリ素子を採用できる。例えば、半導体メモリ素子の一例としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、内部メモリの代わりに、ハードディスク、光ディスクなどの記憶装置を採用することとしてもよい。
[具体例1]
続いて、図7〜図9を用いて、本実施例に係るパルス組の抽出方法の具体例について説明する。図7〜図9は、パルス組の一例を示す図である。図7〜図9には、上段のグラフに脈波信号、中段のグラフにパルス列、下段のグラフにパルス組が図示されている。これら図7〜図9では、同一の脈波信号のパルス列からパルス組1〜パルス組3が選択されたケースを想定することとする。なお、図7〜図9に示すパルス組のグラフには、太線でパルス組に所属するパルスが図示され、細線で一致パルスが図示され、破線で欠落パルスが図示されるとともに、点線で剰余パルスが図示されている。また、各々の周期到来点で一致パルスと計数された場合には丸が図示され、欠落パルスと計数された場合にはバツが図示され、剰余パルスと計数された場合には三角が図示されている。
例えば、パルス組1の場合には、図7に示すように、パルス(イ)をパルスP1とするとともにパルス(ロ)をパルスP2とし、周期到来点が求められる。すなわち、nが0である場合には、パルスP1のサンプリング時間tp1が周期到来点となる。この場合には、周期到来点tp1±許容誤差αの範囲内にサンプリング時間がtp1であるパルス組のパルスP1自身が含まれる。よって、当該周期到来点tp1では、パルス組のパルスP1、すなわちパルス(イ)が一致パルスとなるので、一致回数Naが1つインクリメントされて1回となる。
続いて、nが1である場合には、パルスP2のサンプリング時間tp2が周期到来点となる。この場合には、周期到来点tp2±許容誤差αの範囲内にサンプリング時間がtp2であるパルス組のパルスP2自身が含まれる。よって、当該周期到来点tp2では、パルス組のパルスP2、すなわちパルス(ロ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて2回となる。
さらに、nが2である場合には、時間tp1+2Tが周期到来点となる。この場合には、周期到来点tp1+2T±許容誤差αの範囲内にサンプリング時間がtp1+2Tであるパルス(ハ)が含まれる。よって、当該周期到来点tp1+2Tでは、パルス(ハ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて3回となる。
次に、nが3である場合には、時間tp1+3Tが周期到来点となる。この場合には、周期到来点tp1+3T±許容誤差αの範囲内にパルスの出力は存在しない。よって、当該周期到来点tp1+3Tは、欠落パルスとなるので、欠落回数Noが1つインクリメントされて1回となる。
このようにして、nが10になるまでの各周期到来点で一致回数Naおよび欠落回数Noを計数した結果、一致回数Naは丸が6個で6回と計数されるとともに、欠落回数Noはバツが5個で5回と計数される。その一方で、各々の周期到来点の許容誤差αの範囲外にサンプリング時間を持つパルスは皆無であるので、剰余回数Nrは三角が0個で0と計数される。したがって、パルス組の周期スコアNは、上記の式(10)で6−5−0を計算することによって「1」と算出される。
また、パルス組2の場合には、図8に示すように、パルス(イ)をパルスP1とするとともにパルス(ハ)をパルスP2とし、周期到来点が求められる。すなわち、nが0である場合には、パルスP1のサンプリング時間tp1が周期到来点となる。この場合には、周期到来点tp1±許容誤差αの範囲内にサンプリング時間がtp1であるパルス組のパルスP1自身が含まれる。よって、当該周期到来点tp1では、パルス組のパルスP1、すなわちパルス(イ)が一致パルスとなるので、一致回数Naが1つインクリメントされて1回となる。同様に、nが1である場合にも、周期到来点tp2でパルス組のパルスP2、すなわちパルス(ハ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて2回となる。
さらに、nが2である場合には、時間tp1+2Tが周期到来点となる。この場合には、周期到来点tp1+2T±許容誤差αの範囲内にサンプリング時間がtp1+2Tであるパルス(ニ)が含まれる。よって、当該周期到来点tp1+2Tでは、パルス(ニ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて3回となる。同様に、nが3である場合にも、周期到来点tp1+3Tでパルス(ホ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて4回となる。
次に、nが4である場合には、時間tp1+4Tが周期到来点となる。この場合には、周期到来点tp1+4T±許容誤差αの範囲内にパルスの出力は存在しない。よって、当該周期到来点tp1+4Tは、欠落パルスとなるので、欠落回数Noが1つインクリメントされて1回となる。
このようにして、nが5になるまでの各周期到来点で一致回数Naおよび欠落回数Noを計数した結果、一致回数Naは丸が5個で5回と計数されるとともに、欠落回数Noはバツが1個で1回と計数される。その一方で、各々の周期到来点の許容誤差αの範囲外にサンプリング時間を持つパルス(ロ)が1つ存在するので、剰余回数Nrは三角が1個で1と計数される。したがって、パルス組の周期スコアNは、上記の式(10)で5−1−1を計算することによって「3」と算出される。
また、パルス組3の場合には、図9に示すように、時間差が0.25秒以上2秒以下であるパルス(ロ)及びパルス(ニ)をパルスP1及びパルスP2とし、周期到来点が求められる。すなわち、nが0である場合には、パルスP1のサンプリング時間tp1が周期到来点となる。この場合には、周期到来点tp1±許容誤差αの範囲内にサンプリング時間がtp1であるパルス組のパルスP1自身が含まれる。よって、当該周期到来点tp1では、パルス組のパルスP1、すなわちパルス(ロ)が一致パルスとなるので、一致回数Naが1つインクリメントされて1回となる。同様に、nが1である場合にも、周期到来点tp2でパルス組のパルスP2、すなわちパルス(ニ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて2回となる。
続いて、nが2である場合には、時間tp1+2Tが周期到来点となる。この場合には、周期到来点tp1+2T±許容誤差αの範囲内にパルスの出力は存在しない。よって、当該周期到来点tp1+2Tは、欠落パルスとなるので、欠落回数Noが1つインクリメントされて1回となる。
さらに、nが3である場合には、時間tp1+3Tが周期到来点となる。この場合には、周期到来点tp1+3T±許容誤差αの範囲内にサンプリング時間がtp1+3Tであるパルス(ヘ)が含まれる。よって、当該周期到来点tp1+3Tでは、パルス(ヘ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて3回となる。
このようにして、nが3になるまでの各周期到来点で一致回数Naおよび欠落回数Noを計数した結果、一致回数Naは丸が3個で3回と計数されるとともに、欠落回数Noはバツが1個で1回と計数される。その一方で、各々の周期到来点の許容誤差αの範囲外にサンプリング時間を持つパルス(イ)、(ハ)及び(ホ)の3つが存在するので、剰余回数Nrは三角が3個で3と計数される。したがって、パルス組の周期スコアNは、上記の式(10)で3−1−3を計算することによって「−1」と算出される。
以上のように、図7〜図9の例では、パルス組1〜パルス組3のうちパルス組2の周期スコアNが最高となる。このように、脈波が採り得る周波数成分と同様の周波数成分のノイズを含む顔画像が撮像されたとしても、当該顔画像に由来するパルス、例えばパルス(ロ)がパルス組に選択された周期スコアNは低くなる。なぜなら、ノイズに周期性はないので、一致回数Naは少なく、かつ欠落回数Noは多く計数されたり、周期性の高い心拍成分に由来するパルスによって剰余回数Nrが高く計数されたりするからである。したがって、周期スコアNが最高のパルス組を抽出することによって心拍と同様の周期性を持つパルス組を抽出できる結果、尤も心拍らしいパルス組を抽出することが可能になる。
ここで、組選択部16cによって残りのパルス組についても上記の計数がなされるが、パルス(ロ)及びパルス(ハ)の組は、パルス組1と同様の周期Tを持つので、パルス組1と同様の計数結果となる。さらに、パルス(ハ)及びパルス(ニ)の組と、パルス(ニ)及びパルス(ホ)の組とは、パルス組2と同様の周期Tを持つので、パルス組2と同様の計数結果となる。このように、パルス組の周期Tが過去に計数を行ったパルス組と略同一である場合には、過去のパルス組と計数結果が重複する公算が高いので、その計数を省略することもできる。
[具体例2]
続いて、図10及び図11を用いて、本実施例に係るパルス組の抽出方法の他の具体例について説明する。図10及び図11は、パルス組の他の一例を示す図である。図10及び図11には、上段のグラフに脈波信号、中段のグラフにパルス列、下段のグラフにパルス組が図示されている。これら図10及び図11では、同一の脈波信号のパルス列からパルス組1〜パルス組2が選択されたケースを想定することとする。なお、図10及び図11に示すパルス組のグラフには、太線でパルス組に所属するパルスが図示され、細線で一致パルスが図示され、破線で欠落パルスが図示されるとともに、点線で剰余パルスが図示されている。また、各々の周期到来点で一致パルスと計数された場合には丸が図示され、欠落パルスと計数された場合にはバツが図示され、剰余パルスと計数された場合には三角が図示されている。
ここで、図10及び図11に示すように、脈波波形から得られたパルス列の全てが必ずしも心拍の測定に用いられるとは限らない。すなわち、サンプリング時間が操作期間に含まれるパルスはパルス列抽出部16bによって除去される。例えば、図10及び図11に示すように、パルス出力部16aによって出力されたパルス(イ)〜パルス(ヌ)の10個のパルスのうちサンプリング時間が操作期間に含まれるパルス(ニ)〜パルス(ト)の4個は心拍の測定から除外される。
このような状況の下、パルス組1の周期スコアNを算出する場合には、図10に示すように、パルス(イ)及びパルス(ロ)をパルスP1及びパルスP2とし、周期到来点が求められる。すなわち、nが0である場合には、パルスP1のサンプリング時間tp1が周期到来点となる。この場合には、周期到来点tp1±許容誤差αの範囲内にサンプリング時間がtp1であるパルス組のパルスP1自身が含まれる。よって、当該周期到来点tp1では、パルス組のパルスP1、すなわちパルス(イ)が一致パルスとなるので、一致回数Naが1つインクリメントされて1回となる。同様に、nが1である場合にも、周期到来点tp2でパルス組のパルスP2、すなわちパルス(ロ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて2回となる。
さらに、nが2である場合には、時間tp1+2Tが周期到来点となる。この場合には、周期到来点tp1+2T±許容誤差αの範囲内にサンプリング時間がtp1+2Tであるパルス(ハ)が含まれる。よって、当該周期到来点tp1+2Tでは、パルス(ハ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて3回となる。
その後、nが3〜6までの周期到来点は、操作期間に含まれるので、計測は実行されない。そして、nが7になって時間tp1+7Tが周期到来点として算出された段階で操作期間から脱することになる。この場合には、周期到来点tp1+7T±許容誤差αの範囲内にパルスの出力は存在しない。よって、当該周期到来点tp1+7Tは、欠落パルスとなるので、欠落回数Noが1つインクリメントされて1回となる。
続いて、nが8である場合には、時間tp1+8Tが周期到来点となる。この場合には、周期到来点tp1+8T±許容誤差αの範囲内にサンプリング時間がtp1+8Tであるパルス(チ)が含まれる。よって、当該周期到来点tp1+8Tでは、パルス(チ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて4回となる。
次に、nが9である場合には、時間tp1+9Tが周期到来点となる。この場合には、周期到来点tp1+9T±許容誤差αの範囲内にパルスの出力は存在しない。よって、当該周期到来点tp1+9Tは、欠落パルスとなるので、欠落回数Noが1つインクリメントされて2回となる。
このようにして、nが0から12になるまでの各周期到来点のうちnが3〜6の周期到来点を除いた各周期到来点で一致回数Naおよび欠落回数Noを計数した結果、一致回数Naは丸が6個で6回と計数されるとともに、欠落回数Noはバツが3個で3回と計数される。その一方で、各々の周期到来点の許容誤差αの範囲外にサンプリング時間を持つパルスは皆無であるので、剰余回数Nrは三角が0個で0と計数される。したがって、パルス組の周期スコアNは、上記の式(10)で6−3−0を計算することによって「3」と算出される。
また、パルス組2の周期スコアNを算出する場合には、図11に示すように、パルス(イ)及びパルス(ハ)をパルスP1及びパルスP2とし、周期到来点が求められる。すなわち、nが0である場合には、パルスP1のサンプリング時間tp1が周期到来点となる。この場合には、周期到来点tp1±許容誤差αの範囲内にサンプリング時間がtp1であるパルス組のパルスP1自身が含まれる。よって、当該周期到来点tp1では、パルス組のパルスP1、すなわちパルス(イ)が一致パルスとなるので、一致回数Naが1つインクリメントされて1回となる。同様に、nが1である場合にも、周期到来点tp2でパルス組のパルスP2、すなわちパルス(ハ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて2回となる。
その後、nが2〜3までの周期到来点は、操作期間に含まれるので、計測は実行されない。そして、nが4になって時間tp1+4Tが周期到来点として算出された段階で操作期間から脱することになる。この場合には、周期到来点tp1+4T±許容誤差αの範囲内にサンプリング時間がtp1+4Tであるパルス(チ)が含まれる。よって、当該周期到来点tp1+4Tでは、パルス(チ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて3回となる。同様に、nが5である場合にも、周期到来点tp1+5Tでパルス(リ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて4回となる。さらに、同様に、nが6である場合にも、周期到来点tp1+6Tでパルス(ヌ)が一致パルスとなるので、一致回数Naがさらに1つインクリメントされて5回となる。
このようにして、nが0から6になるまでの各周期到来点のうちnが2〜3の周期到来点を除いた各周期到来点で一致回数Naおよび欠落回数Noを計数した結果、一致回数Naは丸が5個で5回と計数されるとともに、欠落回数Noはバツが0個で0回と計数される。その一方で、各々の周期到来点の許容誤差αの範囲外にサンプリング時間を持つパルス(ロ)が1つ存在するので、剰余回数Nrは三角が1個で1と計数される。したがって、パルス組の周期スコアNは、上記の式(10)で5−0−1を計算することによって「4」と算出される。
以上のように、操作期間を除外してパルス列を抽出することによってパルス組の一致回数、欠落回数及び剰余回数を計数する区間が不連続になったとしても、心拍に由来するパルスは周期的に検出されるので、上記の具体例1の場合と同様に、周期スコアNを算出することができる。図10及び図11の例では、パルス組1及びパルス組2のうちパルス組2の周期スコアNが最高となる。
[処理の流れ]
次に、本実施例に係る心拍測定装置の処理の流れについて説明する。なお、ここでは、心拍測定装置10によって実行される(1)波形検出処理について説明した後に、(2)心拍測定処理について説明することとする。
(1)波形検出処理
図12は、実施例1に係る波形検出処理の手順を示すフローチャートである。この波形検出処理は、カメラ11から画像が取得される度に処理を起動し、画像が取得されなくなるまで繰り返し実行される処理である。なお、図示しない入力デバイス等を介して中断操作を受け付けた場合には、波形検出処理を中止することもできる。
図12に示すように、被験者が映った画像が取得されると(ステップS101)、領域抽出部14は、ステップS101で取得された画像から所定の顔パーツ、例えば被験者の鼻を基準とする生体領域の画像を抽出する(ステップS102)。
その上で、領域抽出部14は、R信号の時系列データをBPF152R及びBPF156Rへ出力するとともに、G信号の時系列データをBPF152G及びBPF156Gへ出力する(ステップS103)。
続いて、BPF152Rは、R信号の特定周波数帯、例えば0.05Hz以上0.3Hz以下の周波数帯の信号成分を抽出するとともに、BPF152Gは、G信号の特定周波数帯の信号成分を抽出する(ステップS104A)。
そして、抽出部153Rは、R信号の特定周波数帯の信号成分の絶対強度値を抽出するとともに、抽出部153Gは、G信号の特定周波数帯の信号成分の絶対強度値を抽出する(ステップS105)。
その後、LPF154Rは、R信号の特定周波数帯の絶対強度値の時系列データに対し、時間変化に応答させる平滑化処理を実行するとともに、LPF154Gは、G信号の特定周波数帯の絶対強度値の時系列データに対し、時間変化に応答させる平滑化処理を実行する(ステップS106)。
続いて、算出部155は、LPF154Gによって出力されたG信号の特定周波数帯の絶対値強度G´noiseを、LPF154Rによって出力されたR信号の特定周波数帯の絶対値強度R´noiseで除する除算「G´noise/R´noise」を実行することによって補正係数aを算出する(ステップS107)。
上記のステップS104Aの処理に並行して、BPF156Rは、R信号の脈波周波数帯、例えば0.5Hz以上4Hz以下の周波数帯の信号成分を抽出するとともに、BPF156Gは、G信号の脈波周波数帯の信号成分を抽出する(ステップS104B)。
その後、乗算部157は、ステップS104Bで抽出されたR信号の脈波周波数帯の信号成分にステップS107で算出された補正係数aを乗算する(ステップS108)。その上で、演算部158は、ステップS104Bで抽出されたG信号の脈波周波数帯の信号成分から、ステップS108で補正係数aが乗算されたR信号の脈波周波数帯の信号成分を差し引く演算「Gsignal−a*Rsignal」を実行する(ステップS109)。
そして、波形検出部15は、演算後の信号の時系列データを脈波波形としてパルス出力部16aへ出力し(ステップS110)、処理を終了する。
(2)心拍測定処理
図13及び図14は、実施例1に係る心拍測定処理の手順を示すフローチャートである。この心拍測定処理は、波形検出部15から脈波波形が入力される限り、繰り返し実行可能な処理である。
図13に示すように、パルス出力部16aは、波形検出部15によって脈波波形の振幅値が出力されると(ステップS301)、当該振幅値のサンプリング時間tよりも1サンプリング前のサンプリング時間t−1の振幅値が極大値、すなわちピークであるか否かを判定する(ステップS302)。なお、サンプリング時間t−1の振幅値がピークでない場合(ステップS302No)には、ステップS305へ移行する。
このとき、サンプリング時間t−1の振幅値がピークである場合(ステップS302Yes)には、パルス出力部16aは、パルスをパルス列抽出部16bへ出力する(ステップS303)。続いて、パルス列抽出部16bは、ステップS303でパルスが出力されたサンプリング時間を図示しない内部メモリに保存する(ステップS304)。
そして、パルス列抽出部16bは、内部メモリに保存されたサンプリング時間のうち、同内部メモリに保存された操作期間に含まれるサンプリング時間を除外し、残ったサンプリング時間を抽出する(ステップS305)。
続いて、パルス列抽出部16bは、ステップS305で除外された期間、例えば区間長に満たない時間帯および操作期間の総和を差し引いたパルス列の採取期間が所定の測定期間以上であるか否かを判定する(ステップS306)。なお、測定期間以上ではない(ステップS306No)には、上記のステップS301に戻り、ステップS305までの処理を繰り返し実行する。
そして、図14に示すように、組選択部16cは、ステップS305で抽出されたパルス列に含まれるパルスのサンプリング時間を参照し、互いのサンプリング時間の差が所定の範囲以内である2つのパルスP1及びパルスP2の組を選択する(ステップS307)。
続いて、第1の計数部17aは、パルスP2のサンプリング時間tp2からパルスP1のサンプリング時間tp1を減算することによってパルス組の時間間隔、すなわち周期T(=tp2−tp1)を算出する(ステップS308)。そして、第1の計数部17aは、パルス組の周期Tの整数倍に対応する周期到来点を上記の式(8)によって算出する(ステップS309)。
その後、第1の計数部17aは、周期到来点のうち1つを選択する(ステップS310)。その上で、第1の計数部17aは、ステップS310で選択された周期到来点から前後して許容誤差αの範囲内にパルスの出力が存在するか否か、すなわちサンプリング時間が周期到来点±α以内に含まれるパルスが存在するか否かを判定する(ステップS311)。
このとき、サンプリング時間が周期到来点±α以内に含まれるパルスが存在する場合(ステップS311Yes)に、第1の計数部17aは、パルス組の一致回数Naを1つインクリメントする(ステップS312)。
一方、サンプリング時間が周期到来点±α以内に含まれるパルスが存在しない場合(ステップS311No)に、第1の計数部17aは、パルス組の欠落回数Noを1つインクリメントする(ステップS313)。
その後、第1の計数部17aは、全ての周期到来点について上記の一致回数Naまたは上記の欠落回数Noの計数が終了するまで(ステップS314No)、上記のステップS310〜ステップS313までの処理を繰り返し実行する。
そして、全ての周期到来点について上記の一致回数Naまたは上記の欠落回数Noの計数が終了した場合(ステップS314Yes)には、第2の計数部17bは、次のような処理を実行する。すなわち、第2の計数部17bは、サンプリング時間がステップS309で算出された各周期到来点から前後して許容誤差αの範囲外の時間帯にパルスの出力が存在する剰余回数Nrを計数する(ステップS315)。
続いて、組抽出部18は、パルス組の一致回数Na、欠落回数Noおよび剰余回数Nrを上記の式(10)へ代入することによって当該パルス組の周期スコアNを算出する(ステップS316)。
そして、組抽出部18は、ステップS316で算出されたパルス組の周期スコアNが内部メモリに保存された周期スコアNmaxよりも高いか否かを判定する(ステップS317)。
このとき、周期スコアNが周期スコアNmaxよりも高い場合(ステップS317Yes)には、組抽出部18は、ステップS316で算出されたパルス組の周期スコアNを周期スコアNmaxとし、当該パルス組の周期を周期Topとし、内部メモリへ上書き更新する(ステップS318)。なお、周期スコアNが周期スコアNmax以下である場合(ステップS317No)には、上記の上書き更新を実行せずにステップS319へ移行する。
そして、全てのパルス組の周期スコアNが算出されるまで(ステップS319No)、上記のステップS307〜ステップS318までの処理を繰り返し実行する。その後、全てのパルス組の周期スコアNが算出されると(ステップS319Yes)、心拍測定部19は、内部メモリに保存されたパルス組の周期Topを用いて、被験者の心拍数を算出し(ステップS320)、処理を終了する。
なお、図14に示したフローチャートでは、パルス組の一致回数Naおよび欠落回数Noを計数してから剰余回数Nrを計数する場合を例示したが、計数の順序はこれに限定されない。すなわち、パルス組の一致回数Naおよび欠落回数Noは、ステップS311の分岐によって計数されずともよく、また、剰余回数Nrは、一致回数Naおよび欠落回数Noの後に計数されずともよい。これらパルス組の一致回数Na、欠落回数No及び剰余回数Nrは、並列して計数することもできる。
また、図14に示したフローチャートでは、各々の周期到来点の周期スコアNを順番に算出する場合を例示したが、各周期到来点の周期スコアNを並列して算出した上で周期スコアNが最大のパルス組を抽出することとしてもかまわない。
[実施例1の効果]
上述してきたように、本実施例に係る心拍測定装置10は、脈波波形のピークに対応するパルス列のうち互いの時間差が所定範囲内であるパルス組ごとに整数倍の周期でパルスが一致又は欠落する回数を計数し、一致と欠落の回数の差を比較してパルス組を抽出する。
このため、本実施例に係る心拍測定装置10は、脈波が採り得る周波数成分と同様の周波数成分のノイズを含む顔画像が撮像されたとしても、当該顔画像に由来するパルスを含むパルス組を抽出されにくくできる。なぜなら、ノイズには周期性がないので、一致回数は少なく、かつ欠落回数は多く計数できるからである。それゆえ、一致回数から欠落回数を差し引いた差が最大のパルス組を抽出することによって心拍と同様の周期性を持つパルス組を抽出できる結果、尤も心拍らしいパルス組を抽出することが可能になる。また、一致回数および欠落回数の計数には、周波数解析の適用は伴わない。
したがって、本実施例に係る心拍測定装置10によれば、心拍の測定時間を短縮することが可能になる。
さらに、本実施例に係る心拍測定装置10は、整数倍の周期の近傍以外でパルスが剰余する回数を計数し、一致回数から欠落回数および剰余回数を差し引いた差が最大であるパルス組を抽出する。このため、本実施例に係る心拍測定装置10では、脈波が採り得る周波数成分と同様の周波数成分のノイズに由来するパルスを含むパルス組をより抽出されにくくできる。なぜなら、ノイズに周期性はないので、ノイズに由来するパルスのパルス組では周期性の高い心拍成分に由来するパルスによって剰余回数が高く計数されるからである。よって、本実施例に係る心拍測定装置10によれば、尤も心拍らしいパルス組を精度よく抽出することが可能になる。