WO2021167482A1 - Method and system for identifying encoded data by means of image scanning - Google Patents

Method and system for identifying encoded data by means of image scanning Download PDF

Info

Publication number
WO2021167482A1
WO2021167482A1 PCT/RU2020/000083 RU2020000083W WO2021167482A1 WO 2021167482 A1 WO2021167482 A1 WO 2021167482A1 RU 2020000083 W RU2020000083 W RU 2020000083W WO 2021167482 A1 WO2021167482 A1 WO 2021167482A1
Authority
WO
WIPO (PCT)
Prior art keywords
product
code
codes
kiosk
user
Prior art date
Application number
PCT/RU2020/000083
Other languages
French (fr)
Russian (ru)
Inventor
Дмитрий Андреевич РЕТУНСКИЙ
Руслан Ильясович ШАВАЛЕЕВ
Original Assignee
ФИЛИМОНОВ, Илья Евгеньевич
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ФИЛИМОНОВ, Илья Евгеньевич filed Critical ФИЛИМОНОВ, Илья Евгеньевич
Publication of WO2021167482A1 publication Critical patent/WO2021167482A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/18Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F11/00Coin-freed apparatus for dispensing, or the like, discrete articles
    • G07F11/02Coin-freed apparatus for dispensing, or the like, discrete articles from non-movable magazines

