カルテコアプリの調査

2024年技術ブログ集

その1 犬の肉球で心拍を測るカルテコアプリ

先月、友達夫婦と食事をしたときに「犬の肉球で心拍数を測る」スマートフォンアプリが開発されたことを聞きました。興味があったので調査を始めました。今年の1月11日の下記記事を、送ってもらいました。

MDVは電子カルテの大手(日本で2番目)です。電子カルテの国内での普及率は30%程度です。(獣医さんの場合は不明です。)「ヘルスケア」分野では、年1回の定期健康診断を補完する目的でスマートウォッチのように、毎日の個人心拍数データをクラウドサービスと結びつけて、睡眠状態やストレス状態を判定して健康管理に役立てるビジネスが広がっています。カルテコアプリはクラウド版ヘルスケアカルテのようです。個人データ(情報)をクラウドに吸い上げて利用する目的があるようで、現時点でアプリは無料です。(勝手に推測していますが、カルテに日々データ=ヘルスケアデータを取り込むようです)

なぜ、犬なのか? ペットも家族と考えてヘルスケアの対象としたしたのかもしれません。測定方法は、スマートフォンのカメラを使用して、人の場合は顔または指の60秒間の動画、犬の場合は肉球の動画からおそらくG成分画像の輝度変化を利用しているようです。カメラ動画から心拍数を測定する方法は、確か10年くらい前にT社のRDC展のデモで見た覚えがあります。

まず、アプリをアプリをiphoneに入れて試してみました。

心拍数は24と低いです。再度、測定すると90くらいになりましたが、自律神経系の指標は出ませんでした。肉球の測定は、柴犬の飼い主にお願いして試験してもらっています。次回は、カルテコアプリの原理を理解する目的で、WEBカメラによる心拍数測定方法を調査します。

その2 動画ファイルを使用した心拍データの収集

WEBカメラ(USBカメラ)を使って、顔を映した動画を撮影→フレームに分解→顔領域RGBのG成分を積分して時系列に変換するコードを探しました。ありました。

完コピして動かそうとしましたが、フレーム分割でエラーが発生し、暫く苦戦しました。frame_split()の引数が上手く動きませんでした。最初から苦労するなんてと思いながら下記コードで、mp4動画をフレームに分解しoutputフォルダーに放り込みました。寝ぼけた顔が映っていますが気にしないでください。

間抜けな顔動画を30秒ほど撮影しました。HDで撮影したmp4ファイルをフレームに分解すると2.7GBとなりましたが、VGAに設定すると170MBに収まりました。ここからは、元の作者のコードに戻り、顔領域の設定とG成分の抽出を行いました。

なんか心拍パルスの信号みたいなものが現れました。フレームレートは30fpsを設定したのですが15.8fps(WEBカメラの能力に依存?縦横比変換のため)でした。ここから先のコードは、ドップラセンサを使った非接触心拍・呼吸パルス数測定及び洞調律測定のコードをリサイクルしました。まず包絡線処理とオフセット処理を行いました。(SN比が低すぎますが…)

そして呼吸用LPFと心拍用LPFを通過したピーク検出用波形を取り出し、ピークtoピーク間隔を1分間のパルス数に変換した洞調律グラフを計算し平均呼吸数と心拍数を求めました。呼吸数は17回/分、心拍数は79回/分でした。それらしい値が出ました。

今回は顔画の動画から心拍・呼吸を求める追試をしました。10年前にRDC展でデモしてた内容は顔検出と連動させていてカメラから離れた状態でも検出できていたと思います。今は、顔分類と連動して複数人同時に心拍数を測定することも可能なようです。問題はサンプリングレートです。30fpsでは33msecサンプリングです。光学式センサを使ったアップルウォッチは2msecサンプリングです。昔作ったドップラセンサは1msecです。サンプリングレートが高いほど心電図波形に近づきます。パルス間隔の測定も正確になります。

その3 手のひら動画から心拍データを収集

前回は、顔の動画から呼吸数・心拍数を求める試験を行いました。今回は手のひらの動画から呼吸数・心拍数を求めてみました。本来は犬の肉球の動画を使うべきところですが…

自然光に照らした手のひらの動画を30秒間撮影しました。RGBのG成分を使って輝度信号を抽出しました。顔動画より1桁くらいSN比が上がっています。

LPFの時定数を変えて抽出した呼吸波形と心拍波形からピークを検出しピーク間隔からそれぞれの洞調律を求めました。(顔動画に同じ)結果、呼吸数18回/分、心拍数85回/分でした。妥当な値でした。

今回の測定は、WEBカメラに手のひらを翳して、じっと30秒間耐えていましたが、27秒くらいのところで辛抱できず少し動いてしまいました。より安定した測定を行うため、手のひらを乗せる簡易測定装置を試作しました。QRコードスキャナの中身を取り出し、光源とカメラを組み込みました。

次回は最終回です。この簡易測定装置の評価報告を予定しています。

その4 肉球動画を使って心拍洞調律の抽出

最後にQRコードスキャナを改造した肉球動画測定装置(NQ01)を使って、実際に犬の
肉球で測定を行いました。太郎君と飼い主さんの協力に感謝します。スキャナーの上面は肉球が乗る部分を除いて黒い紙でカバーしました。

信号が棒グラフのようになったのには理由がありました。説明不足で測定中に光源切替
SWが操作され緑LED以外に赤や白のLEDに切り替わったためです。その状況は動画を分解した画像フレームで確認ができました。今回は光源切替のある波形を使って信号処理を行いました。

呼吸信号は光源切替による信号強度の変化が大きいため処理を断念しました。心拍
信号を使ったピーク検出は正常に処理できそうなので継続しました。

心拍数は87でした。以前に測定したものと同レベルです。標準偏差は17と大きいのですが、光源切替影響によるものと考えられます。
カルテコアプリと同様にカメラ画像のG成分信号から心拍数や洞調律を抽出することができました。

タイトルとURLをコピーしました