(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】脈拍検出装置、脈拍検出方法およびプログラム
(51)【国際特許分類】
A61B 5/02 20060101AFI20240827BHJP
A61B 5/0245 20060101ALI20240827BHJP
【FI】
A61B5/02 310Z
A61B5/0245 100B
(21)【出願番号】P 2022570993
(86)(22)【出願日】2020-12-25
(86)【国際出願番号】 JP2020048931
(87)【国際公開番号】W WO2022137557
(87)【国際公開日】2022-06-30
【審査請求日】2023-05-01
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】菅原 彰彦
【審査官】森口 正治
(56)【参考文献】
【文献】米国特許出願公開第2020/0268281(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A61B 5/02
A61B 5/0245
(57)【特許請求の範囲】
【請求項1】
ユーザの皮膚を含む領域の所定フレーム数の撮像画像を記憶する記憶部と、
前記撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得部と、
各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む画素排除部と、
各ブロックの対象画素値の時間的変化から脈拍を検出する脈拍検出部とを含
み、
前記画素排除部は、各ブロックの画素の色をRGBで表した場合の赤の値が所定の閾値以上の画素をさらに除外することにより、各ブロックの対象画素を絞り込むことを特徴とする脈拍検出装置。
【請求項2】
前記画素排除部は、各ブロックの画素の色を色相で表した場合の皮膚の色から所定の閾値より離れた画素をさらに除外することにより、各ブロックの対象画素を絞り込むことを特徴とする請求項
1に記載の脈拍検出装置。
【請求項3】
各ブロックの対象画素の色をRGBで表した場合の緑の値の平均値を赤または青の値の平均値で割ることにより、明るさの変化を補償する明るさ変化補償部をさらに含み、
前記脈拍検出部は、各ブロックの明るさ変化補償後の画素値の時間的変化から脈拍を検出することを特徴とする請求項1
または2に記載の脈拍検出装置。
【請求項4】
前記明るさ変化補償部は、各ブロックの画素の色をRGBで表した場合の緑の値の平均値を赤の値の平均値と青の値の平均値の和で割ることにより、明るさの変化を補償することを特徴とする請求項
3に記載の脈拍検出装置。
【請求項5】
ユーザの皮膚を含む領域の所定フレーム数の撮像画像を記憶する記憶部と、
前記撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得部と、
各ブロックの画素の色をRGBで表した場合の緑の値の平均値を赤または青の値の平均値で割ることにより、明るさの変化を補償する明るさ変化補償部と、
各ブロックの明るさ変化補償後の画素値の時間的変化から脈拍を検出する脈拍検出部とを含むことを特徴とする脈拍検出装置。
【請求項6】
ユーザの皮膚を含む領域の所定フレーム数の撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得ステップと、
各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む画素排除ステップと、
各ブロックの対象画素値の時間的変化から脈拍を検出する脈拍検出ステップとを含
み、
前記画素排除ステップは、各ブロックの画素の色をRGBで表した場合の赤の値が所定の閾値以上の画素をさらに除外することにより、各ブロックの対象画素を絞り込むことを特徴とする脈拍検出方法。
【請求項7】
ユーザの皮膚を含む領域の所定フレーム数の撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得機能と、
各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む画素排除機能と、
各ブロックの対象画素値の時間的変化から脈拍を検出する脈拍検出機能とをコンピュータに実現させ
、
前記画素排除機能は、各ブロックの画素の色をRGBで表した場合の赤の値が所定の閾値以上の画素をさらに除外することにより、各ブロックの対象画素を絞り込むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、脈拍検出技術に関する。
【背景技術】
【0002】
家庭内のゲーム機にはカメラが搭載されたものがあり、ゲームプレイをするユーザを撮像し、ユーザの撮像画像からユーザの表情を検出し、ゲームプレイ中のユーザの精神状態を把握してゲームの展開に反映させることができる。また、ゲームプレイ中のユーザの緊張度合いを検出するために、脈拍を検知するセンサをユーザに装着させ、センサが出力する脈拍の測定結果をゲーム機に入力させてゲームに反映させることも行われている。
【0003】
特許文献1には、被検体の撮像画像の濃度の時間的変化からバイタルサインを計測する方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
脈拍を検知するためにユーザにセンサを装着させるのはユーザに負担を強いることになるという問題があった。また、撮像画像を利用した従来の脈拍検出方法では、脈拍の細かな変動を検出することが難しく、また呼吸などの身体の動きが影響するため、脈拍を正確に測定することは難しいという問題があった。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、ユーザの撮像画像から脈拍を高い精度で検知することのできる脈拍検出技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の脈拍検出装置は、ユーザの皮膚を含む領域の所定フレーム数の撮像画像を記憶する記憶部と、前記撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得部と、各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む画素排除部と、各ブロックの対象画素値の時間的変化から脈拍を検出する脈拍検出部とを含む。
本発明の別の態様もまた、脈拍検出装置である。この装置は、ユーザの皮膚を含む領域の所定フレーム数の撮像画像を記憶する記憶部と、前記撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得部と、各ブロックの画素の色をRGBで表した場合の緑の値の平均値を赤または青の値の平均値で割ることにより、明るさの変化を補償する明るさ変化補償部と、各ブロックの明るさ変化補償後の画素値の時間的変化から脈拍を検出する脈拍検出部とを含む。
【0008】
本発明のさらに別の態様は、脈拍検出方法である。この方法は、ユーザの皮膚を含む領域の所定フレーム数の撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する画素値取得ステップと、各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む画素排除ステップと、各ブロックの対象画素値の時間的変化から脈拍を検出する脈拍検出ステップとを含む。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、ユーザの撮像画像から脈拍を高い精度で検知することができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態に係る脈拍検出装置の構成図である。
【
図2】
図1の脈拍検出装置で用いられる信号のデータ構造を説明する図である。
【
図3】
図1の脈拍検出装置による脈波検出手順を説明するフローチャートである。
【
図4】
図4(a)は検出脈波の自己相関グラフを示し、
図4(b)は
図4(a)の自己相関グラフのピーク近傍200の拡大図である。
【
図5】第2の実施の形態に係る脈拍検出装置の構成図である。
【
図6】
図6(a)は検出脈波とその自己相関グラフを示し、
図6(b)は参照脈波とその自己相関グラフを示す図である。
【
図7】
図7(a)は検出脈波を示し、
図7(b)は振幅信頼度を示す図である。
【
図8】第3の実施の形態に係る脈拍検出装置の構成図である。
【
図9】
図9(a)~
図9(d)は、撮像画像に設定される複数のエリアを説明する図である。
【
図10】
図10(a)、
図10(b)は、各エリアで検出される脈拍数と信頼度の時間変化を示す図である。
【
図11】第4の実施の形態に係る脈拍検出装置の構成図である。
【
図12】
図11の画素排除部による画素の排除を説明する図である。
【発明を実施するための形態】
【0012】
(第1の実施の形態)
図1は、第1の実施の形態に係る脈拍検出装置100の構成図である。脈拍検出装置100は、撮像部10、フレーム記憶部20、画素値取得部30、時系列画素配列取得部40、脈拍データ配列取得部50、脈拍検出部60、および自己相関グラフ記憶部70を含む。
【0013】
撮像部10は、ユーザの顔など皮膚が露出した身体部位を撮像し、フレーム記憶部20に記憶する。フレーム記憶部20には、所定フレーム数の撮像画像が保存される。
【0014】
顔の皮膚には毛細血管が多く、脈拍を撮影するのに適している。顔以外では、手のひらや足裏もメラニンが少ないため、毛細血管を撮影しやすい。脈を打つと、毛細血管も脈動する。皮膚の毛細血管を撮影すると、毛細血管の脈動によって反射光も変化するため、撮影画像の画素値の時間変化から脈拍を検出することができる。
【0015】
画素値取得部30は、フレーム記憶部20に保存された撮像画像を複数のブロックに分割し、各ブロックの画素値を取得する。脈波検出に適した領域は、顔の領域内で、皮膚が露出しており、動きが少ない部分である。たとえば、撮像画像の顔の領域を額、右頬、左頬、鼻などのブロックに分割し、各ブロックの画素値を取得する。各ブロックの画素数は異なってよい。
【0016】
画素値取得部30は、各ブロックの画素の色をRGBで表した場合の緑の値を画素値として取得することが好ましい。
【0017】
皮膚は表皮の下に真皮があり、表皮が透明で薄ければ、可視光が真皮にまで侵入し、毛細血管を撮影することができる。可視光の透過力は波長に依存し、波長が長いほど皮膚の奥まで透過する。赤の光は波長が最も長く、皮膚の奥まで透過するが、光が奥まで侵入しすぎて毛細血管以外の余計なものも撮影してしまう。青の光は波長が最も短く、皮膚の奥まで透過しないため、毛細血管の撮影には適していない。緑の光は、表皮の下の真皮まで透過し、赤血球に吸収され易いので毛細血管を撮影するのに適している。
【0018】
画素値取得部30は、各ブロックの所定数の画素値を加算することにより、空間的に平滑化された画素値を取得する。ブロック内のすべての画素値を加算してもよく、ブロック内の一部の画素値を加算してもよい。8ビット画素の場合、1画素から検出される脈波信号は最下位ビット(least significant bit)の変化があるかないか程度に小さいため、
ブロック内の画素値を加算することにより脈波信号を増幅することができる。また、ブロック内の画素値を加算することは、ブロック内の画素値を空間的に平滑化する空間的ローパスフィルタ(LPF)の作用を奏する。
【0019】
時系列画素配列取得部40は、画素値取得部30により取得された各ブロックの画素値を所定フレーム数分だけ並べた時系列画素配列を取得する。たとえば、動画のフレームレートが30フレーム/秒である場合、各ブロックについて、1秒分、すなわち30フレーム分の画素値を時間順に30個並べた時系列画素配列を生成する。
【0020】
時系列画素配列取得部40は、時系列画素配列に対してローパスフィルタを施すことにより、時間的に平滑化された時系列画素配列を取得してもよい。撮像に用いられたイメージセンサには一般に検出値にノイズがある。時系列画素配列に対してローパスフィルタを施すことは、センサの検出値の時間方向のノイズを除去する時間的ローパスフィルタの作用を奏する。
【0021】
脈拍データ配列取得部50は、時系列画素配列の各要素の平均値を直流(DC)成分として算出し、時系列画素配列の中央の要素を交流(AC)成分として取り出し、交流成分から直流成分を引くことにより、脈拍成分を取得する。時系列画素配列の交流成分から直流成分を引くことは、時系列画素配列に対してハイパスフィルタ(HPF)を施す作用を奏する。
【0022】
脈拍データ配列取得部50は、フレーム毎に脈拍成分の取得を進め、所定期間の脈拍成分を並べた脈拍データ配列を取得する。所定期間は、標準的な脈拍の少なくとも2周期の時間(たとえば2.5秒)とする。2周期程度の短時間の脈波信号を用いることで瞬間的な脈拍を検出することが可能になる。長期間の脈波信号を用いると脈拍が平均化されてしまい、瞬間的な脈拍の変化を捉えることができなくなる。
【0023】
脈拍データ配列取得部50は、脈拍データ配列に対してローパスフィルタを施すことにより、時間的に平滑化された脈拍データ配列を取得してもよい。ここで得られた脈波信号には交流成分の計算方法により時間方向に振幅のぶれが生じ得る。脈拍データ配列に対してローパスフィルタを施すことは、脈波の振幅の時間方向のぶれを除去する時間的ローパスフィルタの作用を奏する。
【0024】
ここで、時系列画素配列に対して施すローパスフィルタのフィルタ強度は、脈拍データ配列に対して施すローパスフィルタのフィルタ強度よりも強いことが好ましい。これはイメージセンサにより検出される生データに含まれる時間的ノイズは比較的大きく、振幅のぶれによる脈波信号の波形の歪みはそれに比べて大きくないからである。
【0025】
脈拍検出部60は、脈拍データ配列の自己相関を求め、自己相関グラフを自己相関グラフ記憶部70に記憶する。脈拍検出部60は、脈波信号の自己相関グラフが2番目に極大となる点を検出し、2番目の極大点の横軸の時間を脈波信号の周期として取得し、その逆数を脈波信号の周波数として取得する。脈拍検出部60は、自己相関により検出される脈波信号の周波数を脈拍数として出力する。
【0026】
図2は、脈拍検出装置100で用いられる信号のデータ構造を説明する図である。
【0027】
画素値取得部30は、撮像部10により撮像されたユーザの顔画像12の額14a、右頬14b、左頬14cの各ブロックから画素値を取得し、ブロック内の画素値を加算して、生データ配列である時系列画素配列R[]に格納する。たとえば1秒30フレーム分の画素値を配列に格納することで要素数が30個である時系列画素配列R[]が取得される。撮像画像のフレームが進むにつれて、時系列画素配列R[]の各要素が右にシフトされ、第i要素が第(i+1)要素にコピーされるとともに、時系列画素配列R[]の第1要素に新しいフレームから得られた画素値が格納される。
【0028】
画素値取得部30は、時系列画素配列R[]にフィルタ強度N_raw_dataのローパスフィルタを施す。具体的には、一例として次式の移動平均をフィルタ強度N_raw_dataに応じた回数だけ繰り返す。たとえば、フィルタ強度N_raw_dataを10として10回移動平均を繰り返す。
R’[i]=0.25*R[i-1]+0.5*R[i]+0.25*R[i+1]
【0029】
時系列画素配列R[]にフィルタ強度N_raw_dataのローパスフィルタを施して得られる時系列画素配列をLPR[]とする。
【0030】
脈拍データ配列取得部50は、時系列画素配列LPR[]の各要素の平均値を直流成分として算出し、時系列画素配列LPR[]の中央の要素から直流成分を引くことにより、最初の脈拍成分P[0]を取得する。
【0031】
次に、脈拍データ配列取得部50は、脈拍成分P[0]をP[1]にコピーし、次のフレームの脈拍成分P[0]を取得する。さらに、脈拍データ配列取得部50は、脈拍成分P[1]をP[2]にコピーし、P[0]をP[1]にコピーし、さらに次のフレームの脈拍成分P[0]を取得する。これを所定期間、たとえば2.5秒繰り返すことで、脈拍成分を並べた脈拍データ配列P[]が取得される。フレームレートが30フレーム/秒の場合、脈拍データ配列P[]の要素数は、30*2.5=75になる。
【0032】
このように撮像画像のフレームが進むにつれて、脈拍データ配列P[]の各要素が右にシフトされ、第i要素が第(i+1)要素にコピーされるとともに、脈拍データ配列P[]の第1要素に新しいフレームの脈拍成分が格納される。
【0033】
脈拍データ配列取得部50は、脈拍データ配列P[]にフィルタ強度N_pulse_dataのローパスフィルタを施す。具体的には、一例として次式の移動平均をフィルタ強度N_pulse_dataに応じた回数だけ繰り返す。たとえば、フィルタ強度N_pulse_dataを2として3回移動平均を繰り返す。
P’[i]=0.25*P[i-1]+0.5*P[i]+0.25*P[i+1]
【0034】
脈拍データ配列P[]にフィルタ強度N_pulse_dataのローパスフィルタを施して得られる脈拍データ配列をLPP[]とする。
【0035】
脈拍検出部60は、脈拍データ配列LPP[]の時間遅れtに対する自己相関AC[t]を次式で求める。
AC[t]=SUM(LPP[n]*LPP[n+t])
【0036】
脈拍検出部60は、自己相関AC[t]をt=0からt=N(NはLPP[]の要素数)まで求め、AC[T]が2番目の極大点となる時間Tを脈波周期として取得し、その逆数である周波数を脈拍数として出力する。
【0037】
一般に脈波信号に高速フーリエ変換を施し、脈波信号の周波数を検出する方法がある。高速フーリエ変換には少なくとも512個のデータが必要になり、30フレーム/秒の場合、10数秒の脈波信号を解析することになり、10数秒の脈拍の平均値が得られるが、瞬間的な脈拍は得られない。本実施の形態の脈拍検出方法は自己相関を用いており、脈波信号を1周期ずれているところで重ねると自己相関が最大になり、脈波信号の周期を検出することができる。したがって、2周期分程度の短期間の脈波信号の自己相関から瞬間的な脈拍を得ることができる。本実施の形態の脈拍検出方法は、脈拍の細かな変動を検出するのに適している。
【0038】
図3は、脈拍検出装置100による脈波検出手順を説明するフローチャートである。
【0039】
画素値取得部30は、撮像画像の各ブロックの所定数の画素値から空間的に平準化された画素値を取得する(S10)。
【0040】
時系列画素配列取得部40は、所定フレーム数のブロックの画素値を並べた時系列画素配列を取得する(S20)。時系列画素配列取得部40は、時系列画素配列に対してローパスフィルタを施す(S30)。
【0041】
脈拍データ配列取得部50は、時系列画素配列の各要素の平均値を直流成分として算出し、時系列画素配列の中央の要素から直流成分を引くことにより、脈拍成分を取得する(S40)。中央の要素を交流成分として選び、交流成分から直流成分を引くことでハイパスフィルタの作用をもたせた。中央の要素を交流成分として選ぶ理由は、時系列画素配列に対してローパスフィルタをかける際に中央の要素の前後に同程度の数の要素が存在し、時間の前後に同程度の重み付けをすることでローパスフィルタをかけるからである。
【0042】
脈拍データ配列取得部50は、所定期間の脈拍成分を並べた脈拍データ配列を取得する(S50)。脈拍データ配列取得部50は、脈拍データ配列に対してローパスフィルタを施す(S60)。
【0043】
脈拍検出部60は、脈拍データ配列の自己相関から脈波信号の周期を求め、その逆数である周波数を脈拍数として検出する(S70)。
【0044】
上記の説明では、検出された脈波信号の自己相関グラフの極大点から周波数を求めたが、脈拍検出部60は、検出脈波の自己相関のピーク近傍に2次曲線を当てはめて得られるピークに対応する周波数を脈拍数として検出することで、脈拍数の検出精度を向上させることができる。撮像画像のフレームレートが30fpsの場合、自己相関グラフの極大点から周波数を検出すると、時間解像度が1/30秒となり、周波数の検出精度が高くない。そこで、ピーク近傍に2次曲線を当てはめて自己相関グラフを補間し、当てはめた2次曲線の極大点において周波数を検出することで検出精度を高める。
【0045】
図4(a)は検出脈波の自己相関グラフを示し、
図4(b)は
図4(a)の自己相関グラフのピーク近傍200の拡大図である。1/30秒の時間解像度では、符号210bで示す位置が自己相関グラフの極大点であるが、ピーク近傍の自己相関グラフの値210a、210b、210cを通るような2次曲線230を当てはめると、2次曲線230が極大となる位置は符号220で与えられる。2次曲線230の極大点220から検出脈波の周波数を求めることで、検出精度を高めることができる。
【0046】
(第2の実施の形態)
図5は、第2の実施の形態に係る脈拍検出装置100の構成図である。第2の実施の形態に係る脈拍検出装置100は、
図1の脈拍検出装置100の各構成に加えて、さらに信頼度計算部80および参照グラフ記憶部90を含む。
図1の脈拍検出装置100と共通する構成および動作については説明を省略する。
【0047】
参照グラフ記憶部90は、所定期間のノイズフリーの脈拍成分を並べた脈拍データ配列の自己相関グラフを参照グラフとして記憶する。頻度の高い脈波を参照脈波としてモデル化するために、たとえば、脈拍数安定時、脈拍数上昇時、脈拍数下降時などのノイズフリーの参照脈波の自己相関グラフを参照グラフとして参照グラフ記憶部90に登録する。
【0048】
実際の検出脈波の自己相関グラフを参照脈波の参照グラフと比較するために、基本周波数を揃える必要がある。検出脈波の自己相関グラフから得られる基本周波数は脈拍数に応じて変化するが、参照脈波の参照グラフの基本周波数はたとえば60bpm(beats per minute)に固定される。検出脈波の自己相関グラフと参照脈波の参照グラフのクロス相関によって波形の類似性を評価するために、両者の基本周波数を同じにする必要がある。そこで、検出脈波の自己相関グラフの基本周波数を参照脈波の参照グラフと同じ60bpmになるように検出脈波の脈拍データ配列のデータを時間軸方向に伸縮する「周波数標準化」を行う。
【0049】
図6(a)は検出脈波とその自己相関グラフを示し、
図6(b)は参照脈波とその自己相関グラフを示す。自己相関フラフの2番目の極大点の横軸の値が基本周期であり、その逆数が基本周波数である。検出脈波の自己相関の基本周波数を参照脈波の自己相関の基本周波数に合わせるように補正する周波数標準化を行う。
【0050】
信頼度計算部80は、自己相関グラフ記憶部70に記憶された検出脈波の自己相関グラフと、参照グラフ記憶部90に記憶された参照脈波の参照グラフのクロス相関を計算し、クロス相関値にもとづいて波形信頼度を求める。クロス相関CCは、次式のように検出脈波の自己相関グラフACと参照脈波の参照グラフREFの各要素間の積の和で与えられる。
CC=SUM(AC[n]*REF[n])
【0051】
クロス相関値が高いほど、検出脈波の自己相関グラフと参照脈波の参照グラフの波形の類似度が高い。信頼度計算部80は、参照グラフ記憶部90に登録されたすべての参照脈波の参照グラフについて検出脈波の自己相関グラフとのクロス相関値を求め、その最大値を最終的な波形信頼度とする。波形信頼度は、検出脈波の波形の脈波らしさを判定する指標である。
【0052】
また、信頼度計算部80は、検出脈波信号の波形の振幅を所定の上限値および下限値と比較することにより、振幅信頼度を求める。
【0053】
図7(a)は検出脈波を示す。横軸は時間であり、縦軸は緑の画素値であり、画素値の時間変化がグラフで示されている。検出脈波の振幅は、検出脈波の最大値と最小値の差で与えられる。
【0054】
図7(b)は振幅信頼度を示す。横軸は検出脈波の振幅、縦軸は振幅信頼度である。検出脈波の振幅が下限値th1以上、上限値th2以下である場合、振幅信頼度は1.0である。検出脈波の振幅が下限値th1と上限値th2の間の範囲にあれば、脈波らしい振幅であり、振幅信頼度を1.0とする。
【0055】
検出脈波の振幅が下限値th1より小さい場合、想定脈波より振幅が小さいので、振幅が下限値th1から小さくなるにつれて振幅信頼度を1.0から徐々に下げる。検出脈波の振幅が下限値より小さい場合、脈波以外の微小信号またはノイズである可能性がある。
【0056】
検出脈波の振幅が上限値th2より大きい場合、想定脈波より振幅が大きいので、振幅が上限値th2から大きくなるにつれて振幅信頼度を1.0から徐々に下げる。検出脈波の振幅が上限値より大きい場合、ユーザの身体が動いているためか、ノイズである可能性がある。
【0057】
信頼度計算部80は、検出された脈拍数の最終的な脈波信頼度を波形信頼度と振幅信頼度にもとづいて算出して出力する。たとえば、波形信頼度と振幅信頼度の積を脈拍数の最終的な脈波信頼度として算出する。
【0058】
(第3の実施の形態)
図8は、第3の実施の形態に係る脈拍検出装置100の構成図である。第3の実施の形態に係る脈拍検出装置100は、
図5の脈拍検出装置100の各構成に加えて、さらにエリア信頼度記憶部92を含む。
図5の脈拍検出装置100と共通する構成および動作については説明を省略する。
【0059】
第1および2の実施の形態に係る脈拍検出装置100では、フレーム記憶部20に保存された撮像画像を複数のブロックに分割し、各ブロックの画素値から脈拍成分を取得したが、第3の実施の形態に係る脈拍検出装置100では、撮像画像を複数のエリアに分割し、各エリアの画素値から脈拍成分を取得する。たとえば、顔の額、右頬、左頬などの狭いエリアの他、目や鼻を含む広域のエリアなどがあり、重複を許して複数のエリアを指定することができる。各エリアの画素数は異なってよい。
【0060】
画素値取得部30は、各エリアの画素値を取得し、各エリアの所定数の画素値を加算することにより、空間的に平滑化された画素値を取得する。
【0061】
時系列画素配列取得部40は、画素値取得部30により取得された各エリアの画素値を所定フレーム数分だけ並べた時系列画素配列を取得し、時系列画素配列に対してローパスフィルタを施す。
【0062】
脈拍データ配列取得部50は、各エリアの時系列画素配列の中央の要素から時系列画素配列の各要素の平均値を引くことにより、脈拍成分を取得し、所定期間の脈拍成分を並べた脈拍データ配列を生成し、脈拍データ配列に対してローパスフィルタを施す。
【0063】
脈拍検出部60は、各エリアの脈拍データ配列の自己相関を求め、各エリアの自己相関グラフを自己相関グラフ記憶部70に記憶し、各エリアの自己相関グラフから検出される脈波信号の周波数を各エリアの脈拍数として出力する。
【0064】
信頼度計算部80は、自己相関グラフ記憶部70に記憶された各エリアの検出脈波の自己相関グラフと、参照グラフ記憶部90に記憶された参照脈波の参照グラフのクロス相関を計算し、クロス相関値にもとづいて波形信頼度を求める。また、信頼度計算部80は、各エリアの検出脈波信号の波形の振幅を所定の上限値および下限値と比較することにより、振幅信頼度を求める。信頼度計算部80は、各エリアについて、検出された脈拍数の最終的な脈波信頼度を波形信頼度と振幅信頼度にもとづいて算出し、エリア毎の脈拍信頼度をエリア信頼度記憶部92に記憶する。
【0065】
脈拍検出部60は、各エリアから検出された脈拍の内、エリア信頼度記憶部92に記憶された信頼度が最も高い脈拍を選択して最終的な脈拍として出力してもよい。脈拍検出部60は、各エリアから検出された脈拍の内、信頼度が所定の閾値以上の脈拍を信頼度にもとづいて重み付けして組み合わせることにより、最終的な脈拍を求めてもよい。
【0066】
図9(a)~
図9(d)は、撮像画像に設定される複数のエリアを説明する図である。一例としてユーザの顔画像12の額16a、右頬16b、左頬16c、目や鼻を含む広域16dが複数のエリアとして設定される。ここで、広域16dは、額16a、右頬16b、左頬16cと一部重複する。
【0067】
図9(a)では、ユーザの顔の全体が露出しているため、4つのエリア16a~16dにおいて高い信頼度で脈拍数が検出される。
【0068】
図9(b)では、髪の毛によって額が覆われているため、額16aから検出される脈拍数は信頼度が低い。また、広域16dの額部分が髪の毛で遮られるため、額部分の画素値からは脈拍成分を検出するのが難しくなり、
図9(a)の広域16dに比べた場合、検出される脈拍数の信頼度は低下する。
【0069】
図9(c)では、ユーザが眼鏡をかけているため、右頬16b、左頬16cの一部は眼鏡で遮られるため、
図9(a)の右頬16b、左頬16cに比べた場合、検出される脈拍数の信頼度は低下する。また、広域16dの内、目の周辺の画素からの脈拍成分の検出は難しくなり、
図9(a)の広域16dに比べた場合、検出される脈拍数の信頼度は低下する。
【0070】
図9(d)では、ユーザが口に手を当てているため、右頬16b、左頬16c、広域16dの一部は手で遮られるため、
図9(a)の右頬16b、左頬16c、広域16dに比べた場合、検出される脈拍数の信頼度は低下する。
【0071】
これ以外にも、帽子、ヘッドマウントディスプレイ、マスクなどの遮断物の着用や、化粧や肌の濃いメラニン色素、反射光や影の影響、顔の動きなどにより、エリアによっては脈波信号が検出できないか、検出できても信号が弱くなることがある。
【0072】
遮断物などにより脈波信号が弱くなるか検出されなくなる領域の大きさによって、脈拍数の信頼度の低下の程度は異なる。各エリアで検出される脈拍数と信頼度を各時刻で比較し、各時刻において信頼度の高いエリアの脈拍数を採用することで、各時刻の脈拍の検出精度を高く維持することができる。
【0073】
図10(a)、
図10(b)は、各エリアで検出される脈拍数と信頼度の時間変化を示す図である。
【0074】
図10(a)は、額16a、右頬16b、左頬16c、広域16dの各エリアで検出された脈拍数の時間変化のグラフである。時間帯によって、顔の動きなどでエリアの一部が見えなくなったり、手などの遮断物によりエリアの一部が遮られることで、そのエリアの脈波信号が弱くなり、検出される脈拍数が不安定になっている。
【0075】
図10(b)は、額16a、右頬16b、左頬16c、広域16dの各エリアの検出脈波の信頼度の時間変化のグラフである。時間帯によって特定のエリアの信頼度が極端に低下していることがわかる。各エリアの検出脈波の信頼度が所定の閾値を下回る時間帯ではそのエリアから検出された脈拍数を採用しない。各エリアの検出脈波の信頼度が所定の閾値以上である時間帯では、そのエリアから検出された脈拍数を採用し、信頼度で重み付け平均を取って最終的な脈拍数を算出するか、信頼度が最大であるエリアから検出された脈拍数を最終的な脈拍数とする。
【0076】
(第4の実施の形態)
図11は、第4の実施の形態に係る脈拍検出装置100の構成図である。第4の実施の形態に係る脈拍検出装置100は、
図1の脈拍検出装置100の各構成に加えて、さらに画素排除部32および明るさ変化補償部34を含む。
図1の脈拍検出装置100と共通する構成および動作については説明を省略する。
【0077】
画素値取得部30は、撮像画像を複数のブロックに分割し、各ブロックの画素値を取得し、画素排除部32に供給する。
【0078】
画素排除部32は、各ブロックの画素値の中から脈波検出に適さない画素を排除することにより、各ブロックの対象画素を絞り込む。
【0079】
具体的には、画素排除部32は、各ブロックの画素の色をRGBで表した場合の緑の値が所定の閾値以下の画素を除外することにより、各ブロックの対象画素を絞り込む。暗い画素には脈波信号が小さいため、ノイズになる。そこで、画素の緑の値が所定の閾値以下の暗い画素を除外する。最大値が255となる8ビット画素の場合、例えば緑の値が20以下の画素を除外する。
【0080】
画素排除部32は、各ブロックの画素の色をRGBで表した場合の赤の値が所定の閾値以上の画素を除外することにより、各ブロックの対象画素を絞り込んでもよい。明るさが飽和した画素には脈波信号が検出されない。皮膚からの明るい反射光は赤の方が緑よりも先に飽和するため、明るさが飽和しているかどうかは、赤の値によって判定することができる。そこで、画素の赤の値が所定の閾値以上の明る過ぎる画素を除外する。最大値が255となる8ビット画素の場合、例えば赤の値が254以上の画素を除外する。例えば緑の値が150であっても、赤の値が255であれば、その画素は除外することに留意する。
【0081】
明るさが飽和した赤の画素は、後述の明るさ変化補償部34による明るさ変化補償に用いるため、対象画素から除外しておくことが好ましい。
【0082】
画素排除部32は、各ブロックの画素の色を色相で表した場合の皮膚の色から所定の閾値より離れた画素をさらに除外することにより、各ブロックの対象画素を絞り込んでもよい。色相において、赤側が0.0で紫側が1.0とする場合、例えば色相が0.3から0.85の範囲にある画素を除外する。
【0083】
画素排除部32は、このようにして絞り込まれた各ブロックの対象画素を明るさ変化補償部34に供給する。
【0084】
顔の動きによる陰影変化や顔に対する照明の変化によって明るさが変化するため、脈波検出が困難になる。そこで、明るさの変化を補償することが必要になる。同じ皮膚上では、緑の変化と、赤や青の変化には正の相関がある。そこで、脈波信号が強い緑画素の値を、脈波信号の弱い赤画素または青画素の値を用いて補償することで明るさを一定にする。
【0085】
明るさ変化補償部34は、各ブロックの対象画素の色をRGBで表した場合の緑の値の平均値を赤または青の値の平均値で割ることにより、明るさの変化を補償する。
【0086】
明るさ変化補償部34は、各ブロックの対象画素の色をRGBで表した場合の緑の値の平均値を赤の値の平均値と青の値の平均値の和で割ることにより、明るさの変化を補償してもよい。
【0087】
明るさ変化補償部34は、このように明るさ変化の補償がなされた対象画素の緑の値を時系列画素配列取得部40に供給する。
【0088】
上記の説明では、画素排除部32による画素の排除の後、明るさ変化補償部34による明るさ変化の補償を行ったが、明るさ変化補償部34による明るさ変化の補償を行わずに、画素排除部32が画素の排除により絞り込んだ対象画素を時系列画素配列取得部40に供給してもよい。また、画素排除部32による画素の排除を行わずに、画素値取得部30から供給された各ブロックの画素値に対して明るさ変化補償部34が明るさ変化の補償を行って時系列画素配列取得部40に供給してもよい。
【0089】
図12は、
図11の画素排除部32による画素の排除を説明する図である。画素排除部32はブロック18aの画素に対して緑の値が所定の閾値以下の画素を排除する。次に、画素排除部32はブロック18aの画素に対して赤の値が所定の閾値以上の画素を排除する。最後に、画素排除部32はブロック18aの画素の色空間をRGBから、色相、彩度、明度の3つの成分からなるHSVなどに変換し、色相において皮膚の色として想定される所定の範囲から外れた画素を排除する。これにより、ブロック18bで示されるように対象画素が絞り込まれる。ここで排除された画素はハッチングにより示されている。
【0090】
以上述べたように、本実施の形態の脈拍検出装置100によれば、脈波信号の自己相関を求めることにより、脈拍の細かな変動を正確に測定することができる。
【0091】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【産業上の利用可能性】
【0092】
この発明は、脈拍検出技術に利用できる。
【符号の説明】
【0093】
10 撮像部、 20 フレーム記憶部、 30 画素値取得部、 32 画素排除部、 34 明るさ変化補償部、 40 時系列画素配列取得部、 50 脈拍データ配列取得部、 60 脈拍検出部、 70 自己相関グラフ記憶部、 80 信頼度計算部、
90 参照グラフ記憶部、 92 エリア信頼度記憶部、 100 脈拍検出装置。