СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ОБРАЗОВ ИЗ ВИДЕОПОТОКА
METHOD AND SYSTEM FOR PATTERN RECOGNITION FROM A VIDEO STREAM

ОБЛАСТЬ ТЕХНИКИ
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам для распознавания образов в вендинговых аппаратах и киосках самообслуживания.
УРОВЕНЬ ТЕХНИКИ
[002] В настоящее время вендинговые аппараты популярны из-за удобства, потому что готовы к работе в любое время дня и ночи. Кроме того, вендинговые аппараты могут быть размещены в удаленных местах, таких как вокзалы, гостиничные коридоры и тому подобное, которые удобны для клиентов.
[003] Распознавание образов в видеоизображении, например, в тех же вендинговых аппаратах, требует значительной вычислительной мощности применяемого оборудования. Существующие в уровне техники решения не обеспечивают эффективного и быстрого распознавания образов оборудованием с низкой вычислительной мощностью.
[004] Из уровня техники известна заявка на патент CN 110231837 (А) "А kind of multiple target directive property intelligent monitor system and its method emulating human eye vision", (Заявитель: Kunming University of Science and Technology, опубликовано: 2019-09-13). Настоящее изобретение относится к виду интеллектуальных систем наблюдения с множеством целевых свойств и к способу имитации зрения человеческого глаза, относящимся к технической области видеомониторинга. Решение содержит модуль захвата изображения поля обзора, модуль обработки и модуль привода. Модуль захвата изображения включает в себя панорамную камеру и небольшую камеру поля обзора, модуль обработки включает в себя компонент NVIDIA Jetson ТХ2, модуль привода включает в себя управляемый двигатель поворота. Настоящее изобретение имеет низкую сложность алгоритма, высокую стабильность, быстрое время отклика и преимущества в направлении нескольких целей.
[005] Однако данное решение не приспособлено для решения проблем с распознаванием образов из видеопотока, когда необходимо отслеживать траекторию движения товара, взятого пользователем из киоска.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[006] Данное техническое решение направлено на устранение недостатков, известных из уровня техники.
[007] Технической задачей или технической проблемой, решаемой в данном техническом решении, является осуществление способа и системы распознавания образов из видеопотока, а также устройство для их осуществления.
[008] Техническим результатом, достигаемым при решении вышеуказанной технической задачи, является снижение операционных издержек посредством упрощения механизма определения сущности, извлеченной покупателем, последующего взаимодействия с платежной системой для взаиморасчетов между компанией и пользователем и увеличение скорости обратной связи киоска пользователю.
[009] Указанный технический результат достигается благодаря осуществлению способа распознавания образов из видеопотока, который выполняется по меньшей мере одним вычислительным устройством и в котором получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый кадр разделяет виртуальная линия кассы; передают полученный на предыдущем шаге по меньшей мере один кадр с товаром на вход обученной искусственной нейронной сети, которая идентифицирует на кадре по меньшей мере один товар посредством получения координат товара и класса, к которому относится данный товар; определяют посредством вычислительного устройства находится ли центр товара за виртуальной линией кассы или снаружи, причем если по меньшей мере один товар появился в зоне кассы и пересек линию, данный товар добавляется в виртуальную корзину; направляют содержимое виртуальной корзины, сформированное на предыдущем шаге на сервер для выполнения расчетов с пользователем за по меньшей мере один извлеченный товар.
[0010] В некоторых вариантах реализации технического решения передают полученный на предыдущем шаге каждый n-й кадр с товаром на вход обученной искусственной нейронной сети.
[0011] В некоторых вариантах реализации технического решения на остальных кадрах кроме n-го отслеживают за товаром с помощью корреляционного трекера на основе разницы кадров.
[0012] В некоторых вариантах реализации технического решения, при распознавании товара из видеопотока, отправляют код этого товара на сервер через сеть Интернет по HTTPS, и по коду сущности с сервера получают порядок действий, который заложен при распознавании данного товара.
[0013] В некоторых вариантах реализации технического решения обученная нейронная искусственная сеть распознает на товаре срок годности.
[0014] В некоторых вариантах реализации технического решения обученная нейронная искусственная сеть распознает место первой идентификации товара и/или кадр последней идентификации, и/или направление движения товара, и/или абсолютные координаты товара.
[0015] Также технический результат достигается благодаря осуществлению системы распознавания образов из видеопотока, которая содержит вендинговый киоск, в корпусе которого конструктивно установлены: по меньшей мере одна камера, установленная на киоске, выполненная с возможностью получения по меньшей мере одного кадра, содержащего по меньшей мере один товар из киоска, причем каждый кадр разделяет виртуальная линия кассы; по меньшей мере одно вычислительное устройство, содержащее обученную нейронную искусственную сеть и выполненное с возможностью получения по меньшей мере одного кадра с товаром на вход обученной искусственной нейронной сети, которая идентифицирует на кадре по меньшей мере один товар посредством получения координат товара и класса, к которому относится данный товар; определения находится ли центр товара за виртуальной линией кассы или снаружи, причем если по меньшей мере один товар появился в зоне кассы и пересек линию, данный товар добавляется в виртуальную корзину; по меньшей мере один блок запирания двери, выполненный с возможностью направления на по меньшей мере один сервер сигнала для разблокировки замка двери; по меньшей мере один блок ввода информации, выполненный с возможностью получения от пользователя команд; по меньшей мере один блок взаимодействия систем, выполненный с возможностью передачи сигналов между блоками системы.
[0016] В некоторых вариантах реализации технического решения блок запирания двери является электромагнитным замком, который состоит из металлической пластины и магнитного датчика, и/или электромеханическим замком.
[0017] В некоторых вариантах реализации технического решения вычислительным устройством является NVIDIA Jetson или вычислительное устройство с GPU.
[0018] В некоторых вариантах реализации технического решения система дополнительно содержит блок считывания температурной информации, представляющий собой набор температурных датчиков для формирования данных о температурных показаниях внутри киоска.
[0019] В некоторых вариантах реализации технического решения блоком ввода информации является бесконтактный считыватель карт.
[0020] В некоторых вариантах реализации технического решения блок взаимодействия систем представляет собой Raspberry Pi.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:
[0022] На Фиг. 1 показан пример реализации архитектуры системы распознавания образов из видеопотока.
[0023] На Фиг. 2 показан пример реализации распознавания продукта с помощью видеокамеры и формирование виртуальной корзины.
[0024] На Фиг. 3 показан пример реализации киоска, в котором реализована система распознавания образов из видеопотока.
[0025] На Фиг. 4 показан пример реализации распознавания продукта с помощью видеокамеры и формирование виртуальной корзины, где происходит отслеживание товара.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0026] Ниже будут подробно рассмотрены термины и их определения, используемые в описании данного технического решения.
[0027] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты.
[0028] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0029] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0030] Сервер (англ. server) - электронное устройство, выполняющее сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на клиентское устройство. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство.
[0031] Модуль обмена данных - это модуль сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки, и транслятор для дальнейшей отправки.
[0032] Вычислительный модуль - это модуль сервера, который представляет собой микропроцессор, специально приспособленный для сложной обработки сигналов.
[0033] Модуль хранения базы данных - это модуль сервера, в котором хранятся данные, который может быть выполнен как накопитель на жестком магнитном диске или как флэш-память (flash memory), которая относится к полупроводникам электрически перепрограммируемой памяти.
[0034] Электронный замок - это электромеханический замок с системой дистанционного управления (ДУ) и блоком питания. Электромеханический замок состоит из трех частей: замка, ригеля и кронштейнов крепления.
[0035] Видеоаналитика - технология, использующая методы компьютерного зрения для автоматизированного получения различных данных на основании анализа последовательности изображений, поступающих с видеокамер в режиме реального времени или из архивных записей.
[0036] В данном техническом решении используется понятие "вендинговый аппарат", "киоск самообслуживания", "киоск", однако любому специалисту в данном уровне техники очевидно, что может использоваться любое вендинговое оборудование, например, торговые автоматы для продажи напитков, автоматы по продаже еды, торговые автоматы для продажи непродовольственных товаров, развлекательные автоматы-аттракционы и т.п.
[0037] Предлагаемое устройство может быть использовано для работы с любыми промышленно выпускаемыми торговыми автоматами, в том числе ранее установленными. При этом для функционирования предлагаемой системы несущественным является наличие в автомате таких узлов, как панель выбора товара, дисплей, купюроприемник, монетоприемник, устройство выдачи сдачи, устройство для чтения банковских карт, чековый принтер. По сути, торговый автомат или киоск в предлагаемом решении, представляет собой автоматический пункт выдачи товара, который может содержать только средства хранения товаров и механизм их выдачи, управляемый контроллером, который связан посредством телекоммуникационной сети с сервером через модем и конвертер платежей - устройство, необходимое при наличии в автомате блоков приема монет или купюр, для подтверждения платежа и разрешения выдачи товара.
[0038] В некоторых вариантах реализации наличие прозрачной витрины, имеющей место в обычном исполнении киоска, также несущественно, т.к. полный ассортимент товара может передаваться непосредственно на мобильное устройство пользователя при покупке. Отсутствие витрины в автомате способствует повышению его вандалозащищенности.
[0039] Данное техническое решение работает следующим образом.
[0040] Изъявив желание купить тот или иной товар из конкретного киоска, пользователь открывает (или устанавливает) на мобильном устройстве соответствующее мобильное приложение или сразу открывает непосредственно дверь киоска, если он не пользуется мобильным приложением.
[0041] После того, как пользователь достал товар, данное техническое решение распознает перемещение товара на видео с камер, и таким образом подсчитывает количество товара, который купил пользователь.
[0042] Под последовательностью действий понимается набор инструкций языка программирования, объединенных в цепочку вызовов простых операций, которые приводят к выполнению атомарной операции (например, такой как покупка, возврат, изъятие предмета из киоска, возврат предмета в киоск и т.п.).
[0043] В некоторых вариантах реализации получают по меньшей мере один кадр с видеопотока, который передается на вход искусственной нейронной сети (далее ИНС). ИНС идентифицирует на кадре товары и возвращает координаты товара (например, в пикселях) и класс, к которому относится данный товар. Анализируя последовательность изменений координат объектов алгоритм делает вывод какой товар взяли из холодильника. В некоторых вариантах реализации классом является название товара или марка товара, например, такие как "сникерс", "марс", "салат цезарь" и т.д. В некоторых вариантах реализации ИНС распознает срок годности товара. На товар наклеена метка, которая позволяет ИНС распознавать срок годности. При распознавании товара используется ИНС, установленная на вычислительном устройстве системы, которая содержит набор всех образов товаров, которые реализовываются в киоске.
[0044] Анализироваться могут такие параметры как место первой идентификации объекта, кадр последней идентификации, направление движения объекта, абсолютные координаты объекта и т.п. Место первой идентификации объекта определяется следующим образом. Камера смотрит на пользователя, который собирается купить продукты, покупатель засовывает руку в холодильник киоска, но камера еще не видит товар. Когда товар попадает в поле зрение камеры, ИНС находит товар, что является моментом первой идентификации товара.
[0045] Видеопоток с камеры или набора камер может обрабатываться на встраиваемом модульном суперкомпьютере NVIDIA™ Jetson™, причем каждый n-ый кадр обрабатывается посредством ИНС для снижения вычислительной нагрузки на систему. В конкретном варианте реализации может использоваться ИНС архитектуры Yolo (сверточная искусственная нейронная сеть). Такие ИНС обеспечивают довольно высокую точность и скорость детектирования объектов на изображениях. В некоторых вариантах реализации могут использоваться библиотеки для машинного обучения TensorFlow, Keras, Darknet, Deepstream и т.п., не ограничиваясь. Каждый модуль системы, как программный, так и аппаратный, может работать на любом современном компьютере с графическим процессором от Nvidia или на мобильных платформах Jetson™ ТХ2, Jetson Nano™ и т.п.
[0046] Камера (-ы) может(-ут) быть предоставлена(-ы) в виде цифровой камеры, сконфигурированной для получения неподвижных изображений и движущихся изображений (например, видео). Камера может включать в себя объектив и один или более датчиков изображения, сконфигурированных для захвата и преобразования света в электрические сигналы. Исключительно в порядке примера, датчик изображения может включать в себя датчик изображения на основе KМОП (например, датчик с активными пикселями (APS) на основе KМОП) или датчик на основе ПЗС (прибор с зарядовой связью). В общем случае, датчик изображения в камере включает в себя интегральную схему, имеющую матрицу пикселей, в которой каждый пиксель включает в себя фотодетектор, улавливающий свет. Специалистам в данной области техники очевидно, что фотодетекторы в пикселях формирования изображения, в общем случае, регистрируют интенсивность света, улавливаемого через линзы камеры. Однако фотодетекторы, сами по себе, в общем случае, не способны регистрировать длину волны захваченного света и, таким образом, не способны определять информацию цвета.
[0047] Соответственно, датчик изображения может дополнительно включать в себя матрицу цветовых фильтров (CFA), которая может перекрывать или располагаться поверх пиксельной матрицы датчика изображения для захвата информации цвета. Матрица цветовых фильтров может включать в себя матрицу малых цветовых фильтров, каждый из которых может перекрывать соответствующий пиксель датчика изображения и фильтровать захваченный свет по длине волны. Таким образом, при совместном использовании, матрица цветовых фильтров и фотодетекторы могут обеспечивать информацию длины волны и интенсивности в отношении света, улавливаемого посредством камеры, которая может представлять захваченное изображение.
[0048] В одном варианте осуществления, матрица цветовых фильтров может включать в себя матрицу байесовских цветовых фильтров, которая обеспечивает шаблон фильтра, который на 50% состоит из зеленых элементов, на 25% из красных элементов и на 25% из синих элементов. Таким образом, датчик изображения, который использует матрицу байесовских цветовых фильтров, может обеспечивать информацию, касающуюся интенсивности света, принятого камерой на длинах волны зеленого, красного и синего цветов, благодаря чему, каждый пиксель изображения регистрирует только один из трех цветов (RGB). Эта информация, которая может именоваться "первичными данными изображения" или данными в "первичной области", может затем обрабатываться с использованием одного или более методов демозаики для преобразования первичных данных изображения в полноцветное изображение, в общем случае, путем интерполяции набора значений красного, зеленого и синего для каждого пикселя.
[0049] Камеры в некоторых вариантах реализации могут быть установлены на киоске сверху, встроены в сам киоск, установлены внизу киоска и так далее, не ограничиваясь. В альтернативных вариантах реализации камера может быть установлена не на самом киоске, а над киоском или сборку для осуществления корректного распознавания товаров с зоной обзора камеры или камер. Под обработкой в данном конкретном примере реализации понимается предсказание ИНС положения товара и типа товара на по меньшей мере одном кадре. Для того, чтобы ИНС могла предсказывать положение и тип товара на кадре, ее необходимо предварительно обучить, что будет описано ниже. Способ обработки информации заключается в постоянном анализе видеопотока с набора камер, установленных внутри или вне киоска. По меньшей мере одна камера должна быть установлена сверху киоска так, чтобы камера видела всю область покупки. Дополнительно необходимо, чтобы камера немного захватывала полку, чтобы видеть как пользователь берет товар.
[0050] Под обработкой изображения могут пониматься различные этапы обработки изображений, например, операции обнаружения/коррекции дефектных пикселей, коррекции затенения объектива, демозаики и повышения резкости изображения, шумопонижения, гамма-коррекции, улучшения изображения, преобразования цветового пространства, сжатия изображения, цветовой субдискретизации и масштабирования изображение, и т.д. В некоторых вариантах осуществления может использоваться "конвейер" обработки изображений для осуществления каждого из различных этапов обработки изображений. Данный конвейер может состоять из набора компонент, согласно каждому необходимому этапу, причем компоненты можно реализовать с использованием оборудования (например, процессоров цифрового сигнала или ASIC) или программного обеспечения, или посредством комбинации аппаратных и программных компонентов.
[0051] Прежде чем продолжить, следует отметить, что хотя различные варианты осуществления различных методов обработки изображений, рассмотренных ниже, могут использовать байесовскую CFA, описанное здесь изобретение не подлежит ограничению в связи с этим. Действительно, специалистам в данной области техники очевидно, что представленные здесь методы обработки изображений можно применять к любому типу матрицы цветовых фильтров, включающих в себя фильтры RGBW, фильтры CYGM и т.д.
[0052] Анализируя координаты товара и тип товара на кадрах из последовательности кадров (например, видеопоток), модульный суперкомпьютер Jetson™ формирует виртуальную корзину с покупками.
[0053] В некоторых вариантах реализации видеопоток разделяется на фрагменты. Фрагмент может представлять собой последовательность кадров, отдельный кадр или часть кадра. Разделение видеопотока на фрагменты происходит таким образом, чтобы каждый фрагмент соответствовал одному объекту или событию, наблюдаемых камерой и представляющих интерес для распознавания. Возможно, что в одном фрагменте присутствуют несколько товаров в случае их одновременного появления (например, пользователь сразу взял молоко и хлеб). Целесообразно ограничение размеров фрагмента для снижения времени передачи наиболее приоритетных фрагментов по каналам связи с ограниченной пропускной способностью и более эффективного использования хранилища видео.
[0054] Обработка видеоданных может быть: а) встроена в передатчик видео (сетевую камеру или сетевой видеосервер); б) находиться на приемнике видео (на сервере); в) распределена между передатчиком и приемником видео.
[0055] Способ распознавания объектов может быть реализован в виде программных модулей и интегрирован с такими компонентами системы видеонаблюдения, как сетевая камера, сетевой видеосервер, сетевой видеорегистратор (NVR), система управления видео (VMS) и система онлайн-видеонаблюдения. Кроме того, данные программные модули могут запускаться на рабочих станциях и выделенных серверах, в центре обработки данных (ЦОД) или на хостинге облачного провайдера.
[0056] Фрагменты видеопотока могут также передаваться между компонентами системы или на сторонние серверы или хранилища данных в виде файлов, например, в популярных контейнерах типа TS, M2TS, MKV, OGV, МР4, AVI и др.
[0057] Например, при распознавании сущности из видеопотока, отправляют код этой сущности на сервер через сеть Интернет по HTTPS, по коду сущности с сервера получают порядок действий (например, продукт изъят из киоска, оплата), который заложен при распознавании данной сущности, затем последовательно начинают выполнять полученный порядок действий для достижения поставленной цели. Примером порядка действий может быть изъятие продукта из киоска и оплата. Финальной целью всей цепочки действий является получение пользователем продукта из киоска после его оплаты.
[0058] В примерном варианте реализации каждый кадр из видеопотока разделяет виртуальная линия кассы, как показано на Фиг. 2, например, пересекающая 1/3 кадра снизу, не ограничиваясь. Когда пользователь достает товар из киоска и при пересечении товаром этой линии товар добавляется в виртуальную корзину. Если клиент, например, возвращает товар в холодильник киоска, товар удаляется из виртуальной корзины. Оплата происходит после закрытия замка холодильника киоска. В момент закрытия блок взаимодействия систем 104 инициирует оплату через терминал или через сервер, в зависимости от того, чем оплачивает клиент: картой или через мобильное приложение. Алгоритм работает следующим образом: когда ИНС определяет новый объект (например, товар "молоко"), вычислительное устройство определяет находится ли центр объекта за линией кассы или снаружи, и сохраняет данные в базе данных. Для определения центра объекта ИНС "обводит" выбранный пользователем товар прямоугольником или любой другой геометрической фигурой, не ограничиваясь, как показано на Фиг. 4. В некоторых вариантах реализации ИНС формирует четыре цифры: координаты левого верхнего угла (х,у), а также ширину и высоту прямоугольника - (w,h). Таким образом, центром объекта является точка с координатами (х_с; у_с) х_с=x+w/2, у_с=y+h/2. На следующем кадре проверяется, где находится этот объект, не пересек ли товар линию кассы. Если пересек, товар добавляется в виртуальную корзину или убирается, в зависимости от первоначального положения объекта.
[0059] Если товар появился в зоне кассы и пересек линию, в таком случае товар добавляется в виртуальную корзину. В некоторых вариантах реализации линия является ломаной и формируется эмпирически на основании характеристик киоска (например, размера всего киоска и/или размера только холодильника, и/или зон обзора камер для распознавания и т.д.). Если товар появился вне кассы и пересек линию, в данном случае товар убирается из виртуальной корзины. На Фиг. 2 слева показано название типов товаров и их количество. В конкретном варианте реализации на Фиг. 2 товар еще не пересек линию кассы, поэтому везде около названий стоят нули по количеству.
[0060] Специалист в данной области техники поймет, что виртуальная корзина может быть реализована любым количеством способов в рамках объема настоящего изобретения.
[0061] В общем виде виртуальная корзина - это массив/список объектов, которые располагаются в киоске и которые желает приобрести пользователь, причем в этот массив добавляются/удаляются товары, которые пользователь достал или вернул в холодильник. Изменение виртуальной корзины происходит при пересечении товаром виртуальной линии кассы. После завершения покупки массив виртуальной корзины передается по HTTP в блок 104. В некоторых вариантах реализации могут использоваться также протоколы передачи данных UDP, RS-232 и т.д., не ограничиваясь. В качестве среды передачи данных может использоваться Ethernet, Wi-Fi, Bluetooh, Zig-Bee, LoRA и т.д., не ограничиваясь.
[0062] Для ускорения расчетов, ИНС обрабатывает каждый n-ый кадр, а на остальных кадрах отслеживают за товаром с помощью корреляционного трекера на основе разницы кадров. Jetson анализирует разницу между двумя кадрами и определяет координаты, куда сдвинулся объект. Например, линия, разделяющая линию кассы определена двумя точками t1 (0;100) и t2 (1280; 100). В момент первой идентификации товара координаты центра товара были (740; 30), значит товар находится в зоне холодильника. Пользователь перемещает товар, например, достает товар из холодильника киоска и берет в руки. На следующем кадре обученная искусственная нейронная сеть определила новые координаты объекта (540; 200), т.е. центр товара пересек линию кассы. Товар добавляется в корзину. На основании отслеживания координат положения на кадре товара формируется его траектория движения вне киоска, которая может представлять собой массив данных, который сохраняется в базу данных.
[0063] Какой будет выбираться кадр выбирается заранее эмпирическим способом с помощью анализа скорости обработки и наличия вычислительной мощности. В конкретном варианте реализации камера снимает 30 кадров в секунду, на ИНС отправляется каждый 4-ый кадр, в промежуточные кадры с товарами отслеживаются с помощью корреляционного трекера. Корреляционный трекер работает на основании разности соседних кадров. Например, на 325 кадре ИНС нашла необходимый объект. Затем данный объект передается в библиотеку, т.е. сам кадр (изображение) и координаты объекта в пикселях. Когда получают 326-й кадр, отправляют в библиотеку этот кадр, и команду - обновить координаты объекта. Так как кадр не сильно изменился, библиотека с помощью известных из уровня техники алгоритмов находит куда переместился объект и возвращает новые координаты объекта.
[0064] Как показано на Фиг. 1 блок взаимодействия систем 104 (например, в конкретном варианте реализации Raspberry Pi) через роутер 103 отправляет запрос о начала покупки на вычислительное устройство 100 (например, одноплатный компьютер Jatson). Взаимодействие блока взаимодействия систем 104 104 и вычислительное устройство 100] происходит с помощью GET и POST запросов. Запрос, представляющий собой сигнал, направляется, когда клиент открывает дверь (или в некоторых вариантах по другому событию) на вычислительное устройство 100, после чего вычислительное устройство 100 включает камеры. В некоторых вариантах реализации помимо Raspberry Pi может использоваться любой компьютер ARM, х86, х64 архитектуры, способный работать под ОС Linux.
[0065] Вычислительное устройство 100 включает камеру, начинается видеозапись покупки и подсчет товара. После получения сигнала о завершении покупки вычислительное устройство 100 отправляет содержимое виртуальной корзины на блок взаимодействия систем 104, а также по HTTP с помощью POST запроса. Камеры включаются только при открытии пользователем двери киоска. Сигнал о завершении покупки направляется тогда, когда пользователь закрывает дверь киоска. Блок взаимодействия систем 104 получает сигнал отдатчика положения двери в замке, и блок взаимодействия систем 104 подает сигнал о завершении покупки.
[0066] На киоске может быть установлено несколько камер для покрытия всей зоны покупок. Каждая камера будет подключена к отдельному вычислительному устройству 100. В это случае данные о виртуальной корзине со всех вычислительных устройств 100 будут суммироваться и отправляться на блок взаимодействия систем 104.
[0067] Обучение ИНС осуществляется посредством записи тестовых видео, где пользователь берет товар из киоска, после чего разбивают данные видео на кадры (последовательность кадров). Затем размечают на кадрах координаты и класс товара. Добавляют шумы, искажения и прочее для обработки полученных изображений: растягивание, сжатие, поворот и т.д. Далее отправляют данный набор кадров в ИНС для обучения. Процесс обучения ИНС является общеизвестным из уровня техники и очевиден любому специалисту. После обучения, обученную ИНС загружают в киоск после чего киоск может определять координаты товаров и тип товара.
[0068] Аппаратная часть системы состоит из набора компонент, подробно описанных ниже, который функционально между собой все связаны
[0069] Камеры, (например, в конкретном варианте реализации RBG видеокамеры) подключены к одноплатному компьютеру 100. Одноплатный компьютер Jetson 100 и другими словами вычислительное устройство на основе кадров с камеры определяет товар, который пользователь купил. Киоск может быть представлен как комплекс компонентов, так и как один конкретный компонент. Возможные компоненты системы могут включать, не ограничиваясь: прилавок, холодильник, вендинговый аппарат, кофемашина, сканер штрихкодов, датчик температур, считыватель карт, монитор и пр. Устройства встраиваются в киоск путем подключения их ко второму независимому компьютеру, отвечающему за взаимодействие между компонентами киоска.
[0070] Блок запирания двери 107 (или электрическая система блокировки) может представлять собой электромагнитный замок, состоящий из металлической пластины и магнитного датчика, или например электромеханический замок. Данный блок отправляет сигнал 12V на сервер для разблокировки замка. При прекращении подачи сигнала замок блокируется. Принцип работы электромагнитного замка основан на взаимодействии магнита (встроенного в корпус замка) и ответной части (металлическая пластина, прикрепляемая к двери). В отличии от электромеханического замка, в данном случае питание на катушке присутствует постоянно, при отключении питания контакт между магнитом и контактной пластиной размыкается и дверь открывается. Мощность магнита должна быть достаточно большой, чтобы предотвратить возможность открытия двери силовым усилием. В некоторых вариантах реализации могут использоваться электромагнитные замки магнитного запирания или магнитно-механического запирания.
[0071] Блок ввода информации 108, который может представлять собой бесконтактный считыватель карт. Считыватель кредитных карт - это специальное устройство, которое распознает данные с различных видов пластиковых карт посредством следующих способов:
[0072] 1. Магнитная лента на карте;
[0073] 2. Чип встроенный в карту;
[0074] 2. Бесконтактный метод оплаты.
[0075] Считыватель кредитных карт при считывании с магнитной ленты или чипа имеет специальный анализирующий слот, через который проводят карточку. Нужная информация сканируется после этого автоматически.
[0076] Бесконтактный метод работает по следующему принципу: карточку подносят к модулю на расстояние от 30 до 250 мм. Ее идентификатор попадает под генерируемое прибором электромагнитное излучение и сканирует индивидуальный код. Сведения перенаправляются на контроллер, что происходит в течение доли секунды.
[0077] Пользователь подносит пластиковую карту к считывателю, и по протоколу EMV происходит взаимодействие карты и считывателя. Блок ввода информации 108 может представлять собой терминал платежно-информационный универсальный, выполненный в виде компьютера и снабженный портами внешнего управления и мониторинга, служащими для присоединения к центральному блоку управления посредством интерфейсных линий связи устройства отображения информации, устройства ввода информации, блока управления, считывающего устройства для пластиковых электронных или магнитных карт, звукового устройства, отличающийся тем, что снабжен USB-портом.
[0078] Блок считывания температурной информации 106, представляющий собой блок N температурных датчиков, где N>=0. Блок опрашивает датчики температуры с заданной периодичностью и формирует данные о температурных показаниях. Датчик для измерения температуры основан на зависимости электрического сопротивления от температуры. В примерном варианте реализации датчик может быть маломощным температурным датчиком, например, LM20 от компании Texas Instruments™ или Ds18b20 от Dallas Semiconductor™.
[0079] Блок сетевого взаимодействия 103, например, реализованный как роутер для соединения всех компонентов посредством сети Ethernet и доступа к Интернету. Роутер снабжен N слотами для sim карт, где N=2 и М слотами Ethernet, где М>=2. Дублирование sim карт необходимо для бесперебойной работы киоска. Блок выполняет связующую функцию между киоском и его внутренними компонентами, а также между киоском и сервером. Также на роутере есть брандмауэр для защиты киоска от кибератак. В общем случае, вышеупомянутый блок сетевого взаимодействия 103 может содержать коммуникационный интерфейс мобильной радиосети, такой как, например, модем GPRS (Пакетной Радиосвязи Общего Пользования), модем UMTS (Универсальной Системы Мобильной Связи), модем HSPA (Высокоскоростной Пакетной Передачи Данных) или модем LTE (Стандарта Долгосрочного Развития), в котором вышеупомянутый интерфейс соединяется посредством протокола мобильной связи с базовой станцией для обеспечения связи с сетью Интернет. В этом случае система может содержать роутер, такой как, например, роутер ADSL или оптоволоконный роутер, соединяющий сеть LAN с сетью Интернет и обеспечивающий обмен данными с портативным компьютером, осуществляющим связь через сеть Интернет.
[0080] Блок взаимодействия систем 104, представляет из себя вычислительное устройство, которое опрашивает блок считывания температурной информации 106 с определенной периодичностью для получения данных о температуре внутри киоска.
[0081] Блок обработки информации (процессор), который представляют собой компьютер для распознавания образов в видеопотоке.
[0082] Блок ввода/вывода информации 105, реализованный как дисплей с тачскрином для взаимодействия с пользователем. Дисплей получает сигнал с блока взаимодействия систем 104, например, по кабелю HDMI и отображает этот сигнал. Посредством тачскрина дисплей отправляет сигнал на блок взаимодействия систем 104, представляющий из себя компьютер, данные о координатах прикосновения пользователя к дисплею. Как дополнительно показано, дисплей 105 может быть сконфигурирован для формирования различных изображений, которые может просматривать пользователь. Например, в ходе эксплуатации киоска для покупки товаров, дисплей 105 может отображать графический пользовательский интерфейс ("GUI"), который позволяет пользователю взаимодействовать с операционной системой и/или приложением, выполняющимся на киоске. GUI может включать в себя различные слои, окна, экраны, шаблоны или другие графические элементы, которые могут отображаться на всем, или участке, устройства отображения. Например, в представленном варианте осуществления, GUI операционной системы может включать в себя различные графические пиктограммы, каждая из которых может соответствовать различным приложениям, которые могут открываться или выполняться по обнаружении выбора пользователя (например, посредством ввода с помощью клавиатуры или сенсорного экрана). Пиктограммы могут отображаться в док-панели или в одном или более графических оконных элементах, отображаемых на экране. В некоторых вариантах осуществления, выбор пиктограммы может приводить к иерархическому навигационному процессу, благодаря чему выбор пиктограммы приводит к экрану или открывает другое графическое окно, которое включает в себя одно или более дополнительных пиктограмм или других элементов GUI.
[0083] Блок взаимодействия систем 104, представляющий из себя вычислительное устройство, содержащее набор модулей, которые могут быть как программными, так и аппаратными, которые раскрыты ниже.
[0084] В примерном варианте реализации система содержит следующие модули:
• модуль для распознавания образов в последовательности кадров и подсчета товара, который купил пользователь;
• модуль для выполнения взаимодействия между компонентами киоска;
• кассовый модуль для выполнения расчетов с пользователем;
• операционная система;
• база Данных;
• веб-сервер.
[0085] Взаимодействие вышеуказанных модулей и компонент осуществляется следующим образом:
[0086] При открытии двери киоска пользователем происходит подача сигнала на вычислительное устройство 100. Камеры начинают записывать покупку пользователя. После закрытия двери киоска вычислительное устройство 100 отправляет список товара (в виде сформированной виртуальной корзины), который купил пользователь в модуль для выполнения взаимодействия между компонентами киоска.
[0087] Последовательность действий является следующей:
[0088] Пользователь физически приближается к киоску или любому другому вендинговому автомату на достаточное расстояние для начала взаимодействия, например, один метр.
[0089] Затем пользователь разблокирует киоск посредством своего мобильного приложения 200 или прикладыванием пластиковой карты к считывателю пластиковых карт 108. Считыватель пластиковых карт 108 отправляет сигнал на блок взаимодействия систем 104 киоска на модуль по взаимодействию между объектами киоска. Данный модуль отправляет сигнал на удаленный сервер 109 для проверки пластиковой карты и определения клиента по ней.
[0090] При успешном определении клиента дверца киоска разблокируется, а при неуспешном определении выводят ошибку, например, на дисплей киоска и просят повторить предыдущий шаг на дисплее киоска или в мобильном приложении пользователя.
[0091] Пользователь открывает дверь киоска рукой за ручку двери киоска.
[0092] При открытии двери сигнал от замка двери 107 отправляется на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска.
[0093] Модуль для взаимодействия между объектами киоска отправляет сигнал на вычислительный модуль по распознаванию образов.
[0094] Затем модуль по распознаванию образов отправляет сигнал на набор камеры для начала записи видео.
[0095] Пользователь извлекает интересующий/ие его объекты из киоска.
[0096] Пользователь закрывает дверцу киоска, дверь блокируется.
[0097] Замок двери 107 подает сигнал на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска.
[0098] Модуль для взаимодействия между объектами киоска подает сигнал на вычислительный модуль по распознаванию образов.
[0099] Модуль по распознаванию образов подает сигнал на камеры на завершение записи, затем получает последовательность кадров с камер, установленных в или вне киоска.
[00100] Далее модуль по распознаванию образов начинает обработку видео с камер, определяет товар, который купил пользователь.
[00101] По завершении обработки видео данный модуль отправляет список товаров, который купил пользователь на блок по взаимодействию между объектами киоска.
[00102] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по сети Интернет для получения списка действий, которые необходимо совершить при получении сигнала.
[00103] Далее данный модуль для взаимодействия между объектами киоска подает сигнал на кассовый модуль для выполнения расчетов с пользователем за извлеченный/ые объект/ы.
[00104] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по результатам операции расчета с клиентом за извлеченный/ые объект/ы.
[00105] Модуль для взаимодействия между объектами киоска отправляет сигнал на устройство отображения киоска о результате операции. [00106] Все компоненты данного технического решения могут быть соединены шиной. В некоторых примерах информационная шина включает в себя одну или более информационных шин. Информационная шина может быть реализована в соответствии с протоколом шины локальной сети контроллеров (CAN), который определен Международной организацией стандартизации (ISO) 11898-1, протоколом шины передачи данных мультимедийных систем (MOST), протоколом гибкой информационной CAN-шины (CAN-FD) (ISO 11898-7) и/или протоколом шины K-line (ISO 9141 и ISO 14230-1) и/или протоколом Ethernet™-шины IEEE 802.3 (2002 г. и далее), и т.д.
[00107] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны.
[00108] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже.
[00109] Обычно, сама микросхема ПЛИС состоит из следующих компонент:
• конфигурируемых логических блоков, реализующих требуемую логическую функцию;
• программируемых электронных связей между конфигурируемыми логическими блоками;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
[00110] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств.
[00111] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.
[00112] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.
[00113] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.
[00114] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.
[00115] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).
[00116] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.
[00117] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.