Definitions

  • This technical solution generally relates to the field of computing, and in particular to methods and systems for recognizing codes on objects in vending machines and self-service kiosks.
  • vending machines are popular because of their convenience, because they are ready to work at any time of the day or night.
  • vending machines can be placed in remote locations such as train stations, hotel corridors, and the like, which are convenient for customers.
  • the technical problem or technical problem solved in this technical solution is the recognition of goods inside the vending machine.
  • the technical result is to improve the accuracy of object recognition inside the vending machine.
  • the specified technical result is achieved by implementing a method for recognizing encoded data by scanning images, performed by at least one computing device, in which a general list of codes of goods that have been loaded into the kiosk is obtained; receive from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded after the user has withdrawn from the kiosk at least one product; at least one frame with the product code obtained in the previous step is transmitted to the computer vision algorithm, which identifies at least one product code on the frame by obtaining the coordinates of this product code; converting by means of a computing device at least one code identified by means of a computer vision algorithm located on the product into a text form; identify product codes that the user has withdrawn from the kiosk by comparing the general list of item codes obtained in the first step before the user opened the door and at least one previously converted code, and removing these codes from the general list of item codes; send a command to the server to write off funds based on certain product codes that the user has
  • the code on the item is a line code or two-dimensional code.
  • the code is applied to a destructible sticker.
  • the computer age algorithm is implemented in the OpenCV library or libdwt, or SimpleCV.
  • the coordinates of the product code on the image in pixels are determined.
  • the door locking unit is an electromagnetic lock, which consists of a metal plate and a magnetic sensor, and / or an electromechanical lock.
  • the system further comprises a temperature readout unit, which is a set of temperature sensors for generating data on temperature readings inside the kiosk.
  • the information input unit is a contactless card reader.
  • the system interconnection unit is a Raspberry Pi.
  • FIG. 1 shows an example of the implementation of the architecture of a code recognition system at an object in a vending machine.
  • FIG. 2 shows an example of the implementation of the technical solution, which shows a camera view of the product with the attached code.
  • FIG. 3 shows an example of an implementation according to which four cameras are located above a shelf.
  • FIG. 4 shows an example of implementation, which displays a top view with a camera installed above the shelf.
  • FIG. 5 shows an example of implementation in which the product code was found, surrounded by a frame, and below is the code that will be sent to block 104.
  • FIG. 6 shows an embodiment of the original images containing products with attached codes.
  • FIG. 7 shows an embodiment of an original image containing products with a pasted code converted to black and white.
  • FIG. 8 shows a variant of the implementation of the original image containing the products with the pasted code, in which the gradients of the black-to-white transition were found.
  • FIG. 9 shows an embodiment of the original image containing a product with a pasted code, in which the outlines are found, which are highlighted in color.
  • the system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of operations (actions, instructions), centralized and distributed databases, smart contracts.
  • a computer electronic computer
  • CNC numerical control
  • PLC programmable logic controller
  • computerized control systems and any other devices capable of performing a given, well-defined sequence of operations (actions, instructions), centralized and distributed databases, smart contracts.
  • command processor an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs) or the like.
  • a command processor reads and executes machine instructions (programs) from one or more storage devices.
  • the role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.
  • a program is a sequence of instructions for execution by a computer control device or command processing device.
  • Server an electronic device that performs service functions at the request of the client, providing him with access to certain resources.
  • a server is contemplated that has a persistent connection to the internetwork that can transmit data to a client device. The server can process this data and transmit the processing result back to the client device.
  • a data exchange module is a server module that can represent a receiver of incoming signals, and a converter for further processing, and a translator for further sending.
  • Computing module is a server module that is a microprocessor specially adapted for complex signal processing.
  • a database storage module is a server module that stores data, which can be configured as a hard disk drive or flash memory, which is a semiconductor of electrically programmable memory.
  • An electronic lock is an electromechanical lock with a remote control system (RC) and a power supply.
  • An electromechanical lock consists of three parts: a lock, a deadbolt and mounting brackets.
  • vending machine self-service kiosk
  • Kiosk any vending equipment can be used, for example, vending machines for selling drinks, vending machines food, vending machines for the sale of non-food products, amusement machines, amusement rides, etc.
  • the proposed device can be used to work with any commercially available vending machines, including those previously installed. At the same time, for the functioning of the proposed system, the presence in the machine of such nodes as a product selection panel, a display, a bill acceptor, a coin acceptor, a change dispenser, a bank card reader, and a receipt printer is insignificant.
  • a vending machine or a kiosk in the proposed solution is an automatic point of issue of goods, which can only contain means for storing goods and a mechanism for issuing them, controlled by a controller, which is connected through a telecommunication network with a server via a modem and a payment converter - a device necessary for the presence of blocks for accepting coins or bills in the vending machine, to confirm the payment and authorize the issuance of goods.
  • the presence of a transparent display case which occurs in a conventional kiosk design, is also unimportant, since the full range of goods can be transferred directly to the user's mobile device upon purchase.
  • the absence of a display case in the vending machine contributes to the increase of its vandal resistance.
  • Step 110 A list of item codes that have been uploaded to the kiosk is obtained.
  • Various goods offered for sale for example, food, are loaded into the refrigerator of the vending machine or kiosk. Having expressed a desire to buy a particular product from a specific kiosk, the user opens (or installs) the corresponding mobile application on the mobile device or immediately opens the door of the kiosk or vending machine directly if he does not use the mobile application.
  • a list of goods (or their codes, but not limited to) is stored in the refrigerator database in the system interaction unit 104. The user opens the door, picks up the desired product or a set of them, and then closes the door.
  • a code as shown in FIG. 2, in which information about the product can be encoded, for example, product code, expiration date, unique product number, etc.
  • the code may be line code or two-dimensional. Aztec Code, Data Matrix, MaxiCode, PDF417, QR code, Microsoft Tag, etc. can be used as a two-dimensional code.
  • EAN can be used as a line code (EAN-8 consists of 8 digits, EAN-13 - 13 digits are used), UPC (UPC-A, UPC-E), Code56, Code128 (UPC / EAN-128), Codabar, etc. .d., not limited to.
  • Some implementations use RFID tags to track goods.
  • cameras are positioned above the merchandise viewing shelves and unit 100.
  • four cameras hang above each shelf.
  • Two cameras are connected to one unit 100 (in a particular implementation, from 1 to 4 cameras can be connected). If there are 4 shelves in the refrigerator, then it turns out that there are 16 chambers and 8 blocks 100 in the refrigerator.
  • the chambers and block 100 are located in the housing under the shelf, as shown in FIG. 3.
  • the camera (s) may (s) be provided as a digital camera configured to capture still images and moving images (eg, video).
  • the camera may include a lens and one or more image sensors configured to capture and convert light into electrical signals.
  • an image sensor may include a CMOS image sensor (eg, a CMOS active pixel (APS) sensor) or a CCD (charge coupled device) sensor.
  • CMOS image sensor eg, a CMOS active pixel (APS) sensor
  • CCD charge coupled device
  • an image sensor in a camera includes an integrated circuit having an array of pixels, in which each pixel includes a photo detector that collects light. It will be apparent to those skilled in the art that photodetectors in imaging pixels generally record the intensity of light captured through a camera lens. However, photodetectors themselves are generally incapable of detecting the wavelength of captured light and thus incapable of detecting color information.
  • the image sensor may further include a color filter array (CFA) that may overlap or overlap the pixel array of the image sensor to capture color information.
  • CFA color filter array
  • the array of color filters can include an array of small color filters, each of which can overlap a corresponding pixel of the image sensor and filter the captured light by wavelength.
  • the color filter array and photodetectors can provide wavelength and intensity information with respect to the light captured by the camera, which can represent the captured image.
  • the color filter array may include a Bayesian color filter array that provides a filter pattern that is 50% green, 25% red, and 25% blue. So
  • an image sensor that uses an array of Bayesian color filters can provide information regarding the intensity of light received by the camera at wavelengths of green, red, and blue, so that each pixel in the image registers only one of three colors (RGB).
  • RGB three colors
  • This information which may be referred to as "primary image data" or data in the "primary region” may then be processed using one or more demosaicing techniques to transform the primary image data into a full color image, generally by interpolating a set of red, green, and blue for each pixel.
  • Step 120 receive from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded.
  • Block 100 takes photos of the shelves, finds codes on them and decodes them, and then transmits the codes of all goods in the refrigerator to system interaction unit 104.
  • the system interaction unit 104 compares the list of codes that is stored in the database with the one received from the unit 100.
  • a list of the codes of the goods that have been uploaded to the kiosk is obtained.
  • block 100 After closing the refrigerator, block 100 returns a list of codes that it could recognize.
  • the list of codes that was before the opening of the kiosk is compared with the list received from block 100 after it was closed.
  • the difference in values is determined, which is the codes of the goods that the user has withdrawn from the refrigerator, after which the withdrawn goods are removed from the kiosk.
  • the system interaction unit 104 After determining the codes that the user took away, the system interaction unit 104 sends a command to write off the money.
  • Image processing can be understood as various stages of image processing, for example, defective pixel detection / correction, lens shading correction, image demosaicing and image sharpening, noise reduction, gamma correction, image enhancement, color space conversion, image compression, color subsampling and scaling the image, etc.
  • an image processing "pipeline" may be used to perform each of the various steps in image processing.
  • a given pipeline can be composed of a set of components, according to each desired step, and the components can be implemented using hardware (eg, digital signal processors or ASICs) or software, or through a combination of hardware and software components.
  • Step 130 the at least one frame with the item code obtained in the previous step is transmitted to the computer vision algorithm, which identifies at least one item code on the frame by obtaining the coordinates of this item code.
  • Block 100 acquires at least one camera image as shown in FIG. 6, and using, for example, the library of computer vision algorithms OpenCV or alternative libraries for image processing, such as libdwt, SimpleCV, but not limited to, processes the frame.
  • the task of the algorithm is to determine the coordinates of the product code on the image in pixels, "cut out" the area with the code and read this code - converting it to text form.
  • the frame selection can be square, round, rectangular, and so on, depending on the type of barcode.
  • contours with four angles and aspect ratios from 0.5 to 2 are obtained. This range of values is selected empirically for a specific embodiment, where the contour is a square, and it is obvious to any person skilled in the art that the ratio can be changed ... These can be rectangles that look like squares. Outlines that are too small or too large (for example, an area of 2000 to 30,000 pixels) are also clipped. Experimentally selected parameters of the area allow you to distinguish among all the contours, contours containing, for example, datamatrix codes.
  • Step 140 transform by the computing device at least one identified by computer vision algorithm the code located on the product, in text form.
  • shelf weight sensors are introduced as additional protection.
  • the sensors are connected to block 100 via an adapter. Together with the list of codes, block 100 sends the weight of the shelf to block 104.
  • Block 104 analyzes the change in weight and change in the quantity of goods. If the data does not match, this is reported to the administrative panel. A person can connect to a refrigerator to view images from cameras and determine which goods were actually purchased.
  • the door locking unit 107 may be an electromagnetic lock consisting of a metal plate and a magnetic sensor, or for example an electromechanical lock.
  • This unit sends a 12V signal to the server to unlock the lock. When the signal is stopped, the lock is locked.
  • the principle of operation of an electromagnetic lock is based on the interaction of a magnet (built into the lock body) and a counterpart (a metal plate attached to the door). Unlike an electromechanical lock, in this case, the coil is constantly powered, when the power is turned off, the contact between the magnet and the contact plate opens and the door opens. The power of the magnet must be large enough to prevent the possibility of opening the door by force.
  • electromagnetic locks for magnetic locking or magnetically mechanical locking may be used.
  • An input unit 108 which may be a contactless card reader.
  • a credit card reader is a special device that recognizes data from various types of plastic cards in the following ways:
  • a credit card reader when reading from a magnetic tape or chip, has a special analysis slot through which the card is passed. The required information is then scanned automatically.
  • the contactless method works according to the following principle: the card is brought to the module at a distance of 30 to 250 mm. Its identifier falls under the electromagnetic radiation generated by the device and scans the individual code. The information is redirected to the controller, which happens within a fraction of a second.
  • the information input unit 108 can be a payment and information universal terminal, made in the form of a computer and equipped with ports for external control and monitoring, which are used to connect to the central control unit via interface communication lines an information display device, an information input device, a control unit, a reader for plastic electronic or magnetic cards, sound device, characterized in that it is equipped with a USB port.
  • the block polls the temperature sensors at a predetermined frequency and generates data on temperature readings.
  • the sensor for measuring temperature is based on the dependence of electrical resistance on temperature.
  • the sensor may be a low power temperature sensor such as an LM20 from Texas Instruments TM or a Ds18b20 from Dallas Semiconductor TM.
  • a networking unit 103 for example, implemented as a router for connecting all components via an Ethernet network and accessing the Internet.
  • the unit serves as a connecting function between the kiosk and its internal components, as well as between the kiosk and the server.
  • the router also has a firewall to protect the kiosk from cyberattacks.
  • the aforementioned networking unit 103 may comprise a mobile radio network communication interface such as, for example, a GPRS (General Purpose Packet Radio) modem, a UMTS (Universal Mobile Communications System) modem, an HSPA (High Speed Packet Data) modem, or an LTE modem. (Long Term Development Standard), in which the above interface is connected via a mobile communication protocol to a base station to communicate with the Internet.
  • the system may include a router, such as an ADSL router or a fiber optic router that connects the LAN to the Internet and communicates with a laptop that communicates over the Internet.
  • the system interaction unit 104 is a computing device that polls the temperature information reading unit 106 at regular intervals to obtain data on the temperature inside the kiosk.
  • An information processing unit which is a computer for pattern recognition in a video stream.
  • An information input / output unit 105 implemented as a touchscreen display for user interaction.
  • Display receives signal from system interconnection unit 104, for example, via an HDMI cable and displays this signal.
  • the display sends a signal to the system interaction unit 104, which is a computer, data on the coordinates of the user's touch to the display.
  • system interaction unit 104 which is a computer, data on the coordinates of the user's touch to the display.
  • display 105 can be configured to generate various images that can be viewed by a user. For example, during operation of a kiosk to purchase goods, display 105 may display a graphical user interface ("GUI") that allows a user to interact with an operating system and / or an application running on the kiosk.
  • GUI graphical user interface
  • the GUI can include various layers, windows, screens, templates, or other graphical elements that can be displayed all over, or a portion, of a display device.
  • the operating system GUI may include various graphical icons, each of which may correspond to different applications that may open or execute upon detection of a user's selection (eg, via keyboard or touch input). Thumbnails can be displayed in a dock or in one or more graphical window elements displayed on the screen. In some embodiments, selecting an icon may result in a hierarchical navigation process whereby selecting an icon leads to a screen or opens another graphics window that includes one or more additional icons or other GUI elements.
  • System Interconnection Unit 104 which is a computing device containing a set of modules, which can be either software or hardware, which are disclosed below.
  • the system comprises the following modules:
  • the user physically approaches the kiosk or any other vending machine a sufficient distance to initiate interaction, for example, one meter.
  • the plastic card reader 108 sends a signal to the kiosk system interaction unit 104 to the kiosk object interaction module.
  • This module sends a signal to the remote server 109 to check the plastic card and identify the client on it.
  • the kiosk door is unlocked, and if the determination is unsuccessful, an error is displayed, for example, on the kiosk display and asked to repeat the previous step on the kiosk display or in the user's mobile application.
  • the user opens the kiosk door with his hand on the kiosk door handle. [0085] When the door is opened, the signal from the door lock 107 is sent to the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
  • the door lock 107 signals the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
  • a module for interaction between kiosk objects sends a signal to a server over the Internet to obtain a list of actions to be taken upon receiving a signal. [0089] Further, this module for interaction between the objects of the kiosk sends a signal to the cash register module to perform settlements with the user for the extracted object / s.
  • the module for interaction between kiosk objects sends a signal to the server based on the results of the settlement with the client for the retrieved object / s.
  • the module for interaction between the objects of the kiosk sends a signal to the display device of the kiosk about the result of the operation.
  • a data bus includes one or more data buses.
  • the data bus can be implemented in accordance with the Controller Area Network (CAN) bus protocol, which is defined by the International Organization for Standardization (ISO) 11898-1, the Multimedia System Data Bus (MOST) protocol, the flexible CAN data bus protocol (CAN-FD) (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethernet TM protocol -ujHHbi IEEE 802.3 (2002 onwards), etc.
  • CAN Controller Area Network
  • MOST Multimedia System Data Bus
  • CAN-FD flexible CAN data bus protocol
  • K-line bus protocol ISO 9141 and ISO 14230-1
  • Ethernet TM protocol -ujHHbi IEEE 802.3 2002 onwards
  • All blocks used in the system can be implemented with electronic components used to create digital integrated circuits, which is obvious to a person skilled in the art. Not limited to, microcircuits, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming, can be used.
  • FPGA programmable logic integrated circuits
  • programmers and debugging environments are used that allow you to set the desired structure of a digital device in the form of a circuit diagram or a program in special hardware description languages: Verilog, VHDL, AHDL, etc.
  • FPGAs can be programmable logic controllers (PLCs), basic matrix crystals (BMCs), which require a factory production process for programming; ASICs are specialized custom large integrated circuits (LSI), which are significantly more expensive for small-scale and single-piece production.
  • PLCs programmable logic controllers
  • BMCs basic matrix crystals
  • ASICs are specialized custom large integrated circuits (LSI), which are significantly more expensive for small-scale and single-piece production.
  • the FPGA itself consists of the following components:
  • Blocks can also be implemented using read-only memory devices.
  • aspects of the present technical solution may be implemented as a system, method, or computer program product. Accordingly, various aspects of the present technical solution may be implemented solely as hardware, as software (including application software, and so on), or as an embodiment combining software and hardware aspects, which may generally be referred to as a "module” , “System” or “architecture”. In addition, aspects of the present technical solution may take the form of a computer program product implemented on one or more computer-readable media having computer-readable program code that is implemented thereon. [0099] Any combination of one or more computer readable media can also be used.
  • Computer readable media storage can be, without limitation, electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of a computer-readable storage medium include: an electrical connection using one or more wires, a portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any combination of the above.
  • a computer-readable storage medium can be any flexible storage medium that can contain or store a program for use by the system itself, device, apparatus, or in connection therewith.
  • Program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or combination of the above.
  • Computer program code for performing operations for the steps of the present technical solution may be written in any programming language or combinations of programming languages, including an object-oriented programming language such as Java, Smalltalk, C ++, and so on, and conventional procedural programming languages such as programming language "C" or similar programming languages.
  • the program code can be executed on the user's computer in whole, in part, or as a separate software package, partially on the user's computer and partially on the remote computer, or completely on the remote computer.
  • the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN), wide area network (WAN) or connection to an external computer (for example, via the Internet using Internet providers).
  • LAN local area network
  • WAN wide area network
  • Internet providers for example, via the Internet using Internet providers.
  • These computer program instructions may also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or devices that function in a particular way, such that the instructions stored on the computer-readable medium create a device including instructions that perform the functions / actions specified in the block diagram and / or diagram.

