Исследователи из Google AI обучили нейросеть, которая распознает продукты из супермаркета. Предсказания модель делать полностью на мобильном устройстве в реальном времени. Систему внедрили в Android приложение Lookout. Когда пользователь направляет камеру смартфона на продукт, приложение распознает его и проговаривает название бренда и размер продукта.
Lookout состоит из детектора продуктов, модели трекинга объекта из MediaPipe и модели для распознавания символов на изображении. При распознавании приложение использует подгруженную базу из двух миллионов популярных продуктов, которая динамически обновляется в зависимости от географического положения пользователя.
Ограничения традиционных решений
Распознавание продукта с помощью компьютерного зрения традиционно решалось с использованием SIFT алгоритма. Такой подход требует от 10 до 40 килобайт на каждое изображение, что является ресурсозатратным по памяти. При этом подход менее устойчив к плохому освещению или смазанным изображениям. Альтернативным базовым подходом является использование OCR модели и N-Gram модели. Такой подход неустойчив к продуктам, на упаковках которых пересекается большинство слов.
Использование нейросети позволяет сократить требуемую память с 10-40 килобайт до 64 байт на изображение.
Архитектура системы
Система Lookout состоит из следующих частей:
- Кеш кадра;
- Отборщик кадров, который фильтрует кадры, которые поступают с камеры смартфона, на основе предопределенных параметров;
- Детектор: каждый отобранный кадр поступает на вход модели, которая распознает продукт на изображении;
- Трекер объекта;
- Модуль эмбеддинга продукта: прнимает на вход предсказание детектора и кодирует часть изображения с продуктом в эмбеддинг с размером 64;
- Поиск индекса к базе;
- OCR модуль;
- Расставление скоров;
- Представление результатов