【発明を実施するための形態】
【0014】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0015】
(実施例1)
図1は、呼吸状態推定装置100の構成の概要を示す。呼吸状態推定装置100は、脈波信号取得部10、脈拍数算出部20及び呼吸状態推定部30を備える。呼吸状態推定装置100は、生体1の部位から取得した脈波信号に基づいて呼吸状態を推定する。例えば、呼吸状態とは、吸気状態、呼気状態、無呼吸状態及び瞬時無呼吸状態を指す。
【0016】
脈波信号取得部10は、生体1の部位の映像から、脈波信号を取得する。脈波信号は、脈波情報を含む映像のRGB信号もしくは、YCbCr信号である。脈波情報とは、生体1の部位における血管の脈動を示す時間波形に関する情報である。脈波情報は、脈波がピークを示すタイミングに関する情報を含む。
【0017】
例えば、脈波信号取得部10は、生体1の部位の映像から、脈波信号を光学的に取得する。脈波信号を光学的に取得する方法には、カメラ映像を用いる方法と、光電容積脈波(PPG:Photoplethysmography)を用いる方法がある。カメラ映像を用いる方法では、生体1の部位を撮影した映像に含まれる血流情報に基づいて呼吸状態を推定する。また、映像の濃淡変化に基づいて、呼吸状態を推定してもよい。PPGを用いる方法では、ヘモグロビンが光を吸収する性質により取得できる血流量変化に基づいて呼吸状態を推定する。脈波信号取得部10は、取得した脈波信号を脈拍数算出部20に出力する。
【0018】
脈拍数算出部20は、入力された脈波信号に基づいて生体1の脈拍数を算出する。生体1の脈拍数は、所定の信号処理アルゴリズムを用いることにより算出される。脈拍数算出部20は、予め定められた間隔で周期的に脈拍数を算出してよい。脈拍数算出部20は、算出した脈拍数を呼吸状態推定部30に出力する。
【0019】
呼吸状態推定部30は、入力された脈拍数に基づいて、生体1の呼吸状態を推定する。例えば、呼吸状態推定部30は、算出した脈拍数と、その次に算出した脈拍数との比較に基づいて、生体1の呼吸状態を推定する。このように、呼吸状態推定部30は、隣接する脈拍数を比較して生体1の呼吸状態を推定するので、リアルタイムに生体1の呼吸状態を推定できる。また、呼吸状態推定部30は、算出した脈拍数と、その次の次に算出した脈拍数との比較に基づいて、生体1の呼吸状態を推定してよい。この場合、呼吸状態推定部30は、基線信号から呼吸状態を推定する場合と比較して、時定数が大きな包絡線検波により基線信号を抽出する処理が不要なため、短時間で呼吸状態を推定することができる。また、呼吸状態推定部30は、脈拍数の変化から、呼吸状態を推定してよい。例えば、呼吸状態推定部30は、脈拍数の変化量が予め定められた正の吸気推定閾値以上である場合を吸気状態、脈拍数の変化量が予め定められた負の呼気推定閾値以下である場合を呼気状態、脈拍数の変化量が吸気推定閾値以上でなく呼気推定閾値以下でない場合を瞬時無呼吸状態と推定してよい。このように、呼吸状態推定部30は、脈拍数の変化量を用いることにより、呼吸状態の推定を精度良く行うことができる。つまり、呼吸状態推定部30は、吸気状態、呼気状態、瞬時無呼吸状態の識別を精度良く行うことができる。さらに、呼吸状態推定部30は、脈拍数の変化量を用いるだけであり、短時間で呼吸状態を推定できる。
【0020】
図2は、脈波信号取得部10の構成の概要を示す。脈波信号取得部10は、映像取得部11、トレース信号生成部12、ウィンドウ切出し部13及び信号補正部14を備える。
【0021】
映像取得部11は、生体1の部位の映像を取得する。例えば、映像取得部11は、カメラを有し、生体1の部位の映像を撮影する。生体1の映像は静止画シーケンスであっても、動画であってもよい。また、映像取得部11は、生体1に光を照射し、その反射光を取得してもよい。この場合、映像取得部11は、発光ダイオード及びフォトダイオードを有する。
【0022】
トレース信号生成部12は、映像取得部11が取得した映像に基づいて、生体1の測定対象領域を検出する。トレース信号生成部12は、検出した領域における脈波信号をトレースする。トレース信号生成部12は、生成したトレース信号をウィンドウ切出し部13に出力する。
【0023】
ウィンドウ切出し部13は、トレース信号を予め定められたウィンドウ・サイズで切出す。切出されたトレース信号を本明細書では、ウィンドウ信号と称する。また、ウィンドウ・サイズとは、ウィンドウ信号の時間幅を指す。ウィンドウ切出し部13は、予め定められた間隔でウィンドウ信号を切り出す。ウィンドウ切出し部13は、切出したウィンドウ信号を信号補正部14に出力する。
【0024】
信号補正部14は、ウィンドウ信号を補正する。ウィンドウ信号の補正は、信号の補間及び不要な周波数の除去を含む。例えば、信号補正部14は、時間を示す基準信号に基づいて、予め定められたサンプリングレートに固定した処理ウィンドウ脈波を生成する。処理ウィンドウ脈波は、切出されたウィンドウ信号ごとに生成される。信号補正部14は、補正した信号を処理ウィンドウ脈波として脈拍数算出部20に出力する。
【0025】
図3は、脈波信号取得部10の信号処理のアルゴリズムの一例を示す。本例のアルゴリズムにより、脈波信号取得部10は、カメラ映像から処理ウィンドウ脈波を抽出する。処理ウィンドウ脈波の安定的な抽出は、呼吸状態を正確に推定するために必要な基盤技術である。
【0026】
ステップS100において、映像取得部11は、生体1の部位の映像を取得する。生体1の部位の映像は、1秒間におよそ30回(30fps)のフレームレートで撮影される。例えば、映像取得部11は、生体1の部位の映像から皮膚血流を観測する。生体1の血液は、ヘモグロビン濃度に応じて、光のRGB成分のうちG成分(緑色成分)の吸光特性が変化する。脈波は、血流量の変動に対応するので、生体1を透過または反射した光のG成分の変動の周期は、生体1の脈波の周期に対応する。即ち、生体1の部位の映像には、脈波に応じたG成分の変動波形が含まれる。[0]その後、トレース信号生成部12は、取得した測定対象者映像から、RGB信号を抽出する。本例の測定対象者映像は、640×480の画素を有する。
【0027】
ステップS101において、トレース信号生成部12は、抽出したRGB信号をYCbCr信号に変換する。ここで、Yは輝度信号であり、Cb、Crは色差信号である。
【0028】
ステップS102において、トレース信号生成部12は、輝度信号Yから顔領域及び対象領域ROIを検出する。対象領域ROIは、輝度信号Yに基づいて特定される。対象領域ROIは、脈波情報を含む色差信号の変化が検出できる程度に血管が集中している領域である。例えば、トレース信号生成部12は、生体1の部位として、毛細血管の密集する鼻領域を検出することにより、高いS/N比を有する処理ウィンドウ脈波を検出できる。
【0029】
ステップS103において、トレース信号生成部12は、ステップS102で検出した対象領域ROIの位置情報及びサイズ情報に基づいて、対象領域ROIを抽出する。また、トレース信号生成部12は、抽出された対象領域ROIにおけるCb+Cr信号を取得する。本例の対象領域ROIは、50×50画素の領域である。
【0030】
ステップS104において、トレース信号生成部12は、取得したCb+Cr信号に基づいて、対象領域ROIをガウシアンフィルタリングする。対象領域ROIの周辺には、生体1の動きに伴う対象領域ROI以外の領域の信号が混入する。ガウシアンフィルタリングにより、対象領域ROIの中心部分の強度を大きくして、対象領域ROIの周辺部を抑え込むことができる。つまり、信頼性の低い対象領域ROIの周辺の信号は、ガウシアンフィルタリングによりフィルタリングされる。
【0031】
ステップS105において、フィルタリングされた信号に基づいて、任意の時刻の値をプロットしたCb+Crトレース信号を作成する。Cb+Crトレース信号を採用することにより、演算量を低減して、脈波波形を安定的に抽出できる。例えば、Cb+Crトレース信号は、各画素のCb+Cr信号を対象領域ROI全域において合計した値である。あるいはCb+Crトレース信号は、各画素のCb+Cr信号の平均である。即ち、Cb+Crトレース信号は、対象領域ROIにおいて一つの値が得られるように設定される。
【0032】
ステップS106において、ウィンドウ切出し部13は、Cb+Crトレース信号からウィンドウ信号を切り出す。ウィンドウ信号は、予め定められたウィンドウ・サイズ及び周期で切出される。
【0033】
ステップS107において、信号補正部14は、カメラ・フレームのフレームレート揺らぎをスプライン補間により固定サンプリングレートに補正する。フレームレートの揺らぎを補正するためには、映像に含まれる基準信号が用いられる。基準信号とは、映像取得部11が生体1の映像を取得した正確な時刻を示す信号である。例えば、基準信号は、映像フレームに含まれるタイムスタンプである。
【0034】
ステップS108において、バンドパスフィルタBPFにより脈波成分以外の波長領域をカットする。Cb+Crトレース信号には、外部環境もしくは生体の運動に対応する低い周波数の信号が含まれる場合がある。そのため、バンドパスフィルタBPFは、一般的な生体1の脈拍数HRに対応する0.75Hz〜4Hz(脈拍数45〜240)以外の波長領域をカットする。これにより、生体1の脈拍以外のノイズをカットできる。
【0035】
図4は、ウィンドウ信号の切出し方法の一例を示す。ウィンドウ切出し部13は、Cb+Crトレース信号から、予め定められた時間間隔でオーバーラップするように複数のウィンドウ信号を切り出す。第1のウィンドウ信号は、直近のウィンドウ信号である。第1のウィンドウ信号と隣接するウィンドウ信号をそれぞれ第2〜第4のウィンドウ信号とする。本明細書において、隣接するウィンドウ信号同士のずれを、オーバーラップ・シフト時間と称する。
【0036】
オーバーラップ・シフト時間は、脈拍数算出部20が脈拍数を算出する周期に等しい。即ち、脈拍数算出部20は、オーバーラップ時間のシフト量ごとに脈拍数を算出する。本例のオーバーラップ・シフト時間は互いに等しい時間である。例えば、呼吸周期が15秒の場合、オーバーラップ・シフト時間を1秒とする。オーバーラップ・シフト時間は、呼吸の半周期よりも小さいことが好ましい。
【0037】
ウィンドウ・サイズは、任意の大きさに設定されてよい。本例のウィンドウ・サイズは、およそ200フレームである。但し、ウィンドウ・サイズは生体1の脈拍周期以上であることが好ましい。脈拍周期とは、脈拍の1拍にかかる時間である。
【0038】
図5は、脈拍数算出部20の構成の一例を示す。脈拍数算出部20は、窓関数掛け算部21、統合出力部22及び離散周波数変換部23を備える。
【0039】
窓関数掛け算部21は、入力された処理ウィンドウ脈波に予め定められた窓関数を掛ける。窓関数は、ハニング窓、カイザー・ベッセル派生窓、ガウス窓、ハミング窓、テューキー窓、ブラックマン窓等の信号処理に一般的に用いられる関数であってよい。窓関数掛け算部21は、窓関数を掛けて処理した処理ウィンドウ脈波をウィンドウ処理脈波として統合出力部22に出力する。
【0040】
統合出力部22は、入力されたウィンドウ処理脈波にサンプルデータを統合した統合ウィンドウ信号を生成する。サンプルデータは、窓関数の掛けられたウィンドウ信号の前、後、または前後に統合されてよい。例えば、統合出力部22がウィンドウ処理脈波のゼロ拡張を行う場合、サンプルデータは零である。ウィンドウ処理脈波のゼロ拡張を行うことにより、ウィンドウ処理脈波の解像度が上がる。統合出力部22は、生成した統合ウィンドウ信号を離散周波数変換部23に出力する。
【0041】
離散周波数変換部23は、統合出力部22が出力した統合ウィンドウ信号を離散周波数変換して、脈波特徴量を算出する。脈波特徴量は、統合ウィンドウ信号に対して、高速フーリエ変換(FFT:Fast Fourier Transform)を実行することにより得られるFFTスペクトラムである。離散周波数変換部23は、高解像度の統合ウィンドウ信号から得られたFFTスペクトラムにより、高分解能な脈拍数を算出できる。離散周波数変換部23は、算出した脈拍数を呼吸状態推定部30に出力する。
【0042】
図6は、脈拍数算出部20の信号処理のアルゴリズムの一例を示す。脈拍数算出部20に入力された処理ウィンドウ脈波は、脈波信号取得部10により不要な成分が除去された信頼性の高い脈波である。脈拍数算出部20は、切出された処理ウィンドウ脈波を用いて、正確な脈拍数を算出するためにステップS201〜203の処理を施す。
【0043】
ステップS201において、窓関数掛け算部21は、処理ウィンドウ脈波に、ハニング窓関数又はカイザー・ベッセル派生窓関数を用いてウィンドウ処理を実行する。これにより、時間的な重み付けが可能になる。また、処理ウィンドウ脈波の両端のパルス強度が等しくなるように窓関数を選択してよい。
【0044】
ステップS202において、統合出力部22は、ウィンドウ処理脈波の後ろにサンプルデータを統合して統合ウィンドウ信号を生成する。例えば、サンプルデータは、窓関数が掛けられた後の処理ウィンドウ脈波の両端のパルス強度と等しいデータである。この場合、本例のサンプルデータは零である。また、統合ウィンドウ信号のサイズは、2のべき乗サイズになるようにゼロ拡張される。ゼロ拡張することにより、サンプルデータの統合前と比較して分解能を上げることができる。
【0045】
ステップS203において、離散周波数変換部23は、統合ウィンドウ信号にFFTを実行し、FFTスペクトラムを算出する。FFTの周波数分解能Δfは、サンプル数N及びサンプリングレートfsによって、Δf=fs/Nで決まる。したがって、サンプル数Nが多いほど、分解能Δfが改善する。
【0046】
例えば、ポイント数128のウィンドウ信号をゼロ拡張せずにそのままFFTによる周波数分析をした場合、周波数分解能は0.23Hzである。脈拍数で表すと14bpmであるため、それより小さい脈拍数の変動を検出することができない。一方、同じポイント数128のウィンドウ信号に対して、ゼロの信号を896個加え、サンプル数を1024にすると、周波数分解能は0.029Hzになる。脈拍数で表すと1.7bpmである。ゼロ拡張後のサンプル数に制限はないが、2のべき乗であることが好ましく、256、512、1024、2048、4096がより好ましい。
【0047】
以上の通り、脈拍数算出部20は、30Hzという低いサンプリングレートの処理ウィンドウ脈波から、統合ウィンドウ信号を算出する。そのため、脈波信号を光学的に取得する場合に、サンプリング周波数をアップ・サンプリングすることなく、高分解能の脈拍数変動を測定することができる。高分解能の脈拍数を用いることにより、呼吸状態の推定精度が向上する。
【0048】
図7は、ハニング窓関数を示す。ハニング窓関数はFFT用窓関数の一例である。ハニング窓関数は、フレームの両端が零となるような窓関数である。また、ハニング窓関数w(n)は下記の(数1)式により表される。
【数1】
ここで、nはサンプル要素を示し、Nはサンプル数を示す。
【0049】
ハニング窓関数は、ウィンドウ中心時間(フレーム数64付近)に重みがある関数である。そのため、ウィンドウ中心時間における脈波を中心として、脈拍数を測定することとなる。例えば、30Hzのフレームレートにおいて、ウィンドウ・サイズを128サンプル数としてFFTから脈拍数測定を行う場合、ハニング窓では約4秒前の脈波を中心にした脈拍数測定が行われる。即ち、脈拍数測定時間から、中心時間までの時間差によって、レスポンス・タイムが生じる場合がある。
【0050】
図8は、カイザー・ベッセル派生窓関数KBD(Kaiser−Bessel−Derived Window)の一例を示す。KBD窓関数は、ハニング窓関数と同様に、フレームの両端が零となるような窓関数である。
【0051】
KBD窓関数d
kは、カイザー窓w
kの項で公式を用いて下記の(数2)式により表される。
【数2】
【0052】
(数2)式は、長さ2nの窓を定義している。ここで、d
kは、変形離散コサイン変換(MDCT:modified discrete cosine transform)に対する次のプリンセン・ブラッドレイ条件を満たす。即ち、d
kは、w
n−k=w
kの場合に、d
k2+d
k+n2=1で表される。また、KBD窓は、もう1つのMDCT条件である対象性d
k=d
2n−1−kも満たす。
【0053】
KBD窓関数は、フレーム数が40から90付近における重み付けが大きい。一方、ハニング窓関数は、フレーム数が64付近の所に集中して重み付けがある。よって、KBD窓関数は、ハニング窓関数と比較して、より最新の抽出サンプルに近い脈波に対する重み付けが高い。そのため、KBD窓は、より最新の抽出サンプルに近い脈波の値が反映しやすくなるので、呼吸状態推定のレスポンスを向上できる。
【0054】
(比較例)
図9は、比較例に係る呼吸状態の推定方法の一例を示す。
図9(a)は、脈波の時間変化を示す。
図9(b)は、脈波の時間変化及び基線変動を示す。
図9(a)は、
図9(b)の一部の脈波を拡大した波形を示す。
図9において、周期tは脈波の周期を示し、周期Tは基線変動の周期を示す。比較例の呼吸状態推定方法では、基線変動の周期Tが呼吸周期に対応することを利用して、呼吸状態を推定している。
【0055】
例えば、脈波の周期tがおよそ1秒程度であるのに対して、基線変動の周期Tはおよそ15秒程度である。また、比較例の呼吸状態推定方法では、基線変動のパターンに応じて呼吸状態を推定している。そのため、比較例の呼吸状態推定方法は、15秒程度に1回しか呼吸状態を推定することができない。このように、比較例の方法では、呼吸状態をリアルタイムンに推定することができず、なめらかな呼吸状態の推定ができない。
【0056】
また、基線変動は、被験者の体の動きなどの外乱がない場合に呼吸に誘起されたものと推定される。また、基線変動の周期Tは、脈波の周期tよりも、生体1の画像を光学的に取得する場合に生じるノイズに近い周波数を有する。したがって、比較例の呼吸状態推定方法は、被験者の動きによる誤差及び映像の取得時に生じる誤差の影響が大きくなり、正確に呼吸状態を推定できない。
【0057】
図10は、呼吸周期と脈拍数との関係を示す。本例の被験者は、通常状態、息止め状態に加えて、3bpm、6bpm及び12bpmの3段階に呼吸周期を変化させる。
【0058】
呼吸状態推定部30は、脈拍数算出部20が出力した脈拍数から、高分解能な連続脈拍数変動を算出する。連続脈拍数変動は、脈拍数の周期的な測定に応じてプロットすることによりトレースされる。そして、呼吸状態推定部30は、連続脈拍数変動から呼吸状態を推定する。
【0059】
通常状態は、生体1が普段通りに、吸気及び呼気を繰り返す状態である。生体1の吸気及び呼気は脈拍数の変動と連動する。具体的には、生体1が吸気すると脈拍数が上昇し、生体1が呼気すると脈拍数が低下する。よって、脈拍数の上昇及び低下を観測することにより、呼吸状態をリアルタイムに検出できる。
【0060】
息止め状態は、吸気及び呼気を行わない状態、又は、吸気及び呼気をほとんど行っていないに等しい状態である。つまり、息止め状態は、いわゆる無呼吸状態に対応する。息止め状態では、通常状態の区間と比較して、脈拍数の変動が小さい。
【0061】
呼吸周期3bpmとは、1分間に吸気及び呼気を3回ずつ繰り返すことを指す。本例では、吸気及び呼気がそれぞれ等しく、それぞれ10秒間となる。同様に、呼吸周期6bpmとは、1分間に吸気及び呼気を6回ずつ繰り返すことを指す。呼吸周期6bpmでは、吸気及び呼気は、それぞれ5秒間となる。呼吸周期12bpmとは、1分間に吸気及び呼気を12回ずつ繰り返すことを指す。呼吸周期12bpmでは、吸気及び呼気は、それぞれ2.5秒間となる。
【0062】
呼吸周期3bpm、6bpm及び12bpmにおける脈拍数をそれぞれ比較すると、脈拍数の変動周期が呼吸周期と一致していることが分かる。即ち、脈拍数の変動周期を測定することにより呼吸周期を算出できる。
【0063】
以上の通り、脈拍数の変化は、呼吸状態と相関する。即ち、呼吸状態推定装置100は、脈拍数の変化を解析することにより、呼吸の周期及び呼吸状態をリアルタイムに検出できる。
【0064】
図11は、呼吸状態の推定方法の一例を示す。縦軸は脈拍数を示し、横軸は時間を示す。本例の呼吸状態推定部30は、連続する3点の脈拍数の測定結果から、呼吸状態を推定する。呼吸状態推定部30は、高分解能連続脈拍数からのなめらかな呼吸状態の推定を実現する。
【0065】
時刻T
C、T
C−1、T
C−2は、それぞれ脈拍数の測定時間を示す。現時刻を時刻T
Cとして、過去の時刻を時刻T
C−1とし、さらに過去の時刻をT
C−2とする。また、時刻T
C、T
C−1、T
C−2における脈拍数をそれぞれ、PR
c、PR
(c−1)、PR
(c−2)とする。ここで、時刻T
C−2から時刻T
Cまでの期間は、生体1の呼吸周期よりも小さいことが好ましい。
【0066】
脈拍数が連続的に上昇している場合、呼吸状態推定部30は、生体1が吸気状態であると推定する。例えば、PR
C−PR
(C−1)≧0かつ、PR
(C−1)−PR
(C−2)≧0かつ、PR
C−PR
(C−2)≧Trである場合に、吸気状態であると推定される。なお、Trは吸気推定閾値を指す。本例の吸気推定閾値Trは5bpmである。即ち、時刻T
C−2から時刻T
Cまでの間に、常に脈拍数が減少せず、かつ、脈拍数が5bpm以上増加している場合に吸気状態であると推定する。
【0067】
一方、脈拍数が連続的に減少している場合、呼吸状態推定部30は、生体1が呼気状態であると推定する。例えば、PR
C−PR
(C−1)≦0かつ、PR
(C−1)−PR
(C−2)≦0かつ、PR
C−PR
(C−2)≦−Trである場合に、呼気状態であると推定される。本例では、−Trを呼気推定閾値として用いた。しかしながら、呼気推定閾値として吸気推定閾値と異なる値を用いてもよい。以上の通り、時刻T
C−2から時刻T
Cまでの間に、常に脈拍数が増加せず、かつ、脈拍数が5bpm以上低下している場合に呼気状態であると推定する。
【0068】
また、吸気状態及び呼気状態に該当しない場合、呼吸状態推定部30は、生体1が瞬時無呼吸状態であると推定する。また、呼吸状態推定部30は、脈拍数の変化量が吸気推定閾値以上でなく、且つ、負の呼気推定閾値以下でないときに、瞬時無呼吸状態であると推定してもよい。そして、瞬時無呼吸状態の連続時間が無呼吸推定閾値Ta以上となった場合に、呼吸状態推定部30は、生体1が無呼吸状態であると推定する。例えば、無呼吸推定閾値Taは5秒であってよい。
【0069】
図12は、呼吸状態の推定方法の一例を示す。縦軸は脈拍数を示し、横軸は時間を示す。本例の呼吸状態推定部30は、連続する4点の脈拍数の測定結果から、呼吸状態を推定する。
【0070】
時刻T
C、T
C−1、T
C−2、T
C−3は、それぞれ脈拍数の測定時間を示す。現時刻を時刻T
Cとして、現時刻に近い方から過去の時刻をそれぞれ、時刻T
C−1、T
C−2、T
C−3とする。また、時刻T
C、T
C−1、T
C−2、T
C−3における脈拍数をそれぞれ、PR
c、PR
(c−1)、PR
(c−2)、PR
(c−3)とする。なお、時刻T
C−3から時刻T
Cまでの期間は、生体1の呼吸周期よりも小さいことが好ましい。
【0071】
脈拍数が連続的に上昇変動である場合、呼吸状態推定部30は、生体1が吸気状態であると推定する。上昇変動とは、脈拍数がおよそ上昇している傾向にある変動を指す。例えば、呼吸状態推定部30は、3つの隣接2点間の脈拍数変動(PR
C−PR
(C−1)、PR
(C−1)−PR
(C−2)、PR
(C−2)−PR
(C−3))の内、2つ以上が負でない場合に吸気状態と推定する。
【0072】
一方、脈拍数が連続的に下降変動である場合、呼吸状態推定部30は、生体1が呼気状態であると推定する。下降変動とは、脈拍数およそ減少傾向になる変動を指す。例えば、呼吸状態推定部30は、3つの隣接2点間の脈拍数変動(PR
C−PR
(C−1)、PR
(C−1)−PR
(C−2)、PR
(C−2)−PR
(C−3))の内、2つ以上が正でない場合に呼気状態と推定する。
【0073】
また、吸気状態及び呼気状態に該当しない場合、呼吸状態推定部30は、生体1が瞬時無呼吸状態であると推定する。また、呼吸状態推定部30は、脈拍数の変化量が吸気推定閾値以上でなく、且つ、負の呼気推定閾値以下でないときに、瞬時無呼吸状態であると推定してもよい。そして、瞬時無呼吸状態の連続時間が無呼吸推定閾値Ta以上となった場合に、呼吸状態推定部30は、生体1が無呼吸状態であると推定する。例えば、無呼吸推定閾値Taは5であってよい。
【0074】
図13は、脈拍数変動と脈拍数変動速度との関係を示す。
図13(a)の縦軸は脈拍数(bpm)を示し、横軸は時間(秒)を示す。
図13(b)の縦軸は脈拍数変動速度(bpm)を示し、横軸に時間(秒)を示す。
【0075】
本例の被験者は、
図10で示した場合と同様に、通常状態、息止め状態に加えて、3bpm、6bpm及び12bpmの3段階に呼吸周期を変化させる。
図13に示す通り、脈拍数変動の周期と脈拍数変動速度の周期は一致する。即ち、脈拍数変動速度は、脈拍数と同様に、呼吸状態と相関を有する。したがって、呼吸状態推定装置100は、脈拍数と脈拍数変動速度の少なくとも1つを算出することにより、生体1の呼吸状態を推定できる。
【0076】
(実施例2)
実施例1に係る呼吸状態推定装置100は、FFTによる脈拍数変動から呼吸状態を推定する。一方、実施例2に係る呼吸状態推定装置100は、脈拍数変動を用いる代わりに、脈波ラグタイム変動を用いて呼吸状態を推定する。脈波ラグタイムとは、処理ウィンドウ脈波の自己相関のラグタイムを指す。
【0077】
図14は、呼吸状態推定装置100の構成の一例を示す。実施例2に係る呼吸状態推定装置100は、脈拍数算出部20の代わりに、脈波ラグタイム算出部40を備える点で実施例1に係る呼吸状態推定装置100と異なる。
【0078】
脈波ラグタイム算出部40は、脈波信号取得部10が取得した脈波トレース信号に基づいて、生体1の脈波ラグタイムを算出する。脈波ラグタイム算出部40は、算出した脈波ラグタイムを呼吸状態推定部30に出力する。
【0079】
呼吸状態推定部30は、入力された脈波ラグタイムから、高分解能な連続脈波ラグタイム変動を算出する。連続脈波ラグタイム変動は、周期的に測定した脈波ラグタイムをプロットすることによりトレースされる。呼吸状態推定部30は、連続脈波ラグタイム変動に基づいて、生体1の呼吸状態を推定する。
【0080】
図15は、脈波ラグタイム算出部40の構成の一例を示す。脈波ラグタイム算出部40は、バイアス変動除去部41、自己相関算出部42及びラグタイム算出部43を備える。
【0081】
バイアス変動除去部41は、入力された処理ウィンドウ脈波からバイアス変動成分を除去する。バイアス変動成分を除去する方法は、処理ウィンドウ脈波の1階微分であってよい。また、バイアス変動除去部41は、ハイパスフィルタを備えてよい。なお、脈波ラグタイム算出部40は、バイアスの安定した状態で処理ウィンドウ脈波が入力される場合、バイアス変動除去部41を備える必要はない。バイアス変動除去部41は、バイアス変動成分が除去された処理ウィンドウ脈波をウィンドウ処理脈波として自己相関算出部42に出力する。
【0082】
自己相関算出部42は、入力されたウィンドウ処理脈波の自己相関係数を算出する。自己相関算出部42は、算出した自己相関係数をラグタイム算出部に出力する。
【0083】
ラグタイム算出部43は、自己相関算出部42が出力したウィンドウ処理脈波の自己相関係数に基づいて、脈波ラグタイムを出力する。脈波ラグタイムは、自分自身の自己相関係数ピークから、隣の自己相関係数ピークまでの時間である。
【0084】
図16は、脈波ラグタイム算出部40の信号処理のアルゴリズムの一例を示す。脈波ラグタイム算出部40に入力された処理ウィンドウ脈波は、脈波信号取得部10により不要な成分が除去された信頼性の高い脈波である。脈波ラグタイム算出部40は、切出された処理ウィンドウ脈波を用いて、正確な脈波ラグタイムを算出するためにステップS301〜ステップS303を実行する。
【0085】
図17は、脈波ラグタイムの算出方法の一例を示す。
図17(a)は脈波トレース強度を示す。
図17(b)は、脈波トレース速度を示す。
図17(c)は自己相関係数の時間変化を示す。
図17(a)〜
図17(c)の横軸はいずれもサンプリングレートが30Hzの場合のサンプル数である。
【0086】
ステップS301において、バイアス変動除去部41は、処理ウィンドウ脈波に対して、1階微分処理を実行する。これにより、バイアス変動が除去されたウィンドウ処理脈波が得られる。例えば、
図17(a)に示した脈波トレース強度のグラフは、1階微分されることにより、
図17(b)に示した脈波トレース速度のグラフとなる。なお、バイアス変動除去部41は、処理ウィンドウ脈波から生成したバイアス変動近似成分を差し引くことで、バイアスの変動を除去してよい。バイアス変動近似成分の差し引きには、脈拍周期よりも周波数の低いバイアス変動成分を近似した曲線を用いてよい。
【0087】
ステップS302において、自己相関算出部42は、ウィンドウ処理脈波の自己相関係数を算出する。例えば、
図17(c)は、
図17(b)に示した脈波トレース速度の自己相関係数を算出した例である。自己相関係数の算出には、一般的な信号処理技術に使用される自己相関関数が用いられてよい。自己相関算出部42は、自己相関係数を算出することにより、自分自身の自己相関係数ピークに隣接する自己相関係数ピークを算出できる。
【0088】
ステップS303において、ラグタイム算出部43は、自分自身の自己相関ピークと隣接する自己相関ピークの時間差を算出することにより、脈波ラグタイムを算出する。算出する脈波ラグタイムの分解能は、ウィンドウ処理脈波のサンプル周波数で決まる。よって、処理ウィンドウ脈波やウィンドウ処理脈波をアップ・サンプリングすることにより、脈波ラグタイムの分解能を上げてよい。例えば、アップ・サンプリングには、スプライン補間が用いられる。
【0089】
図18は、連続脈波ラグタイム変動の一例を示す。縦軸は脈波ラグタイム(1/30秒)を示し、横軸は時間(秒)を示す。本例の被験者は、通常状態、息止め状態に加えて、3bpm、6bpm及び12bpmの3段階に呼吸周期を変化させる。
【0090】
連続脈波ラグタイム変動は、生体1の吸気及び呼気と連動する。但し、連続脈波ラグタイム変動は、呼吸周期との関係が、
図10に示す脈拍数変動と上下が逆である。具体的には、生体1が吸気すると脈波ラグタイムが低下し、生体1が呼気すると脈波ラグタイムが上昇する。よって、脈波ラグタイムの上昇及び低下を観測することにより、生体1の呼吸状態をリアルタイムに推定できる。
【0091】
図19は、呼吸状態の推定方法の一例を示す。縦軸は脈波ラグタイムを示し、横軸は時間を示す。本例の呼吸状態推定部30は、連続する3点の脈波ラグタイムの測定結果から、呼吸状態を推定する。呼吸状態推定部30は、高分解能な連続脈波ラグタイムからのなめらかな呼吸状態の推定を実現する。
【0092】
時刻T
C、T
C−1、T
C−2は、それぞれ脈波ラグタイムの測定時間を示す。現時刻を時刻T
Cとして、過去の時刻を時刻T
C−1とし、さらに過去の時刻をT
C−2とする。また、時刻T
C、T
C−1、T
C−2における脈波ラグタイムをそれぞれ、PL
c、PL
(c−1)、PL
(c−2)とする。ここで、時刻T
C−2から時刻T
Cまでの期間は、生体1の呼吸周期よりも小さいことが好ましい。
【0093】
脈波ラグタイムが連続的に上昇している場合、呼吸状態推定部30は、生体1が呼気状態であると推定する。例えば、PL
C−PL
(C−1)≧0かつ、PL
(C−1)−PL
(C−2)≧0かつ、PL
C−PL
(C−2)≧Trである場合に、呼気状態であると推定される。なお、Trは呼気推定閾値を指す。即ち、時刻T
C−2から時刻T
Cまでの間に、常に脈波ラグタイムが減少せず、かつ、脈波ラグタイムが呼気推定閾値Tr以上増加している場合に呼気状態であると推定する。
【0094】
一方、脈波ラグタイムが連続的に減少している場合、呼吸状態推定部30は、生体1が吸気状態であると推定する。例えば、PL
C−PL
(C−1)≦0かつ、PL
(C−1)−PL
(C−2)≦0かつ、PL
C−PL
(C−2)≦−Trである場合に、吸気状態であると推定される。本例では、−Trを吸気推定閾値として用いた。しかしながら、吸気推定閾値として吸気推定閾値と異なる値を用いてもよい。以上の通り、時刻T
C−2から時刻T
Cまでの間に、常に脈波ラグタイムが増加せず、かつ、脈波ラグタイムが呼気推定閾値Tr以上低下している場合に吸気状態であると推定する。
【0095】
また、吸気状態及び呼気状態に該当しない場合、呼吸状態推定部30は、生体1が瞬時無呼吸状態であると推定する。また、呼吸状態推定部30は、脈波ラグタイムの変化量が吸気推定閾値以下でなく、且つ、正の呼気推定閾値以上でないときに、瞬時無呼吸状態であると推定してもよい。そして、瞬時無呼吸状態の連続時間が無呼吸推定閾値Ta以上となった場合に、呼吸状態推定部30は、生体1が無呼吸状態であると推定する。例えば、無呼吸推定閾値Taは5秒であってよい。
【0096】
以上の通り、呼吸状態推定装置100は、脈波ラグタイムを用いることにより、リアルタイムに生体1の呼吸状態を推定できる。また、呼吸状態推定装置100は、脈拍数に基づいた呼吸状態の推定、及び、脈波ラグタイムに基づいた呼吸状態の推定を併用することにより、呼吸状態の推定精度を高めてもよい。
【0097】
(実施形態1)
図20は、実施形態1に係る呼吸状態推定装置100を示す。本例の呼吸状態推定装置100は、スマートフォン4に搭載される。スマートフォン4は、カメラ5及びディスプレイ6を備える。スマートフォン4は、携帯機器の一例であり、携帯電話、タッチパッド等の呼吸状態推定装置100を搭載してもよい。
【0098】
カメラ5は、被験者2の映像を光学的に取得する。カメラ5は、映像取得部11の一例である。本例のカメラ5は、被験者2の単一部位を含む映像を取得する。本例の被験者2の単一部位は、鼻3である。また、カメラ5は、被験者2における単一部位の動きを検出して、当該部位に追従して撮影してよい。例えば、カメラ5は、被験者2の単一部位がカメラの撮像領域外に向かって移動している場合に、カメラ5のパン、チルト、ズーム等を制御して、単一部位がカメラ5の撮像領域内となるように追従する。
【0099】
ディスプレイ6は、呼吸状態推定装置100が推定した被験者2の呼吸状態を表示する。ディスプレイ6は、スマートフォン4の外部に設けられてもよい。被験者2は、ディスプレイ6にリアルタイムで表示された呼吸状態をライブ感覚で知ることができる。
【0100】
本例の呼吸状態推定装置100は、被験者2の鼻3の映像を用いているが、被験者2の指先の映像を用いてもよい。例えば、呼吸状態推定装置100は、スマートフォン4の裏面に設けられた光学式指紋センサを用いて、指先の映像を取得する。また、被験者2の単一部位は、鼻3及び指先に限られない。鼻3及び指先は、毛細血管が集中しているため、ヘモグロビン濃度が高くなる。このため、鼻3の映像と指先の映像を用いると、脈波情報の抽出感度と脈拍情報の算出精度が高くなる。更に、脈波情報は、指先に装着された単一の光電容積脈波計を用いて抽出されてもよい。
【0101】
このように、本例の呼吸状態推定装置100は、光学的に脈波情報を抽出して呼吸状態を出力するので被験者2への負担が小さい。更に、本例の呼吸状態推定装置100は、映像から脈波情報を抽出する構成であるため、被験者2と非接触かつ非拘束で呼吸状態を推定できる。なお、呼吸状態推定装置100は、被験者2の映像内に複数人存在すれば、複数人の呼吸状態を同時に推定できる。
【0102】
(実施形態2)
図21は、実施形態2に係る呼吸状態推定装置100を示す。本例の呼吸状態推定装置100は、リストバンド型PPGセンサ7内に実装されている。また、呼吸状態推定装置100の一部は、リストバンド型PPGセンサ7と通信可能なスマートフォン4内に実装されてよい。
【0103】
リストバンド型PPGセンサ7は、光電容積脈波センサを利用した装着型デバイスの一例である。リストバンド型PPGセンサ7は、発光ダイオード8及びフォトダイオード9を備える。発光ダイオード8は、被験者2のリスト部位に光を照射する。フォトダイオード9は、被験者2のヘモグロビンにより吸収された後の光を検出する。これにより、リストバンド型PPGセンサ7は、被験者2の血流量変化に関する情報を含む脈波信号を光学的に取得する。
【0104】
リストバンド型PPGセンサ7は、被験者2の映像又は推定した呼吸情報を無線でスマートフォン4に送信する。無線にはBlueTooth(登録商標)及びWi−Fi(登録商標)等の無線ネットワークが用いられる。スマートフォン4は、リストバンド型PPGセンサ7から呼吸情報が入力された場合、ディスプレイ6に呼吸情報を表示する。また、スマートフォン4は、リストバンド型PPGセンサ7から被験者2の映像が送信された場合は、当該映像に基づいて呼吸情報を推定してよい。なお、リストバンド型PPGセンサ7がディスプレイ6及び呼吸状態推定装置100を備える場合は、呼吸情報をリストバンド型PPGセンサ7が備えるディスプレイ6に表示してもよい。
【0105】
図22は、照明を用いた固定リサンプリングの一例を示す。
図22において、〇印は固定サンプリングレートを示し、×印は映像サンプリングレートを示す。
【0106】
固定サンプリングレートとは、呼吸状態推定装置100が映像を取得する理想的な周波数を指す。例えば、呼吸状態推定装置100は、30Hzの固定サンプリングレートで映像を取得する。
【0107】
映像サンプリングレートとは、呼吸状態推定装置100が取得する実際のサンプリングレートを指す。例えば、呼吸状態推定装置100がスマートフォン4等の携帯端末に搭載された場合、映像サンプリングレートに揺らぎが生じる。そのため、映像サンプリングレートと固定サンプリングレートとの間にずれが生じる。また、映像サンプリングレートに揺らぎが生じると、取得した脈拍数の正確な時間が分からなくなり、呼吸情報の推定精度が悪くなる。
【0108】
一方、交流電源により駆動されている照明が発する光は、人の目によって知覚されないが一定の輝度周波数で正確に動作する。また、呼吸状態推定装置100が取得した映像には、照明の位相を算出するのに必要な情報が含まれる。照明の位相は、予め定められた領域の照明の反射光の強度から算出できる。予め定められた領域とは、映像に含まれる物体の一部の領域であってよい。予め定められた領域は、移動しないことが好ましい。また、呼吸状態推定装置100は、照明の反射光でなくとも、照明の光を直接撮影してもよい。例えば、呼吸状態推定装置100は、予め定められた領域の反射光の最大強度及び最小強度を事前に算出する。これにより、呼吸状態推定装置100は、予め定められた領域の反射光の強度を測定することにより、映像から照明の位相を算出できる。即ち、映像サンプリングレートが目標とする位相とずれていた場合、その映像の位相を照明の位相から補正できる。このように、呼吸状態推定装置100は、映像サンプリングレートの揺らぎを、照明の輝度周波数で補正することにより、呼吸情報の推定精度を向上できる。言い換えると、呼吸状態推定装置100は、画像に写り込んだ照明を基準クロックに用いることができる。
【0109】
以上の通り、呼吸状態推定装置100は、光学的に生体1の呼吸状態を高精度に推定できる。呼吸状態推定装置100は、生体1の部位から光学的に脈拍数を算出しているので、生体1に負担を掛けることなく呼吸状態を推定できる。一方、生体1の部位から光学的に脈拍数を算出すると、生体1の動きなどによって低周波のノイズが含まれやすい。しかしながら、呼吸状態推定装置100は、基線変動を用いた呼吸状態の推定方法よりも高い周波数の領域を用いるので、ノイズを除去しやすい。
【0110】
また、呼吸状態推定装置100は、ウィンドウ信号のオーバーラップ時間のシフト量ごとに脈拍数を算出するので、任意の時間で脈拍数を検出できる。つまり、次のパルスが来るかどうかが分からない状態でも、呼吸状態を推定できる。呼吸状態推定装置100は、脈拍数に依存せずにリアルタイムで呼吸状態を推定できる。即ち、呼吸状態推定装置100は、なめらかな呼吸の検出を実現できる。呼吸状態のリアルタイム測定は、生体1の呼吸法をリアルタイムに誘導するアプリケーションに適用できる。
【0111】
図23は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0112】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0113】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0114】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0115】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、またはICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0116】
コンピュータ1900にインストールされ、コンピュータ1900を呼吸状態推定装置として機能させるプログラムは、脈波信号取得モジュール、脈拍数算出モジュール、呼吸状態推定モジュールとを備える。これらのプログラムまたはモジュールは、CPU2000等に働きかけて、コンピュータ1900を、呼吸状態推定装置としてそれぞれ機能させる。
【0117】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である脈波信号取得部10、脈拍数算出部20及び呼吸状態推定部30として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の呼吸状態推定装置100が構築される。
【0118】
また、コンピュータ1900にインストールされ、コンピュータ1900を脈波測定装置として機能させるプログラムは、脈波信号取得モジュール、脈拍数算出モジュール、呼吸状態推定モジュールとを備える。これらのプログラムまたはモジュールは、CPU2000等に働きかけて、コンピュータ1900を、脈波測定装置としてそれぞれ機能させる。
【0119】
さらに、これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である脈波信号取得部10、脈波ラグタイム算出部40及び呼吸状態推定部30として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の呼吸状態推定装置100が構築される。
【0120】
また、コンピュータ1900にインストールされ、コンピュータ1900を脈波測定装置として機能させるプログラムは、脈波信号取得モジュール、脈波ラグタイム算出モジュール、呼吸状態推定モジュールとを備える。これらのプログラムまたはモジュールは、CPU2000等に働きかけて、コンピュータ1900を、脈波測定装置としてそれぞれ機能させる。
【0121】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、またはCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0122】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/または記憶装置に含まれるものとする。
【0123】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0124】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0125】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVDまたはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0126】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【0127】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。