CarbCam: 仕組みを解説
CarbCamはどのように動作しますか?
CarbCamはあなたの写真を受け取り、AIサービスに送信し、成分の推定値を受け取り、 標準の栄養データベースと照合して値を検証し、結果を表示します。
処理の流れ
処理の詳細
1 撮影とローカルでの画像トリミング
写真は最初、完全にあなたの端末内にとどまります。トリミング、回転、撮り直しができます。 “解析する”をタップするまでは何もアップロードされません。
2 サーバーキャッシュ照会(事前チェック)
画像がAIに送信される前に、アプリはSHA-512ハッシュと知覚ハッシュを使って、 同一または非常によく似た写真がすでにサーバーキャッシュに存在するかを確認します。ヒットした場合は、 AIを再度呼び出すことなく、保存済みの結果が即座に返されます。 続く確定ステップでキャッシュエントリは消費済みとしてマークされます(クォータのカウント)。
3 AI解析へのアップロード
キャッシュにヒットしない場合、(トリミング済みの)写真が当社の解析エンドポイントに送信されます。 そこでビジョンモデル(アプリ設定での選択に応じてGemini、Claude、またはOpenAI)が呼び出され、画像の内容を説明し、個々の構成要素に名前を付け、おおよその分量を推定します。
4 バックグラウンド検証(信頼度が低い場合のみ)
AIの推定値の信頼度が低い場合、サーバーは栄養データベース(USDA FoodData Central、Open Food Facts)に対する バックグラウンドの照合を開始します。補正された値はキャッシュに反映され、 次に同じまたは似た写真が一致した際には、改善された結果が表示されます。信頼度が高いスキャンではこのステップはスキップされます。
ただしバーコードの場合は、製造者の栄養成分表が主な情報源となるため、 Open Food Facts / USDAとの照合は常に直接実行されます。
5 あなたによる編集
分量、炭水化物、kcal、FPE、構成要素など、どの値も上書きできます。 保存時にはAIの推定値ではなくあなたの値が使用されます。 アプリは統計目的で、炭水化物の合計に対するあなたの補正(ユーザー: Xg 対 AI: Yg)を差分として保存します。
6 保存とNightscout同期
ローカルのSQLiteデータベースに保存されます。オプションで、あなたのNightscoutインスタンスへのNightscout同期も可能ですが、これはトリートメントテーブル内のメモとしてのみ
(タグCarbCam付き)反映され、アクティブな炭水化物/インスリントリートメントとしては扱われません。
CarbCamの保存によってあなたのLoop/AAPS/iAPSの計算に影響が出ることはなく、食事はメモとしてのみ表示されます。
ns.10be.deのマネージドNightscoutを利用している場合、設定は特に簡単です。NightscoutのURLとAPIシークレットを入力するだけで完了します。
炭水化物をアクティブなトリートメントとして扱いたい場合は、スキャン結果の共有ボタンを使ってください。 炭水化物の値をディープリンク経由でAAPS/AndroidAPS、Loop、iAPS、Trioに送信するか、システムの共有シートを開きます。
FPEとは何ですか?
FPEは脂肪タンパク単位(Fat-Protein Units)の略です。 脂質とタンパク質由来のエネルギーが、遅れて血糖値に影響を与える度合いを表します。
1 FPEはおおよそ脂質・タンパク質由来の100 kcalに相当します。例。
- 脂質30 g + タンパク質20 g = (270 + 80) ÷ 100 = 3.5 FPE
ポンプ利用者は、延長ボーラスのパラメーター(スクエアウェーブやデュアルウェーブなど)を設定する際にFPEをよく利用します。 ペン利用者は、FPEを遅めの補正おやつや午後の少量補正の目安として利用できます。
CarbCamは結果カードでFPEを黄色のチップとして表示します。 栄養価の色分けは以下の通りです。
- Carbs 炭水化物
- kcal カロリー
- FPE 脂肪タンパク単位
- Fat 脂質
- Protein タンパク質
食事の下に表示されるBG曲線
Nightscoutが設定されている場合、CarbCamはあなたのNightscoutインスタンスからBGデータを読み込み、 履歴タブの各食事の下に血糖値の曲線を表示します。 時間範囲はプラットフォームに依存し、食事を中心に自動的に選択されます。 Nightscoutと組み合わせることで、CarbCamは食後の的確なBGトラッキングを実現します。
BG曲線(Nightscoutデータ)の機能。
- 食事を中心とした時間範囲(プラットフォームに依存)
- 食事時刻のマーカー
- 色分けされたピークポイントの強調表示(レベルに応じて赤/黄/緑)
- 主要指標としての上昇幅と終値
- オプションのオーバーレイラインとしてのIOB / COB
精度
精度は食事の種類によって異なります。
| 食事の種類 | 典型的な誤差 | 例 |
|---|---|---|
| 明確な分量 | ±20 % | ご飯、パスタ、パン |
| 複雑な料理 | ±30 % | シチュー、グラタン |
| 非常に珍しい料理 | ±40 % 以上 | なじみのない地域料理 |
| 包装済み製品 | ±5 % | 自動バーコード検出(Open Food Facts経由の製造者値) |
精度を高める要因
- 良い照明と鮮明な写真:皿の上に影が落ちないようにする
- すべての構成要素が見えている:パスタをソースで覆い隠さない
- サイズの基準物:皿の縁、カトラリー、手などをフレームに入れておく
- 一般的な料理:AIはよく知られた料理を得意とします
精度を下げる要因
- 小さな盛り付けが多いビュッフェ皿
- ソースで大きく覆われた構成要素
- 明確な参照データベースがない非常に珍しい地域料理
- サイズの基準物なしで横から斜めに撮影
ボーラスへの影響
- 通常の食事:推定値を出発点として使い、自分自身の知識を適用し、必要に応じて保存前に値を調整してください
- 重要なボーラス判断(非常に多い炭水化物、低血糖リスクなど)の場合:常に自分自身の知識/データベース/パッケージを確認してください
- ポンプ利用者の場合:あなたの食事が通常どの程度ずれるかの経験を積み、その上で自分専用の係数で推定値を補正してください
オフライン時はどうなりますか?
インターネット接続がなくても、以下の機能は利用できます。
- 履歴の閲覧とフィルタリング
- エントリの手動作成と編集
- 統計タブの閲覧
- データのエクスポート(CSV/JSON)
- 写真の撮影と後で解析するためのキューへの追加
以下は接続が必要です。
- AI解析(写真がプロバイダーに送信されます)
- 自動バーコード検索(Open Food Facts)
- Nightscout同期(BG曲線、トリートメントのアップロード)