[recovery mode] Практическое использование нейросетей
Наверняка многие помнят 4 серию 4-го сезона Кремниевой Долины, вышедшую в прошлом году, в которой Дзанг Янг запилил приложение Not HotDog.
Как оказалось на самом деле, это было реальное приложение, которое сделало HBO специально для этой серии и об этом Хабр уже писал.
Ну, а мы расскажем как сделали бота для определения не только хотдогов, но и множества других предметов, а также для определения пола и возраста людей по фотографии.
Предыстория
Мы не собирались заниматься нейросетями. Мы просто хотели сделать проект для повышения продуктивности мерчандайзеров в ритейл сетях.
В обязанности мерчандайзеров входит, в частности, проверка наличия товаров на полке, для этого они должны посещать торговые точки практически каждый день и сообщать о наличии/отсутствии товаров супервайзеру.
Как правило за мерчандайзером закреплено несколько магазинов и каждый день они выходят в поля — в закрепленные за ними торговые точки.
Обычно мерчандайзеров обязуют фотографировать свою полку и высылать эти снимки супервайзеру — как бы доказательство того, что мерчандайзер действительно был в магазине.
На практике мерчандайзеры, являющиеся низшим звеном в иерархии продажников и получающие за свою работу очень небольшие деньги, не всегда работают добросовестно, иногда не выходят в поля, а шлют своим супервайзерам старые фото. Их увольняют, они идут в другие сети, процесс повторяется снова — на этой позиции всегда большая текучка кадров и идет постоянный набор мерчандайзеров.
Руководители предпринимают всевозможные попытки улучшить контроль за мерчандайзерами — внедряют хитрые приложения с отметками геокоординат, с невозможностью отправки старых фото и т. д.
Также нанимаются тайные покупатели для контроля мерчандайзеров — они должны сфотографировать в магазине полку, выкладку материалов и т. д. Существуют даже компании, которые ищут таких тайных покупателей среди студентов, школьников и т. д., и продают такие услуги ритейлу. Но тут возникает вопрос —, а кто будет контролировать тайных покупателей, т. е. Все, что зависит от сознательности человека, нуждается в постоянном контроле. И мерчандайзеры все равно находят способы обойти контроль, в общем, проблема щита и меча.
И возникла идея вообще отказаться от человеческого фактора. Наше решение — мы обеспечиваем визуальный контроль выкладки товаров и контроль наличия товаров на полке вообще без участия мерчандайзеров, и делаем это в режиме 24/7.
Дело в том что в нашем мессенджере есть функционал видеонаблюдения, т. е. Можно поставить на точку недорогой смартфон и дать доступ на просмотр всем заинтересованным лицам — мерчандайзеру, супервайзеру, руководителю и т. д. Таким образом в любой момент времени можно видеть в реалтайме то что происходит на полке, соответственно у мерчандайзера всегда есть актуальная информация — нужно ли ему идти на объект или нет.
Супервайзер тоже в любой момент может проконтролировать работу мерчандайзера, а руководитель, например если это федеральная сеть с большим количеством представителей в регионах — может видеть что происходит с его товаром в любом городе и в любое время.
Возникает резонный вопрос —, а почему бы не использовать недорогие видеокамеры для такой задачи?
Ответ — простота инсталляции видеонаблюдения с помощью смартфона и простота использования в мессенджере.
В большинстве случаев для недорогой видеокамеры, которая имеет только Wi-Fi подключение, нужно где-то взять этот Wi-Fi и скорее всего понадобится роутер с 3–4Г модемом, т. е. Необходимо уже два устройства. К тому же в смартфоне уже есть батарейка, т. е. Нет проблем во время отключения электричества.
Для правильной работы роутера нужно сделать определенные настройки более-менее квалифицированным персоналом, а в случае с телефоном режим видеонаблюдения включается очень просто и может быть выполнен практически любым пользователем.
Также для просмотра большого количества видеокамер нужен специальный софт, нужно продумать доступ, выдавать логины-пароли, а в случае с мессенджером доступ на просмотр организуется очень просто — у нужного пользователя появляется список разрешенных именно ему камер и все.
Стоимость смартфона тоже невелика — от 25–30$ в розницу. Для смартфонов существует множество видов креплений, есть небольшие смартфоны, которые можно разместить например внутри светильников для полок и т. д.
Проблема в 8 млрд. долларов
В процессе погружения в тему оказалось что например проблема наличия товаров на полках в магазинах (OSA — On Shelf Availability) — общемировая и в результате отсутствия необходимых продуктов на полках мировая индустрия теряет до 8 млрд.$ в год.
Появилось много стартапов, которые решают эту проблему с помощью нейросетей — мерчандайзер во время своего появления в магазине делает фотографию полки, отправляет ее в облако, нейросеть сверяет фото с планограммой и высылает результат в виде подсказок — какие позиции стоян верно, каких продуктов нет на полке и т. д.
Но здесь также присутствует человеческий фактор — сотрудник утром пришел, сделал фото, разместил товары по правилам и ушел. А следом, буквально через 5 минут, может приехать автобус с покупателями, которые изменят все что он сделал, а супервайзер будет думать что все нормально.
Поэтому на наш взгляд лучше делать анализ в течении дня несколько раз, к тому же такая аналитика может помочь выявить закономерности в продажах тех или иных товаров.
Для реализации такой идеи мы решили что лучше делать несколько фото в течении дня и периодически отправлять их на распознавание в облако.
Но у нас не было никакого опыта работы с нейросетями, а делать свой движок и потом обучать его нам показалось довольно сложным.
Поэтому мы решили взять какое-нибудь готовое решение. Кому-то может показаться такой подход неправильным — за обработку изображений в облаке надо платить.
Но есть и контраргументы — делать свой движок — дорогое и долгое удовольствие и нейросеть надо обучать, а это тоже процесс трудоемкий.
К тому же, используя готовое решение можно быстро выкатить готовый продукт, а не заниматься его созданием, наступая на всевозможные грабли и учась на своих ошибках. А мы не хотели становится специалистами в нейросетях — для нас они — всего лишь инструмент для решения конкретных задач.
К тому же на рынке уже есть множество платформ, которые можно использовать — Amazon Rekognition, Google API и т. д. По мере развития таких платформ и конкуренции между ними цена будет только падать.
Поэтому мы решили использовать IBM Watson с его visual recognition движком.
Бот Visual Recognition
Побочным продуктом реализации проекта по контролю выкладки товаров на полках стал бот, которого мы назвали Visual Recognition.
Бот умеет определять всевозможные предметы с загруженного или сделанного фото, а также умеет определять пол и возраст людей по фотографии.
Самого бота, его алгоритм мы также разместили на IBM Watson и соответственно он использует там же и движок Visual Recognition с более-менее обученной нейросетью.
На платформе Bluemix бот выглядит так:
Как пользоваться ботом
Скачиваем M1 Messenger для Андроид или для iOS.
После регистрации в поиске находим Visual Recognition Bot:
Добавляемся к боту:
Бот создаст чат во вкладке Бизнес:
Теперь можно загружать ему фотографии:
Нажимаем Processing и получаем результат:
Итак, хотдог определяет, попробуем гамбургер:
Существует довольно популярное приложение Vivino, в котором пользователь может сфотографировать этикетку с бутылки любого вина и получить все характеристики, рейтинг, цены и т.д.:
С помощью Visual Recognition бота можно сделать довольно просто примерно тоже самое и для пива, водки и т.д. — у IBM Watson есть модуль обучения.
Ну и распознавание возраста по фотографии:
Помимо пола и возраста, нейросеть пытается еще определить профессию по одежде:
Определение возраста, пола и координаты на фото: