技術解説

写真からカロリー計算する仕組み.AIがしていること。

写真でカロリー計算する仕組みは、3段階です。画像認識モデルが食品を見分け、分量の推定モデルがそれぞれの量を割り出し、栄養データベースがカロリーとPFCを返します。全体で約2秒。ベンチマーク目標は、管理栄養士との差8%以内です。

真上から撮ったサーモンのポキ丼
AIが検出
ポキ丼560kcal
34g
たんぱく質
62g
炭水化物
18g
脂質
処理の流れ

3つの段階。約2秒で。

段階1:カメラがパスタのお皿をとらえる
1  見分ける
段階2と3:パスタ320、トマトソース120、パルメザンチーズ80、オリーブオイル120、合計640kcal
2  分量と照合
どの段階も修正できる:写真に写らないことをAIに伝える
3  修正する
  1. 01

    見分ける

    画像認識モデルが、食品をひとつずつ、信頼度のスコアつきで見分けます。

  2. 02

    分量を推定する

    お皿の大きさ、食器の手がかり、見た目の量から、グラム数を出します。

  3. 03

    栄養データを調べる

    グラム数にUSDA FoodData Centralの値をかけたものが、カロリーです。

段階1 · 検出

お皿の上には何がある?

画像認識モデルが写真を受け取り、検出した食品を、写っている範囲と信頼度のスコアをつけたリストにして返します。「グリルチキン」「白いごはん」のような単品の食品も、「吉野家の牛丼」「ビッグマック」のような料理も認識します。

よく知られたチェーン店の料理なら、モデルは料理をひとつのまとまりとして見分け、材料を合計する代わりに、公開されている栄養成分を使います。検出はたいてい正確で、誤差の大部分はここでは生まれません。

段階2 · 分量

いちばん難しい段階。

分量の推定では、検出した食品をひとつずつ見て、何グラムあるかを推定します。手がかりにするのは、お皿の大きさ(標準的なお皿のサイズはわかっています)、食器の大きさ(フォークやスプーンを補助の基準に)、見た目の量(影や色の濃淡からわかる奥行き)です。

体積を推定したら、食品ごとの既知の密度(ごはんは約0.7g/cm³、牛肉は約1.0g/cm³)をかけて、グラム数を出します。写真でカロリー計算するAIでは、どれでも誤差の大部分が分量の推定で生まれます。そのため画面では信頼度の幅を示し、ワンタップで調整できるようにしています。

段階3 · 照合

推測ではなく、ただの計算。

カロリーの値を、AIが推測することはありません。検出した食品はそれぞれ公開されている栄養データベースと対応づけられ、推定したグラム数からカロリーを計算します。

メインのデータベースはUSDA FoodData Central。各国の市販品にはOpen Food Factsを使います。チェーン店のメニューは独自に整理したデータセットとして持ち、四半期ごとに更新しています。

計算の例
ごはん(白米)200g (検出)
× 1.30kcal/g (USDA FDC ID 169757)
= 260kcal
誤差の内訳

誤差が生まれる場所.

管理栄養士との差8%以内という目標に照らすと、残る誤差のほとんどは、ひとつの段階から生まれています。

処理の段階ごとの、典型的な誤差の割合
段階典型的な誤差の割合
食品の検出食品が合っているかどうか小さい。ほとんどの食事で2%未満。
分量の推定食品は正しく、量が違う最大の要因。一般的な食事で5〜10%。
栄養データの照合食品も量も正しいごくわずか。1%未満(データベースの精度)。
AIにひと言で聞かない理由

1回で聞くAIは、ブラックボックス。

もっと単純な方法もあります。写真をマルチモーダルモデルに渡して「これは何kcal?」と聞き、その答えを返すだけ。私たちはそうしません。1回の問い合わせでカロリーを推定すると、AIが自信満々に間違えることがあり、間違った答えの原因を調べることも、ひとつの段階だけを直すこともできないからです。

3段階の処理は少し時間がかかりますが、中身が見えます。検出が違えば、ワンタップで直せます。分量が違えば、少し動かすだけ。AIが何を見たのかがわかり、段階ごとに別々に修正できます。

対応する入力

入り口は6つ。処理はひとつ。

  • 01写真基本の入力です。真上か45°の角度がいちばんです。
  • 02レシピのスクリーンショットスクリーンショットの文字から、材料のリストを読み取ります。
  • 03メニューのスクリーンショットお店のメニューにある料理名を、食品として認識します。
  • 04栄養成分表示の写真そのまま読み取ります。照合が正確なので、いちばん正確な入力です。
  • 05テキストだけ「チキンサンドとポテトのSを食べた」なら、写真なしでも記録できます。
  • 06音声音声を文字に起こし、同じテキストの処理にかけます(Onmodeアプリで利用できます)。
写真からカロリー計算 · よくある質問

手短にお答えします。

3つの段階です。食品を見分け、分量を推定し、栄養データを調べます。検出はたいてい正確です。読みにくいのは分量の推定です。栄養データの照合は、決まった結果を返すデータベースの検索で、AIによる推測ではありません。
関連

あわせて読みたい。

さらに見る

このテーマをもっと知る。

この仕組みを、無料で試そう.

iPhoneならアプリで.App Store