【実施例1】
【0012】
[脈波検出装置の構成]
まず、本実施例に係る脈波検出装置の機能的構成について説明する。
図1は、実施例1に係る脈波検出装置の機能的構成を示すブロック図である。
図1に示す脈波検出装置10は、太陽光や室内光などの一般の環境光の下で人体に計測器具を接触させずに、生体が撮影された画像を用いて人体の脈波、すなわち心臓の拍動に伴う血液の体積の変動を検出する脈波検出処理を実行するものである。
【0013】
かかる脈波検出装置10は、一態様として、上記の脈波検出処理がパッケージソフトウェアやオンラインソフトウェアとして提供される脈波検出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末のみならず、タブレット端末やスレート端末などを含む携帯端末装置に上記の脈波検出プログラムをインストールさせる。これによって、携帯端末装置を脈波検出装置10として機能させることができる。なお、ここでは、一例として、脈波検出装置10が携帯端末装置として実装される場合を例示して以下の説明を行うが、パーソナルコンピュータを始めとする据置き型の端末装置に脈波検出プログラムをインストールさせることもできる。
【0014】
図1に示すように、脈波検出装置10は、カメラ11aと、ジャイロセンサ11bと、眼検出部12と、ROI(Region of Interest)設定部13と、基準波形生成部14と、基準波形記憶部14aとを有する。さらに、脈波検出装置10は、推定部15と、ROI走査部16と、入力波形生成部17と、類似度算出部18と、検出部19とを有する。
【0015】
この脈波検出装置10は、
図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。例えば、脈波検出装置10が据置き端末として実装される場合には、キーボード、マウスやディスプレイなどの入出力デバイスをさらに有することとしてもよい。また、脈波検出装置10がタブレット端末やスレート端末として実装される場合には、加速度センサをさらに有することとしてもよい。また、脈波検出装置10が移動体通信端末として実装される場合には、アンテナ、移動体通信網に接続する無線通信部、GPS(Global Positioning System)受信機などの機能部をさらに有していてもかまわない。
【0016】
カメラ11aは、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を搭載する撮像装置である。
【0017】
一実施形態として、カメラ11aには、R(red)、G(green)、B(blue)など3種以上の受光素子を搭載することができる。かかるカメラ11aの実装例としては、デジタルカメラやWebカメラを外部端子を介して接続することとしてもよい。また、他の実装例としては、インカメラやアウトカメラのように、カメラが出荷時から搭載されている場合にはそのカメラを流用できる。なお、ここでは、脈波検出装置10がカメラ11aを搭載する場合を例示したが、ネットワークまたは記憶デバイスを経由して画像を取得できる場合には、必ずしも脈波検出装置10がカメラ11aを有さずともよい。
【0018】
ここで、以下では、生体の一例として、顔が撮影されるとともに、カメラ11aの一実装例として、インカメラが用いられる場合を想定する。このようにカメラ11aを用いて顔を撮影させる場合には、図示しない表示デバイス、例えばタッチパネル等による表示や図示しない音声出力デバイスからの音声出力などを通じて、脈波を検出し易い画像がカメラ11aによって撮像されるように画像の撮影操作を案内することができる。例えば、上記の脈波検出プログラムは、カメラ11aを起動し、カメラ11aにカメラ11aの撮影範囲に収容された被写体の撮影を開始させる。このとき、脈波検出プログラムは、カメラ11aが撮像する画像をディスプレイに表示しつつ、脈波検出装置10の利用者の鼻を映す目標位置を照準として表示させることもできる。これによって、利用者の眼、耳、鼻や口などの顔パーツの中でも利用者の鼻が撮影範囲の中心部分に収まった画像が撮影できるようにする。そして、カメラ11aは、顔が撮像された画像を後段の機能部へ出力する。
【0019】
また、上記の脈波検出プログラムは、上記のガイダンスを必ずしも実行せずともよく、他のプログラム、例えばオペレーティングシステムやアプリケーションプログラムによる表示のバックグラウンドで利用者の顔を撮影させることもできる。例えば、ディスプレイに表示されたテキスト、文書、静止画や動画などを閲覧する利用者の顔を撮影することもできる。この場合には、利用者に撮影を意識させずに、日常の生活の中で画像を採取することができる。
【0020】
ジャイロセンサ11bは、角速度を検出するセンサであり、ジャイロあるいは角速度センサとも呼ばれることがある。
【0021】
一実施形態として、ジャイロセンサ11bには、ピッチ(X軸)、ロール(Y軸)、ヨー(Z軸)の3軸のジャイロセンサを採用することができる。
図2は、ピッチ、ロール及びヨーの3軸を示す図である。
図2に示すように、ジャイロセンサ11bは、スクリーンの左右を軸とする回転の角速度、スクリーンの前後を軸とする回転の角速度およびスクリーンの上下を軸とする回転の角速度を検出する。一例として、ジャイロセンサ11bが測定する角速度の単位は「deg/s」であることとし、角速度の正負の符号は右手系に従うこととする。なお、ここでは、3軸のジャイロセンサを採用する場合を例示したが、1軸または2軸のジャイロセンサを採用することとしてもかまわない。
【0022】
ここで、
図1に示すカメラ11a及びジャイロセンサ11b以外の機能部は、基準脈波波形に関する処理を実行する第1の処理系と、基準脈波波形と比較する入力脈波波形に関する処理を実行する第2の処理系とに大別できる。
【0023】
上記の「基準脈波波形」とは、入力脈波波形のレファレンスとする脈波波形を指す。例えば、基準脈波波形は、脈波検出装置10が安定状態である場合にカメラ11aによって撮像された一連の画像から生成される。一方、上記の「入力脈波波形」とは、基準脈波波形と比較される脈波波形を指す。例えば、入力脈波波形は、カメラ11aから入力される一連の画像から生成される。このとき、一連の画像からは、複数の入力脈波波形が生成される。詳細は後述するが、各々の入力脈波波形の間では、脈波波形の生成に用いるROIの位置が一連の画像に含まれる少なくとも1つの画像で互いに異なる。
【0024】
以下、第1の処理系に含まれる各機能部を説明してから第2の処理系に含まれる各機能部についての説明を行うこととする。なお、
図1には、第1の処理系及び第2の処理系の両方が1つの装置に実装される場合を例示したが、いずれか一方の処理系だけを実装することとしてもかまわない。
【0025】
第1の処理系には、眼検出部12、ROI設定部13、基準波形生成部14及び基準波形記憶部14aなどが含まれる。
【0026】
眼検出部12は、画像から眼を検出する処理部である。
【0027】
一実施形態として、眼検出部12は、カメラ11aによって撮像された画像に対し、テンプレートマッチング等の画像処理を実行することによって利用者の眼、例えば瞳の中心の座標を検出する。このとき、眼検出部12は、画像に顔検出を実行することによって処理の実行範囲を顔領域に絞り込んでから眼検出を実行することもできる。なお、ここでは、一例として、眼を検出する場合を例示するが、眼以外の顔パーツ、例えば眉、鼻や口などを検出することとしてもよいし、顔領域を検出することとしてもかまわない。
【0028】
ROI設定部13は、ROI、いわゆる関心領域を設定する処理部である。
【0029】
一実施形態として、ROI設定部13は、ジャイロセンサ11bによって検出されるセンサ値が閾値以下であるか否かを判定する。このとき、ROI設定部13は、ピッチ、ロール及びヨーの3軸全てのセンサ値を判定に用いることもできるし、一部の軸のセンサ値に絞って判定に用いることもできる。複数の軸の各センサ値を判定に用いる場合には、全てのセンサ値が閾値以下であるかをAND条件で判定するのが好ましい。また、上記の判定に用いる閾値の一例としては、スクリーンにタッチ操作がなされていないとみなすことができる程度の値が設定される。
【0030】
そして、センサ値が閾値以下である場合、ROI設定部13は、閾値以下のセンサ値が検出される期間が所定期間にわたって継続したか否かをさらに判定する。以下では、閾値以下のセンサ値が検出される期間のことを「安定期間」と記載する場合がある。また、上記の所定期間の一例としては、一拍分の周期を包含できる程度の長さが設定される。一般に、脈拍数は、遅くとも40bpm(beat per minute)程度である。そして、40bpmの1周期は、1.5秒間に相当する。このことから、一例として、所定期間を1.5秒に設定できる。これによって、安定期間が1.5秒にわたって継続した場合には、安定期間の間に撮像された一連の画像の中に利用者の一拍分の輝度変化が収まっていると見做すことができる。
【0031】
ここで、安定期間が所定期間にわたって継続した場合、ROI設定部13は、安定期間の間に撮像された一連の画像に対し、眼検出を実行するように眼検出部12へ指示する。この結果、一連の画像に眼検出が実行されると、ROI設定部13は、一連の画像の間で左右の瞳孔の代表位置を算出する。例えば、ROI設定部13は、一連の画像の間で瞳孔の座標を左右の眼ごとに平均することによって得た瞳孔の平均座標を各画像の瞳孔を代表する位置として求めることができる。かかる平均値以外にも、最頻値の座標を代表位置としたり、中央値の座標を代表位置として算出することもできる。そして、ROI設定部13は、瞳孔の代表位置から一連の画像に適用するROIを設定する。例えば、ROI設定部13は、左右の瞳孔の間隔Lを算出する。その上で、ROI設定部13は、一例として、両眼の中心位置を重心とし、瞳孔の間隔Lを高さ及び幅とする矩形状の領域をROIとして設定する。
【0032】
図3は、時間及びセンサ値の関係の一例を示す図である。
図4は、ROIの一例を示す図である。
図3に示すグラフの縦軸は、角速度の振幅を指し、グラフの横軸は、時刻を指す。
図3には、ピッチ角における振幅の時間変化を実線で示すとともにロール角における振幅の時間変化を破線で示し、判定に用いる閾値を一点鎖線で示す。
【0033】
図3に示す例で言えば、時刻t1よりも前の区間では、一時的にピッチ角及びロール角の角速度が閾値以下になったとしても、所定期間が経過するまでの間にピッチ角及びロール角ともに閾値を超える角速度が検出される。この場合、利用者がスクリーン上でタッチ操作を行っていたり、利用者がスクリーンを見ずに脈波検出装置10を動かしていたりする可能性が高い。この結果、画像にそもそも顔が映っていなかったり、顔が映っていても揺れが原因となって顔や眼の検出に失敗する可能性も高まる。よって、時刻t1よりも前の区間には、ROIの設定は実行されず、基準脈波波形の生成も実行されない。
【0034】
一方、時刻t1の時点でピッチ角及びロール角の角速度が閾値以下になってからは、時刻t1から所定期間、すなわち1.5秒にわたって両軸の角速度は閾値を超えていない。このため、時刻t1から1.5秒が経過して時刻t2になった時点で、時刻t1から時刻t2までの安定期間の間に撮像された一連の画像に対し、眼検出が実行される。これを受けて、一連の画像の間で左右の瞳孔の代表位置が算出される。その後、
図4に示すように、画像20における右の瞳孔の代表位置IR及び左の瞳孔の代表位置ILの座標から瞳孔の間隔Lが算出されるとともに、両眼の中心位置ICが算出される。その上で、両眼の中心位置ICを重心とし、瞳孔の間隔Lを高さ及び幅とする矩形状の領域、
図4に示された太枠の矩形がROIとして設定される。かかるROIの設定によって、体動が含まれやすい口元などをROIから除外できる結果、一連の画像に含まれる各ROIから良好な基準脈波波形を得ることを期待できる。
【0035】
基準波形生成部14は、ROI設定部13によって設定されたROIの輝度変化から基準脈波波形を生成する処理部である。
【0036】
一実施形態として、基準波形生成部14は、一連の画像に含まれる各画像ごとに、当該画像のうちROIに含まれる各画素が持つ画素値に所定の統計処理を実行する。例えば、基準波形生成部14は、ROI内の各画素のR成分の輝度値を平均する。この他、平均以外にも、中央値や最頻値を計算することとしてもよく、また、平均以外にも任意の平均処理、例えば加重平均や移動平均などを実行することもできる。また、R成分以外のG成分またはB成分の輝度値を用いることとしてもよいし、RGBの各波長成分の輝度値を用いることとしてもかまわない。これによって、画像ごとにROIを代表するR成分の輝度値が得られる。以下では、ROIを代表するR成分の輝度値のことを「R成分の代表輝度値」と記載する場合がある。このとき、R成分の代表輝度値の時系列データを基準脈波波形とすることもできるが、カメラ11aのフレーム周波数が低い場合には、サンプリング点が少なく脈波波形の形状が再現しきれないケースも考えられる。このため、基準波形生成部14は、一例として、R成分の代表輝度値の時系列データにスプライン補間等を実行することによってリサンプリングすることもできる。かかるリサンプリングによって、基準脈波波形が生成されることになる。
【0037】
図5は、基準脈波波形の一例を示す図である。
図5に示すグラフの縦軸は、振幅を指し、グラフの横軸は、時刻を指す。
図5に示すグラフ上にプロットされた点は、一連の画像から得られたR成分の代表輝度値を指す。
図5に示すように、カメラ11aのフレーム周波数にしたがって得られたR成分の代表輝度値は、一例として、3次のスプライン補間によって所定のサンプリング周波数を持つ正弦波の信号波形として補間される。このようにリサンプリングされた基準脈波信号が出力された後、基準脈波波形が基準波形記憶部14aに記憶される。例えば、スプライン補間によってリサンプリングされた補間時刻ごとにスプライン補間によって得られた補間後のR成分の代表輝度値が対応付けて基準波形記憶部14aに登録される。
【0038】
続いて、第2の処理系について説明する。第2の処理系には、推定部15、ROI走査部16、入力波形生成部17、類似度算出部18及び検出部19などが含まれる。
【0039】
推定部15は、ジャイロセンサ11bを用いて、顔領域を推定する処理部である。
【0040】
一実施形態として、推定部15は、カメラ11aによって所定期間、例えば1.5秒間にわたって画像が撮像される度に、一連の画像の各フレーム間で移動する移動後の顔領域を推定する。例えば、推定部15は、ジャイロセンサ11bによって出力されるピッチ角、ロール角及びヨー角の各センサ値の正負から顔領域の移動方向を推定するとともに、各センサ値の大きさから顔領域の移動量を推定する。このとき、推定部15は、基準脈波波形の生成時に検出された顔領域の位置を基準とし、そこからの移動方向および移動量を推定することができる。
【0041】
図6は、顔領域の推定方法の一例を示す図である。
図6に示すように、利用者がスクリーンに表示された画像を閲覧する場合には、通常、顔とスクリーンの面を正対させる。例えば、基準脈波波形が生成される場合、すなわち脈波検出装置10が安定状態にある場合には、上記の通常の姿勢がなされていると推定できる。これを基準として、ピッチ角及びロール角の各センサ値の正負から顔領域の移動方向が推定される。なお、
図6には、顔領域の移動方向の推定にピッチ角及びロール角の各センサ値を用いる場合を例示するが、ヨー角のセンサ値をさらに用いることもできる。
【0042】
例えば、ピッチ角の角速度が正の値を計測する場合、すなわち図示の+p角の場合には、利用者が正対時よりもスクリーンを奥方向に倒した状態で閲覧していることがわかる。この場合、利用者の顔は、正対時にインカメラによって撮像される場合の顔の位置よりも下方向に顔が映ることが推定できる。また、ピッチ角の角速度が負の値を計測する場合、すなわち図示の−p角の場合には、利用者が正対時よりもスクリーンを手前方向に傾けた状態で閲覧していることがわかる。この場合、利用者の顔は、正対時にインカメラによって撮像される場合の顔の位置よりも上方向に顔が映ることが推定できる。
【0043】
また、ロール角の角速度が正の値を計測する場合、すなわち図示の+r角の場合には、利用者が正対時よりもスクリーンを右方向に傾けた状態で閲覧していることがわかる。この場合、利用者の顔は、正対時にインカメラによって撮像される場合の顔の位置よりも右方向に顔が映ることが推定できる。また、ロール角の角速度が負の値を計測する場合、すなわち図示の−r角の場合には、利用者が正対時よりもスクリーンを左方向に傾けた状態で閲覧していることがわかる。この場合、利用者の顔は、正対時にインカメラによって撮像される場合の顔の位置よりも左方向に顔が映ることが推定できる。
【0044】
これらの対応関係から、ピッチ角及びロール角の各センサ値の正負から顔領域の移動方向を推定し、各センサ値の多寡によって移動量を推定できる。
【0045】
ROI走査部16は、ROIを走査する処理部である。
【0046】
一実施形態として、ROI走査部16は、推定部15によって一連の画像から推定された顔領域ごとに当該顔領域内でROIを移動させる。このとき、ROI走査部16は、ROIの一例として、ROI設定部13によって設定されたROI、すなわち瞳孔の間隔Lを高さ及び幅とする矩形状の領域を用い、ラスタースキャン等の手法にしたがって顔領域内でROIを移動させることができる。
【0047】
入力波形生成部17は、入力脈波波形を生成する処理部である。
【0048】
一実施形態として、入力波形生成部17は、一連の画像の間でROI走査部16によって顔領域ごとに走査されるROIをカップリングする。例えば、一連の画像の数をnとし、一連の画像に含まれる1つの画像の顔領域で走査されるROIの数をSとしたとき、全ての組合せにわたってROIをカップリングする場合には、S
n通りの組合せが得られることになる。このように、全ての組合せにわたってROIをカップリングすることもできるが、一連の画像に含まれる各顔領域の間で同一の相対位置を持つROI同士をカップリングすることによってカップリング数をS通りまで低減することもできる。
【0049】
図7は、カップリングの一例を示す図である。
図7には、一連の画像に含まれる画像のうち3つが抜粋して図示されている。
図7に示す符号30、符号31及び符号32は、いずれも一連の画像に含まれる画像である。また、
図7に示す画像30〜32のうち、画像30は、時刻tに撮像されたものであり、画像31は、時刻t+1に撮像されたものであり、また、画像32は、時刻t+2に撮像されたものである。また、
図7に示す符号30A、符号31A及び符号32Aは、いずれも推定部15によって推定された顔領域の推定結果を指す。さらに、
図7に示す塗りつぶしは、顔領域30A〜32Aの間で同一の相対位置を持つROIを指す。
図7に示すように、顔領域30A〜32Aで走査されるROIをカップリングする場合には、顔領域30A〜32Aの間で同一の相対位置を持つROI同士をカップリングすることができる。これによって、全ての組合せにわたってROIをカップリングする場合よりも以降の処理で演算量を低減できる。
【0050】
その後、入力波形生成部17は、ROIがカップリングされる度に、当該カップリングの組合せに含まれるROIごとに、当該ROIに含まれる各画素が持つ画素値に所定の統計処理を実行する。例えば、入力波形生成部17は、ROI内の各画素のR成分の輝度値を平均する。この他、平均以外にも、中央値や最頻値を計算することとしてもよく、また、平均以外にも任意の平均処理、例えば加重平均や移動平均などを実行することもできる。また、R成分以外のG成分またはB成分の輝度値を用いることとしてもよいし、RGBの各波長成分の輝度値を用いることとしてもかまわない。これによって、画像ごとに「R成分の代表輝度値」が得られる。このとき、R成分の代表輝度値の時系列データを入力脈波波形とすることもできるが、上記の基準脈波波形と同様に、R成分の代表輝度値の時系列データにスプライン補間等を実行することによってリサンプリングすることもできる。かかるリサンプリングによって、入力脈波波形が生成されることになる。
【0051】
このように、入力波形生成部17は、一連の画像に含まれる各顔領域の間で同一の相対位置を持つROI同士をカップリングすることによってS通りの入力脈波波形を生成する。
【0052】
類似度算出部18は、基準脈波波形と入力脈波波形の類似度を算出する処理部である。
【0053】
一実施形態として、類似度算出部18は、上記の類似度の一例として、基準脈波波形と入力脈波波形の間で相関係数を算出する。かかる相関係数は、一例として、下記の式(1)にしたがって算出することができる。下記の式(1)における「x」は、入力脈波波形のR成分の代表輝度値を指し、「y」は、基準脈波波形のR成分の代表輝度値を指す。また、下記の式(1)における「N」は、入力脈波波形及び基準脈波波形のデータ数、すなわちサンプリング数を指す。また、下記の式(1)における「x」及び「y」に付された上付きのバーは、その平均値を指す。このように、類似度算出部18は、基準脈波波形とS個の入力脈波波形との間で各々の類似度を算出する。これによって、S個の入力脈波波形ごとに類似度が得られることになる。
【0054】
【数1】
【0055】
検出部19は、入力脈波波形から脈波を検出する処理部である。
【0056】
一実施形態として、検出部19は、入力波形生成部17によって生成された入力脈波波形のうち類似度算出部18によって算出された類似度が最高である入力脈波波形を選択する。その上で、検出部19は、脈波の検出結果の一態様として、先に選択を行った入力脈波波形をそのまま出力することもできるし、入力脈波波形から求めた脈拍数を出力することもできる。例えば、脈拍数を計算する方法の一例として、入力脈波波形の振幅値が出力される度に、入力脈波波形のピーク検出、例えば微分波形のゼロクロス点の検出などを実行する。このとき、検出部19は、ピーク検出によって入力脈波波形のピークが検出された場合に、当該ピーク、すなわち極大点が検出されたサンプリング時間を図示しない内部メモリに保存する。その上で、検出部19は、ピークが出現した時点で、所定のパラメータn個前の極大点との時刻差を求め、それをnで除算することによって脈拍数を検出することができる。なお、ここでは、ピーク間隔によって脈拍数を検出する場合を例示したが、入力脈波波形を周波数成分へ変換することによって脈波に対応する周波数帯、例えば40bpm以上180bpm以下の周波数帯でピークをとる周波数から脈拍数を算出することもできる。
【0057】
このようにして得られる脈拍数や脈波波形は、脈波検出装置10が有する図示しない表示デバイスを始め、任意の出力先へ出力することができる。例えば、脈拍数や脈拍周期のゆらぎから自律神経の働きを診断したり、脈波波形から心疾患等を診断したりする診断プログラムが脈波検出装置10にインストールされている場合には、診断プログラムを出力先とすることができる。また、診断プログラムをWebサービスとして提供するサーバ装置などを出力先とすることもできる。さらに、脈波検出装置10を利用する利用者の関係者、例えば介護士や医者などが使用する端末装置を出力先とすることもできる。これによって、院外、例えば在宅や在席のモニタリングサービスも可能になる。なお、診断プログラムの測定結果や診断結果も、脈波検出装置10を始め、関係者の端末装置に表示させることができるのも言うまでもない。
【0058】
なお、上記の眼検出部12、ROI設定部13、基準波形生成部14、推定部15、ROI走査部16、入力波形生成部17、類似度算出部18及び検出部19は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などに脈波検出プログラムを実行させることによって実現できる。また、上記の各機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0059】
また、上記の基準波形記憶部14aや内部メモリには、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子の一例としては、フラッシュメモリ(Flash Memory)、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などが挙げられる。また、記憶装置の一例としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【0060】
[具体例]
続いて、
図8〜
図14を用いて、脈波検出の具体例を説明する。
図8、
図9及び
図11は、データ管理表の一例を示す図である。
図10は、基準脈波波形の一例を示す図である。
図12は、補間前の入力脈波波形の一例を示す図である。
図13は、補間後の入力脈波波形の一例を示す図である。
図14は、脈拍数管理表の一例を示す図である。これら
図8〜
図14の例では、説明の便宜上、カメラ11aのフレームレートを500msとし、所定期間を1.5秒とし、基準脈波波形の生成および脈拍数の検出を実行する場合を例示するが、各パラメータは任意に変更できる。
【0061】
脈波検出の処理内容を説明する前に、データ管理表に含まれる項目について説明する。
図8、
図9及び
図11に示すデータ管理表には、時刻、画像ID、ジャイロセンサ値、状態変化フラグ、瞳孔間隔、ROI、ROI内部の平均R値及び顔領域などの項目が対応付けられたテーブルが採用される。なお、ここでは、1人の利用者のデータ管理表を例示するが、脈波検出装置10の利用者ごとにデータ管理表を作成することもできる。
【0062】
上記の「時刻」には、一例として、「hh:mm:ss」を採用できるが、日次管理を行う場合には、年月日をさらに追加することもできる。また、時刻は、脈波検出装置10が計測するローカルな経過時間であってもかまわない。かかる「時刻」の間隔は、カメラ11aのフレームレートに従うこととする。また、「画像ID」は、画像を識別する識別情報を指す。ここでは、カメラ11aによって画像が撮像される度に、シーケンス番号、いわゆる通し番号が採番される場合を想定するが、各画像を識別することができればよく、任意のIDの採番形態を採用できる。
【0063】
また、「ジャイロセンサ値」とは、ジャイロセンサ11bによって測定されたセンサ値を指し、例えば、ピッチ角及びロール角の角速度(deg)が「(rol,pit)」と記述される。また、「状態変化フラグ」とは、脈波検出装置10の状態変化の有無を表すフラグである。ここでは、一例として、ジャイロセンサ11bのセンサ値が所定の閾値、例えば(10,10)未満である場合には「1」が設定される一方で、(10,10)以上である場合には「0」が設定されることとする。
【0064】
また、「瞳孔間隔」とは、カメラ11aによって撮像された画像から検出された左右の瞳孔の間隔を指し、例えば、ピクセル数によって表される。また、「ROI」とは、画像のうち脈波検出に用いる関心領域を指し、上述のように、両眼の中心位置を重心とし、瞳孔の間隔Lを高さ及び幅とする矩形状の領域が設定される。ここでは、一例として、ROIの左上の頂点が持つ座標、ROIの高さ及びROIの幅によってROIが規定される場合を例示する。また、「ROI内部の平均R値」とは、ROI内部にある各画素のR成分の代表輝度値を指す。また、「顔領域」とは、画像のうち利用者の顔と推定された領域である。
【0065】
このようなデータ管理表が準備された状況の下、カメラ11aによって画像が撮像される度に、当該画像が撮像された時刻、当該画像に採番された画像IDおよびジャイロセンサ値がデータ管理表に記録される。すると、各時刻のジャイロセンサ値と閾値(10,10)とを比較することによって状態変化フラグが設定される。
図8に示す例で言えば、ロール角またはピッチ角のいずれかの角速度の絶対値が10deg/sec以上を計測する画像ID「2」、「6」及び「8」のレコードには、状態変化フラグに「0」が設定される一方で、それ以外の画像IDのレコードには、状態変化フラグに「1」が設定される。なお、瞳孔間隔には、ROI設定部13よって各画像から算出された瞳孔の間隔がそのまま保存される。
【0066】
そして、状態変化フラグ「1」が3つ連続する場合、すなわち安定期間が1.5秒にわたって継続した場合には、状態変化フラグ「1」が連続する3つのレコードを対象に、基準脈波波形の生成が開始される。
図8に示す例で言えば、画像ID「3」〜「5」の一連の画像の間で瞳孔の座標を左右の眼ごとに平均することによって得た瞳孔の平均座標から瞳孔の間隔Lを求め、両眼の中心座標を基準にROIが設定される。すなわち、ROIの左上の頂点が持つ座標(50,200)、ROIの高さ「100」及びROIの幅「100」がROIとして設定される。その後、画像ID「3」〜「5」の一連の画像の各々に含まれるROIごとにR成分の代表輝度値「200」、「210」、「205」が記録されるとともに、眼検出部12によって各画像から検出された顔領域の左上の頂点が持つ座標と、顔領域の高さ及び幅とが記録される。
【0067】
続いて、画像ID「3」〜「5」におけるR成分の代表輝度値の時系列データに対し、スプライン補間が実行される。これによって、サンプリング間隔が0.02秒であるR成分の代表輝度値の時系列データにリサンプリングされる。このようにしてリサンプリングされたR成分の代表輝度値の時系列データが
図10に示す基準脈波波形として記録される。
【0068】
そして、
図10に示すように、画像ID「3」〜「5」の区間、すなわちαの区間で基準脈波波形が生成された後に、画像ID「6」以降の区間、すなわちβの区間で脈波を検出する処理が開始される。かかるβの区間では、αの区間、すなわち基準脈波波形の生成が実行される画像ID「3」〜「5」の区間で得られた瞳孔間隔からROIの高さおよび幅として記入される。
【0069】
続いて、
図11に示すように、βの区間、例えば画像ID「6」〜「8」の区間でジャイロセンサ値から顔領域が推定される。すなわち、画像ID「6」〜「8」のジャイロセンサ値の正負から移動方向を推定するとともに、ジャイロセンサ値の多寡によって前フレームからの移動量を推定する。例えば、画像ID「6」の例で言えば、ロール角の角速度の符号が「正」である一方で、ピッチ角の角速度の符号が「負」であるので、画像ID「6」における顔領域は、画像ID「5」における顔領域よりも右上の方向に移動していると推定できる。さらに、例えば、ジャイロセンサ値に10の変化があれば、顔領域を50画素移動させる(ジャイロセンサ値:画素=1:5)。この場合、画像ID「5」における顔領域の左上頂点の座標(160,280)に対し、xの値に100(=20×5)を加える一方でyの値から−100(−20×5)減算することによって画像ID「6」における顔領域の左上頂点の座標(260,180)が算出される。また、顔移動の高さ及び幅については、αの区間、すなわち脈波検出装置10が安定状態にある区間に取得した平均値が用いられる。このようにして推定された画像ID「6」〜「8」の区間における顔領域がデータ管理表に記録される。
【0070】
続いて、画像ID「6」〜「8」の区間における顔領域ごとに当該顔領域内でROIが移動される。例えば、2画素ずつROIを走査し、当該ROIからR成分の代表輝度値が算出される。その上で、画像ID「6」〜「8」の区間に含まれる各顔領域の間で同一の相対位置を持つROI同士をカップリングする。これによって、
図12に示すように、S個のR成分の代表輝度値の時系列データが得られる。これが補間前の入力脈波波形として記録される。その後、補間前の入力脈波波形にスプライン補間が実行される。これによって、
図13に示すように、サンプリング間隔が0.02秒へ補間された補間後の入力脈波波形が記録される。そして、補間後の入力脈波波形、すなわち
図13に示す脈波ID「01」〜「0S」の全ての脈波IDの入力脈波波形ごとに脈拍数の算出が実行されると、
図14に示すように、脈波ID「01」〜「0S」ごとの脈拍数が基準脈波波形との間で算出される相関係数とともに脈拍数管理表に記録される。その後、
図14に示す脈拍数管理表に記録された脈拍数のうち相関係数が最も高い脈波IDを持つ脈拍数を選択する。
【0071】
このように、複数の入力脈波波形から最も高い相関係数の入力脈波波形を選択することによってROIの位置補正を実現できる。このため、画像の移動および眼の誤検出に関わらず、複数の入力脈波波形を用いてROIの位置補正を実現できるので、時間的に連続する顔画像から肌領域を安定して取得でき、入力脈波波形へ変換する時にS/N比が改善される。したがって、脈波の検出精度を向上させることができる。さらに、脈波検出装置10の操作時による画像の移動および眼の誤検出に関わらず、顔の移動先を推定し、推定した顔の移動先に絞ってROIを走査するので、探索時間も短縮できる。
【0072】
[処理の流れ]
続いて、本実施例に係る脈波検出装置の処理の流れについて説明する。なお、ここでは、脈波検出装置10によって実行される(1)基準波形生成処理を説明してから(2)脈波検出処理について説明することとする。
【0073】
(1)基準波形生成処理
図15は、実施例1に係る基準脈波生成処理の手順を示すフローチャートである。この処理は、脈波検出プログラムがアクティブな状態にある場合に実行することもできるし、脈波検出プログラムがバックグラウンドで動作している場合にも実行することができる。なお、本処理は、後述の脈波検出処理と並行して実行することも可能である。
【0074】
図15に示すように、カメラ11aによって撮像された画像が取得されるとともに、当該画像が撮像された時にジャイロセンサ11bによって測定された角速度が取得される(ステップS101及びステップS102)。
【0075】
すると、ROI設定部13は、ステップS102で取得されたセンサ値が閾値以下であるか否かを判定する(ステップS103)。そして、センサ値が閾値以下である場合(ステップS103Yes)、ROI設定部13は、閾値以下のセンサ値が検出される期間、すなわち安定期間が所定期間にわたって継続したか否かをさらに判定する(ステップS104)。
【0076】
ここで、安定期間が所定期間にわたって継続した場合(ステップS104Yes)、眼検出部12は、安定期間の間に撮像された一連の画像に対し、眼検出を実行する(ステップS105)。その後、ROI設定部13は、ステップS105で画像ごとに得られた瞳孔の座標を用いて一連の画像の間で瞳孔の代表位置を左右の眼ごとに算出し、左右の眼の瞳孔の代表位置から一連の画像に適用するROIを設定する(ステップS106)。
【0077】
その後、基準波形生成部14は、一連の画像に含まれる各画像ごとに、当該画像に含まれるROI内部でR成分の代表輝度値を算出することによって基準脈波波形を生成し(ステップS107)、当該基準脈波波形を基準波形記憶部14aへ登録し、処理を終了する。
【0078】
(2)脈波検出処理
図16は、実施例1に係る脈波検出処理の手順を示すフローチャートである。この処理は、脈波検出プログラムがアクティブな状態にある場合に実行することもできるし、脈波検出プログラムがバックグラウンドで動作している場合にも実行することができる。なお、本処理は、上記の基準脈波生成処理と並行して実行することも可能である。
【0079】
図16に示すように、カメラ11aによって撮像された画像が取得されるとともに、当該画像が撮像された時にジャイロセンサ11bによって測定された角速度が取得される(ステップS301及びステップS302)。
【0080】
そして、前回に脈波の検出を実行してから所定期間、例えば1.5秒間が経過した場合(ステップS303Yes)には、推定部15は、ステップS302で所定期間にわたって測定されたセンサ値を用いて、一連の画像に含まれる画像ごとに当該画像の顔領域を推定する(ステップS304)。
【0081】
続いて、ROI走査部16は、ステップS304で一連の画像から推定された顔領域ごとに当該顔領域内でROIを走査する(ステップS305)。その後、入力波形生成部17は、ステップS305で走査されたROI、すなわち同一の相対位置を持つROIをカップリングする(ステップS306)。そして、入力波形生成部17は、ステップS306でカップリングされた組合せに含まれるROIごとに、当該ROI内部でR成分の代表輝度値を算出することによって入力脈波波形を生成する(ステップS307)。
【0082】
その後、ROIの全組合せ、例えばS通りの組合せを対象に入力脈波波形を生成するまで(ステップS308No)、上記のステップS305〜ステップS307の処理を繰り返し実行する。
【0083】
そして、ROIの全組合せを対象に入力脈波波形を生成すると(ステップS308Yes)、類似度算出部18は、基準波形記憶部14aに記憶された基準脈波波形と、入力波形生成部17によって生成された入力脈波波形との間で類似度を算出する(ステップS309)。
【0084】
その後、全ての入力脈波波形について類似度を算出するまで(ステップS310No)、上記のステップS309の処理を繰り返し実行する。そして、全ての入力脈波波形について類似度を算出すると(ステップS310Yes)、検出部19は、類似度が最高である入力脈波波形を選択する(ステップS311)。その後、検出部19は、ステップS311で選択された入力脈波波形から脈拍数を検出する(ステップS312)。
【0085】
そして、上記のステップS301に戻り、ステップS301〜ステップS312までの処理を繰り返し実行する。
【0086】
[実施例1の効果]
上述してきたように、本実施例に係る脈波検出装置10は、カメラ11aから入力される画像から複数の入力脈波波形を生成し、複数の入力脈波波形のうち端末安定時に生成された基準脈波波形との間で類似度が最高の入力脈波波形を選択する。したがって、本実施例に係る脈波検出装置10によれば、脈波の検出精度を向上させることができる。
【実施例2】
【0087】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0088】
[入力信号]
上記の実施例1では、入力信号としてRGB信号を用いる場合を例示したが、異なる複数の光波長成分を持つ信号であれば任意の種類の信号および任意の数の信号を入力信号とすることができる。例えば、HSV信号を用いることとしてもよいし、あるいはIRおよびNIRなどの信号を2つ用いることもできるし、また、3つ以上用いることもできる。
【0089】
[ROIの応用例]
上記の実施例1では、両眼の中心位置を重心とし、瞳孔の間隔Lを高さ及び幅とする矩形状の領域をROIとして例示したが、ROIには任意の形状や大きさを設定することができる。
図17〜
図20は、ROIの応用例を示す図である。例えば、
図17に示すように、顎から頭頂までの頭部全体をROIとして設定することもできるし、
図18に示すように、眉毛よりも上部の所定の範囲、例えば前髪等にかかりにくい範囲までをROIとして設定することもできる。また、
図19に示すように、上下は鼻から眉のあたりまで、左右は鼻の幅によって規定される範囲をROIとして設定することもできるし、
図20に示すように、頬の一部をROIとして設定することもできる。
【0090】
[基準脈波波形の更新]
基準脈波波形は、固定のデータではなく、任意の契機で更新することもできる。一例としては、
図15に示す処理で最新の基準脈波波形に更新することもできる。他の一例としては、
図16に示す処理で類似度が最高である入力脈波波形を基準脈波波形として更新することもできる。この場合、類似度が所定の閾値以上である場合、例えば相関係数が0.9以上である場合などに限って基準脈波波形を更新することもできる。
【0091】
[他の実装例]
上記の実施例1では、脈波検出装置10が上記の脈波検出処理をスタンドアローンで実行する場合を例示したが、クライアントサーバシステムとして実装することもできる。例えば、脈波検出装置10は、脈波検出サービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって脈波検出サービスを提供するクラウドとして実装することとしてもかまわない。このように、脈波検出装置10がサーバ装置として動作する場合には、スマートフォンや携帯電話機等の携帯端末装置やパーソナルコンピュータ等の情報処理装置をクライアント端末として収容することができる。これらクライアント端末からネットワークを介して被験者の顔が映った画像が取得された場合に脈波検出処理を実行し、心拍の検出結果や検出結果を用いてなされた診断結果をクライアント端末へ応答することによって脈波検出サービスを提供できる。
【0092】
[脈波検出プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図21を用いて、上記の実施例と同様の機能を有する脈波検出プログラムを実行するコンピュータの一例について説明する。
【0093】
図21は、実施例1及び実施例2に係る脈波検出プログラムを実行するコンピュータの一例について説明するための図である。
図21に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
【0094】
HDD170には、
図21に示すように、上記の実施例1で示した眼検出部12、ROI設定部13、基準波形生成部14、推定部15、ROI走査部16、入力波形生成部17、類似度算出部18及び検出部19と同様の機能を発揮する脈波検出プログラム170aが予め記憶される。この脈波検出プログラム170aについては、
図1に示した各々の眼検出部12、ROI設定部13、基準波形生成部14、推定部15、ROI走査部16、入力波形生成部17、類似度算出部18及び検出部19の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
【0095】
そして、CPU150が、脈波検出プログラム170aをHDD170から読み出してRAM180に展開する。これによって、
図21に示すように、脈波検出プログラム170aは、脈波検出プロセス180aとして機能する。この脈波検出プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、脈波検出プロセス180aは、
図1に示した眼検出部12、ROI設定部13、基準波形生成部14、推定部15、ROI走査部16、入力波形生成部17、類似度算出部18及び検出部19にて実行される処理、例えば
図15や
図16に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【0096】
なお、上記の脈波検出プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。