Подписка
МЕНЮ
Подписка

Видеоаналитика в мультиформатной розничной компании X5 Retail Group

Артур Кузин, 10/02/20

В декабре 2018 г. в целях повышения показателей эффективности руководство X5 Retail Group объявило о внедрении систем видеоаналитики в торговых сетях. Для работы по этому направлению на базе компьютерного центра был создан единый центр компетенций решений. В результате запуск пилота на 30 объектах привел к успешным результатам и последующему разворачиванию системы.

Компания X5 Retail Group пилотирует с помощью видеоаналитики несколько ключевых направлений: анализ доступности товара на полках, табелирование, контроль очередей и пр. Рассмотрим конкретные кейсы и примеры работы решений на реальных данных в разные временные отрезки.

Анализ доступности товаров на полках

Первым и самым проработанным кейсом стал анализ доступности товара на полках. Задача формулируется очень просто: иметь полки, заполненные разным товаром, а не полупустые с однообразным ассортиментом продуктов.

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

Кроме того, одна из "Пятерочек" была переоборудована под полигон для испытаний разного рода инноваций, в том числе и видеоаналитики. В ней были установлены Fisheye-камеры, часть из которых смотрела на полки.

Выделение пустот
Пустоты на полках отличаются друг от друга и по-разному влияют на бизнес. Есть пустоты, где товар закончился на всей полке, а есть пустоты только в ее начале или в конце. Есть также ряд пустот, которые сложно отнести к какому-либо классу как разметчикам, так и алгоритму. Их мы выделяем в отдельный класс, чтобы улучшить метрики по "чистым" классам.

Необходимо также разделение пустот на промотоварные и непромотоварные, поскольку они по-разному влияют на бизнес-процессы. В итоге мы имеем набор пустот, которые наиболее полным образом описывают ситуацию на полке.

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

рис1

Пустоты другого рода
Подход по разделению пустот очень хорошо транслируется на фрукты/овощи. Если считать каждый ящик отдельной полкой, то можно измерить пустоту ящика. Здесь важно сделать некоторые разделители, чтобы ящики не "слипались" друг с другом, но это технические вопросы, которые легко решаются.

"Восстановлению подлежит! Ремонт КСБ производственного объекта в случае аварий, отказов и неисправностей" читать >>>

Подходы людей
Довольно часто полку заслоняют покупатели, поэтому мы разделили людей на сотрудников и несотрудников. Если на полке появилась пустота, к ней подошел сотрудник и произвел какие-то действия, но пустота не исчезла, значит он сделал что-то неправильно. Такие данные тоже помогают выстраивать процессы в магазине.

Определение товаров

Видеоаналитика позволяет видеть, что на полке не хватает или вообще нет конкретных товаров. Для этого используется класс-агностик-детектор, который определяет все товары как один класс.

Помимо этого, мы детектируем промоценники и обычные ценники. Далее мы нарезаем кропы товаров, чтобы определять их класс с точностью до конечного PLU. Однако из-за того, что некоторые товары находятся в ротации, мы не можем применять этот Pipeline бесконечно долго. Поэтому мы извлекаем эмбеддинги из модели и строим на них аппроксимацию KNN, используя nmslib. То есть переобучаем только ту часть, которая определяет KNN, а все остальные модели фиксированы и не зависят от того, какие товары в данный момент времени мы детектируем.

График зависимости уникальных PLU показывает, какие товары стоят на полке в данный момент времени. Если есть значимые изменения в разнообразии товаров, то это видно на графике (рис. 2).

рис2

Глоссарий

  • Эмбеддинг (англ. Embedding) – векторное представление объектов. Одинаковое либо очень близкое для одного и того же объекта в разных условиях. И разное для похожих, но разных объектов.
  • KNN (k Nearest Neighbours, метод ближайших соседей) – алгоритм решения задач классификации или регрессии, который строит предсказания на основе ближайших объектов с известными значения целевой переменной.
  • nmslib – библиотека с апроксимацией алгоритма KNN. https://github.com/nmslib/nmslib.
  • MTCNN – архитектура нейросети, разработанная для детектирования и выравнивания лица человека

Метрики

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

  1. в каждом в магазине на мониторе, где сотрудники могут видеть, что происходит в разных отделах, и оперативно на это реагировать;
  2. на центральном сервере, куда стекается статистика со всех магазинов и строятся дашборды.

Распознавание лиц

В кейсе распознавания лиц мы сначала детектируем лицо с помощью MTCNN и затем выделяем ключевые точки, чтобы выровнять лицо. После выравнивания оно выглядит как фото на паспорт, только немного искаженное.

Далее мы используем нейросеть, которая выдает эмбеддинги. Это набор абстрактных признаков, которые должны быть разные у людей, не похожих друг на друга и совпадать у одного человека, даже если он был снят в разных условиях.

После этого мы обучаем nmslib. Примечательно то, что мы не обучаем модели под конкретную задачу, мы подбираем трешхолд, по которому определяем, есть ли этот человек в базе или нет.

рис3

Антиспуфинг

Обычно мошенники пытаются обмануть систему, показав фотографию в телефоне или на бумаге. Система должна определить, кто перед ней – фейк либо реальный человек. Для этой задачи у нас есть очень хорошее решение, которое мы получили, заняв топовое место в соревновании по машинному обучению.

Мы сделали Web-сервис, который по собранной базе может определить, что перед ним конкретный человек. Решение мы портировали на прайс-чекер – дешевое легковесное устройство с Андроидом, которое за три секунды определяет, реальное это лицо или фото.

Определение очередей

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

рис4

В качестве библиотеки здесь можно использовать NVIDIA RetinaNet, которая позволяет вести обработку в режиме реального времени. В результате мы получаем достаточно дешевое решение для контроля количества людей в очереди либо подсчета других объектов.

Распознавание действий

Алгоритм распознавания действий позволяет определить, что человек в конкретный момент времени взял конкретный товар. При этом можно сделать сличение людей с двух камер по внешним признакам, которые не связаны с лицом (например, по одежде) и понять, что это один и тот же человек. Кроме того, можно строить скелет людей на изображении, детектировать их руки и определять, что в руке что–то есть. И все это – в реальном времени на видеокарте достаточно низкого уровня.

Опубликовано в журнале "Системы безопасности" №6/2019

Темы:ВидеонаблюдениеМашинное зрениеРитейлНейросетиВидеоаналитикаЖурнал "Системы безопасности" №6/2019

Хотите сотрудничать?

Выберите вариант!

 

Получить консультацию
Печатное издание
Интернет-портал
Стать автором
Комментарии

More...