Abstract

The present solution relates to methods and systems for identifying codes on objects in vending machines and self-service kiosks. In a method for identifying encoded data by means of image scanning, a general list of codes of products which have been delivered to a kiosk is obtained; a still image including a product from the kiosk is obtained from a camera, each product including a code which encodes information about the product, after a user has removed the product from the kiosk; the still image with the product code obtained in the previous step is transmitted to a computer vision algorithm which identifies the product code in the still image by obtaining coordinates of said product code; the code identified by means of the computer vision algorithm and located on the product is converted by means of a computing device into text format; the codes of products which the user has removed from the kiosk are determined by comparing the general product code list obtained in the first step up to when the user opens the door and the converted code, said codes being removed from the general product code list; and a command is sent to the server to deduct funds on the basis of the determined codes of the products removed by the user.

Description

СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ЗАКОДИРОВАННЫХ ДАННЫХ ПОСРЕДСТВОМ СКАНИРОВАНИЯ ИЗОБРАЖЕНИЙ METHOD AND SYSTEM FOR RECOGNIZING ENCODED DATA THROUGH IMAGE SCANNING
ОБЛАСТЬ ТЕХНИКИ FIELD OF TECHNOLOGY
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам для распознавания кодов на объектах в вендинговых аппаратах и киосках самообслуживания. [001] This technical solution generally relates to the field of computing, and in particular to methods and systems for recognizing codes on objects in vending machines and self-service kiosks.
УРОВЕНЬ ТЕХНИКИ LEVEL OF TECHNOLOGY
[002] В настоящее время вендинговые аппараты популярны из-за удобства, потому что готовы к работе в любое время дня и ночи. Кроме того, вендинговые аппараты могут быть размещены в удаленных местах, таких как вокзалы, гостиничные коридоры и тому подобное, которые удобны для клиентов. [002] Currently, vending machines are popular because of their convenience, because they are ready to work at any time of the day or night. In addition, vending machines can be placed in remote locations such as train stations, hotel corridors, and the like, which are convenient for customers.
[003] В то же время с развитием вычислительной техники стало возможным решить ряд задач, возникающих в процессе жизнедеятельности, облегчить, ускорить, повысить качество результата. К примеру, работа различных систем жизнеобеспечения, взаимодействие человека с компьютером, появление роботизированных систем и др. Тем не менее, обеспечить удовлетворительный результат в некоторых задачах (распознавание объектов) в настоящее время не удается. [003] At the same time, with the development of computer technology, it has become possible to solve a number of problems arising in the process of life, to facilitate, accelerate, improve the quality of the result. For example, the operation of various life support systems, human-computer interaction, the emergence of robotic systems, etc. However, it is currently not possible to provide a satisfactory result in some tasks (object recognition).
[004] Создание устройств, выполняющих функции распознавания различных объектов, в большинстве случаев обеспечивает возможность замены человека специализированным автоматом. Благодаря этому, значительно расширяются возможности сложных систем, выполняющих различные информационные, логические, аналитические задачи. Следует отметить, что качество работ, выполняемых человеком на рабочем месте, зависит от многих факторов (квалификации, опыта, добросовестности и т. д.). Автоматический контроль сложных систем позволяет вести мониторинг и обеспечивать своевременное обслуживание, идентификацию помех и автоматическое применение соответствующих методов обработки данных, позволяет повысить качество передачи информации. Также очевидно, что использование автоматических систем для задач распознавания товаров может обеспечить невозможное для человека быстродействие. [004] Creation of devices that perform functions of recognition of various objects, in most cases, provides the ability to replace a person with a specialized machine. Thanks to this, the capabilities of complex systems that perform various information, logical, and analytical tasks are significantly expanded. It should be noted that the quality of work performed by a person in the workplace depends on many factors (qualifications, experience, conscientiousness, etc.). Automatic control of complex systems allows monitoring and providing timely service, identification of interference and automatic application of appropriate data processing methods, improves the quality of information transmission. It is also obvious that the use of automatic systems for product recognition tasks can provide performance that is impossible for a person.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ ESSENCE OF THE TECHNICAL SOLUTION
[005] Данное техническое решение направлено на устранение недостатков, известных из уровня техники. [005] This technical solution is aimed at eliminating the disadvantages known from the prior art.
[006] Технической задачей или технической проблемой, решаемой в данном техническом решении, является распознавание товаров внутри вендингового автомата. [006] The technical problem or technical problem solved in this technical solution is the recognition of goods inside the vending machine.
[007] Техническим результатом является повышение точности распознавания объектов внутри вендингового автомата. [007] The technical result is to improve the accuracy of object recognition inside the vending machine.
[008] Указанный технический результат достигается благодаря осуществлению способа распознавания закодированных данных посредством сканирования изображений, выполняемый по меньшей мере одним вычислительным устройством, в котором получают общий список кодов товаров, которые были загружены в киоск; получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре после того, как пользователь изъял из киоска по меньшей мере один товар; передают полученный на предыдущем шаге по меньшей мере один кадр с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара; преобразовывают посредством вычислительного устройства по меньшей мере один идентифицированный посредством алгоритма компьютерного зрения код, расположенный на товаре, в текстовый вид; определяют коды товаров, которые пользователь изъял из киоска посредством сравнения общего списка кодов товаров, полученного на первом шаге до открытия пользователем двери и по меньшей мере одного преобразованного ранее кода, причем удаляют данные коды из общего списка кодов товаров; направляют на сервер команду на списание денежных средств на основании определенных кодов товаров, которые изъял пользователь. [008] The specified technical result is achieved by implementing a method for recognizing encoded data by scanning images, performed by at least one computing device, in which a general list of codes of goods that have been loaded into the kiosk is obtained; receive from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded after the user has withdrawn from the kiosk at least one product; at least one frame with the product code obtained in the previous step is transmitted to the computer vision algorithm, which identifies at least one product code on the frame by obtaining the coordinates of this product code; converting by means of a computing device at least one code identified by means of a computer vision algorithm located on the product into a text form; identify product codes that the user has withdrawn from the kiosk by comparing the general list of item codes obtained in the first step before the user opened the door and at least one previously converted code, and removing these codes from the general list of item codes; send a command to the server to write off funds based on certain product codes that the user has withdrawn.
[009] В некоторых вариантах реализации технического решения код на товаре является линейным кодом или двумерным кодом. [009] In some implementations of the technical solution, the code on the item is a line code or two-dimensional code.
[0010] В некоторых вариантах реализации технического решения код наклеен на разрушаемую наклейку. [0010] In some embodiments of the technical solution, the code is applied to a destructible sticker.
[0011] В некоторых вариантах реализации технического решения алгоритм компьютерного возраста реализован в библиотеке OpenCV или libdwt, или SimpleCV. [0011] In some implementations of the technical solution, the computer age algorithm is implemented in the OpenCV library or libdwt, or SimpleCV.
[0012] В некоторых вариантах реализации технического решения определяют координаты кода товара на изображении в пикселях. [0012] In some embodiments of the technical solution, the coordinates of the product code on the image in pixels are determined.
[0013] В некоторых вариантах реализации технического решения блок запирания двери является электромагнитным замком, который состоит из металлической пластины и магнитного датчика, и/или электромеханическим замком. [0013] In some embodiments of the technical solution, the door locking unit is an electromagnetic lock, which consists of a metal plate and a magnetic sensor, and / or an electromechanical lock.
[0014] В некоторых вариантах реализации технического решения система дополнительно содержит блок считывания температурной информации, представляющий собой набор температурных датчиков для формирования данных о температурных показаниях внутри киоска. [0014] In some embodiments of the technical solution, the system further comprises a temperature readout unit, which is a set of temperature sensors for generating data on temperature readings inside the kiosk.
[0015] В некоторых вариантах реализации технического решения блоком ввода информации является бесконтактный считыватель карт. [0015] In some embodiments of the technical solution, the information input unit is a contactless card reader.
[0016] В некоторых вариантах реализации технического решения блок взаимодействия систем представляет собой Raspberry Pi. [0016] In some embodiments of the technical solution, the system interconnection unit is a Raspberry Pi.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ BRIEF DESCRIPTION OF DRAWINGS
[0017] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых: [0018] На Фиг. 1 показан пример реализации архитектуры системы распознавания кодов на объекте в вендинговом автомате. [0017] The features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which: [0018] FIG. 1 shows an example of the implementation of the architecture of a code recognition system at an object in a vending machine.
[0019] На Фиг. 2 показан пример реализации технического решения, где показан вид с камеры на товар с наклеенным кодом. [0019] FIG. 2 shows an example of the implementation of the technical solution, which shows a camera view of the product with the attached code.
[0020] На Фиг. 3 показан пример реализации согласно которому четыре камеры располагаются над полкой. [0020] FIG. 3 shows an example of an implementation according to which four cameras are located above a shelf.
[0021] На Фиг. 4 показан пример реализации, в котором отображается вид сверху с установленной над полкой камеры. [0021] FIG. 4 shows an example of implementation, which displays a top view with a camera installed above the shelf.
[0022] На Фиг. 5 показан пример реализации в котором нашли код товара, обвели его рамкой, причем ниже написан код, который будет отправлен в 104 блок. [0022] FIG. 5 shows an example of implementation in which the product code was found, surrounded by a frame, and below is the code that will be sent to block 104.
[0023] На Фиг. 6 показан вариант реализации исходных изображений, содержащих товары с наклеенными кодами. [0023] FIG. 6 shows an embodiment of the original images containing products with attached codes.
[0024] На Фиг. 7 показан вариант реализации исходного изображения, содержащего товары с наклеенным кодом, преобразованным в черно-белый вариант. [0024] FIG. 7 shows an embodiment of an original image containing products with a pasted code converted to black and white.
[0025] На Фиг. 8 показан вариант реализации исходного изображения, содержащего товары с наклеенным кодом, в которых найдены градиенты перехода черный - белый. [0025] FIG. 8 shows a variant of the implementation of the original image containing the products with the pasted code, in which the gradients of the black-to-white transition were found.
[0026] На Фиг. 9 показан вариант реализации исходного изображения, содержащего товар с наклеенным кодом, в котором найдены контуры, которые выделены цветом. [0026] FIG. 9 shows an embodiment of the original image containing a product with a pasted code, in which the outlines are found, which are highlighted in color.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ DETAILED DESCRIPTION OF THE INVENTION
[0027] Ниже будут подробно рассмотрены термины и их определения, используемые в описании данного технического решения. [0027] Below will be discussed in detail the terms and their definitions used in the description of this technical solution.
[0028] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты. [0028] In this invention, the system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of operations (actions, instructions), centralized and distributed databases, smart contracts.
[0029] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы. [0029] By a command processor is meant an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs) or the like. A command processor reads and executes machine instructions (programs) from one or more storage devices. The role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.
[0030] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд. [0030] A program is a sequence of instructions for execution by a computer control device or command processing device.
[0031] Сервер (англ server) - электронное устройство, выполняющее сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на клиентское устройство. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство. [0031] Server (English server) - an electronic device that performs service functions at the request of the client, providing him with access to certain resources. For the purposes of this description, a server is contemplated that has a persistent connection to the internetwork that can transmit data to a client device. The server can process this data and transmit the processing result back to the client device.
[0032] Модуль обмена данных — это модуль сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки, и транслятор для дальнейшей отправки. [0032] A data exchange module is a server module that can represent a receiver of incoming signals, and a converter for further processing, and a translator for further sending.
[0033] Вычислительный модуль — это модуль сервера, который представляет собой микропроцессор, специально приспособленный для сложной обработки сигналов. [0033] Computing module is a server module that is a microprocessor specially adapted for complex signal processing.
[0034] Модуль хранения базы данных — это модуль сервера, в котором хранятся данные, который может быть выполнен как накопитель на жестком магнитном диске или как флэш-память (flash memory), которая относится к полупроводникам электрически перепрограммируемой памяти. [0035] Электронный замок — это электромеханический замок с системой дистанционного управления (ДУ) и блоком питания. Электромеханический замок состоит из трех частей: замка, ригеля и кронштейнов крепления. [0034] A database storage module is a server module that stores data, which can be configured as a hard disk drive or flash memory, which is a semiconductor of electrically programmable memory. [0035] An electronic lock is an electromechanical lock with a remote control system (RC) and a power supply. An electromechanical lock consists of three parts: a lock, a deadbolt and mounting brackets.
[0036] В данном техническом решении используется понятие “вендинговый аппарат”, “киоск самообслуживания”, “киоск”, однако любому специалисту в данном уровне техники очевидно, что может использоваться любое вендинговое оборудование, например, торговые автоматы для продажи напитков, автоматы по продаже еды, торговые автоматы для продажи непродовольственных товаров, развлекательные автоматы-аттракционы и т.п. [0037] Предлагаемое устройство может быть использовано для работы с любыми промышленно выпускаемыми торговыми автоматами, в том числе ранее установленными. При этом для функционирования предлагаемой системы несущественным является наличие в автомате таких узлов, как панель выбора товара, дисплей, купюроприемник, монетоприемник, устройство выдачи сдачи, устройство для чтения банковских карт, чековый принтер. По сути, торговый автомат или киоск в предлагаемом решении, представляет собой автоматический пункт выдачи товара, который может содержать только средства хранения товаров и механизм их выдачи, управляемый контроллером, который связан посредством телекоммуникационной сети с сервером через модем и конвертер платежей - устройство, необходимое при наличии в автомате блоков приема монет или купюр, для подтверждения платежа и разрешения выдачи товара. [0036] In this technical solution, the concepts of "vending machine", "self-service kiosk", "kiosk" are used, however, it is obvious to any person skilled in the art that any vending equipment can be used, for example, vending machines for selling drinks, vending machines food, vending machines for the sale of non-food products, amusement machines, amusement rides, etc. [0037] The proposed device can be used to work with any commercially available vending machines, including those previously installed. At the same time, for the functioning of the proposed system, the presence in the machine of such nodes as a product selection panel, a display, a bill acceptor, a coin acceptor, a change dispenser, a bank card reader, and a receipt printer is insignificant. In fact, a vending machine or a kiosk in the proposed solution is an automatic point of issue of goods, which can only contain means for storing goods and a mechanism for issuing them, controlled by a controller, which is connected through a telecommunication network with a server via a modem and a payment converter - a device necessary for the presence of blocks for accepting coins or bills in the vending machine, to confirm the payment and authorize the issuance of goods.
[0038] В некоторых вариантах реализации наличие прозрачной витрины, имеющей место в обычном исполнении киоска, также несущественно, т. к. полный ассортимент товара может передаваться непосредственно на мобильное устройство пользователя при покупке. Отсутствие витрины в автомате способствует повышению его вандалозащищенности. [0038] In some embodiments, the presence of a transparent display case, which occurs in a conventional kiosk design, is also unimportant, since the full range of goods can be transferred directly to the user's mobile device upon purchase. The absence of a display case in the vending machine contributes to the increase of its vandal resistance.
[0039] Данное техническое решение работает следующим образом. [0039] This technical solution works as follows.
[0040] Шаг 110: получают список кодов товаров, которые были загружены в киоск. [0041] Предварительно в холодильник вендингового автомата или киоска загружаются различные товары, предлагаемые к продаже, например, продукты питания. Изъявив желание купить тот или иной товар из конкретного киоска, пользователь открывает (или устанавливает) на мобильном устройстве соответствующее мобильное приложение или сразу открывает непосредственно дверь киоска или вендингового автомата, если он не пользуется мобильным приложением. В базе данных холодильника в блоке взаимодействия систем 104 хранится список товаров (или их кодов, не ограничиваясь). Пользователь открывает дверь, забирает необходимый ему товар или их множество, после чего закрывает дверь. [0040] Step 110: A list of item codes that have been uploaded to the kiosk is obtained. [0041] Various goods offered for sale, for example, food, are loaded into the refrigerator of the vending machine or kiosk. Having expressed a desire to buy a particular product from a specific kiosk, the user opens (or installs) the corresponding mobile application on the mobile device or immediately opens the door of the kiosk or vending machine directly if he does not use the mobile application. A list of goods (or their codes, but not limited to) is stored in the refrigerator database in the system interaction unit 104. The user opens the door, picks up the desired product or a set of them, and then closes the door.
[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-метки для отслеживания товаров. [0042] Items inside the kiosk or vending machine are labeled with a code as shown in FIG. 2, in which information about the product can be encoded, for example, product code, expiration date, unique product number, etc. In some implementations, the code may be line code or two-dimensional. Aztec Code, Data Matrix, MaxiCode, PDF417, QR code, Microsoft Tag, etc. can be used as a two-dimensional code. EAN can be used as a line code (EAN-8 consists of 8 digits, EAN-13 - 13 digits are used), UPC (UPC-A, UPC-E), Code56, Code128 (UPC / EAN-128), Codabar, etc. .d., not limited to. Some implementations use RFID tags to track goods.
[0043] В некоторых вариантах реализации камеры располагаются над полками для обзора товаров и блока 100. В конкретном примере реализации над каждой полкой висит четыре камеры. К одному блоку 100 подключено две камеры (в конкретном варианте реализации можно подключить от 1 до 4 камер). Если в холодильнике 4 полки, то получается, что в холодильнике 16 камер и 8 блоков 100. Камеры и блок 100 находятся в корпусе под полкой, как показано на Фиг. 3. [0043] In some embodiments, cameras are positioned above the merchandise viewing shelves and unit 100. In a specific embodiment, four cameras hang above each shelf. Two cameras are connected to one unit 100 (in a particular implementation, from 1 to 4 cameras can be connected). If there are 4 shelves in the refrigerator, then it turns out that there are 16 chambers and 8 blocks 100 in the refrigerator. The chambers and block 100 are located in the housing under the shelf, as shown in FIG. 3.
[0044] Камеры направлены на коды товаров, как показано на Фиг. 4, причем таким образом, что области видимости камер перекрывается, и камеры перекрывают всю полку. [0045] Камера (-ы) может(-ут) быть предоставлена(-ы) в виде цифровой камеры, сконфигурированной для получения неподвижных изображений и движущихся изображений (например, видео). Камера может включать в себя объектив и один или более датчиков изображения, сконфигурированных для захвата и преобразования света в электрические сигналы. Исключительно в порядке примера, датчик изображения может включать в себя датчик изображения на основе КМОП (например, датчик с активными пикселями (APS) на основе КМОП) или датчик на основе ПЗС (прибор с зарядовой связью). В общем случае, датчик изображения в камере включает в себя интегральную схему, имеющую матрицу пикселей, в которой каждый пиксель включает в себя фотодетектор, улавливающий свет. Специалистам в данной области техники очевидно, что фотодетекторы в пикселях формирования изображения, в общем случае, регистрируют интенсивность света, улавливаемого через линзы камеры. Однако фотодетекторы, сами по себе, в общем случае, не способны регистрировать длину волны захваченного света и, таким образом, не способны определять информацию цвета. [0044] Cameras are directed to item codes as shown in FIG. 4, in such a way that the field of view of the cameras overlaps and the cameras cover the entire shelf. [0045] The camera (s) may (s) be provided as a digital camera configured to capture still images and moving images (eg, video). The camera may include a lens and one or more image sensors configured to capture and convert light into electrical signals. By way of example only, an image sensor may include a CMOS image sensor (eg, a CMOS active pixel (APS) sensor) or a CCD (charge coupled device) sensor. In general, an image sensor in a camera includes an integrated circuit having an array of pixels, in which each pixel includes a photo detector that collects light. It will be apparent to those skilled in the art that photodetectors in imaging pixels generally record the intensity of light captured through a camera lens. However, photodetectors themselves are generally incapable of detecting the wavelength of captured light and thus incapable of detecting color information.
[0046] Соответственно, датчик изображения может дополнительно включать в себя матрицу цветовых фильтров (CFA), которая может перекрывать или располагаться поверх пиксельной матрицы датчика изображения для захвата информации цвета. Матрица цветовых фильтров может включать в себя матрицу малых цветовых фильтров, каждый из которых может перекрывать соответствующий пиксель датчика изображения и фильтровать захваченный свет по длине волны. Таким образом, при совместном использовании, матрица цветовых фильтров и фотодетекторы могут обеспечивать информацию длины волны и интенсивности в отношении света, улавливаемого посредством камеры, которая может представлять захваченное изображение. [0046] Accordingly, the image sensor may further include a color filter array (CFA) that may overlap or overlap the pixel array of the image sensor to capture color information. The array of color filters can include an array of small color filters, each of which can overlap a corresponding pixel of the image sensor and filter the captured light by wavelength. Thus, when used together, the color filter array and photodetectors can provide wavelength and intensity information with respect to the light captured by the camera, which can represent the captured image.
[0047] В одном варианте осуществления, матрица цветовых фильтров может включать в себя матрицу байесовских цветовых фильтров, которая обеспечивает шаблон фильтра, который на 50% состоит из зеленых элементов, на 25% из красных элементов и на 25% из синих элементов. Таким образом, датчик изображения, который использует матрицу байесовских цветовых фильтров, может обеспечивать информацию, касающуюся интенсивности света, принятого камерой на длинах волны зеленого, красного и синего цветов, благодаря чему, каждый пиксель изображения регистрирует только один из трех цветов (RGB). Эта информация, которая может именоваться "первичными данными изображения" или данными в "первичной области", может затем обрабатываться с использованием одного или более методов демозаики для преобразования первичных данных изображения в полноцветное изображение, в общем случае, путем интерполяции набора значений красного, зеленого и синего для каждого пикселя. [0047] In one embodiment, the color filter array may include a Bayesian color filter array that provides a filter pattern that is 50% green, 25% red, and 25% blue. So Thus, an image sensor that uses an array of Bayesian color filters can provide information regarding the intensity of light received by the camera at wavelengths of green, red, and blue, so that each pixel in the image registers only one of three colors (RGB). This information, which may be referred to as "primary image data" or data in the "primary region", may then be processed using one or more demosaicing techniques to transform the primary image data into a full color image, generally by interpolating a set of red, green, and blue for each pixel.
[0048] Шаг 120: получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре. [0048] Step 120: receive from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded.
[0049] После того как пользователь закрыл дверь и забрал необходимые товары, блок взаимодействия систем 104 отправляет команду на блок 100. Блок 100 делает фотографии полок, находит на них коды и раскодирует их, после чего передает в текстовом виде коды всех товаров в холодильнике в блок взаимодействия систем 104. [0049] After the user has closed the door and picked up the necessary goods, the system interaction unit 104 sends a command to block 100. Block 100 takes photos of the shelves, finds codes on them and decodes them, and then transmits the codes of all goods in the refrigerator to system interaction unit 104.
[0050] Затем блок взаимодействия систем 104 сравнивает список кодов, который хранится в базе данных с тем, который получил от блока 100. При загрузке товаров в вендинговый автомат получают список кодов товаров, которые были загружены в киоск. После закрытия холодильника, блок 100 возвращает список кодов, которые смог распознать. Затем сравнивают список кодов, который был до открытия киоска со списком, полученным от блока 100 после закрытия. Далее определяют разницу значений, которая представляет собой коды товаров, которые пользователь изъял из холодильника, после чего удаляют изъятые товары из наличия киоска. [0050] Then, the system interaction unit 104 compares the list of codes that is stored in the database with the one received from the unit 100. When the goods are loaded into the vending machine, a list of the codes of the goods that have been uploaded to the kiosk is obtained. After closing the refrigerator, block 100 returns a list of codes that it could recognize. Then, the list of codes that was before the opening of the kiosk is compared with the list received from block 100 after it was closed. Next, the difference in values is determined, which is the codes of the goods that the user has withdrawn from the refrigerator, after which the withdrawn goods are removed from the kiosk.
[0051] Определив те коды, которые пользователь забрал, блок взаимодействия систем 104 отправляет команду на списание денег. [0051] After determining the codes that the user took away, the system interaction unit 104 sends a command to write off the money.
[0052] Более детально обработка изображений раскрыта ниже. [0053] Под обработкой изображения могут пониматься различные этапы обработки изображений, например, операции обнаружения/коррекции дефектных пикселей, коррекции затенения объектива, демозаики и повышения резкости изображения, шумопонижения, гамма-коррекции, улучшения изображения, преобразования цветового пространства, сжатия изображения, цветовой субдискретизации и масштабирования изображение, и т.д. В некоторых вариантах осуществления может использоваться "конвейер" обработки изображений для осуществления каждого из различных этапов обработки изображений. Данный конвейер может состоять из набора компонент, согласно каждому необходимому этапу, причем компоненты можно реализовать с использованием оборудования (например, процессоров цифрового сигнала или ASIC) или программного обеспечения, или посредством комбинации аппаратных и программных компонентов. [0052] More details on image processing are disclosed below. [0053] Image processing can be understood as various stages of image processing, for example, defective pixel detection / correction, lens shading correction, image demosaicing and image sharpening, noise reduction, gamma correction, image enhancement, color space conversion, image compression, color subsampling and scaling the image, etc. In some embodiments, an image processing "pipeline" may be used to perform each of the various steps in image processing. A given pipeline can be composed of a set of components, according to each desired step, and the components can be implemented using hardware (eg, digital signal processors or ASICs) or software, or through a combination of hardware and software components.
[0054] Прежде чем продолжить, следует отметить, что хотя различные варианты осуществления различных методов обработки изображений, рассмотренных ниже, могут использовать байесовскую CFA, описанное здесь изобретение не подлежит ограничению в связи с этим. Действительно, специалистам в данной области техники очевидно, что представленные здесь методы обработки изображений можно применять к любому типу матрицы цветовых фильтров, включающих в себя фильтры RGBW, фильтры CYGM и т.д. [0054] Before proceeding, it should be noted that although various embodiments of the various image processing techniques discussed below may use Bayesian CFA, the invention described herein is not subject to limitation in this regard. Indeed, those skilled in the art will appreciate that the image processing techniques presented herein can be applied to any type of color filter array, including RGBW filters, CYGM filters, etc.
[0055] Шаг 130: передают полученный на предыдущем шаге по меньшей мере один кадр с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара. [0055] Step 130: the at least one frame with the item code obtained in the previous step is transmitted to the computer vision algorithm, which identifies at least one item code on the frame by obtaining the coordinates of this item code.
[0056] Блок 100 получает по меньшей мере одно изображение с камеры, как показано на Фиг. 6, и с помощью например, библиотеки алгоритмов компьютерного зрения OpenCV или альтернативных библиотек для обработки изображений, например, libdwt, SimpleCV, не ограничиваясь, обрабатывает кадр. Задача алгоритма определить координаты кода товара на изображении в пикселях, “вырезать” область с кодом и прочитать этот код - преобразовав в текстовый вид. [0056] Block 100 acquires at least one camera image as shown in FIG. 6, and using, for example, the library of computer vision algorithms OpenCV or alternative libraries for image processing, such as libdwt, SimpleCV, but not limited to, processes the frame. The task of the algorithm is to determine the coordinates of the product code on the image in pixels, "cut out" the area with the code and read this code - converting it to text form.
[0057] Для локализации кода преобразовывают изображения с камеры или камер следующим образом: [0057] To localize the code, transform images from a camera or cameras as follows:
• убирают искажения рыбьего глаза объектива посредством функции коррекции, где задается несколько параметров объектива и изображение исправляется (в библиотеке OpenCV данная функция называется cv2.fisheye.initUndistortRectifyMap); • remove distortion of the lens fisheye by means of the correction function, where several parameters of the lens are set and the image is corrected (in the OpenCV library this function is called cv2.fisheye.initUndistortRectifyMap);
• переводят изображения в черно-белый формат, как показано на Фиг. 7, убирают шумы посредством, например, использования двух операций dilate и erode. Первая убирает редкие пиксели белого цвета, вторая редкие пиксели черного цвета; • convert images to black and white, as shown in FIG. 7 remove noise by, for example, using the two operations dilate and erode. The first removes rare white pixels, the second removes rare black pixels;
• находят места максимального градиента цвета (резкого перехода с белого на черный или наоборот), как показано на Фиг. 8. • Find the places of the maximum color gradient (sharp transition from white to black or vice versa), as shown in Fig. eight.
[0058] Целью всех этих преобразований является выделение на изображениях рамок вокруг кода. В различных вариантах реализации выделение рамкой может иметь квадратную, круглую, прямоугольную и так далее форму, в зависимости от типа штрих-кода. [0058] The purpose of all these transformations is to highlight the boxes around the code in the images. In various embodiments, the frame selection can be square, round, rectangular, and so on, depending on the type of barcode.
[0059] После того как рамки выделены, осуществляют поиск контуров на изображениях, как показано на Фиг. 9. В итоге из всех найденных контуров получают контуры с четырьмя углами и соотношением сторон от 0.5 до 2. Данный диапазон значений подобран эмпирическим образом для конкретного варианта реализации, где контуром является квадрат, причем любому специалисту в уровне техники очевидно, что соотношение может быть изменено. Это могут быть прямоугольники, похожие на квадраты. Также отсекаются контуры слишком малой или большой площади (например, площадь размером от 2000 до 30 000 пикселей). Экспериментально подобранные параметры площади позволяют выделить среди всех контуров контуры, содержащие например datamatrix коды. [0059] After the frames are selected, outlines are searched in the images as shown in FIG. 9. As a result, from all the found contours, contours with four angles and aspect ratios from 0.5 to 2 are obtained. This range of values is selected empirically for a specific embodiment, where the contour is a square, and it is obvious to any person skilled in the art that the ratio can be changed ... These can be rectangles that look like squares. Outlines that are too small or too large (for example, an area of 2000 to 30,000 pixels) are also clipped. Experimentally selected parameters of the area allow you to distinguish among all the contours, contours containing, for example, datamatrix codes.
[0060] Шаг 140: преобразовывают посредством вычислительного устройства по меньшей мере один идентифицированный посредством алгоритма компьютерного зрения код, расположенный на товаре, в текстовый вид. [0060] Step 140: transform by the computing device at least one identified by computer vision algorithm the code located on the product, in text form.
[0061] Эти области вырезаются посредством копирования области изображения в массив и передаются в алгоритм преобразования кода в текст, который является общеизвестным в уровне техники. Эта стандартная библиотека чтения datamatrix кода. [0061] These areas are cut out by copying the image area into an array and passed to a code-to-text algorithm that is generally known in the art. This is the standard library for reading datamatrix code.
[0062] В связи с тем, что камеры считывают коды только в момент закрытия двери, возможен такой сценарий, когда пользователь взял товар, отклеил код и вернул код обратно в холодильник. Для защиты от такого мошенничества используют разрушаемые наклейки с кодами. [0062] Due to the fact that the cameras read codes only at the moment the door is closed, such a scenario is possible when the user took the product, peeled off the code and returned the code back to the refrigerator. To protect against such fraud, destructible stickers with codes are used.
[0063] Как дополнительную защиту внедряют датчики веса на полках. В таком случае датчики подключаются к блоку 100 через адаптер. Вместе со списком кодов блок 100 отправляет вес полки в блок 104. Блок 104 анализирует изменение веса и изменение количества товара. Если данные не совпадают - об этом сообщается в административную панель. Человек может подключиться к холодильнику посмотреть изображения с камер и определить какие товары были действительно куплены. [0063] Shelf weight sensors are introduced as additional protection. In this case, the sensors are connected to block 100 via an adapter. Together with the list of codes, block 100 sends the weight of the shelf to block 104. Block 104 analyzes the change in weight and change in the quantity of goods. If the data does not match, this is reported to the administrative panel. A person can connect to a refrigerator to view images from cameras and determine which goods were actually purchased.
[0064] Ниже будет подробно раскрыта система распознавания закодированных данных посредством сканирования изображений. [0064] A system for recognizing encoded data by scanning images will be described in detail below.
[0065] Блок запирания двери 107 (или электрическая система блокировки) может представлять собой электромагнитный замок, состоящий из металлической пластины и магнитного датчика, или например электромеханический замок. Данный блок отправляет сигнал 12V на сервер для разблокировки замка. При прекращении подачи сигнала замок блокируется. Принцип работы электромагнитного замка основан на взаимодействии магнита (встроенного в корпус замка) и ответной части (металлическая пластина, прикрепляемая к двери). В отличии от электромеханического замка, в данном случае питание на катушке присутствует постоянно, при отключении питания контакт между магнитом и контактной пластиной размыкается и дверь открывается. Мощность магнита должна быть достаточно большой, чтобы предотвратить возможность открытия двери силовым усилием. В некоторых вариантах реализации могут использоваться электромагнитные замки магнитного запирания или магнитно- механического запирания. [0065] The door locking unit 107 (or the electrical locking system) may be an electromagnetic lock consisting of a metal plate and a magnetic sensor, or for example an electromechanical lock. This unit sends a 12V signal to the server to unlock the lock. When the signal is stopped, the lock is locked. The principle of operation of an electromagnetic lock is based on the interaction of a magnet (built into the lock body) and a counterpart (a metal plate attached to the door). Unlike an electromechanical lock, in this case, the coil is constantly powered, when the power is turned off, the contact between the magnet and the contact plate opens and the door opens. The power of the magnet must be large enough to prevent the possibility of opening the door by force. In some embodiments, electromagnetic locks for magnetic locking or magnetically mechanical locking may be used.
[0066] Блок ввода информации 108, который может представлять собой бесконтактный считыватель карт. Считыватель кредитных карт — это специальное устройство, которое распознает данные с различных видов пластиковых карт посредством следующих способов: [0066] An input unit 108, which may be a contactless card reader. A credit card reader is a special device that recognizes data from various types of plastic cards in the following ways:
[0067] 1. Магнитная лента на карте; [0067] 1. Magnetic tape on the card;
[0068] 2. Чип встроенный в карту; [0068] 2. Chip embedded in the card;
[0069] 2. Бесконтактный метод оплаты. [0069] 2. Contactless payment method.
[0070] Считыватель кредитных карт при считывании с магнитной ленты или чипа имеет специальный анализирующий слот, через который проводят карточку. Нужная информация сканируется после этого автоматически. [0070] A credit card reader, when reading from a magnetic tape or chip, has a special analysis slot through which the card is passed. The required information is then scanned automatically.
[0071] Бесконтактный метод работает по следующему принципу: карточку подносят к модулю на расстояние от 30 до 250 мм. Её идентификатор попадает под генерируемое прибором электромагнитное излучение и сканирует индивидуальный код. Сведения перенаправляются на контроллер, что происходит в течение доли секунды. [0071] The contactless method works according to the following principle: the card is brought to the module at a distance of 30 to 250 mm. Its identifier falls under the electromagnetic radiation generated by the device and scans the individual code. The information is redirected to the controller, which happens within a fraction of a second.
[0072] Пользователь подносит пластиковую карту к считывателю, и по протоколу EMV происходит взаимодействие карты и считывателя. Блок ввода информации 108 может представлять собой терминал платежно- информационный универсальный, выполненный в виде компьютера и снабженный портами внешнего управления и мониторинга, служащими для присоединения к центральному блоку управления посредством интерфейсных линий связи устройства отображения информации, устройства ввода информации, блока управления, считывающего устройства для пластиковых электронных или магнитных карт, звукового устройства, отличающийся тем, что снабжен USB-портом. [0072] The user brings the plastic card to the reader, and the card and the reader interact with the EMV protocol. The information input unit 108 can be a payment and information universal terminal, made in the form of a computer and equipped with ports for external control and monitoring, which are used to connect to the central control unit via interface communication lines an information display device, an information input device, a control unit, a reader for plastic electronic or magnetic cards, sound device, characterized in that it is equipped with a USB port.
[0073] Блок считывания температурной информации 106, представляющий собой блок N температурных датчиков, где N >= 0. Блок опрашивает датчики температуры с заданной периодичностью и формирует данные о температурных показаниях. Датчик для измерения температуры основан на зависимости электрического сопротивления от температуры. В примерном варианте реализации датчик может быть маломощным температурным датчиком, например, LM20 от компании Texas Instruments™ или Ds18b20 от Dallas Semiconductor™. [0073] The block for reading temperature information 106, which is a block of N temperature sensors, where N> = 0. The block polls the temperature sensors at a predetermined frequency and generates data on temperature readings. The sensor for measuring temperature is based on the dependence of electrical resistance on temperature. In an exemplary embodiment, the sensor may be a low power temperature sensor such as an LM20 from Texas Instruments ™ or a Ds18b20 from Dallas Semiconductor ™.
[0074] Блок сетевого взаимодействия 103, например, реализованный как роутер для соединения всех компонентов посредством сети Ethernet и доступа к Интернету. Роутер снабжен N слотами для sim карт, где N = 2 и М слотами Ethernet, где М >= 2. Дублирование sim карт необходимо для бесперебойной работы киоска. Блок выполняет связующую функцию между киоском и его внутренними компонентами, а также между киоском и сервером. Также на роутере есть брандмауэр для защиты киоска от кибератак. В общем случае, вышеупомянутый блок сетевого взаимодействия 103 может содержать коммуникационный интерфейс мобильной радиосети, такой как, например, модем GPRS (Пакетной Радиосвязи Общего Пользования), модем UMTS (Универсальной Системы Мобильной Связи), модем HSPA (Высокоскоростной Пакетной Передачи Данных) или модем LTE (Стандарта Долгосрочного Развития), в котором вышеупомянутый интерфейс соединяется посредством протокола мобильной связи с базовой станцией для обеспечения связи с сетью Интернет. В этом случае система может содержать роутер, такой как, например, роутер ADSL или оптоволоконный роутер , соединяющий сеть LAN с сетью Интернет и обеспечивающий обмен данными с портативным компьютером, осуществляющим связь через сеть Интернет. [0074] A networking unit 103, for example, implemented as a router for connecting all components via an Ethernet network and accessing the Internet. The router is equipped with N slots for sim cards, where N = 2 and M slots for Ethernet, where M> = 2. Duplication of sim cards is necessary for uninterrupted operation of the kiosk. The unit serves as a connecting function between the kiosk and its internal components, as well as between the kiosk and the server. The router also has a firewall to protect the kiosk from cyberattacks. In general, the aforementioned networking unit 103 may comprise a mobile radio network communication interface such as, for example, a GPRS (General Purpose Packet Radio) modem, a UMTS (Universal Mobile Communications System) modem, an HSPA (High Speed Packet Data) modem, or an LTE modem. (Long Term Development Standard), in which the above interface is connected via a mobile communication protocol to a base station to communicate with the Internet. In this case, the system may include a router, such as an ADSL router or a fiber optic router that connects the LAN to the Internet and communicates with a laptop that communicates over the Internet.
[0075] Блок взаимодействия систем 104, представляет из себя вычислительное устройство, которое опрашивает блок считывания температурной информации 106 с определенной периодичностью для получения данных о температуре внутри киоска. [0075] The system interaction unit 104 is a computing device that polls the temperature information reading unit 106 at regular intervals to obtain data on the temperature inside the kiosk.
[0076] Блок обработки информации (процессор), который представляют собой компьютер для распознавания образов в видеопотоке. [0076] An information processing unit (processor), which is a computer for pattern recognition in a video stream.
[0077] Блок ввода/вывода информации 105, реализованный как дисплей с тачскрином для взаимодействия с пользователем. Дисплей получает сигнал с блока взаимодействия систем 104, например, по кабелю HDMI и отображает этот сигнал. Посредством тачскрина дисплей отправляет сигнал на блок взаимодействия систем 104, представляющий из себя компьютер, данные о координатах прикосновения пользователя к дисплею. Как дополнительно показано, дисплей 105 может быть сконфигурирован для формирования различных изображений, которые может просматривать пользователь. Например, в ходе эксплуатации киоска для покупки товаров, дисплей 105 может отображать графический пользовательский интерфейс ("GUI"), который позволяет пользователю взаимодействовать с операционной системой и/или приложением, выполняющимся на киоске. GUI может включать в себя различные слои, окна, экраны, шаблоны или другие графические элементы, которые могут отображаться на всем, или участке, устройства отображения. Например, в представленном варианте осуществления, GUI операционной системы может включать в себя различные графические пиктограммы, каждая из которых может соответствовать различным приложениям, которые могут открываться или выполняться по обнаружении выбора пользователя (например, посредством ввода с помощью клавиатуры или сенсорного экрана). Пиктограммы могут отображаться в док-панели или в одном или более графических оконных элементах, отображаемых на экране. В некоторых вариантах осуществления, выбор пиктограммы может приводить к иерархическому навигационному процессу, благодаря чему выбор пиктограммы приводит к экрану или открывает другое графическое окно, которое включает в себя одно или более дополнительных пиктограмм или других элементов GUI. [0077] An information input / output unit 105, implemented as a touchscreen display for user interaction. Display receives signal from system interconnection unit 104, for example, via an HDMI cable and displays this signal. By means of a touch screen, the display sends a signal to the system interaction unit 104, which is a computer, data on the coordinates of the user's touch to the display. As further shown, display 105 can be configured to generate various images that can be viewed by a user. For example, during operation of a kiosk to purchase goods, display 105 may display a graphical user interface ("GUI") that allows a user to interact with an operating system and / or an application running on the kiosk. The GUI can include various layers, windows, screens, templates, or other graphical elements that can be displayed all over, or a portion, of a display device. For example, in the illustrated embodiment, the operating system GUI may include various graphical icons, each of which may correspond to different applications that may open or execute upon detection of a user's selection (eg, via keyboard or touch input). Thumbnails can be displayed in a dock or in one or more graphical window elements displayed on the screen. In some embodiments, selecting an icon may result in a hierarchical navigation process whereby selecting an icon leads to a screen or opens another graphics window that includes one or more additional icons or other GUI elements.
[0078] Блок взаимодействия систем 104, представляющий из себя вычислительное устройство, содержащее набор модулей, которые могут быть как программными, так и аппаратными, которые раскрыты ниже. [0078] System Interconnection Unit 104, which is a computing device containing a set of modules, which can be either software or hardware, which are disclosed below.
[0079] В примерном варианте реализации система содержит следующие модули: [0079] In an exemplary implementation, the system comprises the following modules:
• модуль для распознавания образов в последовательности кадров и подсчета товара, который купил пользователь; • модуль для выполнения взаимодействия между компонентами киоска; • a module for pattern recognition in a sequence of frames and counting the goods that the user has bought; • a module for performing interaction between kiosk components;
• кассовый модуль для выполнения расчетов с пользователем; • cash module for performing settlements with the user;
• операционная система; • operating system;
• база данных; • database;
• веб-сервер. • web server.
[0080] Взаимодействие вышеуказанных модулей и компонент осуществляется следующим образом: [0080] The interaction of the above modules and components is carried out as follows:
[0081] Пользователь физически приближается к киоску или любому другому вендинговому автомату на достаточное расстояние для начала взаимодействия, например, один метр. [0081] The user physically approaches the kiosk or any other vending machine a sufficient distance to initiate interaction, for example, one meter.
[0082] Затем пользователь разблокирует киоск посредством своего мобильного приложения 200 или прикладыванием пластиковой карты к считывателю пластиковых карт 108. Считыватель пластиковых карт 108 отправляет сигнал на блок взаимодействия систем 104 киоска на модуль по взаимодействию между объектами киоска. Данный модуль отправляет сигнал на удаленный сервер 109 для проверки пластиковой карты и определения клиента по ней. [0082] The user then unlocks the kiosk through their mobile application 200 or by touching a plastic card to the plastic card reader 108. The plastic card reader 108 sends a signal to the kiosk system interaction unit 104 to the kiosk object interaction module. This module sends a signal to the remote server 109 to check the plastic card and identify the client on it.
[0083] При успешном определении клиента дверца киоска разблокируется, а при неуспешном определении выводят ошибку, например, на дисплей киоска и просят повторить предыдущий шаг на дисплее киоска или в мобильном приложении пользователя. [0083] If the client is successfully identified, the kiosk door is unlocked, and if the determination is unsuccessful, an error is displayed, for example, on the kiosk display and asked to repeat the previous step on the kiosk display or in the user's mobile application.
[0084] Пользователь открывает дверь киоска рукой за ручку двери киоска. [0085] При открытии двери сигнал от замка двери 107 отправляется на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска. [0084] The user opens the kiosk door with his hand on the kiosk door handle. [0085] When the door is opened, the signal from the door lock 107 is sent to the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
[0086] Пользователь закрывает дверцу киоска, дверь блокируется. [0086] The user closes the kiosk door, the door is locked.
[0087] Замок двери 107 подает сигнал на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска. [0087] The door lock 107 signals the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
[0088] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по сети Интернет для получения списка действий, которые необходимо совершить при получении сигнала. [0089] Далее данный модуль для взаимодействия между объектами киоска подает сигнал на кассовый модуль для выполнения расчетов с пользователем за извлеченный/ые объекг/ы. [0088] A module for interaction between kiosk objects sends a signal to a server over the Internet to obtain a list of actions to be taken upon receiving a signal. [0089] Further, this module for interaction between the objects of the kiosk sends a signal to the cash register module to perform settlements with the user for the extracted object / s.
[0090] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по результатам операции расчета с клиентом за извлеченный/ые объект/ы. [0090] The module for interaction between kiosk objects sends a signal to the server based on the results of the settlement with the client for the retrieved object / s.
[0091] Модуль для взаимодействия между объектами киоска отправляет сигнал на устройство отображения киоска о результате операции. [0091] The module for interaction between the objects of the kiosk sends a signal to the display device of the kiosk about the result of the operation.
[0092] Все компоненты данного технического решения могут быть соединены шиной. В некоторых примерах информационная шина включает в себя одну или более информационных шин. Информационная шина может быть реализована в соответствии с протоколом шины локальной сети контроллеров (CAN), который определен Международной организацией стандартизации (ISO) 11898-1, протоколом шины передачи данных мультимедийных систем (MOST), протоколом гибкой информационной CAN- шины (CAN-FD) (ISO 11898-7) и/или протоколом шины К-line (ISO 9141 и ISO 14230-1) и/или протоколом Ethernet™-ujHHbi IEEE 802.3 (2002 г. и далее), и т.д. [0093] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны. [0092] All components of this technical solution can be connected by a bus. In some examples, a data bus includes one or more data buses. The data bus can be implemented in accordance with the Controller Area Network (CAN) bus protocol, which is defined by the International Organization for Standardization (ISO) 11898-1, the Multimedia System Data Bus (MOST) protocol, the flexible CAN data bus protocol (CAN-FD) (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethernet ™ protocol -ujHHbi IEEE 802.3 (2002 onwards), etc. [0093] The elements of the proposed technical solution are in a functional relationship, and their joint use leads to the creation of a new and unique technical solution. Thus, all blocks are functionally linked.
[0094] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задаётся посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже. [0094] All blocks used in the system can be implemented with electronic components used to create digital integrated circuits, which is obvious to a person skilled in the art. Not limited to, microcircuits, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming, can be used. For programming, programmers and debugging environments are used that allow you to set the desired structure of a digital device in the form of a circuit diagram or a program in special hardware description languages: Verilog, VHDL, AHDL, etc. Alternatives to FPGAs can be programmable logic controllers (PLCs), basic matrix crystals (BMCs), which require a factory production process for programming; ASICs are specialized custom large integrated circuits (LSI), which are significantly more expensive for small-scale and single-piece production.
[0095] Обычно, сама микросхема ПЛИС состоит из следующих компонент: [0095] Typically, the FPGA itself consists of the following components:
• конфигурируемых логических блоков, реализующих требуемую логическую функцию; • configurable logic blocks that implement the required logic function;
• программируемых электронных связей между конфигурируемыми логическими блоками; • programmable electronic links between configurable logic blocks;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой. • programmable input / output blocks providing connection of the external output of the microcircuit with the internal logic.
[0096] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств. [0096] Blocks can also be implemented using read-only memory devices.
[0097] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники. [0097] Thus, the implementation of all the blocks used is achieved by standard means based on the classical principles of the implementation of the foundations of computing.
[0098] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован. [0099] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт- диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними. [0098] As will be understood by one of ordinary skill in the art, aspects of the present technical solution may be implemented as a system, method, or computer program product. Accordingly, various aspects of the present technical solution may be implemented solely as hardware, as software (including application software, and so on), or as an embodiment combining software and hardware aspects, which may generally be referred to as a "module" , "System" or "architecture". In addition, aspects of the present technical solution may take the form of a computer program product implemented on one or more computer-readable media having computer-readable program code that is implemented thereon. [0099] Any combination of one or more computer readable media can also be used. Computer readable media storage can be, without limitation, electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of a computer-readable storage medium include: an electrical connection using one or more wires, a portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any combination of the above. As used herein, a computer-readable storage medium can be any flexible storage medium that can contain or store a program for use by the system itself, device, apparatus, or in connection therewith.
[00100] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного. [00100] Program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or combination of the above.
[00101] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, C++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью И нтернет-п ровайдеров). [00101] Computer program code for performing operations for the steps of the present technical solution may be written in any programming language or combinations of programming languages, including an object-oriented programming language such as Java, Smalltalk, C ++, and so on, and conventional procedural programming languages such as programming language "C" or similar programming languages. The program code can be executed on the user's computer in whole, in part, or as a separate software package, partially on the user's computer and partially on the remote computer, or completely on the remote computer. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN), wide area network (WAN) or connection to an external computer (for example, via the Internet using Internet providers).
[00102] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы. [00102] Aspects of the present technical solution have been described in detail with reference to block diagrams, schematic diagrams, and / or diagrams of methods, devices (systems), and computer program products in accordance with embodiments of the present technical solution. It will be appreciated that each block from the block diagram and / or diagrams, as well as combinations of blocks from the block diagram and / or diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other data processing device to create a procedure, such that instructions executed by a computer processor or other programmable data processing device create means to implement the functions / actions specified in block or blocks of flowchart and / or diagram.
[00103] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы. [00103] These computer program instructions may also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or devices that function in a particular way, such that the instructions stored on the computer-readable medium create a device including instructions that perform the functions / actions specified in the block diagram and / or diagram.

