СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ЗАКОДИРОВАННЫХ ДАННЫХ ПОСРЕДСТВОМ СКАНИРОВАНИЯ ИЗОБРАЖЕНИЙ
METHOD AND SYSTEM FOR RECOGNIZING ENCODED DATA BY SCANNING IMAGES

ОБЛАСТЬ ТЕХНИКИ
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам для распознавания кодов на объектах в вендинговых аппаратах и киосках самообслуживания.
УРОВЕНЬ ТЕХНИКИ
[002] В настоящее время вендинговые аппараты популярны из-за удобства, потому что готовы к работе в любое время дня и ночи. Кроме того, вендинговые аппараты могут быть размещены в удаленных местах, таких как вокзалы, гостиничные коридоры и тому подобное, которые удобны для клиентов.
[003] В то же время с развитием вычислительной техники стало возможным решить ряд задач, возникающих в процессе жизнедеятельности, облегчить, ускорить, повысить качество результата. К примеру, работа различных систем жизнеобеспечения, взаимодействие человека с компьютером, появление роботизированных систем и др. Тем не менее, обеспечить удовлетворительный результат в некоторых задачах (распознавание объектов) в настоящее время не удается.
[004] Создание устройств, выполняющих функции распознавания различных объектов, в большинстве случаев обеспечивает возможность замены человека специализированным автоматом. Благодаря этому, значительно расширяются возможности сложных систем, выполняющих различные информационные, логические, аналитические задачи. Следует отметить, что качество работ, выполняемых человеком на рабочем месте, зависит от многих факторов (квалификации, опыта, добросовестности и т.д.). Автоматический контроль сложных систем позволяет вести мониторинг и обеспечивать своевременное обслуживание, идентификацию помех и автоматическое применение соответствующих методов обработки данных, позволяет повысить качество передачи информации. Также очевидно, что использование автоматических систем для задач распознавания товаров может обеспечить невозможное для человека быстродействие.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[005] Данное техническое решение направлено на устранение недостатков, известных из уровня техники.
[006] Технической задачей или технической проблемой, решаемой в данном техническом решении, является распознавание товаров внутри вендингового автомата.
[007] Техническим результатом является повышение точности распознавания объектов внутри вендингового автомата.
[008] Указанный технический результат достигается благодаря осуществлению способа распознавания закодированных данных посредством сканирования изображений, выполняемый по меньшей мере одним вычислительным устройством, в котором получают общий список кодов товаров, которые были загружены в киоск; получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре после того, как пользователь изъял из киоска по меньшей мере один товар; передают полученный на предыдущем шаге по меньшей мере один кадр с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара; преобразовывают посредством вычислительного устройства по меньшей мере один идентифицированный посредством алгоритма компьютерного зрения код, расположенный на товаре, в текстовый вид; определяют коды товаров, которые пользователь изъял из киоска посредством сравнения общего списка кодов товаров, полученного на первом шаге до открытия пользователем двери и по меньшей мере одного преобразованного ранее кода, причем удаляют данные коды из общего списка кодов товаров; направляют на сервер команду на списание денежных средств на основании определенных кодов товаров, которые изъял пользователь.
[009] В некоторых вариантах реализации технического решения код на товаре является линейным кодом или двумерным кодом.
[0010] В некоторых вариантах реализации технического решения код наклеен на разрушаемую наклейку.
[0011] В некоторых вариантах реализации технического решения алгоритм компьютерного возраста реализован в библиотеке OpenCV или libdwt, или SimpleCV.
[0012] В некоторых вариантах реализации технического решения определяют координаты кода товара на изображении в пикселях.
[0013] В некоторых вариантах реализации технического решения блок запирания двери является электромагнитным замком, который состоит из металлической пластины и магнитного датчика, и/или электромеханическим замком.
[0014] В некоторых вариантах реализации технического решения система дополнительно содержит блок считывания температурной информации, представляющий собой набор температурных датчиков для формирования данных о температурных показаниях внутри киоска.
[0015] В некоторых вариантах реализации технического решения блоком ввода информации является бесконтактный считыватель карт.
[0016] В некоторых вариантах реализации технического решения блок взаимодействия систем представляет собой Raspberry Pi.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0017] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:
[0018] На Фиг. 1 показан пример реализации архитектуры системы распознавания кодов на объекте в вендинговом автомате.
[0019] На Фиг. 2 показан пример реализации технического решения, где показан вид с камеры на товар с наклеенным кодом.
[0020] На Фиг. 3 показан пример реализации согласно которому четыре камеры располагаются над полкой.
[0021] На Фиг. 4 показан пример реализации, в котором отображается вид сверху с установленной над полкой камеры.
[0022] На Фиг. 5 показан пример реализации в котором нашли код товара, обвели его рамкой, причем ниже написан код, который будет отправлен в 104 блок.
[0023] На Фиг. 6 показан вариант реализации исходных изображений, содержащих товары с наклеенными кодами.
[0024] На Фиг. 7 показан вариант реализации исходного изображения, содержащего товары с наклеенным кодом, преобразованным в черно-белый вариант.
[0025] На Фиг. 8 показан вариант реализации исходного изображения, содержащего товары с наклеенным кодом, в которых найдены градиенты перехода черный - белый.
[0026] На Фиг. 9 показан вариант реализации исходного изображения, содержащего товар с наклеенным кодом, в котором найдены контуры, которые выделены цветом.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0027] Ниже будут подробно рассмотрены термины и их определения, используемые в описании данного технического решения.
[0028] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты.
[0029] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0030] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0031] Сервер (англ. server) - электронное устройство, выполняющее сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на клиентское устройство. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство.
[0032] Модуль обмена данных - это модуль сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки, и транслятор для дальнейшей отправки.
[0033] Вычислительный модуль - это модуль сервера, который представляет собой микропроцессор, специально приспособленный для сложной обработки сигналов.
[0034] Модуль хранения базы данных - это модуль сервера, в котором хранятся данные, который может быть выполнен как накопитель на жестком магнитном диске или как флэш-память (flash memory), которая относится к полупроводникам электрически перепрограммируемой памяти.
[0035] Электронный замок - это электромеханический замок с системой дистанционного управления (ДУ) и блоком питания. Электромеханический замок состоит из трех частей: замка, ригеля и кронштейнов крепления.
[0036] В данном техническом решении используется понятие "вендинговый аппарат", "киоск самообслуживания", "киоск", однако любому специалисту в данном уровне техники очевидно, что может использоваться любое вендинговое оборудование, например, торговые автоматы для продажи напитков, автоматы по продаже еды, торговые автоматы для продажи непродовольственных товаров, развлекательные автоматы-аттракционы и т.п.
[0037] Предлагаемое устройство может быть использовано для работы с любыми промышленно выпускаемыми торговыми автоматами, в том числе ранее установленными. При этом для функционирования предлагаемой системы несущественным является наличие в автомате таких узлов, как панель выбора товара, дисплей, купюроприемник, монетоприемник, устройство выдачи сдачи, устройство для чтения банковских карт, чековый принтер. По сути, торговый автомат или киоск в предлагаемом решении, представляет собой автоматический пункт выдачи товара, который может содержать только средства хранения товаров и механизм их выдачи, управляемый контроллером, который связан посредством телекоммуникационной сети с сервером через модем и конвертер платежей - устройство, необходимое при наличии в автомате блоков приема монет или купюр, для подтверждения платежа и разрешения выдачи товара.
[0038] В некоторых вариантах реализации наличие прозрачной витрины, имеющей место в обычном исполнении киоска, также несущественно, т.к. полный ассортимент товара может передаваться непосредственно на мобильное устройство пользователя при покупке. Отсутствие витрины в автомате способствует повышению его вандалозащищенности.
[0039] Данное техническое решение работает следующим образом.
[0040] Шаг 110: получают список кодов товаров, которые были загружены в киоск.
[0041] Предварительно в холодильник вендингового автомата или киоска загружаются различные товары, предлагаемые к продаже, например, продукты питания. Изъявив желание купить тот или иной товар из конкретного киоска, пользователь открывает (или устанавливает) на мобильном устройстве соответствующее мобильное приложение или сразу открывает непосредственно дверь киоска или вендингового автомата, если он не пользуется мобильным приложением. В базе данных холодильника в блоке взаимодействия систем 104 хранится список товаров (или их кодов, не ограничиваясь). Пользователь открывает дверь, забирает необходимый ему товар или их множество, после чего закрывает дверь.
[0042] На товары, находящиеся внутри киоска или вендингового автомата, наклеен код, как показано на Фиг. 2, в котором может быть закодирована информация о товаре, например, код товара, срок годности, уникальный номер продукта и т.д. В некоторых вариантах реализации код может быть линейным кодом или двумерным. В качестве двумерного кода может использоваться, не ограничиваясь, Aztec Code, Data Matrix, MaxiCode, PDF417, QR код, Microsoft Tag и т.д. В качестве линейного кода может использоваться EAN (EAN-8 состоит из 8 цифр, EAN-13 - используются 13 цифр), UPC (UPC-A, UPC-E), Code56, Code128 (UPC/EAN-128), Codabar и т.д., не ограничиваясь. В некоторых вариантах реализации используют RFID-метки для отслеживания товаров.
[0043] В некоторых вариантах реализации камеры располагаются над полками для обзора товаров и блока 100. В конкретном примере реализации над каждой полкой висит четыре камеры. К одному блоку 100 подключено две камеры (в конкретном варианте реализации можно подключить от 1 до 4 камер). Если в холодильнике 4 полки, то получается, что в холодильнике 16 камер и 8 блоков 100. Камеры и блок 100 находятся в корпусе под полкой, как показано на Фиг. 3.
[0044] Камеры направлены на коды товаров, как показано на Фиг. 4, причем таким образом, что области видимости камер перекрывается, и камеры перекрывают всю полку.
[0045] Камера(-ы) может(-ут) быть предоставлена(-ы) в виде цифровой камеры, сконфигурированной для получения неподвижных изображений и движущихся изображений (например, видео). Камера может включать в себя объектив и один или более датчиков изображения, сконфигурированных для захвата и преобразования света в электрические сигналы. Исключительно в порядке примера, датчик изображения может включать в себя датчик изображения на основе КМОП (например, датчик с активными пикселями (APS) на основе КМОП) или датчик на основе ПЗС (прибор с зарядовой связью). В общем случае, датчик изображения в камере включает в себя интегральную схему, имеющую матрицу пикселей, в которой каждый пиксель включает в себя фотодетектор, улавливающий свет. Специалистам в данной области техники очевидно, что фотодетекторы в пикселях формирования изображения, в общем случае, регистрируют интенсивность света, улавливаемого через линзы камеры. Однако фотодетекторы, сами по себе, в общем случае, не способны регистрировать длину волны захваченного света и, таким образом, не способны определять информацию цвета.
[0046] Соответственно, датчик изображения может дополнительно включать в себя матрицу цветовых фильтров (CFA), которая может перекрывать или располагаться поверх пиксельной матрицы датчика изображения для захвата информации цвета. Матрица цветовых фильтров может включать в себя матрицу малых цветовых фильтров, каждый из которых может перекрывать соответствующий пиксель датчика изображения и фильтровать захваченный свет по длине волны. Таким образом, при совместном использовании, матрица цветовых фильтров и фотодетекторы могут обеспечивать информацию длины волны и интенсивности в отношении света, улавливаемого посредством камеры, которая может представлять захваченное изображение.
[0047] В одном варианте осуществления, матрица цветовых фильтров может включать в себя матрицу байесовских цветовых фильтров, которая обеспечивает шаблон фильтра, который на 50% состоит из зеленых элементов, на 25% из красных элементов и на 25% из синих элементов. Таким образом, датчик изображения, который использует матрицу байесовских цветовых фильтров, может обеспечивать информацию, касающуюся интенсивности света, принятого камерой на длинах волны зеленого, красного и синего цветов, благодаря чему, каждый пиксель изображения регистрирует только один из трех цветов (RGB). Эта информация, которая может именоваться "первичными данными изображения" или данными в "первичной области", может затем обрабатываться с использованием одного или более методов демозаики для преобразования первичных данных изображения в полноцветное изображение, в общем случае, путем интерполяции набора значений красного, зеленого и синего для каждого пикселя.
[0048] Шаг 120: получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре.
[0049] После того как пользователь закрыл дверь и забрал необходимые товары, блок взаимодействия систем 104 отправляет команду на блок 100. Блок 100 делает фотографии полок, находит на них коды и раскодирует их, после чего передает в текстовом виде коды всех товаров в холодильнике в блок взаимодействия систем 104.
[0050] Затем блок взаимодействия систем 104 сравнивает список кодов, который хранится в базе данных с тем, который получил от блока 100. При загрузке товаров в вендинговый автомат получают список кодов товаров, которые были загружены в киоск. После закрытия холодильника, блок 100 возвращает список кодов, которые смог распознать. Затем сравнивают список кодов, который был до открытия киоска со списком, полученным от блока 100 после закрытия. Далее определяют разницу значений, которая представляет собой коды товаров, которые пользователь изъял из холодильника, после чего удаляют изъятые товары из наличия киоска.
[0051] Определив те коды, которые пользователь забрал, блок взаимодействия систем 104 отправляет команду на списание денег.
[0052] Более детально обработка изображений раскрыта ниже.
[0053] Под обработкой изображения могут пониматься различные этапы обработки изображений, например, операции обнаружения/коррекции дефектных пикселей, коррекции затенения объектива, демозаики и повышения резкости изображения, шумопонижения, гамма-коррекции, улучшения изображения, преобразования цветового пространства, сжатия изображения, цветовой субдискретизации и масштабирования изображение, и т.д. В некоторых вариантах осуществления может использоваться "конвейер" обработки изображений для осуществления каждого из различных этапов обработки изображений. Данный конвейер может состоять из набора компонент, согласно каждому необходимому этапу, причем компоненты можно реализовать с использованием оборудования (например, процессоров цифрового сигнала или ASIC) или программного обеспечения, или посредством комбинации аппаратных и программных компонентов.
[0054] Прежде чем продолжить, следует отметить, что, хотя различные варианты осуществления различных методов обработки изображений, рассмотренных ниже, могут использовать байесовскую CFA, описанное здесь изобретение не подлежит ограничению в связи с этим. Действительно, специалистам в данной области техники очевидно, что представленные здесь методы обработки изображений можно применять к любому типу матрицы цветовых фильтров, включающих в себя фильтры RGBW, фильтры CYGM и т.д.
[0055] Шаг 130: передают полученный на предыдущем шаге по меньшей мере один кадр с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара.
[0056] Блок 100 получает по меньшей мере одно изображение с камеры, как показано на Фиг. 6, и с помощью, например, библиотеки алгоритмов компьютерного зрения OpenCV или альтернативных библиотек для обработки изображений, например, libdwt, SimpleCV, не ограничиваясь, обрабатывает кадр. Задача алгоритма определить координаты кода товара на изображении в пикселях, "вырезать" область с кодом и прочитать этот код - преобразовав в текстовый вид.
[0057] Для локализации кода преобразовывают изображения с камеры или камер следующим образом:
• убирают искажения рыбьего глаза объектива посредством функции коррекции, где задается несколько параметров объектива и изображение исправляется (в библиотеке OpenCV данная функция называется cv2.fisheye.initUndistortRectifyMap);
• переводят изображения в черно-белый формат, как показано на Фиг. 7, убирают шумы посредством, например, использования двух операций dilate и erode. Первая убирает редкие пиксели белого цвета, вторая редкие пиксели черного цвета;
• находят места максимального градиента цвета (резкого перехода с белого на черный или наоборот), как показано на Фиг. 8.
[0058] Целью всех этих преобразований является выделение на изображениях рамок вокруг кода. В различных вариантах реализации выделение рамкой может иметь квадратную, круглую, прямоугольную и так далее форму, в зависимости от типа штрих-кода.
[0059] После того как рамки выделены, осуществляют поиск контуров на изображениях, как показано на Фиг. 9. В итоге из всех найденных контуров получают контуры с четырьмя углами и соотношением сторон от 0.5 до 2. Данный диапазон значений подобран эмпирическим образом для конкретного варианта реализации, где контуром является квадрат, причем любому специалисту в уровне техники очевидно, что соотношение может быть изменено. Это могут быть прямоугольники, похожие на квадраты. Также отсекаются контуры слишком малой или большой площади (например, площадь размером от 2000 до 30000 пикселей). Экспериментально подобранные параметры площади позволяют выделить среди всех контуров контуры, содержащие, например, datamatrix коды.
[0060] Шаг 140: преобразовывают посредством вычислительного устройства по меньшей мере один идентифицированный посредством алгоритма компьютерного зрения код, расположенный на товаре, в текстовый вид.
[0061] Эти области вырезаются посредством копирования области изображения в массив и передаются в алгоритм преобразования кода в текст, который является общеизвестным в уровне техники. Эта стандартная библиотека чтения datamatrix кода.
[0062] В связи с тем, что камеры считывают коды только в момент закрытия двери, возможен такой сценарий, когда пользователь взял товар, отклеил код и вернул код обратно в холодильник. Для защиты от такого мошенничества используют разрушаемые наклейки с кодами.
[0063] Как дополнительную защиту внедряют датчики веса на полках. В таком случае датчики подключаются к блоку 100 через адаптер. Вместе со списком кодов блок 100 отправляет вес полки в блок 104. Блок 104 анализирует изменение веса и изменение количества товара. Если данные не совпадают - об этом сообщается в административную панель. Человек может подключиться к холодильнику посмотреть изображения с камер и определить какие товары были действительно куплены.
[0064] Ниже будет подробно раскрыта система распознавания закодированных данных посредством сканирования изображений.
[0065] Блок запирания двери 107 (или электрическая система блокировки) может представлять собой электромагнитный замок, состоящий из металлической пластины и магнитного датчика, или, например, электромеханический замок. Данный блок отправляет сигнал 12V на сервер для разблокировки замка. При прекращении подачи сигнала замок блокируется. Принцип работы электромагнитного замка основан на взаимодействии магнита (встроенного в корпус замка) и ответной части (металлическая пластина, прикрепляемая к двери). В отличие от электромеханического замка, в данном случае питание на катушке присутствует постоянно, при отключении питания контакт между магнитом и контактной пластиной размыкается и дверь открывается. Мощность магнита должна быть достаточно большой, чтобы предотвратить возможность открытия двери силовым усилием. В некоторых вариантах реализации могут использоваться электромагнитные замки магнитного запирания или магнитно-механического запирания.
[0066] Блок ввода информации 108, который может представлять собой бесконтактный считыватель карт. Считыватель кредитных карт - это специальное устройство, которое распознает данные с различных видов пластиковых карт посредством следующих способов:
[0067] 1. Магнитная лента на карте;
[0068] 2. Чип встроенный в карту;
[0069] 2. Бесконтактный метод оплаты.
[0070] Считыватель кредитных карт при считывании с магнитной ленты или чипа имеет специальный анализирующий слот, через который проводят карточку. Нужная информация сканируется после этого автоматически.
[0071] Бесконтактный метод работает по следующему принципу: карточку подносят к модулю на расстояние от 30 до 250 мм. Ее идентификатор попадает под генерируемое прибором электромагнитное излучение и сканирует индивидуальный код. Сведения перенаправляются на контроллер, что происходит в течение доли секунды.
[0072] Пользователь подносит пластиковую карту к считывателю, и по протоколу EMV происходит взаимодействие карты и считывателя. Блок ввода информации 108 может представлять собой терминал платежно-информационный универсальный, выполненный в виде компьютера и снабженный портами внешнего управления и мониторинга, служащими для присоединения к центральному блоку управления посредством интерфейсных линий связи устройства отображения информации, устройства ввода информации, блока управления, считывающего устройства для пластиковых электронных или магнитных карт, звукового устройства, отличающийся тем, что снабжен USB-портом.
[0073] Блок считывания температурной информации 106, представляющий собой блок N температурных датчиков, где N>=0. Блок опрашивает датчики температуры с заданной периодичностью и формирует данные о температурных показаниях. Датчик для измерения температуры основан на зависимости электрического сопротивления от температуры. В примерном варианте реализации датчик может быть маломощным температурным датчиком, например, LM20 от компании Texas Instruments™ или Ds18b20 от Dallas Semiconductor™.
[0074] Блок сетевого взаимодействия 103, например, реализованный как роутер для соединения всех компонентов посредством сети Ethernet и доступа к Интернету. Роутер снабжен N слотами для sim карт, где N=2 и М слотами Ethernet, где М>=2. Дублирование sim карт необходимо для бесперебойной работы киоска. Блок выполняет связующую функцию между киоском и его внутренними компонентами, а также между киоском и сервером. Также на роутере есть брандмауэр для защиты киоска от кибератак. В общем случае, вышеупомянутый блок сетевого взаимодействия 103 может содержать коммуникационный интерфейс мобильной радиосети, такой как, например, модем GPRS (Пакетной Радиосвязи Общего Пользования), модем UMTS (Универсальной Системы Мобильной Связи), модем HSPA (Высокоскоростной Пакетной Передачи Данных) или модем LTE (Стандарта Долгосрочного Развития), в котором вышеупомянутый интерфейс соединяется посредством протокола мобильной связи с базовой станцией для обеспечения связи с сетью Интернет. В этом случае система может содержать роутер, такой как, например, роутер ADSL или оптоволоконный роутер, соединяющий сеть LAN с сетью Интернет и обеспечивающий обмен данными с портативным компьютером, осуществляющим связь через сеть Интернет.
[0075] Блок взаимодействия систем 104, представляет из себя вычислительное устройство, которое опрашивает блок считывания температурной информации 106 с определенной периодичностью для получения данных о температуре внутри киоска.
[0076] Блок обработки информации (процессор), который представляют собой компьютер для распознавания образов в видеопотоке.
[0077] Блок ввода/вывода информации 105, реализованный как дисплей с тачскрином для взаимодействия с пользователем. Дисплей получает сигнал с блока взаимодействия систем 104, например, по кабелю HDMI и отображает этот сигнал. Посредством тачскрина дисплей отправляет сигнал на блок взаимодействия систем 104, представляющий из себя компьютер, данные о координатах прикосновения пользователя к дисплею. Как дополнительно показано, дисплей 105 может быть сконфигурирован для формирования различных изображений, которые может просматривать пользователь. Например, в ходе эксплуатации киоска для покупки товаров, дисплей 105 может отображать графический пользовательский интерфейс ("GUI"), который позволяет пользователю взаимодействовать с операционной системой и/или приложением, выполняющимся на киоске. GUI может включать в себя различные слои, окна, экраны, шаблоны или другие графические элементы, которые могут отображаться на всем, или участке, устройства отображения. Например, в представленном варианте осуществления, GUI операционной системы может включать в себя различные графические пиктограммы, каждая из которых может соответствовать различным приложениям, которые могут открываться или выполняться по обнаружении выбора пользователя (например, посредством ввода с помощью клавиатуры или сенсорного экрана). Пиктограммы могут отображаться в док-панели или в одном, или более графических оконных элементах, отображаемых на экране. В некоторых вариантах осуществления, выбор пиктограммы может приводить к иерархическому навигационному процессу, благодаря чему выбор пиктограммы приводит к экрану или открывает другое графическое окно, которое включает в себя одно или более дополнительных пиктограмм или других элементов GUI.
[0078] Блок взаимодействия систем 104, представляющий из себя вычислительное устройство, содержащее набор модулей, которые могут быть как программными, так и аппаратными, которые раскрыты ниже.
[0079] В примерном варианте реализации система содержит следующие модули:
• модуль для распознавания образов в последовательности кадров и подсчета товара, который купил пользователь;
• модуль для выполнения взаимодействия между компонентами киоска;
• кассовый модуль для выполнения расчетов с пользователем;
• операционная система;
• база данных;
• веб-сервер.
[0080] Взаимодействие вышеуказанных модулей и компонент осуществляется следующим образом:
[0081] Пользователь физически приближается к киоску или любому другому вендинговому автомату на достаточное расстояние для начала взаимодействия, например, один метр.
[0082] Затем пользователь разблокирует киоск посредством своего мобильного приложения 200 или прикладыванием пластиковой карты к считывателю пластиковых карт 108. Считыватель пластиковых карт 108 отправляет сигнал на блок взаимодействия систем 104 киоска на модуль по взаимодействию между объектами киоска. Данный модуль отправляет сигнал на удаленный сервер 109 для проверки пластиковой карты и определения клиента по ней.
[0083] При успешном определении клиента дверца киоска разблокируется, а при неуспешном определении выводят ошибку, например, на дисплей киоска и просят повторить предыдущий шаг на дисплее киоска или в мобильном приложении пользователя.
[0084] Пользователь открывает дверь киоска рукой за ручку двери киоска.
[0085] При открытии двери сигнал от замка двери 107 отправляется на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска.
[0086] Пользователь закрывает дверцу киоска, дверь блокируется.
[0087] Замок двери 107 подает сигнал на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска.
[0088] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по сети Интернет для получения списка действий, которые необходимо совершить при получении сигнала.
[0089] Далее данный модуль для взаимодействия между объектами киоска подает сигнал на кассовый модуль для выполнения расчетов с пользователем за извлеченный/ые объект/ы.
[0090] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по результатам операции расчета с клиентом за извлеченный/ые объект/ы.
[0091] Модуль для взаимодействия между объектами киоска отправляет сигнал на устройство отображения киоска о результате операции.
[0092] Все компоненты данного технического решения могут быть соединены шиной. В некоторых примерах информационная шина включает в себя одну или более информационных шин. Информационная шина может быть реализована в соответствии с протоколом шины локальной сети контроллеров (CAN), который определен Международной организацией стандартизации (ISO) 11898-1, протоколом шины передачи данных мультимедийных систем (MOST), протоколом гибкой информационной CAN-шины (CAN-FD) (ISO 11898-7) и/или протоколом шины K-line (ISO 9141 и ISO 14230-1) и/или протоколом Ethernet™-шины IEEE 802.3 (2002 г. и далее), и т.д.
[0093] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны.
[0094] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже.
[0095] Обычно, сама микросхема ПЛИС состоит из следующих компонент:
• конфигурируемых логических блоков, реализующих требуемую логическую функцию;
• программируемых электронных связей между конфигурируемыми логическими блоками;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
[0096] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств.
[0097] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.
[0098] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.
[0099] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.
[00100] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.
[00101] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например, Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например, язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).
[00102] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.
[00103] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.