カロリーのためのバーコード読み取り|栄養成分表示が語らないこと
結論から: バーコードの読み取りは、市販品を記録する最も正確な方法です。数字が推定ではなくメーカーの表示から来るからです。ただし表示はメーカーが決めた「1食分」についてのもので、丸めの規則によっては1食分あたり20〜30kcalが見えなくなることもあり、そして袋のうちどれだけ食べたかについては何も語りません。読み取りに量の申告を添えればほぼ正確になり、読み取りだけなら写真より外れることもあります。
バーコード読み取りの仕組み
包装のバーコードは商品コード(欧州はEAN、米国はUPC、日本はJANコード)であって、栄養データではありません。アプリはカメラでコードを読み、コードと商品・表示を対応づけたデータベースで照合します。データベースには3種類あります。
- メーカー提供のデータ。 ブランドから直接で、正確ですが網羅性に欠けます。
- Open Food Facts。 利用者が育てる公開データベースで、数百万件の商品を持ち、欧州でとくに強く、どのアプリでも無料で使えます。配合が変わると項目が古くなります。
- アプリ独自の投稿。 MyFitnessPalの2000万件は主に利用者の投稿です。網羅性は大きく、誤った項目の割合も大きくなります。
網羅性は地域によります。米国向けに整えられたアプリは、欧州のアプリが見つけられない米国商品を見つけますし、その逆もあります。日本の商品については、国内のアプリのほうが強いのが実情です。読み取っても何も返らないなら、それはスキャナーの不具合ではなくデータベースの穴です。栄養成分表示を撮影するか、商品名を入力してください。
読み取りで得られるもの
カロリー、たんぱく質、炭水化物、脂質、そして表示に印刷されているすべて。糖、食物繊維、食塩相当量、飽和脂肪酸、ときにビタミン。だからこそバーコードは、多くのアプリが無視する3つの項目を得る最良の入力になります。糖・食物繊維・塩分は、写真には決して写らないかたちで表示に載っています。
CalMePleaseは読み取り時にそれらを10項目へ自動的に取り込みます。PFCの4項目しか扱わないアプリは捨ててしまいます。
表示が隠すこと
1. 「1食分」はあなたの分量ではない
どの表示も1食分あたりで、何を1食分とするかはメーカーが決めます。100gのスナック菓子が「3食分」と書かれていることがあります。500mlのジュースが250mlあたりで書かれていることがあります。読み取って既定値のまま受け入れれば、食べた量の3分の1を記録することになります。
対処: 読み取ったあとに量を言うこと。「1袋全部」「半分」「150g」。CalMePleaseなら話すだけです。読み取りの誤りの大半は、表示の誤りではなく量の誤りです。
2. 丸めの規則
表示には丸めが認められています。日本の食品表示法でも、一定の値未満は「0」と表示できる規定があります。米国では50kcal未満は5単位、それ以上は10単位に丸められ、5kcal未満は0と表示できます。脂質は0.5g未満なら0になります。「脂質ゼロ」の調理用スプレーや「カロリーゼロ」の甘味料はこうして成立します。1食分では小さな差でも、小分けを何度も食べる1日では50〜100kcalが表に出ないまま消えます。
3. 100gあたりか、1食分あたりか、1包装あたりか
欧州の表示は100gまたは100mlあたりの記載が義務です。米国では1食分あたりで、2016年以降は一度に食べきることが多い商品について1包装あたりも併記されます。日本では100gあたりと1食分あたりのどちらもあり得ます。アプリが100gあたりの値を1食分として扱うことがあるため、大きな包装では計算の基準を確認してください。
4. 「乾燥時」と「調理後」
パスタ、米、オートミールなど水を吸うものは乾燥状態で表示されています。乾燥した米100gは約350kcal、炊いた米100gは約130kcalです。箱を読み取って炊いた重さを記録すれば、3倍近く外れます。加熱で水分が抜ける肉は逆になります。
対処: 調理後で量るなら、調理後の項目を探すか換算してください。
5. 表示の許容差
規制当局は実際の含有量が表示と異なることを認めています。米国ではカロリーで最大20%程度、欧州でも同様の許容差があります。独立した検査では、市販食品が表示より10〜20%高い例が定期的に見つかります。バーコードは印刷された内容について正確であって、袋の中身について正確なわけではありません。
6. 配合の変更
メーカーは配合を変えます。データベースの項目が3年前のものということもあります。手元の表示と読み取り結果が食い違うなら、表示のほうが正しいです。
バーコード、写真、音声の使い分け
| 場面 | 適した入力 | 理由 |
|---|---|---|
| 市販品を全部食べた | バーコード | 表示どおりに正確 |
| 市販品を一部食べた | バーコード+量の申告 | 食べた割合について表示どおりに正確 |
| 自炊の皿 | 写真+音声メモ | バーコードがない。AIが構成要素に名前を付け、油と量を足す |
| 外食 | 写真+音声メモ | 脂と砂糖が隠れている。「外食」と添える |
| 包装が手元にない間食 | 音声 | 最も速い。読むものも撮るものもない |
| 自分で炊いた米や麺 | バーコード+調理後の重量 | 表示は乾燥時。実際に食べた量を言う |
法則はこうです。バーコードは印刷された内容に正確で、量はあなたが与える。写真は量を推定し、見えないものはあなたが与える。音声はその両方を記憶から与える。良いアプリは1食のなかでこれらを組み合わせられます。ヨーグルトを読み取り、果物の器を撮り、「はちみつ一さじ」と言う、というふうに。
無料でバーコードを読めるアプリ
バーコード読み取りは複数の大手アプリで有料機能になりました。基本機能だと思っていた人を驚かせます。
| アプリ | 無料版でのバーコード |
|---|---|
| CalMePlease | あり |
| Cronometer | あり |
| Cal AI | あり |
| MyFitnessPal | Premiumのみ(2022年以降) |
| Yazio | Proのみ |
実用的な読み取りの手順
- 読み取る。
- アプリが使った基準を見る(1食分あたり? 100gあたり? 乾燥時?)。
- 食べた量を自分の単位で言う。
- 商品が見つからなければ、栄養成分表示を撮影するか名前を入力する。「だいたい似た項目」を選ばないこと。最大の誤差はそこで生まれます。
- 米や麺は、調理後の量を調理後の項目に対して記録する。
このうち2つは量についての手順です。それがこの記事の要点です。表示は正確で、変わるのはあなたの分量です。
よくある質問
バーコードは写真より正確ですか。 市販品については正確です。数字が表示から来ます。ただし食べた量については正確ではありません。1食分だったのか1袋だったのかを読み取りは知りません。
アプリと包装でカロリーが違うのはなぜですか。 配合変更後に項目が古くなっている、1食分ではなく100gあたりを取っている、投稿が誤っている、といった理由です。基準は手元の表示です。
どのデータベースを使っているのですか。 メーカーのデータ、Open Food Facts、各アプリ独自の投稿の組み合わせです。網羅性は地域ごとで、日本の商品は国内アプリのほうが見つかりやすい傾向があります。
カロリーだけでなく糖や塩分も読み取れますか。 読み取れます。表示に載っているからです。保持するかどうかはアプリ次第で、CalMePleaseは読み取りのたびに糖・塩分・食物繊維を10項目の一部として記録します。
バーコードのない商品はどうしますか。 栄養成分表示を撮影するか、商品名を言ってください。青果、惣菜、ベーカリーにはバーコードがありません。写真か音声を使います。
関連記事: AIはどうやって食事を認識しているか · 音声で食事を記録する
CalMePleaseは無料版でバーコードを読み取り、表示にある糖・塩分・食物繊維を含む1食10項目を計測します。App Storeでダウンロード。