Is photo calorie counting accurate?
Updated on
Not to the gram. Studies that compared AI photo estimates with weighed meals found large average errors, mostly underestimates. A photo gives a useful estimate when you know how far to trust it. FotoMeal shows, on every scan, how sure the AI says it is, so you know when to check.
What the studies measured
Three recent studies are the most useful here, because they compared estimates with meals that were actually weighed.
- NIH study, NUTRITION 2026 (not peer reviewed): 102 meals from a controlled-feeding study (918 kcal on average): the photo features of the 4 calorie apps tested all underestimated, by 252 to 345 kcal, about a third. Source.
- Fridolfsson et al., Current Developments in Nutrition, 2025 (peer reviewed): 52 photos of weighed foods: GPT-4o (through ChatGPT), the model FotoMeal uses, was off by 35.8% on energy on average; large portions were underestimated. Source.
- O'Hara et al., Nutrients, 2025 (peer reviewed): 114 photos of 38 weighed meals: ChatGPT-4 got the median energy close to the reference, but misjudged meal weight by 27.8% on average, mostly too low. Source.
The second study tested GPT-4o, the model FotoMeal uses for the photo scan: its figures apply to us too. Each study has its limits (number of meals, type of dishes, how the photos were taken), listed in the sources at the bottom of the page. We review this section every quarter.
Why a photo fools an AI
- What you cannot see: oil, butter, sugar and sauces mixed into a dish carry a lot of calories and are invisible on a photo.
- Depth and weight: a photo is flat. The same plate can hold 250 g or 400 g of rice.
- Mixed dishes: a curry, a gratin or a soup hides what is inside.
- Angle and light: a dark or distant photo, or one taken at a sharp angle, loses detail.
- Portions out of habit: restaurant portions are often larger than home ones.
What FotoMeal does with this margin of error
- A confidence score on every photo scan, with a colour: green from 75%, orange from 50 to 75%, red under 50%.
- Under 60%, a warning and the values opened for editing, so you check before adding.
- Photos that cannot be used are refused, with a reason (not food, blurry, too dark, too far) and a tip to take a better one.
- You keep the last word: every value can be changed before it goes into your journal.
- For packaged food, the free barcode scan reads the product's own data (Open Food Facts), which is more reliable than a photo.
How to read the confidence score
The score is the certainty the AI declares about its own estimate, from 0 to 100%. FotoMeal reads it as given, keeps it between 0 and 100%, and sets it to 0 when the photo is refused. Nobody has yet checked that a low score really goes with a larger error: that is exactly what our weighed test is for (below). Until then, read it as a signal to check, not as a measured accuracy.
- Green (75% and more): the AI is confident; a quick look is enough.
- Orange (50 to 75%): check the portion and anything hidden, such as oil or sauce.
- Red (under 50%): adjust the values, or use the barcode or a search instead.
Getting a better estimate
- Take the photo from above, in daylight, with the whole plate in the frame.
- One dish per photo when you can; separate the sides.
- Add what the photo cannot see: a tablespoon of oil is about 120 kcal.
- For packaged products, scan the barcode.
- When precision matters, weigh.
When an estimate is not enough
FotoMeal gives estimates, not medical advice. If you follow a medical diet, live with diabetes or a metabolic condition, are pregnant, or have a difficult relationship with food, talk to a doctor or a dietitian before relying on calorie counting. See our terms of use.
Our test: 50 weighed meals, protocol published first
We will weigh 50 real meals and compare them with FotoMeal's estimates. We publish the protocol before the test, so that we cannot adjust it to the results.
- 50 everyday meals, home-cooked and from restaurants or takeaways, chosen in advance by type (simple dishes, mixed dishes, dishes with sauce, snacks).
- Each meal is photographed with FotoMeal on the same phone, from above, in normal light. We record the estimate (calories, macros) and the confidence score as they come, with no correction.
- Each ingredient is then weighed on a kitchen scale, and the reference values are calculated from the packaging or from a public nutrition table.
- For each meal: the gap between the estimate and the reference, in calories and in percent.
- Results grouped by colour (green, orange, red). The hypothesis we test: the gap is larger when the score is lower. If it is not, we will say so.
- No meal is removed after the fact. Photos refused by the app are counted separately.
Limits we state up front: one person, one phone, 50 meals; it is a test, not a peer-reviewed study. The full results, meal by meal, will be published on this page.
Questions
Can an app count calories from a photo to the gram?
No. A photo shows neither the oil, nor the hidden ingredients, nor the exact weight. Recent studies measure large average errors. A photo gives an estimate you check and adjust.
Is FotoMeal more accurate than other photo apps?
We do not claim so. FotoMeal uses GPT-4o, the model one of these studies tested, and shows on every scan how sure the AI says it is, so you know when to check.
What does the confidence score mean?
It is the certainty the AI declares about its own estimate, from 0 to 100%. It is not a measured accuracy. Under 60%, FotoMeal warns you and opens the values for editing.
When should I weigh instead?
When precision matters: a medical diet, diabetes, a sports goal with tight margins, or any meal the app flags as uncertain. For packaged food, the barcode is more reliable than a photo.
Will you publish the weighed test results even if they are bad?
Yes. The protocol is on this page before the test starts, and the results will be published as they are, with every meal.
Sources
- Charles O, Flacke EU, Turner S, Yang S, Airaghi K, Vallone N, Herra L, Darcey VL, Chung ST, Hengist A (NIDDK, NIH). Photograph-based AI Features in Calorie-tracking Apps Underestimate Energy Content of Meals. Abstract, President's Oral Session, NUTRITION 2026 (American Society for Nutrition), National Harbor, MD, 25 July 2026.
- Fridolfsson J, Sjöberg E, Thiwång M, Pettersson S. Performance Evaluation of 3 Large Language Models for Nutritional Content Estimation from Food Images. Current Developments in Nutrition. 2025;9(10):107556.
- O'Hara C, Kent G, Flynn AC, Gibney ER, Timon CM. An Evaluation of ChatGPT for Nutrient Content Estimation from Meal Photographs. Nutrients. 2025;17(4):607.
- How FotoMeal computes the score: answer of the FotoMeal app team, 18 October 2026 (score declared by GPT-4o, no calibration, warning under 60%).
Try FotoMeal
Barcode, search, manual entry and journal are free for life. The photo scan comes with a 7-day free trial, then €29.99 a year in the euro area (your store shows the price in your currency).