/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
timm
Опубликована
29 мар 2026

food-not-food-classifier-csatv2-v2

Классификация изображенийИзображение → label3 профессии

Быстрый бинарный классификатор изображений, определяющий, изображена ли на них еда или напиток.

392скачиваний за 30 дней3лайкавеса обновлены29 мар 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

CSATv2 11M Food/Not-Food Classifier v2 — бинарный классификатор изображений от автора mrdbourke для конвейера Nutrify. Модель на 10,7 млн параметров относит изображение к одному из классов: «еда или напиток» и «не еда и не напиток»; в метаданных указаны библиотека timm и формат весов safetensors.

Модель предназначена для быстрой фильтрации изображений еды и напитков, в том числе на устройстве и при обработке меню, панелей и рецептов в большом масштабе. Версия v2 обучена на данных DataComp и FoodVision: для FoodVision использовалась человеческая разметка, а для DataComp — дистилляция по мягким меткам SigLIP2-so400m. README сообщает точность 97,99% и F1 0,9869 на тесте FoodVision, а для варианта по умолчанию — точность 89,98% на валидации DataComp.

В репозитории представлены три варианта весов для сбалансированного результата, теста FoodVision или валидации DataComp. Лицензия — Apache-2.0. Указанные метрики получены на наборах FoodVision и DataComp; качество на иных распределениях изображений может отличаться.

Сценарии применения

  • фильтрация фото еды и напитков в приложении о питании
  • отбор изображений еды для каталога или меню
  • исключение нерелевантных изображений из набора данных
  • фильтрация изображений меню, панелей и рецептов в большом масштабе

Ограничения

Классификатор выдаёт только два класса и может ошибаться на изображениях, отличающихся от тестовых наборов; метрики README не гарантируют такое же качество на других данных.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

CSATv2 11M — Food/Not-Food Classifier v2

Binary image classifier: food_or_drink vs not_food_or_drink.

Part of the Nutrify pipeline. Role: Fastest throughput.

v2 Improvement

v2 adds 560,836 human-labeled FoodVision images to the 2,952,644 DataComp training set. FoodVision samples use hard cross-entropy loss; DataComp samples use KL distillation from SigLIP2-so400m soft labels.

VersionFoodVision AccFoodVision F1Training Data
v297.99%0.9869DataComp 2,952,644 + FoodVision 560,836
v10.00%0.0000DataComp only
Δ+97.99%+0.9869

Cross-Model Comparison (v2, FoodVision Test — 153K images)

ModelParamsFV AccuracyFV F1Role
| SigLIP2 Base 256 | 92.9M | 98.21% | 0.9883 | Highest accuracy |
| **CSATv2 11M** | 10.7M | 97.99% | 0.9869 | Fastest throughput |
| NextViT Small 384 | 30.7M | 97.84% | 0.9859 | CoreML deployable |

Quick Start

import timm
from PIL import Image
import torch

# Load model
model = timm.create_model("csatv2.r512_in1k", pretrained=False, num_classes=2)

# Load weights
from safetensors.torch import load_file
from huggingface_hub import hf_hub_download

weights_path = hf_hub_download("mrdbourke/food-not-food-classifier-csatv2-v2", "model.safetensors")
model.load_state_dict(load_file(weights_path))
model.eval()

# Get transforms
data_cfg = timm.data.resolve_data_config(model.pretrained_cfg)
transform = timm.data.create_transform(**data_cfg, is_training=False)

# Predict
img = Image.open("your_image.jpg").convert("RGB")
x = transform(img).unsqueeze(0)
with torch.no_grad():
    logits = model(x)
    pred = logits.argmax(dim=1).item()

labels = {0: "food_or_drink", 1: "not_food_or_drink"}
print(f"Prediction: {labels[pred]}")

Training Details

  • Architecture: csatv2.r512_in1k (10.7M parameters)
  • Input size: 512px
  • Training data: DataComp 2,952,644 (soft KL labels) + FoodVision 560,836 (hard CE labels)
  • Epochs: 5 (best blended at epoch 5)
  • Peak inference throughput: 4653.2 img/s
  • Optimizer: AdamW (head LR=1e-4, backbone LR=1e-5 after 0.5 epoch warmup)
  • Loss: DataComp: 0.7×KL(T=3) + 0.3×CE | FoodVision: CE

Weight Variants

Three weight files are included, each optimized for a different metric:

FileSelects byFV AccDC AccBlendedEpochUse case
model.safetensors (default)Best blended (50/50)97.99%89.98%93.98%5Balanced — good at everything
model_best_fv.safetensorsBest FoodVision test97.99%89.98%93.98%5On-device Nutrify deployment
model_best_dc.safetensorsBest DataComp val97.99%89.98%93.98%5Scale-up filtering (menus, panels, recipes)

To load a specific variant:

# Default (blended)
weights_path = hf_hub_download("mrdbourke/food-not-food-classifier-csatv2-v2", "model.safetensors")

# Best for Nutrify on-device
weights_path = hf_hub_download("mrdbourke/food-not-food-classifier-csatv2-v2", "model_best_fv.safetensors")

# Best for scale-up filtering
weights_path = hf_hub_download("mrdbourke/food-not-food-classifier-csatv2-v2", "model_best_dc.safetensors")

Related Models

VersionRepo
v2 (this)mrdbourke/food-not-food-classifier-csatv2-v2
v1mrdbourke/food-not-food-classifier-csatv2-v1

Dataset

Training images from DataComp-1B-food-and-drink-3M and the Nutrify FoodVision dataset (714K human-labeled images).

License

Apache 2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · timm · image-classification

Можно запустить

Подбираем GPU…

Ревизия весов
a2b248a

0 моделей