ОБЛАСТЬ ТЕХНИКИ
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам компьютерного зрения в ритейле. Изобретение предназначено для интеллектуального сбора и анализа информации с камер наблюдения торговых сетей розничной торговли, например, в кассовой зоне и/или зоне присутствия товара.
УРОВЕНЬ ТЕХНИКИ
[002] В сфере FMCG высокий товарооборот является основой получения хорошей прибыли. Автоматизация процессов продаж - основной показатель повышения эффективности.
[003] Известны различные электронные системы для обслуживания продажи товаров, во многом автоматизирующие процесс продажи товаров, позволяя его учитывать, вести базы данных, при продаже считывать графическую маркировку на товаре, соотносить ее с базой данных, определять по ней товар и автоматически формировать чек для покупки товара. При этом недостаточная степень автоматизации процесса продажи весовых товаров в узлах расчета супермаркетов обусловлена невозможностью автоматически определять товары, не имеющие специальной графической маркировки (штрих-код) для автоматического формирования чека на оплату.
[004] Также большой проблемой современных супер- и гипермаркетов являются многочисленные очереди на кассах в «часы пик» массового захода покупателя.
[005] Так известна из уровня техники электронная система для обслуживания продажи товаров, включающая в себя по меньшей мере одну видеокамеру, соединенную посредством объединенной сети с сервером, включающим соединенные друг с другом блок приема, входящий информации с видеокамеры, вычислительный модуль, блок хранения базы данных товаров, см. патент на полезную модель РФ №94739, опубликованный 27.05.2010 г.
[006] Данная система для обслуживания продажи товаров является наиболее близкой по технической сути и достигаемому техническому результату и выбрана за прототип предлагаемого изобретения.
[007] Недостатком этого прототипа является недостаточная степень автоматизации процесса продажи товаров за счет невозможности автоматически определять товары, не имеющие специальной графической маркировки (штрихкод или QR-кода), автоматически формировать чек для оплаты и производить расчет, а также регистрировать покупателей и их действия для исключения недобросовестных действий со стороны покупателей (воровства товаров).
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[008] Технической задачей или технической проблемой, решаемой в данном техническом решении, является осуществление системы компьютерного зрения в ритейле.
[009] Полезный технический эффект в системе достигается за счет повышения точности детектирования мелких и близкорасположенных объектов, например, товаров, а также точности определения возникновения события очереди, что подтверждают тестовые замеры в проведенных пилотных проектах с конкурентами в данной области технических решений.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0010] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:
[0011] На Фиг. 1 показан пример реализации работы системы компьютерного зрения в ритейле.
[0012] На Фиг. 2 показан пример реализации корректного монтажа камер с размеченными кассовыми зонами.
[0013] На Фиг. 3 показан рабочий процесс модуля очередей.
[0014] На Фиг. 4 показан вариант реализации "боксов" детекций голов людей.
[0015] На Фиг. 5 показан пример реализации уведомлений об очереди в мессенджер.
[0016] На Фиг. 6 показан скриншот с камеры модуля полок.
[0017] На Фиг. 7 показан рабочий процесс модуля полок.
[0018] На Фиг. 8 показана визуализация процессов в блоке предварительной обработки слева-направо: кадр со скорректированной дисторсией, нарезанные и выпрямленные полки после применения томографии, нарезанные полки отправляются к детектору.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0019] Ниже будут подробно рассмотрены термины и их определения, используемые в описании технического решения.
[0020] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты.
[0021] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), смарт-контракт, виртуальная машина Ethereum (EVM) или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0022] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0023] Изобретение относится к электронно-вычислительным системам для обслуживания продаж в сфере FMCG и может быть использовано в торговых сетях.
[0024] FMCG - (от англ. Fast Moving Consumer Goods) - общее название для товаров повседневного потребления широким кругом покупателей, которые стоят относительно дешево и быстро продаются;
[0025] PLU-код - (от англ. Price-LookUp (PLU)) - система для точной идентификации товаров.
[0026] Датасет - (от англ. Data set) - набор данных.
[0027] POS-терминал (от англ. Point Of Sale - точка продажи) - программно-аппаратный комплекс, который установлен на рабочем месте кассира.
[0028] ЦОД - центр обработки данных.
[0029] Сервер (англ. server) - электронное устройство, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на сервер с клиентских устройств. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство.
[0030] Объединенная сеть, а также все соединения между всеми модулями и блоками включают в себя различные топологии, конфигурации и компоновки компонентов межсетевого соединения, выполненные с возможностью соединять между собой корпоративные, глобальные и локальные вычислительные сети, и включает в себя, без ограничения, традиционные проводные, беспроводные, спутниковые, оптические и эквивалентные сетевые технологии.
[0031] Блок ввода изображений или прочих данных - это блок сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки.
[0032] Вычислительный блок - это блок сервера, который представляет собой микропроцессор, специально приспособленный для обработки сигналов.
[0033] База данных или блок хранения базы данных - это блок сервера, в котором хранятся данные, соответствующие данному модулю данных, который может быть выполнен как накопитель на жестком магнитном диске, или как флэш-память (flash memory), которая относится к полупроводникам электрически перепрограммируемой памяти. При этом некоторые модули могут быть объединены в отдельных реализациях. Например, разные базы данных могут храниться в одном модуле памяти.
[0034] Клиентское устройство покупателя - любая форма вычислительной платформы, подключаемая к сети, такой как объединенная сеть, и допускающая взаимодействие с прикладными программами. Типичные примеры отдельных клиентских устройств включают в себя, без ограничения, стационарные и переносные персональные вычислительные машины, "интеллектуальные" сотовые телефоны, (на английском - смартфон), переносные компьютеры, включая планшетные, облегченные клиенты, рабочие станции, "неинтеллектуальные" терминалы, соединенные с сервером приложений, а также различные их компоновки и конфигурации, то есть как физические устройства для осуществления взаимодействия в системах коммуникационного взаимодействия, так и виртуальные устройства, реализуемые на программируемых компьютерных устройствах, и имеющие программный интерфейс для осуществления функций коммуникации.
[0035] Нейросеть - (искусственная нейронная сеть) - математическая модель, а также ее программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Нейронные сети не программируются, а обучаются, когда производится нахождение коэффициентов связей между нейронами. В случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных. [0036] Near field communication, NFC («коммуникация ближнего поля», «ближняя бесконтактная связь») - технология беспроводной высокочастотной связи малого радиуса действия, которая дает возможность обмена данными между устройствами, находящимися на расстоянии около 10 сантиметров.
[0037] QR-код (с англ. "quick response" означает "быстрый отклик") или баркод, матричный код (двумерный штрихкод), который кодирует любую информацию, будь-то обычный текст или ссылка на сайт.
[0038] Как показано на Фиг. 1, система может включать следующие примеры реализации: модуль очередей, модуль полок и ценников.
[0039] Стоит отметить, что заявленное техническое решение может осуществляться как, например, модуль очередей или как модуль полок и ценников, или включать реализации сразу двух указанных и более модулей. Это прикладное применение заявленной системы компьютерного зрения.
[0040] Каждый модуль выполняет свои задачи, имеет свой источник информации, результаты двух модулей могут аккумулироваться в общем графическом интерфейсе пользователя (GUI), чтобы сотрудник магазина или алгоритм искусственного интеллекта в любой момент мог получить визуальную и информацию об общем статусе магазина в разрезе событий у касс и у полок или применяться обособленно.
[0041] Модули очередей и полок технически организованы в виде docker-контейнеров, связь между контейнерами осуществляется с помощью POST-запросов. В специально отведенном контейнере под вычисления на GPU (графический процессор) реализованы нейронные сети, есть контейнер для вычислительных задач на CPU (центральный процессор) и взаимодействия с базой данных, а также есть контейнер, в котором содержится frontend часть системы.
[0042] Рассмотрим каждый модуль в отдельности.
[0043] Модуль очередей предназначен для подсчета людей в кассовой зоне магазина и отправки уведомлений об очередях с компьютера в телеграмм-чат, на почту директору магазина или в виде звукового сигнала в магазине. Есть ограничения на количество рекомендуемых камер на один сервер, они зависят от характеристик используемой видеокарты. Например, для видеокарты GTX 1060 максимальное число камер 30, если камер будет больше, не будет соблюден режим реального времени при обработке, что повлечет за собой появление ложных не срабатываний модуля. Ограничений по выбору моделей камер нет. Для корректной работы модуля очередей необходимо соблюдение условий монтажа камер. При корректном монтаже в поле зрения каждой камеры будет находиться одна кассовая зона, голова каждого человека в зоне будет крайне редко пересекаться с другими головами или препятствиями, то есть люди не будут друг друга загораживать на видео с камеры, а также не будут скрываться за препятствиями. На Фиг. 2 представлены примеры корректного монтажа.
[0044] Кассовая зона включает в себя два региона, размечаемые вручную администратором системы заранее (Фиг. 3): рабочее место кассира и область покупателей - область нахождения порогового количества людей, при котором будут формироваться оповещение персонала магазина о наличии очереди и рекомендации к открытию касс. Пороговое количество людей может быть любым, устанавливается в настройках модуля (по умолчанию - 5). Информация с камер захватывается с частотой один кадр/с в блоке захвата потока. Данная частота является оптимальной для осуществления режима реального времени при большом числе камер в магазине (более 10) и при скорости обработки одной камеры 30 кадров/с (на NVIDiA 1060, на NVIDIA 1080ti 60 кадров/с), частоту нельзя изменить. В общем виде рабочий процесс представлен на Фиг. 3.
[0045] Блок захвата потока с камер использует библиотеку ffmpeg для захвата потока. Для независимого чтения кадров из потока (с целью избежать зависания самого потока) используется механизм очередей, который выполняет буферизацию необходимых для обработки кадров. Процесс разбивается на два дочерних:
1) чтение кадров (писатель);
2) обработка кадров (читатель).
[0046] Писатель захватывает каждый доступный кадр (текущий кадр из потока, поступающий с частотой fps, выставленной на камере; на камере должна быть выставлена частота более 1 кадра/с), и, если разница между двумя фиксируемыми временными характеристиками (например, unix-времена t1 = 1654607278, t2 = 1654607279, разница = 1 с) превышает или равно пороговому значению (с целью фиксации определенного количества кадров в единицу времени, в нашем случае - кадр в секунду), происходит декодирование кадра с помощью алгоритмов библиотеки ffmpeg и его буферизация в переменную очереди, туда же складываются характеристика целостности кадра ("битый" или "не битый" кадр, значение характеристики 0 или 1, соответственно) и время, в которое данный кадр был получен). Если переменная очереди переполнена (по умолчанию размер очереди 10 кадров) - кадр пропускается, то есть кадр не добавляется в переменную очереди, а ожидается, когда в ней освободится место (когда читатель осуществит чтение).
[0047] Существует механизм проверки потока на неисправность: если последовательно были получены 30 кадров, которые были «нечитабельными» (битыми), происходит перезапуск функции, считывающей поток.
[0048] Читатель работает в режиме ожидания. Когда данные в очереди появляются, читатель читает кадр и отправляет его на обработку (блок детектора и т.д.). После того как кадр считан читателем и отправлен на обработку, процесс снова переходит в режим ожидания до появления новых данных.
[0049] Блок детектора представляет собой нейронную сеть Scaled YOLO v4, которая возвращает координаты "боксов" (прямоугольники, стороны которых параллельны сторонам изображения - Фиг. 4) детектируемых объектов.
[0050] В модуле очередей детектируемыми объектами являются головы людей. Данная архитектура выгодно отличается от конкурентов (SSD, Faster R-CNN, EfficientDet) сочетанием высокой скорости обработки за счет того, что является одностадийным (one-stage, однопроходным) детектором, эффективнее других одностадийных сетей использует разрешение сети. Высокая скорость обработки необходима при большом числе камер и требовании режима реального времени и точности. Обучение нейронной сети происходит в точном соответствии с рекомендациями, описанными разработчиками данной сети. Важным этапом является подбор размеров anchor boxes ("якорей"), они подбираются с помощью алгоритма кластеризации k-means, всего подбирается 9 "якорей" (базовых боксов), которые необходимо распределять по трем уровням пирамиды масштабов сети. "Базовый вариант" - это по три на каждый масштаб, ранжированные так, чтобы на большом масштабе были маленькие размеры якорей, а на маленьком - большие. В процессе обучения первых 5 эпох принимается решение об успешности распределения якорей по уровням (критерий - процент измененных боксов обучающей выборки, rewriten boxes, если их более 1% - якоря неудачно распределены), в случае неуспеха, меняется распределение якорей по уровням.
[0051] В блоке аналитики фильтруются детекции, относящиеся только к зоне нахождения покупателей (отбираются только те боксы голов, центры которых расположены в зоне), принимается решение о возникновении очереди, определяется ее длительность, а также происходит при необходимости "склеивание" двух очередей в одну по условию непревышения порога по времени между двумя очередями.
[0052] Алгоритм определения очереди в блоке аналитики работает следующим образом: используется скользящее окно шириной в 20 секунд, в котором считается число кадров с количеством людей, превышающим некий порог, заданный пользователем (по умолчанию 5 человек), если число таких кадров превышает половину окна, то считаем, что очередь началась, иначе считаем, что очередь закончилась. Окно движется с шагом 5 секунд, временем начала очереди считаем момент первого кадра с числом людей, превышающим порог. Аналогично определяем момент окончания очереди (первый кадр с числом людей меньше или равно пороговому значению). Очередь продлевается, если в следующем окне она также существует (момент окончания очереди переносится). Очереди "склеиваются", если между двумя очередями прошло менее 40 секунд (порог подобран эмпирически, можно менять в настройках). Отправка уведомления о наличии очереди происходит по двум пороговым таймингам времени существования очереди (5 минут по умолчанию для первого уведомления, 7 минут - для второго).
[0053] В GUI (графический интерфейс пользователя) можно просматривать ленту уведомлений, также можно настроить отправку уведомлений в Telegram (Фиг. 5), на почту, либо в виде звукового сигнала в магазине. Уведомления содержат различную информацию в зависимости от режима оценки активных касс. Возможны три режима:
1) "стандартный": касса считается активной, если в зоне нахождения покупателей данной кассы обнаружен хотя бы один человек;
2) "детектор кассира": касса считается активной, если в зоне кассира есть хотя бы один человек в течение времени наблюдения очереди, алгоритм определения кассира аналогичен алгоритму определения очереди (логика скользящего окна);
3) "кассовый сервер" (при наличии кассовых событий): определяем состояние кассы по соответствующему сигналу от кассового сервера.
[0054] Стандартное уведомление содержит кадр момента начала очереди кассы, на которой была сформирована тревога, число человек в очереди всех касс в момент отправки уведомления, а также информацию в зависимости от предварительных настроек.
[0055] Модуль полок предназначен для анализа расположения товаров и ценников на полках стеллажей торгового зала, соотнесения реального расположения (далее - реалограмма) с планограммой. Планограмма - запланированное расположение (выкладка) товаров на стеллажах магазина. Планограмма обновляется обычно каждый месяц на магазине, у различных торговых сетей она может быть представлена в различном виде: xls-таблицы, pdf-файла и тд. Примеры планограмм приведены на Фиг. 6. Реалограмма - фактическое расположение товаров на стеллажах. Для корректной работы модуля полок необходимы камеры с разрешением не менее 8 мгпкс, а также соблюдение условий монтажа камер. При корректном монтаже в поле зрения каждой камеры будет находиться не более двух стеллажей с товарами на полках в полный "рост" (Фиг. 6).
[0056] Перед запуском модуля полок в работу проводится предварительная настройка каждой камеры. Алгоритм предварительной настройки:
1) автоматически в настройках камеры выставляется разрешение 3840×2160, максимальный битрейт;
2) запускается алгоритм коррекции радиальной дисторсии из библиотеки opencv, чтобы убрать "рыбий глаз"; необходимые коэффициенты были получены в результате калибровки произвольно взятой камеры 8 мгпкс конкретной модели с выставленным разрешением на ней 3840×2160 в соответствии с рекомендациями в документации opencv по проведению калибровки камеры с помощью шахматной доски (если меняется модель камеры, необходима новая калибровка);
3) проводится разметка полок полигоном из четырех точек, которые проставляются строго в углы "физических" полок стеллажа (стеллаж может быть длинным и состоять из нескольких стандартных полок обычно длиной 125 см); разметка полок дает нам возможность выровнять перспективу полки, а также контролировать ширину полки, подаваемой затем детектору товаров, так мы обеспечиваем более стабильную детекцию и последующее распознавание товаров;
4) формируются матрицы томографии для каждой полки камеры по четырем размеченным точкам, матрицы записываются в базу для дальнейшего использования при работе модуля.
[0057] Процесс работы модуля полок представлен на Фиг. 7.
[0058] Блок захвата кадра использует библиотеку ffmpeg для захвата кадра, кадры захватываются раз в две минуты и на котором пишутся на диск сервера, последующие блоки обработки в соответствии со схемой на Фиг. 7 запускаются с периодичностью, выставленной в настройках (по умолчанию раз в час).
[0059] Блок предварительной обработки кадров работает следующим образом, последовательно для кадра каждой камеры:
1) происходит корректировка дисторсии как описано в алгоритме предварительной настройки;
2) происходит нарезка полок и применение соответствующей матрицы томографии к каждой полке;
3) масштабирование изображения каждой полки к размеру сети детектора.
[0060] Блок детектора представляет собой нейронную сеть Scaled YOLO v4, которая возвращает координаты "боксов" товаров, ценников и области цены товара, написанной на ценнике. Преимущество использования данной архитектуры в быстродействии и точности, а также в эффективности детекции маленьких, близко расположенных объектов (это актуально при детекции творожков, баночек детского питания, области цен на ценниках).
[0061] Блок классификатора получает на вход вырезанные области изображения товаров в соответствии с координатами, полученными от блока детектора. Цель блока классификатора - распознать товар в вырезанной области. Блок классификатора содержит нейронную сеть семейства трансформеров - swin. Нейронная сеть обучается как классификатор (используется кросс-энтропийная лосс-функция с softmax, оптимизация алгоритмом Adam со стандартными настройками, размер батча 16, аугментации: изменение контраста, сглаживание, оптическая дисторсия, изменение перспективы, cutout, нормализация с параметрами датасета imgenet, используются предобученные веса на imagnet), затем удаляется последний классификационный слой, и далее используются эмбеддинги для оценки схожести товаров на изображениях. Таким образом система сможет распознавать новый товар лишь при добавлении в базу через GUI шаблона на данный товар и не будет требоваться при этом переобучать сеть.
[0062] Шаблоны товаров создаются при добавлении их пользователем в GUI, это происходит в несколько этапов:
1) загрузка изображения с выбранной камеры с выделенными графически "боксами" товаров (последовательное применение к кадру блоков предобработки кадра и детектора);
2) наведение курсора мыши на интересующий товар, выбор номера plu для него (код товара или его класс) из предложенного списка (возможен поиск по списку по наименованию/коду);
3) нажатие кнопки сохранения шаблона в базу;
4) после добавления шаблона каждого кода товара запускается процедура кластеризации, где все шаблоны данного кода кластеризуются на несколько групп по косинусному расстоянию, усредненный шаблон по каждой группе записывается в базу и затем используется при работе блока классификатора.
[0063] При запуске блока классификатора изображения товаров (вырезанные "боксы" товаров из изображения полки) обрабатываются нейронной сетью, описанной выше, обработка происходит пачками (батчами), в батчи объединяются боксы товаров со всех полок всех камер, размер батча задается в зависимости от вычислительных мощностей сервера, на котором происходит обсчет. По умолчанию размер батча 64, что означает, что за один прямой проход нейронная сеть обработает 64 изображения. Полученные векторы товаров затем сравниваются по косинусному расстоянию с усредненными векторами кластеров каждого товара в базе и выдаются метки кодов plu целевому товару по ближайшему усредненному вектору к целевому вектору. Целевой товар - товар, код plu которого мы хотим узнать. Код плу - это числовой идентификатор товара на магазине, например, 56789123. Чем больше косинусное расстояние (ближе к 1), тем ближе вектора, то есть "похоже" изображения, поэтому после подсчета расстояний до векторов базы данных выбирается вектор, дающий максимально близкое к 1 значение расстояния, его код plu присваивается сравниваемому вектору (вектору целевомого товара).
[0064] Кроме того, блок классификатора содержит нейронную сеть для распознавания цифр цены на ценнике с архитектурой двунаправленной LSTM, обученную с etc (англ. «Connectionist Temporal Classifications) функцией ошибки на собственных данных. Данная архитектура имеет явные преимущества в точности по сравнению с общеизвестными пакетами FineReader и Tesseract. Для распознавания цифр используются только те боксы цен, которые находятся внутри боксов ценников (превентивная мера по исключению ложноположительных детекций цен в произвольных местах полок).
[0065] Блок анализатора (аналитики) сравнивает реальную выкладку товаров с эталонной, а также подсчитывает различные статистики. Анализатор, используя координаты распознанных товаров, выстраивает их в последовательность товаров, стоящих на полке, сгруппированную по индивидуальному коду товаров (PLU). От клиента по заранее согласованному протоколу мы получаем планограмму (то есть мы имеем эталонную последовательность товаров на полках с учетом их количества в ширину и высоту). Также реализована возможность получения от клиента с определенной периодичностью информации о цене товара и его наличии на складе магазина. Анализатор сравнивает фактическую последовательность товаров с эталонной, и разделяет их на следующие категории:
1. По планограмме - товар находится на "своем месте".
2. Ошибка фейса - товар находится на своем месте, но количество товара в ширину/высоту не совпадает с планограммой.
3. Ошибка полки - товар находится не на своей полке.
4. Ошибка номера - товар находится на своей полке, но порядковый номер его размещения в рамках полки не соблюден.
5. Не выставлен - товар отсутствует на полке.
6. Нет остатков - товар отсутствует на полке, а также отсутствует на складе магазина.
7. Ошибка оборудования - количество полок по планограмме и на фактическом стеллаже в магазине отличается.
[0066] Анализатор подсчитывает процент соответствия планограмме, который определяется как отношение количества позиций "по планограмме" к суммарному количеству "не выставленных" и количеству "ошибок полки". Анализатор сравнивает цену на ценниках, найденных под товарными позициями с эталонной ценой, полученной от клиента, и отображает соответствующую информацию в интерфейсе приложения.
[0067] Результаты визуализируются в GUI (графический интерфейс пользователя), формирую общую картину положения дел в магазине, касающихся ключевых зон, которые влияют на клиентский опыт и привлекательность магазина (как следствие его бизнес эффективность). На основании данных, полученных: от анализаторов (очереди, контроль планограмм, цены на ценниках) и из учетных магазина (количество сотрудников в смене, количество работающих касс в моменте, наличие конкретных товаров на остатках в магазине, актуальная стоимость товаров в моменте), в GUI формируются визуальные отчеты с рекомендациями действий (нужно открыть дополнительную кассу или поменять ценники в молочном отделе) в деталях. Эти рекомендации влияют на оперативное управление и дают эффект в моменте, но помимо оперативных рекомендаций в GUI формируются отчеты за период, которые дают возможность посмотреть на ретроспективу и принять стратегические решения в бизнесе. Неотъемлемой частью рекомендаций и действий - является отправка уведомлений с определенным типом задач пользователю, а т.к. задач много и по разным бизнес-процессам в системе существует модуль приоритезации задач (критичность), исходя из присвоенного уровня критичности выставляется приоритет на исполнение задач сотрудниками магазина. Базово в системе заложено три уровня критичности по которым распределяются задачи: Обычный, Важный, Критичный. Распределение задач по этим уровням и постановка в очередь первично (первый раз в новую смену) делается на основании принятых исходных данных на старте и заложенных констант в системе: время, тип задачи (базово выложить товар на полку важнее, чем исправить ценник, но все же есть нюансы), кол-во исполнителей на старте и на каждую задачу, исходя из ее типа и уровня критичности выделяется время на выполнение. Сотрудники не видят все задачи, они видят только самые критичные в моменте и по мере их выполнения получают новые. Далее все задачи (и вновь созданные и созданные ранее) существуют в единой связанной системе координат и задачи одного модуля (например Очередей) в моменте могут становиться высшим приоритетом над всеми остальными и наоборот могут быть задачи, которые созданы с самого утра и будут закрыты в конце дня (конец смены) автоматически системой со статусом «не выполнены», потому количество приоритетных задач и количество ресурсов (сотрудников) на их выполнение не позволили во временном отрезке смены выполнять задачи, которые принесут меньше отдачи для бизнеса. У всех задач есть понятие жизненного цикла и в рамках своего жизненного цикла задача может менять уровень критичности либо сама к себе (например возникла большая очередь и продержалась достаточно долго, чтобы задача стала критичной, но большая часть людей пришли за короткими покупками, т.е. с малым количеством товаров в чеке, и очередь быстро пришла к нормативу), либо под влиянием других модулей (например на полках возникли пустоты, которые достигли уровня «Критичный», но в моменте ситуация на кассовой линии достигла уровня, когда задача открыть новую кассу становится высшим приоритетом понижая уровень других задач, снова же система берет в расчет: время суток, количество покупателей в торговом зале и на кассе в моменте, количество исполнителей в моменте для выполнения задач) и самое главное, что задачи могут закрываться пользователями в интерфейсе (Мобильное приложение), но ее жизненный цикл закроется системой только после проверки и подтверждением самой системой, что исполнитель качественно выполнил задачу (выставил товары, открыл кассу и т.д.).
[0068] Как мы уже описывали выше, модуль контроль очередей и модуль контроля планограмм формируют сигналы (задачи) на исправление текущих неточностей. Проходя, через модуль приоритезации сигналы (задачи) выстраиваются в очередь на выполнение. Например, в очередях уровень критичности зависит от количества людей, одновременно стоящих в очереди и времени, которое они стоят возле кассы, чем больше людей и чем дольше они стоят - влияет на критичность. В контроле планограмм (контроле выкладки) критичность определяется количеством товара, который одновременно отсутствует на полке (при этом он есть на складе) и размером пустот на полках. Есть и общий параметр, который объединяет уровень критичности обоих модулей - это время суток, в часы пик важно, чтобы товар был на полке и «пробки» на выходе из магазина не достигали критичного характера. Таким образом, модуль приоритизации задач является точкой управления приоритетами и срочностью выполнения той или иной задачи в первую очередь. Ввиду того, что каждый магазин работает в режиме сильной ограниченности ресурсов (нехватка персонала) очень важно грамотно управлять этим ресурсом эффективно, только в этом случае магазин может получить максимально возможный результат за операционный день. Важна и еще одна деталь - система в целом позволяет снять с линейного персонала груз «принятия решения» (куда пойти в первую очередь? Какую сейчас задачу взять?) и как следствие снизить стресс, нацеливая сотрудников на выполнения конкретно очерченных задач.
[0069] Данное техническое решение может быть реализовано в виде вычислительной системы компьютерного зрения в ритейле, которая содержит один или более из следующих компонентов:
• компонент обработки, содержащий по меньшей мере один процессор,
• память,
• компонент мультимедиа,
• компонент аудио,
• интерфейс ввода / вывода (I/О),
• сенсорный компонент,
• компонент передачи данных.
[0070] Компонент обработки в основном управляет всеми операциями системы, например, осуществляет обработку данных о пользователе или его запросе на осуществление компьютерного зрения, а также управляет дисплеем, телефонным звонком, передачей данных, работой камеры и операцией записи мобильного устройства связи. Компонент обработки может включать в себя один или более процессоров, реализующих инструкции для завершения всех или части шагов из указанных выше способов. Кроме того, компонент обработки может включать в себя один или более модулей для удобного процесса взаимодействия между другими модулями обработки и другими модулями. Например, компонент обработки может включать в себя мультимедийный модуль для удобного облегченного взаимодействия между компонентом мультимедиа и компонентом обработки.
[0071] Память выполнена с возможностью хранения различных типов данных для поддержки работы системы, например, базу данных с профилями пользователей. Примеры таких данных включают в себя инструкции из любого приложения или способа, контактные данные, данные адресной книги, сообщения, изображения, видео, и т.д., и все они работают на системе. Память может быть реализована в виде любого типа энергозависимого запоминающего устройства, энергонезависимого запоминающего устройства или их комбинации, например, статического оперативного запоминающего устройства (СОЗУ), Электрически-Стираемого Программируемого постоянного запоминающего устройства (ЭСППЗУ), Стираемого Программируемого постоянного запоминающего устройства (СППЗУ), Программируемого постоянного запоминающего устройства (ППЗУ), постоянного запоминающего устройства (ПЗУ), магнитной памяти, флэш-памяти, магнитного диска или оптического диска и другого, не ограничиваясь.
[0072] Компонент мультимедиа включает в себя экран, обеспечивающий выходной интерфейс между системой, которая может быть установлена на мобильном устройстве связи пользователя и пользователем. В некоторых вариантах реализации, экран может быть жидкокристаллическим дисплеем (ЖКД) или сенсорной панелью (СП). Если экран включает в себя сенсорную панель, экран может быть реализован в виде сенсорного экрана для приема входного сигнала от пользователя. Сенсорная панель включает один или более сенсорных датчиков в смысле жестов, прикосновения и скольжения по сенсорной панели. Сенсорный датчик может не только чувствовать границу прикосновения субъекта или жест перелистывания, но и определять длительность времени и давления, связанных с режимом работы на прикосновение и скольжение. В некоторых вариантах осуществления компонент мультимедиа включает одну фронтальную камеру и/или одну заднюю камеру. Когда система находится в режиме работы, например, режиме съемки или режиме видео, фронтальная камера и/или задняя камера могут получать данные мультимедиа извне. Каждая фронтальная камера и задняя камера может быть одной фиксированной оптической системой объектива или может иметь фокусное расстояние или оптический зум.
[0073] Компонент аудио выполнен с возможностью выходного и/или входного аудио сигнала. Например, компонент аудио включает один микрофон (MIC), который выполнен с возможностью получать внешний аудио сигнал, когда система находится в режиме работы, например, режиме вызова, режима записи и режима распознавания речи. Полученный аудио сигнал может быть далее сохранен в памяти или направлен по компоненту передачи данных. В некоторых вариантах осуществления компонент аудио также включает в себя один динамик выполненный с возможностью вывода аудио сигнала.
[0074] Интерфейс ввода / вывода (I/О) обеспечивает интерфейс между компонентом обработки и любым периферийным интерфейсным модулем. Вышеуказанным периферийным интерфейсным модулем может быть клавиатура, руль, кнопка, и т.д. Эти кнопки могут включать, но не ограничиваясь, кнопку запуска, кнопку регулировки громкости, начальную кнопку и кнопку блокировки.
[0075] Сенсорный компонент содержит один или более сенсоров и выполнен с возможностью обеспечения различных аспектов оценки состояния системы. Например, сенсорный компонент может обнаружить состояния вкл/выкл системы, относительное расположение компонентов, например, дисплея и кнопочной панели, одного компонента системы, наличие или отсутствие контакта между субъектом и системой, а также ориентацию или ускорение/замедление и изменение температуры системы. Сенсорный компонент содержит бесконтактный датчик, выполненный с возможностью обнаружения присутствия объекта, находящегося поблизости, когда нет физического контакта. Сенсорный компонент содержит оптический датчик (например, КМОП или ПЗС-датчик изображения) выполненный с возможностью использования в визуализации приложения. В некоторых вариантах сенсорный компонент содержит датчик ускорения, датчик гироскопа, магнитный датчик, датчик давления или датчик температуры.
[0076] Компонент передачи данных выполнен с возможностью облегчения проводной или беспроводной связи между системой и другими устройствами. Система может получить доступ к беспроводной сети на основе стандарта связи, таких как WiFi, 2G, 3G, 5G, или их комбинации. В одном примерном варианте компонент передачи данных получает широковещательный сигнал или трансляцию, связанную с ними информацию из внешней широковещательной системы управления через широковещательный канал. В одном варианте осуществления компонент передачи данных содержит модуль коммуникации ближнего поля (NFC), чтобы облегчить ближнюю связь. Например, модуль NFC может быть основан на технологии радиочастотной идентификации (RFID), технологии ассоциации передачи данных в инфракрасном диапазоне (IrDA), сверхширокополосных (UWB) технологии, Bluetooth (ВТ) технологии и других технологиях.
[0077] В примерном варианте осуществления система может быть реализована посредством одной или более Специализированных Интегральных Схем (СИС), Цифрового Сигнального Процессора (ЦСП), Устройств Цифровой Обработки Сигнала (УЦОС), Программируемым Логическим Устройством (ПЛУ), логической микросхемой, программируемой в условиях эксплуатации (ППВМ), контроллера, микроконтроллера, микропроцессора или других электронных компонентов, и может быть сконфигурирован для реализации способа.
[0078] В примерном варианте осуществления энергонезависимый машиночитаемый носитель содержит память, которая включает инструкции, где инструкции выполняются процессором системы для реализации описанных выше способов осуществления системы компьютерного зрения. Например, энергонезависимым машиночитаемым носителем может быть ПЗУ, оперативное запоминающее устройство (ОЗУ), компакт-диск, магнитная лента, дискеты, оптические устройства хранения данных и тому подобное.
[0079] Вычислительная система может включать в себя интерфейс дисплея, который передает графику, текст и другие данные из коммуникационной инфраструктуры (или из буфера кадра, не показан) для отображения на компоненте мультимедиа. Вычислительная система дополнительно включает в себя устройства ввода или периферийные устройства. Периферийные устройства могут включать в себя одно или несколько устройств для взаимодействия с мобильным устройством связи пользователя, такие как клавиатура, микрофон, носимое устройство, камера, один или более звуковых динамиков и другие датчики. Периферийные устройства могут быть внешними или внутренними по отношению к мобильному устройству связи пользователя. Сенсорный экран может отображать, как правило, графику и текст, а также предоставляет пользовательский интерфейс (например, но не ограничиваясь ими, графический пользовательский интерфейс (GUI)), через который субъект может взаимодействовать с мобильным устройством связи пользователя, например, получать доступ и взаимодействовать с приложениями, запущенными на устройстве.
[0080] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны.
[0081] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже.
[0082] Обычно, сама микросхема ПЛИС состоит из следующих компонент:
• конфигурируемых логических блоков, реализующих требуемую логическую функцию;
• программируемых электронных связей между конфигурируемыми логическими блоками;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
[0083] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств.
[0084] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.
[0085] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.
[0086] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.
[0087] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.
[0088] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Python, R, Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).
[0089] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.
[0090] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.
название | год | авторы | номер документа |
---|---|---|---|
Способ сбора размеченного набора данных | 2020 |
|
RU2737600C1 |
Система компьютерного зрения для обслуживания продаж весовых товаров | 2018 |
|
RU2703962C1 |
АНАЛИЗАТОР ЦИФРОВОЙ ТОРГОВОЙ ТОЧКИ | 2010 |
|
RU2452021C1 |
СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ОБРАЗОВ ИЗ ВИДЕОПОТОКА | 2019 |
|
RU2714901C1 |
СИСТЕМЫ И СПОСОБЫ ДЛЯ УПРАВЛЕНИЯ ПОЛОЧНЫМИ БЛОКАМИ ОТОБРАЖЕНИЯ И ДЛЯ ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ ИНФОРМАЦИИ НА ПОЛОЧНЫХ БЛОКАХ ОТОБРАЖЕНИЯ | 2016 |
|
RU2722857C2 |
СПОСОБ ОБНАРУЖЕНИЯ ЭЛЕКТРОННЫХ ЦЕННИКОВ В ТОРГОВОМ ЗАЛЕ | 2017 |
|
RU2750097C2 |
СПОСОБ АВТОМАТИЗИРОВАННОЙ УСТАНОВКИ ПРИЛОЖЕНИЙ НА УСТРОЙСТВО ПОЛЬЗОВАТЕЛЯ И СИСТЕМА ДЛЯ ОСУЩЕСТВЛЕНИЯ СПОСОБА | 2019 |
|
RU2723450C1 |
КАССОВАЯ СИСТЕМА И СПОСОБ ДЛЯ ИДЕНТИФИКАЦИИ БЛЮД НА ПОДНОСЕ | 2020 |
|
RU2724797C1 |
Система оборудования торгового зала магазина | 2020 |
|
RU2733490C1 |
СПОСОБ ПОСТРОЕНИЯ ФРОНТАЛЬНОЙ ПАНОРАМЫ СТЕЛЛАЖА ИЗ ПРОИЗВОЛЬНОЙ СЕРИИ КАДРОВ ПО 3D-МОДЕЛИ СТЕЛЛАЖА | 2022 |
|
RU2791291C1 |
Изобретение относится к области вычислительной техники. Технический результат заключается в повышении точности детектирования мелких и близкорасположенных объектов. Система компьютерного зрения в ритейле содержит набор видеокамер для осуществления захвата изображений, объединенных одной сетью с сервером. Блок захвата потока с камер расположен на сервере и выполнен с возможностью независимого чтения кадров из потока набора видеокамер посредством механизма очередей, который выполняет буферизацию необходимых для обработки кадров, причем блок захватывает каждый текущий кадр из потока, поступающий с частотой, заранее выставленной на камере, и если разница между двумя фиксируемыми временными характеристиками превышает или равна пороговому значению, происходит декодирование кадра и его буферизация в переменную очереди, причем если переменная очереди переполнена, кадр пропускается. Блок детектора представляет собой искусственную нейронную сеть, которая получает на вход кадры из очереди, сформированной блоком захвата потока с камер, и возвращает координаты контуров заранее установленных детектируемых объектов. Блок анализатора выполнен с возможностью сопоставления выявленных блоком детектора детектируемых объектов с эталонными состояниями, хранящимися в базе данных, и классификации типов несоответствий. Блок отправки уведомлений и визуализации выполнен с возможностью направления результатов выявленных несоответствий блока анализатора в графический интерфейс пользователя. 2 з.п. ф-лы, 8 ил.
1. Система компьютерного зрения в ритейле, содержащая:
• набор видеокамер для осуществления захвата изображений в зоне полок и в кассовой зоне, объединенных одной сетью с сервером, на котором расположены:
• блок захвата потока с видеокамер, выполненный с возможностью независимого чтения кадров из потока кадров набора видеокамер, посредством механизма очередей, который выполняет буферизацию необходимых для обработки кадров, причем
блок захвата потока с видеокамер захватывает каждый текущий кадр из потока, поступающий с частотой, заранее выставленной на видеокамерах из набора видеокамер, фиксирует временные характеристики и, если разница между двумя фиксируемыми временными характеристиками превышает или равна пороговому значению, декодирует кадр и буферизует его в переменную очереди, при этом:
– если данные появились в очереди, кадр направляется на обработку;
– если переменная очереди переполнена, кадр пропускается;
– если последовательно получено несколько битых кадров, функция захвата перезапускается;
• блок предобработки кадров, последовательно для каждого кадра осуществляющий:
– корректировку дисторсии;
– применение матрицы гомографии;
– масштабирование изображения к размеру нейросети детектора;
• блок детектора, представляющий собой искусственную нейронную сеть, которая получает на вход обработанные кадры из очереди, сформированной блоком захвата потока с камер, и возвращает координаты контуров заранее установленных детектируемых объектов с отнесением их к соответствующей зоне;
• блок классификатора, представляющий собой искусственную нейронную сеть, которая получает на вход вырезанные области изображения объектов в соответствии с координатами, полученными от блока детектора, и распознает объекты в вырезанной области;
• блок анализатора, выполненный с возможностью сопоставления распознанных блоком детектора объектов с эталонными состояниями, хранящимися в базе данных, и классификации результатов сопоставления по категориям с выявлением несоответствий;
• блок отправки уведомлений и визуализации, выполненный с возможностью направления результатов выявленных блоком анализатора несоответствий в графический интерфейс пользователя.
2. Система по п.1, характеризующаяся тем, что осуществляют механизм проверки потока на неисправность: если последовательно были получены n кадров, которые являются битыми, происходит перезапуск функции, считывающей поток.
3. Система по п.1, характеризующаяся тем, что в блоке детектора используется архитектура искусственной нейронной сети Scaled YOLO v4.
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
CHIEN-YAO WANG, "Scaled-YOLOv4: Scaling Cross Stage Partial Network" опубл | |||
Машина для добывания торфа и т.п. | 1922 |
|
SU22A1 |
Способ использования делительного аппарата ровничных (чесальных) машин, предназначенных для мериносовой шерсти, с целью переработки на них грубых шерстей | 1921 |
|
SU18A1 |
KR 102035592 B1, 23.10.2019 | |||
US |
Авторы
Даты
2022-12-06—Публикация
2022-11-11—Подача