Можно ли считать калории без интернета
Ответ разный для разных частей приложения. Распознавание по фотографии без сети не работает нигде и ни у кого, а дневник и справочник — вполне.
Что требует сети, а что нет
| Функция | Нужна ли сеть | Почему |
|---|---|---|
| Распознавание блюда по фотографии | Да | Модель работает на сервере, а не в телефоне |
| Разбор страницы меню | Да | То же самое |
| Поиск по штрихкоду | Зависит | Считывание кода — локально, поиск товара — в базе |
| Дневник и история | Нет | Записи лежат в хранилище браузера |
| Справочник калорийности | Нет, если он загружен заранее | Это статические данные |
| Расчёт нормы и КБЖУ | Нет | Арифметика |
Почему распознавание не умеет офлайн
Модель, которая узнаёт блюдо на фотографии и оценивает вес порции, — это несколько гигабайт весов и вычисления, которые телефон средней руки будет делать десятки секунд. Она физически не помещается в приложение и не запускается на устройстве.
Существуют уменьшенные модели, работающие на телефоне, но они решают другую задачу: отличить пиццу от салата в списке из сотни категорий. Оценить вес порции, различить сметану и майонез в заправке и учесть масло в зажарке они не умеют — а именно от этого зависит число. Разбор того, где проходит граница возможностей, есть отдельно: почему ИИ уверенно называет неверную цифру.
Штрихкод: половина работы делается офлайн
Здесь стоит различать два шага, которые пользователь воспринимает как один.
Считывание кода — распознавание полос камерой — происходит в браузере, локально, и сеть для него не нужна. Из этого получается число: тринадцать цифр EAN-13.
Поиск товара по этому числу — обращение к базе. Вот он и требует сети, потому что база лежит на сервере и содержит миллионы позиций.
Обойти второй шаг можно только одним способом: положить часть базы на устройство заранее. Так и делают — с ограничением по объёму. Здесь, например, в браузер загружается пакет из десяти тысяч товаров и обновляется раз в сутки; когда сети нет, поиск идёт по нему. Десять тысяч — это не вся база, но заметная часть того, что реально лежит на полке.
Что штрихкод вообще может рассказать о продукте, а что нет, разобрано отдельно: штрихкод на упаковке.
Дневник работает всегда
Записи о съеденном не требуют сети по своей природе: это ваши данные, и живут они в хранилище браузера на устройстве. Добавить блюдо, посмотреть сумму за день, увидеть неделю можно в самолёте.
Сеть понадобится в двух случаях: когда нужно распознать что-то новое и когда нужно перенести дневник на другое устройство.
Как приложение вообще открывается без сети
За это отвечает механизм, встроенный в браузеры, — service worker. При первом визите он сохраняет файлы приложения на устройство, и дальше открытие идёт из локальной копии, а не из сети. Именно поэтому веб-приложение, добавленное на главный экран, запускается в режиме полёта так же, как обычное. Подробнее — приложение, которое не нужно устанавливать.
Проверить это на любом сервисе просто: открыть его один раз с сетью, потом включить режим полёта и открыть снова. Белый экран или ошибка означают, что офлайн там не предусмотрен вовсе.
Что делать в поездке без связи
Практическая раскладка для самолёта, поезда и заграницы без роуминга:
- До отъезда — открыть приложение хотя бы раз, чтобы оно сохранилось на устройство, и дать пакету продуктов обновиться.
- В дороге — записывать по памяти и по справочным значениям. Точность будет ниже, но пропуск целого дня искажает неделю сильнее, чем приблизительная запись.
- Фотографировать впрок. Снимки остаются в галерее, и разобрать их можно потом, когда появится сеть. Это лучший вариант из доступных: оценка по свежему снимку точнее оценки по воспоминанию через двое суток.
- Не пытаться восстановить всё задним числом. Три дня, записанные приблизительно, полезнее трёх дней, восстановленных подробно и неверно.
Почему полностью офлайновых счётчиков почти не осталось
Они существовали и работали: база продуктов помещалась в приложение, поиск шёл по ней, интернет требовался только для обновлений. Ушли они не из-за технологии, а из-за данных — состав товаров меняется, ассортимент обновляется, и локальная база устаревает быстрее, чем пользователь успевает обновить приложение. Плюс распознавание по фотографии, которое офлайн невозможно в принципе.
Разумный компромисс сегодня выглядит так: интерфейс и дневник — локально, справочные данные — локально с обновлением, распознавание — на сервере. Это и есть то, что делает большинство.
Частые вопросы
- Работает ли распознавание еды по фото без интернета?
- Нет. Модель весит несколько гигабайт и выполняется на сервере: в телефон она не помещается. Уменьшенные модели на устройстве умеют отличать категории блюд, но не оценивать вес порции и состав.
- Можно ли сканировать штрихкод офлайн?
- Считывание самого кода камерой идёт локально и сеть не требует. Поиск товара по коду обращается к базе — офлайн он работает только по загруженному заранее пакету товаров.
- Что делать с записями в самолёте?
- Дневник работает без сети: записи лежат в хранилище браузера. Новые блюда удобнее сфотографировать впрок и разобрать позже — оценка по свежему снимку точнее восстановления по памяти через двое суток.
Читайте также
- Штрихкод на упаковке: что в нём зашифровано, а что нет — Про штрихкод ходит устойчивое поверье: по первым цифрам якобы можно узнать страну, где сделан продукт, а по остальным — проверить подлинность.
- Приложение, которое не нужно устанавливать — На главном экране телефона может стоять иконка, за которой нет установленного приложения.
- Как нейросеть узнаёт еду на фотографии — Фотография тарелки превращается в число на экране за несколько секунд, и со стороны это выглядит как измерение.
Материал носит справочный и информационный характер. Он не является медицинской рекомендацией, диагностикой, назначением лечения или диеты и не заменяет консультацию врача. При заболеваниях, беременности, приёме лекарств и любых состояниях, требующих контроля рациона, решения о питании принимаются с врачом.
Сведения о нормах, регламентах и исследованиях приведены по состоянию на момент подготовки материала и могут измениться; их актуальность следует проверять по первоисточникам. Материал не является рекламой, публичной офертой или индивидуальной консультацией. Автор и владелец сайта не несут ответственности за решения, принятые на основании этого текста.