How Accurate Is AI Calorie Counting From a Photo? We Tested 506 Weighed Dishes
Short answer: ego's calorie estimate was off by a median of 23% per dish. We tested it on 506 dishes whose ingredients had been weighed, from Google's public Nutrition5k dataset, sending the app a photo of each dish plus a note listing its ingredients, without amounts. The errors partly cancel out: for a day of four dishes, the median error on the total was 14%, and the total for all 506 dishes came out 4.2% below the weighed total.
Key findings
- ego's calorie estimate was within 30% of the weighed value for 63% of dishes and within 20% for 43%.
- The average error was 72 kcal on dishes that averaged 256 kcal (28.1% of the mean). The median error was 44 kcal.
- Only 14% of dishes were off by more than half.
- Errors partly cancel over a day: for four random dishes (about 1,000 kcal together), the median error on the total was 14%, and two days in three were within 20%.
- Across all 506 dishes, ego's total was 4.2% below the weighed total.
- Plate size mattered. ego overestimated small dishes by 23 kcal on average (dishes averaging 51 kcal) and underestimated large dishes by 73 kcal (dishes averaging 497 kcal).
- The biggest misses were calorie-dense foods. Salads with cheese, cream or oil and plates of nuts came out low: one 902 kcal salad was estimated at 351 kcal, and 688 kcal of almonds at 261 kcal. Plates with pizza came out high.
- Macros were close on average: protein was off by 6.0 g, fat by 5.3 g and carbs by 6.0 g per dish.
- For context, the dataset's authors report an average error of 70.6 kcal (26.1%) for a model they trained on Nutrition5k images alone. ego was not trained on this data and had the ingredient names; it scored 72.0 kcal.
Results
506 dishes, photo plus ingredient note. Percent figures use the 424 dishes with at least 50 kcal.
| Measure | Result |
|---|---|
| Average calorie error | 72.0 kcal (28.1% of the mean dish) |
| Median calorie error | 44 kcal |
| Median percent error | 23.0% |
| Within 10% / 20% / 30% | 23% / 43% / 63% of dishes |
| Off by more than 50% | 14% of dishes |
| Total of all dishes vs weighed | −4.2% |
| Day of 4 dishes: median error | 14.0% |
| Day of 4 dishes: within 10% / 20% | 36% / 67% of days |
| Dish weight, average error | 50 g |
| Protein / fat / carbs, average error | 6.0 / 5.3 / 6.0 g |
By plate size
| Dishes | Weighed calories | Average error | Direction |
|---|---|---|---|
| Smallest third (168) | 1–110 kcal, average 51 | 32 kcal | 23 kcal too high |
| Middle third (168) | 112–317 kcal, average 217 | 58 kcal | 18 kcal too high |
| Largest third (170) | 317–1,051 kcal, average 497 | 125 kcal | 73 kcal too low |
Large plates ran low. If you eat big portions, check the portion size before you save.
What this means if you log food by photo
- Judge the week, not the meal. Any single estimate can be 25% off. The errors partly cancel, so your weekly intake trend next to your weekly weight average is the number to act on.
- Add a note for what the camera can't see, with an amount. "1 tbsp olive oil" or "200 g rice" tells the AI something the photo can't. In ego, an amount you type takes priority over the photo estimate.
- Weigh calorie-dense foods when it matters. Nuts, cheese, cream, oils and dressings caused the biggest misses. A few weigh-ins also calibrate your eye for editing estimates.
- Watch big plates. Large portions were underestimated on average. Bump the portion up if the estimate looks light.
For the full workflow, see how to take a picture of food and get calories and our guide to how accurate AI calorie counters are across published studies.
How we tested
- Dataset. Nutrition5k from Google Research (Thames et al., CVPR 2021, CC BY 4.0): about 5,000 cafeteria dishes, each ingredient weighed, with calories and macros from USDA values. We used the official test split of dishes that have an overhead photo: 507 dishes. One was an empty plate, which ego correctly answered as "not food", so 506 dishes are scored.
- Input. For each dish, the overhead photo from a fixed camera (640 × 480 pixels), converted to JPEG at 75% quality, the same format the ego app uploads, plus a note with the dish's ingredient names from the dataset labels, without amounts, for example "celery, olives, brussels sprouts". In the app, this is the note you can add to a meal photo.
- Analyzer. ego's production meal-photo analysis as of October 31, 2026: the same instructions, model (an OpenAI GPT-5.6 vision model) and calculations users get. We called it directly so nothing was saved to any account. Each dish was analyzed once.
- Metrics. Error is the absolute difference between the estimate and the weighed value. Percent figures use dishes with at least 50 kcal, because a few calories on a tiny dish make percentages meaningless. "Percent of the mean" follows the Nutrition5k paper's convention. The day figures come from 20,000 random groups of four test dishes, comparing the summed estimate with the summed weighed calories.
Limitations
- All dishes come from one cafeteria in California, photographed in 2019. Home cooking and restaurant food may behave differently.
- The fixed overhead camera has lower resolution than a phone, and every photo has the same angle and lighting.
- The dishes are smaller than typical meals (median 228 kcal).
- The note listed every ingredient. Many people type less or nothing, which gives the AI less to go on.
- AI output varies slightly from run to run, and we analyzed each dish once.
- We tested ego only. Other apps don't offer a way to run hundreds of photos through their analysis, so we can't compare them on the same dishes.
- We make ego. That is why the data is published below: anyone can check every number on this page.
Download the data
ego-nutrition5k-results.csv (507 rows, 75 KB). One row per dish: the Nutrition5k dish ID, the weighed calories, weight, protein, fat and carbs, the note text, and ego's estimates and dish name. The dish IDs match the Nutrition5k files, so you can look up each photo.
The data is free to reuse under CC BY 4.0. Please credit Nutrition5k as well.
How to cite: Gadeev, R. (2026). How accurate is AI calorie counting from a photo? A 506-dish test of ego on Nutrition5k. egoapp.fit. https://egoapp.fit/research/photo-calorie-accuracy/
Questions about the method: robert@egoapp.fit.