Claims

ФОРМУЛА FORMULA
1. Способ распознавания закодированных данных посредством сканирования изображений, выполняемый по меньшей мере одним вычислительным устройством и включающий следующие шаги: 1. A method for recognizing encoded data by scanning images, performed by at least one computing device, and includes the following steps:
• получают общий список кодов товаров, которые были загружены в киоск; • receive a general list of product codes that have been uploaded to the kiosk;
• получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре после того, как пользователь изъял из киоска по меньшей мере один товар; • receive from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded after the user has withdrawn from the kiosk at least one product;
• передают полученный на предыдущем шаге по меньшей мере один кадр с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара; • at least one frame with the product code obtained at the previous step is transmitted to the computer vision algorithm, which identifies at least one product code on the frame by obtaining the coordinates of this product code;
• преобразовывают посредством вычислительного устройства по меньшей мере один идентифицированный посредством алгоритма компьютерного зрения код, расположенный на товаре, в текстовый вид; • converting by means of a computing device at least one code, identified by means of a computer vision algorithm, located on the product, into a text form;
• определяют коды товаров, которые пользователь изъял из киоска посредством сравнения общего списка кодов товаров, полученного на первом шаге до открытия пользователем двери и по меньшей мере одного преобразованного ранее кода, причем удаляют данные коды из общего списка кодов товаров; • determining the codes of goods that the user has withdrawn from the kiosk by comparing the general list of codes of goods obtained in the first step before the user opened the door and at least one previously converted code, and these codes are removed from the general list of codes of goods;
• направляют на сервер команду на списание денежных средств на основании определенных кодов товаров, которые изъял пользователь. • send a command to the server to write off funds based on certain product codes that the user has withdrawn.
2. Способ по п. 1, характеризующийся тем, что код на товаре является линейным кодом или двумерным кодом. 2. A method according to claim 1, characterized in that the code on the product is a linear code or a two-dimensional code.
3. Способ по п. 1, характеризующийся тем, что код наклеен на разрушаемую наклейку. 3. A method according to claim 1, characterized in that the code is glued to a destructible sticker.
4. Способ по п. 1, характеризующийся тем, что алгоритм компьютерного возраста реализован в библиотеке OpenCV или libdwt, или SimpleCV.4. The method according to claim 1, characterized in that the computer age algorithm is implemented in the OpenCV library or libdwt, or SimpleCV.
5. Способ по п. 1 , характеризующийся тем, что определяют координаты кода товара на изображении в пикселях. 5. The method according to claim 1, characterized in that the coordinates of the product code on the image are determined in pixels.
6. Система распознавания закодированных данных посредством сканирования изображений, содержащая: 6. A system for recognizing encoded data by scanning images, comprising:
• по меньшей мере один блок запирания двери, выполненный с возможностью направления на по меньшей мере один сервер сигнала для разблокировки замка двери; • at least one door locking unit configured to send a signal to at least one server to unlock the door lock;
• по меньшей мере один блок ввода информации, выполненный с возможностью получения от пользователя команд; • at least one block of information input, configured to receive commands from the user;
• по меньшей мере один блок взаимодействия систем, выполненный с возможностью передачи сигналов между блоками системы; • at least one system interaction unit, configured to transmit signals between system units;
• по меньшей мере одно вычислительное устройство, выполненное с возможностью: о получения общего списка кодов товаров, которые были загружены в киоск; о получения из по меньшей мере одной камеры по меньшей мере одного кадра, содержащего по меньшей мере один товар из киоска, причем каждый товар содержит по меньшей мере один код, в котором закодирована информация о товаре после того, как пользователь изъял из киоска по меньшей мере один товар; о передачи полученного на предыдущем шаге по меньшей мере одного кадра с кодом товара алгоритму компьютерного зрения, который идентифицирует на кадре по меньшей мере один код товара посредством получения координат данного кода товара; о преобразования по меньшей мере один идентифицированного посредством алгоритма компьютерного зрения кода, расположенного на товаре, в текстовый вид; о определения кодов товаров, которые пользователь изъял из киоска посредством сравнения общего списка кодов товаров, полученного на первом шаге до открытия пользователем двери и по меньшей мере одного преобразованного ранее кода, причем удаляют данные коды из общего списка кодов товаров; о направления на сервер команды на списание денежных средств на основании определенных кодов товаров, которые изъял пользователь. • at least one computing device capable of: obtaining a general list of codes of goods that have been loaded into the kiosk; about receiving from at least one camera at least one frame containing at least one product from the kiosk, and each product contains at least one code in which information about the product is encoded after the user has withdrawn from the kiosk at least one product; about transferring at least one frame with the product code obtained at the previous step to the computer vision algorithm, which identifies at least one product code on the frame by obtaining the coordinates of this product code; o transforming at least one identified by the algorithm computer vision of the code located on the product in text form; on determining the codes of goods that the user has withdrawn from the kiosk by comparing the general list of codes of goods obtained in the first step before the user opens the door and at least one previously converted code, and removing these codes from the general list of codes of goods; about sending a command to the server to write off funds based on certain product codes that the user has withdrawn.
7. Система по п. 6, характеризующаяся тем, что блок запирания двери является электромагнитным замком, который состоит из металлической пластины и магнитного датчика, и/или электромеханическим замком. 7. The system according to claim 6, characterized in that the door locking unit is an electromagnetic lock, which consists of a metal plate and a magnetic sensor, and / or an electromechanical lock.
8. Система по п. 6, характеризующаяся тем, что дополнительно содержит блок считывания температурной информации, представляющий собой набор температурных датчиков для формирования данных о температурных показаниях внутри киоска. 8. The system according to claim 6, characterized in that it further comprises a temperature information reading unit, which is a set of temperature sensors for generating data on temperature readings inside the kiosk.
9. Система по п. 6, характеризующаяся тем, что блоком ввода информации является бесконтактный считыватель карт. 9. The system according to claim 6, characterized in that the information input unit is a contactless card reader.
10. Система по п. 6, характеризующаяся тем, что блок взаимодействия систем представляет собой Raspberry Pi. 10. The system according to claim 6, characterized in that the system interaction unit is a Raspberry Pi.
PCT/RU2020/000083 2020-02-19 2020-02-19 Method and system for identifying encoded data by means of image scanning WO2021167482A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020107564A RU2726227C1 (en) 2020-02-19 2020-02-19 Method and system for recognizing encoded data by scanning images
RU2020107564 2020-02-19

