(生体情報処理の概要)
一態様において、本発明は、生体情報を処理するための生体情報処理装置のコンピュータで実行される生体情報処理プログラムを提供する。より具体的には、脈波信号(特に、光電指尖脈波信号)だけを処理することによって、最大相互相関係数ρmaxを連続的に推定する新しい処理方法を生体情報処理装置のコンピュータで実行するための生体情報処理プログラムを開発した。ここで実行される方法は、脈波情報に基づいて、時系列モデルを設定し、その時系列モデルを決定することを介して、最大相互相関係数ρmaxを連続的に推定する。
ここで、使用する時系列モデルとして、重回帰モデルを用いる例を説明する。この方法では、まず、被験体の安静時において、光電脈波信号の特徴量を説明変数とし、数秒先の心拍数を目的変数とする重回帰モデルを求める。ただし、説明変数と目的変数は、帯域通過フィルタを通すことによりマイヤー波帯域に制限されている。
次に、この重回帰モデルに光電脈波信号の特徴量を入力して得られる心拍数の推定値と、脈波に基づく心拍数との間のマイヤー波帯域における相互相関係数をρ(τ)として推定する。ここで、τは時間遅れである。また、脈波に基づく心拍数は、脈波の立ち上がり点の間隔に基づいて算出される。本明細書において使用される場合、この「脈波の立ち上がり点」すなわち、脈波が立ち上がる時刻は、脈波の拍内最大値を与える時刻以前の直近の極小値(雑音が少ない場合は拍内最小値に一致)を与える時刻とする。
このように、血圧の代わりに推定心拍数を使うことができる理由は,安静時のマイヤー波帯域における血圧が約3秒遅れた心拍数とよく相関することによる。
これ以降、このような方法が、実際に有効であることを示す実験について説明し、その後、本方法を実行するプログラムが実装される生体情報処理システムの一例について説明する。
(実験)
上述の生体情報処理システムの特性を評価するため、以下に示す実験を行った。
(実験プロトコル)
本実験の目的は、被験体の各々について脈波および血圧の時系列データを取得して本発明の方法を評価することである。32名の健常被験者(年齢の平均値:23.13歳;年齢の標準偏差:3.56歳;男性24名,女性8名)が、本実験に参加した。本実験のプロトコルは、バルサルバ試験(Valsalva test)である。
具体的には、被験者の各々に、15分間に亘って、その姿勢を座位に保ちつつ、以下の表1に示されるP1からP5までのフェーズの各々で「安静」または「呼吸停止」の状態をとることを要求した。ここで、「呼吸停止」で示される状態は、「バルサルバ操作(Valsalva maneuver)」により達成される状態である。「バルサルバ操作」は、被験者に声門を閉じて強制呼気努力を行わせ、そのまま1分間保持することにより実施した。一般に、バルサルバ操作の際の被験体の圧反射感受性は、低下する。したがって、このときのρmaxも低下し得る。
(表1:実験のプロトコル)
――――――――――――――――――
フェーズ :状態
――――――――――――――――――
・P1) 0分〜 5分:安静
・P2) 5分〜 6分:呼吸停止
・P3) 6分〜 9分:安静
・P4) 9分〜10分:呼吸停止
・P5) 10分〜15分:安静
――――――――――――――――――
図16は、本実験系の概要を示す。図16から理解されるように、被験者の各々は、パーソナルコンピュータに脈波測定用アンプ(BIOPAC社製 PPG100C)を介して接続した脈拍測定トランスデューサ(BIOPAC社製 TSD200)を、その右手人差し指に装着した。ここで、この脈拍測定トランスデューサは、右手人差し指の指尖脈波を取得する。パーソナルコンピュータのプロセッサは、本発明の生体指標算出プログラムを実行し、脈波測定用アンプを介して得られた指尖脈波の信号を入力として取り込み、(脈波情報に基づく)心拍数と、脈波から導出される特徴量に基づいた重回帰モデルにより得られる推定心拍数とを算出する。次いで、本発明の生体指標算出プログラムに従い、上述のプロセッサは、この脈波に基づく心拍数と、推定心拍数に基づいて、脈波に基づいたρmaxを算出する。この本発明の生体指標算出プログラムのおける解析方法の詳細は、後述する。
その被験者の各々はまた、連続血圧計(フィナプレス社製 Portapres)の指先カフを、その右手中指に装着した。連続血圧計は、本発明の生体情報処理プログラムの性能を評価するために連続血圧を取得したものである。
(解析方法)
発明者らは、およそ次の手順で解析を行った。
《1:重回帰モデルの決定》まず安静時において取得された光電脈波信号に基づき、光電脈波信号の特徴量(脈波振幅、脈波拍内平均値、加速度脈波のピーク値など9つ)を説明変数とし、数秒先の心拍数を目的変数とする重回帰モデルを得た。ただし、説明変数と目的変数は帯域通過フィルタを通すことによりマイヤー波帯域に制限されている。
《2:相互相関係数の最大値の算出》次に、この重回帰モデルに光電脈波信号の特徴量を入力して得られる心拍数の推定値(以下、「推定心拍数」)と(脈波の立ち上がり点から次の脈波の立ち上がり点までの時間の長さに基づき算出された)心拍数との間のマイヤー波帯域における相互相関係数をρ(τ)として推定する。ここでτは時間遅れである。時間遅れτを所定の範囲で変動させることで相互相関係数の最大値ρmaxを取得する。なお、血圧の代わりに推定心拍数を使うことができる理由は、安静時のマイヤー波帯域における血圧が約3秒遅れた心拍数とよく相関するからである。
《3:対照用のデータの取得》比較対照のため、連続血圧計で実測された平均値血圧と心拍数の時系列データに基づいて、平均血圧と心拍数との間の最大相互相関係数を算出する。
次に、上述の解析方法を、より具体的に説明する。
(重回帰モデルの決定について)
まず、入力として得られた脈波信号から特徴量を得た過程を、図1を参照して以下に説明する。
図1は、1拍の脈波およびその脈波から導出される波形の一例を示す。この図1に示された脈波は、上述した被験者のうちの1名から得た脈波の一例である。32名の被験者のうち他の被験体も、同様の脈波を取得した。図1の太線、点線、実線および破線は、それぞれ、1拍分の脈波ならびにその速度脈波、加速度脈波および加加速度脈波である。この速度脈波、加速度脈波および加加速度脈波は、それぞれ、脈波の一回微分、二回微分および三回微分することで得られた。すなわち、本実験では、一拍分の脈波が得られるごとに、その速度脈波、加速度脈波および加加速度脈波を計算した。
そして、得られた速度脈波、加速度脈波および加加速度脈波を示す曲線における極値(極大値および極小値)を取得した。以下の説明の簡便のために、図1において示されるに、取得した速度脈波曲線における極値を、時間的に若い方からA(最初の極大点)、B(最初の極小点)、C(第2の極大点),...とする。また、取得した加速度脈波曲線における極値を、時間的に若い方からa(最初の極大点)、b(最初の極小点)、c(第2の極大点),...とする。なお、図3は、図1に示された脈波から導出された特徴量(加速度脈波における極値)の経時変動を示す。
また、図1の太線で示されるような各拍の脈波から、脈波平均値(MP)および脈波振幅(PA)を取得した。図2は、上述の被験者のうちの1名における15分間の試験の間に得られた、脈波平均値(MP)および脈波振幅(PA)の経時的変動を示す。
本実験において、上述したように得られた特徴量(すなわち、極値、脈波平均値および脈波振幅)は、それぞれ、各拍が不等間隔で得られているので,拍間を3次のスプライン関数で補間した後、0.2秒(5Hz)で再サンプリングした。その後、これらの特徴量の各々を、マイヤー波帯域(0.08Hz〜0.12Hz)の帯域通過フィルタに通し、平均値が0となり、標準偏差が1となるように規格化した。
このようにして得られた特徴量の組合せを、重回帰モデルの説明変数として使用した。具体的には、時刻t[s]における、9個の要素からなる入力変数ベクトルを次のように定義した:
ここで、時刻tにおける、速度脈波曲線における第2の極大値B、加速度脈波曲線における最初の極大値aおよび最初の極小値b、ならびに脈波平均値MPおよび脈波振幅PAが、9個の要素のために使用される。なお、説明の簡便のために、x(t)の各要素は、a、b、B、MPおよびPAの組合せを用いて表現しているが、いずれの特徴量においても、マイヤー波帯域(0.08Hz〜0.12Hz)の帯域通過フィルタにより処理され、さらに規格化された後の値を、x(t)の実際の要素として使用した。
次に、入力として得られた脈波信号から心拍数を得た過程を説明する。
本実験では、脈波の立ち上がり点から次の脈波の立ち上がり点までの時間の長さ(いわゆるFoot−Foot間隔(FFI))を心周期[s]とみなして、その逆数に60をかけたもの(=60倍したもの)[min-1]を、心拍数とした。このように得られる心拍数は、心電図信号のR−R間隔から求める心拍数とほぼ同等の情報として用いることができる(なお、別実験で、この二者の間の相関係数が、0.999であるとの結果が得られている(データは示さず))。
なお、本明細書において使用される場合、用語「心周期」または「心拍周期(cardiac cycle)」は、心拍動1回の全経過またはその時間をいう。また、本明細書において使用される場合、用語「心拍動(heart beat)」は、完全な心臓周期をいい、電気的刺激の拡散とそれに続く機械的収縮を含む。
このようにして得られる(脈波に基づく)心拍数を、3次のスプライン関数で補間した後、0.2秒(5Hz)で再サンプリングした。次いで、再サンプリングをした心拍数を、マイヤー波帯域(0.08Hz〜0.12Hz)の帯域通過フィルタに通し、平均値が0,標準偏差が1となるように規格化し、これに−1を乗じた。この結果得られた時系列データは、時刻tの関数として、y(t)で表される。
このようにして得られたy(t)と、先述のx(t)を、後続の計算で用いた。すなわち、これらの時系列データを利用して、重回帰モデルを設定し、決定した。
具体的には、以下の重回帰モデル:
を設定した。ここで、βは、重回帰係数ベクトルであり、L[s]は、現時刻tとの時間的ずれを表現する、時間の次元を有するパラメータ(遅延時間)である。
被験体の各人において、実験で得られたデータのうち安静時の0.5分から4.5分のデータに基づき、遅延時間Lを0秒から6秒まで0.2秒ずつ変化させながら、最小2乗法によって重回帰係数ベクトルβを同定した。すなわち、時間遅延Lを特定の範囲で変化させたときに、最も誤差が小さい重回帰モデルを、最適な重回帰モデルとして決定した。また、この最適なモデルを与えるβおよびLを、それぞれ、β*およびL*として取得した。
ここで、図4は、脈波から得られた特徴量の各要素を説明変数とし、心拍数を目的変数とする重回帰モデルから得られる、時間遅延L[秒]だけ遅らせた心拍数の推定値と、心拍数の間の相関係数を縦軸に取り、横軸を遅延時間Lとして、遅延時間Lを0秒から6秒までの間で変化させてプロットした図である。図4に示した結果は、上述した被験者のうちの1名から得た結果に基づくものである。図4から理解されるように、遅延時間Lが1.4のときに、相関係数rが、0.92164となる。
上述のように、各被験体において、β*を安静時(0.5分間から4.5分間まで)の各特徴量等のデータを利用した。図5は、その0.5分間から4.5分間までにおける、図4に示した結果を与えた被験体から得た、推定心拍数(β*Tx(t))と、脈波に基づいた心拍数の時間波形を示している。また、図6は、図5に示された時間波形の一例に対応する、推定心拍数と心拍数との相関図である。
(相互相関係数の最大値の算出について)
次に、時刻ごとに、得られた重回帰モデルに光電脈波信号の特徴量を入力して得られる心拍数の推定値(以下、推定心拍数)を取得した。すなわち、時刻tにおける推定心拍数は、β*Tx(t)として計算される。これにより、推定心拍数の時系列データを得た。
次に、得られた推定心拍数の時系列データと、上述の脈波に基づく心拍数の系列データとの間で、相互相関係数ρ(τ)を設定した。ここで、τは遅延時間である。そして、この遅延時間τを変動させて、この相互相関係数ρ(τ)の最大値を算出した。
具体的には、次のように計算した。ここで、説明を簡便にするために、上述の推定心拍数の時系列データ、および脈波に基づく心拍数の時系列データを、それぞれ、u(i)およびv(i)(ここで、i=0,1,2・・・)とおく。ここで、この2つの時系列データは、所定のサンプリング周期Δt(例えば、Δt=0.2[s])でサンプリングされた時系列データである。なお、u(i)およびv(i)は、上述のように、0.08Hzと0.12Hzとの間の帯域を有する帯域通過デジタルフィルタでフィルタリングされて、その周波数成分をマイヤー波帯域に制限されている。特定の時点t(ここで、t=i・Δt[s])において、t−60[s]とt+60[s]との間隔を有するハミング窓を、時系列データu(i)およびv(i)に適用した。相互相関係数ρuvは、遅延時間τ(ここで、τ=j・Δt[s]であり;j=・・・,−1,0,1,・・・)について、次のように計算される:
ここで、φuv(τ)は、u(i)とv(i)との間の相互相関関数であり、φuu(0)およびφvv(0)のそれぞれは、自己相関関数である。
そして、最大相互相関係数ρmaxは、所定の区間で変動するτについて、次のように定義される。
本実験において、このτを、以下の4通りの手順に従い、それぞれの場合の最大相互相関係数を計算した:
・[M1]τを−10秒から10秒までに制限して自由に変動させた場合;
・[M2]τを1秒から5秒までに制限して自由に変動させた場合;
・[M3]τを3秒に固定した場合、すなわちρ(3)とした場合;および
・[M4]τを1秒から5秒までに制限して自由に変動させたときの1分から4分までの安静時におけるτmaxの平均値に固定した場合。
(対照用のデータの取得について)
上述の例では、重回帰モデルの決定により推定心拍数を得ることで、相互相関係数の最大値の算出を行った。対照用のデータとして、推定心拍数の代わりに、連続血圧計で得られる平均血圧(血圧計で得られる波形積分して心周期で割った値)を用いて、上述の[M1]から[M4]までと同様の手法により、(血圧に基づく)最大相互相関係数を算出した。
(結果および評価)
上述の手順[M1]から[M4]までに従い算出された各時刻における最大相互相関係数が、32名の被験体の各々について得られた。また、この結果に対応する、連続血圧に基づく測定値が得られた。
図7は、手順[M1]に従い被験体の各々で得られた各時刻おける最大相互相関係数を、時刻ごとに被験体32名全員で平均した値を示す。同様に、図8は、手順[M2]に従い被験体の各々で得られた各時刻おける最大相互相関係数を、時刻ごとに被験体32名全員で平均した値を示す。また、図9は、手順[M3]に従い被験体の各々で得られた各時刻おける最大相互相関係数を、時刻ごとに被験体32名全員で平均した値を示す。さらに、図10は、手順[M4]に従い被験体の各々で得られた各時刻おける最大相互相関係数を、時刻ごとに被験体32名全員で平均した値を示す。
これらの図において、それぞれの上段のグラフは、当該最大相互相関係数の経時変化を示し、下段のグラフは、その最大相互相関係数を与える遅延時間τmaxの経時変化を示している。これらの図の実線の曲線は、推定心拍数に基づいて算出結果を示し、他方、点線の曲線は、連続血圧に基づいて算出した結果を示す。また、点線による枠で囲んだ時間領域は、被験体がバルサルバ操作による呼吸停止状態である時間帯を示している。
図7から図10までに示されるように、最大相互相関係数を算出するために、推定心拍数を用いたとき、および血圧を用いたときのいずれの場合でも、最大相互相関係数ρmaxが最も高かったのは、手順[M1]の結果であり、手順[M2]、[M4]、[M3]の順で得られた最大相互相関係数は低くなっていくことが理解される。しかし、手順[M1]または[M2]で得られた、推定心拍数を用いた場合の結果は、血圧を用いた場合にみられるような呼吸停止時点の変動を十分に表していない。他方、手順[M3]または[M4]で得られた、推定心拍数を用いる場合の結果は、血圧を用いた場合にみられるような呼吸停止時点の変動をやや反映している。
また、[M1]および[M2]が、高い最大相互相関係数を与えながらも、有効なデータとして判断され得ないと解釈され得る理由は、以下のとおりである。
すなわち、通常、安静時の圧反射系は、3秒程度遅れたところで血圧と心拍数の相関が最も高くなる。この遅れ時間の探索範囲を大きく取りすぎると、圧反射(血圧変動を抑えるように心拍数を操作する)とは全く無関係な遅れ時間で相関が高くなることがある。このような場合には、算出された最大相互相関係数が、圧反射という意味を持たなくなるので[M1]または[M2]が高い相関を持ったとしても有効性の乏しいデータとして評価され得る。すなわち、遅れ時間が3秒程度で相互相関係数が最も高くなる場合はそれの指標としての有効性が高いが、これから逸脱した範囲で相関が高くても圧反射としては有効でないと解釈される。
なお、図10で示されるように、手順[M4]の場合において、τmaxは、ほぼ3秒(平均値2.99秒、標準偏差0.97秒)となった。しかし、この場合でも最適なτmaxは、標準偏差が約1秒をとるほどに各被験者間で異なっており、偶然に32名全員の平均値が3秒であったと解釈され得る。
図11は、図9で示されたグラフのうち、手順[M3]に従い被験体の各々で得られた各時刻おける最大相互相関係数を、時刻ごとに被験体32名全員で平均した値のグラフのみを抜粋したものである。
図11は、最大相互相関係数の被験体32名全員の平均値を示している。ここで、図11に示されるように、最大相互相関係数の変動に対する呼吸停止の影響は、鋭敏ではなかった。そこで、安静時でもρmaxが低い被験者が、32名の被験者の中に存在する可能性について検討した。これを検討する理由は、安静時でもρmaxが低い被験者は、呼吸停止時の自律神経反応が鈍いためである。なお、発明者は、脈波信号だけではなく心電図計測を行って得られる脈波伝搬時間と心拍数との間のρ(3)を対象とした実験において、被験者における日常的な運動の効果を、ρ(3)が反映することを見いだしている(データ示さず)。このことは、被験者が全て健常者であっても、自律神経反応の程度は、個人差が存在することを示唆する。
安静時でもρmaxが低い被験者が、32名の被験者の中に存在する可能性について検討するために、具体的には、次のような手順に従い、実験結果を評価した。まず、遅延時間τを3秒に固定した推定心拍数に基づく最大相互相関係数(すなわち、手順[M3]に従った結果)のうち、0分から4分までの安静時のρ(3)の平均値が0.4以上である被験者を、選択した。その結果、15名の被験体が得られた。図12は、これらの被験者についてのみρ(3)の平均値を算出した結果を示す。図12から理解されるように、呼吸停止時のρ(3)の下降がやや大きくなった。
ここで、被験者の選択に用いた平均値の閾値を、0.4としたのは、次の理由による。圧反射の感度を表す収縮期血圧変動に対する心拍数変動の比であるαインデックスは、0.1Hz付近で線形相関性を表すコヒーレンス関数が0.5以上であれば、定義できることが一般に知られている(例えば、http://www.cbi.dongnocchi.it/glossary/AlphaIndex.html)。ここで、このコヒーレンス関数は、ρmaxに数学的にはほぼ等価とみなせるため、0.5に近い0.4を上述の閾値に選択した。さらに、この0.4を閾値とするとこの値以上で全被験者のほぼ半数となるために、統計的な解釈が容易となる。
同様にして、この閾値を0.5、0.6または0.7として被験体を選別した。閾値として0.5、0.6および0.7を用いたときに選択された被験体の数は、それぞれ、9名、6名および4名であった。図13、図14および図15は、それぞれ、閾値として0.5、0.6および0.7を用いたときに選択された被験体のみについて、ρ(3)の平均値を算出した結果を示す。
図13、図14および図15から理解されるように、呼吸停止時のρ(3)の下降の程度が、閾値を0.5、0.6または0.7とするに従い、大きくなっている。しかも、安静時の推定心拍数に基づくρ(3)は、血圧に基づくρ(3)に近接していくことが理解される。このことは、最大相互相関係数が被験体の圧反射機能の個人的な優劣を敏感に反映し、対象者の自律神経機能の性能をよく表す指標であることを意味する。すなわち、安静時において、ρ(3)が高い被験体は呼吸停止に対する自律神経反応と呼応した明確なρ(3)の変化を示すのに対して、安静時においてρ(3)が低い被験体は、呼吸停止に対する自律神経反応と呼応が鈍いρ(3)の変化を示す。
そして、この実験結果から判断すると、ρ(3)の大きさを見ることにより自律神経機能の優劣を判断することができると考えられる。このことは、バルサルバ試験をすることなしに、安静時のρ(3)を見るだけで対象者の自律神経機能の優劣を推定できる可能性を示すものである。また、脈波信号に基づくρ(3)の呼吸停止に対する変化は、血圧に基づくρ(3)より顕著であることも、脈波信号に基づくρ(3)が、血圧計測が不要であるにもかかわらず優れた指標であることを示唆している。
なお、手順[M1]および[M2]に従って得られた結果においても、手順[M3]の場合(ρ(3)のとき)と同様に、閾値を0.4、0.5、0.6または0.7として、データを選別した上でその評価を行ったが、[M1]および[M2]の手順に従った場合の最大相互相関係数は、呼吸停止時点の変動を十分に表さないことが確認された(データ示さず)。
また、手順[M4]については、手順[M3]の場合(ρ(3)のとき)と同様に、閾値を0.4、0.5、0.6または0.7として、データを選別した上でその評価を行ったが、その結果は、[M3]と同様に、呼吸停止時の最大相互相関係数ρmaxの下降の程度が、閾値を0.5、0.6または0.7とするに従い、大きくなっていることを示している(データ示さず)。しかも、安静時の推定心拍数に基づくρ(3)は、血圧に基づくρ(3)に近接していく傾向も担保されている。
以上の実験の結果から、次の結論が得られる。
まず、脈波の特徴量を入力とする重回帰モデルによる推定心拍数と、(FFIに基づき算出された)心拍数の間のρmaxは、血圧に基づくρmaxと安静時によく相似する。
次に、推定心拍数に基づくρmaxが、安静時に高い被験者ほどこの指標が呼吸停止時により大きく減少した。この反応は、血圧を直接計測する場合のρmaxよりもむしろ敏感であり、推定心拍数に基づくρmaxは、被験者の圧受容器反射に関係する自律神経機能の相違をより明瞭に表す指標であると言える。
実用的には、遅延時間τが1秒から5秒に制限された場合のτmaxの平均値である、
を使った、
を使用するか、あるいは、τを3秒に固定したρ(3)を使用すると、鋭敏なρmaxの推移が得られる。
本明細書のこれ以降の記載において、上述したように被験体の自律神経系の機能の有用な指標を与える、脈波情報にのみに基づき時系列モデル(例えば、重回帰モデル)を決定することによる本発明の方法を実装した生体情報処理システムの一例の具体的な説明を行う。
(生体情報処理システム)
(生体情報処理システムの基本構成)
図17を参照して、本発明の生体情報処理プログラムを実行する生体情報処理システムの一例について説明する。以下、説明を具体的にするために、当該生体情報処理システムとして、据置型のゲーム装置本体5を含むゲームシステム1を用いて説明する。ここで、図17は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。また、図18は、ゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。
図17において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機2(以下、モニタ2と記載する)と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、本発明の情報処理プログラムの一例である生体情報処理プログラムを記録した光ディスク4と、当該光ディスク4の生体情報処理プログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
また、ゲーム装置本体5は、無線コントローラモジュール19(図18参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図18参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶された生体情報処理プログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、生体情報処理プログラム等は、光ディスク4に限らず、フラッシュメモリ17に予め記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えば、Bluetooth(ブルートゥース;登録商標)の技術を用いて操作情報および生体情報等の送信データを無線送信する。
コントローラ7は、コアユニット70およびバイタルセンサ76を備えており、コアユニット70およびバイタルセンサ76が屈曲自在な接続ケーブル79を介して互いに接続されて構成されている。コアユニット70は、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。バイタルセンサ76は、ユーザの身体(例えば、指)に装着されてユーザの生体信号を取得し、接続ケーブル79を介してコアユニット70へ生体情報を送る。
コアユニット70は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。
また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
なお、本実施例では、コアユニット70とバイタルセンサ76とを屈曲自在な接続ケーブル79で接続したが、バイタルセンサ76に無線ユニットを搭載することで、接続ケーブル79をなくすこともできる。例えば、無線ユニットとしてBluetooth(登録商標)ユニットをバイタルセンサ76に搭載することで、バイタルセンサ76からコアユニット70やゲーム装置本体5へ生体情報データを送信することが可能になる。また、コアユニット70にバイタルセンサ76を固定して設けることによって、コアユニット70とバイタルセンサ76とを一体構成してもかまわない。この場合、ユーザは、コアユニット70と一体でバイタルセンサ76を扱うことができる。
(ゲーム装置本体の内部構成)
次に、図18を参照して、ゲーム装置本体5の内部構成について説明する。図18は、ゲーム装置本体5の構成を示すブロック図である。ゲーム装置本体5は、CPU(Central Processing Unit)10、システムLSI(Large Scale Integration)11、外部メインメモリ12、ROM/RTC(Read Only Memory/Real Time Clock)13、ディスクドライブ14、およびAV−IC(Audio Video−Integrated Circuit)15等を有する。
CPU10は、光ディスク4に記憶された生体情報処理プログラムを実行することによって生体情報処理プログラムを実行するものであり、生体情報処理プロセッサとして機能する。また、生体情報処理プログラムにゲームアプリケーションが含まれる場合、CPU10は、光ディスク4に記憶されたゲームアプリケーションを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。
CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出された生体情報処理プログラムや、フラッシュメモリ17から読み出された生体情報処理プログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
GPU32は、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU32は、VRAM34に記憶されたデータを用いて画像データを作成する。
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、生体情報処理プログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出して生体情報処理プログラムで利用する。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。なお、内部メインメモリ35には、外部メインメモリ12と同様に、光ディスク4から読み出された生体情報処理プログラムや、フラッシュメモリ17から読み出された生体情報処理プログラム等のプログラムを記憶したり、各種データを記憶したりしてもよく、CPU10のワーク領域やバッファ領域として用いられてもかまわない。
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオン状態にされると、ゲーム装置本体5の各構成要素に対して、図示しないACアダプタを介して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体5の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
(コントローラの内部構成)
次に、図19を参照して、コントローラ7の内部構成について説明する。なお、図19は、コントローラ7の構成の一例を示すブロック図である。
図19において、コアユニット70は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。また、バイタルセンサ76は、接続ケーブル79とコネクタ791および73とを介して、マイコン751と接続される。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えば、CMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
コアユニット70は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、少なくとも1軸方向(例えば、Z軸方向)に沿った直線加速度を検知する加速度検出手段を使用してもよい。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
加速度センサ701に用いられるような加速度検出手段は、加速度センサ701の持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、それら3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)等のコンピュータが処理を行うことによって、コアユニット70に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
例えば、加速度センサ701を搭載するコアユニット70が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ701によって検出される加速度が重力加速度のみであるとして処理する場合)、コアユニット70が現実に静的な状態であれば、検出された加速度に基づいてコアユニット70の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。
具体的には、加速度センサ701の検出軸が鉛直下方向を向いている状態を基準としたとき、当該検出軸方向に1G(重力加速度)が作用しているか否かだけでコアユニット70が鉛直下方向に対して傾いているか否かを知ることができる。また、上記検出軸方向に作用している加速度の大きさによって、コアユニット70が鉛直下方向に対してどの程度傾いているかも知ることができる。また、多軸方向の加速度を検出可能な加速度センサ701の場合には、さらに各軸に対して検出された加速度の信号に対して処理を施すことによって、重力方向に対してコアユニット70がどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ701からの出力に基づいて、プロセッサがコアユニット70の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ701からの出力に基づいて、おおよそのコアユニット70の傾き具合を推定するような処理としてもよい。このように、加速度センサ701をプロセッサと組み合わせて用いることによって、コアユニット70の傾き、姿勢、または位置を判定することができる。
一方、加速度センサ701が動的な状態であることを前提とする場合には、当該加速度センサ701が重力加速度成分に加えて加速度センサ701の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、コアユニット70の動き方向等を知ることができる。
具体的には、加速度センサ701を備えるコアユニット70がユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コアユニット70の様々な動きおよび/または位置を算出することができる。なお、加速度センサ701が動的な状態であることを前提とする場合であっても、加速度センサ701の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するコアユニット70の傾きを知ることが可能である。
他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵された加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組み込み式信号処理装置または他の種類の専用処理装置を備えていてもよい。例えば、組み込み式または専用の処理装置は、加速度センサ701が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。加速度センサ701でそれぞれ検知された加速度を示すデータは、通信部75に出力される。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
コアユニット70に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。また、接続ケーブル79を介して、バイタルセンサ76からの生体信号(生体情報データ)は、マイコン751に出力される。
マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ、生体情報データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に記憶する。ここで、通信部75から無線コントローラモジュール19への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。
具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に記憶されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ754から放射する。つまり、コアユニット70に設けられた操作部72からのキーデータと、加速度センサ701からのX、Y、およびZ軸方向加速度データと、撮像情報演算部74からの処理結果データと、バイタルセンサ76からの生体情報データとがコアユニット70から送信される。そして、ゲーム装置本体5の無線コントローラモジュール19でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ、生体情報データ)を取得する。そして、ゲーム装置本体5のCPU10は、取得した操作情報と生体情報処理プログラムとに基づいて、情報処理を行う。なお、ブルートゥース(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
(バイタルセンサの基本構成)
次に、図20および図21を参照して、バイタルセンサ76について説明する。バイタルセンサ76は、脈波検出装置としての機能を担うとともに、検出された脈波信号を利用するために付随する所定の情報処理を行う機能を担う。なお、図20は、バイタルセンサ76の構成の一例を示すブロック図である。図21は、バイタルセンサ76から出力される生体情報の一例である脈波情報の例を示す図である。
図20において、バイタルセンサ76は、制御部761、発光部762、および受光部763を備えている。
発光部762および受光部763は、ユーザの生体信号を得るセンサの一例であり、透過型指尖容積脈波センサを構成する。発光部762は、例えば赤外線LEDで構成され、所定波長(例えば、940nm)の赤外線を受光部763に向けて照射する。一方、受光部763は、発光部762が照射する波長に応じて照射される光を受光し、例えば赤外線フォトレジスタで構成される。そして、発光部762と受光部763とは、所定の間隙(空洞)を介して配置されている。
ここで、人体の血液中に存在するヘモグロビンは、赤外線を吸光する性質をもっている。例えば、上述した発光部762および受光部763間の間隙にユーザの身体の一部(例えば、指先)を挿入する。これによって、発光部762から照射された赤外線は、挿入した指先内に存在するヘモグロビンで吸光された後、受光部763で受光される。
一方、心拍によって血管および血液中を伝播する波(脈波)が生じている。このため、人体の動脈は拍動し、当該拍動に応じて動脈の太さが変化する。すなわち、脈波は、身体組織のある部分への血液の流入によって生じる容積変化を体表面から波形として捉えることが可能である。したがって、バイタルセンサ76に挿入した指先内の動脈も同様の拍動が生じており、当該拍動に応じて血流量が変化するため、当該血流量に応じて吸光される赤外線の量も変化する。すなわち、心臓の動きそのものではなく、末梢血管の運動を測定することによっても、心拍関連情報(例えば、心電図R−R間隔)と同様の意味を持つ情報が取得可能である。なお、心電図のR波は心室筋、すなわち、心室の収縮を示しており、1分間のR波の数が心拍数という解釈ができる。このR波とその次のR波との間隔がR−R間隔である。そして、R−R間隔は心拍数の逆数なので、R−R間隔が長いということは、心拍数が少ないということを意味している。逆に、R−R間隔が短いということは、心拍数が多いということを意味している。
図21は、バイタルセンサ76から出力される生体情報の一例である脈波情報の例である。図21において、脈波の立ち上がり点から次の脈波の立ち上がり点までの時間の長さ(すなわち、いわゆるFFI(Foot−Foot Interval))を示した。前述のように、このFFIを心周期[s]とみなして、その逆数に60をかけたもの(=60倍したもの)[min-1]を心拍数として取得することが可能である。
具体的には、挿入した指先内の血流量が多い場合、ヘモグロビンで吸光される量も増加するために受光部763で受光する赤外線の光量が相対的に少なくなる。他方、挿入した指先内の血流量が少ない場合、ヘモグロビンで吸光される量も減少するために受光部763で受光する赤外線の光量が相対的に多くなる。
発光部762および受光部763は、このような動作原理を利用し、受光部763で受光する赤外線の光量を光電信号に変換することによって、人体の脈拍を検出している。例えば、図21に示すように、挿入した指先内の血流量が増加した場合に受光部763の検出値が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降する。このように、受光部763の検出値が脈動する脈波部分が、脈波信号として生成される。なお、受光部763の回路構成によって、挿入した指先内の血流量が増加した場合に受光部763の検出値が下降し、挿入した指先内の血流量が減少した場合に受光部763の検出値が上昇するような脈波信号を生成してもかまわない。
制御部761は、例えば、MCU(Micro Controller Unit)で構成される。制御部761は、発光部762から照射される赤外線の光量を制御する。また、制御部761は、受光部763から出力された光電信号(脈波信号)をA/D変換して脈波データ(生体情報データ)を生成する。そして、制御部761は、接続ケーブル79を介して、脈波データ(生体情報データ)をコアユニット70へ出力する。
(生体情報処理および生体情報処理プログラムの概要)
次に、ゲーム装置本体5が行う具体的な処理を説明する前に、図22を参照しつつ、本ゲーム装置本体5で行う処理、およびその処理を担う生体情報処理プログラムの概要について説明する。
ここで、図22は、本実施形態において行われる処理の過程で、モニタ2に表示される一連の画像の一例を示す図である。
まず、ゲーム装置本体5のプロセッサが、ゲームアプリケーション(例えば、後述のメモリマップにおけるD12で記載されているゲームアプリケーション)を実行している際に、当該プロセッサは、そのゲームアプリケーションと協働して、生体情報処理プログラムも実行する。ここで、ゲーム装置本体5は、ユーザに対してバイタルセンサ76を装着するようにモニタ2など介して促し、バイタルセンサ76により検出された一連の脈波信号を入力として受け取る。次いで、ゲーム装置本体5は、ユーザに対して安静にするように指示する。そして、当該プロセッサは、次のような生体情報処理を行う。
上述のプロセッサは、この安静時において光電脈波信号の特徴量を説明変数として心拍数(または心拍数に相当する変数)を目的変数とする重回帰モデルを求める。次に、プロセッサは、このモデルに光電脈波信号の特徴量を入力して得られる心拍数の推定値と、脈波に基づき得られた心拍数との間のマイヤー波帯域における最大相互相関係数をρmaxとして推定する。この場合の心拍数の推定値が血圧の代用とできる理由は、安静時のマイヤー波帯域における血圧と心拍数の間の相互相関が強いため、光電脈波信号の特徴量の重回帰モデルの出力が血圧情報に近ければ、この出力が心拍数とよく相関するからである。
そして、プロセッサは、上述の得られた最大相互相関係数ρmaxを評価し、評価結果に基づいて、モニタ2などを介してユーザの所定の提示を行う。図22は、このような提示の一例を示す。
(生体情報処理の詳細)
次に、ゲームシステム1において行われる情報処理、特に、生体情報処理の詳細を説明する。
まず、図24を参照して、当該生体情報処理において用いられる主なデータについて説明する。
(生体情報処理において用いられる主なデータ)
図24は、上記生体情報処理システムにおける主要なデータを示すメモリマップである。このメモリマップに示される各種データは、VRAM34、内部メインメモリ35などを含むゲーム装置本体5が有する記憶領域の所定の位置に記憶され、生体情報処理プログラムの処理において、ゲーム装置本体5が要求するタイミングで、必要とするデータが読み出され、利用される。
プログラム群D10は、主に、以下のプログラム群を含む。
生体情報処理プログラムD11は、本実施形態の生体情報処理システムで行われる一連の処理を統合するためのプログラム群である。
ゲームアプリケーションD12は、生体情報処理プログラムD11と協働して実行されるゲームアプリケーションの一例である。
生体指標算出用データD20は、本発明の方法に従って生体指標算出を行うときに必要なデータ群である。以下、領域D21から29に示されるデータは、ゲーム装置本体5のプロセッサが、生体情報処理を行う際に利用されるデータのうちの主な例である。
脈波瞬時値データD21は、生体情報処理システムにおける脈波検出装置を介して得られる一群の脈波信号の瞬時値データである。
心拍数データD22は、生体情報処理システムにおける脈波検出装置を介して得られる一群の脈波信号(より具体的には、脈波の立ち上がり点の間隔)に基づいて算出された心拍数データである。
特徴量データD23は、生体情報処理システムにおける脈波検出装置を介して得られる一群の脈波信号に基づき算出された一群の特徴量のデータである。
規格化心拍数データD24は、心拍数データD22に記載される心拍数データが、マイヤー波帯域(0.08Hz〜0.12Hz)の帯域通過フィルタに通し、平均値が0,標準偏差が1となるように規格化されることで得られるデータである。
規格化特徴量データD25は、心拍数データD23に記載される特徴量の各々が、マイヤー波帯域(0.08Hz〜0.12Hz)の帯域通過フィルタに通し、平均値が0,標準偏差が1となるように規格化されることで得られるデータである。
目的変数データD26は、生体情報処理システムにより設定される重回帰モデルの目的変数データである。
説明変数データD27は、生体情報処理システムにより設定される重回帰モデルの説明変数データである。
重回帰係数ベクトルデータD28は、生体情報処理システムにより設定される重回帰モデルの重回帰係数ベクトルデータである。
相互相関係数データD29は、生体情報処理システムにより算出される一群の相互相関係数データである。
(生体情報処理プログラム)
図23Aを参照して、生体情報処理プログラムによる、生体情報処理について説明する。生体情報処理プログラムは、バイタルセンサ76から得られる脈波信号を入力情報として、生体指標算出処理を含む生体情報処理を行うためのプログラムである。
図23Aは、生体情報処理プログラムよる生体情報処理の流れを示すフローチャートである。
後述する生体指標算出処理は、脈波の瞬時値を一拍ごとに読み込む過程(図23B、ステップ100)から開始するが、生体情報処理プログラムは、当該生体指標算出処理を行う前に行うべき、前処理(図23Aのステップ1)を適宜行うように構成される。例えば、脈波信号をユーザから得るバイタルセンサ76(およびそれに接続するコアユニット70)は、検出した脈波のデータをゲーム装置本体5に対して送信するが、当該脈波データは一定量がバイタルセンサ76(またはコアユニット70)に蓄積されてからゲーム装置本体5に送信されてもよい。このとき、そのような一連の脈波データを受信したゲーム装置本体5のプロセッサは、生体指標算出処理(図23Aのステップ2;図23B)を行うために、当該一連の脈波データの平滑化、差分、拍の切り出しなどの前処理を、生体情報処理プログラムに従い適宜行う。
他方、生体情報処理の過程において、生体指標算出処理の後、後処理(図23Aのステップ3)が行われる。この後処理は、生体指標算出処理で得られた生体指標(例えば、最大相互相関係数ρmax)に基づき、ユーザに対して所定の提示が行われる処理である。
ここで、ユーザに対して行われる提示は、得られた生体指標が利用される用途に応じて
、その提示の時期、頻度などを含む態様が適宜変更され得る。
以下、ユーザから得られた脈波情報が、順次、生体指標算出処理に供される態様を説明する。
(生体指標算出処理の具体的な流れ)
以下に、ゲーム装置本体5のプロセッサ(CPU10)が行う生体指標算出処理の具体的な流れを説明する。
図23Bを参照して、ゲーム装置本体5のプロセッサ(以下、単にプロセッサと称す)が、生体情報処理プログラムD11に従って実行する生体指標算出処理の流れを説明する。図23Bは、上記実施形態における、生体指標算出処理の一例を示すフローチャートである。本図および後続の図では、「ステップ」を、「S」と略記する。
ステップ100において、プロセッサは、脈波信号の瞬時値の取得を行う。
ステップ101において、プロセッサは、所定の拍数分(以下、P1個とする)の脈波の瞬時値が蓄積されたか否かを判断する。プロセッサが、P1個の脈波の瞬時値が蓄積されたと判断した場合(ステップ101のYESの場合)、プロセッサは、ステップ102の処理に進む。他方、ステップ101において、プロセッサが、P1個の脈波の瞬時値が蓄積されていないと判断した場合(ステップ101のNOの場合)、プロセッサは、ステップ101の処理に戻る。なお、本実施形態において、所定拍数P1は、脈波の呼吸性変動を吸収できるくらいの拍数(例えば、7拍)に設定される。ここで、「脈波の呼吸性変動と吸収できる」とは、脈波に含まれる呼吸に伴って変動する低周波成分(約0.3Hz前後)である呼吸性変動成分が、脈波の特徴量抽出の精度に影響を与えないということである。
ステップ102において、プロセッサは、P1個分の脈波の瞬時値に対して、平滑化処理、規格化処理および差分処理を行なう。
ここで、プロセッサは、平滑処理としてバンドパスフィルタリングを行う。より具体的には、プロセッサは、低域カットオフ周波数が0.01Hzであり、高域カットオフ周波数が10Hzである2次のバターワース型バンドパス・ディジタル・フィルタを上述の瞬時値に適用する。
また、プロセッサは、この平滑化処理された瞬時値に対して、平均値が0で標準偏差が1となるような規格化を行う。
さらに、プロセッサは、差分処理を行う。より具体的には、プロセッサは、規格化された脈波信号に、次数が3のメジアン・デジタル・フィルタを適用し、その信号を1階差分をとり脈波速度信号とする。プロセッサは、その脈波速度信号に対して、次数が8のメジアン・デジタル・フィルタを掛け、その信号の1階差分をとり脈波加速度信号とする.その脈波速度信号に対して、次数が8のメジアン・デジタル・フィルタを掛け、その信号の1階差分をとり脈波加加速度信号とする。上記のメジアン・デジタル・フィルタを掛ける理由は、差分処理によって強調される突発的な雑音を抑制するためである。次に、プロセッサは、ステップ103の処理に進む。
ステップ103において、プロセッサは、脈波に基づく心拍数を取得する処理を行う。具体的には、プロセッサは、脈波の立ち上がり点から次の脈波の立ち上がり点までの時間の長さ(すなわち、いわゆるFoot−Foot間隔(FFI))を心周期[s]とみなして、その逆数に60をかけたもの(=60倍したもの)[min-1]を心拍数として取得する。すなわち、プロセッサは、脈波のみから心拍数を算出し、心拍数の時系列データとして蓄積する。
ここで、プロセッサは、FFIを算出するために、脈波の立ち上がり点の各々を次のように同定する。まず、プロセッサは、次のような演算をすることで、脈波の立ち上がり点を同定する。
説明の簡便のために、サンプリング周期毎に増えるインデックス(離散時刻)をパラメータkで表す。また、離散時刻kにおける、脈波速度をX(k)とし、脈波加速度をY(k)とする。
[1]P1拍の間における、X(k)の最大値の0.6倍をPivotXとし、Y(k)の最大値の0.25倍をPivotYとする。
[2]初期値状態として、k=1とする。
[3]状態点(X(k),Y(k))からピボット座標(PivotX,PivotY)を引いたものを新たな状態点とし、そのX座標に負号をつけたものを(XX(k),YY(k))とする。すなわち、
XX(k)=−(X(k)−PivotX);および
YY(k)=Y(k)−PivotY
とおく。
[4]状態点(XX(k),YY(k))の偏角θ(k)を、次の式、
θ(k)=tan-1(YY(k)/XX(k))
に基づき計算する。
[5]偏角θ(k)の時間差分Θ(k)を、次の式、
Θ(k)=θ(k)−θ(k−1)
に基づき計算する。
[6]得られたΘ(k)の絶対値|Θ(k)|が3rad以上であれば、このときのkを、その拍での拍開始時刻として記憶する。
[7]パラメータkをインクリメントする(すなわち、k=k+1とする)。このとき、kが、P1拍以内であれば上述の[3]へ戻り、kがP1拍を越えていれば脈波の立ち上がり点の同定処理を終了する。
ステップ104において、プロセッサは、各拍ごとの脈波瞬時値から得られる速度脈波の極値、加速度脈波の極値、脈波瞬時値の平均値および振幅を含む複数の脈波に基づいた特徴量を取得する。ここで、プロセッサが各拍の脈波から取得する具体的な特徴量は、例えば、図1に示される内容に基づき、次のように示される。
まず、プロセッサは、図1の太線で示されるような各拍の脈波から、脈波平均値(MP)および脈波振幅(PA)を、上述の特徴量の1つとして算出する。ここで、脈波平均値は、各拍の脈波において、サンプリング周期毎に脈波信号を累積加算していき、その総和をその拍での総サンプリング数で除することによって算出される。また、脈波振幅は、各拍の脈波の波形における振幅の最大値から開始時の値を引いたものとして定義される。
次に、プロセッサは、図1の点線で示される速度脈波(脈波を1回微分することより得られる波形)を算出する。そして、プロセッサは、その速度脈波の極値を、時間的に若い方からA(最初の極大点)、B(最初の極小点)、C(第2の極大点),...として取得する。プロセッサは、これらの極値を特徴量として特徴量データD25に記憶する。
プロセッサは、図1の実線で示される加速度脈波(脈波の2回微分することにより得られる波形)を算出する。そして、プロセッサは、その加速度脈波の極値を、時間的に若い方からa(最初の極大点)、b(最初の極小点)、c(第2の極大点),...として取得する。プロセッサは、これらの極値を特徴量として特徴量データD25に記憶する。
上述した脈波に基づいた特徴量の各々は、拍間変数である。したがって、プロセッサは、このような脈波の特徴量の時系列データを、3次のスプライン関数により補間し、0.2秒(5Hz)で再サンプリングした後に、(等間隔の時系列データとして)特徴量データD25に記憶する。
ステップ105において、プロセッサは、得られた脈波に基づく心拍数(ステップ103参照)および脈波特徴量(ステップ104参照)に、0.08Hzと0.12Hzとの間の帯域を有する帯域通過デジタルフィルタにてフィルタリングを適用することで、それらをマイヤー波帯域成分に制限する。次いで、プロセッサは、これらのフィルタリングされた時系列データのそれぞれを、平均値が0であって標準偏差が1となるように規格化を行い、規格化心拍数データD24および規格化特徴量データD25に記憶する。次いで、プロセッサは、ステップ106の処理に進む。なお、ステップ105において、プロセッサは、フィルタリングされた時系列データの規格化を適宜省略することが可能である。
ステップ106において、プロセッサは、ステップ105で得られた規格化心拍数データD24に記憶されている、時刻tの心拍数のマイヤー波帯域成分が規格化されたものに−1を乗じ、これをy(t)として設定し、目的変数データD26に記憶する。次いで、プロセッサは、ステップ107の処理に進む。
ステップ107において、プロセッサは、ステップ105により得られた脈波に基づいた特徴量の規格化されたマイヤー波帯域成分を各要素とする時刻tの入力変数ベクトルx(t)を設定し、説明変数データD27に記憶する。具体的には、この時刻tにおける入力変数ベクトルは、次のように定義される。
ここで、入力変数ベクトルx(t)の要素の各々は、ステップ104で例示された各拍の脈波、速度脈波および加速度脈波において定義づけられる値である。すなわち、aは、各拍の加速度脈波において、時間的に若い方からみて最初の極大点に対応する値である。また、bは、各拍の加速度脈波において、時間的に若い方からみて最初の極小点に対応する値である。また、MPは、脈波平均値であり、他方、PAは、脈波振幅である。ただし、これらの特徴量は、ステップ105で示されるように、それぞれの特徴量の規格化処理等が施された後の値である。
ステップ108において、プロセッサは、規格特徴量データD25を参照することで、所定拍数分(以下、P2個とする)の特徴量が蓄積されたか否かを判断する。プロセッサが、P2個の特徴量が蓄積されたと判断した場合(ステップ108のYESの場合)、プロセッサは、ステップ109の処理に進む。他方、ステップ108において、プロセッサが、P2個の特徴量が蓄積されていないと判断した場合(ステップ108のNOの場合)、プロセッサは、ステップ100の処理に戻る。本実施形態では、所定拍数P2は、120拍に設定される。このP2は、後述の重回帰モデルを決定するのに十分な数の拍数であればよく、120拍に限定される必要はない。
ステップ109において、プロセッサは、時間遅延L[秒]だけ遅れたときのy(t)を、y(t−L)とおく。次いで、プロセッサは、ステップ110の処理に進む。
ステップ110において、プロセッサは、目的変数データD26を参照して、y(t−L)を目的変数とし、他方、説明変数データD27を参照して、x(t)を説明変数とする重回帰モデルを設定する。
ステップ111において、プロセッサは、時間遅延Lを特定の範囲で変化させたときに、最も誤差が小さい重回帰モデルを、最適な重回帰モデルとして決定する。
ステップ112において、プロセッサは、上述の最適な重回帰モデルから心拍数の推定値を求める。
ステップ113において、プロセッサは、上記の心拍数の推定値と「脈波に基づく心拍数」との間の相互相関係数ρ(τ)を設定する。
ステップ114において、プロセッサは、遅延時間τの求め方をいくつか変えたときのρmaxをそれぞれ求める。このとき、プロセッサは、例えば、上述した実験における[M3]または[M4]などの手順に従い、最大相互相関係数を計算する。
(変形例その他)
上述した例では、ゲームシステム1が、本発明の生体情報処理プログラムを実行する例示的な態様を説明した。しかしながら、本発明の生体情報処理が実装されるものは、このようなゲームシステムに限定されない。
その他の実装例としては、例えば、映像酔いを引き起こす可能性がある大画面テレビや、プロジェクタなどに付属して、ユーザに注意を喚起するための安全装置などが挙げられる。つまり、そのような家電製品を利用するユーザが、本発明の脈波に基づく生体情報処理装置を組み込んだ当該安全装置を利用しつつ、その家電製品を使用することにより、ユーザの自律神経系に関連する状態が当該ユーザに提示される。
また、本発明の生体情報処理システムは、移動体において応用されてもよい。例えば、自動車を運転するドライバーに注意を喚起するための装置に利用されてもよい。このような生体情報処理システムは、運転中のドライバーから取得した脈波情報に基づき、当該ドライバーの情動反応などを含む自律神経系の状態を定量的に把握し、必要に応じて音声・振動などで、運転時の危険に対する注意をドライバーに喚起することができる。
また、ρmaxが情動反応を反映するため、本方法とインターネットにつながったゲーム機を組み合わせることにより、多数の被験者からの計測情報に基づいたテレビ番組や映画の最も興味あるシーンの定量的判定を行うことが可能になると期待される。特に、ゲームの3D化の生体影響などを本方法で調査することも可能となる。
また、上記実施例では、据置型のゲーム装置3に本願発明を適用した例を説明したが、ゲーム装置3で行われる同様の生体情報処理を実行する生体情報処理装置であればよく、例えば一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)、携帯ゲーム装置等のデバイスにも適用することができる。
上述の例では、最大相相関係数ρmaxを脈波情報のみから算出する方法において、重回帰モデルを使用して当該算出を行う際に、重回帰モデルの決定のために最小2乗法を利用した。しかしながら、重回帰モデルを決定する方法は、最小2乗法に限られない。例えば、最小2乗法の代わりに、最尤法が、重回帰モデルを決定するために使用されてもよい。
また、上述の例では、最大相相関係数ρmaxを脈波情報のみから算出する方法を、重回帰モデルを使用して行う例に基づき本発明の例示的な実施形態を説明してきたが、この重回帰モデルの代わりに、別の時系列モデルを利用してそのモデルを脈波情報のみに基づき決定することにより最大相相関係数ρmaxを得てもよい。
上述の本発明の生体情報処理システムの一例では、静的な入出力関係を記述する重回帰モデルを使用した。生体情報処理システムの別例では、この重回帰モデルの代わりに、現在ばかりでなく複数の過去の時刻の変数を利用するために動的な入出力関係もモデル化する時系列モデルを用いてもよい。すなわち、当業者は、重回帰モデルを用いた本明細書の記載される知見の基づき、動的な入出力関係もモデル化する時系列モデルを用いてその手法を拡張することで、所望の指標の精度向上を図ることが可能である。
本件に適用できる時系列モデルとしては、例えば、自己回帰移動平均外性入力モデル(autoregressive moving average model with exogenous input;ARMAXモデル)や、その特別な場合である、自己回帰外性入力モデル(autoregressive model with exogenous input;ARXモデル)あるいは移動平均モデル(moving average model;MAモデル)などが挙げられる。
上述した本発明の生体情報処理システムの一実施形態においては、脈波に基づく心拍数が、脈波の立ち上がり点の間隔に基づいて算出された。この「脈波の立ち上がり点」すなわち、脈波が立ち上がる時刻は、脈波の拍内最大値を与える時刻以前の直近の極小値(雑音が少ない場合は拍内最小値に一致)を与える時刻として算出される。そして、脈波の立ち上がり点から次の脈波の立ち上がり点までの時間の長さに基づき、心拍数が算出された。
しかしながら、心拍数あるいは心周期または心拍動に関する情報を得るために、脈波の形状における特徴を取得する方法は、この脈波の立ち上がり点を基準する方法に限られない。すなわち、別の実施形態において、本発明の生体情報処理システムは、脈波瞬時値データD21を参照して脈波の所定の形状特徴を示す点を検出し、心拍数あるいは心周期または心拍動に関する情報を取得することが可能である。この形状特徴を示す点は、所定の情報処理を介して、心拍数あるいは心周期または心拍動に関する情報に関連づけることのできる点であれば、脈波の形状特徴を示す点のうちいずれであってもよい。このような点としては、脈波が極小値となる点または脈波が極大値となる点だけでなく、心拍動に連動して被験体の特定の血管が収縮または膨張する速度が最大となる点、当該血管が収縮または膨張する加速度が最大となる点などが挙げられるが、これに限定されない。
別の実施形態において、生体情報処理プログラムD11の構成する個々の部分が同時並行的に複数のコンピュータ上で実行され、それらがネットワークを介して互いに通信しあう形態(分散システム)で実施されてもよい。
また、上記生体情報処理プログラムD11は、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。
また、その生体情報処理プログラムD11は、ゲーム装置本体5内部の不揮発性記憶装置にあらかじめ記録されていてもよい。なお、生体情報処理プログラムD11を記憶する情報記憶媒体としては、任意のコンピュータ読み取り可能な記憶媒体であればよく、例えば、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
なお、上記実施形態では、生体情報処理プログラムD11と、その他のゲームアプリケーションD12とを別個に設けている。しかしながら、この構成はあくまでも一例である。したがって、ゲームアプリケーションD12の中に生体情報処理プログラムD11が組み込まれていてもよい。
また、本明細書において例示される生体情報処理プログラムD11の特徴の本質を維持しつつ、本発明の生体情報処理プログラムD11が総体としてユーザに提供する機能を別のプログラム上の構成単位を用いて再構築することが可能である(例えば、所定機能のモジュール化などを利用することが可能である。)。
また、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュール(関数等)を用意しておくことが一般的傾向である。さらに、アプリケーションプログラムはこれらのモジュールを必要な時に呼び出して処理を進める方式が一般的である。そして、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトを流通させる必要はない。したがって、上記プログラムからそれらモジュールに対応する部分を除いたソフトウェアが、記録媒体に記憶された形式で、またはネットワーク上で提供される形式で提供/流通された場合であって、上述のモジュールによって機能が補完されたときには、結果として上記プログラムそのものが提供された場合と等価な効果が存在し得る。よって、上述のようなモジュールによって機能が補完されることを前提に、上記生体情報処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的に上記生体情報処理プログラムに相当するものと解釈され得る。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。