やりたいことはこうです。弁当に向けて一枚撮る。それがこの一食のカロリーをだいたい教えてくれる。そういうアプリは実際に存在しますし、思っているより使えます——ただし、その数字のどこが測られたもので、どこが推測なのかを知っていれば、という条件つきで。
私たちはまさにそういうアプリを作っているので、このページの立場は割り引いて読んでください。ただし以下はすべて自分で確かめられることですし、技術的に弱いところは先に書きます。二週目には自分で気づくことだからです。
シャッターのあとに起きている4つのこと
このカテゴリのアプリはどれも同じ4段階を通ります。違うのは各段階の精度と、どこまで見せてくれるかだけです。
一皿を切り分ける
モデルはまず写真を食品の領域に分割します。ここがごはん、ここが唐揚げ、ここがほうれん草。この2年でいちばん進んだのがこの段階で、食べものが視覚的に分かれてさえいれば、今はかなりよくできます。
それぞれが何かを当てる
各領域に名前と確信度がつきます。「焼き鮭」は簡単で、「茶色いタレのようなもの」は難しい。そしてタレ一杯のカロリーは、かかっている肉より高いことがよくあります。
分量を見積もる——いちばん難しい段階
各食品が何グラムあるかを推定します。写真は平面で奥行きの情報がないので、体積は表面積と、器の大きさを物差しにすることと、「この料理は普通このくらい」という知識から導かれます。誤差のほぼ全部がここで生まれます。
グラムをカロリーに換える
「焼き鮭165グラム」と分かってしまえば、あとは表を引くだけで不確かさはほとんどありません。不確かさは3段階目で使い切られています。
よく当たるとき
- 包装があって表示が読めるもの。それは推定ではなく参照です。
- 食品が分かれている皿:肉、ごはん、副菜がくっついていない状態。
- 形と密度が安定しているもの:卵一個、食パン一枚、バナナ一本、鶏むね一枚。
- よく食べるもの。一度直したあとは、よくできたアプリなら同じ食事で二度は間違えないはずです。
- 一週間の傾向。各食に誤差があっても、一週間の方向はたいてい合っています——そして多くの人が本当に知りたいのは、その方向のほうです。
外れるとき、そしてその理由
- 油。 写真にはまったく写らないのに、カロリーは非常に高い。同じ野菜炒めでも、厨房が使った油の量で200 kcal 以上変わり得ますし、カメラにそれは見えません。
- タレ、あん、煮汁。 丼もののカロリーはタレの量と脂の比率でほぼ決まりますが、そこが写真からいちばん判断しにくい部分です。
- 混ざった料理。 カレー、丼、あんかけ、汁物。切り分けには見える境界が要りますが、汁物に境界はありません。
- 器の深さ。 ラーメンを真上から撮ると見えるのは表面で、深さではありません。同じに見える二杯で分量はかなり違います。
- 学習データにない料理。 欧米の皿を中心に学習したモデルは、定食の一汁三菜やコンビニ弁当、丼ものでぶれます。これは物理の問題ではなくデータの問題です——直せますが、そのアプリがあなたの食べるもので学習していれば、の話です。
日本の食事が特に難しい点
意地悪をしているわけではなく、この数種類が上の弱点をいくつも同時に踏むからです。これは実測データではなく、この仕事をしている私たちの工学的判断です。
| 食事 | 写真に見えるもの | 難しい点 |
|---|---|---|
| コンビニ弁当 | 主菜、副菜、ごはんの表面積 | 比較的扱いやすい。主な変数はごはんの量と主菜の調理法 |
| 定食(一汁三菜) | 器が分かれていて切り分けやすい | 切り分けは問題ない。難しいのは各小鉢の油と味付けの差 |
| 丼もの | 一杯のごはんと上の具 | タレの量と脂の比率で決まるが、そこが見えない |
| ラーメン、うどん | 一杯の汁と麺 | 境界がなく、深さも見えない。スープを飲むかどうかでも変わる |
| 揚げもの | 個数と大きさは見積もれる | 吸油量の差が大きく、同じ重さでもかなり違う |
| タピオカなど加糖飲料 | 色のついた液体一杯 | 糖分はまったく見えない。これだけは自分で入力するしかない |
選ぶ前に確かめておくこと
- どう認識したかを見せてくれるか。 数字だけ投げてくるなら、鶏肉を豆腐と取り違えたことに気づきようがありません。認識過程が見えるのは飾りではなく、唯一の監査記録です。
- 分量をひとつ直すのに何タップか。 最初の一食で試してください。修正が手入力より面倒なら、そのアプリは解決すると謳った問題を解決していません。
- 1/3、1/2を指定できるか。 「三分の二くらい食べた」は現実で最も多い修正で、「1人前」しか選べないアプリには毎日いらいらします。
- 無料の範囲は具体的に何か。 「無料ダウンロード」は無料プランではありません。ひと晩かけて設定する前に、「課金せずに何回スキャンできるか」という数字を見つけてください。
- 登録せずに試せるか。 結果をひとつも見ないうちにアカウントを作らせるなら、その製品が優先しているのは登録数であって、あなたではありません。
私たちが作っているもの
Plateknow は iOS アプリ(Android も続きます)で、上の4段階をやり、2段階目を見せます。一皿がひとつずつ切り出されていくのが見えます——それが数字を信じられるものにしている部分です。結果カードには常に見える修正ボタンがあり、編集モードの奥ではありません。分量は分数で指定できます。目標をまったく設定しないモードもあります。多くの人はただ自分が何を食べたかを見たいだけで、数字を割り当てられたいわけではないからです。
そして数時間後、ひとつだけ質問が来ます——あとで体調はどうでしたか。答えはその一食の隣に残ります。数字はすべて消せます。消しても記録は残ります。
未リリース。12月の審査提出を予定していて、少人数の初期テスターを募集中です。
少人数の グループ
最初のテストグループへ。ついでに、何を作るべきか教えてください。
TestFlight での先行利用。ベータ期間中の料金はかかりません。
写真でのカロリー推定に通信は必要ですか?
多くの場合必要です。モデルが端末ではなくサーバーで動くからです。これはプライバシー上の意味を持ちます:食事の写真が端末から出ていくということです。この種のアプリは、出ていくのかどうか、どれだけ保持するのかを明確に伝えるべきです。
メニューや栄養成分表示を撮ってもいいですか?
文字も読むアプリがあり、包装の成分表示にはとても有効です。飲食店のメニューにはあまり効きません——メニューは料理名を教えてくれますが、分量も、厨房が使った油の量も教えてくれません。
バーコードのほうが正確ですか?
包装食品なら当然そうです。バーコードは厳密な照合ですから。写真が扱うのはバーコードのないもので、多くの人にとってはそれが食事の大部分です。
出たカロリーを医療的な根拠にできますか?
できません。この種のアプリは計測機器ではありませんし、そう扱うべきでもありません。医療上の必要があれば管理栄養士か医師に相談してください。