Publications (1)

Publication Number Publication Date
WO2021167482A1 true WO2021167482A1 (en) 2021-08-26

Family

ID=71510547

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2020/000083 WO2021167482A1 (en) 2020-02-19 2020-02-19 Method and system for identifying encoded data by means of image scanning

Country Status (2)

Country Link
RU (1) RU2726227C1 (en)
WO (1) WO2021167482A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11961373B2 (en) 2020-07-01 2024-04-16 Pepsico, Inc. Method and system of touch-free vending

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023009036A1 (en) * 2021-07-26 2023-02-02 Тимур Юсупович ЗАКИРОВ Mobile self-service system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107393152A (en) * 2017-08-14 2017-11-24 杭州纳戒科技有限公司 Self-help vending machine and automatic selling system
CN206757798U (en) * 2017-01-24 2017-12-15 广州市蚁道互联网有限公司 Automatic vending machine
WO2018161363A1 (en) * 2017-03-07 2018-09-13 深圳市楼通宝实业有限公司 Self-service vending method and system
CN108831019A (en) * 2018-05-25 2018-11-16 杭州纳戒科技有限公司 Self-service supermarket's vending system and automatic selling system
CN109360331A (en) * 2017-12-29 2019-02-19 广州Tcl智能家居科技有限公司 A kind of automatic vending method and automatic vending machine based on article identification

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104871197A (en) * 2012-12-21 2015-08-26 Sca卫生用品公司 System and method for assisting in locating and choosing desired item in storage location
KR20150140359A (en) * 2013-04-08 2015-12-15 로니 헤이 Computer-controlled, unattended, automated checkout store outlet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN206757798U (en) * 2017-01-24 2017-12-15 广州市蚁道互联网有限公司 Automatic vending machine
WO2018161363A1 (en) * 2017-03-07 2018-09-13 深圳市楼通宝实业有限公司 Self-service vending method and system
CN107393152A (en) * 2017-08-14 2017-11-24 杭州纳戒科技有限公司 Self-help vending machine and automatic selling system
CN109360331A (en) * 2017-12-29 2019-02-19 广州Tcl智能家居科技有限公司 A kind of automatic vending method and automatic vending machine based on article identification
CN108831019A (en) * 2018-05-25 2018-11-16 杭州纳戒科技有限公司 Self-service supermarket's vending system and automatic selling system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11961373B2 (en) 2020-07-01 2024-04-16 Pepsico, Inc. Method and system of touch-free vending

