2017年2月18日土曜日

【容積脈波】光学式心拍計の測定に関する勝手な考察

Mi band2の脈拍測定が残念な結果(私の環境では)に終わったのは書かせていただいた。

Xiaomi Mi Band 2 (その1)


ただネットでは十分使えるとの意見もあるのは承知している、そこで自分なりに光学式心拍計の測定に差が出る原因を考えてみた。(専門家でないので勝手な妄想レベルですが)

1.心拍と脈拍の基礎

○心拍数

心拍数の計測には心臓から出る微弱な電気信号を利用する。
詳しくはwikipediaをご覧いただければわかりやすいと思う。


出典:wikipedia 心電図   https://ja.wikipedia.org/wiki/心電図


医療用の機材で心電図(心拍数ではない)を計測すると、ドクターXなんかでおなじみの心電図となる



出典:看護roo   心電図波形の名称と意味~幅と高さ|心電図とはなんだろう(3
https://www.kango-roo.com/sn/k/view/1708


心拍数はこの心電図のピークをカウントすることで得られる。(ピーク間隔をRR間隔といいPolarではこれを元にVO2MAXを算出する。)


○脈拍数

脈拍数は手首等の血管が容積変化を起こすのを利用してカウントした数値である、電気信号ではない。ここに指先での容積変化のグラフを参考に表示させていただく。

出典:タケダ健康サイト 「人差し指で疲労を測る(加速度脈波)」 
http://takeda-kenko.jp/medical/fatigue_labo/measure/finger.html

当然、この心臓から離れた位置にある指先や手首で血管の容積を図るという間接的な測定は、心拍(HeartRate)測定に比べると、非常に条件が悪い。



面白いのは

容積脈波 → 微分 → 速度脈波 → 微分 → 加速度脈波

と微分することで、心電図のイメージに近づくところ。
まあ、当たり前と言えばそうなのだが。グラフを見せられて初めて気がついた。

いままでMio(フィリップスOHRM)の商品説明で

”MIOは正確なECG(心拍図レベルの)心拍数を計測します。MIOの正確さは大学の研究で証明されています。MIOはあなたの心電図(ECG または EKG)信号を読み取ります。”
出典:ウェザリージャパン http://www.miowatch.jp/faq.html

とあるのがいまいち理解できなかった(容積変化なのに、なぜ心電図なんていうワードが出てくる??)が、どうもこのあたりのことのようである。ただMioにしてもPolarやガーミンにしても、この部分もう少し説明が欲しいところである。


2.光学式脈拍測定センサー(ハードウェア)について

測定メカニズムは、ロームさんのページにあるのがわかりやすいだろう。


出典:ROHM 「脈波センサーの開発」 
http://www.rohm.co.jp/web/japan/pulse-wave-sensor


この方式の弱点一番の弱点は、外部からの光によって受光部分の光が乱されることで脈拍数に影響が出ることであろう。なにしろ、タトゥーの有無で脈拍数が変化することがあるぐらだ。

そこで各メーカーとも測定用のグリーンライトが乱されないような工夫をしている

ちなみになぜグリーンかというと、赤血球は赤い色を反射(だから赤く見える)し、緑色の光を吸収する性質がある。緑色の光は赤血球に吸収された分だけ確実に減って光検出器に届く。もし赤色光だと、赤血球はほぼ全てを反射するので吸収されて減ったりせしない。つまり赤血球の数の多かろうが少なかろうが、赤い光は減少しない状態で光検出器に届いてしまうことになる。

Mio,Garmin,Polar,Epson,Mi band2のセンサー部分を比較する。



Mio FUSEのセンサー部分、LEDは2つであるが良好な脈拍値が得られる




出典:https://www.mioglobal.com/en-us/Mio-FUSE-Heart-Rate-Training-Activity-Tracker/Product.aspx?RD=1





○Garmin vivosmart HRのセンサー部分、LEDが3つで外乱を減らしている。(実はGarmin の初めての光学式HRセンサー付きとなったForeAthlete® 225Jは、センサー部分をMioから提供されていた。https://buy.garmin.com/en-US/US/p/512478)



出典:Garmin vívosmart® HR+       https://buy.garmin.com/en-US/US/p/548743

○Epsonの上位モデルはご覧のように受光体(CMOS?)が2セットある。



出典: https://www.amazon.co.jp/リスタブルジーピーエス-Wristable-GPS機能-ランニング-SF-850PJ/dp/B01N76ACEQ/ref=sr_1_6?ie=UTF8&qid=1487400780&sr=8-6&keywords=WristableGPS





○Poalrの場合はどうやら独自センサーのようである。はっきり言ってよくわからない。
最新型のM600は6個のLEDで受光体を取り囲んでいる。
出典:Polar M600   https://www.polar.com/ja/products/sport/M600


○MI band2の場合はセンサーが本当に小さい。


出典:Mi band2    http://www.mi.com/en/miband2/



左がPolar A360 右がMi band2

GarminはLEDを3つに、PolarのM600は6個のLEDでCMOSセンサーを囲み、Epsonは2つのセンサーセットを使用することで計測環境の安定化を図っている。先行の各社がこれほどセンサー部分に注意を払っているにもかかわらず、Mi band2は明らかにセンサーが小さすぎる。




3.算出方法(ソフトウェア)についての考察

この項はあくまで考察である、専門家の方々に見られると一笑に付されるものなのは承知で書かせていただく。

先ほど挙げたMioの光学センサー(オランダ・フィリップス社製のOHRM)の周波数は1㎐である。つまり1秒に一回、LEDを点灯させ赤血球の密度を計測している。単純にするためにsin関数のグラフで例えるが、次のような感じである




1秒ごとの数値(赤血球密度)のみが記録される。
つまり波の形で記録されず、下のグラフのように点だけのデータがCMOS(受光体)から推測エンジンに送られる。




この2つ目のグラフ(点だけのデータ)を元に、容積脈波のグラフ(波形)を推定しする。
さらに容積脈波のグラフをもとに脈拍数をカウントすと、手首でも脈拍数を算出できる。(繰り返し言うがあくまで算出である。)

散らばった  を元に、
一番ピッタリくる  を探し出すのである。

しかも、どのメーカーを見ても現在のところ1秒毎にしかデータ(点)を測定していない。トレーニング時の脈拍は、LSDでさえ130(拍/分)つまり2(拍/秒)以上である、若者の最高脈拍種なぞは190とか200(拍/分)≒3.1〜3.3(拍/秒)となる・・・・

つまり、光学式脈拍計で測定される点と点の間に波が3つは入る。
本来精密に計測するには、1周期の半分の時間で計測つまり最高脈拍の2倍の周波数で測定する必要が有る。(詳しくは標本化定理、やナイキスト周波数といったwordで検索してください)
つまり脈拍が180(拍/分)の場合は1秒間に3回の波が来るので、1秒間に6回測定≒6Hzは欲しいところだ。






・算出を失敗する単純な例を考えてみた
まず同じ数値を元にしても周波数の違う複数のグラフが想定される場面はいくらか考えられる。例えば脈拍が90(拍/分)と180(拍/分)では測定される数値は全く同じものになる。(おっとグラフは30(拍/分)で作成してしまった!ご容赦ください)




数値だけのグラフを重ねると一致する(当たり前だが)

つまりこの上の緑と赤い点が重なっている物を元に、オリジナルのグラフを考えると、緑と赤どちらの可能性もあり得る。もっと言うと赤いほうの整数倍の脈拍は計算上全部あり得るとなるが。


もっとわかりやすい解説を見つけてしまった。
ここは、まで読み飛ばしてください↓
波長が違う場合を考えてみよう(まあここはお遊びです)
例えば青い実線(赤より大体3/2ほど周期である、ほんの微妙にずれているはず)、赤い破線を重ね合わせると次のようになる。なお青い波が本来計測したい波形とする。赤いマークは赤い点線と青い実践が一致している点、青いマークは青いグラフ上のではあるが赤い破線と一致していない測定箇所である。


この重ね合わせのグラフの一部を取り出す。
9秒から12秒の4秒間・4箇所測定のうち、3箇所で数値が大体一致(赤いマーク)している、まあ怪しい限りではあるが、実際には数値がそれなりにブレるはずなので測定値のブレを示す丸を大きくした、多分にこんなイメージかなレベルで認識してください。(もっといいグラフを用意できればよかったのですが・・・・)



さて、このいい加減な感じで、大体の数値が測定されたとして話を進めます。


ここでアルゴリズムがかなり鷹揚で、基本赤いグラフを重視(つまり脈拍が低いほうというか通常生活時が普通で、青いグラフはなかなかありえないと判断)するならば、4個中1個がエラーと判断・無視されて残り3個で推測される可能性がある。その場合は、赤いグラフが正解となる(ちょっと強引な考え方ですが、この部分の前後が赤いグラフに近いものだと瞬間的に脈拍が上昇したシチュエーションは無視されるだろう。信号の平滑化というやつでスパイクとして除去されてしまう)。脈拍に例えると、よりゆっくりした脈拍数(赤い破線)であると推定される事もあり得るというのを想像できかと思う。
(実際の何十個もの計測値の中には1つや2つ計測エラーは発生しているかと思う)

この勝手な推測のお話では非常に理想的なグラフを使いましたが、現実はもっと複雑である。




ここからがわかりやすい解説です。〜〜〜〜〜〜
さすがに専門家の説明はしっくりくる。ありがとうございます。

上のグラフの破線が本当の入力信号であるが、赤い点線だけをつなぐと「偽り」の波形(エイリアシング)が浮かび上がってくる。



出典:EDN Japan いまさら聞けないオシロスコープ入門(2):デジタル変換時の波形を うまく見るためのポイント (1/2)
http://ednjapan.com/edn/articles/1207/27/news003.html

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


なにしろ脈拍は常時変化つまり周波数は一定しないし、
血圧の上昇降下、
体を動かすことで発生する血管に対する物理的な圧迫の発生、
計測対象者の年齢や個体差(血管年齢や心臓大きさや血液のサラサラ具合等)が
容積変化に影響を及ぼすだろう、
などなどで
波の振幅も変化することはおおいにあり得る。

そんな振幅・周波数共に不安定な中で、容積脈波のグラフを推定するのは非常に困難になることは容易に想像可能だ。




先に挙げたフィリップス社(Mio FUSEに搭載)やFirstbeat社(Garminやsunnt,sonyなどに搭載)、Polar社はそれぞれ独自の脈拍算出アルゴリズムを持っていて、トレーニング中もかなり正確に脈拍数を算出できている。

実際Mio FUSEやPolar A360はたとえ一瞬脈拍を見失っても、しばらくすると正しい脈拍値に復帰できる。

この厄介な容積脈波を正確に推測するには、かなりの科学的知見と膨大なデータの蓄積が必要であろう。フィリップスやFiestbeatのように、このような高度なノウハウを提供できる企業はまだ世界的にも少ないはずだ。


シャオミーのMi band2(Pixart社のPMW3360DM-T2QUセンサー)はセンサー自体の能力が不足しているかもしれない(まあ小さすぎるのが一番の要因かもしれないが)のと、
この推測エンジンがまだ弱いようである。
Mi band3に期待だな。


同じ中華バンドでも、HuaweiのHuawei FITのようにFirstbeat社のサービスを受ければ改善するかもしれない(当然センサーも大型化する必要があるが)。ただ価格は上がるだろう、はっきりってGarminなんかとあまり値段が変わらなくなりそうだが。Huawei FITはそれなりにお得仕様のようである。




まとめ
私の手持ちリストバンド式脈拍計で一番精度の高いものはMio FUSEである。(残念ながらGarminやsunnto,Tom Tomは持っていないので)。当然精度だけなら胸バンド式が一番信頼が置けるのではあるが。

ところがPoalr M600は今までの光学式脈拍計より、精度がよく何より心拍に対する追従性が高いとの情報がある。

試してみたい・・・・・・


が、あまりにも高いなこれ。パチンコでも大勝ちしたら買えるのだが。



おっとMioFUSE、年末年始のセール値段で売り続けている。





Firstbeat社のリンクです、供給先のデバイスが
https://www.firstbeat.com/en/consumer-products/

フィリップス社のOHRM(光学式脈拍センサー)に関するstudy(概要)
https://www.mioglobal.com/docs/mio_optical_heart_rate_study.pdf




ちなみに指先での心拍測定用機材はパルスオキシメータと呼ばれるものアマゾンでも売っています。血中の酸素飽和度も測れます。



パルスオキシメータ オキシマン S-114
オキシム
売り上げランキング: 445

2 件のコメント:

  1. 是非是非、Poalr M600とA360との比較もしてみて下さいwww(^v^)
    (M600本当に高いですよね・・・でも精度も気になる・・・(ーー;))

    返信削除
    返信
    1. 返事させていただくのが遅くなりすいません。M600、買ってみたいのですが・・・いつになることやら。ただネット等の評判ではいいですね、誰か測定結果を公開してほしいですね。

      削除