以下に、本願の開示する脈波検出装置、脈波検出プログラムおよび脈波検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[脈波検出装置の構成]
図1は、実施例1に係る脈波検出装置の機能的構成を示すブロック図である。図1に示す脈波検出装置10は、太陽光や室内光などの環境光の下で生体に計測器具を接触させずに、被験者が撮影された画像を用いて被験者の脈波を検出する装置である。ここで言う「脈波」とは、血液の体積の変動、すなわち血流の増減を表す指標を指し、いわゆる心拍数や心拍波形などが含まれる。かかる脈波検出装置10の一態様としては、例えば、スマートフォン、PDA(Personal Digital Assistant)、携帯電話機等の携帯端末装置等である。脈波検出装置10の一態様としては、スマートフォンに脈波を検出するアプリケーションプログラムをプリインストールまたはインストールさせ、当該アプリケーションプログラムを動作させることによって実現される。なお、脈波検出装置10は、デスクトップ型PC(パーソナル・コンピュータ)、タブレット型PC、ノート型PCなどの情報処理装置であってもよい。
脈波検出装置10は、図1に示すように、カメラ20と、表示部21と、入力部22と、通信I/F(interface)部23と、制御部24とを有する。なお、脈波検出装置10は、図1に示した機能部以外にも既知の携帯端末装置が有する各種の機能部を有することとしてもかまわない。例えば、脈波検出装置10は、アンテナ、キャリア網を介して通信を行うキャリア通信部、GPS(Global Positioning System)受信機、ハードディスク、SSD(Solid State Drive)、フラッシュメモリ等の記憶部などを有することとしてもかまわない。
カメラ20は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を用いた撮像装置である。例えば、カメラ20には、R(red)、G(green)、B(blue)など3種以上の受光素子を搭載することができる。かかるカメラ20の実装例としては、デジタルカメラやWebカメラを外部端子を介して接続することとしてもよいし、携帯端末のようにカメラが出荷時から搭載されている場合にはそのカメラを流用できる。なお、ここでは、脈波検出装置10がカメラ20を有する場合を例示したが、ネットワーク経由または記憶デバイス経由で画像を取得できる場合には、脈波検出装置10がカメラ20を有さなくてもよい。
表示部21は、各種情報を表示する表示デバイスである。表示部21としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスが挙げられる。表示部21は、各種情報を表示する。脈波検出装置10を通じて情報を表示する必要がなければ表示部21が無くても構わない。また、別の装置の表示部に表示することもできる。
入力部22は、各種の情報を入力する入力デバイスである。例えば、入力部22としては、マウスやキーボード、脈波検出装置10に設けられた各種のボタンや、表示部21上に設けられた透過型のタッチセンサなどの入力デバイスが挙げられる。なお、図1の例では、機能的な構成を示したため、表示部21と入力部22を別に分けているが、例えば、タッチパネルなど表示部21と入力部22を一体的に設けたデバイスで構成してもよい。
通信I/F部23は、他の装置との間で通信制御を行うインタフェースである。かかる通信I/F部23の一態様としては、LANカードなどのネットワークインタフェースカードを採用できる。通信I/F部23は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信I/F部23は、検出された脈波の情報をサーバ装置へ送信する。
制御部24は、脈波検出装置10を制御するデバイスである。制御部24としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部24は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部24は、各種のプログラムが動作することにより、各種の処理部として機能する。例えば、制御部24は、撮影制御部30と、検出部31と、分割部32と、計測部33と、決定部34と、変更部35と、出力制御部36とを有する。
撮影制御部30は、カメラ20を制御して画像の撮影を制御する処理部である。例えば、撮影制御部30は、脈波の検出を行う場合、カメラ20を制御して連続的に画像の撮影を行う。例えば、撮影制御部30は、入力部22に対して脈波の検出開始を指示する所定操作が行われた場合、カメラ20を制御して所定のフレームレートで連続的に画像の撮影を行う。フレームレートは、人の脈波をサンプリング可能な周期であればよい。本実施例では、カメラ20により動画撮影を行い、撮影される各画像から脈波の検出を行うものとしている。フレームレートとしては、例えば、24fps(frame per second)、30fps、60fpsなどの一般的な動画の撮影周期が挙げられる。カメラ20により撮影された画像は、撮影順に順次、検出部31および分割部32へ出力される。なお、撮影制御部30は、カメラ20が撮影する画像を表示部21に表示させてもよい。
検出部31は、画像に対して顔検出の処理を行う処理部である。例えば、検出部31は、カメラ20により被験者が連続的に撮影された画像のうち何れかの画像から被験者の顔領域を検出する。例えば、検出部31は、脈波の検出開始が指示された場合、カメラ20から入力する画像に対して、順に顔検出の処理を行う。この顔検出の手法は、何れであってよい。例えば、検出部31は、画像にテンプレートマッチング等の画像処理を実行することによって被験者の眼、耳、鼻や口などの顔パーツや輪郭を検出する。そして、検出部31は、被験者の顔パーツを含む所定の矩形領域を顔領域と検出する。例えば、検出部31は、被験者の顔の輪郭全体を含む矩形領域を顔領域と検出する。
検出部31は、顔領域を検出すると、画像内での検出した顔領域の位置を分割部32へ出力し、以降の画像に対する顔検出の処理を停止する。すなわち、検出部31は、カメラ20から順次入力される何れの画像で顔領域が1度検出されると、顔領域の位置を示す位置情報を分割部32へ出力して顔検出の処理を停止する。
分割部32は、カメラ20から入力する各画像を複数の局所領域に分割する処理部である。例えば、分割部32は、検出部31から顔領域の位置情報が入力すると、顔領域が検出された画像以降の各画像の位置情報が示す顔領域に対応する領域を複数の局所領域に分割する。分割部32は、局所領域の分割を行った各画像を計測部33へ出力する。
図2は、画像の顔領域を局所領域に分割した一例を示す図である。画像40には被験者の顔が含まれており、顔領域41が検出されている。図2の例では、顔領域41がm×n個の局所領域42に分割されている。この局所領域42は、領域内に含まれる各画素の輝度の平均から脈波を求めた場合、ノイズに対して所定以上のSN比(Signal to Noise ratio)が得られるサイズとする。例えば、分割部32は、顔領域41が検出された画像以降の画像の顔領域41に対応する領域を10×10画素毎の局所領域42に分割する。
計測部33は、分割部32により分割された各画像から脈波を計測する処理部である。ここで、本実施例では、脈波を計測するタイミングおよび計測対象の領域に応じて、計測部33を機能的に、第1計測部33A、第2計測部33B、第3計測部33Cに分けて示している。第1計測部33A、第2計測部33B、第3計測部33Cは、それぞれ個別に処理部として設けられていてもよい。また、計測部33が、第1計測部33A、第2計測部33B、第3計測部33Cとして機能するものとしてもよい。
計測部33は、カメラ20により撮影された画像の計測対象の領域に含まれる各波長成分の信号から脈波を計測する。例えば、計測部33は、計測対象の領域に含まれる各画素の波長成分別の代表値の信号から、各波長成分の間で脈波が採り得る脈波周波数帯以外の特定周波数帯の成分が互いに相殺された信号の波形を脈波として計測する。
一態様としては、計測部33は、画像に含まれる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成分の各成分の間で感度が揃う。特に、特定周波数帯におけるスペクトルの信号強度は、大部分においてスペクトルの信号強度が略同一になっている。その一方で、実際に脈波が含まれる周波数の周辺領域60は、G成分およびR成分の各成分の間でスペクトルの信号強度が揃っていない。
図5は、演算後のスペクトルの一例を示す図である。図5では、脈波が現れている周波数帯の視認性を上げる観点から縦軸である信号強度の尺度を大きくして図示している。図5に示すように、G信号のスペクトルから補正係数kの乗算後のR信号のスペクトルが差し引かれた場合には、G成分およびR成分の間での吸光特性の差によって脈波が現れる信号成分の強度が可及的に維持された状態でノイズ成分が低減されていることがわかる。このようにしてノイズ成分だけが除去された脈波波形を検出することができる。
続いて、計測部33の機能的構成についてさらに具体的に説明する。図6は、計測部の機能的構成を示すブロック図である。図6に示すように、計測部33は、第1算出部51と、BPF(Band-Pass Filter)52R及び52Gと、抽出部53R及び53Gと、LPF(Low-Pass Filter)54R及び54Gとを有する。また、計測部33は、第2算出部55と、BPF56R及び56Gと、乗算部57と、演算部58と、検出部59とを有する。なお、図3〜図5の例では、周波数空間にて脈波を検出する例を説明したが、図6では、周波数成分への変換にかかる時間を削減する観点から、時系列空間にてノイズ成分をキャンセルして脈波を検出する場合の機能的構成を図示している。
第1算出部51は、R成分及びG成分ごとに計測対象の領域に含まれる各画素の画素値の代表値として平均値を算出する。なお、代表値は、計測対象の領域に含まれる各画素の画素値を代表する値であれば、平均値以外であってもよい。そして、第1算出部51は、部分画像に含まれるR信号及びG信号の平均値を所定の時間、例えば1秒間や1分間などにわたって時系列にサンプリングし、サンプリングされたR信号及びG信号の時系列データを後段の機能部へ出力する。例えば、第1算出部51は、R信号の時系列データをBPF52R及びBPF56Rへ出力するとともに、G信号の時系列データをBPF52G及びBPF56Gへ出力する。
BPF52R、BPF52G、BPF56R及びBPF56Gは、いずれも所定の周波数帯の信号成分だけを通過させてそれ以外の周波数帯の信号成分を除去するバンドパスフィルタである。これらBPF52R、BPF52G、BPF56R及びBPF56Gは、ハードウェアによって実装されることとしてもよいし、ソフトウェアによって実装されることとしてもよい。
これらBPFが通過させる周波数帯の違いについて説明する。BPF52R及びBPF52Gは、ノイズ成分が他の周波数帯よりも顕著に現れる特定周波数帯の信号成分を通過させる。
かかる特定周波数帯は、脈波が採り得る周波数帯との間で比較することによって定めることができる。脈波が採り得る周波数帯の一例としては、0.5Hz以上4Hz以下である周波数帯、1分あたりに換算すれば30bpm以上240bpm以下である周波数帯が挙げられる。このことから、特定周波数帯の一例としては、脈波として計測され得ない0.5Hz未満及び4Hz超過の周波数帯を採用することができる。また、特定周波数帯は、脈波が採り得る周波数帯との間でその一部が重複することとしてもよい。例えば、脈波として計測されることが想定しづらい0.7Hz〜1Hzの区間で脈波が採り得る周波数帯と重複することを許容し、1Hz未満及び4Hz以上の周波数帯を特定周波数帯として採用することもできる。また、特定周波数帯は、1Hz未満及び4Hz以上の周波数帯を外縁とし、ノイズがより顕著に現れる周波数帯に絞ることもできる。例えば、ノイズは、脈波が採り得る周波数帯よりも高い高周波数帯よりも、脈波が採り得る周波数帯よりも低い低周波数帯でより顕著に現れる。このため、1Hz未満の周波数帯に特定周波数帯を絞ることもできる。また、空間周波数がゼロである直流成分の近傍には、各成分の撮像素子の感度の差が多く含まれるので、3bpm以上60bpm未満の周波数帯に特定周波数帯を絞ることもできる。さらに、人の体の動き、例えば瞬きや体の揺れの他、環境光のチラツキなどのノイズが現れやすい3bpm以上20bpm未満の周波数帯に特定周波数帯を絞ることもできる。
ここでは、一例として、BPF52R及びBPF52Gが特定周波数帯として0.05Hz以上0.3Hz以下の周波数帯の信号成分を通過させる場合を想定して以下の説明を行う。なお、ここでは、特定周波数帯の信号成分を抽出するために、バンドパスフィルタを用いる場合を例示したが、一定の周波数未満の周波数帯の信号成分を抽出する場合などには、ローパスフィルタを用いることもできる。
一方、BPF56R及びBPF56Gは、脈波が採り得る周波数帯、例えば1Hz以上4Hz以下の周波数帯の信号成分を通過させる。なお、以下では、脈波が採り得る周波数帯のことを「脈波周波数帯」と記載する場合がある。
抽出部53Rは、R信号の特定周波数帯の信号成分の絶対強度値を抽出する。例えば、抽出部53Rは、R成分の特定周波数帯の信号成分の絶対値を取る処理を実行することによって特定周波数帯の信号成分の絶対強度値を抽出する。また、抽出部53Gは、G信号の特定周波数帯の信号成分の絶対強度値を抽出する。例えば、抽出部53Gは、G成分の特定周波数帯の信号成分の絶対値を取る処理を実行することによって特定周波数帯の信号成分の絶対強度値を抽出する。
LPF54R及びLPF54Gは、特定周波数帯の絶対強度値の時系列データに対し、時間変化に応答させる平滑化処理を実行するローパスフィルタである。これらLPF54R及びLPF54Gは、LPF54Rへ入力される信号がR信号であり、LPF54Gへ入力される信号がG信号である以外に違いはない。かかる平滑化処理によって、特定周波数帯の絶対値強度R´n及びG´nが得られる。
第2算出部55は、LPF54Gによって出力されたG信号の特定周波数帯の絶対値強度G´nを、LPF54Rによって出力されたR信号の特定周波数帯の絶対値強度R´nで除する除算「G´n/R´n」を実行する。これによって、感度差の補正係数kを算出する。
乗算部57は、BPF56Rによって出力されたR信号の脈波周波数帯の信号成分に第2算出部55によって算出された補正係数kを乗算する。
演算部58は、乗算部57によって補正係数kが乗算されたR信号の脈波周波数帯の信号成分から、BPF56Gによって出力されたG信号の脈波周波数帯の信号成分を差し引く演算「k*Rs−Gs」を実行する。かかる演算によって得られた信号の時系列データは、脈波の波形に相当する。
検出部59は、演算後の脈波の波形の信号を用いて、被験者の脈波を検出する。一態様としては、検出部59は、信号の時系列データを脈波の検出結果として出力する。他の一態様としては、検出部59は、信号の時系列データにフーリエ変換を適用することによって周波数成分へ変換されたスペクトルから脈拍数(心拍数)を検出することもできる。
図1に戻り、計測部33は、図6に示した計測処理を行って、計測対象の領域に含まれる各波長成分の信号から脈波を計測する。例えば、第1計測部33Aは、分割部32から入力する、顔領域41が検出された画像の各局所領域42から脈波を計測する。すなわち、第1計測部33Aは、図2に示した画像40の全ての局所領域42から脈波を計測する。
ここで、図2に示すように、画像40の顔領域41を局所領域42に分割した場合、局所領域42には、顔の皮膚部分と、背景部分や頭髪部分など皮膚部分以外の部分がある。この顔の皮膚部分の局所領域42では、ノイズに対する脈波のSN比がよく、脈波が良好に計測される。一方、皮膚部分以外の部分の局所領域42では、皮膚部分がなく、計測すべき血流による輝度変化が生じないため、脈波を計測できなくなる。例えば、図2の局所領域42Aは、顔の額の皮膚部分であるため、脈波が良好に計測される。一方、局所領域42Bは、背景部分であるため、波形を計測できない。
決定部34は、第1計測部33Aによる各局所領域42の脈波の計測結果に基づき、複数の局所領域42から脈波の計測領域を決定する。例えば、決定部34は、顔領域41が検出された画像の各局所領域42について、それぞれ脈波の検出の良否を判定する。例えば、決定部34は、局所領域42から計測される波形の信号の振幅(peak-to-peak)が脈拍の採り得る所定範囲内であり、信号の周波数帯が脈波周波数帯の範囲内である場合、脈波が検出の良好と判定する。一方、決定部34は、局所領域42から計測される波形の信号の振幅が脈拍の採り得る所定範囲外の場合、または、信号の周波数帯が脈波周波数帯の範囲外である場合、脈波が検出の不良と判定する。なお、決定部34は、信号の振幅または信号の周波数帯の何れか一方のみで脈波の検出の良否を判定してもよい。
決定部34は、脈波が良好に検出される主な局所領域42の範囲を集約して、出力用の脈波を計測する計測領域と決定する。例えば、決定部34は、脈波の検出が良好な局所領域42の判定結果の値を「1」とし、脈波の検出が不良な局所領域42の判定結果の値を「0」とする。決定部34は、画像の各局所領域42について、画像の縦方向および横方向のライン毎に判定結果の値を合計して、縦方向および横方向のラインの平均値をそれぞれ求める。そして、決定部34は、画像の縦方向および横方向について、それぞれ合計値が平均値以上となる両端のラインを求める。そして、決定部34は、画像の縦方向および横方向について、それぞれ両端のライン以内となる各局所領域42を計測領域と決定する。
図7は、計測領域の決定の流れを説明する図である。例えば、顔領域41がm×n個の局所領域42に分割されているものとする。横方向の各ラインは、判定結果の値の合計値が1行目「7」、2行目「10」、3行目「8」、4行目「12」、・・・m−2行目「9」、m−1行目「11」、m行目「6」であり、判定結果の値の合計値の平均が「10」であるものとする。横方向についての合計値が平均値以上となる両端のラインは、2行目、4行目、・・・m−1行目となる。縦方向の各ラインは、判定結果の値の合計値が1行目「5」、2行目「9」、3行目「7」、4行目「12」、・・・n−2行目「9」、n−1行目「8」、n行目「2」であり、判定結果の値の合計値の平均が「9」であるものとする。縦方向についての合計値が平均値以上となる両端のラインは、2行目、4行目、・・・n−2行目となる。この場合、決定部34は、縦方向に2行目からm−1行目の範囲内であり、横方向に2行目からn−2行目の範囲内の各局所領域42を計測領域43と決定する。
図1に戻り、第2計測部33Bは、分割部32から入力する各画像の計測領域43から脈波を計測する。この計測領域43には、脈波が良好に検出される局所領域42が多く含まれるため、脈波を精度よく計測できる。
ところで、顔の位置が変化して計測領域43から顔が外れると輝度変化が大きくなって、脈波の検出が困難になる。
そこで、第3計測部33Cは、分割部32から入力する各画像の計測領域43の境界部分の局所領域42から脈波を計測する。例えば、第3計測部33Cは、計測領域43の境界の内側および外側の局所領域42の脈波を計測する。計測領域43の境界の内側および外側の脈波を計測する局所領域42のライン数は、1行であってもよく複数行であってもよい。
図8は、計測領域の境界部分の脈波の計測を行う局所領域の一例を示す図である。図8の例では、計測領域43の境界の内側および外側についてそれぞれ1行ずつ脈波を計測する局所領域42とした場合を示している。図8に示すように計測領域43が決定されている場合、第3計測部33Cは、計測領域43の境界の内側および外側についてそれぞれ1行ずつ、斜線で示した局所領域42の脈波を計測する。
変更部35は、境界部分の局所領域42の脈波の計測結果に基づき、計測領域43を変更する。例えば、画面内で顔が移動した場合、計測領域43の移動した方向の境界部分の局所領域42では、顔が移動してくるため、脈波の検出精度が向上する。一方、計測領域43の移動した方向と逆方向の境界部分の局所領域42では、顔が含まれなくなるため、脈波の検出精度が低下する。そこで、変更部35は、計測領域43の境界の内側および外側の各局所領域42について、それぞれ脈波の検出の良否を判定する。この良否の判定は、信号の振幅および信号の周波数帯の両方を用いてもよく、信号の振幅または信号の周波数帯の何れか一方のみを用いてもよい。変更部35は、計測領域43の境界の内側および外側の各局所領域42について、画面の縦方向および横方向のそれぞれのライン毎に、脈波の検出精度を求める。例えば、変更部35は、脈波の検出が良好な局所領域42の判定結果の値を「1」とし、脈波の検出が不良な局所領域42の判定結果の値を「0」とする。変更部35は、縦方向および横方向のそれぞれのライン毎に、局所領域42の判定結果の値を合計し、合計値が所定の閾値以上である場合、脈波の検出精度が良好と判定し、合計値が所定の閾値未満である場合、脈波の検出精度が不良と判定する。この閾値は、所定の値として予め設定してもよく、決定部34により計測領域43を決定する際に用いたライン毎に判定結果の値を合計値の平均値としてもよい。変更部35は、一端側の境界の外側の局所領域42の脈波の検出精度が、他端側の境界の内側の局所領域42の脈波の検出精度よりも高い場合、計測領域43を一端側へ変更する。
図9は、計測領域の変更の一例を示す図である。図9の例では、左側の画像40において計測領域43の境界の内側および外側についてそれぞれ1行ずつ局所領域42の脈波を計測しているものとする。この左側の画像40で顔が左側へ移動した場合、計測領域43の左側の境界の外側の各局所領域42で脈波の検出精度が高くなる。特に丸で囲った領域44は、局所領域42内に顔が含まれるようになって、脈波が検出されるようになるため、脈波の検出精度が変化する。また、計測領域43の右側の境界の内側の各局所領域42で脈波の検出精度が低くなる。特に丸で囲った領域45は、局所領域42に顔が含まれなくなって、脈波が検出されなくなるため、脈波の検出精度が変化する。図9の例では、右側の画像40が左側の画像40から顔が左側へ移動した状態を示している。この場合、変更部35は、計測領域43から右側の境界の内側の1行分の各局所領域42を削除し、左側の境界の外側の1行分の各局所領域42を計測領域43に追加して、計測領域43を左に移動させる。なお、計測領域43の移動量は、計測領域43の一端側と他端側のラインの検出精度の判定結果から定めてよい。例えば、計測領域43の一端側で2ラインの検出精度が良好と判定され、計測領域43の他端側で1ラインの検出精度が不要と判定されたものとする。この場合、変更部35は、ライン数の少ない方に合わせて、計測領域43を一端側へ1ライン分移動させるものとしてもよい。また、変更部35は、ライン数の多い方に合わせて、計測領域43を一端側へ2ライン分移動させるものとしてもよい。
また、本実施例では、次のように移動の判定を行う。変更部35は、画面の縦方向および横方向のそれぞれについて、計測領域43の一端側の境界について各ラインの検出精度が変化したか否かを判定する。そして、変更部35は、一端側の境界のラインの検出精度が変化した場合、他端側の境界のラインについても検出精度が変化したか判定する。変更部35は、他端側の境界のラインの検出精度が変化していた場合、計測領域43を検出精度が良好に変化した側へ移動させてもよい。例えば、変更部35は、画面の横方向の計測領域43の一端側の境界の外側のラインの検出精度が良好に変化したか、および、計測領域43の内側のラインの検出精度が不良に変化したかを判定する。そして、変更部35は、一端側の境界の外側のラインの検出精度が良好に変化した場合、他端側の境界の内側のラインの検出精度が不良に変化したか否かを判定する。変更部35は、他端側の境界の内側のラインの検出精度が不良に変化していた場合、計測領域43を一端側へ移動させる。一方、変更部35は、一端側の境界の内側のラインの検出精度が不良に変化した場合、他端側の境界の外側のラインの検出精度が良好に変化したか否かを判定する。変更部35は、他端側の境界の外側のラインの検出精度が良好に変化していた場合、計測領域43を他端側へ移動させる。
第2計測部33Bは、計測領域43が変更された場合、変更された計測領域43から脈波を計測する。
ところで、利用者が大きく動いた場合、ノイズが発生して脈波を精度良く計測できなくなる。そこで、第2計測部33Bは、第3計測部33Cにより境界部分の所定以上の局所領域42において脈波が計測されない場合、計測領域43から脈波の計測を中断する。例えば、第2計測部33Bは、境界部分の所定の割合以上の局所領域42において脈波が計測されない場合、計測領域43から脈波の計測を中断する。この所定の割合は、例えば、被験者が制止している場合と、被験者が移動した場合の結果から、被験者が移動していると見なせる値にさだめればよく、例えば、7割とする。この所定の割合は、外部から設定、変更を可能としてもよい。そして、第2計測部33Bは、第3計測部33Cにより計測される境界部分の局所領域42の脈波の計測結果が安定した場合に、計測領域43から脈波の計測を再開する。この再開の際、第2計測部33Bは、中断前の計測領域43を用いて脈波を計測してもよい。また、検出部31による顔検出の処理から再度行って計測領域43を再度求めて脈波を計測してもよい。
出力制御部36は、第2計測部33Bにより計測された脈波を出力する。例えば、出力制御部36は、第2計測部33Bにより計測された脈波を表示部21に表示させる。なお、出力制御部36は、第2計測部33Bにより計測された脈波の情報を他の装置へ送信してもよい。例えば、ネットワークを介して電子カルテサービスや診断サービスを提供するサーバ装置へ、計測された脈波の情報を送信してもよい。例えば、診断サービスでは、高血圧の人物が頻脈、例えば100bpm以上である場合に狭心症や心筋梗塞の疑いがあると診断したり、心拍数を用いて不整脈や精神疾患、例えば緊張やストレスを診断したりする。これにより、院外、例えば在宅や在席でも脈拍のモニタリングサービスを提供できる。
[処理の流れ]
続いて、本実施例に係る脈波検出装置10により脈波を検出する検出処理の流れについて説明する。図10は、検出処理の手順を示すフローチャートである。この検出処理は、例えば、入力部22に対して脈波の検出開始を指示する所定操作が行われたタイミングで実行される。
図10に示すように、撮影制御部30は、カメラ20を制御して連続的に画像の撮影を開始する(S10)。検出部31は、カメラ20により撮影された画像に対して顔領域41の検出を行う(S11)。検出部31は、顔領域41を検出できたか否かを判定する(S12)。顔領域41を検出できていない場合(S12否定)、再度S11へ移行して次に撮影された画像に対して顔領域41の検出を行う。
一方、顔領域41を検出できた場合(S12肯定)、検出部31は、顔検出の処理を停止してS13へ移行する。
分割部32は、カメラ20から入力する画像を顔領域41に対応する領域を複数の局所領域42に分割する(S13)。第1計測部33Aは、画像の分割された各局所領域42から脈波を計測する(S14)。決定部34は、顔領域41が検出された画像の各局所領域42について、それぞれ脈波の検出の良否を判定し、脈波が良好に検出される主な局所領域42の範囲を集約して、計測領域43を決定する(S15)。
第2計測部33Bは、局所領域42の分割が行われた画像の計測領域43から脈波を計測する(S16)。第3計測部33Cは、局所領域42の分割が行われた画像の計測領域43の境界部分の局所領域42から脈波を計測する(S17)。第2計測部33Bは、境界部分の所定の割合以上の局所領域42において脈波が計測されない状態であるか否かを判定する(S18)。所定の割合以上の局所領域42で脈波が計測されない状態ではない場合(S18否定)、後述のS19の所定へ移行する。一方、所定の割合以上の局所領域42で脈波が計測されない状態である場合(S18肯定)、再度S17へ移行して、脈波が計測されない局所領域42が所定の割合未満となるまで計測領域43から脈波の計測を中断する。
変更部35は、画像の横方向の境界部分の局所領域42の脈波の計測結果に基づき、計測領域43を横方向に変更する横方向変更処理を行う(S19)。この横方向変更処理の処理内容は、後述する。また、変更部35は、画像の縦方向の境界部分の局所領域42の脈波の計測結果に基づき、計測領域43を縦方向に変更する縦方向変更処理を行う(S20)。この縦方向変更処理の処理内容も、後述する。
出力制御部36は、処理終了であるか否かを判定する(S21)。例えば、出力制御部36は、入力部22に対して処理終了を指示する所定操作が行われた場合、処理終了であると判定(S21肯定)して処理を終了する。一方、出力制御部36は、処理終了を指示する所定操作が行われていない場合、処理終了ではないと判定(S21否定)して、第2計測部33Bによる脈波の計測結果を表示部21に出力する(S22)。分割部32は、カメラ20から入力する次の画像の顔領域41に対応する領域を複数の局所領域42に分割し(S23)、上述のS16の処理へ移行する。
次に、本実施例に係る横方向変更処理の流れについて説明する。図11は、横方向変更処理の手順を示すフローチャートである。この横方向変更処理は、例えば、上述の検出処理のS19から実行される。
ここで、本実施例では、画像40の計測領域43の横方向の境界部分のラインについて次のような定義を行って移動方向の移動を判定している。図12は、横方向変更処理を行う際のラインの定義の一例を示す図である。本実施例では、画像40の計測領域43の横方向の左側の境界部分の計測領域43の内部となるラインに境界側から順にi=−1、−2、・・と番号を付し、計測領域43の外部となるラインに境界側から順にi=1、2、・・と番号を付している。
図11に示すように、変更部35は、横方向の左側の境界部分の判定対象のラインの位置の初期値をセットする(S30)。ここで、本実施例では、横方向の左側の計測領域43の内部となるラインから判定を行うものとしている。例えば、判定を行うライン数が2ラインの場合、変更部35は、判定対象のラインの位置iに−2をセットする。
変更部35は、位置iの判定対象のラインのm個の各局所領域42の脈波の検出の良否の判定結果を集約する(S31)。例えば、変更部35は、判定対象のラインのm個の各局所領域42の脈波の検出の良否の判定結果の値を合計する。変更部35は、集約した判定結果から、判定対象のラインについて脈波の検出精度に変化があったか否かを判定する(S32)。例えば、変更部35は、判定結果の値の合計値を所定の閾値と比較し、外側のラインについては検出精度が良好に変化したか、内側のラインについては検出精度が不良に変化したかを判定する。
判定対象のラインについて脈波の検出精度に変化があった場合(S32肯定)、変更部35は、検出精度に変化があったラインの位置を横方向左側の変化情報として記憶する(S33)。一方、判定対象のラインについて脈波の検出精度に変化がない場合(S32否定)、処理は、後述するS34へ移行する。
変更部35は、判定対象のラインが横方向について、脈波の検出精度の判定を行う最後のラインであるか否かを判定する(S34)。最後のラインではない場合(S34否定)、変更部35は、判定対象のラインの位置を変更して(S35)、上述のS31の処理へ移行する。例えば、変更部35は、判定対象のラインの位置iを−2、−1、1、2・・・と順に変えて脈波の検出精度の判定を行う最後のラインまで行い、最後のラインとなるとS34が肯定判定となる。
変更部35は、上述のS33の処理により脈波の検出精度に変化したとして記憶されたラインがあるか否かを判定する(S36)。記憶されたラインがない場合(S36否定)、処理を終了して検出処理へ復帰する。
一方、記憶されたラインがある場合(S36肯定)、変更部35は、横方向の右側の境界部分の判定対象のラインの位置の初期値をセットする(S37)。例えば、変更部35は、横方向の左側の境界の外側のラインで検出精度に変化していた場合、検出精度に変化した最も外側のラインの位置iにマイナスを乗算した値(−i)を右側の境界部分の判定対象のラインの位置jとする。また、変更部35は、横方向の左側の境界の内側のラインで検出精度に変化していた場合、検出精度に変化した最も内側のラインの位置iにマイナスを乗算した値(−i)を右側の境界部分の判定対象のラインの位置jとする。本実施例では、計測領域43の内側にマイナスで位置を示す番号を付し、計測領域43の外側にプラスで位置を示す番号を付している。これにより、ラインの位置の値にマイナスを乗算することにより、移動の判定を行う際に、右側の境界部分の判定対象のラインの位置iに対応して検出精度の変化を判定すべき左側の境界部分の判定対象のラインの位置jを容易に求めることができる。
変更部35は、位置jの判定対象のラインのm個の各局所領域42の脈波の検出の良否の判定結果を集約する(S38)。例えば、変更部35は、判定対象のラインのm個の各局所領域42の脈波の検出の良否の判定結果の値を合計する。変更部35は、集約した判定結果から、判定対象のラインについて脈波の検出精度に変化があったか否かを判定する(S39)。例えば、変更部35は、判定結果の値の合計値を所定の閾値と比較し、外側のラインについては検出精度が良好に変化したか、内側のラインについては検出精度が不良に変化したかを判定する。
判定対象のラインについて脈波の検出精度に変化があった場合(S39肯定)、変更部35は、検出精度に変化があったラインの位置を横方向右側の変化情報として記憶する(S40)。一方、判定対象のラインについて脈波の検出精度に変化がない場合(S39否定)、処理は、後述するS41へ移行する。
変更部35は、判定対象のラインが横方向について、脈波の検出精度の判定を行う最後のラインであるか否かを判定する(S41)。最後のラインではない場合(S41否定)、変更部35は、判定対象のラインの位置を変更して(S42)、上述のS39の処理へ移行する。例えば、変更部35は、判定対象のラインの位置jがマイナスの場合、位置jを−2、−1と順に変えて位置jが−1となると最終のラインと判定する。また、変更部35は、判定対象のラインの位置jがプラスの場合、位置jを2、1と順に変えて位置jが1となると最終のラインと判定する。
一方、最後のラインの場合(S41肯定)、変更部35は、横方向左側の変化情報と横方向右側の変化情報から横方向の移動量を決定する(S43)。例えば、変更部35は、輪郭からの移動量が最も大きい横方向左側のラインの位置と、輪郭からの移動量が最も大きい横方向右側のラインの位置を比較し、絶対値の小さい方を移動量としてもよい。なお、移動量は、絶対値の大きい方としてもよく、また、ラインの位置の絶対値の平均値としてよい。また、例えば、変更部35は、横方向左側の検出精度に変化があったライン数と横方向右側の検出精度に変化があったライン数とを比較し、変化があったライン数の値の小さい方を移動量としてもよく、変化があったライン数の値の大きい方を移動量としてもよい。
変更部35は、計測領域43を横方向の検出精度が良好に変化した側へ移動量分移動(S44)させて処理を終了し、検出処理へ復帰する。
次に、本実施例に係る縦方向変更処理の流れについて説明する。図13は、縦方向変更処理の手順を示すフローチャートである。この縦方向変更処理は、例えば、上述の検出処理のS20から実行される。
ここで、本実施例では、画像40の計測領域43の縦方向の境界部分のラインについて次のような定義を行って移動方向の移動を判定している。図14は、縦方向変更処理を行う際のラインの定義の一例を示す図である。本実施例では、画像40の計測領域43の縦方向の上側の境界部分の計測領域43の内部となるラインに境界側から順にi=−1、−2、・・と番号を付し、計測領域43の外部となるラインに境界側から順にi=1、2、・・と番号を付している。
図13に示すように、変更部35は、縦方向の上側の境界部分の判定対象のラインの位置の初期値をセットする(S50)。ここで、本実施例では、縦方向の上側の計測領域43の内部となるラインから判定を行うものとしている。例えば、判定を行うライン数が2ラインの場合、変更部35は、判定対象のラインの位置iに−2をセットする。
変更部35は、位置iの判定対象のラインのn個の各局所領域42の脈波の検出の良否の判定結果を集約する(S51)。例えば、変更部35は、判定対象のラインのn個の各局所領域42の脈波の検出の良否の判定結果の値を合計する。変更部35は、集約した判定結果から、判定対象のラインについて脈波の検出精度に変化があったか否かを判定する(S52)。例えば、変更部35は、判定結果の値の合計値を所定の閾値と比較し、外側のラインについては検出精度が良好に変化したか、内側のラインについては検出精度が不良に変化したかを判定する。
判定対象のラインについて脈波の検出精度に変化があった場合(S52肯定)、変更部35は、検出精度に変化があったラインの位置を縦方向上側の変化情報として記憶する(S53)。一方、判定対象のラインについて脈波の検出精度に変化がない場合(S52否定)、処理は、後述するS54へ移行する。
変更部35は、判定対象のラインが縦方向について、脈波の検出精度の判定を行う最後のラインであるか否かを判定する(S54)。最後のラインではない場合(S54否定)、変更部35は、判定対象のラインの位置を変更して(S55)、上述のS51の処理へ移行する。例えば、変更部35は、判定対象のラインの位置iを−2、−1、1、2・・・と順に変えて脈波の検出精度の判定を行う最後のラインまで行い、最後のラインとなるとS54が肯定判定となる。
変更部35は、上述のS53の処理により脈波の検出精度に変化したとして記憶されたラインがあるか否かを判定する(S56)。記憶されたラインがない場合(S56否定)、処理を終了して検出処理へ復帰する。
一方、記憶されたラインがある場合(S56肯定)、変更部35は、縦方向の下側の境界部分の判定対象のラインの位置の初期値をセットする(S57)。例えば、変更部35は、縦方向の上側の境界の外側のラインで検出精度に変化していた場合、検出精度に変化した最も外側のラインの位置iにマイナスを乗算した値(−i)を下側の境界部分の判定対象のラインの位置jとする。また、変更部35は、縦方向の上側の境界の内側のラインで検出精度に変化していた場合、検出精度に変化した最も内側のラインの位置iにマイナスを乗算した値(−i)を下側の境界部分の判定対象のラインの位置jとする。
変更部35は、位置jの判定対象のラインのn個の各局所領域42の脈波の検出の良否の判定結果を集約する(S58)。例えば、変更部35は、判定対象のラインのn個の各局所領域42の脈波の検出の良否の判定結果の値を合計する。変更部35は、集約した判定結果から、判定対象のラインについて脈波の検出精度に変化があったか否かを判定する(S59)。例えば、変更部35は、判定結果の値の合計値を所定の閾値と比較し、外側のラインについては検出精度が良好に変化したか、内側のラインについては検出精度が不良に変化したかを判定する。
判定対象のラインについて脈波の検出精度に変化があった場合(S59肯定)、変更部35は、検出精度に変化があったラインの位置を縦方向下側の変化情報として記憶する(S60)。一方、判定対象のラインについて脈波の検出精度に変化がない場合(S59否定)、処理は、後述するS61へ移行する。
変更部35は、判定対象のラインが縦方向について、脈波の検出精度の判定を行う最後のラインであるか否かを判定する(S61)。最後のラインではない場合(S61否定)、変更部35は、判定対象のラインの位置を変更して(S62)、上述のS59の処理へ移行する。例えば、変更部35は、判定対象のラインの位置jがマイナスの場合、位置jを−2、−1と順に変えて位置jが−1となると最終のラインと判定する。また、変更部35は、判定対象のラインの位置jがプラスの場合、位置jを2、1と順に変えて位置jが1となると最終のラインと判定する。
一方、最後のラインの場合(S61肯定)、変更部35は、縦方向上側の変化情報と縦方向下側の変化情報から縦方向の移動量を決定する(S63)。例えば、変更部35は、輪郭からの移動量が最も大きい縦方向上側のラインの位置と、輪郭からの移動量が最も大きい縦方向下側のラインの位置を比較し、絶対値の小さい方を移動量としてもよい。なお、移動量は、絶対値の大きい方としてもよく、また、ラインの位置の絶対値の平均値としてよい。また、例えば、変更部35は、縦方向上側の検出精度に変化があったライン数と縦方向下側の検出精度に変化があったライン数とを比較し、変化があったライン数の値の小さい方を移動量としてもよく、変化があったライン数の値の大きい方を移動量としてもよい。
変更部35は、計測領域43を縦方向の検出精度が良好に変化した側へ移動量分移動(S64)させて処理を終了し、検出処理へ復帰する。
[実施例1の効果]
上述してきたように、本実施例に係る脈波検出装置10は、カメラ20により被験者が連続的に撮影された画像のうち何れかの画像から被験者の顔領域41を検出する。脈波検出装置10は、顔領域41が検出された画像以降の画像の顔領域41に対応する領域を複数の局所領域42に分割する。脈波検出装置10は、顔領域41が検出された画像の各局所領域42から脈波を計測する。脈波検出装置10は、各局所領域42の脈波の計測結果に基づき、複数の局所領域42から脈波の計測領域43を決定する。脈波検出装置10は、決定された、画像における計測領域43から脈波を計測する。脈波検出装置10は、計測領域43の境界部分の局所領域42から脈波を計測する。脈波検出装置10は、計測される境界部分の局所領域42の脈波の計測結果に基づき、計測領域43を変更する。これにより、脈波検出装置10は、撮影される各画像に顔検出を行うことなく、顔の位置の変化を検出できる。ここで、顔検出の処理は、テンプレートマッチング等の画像処理を行うため、演算量が多く、フレーム毎に、顔検出の処理を行った場合、顔検出による計算負荷が大きくなってしまう。一方、脈波の計測の処理は、フィルタ処理であり、顔検出に比べて計算負荷が小さく、同じ処理を複数並列させた場合でも顔検出に比べて計算負荷が小さい。よって、本実施例に係る脈波検出装置10は、脈波の計測の処理を用いて顔の位置の変化を検出することにより、計算負荷を抑えて脈波を検出できる。
また、本実施例に係る脈波検出装置10は、計測領域43の境界の内側および外側の局所領域42の脈波を計測する。脈波検出装置10は、所定方向に対する計測領域43の一端側境界の外側の局所領域42の脈波の検出精度が、所定方向に対する計測領域43の他端側境界の内側の局所領域42の脈波の検出精度よりも高い場合、局所領域42を所定方向の一端側へ変更する。これにより、脈波検出装置10は、画像内で被験者の顔が移動した場合でも、顔が移動に合わせて計測領域43を移動させることができる。
また、本実施例に係る脈波検出装置10は、境界部分の所定以上の局所領域42において脈波が計測されない場合、計測領域43から脈波の計測を中断する。これにより、脈波検出装置10は、被験者が移動するなどによって計測領域43にノイズが多い状態で脈波の計測を中断できる。