Atwater food re-ranker
распознавание блюд прямо на телефоне
Atwater food re-ranker от TwistorLabs — компактный zero-shot-реранкер для распознавания блюд на смартфоне. Он запускается только когда основной классификатор приложения Atwater не уверен, и сравнивает фото еды со списком названий блюд. Модель собрана на базе timm/ViT-B-16-SigLIP2: используется только image tower, экспортированный в TFLite.
⚡ Ключевые особенности
- 💻 Работает на устройстве: фото не покидает смартфон.
- ⚙ TFLite-модель на 94,5 МБ: int8 dynamic-range веса, только builtin-операции TFLite.
- 📊 На входе
[1,224,224,3]uint8 RGB с нормализацией внутри модели; на выходе[1,768]float32, L2-нормализованный эмбеддинг. - 📚 В
dish-bank.json— 792 названия блюд с заранее посчитанными SigLIP2 text embeddings (float16, L2-нормализованные) и константами скоринга. - 🔍 Скор для блюда считается как
sigmoid(logit_scale * dot(image, dish) + logit_bias). - 🛡 Производная от Google SigLIP2, распространяется под Apache-2.0.
💡 Пример
Сценарий из карточки: приложение получает фото тарелки, основной классификатор сомневается — реранкер считает сходство с 792 названиями блюд и возвращает альтернативы. Если блюда нет в фиксированном списке, модель не сможет его назвать.
Подробнее
Совпадение эмбеддингов с оригинальной PyTorch-моделью: минимальная косинусная близость 0,9985 на тестовых изображениях.Размер TFLite-файла — 94,5 МБ; модель рассчитана на запуск на телефоне, без сервера.
Список блюд фиксированный: 792 названия. Скоры — это сходства, а не гарантии.
Конвертирована из timm/ViT-B-16-SigLIP2: только image tower, TFLite, Apache-2.0.
В приложении Atwater при неуверенности показываются альтернативы, а пищевая ценность берётся из USDA FoodData Central, не из этой модели.








Комментарии