CalCash
Aleks Zapat

How accurate are AI calorie counters from photos?

·6 min read·nutrition

An AI calorie counter gives you an estimate, not an exact number. In a 2025 study, the best general-purpose AI models were off by about 36% on average when estimating calories from food photos, and they mostly guessed low, especially on big portions. Accuracy goes up when you add the weight and ingredients to the photo. For everyday tracking that's usually enough, as long as you know where AI slips.

How accurate are AI calorie counters from photos?

How accurate is AI calorie counting? What the research says

Photo-based estimation is now being tested in peer-reviewed journals. Two 2025 papers give a good picture.

In the first, three large general-purpose language models estimated 52 standardized food photos: single foods and full meals in three portion sizes, with cutlery and plates in the shot for scale. Their answers were checked against weighed portions. The two better models had an average calorie error of 35.8%, while the third had errors from 64% to 110% across nutrients. All three underestimated, and the bigger the portion, the more they missed (Fridolfsson J et al., Current Developments in Nutrition, 2025). The authors conclude this is in the same range as ordinary self-reported food logging, but not yet precise enough for clinical or athletic use.

The second paper tested one model on 195 dishes in four modes: photo only, photo with a description, photo with an ingredient list and amounts, and the same list with no photo. Accuracy improved with each added piece of context and was best when the photo came with ingredients in grams. With the list alone and no photo, it dropped again, which means the image itself helps the model (Rodríguez-Jiménez M et al., Nutrients, 2025).

One caveat: both studies tested general-purpose models, not specific calorie counter apps. How a given app performs depends on how it's built. But the weak spots of photo estimation are the same everywhere.

Where AI calorie counters get it wrong

AI only sees the picture. Anything that isn't visible gets filled in from a "typical" version of the dish. That's where the big misses come from.

What throws it offWhyWhat to add to the photo
Oil and fatYou can't see how much oil went into the pan or the salad"cooked in 1 tbsp oil"
Sauces and dressingsMayo mixed into a salad or sauce under the meat is nearly invisible"with mayo", "no sauce"
Hidden ingredientsFillings, sugar in coffee, cheese under the veg"latte with syrup", "cheese inside"
Portion sizePlate depth and food density are hard to judge from a photoweight: "250 g" or "half portion"
Look-alike foodsSour cream looks like Greek yogurt, regular soda like dietthe exact name

Oil is the most common culprit. According to USDA FoodData Central a tablespoon of oil weighs about 14 g and has roughly 120 calories. Two tablespoons in the pan is 240 calories that simply don't show up in a photo of the finished dish.

How to make photo calorie counting more accurate

Since accuracy improves with every bit of context, the easiest fix is to help the AI with words:

Photo, text or a food scale: which to use

Each method has a cost. A scale is the most accurate, but you won't have one at a restaurant or a friend's place. Text is fast and honest if you know what you ate. A photo is handiest when the dish is complicated and describing it would take a while.

MethodAccuracyTimeBest for
Scale plus food databaseHighA few minutes per mealAt home, when precision matters
Text with a rough weightMediumHalf a minuteWhen you know what and how much you ate
Photo, no captionLower, portions often underestimatedSecondsComplicated dish, no time
Photo with weight and ingredientsClose to textSecondsNearly always

For counting without a scale and the rough guides that help, see how to count calories.

How it works in the CalCash bot

The CalCash bot in Telegram takes food photos, voice messages and text. With photos, it works like this:

It's free, with no subscription and no daily limit.

Do you need perfect accuracy?

For everyday food tracking, perfect accuracy is rarely necessary. What matters more is that the error stays roughly the same from day to day, because then your weight over two or three weeks still tells you whether your target works. The systematic underestimation of big portions is worth keeping in mind, though. If you eat from big plates and the photo estimate looks suspiciously low, add at least a rough weight.

And a caveat: this isn't medical advice. If you're counting for medical reasons, diabetes for example, agree on the method and the numbers with your doctor.

Frequently asked questions

How accurate are AI calorie counters?

In a 2025 study of 52 food photos, the two better general-purpose models were off by about 36% on average for calories, and they underestimated large portions. Treat the result as an estimate, not an exact number.

Why do photo calorie counters underestimate?

Oil, sauces, sugar and fillings are invisible in a photo, and plate depth and food density are hard to judge. So big portions and fatty dishes tend to come out lower than they really are.

How can I make photo calorie counting more accurate?

Add the weight or a count to the photo, name what cannot be seen like oil, sauce or sugar, and shoot the whole plate from above. In studies, accuracy improved when ingredients with grams were added to the photo.

Is a photo or a food scale more accurate?

A scale with a food database is more accurate, but it takes time and is not always at hand. A photo with weight and ingredients in the caption is a sensible middle ground for daily tracking.

Can I fix the calories if the bot gets a photo wrong?

Yes. In the CalCash bot each entry has a Fix button, and you can also type a correction like "not 300, 200 g of buckwheat" and the bot replaces the entry.

Written by Aleks Zapat. Founder of CalCash: builds the bot and this site hands-on, and is not a doctor or a dietitian. Last updated on October 19, 2026.

Read next

All articles
CalCash · a Telegram bot

Try CalCash

Free, inside Telegram, nothing to install.

Open in Telegram