Also Published As

Publication number Publication date
RU2726227C1 (en) 2020-07-10

Similar Documents

Publication Publication Date Title
CN107464116B (en) Order settlement method and system
EP3767598A1 (en) Vending device and method
US20090026270A1 (en) Secure checkout system
US8794524B2 (en) Smart scanning system
US20090212102A1 (en) Secure self-checkout
US20100234986A1 (en) Method and systems for collecting inventory and marketing data, providing data and video services
US20090272801A1 (en) Deterring checkout fraud
US20080296392A1 (en) Portable device-based shopping checkout
WO2019087413A1 (en) Purchased product payment assistance system
CN116071308A (en) Evaluating image values
RU2726227C1 (en) Method and system for recognizing encoded data by scanning images
CN109034778A (en) Automatic selling method, vending machine and computer readable storage medium
CN102063616A (en) Automatic identification system and method for commodities based on image feature matching
WO2021221810A1 (en) Product identification systems and methods
RU2714901C1 (en) Method and system for pattern recognition from a video stream
CN105654618A (en) Automatic vender and automatic vending system
CN207074475U (en) A kind of Vending Machine
CN110197560A (en) Automatic selling system based on Weighing module
US9406059B1 (en) Checkout imaging mechanism
CN208673378U (en) Unmanned shop payment system based on recognition of face
US9047742B2 (en) Visual security for point of sale terminals
CN111833518A (en) Intelligent sales counter based on dynamic image recognition technology
CN110390515A (en) It is a kind of based on RFID and brush face payment i.e. take be the method and system walked
WO2020040948A1 (en) Systems and methods for actuating an electronic lock upon payment for delivery services
US20130168447A1 (en) Means for confirming timing information relating to transactions through the optical scanning of variable patterns displayed on a graphical display device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20919855

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20919855

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 01.02.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20919855

Country of ref document: EP

Kind code of ref document: A1