iOSアプリ「うちの血圧記録」を、ヒーローズ・リーグ2026に応募しました。
キャッチコピーは、撮って、確認して、血圧記録。 です。
この記事では、前半で一般の方向けにアプリの使い方を、後半で技術者向けに写真から数字を取り出す仕組みの工夫を紹介します。作品ページと紹介動画へのリンクは記事の最後にあります。
なお、うちの血圧記録は医療上の診断を行うものではありません。ご自身で測った血圧を記録するためのアプリです。
応募概要
- 応募先:ヒーローズ・リーグ2026
- 作品名:うちの血圧記録
- キャッチコピー:撮って、確認して、血圧記録。
- プラットフォーム:iOS(App Storeで公開中)
紹介動画
動画が表示されない場合は、YouTubeで見るからご覧ください。
なぜ作ったのか
血圧の記録は、続けることに意味があります。でも、続けるのが一番難しい記録でもあります。
測るたびに、上・下・脈拍の3つの数字を手で入力する。朝晩2回なら1日6回の入力です。測った直後は数字が画面に出ているのに、それをアプリへ打ち直すのは地味に面倒で、その面倒さが積み重なって記録が途切れていきます。
血圧計の画面には、もう数字が表示されています。それを撮って確認するだけで入力の手間が減らせれば、記録は続けやすくなる。 そう考えて作ったのがこのアプリです。
使い方
1. 血圧計の画面を撮る
測定が終わったら、血圧計の画面をiPhoneで撮影します。後からまとめて記録したい場合は、一度に最大20枚の写真を選択して、まとめて入力を補助できます。
2. 読み取り結果を確認して、保存する
写真から上・下・脈拍の数字を取り出し、入力欄に入れた状態で確認画面を表示します。自動では保存しません。 数字が合っているかを確かめて、違っていればその場で直してから保存します。
3. 測定日時は写真から
写真に記録されている撮影日時(Exif)を、測定日時として使います。朝に撮った写真を夜にまとめて記録しても、朝の記録として残ります。
4. 履歴とグラフで振り返る
記録は履歴とグラフで振り返れます。iPhoneの「ヘルスケア」アプリ(HealthKit)とも連携できます。
なぜ「必ず確認」なのか
写真から数字を取り出す仕組みは、どれだけ工夫しても読み違いをゼロにはできません。光の反射、斜めからの撮影、血圧計ごとに違う画面の作り。条件はいくらでもあります。
そして血圧の記録で、間違った数字が黙って保存されるのは一番避けたいことです。
だからこのアプリは、完全な自動化を目指しませんでした。写真の読み取りは「入力を補助するもの」と位置づけ、保存前に必ず人が確認する流れを必須にしています。手で数字を打つ手間は減らしつつ、最後に確かめるのは使う人自身です。
ここから技術の話
技術構成
| 役割 | 使っているもの |
|---|---|
| 言語・UI | Swift / SwiftUI |
| データ保存 | SwiftData |
| 文字の取得 | Apple Vision OCR |
| 画像処理 | Core Image |
| ヘルスケア連携 | HealthKit |
| グラフ | Swift Charts |
写真の読み取りはApple Vision OCRで行います。ただし、OCRの結果をそのまま使うことはしていません。ここがこのアプリで一番手間をかけたところです。
OCRの結果は「数字の山」でしかない
血圧計の画面をOCRにかけると、返ってくるのは画面上に見つかった文字の集まりです。その中には、上・下・脈拍の数字のほかに、日付、時刻、メモリ番号、単位表記、ラベル文字などが混ざっています。
どれが上で、どれが下で、どれが脈拍なのか。OCRはそこまでは教えてくれません。そこで、Apple Vision OCR+独自解析ロジックで、取得した文字から上・下・脈拍を整理しています。
日付・時刻を除外する
多くの血圧計は、測定値と一緒に日付や時刻を表示します。時刻の数字は桁数も値の範囲も血圧の数字と重なりやすく、そのままでは紛れ込みます。
そこで、日付や時刻と見なせる表記を先に取り除いてから、残りの数字を解析します。
「128/82」形式の解析
上と下を「128/82」のようにスラッシュでつないで表示する機器もあります。この形式を見つけたら、前を上、後ろを下として扱います。
ラベルとの対応づけ
画面に上・下・脈拍を示すラベル文字が表示されている場合は、ラベルの位置と数字の位置を対応づけて、どの数字が何を表すかを決めます。
OCRの誤読補正
7セグメント表示の数字は、OCRにとって読みやすい字形ではありません。数字が別の文字として認識されたり、似た形の数字と取り違えられたりします。こうした誤読の傾向に合わせて補正をかけています。
文字位置・領域からの候補推定
ラベルが読み取れない場合もあります。そのときは、OCR結果の文字位置・領域などを使って、上・下・脈拍の候補を推定します。推定した結果は、確認画面で人が確かめてから保存します。
再OCR
Core Imageで画像を補正し、必要に応じて再OCRします。
105件の単体テストコード
ここまでの解析ロジックは、条件分岐が多く、どこかを直すと別の機器の画面で読み取りが崩れる、ということが起こりがちです。そのため、最新のコードで105件の単体テストコードを整備し、解析ロジックの変更が既存のケースに影響しないかを確かめながら改善を進めています。
ヒーローズ・リーグで見てほしいところ
- OCRの結果をそのまま使わず、独自に解析していること 日付・時刻の除外、「128/82」形式の解析、ラベルとの対応づけ、誤読補正、文字位置・領域からの候補推定、Core Imageでの補正と再OCR。Apple Vision OCRで取得した文字を、血圧の記録として意味のある形に整理する部分を作り込みました。
- 完全自動化せず、人の確認を必須にしたUX 読み取りは入力を補助するものと位置づけ、保存前に必ず確認する流れにしています。技術でできることと、人が確かめるべきことの線引きを大事にしました。
- 日常の入力の負担を減らすために技術を使っていること 派手な機能ではなく、毎日の「数字を打ち直す」手間を減らすことに技術を使っています。続けるための道具として作りました。
作品ページ・紹介動画・ダウンロード
ProtoPediaでは、作品の詳細を確認できます。 ProtoPedia「うちの血圧記録」
YouTubeでは、紹介動画を見られます。 紹介動画を見る(YouTube)
App Storeから、iPhoneで利用できます。 App Storeで「うちの血圧記録」を見る
公開時の紹介はリリース記事に、YutarouLabsのほかのアプリはアプリ一覧にまとめています。
※うちの血圧記録は、医療上の診断を行うものではありません。体調や血圧の値について気になることがある場合は、医師にご相談ください。