Teste de precisão · outubro de 2026
Testamos as estimativas de carboidratos do Soba com 400 fotos de refeições
As fotos vêm de dois conjuntos de dados públicos de pesquisa em que os carboidratos de cada refeição foram pesados ou registrados. Abaixo estão os resultados, o método e as refeições em que o Soba errou.
68,5%das refeições ficaram a no máximo 10 g dos carboidratos reais, com uma só foto
+4pontos a mais a no máximo 10 g quando uma dica nomeava os alimentos exatamente como o estudo os registrou
5,2 gde erro mediano com uma só foto
O que encontramos
Os números desta seção são as primeiras estimativas do Soba só com a foto, antes de qualquer correção de peso ou dica. 49% das estimativas ficaram a no máximo 5 g dos carboidratos reais. O intervalo de confiança de 95% para a parcela a no máximo 10 g vai de 64,0% a 72,9%.
As refeições pequenas e médias tiveram as estimativas mais próximas. Nas refeições com menos de 15 g de carboidratos, 89% das estimativas ficaram a no máximo 10 g.
As refeições grandes geralmente foram subestimadas. Em 38 de 42 refeições com 60 g de carboidratos ou mais, a estimativa do Soba ficou baixa demais. A estimativa mediana foi de 64% da quantidade real. A principal causa é o peso da porção: em 30 dessas 38 refeições, o Soba avaliou que a comida pesava pelo menos 15% menos do que de fato pesava, enquanto os carboidratos por 100 g geralmente ficaram próximos.
O que isso significa quando você usa o Soba
- Num prato grande de pão, arroz, macarrão, batata ou pizza, pese o principal alimento com carboidratos, se puder. As estimativas de 40 g ou mais erraram nas duas direções: de 84 refeições, 32 ficaram mais de 10 g acima e 23 abaixo.
- Itens pequenos isolados, como um cookie ou uma fatia de pizza, às vezes saem mais pesados do que são.
- O açúcar dissolvido numa bebida não aparece na foto. No teste, um chá gelado adoçado foi lido como sem açúcar. Acrescente uma dica curta, como “chá doce”, ou escaneie o código de barras.
- Para alimentos embalados, o código de barras traz os valores do rótulo.
O que você pode acrescentar no app
Os resultados acima vêm de uma foto e nada mais. No app, você pode acrescentar algumas palavras sobre a refeição e, em iPhones com câmera de profundidade, o Soba também mede a distância até a comida. Repetimos o teste com cada uma dessas opções.
Todas as 400 fotos
200 fotos de refeitório com dados de profundidade
Uma dica em texto
Algumas palavras, como “chá doce” ou “trigo-sarraceno”, acrescentam o que uma foto não consegue mostrar. No teste, cada uma das 400 fotos recebeu uma dica com os nomes dos principais alimentos do registro do conjunto de dados, sem quantidades, por exemplo “Coffee, brewed; Coffee creamer, liquid, fat free”. A parcela a no máximo 10 g subiu de 68,5% para 72,8% (intervalo de 95% para o ganho: 0,7 a 7,9 pontos), e o erro mediano caiu de 5,2 para 4,5 g.
A dica ajudou mais quando a foto podia ser interpretada de mais de um jeito. Sem ela, o Soba confundiu aquele café com creme com calda de caramelo e estimou 162 g de carboidratos. Com a dica, estimou 5,5 g, e o registro alimentar indica 2,7 g. Nas fotos do SNAPMe, que as pessoas tiraram das próprias refeições, a parcela a no máximo 10 g subiu de 59,5% para 67,5%. Nas fotos de refeitório, em que os alimentos são fáceis de ver, quase não mudou: de 77,5% para 78,0%.
A dica nomeia o alimento, mas o Soba continua avaliando a quantidade pela foto. As refeições grandes foram subestimadas em 37 de 42 casos com dica e em 38 sem dica. As dicas do teste copiavam exatamente os registros dos conjuntos de dados. A maior parte do ganho veio do primeiro grupo de 200 refeições, 8,0 pontos; no segundo grupo, foi de 0,5. Uma dica digitada por você provavelmente acrescentará menos.
Distância medida pela câmera de profundidade
Quando você tira a foto com a câmera do Soba num iPhone com scanner LiDAR ou com duas ou mais câmeras traseiras, o Soba mede a distância até a comida e informa ao modelo a largura do enquadramento em centímetros. O Nutrition5k inclui uma gravação da câmera de profundidade para cada foto, então repetimos as 200 refeições dele com essa medida. A parcela a no máximo 10 g subiu de 77,5% para 82,0% (intervalo de 95% para o ganho: 1,0 a 8,3 pontos), e o erro mediano caiu de 3,9 para 3,1 g. As refeições grandes continuaram subestimadas, em 12 de 13 casos. Essas fotos foram tiradas diretamente de cima, de uma altura fixa. Ainda não medimos fotos tiradas em ângulo.
Com a medida de profundidade e a dica juntas, o resultado foi de 78,5%. Nessas fotos de refeitório, a dica tinha pouco a acrescentar, e o intervalo de 95% para a diferença em relação à profundidade sozinha, de −8,8 a +1,5 pontos, inclui o zero.
Suas correções
Se você sabe o peso da porção, digite-o, e todos os números são recalculados. O peso da porção foi a principal causa dos erros grandes neste teste.
O Soba mostra uma faixa de peso ao lado de cada estimativa. Nos 200 pratos pesados do Nutrition5k, o peso real do prato ficou dentro dessa faixa em 97 casos, cerca de metade. A faixa mostra onde o modelo espera que o peso esteja. Uma balança de cozinha é a verificação mais segura.
Resultados por tamanho da refeição
| Carboidratos reais | Refeições | Erro de até 10 g | Erro de até 20 g | Erro mediano |
|---|---|---|---|---|
| Menos de 15 g | 167 | 88,6% | 98,8% | 2,0 g |
| 15 a 30 g | 94 | 69,1% | 88,3% | 6,2 g |
| 30 a 60 g | 97 | 54,6% | 84,5% | 8,4 g |
| 60 g ou mais | 42 | 19,0% | 38,1% | 25,4 g |
O resultado geral depende dessa composição: 42% das refeições do teste tinham menos de 15 g de carboidratos. Se você costuma comer refeições maiores, espere um erro típico maior.
Esses grupos usam os carboidratos reais, que o app desconhece no momento do escaneamento. Agrupadas pela própria estimativa do Soba, 84 refeições ficaram em 40 g ou mais, e 55 delas erraram por mais de 10 g: 32 para cima e 23 para baixo. Por isso, o app sugere pesar o principal alimento com carboidratos quando uma estimativa chega a 40 g.
Quatro refeições do teste
Duas estimativas próximas e dois erros. Os nomes dos alimentos e os pesos do Soba foram tirados das respostas dele.
Fotos: conjunto de dados Nutrition5k, Google Research, CC BY 4.0. Redimensionadas para esta página.
Dois conjuntos de dados, dois tipos de foto
| Conjunto de dados, 200 refeições cada | Erro de até 10 g | Erro mediano | Erro médio |
|---|---|---|---|
| Nutrition5k | 77,5% | 3,9 g | 6,8 g |
| SNAPMe | 59,5% | 6,8 g | 12,2 g |
Os pratos do Nutrition5k vêm de refeitórios do Google. Cada ingrediente foi pesado, e uma câmera fixa tirou cada foto diretamente de cima. São condições controladas, e foi aqui que o Soba se saiu melhor.
O SNAPMe é um estudo do Departamento de Agricultura dos EUA e da UC Davis. 95 pessoas nos EUA fotografaram as próprias refeições antes de comer e mantiveram um registro alimentar no ASA24, uma ferramenta de avaliação alimentar. As fotos se parecem com as que as pessoas tiram com o Soba. Os valores de referência vêm dos registros alimentares dos participantes, que têm erros próprios. Parte da diferença entre os dois conjuntos vem das fotos, e parte vem dos valores de referência.
Comparação com um estudo publicado
Rodríguez-Jiménez e colegas (Nutrients, 2025) testaram o ChatGPT-5 em 74 refeições do SNAPMe usando apenas fotos. Eles relatam um erro absoluto médio de 12,99 g de carboidratos e uma mediana de 8,75 g.
| Só a foto | Refeições | Erro médio | Erro mediano |
|---|---|---|---|
| ChatGPT-5 (publicado) | 74 | 12,99 g | 8,75 g |
| Soba | 200 | 12,2 g | 6,8 g |
Os autores escolheram as refeições de outro jeito e corrigiram alguns valores de referência à mão, então as duas linhas só podem ser comparadas de forma aproximada. Elas mostram um nível de erro parecido. No mesmo estudo, uma nota curta sobre a gordura, o açúcar e a carne da refeição reduziu o erro médio para 11,29 g. No Soba, uma dica com os nomes dos alimentos reduziu o erro médio nas 200 refeições do SNAPMe de 12,2 para 10,2 g.
Qual modelo o Soba usa
Rodamos oito modelos nas primeiras 200 refeições com as instruções do Soba.
| Modelo | Erro de até 10 g | Tempo mediano |
|---|---|---|
| Google Gemini 3.7 Flash | 73,0% | 3,7 s |
| Google Gemini 3.8 Flash | 71,5% | 4,8 s |
| Google Gemini 3.5 Flash-Lite | 69,0% | 2,1 s |
| Google Gemini 3.6 Flash | 67,5% | 3,3 s |
| OpenAI GPT-6 Luna | 65,0% | 6,9 s |
| OpenAI GPT-6 Luna Pro | 63,0% | 11,7 s |
| OpenAI GPT-6.1 Sol | 58,0% | 13,1 s |
| Anthropic Claude Sonnet 5.5 | 53,0% | 6,0 s |
Uma execução por modelo via OpenRouter, com as configurações de requisição que o Soba usava antes de outubro de 2026. O Claude Sonnet 5.5 devolveu um item de comida vazio em 41 das 200 fotos pelo provedor que o OpenRouter selecionou. Nas outras fotos, chegou a 66,7%. O GPT-6.1 Sol superestimou os carboidratos em 10 g, em média.
O Gemini 3.7 Flash ficou em primeiro lugar nessas 200 refeições. Um modelo que vence uma comparação entre oito muitas vezes parece melhor do que é, então o verificamos no segundo grupo de 200 refeições. Lá ele teve o mesmo resultado que o Gemini 3.6 Flash, 70,5% cada, a um preço mais alto. O Soba continua com o Gemini 3.6 Flash.
Também testamos dar ao Gemini 3.6 Flash mais tempo para raciocinar. Em 400 refeições, a parcela a no máximo 10 g subiu 4,1 pontos, enquanto a parcela a no máximo 5 g e o número de erros acima de 30 g continuaram iguais. Cada escaneamento levou o dobro do tempo, 6,6 segundos em vez de 3,5. Mantivemos a configuração mais rápida.
A comparação completa, com intervalos de 95%, dados por refeição e um script que recalcula cada tabela: oito modelos de IA em fotos de refeições (em inglês).
Como fizemos o teste
Escolha das refeições
O ponto de partida foram 505 pratos do Nutrition5k da divisão oficial de teste do conjunto para fotos de cima e 1.457 fotos do SNAPMe tiradas antes de comer. Antes disso, removemos 22 entradas: pratos e refeições com valores inválidos e fotos do SNAPMe que não puderam ser associadas a exatamente um registro alimentar.
Um script com semente aleatória fixa pegou 100 refeições de cada conjunto: 25 de cada quartil da faixa de carboidratos. Pratos de refeitório fotografados nos mesmos dez minutos costumam ser parecidos, então o script limitou quantos pratos pegava de uma mesma janela de dez minutos. Depois, escolheu do mesmo jeito um segundo grupo de 200 refeições, sem fotos ou refeições em comum com o primeiro grupo.
Dois grupos
Estudamos os erros e testamos mudanças nas instruções do Soba só com as primeiras 200 refeições. As outras 200 serviram para verificar se um resultado se mantinha. Foi assim que identificamos o caso do Gemini 3.7 Flash descrito acima.
Como o Soba foi executado
Cada foto passou pelo mesmo código de servidor que o app usa: as mesmas instruções, o mesmo modelo e as mesmas configurações. As fotos foram reduzidas a 1.024 pixels no lado maior, como o app faz antes do envio. A execução principal foi feita sem dica em texto, sem dados da câmera de profundidade e sem correção posterior. As execuções com dica ou com dados de profundidade usaram o mesmo código e mudaram só essa entrada. O idioma do app estava definido como russo.
Como medimos o erro
O Soba informa os carboidratos líquidos (sem fibras) e as fibras separadamente. Os conjuntos de dados trazem os carboidratos totais, então comparamos os carboidratos líquidos do Soba mais as fibras com o total. A medida principal é a parcela de refeições em que a diferença é de 10 g ou menos. Um escaneamento com falha contaria como erro; não houve nenhum. O intervalo de 95% vem de um bootstrap com 10.000 reamostragens que mantém juntas as refeições de um mesmo participante do SNAPMe ou de uma mesma janela de dez minutos do refeitório.
Limites deste teste
- Todas as refeições são dos EUA. Os pratos do Nutrition5k foram fotografados diretamente de cima, com uma única configuração de câmera.
- Os valores de referência contêm erros. Os valores do SNAPMe vêm de registros alimentares feitos pelos próprios participantes. Alguns pratos do Nutrition5k têm registros que deixam de fora alimentos visíveis.
- Testamos o reconhecimento por fotos. Descrições em texto, busca por código de barras e entrada manual ficaram fora do teste.
- As dicas do teste nomeavam os alimentos exatamente como os conjuntos de dados os registraram, e o ganho delas variou muito entre os dois grupos de refeições (veja “Uma dica em texto”).
- O resultado com profundidade cobre só as 200 fotos do Nutrition5k, todas tiradas diretamente de cima.
- Medimos carboidratos. Proteínas, gorduras e calorias ficam fora do escopo desta página.
- Os provedores atualizam os modelos. Os resultados descrevem o Soba em outubro de 2026.
O Soba não é um dispositivo médico. Os números dele são estimativas. Compare-os com a comida no seu prato e com os rótulos dos produtos, e siga o seu plano de tratamento do diabetes.
Mudanças depois do teste
- O modelo reserva do Soba, da OpenAI, não conseguia rodar. Uma configuração da requisição, a temperatura, não é aceita pelos modelos da OpenAI, e a requisição permitia só provedores que aceitam todas as configurações. Removemos essa configuração. O modelo principal teve 68,9% com ela e 68,5% sem ela, o que está dentro da variação normal entre execuções repetidas. O Gemini 3.7 Flash e o GPT-6 Luna agora são os modelos reserva.
- Em 9 de 3.614 requisições de teste (0,25%), o Gemini repetiu a mesma frase sem parar, e o escaneamento levou de 35 a 87 segundos. Agora o Soba limita o tamanho da resposta, o que interrompe esse tipo de repetição mais cedo.
Dados e fontes
Resultados por refeição (CSV em inglês, 400 linhas): ID no conjunto de dados, carboidratos de referência, estimativa do Soba só com a foto, texto da dica e as estimativas com a dica e com dados de profundidade. O arquivo segue a licença do SNAPMe, CC BY-SA 4.0.
- Thames Q, Karpur A, Norris W, et al. Nutrition5k: Towards Automatic Nutritional Understanding of Generic Food. CVPR 2021. arXiv:2103.03375. Conjunto de dados: github.com/google-research-datasets/Nutrition5k, CC BY 4.0.
- Larke JA, Chin EL, Bouzid YY, et al. Surveying Nutrient Assessment with Photographs of Meals (SNAPMe): A Benchmark Dataset of Food Photos for Dietary Assessment. Nutrients. 2023;15(23):4972. PMC10708545. Dados: USDA Ag Data Commons, CC BY-SA 4.0.
- Rodríguez-Jiménez et al. Image-Based Dietary Energy and Macronutrients Estimation with ChatGPT-5: Cross-Source Evaluation Across Escalating Context Scenarios. Nutrients. 2025;17(22):3613. PMC12655113.