WO2021118390A1 - Method and system for identifying images from video stream - Google Patents
Method and system for identifying images from video stream Download PDFInfo
- Publication number
- WO2021118390A1 WO2021118390A1 PCT/RU2019/000932 RU2019000932W WO2021118390A1 WO 2021118390 A1 WO2021118390 A1 WO 2021118390A1 RU 2019000932 W RU2019000932 W RU 2019000932W WO 2021118390 A1 WO2021118390 A1 WO 2021118390A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- product
- frame
- kiosk
- virtual
- item
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/18—Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
Definitions
- This technical solution generally relates to the field of computing, and in particular to methods and systems for pattern recognition 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.
- Prior art patent application CN 110231837 A kind of multiple target directive property intelligent monitor system and its method emulating human eye vision”, (Applicant: Kunming University of Science and Technology, published: 2019-09 -13).
- the present invention relates to a type of intelligent surveillance systems with multiple target properties and to a method for imitating human eye vision related to the technical field of video monitoring.
- the solution contains a field of view image capturing module, a processing module and a drive module.
- the image capturing module includes a panoramic camera and a small field-of-view camera, the processing module includes an NVIDIA Jetson TX2 component, and the drive module includes a controlled rotation motor.
- the present invention has low algorithm complexity, high stability, fast response time, and advantages towards multiple targets.
- this solution is not adapted to solve problems with image recognition from a video stream, when it is necessary to track the trajectory of a product taken by a user from a kiosk.
- the technical problem or technical problem solved in this technical solution is the implementation of the method and system for recognizing images from a video stream, as well as a device for their implementation.
- the technical result achieved when solving the above technical problem is to reduce transaction costs by simplifying the mechanism for determining the entity retrieved by the customer, subsequent interaction with the payment system for mutual settlements between the company and the user, and increasing the rate of feedback of the kiosk to the user.
- the specified technical result is achieved by implementing a method for recognizing images from a video stream, which is performed by at least one computing device and in which at least one frame is received from at least one camera containing at least one product from a kiosk, each the frame is separated by a virtual cashier line; at least one frame with the product obtained in the previous step is transmitted to the input of the trained artificial neural network, which identifies at least one product on the frame by obtaining the coordinates of the product and the class to which this product belongs; determining by means of a computing device whether the center of the goods is behind the virtual checkout line or outside, and if at least one item appears in the checkout area and crosses the line, this item is added to the virtual cart; sending the contents of the virtual basket, formed in the previous step, to the server for performing settlements with the user for at least one retrieved item. [0010] In some embodiments of the technical solution, each n-th frame with the product obtained at the previous step is transmitted to the input of the trained artificial neural network.
- the item is tracked using a correlation tracker based on the frame difference.
- the code of this product is sent to the server via the Internet via HTTPS, and the order of actions is received from the server using the entity code, which is laid down when recognizing this product.
- a trained neural artificial network recognizes an expiration date on a product.
- the trained neural artificial network recognizes the place of the first identification of the product and / or the frame of the last identification, and / or the direction of movement of the product, and / or the absolute coordinates of the product.
- the technical result is achieved by implementing a system for recognizing images from a video stream, which contains a vending kiosk, in the body of which there are structurally installed: at least one camera installed on the kiosk, configured to obtain at least one frame containing at least one product from a kiosk, and each frame is separated by a virtual checkout line; at least one computing device containing a trained artificial neural network and configured to receive at least one frame with a product at the input of a trained artificial neural network, which identifies at least one product on the frame by obtaining the coordinates of the product and the class to which it belongs this product; determining whether the center of the item is behind the virtual checkout line or outside, and if at least one item appears in the checkout area and crosses the line, this item is added to the virtual cart; at least one door locking unit, configured to send to at least one server a signal to unlock the door lock; at least one information input unit configured to receive commands from the user; at least one system interaction unit 5 configured to transmit signals between system units.
- the door locking unit is an electromagnetic lock, which consists of a metal plate and a magnetic sensor, and / or an electromechanical lock.
- the computing device is an NVIDIA Jetson or GPU computing device.
- the system further comprises a temperature readout unit 15, 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 interaction unit 20 is a Raspberry Pi.
- FIG. 1 shows an example of the implementation of the architecture of a system for recognizing images from a video stream.
- FIG. 2 shows an example of realizing product recognition using a video camera and forming a virtual basket zo
- FIG. 3 shows an example of a kiosk implementation, which implements a system for recognizing images from a video stream.
- FIG. 4 shows an example of the implementation of product recognition using a video camera and the formation of a virtual basket, where the product is tracked.
- 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.
- 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.
- Video analytics is a technology that uses computer vision methods to automatically obtain various data based on the analysis of a sequence of images received from video cameras in real time or from archive records.
- vending machine 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, attractions, 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 delivery of goods, which can only contain means for storing goods and a mechanism for their issuance, controlled by a controller, which is connected through a telecommunication network with a server via a modem and payment converter - a device that is required, if the machine has blocks for accepting coins or bills, 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.
- a sequence of actions refers to a set of programming language instructions chained together to call simple operations that result in an atomic operation (eg, buying, returning, removing an item from a kiosk, returning an item to a kiosk, etc.).
- At least one frame from the video stream is received, which is transmitted to the input of an artificial neural network (hereinafter ANN).
- ANN artificial neural network
- the ANN identifies the goods on the frame and returns the coordinates of the goods (for example, in pixels) and the class to which this product belongs. By analyzing the sequence of changes in the coordinates of objects, the algorithm concludes which product was taken from the refrigerator.
- the class is a product name or a product brand, such as snickers, mars, caesar salad, and so on.
- the ANN recognizes the expiration date of the item. A label is attached to the product, which allows the INS to recognize the expiration date.
- an ANN is used, a system installed on a computing device that contains a set of all images of goods that are sold in a kiosk.
- Parameters such as the place of the first identification of the object, the frame of the last identification, the direction of movement of the object, the absolute coordinates of the object, and the like can be analyzed.
- the place of the first identification of the object is determined as follows. The camera looks at the user who is going to buy groceries, the buyer puts his hand into the fridge of the kiosk, but the camera still does not see the product. When the product enters the field of vision of the camera, the ANN finds the product, which is the moment of the first identification of the product.
- a video stream from a camera or a set of cameras can be processed on an embedded modular NVIDIA TM Jetson TM supercomputer, with every nth frame being processed by an ANN to reduce the computational load on the system.
- an ANN of the Yolo architecture Convolutional Artificial Neural Network
- Such ANNs provide a fairly high accuracy and speed of detecting objects in images.
- the machine learning libraries TensorFlow, Keras, Darknet, Deepstream, etc. can be used, but not limited to.
- Each module of the system, both software and hardware can work on any modern computer with a graphics processor from Nvidia or on mobile platforms Jetson TM TX2, Jetson Nano TM, etc.
- 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.
- 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.
- an image sensor that uses an array of Bayesian color filters can provide information regarding the intensity of light received by the camera at green, red, and blue wavelengths, so that each pixel in the image registers only one of the 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.
- Cameras in some embodiments may be mounted on top of the kiosk, built into the kiosk itself, mounted at the bottom of the kiosk, and so on, but not limited to.
- the implementation of the camera can be installed not on the kiosk itself, but above the kiosk or an assembly for the correct recognition of goods with the field of view of the camera or cameras.
- processing means the ANN's prediction of the position of the product and the type of product in at least one frame. In order for the ANN to predict the position and type of goods on the frame, it must be pre-trained, which will be described below.
- the information processing method consists in continuous analysis of the video stream from a set of cameras installed inside or outside the kiosk. At least one camera must be installed on top of the kiosk so that the camera can see the entire shopping area. Additionally, it is necessary for the camera to slightly capture the shelf in order to see how the user picks up the goods.
- Image processing can be understood as various stages of image processing, for example, operations for detecting / correcting defective pixels, lens shading correction, 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.
- the Jetson TM modular supercomputer By analyzing the coordinates of the item and the type of item on frames from a sequence of frames (for example, a video stream), the Jetson TM modular supercomputer generates a virtual shopping cart.
- the video stream is split into chunks.
- a fragment can be a sequence of frames, a single frame, or a part of a frame.
- the video stream is divided into fragments in such a way that each fragment corresponds to one object or event observed by the camera and of interest for recognition. It is possible that several products are present in one fragment if they appear simultaneously (for example, the user immediately took milk and bread). It is advisable to limit the size of a fragment to reduce the transmission time of the highest priority fragments over communication channels with limited bandwidth and more efficient use of video storage.
- Video processing can be: a) embedded in a video transmitter (network camera or network video server); b) be on the video receiver (on the server); c) distributed between the transmitter and the video receiver.
- the object recognition method can be implemented in the form of software modules and integrated with such components of a video surveillance system as a network camera, network video server, network video recorder (NVR), video management system (VMS), and online video surveillance system.
- these software modules can be run on workstations and dedicated servers, in a data processing center (DPC) or hosted by a cloud provider.
- DPC data processing center
- Fragments of the video stream can also be transmitted between system components or to third-party servers or data storage in the form of files, for example, in popular containers such as TS, M2TS, MKV, OGV, MP4, AVI, etc.
- the code of this entity is sent to the server via the Internet via HTTPS, the order of actions is received from the server using the entity code (for example, the product is removed from the kiosk, payment), which is set when this entities, then sequentially begin to perform the resulting order of actions to achieve the set goal.
- entity code for example, the product is removed from the kiosk, payment
- An example of a procedure would be to take a product out of a kiosk and pay.
- the final goal of the entire chain of actions is to receive the product from the kiosk by the user after paying for it.
- each frame from the video stream is separated by a virtual ticket line, as shown in FIG. 2, for example, crossing the Uz frame from below, without limitation.
- a virtual ticket line as shown in FIG. 2, for example, crossing the Uz frame from below, without limitation.
- a new object for example, “milk” product
- the line is a polygonal line and is formed empirically based on the characteristics of the kiosk (eg, the size of the entire kiosk and / or the size of the refrigerator only, and / or view areas of cameras for recognition, etc.). If the goods appeared outside the checkout and crossed the line, in this case the item is removed from the virtual basket.
- FIG. 2 on the left shows the name of the types of goods and their quantity. In a specific embodiment in FIG. 2, the product has not yet crossed the checkout line, therefore, everywhere near the names there are zeros in quantity.
- a virtual shopping cart is an array / list of objects that are located in a kiosk and that a user wishes to purchase, and goods that the user took out or returned to the refrigerator are added / removed to this array.
- the virtual basket is changed when the product crosses the virtual checkout line.
- the virtual cart array is transmitted over HTTP to block 104.
- UDP, RS-232, etc. data transmission protocols may also be used, but are not limited to. Ethernet, Wi-Fi, Bluetooh, Zig-Bee, LoRA, etc. can be used as the transmission medium, but not limited to.
- the ANN processes every n-th frame, and on the remaining frames track the goods using a correlation tracker based on the frame difference. Jetson analyzes the difference between the two frames and determines the coordinates where the object has moved.
- the line dividing the cashier line is defined by two points t1 (0; 100) and t2 (1280; 100).
- the coordinates of the center of the product were (740; 30), which means that the product is in the refrigerator area.
- the user moves the product, for example, takes the product out of the kiosk refrigerator and picks it up.
- the trained artificial neural network determined the new coordinates of the object (540; 200), i.e. center of item crossed the checkout line.
- the item is added to the cart. Based on tracking the coordinates of the position on the frame of the goods, its trajectory is formed outside the kiosk, which can be an array of data that is saved to the database. [0063] Which frame will be selected is preselected empirically by analyzing the processing speed and the availability of computing power.
- the camera captures 30 frames per second, every 4th frame is sent to the ANN, and the intermediate frames with goods are tracked using a correlation tracker.
- the correlation tracker works based on the difference between adjacent frames. For example, on frame 325, the ANN has found the required object. Then this object is transferred to the library, i.e. the frame (image) itself and the coordinates of the object in pixels.
- this frame is sent to the library, and the command is to update the coordinates of the object. Since the frame has not changed much, the library uses algorithms known from the prior art to find where the object has moved and returns the new coordinates of the object.
- unit of interaction of systems 104 through the router 103 sends a request to start the purchase to the computing device 100 (for example, a single board computer Jatson).
- the interaction of the block of interaction of systems 104 104 and the computing device 100] occurs using GET and POST requests.
- a signal request is sent when a customer opens a door (or, in some embodiments, another event) to computing device 100, after which computing device 100 turns on cameras.
- any ARM, x86, x64 computer of architecture capable of running Linux can be used.
- Computing device 100 turns on the camera, video recording of the purchase and item counting begins.
- the computing device 100 Upon receipt of the purchase completion signal, the computing device 100 sends the contents of the virtual cart to the systems interaction unit 104, as well as via HTTP using a POST request. Cameras are activated only when the user opens the kiosk door. A purchase completion signal is sent when the user closes the kiosk door.
- the systems interaction unit 104 receives a signal from the door-in-lock position sensor, and the systems interaction unit 104 signals the completion of the purchase.
- Each camera will be connected to a separate computing device 100.
- data on the virtual basket from all computing devices 100 will be summarized and sent to the system interaction unit 104.
- Training I NS is carried out by recording test videos, where the user takes the goods from the kiosk, and then breaks the video data into frames (a sequence of frames). Then the coordinates and the class of the goods are marked on the frames. They add noise, distortion, etc. to process the resulting images: stretching, compression, rotation, etc. Then this set of frames is sent to the ANN for training.
- the ANN learning process is well known from the prior art and is obvious to any specialist. After training, the trained ANN is loaded into the kiosk, after which the kiosk can determine the coordinates of the goods and the type of goods.
- the hardware part of the system consists of a set of components, described in detail below, which are functionally all interconnected
- Cameras are connected to a single board computer 100.
- a Jetson 100 single board computer or in other words, a computing device based on camera frames determines the product that the user has bought.
- a kiosk can be presented as a complex of components, or as one specific component. Possible system components may include, but are not limited to: counter, refrigerator, vending machine, coffee machine, barcode scanner, temperature sensor, card reader, monitor, etc.
- the devices are built into the kiosk by connecting them to a second independent computer responsible for interaction between the kiosk components.
- 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 door from being forced open.
- electromagnetic locks of magnetic locking or magnetic-mechanical locking can be used.
- An information 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 external control and monitoring ports that are used to connect to the central control unit via interface communication lines of 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 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 interaction with a user.
- the display receives a signal from the System Interconnect 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 application running on the kiosk.
- GUI graphical user interface
- a 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 be opened or executed 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:
- a signal is sent to the computing device 100.
- the cameras begin to record the user's purchase.
- computing device 100 sends a list of items (in the form of a generated virtual cart) that the user has purchased to the module for interaction between the kiosk components.
- 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 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 module for interaction between the objects of the kiosk sends a signal to the computational module for pattern recognition.
- the pattern recognition module sends a signal to the camera set to start video recording.
- the user retrieves the objects of interest from the kiosk. [0096] The user closes the kiosk door, the door is locked. [0097] The door lock 107 signals the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
- the module for interaction between the objects of the kiosk sends a signal to the computational module for pattern recognition.
- the pattern recognition module signals the cameras to complete the recording, then receives a sequence of frames from cameras installed in or outside the kiosk.
- the pattern recognition module starts processing video from cameras, determines the product that the user has bought.
- this module Upon completion of video processing, this module sends a list of goods that the user has bought to the block for interaction between 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 when receiving a signal.
- 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 operation 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 information CAN-bus (CAN-FD) (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethernet TM -mnHbi IEEE 802.3 protocol (2002 onwards), etc.
- CAN Controller Area Network
- MOST Multimedia System Data Bus
- CAN-FD flexible information CAN-bus
- K-line bus protocol ISO 9141 and ISO 14230-1
- Ethernet TM -mnHbi IEEE 802.3 protocol 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 can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming. 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.
- FPGAs programmable logic controllers
- BMK basic matrix crystals
- ASICs specialized custom large integrated circuits (LSIs), 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. [00111] 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.
- 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.
- the computer-readable storage medium can be, without limitation, an 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.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- CD-ROM compact disk read-only memory
- 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.
- the 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 a 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. for example, the "C" programming language 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), a wide area network (WAN), or a connection to an external computer (for example, via the Internet using Internet service providers).
- LAN local area network
- WAN wide area network
- Internet service providers for example, via the Internet using Internet service 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.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Signal Processing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Description
СПОСОБ И СИСТЕМА РАСПОЗНАВАНИЯ ОБРАЗОВ ИЗ ВИДЕОПОТОКА METHOD AND SYSTEM FOR RECOGNIZING IMAGES FROM VIDEO STREAM
ОБЛАСТЬ ТЕХНИКИ FIELD OF TECHNOLOGY
[001] Данное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам для распознавания образов в вендинговых аппаратах и киосках самообслуживания. [001] This technical solution generally relates to the field of computing, and in particular to methods and systems for pattern recognition 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] Recognition of images in a video image, for example, in the same vending machines, requires significant computing power of the equipment used. The existing solutions in the prior art do not provide efficient and fast pattern recognition equipment with low computing power.
[004] Из уровня техники известна заявка на патент CN 110231837 (А) “А kind of multiple target directive property intelligent monitor system and its method emulating human eye vision”, (Заявитель: Kunming University of Science and Technology, опубликовано: 2019-09-13). Настоящее изобретение относится к виду интеллектуальных систем наблюдения с множеством целевых свойств и к способу имитации зрения человеческого глаза, относящимся к технической области видеомониторинга. Решение содержит модуль захвата изображения поля обзора, модуль обработки и модуль привода. Модуль захвата изображения включает в себя панорамную камеру и небольшую камеру поля обзора, модуль обработки включает в себя компонент NVIDIA Jetson ТХ2, модуль привода включает в себя управляемый двигатель поворота. Настоящее изобретение имеет низкую сложность алгоритма, высокую стабильность, быстрое время отклика и преимущества в направлении нескольких целей. [005] Однако данное решение не приспособлено для решения проблем с распознаванием образов из видеопотока, когда необходимо отслеживать траекторию движения товара, взятого пользователем из киоска. [004] Prior art patent application CN 110231837 (A) “A kind of multiple target directive property intelligent monitor system and its method emulating human eye vision”, (Applicant: Kunming University of Science and Technology, published: 2019-09 -13). The present invention relates to a type of intelligent surveillance systems with multiple target properties and to a method for imitating human eye vision related to the technical field of video monitoring. The solution contains a field of view image capturing module, a processing module and a drive module. The image capturing module includes a panoramic camera and a small field-of-view camera, the processing module includes an NVIDIA Jetson TX2 component, and the drive module includes a controlled rotation motor. The present invention has low algorithm complexity, high stability, fast response time, and advantages towards multiple targets. [005] However, this solution is not adapted to solve problems with image recognition from a video stream, when it is necessary to track the trajectory of a product taken by a user from a kiosk.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ ESSENCE OF THE TECHNICAL SOLUTION
[006] Данное техническое решение направлено на устранение недостатков, известных из уровня техники. [006] This technical solution is aimed at eliminating the disadvantages known from the prior art.
[007] Технической задачей или технической проблемой, решаемой в данном техническом решении является осуществление способа и системы распознавания образов из видеопотока, а также устройство для их осуществления. [007] The technical problem or technical problem solved in this technical solution is the implementation of the method and system for recognizing images from a video stream, as well as a device for their implementation.
[008] Техническим результатом, достигаемым при решении вышеуказанной технической задачи, является снижение операционных издержек посредством упрощения механизма определения сущности, извлеченной покупателем, последующего взаимодействия с платежной системой для взаиморасчетов между компанией и пользователем и увеличение скорости обратной связи киоска пользователю. [008] The technical result achieved when solving the above technical problem is to reduce transaction costs by simplifying the mechanism for determining the entity retrieved by the customer, subsequent interaction with the payment system for mutual settlements between the company and the user, and increasing the rate of feedback of the kiosk to the user.
[009] Указанный технический результат достигается благодаря осуществлению способа распознавания образов из видеопотока, который выполняется по меньшей мере одним вычислительным устройством и в котором получают из по меньшей мере одной камеры по меньшей мере один кадр, содержащий по меньшей мере один товар из киоска, причем каждый кадр разделяет виртуальная линия кассы; передают полученный на предыдущем шаге по меньшей мере один кадр с товаром на вход обученной искусственной нейронной сети, которая идентифицирует на кадре по меньшей мере один товар посредством получения координат товара и класса, к которому относится данный товар; определяют посредством вычислительного устройства находится ли центр товара за виртуальной линией кассы или снаружи, причем если по меньшей мере один товар появился в зоне кассы и пересек линию, данный товар добавляется в виртуальную корзину; направляют содержимое виртуальной корзины, сформированное на предыдущем шаге на сервер для выполнения расчетов с пользователем за по меньшей мере один извлеченный товар. [0010] В некоторых вариантах реализации технического решения передают полученный на предыдущем шаге каждый n-й кадр с товаром на вход обученной искусственной нейронной сети. [009] The specified technical result is achieved by implementing a method for recognizing images from a video stream, which is performed by at least one computing device and in which at least one frame is received from at least one camera containing at least one product from a kiosk, each the frame is separated by a virtual cashier line; at least one frame with the product obtained in the previous step is transmitted to the input of the trained artificial neural network, which identifies at least one product on the frame by obtaining the coordinates of the product and the class to which this product belongs; determining by means of a computing device whether the center of the goods is behind the virtual checkout line or outside, and if at least one item appears in the checkout area and crosses the line, this item is added to the virtual cart; sending the contents of the virtual basket, formed in the previous step, to the server for performing settlements with the user for at least one retrieved item. [0010] In some embodiments of the technical solution, each n-th frame with the product obtained at the previous step is transmitted to the input of the trained artificial neural network.
[0011] В некоторых вариантах реализации технического решения на остальных кадрах кроме n-го отслеживают за товаром с помощью корреляционного трекера на основе разницы кадров. [0011] In some embodiments of the technical solution, on frames other than n-th, the item is tracked using a correlation tracker based on the frame difference.
[0012] В некоторых вариантах реализации технического решения, при распознавании товара из видеопотока, отправляют код этого товара на сервер через сеть Интернет по HTTPS, и по коду сущности с сервера получают порядок действий, который заложен при распознавании данного товара. [0012] In some embodiments of the technical solution, when recognizing a product from a video stream, the code of this product is sent to the server via the Internet via HTTPS, and the order of actions is received from the server using the entity code, which is laid down when recognizing this product.
[0013] В некоторых вариантах реализации технического решения обученная нейронная искусственная сеть распознает на товаре срок годности. [0013] In some embodiments of the technical solution, a trained neural artificial network recognizes an expiration date on a product.
[0014] В некоторых вариантах реализации технического решения обученная нейронная искусственная сеть распознает место первой идентификации товара и/или кадр последней идентификации, и/или направление движения товара, и/или абсолютные координаты товара. [0015] Также технический результат достигается благодаря осуществлению системы распознавания образов из видеопотока, которая содержит вендинговый киоск, в корпусе которого конструктивно установлены: по меньшей мере одна камера, установленная на киоске, выполненная с возможностью получения по меньшей мере одного кадра, содержащего по меньшей мере один товар из киоска, причем каждый кадр разделяет виртуальная линия кассы; по меньшей мере одно вычислительное устройство, содержащее обученную нейронную искусственную сеть и выполненное с возможностью получения по меньшей мере одного кадра с товаром на вход обученной искусственной нейронной сети, которая идентифицирует на кадре по меньшей мере один товар посредством получения координат товара и класса, к которому относится данный товар; определения находится ли центр товара за виртуальной линией кассы или снаружи, причем если по меньшей мере один товар появился в зоне кассы и пересек линию, данный товар добавляется в виртуальную корзину; по меньшей мере один блок запирания двери, выполненный с возможностью направления на по меньшей мере один сервер сигнала для разблокировки замка двери; по меньшей мере один блок ввода информации, выполненный с возможностью получения от пользователя команд; по меньшей мере один блок взаимодействия систем, 5 выполненный с возможностью передачи сигналов между блоками системы. [0016] В некоторых вариантах реализации технического решения блок запирания двери является электромагнитным замком, который состоит из металлической пластины и магнитного датчика, и/или электромеханическим замком. ю [0017] В некоторых вариантах реализации технического решения вычислительным устройством является NVIDIA Jetson или вычислительное устройство с GPU. [0014] In some embodiments of the technical solution, the trained neural artificial network recognizes the place of the first identification of the product and / or the frame of the last identification, and / or the direction of movement of the product, and / or the absolute coordinates of the product. [0015] Also, the technical result is achieved by implementing a system for recognizing images from a video stream, which contains a vending kiosk, in the body of which there are structurally installed: at least one camera installed on the kiosk, configured to obtain at least one frame containing at least one product from a kiosk, and each frame is separated by a virtual checkout line; at least one computing device containing a trained artificial neural network and configured to receive at least one frame with a product at the input of a trained artificial neural network, which identifies at least one product on the frame by obtaining the coordinates of the product and the class to which it belongs this product; determining whether the center of the item is behind the virtual checkout line or outside, and if at least one item appears in the checkout area and crosses the line, this item is added to the virtual cart; at least one door locking unit, configured to send to at least one server a signal to unlock the door lock; at least one information input unit configured to receive commands from the user; at least one system interaction unit 5 configured to transmit signals between system units. [0016] 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. [0017] In some embodiments, the computing device is an NVIDIA Jetson or GPU computing device.
[0018] В некоторых вариантах реализации технического решения система дополнительно содержит блок считывания температурной 15 информации, представляющий собой набор температурных датчиков для формирования данных о температурных показаниях внутри киоска. [0018] In some embodiments of the technical solution, the system further comprises a temperature readout unit 15, which is a set of temperature sensors for generating data on temperature readings inside the kiosk.
[0019] В некоторых вариантах реализации технического решения блоком ввода информации является бесконтактный считыватель карт. [0020] В некоторых вариантах реализации технического решения блок 20 взаимодействия систем представляет собой Raspberry Pi. [0019] In some embodiments of the technical solution, the information input unit is a contactless card reader. [0020] In some embodiments of the technical solution, the system interaction unit 20 is a Raspberry Pi.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ BRIEF DESCRIPTION OF DRAWINGS
[0021] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и 25 прилагаемых чертежей, на которых: [0021] The features and advantages of the present technical solution will become apparent from the following detailed description and the 25 accompanying drawings, in which:
[0022] На Фиг. 1 показан пример реализации архитектуры системы распознавания образов из видеопотока. [0022] FIG. 1 shows an example of the implementation of the architecture of a system for recognizing images from a video stream.
[0023] На Фиг. 2 показан пример реализации распознавания продукта с помощью видеокамеры и формирование виртуальной корзины зо [0024] На Фиг. 3 показан пример реализации киоска, в котором реализована система распознавания образов из видеопотока. [0023] FIG. 2 shows an example of realizing product recognition using a video camera and forming a virtual basket zo [0024] FIG. 3 shows an example of a kiosk implementation, which implements a system for recognizing images from a video stream.
[0025] На Фиг. 4 показан пример реализации распознавания продукта с помощью видеокамеры и формирование виртуальной корзины, где происходит отслеживание товара. ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ [0025] FIG. 4 shows an example of the implementation of product recognition using a video camera and the formation of a virtual basket, where the product is tracked. DETAILED DESCRIPTION OF THE INVENTION
[0026] Ниже будут подробно рассмотрены термины и их определения, используемые в описании данного технического решения. [0026] Below will be discussed in detail the terms and their definitions used in the description of this technical solution.
[0027] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты. [0027] 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.
[0028] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы. [0028] 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.
[0029] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд. [0029] A program is a sequence of instructions for execution by a computer control device or command processing device.
[0030] Сервер (англ server) - электронное устройство, выполняющее сервисные функции по запросу клиента, предоставляя ему доступ к определенным ресурсам. В целях настоящего описания рассматривается сервер, имеющий постоянное подключение к объединенной сети, которая может передавать данные на клиентское устройство. Сервер может обрабатывать эти данные и передавать результат обработки обратно на клиентское устройство. [0030] 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.
[0031] Модуль обмена данных — это модуль сервера, который может представлять приемник входящих сигналов, и преобразователь их для последующей обработки, и транслятор для дальнейшей отправки. [0032] Вычислительный модуль — это модуль сервера, который представляет собой микропроцессор, специально приспособленный для сложной обработки сигналов. [0031] 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. [0032] Computing module is a server module that is a microprocessor specially adapted for complex signal processing.
[0033] Модуль хранения базы данных — это модуль сервера, в котором хранятся данные, который может быть выполнен как накопитель на жестком магнитном диске или как флэш-память (flash memory), которая относится к полупроводникам электрически перепрограммируемой памяти. [0033] 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.
[0034] Электронный замок — это электромеханический замок с системой дистанционного управления (ДУ) и блоком питания. Электромеханический замок состоит из трех частей: замка, ригеля и кронштейнов крепления. [0034] 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.
[0035] Видеоаналитика — технология, использующая методы компьютерного зрения для автоматизированного получения различных данных на основании анализа последовательности изображений, поступающих с видеокамер в режиме реального времени или из архивных записей. [0035] Video analytics is a technology that uses computer vision methods to automatically obtain various data based on the analysis of a sequence of images received from video cameras in real time or from archive records.
[0036] В данном техническом решении используется понятие “вендинговый аппарат”, “киоск самообслуживания”, “киоск”, однако любому специалисту в данном уровне техники очевидно, что может использоваться любое вендинговое оборудование, например, торговые автоматы для продажи напитков, автоматы по продаже еды, торговые автоматы для продажи непродовольственных товаров, развлекательные автоматы- аттракционы и т.п. [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, attractions, etc.
[0037] Предлагаемое устройство может быть использовано для работы с любыми промышленно выпускаемыми торговыми автоматами, в том числе ранее установленными. При этом для функционирования предлагаемой системы несущественным является наличие в автомате таких узлов, как панель выбора товара, дисплей, купюроприемник, монетоприемник, устройство выдачи сдачи, устройство для чтения банковских карт, чековый принтер. По сути, торговый автомат или киоск в предлагаемом решении, представляет собой автоматический пункт выдачи товара, который может содержать только средства хранения товаров и механизм их выдачи, управляемый контроллером, который связан посредством телекоммуникационной сети с сервером через модем и конвертер платежей - устройство, необходимое при наличии в автомате блоков приема монет или купюр, для подтверждения платежа и разрешения выдачи товара. [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 delivery of goods, which can only contain means for storing goods and a mechanism for their issuance, controlled by a controller, which is connected through a telecommunication network with a server via a modem and payment converter - a device that is required, if the machine has blocks for accepting coins or bills, 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] Данное техническое решение работает следующим образом. [0040] Изъявив желание купить тот или иной товар из конкретного киоска, пользователь открывает (или устанавливает) на мобильном устройстве соответствующее мобильное приложение или сразу открывает непосредственно дверь киоска, если он не пользуется мобильным приложением. [0039] This technical solution works as follows. [0040] Having expressed a desire to buy a particular product from a particular kiosk, the user opens (or installs) the corresponding mobile application on the mobile device or immediately opens the door of the kiosk directly if he does not use the mobile application.
[0041] После того, как пользователь достал товар, данное техническое решение распознает перемещение товара на видео с камер, и таким образом подсчитывает количество товара, который купил пользователь. [0042] Под последовательностью действий понимается набор инструкций языка программирования, объединенных в цепочку вызовов простых операций, которые приводят к выполнению атомарной операции (например, такой как покупка, возврат, изъятие предмета из киоска, возврат предмета в киоск и т.п.). [0041] After the user has taken out the goods, this technical solution recognizes the movement of the goods on the video from the cameras, and thus counts the amount of the goods that the user bought. [0042] A sequence of actions refers to a set of programming language instructions chained together to call simple operations that result in an atomic operation (eg, buying, returning, removing an item from a kiosk, returning an item to a kiosk, etc.).
[0043] В некоторых вариантах реализации получают по меньшей мере один кадр с видеопотока, который передается на вход искусственной нейронной сети (далее ИНС). ИНС идентифицирует на кадре товары и возвращает координаты товара (например, в пикселях) и класс, к которому относится данный товар. Анализируя последовательность изменений координат объектов алгоритм делает вывод какой товар взяли из холодильника. В некоторых вариантах реализации классом является название товара или марка товара, например, такие как “сникерс”, “марс”, “салат цезарь” и т.д. В некоторых вариантах реализации ИНС распознает срок годности товара. На товар наклеена метка, которая позволяет ИНС распознавать срок годности. При распознавании товара используется ИНС, установленная на вычислительном устройстве системы, которая содержит набор всех образов товаров, которые реализовываются в киоске. [0043] In some embodiments, at least one frame from the video stream is received, which is transmitted to the input of an artificial neural network (hereinafter ANN). The ANN identifies the goods on the frame and returns the coordinates of the goods (for example, in pixels) and the class to which this product belongs. By analyzing the sequence of changes in the coordinates of objects, the algorithm concludes which product was taken from the refrigerator. In some implementations, the class is a product name or a product brand, such as snickers, mars, caesar salad, and so on. In some implementations, the ANN recognizes the expiration date of the item. A label is attached to the product, which allows the INS to recognize the expiration date. When recognizing goods, an ANN is used, a system installed on a computing device that contains a set of all images of goods that are sold in a kiosk.
[0044] Анализироваться могут такие параметры как место первой идентификации объекта, кадр последней идентификации, направление движения объекта, абсолютные координаты объекта и т.п. Место первой идентификации объекта определяется следующим образом. Камера смотрит на пользователя, который собирается купить продукты, покупатель засовывает руку в холодильник киоска, но камера еще не видит товар. Когда товар попадает в поле зрение камеры, ИНС находит товар, что является моментом первой идентификации товара. [0044] Parameters such as the place of the first identification of the object, the frame of the last identification, the direction of movement of the object, the absolute coordinates of the object, and the like can be analyzed. The place of the first identification of the object is determined as follows. The camera looks at the user who is going to buy groceries, the buyer puts his hand into the fridge of the kiosk, but the camera still does not see the product. When the product enters the field of vision of the camera, the ANN finds the product, which is the moment of the first identification of the product.
[0045] Видеопоток с камеры или набора камер может обрабатываться на встраиваемом модульном суперкомпьютере NVIDIA™ Jetson™, причем каждый n-ый кадр обрабатывается посредством ИНС для снижения вычислительной нагрузки на систему. В конкретном варианте реализации может использоваться ИНС архитектуры Yolo (сверточная искусственная нейронная сеть). Такие ИНС обеспечивают довольно высокую точность и скорость детектирования объектов на изображениях. В некоторых вариантах реализации могут использоваться библиотеки для машинного обучения TensorFlow, Keras, Darknet, Deepstream и т.п., не ограничиваясь. Каждый модуль системы, как программный, так и аппаратный, может работать на любом современном компьютере с графическим процессором от Nvidia или на мобильных платформах Jetson™ ТХ2, Jetson Nano™ и т.п. [0046] Камера (-ы) может(-ут) быть предоставлена(-ы) в виде цифровой камеры, сконфигурированной для получения неподвижных изображений и движущихся изображений (например, видео). Камера может включать в себя объектив и один или более датчиков изображения, сконфигурированных для захвата и преобразования света в электрические сигналы. Исключительно в порядке примера, датчик изображения может включать в себя датчик изображения на основе КМОП (например, датчик с активными пикселями (APS) на основе КМОП) или датчик на основе ПЗС (прибор с зарядовой связью). В общем случае, датчик изображения в камере включает в себя интегральную схему, имеющую матрицу пикселей, в которой каждый пиксель включает в себя фотодетектор, улавливающий свет. Специалистам в данной области техники очевидно, что фотодетекторы в пикселях формирования изображения, в общем случае, регистрируют интенсивность света, улавливаемого через линзы камеры. Однако фотодетекторы, сами по себе, в общем случае, не способны регистрировать длину волны захваченного света и, таким образом, не способны определять информацию цвета. [0045] A video stream from a camera or a set of cameras can be processed on an embedded modular NVIDIA ™ Jetson ™ supercomputer, with every nth frame being processed by an ANN to reduce the computational load on the system. In a specific implementation, an ANN of the Yolo architecture (Convolutional Artificial Neural Network) can be used. Such ANNs provide a fairly high accuracy and speed of detecting objects in images. In some implementations, the machine learning libraries TensorFlow, Keras, Darknet, Deepstream, etc. can be used, but not limited to. Each module of the system, both software and hardware, can work on any modern computer with a graphics processor from Nvidia or on mobile platforms Jetson ™ TX2, Jetson Nano ™, etc. [0046] 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.
[0047] Соответственно, датчик изображения может дополнительно включать в себя матрицу цветовых фильтров (CFA), которая может перекрывать или располагаться поверх пиксельной матрицы датчика изображения для захвата информации цвета. Матрица цветовых фильтров может включать в себя матрицу малых цветовых фильтров, каждый из которых может перекрывать соответствующий пиксель датчика изображения и фильтровать захваченный свет по длине волны. Таким образом, при совместном использовании, матрица цветовых фильтров и фотодетекторы могут обеспечивать информацию длины волны и интенсивности в отношении света, улавливаемого посредством камеры , которая может представлять захваченное изображение. [0047] 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.
[0048] В одном варианте осуществления, матрица цветовых фильтров может включать в себя матрицу байесовских цветовых фильтров, которая обеспечивает шаблон фильтра, который на 50% состоит из зеленых элементов, на 25% из красных элементов и на 25% из синих элементов. Таким образом, датчик изображения, который использует матрицу байесовских цветовых фильтров, может обеспечивать информацию, касающуюся интенсивности света, принятого камерой на длинах волны зеленого, красного и синего цветов, благодаря чему, каждый пиксель изображения регистрирует только один из трех цветов (RGB). Эта информация, которая может именоваться "первичными данными изображения" или данными в "первичной области", может затем обрабатываться с использованием одного или более методов демозаики для преобразования первичных данных изображения в полноцветное изображение, в общем случае, путем интерполяции набора значений красного, зеленого и синего для каждого пикселя. [0048] 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. 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 green, red, and blue wavelengths, so that each pixel in the image registers only one of the 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.
[0049] Камеры в некоторых вариантах реализации могут быть установлены на киоске сверху, встроены в сам киоск, установлены внизу киоска и так далее, не ограничиваясь. В альтернативных вариантах реализации камера может быть установлена не на самом киоске, а над киоском или сборку для осуществления корректного распознавания товаров с зоной обзора камеры или камер. Под обработкой в данном конкретном примере реализации понимается предсказание ИНС положения товара и типа товара на по меньшей мере одном кадре. Для того, чтобы ИНС могла предсказывать положение и тип товара на кадре, ее необходимо предварительно обучить, что будет описано ниже. Способ обработки информации заключается в постоянном анализе видеопотока с набора камер, установленных внутри или вне киоска. По меньшей мере одна камера должна быть установлена сверху киоска так, чтобы камера видела всю область покупки. Дополнительно необходимо, чтобы камера немного захватывала полку, чтобы видеть как пользователь берет товар. [0049] Cameras in some embodiments may be mounted on top of the kiosk, built into the kiosk itself, mounted at the bottom of the kiosk, and so on, but not limited to. Alternatively the implementation of the camera can be installed not on the kiosk itself, but above the kiosk or an assembly for the correct recognition of goods with the field of view of the camera or cameras. In this particular implementation example, processing means the ANN's prediction of the position of the product and the type of product in at least one frame. In order for the ANN to predict the position and type of goods on the frame, it must be pre-trained, which will be described below. The information processing method consists in continuous analysis of the video stream from a set of cameras installed inside or outside the kiosk. At least one camera must be installed on top of the kiosk so that the camera can see the entire shopping area. Additionally, it is necessary for the camera to slightly capture the shelf in order to see how the user picks up the goods.
[0050] Под обработкой изображения могут пониматься различные этапы обработки изображений, например, операции обнаружения/коррекции дефектных пикселей, коррекции затенения объектива, демозаики и повышения резкости изображения, шумопонижения, гамма-коррекции, улучшения изображения, преобразования цветового пространства, сжатия изображения, цветовой субдискретизации и масштабирования изображение, и т.д. В некоторых вариантах осуществления может использоваться "конвейер" обработки изображений для осуществления каждого из различных этапов обработки изображений. Данный конвейер может состоять из набора компонент, согласно каждому необходимому этапу, причем компоненты можно реализовать с использованием оборудования (например, процессоров цифрового сигнала или ASIC) или программного обеспечения, или посредством комбинации аппаратных и программных компонентов. [0050] Image processing can be understood as various stages of image processing, for example, operations for detecting / correcting defective pixels, lens shading correction, 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.
[0051] Прежде чем продолжить, следует отметить, что хотя различные варианты осуществления различных методов обработки изображений, рассмотренных ниже, могут использовать байесовскую CFA, описанное здесь изобретение не подлежит ограничению в связи с этим. Действительно, специалистам в данной области техники очевидно, что представленные здесь методы обработки изображений можно применять к любому типу матрицы цветовых фильтров, включающих в себя фильтры RGBW, фильтры CYGM и т.д. [0052] Анализируя координаты товара и тип товара на кадрах из последовательности кадров (например, видеопоток), модульный суперкомпьютер Jetson™ формирует виртуальную корзину с покупками. [0053] В некоторых вариантах реализации видеопоток разделяется на фрагменты. Фрагмент может представлять собой последовательность кадров, отдельный кадр или часть кадра. Разделение видеопотока на фрагменты происходит таким образом, чтобы каждый фрагмент соответствовал одному объекту или событию, наблюдаемых камерой и представляющих интерес для распознавания. Возможно, что в одном фрагменте присутствуют несколько товаров в случае их одновременного появления (например, пользователь сразу взял молоко и хлеб). Целесообразно ограничение размеров фрагмента для снижения времени передачи наиболее приоритетных фрагментов по каналам связи с ограниченной пропускной способностью и более эффективного использования хранилища видео. [0051] 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. [0052] By analyzing the coordinates of the item and the type of item on frames from a sequence of frames (for example, a video stream), the Jetson ™ modular supercomputer generates a virtual shopping cart. [0053] In some embodiments, the video stream is split into chunks. A fragment can be a sequence of frames, a single frame, or a part of a frame. The video stream is divided into fragments in such a way that each fragment corresponds to one object or event observed by the camera and of interest for recognition. It is possible that several products are present in one fragment if they appear simultaneously (for example, the user immediately took milk and bread). It is advisable to limit the size of a fragment to reduce the transmission time of the highest priority fragments over communication channels with limited bandwidth and more efficient use of video storage.
[0054] Обработка видеоданных может быть: а) встроена в передатчик видео (сетевую камеру или сетевой видеосервер); б) находиться на приемнике видео (на сервере); в) распределена между передатчиком и приемником видео. [0054] Video processing can be: a) embedded in a video transmitter (network camera or network video server); b) be on the video receiver (on the server); c) distributed between the transmitter and the video receiver.
[0055] Способ распознавания объектов может быть реализован в виде программных модулей и интегрирован с такими компонентами системы видеонаблюдения, как сетевая камера, сетевой видеосервер, сетевой видеорегистратор (NVR), система управления видео (VMS) и система онлайн-видеонаблюдения. Кроме того, данные программные модули могут запускаться на рабочих станциях и выделенных серверах, в центре обработки данных (ЦОД) или на хостинге облачного провайдера. [0055] The object recognition method can be implemented in the form of software modules and integrated with such components of a video surveillance system as a network camera, network video server, network video recorder (NVR), video management system (VMS), and online video surveillance system. In addition, these software modules can be run on workstations and dedicated servers, in a data processing center (DPC) or hosted by a cloud provider.
[0056] Фрагменты видеопотока могут также передаваться между компонентами системы или на сторонние серверы или хранилища данных в виде файлов, например, в популярных контейнерах типа TS, M2TS, MKV, OGV, MP4, AVI и др. [0056] Fragments of the video stream can also be transmitted between system components or to third-party servers or data storage in the form of files, for example, in popular containers such as TS, M2TS, MKV, OGV, MP4, AVI, etc.
[0057] Например, при распознавании сущности из видеопотока, отправляют код этой сущности на сервер через сеть Интернет по HTTPS, по коду сущности с сервера получают порядок действий (например, продукт изъят из киоска, оплата), который заложен при распознавании данной сущности, затем последовательно начинают выполнять полученный порядок действий для достижения поставленной цели. Примером порядка действий может быть изъятие продукта из киоска и оплата. Финальной целью всей цепочки действий является получение пользователем продукта из киоска после его оплаты. [0057] For example, when recognizing an entity from a video stream, the code of this entity is sent to the server via the Internet via HTTPS, the order of actions is received from the server using the entity code (for example, the product is removed from the kiosk, payment), which is set when this entities, then sequentially begin to perform the resulting order of actions to achieve the set goal. An example of a procedure would be to take a product out of a kiosk and pay. The final goal of the entire chain of actions is to receive the product from the kiosk by the user after paying for it.
[0058] В примерном варианте реализации каждый кадр из видеопотока разделяет виртуальная линия кассы, как показано на Фиг. 2, например, пересекающая Уз кадра снизу, не ограничиваясь. Когда пользователь достает товар из киоска и при пересечении товаром этой линии товар добавляется в виртуальную корзину. Если клиент, например, возвращает товар в холодильник киоска, товар удаляется из виртуальной корзины. Оплата происходит после закрытия замка холодильника киоска. В момент закрытия блок взаимодействия систем 104 инициирует оплату через терминал или через сервер, в зависимости от того, чем оплачивает клиент: картой или через мобильное приложение. Алгоритм работает следующим образом: когда ИНС определяет новый объект (например, товар “молоко”), вычислительное устройство определяет находится ли центр объекта за линией кассы или снаружи, и сохраняет данные в базе данных. Для определения центра объекта ИНС "обводит" выбранный пользователем товар прямоугольником или любой другой геометрической фигурой, не ограничиваясь, как показано на Фиг. 4. В некоторых вариантах реализации ИНС формирует четыре цифры: координаты левого верхнего угла (х,у), а также ширину и высоту прямоугольника - (w,h). Таким образом, центром объекта является точка с координатами (х_с; у _с) х_с = x+w/2, у с = y+h/2. На следующем кадре проверяется, где находится этот объект, не пересек ли товар линию кассы. Если пересек, товар добавляется в виртуальную корзину или убирается, в зависимости от первоначального положения объекта. [0058] In an exemplary embodiment, each frame from the video stream is separated by a virtual ticket line, as shown in FIG. 2, for example, crossing the Uz frame from below, without limitation. When a user takes an item from a kiosk and when a product crosses this line, the item is added to the virtual cart. If a customer, for example, returns an item to the fridge of a kiosk, the item is removed from the virtual cart. Payment takes place after the lock of the kiosk refrigerator is closed. At the time of closing, the system interaction unit 104 initiates payment through the terminal or through the server, depending on what the client pays with: by card or through a mobile application. The algorithm works as follows: when the ANN detects a new object (for example, “milk” product), the computing device determines whether the center of the object is behind the checkout line or outside, and stores the data in the database. To determine the center of the object, the ANN "traces" the product selected by the user with a rectangle or any other geometric figure, not limited to, as shown in FIG. 4. In some embodiments, the ANN generates four digits: the coordinates of the upper left corner (x, y), and the width and height of the rectangle - (w, h). Thus, the center of the object is a point with coordinates (x_c; y_c) x_c = x + w / 2, yc = y + h / 2. On the next frame, it is checked where this object is located, whether the goods have crossed the checkout line. If crossed, the product is added to the virtual cart or removed, depending on the original position of the object.
[0059] Если товар появился в зоне кассы и пересек линию, в таком случае товар добавляется в виртуальную корзину. В некоторых вариантах реализации линия является ломаной и формируется эмпирически на основании характеристик киоска (например, размера всего киоска и/или размера только холодильника, и/или зон обзора камер для распознавания и т.д.). Если товар появился вне кассы и пересек линию, в данном случае товар убирается из виртуальной корзины. На Фиг. 2 слева показано название типов товаров и их количество. В конкретном варианте реализации на Фиг. 2 товар еще не пересек линию кассы, поэтому везде около названий стоят нули по количеству. [0059] If the item appears at the checkout area and crosses the line, then the item is added to the virtual cart. In some implementations, the line is a polygonal line and is formed empirically based on the characteristics of the kiosk (eg, the size of the entire kiosk and / or the size of the refrigerator only, and / or view areas of cameras for recognition, etc.). If the goods appeared outside the checkout and crossed the line, in this case the item is removed from the virtual basket. FIG. 2 on the left shows the name of the types of goods and their quantity. In a specific embodiment in FIG. 2, the product has not yet crossed the checkout line, therefore, everywhere near the names there are zeros in quantity.
[0060] Специалист в данной области техники поймет, что виртуальная корзина может быть реализована любым количеством способов в рамках объема настоящего изобретения. [0060] A person skilled in the art will understand that a virtual shopping cart can be implemented in any number of ways within the scope of the present invention.
[0061] В общем виде виртуальная корзина - это массив/список объектов, которые располагаются в киоске и которые желает приобрести пользователь, причем в этот массив добавляются/удаляются товары, которые пользователь достал или вернул в холодильник. Изменение виртуальной корзины происходит при пересечении товаром виртуальной линии кассы. После завершения покупки массив виртуальной корзины передается по HTTP в блок 104. В некоторых вариантах реализации могут использоваться также протоколы передачи данных UDP, RS-232 и т.д., не ограничиваясь. В качестве среды передачи данных может использоваться Ethernet, Wi-Fi, Bluetooh, Zig-Bee, LoRA и т.д., не ограничиваясь. [0061] In general, a virtual shopping cart is an array / list of objects that are located in a kiosk and that a user wishes to purchase, and goods that the user took out or returned to the refrigerator are added / removed to this array. The virtual basket is changed when the product crosses the virtual checkout line. Upon completion of the purchase, the virtual cart array is transmitted over HTTP to block 104. In some implementations, UDP, RS-232, etc. data transmission protocols may also be used, but are not limited to. Ethernet, Wi-Fi, Bluetooh, Zig-Bee, LoRA, etc. can be used as the transmission medium, but not limited to.
[0062] Для ускорения расчетов, ИНС обрабатывает каждый n-ый кадр, а на остальных кадрах отслеживают за товаром с помощью корреляционного трекера на основе разницы кадров. Jetson анализирует разницу между двумя кадрами и определяет координаты, куда сдвинулся объект. Например, линия, разделяющая линию кассы определена двумя точками t1 (0;100) и t2 (1280; 100). В момент первой идентификации товара координаты центра товара были (740; 30), значит товар находится в зоне холодильника. Пользователь перемещает товар, например, достает товар из холодильника киоска и берет в руки. На следующем кадре обученная искусственная нейронная сеть определила новые координаты объекта (540; 200), т.е. центр товара пересек линию кассы. Товар добавляется в корзину. На основании отслеживания координат положения на кадре товара формируется его траектория движения вне киоска, которая может представлять собой массив данных, который сохраняется в базу данных. [0063] Какой будет выбираться кадр выбирается заранее эмпирическим способом с помощью анализа скорости обработки и наличия вычислительной мощности. В конкретном варианте реализации камера снимает 30 кадров в секунду, на ИНС отправляется каждый 4-ый кадр, в промежуточные кадры с товарами отслеживаются с помощью корреляционного трекера. Корреляционный трекер работает на основании разности соседних кадров. Например, на 325 кадре ИНС нашла необходимый объект. Затем данный объект передается в библиотеку, т.е. сам кадр (изображение) и координаты объекта в пикселях. Когда получают 326-й кадр, отправляют в библиотеку этот кадр, и команду - обновить координаты объекта. Так как кадр не сильно изменился, библиотека с помощью известных из уровня техники алгоритмов находит куда переместился объект и возвращает новые координаты объекта. [0062] To speed up the calculations, the ANN processes every n-th frame, and on the remaining frames track the goods using a correlation tracker based on the frame difference. Jetson analyzes the difference between the two frames and determines the coordinates where the object has moved. For example, the line dividing the cashier line is defined by two points t1 (0; 100) and t2 (1280; 100). At the time of the first identification of the product, the coordinates of the center of the product were (740; 30), which means that the product is in the refrigerator area. The user moves the product, for example, takes the product out of the kiosk refrigerator and picks it up. On the next frame, the trained artificial neural network determined the new coordinates of the object (540; 200), i.e. center of item crossed the checkout line. The item is added to the cart. Based on tracking the coordinates of the position on the frame of the goods, its trajectory is formed outside the kiosk, which can be an array of data that is saved to the database. [0063] Which frame will be selected is preselected empirically by analyzing the processing speed and the availability of computing power. In a specific embodiment, the camera captures 30 frames per second, every 4th frame is sent to the ANN, and the intermediate frames with goods are tracked using a correlation tracker. The correlation tracker works based on the difference between adjacent frames. For example, on frame 325, the ANN has found the required object. Then this object is transferred to the library, i.e. the frame (image) itself and the coordinates of the object in pixels. When the 326th frame is received, this frame is sent to the library, and the command is to update the coordinates of the object. Since the frame has not changed much, the library uses algorithms known from the prior art to find where the object has moved and returns the new coordinates of the object.
[0064] Как показано на Фиг. 1 блок взаимодействия систем 104 (например, в конкретном варианте реализации Raspberry Pi) через роутер 103 отправляет запрос о начала покупки на вычислительное устройство 100 (например, одноплатный компьютер Jatson). Взаимодействие блока взаимодействия систем 104 104 и вычислительное устройство 100] происходит с помощью GET и POST запросов. Запрос, представляющий собой сигнал, направляется, когда клиент открывает дверь (или в некоторых вариантах по другому событию) на вычислительное устройство 100, после чего вычислительное устройство 100 включает камеры. В некоторых вариантах реализации помимо Raspberry Pi может использоваться любой компьютер ARM, х86, х64 архитектуры, способный работать под ОС Linux. [0064] As shown in FIG. 1 unit of interaction of systems 104 (for example, in a particular implementation of the Raspberry Pi) through the router 103 sends a request to start the purchase to the computing device 100 (for example, a single board computer Jatson). The interaction of the block of interaction of systems 104 104 and the computing device 100] occurs using GET and POST requests. A signal request is sent when a customer opens a door (or, in some embodiments, another event) to computing device 100, after which computing device 100 turns on cameras. In some implementations, in addition to the Raspberry Pi, any ARM, x86, x64 computer of architecture capable of running Linux can be used.
[0065] Вычислительное устройство 100 включает камеру, начинается видеозапись покупки и подсчет товара. После получения сигнала о завершении покупки вычислительное устройство 100 отправляет содержимое виртуальной корзины на блок взаимодействия систем 104, а также по HTTP с помощью POST запроса. Камеры включаются только при открытии пользователем двери киоска. Сигнал о завершении покупки направляется тогда, когда пользователь закрывает дверь киоска. Блок взаимодействия систем 104 получает сигнал отдатчика положения двери в замке, и блок взаимодействия систем 104 подает сигнал о завершении покупки. [0065] Computing device 100 turns on the camera, video recording of the purchase and item counting begins. Upon receipt of the purchase completion signal, the computing device 100 sends the contents of the virtual cart to the systems interaction unit 104, as well as via HTTP using a POST request. Cameras are activated only when the user opens the kiosk door. A purchase completion signal is sent when the user closes the kiosk door. The systems interaction unit 104 receives a signal from the door-in-lock position sensor, and the systems interaction unit 104 signals the completion of the purchase.
[0066] На киоске может быть установлено несколько камер для покрытия всей зоны покупок. Каждая камера будет подключена к отдельному вычислительному устройству 100. В это случае данные о виртуальной корзине со всех вычислительных устройств 100 будут суммироваться и отправляться на блок взаимодействия систем 104. [0066] Several cameras can be installed on the kiosk to cover the entire shopping area. Each camera will be connected to a separate computing device 100. In this case, data on the virtual basket from all computing devices 100 will be summarized and sent to the system interaction unit 104.
[0067] Обучение И НС осуществляется посредством записи тестовых видео, где пользователь берет товар из киоска, после чего разбивают данные видео на кадры (последовательность кадров). Затем размечают на кадрах координаты и класс товара. Добавляют шумы, искажения и прочее для обработки полученных изображений: растягивание, сжатие, поворот и т.д. Далее отправляют данный набор кадров в ИНС для обучения. Процесс обучения ИНС является общеизвестным из уровня техники и очевиден любому специалисту. После обучения, обученную ИНС загружают в киоск после чего киоск может определять координаты товаров и тип товара. [0068] Аппаратная часть системы состоит из набора компонент, подробно описанных ниже, который функционально между собой все связаны [0067] Training I NS is carried out by recording test videos, where the user takes the goods from the kiosk, and then breaks the video data into frames (a sequence of frames). Then the coordinates and the class of the goods are marked on the frames. They add noise, distortion, etc. to process the resulting images: stretching, compression, rotation, etc. Then this set of frames is sent to the ANN for training. The ANN learning process is well known from the prior art and is obvious to any specialist. After training, the trained ANN is loaded into the kiosk, after which the kiosk can determine the coordinates of the goods and the type of goods. [0068] The hardware part of the system consists of a set of components, described in detail below, which are functionally all interconnected
[0069] Камеры, (например, в конкретном варианте реализации RBG видеокамеры) подключены к одноплатному компьютеру 100. Одноплатный компьютер Jetson 100 и другими словами вычислительное устройство на основе кадров с камеры определяет товар, который пользователь купил. Киоск может быть представлен как комплекс компонентов, так и как один конкретный компонент. Возможные компоненты системы могут включать, не ограничиваясь: прилавок, холодильник, вендинговый аппарат, кофемашина, сканер штрихкодов, датчик температур, считыватель карт, монитор и пр. Устройства встраиваются в киоск путем подключения их ко второму независимому компьютеру, отвечающему за взаимодействие между компонентами киоска. [0069] Cameras, (for example, in a specific RBG implementation of a video camera) are connected to a single board computer 100. A Jetson 100 single board computer, or in other words, a computing device based on camera frames determines the product that the user has bought. A kiosk can be presented as a complex of components, or as one specific component. Possible system components may include, but are not limited to: counter, refrigerator, vending machine, coffee machine, barcode scanner, temperature sensor, card reader, monitor, etc. The devices are built into the kiosk by connecting them to a second independent computer responsible for interaction between the kiosk components.
[0070] Блок запирания двери 107 (или электрическая система блокировки) может представлять собой электромагнитный замок, состоящий из металлической пластины и магнитного датчика, или например электромеханический замок. Данный блок отправляет сигнал 12V на сервер для разблокировки замка. При прекращении подачи сигнала замок блокируется. Принцип работы электромагнитного замка основан на взаимодействии магнита (встроенного в корпус замка) и ответной части (металлическая пластина, прикрепляемая к двери). В отличии от электромеханического замка, в данном случае питание на катушке присутствует постоянно, при отключении питания контакт между магнитом и контактной пластиной размыкается и дверь открывается. Мощность магнита должна быть достаточно большой, чтобы предотвратить возможность открытия двери силовым усилием. В некоторых вариантах реализации могут использоваться электромагнитные замки магнитного запирания или магнитно-механического запирания. [0070] The door locking unit 107 (or 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 door from being forced open. In some embodiments, electromagnetic locks of magnetic locking or magnetic-mechanical locking can be used.
[0071] Блок ввода информации 108, который может представлять собой бесконтактный считыватель карт. Считыватель кредитных карт — это специальное устройство, которое распознает данные с различных видов пластиковых карт посредством следующих способов: [0071] An information 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:
[0072] 1. Магнитная лента на карте; [0072] 1. Magnetic tape on the card;
[0073] 2. Чип встроенный в карту; [0073] 2. Chip embedded in the card;
[0074] 2. Бесконтактный метод оплаты. [0074] 2. Contactless payment method.
[0075] Считыватель кредитных карт при считывании с магнитной ленты или чипа имеет специальный анализирующий слот, через который проводят карточку. Нужная информация сканируется после этого автоматически. [0076] Бесконтактный метод работает по следующему принципу: карточку подносят к модулю на расстояние от 30 до 250 мм. Её идентификатор попадает под генерируемое прибором электромагнитное излучение и сканирует индивидуальный код. Сведения перенаправляются на контроллер, что происходит в течение доли секунды. [0075] 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. [0076] 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.
[0077] Пользователь подносит пластиковую карту к считывателю, и по протоколу EMV происходит взаимодействие карты и считывателя. Блок ввода информации 108 может представлять собой терминал платежно- информационный универсальный, выполненный в виде компьютера и снабженный портами внешнего управления и мониторинга, служащими для присоединения к центральному блоку управления посредством интерфейсных линий связи устройства отображения информации, устройства ввода информации, блока управления, считывающего устройства для пластиковых электронных или магнитных карт, звукового устройства, отличающийся тем, что снабжен USB-портом. [0077] 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 external control and monitoring ports that are used to connect to the central control unit via interface communication lines of 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.
[0078] Блок считывания температурной информации 106, представляющий собой блок N температурных датчиков, где N >= 0. Блок опрашивает датчики температуры с заданной периодичностью и формирует данные о температурных показаниях. Датчик для измерения температуры основан на зависимости электрического сопротивления от температуры. В примерном варианте реализации датчик может быть маломощным температурным датчиком, например, LM20 от компании Texas Instruments™ или Ds18b20 от Dallas Semiconductor™. [0078] The block for reading temperature information 106, which is a block of N temperature sensors, where N> = 0. Block polls temperature sensors at a specified 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 ™.
[0079] Блок сетевого взаимодействия 103, например, реализованный как роутер для соединения всех компонентов посредством сети Ethernet и доступа к Интернету. Роутер снабжен N слотами для sim карт, где N = 2 и М слотами Ethernet, где М >= 2. Дублирование sim карт необходимо для бесперебойной работы киоска. Блок выполняет связующую функцию между киоском и его внутренними компонентами, а также между киоском и сервером. Также на роутере есть брандмауэр для защиты киоска от кибератак. В общем случае, вышеупомянутый блок сетевого взаимодействия 103 может содержать коммуникационный интерфейс мобильной радиосети, такой как, например, модем GPRS (Пакетной Радиосвязи Общего Пользования), модем UMTS (Универсальной Системы Мобильной Связи), модем HSPA (Высокоскоростной Пакетной Передачи Данных) или модем LTE (Стандарта Долгосрочного Развития), в котором вышеупомянутый интерфейс соединяется посредством протокола мобильной связи с базовой станцией для обеспечения связи с сетью Интернет. В этом случае система может содержать роутер, такой как, например, роутер ADSL или оптоволоконный роутер , соединяющий сеть LAN с сетью Интернет и обеспечивающий обмен данными с портативным компьютером, осуществляющим связь через сеть Интернет. [0079] 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.
[0080] Блок взаимодействия систем 104, представляет из себя вычислительное устройство, которое опрашивает блок считывания температурной информации 106 с определенной периодичностью для получения данных о температуре внутри киоска. [0080] 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.
[0081] Блок обработки информации (процессор), который представляют собой компьютер для распознавания образов в видеопотоке. [0081] An information processing unit (processor), which is a computer for pattern recognition in a video stream.
[0082] Блок ввода/вывода информации 105, реализованный как дисплей с тачскрином для взаимодействия с пользователем. Дисплей получает сигнал с блока взаимодействия систем 104, например, по кабелю HDMI и отображает этот сигнал. Посредством тачскрина дисплей отправляет сигнал на блок взаимодействия систем 104, представляющий из себя компьютер, данные о координатах прикосновения пользователя к дисплею. Как дополнительно показано, дисплей 105 может быть сконфигурирован для формирования различных изображений, которые может просматривать пользователь. Например, в ходе эксплуатации киоска для покупки товаров, дисплей 105 может отображать графический пользовательский интерфейс ("GUI"), который позволяет пользователю взаимодействовать с операционной системой и/или приложением, выполняющимся на киоске. GUI может включать в себя различные слои, окна, экраны, шаблоны или другие графические элементы, которые могут отображаться на всем, или участке, устройства отображения. Например, в представленном варианте осуществления, GUI операционной системы может включать в себя различные графические пиктограммы, каждая из которых может соответствовать различным приложениям, которые могут открываться или выполняться по обнаружении выбора пользователя (например, посредством ввода с помощью клавиатуры или сенсорного экрана). Пиктограммы могут отображаться в док-панели или в одном или более графических оконных элементах, отображаемых на экране. В некоторых вариантах осуществления, выбор пиктограммы может приводить к иерархическому навигационному процессу, благодаря чему выбор пиктограммы приводит к экрану или открывает другое графическое окно, которое включает в себя одно или более дополнительных пиктограмм или других элементов GUI. [0082] An information input / output unit 105, implemented as a touchscreen display for interaction with a user. The display receives a signal from the System Interconnect 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 application running on the kiosk. A 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 be opened or executed 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.
[0083] Блок взаимодействия систем 104, представляющий из себя вычислительное устройство, содержащее набор модулей, которые могут быть как программными, так и аппаратными, которые раскрыты ниже. [0083] 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.
[0084] В примерном варианте реализации система содержит следующие модули: [0084] 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.
[0085] Взаимодействие вышеуказанных модулей и компонент осуществляется следующим образом: [0085] The interaction of the above modules and components is carried out as follows:
[0086] При открытии двери киоска пользователем происходит подача сигнала на вычислительное устройство 100. Камеры начинают записывать покупку пользователя. После закрытия двери киоска вычислительное устройство 100 отправляет список товара (в виде сформированной виртуальной корзины), который купил пользователь в модуль для выполнения взаимодействия между компонентами киоска. [0086] When the user opens the kiosk door, a signal is sent to the computing device 100. The cameras begin to record the user's purchase. After the kiosk door is closed, computing device 100 sends a list of items (in the form of a generated virtual cart) that the user has purchased to the module for interaction between the kiosk components.
[0087] Последовательность действий является следующей: [0087] The sequence of actions is as follows:
[0088] Пользователь физически приближается к киоску или любому другому вендинговому автомату на достаточное расстояние для начала взаимодействия, например, один метр. [0088] The user physically approaches the kiosk or any other vending machine a sufficient distance to initiate interaction, for example, one meter.
[0089] Затем пользователь разблокирует киоск посредством своего мобильного приложения 200 или прикладыванием пластиковой карты к считывателю пластиковых карт 108. Считыватель пластиковых карт 108 отправляет сигнал на блок взаимодействия систем 104 киоска на модуль по взаимодействию между объектами киоска. Данный модуль отправляет сигнал на удаленный сервер 109 для проверки пластиковой карты и определения клиента по ней. [0089] The user then unlocks the kiosk through his 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.
[0090] При успешном определении клиента дверца киоска разблокируется, а при неуспешном определении выводят ошибку, например, на дисплей киоска и просят повторить предыдущий шаг на дисплее киоска или в мобильном приложении пользователя. [0090] 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.
[0091] Пользователь открывает дверь киоска рукой за ручку двери киоска. [0091] The user opens the kiosk door with his hand on the kiosk door handle.
[0092] При открытии двери сигнал от замка двери 107 отправляется на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска. [0092] 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.
[0093] Модуль для взаимодействия между объектами киоска отправляет сигнал на вычислительный модуль по распознаванию образов. [0094] Затем модуль по распознаванию образов отправляет сигнал на набор камеры для начала записи видео. [0093] The module for interaction between the objects of the kiosk sends a signal to the computational module for pattern recognition. [0094] Then, the pattern recognition module sends a signal to the camera set to start video recording.
[0095] Пользователь извлекает интересующий/ие его объекты из киоска. [0096] Пользователь закрывает дверцу киоска, дверь блокируется. [0097] Замок двери 107 подает сигнал на блок взаимодействия систем 104 киоска на модуль для взаимодействия между объектами киоска. [0095] The user retrieves the objects of interest from the kiosk. [0096] The user closes the kiosk door, the door is locked. [0097] The door lock 107 signals the kiosk systems interaction unit 104 to the module for interaction between the kiosk objects.
[0098] Модуль для взаимодействия между объектами киоска подает сигнал на вычислительный модуль по распознаванию образов. [0098] The module for interaction between the objects of the kiosk sends a signal to the computational module for pattern recognition.
[0099] Модуль по распознаванию образов подает сигнал на камеры на завершение записи, затем получает последовательность кадров с камер, установленных в или вне киоска. [0099] The pattern recognition module signals the cameras to complete the recording, then receives a sequence of frames from cameras installed in or outside the kiosk.
[00100] Далее модуль по распознаванию образов начинает обработку видео с камер, определяет товар, который купил пользователь. [00100] Next, the pattern recognition module starts processing video from cameras, determines the product that the user has bought.
[00101] По завершении обработки видео данный модуль отправляет список товаров, который купил пользователь на блок по взаимодействию между объектами киоска. [00101] Upon completion of video processing, this module sends a list of goods that the user has bought to the block for interaction between kiosk objects.
[00102] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по сети Интернет для получения списка действий, которые необходимо совершить при получении сигнала. [00102] 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 when receiving a signal.
[00103] Далее данный модуль для взаимодействия между объектами киоска подает сигнал на кассовый модуль для выполнения расчетов с пользователем за извлеченный/ые объект/ы. [00103] Next, 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.
[00104] Модуль для взаимодействия между объектами киоска отправляет сигнал на сервер по результатам операции расчета с клиентом за извлеченный/ые объект/ы. [00104] The module for interaction between kiosk objects sends a signal to the server based on the results of the settlement operation with the client for the retrieved object / s.
[00105] Модуль для взаимодействия между объектами киоска отправляет сигнал на устройство отображения киоска о результате операции. [00105] 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.
[00106] Все компоненты данного технического решения могут быть соединены шиной. В некоторых примерах информационная шина включает в себя одну или более информационных шин. Информационная шина может быть реализована в соответствии с протоколом шины локальной сети контроллеров (CAN), который определен Международной организацией стандартизации (ISO) 11898-1, протоколом шины передачи данных мультимедийных систем (MOST), протоколом гибкой информационной CAN-шины (CAN-FD) (ISO 11898-7) и/или протоколом шины К-line (ISO 9141 и ISO 14230-1) и/или протоколом Ethernet™-mnHbi IEEE 802.3 (2002 г. и далее), и т.д. [00106] 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 information CAN-bus (CAN-FD) (ISO 11898-7) and / or K-line bus protocol (ISO 9141 and ISO 14230-1) and / or Ethernet ™ -mnHbi IEEE 802.3 protocol (2002 onwards), etc.
[00107] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны. [00107] 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.
[00108] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задаётся посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже. [00108] 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 can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming. 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. An alternative to FPGAs can be programmable logic controllers (PLCs), basic matrix crystals ( BMK) requiring a factory production process for programming; ASICs are specialized custom large integrated circuits (LSIs), which are significantly more expensive for small-scale and single-piece production.
[00109] Обычно, сама микросхема ПЛИС состоит из следующих компонент: [00109] 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.
[00110] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств. [00111] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники. [00110] Blocks can also be implemented using read-only memory devices. [00111] 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.
[00112] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован. [00112] As will be understood by one skilled 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.
[00113] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними. [00114] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного. [00115] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, C++ · и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет- провайдеров). [00113] Any combination of one or more computer readable media can also be used. The computer-readable storage medium can be, without limitation, an 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. [00114] The 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 a combination of the above. [00115] 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. for example, the "C" programming language 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), a wide area network (WAN), or a connection to an external computer (for example, via the Internet using Internet service providers).
[00116] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок- схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы. [00117] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы. [00116] Aspects of the present technical solution have been described in detail with reference to block diagrams, circuit 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. [00117] 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
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2019140887A RU2714901C1 (en) | 2019-12-11 | 2019-12-11 | Method and system for pattern recognition from a video stream |
| RU2019140887 | 2019-12-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021118390A1 true WO2021118390A1 (en) | 2021-06-17 |
Family
ID=69625783
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/RU2019/000932 Ceased WO2021118390A1 (en) | 2019-12-11 | 2019-12-11 | Method and system for identifying images from video stream |
Country Status (2)
| Country | Link |
|---|---|
| RU (1) | RU2714901C1 (en) |
| WO (1) | WO2021118390A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116778748A (en) * | 2023-05-18 | 2023-09-19 | 华南师大(清远)科技创新研究院有限公司 | Intelligent early warning method for vehicle turning blind spots based on deep learning |
| US20240232914A1 (en) * | 2023-01-09 | 2024-07-11 | Stephen Verneil Shepherd | Method and Apparatus for Tracking User Behavior Based on Encoded Image Identification, User Location and Purchase Product Information |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2752246C1 (en) * | 2020-06-15 | 2021-07-23 | Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ | Hardware-software complex designed for processing aerial photographs in visible and far infrared band for detection, localisation and classification of buildings outside of localities |
| WO2023009036A1 (en) * | 2021-07-26 | 2023-02-02 | Тимур Юсупович ЗАКИРОВ | Mobile self-service system |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050040230A1 (en) * | 1996-09-05 | 2005-02-24 | Symbol Technologies, Inc | Consumer interactive shopping system |
| US20050097064A1 (en) * | 2003-11-04 | 2005-05-05 | Werden Todd C. | Method and apparatus to determine product weight and calculate price using a camera |
| US20160019514A1 (en) * | 2014-07-15 | 2016-01-21 | Toshiba Global Commerce Solutions Holdings Corporation | System and Method for Self-Checkout Using Product Images |
| US10140820B1 (en) * | 2015-07-25 | 2018-11-27 | Gary M. Zalewski | Devices for tracking retail interactions with goods and association to user accounts for cashier-less transactions |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2703962C1 (en) * | 2018-12-28 | 2019-10-22 | Андрей Андреевич Комаров | Computer vision system for servicing sales of weighted goods |
| CN109726759B (en) * | 2018-12-28 | 2021-08-17 | 北京旷视科技有限公司 | Unmanned vending method, apparatus, system, electronic device and computer readable medium |
-
2019
- 2019-12-11 WO PCT/RU2019/000932 patent/WO2021118390A1/en not_active Ceased
- 2019-12-11 RU RU2019140887A patent/RU2714901C1/en active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050040230A1 (en) * | 1996-09-05 | 2005-02-24 | Symbol Technologies, Inc | Consumer interactive shopping system |
| US20050097064A1 (en) * | 2003-11-04 | 2005-05-05 | Werden Todd C. | Method and apparatus to determine product weight and calculate price using a camera |
| US20160019514A1 (en) * | 2014-07-15 | 2016-01-21 | Toshiba Global Commerce Solutions Holdings Corporation | System and Method for Self-Checkout Using Product Images |
| US10140820B1 (en) * | 2015-07-25 | 2018-11-27 | Gary M. Zalewski | Devices for tracking retail interactions with goods and association to user accounts for cashier-less transactions |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240232914A1 (en) * | 2023-01-09 | 2024-07-11 | Stephen Verneil Shepherd | Method and Apparatus for Tracking User Behavior Based on Encoded Image Identification, User Location and Purchase Product Information |
| CN116778748A (en) * | 2023-05-18 | 2023-09-19 | 华南师大(清远)科技创新研究院有限公司 | Intelligent early warning method for vehicle turning blind spots based on deep learning |
Also Published As
| Publication number | Publication date |
|---|---|
| RU2714901C1 (en) | 2020-02-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2714901C1 (en) | Method and system for pattern recognition from a video stream | |
| EP3767598A1 (en) | Vending device and method | |
| US10192408B2 (en) | Registry verification for a mechanized store using radio frequency tags | |
| CN106710071B (en) | Automatic vending system with radio frequency chip identification | |
| US20100234986A1 (en) | Method and systems for collecting inventory and marketing data, providing data and video services | |
| CN111127174A (en) | Intelligent unmanned supermarket control system | |
| CN109979130A (en) | A kind of commodity automatic identification and clearing sales counter, method and system | |
| CN108269371A (en) | Commodity automatic settlement method, device, self-service cashier | |
| CN203084827U (en) | Intelligent interactive experience self-help vending machine | |
| CN106781014A (en) | Automatic vending machine and its operation method | |
| JP2019086832A (en) | Purchased item settlement support system | |
| KR102410634B1 (en) | Method, device and system for providing unattended sales service based on artificial intelligence | |
| CN109035577A (en) | A kind of self-selecting type intelligent vending machine system and method | |
| WO2018137136A1 (en) | Vending machine and operation method thereof | |
| CN109064636A (en) | A kind of purchase method of the automatic selling cabinet system based on image recognition | |
| CN110164036A (en) | Automatic vending machine and its control method | |
| CN110164029A (en) | Automatic vending machine and its control method | |
| CN108681946A (en) | The unattended shopping system of arm hanging type | |
| CN110164032A (en) | Automatic vending machine and its data processing method and automatically vending system | |
| CN107610377A (en) | A kind of self-service cashier's machine of crawler belt conveying type and unmanned convenience store's operation system | |
| RU2726227C1 (en) | Method and system for recognizing encoded data by scanning images | |
| CN206388273U (en) | A kind of automatic vending system recognized with radio frequency chip | |
| CN110197560A (en) | Automatic selling system based on Weighing module | |
| TWI760521B (en) | Smart store shopping system and purchasing method using thereof | |
| CN111145224A (en) | body tracking system |
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: 19956174 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 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 24/10/2022) |