WO2022254958A1 - 無人店舗の商品を管理する管理システム、管理方法及びプログラム - Google Patents

無人店舗の商品を管理する管理システム、管理方法及びプログラム Download PDF

Info

Publication number
WO2022254958A1
WO2022254958A1 PCT/JP2022/016902 JP2022016902W WO2022254958A1 WO 2022254958 A1 WO2022254958 A1 WO 2022254958A1 JP 2022016902 W JP2022016902 W JP 2022016902W WO 2022254958 A1 WO2022254958 A1 WO 2022254958A1
Authority
WO
WIPO (PCT)
Prior art keywords
product
customer
information
weight
hand
Prior art date
Application number
PCT/JP2022/016902
Other languages
English (en)
French (fr)
Inventor
山本紘暉
宮島洋介
渡辺修司
水島達哉
Original Assignee
クラスメソッド株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クラスメソッド株式会社 filed Critical クラスメソッド株式会社
Publication of WO2022254958A1 publication Critical patent/WO2022254958A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring

Definitions

  • the present invention relates to a management server and management method for managing products in unmanned stores.
  • Patent Document 1 As a background art of this technical field, there is Japanese Patent Laying-Open No. 2020-173815 (Patent Document 1). This publication states, "In the autonomous store tracking system, products 111, 112, 113 and 114 are arranged in the product storage area 102 of the store 101. Person 103 is monitored while standing near merchandise storage area 102 at time 141.” (see abstract). Also, as a related background art, there is International Publication No. 2015/173869 (Patent Document 2). In this publication, ⁇ After detecting a person's hand within a first area set according to the position of the product, the detection unit (52) includes the same area as the first area or the first area. When a human hand is not detected in the second area that is set according to the position and the product is not detected in the product detection area set according to the position, it is detected that the product has been picked up.” (see summary).
  • the present application includes a plurality of means for solving the above problems.
  • a management system for managing products which is means for acquiring weight information transmitted from weight sensors installed on product shelves.
  • FIG. 1 is an example of a configuration diagram of an entire product management system 1.
  • FIG. 3 is an example of a hardware configuration of a management server 101; 1 is an example of a hardware configuration of a mobile terminal 102; 1 is an example of a hardware configuration of a signage terminal 103.
  • FIG. It is an example of the hardware configuration of the camera sensor units 104 and 104a.
  • 3 is an example of a hardware configuration of a weight sensor unit 105;
  • This is an example of a connection configuration for communicating with a microcomputer 710 connected to a weight sensor device by wireless connection.
  • This is an example of a connection configuration for communicating with a microcomputer 710 connected to a weight sensor device 608 via a wired connection.
  • FIG. 2 is a diagram illustrating a functional configuration example of the product management system 1; FIG. It is a figure explaining the functional structural example of a signage display. It is an example of product master information 1300 . It is an example of user master information 1400 . It is an example of segment information 1500 . It is an example of acquisition determination range information 1600 . 17 is an example of location tracking information 1700. FIG. It is an example of shelf event information 1800 . It is an example of estimate management information 1900 . It is an example of weight information 2000 transmitted from the microcomputer 710 to the data aggregation transmitter 630. FIG. It is a structural example of the frame for product shelf installation. It is a figure explaining the structure of a product shelf.
  • FIG. 2400 It is a schematic diagram explaining the acquisition determination range of goods. It is an example of the weight information accumulation processing flow 2400 . It is an example of the location information accumulation processing flow 2500 . It is an example of an overall processing flow 2600 for product purchase at a store. It is an example of the entering-store processing flow 2700. FIG. It is an example of the goods determination processing flow 2800. FIG. It is an example of the customer determination processing flow 2900. FIG. It is an example of the estimated display processing flow 3000 . 31 is an example of a payment processing flow 3100; It is an example of signage display processing flow 3200 . It is an example of a hardware reference model 3300 . It is an example of an order management screen. It is an example of a product purchase screen.
  • This embodiment assumes a product management system 1 that manages products in an unmanned store.
  • a customer enters a store, he or she holds the two-dimensional barcode or non-contact IC chip displayed on the customer's mobile terminal over the store entrance management terminal to record the store entry.
  • the store By picking up the products displayed on the product shelf in the store, the information and number of the products picked up are displayed on the customer's mobile terminal, and the payment for the product is completed by leaving the store.
  • the store may be manned.
  • cameras and product shelves are installed on several product shelf installation frames whose dimensions have been determined in advance, and then several pre-registered system initial settings are automatically executed, whereby unmanned operation can be performed. It is possible to reduce the labor, time, and cost due to the preparation of each store when setting up the store.
  • FIG. 1 is an example of a block diagram of an entire product management system 1.
  • the merchandise management system 1 includes a signage terminal 103 installed in or around a merchandise shelf installation frame 2100 in a store, a position detection camera sensor unit 104, a skeleton detection camera sensor unit 104a, a weight sensor unit 105, and entry management. It has a terminal 106 and is connected to the management server 101 and the settlement processing server 107 via a network.
  • the product management system 1 is accessed from the mobile terminal 102 via the network.
  • Each terminal can transmit and receive information via the network regardless of whether the network is wired or wireless.
  • the management server 101 accumulates and analyzes various events that occur in stores, and performs processes such as product determination, customer determination, and quotation display.
  • a mobile terminal 102 is a mobile terminal owned by a customer, such as a smart phone, tablet, or wearable terminal, and displays information on products picked up by the customer.
  • the camera sensor unit 104 has a camera management terminal 530 to which a plurality of camera devices 506 are connected, and acquires the movement trajectory (for example, walking trajectory) of the customer in the store.
  • the camera sensor unit 104a has a camera management terminal 530a to which a plurality of camera devices 506a are connected, and acquires the characteristic parts of the customer's skeleton in the store.
  • the camera management terminal 530 and the camera management terminal 530a are separate terminals, one terminal may have both functions.
  • the weight sensor unit 105 has a plurality of weight sensor devices 608 installed in product baskets on product shelves, a microcomputer 710, and a data aggregation transmitter 630, detects changes in weight, and transmits weight information to the management server 101. do.
  • the store entry management terminal 106 reads the two-dimensional bar code or contactless IC chip displayed on the mobile terminal owned by the customer to identify the customer's user information.
  • the payment processing server 107 receives a payment processing request for the product acquired by the customer from the management server 101, and executes the payment processing using the payment method associated with the customer's user information.
  • Each terminal of the product management system 1 and the management server 101 may be, for example, a portable terminal (mobile terminal) such as a smart phone, a tablet, a mobile phone, or a personal digital assistant (PDA).
  • a portable terminal such as a smart phone, a tablet, a mobile phone, or a personal digital assistant (PDA).
  • PDA personal digital assistant
  • the function may be a VR (Virtual Reality) terminal, an AR (Augmented Reality) terminal, or an MR (Mixed Reality) terminal.
  • VR Virtual Reality
  • AR Augmented Reality
  • MR Multiple Reality
  • it may be a combination of these terminals.
  • a combination of one smart phone and one wearable terminal can logically function as one terminal.
  • Information processing terminals other than these may also be used.
  • Each terminal and management server 101 of the product management system 1 includes a processor that executes an operating system, applications, programs, etc., a main storage device such as a RAM (Random Access Memory), an IC card, a hard disk drive, an SSD (Solid State Drive), flash memory and other auxiliary storage devices, communication control units such as network cards, wireless communication modules, mobile communication modules, etc., touch panels, keyboards, mice, voice input, and input from motion detection by imaging with the camera unit, etc.
  • An input device and an output device such as a monitor or display are provided.
  • the output device may be a device or terminal that transmits information for output to an external monitor, display, printer, device, or the like.
  • each module is stored in the main storage device, and each functional element of the entire system is realized by the processor executing these programs and applications.
  • each of these modules may be implemented by hardware by integration or the like.
  • Each module may be an independent program or application, or may be implemented in the form of a partial subprogram or function in one integrated program or application.
  • each module is described as an entity (subject) that performs processing, but actually a processor that processes various programs and applications (modules) executes processing.
  • DB databases
  • a “database” is a functional element (storage) that stores a set of data so as to accommodate any data manipulation (eg, extraction, addition, deletion, overwriting, etc.) from a processor or external computer.
  • the database implementation method is not limited, and may be, for example, a database management system, spreadsheet software, or a text file such as XML or JSON.
  • RDBMS relational database
  • non-RDBMS non-relational database
  • FIG. 2 is an example of the hardware configuration of the management server 101.
  • the management server 101 is configured by a server arranged on a cloud, for example.
  • Various modules (programs and applications) 210 are stored in the main storage device 201, and each functional element of the management server 101 is realized by the processor 203 executing these programs and applications. Each module and its processing will be described later.
  • the auxiliary storage device 202 includes a master DB 220 and various information storage DBs 221 .
  • the master DB 220 stores user master information 1400, product master information 1300, and the like.
  • Various information storage DB 221 stores information transmitted from camera sensor unit 104, camera sensor unit 104a, weight sensor unit 105, and entry management terminal 106, or stores various information processed and processed in management server 101. Remember. The information stored in each will be described later.
  • FIG. 3 is an example of the hardware configuration of the mobile terminal 102.
  • the mobile terminal 102 is configured by a terminal such as a smart phone or a tablet, for example.
  • Programs and applications such as the product purchase management module 310 are stored in the main storage device 301, and each functional element of the mobile terminal 102 is realized by the processor 303 executing these programs and applications.
  • the product purchase management module 310 cooperates with the estimate display module 1106 and the mobile purchase management module 1108 of the management server 101 to display a product purchase screen and a purchase history.
  • Auxiliary storage device 302 stores user management information 320 stored in mobile terminal 102 .
  • FIG. 4 is an example of the hardware configuration of the signage terminal 103.
  • the signage terminal 103 is configured by a terminal such as a smart phone, tablet, notebook PC, desktop PC, microcomputer, single board computer, or the like.
  • a Raspberry Pi for example, can be used as a single board computer.
  • Programs and applications such as a signage information display module 410 are stored in the main storage device 401 , and each functional element of the signage terminal 103 is realized by the processor 403 executing these programs and applications.
  • Auxiliary storage device 402 stores signage information 420 such as advertisements of products to be displayed.
  • the signage information display module 410 receives a display instruction from the signage processing module 1202 of the management server 101, and displays signage information 420 corresponding to the display instruction on an output device 405 such as a display or electronic paper.
  • the configuration may be such that the signage information transmitted from the management server 101 is received and displayed.
  • FIG. 5A is an example of the hardware configuration of the position detection camera sensor unit 104.
  • FIG. A plurality of camera devices 506 are connected to a camera management terminal 530 via a network.
  • the camera management terminal 530 is composed of, for example, a desktop PC, a microcomputer, a single board computer, a cloud server, or the like.
  • Programs and applications such as the trajectory management module 510 are stored in the main storage device 501 , and each functional element of the camera management terminal 530 is realized by the processor 503 executing these programs and applications.
  • FIG. 5B is an example of the hardware configuration of the skeleton detection camera sensor unit 104a.
  • a plurality of camera devices 506a are connected to a camera management terminal 530a via a network.
  • the camera management terminal 530a is composed of, for example, a desktop PC, a microcomputer, a single board computer, a cloud server, or the like.
  • Programs and applications such as the skeleton detection module 510a are stored in the main storage device 501a, and each functional element of the camera management terminal 530a is realized by the processor 503a executing these programs and applications.
  • the camera device 506 includes a TOF (Time of Flight) sensor.
  • a TOF sensor is a sensor that measures the distance to an object by detecting the flight time (time difference) of light emitted from a light source, reflected by the object, and returning to the sensor.
  • a ToF image sensor can also detect distance information for each pixel and obtain a highly accurate distance image. Also, by using a plurality of ToF sensors and cameras, it is possible to determine the shape of the object and the three-dimensional overlap with higher accuracy. For example, when a plurality of customers are in the store at the same time, it is possible to determine the overlap of each person or detect the movement of hands.
  • the installation position and installation angle of each camera must be measured correctly, and detailed settings adjustment (calibration) must be performed. )Is required.
  • the camera devices 506 are installed at predetermined positions of the product shelf installation frame 2100 standardized in advance, and the settings of these cameras are collectively set from the management server 101 side. By doing so, the simplification and efficiency of the initial setting and the improvement of the acquisition accuracy of the trajectory information are realized (see FIG. 21).
  • a plurality of camera devices 506a can be similarly configured.
  • the trajectory management module 510 aggregates image information acquired from a plurality of camera devices 506, distance information to an object, etc., and executes analysis to determine the distance to the object, the shape of the object, and the shape of the object. Locate. It may also be called a position detection module 510 . In addition, by accumulating this distance information in time series, the customer's movement trajectory in the sensor acquisition range is acquired and accumulated in the trajectory information 520 . Specifically, when a plurality of camera devices 506 start detecting a trajectory, the trajectory management module 510 assigns a person ID to the detected person, and chronologically displays the position information of this person at each time. Stored in the trajectory information 520 . By connecting these pieces of time-series information, it is possible to acquire the movement trajectory of the person corresponding to the specific person ID.
  • the trajectory management module 510 transmits to the management server 101 the person ID for reproducing the movement trajectory, time information, and position information at that time. Alternatively, the trajectory information summarizing these is transmitted to the management server 101 .
  • the skeleton detection module 510a performs image analysis on the image information acquired from the plurality of camera devices 506a, extracts characteristic portions based on the skeleton model of the human body, and accumulates them in the characteristic portion information 520a. Further, the skeleton detection module 510a may calculate other feature parts based on the detected feature parts and store them in the feature part information 520a.
  • the skeleton detection module 510 a may directly transmit information on the customer's features to the management server 101 .
  • the skeleton detection module 510a transmits the information of the customer's characteristic part to the trajectory management module 510 of the camera management terminal 530, and after integrating the information detected by the trajectory management module 510 side and the information of the customer's characteristic part, The trajectory management module 510 of the camera management terminal 530 may transmit to the management module management server 101 .
  • FIG. 6 is an example of the hardware configuration of the weight sensor unit 105.
  • a plurality of weight sensor devices 608 are connected to a data aggregation transmitter 630 via a microcomputer (microcontroller) 710 .
  • the data aggregation transmitter 630 is composed of, for example, a desktop PC, a microcomputer, a single board computer, a cloud server, or the like.
  • a Raspberry Pi for example, can be used as the single board computer.
  • the main storage device 601 stores programs and applications such as various modules 610 for processing the weight information received from the microcomputer 710 and transmitting it to the management server 101, and the processor 603 executes these programs and applications. By doing so, each functional element of the data aggregation transmitter 630 is realized.
  • the auxiliary storage device 602 stores IoT device management information 620 such as setting information and management information of the data aggregation transmitter 630 , the microcomputer 710 and the weight sensor device 608 .
  • FIG. 7 is an example of a connection configuration for communicating with a microcomputer 710 connected to the weight sensor device 608 by wireless connection.
  • a plurality of weight sensor devices 608 are installed on the product shelf, and a product basket is installed on each weight sensor device 608 .
  • the weight sensor device 608 is a device that measures the weight of the products placed in the product basket and detects changes in the weight.
  • the acquired weight data is converted into digital information by the A/D converter 720 and transmitted to the microcomputer 710 .
  • the microcomputer 710 transmits the received weight information to the data aggregation transmitter 630 using wireless communication such as Bluetooth (registered trademark).
  • FIG. 20 is an example of weight information 2000 transmitted from microcomputer 710 to data aggregation transmitter 630 .
  • the weight information 2000 has information of each item shown in the item 2020, and has a value such as a sample value 2040 as a field name 2030.
  • FIG. The weight information 2000 has items such as product basket ID 2001, data type, weight 2002, number of times of transmission, state 2003, elapsed time after activation, previous weight 2004, delay time 2005, state change presence/absence 2006, and the like.
  • a product basket ID 2001 is an ID set for each weight sensor device 608 . It is associated with the product ID 1502 of the product put in the product basket, and from the change in the weight 2002 and the product ID 1502 associated with the product basket ID 2001, it is calculated how many of which products have been taken out of the product basket. be able to.
  • Weight 2002 displays the weight in the product basket in grams. The weight of the contents is displayed with the weight of the product basket removed from the measured value, and 0 is indicated when there is no contents. However, it may be configured to include the weight of the product basket.
  • the number of times of transmission indicates the number of times of data transmission since the start of the microcomputer 710 . The number of times of transmission is sequentially counted up, and the value is returned to 0 when the memory overflows.
  • State 2003 indicates the state of weight sensor device 608 . 0 is indicated when the measured weight data is in an UNSTABLE state, and 1 is indicated when the weight data is in a stable state.
  • the elapsed time after activation displays the elapsed time from the activation of the microcomputer 710 in units of milliseconds. It counts up every millisecond and resets the value to 0 if the memory overflows.
  • the previous weight 2004 displays the weight in grams at the time of the previous measurement. Delay time 2004 displays the time in milliseconds until state 2003 changes from UNSTABLE to STABLE.
  • a status change presence/absence 2006 is a flag indicating whether the status 2003 has changed since the previous measurement. It indicates 1 if the state 2003 has changed since the last measurement, and 0 if it has not.
  • the microcomputer 710 sets the state 2003 to 0 indicating "UNSTABLE state”, and sets the state change presence/absence 2006 to 1 indicating "yes”.
  • the microcomputer 710 constantly receives weight data from the weight sensor device 608, but if there is no change in weight (if the amount of change does not exceed the threshold value), the weight data is aggregated and sent periodically, such as every 10 seconds. device 630. In this case, the state 2003 is set to 1 indicating "STABLE state”, and the state change presence/absence 2006 is set to 0 indicating "no".
  • the microcomputer 710 transmits the weight information 2000 including the weight 2002 to the data aggregation transmitter 630 when the state 2003 changes from "UNSTABLE" to "STABLE".
  • the status change presence/absence 2006 indicates a change when the status 2003 between the previous measurement and the new measurement changes from "STABLE” to "UNSTABLE” or from "UNSTABLE” to “STABLE”.
  • the state may be changed simply when the difference between the previous weight and the latest weight exceeds a predetermined threshold value, for example, 5 g.
  • a predetermined threshold value for example, 5 g or less, it may be determined that the weight data is in a stable state.
  • the microcomputer 710 constantly receives weight data from the weight sensor device 608. As described above, if there is no change in weight, the weight information 2000 is sent to the data aggregation transmitter 630 every 10 seconds, for example. Send to Also, when the weight changes, such as when the product is picked up, the first weight information 2000 is transmitted at that timing, and the second weight information is transmitted after the weight stabilizes. I have to.
  • the weight information is sent twice to perform two-step processing. make it possible to
  • the signage display processing 3200 on the signage terminal 103 in response to the transmission of the weight information 2000 for the first time, when the product is picked up, a description of the product and a product that the customer wants to purchase together with the product can be displayed. can be immediately displayed on the signage terminal 103 without delay.
  • the product determination processing 2800 in response to the second transmission of the weight information 2000 based on the numerical value after the weight is stabilized, the number of products picked up can be correctly counted.
  • the number of each product can be calculated and used for inventory management. For example, in this embodiment, since we know where the product should be and the quantity, if the product is about to run out, we will send an out-of-stock forecast to prompt the staff in the backyard to replenish the product. In this case, it is possible to manage inventory by sending a layout alert and prompting the backyard staff to relocate.
  • a predetermined number of products such as 10 are placed in the product basket and sales are started, and the number of products falls below a predetermined number such as 3, the current number of products together with the product ID (or product basket ID) is displayed.
  • a system may be adopted in which the difference between 3 items and the initial 10 items is notified, and based on this notification, the 7 items are automatically replenished by a mechanism such as a robot or a conveyor.
  • the data aggregation transmitter 630 that has received the weight information 2000 converts the received information into a predetermined protocol such as the MQTT protocol, encrypts it, and transmits it to the management server 101 .
  • Time information can also be added to each piece of weight information 2000 .
  • the weight information 2000 may include time information at which the data aggregation transmitter 630 transmits data, or when the microcomputer 710 transmits the weight information 2000 to the data aggregation transmitter 630, the time information may be configured to include
  • weight time series data can be generated.
  • the data aggregation transmitter 630 can control and initialize the microcomputer 710 and weight sensor device 608 based on the control information received from the management server 101 . For example, it is possible to switch the power on/off, or to add or update setting information.
  • FIG. 8 shows an example of a connection configuration for communicating with the microcomputer 710 connected to the weight sensor device 608 via a wired connection.
  • a microcomputer 710 is connected to a plurality of weight sensor devices 608 via A/D converters 720 by wires.
  • the microcomputer is also preferentially connected to the data aggregation transmitter 630, and communicates with it by CAN (Controller Area Network).
  • the transceivers 730 and 731 transmit and receive data to and from each other by the CAN system, and a controller 740 connected by a daisy chain controls communication by the CAN system.
  • Microcomputer 710 can be powered via USB or CAN. 7, the microcomputer transmits weight information 2000 to data aggregation transmitter 630, and data aggregation transmitter 630 transmits control information to microcomputer 710.
  • FIG. 9 is an example of the hardware configuration of the entrance management terminal 106.
  • the entry management terminal 106 is configured by a terminal such as a smartphone or a tablet, or a dedicated terminal for reading a two-dimensional bar code or a non-contact IC chip.
  • Programs and applications such as an entry management module 910 are stored in the main storage device 901, and each functional element of the entry management terminal 106 is realized by the processor 903 executing these programs and applications.
  • the entry management module 910 reads a two-dimensional barcode displayed on the customer's mobile terminal 102 with the camera unit 906, or communicates with the non-contact IC chip of the customer's mobile terminal 102 with the input device 904, Receive user-specific information.
  • the store entry management module 910 transmits user identification information to the management server 101 as information that the user has entered the store. At this time, the date and time when the user identification information is received may be transmitted to the management server 101 as the store entry time.
  • the auxiliary storage device 902 stores entrance management terminal management information 920 . Here, user identification information and time information acquired when the entering process is performed may be stored.
  • Information input at the time of entering the store includes reading barcodes such as two-dimensional barcodes, communication using the contactless IC chip of the mobile terminal 102, electronic money, contactless IC cards, and magnetic information reading. may be performed by In this case, it is possible to change the operation at the exit gate when leaving the store depending on how the customer enters the store. For example, in the case of entering the store using a two-dimensional barcode or non-contact IC chip of an application on the mobile terminal 102, the exit gate automatically opens and credit card payment is performed on the application.
  • a two-dimensional bar code may be printed on the product picked up when leaving the store, and the printed matter may be read by an automatic payment machine so that the guest user can pay with a credit card, electronic money, or cash.
  • FIG. 10 is an example of the hardware configuration of the payment processing server 107.
  • the payment processing server 107 is configured by a server arranged on a cloud, for example.
  • a payment processing execution module 1010 is stored in the main storage device 1001, and each functional element of the payment processing server 107 is realized by the processor 1003 executing these programs and applications.
  • the payment processing execution module 1010 executes payment processing for product purchases by the mobile terminal 102 and product purchases by stores.
  • the executed settlement result is transmitted to the mobile terminal 102 and displayed on the screen which is the output device 305 in cooperation with the product purchase management module 310 .
  • the auxiliary storage device 1002 stores personal information, user information, credit card information, and payment processing information 1020 such as payment history necessary for payment processing.
  • FIG. 11 is a diagram for explaining a functional configuration example of the product management system 1.
  • the management server 101 includes a weight information processing module 1101, a position information processing module 1102, a skeleton detection processing module 1102a, an entrance/exit management module 1103, a product determination module 1104, a customer number determination module 1105, an estimate display module 1106, and a payment management module 1107. , a mobile purchase management module 1108, etc., and various modules 210, which are programs and applications, and execute various processes.
  • the management server 101 also stores segment information 1500 that stores information received from various sensors and information generated by the management server 101, acquisition determination range information 1600, position tracking information 1700, skeleton detection information 1700a, shelf event information 1800, It has estimate management information 1900, entry information 1111, and the like.
  • modules 210 are described as being arranged on one management server 101, they may be arranged on separate virtual servers on the cloud, or some of them may be arranged on separate virtual servers.
  • a configuration may be adopted in which each group is arranged on a virtual server.
  • Various types of information may also be stored in different storage devices on the cloud, or may be arranged on the cloud for each group of some of them.
  • the weight information processing module 1101 receives weight information including the product basket ID from the weight sensor unit 105 and accumulates the weight information together with time information corresponding to the weight information.
  • the weight information accumulation processing flow will be described later with reference to FIG.
  • the position information processing module 1102 receives from the camera sensor unit 104 the person ID, time information, and position information at that time for reproducing the movement locus.
  • the position information processing module 1102 specifies the range in which the person stayed based on the received position information, and accumulates information on the specified stay range together with time information.
  • the location information accumulation processing flow will be described later with reference to FIG.
  • the skeleton detection processing module 1102a receives a photographed image of a person in the store and time information from the camera sensor unit 104a.
  • the skeleton detection processing module 1102a can obtain predetermined feature points (estimated hand points) of the person's upper body by calculation. By using this information, the management server 101 can determine the correspondence relationship between the estimated points of the hand and the positions of the product shelves.
  • the skeleton detection processing flow will be described later with reference to FIG.
  • the entering/exiting management module 1103 receives customer user identification information from the entry management module 910 of the entry management terminal 106, identifies which user ID the received user identification information corresponds to, and receives the information. Stored in the entry information 1111 together with the time information. The time at which the bar code displayed on the customer's mobile terminal 102 was read or the time at which the information was obtained from the contactless IC chip through non-contact communication is stored instead of or together with the time information at which the information was received. good too.
  • the store entry processing flow will be described later with reference to FIG.
  • the merchandise determination module 1104 determines the merchandise picked up by the customer and the number thereof based on the information accumulated in the shelf event information 1800 .
  • the product determination processing flow will be described later with reference to FIG.
  • the customer number determination module 1105 Based on the information accumulated in the shelf event information 1800, the position tracking information 1700, and the skeleton detection information 1700a, the customer number determination module 1105 identifies the shelf where the weight change occurs (event occurs). Identify customers who were near At that time, it is determined which customer has picked up how many products. The customer number determination processing flow will be described later with reference to FIG.
  • the estimate display module 1106 compares the results of the store entry process, the product determination process, and the customer determination process, and displays on the mobile terminal 102 of the customer the details and the number of products picked up and the price.
  • the estimate display processing flow will be described later with reference to FIG.
  • the payment management module 1107 requests the payment processing server 107 to execute payment processing when the customer leaves the store after executing the estimation processing.
  • the payment processing flow will be described later with reference to FIG.
  • the mobile purchase management module 1108 accepts orders when online orders are placed directly from the product purchase management module 310 of the mobile terminal 102 .
  • the mobile purchase management module 1108 receives the selection of products and the selection of the quantity from the user, it calculates the total amount based on the product master information 1300 and displays it on the mobile terminal 102 .
  • the payment management module 1107 transmits user information such as the total amount and the corresponding user ID to the payment processing server 107, and the payment processing server 107 executes payment processing.
  • FIG. 12 is a diagram illustrating a functional configuration example of signage display.
  • the IoT information processing module 1201 of the management server 101 receives the weight information transmitted according to the MQTT format. Note that the IoT information processing module 1201 is arranged before the weight information processing module 1101 in FIG. 11 .
  • the data aggregation transmitter 630 transmits the weight information in two parts: a first time when the weight changes and a second time when the value is stable.
  • the IoT information processing module 1201 When the IoT information processing module 1201 receives the first weight information, it transfers the weight information to the signage processing module 1202 . Note that the product basket ID included in the weight information may be notified without transferring the weight information as it is.
  • the IoT information processing module 1201 transfers the weight information to the weight information processing module 1101 in FIG. 11 in order to specify the product and the number of products. Note that the IoT information processing module 1201 distributes each piece of weight information. may also be stored.
  • the IoT information processing module 1201 receives the weight information transmitted in MQTT format as an MQTT broker and distributes it to the signage processing module 1202 or the weight information processing module 1101 that subscribes to it.
  • the weight sensor unit 105 may distribute the first weight information and the second weight information to different destinations in advance.
  • the distribution of the IoT information processing module 1201 may be based on whether the number of times of reception after stabilization is the first or the second time, or based on the presence or absence of state change 2006 included in the weight information and the flag of the state 2003. It is also possible to adopt a configuration in which distribution is executed by In this case, for example, when the state change presence/absence 2006 is "changed” and the state 2003 is “unstable", it is determined that the weight information is the first time. When the state change presence/absence 2006 is "changed” and the state 2003 is “stable”, it is determined that the weight information is the second time. Alternatively, the determination may be made based only on the status change presence/absence 2006, which is a flag indicating that the weight has changed. For example, when the state change presence/absence 2006 becomes "changed” indicating that the weight has changed, the weight information may be sent to the signage processing module 1202 as the first information. .
  • FIG. 13 is an example of product master information 1300 .
  • the product master information 1300 has information on each item shown in item 1320 and has a value such as sample value 1340 as field name 1330 .
  • the product master information 1300 has items such as inventory availability, product image, product ID 1301, product name 1302, price 1303, priority, cost price, tax amount, sales type, weight 1304, signage information 1305, and the like.
  • the product ID 1301 is used as a key, and can be used to identify the product name 1302 and to display signage information 1305 corresponding to the product ID 1301 .
  • the weight 1304 is used when calculating how many pieces of the product are picked up from the product basket with respect to the amount of change in weight acquired by the weight sensor unit 105 .
  • FIG. 14 is an example of user master information 1400.
  • the user master information 1400 has information of each item shown in item 1420 and has a value such as sample value 1440 as field name 1430 .
  • the user master information 1400 has items such as a user ID 1401, user display ID, name, email address, date of birth, gender, user identification information 1402, and the like.
  • the user ID 1401 is information for specifying a user, and each user's mobile terminal 102 is managed in association with this user ID 1401. Based on the user ID 1401, estimate information for purchased products, etc. can be displayed.
  • User identification information 1402 is information used to identify a user, and is, for example, a value such as a token (hash value) that is periodically updated in consideration of security.
  • FIG. 15 is an example of segment information 1500 .
  • the segment information 1500 has information of each item shown in item 1520 and has a value such as sample value 1540 as field name 1530 .
  • the segment information 1500 is information that associates the product basket ID 1501 with the product ID 1502 . With this segment information 1500, it is possible to specify the product ID from the product basket ID included in the weight information received from the weight sensor unit 105, and to grasp which product has changed the weight.
  • the signage terminal 103 displays an instruction, for example, "Please put one product in the product basket", and asks the user to put one product in the product basket.
  • the weight sensor unit 105 acquires the weight of one product and transmits it to the management server 101 .
  • the product determination module 1104 of the management server 101 displays a list of candidates whose weight 1304 is close to the measured weight from the plurality of products registered in the product master information 1300 on the signage terminal 103 near the product shelf in order of closeness. Display an instruction such as "Please select an item in the shopping cart from the list.”
  • the manager selects the same information as the product actually placed in the product basket from the displayed list. According to this selection, the product determination module 1104 associates the product basket ID 1501 having the product basket with the product with the product ID 1502 and stores it in the segment information 1500 . Instead of selecting from a list, the configuration may be such that the weight is automatically associated with the closest product. Next, the signage terminal 103 displays an instruction such as "Please put three products in the product basket.” The average weight is calculated from the weight information of the three products, and the product determination module 1104 automatically sets the weight error when the product increases or decreases.
  • FIG. 16 is an example of acquisition determination range information 1600 .
  • the acquisition determination range information 1600 has information of each item shown in item 1620 and has a value such as sample value 1640 as field name 1630 .
  • Acquisition determination range information 1600 is information that defines, for each product basket, the range in which the product can be taken from the product basket.
  • the acquisition determination range information 1600 has a product basket ID 1601 , a determination area 1602 and a determination stay range 1603 .
  • the product basket ID 1601 is associated with the weight sensor device 608 of the weight sensor unit 105, and it is possible to specify from which product basket the weight of the product has changed as a result.
  • a determination area 1602 indicates the range in which the product associated with the product basket ID 1601 can be taken by coordinates in the product shelf setting frame 2100 (see FIG. 21).
  • the determination stay range 1603 indicates the range in which the product associated with the product basket ID 1601 can be obtained in units of partitions divided in advance.
  • FIG. FIG. 21 shows a configuration example of a product shelf installation frame.
  • cameras and product shelves are installed in a product shelf installation frame whose dimensions have been determined in advance, and by automatically executing several pre-registered system initial settings, an unmanned store can be set up. It is possible to reduce the labor, time, and cost due to the creation of each store.
  • the product shelf installation frame 2100 is, for example, a turret-shaped frame measuring 2.5 m in length and width and 3 m in height.
  • a camera device 506 is installed at a predetermined position on four pillars 2101 or their vicinity (for example, beams 2102). Alternatively, it may have a mounting portion for the camera device 506 so that the camera device 506 can be installed at this position.
  • One support 2101 of the frame has coordinates (0,0) and defines a coordinate plane in millimeters in the x and y directions.
  • the coordinates of the lower left column are (0, 0)
  • the coordinates of the lower right column are (2500, 0)
  • the coordinates of the right back column are (2500, 2500). Setting the camera sensor unit 104 and the weight sensor unit 105 is semi-automated by installing a product shelf at a predetermined position in this.
  • FIG. 22 is a diagram illustrating the configuration of a product shelf.
  • 3 ⁇ 3 product baskets 2202 are installed on one product shelf 2201 .
  • a weight sensor device 608 is installed under each product basket to measure the weight in each product basket.
  • the size of the product shelf is assumed to be width ⁇ depth ⁇ height of 450 ⁇ 500 ⁇ 1500 mm.
  • setting information from the management server 101 is sent to the camera sensor unit 104 and the weight sensor. It is sent to the unit 105 and the setting is semi-automatically completed.
  • a virtual acquisition area 2252 where products can be acquired is set in front of the product shelf 2251 .
  • the virtual acquisition area defines 760 mm from the top of the shelf, which is the same range that the customer can reach for the product.
  • FIG. 23 is a schematic diagram illustrating a product acquisition determination range.
  • the product shelf installation frame 2100 is viewed from above at 2300, and the same coordinates as in FIG. , 2500).
  • Four product shelves 2301 AS01 to AS04 are installed in the front part of FIG. 760 mm in the y-axis direction from the end of the product shelf and each 450 mm width of the product shelf 2301 in the x-axis direction is defined as one region.
  • the area up to is defined as the range in which the customer can acquire the product, that is, the acquisition determination range.
  • the acquisition determination range 2352 of the product shelf 2351 of AS02 is A0, A1, A2, A3, and A4.
  • the acquisition determination range of the product shelf of AS01 is A0, A1, A2, and A3, and the acquisition determination range of the product shelf of AS04 is A2, A3, A4, and A5.
  • the acquisition determination range for each product basket is stored in the acquisition determination range information 1600 of FIG.
  • AS02_B is stored as the product basket ID 1501 in the second product basket from the top of the product shelf AS02. , 1260) is the part surrounded by (2150, 500).
  • the interior of the store or the interior of the product shelf setting frame 2100 can also be represented by partitions that have been divided in advance. .
  • one section has a range of 450 mm ⁇ 760 mm.
  • the product acquisition range is within the plane range of the x and y axes.
  • a product basket can also be specified in the z-axis direction, such as a row, and accordingly, the determination area may also include values in the z-axis direction.
  • FIG. 17A is an example of location tracking information 1700.
  • the location tracking information 1700 has information of each item shown in item 1720 and has a value such as sample value 1740 as field name 1730 .
  • the location tracking information 1700 is information that stores in chronological order who was where in the store. It may also be called a position information storage unit or position information storage means.
  • the position tracking information 1700 has items such as a time limit 1705, a stay range 1701, a person ID 1702, a store ID 1703, a time stamp 1704, and the like.
  • the area of stay 1701 stores preliminarily partitioned sections within the store or the product shelf setting frame 2100, and is the location where the customer specified from the position information transmitted from the camera sensor unit 104 stayed. memorize
  • FIG. 17B is an example of skeleton detection information 1700a.
  • the skeleton detection information 1700a has information of each item shown in the item 1720a, and has a value such as a sample value 1740a as a field name 1730a.
  • the skeleton detection information 1700a is information about a characteristic portion detected by applying a skeleton detection module to a photographed image of a customer in the store. This information relates to the position coordinates of predetermined features of the upper body of the human body (eg, head, left and right shoulders, left and right elbows, left and right wrists) detected by the skeleton detection module 510a of the skeleton detection camera sensor unit 104a. . Furthermore, using the positional coordinates of these characteristic parts, the positional coordinates of the characteristic parts of other parts of the human body (for example, estimated points of the left and right hands, etc.) obtained by calculation can be similarly included.
  • FIG. 17 illustrates skeleton detection information 1700a of a customer when one customer is detected on the photographed image.
  • skeleton detection information 1700a is created separately for each customer.
  • the table of (B) in FIG. 17 may be created separately for each customer.
  • the table of FIG. 17B may be collectively created for a plurality of customers on the same photographed image.
  • Predetermined features of the upper body and putative hand point information can be integrated with the detected information of the location tracking information 1700 .
  • the skeleton detection information 1700a can include deadlines, time stamps, and the like, as in the case of the location tracking information 1700.
  • the table in (B) of FIG. 17 can include tracking information within the image.
  • the table of (A) in FIG. 17 and the table of (B) in FIG. 17 may be created separately, or may be created collectively.
  • the data in FIG. 17B created based on the image captured by the camera sensor unit 104a is inserted into the table in FIG. 17A created based on the image captured by the camera sensor unit 104. good too. Or it may be vice versa.
  • a person ID 1702 is information specifying a person transmitted from the camera sensor unit 104, and is not associated with a user ID at this stage. Therefore, it is stored that a certain person was in the stay range 1701 at the time indicated by the time stamp 1704, although the user is not specified.
  • the shop ID 1703 stores the event at which shop.
  • data transmitted from the camera sensor unit 104 is stored, for example, as a UNIX (registered trademark) time stamp (in seconds). Also, these records are deleted or migrated to another inexpensive storage area when the time limit specified by the time limit 1705 is exceeded.
  • FIG. 18 is an example of shelf event information 1800 .
  • the shelf event information 1800 has information of each item shown in the item 1820 and has a value such as a sample value 1840 as a field name 1830 .
  • the shelf event information 1800 stores events such as weight changes that occur on product shelves based on weight information transmitted from the weight sensor unit 105 . It may also be called a weight information storage section or weight information storage means.
  • the shelf event information 1800 has items such as event ID, product basket ID 1801, previous weight 1802, store ID, time stamp 1803, type, weight 1804, weight change amount 1805, and the like.
  • a product basket ID 1801 stores a value corresponding to the product basket ID 2001 whose weight has changed and which is transmitted from the weight sensor unit 105 .
  • the values of the previous weight 2004 and the weight 2002 transmitted from the weight sensor unit 105 are stored in the previous weight 1802 and the weight 1804, respectively.
  • the previous weight 1802 may store the previous weight stored in the management server 101 instead of the transmitted value.
  • the weight change amount 1805 the value of the difference between the current weight 1804 and the previous weight 1802 is stored.
  • the time stamp 1803 stores the time when the event occurred. Although the time when the weight information processing module 1101 receives the weight information is stored, the time when the data aggregation transmitter 630 transmits the weight information may be used, the time when the microcomputer 710 transmits the weight information, or the time when the microcomputer 710 transmits the weight information. The time 710 obtained the weight value and the time the weight sensor device 608 obtained the weight value may be used.
  • FIG. 19 is an example of the estimate management information 1900.
  • the estimate management information 1900 has information of each item shown in item 1920, and has a value such as sample value 1940 as field name 1930.
  • FIG. The estimate management information 1900 stores a user ID 1901, a person ID 1902, a product ID 1903, the number of products 1904, and a time stamp 1905 specified by the estimate display module 1106.
  • FIG. In other words, it is the information that records the result of judgment as to who picked up what and how many from the product shelf.
  • FIG. 24 to 32 are examples of processing executed by each terminal of the merchandise management system 1 and each module of the management server 101.
  • FIG. FIG. 24 is an example of weight information accumulation processing flow 2400 .
  • the weight information processing module 1101 receives weight information transmitted from the weight sensor unit 105 (step 2410).
  • the weight information processing module 1101 acquires the time information of the received time (step 2420). It also acquires or calculates other information stored in the shelf event information 1800 .
  • the weight information processing module 1101 associates the weight information and other information with the acquired time information and stores them in the shelf event information 1800 (step 2430).
  • the time information is the time when the weight information processing module 1101 receives the weight information, the time when the data aggregation transmitter 630 transmits the weight information may be used, or the time when the microcomputer 710 transmits the weight information.
  • the time, the time when the microcomputer 710 acquires the weight value, or the time when the weight sensor device 608 acquires the weight value may be used.
  • FIG. 25 is an example of a location information accumulation processing flow 2500 .
  • the position information processing module 1102 receives the person ID, the time information, and the position information at that time transmitted from the camera sensor unit 104 (step 2510).
  • the position information processing module 1102 identifies the stay range in which the person indicated by the person ID stayed based on the position information (step 2520).
  • the range of stay is associated with the information of the divisions that have been divided in advance in the store or in the product shelf installation frame 2100, and specifies to which division it belongs. It also acquires or calculates other information in item 1720 shown in location tracking information 1700 .
  • the location information processing module 1102 associates the specified stay range information, person ID, time information, and other information and stores them in the location tracking information 1700 (step 2530).
  • the information of the predetermined section such as A1 and A2 of the sample value 1740 of the stay range 1701 is stored, but the coordinate information received as the position information may be stored.
  • a configuration may be employed in which trajectory information in which a plurality of pieces of position information are collected is stored.
  • FIG. 42 is an example of a skeleton detection processing flow 4200 .
  • the skeleton detection processing module 1102a detects feature points (for example, the head, right shoulder, left shoulder, right elbow, left elbow, right wrist, left wrist) of the upper body of the human body detected by applying the skeleton detection module on the captured image. ) is received (step 4210).
  • This feature point is obtained by the skeleton detection module 510a of the skeleton detection camera sensor unit 104a.
  • estimated points of the hand are calculated (step 4220).
  • This type of estimated point is determined by the skeleton detection module 510a of the skeleton detection camera sensor unit 104a.
  • the position coordinates of other parts of the human body such as the neck may be obtained together.
  • the information on the estimated points of the hand is accumulated together with the time information (step 4230).
  • the position information acquired by the position information processing module 1102 and the position information acquired by the skeleton detection processing module 1102a can be associated with each other in terms of position coordinates.
  • the skeleton detection camera sensor unit 104a may execute the skeleton detection processing flow 4200 and transmit the feature point information, the estimated hand position coordinates calculated from the feature point information, and the like to the management server 101. .
  • the flow of steps 4210, 4220, and 4230 may be executed on the management server 101 side based on the captured image.
  • FIG. 26 is an example of an overall processing flow 2600 for product purchase at a store.
  • the store entrance/exit management module 1103 executes the store entry processing 2700 (step 2610).
  • Information on the trajectory of the customer moving in the store is stored in the sequential position tracking information 1700 , and information on acquisition of the product from the product shelf is stored in the shelf event information 1800 .
  • the product determination module 1104 executes a product determination process 2800 that identifies the content and number of products picked up by the customer (step 2620).
  • the customer number determination module 1105 performs customer determination processing 2900 for identifying customers who were within reach of the product basket in which weight change occurred, based on the stored position tracking information 1700, skeleton detection information 1700a, and shelf event information 1800. (step 2630). At this time, based on the result of determining the correlation between the estimated hand point obtained by calculation and the position of the product shelf and the result of determining the change in the output of the sensor that detected the weight change, which customer preferably determines how many items have been picked up from the shelf.
  • the estimate display module 1106 compares the processing results of the store entry process 2700, the product determination process 2800, and the customer determination process 2900, calculates which user picked up which product and how many, and sends the estimate to the mobile terminal 102 of the user.
  • the estimate display process 3000 for displaying information is executed (step 2640).
  • the payment management module 1107 executes payment processing 3100 for requesting the payment processing server 107 to perform payment processing for the estimated product based on the receipt of the information indicating that the customer has left the store (step 2650).
  • FIG. 27 is an example of an entry processing flow 2700 .
  • the store entrance/exit management module 1103 receives the customer's user identification information from the store entrance management module 910 of the store entrance management terminal 106 (step 2710), and acquires the received time information as the store entrance time (step 2720). ).
  • the entering/exiting management module 1103 compares the received user identification information with the user identification information 1402 of the stored user master information 1400, and obtains the corresponding user ID 1401 to determine which user has entered the store. is identified (step 2730).
  • the entry/exit management module 1103 stores the specified user ID 1401 and entry time in the entry information 1111 (step 2740).
  • the store entry time is defined as the time when the entry/exit management module 1103 of the management server 101 receives the customer identification information. At the timing of reading the bar code displayed in the , or at the timing of acquiring information from the contactless IC chip by contactless communication, the store entry time is generated and transmitted to the management server 101 together with the customer identification information. .
  • FIG. 28 is an example of a product determination processing flow 2800.
  • the product determination module 1104 acquires information on the time when the weight change occurred (event occurrence time) from the shelf event information 1800 (step 2810).
  • the product determination module 1104 acquires the product basket ID in which the weight change occurred and the weight change amount from the shelf event information 1800 (step 2820).
  • the product determination module 1104 acquires information on the product ID 1502 associated with the product basket ID 1501 based on the segment information 1500 and product information corresponding to the product basket ID in which the weight change occurs from the product master information 1300. (Step 2830). The product determination module 1104 calculates the number of products picked up by the customer based on the amount of change in weight and the product weight 1304 stored in the product master information 1300 (step 2840). The product determination module 1104 outputs the acquired product information and the calculated product quantity information (step 2850). It is preferable to prevent deterioration of the determination accuracy by matching the determination result of the correlation between the estimated point of the hand obtained by the calculation and the position of the product shelf.
  • FIG. 29 is an example of customer determination processing flow 2900 .
  • the customer quantity determination module 1105 acquires the time when the event occurred from the shelf event information 1800 (step 2910).
  • the customer number determination module 1105 identifies the person ID of the person who stayed near the place where the event occurred from the shelf event information 1800, the store entry information 1111, and the location tracking information 1700 (step 2920).
  • the customer number determination module 1105 outputs the specified person ID (step 2930).
  • the customer quantity determination module 1105 acquires from the shelf event information 1800 the time stamp 1803 corresponding to the time when the weight changed.
  • the determination stay range 1603 corresponding to the product basket ID 1601 of the acquisition determination range information 1600 with the stay range 1701 corresponding to the person ID 1702 of the location tracking information 1700, the product basket whose weight has changed The person ID of the customer who stayed at the event occurrence time within the range where the product can be obtained is specified.
  • the customer number determination module 1105 acquires a time stamp corresponding to the store entry time from the store entry information 1111 . Next, by comparing the person ID of the store entry information 1111 with the location information (stay range 1701) and person ID 1702 of the location tracking information 1700, the number of customers who stayed near the entrance management terminal 106 at the time of entering the store is identified. Identify the person ID.
  • the weight sensor unit 105 transmits the weight information in two parts, the time when the weight acquired by the weight sensor device 608 changes and the time when the weight change stabilizes. It can be configured to store both information, or it can be configured to store only the weight information after the second weight is stabilized.
  • the shelf event information 1800 can also store the difference time between the first time when the weight change corresponding to the first weight information occurs and the second time when the weight change is stable. can specify the person ID at that time based on the time obtained by subtracting the difference time from the second time corresponding to the weight information of the second time, even if the configuration does not store the weight information of the first time. . That is, based on the second time when the change in weight is stable and the difference time, the number of products can be associated with the customer, and the number of products can be displayed on the mobile terminal 102 of the customer.
  • the person ID is specified in a broader sense.
  • the corresponding person ID is specified from the time stamp 1803 of the time when the weight change occurred and the location tracking information 1700 for a total of 3 seconds, 1 second before and 1 second after that. If the corresponding person ID cannot be specified here, the range is expanded to a total of 5 seconds including the time stamp 1803 and 2 seconds before and after, and it is confirmed whether the person ID can be specified. In this way, the determination time is gradually extended, and the process is repeated until the person can be identified.
  • the person with the highest probability is identified as the target. For example, the person closest to the product basket or the person who reached out to the product basket is specified as the person with the highest probability.
  • These pieces of information can be acquired from the customer's position information acquired by the camera sensor unit 104 and information on hand movements. Furthermore, these pieces of information are compared with the determination results of the interrelationship between the estimated hand points and the positions of the product shelves, which are obtained by calculation using the skeletal features extracted on the photographed screen from the camera device 506a. can also
  • a configuration may be adopted in which the determination time range used for identification is changed.
  • the judgment time range For example, the person ID of the customer staying in the determination stay range 1603 of the product basket for a total of 11 seconds, 5 seconds before and after the time when the weight change occurs, is specified.
  • the determination time range is shortened to perform processing with higher accuracy.
  • the person ID of the customer who stays in the determination stay range 1603 of the product basket within 1 second of the time when the weight change occurs is specified. Repeat the judgment with In this way, the determination time range is expanded step by step. In this way, the determination time range for identifying a person can be dynamically changed according to the product shelf setting frame 2100 and the number of customers staying in the store at the event occurrence time such as the time when the weight changes. It is possible to improve the speed and accuracy of judgment.
  • FIG. 30 is an example of an estimate display processing flow 3000.
  • the quotation display module 1106 acquires the processing results of the store entry processing 2700, product determination processing 2800, and customer determination processing 2900, and matches them (step 3010).
  • the estimate display module 1106 acquires and stores the user ID, product information, and product quantity information corresponding to the event occurrence time (step 3020). For example, the product information and product number information at the time when the weight change specified by the product determination process 2800 is associated with the person ID at the time when the weight change specified by the customer determination process 2900 occurs. Also, the user ID of the person who entered the store around the time when the person with the person ID identified by the customer determination process 2900 stayed near the entrance management terminal 106 is associated.
  • the estimate display module 1106 stores the associated user ID, person ID, product ID, quantity, and time stamp in the estimate management information 1900 .
  • the weight information transmitted from the weight sensor unit 105 installed on the product shelf and the first time information corresponding to this weight information are accumulated in the shelf event information 1800 in chronological order.
  • the customer's location information transmitted from the camera sensor unit 104 and the second time information corresponding to this location information are accumulated in the location tracking information 1700 in chronological order
  • the position information of the customer's skeleton transmitted from the camera sensor unit 104a and the third time information corresponding to this position information are accumulated in the skeleton detection information 1700a in chronological order
  • the fourth time information when the customer enters the store is accumulated in the store entry information 1111 in chronological order, By comparing the stored information based on the first time information, the second time information, the third time information, and the fourth time information, the number of products, the customer, and the user information are associated, and the user information is displayed.
  • Product quantity information can be displayed on the mobile terminal 102 of the customer identified by the information.
  • the shelf event information 1800, the position tracking information 1700, the skeleton detection information 1700a, and the store entry information 1111 may each or part of them be stored in different storage means, or all may be stored in the same storage means.
  • the estimate display module 1106 transmits and displays product information and product quantity information to the mobile terminal 102 of the customer corresponding to the user ID 1901 (step 3030).
  • the product purchase management module 310 of the mobile terminal 102 displays the received product information and product quantity information on the output device 305 such as a display.
  • the estimate display module 1106 calculates the total price of the products taken out of the product basket by the time the customer leaves the store, and displays it on the customer's mobile terminal 102 (step 3040).
  • the information is stored in the necessary check list. For example, when the detection of the amount of change in weight is dubious, when the detection of the position information from the camera device 506 and the calculation of the estimated point of the hand based on the captured image from the camera device 506a do not go well, or when the image is hidden. When an irregular event occurs such as a case where the determination cannot be made, the information is stored in a necessary check list for final human check. As a result, when the management server 101 cannot make the determination, a person can assist the user later, thereby realizing a highly accurate shopping experience. Since the payment process itself is executed after leaving the store, the user's customer experience is not impaired.
  • information (trajectory of movement) on the customer's position information acquired from the camera sensor unit 104 information on detection of the customer's skeleton (estimated hand points, etc.) acquired from the camera sensor unit 104a, and weight sensor unit 105
  • information on changes in weight obtained from the store entry management terminal 106 and the information on customers entering the store obtained from the store entrance management terminal 106 all the information about who, where, and when happened in the store. They are saved in the management server 101 on the cloud in chronological order, and can be reproduced in chronological order.
  • all sensors operate independently, and by accumulating each information in chronological order, it is possible to improve various analyzes and customer judgment systems. It is also easy to add sensors to estimate.
  • FIG. 31 is an example payment processing flow 3100 .
  • the payment management module 1107 receives information indicating that the customer has left the exit area for a certain period of time, for example, 10 seconds or more (step 3110). Whether or not the customer has left the exit area is determined by detecting whether or not the customer has left the predetermined coordinate range by the camera sensor unit 104 . In the example using the product shelf installation frame 2100 of FIGS. 21 and 23, the range surrounded by the coordinates (0, 0), (0, 2500), (2500, 2500), (2500, 0) is area. In a configuration that does not use the product shelf installation frame 2100, the coordinates of the exit area may be arbitrarily set inside or near the store.
  • the payment management module 1107 calculates the total price of all the products stored in the estimate display module 1106 (step 3120).
  • the payment management module 1107 transmits the user ID who picked up the product from the product basket and the total amount to the payment processing server 107, and the payment processing server 107 performs payment processing based on the payment processing information 1020 corresponding to the user ID. Execute (step 3130).
  • a refund can be executed from the product purchase management module 310 (for example, an application on a smartphone) of the mobile terminal 102 .
  • the payment process after leaving the store, payment is reserved by the payment processing server 107, and payment confirmation processing is performed after a certain period of time. I am losing it.
  • FIG. 32 is an example of signage display processing flow 3200 .
  • the signage processing module 1202 receives, from the IoT information processing module 1201, the first weight information at the timing when the weight value measured by the weight sensor unit 105 changes from a stable state to an unstable state (step 3210).
  • the weight information may be received from the data aggregation transmitter 630 instead of being distributed and received by the IoT information processing module 1201 .
  • the signage processing module 1202 acquires the product basket ID in which the weight change occurs from the weight information (step 3220).
  • the signage processing module 1202 acquires the product information such as the product name 1302 and the price 1303 of the product ID corresponding to the product basket ID and the signage information 1305 from the segment information 1500 and the product master information 1300 (step 3230).
  • the signage processing module 1202 transmits the acquired signage information to the signage terminal 103 and displays it (step 3240).
  • the signage information for example, information such as the product name, price, advertisement, etc. of the product ID corresponding to the product basket ID, information such as the product name, price, advertisement, etc. of the product associated with the corresponding product ID (for example, onion When you pick it up, information about curry roux, which is a dish using this onion) is remembered.
  • the signage information is transmitted by the signage processing module 1202
  • the signage information 420 stored in the signage terminal 103 is transmitted in response to the transmission of the information specifying the signage information such as the product ID from the signage processing module 1202. It may be configured to read out.
  • the signage terminal 103 is, for example, a tablet terminal, and may be configured to display signage information on its own display.
  • a single board computer such as a Raspberry Pi or a computer displays signage information on an external display. It may be configured to be displayed.
  • the signage processing module 1202 may be configured to transmit the signage information and information specifying the signage information such as product IDs in Push format. It may be configured to acquire information from the processing module 1202 in a pull format.
  • FIG. 33 is an example of a reference model 3300 of hardware.
  • a reference model 3300 of hardware usually, when trying to realize an unmanned store, it is necessary to individually set the positions and number of multiple camera sensors for each store according to the store structure and product layout, which requires labor, time, and cost. will be required.
  • a product shelf installation frame 2100 having a predetermined size is prepared, and a camera device 506 is installed at a predetermined position as shown in FIG.
  • a camera device 506 is installed at a predetermined position as shown in FIG.
  • the configuration of the walk-through (for indoor use) 3310 using the product shelf installation frame 2100 has been described, but it is also possible to adopt the configuration of the walk-through (for outdoor use) 3320 using a larger container. Also in this case, it is possible to install the camera device 506 at a predetermined position in the container in the same manner as the product shelf installation frame 2100, thereby simplifying various initial settings.
  • a predetermined model such as the configuration of such an unmanned shop and the number of camera devices 506 and 506a can be used as if selecting a cloud service.
  • An instance family 3301 represents the configuration of unmanned stores and mobile orders.
  • the instance type 3302 indicates a type indicating each configuration, such as IaaS (Infrastructure as a Service) in cloud services.
  • An image 3303 shows the assumed store format when installing each instance type.
  • a camera 3304 indicates the presence or absence of a camera.
  • the cameras may include camera device 506 and camera device 506a.
  • a multi-person correspondence 3305 indicates whether or not a plurality of customers can be discriminated. Indoors 3306 and outdoors 3307 indicate indoor stores and outdoor stores. The approximate size indicates the size of this merchandise management system 1 . For example, in a simple product management system 1 in which the multi-person correspondence 3305 is "None" and there is only one customer, only the weight sensor unit 105 is used, and the camera sensor unit 104 and/or the camera sensor unit 104a is not installed. , a space-saving and inexpensive system can be constructed.
  • the management server 101 accepts the selection of the instance type 3302 from the user, and after delivering necessary hardware such as the product shelf installation frame 2100, the camera device 506, and the camera device 506a from the warehouse or the like to the store in some cases, After installing these, the management server 101 transmits the initial setting information and the initial setting procedure to the camera management terminal 530, the camera management terminal 530a, and the data aggregation transmitter 630, and these terminals and devices execute them. , the initial settings for the camera sensor unit 104, the camera sensor unit 104a, and the weight sensor unit 105 are completed.
  • the control server 101 on the cloud is automatically sent to the management server 101 via WiFi (or LTE) modem.
  • WiFi or LTE
  • an ID and device information assigned to each device or device are transmitted to the management server 101 .
  • the management server 101 sends setup data and a setup program corresponding to each device and device based on the configuration specified by the selected instance type 3302 to each device and device specified by the transmitted ID and device information. etc. and run the setup procedure.
  • the management server 101 on the cloud can grasp the setting status and the operating status.
  • remote operation is possible in which the management server 101 performs operations such as rebooting and resetting of the camera sensor unit 104, the camera sensor unit 104a, and the weight sensor unit 105.
  • the management server sends information (each product basket ID) specifying a plurality of microcomputers 710 of weight sensors (or weight sensor devices 608) and setting information to a data aggregation transmitter 630.
  • the data aggregation transmitter 630 executes the setting of the plurality of microcomputers 710 in the management server.
  • the camera device 506a may be installed at a position different from that of the camera device 506. FIG.
  • the camera sensor unit 104 stores the product basket ID that identifies the microcomputer 710 of the weight sensor unit 105 in association with the coordinate information in the product shelf installation frame 2100 as shown in FIGS.
  • the product basket IDs on the product shelf AS01 are all in the range enclosed by the coordinates (350, 0) (350, 500) (800, 500) (800, 0) in AS01_A, AS01_B, and AS01_C. are associated.
  • FIG. 34 is an example of an order management screen 3400.
  • the estimate display module 1106 of the management server 101 manages the user's order history.
  • a history 3401 of picking up the product and a history 3402 of returning the product to the product basket are displayed. I understand. Also, there is a history 3403 of picking up caramel waffles, and it is displayed that the total amount 3404 is 162 yen.
  • FIG. 35 is an example of a product purchase screen. It is an example of a screen displayed on the mobile terminal 102 identified by the user ID associated with the customer who picks up the product from the product basket.
  • a screen 3500 is an example of a screen displayed when it is detected that two candies have been taken from the product basket. One piece of white chocolate and two pieces of candy are displayed for the product 3501 .
  • a screen 3550 is an example of a screen displayed after it is detected that one candy has been returned to the product basket.
  • a product 3502 displays one white chocolate and one candy.
  • the order in which the purchased items were placed in the basket is unknown.
  • in-store information such as which merchandise shelf was visited in front of which merchandise in what order, what items were picked up and returned, and as a result, what items were purchased in what order, etc. I keep track of everything in chronological order. As a result, it is possible to obtain more detailed behavior and purchase data, and for products that you picked up but did not buy or products that have been on the shelf for a long time, you can issue coupons that encourage you to purchase them again. , the history of interest can be displayed on the application.
  • the attribute information and behavior tracking in the store enable the customer to reach the front of the product shelf. When they arrive, it is possible to display signage information that matches their past purchase history, or to display a coupon that encourages upselling on the signage.
  • dynamic pricing and dynamic offers are performed, such as displaying the discount amount to which the coupon price is applied on the electronic price tag for each customer, and using the amount displayed by the quotation display module 1106 as the discount price. is also possible.
  • the camera sensor unit 104, the camera sensor unit 104a, and the weight sensor unit 105 can be used to realize a mechanism for easily managing sales of various merchandise.
  • setting information and setting procedures are sent from the management server 101 in a push format to the data aggregation transmitter 630 and the camera management terminal 530. And by transmitting to the camera management terminal 530a and performing initial setting, it is possible to easily introduce the merchandise management system 1 such as an unmanned terminal.
  • Example 2 of the merchandise management system 1 according to the present invention will be described. In order to avoid duplication of description, mainly differences from the first embodiment will be described.
  • Example 2 may be implemented in combination with Example 1, or may be implemented separately.
  • FIG. 36 the situation inside the store to which the second embodiment can be applied is shown divided into two (A) and (B).
  • the situation inside the same store is photographed from the same viewpoint at different times.
  • a plurality of product shelves are installed in the store. On each shelf, multiple items are displayed for sale. Between each product shelf is a passage where customers can freely walk around.
  • a store refers to a facility that provides goods or services for economic activities.
  • a store only needs to have at least a space for installing product shelves, and does not necessarily require a wall or ceiling surrounding it.
  • a store may be provided as a single section of a building, such as a shopping center, department store, outlet mall, or the like.
  • the store may be provided as an entire building, such as a small supermarket or a sole proprietorship store.
  • the store may be provided as an outdoor section without buildings.
  • Articles refer to goods that are traded as objects of economic activity within stores.
  • Articles are tangible objects such as food, beverages, stationery, and clothing, for example.
  • This tangible object also includes any kind of storage medium that temporarily stores data, programs, or the like.
  • This tangible object can also include any medium for service provision.
  • the product shelf refers to any structure for displaying products.
  • the product shelf may include bars for displaying products in one or more stages in the vertical direction.
  • the bar may have one end fixed to the main body of the product shelf and the other end serving as a free end to hook the product.
  • the product shelf may include plates for displaying products in one or more stages in the vertical direction.
  • the board has a substantially horizontal top surface and is fixed at one end to the body of the shelf and may carry one or more items on its top surface.
  • the product shelf may include product baskets for displaying products in one or more stages in the vertical direction (see FIG. 22, etc.).
  • a sensor for detecting or calculating the weight of the displayed product can be installed on each shelf of the product shelf.
  • a sensor that detects the weight of a product hooked on a bar on a product shelf is installed in association with the bar.
  • a sensor that detects the weight of the product placed on the plate of the product shelf or the product basket is installed in association with the plate or product basket. The sensor can quantify and output the weight of the detected bar or board or product basket, and transmit the value to the management server 101 .
  • the senor is a weight sensor.
  • the sensor is a load cell, an electromagnetic balance sensor, or the like.
  • the sensors can include sensors that are available today as well as sensors that are available in the future.
  • this sensor is not limited to directly detecting weight.
  • this sensor may detect a different amount of displacement than weight, and calculate the change in weight based on the amount of displacement.
  • each stage of the product shelf is provided with a weight sensor for directly detecting the weight of the product placed on the bar or plate of the product shelf or the product basket.
  • This weight sensor may be the weight sensor device 608 (see FIGS. 7 and 8) of the weight sensor unit 105 used in the first embodiment.
  • the weight sensor device 608 detects in advance the weight of the bar or plate on the product shelf or the weight of the product basket with nothing placed on it as an initial value, and transmits the initial value to the management server 101 .
  • the initial value is not limited to 0g.
  • the weight sensor device 608 periodically detects the weight of one or more items placed on each shelf (e.g., bar or plate or basket of items) at predetermined intervals to 101. Therefore, based on the detection value of the weight sensor device 608, the amount of change in the weight of each shelf on the product shelf is periodically transmitted to the management server 101 at predetermined intervals.
  • This information can be stored in any storage device associated with management server 101 .
  • two types of cameras are provided in the store to photograph the inside of the store.
  • One is a camera (first camera sensor) that functions as a camera that detects the customer's position in the store.
  • This camera may be the camera device 506 of the position detection camera sensor unit 104 of the first embodiment.
  • the camera device 506 periodically acquires the customer's movement trajectory (for example, walking trajectory) in the store at predetermined intervals and transmits it to the management server 101 .
  • One is a camera (second camera sensor) that captures the appearance of a customer in a store, applies a human skeleton model to the captured image, and extracts characteristic portions.
  • This camera may be the camera device 506a of the skeleton detection camera sensor unit 104a of the first embodiment.
  • the camera device 506 a periodically extracts feature points of customers in the store at predetermined intervals and transmits them to the management server 101 .
  • the skeleton detection module 510a of the camera sensor unit 104a may calculate estimated hand points and the like based on the feature points, and transmit the values to the management server 101.
  • the skeleton detection processing module 1102a of the management server 101 may calculate estimated hand points and the like based on the transmitted photographed image or feature points.
  • the position coordinates of camera device 506 and camera device 506a are known to management server 101 that receives these outputs. Therefore, the management server 101 can mutually register or coordinate-transform the position coordinates of the captured images.
  • positional coordinates can include both the position (x, y, z) in the three-dimensional space and rotation information ( ⁇ , ⁇ , ⁇ ) as parameters of the camera. . Therefore, based on the images captured by these cameras, the movement trajectory of each customer and the feature points based on the skeletal model of each customer are periodically transmitted to the management server 101 so that they are associated with each other (Fig. 11). These information can be stored in any storage device associated with management server 101 .
  • the management server 101 can collectively associate the person ID, chronological position information, and chronological skeleton information with each customer in the store.
  • the skeleton information includes the position information of the feature parts (head, neck, shoulder, elbow, wrist, etc.) obtained by applying the skeleton detection module on the captured image, and the position information obtained by calculation using this feature part. and the position information of the feature (such as a hand).
  • the output from the camera sensor unit 104 for position detection and the output from the camera sensor unit 104a for skeleton detection are separately transmitted to the management server 101, but in another embodiment, After integrating the output of the camera sensor unit 104 for position detection and the output of the camera sensor unit 104a for skeleton detection, the outputs may be combined and transmitted to the management server 101 .
  • the skeleton detection camera sensor unit 104a transmits information on the estimated position coordinates of the characteristic portion of the skeleton and the hand to the position detection camera sensor unit 104a. After that, the position detection camera sensor unit 104 may coordinate-transform these pieces of information, associate them with the person's coordinate information, and transmit these pieces of information to the management server 101 .
  • the position detection camera 104 (camera device 506) and the skeleton detection camera 104a (camera device 506a) are installed in the store as separate cameras (see FIG. 36A).
  • Each camera device 506, 506a may capture a subject as a still image (photograph) and acquire, record, or output the still image data.
  • each camera may capture a subject in motion picture format and acquire, record, or output still images from the motion picture format file. Since a moving image can be understood as a series of still images arranged in chronological order, the still images are electronically captured by each camera.
  • Each of the camera devices 506 and 506a has a difference in camera size (change in small size, large size, etc.), a difference in color information of still images captured by the camera (changes in bit number of RGB, full color, true color, etc.), Differences in camera shooting methods (regular shooting, infrared shooting, changes in depth cameras that acquire depth information, etc.), differences in camera installation positions (changes in the upper, side, or lower part of the store), etc. It can vary depending on the embodiment.
  • Each camera device 506, 506a has a POV (Point-Of-View) or "viewpoint”, and electronically photographs an object within the FOV (Field-Of-View) or "field of view” through the respective POV. go to Preferably, each camera device 506, 506a has a pre-fixed POV/FOV for each of the plurality of product shelves in order to optimally photograph the movement of people around each product shelf. However, each camera device 506, 506a can be configured with variable POV/FOV.
  • Each camera device 506, 506a may be installed so as to photograph a person from the front side at approximately the same height.
  • the skeleton detection model can be applied in a two-dimensional manner to the upper half of the body and the lower half of the human body on the photographing screen.
  • the places where cameras can be installed are limited.
  • the POV/FOV of each camera tends to be obstructed.
  • the detection accuracy is greatly affected.
  • Each camera device 506, 506a may be installed so as to photograph a person looking down from above.
  • a three-dimensional skeleton detection model is applied. Therefore, when detecting feature points in the upper and lower bodies of a person, the image analysis may become more difficult.
  • the POV/FOV of each camera above the person is less likely to be disturbed.
  • a wider range of camera installation locations can be secured. In particular, since it is possible to avoid people from overlapping each other on the captured image, detection accuracy can be improved.
  • camera devices 506 and 506a installed on the ceiling or above the store are used to photograph the inside of the store as if looking down (see (A) in FIG. 36).
  • a skeleton detection model is applied based on a photographed image, an image photographed from above and the skeleton coordinates (correct data) appearing in the image are given for learning.
  • transfer learning/fine tuning of deep learning can be used.
  • a device is added to apply the skeleton detection model as simply as possible. Thereby, the skeleton can be detected with relatively high accuracy based on the images captured by the camera devices 506 and 506a looking down from above.
  • each camera device 506, 506a is capable of photographing the customer from the side, below, or from other positions within the store.
  • a three-dimensional sensor or TOF (Time of Flight) sensor that measures the distance to the subject may be used as the position detection camera device 506, a three-dimensional sensor or TOF (Time of Flight) sensor that measures the distance to the subject may be used.
  • the three-dimensional sensor can determine the distance to the object based on the time it takes for the pulsed light to be projected and the pulsed light to be reflected by the object and returned.
  • distance information of a subject can be recorded for each pixel (picture element) or for each group of pixels on a photographing screen.
  • a depth camera or a three-dimensional camera which is a camera with a built-in depth sensor that acquires depth information
  • the 3D camera may be composed of an RGB camera and an infrared camera to obtain depth information in addition to color information, thereby enabling three-dimensional recognition.
  • part of the legs could be hidden in the image due to changes in posture such as crossing the front and back legs.
  • Invisible parts tend to cause discrepancies between the detection result and the correct answer, and there is a risk that learning will be difficult to progress.
  • the lower body tends to be hidden by the upper body, so it may be difficult to match the output quality of the upper and lower bodies. was there.
  • Patent Literature 2 describes that "the management server 10120 detects a person's hand by skeletal analysis performed on the image of the person included in the captured image (see paragraph 0079)".
  • the hands and fingers are relatively small and perform complex movements, prior learning processing is difficult, actual work takes a long time, and errors are likely to occur.
  • the wrist is the part that connects the arm of the human body and the palm of the hand, and is associated with a joint (radial carpal joint).
  • the hand at the tip of the wrist typically has five fingers (first to fifth fingers), and each finger is associated with multiple joints (first to fourth joints). It is Therefore, the wrist, hand and fingers perform complex movements to vary their positions. As a result, applying a skeleton detection module to captured images to track fine movements of the hands and fingers presents unique difficulties.
  • a control device for example, the skeleton detection module 510a of the skeleton detection camera sensor unit 104a or the skeleton detection processing module 1102a of the management server 101 displays a human skeleton model on the screen captured by the camera device 506a. Apply the skeleton detection module based on At this time, feature points are detected only for the customer's upper body. The customer's lower body is excluded from application of the skeleton detection module.
  • This embodiment utilizes the fact that the movement of the human body that contributes to product pick-up is limited to the upper body, and that the movement of the lower body can be substantially ignored.
  • the preliminary learning process is made easier, the actual work time is shortened, the occurrence of errors is suppressed, and the reliability of the output is improved. can enhance sexuality.
  • the control device displays the skeleton detection module on the screen captured by the camera device 506a.
  • the parts beyond the wrist (hands and fingers) of the human body are excluded from detection targets.
  • the position of the part beyond the wrist is calculated.
  • This embodiment utilizes the fact that the position of the hand can be estimated based on the skeletal structure of the human body if the characteristic points of a part of the upper body (eg, shoulder, elbow, wrist) can be acquired.
  • a depth camera or a three-dimensional camera that photographs the inside of the store from the ceiling photographs the user, and it is determined which product on which shelf the user picked up.
  • the position information of the hand and fingers that overlap the shelf is not used, and the position of the hand is calculated and obtained from the position coordinate information of any part of the wrist, elbow, or arm that does not overlap the shelf.
  • two positions of the elbow and wrist of one arm used for picking up the product in the customer's upper body can be detected. is detected, and other feature points such as hands and fingers are calculated based on their positions.
  • the skeleton detection module on the screen captured by the camera device 506a of the camera sensor unit 104a, feature points are detected at four positions of the left and right elbows and the left and right wrists of the customer's upper body.
  • other feature points such as hands and fingers are calculated based on these positions.
  • six positions of left and right shoulders, left and right elbows, and left and right wrists of the customer's upper body are detected by applying the skeleton detection module on the screen captured by the camera device 506a of the camera sensor unit 104a. is detected, and other feature points such as hands and fingers are calculated based on their positions. More preferably, by applying the skeleton detection module on the screen captured by the camera device 506a of the camera sensor unit 104a, the head, left and right shoulders, left and right elbows, and left and right wrists of the customer's upper body. Feature points are detected by limiting to a total of seven positions, and other feature points such as hands and fingers are calculated based on these positions.
  • the skeleton detection module on the screen captured by the camera device 506a of the camera sensor unit 104a, the head, neck, left and right shoulders, left and right elbows, left and right sides of the customer's upper body.
  • Feature points are detected by limiting to a total of eight positions on the wrist, and other feature points such as hands and fingers are calculated based on these positions.
  • characteristic points of the human body when applying the skeleton detection module, which has been applied in the prior art are illustrated.
  • 18 feature points are detected from the upper body and lower body of the human body.
  • the human body preferably includes at most the head (1), neck (2), left and right shoulders (3, 6), left and right elbows (4, 7), left and right wrists (5, By detecting the eight positions (thick line parts) in 8), the positions of other parts of the human body (hands, neck, etc.) can be calculated.
  • each feature point is based on pixel coordinates in the captured image.
  • the neck (2 ) is obtained by calculation.
  • the positions of the extracted features (head (1), left and right shoulders (3, 6), left and right elbows (4, 7), left and right wrists (5, 8)), left and right wrists are calculated.
  • the positions of the body such as the chest and back are excluded from the detection targets, but the front-back direction of the human body can be detected or calculated.
  • the positions of the arm, forearm, and upper arm can be calculated.
  • the "arm” refers to the portion of the human body from the shoulder (3, 6) to the wrist (5, 8).
  • the “forearm” refers to the part of the human body that is closer to the wrist (5, 8) when the arm is divided into two sections with the elbow (4, 7) as a boundary.
  • the "upper arm” refers to the part of the human body that is closer to the shoulders (3, 6) when the arm is divided into two sections with the elbows (4, 7) as a boundary.
  • “Forearm” and “upper arm” can be determined linearly based on the position coordinates in the three-dimensional space of the shoulder (3, 6), elbow (4, 7), and wrist (5, 8).
  • the "forearm” and “upper arm” are obtained as simple straight lines based on the skeletal structure of the human body.
  • a "forearm center point” can be obtained by calculation as the position of the center that bisects the length of the forearm from the elbows (4, 7) to the wrists (5, 8).
  • an "upper arm center point” as the position of the center that bisects the length of the upper arm from the elbow (4, 7) to the shoulder (3, 6).
  • the "forearm” and the "forearm center point” are calculated.
  • the length of the forearm from the elbow (4, 7) to the wrist (5, 8) is divided into three equal parts, and the one closer to the wrist (5, 8) is calculated you may ask.
  • the length of the forearm from the elbow (4, 7) to the wrist (5, 8) is divided into three equal parts, and the one closer to the shoulder (3, 6) is calculated as you may ask.
  • the length of the forearm from the elbow (4, 7) to the wrist (5, 8) may be divided into a plurality of sections, and any section may be calculated. .
  • neck (2) can be found as the part of the human body that connects the head and torso.
  • the position of the neck (2) may be calculated based on the positions of the left and right shoulders (3, 6). Since the length (shoulder width) of the left and right shoulders (3, 6) usually does not change greatly due to the movement of the human body, by obtaining the intermediate position coordinates in the three-dimensional space, the horizontal neck (2 ) can be determined.
  • the position of the neck (2) in the vertical direction can be determined based on the positions of the left and right shoulders (3, 6). For example, it may be the horizontal central position of the positions of the left and right shoulders (3, 6) and a position lifted upward by a predetermined distance. At this time, the position of the neck (2) may be determined using the position of the head (1) and the positions of the left and right shoulders (3, 6).
  • the head (1) may be obtained as the highest part of the human body and having a predetermined size.
  • the position of the head (1) may be determined in a unified manner regardless of changes in hair style, presence or absence of hats, and the like.
  • the position coordinates of the head (1) can be obtained relatively easily.
  • the estimated hand points can be calculated based on the positions of the elbows (4, 7), wrists (5, 8), etc., which are directly obtained by image analysis performed on the captured image. .
  • the estimated point of the hand changes depending on which position of the hand is used as a reference.
  • the estimated hand points are obtained based on the actual product purchasing process. For example, an estimated point of the hand may be obtained as the central position of the palm, focusing on the action of grasping the product. Alternatively, the estimated point of the hand may be obtained as the tip of the finger when the hand is opened, focusing on the maximum reachable range of the product. Alternatively, an estimated point of the hand may be determined at another position, focusing on the action of picking up the item.
  • the "estimated point of the hand” is the distance from the elbow (4, 7) to the wrist (5, 8) when a straight line is applied along the direction of the forearm, based on the position of the elbow (4, 7). It may be obtained as a position where the length of the forearm is extended by a predetermined multiple.
  • the customer By setting an "estimated point of the hand” at a position extending from the wrist by a predetermined multiple along the forearm, the customer actually reaches out toward the product shelf and tries to grab the product. Get the approximate center point of the hand (or the tip of the hand) at . Therefore, regardless of various movements of the wrist, fingers, etc., the reference position of the hand that is going to grasp the product is acquired in a unified manner.
  • the above-mentioned "predetermined multiple” is a value derived by trial and error through various tests by the applicant.
  • the estimated point of the hand is "4/3 ” is the double extended position.
  • the estimated hand point is "1.33 ” is the double extended position.
  • the estimated point of the hand is "1.3 ” is the double extended position.
  • the predetermined multiple can change depending on how the reference point of the hand is set. For example, the predetermined multiple can change depending on whether the center position of the palm is used as the reference or the tips of the fingers when the hand is opened. Also, the proportion of hands hidden when purchasing a product may vary depending on the size, shape, etc. of the product shelf in the store of the embodiment. Therefore, the "predetermined multiple" can be modified according to the embodiment.
  • the estimated point of the hand is “4/3" times, "1.33" times, or “1.3” times the length of the forearm from the elbow to the wrist along the direction of the forearm with reference to the elbow.
  • the double-extended position may be corrected within a range of about ⁇ 5%, about ⁇ 10%, about ⁇ 15%, about ⁇ 20%, or about ⁇ 25%.
  • the estimated hand point is obtained by extending the length from the elbow to the "forearm center point" by a predetermined multiple (e.g., 8/3 times, 2.67 times, 2.7 times, etc.). may be asked.
  • the estimated point of the hand is obtained by extending the length from the "forearm center point" to the wrist by a predetermined multiple (e.g., 8/3 times, 2.67 times, 2.7 times, etc.). may be asked. That is, for example, when the distance from the elbow to the center of the forearm is 1, the distance from the elbow to the wrist is 2, and the distance from the wrist to the hand is 0.67 (elbow to wrist/3), the distance from the elbow to the hand is 2.67.
  • the predetermined multiple and the percentage of its correction can be determined in the same manner as for extending the length of the forearm.
  • the estimated point of the hand may be obtained by extending the length from "arbitrary position of the arm" to the wrist by a predetermined multiple. Furthermore, the estimated point of the hand may be obtained as one point in the three-dimensional space, or as an arbitrary spread (width/size) in the three-dimensional space. For example, the estimated point of the hand may be determined as the spread from the fingertips of the hand to the center of the palm.
  • the present embodiment can determine a "hand estimate" regardless of the gender of the customer.
  • hand size tends to be proportional to height.
  • taller people tend to have longer forearms and larger hands.
  • shorter people tend to have shorter arms and smaller hands. This applies equally to the relationship between adults and children. Therefore, this embodiment can obtain the "estimated point of the hand" regardless of the height and age of the customer.
  • a device is added so that the position coordinates in the height direction related to the "estimated point of the hand" can be obtained with relatively high accuracy. Therefore, in this embodiment, since the "estimated hand points" are obtained based on the feature points detected only on the upper half of the human body, even for customers who come to the store in wheelchairs, other customers who normally walk Similarly, we can find the "estimated point of the hand”. Therefore, this embodiment can determine the customer's "estimated hand point" without being affected by the difference between a healthy person who walks normally and a disabled person who moves in a wheelchair.
  • the "estimated hand point” can be obtained regardless of the state of the lower half of the human body. Therefore, this embodiment can determine the customer's "estimated hand point” without being affected by the difference between an able-bodied person who walks normally and a disabled person who uses crutches. Therefore, this embodiment can obtain the customer's "estimated hand point” uniformly under substantially most circumstances.
  • FIGS. 38A and 38B an application example of the skeleton detection model for the captured image is shown.
  • an application example of a skeleton detection model for each person is shown based on an image of a person below captured by a camera (for example, the camera device 506a of the camera sensor unit 104a) installed near the ceiling of the store. ing.
  • a camera for example, the camera device 506a of the camera sensor unit 104a
  • a plurality of feature points for example, 18 points
  • the detection accuracy is greatly disturbed at the feet. Also, it is found that detection is difficult for small parts of the hand and fingers beyond the wrist.
  • a plurality of feature points (e.g., eight) are detected in a more limited number limited to the upper body. (See (B) of FIG. 37).
  • a decrease in the accuracy of application of the skeleton detection model is avoided.
  • positions that cannot be obtained simply by applying the skeleton detection model can also be obtained.
  • FIG. 39 an example of a skeleton detection model applied to a captured image is shown.
  • a normal skeleton detection model when applied, there are cases where the wrist and beyond are not output. In the direction of the forearm, if only the position of the wrist is detected, the distance to the product is too large.
  • detection errors and setting errors are likely to occur when determining whether to pick up a product based on the position of the wrist. As a result, there is a high risk of making an incorrect pick-up determination with other nearby customers. In this embodiment, since the estimated points of the hand are obtained by computation, such risk is minimized.
  • a device is added so that the position coordinates in the height direction related to the "estimated point of the hand" can be obtained with relatively high accuracy.
  • FIG. 40A a case is illustrated in which the part beyond the wrist is hidden by the top plate of the product shelf when the skeleton detection model is applied. If an attempt is made to detect the position of the wrist in this state, the wrist may be erroneously detected on a part of the product shelf (top plate, etc.) as illustrated in FIG. 40(B). As a result, when an attempt is made to obtain position coordinates in the height direction (Z-axis direction) at pixel positions on the image in order to obtain the position coordinates of the wrist, a deviation may occur in the detection target.
  • the Z-axis coordinate is not the positional coordinate of the wrist, but the part of the product shelf (top board, etc.) Location information may be obtained incorrectly. In that case, there is a possibility that the position coordinates of the wrist cannot be obtained accurately.
  • the position between the elbow and the wrist can be used instead of the position of the wrist when acquiring the position information of the hand or wrist.
  • a "forearm center point" may be obtained as a center position that bisects the length of the forearm from the elbow to the wrist, and the depth may be acquired at that position.
  • the wrist and part of the forearm may be hidden when trying to pick up the product on the shelf.
  • the "forearm center point" is rarely hidden in the product shelf. Therefore, in this embodiment, for example, when a customer approaches a product shelf, the position of the "forearm center point" may be obtained as wrist position information (especially depth).
  • the position at which the depth is acquired may change based on the size of the plate on each shelf of the product shelf. Therefore, in this embodiment, the position of the wrist in the Z-axis direction is not limited to the position of the "forearm center point".
  • the length of the forearm from the elbow to the wrist may be divided into thirds, the position closer to the wrist or the side closer to the shoulder may be obtained, and the position in the Z-axis direction may be acquired at that position.
  • an arbitrary position may be obtained within the length of the forearm from the elbow to the wrist, and the position in the Z-axis direction may be acquired at that position.
  • the position information of the "forearm center point” is acquired, and the position information of other parts of the upper body, such as the shoulder, the upper arm center point, and the elbow, is acquired, and these values are obtained. They may be used in combination. Therefore, in this embodiment, when a hand is put into an arbitrary stage of the product shelf, even if the tip of the wrist that is trying to grasp the product is hidden by the top board or the like above, the Z axis Directional position can be determined relatively accurately.
  • the process of determining the estimated hand points in this example is illustrated.
  • This step can be performed by the skeleton detection module 510a of the skeleton detection camera sensor unit 104a (see FIG. 5B).
  • the skeleton detection module 510a receives an image captured by the camera device 506a as an input (step S1).
  • This captured image is, for example, an RGB image.
  • the skeleton detection module 510a obtains the coordinates (X, Y coordinates) of the skeleton for a predetermined part based on the photographed image (step S2). For example, the (X, Y coordinates) of the elbow and wrist are obtained. Next, the skeleton detection module 510a calculates (X, Y coordinates) of the "forearm center point” based on the (X, Y coordinates) of the elbow and wrist (step S3). Next, the skeleton detection module 510a acquires the "forearm center point" and/or the depth (Z coordinate, etc.) at the elbow position (step S4).
  • the skeleton detection module 510a extends the length of the forearm by a predetermined multiple with the elbow as a reference (step S5). For example, the skeleton detection module 510a determines the length from the elbow to the "forearm midpoint" (or from the "forearm midpoint” to the wrist) and extends that length by 2.67. As a result, the skeleton detection module 510a calculates the coordinates (X, Y coordinates) of the "estimated hand point”. Next, the skeleton detection module 510a acquires the Z coordinate (depth) of the elbow and the "forearm center point” (step S6), and similarly multiplies this by 2.67 to obtain the Z coordinate of the "estimated hand point". Calculate the coordinates. In this way, the skeleton detection module 510a obtains the positional coordinates (X, Y, Z coordinates) in the three-dimensional space of the "estimated hand point" from the coordinates of the elbow and the "forearm center point”.
  • a skeleton detection model is actually applied to the upper half of the human body based on the image captured by the camera device 506a of the camera sensor unit 104a for skeleton detection installed in the store.
  • the skeleton detection module 510a can detect eight feature points of the head, neck, both shoulders, both elbows, and both wrists.
  • Various learning operations are performed in advance for the skeleton detection model to be applied on the captured image.
  • easy-to-detect feature points are based on the movement of people in the store (walking, etc.), the actual product purchase process, etc.
  • the motion of the human body is considered.
  • the human body can perform various actions such as bending the waist, bending the body, moving the arms up and down, moving the arms back and forth, and crossing the arms.
  • learning work is performed by concentrating on the expected movements of people in the store, thereby facilitating the operation.
  • learning is mainly based on normal walking postures in a store, postures with hunched backs, etc., and special motions such as somersaults are excluded from the learning content in advance.
  • the skeleton detection module 510a of the camera management terminal 530a extracts still images based on characteristic shapes, figures, contours, lines, vertices, colors, etc., particularly for the head, shoulders, elbows, and wrists of the human body. image analysis may be performed. At this time, the skeleton detection module 510a may classify the received still image by pixel or pixel set. Characteristic targets relating to the head, shoulders, elbows, and wrists may be identified by identifying shapes, figures, contours, lines, vertices, colors, etc. for each pixel or each pixel set.
  • the skeleton detection module 510a preferably undergoes image analysis training for various images in advance by machine learning using AI.
  • image analysis we actually perform image analysis, and perform training to identify and extract targets (shapes, figures, contours, lines, vertices, colors, etc.) from images. Training is performed on, for example, hundreds, thousands, or more images of different targets, accumulating various results. Statistical data may then be calculated and generated for the results. After a high identification rate, for example, about 99% or about 99.9% or more, is obtained through training, image processing is actually performed to identify the target from the image. good too.
  • Various image information may be used as training data in the training performed by machine learning using AI.
  • machine learning may be used to generate a judgment model whose input is a still image and whose output is information about the shape, figure, contour, line, vertex, color, and the like of a characteristic object.
  • the training may take into account what the store looks like at different times of the day. For example, it is possible to learn the difference in how shadows appear in the daytime when light shines into the store and in the middle of the night when only the lights in the store are used. In addition, it may be possible to learn about various in-store situations, such as when there are no people in the store, when there are only a few people in the store, and when there are many people in the store.
  • a characteristic target may be obtained as an output.
  • the skeleton detection module 510a may create a confidence level for each feature point based on data accumulated during prior learning work. For example, when the detected position matches the pre-learned position at almost the same rate (approximately 100% or approximately 99%), highly reliable information may be given. Also, information with lower reliability may be given as the deviation of the detected position becomes larger compared to the position learned in advance.
  • the position pixel coordinates in the image
  • the reliability (0 A value from 1 to 1, a value from 1 to 10, etc., where the higher the value, the higher the accuracy of the position is expected to be displayed).
  • the latter may be displayed by changing the color of the position of the joint in the image. For example, green may indicate high confidence, yellow may indicate medium confidence, and orange may indicate low confidence.
  • the camera device 506a of the skeleton detection camera sensor unit 104a installed on or above the ceiling of the store is used to photograph the customer looking down, thereby minimizing the obstruction between the subject and the camera. (See (A) of FIG. 36).
  • a part of the customer's body such as arms and shoulders may not be captured completely depending on the customer's standing position, how the customer overlaps with other customers, and the like.
  • a plurality of camera devices 506a are installed so that each product shelf installed in the store can be photographed optimally (see FIG. 36A). Therefore, it is possible that at least two camera devices 506a capture images of customers near the same product shelf almost simultaneously from different POV/FOV. Therefore, if the image taken from one camera device 506a alone cannot sufficiently detect the predetermined skeleton of the upper body of a certain customer, the skeleton detection module 510a uses the image taken from another camera device 506a to , the missing part may be compensated for.
  • FIGS. 43A and 43B captured images of the same customer in the store captured from POV/FOV of two different camera devices 506a are illustrated.
  • (A) of FIG. 43 the appearance of the customer facing the product shelf is photographed from the front side, and the appearance of one arm being lowered is shown.
  • (B) of FIG. 43 the customer facing the product shelf is photographed from the side, and one arm is lowered and the other arm is bent.
  • (A) in FIG. 42 in which the customer facing the product shelf is photographed from the front, is preferable. It can happen. In that case, an image captured by another camera device 506a that captures the same customer almost simultaneously may be used as an auxiliary.
  • each camera device 506a was able to photograph the same person at approximately the same time.
  • the position coordinates of each camera device 506a are known to the camera management terminal 530a that receives each captured image, and the position coordinates on each captured image can be mutually registered or coordinate-transformed.
  • the skeleton detection module 510a uses the features of the skeleton of the person photographed in FIG. 43(B). At that time, the positional coordinates of the characteristic portion of FIG. 43B are converted into the positional coordinates of FIG. positions may be superimposed.
  • FIGS. 44A and 44B an example is shown in which the positions of the skeleton detected based on the images captured by the two camera devices 506a are summarized on the same coordinates. For example, when each joint detected from each image can be superimposed on each other's position coordinates, each is linked to the same joint.
  • the skeleton detection module 510a groups the position coordinates of the joints detected from each camera device 506a, especially based on the coordinates of the head, of the other joints. do.
  • the skeleton detection module 510a then superimposes the coordinates of the head, neck, both shoulders, both elbows, and both wrists detected from each camera device 506a, and associates the position coordinates of the joints detected from each camera with each other. .
  • the head position coordinates obtained from the two camera devices 506a overlap each other within a predetermined threshold, for example, within the range of 100% to 99%, or within the range of 100% to 95%, Alternatively, when an overlap within the range of 100% to 90% is obtained, both are tied to each other. The same is true for the neck, shoulders, elbows, wrists, and so on.
  • FIG. 44B illustrates a case where the skeleton detection module 510a aggregates the position coordinates of each feature acquired from the two camera devices 506a into one position coordinate.
  • the skeleton detection module 510a predetermines the order of priority when combining the two position coordinates in the three-dimensional space into one. For example, a feature based on a still image taken from the front of a product shelf is prioritized over a feature based on a still image taken at an angle (e.g., from the side) to the product shelf.
  • the skeleton detection module 510a can supplement the missing part with the photographed part.
  • the skeleton detection module 510a applies the skeleton detection module based on a captured image obtained from a camera device 506a to determine the customer's upper body. , and the "estimated point of the hand" may be calculated.
  • skeleton detection module 510a applies skeleton detection module based on a combination of two or more captured images obtained from two or more camera devices 506a. By doing so, the features of the customer's upper body may be detected and the "estimated point of the hand" may be calculated. Therefore, in this embodiment, it is possible to acquire the "estimated point of the hand" that serves as a reference when the customer picks up the product under various circumstances.
  • pick-up means that one or a plurality of products displayed on a product shelf in a store are picked up by a customer.
  • the shape of the hand, the position of the fingers, and the like are arbitrary, and the direction, height, and the like in which the object is picked up are arbitrary.
  • the position coordinates of the “estimated hand point” acquired by the skeleton detection module 510 a of the camera management terminal 530 a are transmitted to the management server 101 .
  • the information may be transmitted to the management server 101 after being integrated with the information acquired by the position detection module 510 of the camera management terminal 530 .
  • the management server 101 compares the already known position of the product shelf (position of the product) with the position of the "estimated point of the hand” in the three-dimensional space. can be determined.
  • the determination is made based on the degree of proximity of both three-dimensional coordinates within the same three-dimensional space. For example, the range of 100% to 90%, the range of 100% to 95%, or the range of 100% to 99% with respect to the position of the product shelf (product position) If it is determined that the positions of the "estimated points" overlap, it can be determined that the hand is near the item on the shelf. Or, for example, for a pre-determined threshold associated with each item on a shelf, if an "estimated hand point" is detected above that threshold, determine that a hand is near that item. be able to. In these cases, the customer quantity determination module 1105 of the management server 101 can estimate/assume the occurrence of an event in which a product is picked up.
  • the output of the weight sensor device 608 associated with the product shelf is sent to the customer quantity determination module 1105 of the management server 101 . Therefore, the management server 101 can further combine and use the output values from the weight sensor device 608 to determine with high accuracy whether or not an event in which the product is actually picked up has occurred.
  • each stage of the product shelf incorporates a weight sensor device 608 that detects the weight of the product placed on the respective bar or plate or product basket (FIGS. 7 and 8). 8 etc.).
  • the customer number determination module 1105 of the management server 101 periodically receives the output of the weight sensor device 608 at predetermined intervals. Generally, the weight of the item itself does not change over time. Therefore, as long as the weight sensor device 608 operates according to specifications, the customer quantity determination module 1105 of the management server 101 can constantly track whether or not there is any product on the product shelf.
  • the customer number determination module 1105 of the management server 101 converts the weight data periodically (through loop processing) obtained by the weight sensor device 608 on each stage of the product shelf into "weight time-series data (part of weight information). )”.
  • the weight sensor may acquire weight data for each stage of the product shelf at a cycle of 100 ms.
  • the camera devices 506 and 506a are provided near the product shelf, and the surroundings of the product shelf can be photographed periodically (by loop processing).
  • the period in which the weight sensor device 608 detects the weight and the period in which the camera devices 506 and 506a take images need not match, but should be short enough to sequentially track the movement of people in the store. and
  • the camera device 506a may always take an image of a person near the product shelf periodically at predetermined intervals. Alternatively, when the camera device 506a detects that a person approaches the product shelf, the output of the camera device 506a may be used as a trigger to capture an image of the person. Alternatively, when the camera device 506a detects that a person has approached the product shelf and has extended his or her arm toward the product shelf, the output of the camera device 506a can be used as a trigger to capture an image of the person. good.
  • the camera management terminal 530a or the management server 101 receives the input of the captured image transmitted from the camera device 506a as a trigger, and the position coordinates (X, Y , Z coordinate) may be calculated.
  • the processing (flow) of customer number determination performed by the customer number determination module 1105 of the management server 101 has a flow consisting of the following steps.
  • the customer number determination module 1105 determines in advance the distance between the average position of the customer's hand and the product segment or product on the product shelf (or a threshold for determining that the hand is close to the product). Measure or calculate and store the value (preprocessing).
  • the customer number determination module 1105 receives captured images tracking the positions of each customer in the store by the camera device 506 of the camera sensor unit 104 for position detection.
  • the customer number determination module 1105 receives captured images of each customer in the store by the camera device 506a of the skeleton detection camera sensor unit 104a.
  • the customer number determination module 1105 applies the skeleton detection processing module to the captured image from the camera device 506a, and the position of the estimated point of the hand calculated based on the predetermined characteristic part of the upper body of the detected customer. Get coordinates.
  • the customer number determination module 1105 may combine the output from the position detection camera-sensor unit 104 and the output from the skeleton detection camera-sensor unit 104a in one three-dimensional space. These pieces of information are aggregated into one person ID for each customer and accumulated in chronological order.
  • the customer population determination module 1105 may utilize the calibration information to transform each customer's hand position (in the skeleton detection information) from pixel coordinates in the image to coordinates in the position tracking space. .
  • the customer count determination module 1105 may match the location of each customer in the location tracking information with the location of each customer in the skeleton detection information to determine the person ID of the customer in the skeleton detection information.
  • the customer quantity determination module 1105 knows the position coordinates of each product shelf in the store. Therefore, it is possible to determine which of the customers in the store is reaching out to which product shelf. For example, the management server 101 calculates the distance between the estimated hand point and the product segment or product position (hereinafter, hand segment distance). Furthermore, the customer quantity determination module 1105 receives time-series weight data for each product shelf on which products are displayed, and continuously analyzes time-series changes in product weight.
  • the output of the skeleton detection camera sensor unit 104a, the output of the position detection camera sensor unit 104, and the output of the weight sensor unit 105 are transmitted to the customer number determination module 1105 of the management server 101. Examples are given.
  • the skeleton detection camera sensor unit 104a acquires an RGB image and a depth image (depth image) by photographing the inside of the store. These images can be processed by the skeleton detection module 510a at the edge device.
  • step X1 by applying the skeleton detection model to the RGB image, predetermined characteristic portions (head, neck, both shoulders, both elbows, and both wrists) are detected based on the human skeleton model. X, Y coordinates of all or any part thereof, and so on) can be obtained.
  • the depth image can be associated with the RGB image.
  • the X, Y coordinates and the depth information (Z coordinate) of the predetermined characteristic portion can be integrated.
  • step X4 by applying coordinate transformation distortion correction to this result, the distortion of the X and Y coordinates on the RGB image can be corrected.
  • X, Y coordinates and depth information (Z coordinate) of a predetermined characteristic portion can be acquired as camera coordinates.
  • step X5 the coordinates of the estimated position of the hand can be obtained by performing a predetermined calculation based on this position information. Therefore, finally, the X, Y, Z camera coordinates of the predetermined feature of the skeleton and the estimated point of the hand can be obtained.
  • the position detection camera sensor unit 104 can acquire an ID and X, Y, and Z coordinates as ToF coordinates for a person by photographing the interior of the store, as shown in step Y1. This image is processed by the position detection module 510 on the edge device side such as a PC. On the other hand, in step Y2, the position detection camera sensor unit 104 receives the output from the skeleton detection camera sensor unit 104a, and calculates the X, Y, and Z camera coordinates of the predetermined feature of the skeleton and the estimated point of the hand. can be obtained.
  • step Y3 by applying coordinate transformation correction to this result, the camera coordinates can be associated with the ToF coordinates. Furthermore, in step Y4, by combining the outputs of steps Y1 and Y3 in the same space, the skeleton and the person can be associated. Therefore, finally, the ID of the person (customer), the X, Y, and Z coordinates as the ToF coordinates of the estimated points of the head and hands can be obtained.
  • the weight sensor device 608 of the weight sensor unit 105 acquires weight data in chronological order. As shown in step Z1, this data is processed by module 610 on the edge device side, such as the Raspberry Pi®.
  • the customer number determination module 1105 of the management server 101 estimates the positions of products on product shelves in the store, which are obtained in advance, and the ID, head, and hand of a person (customer) obtained from the camera sensor unit 104 for position detection. It receives the X, Y, Z coordinates as the ToF coordinates of the point and the time series weight data obtained from the weight sensor device 608 . Therefore, by using these data in combination, it is possible to determine whether the customer's merchandise is picked up.
  • the customer number determination module 1105 can determine how many items were picked up at what time and by whom when a change occurs in which items are continuously picked up within a short period of time. can be done. Thus, in this embodiment, when multiple customers pick up one or more items that are close to each other at or near the same time, it is possible to determine which customer picked up which item and how many. Determination of product pick-up will be described in more detail below using the output of the weight sensor device 608 and the estimated points on the hand.
  • FIG. 45 changes in the output of the weight sensor device 608 and changes in the distance between the estimated point of the customer's hand and the shelf, which are sent to the customer quantity determination module 1105, are illustrated superimposed. .
  • an example of weight time-series data of each product shelf is shown in a graph.
  • the horizontal axis of this graph is time (ms) and the vertical axis is the value (g) recorded by the weight sensor device 608 .
  • the customer quantity determination module 1105 can infer that the products on the product shelf have not changed. A drop in the output of weight sensor device 608 is recorded from t2 to t4 (ms). Ultimately, a decrease in the output of the 50 g weight sensor device 608 is recorded during this period. Therefore, the customer quantity determination module 1105 can infer that one or a plurality of commodities corresponding to the weight of this difference (50 g) have been picked up.
  • the customer quantity determination module 1105 can infer that the products on the product shelf have not changed.
  • the output of the weight sensor device 608 is simplified and shown in a straight line. In practice, when a product hooked on a bar on a product shelf is picked up, a load is applied to the bar, so the output of the weight sensor does not become linear. The same is true when products are placed on the boards of product shelves or product baskets.
  • the customer number determination module 1105 performs determination by combining each hand segment distance of user 1 and user 2 and the time of weight time series data.
  • the estimated point of the hand of user 1 was away from the product shelf until around time t1, but the estimated point of the hand was closer to the product shelf from around time t1 to around time t5.
  • the time t1 is when the distance between the hand and the shelf becomes below (or above) a predetermined threshold after the user 1 begins to extend his/her hand toward the product shelf, and the hand approaches the product segment. is the time when it is determined that
  • time t5 after the hand has started to move away from the product shelf from the state in which the hand was brought close to the product segment, the distance between the hand and the shelf exceeds a predetermined threshold, and the hand moves away from the product segment. is the time when it is determined that the In the graph, the outputs of the estimated points of the hand are simplified and shown in a straight line. It should be understood that in practice the trajectory will not be straight.
  • the estimated point of the hand was away from the product shelf until around time t3, but the estimated point of the hand was closer to the product shelf from around time t3 to around time t6. Recognize. Note that at time t3, after User 1 begins to extend his/her hand toward the product shelf, the distance between the hand and the shelf falls below (or exceeds) a predetermined threshold, and the hand approaches the product segment. is the time when it is determined that
  • the distance between the hand and the shelf exceeds a predetermined threshold, and the hand moves away from the product segment. is the time when it is determined that the The difference in the size of the vertical axis on the graphs of User 1 and User 2 is based on the difference in the distance between each customer and the product shelf.
  • the threshold can be set as an arbitrary value in consideration of the configuration of the product shelf, the size of the product, and the like.
  • the customer number determination module 1105 finds that the output of the weight sensor device 608 changes between times t2 and t4. From this, the customer number determination module 1105 can infer that a product pick-up event has occurred especially during this period. However, the customer quantity determination module 1105 can understand that there were an estimated point on the hand of User 1 and an estimated point on the hand of User 2 near the item during this period. Therefore, the customer number determination module 1105 performs processing for determining whether the item was picked up by either user 1 or user 2 .
  • the customer quantity determination module 1105 performs calculations for determining who has picked up which product and how many.
  • the customer number determination module 1105 divides the period of weight change (from time t2 to time t4) for each user, calculates the weight difference between both ends of each time interval, and calculates the weight taken by the user. tied as That is, the customer number determination module 1105 estimates the stretched section for each user and acquires the weight change at both ends thereof. For example, the customer number determination module 1105 acquires time t2 and time t4 as the period during which the weight changed.
  • time t1 and time t5 are acquired as a period during which the hand movement that enables picking up of the product occurred (hand stretching section).
  • time t3 and time t6 are acquired as a period during which the hand has moved to enable the product to be picked up (stretching period).
  • the management server 101 divides the period (from time t2 to time t4) so that these pieces of information are collected in chronological order, compared, and the movement of each user is made clearer.
  • the customer number determination module 1105 determines that during the period from time t1 to time t3, the movement of the hand of the user 1 is the main problem, and the movement of the hand of the user 2 is not the problem. Further, the customer number determination module 1105 determines that the movement of the hands of the users 1 and 2 is the main problem during the period from the time t3 to the time t4. Therefore, the customer number determination module 1105 divides the period (from t2 to t4) in which the weight changes into the first section (from t2 to t3) and the second section based on each user's hand movement. (from t3 to t4).
  • the customer number determination module 1105 presumes that during the first period (from t2 to t3), the movement of the hand of the user 1 mainly contributes to the weight change. In addition, the customer number determination module 1105 presumes that during the second period (from t3 to t4), the movements of the hands of the users 1 and 2 mainly contribute to the weight change.
  • the customer number determination module 1105 also divides the weight corresponding to the division of the period (from t2 to t4). That is, the customer quantity determination module 1105 assumes that the change in the weight of the product (50 g in total) has occurred linearly, divides this weight change into a first section and a second section, Calculate proportionally. For example, the customer number determination module 1105 calculates that the weight of the first section has changed by 35 g when the total weight is 50 g. Furthermore, this change in weight (35 g) is associated only with User 1. Further, the customer number determination module 1105 calculates that the weight of the second section has changed by 15 g when the total weight is 50 g. Furthermore, this change in weight (15 g) is linked to both User 1 and User 2 .
  • the customer quantity determination module 1105 totals the weights that can be assumed for each user, compares them with the weights of products (registered in advance), and converts them into the number of products. For example, the customer number determination module 1105 associates only the user 1 with the weight sensor change (35 g) during the first period (from t2 to t3). For this period, the management server 101 does not need to distinguish between user 1 and user 2 . However, in the second period (from t3 to t4), the weight sensor change (15 g) is associated with User 1 and User 2. For this period, the customer quantity determination module 1105 needs to consider whether the weight is attributed to User 1 or User 2 on a case-by-case basis.
  • the customer quantity determination module 1105 predetermines an allowable error per product. For example, for a 50g product, an error of ⁇ 0.2 pieces (10g) is permissible.
  • the customer quantity determination module 1105 determines whether each hypothesis 1 and 2 is within the permissible error range for each product. Assumption 1 can be determined to be within tolerance for both users 1 and 2 . For hypothesis 2, it can be determined to be outside the tolerance for both users 1 and 2. Therefore, the customer quantity determination module 1105 can finally determine that User 1 has picked up 50 g of product per item, and User 2 has not picked up any product.
  • the allowable error used in the determination by the customer number determination module 1105 can be set variously. For example, if the weight change is 100g and it is within the tolerance of 2 items (50 x 2 ⁇ 10 x 2) (2.0 items), the number of items picked up is determined as 2 items. good too. Also, if the weight change is 105g and it is within the tolerance of 2 items (50 x 2 ⁇ 10 x 2) (2.1 items), the number of items picked up is determined as 2 items. good too. In addition, if the weight change is 125g and it is not within the tolerance of 2 items (50 x 2 ⁇ 10 x 2) (2.5 items), the number of items picked up should not be determined as 2 items. , may be indeterminate. Also, if the weight change is 160g and it is within the tolerance of 3 items (50 x 3 ⁇ 10 x 3) (3.2 items), the number of items picked up is determined as 3 items. good too.
  • more subdivided control can be applied to the conversion processing of the number of weights.
  • the larger the width of the weight change the smaller the error. Therefore, in this embodiment, when the weight change from the weight sensor device 608 is large, the allowable error may be relatively small.
  • the weight per product is 100 g
  • the change in each value from 1 to 9 is illustrated when the weight change is negative (the product is taken). ing. This value is used in the determination processing of the customer number determination module 1105 described above.
  • the customer number determination module 1105 can finely set numerical values that serve as criteria for determination at the stage of determining how many items have been picked up according to the weight (number) of the items to be picked up. This makes it possible to improve the accuracy of determination as the number of objects picked up increases based on the characteristics of the weight sensor.
  • the number of products to be picked up is limited to within the range of one to nine. If this range is exceeded, a decision may be made by a judge or the like. Alternatively, the ranges shown in FIG. 46 may be extended to accommodate a greater number of ranges.
  • the customer number determination module 1105 avoids overlapping (mixing) of results by preferentially applying the determination from the smaller number. For example, in this case, the number of seven is preferentially applied.
  • the customer number determination module 1105 acquires the stretching section for each user. For example, for user 1, the section between time t1 and time t5 is acquired as the section in which the hand is extended toward the product. As for User 2, the section between time t3 and time t6 is acquired as the section in which the hand is extended toward the product.
  • the hand stretching section linked to each user is classified. For example, section 1 between time t1 and time t3 can be associated only with user 1 .
  • section 2 between time t3 and time t5 can be redundantly linked to user 1 and user 2 .
  • section 3 between time t5 and time t6 can be associated only with user 2 .
  • step 6330 the weight change at both ends of each segment divided into cases is obtained. For example, for section 1, a weight change of 35 g is obtained. For interval 2, a weight change of 15 g is obtained. For interval 3, a weight change of 0 g is obtained.
  • step 6340 it is assumed that the change in weight is distributed to each user for the section linked to a plurality of users. For example, for section 1, a weight change of 35 g is obtained only for user 1. For interval 2, a weight change of 15 g is obtained for users 1 and 2, so it is assumed that a weight change of 15 g is distributed for each of users 1 and 2 (see assumptions 1 and 2 above).
  • step 6350 a determination of the validity of the above assumptions is made regarding the weight per item. For example, assumption 1 is determined to be valid in comparison with the weight of 50 g for one product, because the product weighing 50 g is distributed only to user 1 . Assumption 2 is determined to be invalid because 35 g of product is distributed to user 1 and 15 g of product is distributed to user 2, compared with the weight of one product of 50 g.
  • the determination performed by the customer number determination module 1105 regarding which user has picked up which product and how many is not limited to the flow of FIG. 63 .
  • FIG. 64 another example of the determination flow 6400 of the customer quantity determination module 1105 is simplified.
  • the customer number determination module 1105 acquires the stretching section for each user.
  • step 6420 the customer number determination module 1105 acquires the weight change at both ends of the stretching section for each user.
  • step 6430 the customer number determination module 1105 acquires the ratio of weight change per product for each user.
  • step 6440 the customer count determination module 1105 compares the percent weight change for all users.
  • FIG. 65 an output example of the flow illustrated in FIG. 64 is shown.
  • the period during which the customer reached out for the product is obtained, and the ratio of the weight change amount corresponding to that period is obtained.
  • a weight change amount of 20 g is obtained for customer #1
  • a weight change amount of 120 g is obtained for customer #2
  • a weight change amount of 10 g is obtained for customer #3.
  • a weight change is required.
  • the customer number determination module 1105 can estimate that the product was picked up by customer #2 by comparing the ratios of these three weight change amounts. As shown in FIG. 65, the change in weight in the stretching section may be displayed graphically for each user to facilitate visual comparison. This output may be displayed on the screen of the user terminal or the like. The display mode is not limited to FIG. 65, and may be displayed in a pie chart or the like. In this embodiment, the determination performed by the customer number determination module 1105 regarding which user has picked up which product and how many is not limited to the flow of FIGS. 63 and 64 . Various modifications and changes are possible for the flows illustrated in FIGS. 63 and 64 .
  • the customer quantity determination module 1105 cannot determine the products purchased by the customer and the quantity based on the information from the weight sensor unit 105 and the images from the camera sensor units 104 and 104a, the information is stored in the required check list. preferably.
  • the customer number determination module 1105 may detect the amount of change in weight when it is doubtful, or when detection of position information from the camera device 506 and calculation of estimated hand points based on the captured image from the camera device 506a are not successful.
  • the information is stored in a necessary check list for final human check.
  • human assistance can be provided later, thereby realizing a highly accurate shopping experience. Since the settlement process itself is executed after leaving the store, the customer's experience is minimized.
  • the management server 101 preferably displays an appropriate instruction on each user's terminal as determination impossible. For example, for products for which the customer quantity determination module 1105 could not make a sufficient determination, a store clerk may display an instruction to inquire of the user in question and inquire about which products have been picked up. good.
  • each user may be asked to select which product they picked up by self-declaration.
  • This post-processing is preferably performed before the user leaves the store, but it can also be performed after the user leaves the store.
  • the display of instructions for asking for user cooperation can be done in a variety of ways. For example, for products that could not be determined, a message such as "under confirmation" may be displayed on the terminal for the user to confirm.
  • FIG. 47 another example of product pick-up determination performed by the management server 101 is shown.
  • one product is picked up.
  • this embodiment makes it possible to calculate the number of items taken. Note that the example of FIG. 47 can have all of the determination contents described above with reference to FIGS.
  • FIG. 47 changes in the output of the weight sensor and changes in estimated hand points of two users are shown superimposed.
  • an example of weight time-series data of each product shelf is shown in a graph.
  • the horizontal axis of this graph is time (ms), and the left vertical axis is the value (g) recorded by the weight sensor.
  • the figure graphically shows an example of changes in the estimated point of each hand for two users near a shelf equipped with the weight sensor device 608 .
  • the horizontal axis of this graph is time (ms), and the vertical axis on the right side is the distance (mm) between each customer's hand and the product.
  • a person ID (identification number) of A and B is assigned to each user.
  • the output of weight sensor device 608 registers a large drop with a momentary bounce, while between 5000 ms and 6000 ms, the output of weight sensor device 608 stabilizes. Therefore, the customer number determination module 1105 can estimate that the product on the product shelf has been picked up. During this period, the output of the weight sensor device 608 finally decreases from approximately 300 g to 80 g. Therefore, the customer quantity determination module 1105 can estimate that one or a plurality of commodities with the weight of this difference (approximately 220 g) have been picked up.
  • the customer quantity determination module 1105 can understand that there were hand movements of two users near the item in question. Therefore, the customer number determination module 1105 aligns the hand segment distances of the users A and B with the times of the weight time series data. Then, from the hand segment distance information, the period during which each customer reaches out to the corresponding segment (hand reaching section) is determined. At that time, for each of users A and B, it is determined whether or not the hand movement exceeds a predetermined threshold.
  • the customer number determination module 1105 estimates a stretched section and acquires weight changes at both ends thereof. For example, the customer quantity determination module 1105 finds that for user A, the estimated point of the hand is positioned near the product on the shelf within a period of approximately 2200 ms to 3100 ms. Further, the customer number determination module 1105 finds that the estimated point of the hand of customer B is positioned near the product on the product shelf within a period of approximately 3600 ms to 4500 ms. The customer count determination module 1105 then calculates the difference in weights at both ends for each period and associates it as the weight taken by the associated user. At this time, the customer number determination module 1105 sums up the weight for each user, compares it with the weight of the product (registered in advance), and converts it into the number of products.
  • the customer number determination module 1105 performs processing including the following steps.
  • the customer quantity determination module 1105 previously sets the weight per product and the ratio of allowable error, and stores the corresponding data in the storage device. For example, if the weight of one product is 50 g, the allowable margin of error is set to 0.2 (10 g).
  • the customer quantity determination module 1105 receives a numerical value (g) indicating a change in the weight of the product when the product is picked up by the weight sensor device 608 combined with the product shelf.
  • the customer quantity determination module 1105 divides the changed weight numerical value (g) by the pre-stored weight (g) per product.
  • the customer quantity determination module 1105 compares the above calculation result with the pre-stored error rate of the product. As a result of the above comparison, if it is determined that the number is within the allowable error ratio, the customer number determination module 1105 determines the number.
  • the customer number determination module 1105 mainly considers user A's hand movements during the period from time t11 to time t12. During this period, user B's hand movement is recognized, but the hand movement can be ignored due to the long distance from the product segment. Further, the customer quantity determination module 1105 learns that there was a weight change of about 100g (300g-200g) during this period. Further, the customer number determination module 1105 mainly considers user B's hand movements during the period from time t13 to time t14. Further, we know that there was a weight change of about 120g (200g-80g) during this period.
  • the customer number determination module 1105 can assume that User A picked up a product weighing 100 g, and then User B picked up a product weighing 120 g. Therefore, the customer quantity determination module 1105 verifies the above assumption based on the stored weight of the product in the product segment. As a result of the above verification, if it is determined that the error is out of the allowable error, the customer number determination module 1105 determines that the number is indeterminate, and vice versa.
  • the customer number determination module 1105 of the management server 101 is configured to enable determination of product pick-up even if the weight change based on the output of the weight sensor device 608 deviates from the ideal case. I am devising.
  • FIGS. 48 and 49 further examples of weight sensor outputs are shown.
  • changes in the output of the weight sensor and changes in the estimated points of the hands of the two users are superimposed.
  • the examples of FIGS. 48 and 49 can include all of the judgment contents described above with reference to FIGS. 45, 46, 47, 63, and 64. The explanation about is omitted.
  • the output of weight sensor device 608 does not necessarily have ideal weight changes.
  • a sensor weight sensor device 608, etc.
  • a load is applied to the bar, plate, product basket, or the like when the product is picked up, and the weight increases. may vary.
  • the weight change in the output of the weight sensor device 608 may take time.
  • vertical fluctuations may occur in changes in weight. In these cases, in the prior art, it was sometimes difficult to determine how many commodities were picked up at what time based only on the weight information of the weight sensor device 608 .
  • the customer count determination module 1105 of the management server 101 tracks the estimated point of each user's hand near the shelf in question.
  • the estimated hand point is compared to a predetermined threshold to determine whether the hand is extended close to the item. Therefore, the management server 101 estimates the stretched section of each user.
  • the customer number determination module 1105 can refer to the output from the weight sensor device 608 or the like for the times at both ends of each section. Therefore, the customer number determination module 1105 can acquire the weight change at both ends of each user's stretching section.
  • the customer number determination module 1105 can classify each user into cases of conversion from weight change to number. For example, if a change in the estimated hand point is detected for only one user, the weight change is converted to count for that user only. Also, when changes in the estimated hand points are detected only for two or more users, cases are classified for each user, and each weight change is converted into the number. The customer number determination module 1105 determines whether or not the finally obtained change in weight is appropriate for each case.
  • the customer quantity determination module 1105 can determine the number of items picked up even if the output of the weight sensor device 608 is not ideal.
  • the output of the weight sensor device 608 and the position of the estimated point of the hand obtained by calculation are not always obtained accurately. Therefore, in this embodiment, further improvements can be made so that the customer number determination module 1105 of the management server 101 can determine more satisfactorily whether or not products are being picked up. For example, there is a slight difference between the time when the user actually reaches out toward the product shelf and tries to grab the product and the time when the weight sensor device 608 actually outputs the variation in weight of the product. Differences can occur. This is because a change in the output of the weight sensor device 608 may be obtained before and after the moment when the product is actually picked up.
  • the upper part shows the change in the output of the weight sensor device 608, and the lower part shows the change in the distance of the estimated point of the user's hand with respect to the product.
  • the user extends his/her hand toward the product, and the distance between the hand and the product exceeds the threshold and approaches. Further, at time T2, the user moves his/her hand away from the item, and the distance between the hand and the item exceeds the threshold. Somewhat later than this movement of the user's hand, a drop in the output of weight sensor device 608 is detected between times Ta and Tb.
  • the management server 101 calculates the movement of the estimated point of the user's hand and the weight sensor device. There is a risk that an accurate correspondence relationship cannot be obtained with the change in the output of 608 .
  • the customer number determination module 1105 of the management server 101 determines that there is a discrepancy between the time based on the movement of the user's hand and the time based on the output of the weight sensor device 608. is detected, by shifting the time of one of them back and forth, correction is made so that the correspondence between the two becomes clearer.
  • the customer quantity determination module 1105 slightly shifts the times Ta and Tb based on the actual output of the weight sensor device 608 forward (see times Ta' and Tb').
  • This correction time can be predetermined as a fixed value. In this case, if it is detected that there is a gap between the time based on the movement of the user's hand and the time based on the output of the weight sensor device 608, either one of the times may be shifted forward or backward by a predetermined amount. shift to Alternatively, this correction time (Ta-Ta' or Tb-Tb') can be predetermined as a variable value. In this case, when it is detected that there is a difference between the time based on the movement of the user's hand and the time based on the output of the weight sensor device 608, one of the shift the time forward or backward.
  • the customer number determination module 1105 can modify either the time based on the user's hand movement or the time based on the output of the weight sensor device 608. By setting the correction time in this way, the customer number determination module 1105 can obtain a more accurate correspondence relationship between the movement of the estimated point of the customer's hand and the change in the output of the weight sensor device 608.
  • the weight sensor device 608 may detect the event with a delay. Even in such a case, the present embodiment introduces a correction time so that it is possible to actually determine whether the product is picked up more accurately. As a precondition for introducing the correction time, it is determined whether or not the difference between the time based on the movement of the user's hand and the time based on the output of the weight sensor device 608 is smaller than a predetermined amount. is preferred.
  • further refinements may be made to allow the customer count determination module 1105 to better determine whether an item is being picked up. For example, when a customer actually reaches out toward a product shelf and tries to pick up a product, when the skeleton is detected based on the photographed image, the position of the actual characteristic portion and the position of the characteristic portion obtained by calculation are not the same. A slight deviation may occur between them. If this deviation is large, it may be detected that the hand is not extended even though the hand is actually extended to pick up the product.
  • the upper part shows the change in the output of the weight sensor device 608, and the lower part shows the change in the distance of the estimated point of the user's hand with respect to the product.
  • the user extends his/her hand toward the product, and the distance between the hand and the product exceeds the threshold and approaches. Further, at time T2, the user moves his/her hand away from the item, and the distance between the hand and the item exceeds the threshold. Further, during this period, it is detected that the user puts his hand back and extends his hand for a short period of time between times Ta and Tb. Therefore, the customer number determination module 1105 cannot associate the movement of the user's hand with the change in the output of the weight sensor device 608 between times Ta and Tb (during that period, the user It is determined that the product has not been picked up).
  • the length and direction of the forearm are obtained from the positions of the elbow and wrist, and the position of the estimated point of the hand can be calculated by extending the length. If the positions of the elbows and wrists, which are used as references for this calculation, are displaced, the estimated points of the hands may be displaced. For example, it may be determined that the user's hand does not reach a predetermined position even though the user is actually reaching into the product shelf. For example, in (A) of FIG. 51, although the user actually stretches out his hand toward the product continuously between times T1 and T2, between times Ta and Tb, It is detected that there is a break in the movement of the hand. If this movement of the cut is caused by an inaccurate calculation of the estimated point of the hand, the customer quantity determination module 1105 cannot make a correct product pick-up determination.
  • the customer number determination module 1105 constantly monitors the position of the estimated hand point associated with the person ID. When the estimated point of a hand associated with a certain person ID exceeds a predetermined threshold, it is estimated that the hand has reached a position where the product can be picked up from the product shelf (for example, time T1).
  • the estimated point of the hand associated with the same person ID falls below a predetermined threshold, it is estimated that the hand has moved away from the position where the product can be picked up from the product shelf (for example, the time Ta).
  • the estimated point of the hand linked to the same person ID exceeds the predetermined threshold again, it is estimated that the hand has reached a position where the product can be picked up from the product shelf (for example, , time Tb).
  • the estimated point of the hand associated with the same person ID falls below a predetermined threshold, it is estimated that the hand has moved away from the position where the product can be picked up from the product shelf (for example, the time T2).
  • the customer number determination module 1105 performs the following determination when a discontinuity is detected during the period in which the customer's hand is extended (for example, between times Ta and Tb). Before and after the detected break, it is determined whether or not the person ID of the hand at the position where the product can be picked up is the same. In the above determination, if the person IDs before and after the discontinuity are the same, it is further determined whether or not the time interval (between times Ta and Tb) at which the discontinuity occurred is below a predetermined threshold. .
  • the customer quantity determination module 1105 determines that the break can be ignored, and makes corrections so that the break does not actually exist. Add As a result, the determination of item pickup may be avoided or minimized from being adversely affected by the cut. For example, the customer quantity determination module 1105 minimizes or zeroes the interval between times Ta and Tb, as exemplified by time Tc. As a result, even if there is a break in the movement of the user's hand, it is possible to avoid an error in the product pick-up determination.
  • the quality of the photographed screen of the camera device 506a of the camera sensor unit 104a is not uniform, and there is a possibility that the positions of the elbows and wrists on the photographed screen may shift or blur due to sudden movements of the customer to be photographed. .
  • the customer number determination module 1105 determines whether or not positional deviation is caused for each person ID, and if the interval is short (for example, between times Ta and Tb), It is corrected to be ignored (for example, time Tc).
  • the interval is short (for example, between times Ta and Tb), It is corrected to be ignored (for example, time Tc).
  • the customer count determination module 1105 may be made to better determine whether an item is being picked up.
  • the upper part shows the change in the output of the weight sensor device 608, and the lower part shows the change in the distance of the estimated points on the hands of the users 1 and 2 regarding the commodity.
  • (A) of FIG. 52 at time T1, user 1 extends his hand toward the product, and the distance between the hand and the product exceeds the threshold and approaches. Further, at time T2, User 1 puts his/her hand away from the product, and the distance between the hand and the product exceeds the threshold.
  • the customer number determination module 1105 cannot correctly determine whether to pick up the product.
  • the upper portion shows changes in the output of the weight sensor device 608, and the lower portion shows changes in the distance between the item and the estimated point on the user's hand.
  • the customer number determination module 1105 determines that there are hand movements of two or more users 1 and 2 before and after the change in the output of the weight sensor device 608 occurs, and that between the movements of each of the users 1 and 2 Suppose that a break is detected (for example, between time T2 and T3 or a predetermined period after time T4).
  • the customer number determination module 1105 compares the size of the gap (for example, between time T2 and T3, or a predetermined period after time T4) with a predetermined threshold to determine whether the size is negligible. conduct. If it is determined that it cannot be ignored, the customer number determination module 1105 expands the movement of each of the users 1 and 2 back and forth for a predetermined period of time, and adjusts the size of the gap (for example, between times T2 and T3, (predetermined period after time T4) is reduced. Thereby, the movement of each user 1, 2 is better matched with the change in the output of the weight sensor.
  • the customer count determination module 1105 does any one or more or all of the following.
  • the time T1 during which the user 1 extends his or her hand toward the product shelf is shifted forward by a predetermined amount of time (for example, time Ta).
  • the time T2 at which the user 1 puts his/her hand back from the product shelf is delayed by a predetermined amount of time (for example, time Tb).
  • the time T3 during which the user 2 extends his or her hand toward the product shelf is shifted forward by a predetermined amount of time (for example, time Tc).
  • the time T4 at which the user 2 puts his/her hand back from the product shelf is delayed by a predetermined amount of time (for example, time Td).
  • the magnitudes of time Ta, Tb, Tc, and Td introduced by the correction may be the same. Also, the magnitudes of these times Ta, Tb, Tc, and Td may change depending on the implementation status. Therefore, the customer number determination module 1105 shortens or minimizes the interval in which no one reaches out by extending the hand movement of each user 1, 2 back and forth, and changes the weight of the user 1, 2. make it easy to associate with
  • the customer number determination module 1105 may perform the controls illustrated in FIGS. 50B, 51B, and 52B independently or in combination with each other. . Furthermore, in these judgment controls, the controls illustrated in FIGS. 45, 46, 47, 48, 49, 63 and 64 can be appropriately selected and combined. For example, when a change in the weight of a product is detected in a section where multiple users are simultaneously reaching out around a product, there is a risk that it will not be possible to sufficiently determine which user has picked up how many products. It can happen. In the present embodiment, when such a user/number tends to be uncertain, the determination logic when the hands overlap may be introduced to cope with the situation. Therefore, in this embodiment, regarding the determination of whether or not an event to actually pick up a product using the "estimated point of the hand" has occurred, the actual operation is made easier and the determination accuracy is improved. I do.
  • the customer number determination module 1105 can perform the following control when there are multiple customers near a certain product in the store. For each customer, determine the correlation between the calculated estimated hand point and the shelf (item) location. In particular, the time interval during which each customer reaches out near the product is obtained. A change in the output of the weight sensor is determined. In particular, among the time-series weight data acquired by the weight sensor, the amount of change in the weight of the product corresponding to the time interval is obtained for each customer. To determine whether or not a product has been picked up from a product shelf for each customer. In particular, the ratio of the weight change amount of the product corresponding to the above time interval for each customer to the weight of one product is obtained.
  • the present embodiment enables determination of the user's movement to pick up items under various circumstances. For example, in this embodiment, it can be determined which user has taken which product and how many. In particular, this embodiment makes it possible to correctly determine the user who picked up the item and the number of items. In particular, the pick-up of the product is determined for each person ID of the user. Furthermore, this embodiment determines the pick-up of products including the number/type for each person ID of the user. In particular, it is possible to deal with even if the product is continuously acquired at intervals that the weight sensor cannot separate.
  • the conventional technology when the movement of a customer picking up a product is determined using the image captured by the camera and the output of the weight sensor, a plurality of customers are present at the same time within a distance from which the product can be picked up. (When multiple hands exist near the product at the same time), it was sometimes difficult to judge. Further, in the conventional technology, when a plurality of commodities are continuously picked up at the same position (when the times of the commodities to be picked up are close), the determination tends to be difficult. Further, in the conventional technology, when a plurality of adjacent products are picked up at the same time (when the positions of the products to be picked up are close), the determination tends to be difficult. Moreover, in the conventional technology, when a plurality of products are picked up at the same time, it tends to be difficult to judge.
  • the "weight information" of the product includes only the weight change difference before and after the state stabilizes. Further, in the prior art, when determining the movement of the customer picking up the product, it was assumed that only one customer picked up the product at the time when the weight information changed. Further, in the conventional technology, it is determined that the user near the weight sensor has picked up the product, and the result is output. For this reason, when a plurality of users existed nearby, there was a case where it was output as a case in which a sufficient determination could not be made.
  • DNN Deep Neural Network
  • a DNN is a deep learning neural network with four or more layers. DNN can be applied to image recognition. In particular, when two-dimensional image data is converted into an appropriate one-dimensional numerical value sequence and input to DNN, it recognizes what is shown in the image and at what position. can output the results.
  • DNN When DNN is used for image recognition, there are the following problems.
  • DNN the types of products to be judged are limited.
  • the development of new products for products sold in general stores continues almost continuously. For example, supermarkets, convenience stores, etc. are constantly introducing new products.
  • DNN when trying to increase the types of products to be judged, it is necessary to change the configuration of the model and learn the model again. If the intervals between new product introductions are short, a sufficient learning period cannot be ensured, and operational issues remain.
  • DNN when DNN is applied on the captured image, only a display method in which the presence or absence of the product is captured by the camera can be adopted.
  • a product shelf having a plurality of levels flat stacking method, etc.
  • DNN can be applied.
  • the whole product cannot be photographed on the second and subsequent stages of the product shelf, it may be difficult to apply the DNN. Therefore, in a store with multiple product shelves, DNN-based image recognition still has operational issues.
  • the customer number determination module 1105 of the management server 101 uses the customer's movement trajectory obtained based on the photographed image from the camera device 506 of the camera sensor unit 104 and the camera sensor unit 104a.
  • the customer's movement trajectory obtained based on the photographed image from the camera device 506 of the camera sensor unit 104 and the camera sensor unit 104a.
  • this embodiment it is not necessary for the camera device 506 of the camera sensor unit 104 or the camera device 506a of the camera sensor unit 104a to photograph the entire product. Therefore, this embodiment can be applied regardless of how the products are displayed. For example, this embodiment can be applied to any shape of product shelf (flat stacking method, etc.).
  • a device is devised to make the pick-up determination of the product more favorable.
  • a store has a plurality of product shelves (see FIGS. 36A and 36B). Therefore, it is possible that the same customer's behavior is captured by a plurality of cameras (eg, camera device 506, camera device 506a, etc.) at approximately the same time.
  • a plurality of cameras eg, camera device 506, camera device 506a, etc.
  • the front side of the customer facing the product shelf it is preferable to photograph the front side of the customer facing the product shelf from above. In that case, it is preferable to photograph the entire movement of the customer's arm trying to grab the product. More preferably, the left and right arms of the customer are photographed relatively evenly. On the other hand, when the customer is photographed from the side, the customer's body may hide the movement of the customer's arm to grab the product. In addition, it becomes difficult to photograph the left and right arms of the customer relatively evenly.
  • the content of the images captured by each camera is not uniform.
  • the former should be given higher priority than the latter. preferable. This ensures that the image analysis is based on images of preferred quality.
  • FIG. 53 a plan view of the inside of an actual store that can use this embodiment is shown.
  • the store has an entrance/exit (entering area/exiting area), followed by a floor on which a plurality of product shelves are installed.
  • the floor is shown to have a substantially rectangular shape in the figure, the actual shape of the floor can be configured in various ways.
  • each product shelf installed on the floor is usually divided into multiple tiers above and below, and each tier presents multiple products. Between these product shelves is a free space where customers can freely walk around.
  • one floor has a plurality of areas.
  • Each area is exemplified by a substantially rectangular frame, and one or more product shelves can be installed in the frame.
  • the shape and size of this area can be variously configured. Preferably, it is associated with a range that can be satisfactorily photographed by a camera installed nearby. Adjacent areas may have a gap between them. Adjacent areas may also partially overlap between the two.
  • FIG. 55 there is shown an example of an actual camera-captured image of the product shelf and/or area in the store illustrated in FIG.
  • This captured image is applicable to both the camera device 506 of the camera sensor unit 104 and the camera device 506a of the camera sensor unit 104a.
  • the area setting may be set so as to surround the front of the shelf (the position where the product is placed and the slightly closer side).
  • the POV/FOV of the camera shoots the product shelf from almost directly above, and the customer's arm trying to pick up the products displayed on the product shelf is viewed from the front. Allows you to take pictures.
  • a customer faces the product shelf in order to check the products displayed in the product shelf. In this case, the appearance of the customer's upper body can be photographed relatively well. It should be noted that even when the user stands obliquely to the product shelf and picks up the product from the side, at least the state of the outstretched arm can be photographed.
  • the position of each product shelf and/or area and the POV/FOV of each camera that captures its surroundings are known in advance. Therefore, it is already known which product shelf can be photographed optimally by which camera.
  • the management server 101 determines the preferred camera priority order for each product shelf and/or area, and can perform image analysis of captured images according to the order. For example, if it can be assumed in advance that images taken by multiple cameras are available, images taken from the side will result in lower positional accuracy, so if images that can be taken from the front are available, the latter is given priority. use for purpose.
  • the priority can be set variously based on the situation in the store. For example, priority may be based on the distance between the position of each camera 506, 506a and the position of the shelf and/or area. For example, the priority may be based on the correspondence between the POV/FOV of each camera 506, 506a and the people who can be present around the shelf and/or area. For example, the priority may be based on the correspondence between the captured images of the cameras 506 and 506a and the direction of the subject. For example, the priority may be based on the presence or absence of an obstacle between the images captured by the cameras 506 and 506a and the subject. For example, the priority may be based on the captured images of the cameras 506 and 506a and the accuracy of bone structure detection based thereon.
  • the management server 101 may set the priority of which camera's captured image is to be used in advance so that the image analysis quality satisfies a predetermined standard.
  • FIG. 56 eight areas are demarcated in a plan view (floor) of a certain store, and the shooting conditions of each area are exemplified. These captured images can be applied to both or either of the cameras 506, 506a. As can be understood from FIG. 56, the inside of the store can be acquired as a plurality of (for example, eight) captured images. Tracking of a customer moving in the store may change depending on which of these captured images is used.
  • the management server 101 determines in advance which photographed image is preferable to be used among a plurality of possible photographed images (e.g., eight) in accordance with changes in the position of the customer, changes in the movement of the customer, and the like. You can decide the degree.
  • FIG. 57 in the case illustrated in FIG. 56, there is shown an example in which the appearance of a customer moving in the store is tracked from two different cameras.
  • eight cameras indicated by reference numerals 0236, 0108, 0227, 0357, 0570, 0390, 0391, and 0138 are illustrated from upper right to lower left. These cameras may be camera device 506 of camera sensor unit 104 and/or camera device 506a of camera sensor unit 104a.
  • a user with a person ID of 837 is detected almost simultaneously by two cameras (0227 and 0391).
  • the person ID “837” displayed in a smaller size corresponds to the person ID output based on the captured image (ToF) of the camera device 506 of the camera sensor unit 104 .
  • the person whose person ID "837" is displayed in a large size is the person ID of the user estimated to exist on the floor as a result of linking the skeleton and position based on the captured image of the camera device 506a of the camera sensor unit 104a. is equivalent to
  • Customer position information detected by each camera may change depending on the relationship between the POV/FOV of each camera and the position of the customer in the store.
  • the management server 101 can continuously track the position of the customer and determine in advance the priority of images taken from which camera to use according to changes in the position. As a result, the management server 101 can always track the position of a customer who moves within the store with high accuracy. This can be applied to both the camera device 506 of the customer position detection camera sensor unit 104 and the camera device 506a of the customer skeleton detection camera sensor unit 104a.
  • the POV/FOV of each camera 506, 506a are different from each other so as to adequately cover the vicinity of the corresponding shelf.
  • the POV/FOV of each camera 506, 506a is pre-fixed so as to capture a good picture of nearby product shelves.
  • the management server 101 may change the POV/FOV of the cameras 506 and 506a.
  • the management server 101 can preset the priority of each camera 506, 506a and modify the POV/FOV of each camera 506, 506a in accordance with the actual operational situation. In this way, this embodiment is devised so that the movements of customers can be tracked continuously.
  • This control may be performed by the position information processing module 1102, for example.
  • the skeleton detection processing module 1102a, the customer number determination module 1105, or the like may be used.
  • the customer may not be completely tracked by camera device 506 of camera sensor unit 104 or camera device 506a of camera sensor unit 104a. If the customer's location information cannot be tracked accurately, it becomes a problem because it is not possible to make a sufficient determination of the subsequent pick-up of the product.
  • FIG. 58 there is a simplified illustration of mistracking/swapping of the camera device (ToF) 506 of the camera sensor unit 104 in the prior art.
  • ToF camera device
  • FIG. 58 there are two users in the store.
  • 0 and 1 are assigned as person IDs, respectively.
  • Each user 0, 1 is tracked by the same or different cameras.
  • (1) and (2) of the figure when two customers are close to each other, a situation may arise in which they cannot be clearly identified.
  • the person IDs 0 and 1 of the two customers who suddenly approach each other are exchanged as shown in (2) to (3) of the figure. In this way, if the customer's person ID is replaced in the tracking information (personal information), there is a risk that subsequent tracking of the customer, skeleton detection, and the like will all be erroneous in a chain reaction.
  • means are provided to prevent the occurrence of the above situation.
  • information on the clothing of the customer is extracted at the same time. do.
  • Each customer can be tracked by combining location information and clothing information (color information). Therefore, even if two customers cannot be clearly identified only by the position information as a result of the positions of the two customers being close to each other, they can be distinguished from each other based on the information of the clothes of both customers.
  • the color or shape of the customer's clothing is extracted based on the image captured by the camera device 506 of the camera sensor unit 104 or the camera device 506a of the camera sensor unit 104a. For example, extract the color of the customer's shoulders.
  • the customer's head may lose consistency in color and shape information due to putting on and taking off a hat or the like.
  • Elbows, wrists, arms, etc. can move relatively freely and can be hidden depending on the viewing angle.
  • the elbow when the detection position is shifted or when the arm is rolled up, it can be either bare skin or clothes. Also, in the case of the wrist, when entering and exiting a pocket or the like, it can be either clothes or a hand. In contrast, shoulder position is relatively continuously visible in many situations. Therefore, by using the shoulder color information, the customer's dress information can be continuously tracked.
  • the customer's other color information may be used.
  • shoulder color information and chest or back color information may be used in combination.
  • customer shoulder, chest and/or back clothing shape information may be used.
  • shape, pattern, color, and/or feature amount of the entire outfit for example, the feature amount can be extracted by a separately created model/feature amount calculation method), etc. may be used. .
  • the color of the clothing is determined by acquiring the color of the customer's shoulder coordinates from the RGB image captured by the camera device 506 of the camera sensor unit 104 or the camera device 506a of the camera sensor unit 104a. good too.
  • the position of the head and the position of the shoulders may partially overlap due to the left and right movement of the head. Therefore, it is preferable to adopt the coordinates of the farther shoulder from the head, out of the coordinates of both shoulders. As a result, depending on the viewing angle of the user, the head may overlap the shoulder, but such a situation can be avoided.
  • the position of the head and the positions of the left and right shoulders are compared, and the right shoulder, which is farther from the head, may be adopted, and the left shoulder may not be adopted.
  • the location information and the color of the shoulder clothing are recorded for a certain period of time immediately after entering the store.
  • clothing information may be obtained not only immediately after entering the store, but at a position/timing at which the user's clothing can be stably determined.
  • the customer number determination module 1105 periodically records the color of the shoulders for several tens of seconds, one minute, several minutes, or any other arbitrary period after starting acquisition of clothing information at an arbitrary timing. The average value is calculated and registered as the color of the customer's clothing.
  • the customer number determination module 1105 continues to acquire the shoulder color of each customer, and when a plurality of customers approach each other (see (2) in FIG. 58), each customer's location information and clothes. are used in combination with color information to distinguish from each other. If location information and/or clothing color information are temporarily exchanged among multiple customers, the identification number is exchanged to prevent or prevent the identification number (person ID) from being erroneously assigned. correct.
  • the customer quantity determination module 1105 functions as follows. For example, when a customer comes to a preset appearance area (near the entrance) in a store, each customer is given a unique person ID and tracking begins.
  • a person ID may be configured using numbers and/or letters and the like. For example, the person ID may be given as a serial number to each customer who visits the store. Also, for example, the person ID may be given as a combination of date/time. For example, an identification number of 20210530071030 may be given to a customer who came to the store at 7:10:30 am on May 30, 2021.
  • suffixes such as a, b, and c.
  • the person ID assigned to each customer remains the same as long as the customer exists in the store. Then, when the customer comes to a preset disappearing area (near the exit) in the store, the person ID assigned to each customer is erased and the tracking ends. When the same person visits the same store again, a different person ID is given each time. In the conventional technology, the person ID may disappear even though the customer has not come to the predetermined lost area in the store (lost person ID). In that case, there is a problem that the user's tracking information is no longer output. In addition, when the customer comes to a predetermined appearance area (near the entrance) in the store, another person ID may be given to the customer (an unintended reappearance of the person ID). In that case, there is a problem that the customer will be judged as if he/she is another customer (another person) thereafter.
  • the skeleton detected from the image captured by the camera device 506 of the camera sensor unit 104 or the camera device 506a of the camera sensor unit 104a The customer can be tracked based on the information and the color of the clothing.
  • their person ID can be maintained continuously.
  • even if the customer comes to a predetermined appearance area (near the entrance) in the store it is possible to avoid/correct giving a new person ID to the customer.
  • the customer quantity determination module 1105 maintains person IDs of customers being tracked by the camera device 506 of the camera sensor unit 104. . Therefore, as illustrated in (1) to (2) of FIG. 60, customers close to each other can be identified. Furthermore, as illustrated in (3) of FIG. 60, when the tracking temporarily ends without the customer's position entering the lost area (see the dotted line with symbol A), for example, the customer number determination module 1105 , the person ID can be retained, assuming the customer is staying in the store.
  • the customer count determination module 1105 keeps the data available for each customer currently being tracked. For example, each customer that is currently being tracked is associated with their skeleton information and/or clothing color information. For example, if the customer number determination module 1105 finds excess skeletal information and/or clothing color information among all the customers in the store, the customer who is assumed to be staying in the store (temporarily cannot be tracked) The missing customer) may be assumed to be at the location where the skeletal and/or clothing color information was found, and tracking may resume from that location.
  • the customer number determination module 1105 may further detect color information near the shoulders of the human body by applying a skeleton detection model to the image captured by the camera. For example, the customer number determination module 1105 may assign a person ID to the owner of the shoulder based on the detected shoulder color information.
  • a camera capable of acquiring depth information (depth) can be used as the camera sensor unit 104a.
  • the camera sensor unit 104a can be a regular camera (2D camera).
  • the camera sensor unit 104 is also capable of position tracking with a ToF sensor module.
  • the camera sensor unit 104 position tracking module itself may be omitted.
  • user identification and matching may be performed between captured images from a plurality of camera sensor units 104a. In this way, it is possible to both track the customer's position and acquire the skeleton information only with the plurality of camera sensor units 104a.
  • the reference (threshold value) for determining the degree of approach when the customer reaches out toward the product can be set by manually acquiring the position of the product.
  • the position of each product may be automatically corrected by obtaining the coordinates of the customer's hand when picking up the product and overwriting the position of each product.
  • a human determination can be made by a judge.
  • the judging staff can reproduce the moving images captured by the camera sensor units 104 and 104a as they are.
  • means can be provided to assist the judge's decision.
  • the position/orientation (camera parameters) of each camera can be calculated by calibrating the camera that shoots the moving image for determination. Furthermore, by using this parameter, it is possible to calculate where the position of the product and the position of the user are on the screen, and annotate it in the video to make it easier for the judges to understand. good.
  • the present invention is not limited to the above-described embodiments, and includes various modifications.
  • the above-described embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the described configurations.
  • it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment and it is also possible to add the configuration of another embodiment to the configuration of one embodiment.
  • each of the above configurations, functions, processing units, processing means, etc. may be realized in hardware, for example, by designing a part or all of them with an integrated circuit.
  • each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function.
  • Information such as programs, tables, and files that implement each function can be stored in recording devices such as memory, hard disks, SSDs (Solid State Drives), or recording media such as IC cards, SD cards, and DVDs.
  • control lines and information lines indicate those considered necessary for explanation, and not all control lines and information lines are necessarily indicated on the product. In practice, it may be considered that almost all configurations are interconnected. It should be noted that the above embodiments disclose at least the structures described in the claims.

Landscapes

  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

カメラの撮影した画像に対して骨格検出モデルを適用する際、その適用対象を最小にし、手の推定点を演算により求めることで、事前のラーニング処理と実際の適用をより容易にする。 商品を管理する管理システムであって、商品棚に設置された重量センサから送信された重量情報を取得する手段と、第1のカメラセンサにより撮影された画像から顧客の位置情報を取得する手段と、第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を算出する手段と、前記顧客の位置情報と、前記算出された手の推定点と前記商品棚の位置との間の相互関係と、前記重量センサの出力の変化と、に基づいて、商品のピックアップを判定する手段と、を有する。

Description

[規則37.2に基づきISAが決定した発明の名称] 無人店舗の商品を管理する管理システム、管理方法及びプログラム
 本発明は、無人店舗の商品を管理する管理サーバ及び管理方法に関する。
 本技術分野の背景技術として、特開2020-173815号公報(特許文献1)がある。この公報には、「自律店舗追跡システムにおいて、店舗101の商品格納エリア102には、商品111、112、113及び114が配置されている。カメラ121及び122は、商品格納エリア102並びに人が移動する店舗101の1つ又は複数の領域を監視する。人103は、時間141において、商品格納エリア102の近傍で立っている状態で監視される。」と記載されている(要約参照)。
 また、関連する背景技術として、国際公開第2015/173869号(特許文献2)がある。この公報には、「検出部(52)は、商品の位置に応じて設定された第1の領域内で人の手を検知した後に、第1の領域と同じ領域又は第1の領域を包含する第2の領域内で人の手が検知されず、かつ、位置に応じて設定された商品の検知領域内で商品が検知されない場合に、商品がピックアップされたことを検出する。」と記載されている(要約参照)。
特開2020-173815号公報 国際公開第2015/173869号
 従来技術では、無人店舗で商品を購入する顧客の動作を監視するため、店舗内に設置したカメラから撮影された画像上で画像解析を行っていた。例えば、上記特許文献1、2の開示内容では、撮影画像に対して、人体の骨格モデルに基づく画像解析を行って、顧客の全身から複数の特徴点を検出している(例えば、特許文献1の図6A-E、図7A-B、図11及び図14、並びに、特許文献2の図3等を参照)。
 しかしながら、これらの特許文献では、算出された特徴点を用いるのみで、精度の高い商品ピックアップ判定を行うことができなかった。
 上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、商品を管理する管理システムであって、商品棚に設置された重量センサから送信された重量情報を取得する手段と、第1のカメラセンサにより撮影された画像から顧客の位置情報を取得する手段と、第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を算出する手段と、前記顧客の位置情報と、前記算出された手の推定点と前記商品棚の位置との間の相互関係と、前記重量センサの出力の変化と、に基づいて、商品のピックアップを判定する手段と、を有することを特徴とする。
 本発明によれば、カメラにより撮影された画像に対して骨格検出モデルを適用し、手の推定点を算出することで、より精度の高い商品ピックアップ判定を行うことができる。
 上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
全体の商品管理システム1の構成図の例である。 管理サーバ101のハードウェア構成の例である。 モバイル端末102のハードウェア構成の例である。 サイネージ端末103のハードウェア構成の例である。 カメラセンサユニット104、104aのハードウェア構成の例である。 重量センサユニット105のハードウェア構成の例である。 無線接続で重量センサデバイスと接続したマイコン710と通信する接続構成の例である。 有線接続で重量センサデバイス608と接続したマイコン710と通信する接続構成の例である。 入店管理端末106のハードウェア構成の例である。 決済処理サーバ107のハードウェア構成の例である。 商品管理システム1の機能構成例を説明する図である。 サイネージ表示の機能構成例を説明する図である。 商品マスタ情報1300の例である。 ユーザマスタ情報1400の例である。 セグメント情報1500の例である。 取得判定範囲情報1600の例である。 位置追跡情報1700の例である。 棚イベント情報1800の例である。 見積管理情報1900の例である。 マイコン710からデータ集約送信器630へ送信される重量情報2000の例である。 商品棚設置用フレームの構成例である。 商品棚の構成を説明する図である。 商品の取得判定範囲を説明する模式図である。 重量情報蓄積処理フロー2400の例である。 位置情報蓄積処理フロー2500の例である。 店舗における商品購入の全体処理フロー2600の例である。 入店処理フロー2700の例である。 商品判定処理フロー2800の例である。 顧客判定処理フロー2900の例である。 見積表示処理フロー3000の例である。 支払処理フロー3100の例である。 サイネージ表示処理フロー3200の例である。 ハードウェアのリファレンスモデル3300の例である。 注文管理画面の例である。 商品購入画面の例である。 商品管理システムの適用例である。 人体の骨格の特徴の例である。 撮影画像から顧客の骨格情報を検出する例である。 撮影画像から顧客の骨格情報を検出する例である。 撮影画像から顧客の骨格情報を検出する例である。 撮影画像から顧客の骨格情報を検出するプロセスの例である。 骨格検出処理フロー4200の例である。 店舗内の様子を2つのカメラから撮影した例である。 2つの撮影画像から顧客の骨格情報を検出する例である。 商品のピックアップの判定の例である。 商品のピックアップの判定で用いられる判定基準の例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 店舗内のフロアの例である。 店舗内のフロアを複数のエリアに区分けした例である。 店舗内の商品棚を実際に撮影した例である。 店舗内のフロアを複数のエリアに区分けした例である。 店舗内の顧客を複数のカメラから追跡する例である。 顧客の位置の追跡状況の例である。 顧客の服装の情報を抽出する例である。 顧客の位置の追跡状況の例である。 顧客の位置の追跡状況の例である。 撮影画像から顧客の骨格情報、位置情報及び商品の重量データを検出するプロセスの例である。 商品のピックアップの判定の例である。 商品のピックアップの判定の例である。 図64のフローの出力例である。
 以下、実施例を図面を用いて説明する。
 本実施例は、無人店舗の商品を管理する商品管理システム1を想定する。顧客は、店舗に入店する際に、顧客のモバイル端末に表示された2次元バーコードや非接触型ICチップを入店管理端末にかざすことにより入店記録を行う。店舗内の商品棚に陳列された商品を手に取ることで、手に取った商品の情報や数が顧客のモバイル端末に表示され、店舗の外に出ることによって、商品の決済が完了する。
 なお、無人であっても実施可能な仕組みの提供を想定するが、店舗は有人であっても構わない。
 また、本実施例は、あらかじめ寸法を決めたいくつかの商品棚設置用フレームにカメラや商品棚を設置したうえで、あらかじめ登録されたいくつかのシステム初期設定を自動で実行することで、無人店舗の設置の際の店舗ごとの作り込みによる労力や時間、コストを削減することができる。
 図1は、全体の商品管理システム1の構成図の例である。
 商品管理システム1は、店舗内の商品棚設置用フレーム2100内又は周辺に設置されたサイネージ端末103、位置検出用カメラセンサユニット104、骨格検出用カメラセンサユニット104a、重量センサユニット105、入店管理端末106を備え、管理サーバ101、決済処理サーバ107にネットワークを介して接続されている。この商品管理システム1にネットワーク介してモバイル端末102からアクセスを行う。なお、ネットワークは有線、無線を問わず、それぞれの端末はネットワークを介して情報を送受信することができる。
 管理サーバ101は、店舗で発生する様々な事象を蓄積し、これを解析して、商品判定、顧客判定、見積表示等の処理を行う。
 モバイル端末102は、顧客が保有するスマートフォン、タブレット、ウェアラブル端末などのモバイル端末であり、顧客が手に取った商品の情報が表示される。
 カメラセンサユニット104は、複数のカメラデバイス506が接続されたカメラ管理端末530を有し、店舗内の顧客の移動軌跡(例えば歩行軌跡)を取得する。
 カメラセンサユニット104aは、複数のカメラデバイス506aが接続されたカメラ管理端末530aを有し、店舗内の顧客の骨格の特徴部を取得する。なお、カメラ管理端末530とカメラ管理端末530aは別の端末としたが、1つの端末が両方の機能を備える構成であってもよい。
 重量センサユニット105は、商品棚の商品カゴに設置された複数の重量センサデバイス608と、マイコン710とデータ集約送信器630を有し、重量の変化を検知して重量情報を管理サーバ101に送信する。
 入店管理端末106は、顧客の保有するモバイル端末に表示された2次元バーコードや非接触型ICチップを読み取り、顧客のユーザ情報を特定する。
 決済処理サーバ107は、管理サーバ101から顧客の取得した商品に対する決済処理依頼を受信し、顧客のユーザ情報に対応付けられた決済方法により決済処理を実行する。
 商品管理システム1のそれぞれの端末や管理サーバ101は、例えば、スマートフォン、タブレット、携帯電話機、携帯情報端末(PDA)などの携帯端末(モバイル端末)でもよいし、メガネ型や腕時計型、着衣型などのウェアラブル端末でもよい。また、据置型または携帯型のコンピュータや、クラウドやネットワーク上に配置されるサーバでもよい。また、機能としてはVR(仮想現実感:Virtual Reality)端末、AR(拡張現実感:Augmented Reality)端末、MR(複合現実感:Mixed Reality)端末でもよい。あるいは、これらの複数の端末の組合わせであってもよい。例えば、1台のスマートフォンと1台のウェアラブル端末との組合せが論理的に一つの端末として機能し得る。またこれら以外の情報処理端末であってもよい。
 商品管理システム1のそれぞれの端末や管理サーバ101は、それぞれオペレーティングシステムやアプリケーション、プログラムなどを実行するプロセッサと、RAM(Random Access Memory)等の主記憶装置と、ICカードやハードディスクドライブ、SSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置と、ネットワークカードや無線通信モジュール、モバイル通信モジュール等の通信制御部と、タッチパネルやキーボード、マウス、音声入力、カメラ部の撮像による動き検知による入力などの入力装置と、モニタやディスプレイ等の出力装置とを備える。なお、出力装置は、外部のモニタやディスプレイ、プリンタ、機器などに、出力するための情報を送信する装置や端子であってもよい 。
 主記憶装置には、各種プログラムやアプリケーションなど(モジュール)が記憶されており、これらのプログラムやアプリケーションをプロセッサが実行することで全体システムの各機能要素が実現される。なお、これらの各モジュールは集積化する等によりハードウェアで実装してもよい。また、各モジュールはそれぞれ独立したプログラムやアプリケーションでもよいが、1つの統合プログラムやアプリケーションの中の一部のサブプログラムや関数などの形で実装されていてもよい。
 本明細書では、各モジュールが、処理を行う主体(主語)として記載をしているが、実際には各種プログラムやアプリケーションなど(モジュール)を処理するプロセッサが処理を実行する。
 補助記憶装置には、各種データベース(DB)が記憶されている。「データベース」とは、プロセッサまたは外部のコンピュータからの任意のデータ操作(例えば、抽出、追加、削除、上書きなど)に対応できるようにデータ集合を記憶する機能要素(記憶部)である。データベースの実装方法は限定されず、例えばデータベース管理システムでもよいし、表計算ソフトウェアでもよいし、XML、JSONなどのテキストファイルでもよい。データベース管理システムで実装する場合には、リレーショナルデータベース(RDBMS)であってもよいし、非リレーショナルデータベース(非RDBMS)であってもよい。
 図2は、管理サーバ101のハードウェア構成の例である。
 管理サーバ101は、例えばクラウド上に配置されたサーバで構成される。
 主記憶装置201には、各種モジュール(プログラムやアプリケーション)210が記憶されており、これらのプログラムやアプリケーションをプロセッサ203が実行することで管理サーバ101の各機能要素が実現される。
 それぞれのモジュール及びその処理については後述する。
 補助記憶装置202は、マスタDB220及び各種情報記憶DB221を備える。
 マスタDB220は、ユーザマスタ情報1400や商品マスタ情報1300等を記憶する。
 各種情報記憶DB221は、カメラセンサユニット104、カメラセンサユニット104a、重量センサユニット105、及び入店管理端末106から送信される情報を記憶する、又は管理サーバ101内で処理、加工された各種情報を記憶する。
 それぞれ記憶される情報については後述する。
 図3は、モバイル端末102のハードウェア構成の例である。
 モバイル端末102は、例えばスマートフォン、タブレット等の端末で構成される。
 主記憶装置301には、商品購入管理モジュール310等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ303が実行することでモバイル端末102の各機能要素が実現される。
 商品購入管理モジュール310は、管理サーバ101の見積表示モジュール1106やモバイル購入管理モジュール1108等と連携し、商品の購入画面を表示したり、購入履歴を表示したりする。
 補助記憶装置302は、モバイル端末102に記憶されているユーザ管理情報320を記憶する。
 図4は、サイネージ端末103のハードウェア構成の例である。
 サイネージ端末103は、例えばスマートフォン、タブレット、ノートPC、デスクトップPC、マイクロコンピュータ、シングルボードコンピュータ等の端末で構成される。シングルボードコンピュータとしては、例えばRaspberry Piを用いることができる。
 主記憶装置401には、サイネージ情報表示モジュール410等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ403が実行することでサイネージ端末103の各機能要素が実現される。
 補助記憶装置402は、表示する商品の広告などのサイネージ情報420を記憶する。
 サイネージ情報表示モジュール410は、管理サーバ101のサイネージ処理モジュール1202から表示指示を受信し、表示指示に対応するサイネージ情報420をディスプレイや電子ペーパー等の出力装置405に表示する。
 又は、管理サーバ101から送信されるサイネージ情報を受信して表示する構成であってもよい。
 図5の(A)は、位置検出用カメラセンサユニット104のハードウェア構成の例である。
 複数のカメラデバイス506がネットワークを介してカメラ管理端末530と接続されている。カメラ管理端末530は、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。
 主記憶装置501には、軌跡管理モジュール510等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ503が実行することでカメラ管理端末530の各機能要素が実現される。
 図5の(B)は、骨格検出用カメラセンサユニット104aのハードウェア構成の例である。
 複数のカメラデバイス506aがネットワークを介してカメラ管理端末530aと接続されている。カメラ管理端末530aは、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。
 主記憶装置501aには、骨格検出モジュール510a等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ503aが実行することでカメラ管理端末530aの各機能要素が実現される。
 なお、カメラデバイス506はTOF(Time of Flight)センサを含む。TOFセンサは光源から発した光が対象物で反射し、センサに戻ってくるまでの光の飛行時間(時間差)を検出することにより、対象物までの距離を測定するセンサである。ToF方式のイメージセンサにより、画素ごとに距離情報を検出し、高精度な距離画像を取得することもできる。
 また、複数のToFセンサやカメラを用いることにより、対象物の形状や3次元的な重なりをより高精度に判定することが可能となる。例えば、複数の顧客が同時に店舗内にいる場合のそれぞれの人物の重なりを判定したり、手の移動を検知したりすることができる。
 複数のカメラデバイス506による計測の場合、正しく移動軌跡を取得し、対象物の形状を特定するためには、それぞれのカメラの設置位置や設置角度を正しく計測し、細やかな設定の調整(キャリブレーション)が必要となる。しかしながら、本実施例においては、あらかじめ標準化された商品棚設置用フレーム2100の、あらかじめ定められた位置にカメラデバイス506を設置し、それらのカメラの設定を管理サーバ101側から一括で設定する構成をとることにより、初期設定の簡素化、効率化及び、軌跡情報の取得精度の向上を実現している(図21参照)。複数のカメラデバイス506aについても同様に構成することができる。
 軌跡管理モジュール510は、複数のカメラデバイス506から取得した画像情報や、対象物までの距離情報などを集約し、解析を実行することで、対象物までの距離や対象物の形状、対象物の位置を特定する。位置検出モジュール510と呼ぶこともある。
 また、この距離情報を時系列に蓄積することにより、センサ取得範囲における顧客の移動軌跡を取得し、軌跡情報520に蓄積する。具体的には、軌跡管理モジュール510は、複数のカメラデバイス506が軌跡を検知し始めた場合に、検知した人物に対して人物IDを付し、この人物の各時刻における位置情報を時系列に軌跡情報520に記憶する。これらの時系列情報を繋ぎ合わせることにより、特定の人物IDに対応する人物の移動軌跡を取得することができる。
 軌跡管理モジュール510は、移動軌跡を再現するための人物IDと時刻情報と当該時刻における位置情報とを管理サーバ101に送信する。若しくは、これらをまとめた軌跡情報を管理サーバ101に送信する。
 骨格検出モジュール510aは、複数のカメラデバイス506aから取得した画像情報に対して画像解析を行って、人体の骨格モデルに基づいて特徴部を抽出し、特徴部情報520aに蓄積する。さらに、骨格検出モジュール510aは、検出した特徴部に基づいて、他の特徴部を演算により求めて、特徴部情報520aに蓄積してもよい。
 骨格検出モジュール510aは、顧客の特徴部の情報を管理サーバ101に直接送信してもよい。または、骨格検出モジュール510aは、顧客の特徴部の情報をカメラ管理端末530の軌跡管理モジュール510に送信し、軌跡管理モジュール510側で検出した情報と顧客の特徴部の情報とを統合した後、カメラ管理端末530の軌跡管理モジュール510が管理モジュール管理サーバ101に送信してもよい。
 図6は、重量センサユニット105のハードウェア構成の例である。
 複数の重量センサデバイス608がマイコン(マイクロコントローラ)710を介してデータ集約送信器630と接続されている。データ集約送信器630は、例えばデスクトップPC、マイクロコンピュータ、シングルボードコンピュータ、クラウド上のサーバ等で構成される。シングルボードコンピュータとしては、例えばRaspberry Piを用いることができる。
 主記憶装置601には、マイコン710から受信した重量情報を処理し、管理サーバ101に送信するための各種モジュール610等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ603が実行することでデータ集約送信器630の各機能要素が実現される。
 補助記憶装置602は、データ集約送信器630やマイコン710、重量センサデバイス608の設定情報や管理情報等のIoT機器管理情報620を記憶する。
 図7は、無線接続で重量センサデバイス608と接続したマイコン710と通信する接続構成の例である。
 商品棚には複数の重量センサデバイス608が設置されており、それぞれ重量センサデバイス608の上には商品カゴが設置されている。重量センサデバイス608は、商品カゴに乗せられた商品等の重量を測定し、またその重量の変化を検知するデバイスである。取得された重量データはA/D変換器720によりデジタル情報に変換され、マイコン710に送信される。
 マイコン710は、受信した重量情報をBluetooth(登録商標)等の無線通信を利用してデータ集約送信器630に送信する。
 図20は、マイコン710からデータ集約送信器630へ送信される重量情報2000の例である。
 重量情報2000は、項目2020に示す各項目の情報を有しており、フィールド名2030として例えばサンプル値2040のような値を有している。
 重量情報2000は、商品カゴID2001、データ種別、重量2002、送信回数、状態2003、起動後経過時間、前回重量2004、遅延時間2005、状態変化有無2006等の項目を有する。
 商品カゴID2001は、重量センサデバイス608毎に設定されるIDである。商品カゴに入れられた商品の商品ID1502と対応付けられており、重量2002の変化と、商品カゴID2001に対応付けられた商品ID1502から、どの商品が何個商品カゴから取り出されたのかを算出することができる。
 重量2002は商品カゴの中の重量をグラム単位で表示する。測定値からは商品カゴの重量が除かれた、内容物の重量を表示し、内容物が無い状態では0を示す。但し、商品カゴの重量が含まれる構成としても構わない。
 送信回数は、マイコン710起動からのデータの送信回数を示す。送信回数を逐次カウントアップし、メモリがオーバーフローした場合には値を0に戻す。
 状態2003は、重量センサデバイス608の状態を示す。測定した重量データが安定していないUNSTABLE状態であった場合には0を、重量データが安定しているSTABLE状態である場合には1を示す。
 起動後経過時間は、マイコン710起動時からの経過時間をミリ秒単位で表示する。1ミリ秒毎にカウントアップし、メモリがオーバーフローした場合には値を0に戻す。
 前回重量2004は、前回測定時の重量をグラム単位で表示する。遅延時間2004は、状態2003がUNSTABLEからSTABLEに変化するまでの時間をミリ秒単位で表示する。
 状態変化有無2006は、前回の測定から状態2003が変化したかどうかを示すフラグである。前回の測定から状態2003が変化した場合は1を、変化していない場合は0を示す。
 マイコン710は、重量センサデバイス608から受信した重量に変化が見られた場合に、状態2003に「UNSTABLE状態」を示す0をセットし、状態変化有無2006が「有り」を示す1をセットした重量2002を含む重量情報2000をデータ集約送信器630に送信する。
 マイコン710は、重量センサデバイス608からの重量データを常時受信するが、重量に変化が無い場合(変化量が閾値を超えない場合)には、10秒毎など定期的に重量データをデータ集約送信器630に送信する。この場合には、状態2003に「STABLE状態」を示す1をセットし、状態変化有無2006が「無し」を示す0をセットした重量2002を含む重量情報2000をデータ集約送信器630に送信する。
 重量の変化があるかどうかは、重量2002の平均値(例えば過去10回分の値の平均値)と新たに取得した値との偏差から判定する。例えば、安定状態(状態2003がSTABLE)から偏差が閾値(例えばσ=±1.0)より大きい変化が生じた場合に変化があったと判定し、状態2003をUNSTABLEに変更する。また、この際、状態変化有無2006は「有り」を示す1となる。逆に、商品を取り上げたタイミングなど、一度UNSTABLE状態になった場合には、同様に平均値と新たに取得した値との偏差を算出し、偏差が閾値以下かつ、平均値を取得した回数が3回以上となった場合はSTABLE状態に変更する。マイコン710は、状態2003が、「UNSTABLE」から「STABLE」に変化した場合に、その重量2002を含む重量情報2000をデータ集約送信器630に送信する。
 状態変化有無2006は、前回の測定と新たな測定との状態2003が「STABLE」から「UNSTABLE」に変化した場合、または「UNSTABLE」から「STABLE」に変化した場合には、変化したことを示す1をセットする。
 ここで、平均値からの偏差を用いる場合の他、単に前回重量と最新の重量との間の差分が、所定の閾値、例えば5gを超えた場合を状態が変化した場合としてもよい。
 また、同様に、単に前回重量と最新の重量との間の差分が所定の閾値、例えば5g以下の場合に、重量データが安定しているSTABLE状態であると判定してもよい。
 本実施例では、マイコン710は、重量センサデバイス608から常時重量データを受信しているが、上述の通り、重量の変化のない場合には例えば10秒毎に重量情報2000をデータ集約送信器630に送信する。
 また、商品を取り上げた場合など、重量に変化が生じた場合には、そのタイミングで第1回目の重量情報2000が送信され、その重量が安定した後に第2回目の重量情報が送信されるようにしている。
 例えば、商品カゴから商品を取り上げる場合を想定すると、顧客が商品を手に取る一瞬、商品を下に押し下げる力が働き、一瞬重量が増加することがある。その後商品を取り上げると、商品の重さ分重量が減少する。
 また、商品を取り上げた瞬間に重量が安定するわけではなく、重量の値が振動し、数ミリ秒から数秒してから重量の値が安定する。
 本実施例では、このように重量の変化が発生した時刻と、その値が安定する時刻との間に遅延が発生することを考慮し、重量情報を2回送ることで2段階の処理を実施することを可能にする。
 例えば、1回目の重量情報2000の送信に応じてサイネージ端末103へのサイネージ表示処理3200を実行することで、商品を手に取った場合に、その商品に関する説明や、合わせて買ってもらいたい商品の広告情報などを、遅延なくすぐにサイネージ端末103に表示することができる。
 一方、重量が安定した後の数値に基づく2回目の重量情報2000の送信に応じて、商品判定処理2800を実行することで、手に取った商品の数を正しく計測することができる 。
 また、重量が安定している場合の10秒毎の重量情報2000に基づいて、それぞれの商品の数を算出し、在庫管理に用いることもできる。
 例えば、本実施例では商品のあるべき場所と数量を把握しているため、商品が無くなりそうになれば欠品予報を送信しバックヤードのスタッフに商品補充を促す、商品があるべき位置にない場合はレイアウトアラートを送信しバックヤードのスタッフに再配置を促す
、等の在庫管理が可能となる。
 また、商品カゴ内に10個など所定の数の商品を配置して販売を開始し、例えば3個等の所定の数以下となった場合に、商品ID(又は商品カゴID)と共に現在の個数3個と最初の個数10個との差分の7個を通知し、この通知に基づいてその商品を7個ロボットやコンベア等の仕組みにより自動的に補充する仕組みとしてもよい。
 重量情報2000を受信したデータ集約送信器630は、受信した情報をMQTTプロトコルなどの所定のプロトコルに変換して、暗号化したうえで、管理サーバ101に送信する。
 各重量情報2000には時刻情報を付加することもできる。この場合に、データ集約送信器630がデータを送信する時刻情報を重量情報2000に含めて送信してもよいし、マイコン710が重量情報2000をデータ集約送信器630に送信する際に、時刻情報を含める構成としてもよい。
 ここで、重量情報2000に含まれる時刻情報でデータを並べることで重量時系列データを生成することができる。
 データ集約送信器630は、管理サーバ101から受信した制御情報に基づいて、マイコン710及び重量センサデバイス608の制御や初期設定を行うことができる。例えば電源のオンオフを切り替えたり、設定情報を追記又は更新したりすることが可能である。
 図8は、有線接続で重量センサデバイス608と接続したマイコン710と通信する接続構成の例である。
 マイコン710は複数の重量センサデバイス608とA/D変換器720を介して有線で接続されている。また、マイコンはデータ集約送信器630とも優先で接続されており、CAN(Controller Area Network)により通信を行う。
 トランシーバ730、731は、互いにCAN方式でデータの送受信を行い、デイジーチェーンで接続されたコントローラ740がCAN方式による通信を制御する。
 マイコン710はUSB又はCAN経由で給電することができる。
 図7と同様に、マイコンは重量情報2000をデータ集約送信器630に送信し、データ集約送信器630は制御情報をマイコン710に送信する。
 有線接続では、無線接続により通信が不安定になることや、通信の遅延が発生することを避けることができる。
 図9は、入店管理端末106のハードウェア構成の例である。
 入店管理端末106は、例えばスマートフォン、タブレット等の端末や、2次元バーコードや非接触型ICチップを読み取る専用端末で構成される。
 主記憶装置901には、入店管理モジュール910等のプログラムやアプリケーションが記憶されており、これらのプログラムやアプリケーションをプロセッサ903が実行することで入店管理端末106の各機能要素が実現される。
 入店管理モジュール910は、カメラ部906により顧客のモバイル端末102に表示された2次元バーコードを読み取る、又は、入力装置904により顧客のモバイル端末102の非接触型ICチップと通信することにより、ユーザ特定情報を受信する。
 入店管理モジュール910は、ユーザが入店した情報としてユーザ特定情報を管理サーバ101に送信する。この際、ユーザ特定情報を受信した日時を入店時刻として、管理サーバ101に送信してもよい。
 補助記憶装置902は、入店管理端末管理情報920を記憶する。ここには、入店処理を行った場合に取得したユーザ特定情報や時刻情報を記憶してもよい。
 なお、入店時の情報入力は、2次元バーコード等のバーコードによる読み取りや、モバイル端末102の非接触型ICチップによる通信の他、電子マネーや非接触型ICカード、磁気情報の読み取りなどによって実行されてもよい。
 この場合、入店の仕方によって退店時の退店ゲートでの動作を変えることが可能である。例えば、モバイル端末102上のアプリの2次元バーコードや非接触型ICチップによる入店の場合には、退店ゲートが自動で開いてアプリ上のクレジットカード決済が実行される。
 退店時に手に取った商品に関して2次元バーコードを印刷し、この印刷物を自動決済機で読み取らせることで、ゲストユーザもクレジットカードや電子マネーや現金で決済できるようにしてもよい。
 図10は、決済処理サーバ107のハードウェア構成の例である。
 決済処理サーバ107は、例えばクラウド上に配置されたサーバで構成される。
 主記憶装置1001には、決済処理実行モジュール1010が記憶されており、これらのプログラムやアプリケーションをプロセッサ1003が実行することで決済処理サーバ107の各機能要素が実現される。
 決済処理実行モジュール1010は、モバイル端末102による商品購入や、店舗による商品購入に対して、決済処理を実行する。実行された決済結果はモバイル端末102に送信され、商品購入管理モジュール310と連携し出力装置305である画面に表示される 。
 補助記憶装置1002は、決済処理に必要な個人情報やユーザ情報、クレジットカード情報や、決済履歴等の決済処理情報1020を記憶する。
 図11は、商品管理システム1の機能構成例を説明する図である。
 管理サーバ101は、重量情報処理モジュール1101、位置情報処理モジュール1102、骨格検出処理モジュール1102a、入退店管理モジュール1103、商品判定モジュール1104、顧客個数判定モジュール1105、見積表示モジュール1106、支払管理モジュール1107、モバイル購入管理モジュール1108、等のプログラムやアプリケーションである各種モジュール210を記憶しており、各種処理を実行する。
 また、管理サーバ101は、各種センサから受信した情報や、管理サーバ101で生成した情報を記憶するセグメント情報1500、取得判定範囲情報1600、位置追跡情報1700、骨格検出情報1700a、棚イベント情報1800、見積管理情報1900、入店情報1111等を有する 。
 各種モジュール210は、一つの管理サーバ101上に配置されるように記載しているが、これらはそれぞれクラウド上の別の仮想サーバ上に配置する構成としてもよいし、これらのうちの一部のグループ毎に、仮想サーバ上に配置する構成としてもよい。
 また、各種情報も、クラウド上のそれぞれ別の記憶装置上に記憶する構成としてもよいし、これらのうちの一部のグループ毎に、クラウド上に配置する構成としてもよい。
 重量情報処理モジュール1101は、重量センサユニット105から商品カゴIDを含む重量情報を受領し、重量情報に対応する時刻情報と共に蓄積する。
 重量情報蓄積処理フローについては図24で後述する。
 位置情報処理モジュール1102は、カメラセンサユニット104から移動軌跡を再現するための人物IDと時刻情報と当該時刻における位置情報とを受信する。
 位置情報処理モジュール1102は、受信した位置情報に基づき、人物が滞在した範囲を特定し、特定した滞在範囲の情報を時刻情報と共に蓄積する。
 位置情報蓄積処理フローについては図25で後述する。
 骨格検出処理モジュール1102aは、カメラセンサユニット104aから店舗内の人物の様子を撮影した撮影画像と時刻情報とを受信する。
 骨格検出処理モジュール1102aは、人物の上半身の所定の特徴点(手の推定点)を演算により求めることができる。この情報を用いることで、管理サーバ101は、手の推定点と商品棚の位置との対応関係を判定することができる。
 骨格検出処理フローについては図42で後述する。
 入退店管理モジュール1103は、入店管理端末106の入店管理モジュール910から、顧客のユーザ特定情報を受信し、受信したユーザ特定情報がどのユーザIDに対応するかを特定し、情報を受信した時刻情報と共に入店情報1111に記憶する。
 なお、顧客のモバイル端末102に表示されたバーコードを読み取った時刻又は非接触型ICチップから非接触通信により情報を取得した時刻を、情報を受信した時刻情報の代わりに又は併せて記憶してもよい。
 入店処理フローについては図27で後述する。
 商品判定モジュール1104は、棚イベント情報1800に蓄積された情報に基づいて、顧客が手に取った商品及びその個数を判定する。
 商品判定処理フローについては図28で後述する。
 顧客個数判定モジュール1105は、棚イベント情報1800、位置追跡情報1700及び骨格検出情報1700aに蓄積された情報に基づいて、重量の変化が発生した(イベントが発生した)時刻に、変化が発生した棚のそばにいた顧客を特定する。その際、どの顧客が、商品をいくつピックアップしたのかについて判定する。
 顧客個数判定処理フローについては図29で後述する。
 見積表示モジュール1106は、入店処理、商品判定処理及び顧客判定処理の結果を突き合わせ、顧客のモバイル端末102に手に取った商品の内容及び個数とその金額を表示する。
 見積表示処理フローについては図30で後述する。
 支払管理モジュール1107は、見積処理実行後、顧客が退店した場合に決済処理の実行を決済処理サーバ107に依頼する。
 支払処理フローについては図31で後述する。
 モバイル購入管理モジュール1108は、モバイル端末102の商品購入管理モジュール310から直接オンラインオーダーを行う場合に、オーダーを受け付ける。
 モバイル購入管理モジュール1108は、ユーザから商品の選択、個数の選択を受け付けると、商品マスタ情報1300に基づいて、合計金額を算出し、モバイル端末102に表示する。
 その後、注文の依頼を受け付けると、支払管理モジュール1107が、合計金額及び対応するユーザID等のユーザ情報を決済処理サーバ107に送信し、決済処理サーバ107が決済処理を実行する。
 図12は、サイネージ表示の機能構成例を説明する図である。
 管理サーバ101のIoT情報処理モジュール1201は、MQTTフォーマットに従って送信された重量情報を受信する。なお、IoT情報処理モジュール1201は図11の重量情報処理モジュール1101の前段に配置されている。安定状態から重量の変化が発生した場合に、データ集約送信器630により重量が変化した第1時刻と、その値が安定した第2の時刻の2回に分けて重量情報が送信される。
 IoT情報処理モジュール1201は、1回目の重量情報を受信した場合に、その重量情報をサイネージ処理モジュール1202に転送する。なお、重量情報をそのまま転送しなくとも、重量情報に含まれる商品カゴIDを通知する構成としてもよい。
 IoT情報処理モジュール1201は、2回目の重量情報を受信した場合に、その重量情報を商品や商品数の特定のために図11の重量情報処理モジュール1101に転送する。
 なお、IoT情報処理モジュール1201がそれぞれの重量情報を振り分ける構成であるが、1回目の重量情報はサイネージ処理モジュール1202及び重量情報処理モジュール1101の両方に送信し、棚イベント情報1800にいずれの重量情報も記憶する構成としてもよい。
 なお、本実施例は、IoT情報処理モジュール1201がMQTTブローカーとしてMQTT形式で送信される重量情報を受信し、これをサブスクライブするサイネージ処理モジュール1202又は重量情報処理モジュール1101に振り分ける構成であるが、重量センサユニット105が、あらかじめ異なる宛先に1回目の重量情報と2回目の重量情報とを振り分ける構成としてもよい。
 また、IoT情報処理モジュール1201の振り分けは、安定後の受信回数が1回目か2回目かに応じて振り分けることとしてもよいし、重量情報に含まれる状態変化有無2006や、状態2003のフラグに基づいて、振り分けを実行する構成としてもよい。
 この場合、例えば、状態変化有無2006が「変化有」で状態2003が「不安定」になった場合には1回目の重量情報であると判断する。状態変化有無2006が「変化有」で状態2003が「安定」になった場合には2回目の重量情報であると判断する。
 又は、重量の変化が生じたことを示すフラグである状態変化有無2006のみに基づいて判断してもよい。例えば状態変化有無2006が重量の変化が生じたことを示す「変化有」になった場合に、第1回目の情報であるとして重量情報をサイネージ処理モジュール1202に重量情報を送付することとしてもよい。
 図13~図19は管理サーバ101の補助記憶装置202の各種情報記憶DB221に記憶されている情報である。
 図13は、商品マスタ情報1300の例である。
 商品マスタ情報1300は、項目1320に示す各項目の情報を有しており、フィールド名1330として例えばサンプル値1340のような値を有している。
 商品マスタ情報1300は、在庫有無、商品イメージ、商品ID1301、商品名1302、価格1303、優先度、原価、税額、販売タイプ、重量1304、サイネージ情報1305等の項目を有する。
 商品ID1301はキーとして使われ、商品名1302を特定するためや、商品ID1301に対応するサイネージ情報1305を表示するために使用することができる。
 重量1304は、重量センサユニット105が取得した重量の変化量に対して、その商品が何個分商品カゴから取り上げられたのかを計算する際に使用される。
 図14は、ユーザマスタ情報1400の例である。
 ユーザマスタ情報1400は、項目1420に示す各項目の情報を有しており、フィールド名1430として例えばサンプル値1440のような値を有している。
 ユーザマスタ情報1400は、ユーザID1401、ユーザ表示ID、名前、メールアドレス、生年月日、性別、ユーザ特定情報1402等の項目を有する。
 ユーザID1401は、ユーザを特定する情報であり、このユーザID1401に対応付けて各ユーザのモバイル端末102が管理されており、ユーザID1401に基づいて当該ユーザのモバイル端末102上に購入商品の見積もり情報等を表示することができる。
 ユーザ特定情報1402は、ユーザを特定する際に用いられる情報で、例えば、セキュリティを考慮して定期的に更新されるトークン(ハッシュ値)等の値である。
 図15は、セグメント情報1500の例である。
 セグメント情報1500は、項目1520に示す各項目の情報を有しており、フィールド名1530として例えばサンプル値1540のような値を有している。
 セグメント情報1500は、商品カゴID1501と商品ID1502とを対応付ける情報である。
 このセグメント情報1500によって、重量センサユニット105から受信した重量情報に含まれる商品カゴIDから、商品IDを特定し、どの商品を取り上げたことによって重量が変化したのかを把握することができる。
 本実施例では、棚の商品カゴに商品を登録する設定を簡単に行うことができる。最初に何も商品が乗っていない状態の設定を受け付ける。次にサイネージ端末103に例えば「1つ商品を商品カゴに載せてください」というようなインストラクションを表示し、1つ商品を商品カゴに載せてもらう。
 重量センサユニット105は、商品1つの重量を取得し、管理サーバ101に送信する。管理サーバ101の商品判定モジュール1104は、商品マスタ情報1300に登録されている複数の商品から、重量1304が測定した重量に近い候補を近い順に商品棚のそばにあるサイネージ端末103にリスト表示し、「リストから商品カゴに載せた商品を選択してください」というようなインストラクションを表示する。
 管理者は、その表示されたリストの中から実際に商品カゴに載せた商品と同じ情報を選択する。この選択に応じて、商品判定モジュール1104は、商品を載せた商品カゴのある商品カゴID1501と、商品ID1502との対応付けを行い、セグメント情報1500に記憶する。
 リストから選択する形ではなく、自動的に重さが最も近い商品と対応付ける構成としてもよい。
 次に、サイネージ端末103に「3つの商品を商品カゴに載せてください」というようなインストラクションを表示する。3つの商品の重量情報から平均重量を算出し、商品判定モジュール1104は、商品増減時の重み誤差を自動で設定する。
 図16は、取得判定範囲情報1600の例である。
 取得判定範囲情報1600は、項目1620に示す各項目の情報を有しており、フィールド名1630として例えばサンプル値1640のような値を有している。
 取得判定範囲情報1600は、商品カゴ毎に、商品カゴから商品を取れる範囲を規定する情報である。
 取得判定範囲情報1600は、商品カゴID1601、判定エリア1602、判定滞在範囲1603を有する。
 商品カゴID1601は、重量センサユニット105の重量センサデバイス608と対応付けられており、どの商品カゴから商品を取った結果、重量に変化があったのかを特定することができる。
 判定エリア1602は、商品カゴID1601に対応付けられた商品を取れる範囲を商品棚設置用フレーム2100の中の座標で示したものである(図21参照)。
 判定滞在範囲1603は、商品カゴID1601に対応付けられた商品を取れる範囲をあらかじめ区切った区画単位で示したものである。
 取得判定範囲について図21~図23を用いて説明する。
 図21は、商品棚設置用フレームの構成例である。
 本実施例は、あらかじめ寸法を決めた商品棚設置用フレームにカメラや商品棚を設置したうえで、あらかじめ登録されたいくつかのシステム初期設定を自動で実行することで、無人店舗の設置の際の店舗ごとの作り込みによる労力や時間、コストを削減することができる。
 商品棚設置用フレーム2100は、例えば、縦横2.5m、高さ3mの櫓状のフレームである。4本の支柱2101又はその近傍(例えば梁2102)のあらかじめ決められた位置にカメラデバイス506が設置されている。もしくは、この位置にカメラデバイス506を設置できるようにカメラデバイス506の取付部を有していてもよい。
 フレームの一本の支柱2101を座標(0,0)とし、そこからx、y方向にミリメートル単位で座標平面を規定する。図の例では、左下の支柱の座標が(0,0)、右下の支柱の座標が(2500,0)となり、右奥の支柱の座標が(2500,2500)となる。
 この中の所定の位置に商品棚を設置することで、カメラセンサユニット104、重量センサユニット105の設定を半自動化する。
 図22は、商品棚の構成を説明する図である。
 商品棚を正面から見た図22の2200において、一つの商品棚2201には、3×3個の商品カゴ2202が設置されている。このそれぞれの商品カゴの下には重量センサデバイス608が設置され、それぞれの商品カゴの中の重量を測定している。
 商品棚のサイズは横幅×奥行き×高さが450×500×1500mmのサイズを想定する。本実施例ではこのサイズ以外にもあらかじめいくつかの商品棚のサイズが準備されており、この規定のサイズから商品棚を選択することで、管理サーバ101から設定情報がカメラセンサユニット104及び重量センサユニット105に送付され、設定が半自動的に完了する仕組みになっている。
 商品棚を左横から見た図22の2250において、商品棚2251の前には商品を取得できる仮想の取得エリア2252を設定する。仮想の取得エリアは顧客が商品に手を伸ばせる範囲と同じ商品棚の先端から760mmを規定している。
 図23は、商品の取得判定範囲を説明する模式図である。
 商品棚設置用フレーム2100を上から見た図23の2300には、図21と同じ座標が表示されており、左下の支柱2101の座標を(0,0)とし、右上の支柱2101を(2500,2500)とする。
 図23の手前部分にはAS01~AS04の4つの商品棚2301が設置されている。商品棚の先端からy軸方向に760mmであって、x軸方向に商品棚2301の幅450mm毎の範囲を、1つの領域とすると、ある商品棚の正面の1つ及び左側2つと右側2つまでの領域を顧客が商品を取得できる範囲、つまり取得判定範囲として規定する。
 例えば、AS02の商品棚2351の取得判定範囲2352は、A0、A1、A2、A3、A4の範囲になる。同様に、AS01の商品棚の取得判定範囲は、A0、A1、A2、A3の範囲になり、AS04の商品棚の取得判定範囲は、A2、A3、A4、A5の範囲になる。商品カゴ毎の取得判定範囲は図16の取得判定範囲情報1600に記憶されている。例えば商品棚AS02の上から2つ目の商品カゴには商品カゴID1501としてAS02_Bが記憶されており、この商品カゴに対応する判定エリア1602は、座標(0,500)(0,1260)(2150,1260)(2150,500)で囲まれた部分である。
 また、座標の他に、店舗内または商品棚設置用フレーム2100内をあらかじめ区切った区画で表すこともでき、商品棚AS02の場合、判定滞在範囲1603は図23のA0~A4の部分に対応する。ここで1区画は450mm×760mmの範囲としている。
 商品取得範囲は、本実施例ではx、y軸の平面範囲内としているが、商品カゴIDは、例えばAS02_Aが商品棚の1番上の段、AS02_Bが2番目の段、AS03_Cが3番目の段、というようにz軸方向にも商品カゴを特定することができ、これに応じて、判定エリアもz軸方向の値を入れても構わない。
 図17の(A)は、位置追跡情報1700の例である。
 位置追跡情報1700は、項目1720に示す各項目の情報を有しており、フィールド名1730として例えばサンプル値1740のような値を有している。
 位置追跡情報1700は、店舗内のどこに誰がいたかを時間順に記憶する情報である。位置情報記憶部又は位置情報記憶手段と呼ぶこともある。
 位置追跡情報1700は、期限1705、滞在範囲1701、人物ID1702、店舗ID1703、タイムスタンプ1704等の項目を有する。
 滞在範囲1701は、図16と同様に店舗内または商品棚設置用フレーム2100内をあらかじめ区切った区画が記憶されており、カメラセンサユニット104から送信される位置情報から特定された顧客が滞在した場所を記憶する。
 図17の(B)は、骨格検出情報1700aの例である。
 骨格検出情報1700aは、項目1720aに示す各項目の情報を有しており、フィールド名1730aとして例えばサンプル値1740aのような値を有している。
 骨格検出情報1700aは、店舗内の顧客の撮影画像に対して骨格検出モジュールを適用することで検出された特徴部に関する情報である。
 この情報は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aによって検出された人体の上半身の所定の特徴部(例えば、頭部、左右の肩、左右の肘、左右の手首)の位置座標に関する。さらに、これら特徴部の位置座標を用いて、演算によって求められた人体の他の部位の特徴部(例えば、左右の手の推定点等)の位置座標を同様に含めることができる。
 なお、同図では、撮影画像上で1人の顧客が検出された場合のその顧客の骨格検出情報1700aについて例示している。撮影画像上で複数人の顧客が検出された場合には、それぞれの顧客ごとに別々に骨格検出情報1700aが作成される。その場合、顧客ごとに図17の(B)の表を別々に作成してもよい。または、同一撮影画像上の複数人の顧客について図17の(B)の表をまとめて作成してもよい。
 上半身の所定の特徴部と手の推定点の情報は、位置追跡情報1700の検出した情報と統合することができる。
 さらに、骨格検出情報1700aでは、位置追跡情報1700の場合と同様に、期限やタイムスタンプなどを含めることができる。
 図17の(B)の表は、画像内での追跡情報を含めることができる。例えば、図17の(A)の表と図17の(B)の表は、別々に作成されてもよいが、まとめて作成されてもよい。例えば、カメラセンサユニット104aの撮影画像に基づいて作成された図17の(B)のデータを、カメラセンサユニット104の撮影画像に基づいて作成された図17の(A)の表に入れ込むようにしてもよい。または、この逆でもよい。
 人物ID1702は、カメラセンサユニット104から送信される人物を特定する情報であり、この段階ではユーザIDとは対応付けられていない。従って、どのユーザであるかは特定されていないが、ある人物がタイムスタンプ1704で示す時間に、滞在範囲1701にいたという事を記憶する。
 店舗ID1703は、どの店舗での出来事かを記憶する。
 タイムスタンプでは、カメラセンサユニット104から送信されるデータを例えばUNIX(登録商標)タイムスタンプ(秒単位)で記憶する。
 また、これらのレコードは期限1705で指定された期限を超えると削除される、もしくは別の安価なストレージ領域に移行される。
 図18は、棚イベント情報1800の例である。
 棚イベント情報1800は、項目1820に示す各項目の情報を有しており、フィールド名1830として例えばサンプル値1840のような値を有している。
 棚イベント情報1800は、重量センサユニット105から送信される重量情報に基づいて、商品棚で発生した重量変化などのイベントを記憶する。重量情報記憶部又は重量情報記憶手段と呼ぶこともある。
 棚イベント情報1800は、イベントID、商品カゴID1801、前回重量1802、店舗ID、タイムスタンプ1803、タイプ、重量1804、重量変化量1805等の項目を有する。
 商品カゴID1801は、重量センサユニット105から送信された重量の変化した商品カゴID2001に対応する値が記憶される。
 前回重量1802及び重量1804には、重量センサユニット105から送信されたそれぞれ前回重量2004、重量2002の値が記憶される。なお、前回重量1802には送信された値でなく、管理サーバ101が記憶している前回の重量が記憶される構成としてもよい。
 重量変化量1805は、現在の重量1804と前回重量1802との差分の値が記憶される。
 タイムスタンプ1803には、イベントの発生した時刻が記憶される。重量情報処理モジュール1101が重量情報を受信した時刻が記憶されるが、データ集約送信器630が重量情報を送信した時刻を使用してもよいし、マイコン710が重量情報を送信した時刻や、マイコン710が重量の値を取得した時刻、重量センサデバイス608が重量の値を取得した時刻を使用してもよい。
 図19は、見積管理情報1900の例である。
 見積管理情報1900は、項目1920に示す各項目の情報を有しており、フィールド名1930として例えばサンプル値1940のような値を有している。
 見積管理情報1900は、見積表示モジュール1106が特定したユーザID1901、人物ID1902、商品ID1903及び商品の個数1904、タイムスタンプ1905を記憶する。つまり、誰がいつ何を何個商品棚から取り上げたのかの判定結果を記録する情報である。
 図24~図32は、商品管理システム1のそれぞれの端末や管理サーバ101の各モジュールが実施する処理の例である。
 図24は、重量情報蓄積処理フロー2400の例である。
 重量情報処理モジュール1101は、重量センサユニット105から送信された重量情報を受信する(ステップ2410)。
 重量情報処理モジュール1101は、受信した時間の時刻情報を取得する(ステップ2420)。また、棚イベント情報1800に記憶されるその他の情報を取得もしくは算出する。
 重量情報処理モジュール1101は、取得した時刻情報と共に重量情報及びその他の情報を対応付けて棚イベント情報1800に蓄積する(ステップ2430)。
 なお、時刻情報は、重量情報処理モジュール1101が重量情報を受信した時刻としたが、データ集約送信器630が重量情報を送信した時刻を使用してもよいし、マイコン710が重量情報を送信した時刻や、マイコン710が重量の値を取得した時刻、重量センサデバイス608が重量の値を取得した時刻を使用してもよい。
 図25は、位置情報蓄積処理フロー2500の例である。
 位置情報処理モジュール1102は、カメラセンサユニット104から送信された人物IDと時刻情報と当該時刻における位置情報とを受信する(ステップ2510)。
 位置情報処理モジュール1102は、位置情報に基づいて、人物IDで示される人物が滞在した滞在範囲を特定する(ステップ2520)。滞在範囲は、店舗内または商品棚設置用フレーム2100内をあらかじめ区切った区画の情報と対応付けて、どこの区画に属するのかを特定する。また、位置追跡情報1700に示される項目1720のその他の情報を取得もしくは算出する。
 位置情報処理モジュール1102は、特定した滞在範囲の情報、人物ID、時刻情報及びその他の情報を対応付けて位置追跡情報1700に記憶する(ステップ2530)。
 なお、人物が滞在した場所は、滞在範囲1701のサンプル値1740のA1,A2等、あらかじめ規定された区画の情報が記憶されるが、位置情報として受信した座標情報を記憶する構成としてもよし、複数の位置情報をまとめた軌跡情報を記憶する構成としてもよい。
 図42は、骨格検出処理フロー4200の例である。
 骨格検出処理モジュール1102aは、撮影画像上で骨格検出モジュールを適用することで検出された人体の上半身の特徴点(例えば、頭部、右肩、左肩、右肘、左肘、右手首、左手首)を受信する(ステップ4210)。この特徴点は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aにより求められる。
 次に、上記人体の上半身の特徴点を用いて、手の推定点を演算により求める(ステップ4220)。この手の推定点は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aにより求められる。この際、首部等、人体の他の部位の位置座標を合わせて求めてもよい。
 さらに、時刻情報と共に手の推定点の情報を蓄積する(ステップ4230)。
 位置情報処理モジュール1102によって取得した位置情報と、骨格検出処理モジュール1102aによって取得した位置情報とは、互いに位置座標を対応付けることができる。
 なお、骨格検出用カメラセンサユニット104aがこの骨格検出処理フロー4200を実行し、特徴点情報や、その特徴点情報から算出された手の推定位置座標等を、管理サーバ101に送信してもよい。または、管理サーバ101側で、撮影画像に基づいて、ステップ4210、ステップ4220及びステップ4230の各フローを実行してもよい。
 図26は、店舗における商品購入の全体処理フロー2600の例である。
 顧客が店舗に入店し、入店管理端末106で入店処理を行うと、入退店管理モジュール1103が入店処理2700を実行する(ステップ2610)。
 顧客が店舗内を移動する移動軌跡に関する情報は逐次位置追跡情報1700に記憶され、商品棚から商品を取得した情報は棚イベント情報1800に記憶されている。
 商品判定モジュール1104は、記憶された棚イベント情報1800に基づいて、顧客が取り上げた商品の内容及び個数を特定する商品判定処理2800を実行する(ステップ2620)。
 顧客個数判定モジュール1105は、記憶された位置追跡情報1700、骨格検出情報1700a及び棚イベント情報1800に基づいて、重量変化の発生した商品カゴに手の届く範囲にいた顧客を特定する顧客判定処理2900を実行する(ステップ2630)。この際、演算により求められた手の推定点と商品棚の位置との間の相互関係を判定した結果と、重量変化を検知したセンサの出力の変化を判定した結果とに基づいて、どの顧客によって、商品棚から商品がいくつピックアップされたかを判定するのが好ましい。
 見積表示モジュール1106は、入店処理2700、商品判定処理2800及び顧客判定処理2900の処理結果を突き合わせ、どのユーザがどの商品を何個手に取ったのかを算出し、ユーザのモバイル端末102に見積もり情報を表示する見積表示処理3000を実行する(ステップ2640)。
 支払管理モジュール1107は、顧客の退店を示す情報を受信したことに基づいて、見積もりされていた商品に対する決済処理を決済処理サーバ107に依頼する支払処理3100を実行する(ステップ2650)。
 以下それぞれの処理フローの詳細を説明する。
 図27は、入店処理フロー2700の例である。
 入退店管理モジュール1103は、入店管理端末106の入店管理モジュール910から、顧客のユーザ特定情報を受信し(ステップ2710)、受信した時間の時刻情報を入店時刻として取得する(ステップ2720)。
 入退店管理モジュール1103は、受信したユーザ特定情報と、記憶しているユーザマスタ情報1400のユーザ特定情報1402とを照合し、対応するユーザID1401を取得することで、どのユーザが入店したかを特定する(ステップ2730)。
 入退店管理モジュール1103は、特定したユーザID1401と、入店時刻を入店情報1111に記憶する(ステップ2740)。
 なお、入店時刻は管理サーバ101の入退店管理モジュール1103が顧客特定情報を受信した時刻を入店時刻としているが、入店管理端末106の入店管理モジュール910が、顧客のモバイル端末102に表示されたバーコードを読み取ったタイミング、又は非接触型ICチップから非接触通信により情報を取得したタイミングで、入店時刻を生成し、顧客特定情報と共に管理サーバ101に送信する構成としてもよい。
 図28は、商品判定処理フロー2800の例である。
 商品判定モジュール1104は、重量の変化が発生した時刻(イベント発生時刻)の情報を棚イベント情報1800から取得する(ステップ2810)。
 商品判定モジュール1104は、棚イベント情報1800から重量の変化が発生した商品カゴIDと重量変化量とを取得する(ステップ2820)。
 商品判定モジュール1104は、セグメント情報1500に基づいて、商品カゴID1501に対応付けられた商品ID1502の情報及び、商品マスタ情報1300から、重量の変化が発生した商品カゴIDに対応する商品情報を取得する(ステップ2830)。
 商品判定モジュール1104は、重量変化量と商品マスタ情報1300に記憶された商品の重量1304とに基づいて、顧客が取り上げた商品の個数を算出する(ステップ2840)。
 商品判定モジュール1104は、取得した商品情報及び算出した商品の個数情報を出力する(ステップ2850)。
 この判定結果は、演算により求められた手の推定点と商品棚の位置との相互関係の判定結果を突き合わせることにより、判定精度の低下を防ぐのが好ましい。
 図29は、顧客判定処理フロー2900の例である。
 顧客個数判定モジュール1105は、棚イベント情報1800から、イベントが発生した時刻を取得する(ステップ2910)。
 顧客個数判定モジュール1105は、棚イベント情報1800及び入店情報1111、位置追跡情報1700から、イベントが発生した場所の近辺に滞在した人物の人物IDを特定する(ステップ2920)。
 顧客個数判定モジュール1105は、特定した人物IDを出力する(ステップ2930)。
 例えば、商品カゴの重量の変化が生じるというイベントが発生した場合には、顧客個数判定モジュール1105は、重量の変化が生じた時刻に該当するタイムスタンプ1803を棚イベント情報1800から取得する。
 次に、取得判定範囲情報1600の商品カゴID1601に対応する判定滞在範囲1603と、位置追跡情報1700の人物ID1702に対応する滞在範囲1701とを突き合わせることにより、重量の変化が発生した商品カゴから商品を取得可能な範囲にイベント発生時刻に滞在した顧客の人物IDを特定する。
 また、顧客が入店したというイベントが発生した場合には、顧客個数判定モジュール1105は、入店時刻に該当するタイムスタンプを入店情報1111から取得する。
 次に、入店情報1111の人物IDと、位置追跡情報1700の位置情報(滞在範囲1701)及び人物ID1702とを突き合わせすることにより、入店時点に入店管理端末106のそばに滞在した顧客の人物IDを特定する。
 なお、重量センサユニット105は、重量センサデバイス608により取得された重量の変化が生じた時間と重量の変化が安定した時間との2回に分けて重量情報を送信し、棚イベント情報1800は、いずれの情報も記憶する構成とすることもできるし、2回目の重量が安定した後の重量情報のみを記憶する構成にすることもできる。
 棚イベント情報1800は、1回目の重量情報に対応する前記重量の変化が生じた第1の時間と重量の変化が安定した第2の時間との差分時間を記憶することもでき、この場合には、1回目の重量情報を記憶しない構成であっても、2回目の重量情報に対応する第2の時間から差分時刻を引いた時間に基づいて、当該時間の人物IDを特定することができる。つまり重量の変化が安定した第2の時間と上記差分時間とに基づいて、商品の個数と顧客とを対応付け、顧客のモバイル端末102に前記商品の個数を表示することができる。
 なお、棚イベント情報1800のタイムスタンプ1803と、位置追跡情報1700のタイムスタンプ1704にはセンサの誤差等により、若干のタイムラグが生じている可能性があるため、顧客の位置を特定する時刻は段階的に広くとって人物IDを特定することも好ましい。
 例えば、重量の変化が発生した時刻のタイムスタンプ1803と、その前1秒と後1秒の合計3秒間の位置追跡情報1700から、対応する人物IDを特定する。ここで対応する人物IDを特定できなかった場合には、範囲をタイムスタンプ1803と、その前後2秒ずつの合計5秒間に拡大し、人物IDが特定できるか確認する。このように順次判定時間を段階的に広めて、人物が特定できるところまで処理を繰り返す。
 また、複数の人物IDが候補として得られた場合には、最も確率の高い人物を対象として特定する。例えば、商品カゴから最も近い人や、商品カゴに手を伸ばした人物を確率が高い人物として特定する。これらの情報はカメラセンサユニット104により取得される顧客の位置情報や、手の動きの情報により取得することができる。さらに、これらの情報は、カメラデバイス506aからの撮影画面上で抽出された骨格の特徴部を用いて演算によって求められた手の推定点と商品棚の位置との相互関係の判定結果と突き合わせることもできる。
 また、重量の変化が発生した時刻の前後の時刻(例えば前後1分間)にイベントが発生した商品カゴの周辺(例えば商品棚設置用フレーム2100の内部)に滞在する人物の数に応じて、人物特定に用いる判定時間範囲を変更する構成としてもよい。つまり商品棚設置用フレーム2100や店舗内に1人しか顧客が存在しない場合には、そこで発生した重量変化はその1人の顧客によるものである可能性が高いので、このような場合には、判定時間範囲を広めにとる。例えば重量の変化が発生した時刻と、その前後5秒ずつの合計11秒間に商品カゴの判定滞在範囲1603に滞在する顧客の人物IDを特定する。
 逆に、商品棚設置用フレーム2100や店舗内の顧客数が多い場合には、判定時間範囲を短くとり、より精度を高める処理を行う。例えば、重量の変化が発生した時刻の1秒間に商品カゴの判定滞在範囲1603に滞在する顧客の人物IDを特定し、特定できなかった場合には、さらに前後1秒ずつ拡大した3秒間の範囲で判定することを繰り返す。このように段階的に判定時間範囲を広げていく。
 このように、重量の変化が発生した時刻などのイベント発生時刻において、商品棚設置用フレーム2100や店舗内に滞在する顧客数に応じて、人物を特定する判定時間範囲を動的に変更することで、判定のスピードや精度を高めることが可能となる。
 図30は、見積表示処理フロー3000の例である。
 見積表示モジュール1106は、入店処理2700、商品判定処理2800及び顧客判定処理2900の処理結果を取得し、これらの突き合わせを行う(ステップ3010)。
 見積表示モジュール1106は、イベント発生時刻に対応するユーザID、商品情報、商品の個数情報を取得し、記憶する(ステップ3020)。例えば、商品判定処理2800により特定された重量の変化が発生した時刻における商品情報、商品の個数情報と、顧客判定処理2900により特定された重量の変化が発生した時刻における人物IDとを対応付ける。また、顧客判定処理2900により特定された上記人物IDの人物が入店管理端末106のそばに滞在した時刻のあたりに入店した人物のユーザIDを対応付ける。
 見積表示モジュール1106は、対応付けられたユーザID、人物ID、商品ID、個数、タイムスタンプを見積管理情報1900に記憶する。
 つまり、商品棚に設置した重量センサユニット105から送信された重量情報と、この重量情報に対応する第1の時間情報とが棚イベント情報1800に時系列に蓄積されており 、
 カメラセンサユニット104から送信された顧客の位置情報と、この位置情報に対応する第2の時間情報とが位置追跡情報1700に時系列に蓄積されており、
 カメラセンサユニット104aから送信された顧客の骨格の位置情報と、この位置情報に対応する第3の時間情報とが骨格検出情報1700aに時系列に蓄積されており、
 顧客の入店時の第4の時間情報が入店情報1111に時系列に蓄積されており、
 これら第1の時間情報と第2の時間情報と第3の時間情報と第4の時間情報とに基づいて蓄積情報を突き合わせることにより、商品の個数と顧客とユーザ情報とを対応付け、ユーザ情報により特定された顧客のモバイル端末102に商品の個数情報を表示することができる。
 なお、棚イベント情報1800、位置追跡情報1700、骨格検出情報1700a、入店情報1111は、それぞれ又は一部が異なる記憶手段に記憶されていてもよいし、全てが同一の記憶手段に記憶されていてもよい。
 見積表示モジュール1106は、見積管理情報1900に基づいて、ユーザID1901に対応する顧客のモバイル端末102に商品情報、商品の個数情報を送信し、表示する(ステップ3030)。モバイル端末102の商品購入管理モジュール310は、受信した商品情報、商品の個数情報をディスプレイ等の出力装置305に表示する。
 見積表示モジュール1106は、顧客が退店するまでに商品カゴから取り出した商品の合計金額を算出し、顧客のモバイル端末102に表示する(ステップ3040)。
 なお、重量センサユニット105による情報やカメラセンサユニット104、カメラセンサユニット104aによる映像により、顧客の購入した商品及びその個数を判定できない場合には要チェックリストに情報を記憶する。
 例えば、重量の変化量の検知が怪しい場合や、カメラデバイス506からの位置情報の検知、カメラデバイス506aからの撮影画像に基づく手の推定点の演算が旨く行かない場合や、映像が隠れてしまい判別できていない場合等のイレギュラーな事象が発生する場合、最終的に人間によるチェックを行うための要チェックリストに情報を記憶する。これにより、管理サーバ101で判別しきれない場合には、後から人間が補佐を行うことで精度の高い買い物体験を実現することができる。決済処理自体は退店後に実行されるため利用者の顧客体験は損なわれることはない。
 本実施例では、カメラセンサユニット104から取得した顧客の位置情報に関する情報(移動軌跡)と、カメラセンサユニット104aから取得した顧客の骨格検出に関する情報(手の推定点など)と、重量センサユニット105から取得した重量の変化に関する情報と、入店管理端末106から取得した顧客の入店に関する情報と、を時系列で蓄積することにより、店内で起こったいつ誰がどこで何をしたのかという情報が全て時系列でクラウド上の管理サーバ101に保存されており、これらを時系列で再現することが可能となる。
 また、全てのセンサが独立して動作しており、それぞれの情報を時系列で蓄積すれば様々な分析や顧客判定制度を高めることが可能となるため、例えば後から利用者の性別や年齢を推定するセンサを追加することも容易である。
 図31は、支払処理フロー3100の例である。
 支払管理モジュール1107は、顧客が退店エリアの外に一定時間、例えば10秒以上出たことを示す情報を受信する(ステップ3110)。退店エリアの外に出たかどうかは、カメラセンサユニット104が、あらかじめ定めた座標の範囲から顧客が外に出たかどうかを検知することにより判定する。図21及び図23の商品棚設置用フレーム2100を使用した例では、座標(0,0)、(0,2500)、(2500,2500)、(2500,0)で囲われた範囲が退店エリアである。
 商品棚設置用フレーム2100を使用しない構成においては、店舗の内部または近辺で退店エリアの座標を任意に設定しておけばよい。
 退店エリアの外に一定時間出たことに応じて、支払管理モジュール1107は、見積表示モジュール1106が記憶していた全ての商品の合計金額を算出する(ステップ3120)。
 支払管理モジュール1107は、当該商品を商品カゴから手に取ったユーザID及び合計金額を決済処理サーバ107に送信し、決済処理サーバ107がユーザIDに対応する決済処理情報1020に基づいて決済処理を実行する(ステップ3130)。
 本実施例では、最終的に手に取った商品や個数が間違っていた場合には、モバイル端末102の商品購入管理モジュール310(例えばスマートフォン上のアプリ)から払い戻しを実行できる。決済処理では、退店後に決済処理サーバ107にて決済予約を掛け、一定時間後に決済確定処理を行っており、決済予約から決済確定処理まで一定時間を空ける
ことで、返品時の手数料の支払いを無くしている。
 図32は、サイネージ表示処理フロー3200の例である。
 サイネージ処理モジュール1202は、IoT情報処理モジュール1201から、重量センサユニット105で計測した重量値が安定状態から不安定状態に変化が発生したタイミングの1回目の重量情報を受信する(ステップ3210)。なお、IoT情報処理モジュール1201により重量情報が振り分けられて受信される構成でなく、データ集約送信器630から重量情報を受信する構成であってもよい。
 サイネージ処理モジュール1202は、重量情報から重量の変化が発生した商品カゴIDを取得する(ステップ3220)。
 サイネージ処理モジュール1202は、セグメント情報1500及び商品マスタ情報1300から商品カゴIDに対応する商品IDの商品名1302や価格1303等の商品情報及びサイネージ情報1305を取得する(ステップ3230)。
 サイネージ処理モジュール1202は、取得したサイネージ情報をサイネージ端末103に送信し、表示する(ステップ3240)。サイネージ情報としては、例えば商品カゴIDに対応する商品IDの商品名や価格、広告などの情報や、対応する商品IDに関連付けられた商品の商品名や価格、広告などの情報(例えば、玉ねぎを手に取った場合に、この玉ねぎを使用した料理であるカレールーに関する情報)が記憶されている。
 なお、サイネージ情報はサイネージ処理モジュール1202が送信する構成としたが、サイネージ処理モジュール1202からの商品ID等サイネージ情報を特定する情報の送信に応じて、サイネージ端末103に記憶されているサイネージ情報420を読み出す構成であってもよい。
 サイネージ端末103は、例えばタブレット端末であり、自身の有するディスプレイにサイネージ情報を表示する構成であってもよいし、例えばRaspberry Piななどのシングルボードコンピュータやコンピュータが、外付けのディスプレイにサイネージ情報を表示する構成であってもよい。
 また、サイネージ処理モジュール1202が、サイネージ情報や、商品ID等サイネージ情報を特定する情報をPush形式で送信する構成であってもよいし、MQTT形式に基づいてサイネージ端末103がサブスクライブしているサイネージ処理モジュール1202から情報をPull形式で取得する構成であってもよい。
 図33は、ハードウェアのリファレンスモデル3300の例である。
 通常、無人店舗を実現しようとした場合、店舗の構造や商品配置に応じて店舗ごとに複数のカメラセンサの位置や個数などを個別に設定する必要があり、設定のための労力や時間、コストがかかることとなる。
 一方本実施例では、あらかじめサイズを決めた商品棚設置用フレーム2100を準備し、かつ図21の様に決められた位置にカメラデバイス506を設置する構成とする、また、さらに商品棚設置用フレーム2100内の所定の位置に、決められたサイズの商品棚を設置することより、無人店舗設営時の初期設定を簡素化し、設営のための労力や時間、コストを削減することができる。
 また、商品棚設置用フレーム2100を並べていくことで、店舗のサイズに応じて商品管理システム1のサイズを簡単に調整することが可能である。
 本実施例では、商品棚設置用フレーム2100を用いるウォークスルー(屋内用)3310の構成について説明したが、さらにサイズの大きいコンテナを利用したウォークスルー(屋外用)3320の構成をとることもできる。この場合にも、商品棚設置用フレーム2100と同様にコンテナ内のあらかじめ決められた位置にカメラデバイス506を設置し、種々初期設定を簡素化することが可能である。
 図33のハードウェアのリファレンスモデル3300では、このような無人店舗の構成や、カメラデバイス506、カメラデバイス506aの個数などのあらかじめ決められたモデルを、あたかもクラウドのサービスを選択するのと同じように、ウェブサイト上から選択するインターフェースを顧客に提供する。
 インスタンスファミリー3301は、無人店舗やモバイルオーダーの構成を示す。インスタンスタイプ3302は、クラウドサービスにおけるIaaS(Infrastructure as a Service)の様に、各構成を示すタイプを示す。
 イメージ3303は、各インスタンスタイプを設置する場合に想定される店舗形式を示す 。
 カメラ3304は、カメラの有無を示す。カメラには、カメラデバイス506とカメラデバイス506aを含むことができる。
 複数名対応3305は、複数の顧客を判別できるかどうかを示す。
 屋内3306及び屋外3307は、屋内向けの店舗化、屋外向けの店舗化を示す。
 サイズ概算は、この商品管理システム1のサイズを示す。
 例えば複数名対応3305が「無し」であり顧客が一人のみの簡易型の商品管理システム1では、重量センサユニット105のみを使用し、カメラセンサユニット104及び/またはカメラセンサユニット104aを設置しないことで、省スペースかつ安価にシステムを構築することができる。
 管理サーバ101は、ユーザからインスタンスタイプ3302の選択を受け付けることで、必要な商品棚設置用フレーム2100やカメラデバイス506やカメラデバイス506a等のハードウェアを、場合により倉庫等から店舗に配送した後、これらを設置した後、管理サーバ101から、カメラ管理端末530、カメラ管理端末530a、及びデータ集約送信器630に初期設定情報及び初期設定手順を送信し、これらの端末や機器がそれらを実行することで、カメラセンサユニット104、カメラセンサユニット104a、及び重量センサユニット105に対する初期設定が完了する。
 例えば、店舗内の店内の重量センサデバイス608やマイコン710やデータ集約送信器630が接続された重量センサユニット105に対する電源を入れると、WiFi(またはLTE)モデム経由でクラウド上の管理サーバ101に自動接続し、それぞれのデバイスや機器に割り当てられたIDや機器情報が管理サーバ101に送信される。
 管理サーバ101は、送信されたIDや機器情報で特定された各機器やデバイスに対し、選択されたインスタンスタイプ3302で指定された構成に基づくそれぞれのデバイスや機器に対応したセットアップデータや、セットアッププログラム等を送信し、セットアップ手順を実行する。
 このような手順により、クラウド上の管理サーバ101では、設定状況を把握でき、稼働中の状況を把握することが可能となる。また、障害発生時には、管理サーバ101からカメラセンサユニット104、カメラセンサユニット104a、及び重量センサユニット105の各機器やデバイスの再起動や再セットアップなどの操作を行うリモート運用が可能となる。
 例えば、図21の商品棚設置用フレーム2100の例では、カメラデバイス506が少なくとも4本の支柱近傍の所定の位置に設置されており、商品棚設置用フレーム2100内の所定の位置に重量センサデバイス608を設置した商品棚を配置した後、管理サーバが重量センサの複数のマイコン710(もしくは重量センサデバイス608)を特定する情報(それぞれの商品カゴID)と設定情報とをデータ集約送信器630に送付し、複数のマイコン710の商品カゴIDと設定情報とに基づいて、データ集約送信器630が管理サーバにおける複数のマイコン710の設定を実行する。カメラデバイス506とは異なる位置に、カメラデバイス506aを設置してもよい。
 カメラセンサユニット104は図21や図23のような商品棚設置用フレーム2100内の座標情報と対応付けて、重量センサユニット105のマイコン710を特定する商品カゴIDを記憶する。図23の例では商品棚AS01に存在する商品カゴIDがAS01_AとAS01_BとAS01_Cにはいずれも座標(350,0)(350,500)(800,500)(800,0)で囲われた範囲が対応付けられている。
 図34は、注文管理画面3400の例である。
 管理サーバ101の見積表示モジュール1106は、ユーザの注文履歴を管理する。
 注文管理画面3400では、商品を手に取った履歴3401と、その商品を再び商品カゴに戻した履歴3402が表示されており、チョコチップクッキーを1つとり、1つ戻した(-1した)ことが分かる。またキャラメルワッフルを手に取った履歴3403があり、それらの合計金額3404が162円である旨が表示されている。
 図35は、商品購入画面の例である。
 商品カゴから商品を手に取った顧客に対応付けられたユーザIDで特定されたモバイル端末102に表示される画面の例である。
 画面3500はキャンディを2つ商品カゴからとったことが検知され、表示される画面の例である。商品3501にホワイトチョコ1つとキャンディ2つが表示されている。画面3550はその後キャンディを1つ商品カゴに戻したことが検知され、表示される画面の例である。商品3502にはホワイトチョコ1つとキャンディ1つが表示されている。
 一般的なPOSシステムでは、購入した商品をカゴにいれた順番は分からない。一方、本実施例の商品管理システム1では、どの商品棚の前にどの順番で訪れて、何を手にとって、戻して、結果的に何をどの順番で買ったのか、等の店舗内での行動を時系列で全て把握している。そのため、より詳細な行動及び購買データを取得することが可能となり、手に取ったが買わなかった商品や長く滞在した商品棚に置かれている商品について、再来店に購入を促すクーポンの発行や、興味を持った履歴のアプリ上の表示等を実行することができる。
 また、入店時にユーザ特定情報により認証を行っているため、そのユーザに対する属性情報をユーザマスタ情報1400から取得することで、この属性情報と店舗内の行動トラッキングにより、顧客が商品棚の前に来た際に、過去の購買履歴に合わせたサイネージ情報を表示したり、アップセルを促すクーポンをサイネージに表示することが可能となる。
 また、電子値札を組み合わせると、顧客ごとに、クーポン価格を適用した割引金額を電子値札に表示したり、見積表示モジュール1106により表示される金額を割引価格とするなど、ダイナミックプライシングやダイナミックオファーを行うことも可能となる。
 本実施例の商品管理システム1では、カメラセンサユニット104、カメラセンサユニット104a、及び重量センサユニット105を用いて様々な商品の販売管理を簡単に行う仕組みを実現することができる。また、あらかじめこれらのセンサを組み込む位置を指定した商品棚設置用フレーム2100やコンテナ、商品棚を使用し、管理サーバ101から設定情報や設定手順をPush形式でデータ集約送信器630、カメラ管理端末530及びカメラ管理端末530aに送信して初期設定を行うことで、無人端末等の商品管理システム1を簡単に導入することが可能となる。
 次に、本発明に係る商品管理システム1の実施例2について説明する。記載の重複を避けるため、主に、上記実施例1との相違点について説明する。実施例2は、実施例1と組み合わされて実施されてもよく、それぞれ別々に実施されてもよい。
 図36を参照すると、実施例2を適用可能な店舗内の様子を、(A)と(B)の2つに分けて示している。これら図では、同一の店舗内の様子が、同一の視点から、異なる時刻で撮影されている。これら図から理解できるように、店舗内には、複数の商品棚が設置されている。各商品棚では、複数の商品が販売用に展示されている。各商品棚の間は、顧客が自由に歩き回れる通路となっている。
 「店舗」とは、経済活動を行うために、商品またはサービスを提供する施設を指す。店舗は、少なくとも、商品棚を設置するためのスペースを有していればよく、その周囲を囲む壁や天井は必ずしも必要としない。例えば、店舗は、ショッピングセンター、百貨店またはアウトレットモール等のように、一つの建物の一区画として設けられてもよい。または、店舗は、小型のスーパーマーケットまたは一個人事業主の店等のように、一つの建物全体として設けられてもよい。または、店舗は、建物を有しない屋外の一区画として設けられてもよい。
 「商品」とは、店舗内で、経済活動の対象として取引きされる物品を指す。物品とは、例えば、食料品、飲料品、文房具または衣類等の有体物である。この有体物には、データまたはプログラム等を一時的に記憶した任意の種類の記憶媒体も含まれる。また、この有体物には、サービス提供に関する任意の媒体も含むことができる。
 「商品棚」とは、商品を陳列するための任意の構成物を指す。例えば、商品棚は、商品陳列用の棒を、上下方向に1段または複数段で備えてもよい。棒は、一端側を商品棚の本体に固定され、他端側を自由端部として、商品をフック状にひっかけてもよい。または、商品棚は、商品陳列用の板を、上下方向に1段または複数段で備えてもよい。板は、ほぼ水平な上面を有し、一端側を商品棚の本体に固定され、その上面に1つまたは複数の商品を載せてもよい。または、商品棚は、商品陳列用の商品かごを、上下方向に1段または複数段で備えてもよい(図22等参照)。
 本実施例では、商品棚の各段には、陳列されている商品の重さを検知または算出するためのセンサを設置することができる。例えば、商品棚の棒にフック状にひっかけられている商品の重さを検出するセンサが、棒と関連付けられて設置されている。または、商品棚の板や商品かごの上に載せられている商品の重さを検出するセンサが、板や商品かごと関連付けられて設置されている。センサは、検出した棒または板または商品かごの重さを数値化して出力し、その値を管理サーバ101に送信することができる。
 好ましくは、センサは、重量センサである。例えば、センサは、ロードセルまたは電磁平衡式センサ等である。ただし、このセンサには、現在入手可能なセンサだけでなく、将来的に入手可能なセンサを含むことができる。さらに、このセンサは、重量を直接的に検知する形態に限定されない。例えば、このセンサは、重さとは違う別の変位量を検出して、その変位量に基づいて重さの変化を演算によって求めてもよい。
 以下、商品棚の各段には、商品棚の棒または板または商品かごに乗せられている商品の重さを直接的に検出する重量センサが設置されているものとする。この重量センサは、実施例1で用いられた重量センサユニット105の重量センサデバイス608(図7、図8参照)でもよい。
 重量センサデバイス608は、あらかじめ、商品棚の棒または板または商品かごに何も置かれていない状態の重さを、初期値として検出し、管理サーバ101に送信する。ただし、初期値は、0gに限定されない。
 次に、重量センサデバイス608は、商品棚の各段(例えば、棒または板または商品かご)に乗せられた1つまたは複数の商品の重さを所定間隔で周期的に検出して、管理サーバ101に送信する。従って、管理サーバ101には、重量センサデバイス608の検出値に基づいて、商品棚の各段の重さの変位量が、所定間隔で周期的に送信される。この情報は、管理サーバ101と関連付けられた任意の記憶装置内に記憶することができる。
 好ましくは、店舗内には、中の様子を撮影するために、2種類のカメラが設けられている。
 一つは、店舗内の顧客の位置を検出するカメラとして機能するカメラ(第1のカメラセンサ)である。このカメラは、実施例1の位置検出用カメラセンサユニット104のカメラデバイス506でもよい。カメラデバイス506は、店舗内の顧客の移動軌跡(例えば歩行軌跡)を所定間隔で周期的に取得して、管理サーバ101に送信する。
 一つは、店舗内の顧客の様子を撮影して、その撮影画像に対して人体の骨格モデルを適用して、特徴部を抽出するカメラ(第2のカメラセンサ)である。このカメラは、実施例1の骨格検出用カメラセンサユニット104aのカメラデバイス506aでもよい。カメラデバイス506aは、店舗内の顧客の特徴点を所定間隔で周期的に抽出して、管理サーバ101に送信する。
 さらに、カメラセンサユニット104aの骨格検出モジュール510aは、上記特徴点に基づいて、手の推定点などを演算に求めて、その値を管理サーバ101に送信してもよい。または、管理サーバ101の骨格検出処理モジュール1102aは、送信された上記撮影画像または特徴点に基づいて、手の推定点などを演算により求めてもよい。
 上記カメラデバイス506とカメラデバイス506aの位置座標は、これらの出力を受信する管理サーバ101にとって、既知である。従って、管理サーバ101は、それぞれの撮影画像の位置座標を互いにレジストレーションまたは座標変換することができる。
 なお、上記「位置座標」には、カメラのパラメータとして、3次元空間内の位置(x、y、z)と、回転情報(θ、φ、ψ)との双方を含むことができるものとする。
 従って、管理サーバ101には、これらカメラの撮影画像に基づいて、各顧客の移動軌跡と、各顧客の骨格モデルに基づく特徴点が、互いに関連付けられるように、周期的に送信されている(図11参照)。これらの情報は、管理サーバ101と関連付けられた任意の記憶装置内に記憶することができる。
 その結果、管理サーバ101は、店舗内の各顧客に対して、人物IDと、時系列的な位置情報と、時系列的な骨格情報とをまとめて関連付けることができる。なお、骨格情報には、撮影画像上で骨格検出モジュールの適用によって得られた特徴部(頭部、首、肩、肘、手首等)の位置情報と、この特徴部を用いて演算によって求められた特徴部(手等)の位置情報とが含まれる。
 なお、図11では、位置検出用カメラセンサユニット104側の出力と、骨格検出用カメラセンサユニット104a側の出力とが、それぞれ別々に管理サーバ101に送信されているが、他の実施形態では、位置検出用カメラセンサユニット104側の出力と、骨格検出用カメラセンサユニット104a側の出力とを統合した後、その出力を合わせて管理サーバ101に送信してもよい。
 例えば、骨格検出用カメラセンサユニット104aが骨格の特徴部、手の推定位置座標情報を位置検出用カメラセンサユニット104に送信する。その後、位置検出用カメラセンサユニット104がこれらの情報を座標変換し、人物の座標情報と対応付け、これらの情報を管理サーバ101に送信することとしてもよい。
 好ましくは、位置検出用カメラ104(カメラデバイス506)と骨格検出用カメラ104a(カメラデバイス506a)とは、それぞれ別体のカメラとして店舗内に設置されている(図36の(A)参照)。
 各カメラデバイス506、506aは、静止画(写真)として被写体を撮影して、その静止画データを取得、記録または出力してもよい。または、各カメラは、動画形式として被写体を撮影して、その動画形式のファイルから静止画を取得、記録または出力してもよい。動画は、複数の静止画を時系列的に並べたものとして理解することができるため、以下、各カメラによって静止画を電子的に取得するものとする。
 各カメラデバイス506、506aは、カメラの大きさの違い(小型、大型等の変化)、カメラによって撮影される静止画の色情報の違い(RGBのビット数、フルカラー、トゥルーカラー等の変化)、カメラの撮影方式の違い(通常の撮影、赤外線撮影、奥行きの情報を取得するデプスカメラ等の変化)、カメラの設置位置の違い(店舗内の上方、側方または下方等の変化)等について、実施形態に応じて変更することができる。
 各カメラデバイス506、506aは、POV(Point-Of-View)または「視点」を有し、それぞれのPOVを通して、FOV(Field-Of-View)または「視野」内にいる被写体の撮影を電子的に行う。好適には、各カメラデバイス506、506aは、複数の商品棚のそれぞれについて、各商品棚の周囲の人の動きを最適に撮影するため、予め、POV/FOVが固定されている。ただし、各カメラデバイス506、506aは、POV/FOVを可変に構成することは可能である。
 各カメラデバイス506、506aは、人物を正面側からほぼ同じ高さで撮影するように設置されてもよい。この場合、撮影画面上で、人物の上半身と下半身とでほぼ均等に2次元状に骨格検出モデルを適用することができる。ただし、カメラを設置できる箇所が限定的になる。また、店舗内の人の数が増えると、各カメラのPOV/FOVが妨げられやすくなる。その結果、期待された精度が大きく低下する虞がある。特に、撮影画像上で人同士が重なる(オクルージョン)ことによって、検出精度が下がることの影響が大きい。同じ空間内に複数のカメラを設置することでこの問題に対応することは可能だが、その場合、コスト高になりやすい。
 各カメラデバイス506、506aは、人物を上から見下ろすように撮影するように設置されてもよい。この場合、撮影画面上で、人物の上半身と下半身とで奥行が異なるように表れるので、3次元状に骨格検出モデルを適用することになる。そのため、人物の上半身と下半身とで特徴点を検出する場合、画像解析の難易度が上がる虞がある。ただし、この場合、人物の上方にある各カメラのPOV/FOVが妨げられにくくなる。また、カメラの設置場所をより広範囲に確保できる。特に、撮影画像上で人同士が重なることを回避できるため、検出精度を上げることができる。
 好ましくは、本実施例では、店舗の天井または上方に設置した各カメラデバイス506、506aにより、下方を見下ろすように店舗内の様子を撮影する(図36の(A)参照)。
 さらに、撮影画像に基づいて骨格検出モデルを適用する際、上から撮影した画像と映っている骨格座標(正解データ)を与えて学習させる。この際、所謂、深層学習の転移学習・ファインチューニングと呼ばれる手法を用いることができる。加えて、後述のように、骨格検出モデルの適用をできるだけ簡潔に行うための工夫を加える。これによって、各カメラデバイス506、506aが上方から下方を見下ろすように撮影した画像に基づいて、比較的に高い精度で骨格検出が行えるようにしている。
 ただし、各カメラデバイス506、506aは、店舗内で、側方または下方または他の位置から顧客の様子を撮影することは可能である。
 例えば、位置検出用カメラデバイス506として、被写体までの距離を測定する3次元センサまたはTOF(Time of Flight)センサを用いてもよい。この際、3次元センサは、パルス光を投光して、該パルス光が物体に反射して戻ってくるまでの時間に基づいて、物体までの距離を求めることができる。TOFセンサを用いる場合、撮影画面上で、ピクセル(画素)毎またはピクセルの集まり毎に、被写体の距離情報を記録することができる。
 例えば、骨格検出用カメラデバイス506aとして、奥行きの情報を取得する深度センサを内蔵したカメラであるデプス(Depth)カメラまたは3次元カメラを用いることができる。特に、3Dカメラを用いて撮影された画像上で、奥行きを含めた3次元の認識を可能にする。この際、3Dカメラは、RGBカメラと赤外線カメラとから構成することで、色情報に加えて奥行きの情報を取得して、3次元での認識を可能にしてもよい。撮影画像に対して、骨格検出モジュールを適用することで、人物の骨格を推定することを可能にする。
 従来技術では、撮影画像上で画像解析を行って、人体の特徴点を検出する際、顧客の全身にわたって複数の特徴点を検出していた(例えば、特許文献1の図6A-E、図7A-B、図11及び図14、特許文献2の図3等参照)。しかしながら、顧客の全身(上半身と下半身)にわたって複数の特徴点を検出する場合、事前のラーニング処理が難しく、実際の作業に時間がかかり、かつエラーを生じやすくなるという課題があった。
 特に、下半身の足等については、前後の足を交差させる等の姿勢の変化によって、画像上に足の一部が隠されることがあった。見えない部位は、検出結果と正解との間にズレが生じやすく、学習が進みにくい虞があった。また、天井に設けたカメラから下方にいる顧客を撮影する場合、正面側から撮影する場合と異なり、上半身によって下半身が隠されやすくなるため、上半身と下半身とで出力の品質を揃えることが難しい場合があった。
 また、従来技術では、撮影画像に基づいて、人体の手/指の特徴点を抽出することがあった。商品のピックアップのプロセスでは、手や指の動作が重要になるからである。例えば、特許文献2では、「管理サーバ10120は、人の手の検知を、撮像画像に含まれる人の画像について行った骨格分析によって行う(段落0079参照)」等と説明している。しかしながら、手や指は、比較的に小さくて、複雑な動きを行うため、事前のラーニング処理が難しく、実際の作業に時間がかかり、かつエラーを生じやすくなるという課題があった。
 特に、手首は、人体の腕と手の掌とをつなぐ部分であって、関節(橈骨手根関節)が関連付けられている。加えて、手首の先にある手には、通常、5本の指(第一指乃至第五指)があり、それぞれの指には、複数の関節(第一関節乃至第四関節)が関連付けられている。従って、手首、手及び指は、その位置を様々に変化させるように、複雑な動きを行う。この結果、撮影画像に対して骨格検出モジュールを適用して、手や指の細かい動きを追跡することには、特有の困難があった。
 さらに、商品購入時に、顧客が商品棚に向って腕を伸ばして、商品をピックアップする際、その周囲にある他の商品や商品棚の形状等によって、商品を掴もうとする手や指の動きが隠されることがあった。また、顧客が衣服のポケット等の中に手や指を入れて、その位置が隠されることがあった。このような比較的隠されやすい手や指は、検出結果と正解との間にズレが生じやすく、学習が進みにくいという課題があった。
 本実施例では、制御装置(例えば、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aまたは管理サーバ101の骨格検出処理モジュール1102a)によって、カメラデバイス506aが撮影した画面上で、人体の骨格モデルに基づいて骨格検出モジュールを適用する。この際、顧客の上半身に限定して、特徴点を検出する。顧客の下半身については、骨格検出モジュールの適用対象から除外する。
 本実施例では、商品のピックアップに寄与する人体の動きは上半身に限られ、下半身の動きは実質的に無視できることを利用する。この結果、本実施例では、骨格検出モジュールの適用対象を半減することにより、事前のラーニング処理をより容易にし、実際の作業の時間をより迅速化し、かつエラーの発生を抑えて、出力の信頼性を高めることができる。
 さらに、本実施例では、制御装置(例えば、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aまたは管理サーバ101の骨格検出処理モジュール1102a)によって、カメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用する際、人体の手首から先の部位(手や指)は、検出対象から除外する。その替わりに、骨格検出モジュールを適用して抽出された顧客の上半身の他の特徴点(例えば、肩、肘、手首)に基づいて、手首から先の部位の位置を演算により求める。
 本実施例では、上半身の一部の特徴点(例えば、肩、肘、手首)を取得することができれば、人体の骨格構造に基づいて、手の位置を推測できることを利用する。
 本実施例では、天井から店舗内を撮影するデプスカメラや3次元カメラで利用者を撮影し、どの段の棚のどの商品を手に取ったかを判定する。この際、手や指の位置を、商品取得判定に利用しようとすると、カメラ位置から見て手や指が棚と重なってしまい、高さ方向が判定できない(誤った高さの商品を取得したと判定してしまう)。
 そこで、棚と重なる手や指の位置情報は使用せず、棚と重ならない手首、肘または腕の任意の部分の位置座標情報から、手の位置を演算して求めることとしている。
 この結果、事前のラーニング処理をより容易にし、実際の作業の時間をより迅速化し、かつエラーの発生を抑えて、出力の信頼性を高めることができる。
 例えば、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、商品のピックアップに用いられた1つの腕の肘と手首の2つの位置について特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
 好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、左右の肘、左右の手首の4つの位置について特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
 より好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、左右の肩、左右の肘、左右の手首の6つの位置について特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
 より好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、頭部、左右の肩、左右の肘、左右の手首の計7つの位置に限定して特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
 より好適には、カメラセンサユニット104aのカメラデバイス506aが撮影した画面上で、骨格検出モジュールを適用することにより、顧客の上半身のうち、頭部、首部、左右の肩、左右の肘、左右の手首の計8つの位置に限定して特徴点を検出し、手や指等の他の特徴点については、これらの位置に基づいて演算により求める。
 図37の(A)を参照すると、従来技術で適用されていた、骨格検出モジュールの適用時の人体の特徴点が例示されている。この例では、人体のうち、上半身と下半身とから18個の特徴点を検出している。実際の撮影画像から、これら特徴点を検出することには特有の困難があり、実際の適用時にはエラーの発生が多かった。
 図37の(B)を参照すると、本実施例における、人体の上半身の特徴点が例示されている。この例では、好適には、人体のうち、最大で、頭部(1)、首部(2)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8)の8つの位置(太線部)を検出して、人体の他の部位(手、首等)の位置を演算により求めることができる。
 好ましくは、各特長点は、撮影画像中のピクセル座標に基づく。
 好ましくは、頭部(1)の位置を検出する際、両目、両耳、鼻等の顔面の細かい特徴点については除外して、頭部(1)の検出を容易にする。
 好ましくは、抽出した特徴部(頭部(1)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8))の位置に基づいて、首(2)の位置を演算により求める。
 好ましくは、抽出した特徴部(頭部(1)、左右の肩(3、6)、左右の肘(4、7)、左右の手首(5、8))の位置に基づいて、左右の手首(5、8)から先の左右の手の位置(手の推定点)を演算により求める。
 好ましくは、胸や背中の胴体の位置は検出対象から除外するが、人体の前後方向を検出または演算により求めることは可能である。
 特に、肘(4、7)の位置と、手首(5、8)の位置とを抽出することにより、腕、前腕、上腕の各位置を演算により求めることができる。
 この際、「腕」とは、人体のうち、肩(3、6)から手首(5、8)までの部分を指すものとする。
 また、「前腕」とは、人体のうち、肘(4、7)を境に腕を2つの区間に分けて、手首(5、8)に近い方を指すものとする。
 また、「上腕」とは、人体のうち、肘(4、7)を境に腕を2つの区間に分けて、肩(3、6)に近い方を指すものとする。
 「前腕」と「上腕」は、肩(3、6)、肘(4、7)、手首(5、8)の三次元空間内の位置座標に基づいて、直線状に求めることができる。
 好ましくは、人体の骨格構造に基づいて、「前腕」と「上腕」について、単純な直線状として求める。ただし、人体の骨格構造に基づいて、「前腕」と「上腕」について、円弧状または曲線状として求めることは可能である。
 さらに、肘(4、7)から手首(5、8)までの前腕の長さを二等分する中心の位置として、「前腕中心点」を演算により求めることができる。
 同様に、肘(4、7)から肩(3、6)までの上腕の長さを二等分する中心の位置として、「上腕中心点」を演算により求めることは可能である。
 ただし、商品の購入プロセスで重要な役割を果たすのは、手や指の側の部位である。このため、本実施例では、特に、「前腕」と「前腕中心点」とを演算により求める。
 なお、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを三等分して、手首(5、8)に近い方を演算により求めてもよい。
 また、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを三等分して、肩(3、6)に近い方を演算により求めてもよい。
 また、「前腕中心点」を求める替わりに、肘(4、7)から手首(5、8)までの前腕の長さを複数の区間に分割して、任意の区間を演算により求めてもよい。
 さらに、「首(2)」を、人体において頭部と胴体をつなぐ部位として求めることができる。本実施例2では、左右の肩(3、6)の位置に基づいて、首(2)の位置を演算により求めてもよい。左右の肩(3、6)の長さ(肩幅)は、人体の動きによって、通常、大きく変化しないため、3次元空間内のその中間の位置座標を求めることで、水平方向での首(2)の位置を求めることができる。さらに、左右の肩(3、6)の位置を基準として、垂直方向の首(2)の位置を求めることができる。例えば、左右の肩(3、6)の位置の水平方向の中心位置であって、かつ、上方向に所定距離持ち上げた位置でもよい。この際、頭部(1)の位置と左右の肩(3、6)の位置とを用いて、首(2)の位置を求めてもよい。
 なお、頭部(1)は、人体のうち最も高い位置にある、所定の大きさを有する部位として求めてもよい。これによって、例えば、髪型の変化や、帽子の有無等の相違によらず、統一的に頭部(1)の位置を求めることができるようにしてもよい。さらに、顔等の詳細については、検出対象から除外するため、比較的容易に頭部(1)の位置座標を取得することができる。なお、頭部(1)の位置を求める際、前方(顔のある方向)または後方(顔のない方向)の区別をすることは可能である。
 商品のピックアップのプロセスで、とりわけ重要なのが、手首の先にある手の位置である。
 「手首(5、8)」とは、人体の腕と手の掌とをつなぐ部分を指すものとする。
 「手」とは、人体のうち、手首(5、8)から指先までの部分を指すものとする。腕の末端にある器官である手は、腕には含まれないものとする。
 本実施例では、撮影画像上で行った画像解析により直接的に求めた肘(4、7)や手首(5、8)等の位置に基づいて、手の推定点を演算により求めることができる。
 手は、開いたり閉じたりすることで、大きさを変えることができる。このため、手の推定点は、手のどの位置を基準にするかで変化する。本実施例では、実際の商品の購入プロセスを基準にして、手の推定点を求める。例えば、商品を掴む動作に注目して、掌の中心位置として、手の推定点を求めてもよい。または、商品まで最大限に届く範囲に注目して、手を開いたときの指の先端として、手の推定点を求めてもよい。または、商品をピックアップする動作に注目して、他の位置で手の推定点を求めてもよい。
 例えば、「手の推定点」は、肘(4、7)の位置を基準にして、前腕の方向に沿って直線を適用したとき、肘(4、7)から手首(5、8)までの前腕の長さを所定の倍数で延長した位置として求めてもよい。
 前腕に沿って、手首から先に所定倍数で延長された位置に「手の推定点」を定めることにより、実際に、顧客が商品棚に向って腕を伸ばして、商品を掴もうとする状態での手の略中心点(または手の先端)を取得する。このため、手首や指等の様々な動きにかかわらず、統一的に、商品を掴もうとする手の基準となる位置を取得する。
 上記「所定の倍数」とは、本出願人による様々な試験を経て、試行錯誤的に導き出された値である。
 例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「4/3」倍に延長した位置である。
 例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「1.33」倍に延長した位置である。
 例えば、手の推定点は、肘(4、7)を基準にして、前腕の方向に沿って、肘(4、7)から手首(5、8)までの前腕の長さを「1.3」倍に延長した位置である。
 上述のように、商品のピックアップの仮定では、手の大きさは様々に変化する。したがって、手の基準となる点をどのように設定するかで、所定の倍数は変化し得る。例えば、掌の中心位置を基準とするか、それとも、手を開いたときの指の先端を基準とするかで、所定の倍数は変化し得る。また、実施例の店舗内の商品棚の大きさや形状等によって、商品購入時に、手が隠される割合が変化し得る。従って、上記「所定の倍数」については、実施形態に応じて、修正を加えることは可能である。
 例えば、手の推定点は、肘を基準にして、前腕の方向に沿って、肘から手首までの前腕の長さを「4/3」倍、「1.33」倍、または「1.3」倍に延長した位置に対して、±5%程度、±10%程度、±15%程度、±20%程度、または±25%程度の範囲内で修正を加えてもよい。他、実施態様に応じて、上記「所定の倍数」に対して、より小さな割合またはより大きな割合で修正を加えることは可能である。
 また、手の推定点は、肘から「前腕中心点」までの長さが、所定の倍数(例えば、8/3倍、2.67倍、2.7倍等)で延長されることで、求められてもよい。
 また、手の推定点は、「前腕中心点」から手首までの長さが、所定の倍数(例えば、8/3倍、2.67倍、2.7倍等)で延長されることで、求められてもよい。
 つまり、例えば肘から前腕中心点までを1、肘から手首までを2、手首から手までを0.67(肘から手首/3)としたとき、肘から手までを2.67とする。
 これらの場合、所定の倍数と、その修正の割合は、前腕の長さを延長する場合と同様に求めることができる。
 同様に、手の推定点は、「腕の任意の位置」から手首までの長さが、所定の倍数で延長されることで、求められてもよい。
 さらに、手の推定点は、3次元空間内の1点として求められる他、3次元空間内の任意の広がり(幅/大きさ)として求められてもよい。例えば、手の推定点は、手の指先から掌の中心までの広がりとして求められてもよい。
 本実施例では、男女の相違や、身長の相違や、年齢の相違によって影響を受けることなく、統一的に、顧客の「手の推定点」を求めることができる。
 即ち、解剖学的には、男性と女性の間の差異は、骨格に関しては小さいとされている。同じ身長であれば、男女の区別なく、肩幅や手の大きさは、ほとんど同一であるとされている。従って、本実施例は、顧客の男女の相違にかかわらず「手の推定点」を求めることができる。
 また解剖学的には、手の大きさは、身長の大きさに比例する傾向がある。一般に、身長の大きなひとは、前腕の長さも長く、手の大きさも大きい傾向にある。同様に、身長の小さなひとは、腕の長さも短く、手の大きさも小さい傾向にある。このことは、大人と子供の関係についても同様に当てはめることができる。従って、本実施例は、顧客の身長や年齢の相違にかかわらず「手の推定点」を求めることができる。
 さらに、本実施例では、後述のように、「手の推定点」に関連する高さ方向の位置座標を比較的に高い精度で取得できるように工夫を加えている。
 従って、本実施例では、人体の上半身に限定して検出された特徴点に基づいて、「手の推定点」を求めるため、車椅子で来店する顧客に対しても、通常に歩行する他の顧客と同様に、「手の推定点」を求めることができる。
 従って、本実施例は、通常の歩行をする健常者と、車椅子で移動する障碍者との相違によって影響を受けることなく、顧客の「手の推定点」を求めることができる。
 さらに、本実施例では、上述のように、人体の下半身の状態にかかわらず、「手の推定点」を求めることができる。
 従って、本実施例は、通常の歩行をする健常者と、松葉杖を使って移動する障碍者との相違によって影響を受けることなく、顧客の「手の推定点」を求めることができる。
 従って、本実施例は、実質的にほとんどの状況下で、統一的に顧客の「手の推定点」を求めることができる。
 さらに、本実施例では、人の上半身に限定して、特徴点(頭部、肩、肘、手首)を抽出することにより、全身から複数の特徴点を抽出する場合と比較して、画像上に遠近感のズレが生じることを最小にしている。さらに、本実施例では、隠されやすい部位を検出対象から除外して、検出の容易な特徴点に絞って画像解析を行うことで、画像解析にエラーが生じることを最小にしている。
 例えば、従来技術では、店舗の天井付近に設置されたカメラから、その下方の人物を撮影する場合、その人物を正面から撮影する場合と比較して、上半身と下半身とでは遠近感に相違が生じて、上半身に対して下半身がより小さく表れやすくなっていた。また、下半身は、上半身によって隠されることがあった。本実施例では、そのような不都合が生じることを最小にしている。
 図38の(A)、(B)を参照すると、撮影画像に対する骨格検出モデルの適用例が示されている。この例では、店舗の天井付近に設置されたカメラ(例えば、カメラセンサユニット104aのカメラデバイス506a)から、下方の人を撮影した画像に基づいて、各人の骨格検出モデルの適用例が示されている。
 図38の(A)では、撮影画像上で骨格検出モデルを適用するとき、人体の骨格の特徴に基づいて、全身から複数の特徴点(例えば、18個)を検出している(図37の(A)参照)。特にこの例では、足元で検出精度が大きな乱れが生じているのがわかる。また、手首から先の手や指の細かい部位については、検出が困難であることがわかる。
 図38の(B)では、本実施例に従って、撮影画像上で骨格検出モデルを適用するとき、上半身に限定して、より限られた数で、複数の特徴点(例えば、8個)を検出している(図37の(B)参照)。本実施例では、検出が比較的容易な部位に限定して、人体の特徴点を検出することにより、骨格検出モデルの適用の精度の低下を回避している。さらに、検出した特徴点に基づいて、手や指の位置を演算により求めるため、単なる骨格検出モデルの適用からは取得できない位置についても取得できるようにしている。
 図39を参照すると、撮影画像に対して適用される骨格検出モデルの例が示されている。このように、通常の骨格検出モデルの適用時には、手首から先は出力されない場合がある。
 前腕の方向で、手首の位置までしか検出されない場合、商品との間の距離が大き過ぎることになる。この結果、従来技術では、手首の位置に基づいて、商品のピックアップの判定を行う場合、検出誤差や設定ミスが発生しやすくなる。その結果、近くにいる他の顧客との間で、間違った商品のピックアップの判定を行うリスクが生じやすくなっていた。
 本実施例では、手の推定点を演算により求めるため、そのようなリスクの発生を最小にしている。
 さらに、本実施例では、「手の推定点」に関連する高さ方向の位置座標を比較的に高い精度で取得できるように工夫を加えている。
 図40の(A)を参照すると、骨格検出モデルの適用時に、手首より先の部位が商品棚の天板によって隠される場合を例示している。
 この状態で手首の位置を検出しようとすると、図40の(B)に例示するように、商品棚の一部(天板等)の上に誤って手首が検出されることが起こり得る。その結果、手首の位置座標を取得するため、その画像上のピクセルの位置で高さ方向(Z軸方向)の位置座標を取得しようとすると、検出対象にずれが生じることが起こり得る。
 このように、カメラが天井から斜め下を撮影した場合の3次元空間内で、特にZ軸座標(奥行の情報)では、手首の位置座標ではなく、商品棚の一部(天板等)の位置情報が誤って取得されることがある。その場合、手首の位置座標を正確に求めることができない虞がある。
 本実施例では、商品の購入プロセスで、顧客が商品棚に近づく場合、その手または手首の位置情報を取得する時、手首の位置ではなく、肘と手首の間の位置を使用することができる。
 例えば、肘から手首までの前腕の長さを二等分する中心の位置として、「前腕中心点」を求めて、その位置でデプス(奥行き)を取得してもよい。
 実際の商品購入プロセスでは、商品棚の中にある商品を手で掴もうとする際、手や指だけでなく、手首や前腕の一部が隠されることが起こり得る。しかし、そのような場合であっても、「前腕中心点」までが商品棚の中に隠されることは少ない。
 従って、本実施例では、例えば、顧客が商品棚に近づく場合、手首の位置情報(特にデプス)として「前腕中心点」の位置を求めてもよい。
 ただし、デプスを取得する位置は、商品棚の各段の板の大きさ等に基づいて変化し得る。そのため、本実施例では手首のZ軸方向の位置として、「前腕中心点」の位置を使用することに限定されない。
 例えば、肘から手首までの前腕の長さを三等分して、手首に近い側または肩に近い側の位置を求めて、その位置でZ軸方向の位置を取得してもよい。
 または、肘から手首までの前腕の長さのうち、任意の位置を求めて、その位置でZ軸方向の位置を取得してもよい。
 さらに、Z軸方向の位置に関して、「前腕中心点」の位置情報を取得するとともに、上半身の他の部位、例えば、肩、上腕中心点、肘などの位置情報を取得して、これらの値を組み合わせて用いてもよい。
 従って、本実施例では、商品棚の任意の段の中に手を入れた場合、その上方の天板等のため、商品を掴もうとする手首より先が隠されたとしても、そのZ軸方向の位置を比較的に正確に求めることができる。
 図41を参照すると、本実施例における手の推定点を求めるプロセスが例示されている。この工程は、骨格検出用カメラセンサユニット104aの骨格検出モジュール510aにより行うことができる(図5の(B)参照)。
 まず、骨格検出モジュール510aが、カメラデバイス506aの撮影画像を入力として受信する(ステップS1)。この撮影画像は、例えば、RGB画像である。
 次に、骨格検出モジュール510aは、その撮影画像に基づいて、所定の部位について骨格の座標(X,Y座標)を取得する(ステップS2)。例えば、肘、手首の(X,Y座標)をそれぞれ取得する。
 次に、骨格検出モジュール510aは、肘、手首の(X,Y座標)に基づいて、「前腕中心点」の(X,Y座標)を演算により求める(ステップS3)。
 次に、骨格検出モジュール510aは、「前腕中心点」及び/または肘の位置におけるデプス(Z座標等)を取得する(ステップS4)。
 次に、骨格検出モジュール510aは、肘を基準として、前腕の長さを所定の倍数で延長する(ステップS5)。例えば、骨格検出モジュール510aは、肘から「前腕中心点」までの長さ(または「前腕中心点」から手首まで)を求めて、その長さを2.67倍延長する。その結果、骨格検出モジュール510aは、「手の推定点」の座標(X,Y座標)を演算により求める。
 次に、骨格検出モジュール510aは、肘と「前腕中心点」のZ座標(デプス)を取得し(ステップS6)、これを同様に2.67倍することで、「手の推定点」のZ座標を演算により求める。
 このように、骨格検出モジュール510aは、肘と「前腕中心点」の座標から「手の推定点」の3次元空間内の位置座標(X、Y、Z座標)を演算により求める。
 なお、肘から「前腕中心点」の長さを2.67倍(2と2/3倍)するとは、つまり、肘から手首までの長さの1.67倍(1と2/3倍)の位置に「手の推定点」があることを意味する。
 最初からZ座標を含めたX,Y,Z座標により手の推定点を算出することも可能であるが、こうすると棚の中に手が入っている状態では、天井から撮影したカメラからでは手のZ座標(またはデプス)を正確に算出することができず、誤差が発生してしまう。
 従って、本実施例では、手が棚の中に入っていても撮影されている肘と「前腕中心点」のZ座標(またはデプス)を取得し、それらの間の長さを延長することで、手のX,Y,Z座標を算出する。
 以上のように、本実施例では、実際に、店舗内に設置した骨格検出用カメラセンサユニット104aのカメラデバイス506aによって撮影された画像に基づいて、人体の上半身に限定して骨格検出モデルを適用することで、骨格検出モジュール510aが頭部、首部、両肩、両肘、両手首の8個の特徴点を検出することができる。
 撮影画像上で適用される骨格検出モデルについては、事前に様々な学習作業(ラーニングまたはトレーニング)が行われる。
 本実施例では、店舗内での人の動き(歩行等)や、実際の商品購入プロセス等を基準として、検出の容易な特徴点(頭部、首部、両肩、両肘、両手首等)に絞って画像解析を行うことで、事前の学習作業を容易にしている。
 この際、本実施例では、人体の動きを考慮する。例えば、人体は、腰を曲げたり、体を反らしたり、腕を上下させたり、腕を前後させたり、腕を組んだり等、様々な動作を行うことができる。本実施例では、店舗内で想定される人の動きに集中して学習作業を行うことで、その運用を容易にしている。例えば、店舗内での通常の歩行姿勢や、背中を丸めた姿勢等を主体として学習し、宙返り等の特殊な動作はあらかじめ学習内容から除外する。
 学習作業段階では、カメラ管理端末530aの骨格検出モジュール510aは、特に人体の頭部、肩、肘、手首について、特徴的な形状、図形、輪郭、線、頂点、色等に基づいて、静止画の画像解析を行ってもよい。
 この際、骨格検出モジュール510aは、受信した静止画に対して、ピクセル毎またはピクセル集合毎で、画像を分類化してもよい。そして、ピクセル毎またはピクセル集合毎で、形状、図形、輪郭、線、頂点、色等の識別を行うことで、頭部、肩、肘、手首に関する特徴的な物標を特定してもよい。
 骨格検出モジュール510aは、AIによる機械学習により、予め各種画像に対して画像解析のトレーニングを行うのが好ましい。特に、様々な具体例に基づいて、実際に画像解析を行って、画像から物標(形状、図形、輪郭、線、頂点、色等)を識別し抽出するトレーニングを行う。トレーニングは、例えば、数百、数千、またはそれ以上の異なる物標の画像に対して行われ、各種結果を蓄積する。その際、その結果について統計データを計算及び生成してもよい。トレーニングによって、高い識別率、例えば、99%程度または99.9%程度またはそれ以上の程度での識別率が得られた後で、実際に画像処理を行って、画像から物標を識別してもよい。
 上記AIによる機械学習により実施されるトレーニングでは、様々な画像情報を教師データとして用いてもよい。例えば、入力を静止画として、出力を特徴的な物体の形状、図形、輪郭、線、頂点、色等に関する情報とする判定モデルを機械学習により生成してもよい。
 トレーニングでは、様々な時間帯における店舗内の様子を勘案してもよい。例えば、店舗内に光が差し込む日中や、店舗内の照明だけが用いられる夜中における、影の映り方の相違などを学習してもよい。また、店舗内に人がいないとき、数人だけがいるとき、大勢の人がいるときなどの、様々な店舗内の様子について学習してもよい。
 この判定モデルに新たな静止画を入力することで、出力として特徴的な物標が得られるようにしてもよい。
 実際の骨格検出時には、骨格検出モジュール510aは、事前の学習作業時に蓄積されたデータに基づいて、特徴点ごとに信頼度を作成してもよい。
 例えば、事前に学習した位置とほぼ等しい割合(約100%や、約99%程度)で検出位置が一致したとき、高い信頼度の情報を付与してもよい。また、事前に学習した位置と比較して、検出位置のズレが大きくなる程、より低い信頼度の情報を付与してもよい。
 例えば、画像を入力として、画像中に映っている人物ごとに、特徴点(頭・首・両肩・両肘・両手首等)に関して、位置(画像中のピクセル座標)と、信頼度(0から1の値や、1から10の値等で、数値が高いほど位置の精度が高いことが期待される値)とを表示してもよい。後者については、画像中で、関節の位置に色を変えることで表示してもよい。例えば、緑色の場合は信頼度が高く、黄色の場合は信頼度が中間で、橙色の場合は信頼度が低いことを示してもよい。色分けや、色のグラディエーションで信頼度を表示することで、どの関節の位置の信頼性が高いかについて、速やかに視認できるようにしてもよい。
 本実施例では、店舗の天井または上方に設置した骨格検出用カメラセンサユニット104aのカメラデバイス506aによって顧客を上から見下ろすように撮影することで、被写体とカメラとの間が遮られることを最小にしている(図36の(A)参照)。しかしながら、そのような場合であっても、顧客の立ち位置や、他の顧客との重なり方などによっては、顧客の腕や肩などの体の一部が完全に撮影されない場合が起こり得る。
 一方、本実施例では、好適には、店舗内に設置された各商品棚をそれぞれ最良に撮影できるように、複数のカメラデバイス506aを設置している(図36の(A)参照)。そのため、少なくとも2つのカメラデバイス506aによって、同一の商品棚の近くにいる顧客の様子を、それぞれ異なるPOV/FOVから、ほぼ同時に撮影することが起こり得る。
 そこで、1つのカメラデバイス506aからの撮影画像だけでは、ある顧客の上半身の所定の骨格が十分に検出できない場合には、骨格検出モジュール510aは、他のカメラデバイス506aからの撮影画像を援用して、その欠けている部分を補うようにしてもよい。
 図43の(A)、(B)を参照すると、店舗内の同一の顧客について、異なる2つのカメラデバイス506aのPOV/FOVから撮影された撮影画像が例示されている。
 図43の(A)では、商品棚に対して正対する顧客の様子が正面側から撮影されており、一方の腕を下している様子が示されている。
 図43の(B)では、商品棚に対して正対する顧客の様子が側方から撮影されており、一方の腕を下し、他方の腕を曲げている様子が示されている。
 理想的には、商品棚に対して正対した顧客を正面から撮影する図42の(A)が好ましいが、顧客の立ち位置や向き等によっては、必ずしも顧客の上半身の全体が撮影されないことが起こり得る。その場合、同一顧客をほぼ同時に撮影した他のカメラデバイス506aの撮影画像を補助的に用いてもよい。
 例えば、2つのカメラデバイス506aによって、同一人物をほぼ同時に撮影できたと仮定する。それぞれの撮影画像を受信するカメラ管理端末530aにとっては、各カメラデバイス506aの位置座標は既知であり、それぞれの撮影画像上の位置座標を互いにレジストレーションまたは座標変換することができる。
 例えば、図43の(A)で撮影された人物の骨格の特徴を基準とし、欠けている部分(例えば、一方の腕側の特徴部は検出できたが、他方の腕側の特徴部が検出できなかった場合)については、骨格検出モジュール510aは、図43の(B)で撮影された人物の骨格の特徴を援用する。その際、図43の(B)の特徴部の位置座標を、図43の(A)における位置座標に変換して、図43の(A)の3次元空間内で2つの撮影画像の特徴部の位置を重ね合わせてもよい。
 図44の(A)、(B)を参照すると、2つのカメラデバイス506aによって撮影された画像に基づいて検出された骨格の位置を、同一座標上にまとめた例が示されている。例えば、それぞれの画像から検出された各関節が、互いの位置座標を重ね合わせることが可能なとき、それぞれを同一の関節に紐づける。
 好ましくは、図44の(A)に例示するように、骨格検出モジュール510aは、各カメラデバイス506aから検出された関節のうち、特に頭部の座標を基準として、他の関節の位置座標をグルーピングする。そして、骨格検出モジュール510aは、各カメラデバイス506aから検出された頭部、首部、両肩、両肘、両手首の座標を重ね合わせることで、各カメラから検出された関節の位置座標を互いに対応付ける。
 その際、2つのカメラデバイス506aから取得された頭部の位置座標が互いに所定の閾値内で重ね合うとき、例えば、100%から99%までの範囲内、または100%から95%までの範囲内、または100%から90%までの範囲内の重なり合いが得られてとき、双方を互いに紐づける。首、肩、肘、手首などについても同様である。
 図44の(B)では、骨格検出モジュール510aが、2つのカメラデバイス506aから取得された各特徴部の位置座標を1つの位置座標に集約した場合を例示している。
 この際、骨格検出モジュール510aは、2つの3次元空間内の位置座標を1つに集約する時、あらかじめ、優先する順位を定めておく。例えば、商品棚に対して正面から撮影した静止画像に基づく特徴部の方を、商品棚に対して角度を付けて(例えば、横から)撮影した静止画像に基づく特徴部に対して、優先させてもよい。
 このようにして、本実施例では、一方のカメラデバイス506aのPOV/FOVから完全に撮影できなかった部分が、他方のカメラデバイス506aのPOV/FOVから撮影できた場合には、骨格検出モジュール510aは、その撮影された部分によって足りない部分を補完することができる。
 従って、本実施例では、図41で例示したプロセスでは、骨格検出モジュール510aは、ある1つのカメラデバイス506aから得られた1つの撮影画像に基づいて骨格検出モジュールを適用することによって、顧客の上半身の特徴を検出して、「手の推定点」を演算により求めてもよい。
 または、本実施例では、図41で例示したプロセスでは、骨格検出モジュール510aは、2つまたは複数のカメラデバイス506aから得られた2つまたは複数の撮影画像の組み合わせに基づいて骨格検出モジュールを適用することによって、顧客の上半身の特徴を検出して、「手の推定点」を演算により求めてもよい。
 従って、本実施例では、様々な状況下で、顧客が商品をピックアップするときの基準となる「手の推定点」を取得することができる。
 次に、「手の推定点」を用いて行われる、商品のピックアップのイベントの判定について説明する。
 なお、「ピックアップ」とは、顧客の手によって、店舗内の商品棚に陳列されていた1つまたは複数の商品が取り上げられることをいう。そのときの手の形状や指の位置等は任意であり、また、取り上げられる方向または高さ等は任意である。
 カメラ管理端末530aの骨格検出モジュール510aが取得した「手の推定点」の位置座標は、管理サーバ101に送信される。または、その情報は、カメラ管理端末530の位置検出モジュール510が取得した情報と統合された後、管理サーバ101に送信されてもよい。
 管理サーバ101は、「手の推定点」の位置を取得することにより、3次元空間内で、既に知られている商品棚の位置(商品の位置)と、「手の推定点」の位置との相対関係を判定することができる。
 上記判定は、同一の3次元空間内で、双方の3次元座標の接近度合いに基づいて行われる。
 例えば、商品棚の位置(商品の位置)に対して、100%から90%までの範囲内、または100%から95%までの範囲内、または100%から99%までの範囲内で「手の推定点」の位置が重なっていることが判定された場合、商品棚の商品の近くに手が存在することを判定することができる。
 または、例えば、商品棚の各商品と関連付けられた所定の閾値に対して、その閾値を超えて「手の推定点」が検出された場合、その商品の近くに手が存在することを判定することができる。
 これらの場合、管理サーバ101の顧客個数判定モジュール1105は、商品がピックアップされるイベントの発生を推定/仮定することができる。
 上述のように、商品棚と関連付けられている重量センサデバイス608の出力は、管理サーバ101の顧客個数判定モジュール1105に送信されている。従って、管理サーバ101は、さらに重量センサデバイス608からの出力値を組み合わせて用いることで、実際に商品がピックアップされるイベントが発生しているか否かについて、高い精度で判定することができる。
 即ち、本実施例では、商品棚の各段には、それぞれの棒または板または商品かごの上に置かれた商品の重さを検出する重量センサデバイス608が組み込まれている(図7、図8等参照)。管理サーバ101の顧客個数判定モジュール1105は、その重量センサデバイス608の出力を所定間隔で周期的に受信する。通常、商品の重さ自体には、経時的な変化は起こらない。そのため、重量センサデバイス608が仕様通り作動している限り、管理サーバ101の顧客個数判定モジュール1105は、その商品棚に商品が置かれているか否かを常時追跡することができる。
 例えば、ある商品棚に、1つ当たり50gの重さの商品が2つ置かれていて、初期値を0gとした場合(棒や板や商品かごの重さを0gと仮定する場合)、その商品棚の重さは100gとして検出される。
 「手の推定点」が商品棚の商品の位置に重なった時点またはその前後で、該当する商品棚の重さに変化が生じたとする(例えば、100gの値が50gの値に変化する)。その場合、管理サーバ101の顧客個数判定モジュール1105は、それら2つのデータに基づいて、その「手の推定点」と関連付けられた顧客によって、重さの変化が生じた商品(50g=100g-50g)がピックアップされたと判定することができる。
 管理サーバ101の顧客個数判定モジュール1105は、商品棚の各段の重量センサデバイス608が定期的に(ループ処理で)取得している重量のデータを、「重量時系列データ(重量情報の一部)」として参照することができる。例えば、重量センサは、100ms周期で、商品棚の各段の重量のデータを取得してもよい。
 上述のように、商品棚の近くにはカメラデバイス506、506aが設けられており、定期的に(ループ処理で)商品棚の周囲の様子を撮影することができる。
 重量センサデバイス608が重さを検出する周期と、カメラデバイス506、506aが画像を撮影する周期とは、一致する必要はないが、店舗内の人の動きを逐次追跡するために十分に短いものとする。
 なお、カメラデバイス506aは、常時、所定間隔で、周期的に商品棚の近くにいる人物の画像を撮影してもよい。
 または、カメラデバイス506aは、商品棚の近くに人物が接近したことを検知したとき、その出力をトリガとして、その人物の画像を撮影してもよい。
 または、カメラデバイス506aは、商品棚の近くに人物が接近して、かつ商品棚の方に腕を指し伸ばしたことを検知したとき、その出力をトリガとして、その人物の画像を撮影してもよい。
 カメラ管理端末530aまたは管理サーバ101は、各場合で、カメラデバイス506aから送信される撮影画像の入力の受信をトリガとして、上記「手の推定点」の三次元空間内の位置座標(X、Y、Z座標)を演算により求めてもよい。
 本実施例では、管理サーバ101の顧客個数判定モジュール1105によって行われる顧客個数判定の処理(流れ)は、以下の各ステップからなるフローを有する。
 顧客個数判定モジュール1105は、事前に、平均的な顧客の手の位置と、商品棚中の商品セグメントまたは商品との間の距離(または、商品に対して手が接近したと判定できる閾値)を測定または算出し、その値を記憶する(前処理)。
 顧客個数判定モジュール1105は、位置検出用カメラセンサユニット104のカメラデバイス506によって、店舗内の各顧客の位置を追跡した撮影画像を受信する。
 顧客個数判定モジュール1105は、骨格検出用カメラセンサユニット104aのカメラデバイス506aによって、店舗内の各顧客の様子を撮影した撮影画像を受信する。
 顧客個数判定モジュール1105は、カメラデバイス506aからの撮影画像上で骨格検出処理モジュールが適用されて、検出された顧客の上半身の所定の特徴部に基づいて演算により求められた手の推定点の位置座標を取得する。
 さらに、顧客個数判定モジュール1105は、一つの3次元空間内に、位置検出用カメラセンサユニット104からの出力と、骨格検出用カメラセンサユニット104aからの出力とを互いに組み合わせてもよい。これら情報は、顧客ごとに1つの人物IDに集約されて、時系列的に蓄積される。例えば、顧客個数判定モジュール1105は、キャリブレーション情報を利用して、(骨格検出情報中の)各顧客の手の位置を、画像内のピクセル座標から、位置追跡空間の座標に変換してもよい。
 さらに、顧客個数判定モジュール1105は、位置追跡情報中の各顧客の位置と、骨格検出情報中の各顧客の位置を突き合わせて、骨格検出情報中の顧客の人物IDを決定してもよい。
 さらに、顧客個数判定モジュール1105は、店舗内の各商品棚の位置座標について既知である。このため、店舗内の顧客のうちの誰が、何処の商品棚に向って手を伸ばしているのかを判定することができる。例えば、管理サーバ101は、手の推定点と、商品セグメントまたは商品の位置との間の距離(以下、手セグメント距離)を計算する。
 さらに、顧客個数判定モジュール1105は、商品を展示する各商品棚の重量時系列データを受信し、継続的に、商品の重量の時系列変化を分析する。
 図62を参照すると、骨格検出用カメラセンサユニット104aの出力、位置検出用カメラセンサユニット104の出力、及び重量センサユニット105の出力が、管理サーバ101の顧客個数判定モジュール1105に送信される別の例が示されている。
 骨格検出用カメラセンサユニット104aは、店舗内を撮影することで、RGB画像とDepth画像(深さ画像)とを取得する。これら画像は、エッジデバイス側で、骨格検出モジュール510aによって処理することができる。
 なお、以下の処理は、エッジデバイス側から管理サーバ101側(クラウド側)に画像を送信した後、サーバ側で処理を行う構成であってもよい。
 まず、ステップX1で、RGB画像に対して、骨格検出モデルを適用することで、人体の骨格モデルに基づいて、所定の特徴部(頭部、首部、両肩、両肘、両手首のうちの全てまたは任意の一部、以下同様)のX、Y座標を取得することができる。
 一方、ステップX2で、Depth画像に対して、座標変換歪み補正を適用することで、Depth画像をRGB画像に対応付けることができる。ステップX3で、これら双方を組み合わせることで、所定の特徴部のX、Y座標とDepth情報(Z座標)とを統合することができる。
 さらに、ステップX4で、この結果に対して座標変換歪み補正を適用することで、RGB画像上でのX、Y座標の歪みを補正できる。この結果、カメラ座標として、所定の特徴部のX、Y座標とDepth情報(Z座標)とを取得することができる。さらに、ステップX5で、この位置情報に基づいて、所定の演算を行うことで、手の推定位置の座標を求めることができる。従って、最終的に、骨格の所定の特徴部と手の推定点のX、Y、Zのカメラ座標を取得することができる。
 位置検出用カメラセンサユニット104は、ステップY1に示すように、店舗内を撮影することで、人物に対して、IDと、ToF座標として、X、Y、Z座標を取得することができる。この画像は、PC等のエッジデバイス側で、位置検出モジュール510によって処理される。一方、ステップY2で、位置検出用カメラセンサユニット104は、骨格検出用カメラセンサユニット104aからの出力を受信して、骨格の所定の特徴部と手の推定点のX、Y、Zのカメラ座標を取得することができる。
 さらに、ステップY3で、この結果に対して座標変換補正を適用することで、カメラ座標をToF座標に対応付けることができる。さらに、ステップY4で、同一空間内で、ステップY1とY3の出力を組み合わせることで、骨格と人物とを対応付けることができる。従って、最終的に、人物(顧客)のID、頭部、手の推定点のToF座標としてのX、Y、Z座標を取得することができる。
 さらに、重量センサユニット105の重量センサデバイス608は、重さのデータを時系列的に取得する。ステップZ1に示すように、このデータは、Raspberry Pi(登録商標)等のエッジデバイス側で、モジュール610によって処理される。
 管理サーバ101の顧客個数判定モジュール1105は、予め取得している店舗内の商品棚の商品の位置と、位置検出用カメラセンサユニット104から取得した人物(顧客)のID、頭部、手の推定点のToF座標としてのX、Y、Z座標と、重量センサデバイス608から取得した時系列的な重さのデータとを受信する。従って、これらデータを組み合わせて用いることで、顧客の商品のピックアップの判定を行うことができる。
 従って、顧客個数判定モジュール1105は、短時間のうちに、連続して商品が取られるような変化が生じたとき、どの時間に、何個の商品が、誰によってピックアップされたのかを判定することができる。
 よって、本実施例では、複数の顧客が、同時またはほぼ同時に、互いに近接する単数または複数の商品をピックアップするとき、どの顧客が、どの商品を幾つピックアップしたのかを判定することができる。
 以下、重量センサデバイス608の出力と手の推定点とを用いて、商品のピックアップの判定について、より具体的に説明する。
 図45を参照すると、顧客個数判定モジュール1105に送信される、重量センサデバイス608の出力の変化と、顧客の手の推定点と棚との間の距離の変化とが重ね合わせて例示されている。
 図45の上方には、各商品棚の重量時系列データの例がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、縦軸には、重量センサデバイス608が記録した値(g)が取られている。
 図45の下方には、上記重量センサデバイス608を備えている商品棚の近くにいる2人の顧客(ユーザ)について、それぞれの手の推定点の位置と棚との間の距離の変化がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、縦軸には、各ユーザの手の推定点と棚(又は商品でも構わない)との間の距離(mm)の変化(手の推定点と商品棚の位置との相互関係)が取られている。顧客個数判定モジュール1105は、手の推定点と棚の間の距離が閾値を下回った場合には、そのあたりで商品を取った可能性があるものと判定する。
 なお、各ユーザには、それぞれ、1と2の人物ID(識別番号)が付与されている。
 図45を参照すると、t0からt2(ms)までの間では、重量センサデバイス608の出力に変化がないことが読み取れる。このため、この期間では、顧客個数判定モジュール1105は、商品棚の商品には変化が起きていないことを推測できる。
 t2からt4(ms)までの間で、重量センサデバイス608の出力の低下が記録されている。この期間、最終的に、50gの重量センサデバイス608の出力の低下が記録されている。従って、顧客個数判定モジュール1105は、この差分の重さ(50g)に相当する1つまたは複数の商品がピックアップされたことを推測できる。
 t4からt7(ms)までの間で、重量センサデバイス608の出力が大きく低下した値を維持していることが読み取れる。このため、この期間では、顧客個数判定モジュール1105は、商品棚の商品には変化が起きていないことが推測できる。
 なお、グラフでは、重量センサデバイス608の出力が簡略化して直線状に示されている。実際には、商品棚の棒にフック状にかけられている商品がピックアップされるとき、棒に負荷が加わるため、重量センサの出力は直線にはならない。商品棚の板や商品かごの上に商品が置かれている場合も同様である。
 本実施例では、顧客個数判定モジュール1105は、ユーザ1、ユーザ2の各手セグメント距離と重量時系列データの時刻とを組み合わせて判定している。
 この例では、ユーザ1は、時刻t1付近までは、手の推定点が商品棚から離れていたが、時刻t1付近からt5付近までの間では、手の推定点が商品棚に近づいているのがわかる。
 なお、時刻t1とは、ユーザ1が手を商品棚に向って指し伸ばし始めた後、手と棚との間の距離が所定の閾値を下まわり(または上まわり)、商品セグメントまで手を近づけたと判定されたときの時刻である。
 また、時刻t5とは、手を商品セグメントまで近づけた状態から、手を商品棚から離れるように戻し始めた後、手と棚との間の距離が所定の閾値を超えて、商品セグメントから手を遠ざけたと判定されたときの時刻である。
 なお、グラフでは、手の推定点の出力が簡略化して直線状に示されている。実際には、まっすぐな軌跡にはならないことを理解されたい。
 同様に、ユーザ2は、時刻t3付近までは、手の推定点が商品棚から離れていたが、時刻t3付近からt6付近までの間で、手の推定点が商品棚に近づいているのがわかる。
 なお、時刻t3とは、ユーザ1が手を商品棚に向って指し伸ばし始めた後、手と棚との間の距離が所定の閾値を下まわり(または上まわり)、商品セグメントまで手を近づけたと判定されたときの時刻である。
 また、時刻t6とは、手を商品セグメントまで近づけた状態から、手を商品棚から離れるように戻し始めた後、手と棚との間の距離が所定の閾値を超えて、商品セグメントから手を遠ざけたと判定されたときの時刻である。
 なお、ユーザ1とユーザ2のグラフ上の縦軸の大きさの相違は、各顧客と商品棚との間の距離の相違に基づく。
 なお、閾値は、商品棚の構成、商品の大きさ等を考慮して、任意の値として設定することができる。
 顧客個数判定モジュール1105は、上記グラフに基づいて、時刻t2からt4までの間で、重量センサデバイス608の出力に変化が生じていることがわかり。このことから、顧客個数判定モジュール1105は、特にこの期間中に、商品のピックアップのイベントが発生したことを推定できる。
 ただし、顧客個数判定モジュール1105は、この期間中、その商品の近くに、ユーザ1の手の推定点と、ユーザ2の手の推定点とが存在していたことを理解できる。
 従って、顧客個数判定モジュール1105は、ユーザ1とユーザ2のいずれかによってその商品のピックアップが行われたのかを判定するための処理を行う。
 本実施例では、顧客個数判定モジュール1105は、誰が、どの商品をいくつピックアップしたのかを判定するための演算を行う。特に、顧客個数判定モジュール1105は、重量変化の起きた期間(時刻t2から時刻t4まで)をユーザごとに分割して、各時間区間の両端の重量の差を計算し、そのユーザが取った重量として紐付ける。
 即ち、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を推定し、その両端の重量変化を取得する。
 例えば、顧客個数判定モジュール1105は、重量の変化が生じた期間として、時刻t2と時刻t4とを取得する。
 また、ユーザ1について、商品のピックアップを可能とする手の移動が生じた期間(手伸ばしの区間)として、時刻t1と時刻t5とを取得する。
 また、ユーザ2について、商品のピックアップを可能とする手の移動が生じた期間(手伸ばしの区間)として、時刻t3と時刻t6とを取得する。
 管理サーバ101は、これら情報を時系列的にまとめて、対比して、ユーザごとの動きがより明確になるように、期間(時刻t2から時刻t4まで)を分割する。
 まず、顧客個数判定モジュール1105は、時刻t1から時刻t3までの期間では、主にユーザ1の手の動きが問題となり、ユーザ2の手の動きは問題ではないと判定する。
 また、顧客個数判定モジュール1105は、時刻t3から時刻t4までの期間は、主にユーザ1とユーザ2の手の動きが問題になると判定する。
 従って、顧客個数判定モジュール1105は、重量の変化が起きた期間(t2からt4まで)を、各ユーザの手の動きに基づいて、第1の区間(t2からt3まで)と、第2の区間(t3からt4まで)とに分割する。
 そして、顧客個数判定モジュール1105は、第1の期間(t2からt3まで)では、主にユーザ1の手の動きが、重量変化に寄与していると推測する。
 また、顧客個数判定モジュール1105は、第2の期間(t3からt4まで)では、主にユーザ1とユーザ2の手の動きが、重量変化に寄与していると推測する。
 さらに、顧客個数判定モジュール1105は、上記期間(t2からt4まで)の分割に対応して、重量についても分割する。即ち、顧客個数判定モジュール1105は、商品の重量の変化(全体で50gとする)が直線的に生じたと仮定して、この重量の変化を第1の区間と第2の区間とに分けて、比例演算する。
 例えば、顧客個数判定モジュール1105は、第1の区間については、全体で50gとしたとき、35g相当の重さの変化が生じたことを算出する。さらに、この重さの変化(35g)を、ユーザ1だけに紐づける。
 また、顧客個数判定モジュール1105は、第2の区間については、全体で50gとしたとき、15g相当の重さの変化が生じたことを算出する。さらに、この重さの変化(15g)を、ユーザ1とユーザ2の双方に紐づける。
 次に、顧客個数判定モジュール1105は、ユーザごとに想定可能な重量を合計して、(予め登録されている)商品の重量と比較して、商品の個数に変換する。
 例えば、顧客個数判定モジュール1105は、第1の期間(t2からt3まで)では、重量センサの変化分(35g)は、ユーザ1だけに紐づけられている。この期間については、管理サーバ101は、ユーザ1とユーザ2とに場合分けする必要がない。
 しかし、第2の期間(t3からt4まで)では、重量センサの変化分(15g)は、ユーザ1とユーザ2に紐づけられている。この期間については、顧客個数判定モジュール1105は、その重量がユーザ1とユーザ2のどちらに起因するのかについて、場合分けして検討する必要がある。
 顧客個数判定モジュール1105は、最終的には、50g相当の商品がピックアップされたことを知っている。そこで、顧客個数判定モジュール1105は、第2の期間(t3からt4まで)については、上記ユーザ1のみに紐づけられた断片的な重さを差し引いた分(50g-30g=15g)を、ユーザ1とユーザ2とにそれぞれ紐づけて、その結果を対比する。
 例えば、顧客個数判定モジュール1105は、仮定1として、第2の期間(t3からt4まで)では、ユーザ1によって15g相当の重さがピックアップされたと仮定する。この場合、最終的に、ユーザ1によって(50g=35g+15g)の商品がピックアップされ、ユーザ2によって(0g=0g+0g)の商品がピックアップされたと仮定する。
 また、顧客個数判定モジュール1105は、仮定2として、第2の期間(t3からt4まで)では、ユーザ2によって15g相当の重さがピックアップされたと仮定する。この場合、最終的に、ユーザ1によって(35g=35g+0g)の商品がピックアップされ、ユーザ2によって(15g=0g+15g)の商品がピックアップされたと仮定する。
 次に、顧客個数判定モジュール1105は、各仮定1、2について、最終的に推定された重さの変化を、商品1個当たりの重さ(50g)で除算する。
 仮定1については、顧客個数判定モジュール1105は、ユーザ1によって、1.0個分(=50g/50g)の商品がピックアップされるとともに、ユーザ2によって0.0個分(=0g/50g)の商品がピックアップされたことを判定する。
 仮定2については、顧客個数判定モジュール1105は、ユーザ1によって、0.7個分(=35g/50g)の商品がピックアップされるとともに、ユーザ2によって0.3個分(=15g/50g)の商品がピックアップされたことを判定する。
 なお、商品のピックアップ時には、商品棚の棒や板や商品かごに負荷がかかるため、重量センサの読み取り値は、完全な直線ではなく、変動が生じ得る。そこで、顧客個数判定モジュール1105は、予め、商品1個当たりの許容誤差を定めておくのが好ましい。例えば、50gの商品については、±0.2個分(10g)の誤差を許容できるものとする。
 次に、顧客個数判定モジュール1105は、各仮定1、2について、商品1個当たりの許容誤差の範囲内にあるか否かの判定を行う。
 仮定1については、ユーザ1、2の双方について、許容誤差の範囲内にあることを判定できる。
 仮定2については、ユーザ1、2の双方について、許容誤差の範囲外にあることを判定できる。
 従って、顧客個数判定モジュール1105は、最終的に、ユーザ1によって、1個当たり50gの商品がピックアップされ、ユーザ2によっては、商品はピックアップされなかったものと判定できる。
 上記顧客個数判定モジュール1105の判定で用いられる許容誤差については、様々に設定することができる。
 例えば、重量変化が100gであって、2個分の許容誤差(50×2±10×2)内にある場合(2.0個分)、ピックアップされた商品の個数を2個として確定してもよい。
 また、重量変化が105gであって、2個分の許容誤差(50×2±10×2)内にある場合(2.1個分)、ピックアップされた商品の個数を2個として確定してもよい。
 また、重量変化が125gであって、2個分の許容誤差(50×2±10×2)内にない場合(2.5個分)、ピックアップされた商品の個数を2個として確定しないで、不確定としてもよい。
 また、重量変化が160gであって、3個分の許容誤差(50×3±10×3)内にある場合(3.2個分)、ピックアップされた商品の個数を3個として確定してもよい。
 本実施例では、重量個数の変換処理について、より細分化した制御を適用することができる。
 重量センサデバイス608の特性として、一般に、重量変化の幅が大きいほど、誤差が相対的に小さくなる傾向がある。そこで、本実施例では、重量センサデバイス608からの重量変化が大きいときは、許容する誤差を相対的に小さくしてもよい。例えば、図46を参照すると、商品1個あたりの重量が100gとした場合の、重量変化がマイナス(商品が取られた)の場合について、1個から9個までの各値の変化を例示している。この値は、上記顧客個数判定モジュール1105の判定処理で援用されるものとする。
 図46では、左端から、ピックアップされた商品の個数、その重量変化の目標値(正数)、実際に生じた重量変化の測定値、許容可能な全体の差分、許容可能な1個当たりの差分を示している。同図から理解できるように、例えば、1個の商品がピックアップされたときの、その1個当たりの許容可能な差分を15gであることが理解できる。このピックアップされる数が増えるにつれて、その1個当たりの許容可能な差分は減少していき、例えば、9個の商品がピックアップされたときの、その1個当たりの許容可能な差分を6.22gであることが理解できる。
 このように、顧客個数判定モジュール1105は、ピックアップされる商品の重量(数)に応じて、商品がいくつピックアップされたのかを判定する段階で判定の基準となる数値を細かく設定することができる。これにより、重量センサの特性に基づいて、ピックアップされる数が増えるにつれて、その判定精度を向上させることができる。なお、図46では、ピックアップされる商品の数が1個から9個までの範囲内に限定している。この範囲を超える場合には、判定人等による判定を行ってもよい。または、より多くの数の範囲に対応できるように、図46に示した範囲を拡張してもよい。
 なお、ピックアップされる商品の重量(数)に応じて、より重くなる程、より精度の高い判定基準を適用する結果、一部の範囲内で、適用基準が重なり合うことが起こり得る。例えば、7個の許容可能な全体の差分(648g~752g)と、8個の許容可能な全体の差分(746g~854g)との間で、一部重複している(746g~752g)。この場合、顧客個数判定モジュール1105は、個数の少ない方から優先的に判定を適用することで、結果が重複(混合)することを回避する。例えば、この場合、7つの個数を優先的に適用する。
 図63を参照すると、上記顧客個数判定モジュール1105の判定のフロー6300について簡略化して示している。図45に例示したグラフを再度参照して、図63のフローについて説明する。
 まず、ステップ6310で、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を取得する。
 例えば、ユーザ1については、商品に手を近づけた手伸ばしの区間として、時刻t1と時刻t5との間の区間を取得する。ユーザ2については、商品に手を近づけた手伸ばしの区間として、時刻t3と時刻t6との間の区間を取得する。
 次に、ステップ6320で、ユーザごとに紐づけられる手伸ばしの区間の場合分けをする。
例えば、時刻t1と時刻t3との間の区間1は、ユーザ1にだけ紐づけることができる。また、時刻t3と時刻t5との間の区間2は、ユーザ1とユーザ2に重複して紐づけることができる。また、時刻t5と時刻t6との間の区間3は、ユーザ2にだけ紐づけることができる。
 次に、ステップ6330で、場合分けをした各区間の両端の重量変化を取得する。
 例えば、区間1については、35gの重量変化を取得する。区間2については、15gの重量変化を取得する。区間3については、0gの重量変化を取得する。
 次に、ステップ6340で、複数のユーザに紐づけられた区間について、その重量変化を各ユーザに振り分けた場合の仮定を行う。
 例えば、区間1については、ユーザ1についてだけ35gの重量変化を取得する。区間2については、ユーザ1、2について15gの重量変化を取得するので、各ユーザ1,2について15gの重量変化が振り分けられたと仮定する(上記仮定1、仮定2を参照)。
 次に、ステップ6350で、商品1個あたりの重さに関して、上記仮定の妥当性の判定を行う。
 例えば、仮定1については、ユーザ1にのみ50gの商品が振り分けられるので、商品1個の重さ50gとの対比から、妥当であると判定する。また、仮定2については、ユーザ1に35gの商品が振り分けられ、ユーザ2に15gの商品が振り分けられるので、商品1個の重さ50gとの対比から、妥当でないと判定する。
 どのユーザが、どの商品を幾つピックアップしたかについて、顧客個数判定モジュール1105で行われる判定は、図63のフローに限定されない。
 例えば、図64を参照すると、顧客個数判定モジュール1105の判定のフロー6400の他の例について簡略化して示している。
 この例では、まず、ステップ6410で、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間を取得する。
 次に、ステップ6420で、顧客個数判定モジュール1105は、ユーザごとに手伸ばしの区間の両端の重量変化を取得する。
 次に、ステップ6430で、顧客個数判定モジュール1105は、ユーザごとに商品1個あたりに占める重量変化の割合を取得する。
 次に、ステップ6440で、顧客個数判定モジュール1105は、すべてのユーザについて重量変化の割合を比較する。
 図65を参照すると、図64に例示したフローの出力例が示されている。
 この例では、店舗内のある商品(150g相当)の近くに3人の顧客がいて、それぞれ、#1、#2、#3のIDが付与されている。
 顧客ごとにその商品の近くに手を伸ばしていた期間を求め、その期間に対応する重量変化量の割合を求めている。
 例えば、1つあたり150gの商品に対して、顧客#1については20g分の重量変化量が求められ、顧客#2については120g分の重量変化量が求められ、顧客#3については10g分の重量変化量が求められている。
 そこで、顧客個数判定モジュール1105は、これら3つの重量変化量の割合を対比することで、顧客#2によってその商品がピックアップされたものと推定することができる。
 図65に示すように、ユーザごとに手伸ばし区間の重量変化分をグラフ状に表示することで、その視覚的な対比を容易にしてもよい。この出力は、ユーザ端末の画面等に表示してもよい。表示態様は図65に限定されず、他、円グラフ等で表示してもよい。
 本実施例では、どのユーザが、どの商品を幾つピックアップしたかについて、顧客個数判定モジュール1105で行われる判定は、図63、図64のフローに限定されない。図63、図64に例示したフローについては、様々な修正、変更が可能である。
 なお、顧客個数判定モジュール1105は、重量センサユニット105による情報やカメラセンサユニット104、カメラセンサユニット104aによる映像により、顧客の購入した商品及びその個数を判定できない場合には要チェックリストに情報を記憶するのが好ましい。
 例えば、顧客個数判定モジュール1105は、重量の変化量の検知が怪しい場合や、カメラデバイス506からの位置情報の検知、カメラデバイス506aからの撮影画像に基づく手の推定点の演算が旨く行かない場合や、映像が隠れてしまい判別できていない場合等のイレギュラーな事象が発生する場合、最終的に人間によるチェックを行うための要チェックリストに情報を記憶する。これにより、顧客個数判定モジュール1105側で判別しきれない場合には、後から人間が補佐を行うことで精度の高い買い物体験を実現することができる。決済処理自体は退店後に実行されるため利用者の顧客体験は損なわれることを最小にする。
 管理サーバ101は、上記顧客個数判定モジュール1105のフローで十分な判定ができない場合は、判定不能として、各ユーザの端末に適当なインストラクションを表示するのが好ましい。
 例えば、顧客個数判定モジュール1105が十分な判定できなかった商品については、店員によって、問題の生じたユーザに問い合わせをして、どの商品をピックアップしたかについて問い合わせを行うためのインストラクションを表示してもよい。
 有人店舗または無人店舗のいずれの場合であっても、後処理で、各ユーザがそれぞれ自己申告でどの商品をピックアップしたかについて選択してもらってもよい。この後処理は、ユーザが退店する前に行うのが好ましいが、ユーザが退店した後で行うことも可能である。
 このように、顧客個数判定モジュール1105が商品のピックアップについて十分な判定ができなかった場合には、ユーザの協力を求めて、その問題を解決するのが好ましい。ユーザの協力を求めるためのインストラクションの表示は、様々に行うことができる。例えば、判定できなかった商品については、「確認中です」等と端末に表示して、ユーザに確認してもらってもよい。
 図47を参照すると、管理サーバ101によって行われる商品のピックアップの判定の他の例が示されている。
 図45の例では、1つの商品がピックアップされている。実際の商品の購入プロセスでは、複数の商品が連続的にピックアップされることが起こり得る。そのような場合であっても、本実施例では、取った商品の個数を計算することを可能にしている。
 なお、図47の例では、図45、図46、図63、図64を参照して上述した判定内容をすべて備えることができる。
 図47を参照すると、重量センサの出力の変化と、2人のユーザの手の推定点の変化とが重ね合わせて示されている。
 同図には、各商品棚の重量時系列データの例がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、左側の縦軸には、重量センサが記録した値(g)が取られている。
 同図には、上記重量センサデバイス608を備えている商品棚の近くにいる2人のユーザについて、それぞれの手の推定点の変化例がグラフで示されている。このグラフの横軸には、時間(ms)が取られ、右側の縦軸には、各顧客の手と商品との間の距離(mm)が取られている。
 なお、各ユーザには、それぞれ、AとBの人物ID(識別番号)が付与されている。
 商品棚の棒にフック状にかけられている商品がピックアップされるとき、棒に負荷が加わるため、重量センサデバイス608の出力は、一様にはならない。商品棚の板や商品かごの上に商品が置かれている場合も、同様である。
 図47を参照すると、凡そ、1500msから2500msまでの間では、重量センサデバイス608の出力に変化はなく、このため、顧客個数判定モジュール1105は、商品棚の商品には変化が起きていないことが推測できる。
 2500msから3800msまでの間で、重量センサデバイス608の出力の低下を記録している。このため、顧客個数判定モジュール1105は、商品棚の商品をピックアップしたこと(またはピックアップしようとしたこと)を推測できる。
 3800msから5000msまでの間で、重量センサデバイス608の出力が瞬間的な跳ね返りとともに大きな低下を記録するとともに、5000msから6000msまでの間で、重量センサデバイス608の出力が安定している。このため、顧客個数判定モジュール1105は、商品棚の商品がピックアップされたことが推測できる。
 この期間、最終的に、凡そ、300gから80gまで重量センサデバイス608の出力が低下している。このため、顧客個数判定モジュール1105は、この差分の重さ(220g程度)の1つまたは複数の商品がピックアップされたことを推定できる。
 上記重量センサの出力の変化が起きた期間中、顧客個数判定モジュール1105は、問題の商品の近くに2人のユーザの手の動きがあったことを理解できる。
 そこで、顧客個数判定モジュール1105は、各ユーザA、Bの手セグメント距離と重量時系列データの時刻を合わせる。そして、手セグメント距離情報から、各顧客が該当するセグメントに手を伸ばしている期間(手伸ばしの区間)を決定する。その際、各ユーザA、Bについて、所定の閾値を超えて、手の動きがあったか否かの判定を行う。
 特に、顧客個数判定モジュール1105は、手伸ばしの区間を推定し、その両端の重量変化を取得する。
 例えば、顧客個数判定モジュール1105は、ユーザAについては、凡そ、2200msから3100msまでの期間内、その商品棚の商品の近くに、手の推定点が位置していることがわかる。
 また、顧客個数判定モジュール1105は、顧客Bについては、凡そ、3600msから4500msまでの期間内、その商品棚の商品の近くに、手の推定点が位置していることがわかる。
 次に、顧客個数判定モジュール1105は、各期間で、両端の重量の差を計算し、関連するユーザが取った重量として紐付ける。
 この際、顧客個数判定モジュール1105は、ユーザごとに重量を合計し、(予め登録されている)商品の重量と比較して、商品の個数に変換する
 例えば、顧客個数判定モジュール1105は、以下の各ステップを含む処理を行う。
 顧客個数判定モジュール1105は、あらかじめ、商品1個あたりの重量と、許容する誤差の割合を設定して、記憶装置内に該当するデータを保存している。例えば、商品1個あたりの重量が50gの場合、許容する誤差の割合を0.2個分(10g)として設定する。
 次に、顧客個数判定モジュール1105は、商品棚に組み合わせた重量センサデバイス608によって、商品がピックアップされたとき、その重量の変化を示す数値(g)を受信する。
 次に、顧客個数判定モジュール1105は、変化した重量の数値(g)を、あらかじめ記憶しているその商品1個あたりの重量(g)で割る演算を行う。
 次に、顧客個数判定モジュール1105は、上記演算結果を、あらかじめ記憶しているその商品の誤差の割合と対比する。
 上記対比の結果、許容誤差割合以内であることが導かれた場合、顧客個数判定モジュール1105は、その個数を確定する。
 例えば、顧客個数判定モジュール1105は、時刻t11から時刻t12までの期間では、主にユーザAの手の動きを問題とする。この期間、ユーザBの手の動きが認められるものの、商品セグメントからの距離が遠いため、その手の動きを無視することができる。さらに、顧客個数判定モジュール1105は、この期間では、約100g(300g-200g)の重さの変化があったことを知得する。
 また、顧客個数判定モジュール1105は、時刻t13から時刻t14までの期間では、主にユーザBの手の動きを問題とする。さらに、この期間では、約120g(200g-80g)の重さの変化があったことを知得する。
 これらから、顧客個数判定モジュール1105は、ユーザAによって100g相当の重さの商品がピックアップされ、その後、ユーザBによって120g相当の重さの商品がピックアップされたことを仮定できる。
 そこで、顧客個数判定モジュール1105は、その商品セグメントにある商品の記憶されている重さによって、上記仮定の検証を行う。
 上記検証の結果、許容誤差から外れたことが導かれた場合、顧客個数判定モジュール1105は、その個数を不確定とし、逆の場合には確定とする。
 以上のように構成されることで、本実施例では、商品のピックアップのイベントが発生した場合に、その周囲に複数のユーザがいた場合、どのユーザが、いくつの商品をピックアップしたかについて判定することができる。
 さらに、本実施例では、管理サーバ101の顧客個数判定モジュール1105は、重量センサデバイス608の出力に基づく重量変化が理想的な場合から外れていても、商品のピックアップの判定を可能にするための工夫を行っている。
 例えば、図48、図49を参照すると、さらに重量センサの出力例が示されている。
 これら図に示された例では、図45、図47と同様に、重量センサの出力の変化と、2人のユーザの手の推定点の変化が重ねて示されている。
 なお、図48、図49の例では、図45、図46、図47、図63、図64を参照して上述した判定内容をすべて備えることができるが、記載の重複を避けるため、重複部分についての説明は割愛する。
 図48の例では、重量が落ちきるまで、比較的に長い時間(2秒程度)かかっている。
 図49の例では、一度に1つの商品をピックアップしただけにも関わらず、重量が上がったり下がったりしている。 図48、図49に示すように、重量センサデバイス608の出力は、必ずしも、重量変化が理想的なものとはならない。
 商品棚の棒、板、商品かご等にセンサ(重量センサデバイス608等)を組み込んで、その重さを測定または算出するとき、そのピックアップ時に棒、板、商品かご等に負荷がかかり、重さの数値には変動が生じ得る。その結果、重量センサデバイス608の出力の重さの変化に時間がかかることがある。また、重さの変化に上下の変動が生じることがある。
 これらの場合、従来技術では、重量センサデバイス608の重量情報のみでは、どの時刻に、いくつの商品がピックアップされたかについての判別が難しい場合があった。
本実施例では、上記の場合、管理サーバ101の顧客個数判定モジュール1105は、問題の商品棚の近くにいる各ユーザの手の推定点を追跡する。手の推定点は、所定の閾値と対比されることで、その手が商品の近くまで伸ばされているか否かについて判定される。従って、管理サーバ101は、各ユーザの手伸ばしの区間を推定する。顧客個数判定モジュール1105は、各区間の両端の時刻に関して、重量センサデバイス608等からの出力を参照することができる。このため、顧客個数判定モジュール1105は、各ユーザの手伸ばしの区間の両端の重量変化を取得することができる。
 顧客個数判定モジュール1105は、各ユーザについて、重量変化から個数に変換する場合分けを行うことができる。例えば、1人のユーザについてのみ手の推定点の変化が検出された場合には、そのユーザについてのみ、重量変化から個数に変換する。また、2人または複数のユーザについてのみ手の推定点の変化が検出された場合には、ユーザごとに場合分けをして、各重量変化から個数に変換する。顧客個数判定モジュール1105は、場合分けごとに、最終的に得られた重量の変化との間で妥当か否かの判定を行う。
 例えば、図48に例示するように、重量の変化に時間がかかる場合でも、各ユーザの
手伸ばしの区間を推定し、その両端の重量変化を取得することで、そのような重さの変化に対応することができる。
 また、図49に例示するように、重量の変化に変動が生じる場合でも、各ユーザの
手伸ばしの区間を推定し、その両端の重量変化を取得することで、そのような重さの変化に対応することができる。
 従って、顧客個数判定モジュール1105は、重量センサデバイス608の出力が理想的でなくても、ピックアップされた商品の個数を判定することができる。
 実際には、重量センサデバイス608の出力や、演算によって求められた手の推定点の位置は、常に正確に求められるとは限らない。
 そこで、本実施例では、管理サーバ101の顧客個数判定モジュール1105が商品のピックアップが生じているか否かについてより良好に判定するために、さらなる工夫を行うことができる。
 例えば、実際にユーザが商品棚に向って手を伸ばして、商品をつかもうとする時間と、実際に重量センサデバイス608が商品の重さの変動について出力する時間との間には、わずかながら差が生じ得る。実際に商品をピックアップした瞬間と前後して、重量センサデバイス608の出力の変化が得られることがあるためである。
 図50の(A)を参照すると、上方に重量センサデバイス608の出力の変化を示し、下方にその商品に関するユーザの手の推定点の距離の変化を示している。
 図50の(A)から理解できるように、時刻T1で、ユーザは商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザは商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
 このユーザの手の動きから幾分遅れて、時刻TaとTbとの間で、重量センサデバイス608の出力の落ち込みが検出されている。
 このように、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあると、管理サーバ101は、ユーザの手の推定点の動きと、重量センサデバイス608の出力の変化との間で、正確な対応関係が得られない虞がある。
 図50の(B)を参照すると、同様に、上方に重量センサの出力の変化を示し、下方にその商品とユーザの手の推定点との間の距離の変化を示している。
 図50の(B)から理解できるように、管理サーバ101の顧客個数判定モジュール1105は、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあることを検出した場合、いずれか一方の時間を前後にずらすことで、双方の対応関係がより明瞭になるような補正をしている。
 例えば、この図では、顧客個数判定モジュール1105は、実際の重量センサデバイス608の出力に基づく時刻TaとTbを、それぞれ幾分前にずらしている(時刻Ta’とTb’を参照)。
 この補正時間(Ta-Ta’またはTb-Tb’)は、固定された値として予め定めておくことができる。この場合、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあることを検出した場合、予め定められた大きさで、いずれか一方の時間を前後にずらす。
 または、この補正時間(Ta-Ta’またはTb-Tb’)は、変動可能な値として予め定めておくことができる。この場合、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間にズレがあることを検出した場合、そのズレの大きさに対応した大きさで、いずれか一方の時間を前後にずらす。
 このように、顧客個数判定モジュール1105は、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間とのいずれかに修正を加えることができる。このように補正時間を設定することで、顧客個数判定モジュール1105は、顧客の手の推定点の動きと、重量センサデバイス608の出力の変化とについて、より正確な対応関係が得られるようにしている。
 例えば、撮影画像に基づく画像解析中に、手の推定点の動きに遅れが生じることがある。または、商品がピックアップされたときに、重量センサデバイス608がその事象を遅れて検知することがある。そのような場合であっても、本実施例は、補正時間を導入することで、実際に商品のピックアップの判定をより正確に行えるようにしている。
 なお、補正時間を導入する前提条件として、ユーザの手の動きに基づく時間と、重量センサデバイス608の出力に基づく時間との間のずれが、所定の大きさよりも小さいか否かの判定を行うのが好ましい。
 本実施例では、顧客個数判定モジュール1105が商品のピックアップが生じているか否かについてより良好に判定するために、さらなる工夫を行うことができる。
 例えば、実際に顧客が商品棚に向って手を伸ばして、商品をつかもうとする際、撮影画像に基づく骨格検出時には、実際の特徴部の位置と演算により求められた特徴部の位置との間には、わずかながらずれが生じ得る。このずれが大きい場合には、実際には、商品をピックアップしようとして手を伸ばしているにもかかわらず、手がのばされていないと検出される虞がある。
 図51の(A)を参照すると、上方に重量センサデバイス608の出力の変化を示し、下方にその商品に関するユーザの手の推定点の距離の変化を示している。
 図51の(A)から理解できるように、時刻T1で、ユーザは商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザは商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
 さらに、この期間中、時刻TaとTbとの短期間の間で、そのユーザが手を戻して、また手を伸ばしていることが検出されている。このため、顧客個数判定モジュール1105は、時刻TaとTbとの間では、そのユーザの手の動きに対して、重量センサデバイス608の出力の変化とを対応付けることができない(その期間、そのユーザは商品のピックアップをしていないと判定する)。
 本実施例では、肘と手首の位置から前腕の長さと方向を取得して、その長さを延長することで手の推定点の位置を演算により求めることができる。この演算の基準となる肘や手首の位置にズレが生じると、その影響を受けて、手の推定点に位置ズレが生じることが起こり得る。例えば、実際にはユーザが商品棚の中まで手を伸ばしているにもかかわらず、その手が所定位置まで届いていないと判定されることが起こり得る。
 例えば、図51の(A)では、実際には、ユーザが時刻T1とT2との間で連続して商品に向って手を伸ばしているにもかかわらず、時刻TaとTbとの間では、その手の動きに切れ目があると検出されている。仮に、この切れ目の動きが、不正確な手の推定点の位置の演算に起因する場合、顧客個数判定モジュール1105は、商品のピックアップの判定を正しく行うことができない。
 図51の(B)を参照すると、同様に、上方に重量センサの出力の変化を示し、下方にその商品とユーザの手の推定点との間の距離の変化を示している。
 即ち、顧客個数判定モジュール1105は、人物IDに紐づけられた手の推定点の位置を常時監視する。
 ある人物IDに紐づけられた手の推定点が、所定の閾値を超えたとき、その手が商品棚の中の商品をピックアップ可能な位置に到達したことを推定する(例えば、時刻T1)。
 その後、同一の人物IDに紐づけられた手の推定点が、所定の閾値を下回ったとき、その手が商品棚の中の商品をピックアップ可能な位置から遠ざかったことを推定する(例えば、時刻Ta)。
 その後、同一の人物IDに紐づけられた手の推定点が、再度、所定の閾値を超えたとき、その手が商品棚の中の商品をピックアップ可能な位置に到達したことを推定する(例えば、時刻Tb)。
 その後、同一の人物IDに紐づけられた手の推定点が、所定の閾値を下回ったとき、その手が商品棚の中の商品をピックアップ可能な位置から遠ざかったことを推定する(例えば、時刻T2)。
 このように、顧客個数判定モジュール1105は、顧客の手を伸ばしている期間に切れ目が検出されたとき(例えば、時刻TaとTbとの間)、以下の判定を行う。
 検出されたその切れ目の前後で、商品をピックアップ可能な位置にある手の人物IDが同一であるか否かの判定を行う。
 上記判定で、切れ目の前後の人物IDが同一である場合、さらに、その切れ目が生じた時間間隔(時刻TaとTbとの間)が、所定の閾値よりも下回っているか否かの判定を行う。
 上記判定で、ごく短時間で切れ目が生じていたことがわかった場合には、顧客個数判定モジュール1105は、その切れ目は無視することができると判定し、その切れ目が事実上存在しないように補正を加える。その結果、商品のピックアップの判定で、その切れ目による悪影響を受けることを回避または最小にしてもよい。
 例えば、顧客個数判定モジュール1105は、時刻TaとTbとの間を、時刻Tcで例示するように最小にするか、ゼロにする。それによって、ユーザの手の動きに切れ目が生じたとしても、それによって、商品のピックアップの判定に狂いが生じることを回避させている。
 例えば、カメラセンサユニット104aのカメラデバイス506aの撮影画面の品質は一様ではなく、撮影対象の顧客の急な動きなどによって、撮影画面上の肘や手首の位置がずれたり、ぼける可能性がある。ただし、そのような場合であっても、その特徴部と紐づけられている人物IDについては、連続して認定することができる。例えば、人物IDについては、別のカメラセンサユニット104のカメラデバイス506によって検証してもよい。
 従って、顧客個数判定モジュール1105は、各人物IDごとに、位置ズレを生じさせているか否かの判定をして、その間隔が短ければ(例えば、時刻TaとTbとの間)、そのズレを無視するように補正する(例えば、時刻Tc)。
 このように、本実施例では、実際の商品のピックアップの判定中に、ユーザが単独で存在していて、その手伸ばしの期間中に生じた切れ目の長さが短く、かつその期間の両側で手を伸ばしているユーザの人物IDが同一の場合には、その切れ目の間においても、そのユーザが手を伸ばしていたと判定して、上書きする。
 本実施例では、顧客個数判定モジュール1105が商品のピックアップが生じているか否かについてより良好に判定するために、さらなる工夫を行うことができる。
 図52の(A)を参照すると、上方に重量センサデバイス608の出力の変化を示し、下方にその商品に関するユーザ1、ユーザ2の手の推定点の距離の変化を示している。
 図52の(A)から理解できるように、時刻T1で、ユーザ1は商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T2で、ユーザ1は商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
 また、時刻T3で、ユーザ2は商品に向って手を伸ばして、その手と商品との間の距離が閾値を超えて近づいている。さらに、時刻T4で、ユーザ2は商品から離れるように手を戻して、その手と商品との間の距離が閾値を超えて離れている。
 これら2人のユーザ1、2の動きの間には切れ目があり、時刻T2からT3にかけて、どちらのユーザ1、2も商品に向って手を指し伸ばしていないことが検出されている。
 これらユーザ1、2の手の動きに対して、重量センサデバイス608の出力は幾分ずれて(時間差を伴って)検出されている。
 このように、ユーザが商品棚に向って手を伸ばして、商品をつかもうとしたときの骨格検出の時間と、重量センサデバイス608の出力の時間との間には、わずかながら差が生じ得る。
 手の推定点は、撮影画像に基づいて検出されているが、骨格検出した位置や重量センサデバイス608の時間はブレる場合がある。その結果、重量センサデバイス608の出力の変化を、ユーザ1、2に対して正しく対応付けることができないことが起こり得る。図52の(A)に示したように、重量変化が少し遅かったり、時間差がずれた結果、誰も手を伸ばしてない区間が存在した場合、その区間の重量の変化をユーザと紐づけすることができないことがある。
 例えば、時間T2とT3では、ユーザ1、2の手は商品から遠ざかっていると検出されるため、この期間に生じた重量変化は、ユーザ1、2のいずれにも関連付けることができない。
 また、時間T4以降では、ユーザ1、2の手は商品から遠ざかっていると検出されるため、この期間に生じた重量変化は、ユーザ1、2のいずれにも関連付けることができない。
 これらの場合、顧客個数判定モジュール1105は、商品のピックアップの判定を正しく行うことができない。
 図52の(B)を参照すると、同様に、上方に重量センサデバイス608の出力の変化を示し、下方にその商品とユーザの手の推定点との間の距離の変化を示している。
 例えば、顧客個数判定モジュール1105は、重量センサデバイス608の出力の変化が生じた前後に、2人または複数のユーザ1、2の手の動きがあって、各ユーザ1、2の動きの間に切れ目があったことを検出したとする(例えば、時間T2とT3の間や、時間T4以降の所定期間)。
 その場合、顧客個数判定モジュール1105は、切れ目の大きさ(例えば、時間T2とT3の間や、時間T4以降の所定期間)を所定の閾値と対比して、無視できる大きさか否かの判定を行う。
 無視することができないと判定した場合、顧客個数判定モジュール1105は、各ユーザ1、2の動きを所定時間だけ前後に拡大して、その切れ目の大きさ(例えば、時間T2とT3の間や、時間T4以降の所定期間)を減らすような補正を行う。
 それによって、各ユーザ1、2の動きと、重量センサの出力の変化とのより良好に対応付けるようにする。
 例えば、顧客個数判定モジュール1105は、次のうちの任意の1つまたは複数または全部を行う。
 例えば、ユーザ1が手を商品棚に向って指し伸ばした時間T1を、所定時間の大きさ(例えば、時間Ta)で前にずらす。
 例えば、ユーザ1が手を商品棚から戻した時間T2を、所定時間の大きさ(例えば、時間Tb)で後にずらす。
 例えば、ユーザ2が手を商品棚に向って指し伸ばした時間T3を、所定時間の大きさ(例えば、時間Tc)で前にずらす。
 例えば、ユーザ2が手を商品棚から戻した時間T4を、所定時間の大きさ(例えば、時間Td)で後にずらす。
 この際、補正によって導入される時間の大きさTa、Tb、Tc、Tdは、それぞれ同一の大きさでもよい。また、実施状況等によって、これら時間の大きさTa、Tb、Tc、Tdは変化してもよい。
 従って、顧客個数判定モジュール1105は、各ユーザ1、2の手の動きを前後に拡大することで、誰も手を伸ばしてない区間をより短くまたは最小にして、重量の変化をユーザ1、2と紐づけすることを容易にする。
 顧客個数判定モジュール1105は、図50の(B)、図51の(B)、図52の(B)に例示した制御をそれぞれ単独で行ってもよく、または、それぞれ互いに組み合わせて行ってもよい。さらに、これら判定制御では、図45、図46、図47、図48、図49、図63、図64に例示した制御を適当に選択して組み合わせることができる。
 例えば、ある商品の周囲で複数のユーザが同時に手を伸ばしている区間において、その商品の重量変化が検出された場合、どのユーザがいくつの商品をピックアップしたのかについて、十分な判定ができない虞が起こり得る。
 本実施例では、そのようなユーザ/個数が不確定になりやすい場合では、上記の手が重なった時の判定ロジックを導入して対応してもよい。
 従って、本実施例では、「手の推定点」を用いて実際に商品をピックアップするイベントが生じているか否かの判定について、実際の運用をより容易にして、その判定精度を高めるための工夫を行う。
 以上のように構成されることで、顧客個数判定モジュール1105は、店舗内のある商品の近くに複数の顧客がいる場合、以下の制御を行うことができる。
 顧客ごとに、演算により求められた手の推定点と、商品棚(商品)の位置との間の相互関係を判定する。特に、顧客ごとに商品の近くに手を伸ばしている時間間隔を求める。
 重量センサの出力の変化を判定する。特に、重量センサの取得する重さの時系列データのうち、顧客ごとに上記時間間隔に対応する商品の重量変化量を求める。
 顧客ごとに、商品棚から商品がピックアップされたか否かを判定する。特に、商品1つあたりの重さに対して占める、顧客ごとの上記時間間隔に対応する商品の重量変化量の割合を求める。
 従って、本実施例は、様々な状況下で、商品をピックアップするユーザの動きの判定を可能にする。
 例えば、本実施例では、どのユーザが、どの商品を何個取ったのかについて判定することができる。
 特に、本実施例は、商品をとったユーザと、商品の個数とを正しく判定することを可能にする。特に、ユーザの人物IDごとに、商品のピックアップを判定する。
 さらに、本実施例は、ユーザの人物IDごとに、個数/種類を含めた商品のピックアップを判定する。特に、重量センサが分離できないくらいの時間間隔で、連続で商品を取得した場合であっても、対応することができる
 例えば、本実施例では、「ユーザAとユーザBが、それぞれ商品aを1つずつ取った」、ということを出力できる。
 また、本実施例では、「ユーザAが商品aを2つ取り、ユーザBが商品aを1つ取った」、ということを出力できる
 また、本実施例では、「ユーザAが商品aを1つ取り、ユーザBが商品bを1つ取った」、ということを出力できる。
 従って、本実施例では、どのユーザが、どの商品を、いくつ取ったのかについて判定することができる。このため、従来技術と比べて、商品のピックアップの判定をより高い精度で行うことを可能にする。
 これに対して、従来技術では、カメラの撮影画像と、重量センサの出力とを用いて、商品をピックアップする顧客の動きを判定する際、ある商品を取りうる距離に、複数の顧客が同時に存在する場合(商品の近くに複数の手が同時に存在する場合)、判定が困難になることがあった。
 また、従来技術では、同じ位置の商品が連続して複数ピックアップされる場合(ピックアップされる各商品の時間が近い場合)、判定が困難になる傾向があった。
 また、従来技術では、同時に隣接する商品が複数ピックアップされる場合(ピックアップされる各商品の位置が近い場合)、判定が困難になる傾向があった。
 また、従来技術では、同時に複数個の商品がピックアップされた場合、判定が困難になる傾向があった。
 特に、従来技術では、商品をピックアップする顧客の動きを判定する際、商品の「重量情報」については、状態が安定化した前後の重量の変化差分のみが含まれていた。
 また、従来技術では、商品をピックアップする顧客の動きを判定する際、その重量情報の変化の生じた時刻において、1人顧客のみが商品を取ったことを前提としていた。
 また、従来技術では、重量センサの近くにいるユーザがその商品を取ったと判定して、出力していた。このため、その近くに複数のユーザが存在する場合、十分な判定できないものとして、出力することがあった。
 このように、従来技術では、互いに近い距離にいる複数の顧客が商品を取った場合、誰が取ったか判定することができなかった。また、同じ重量センサの棚から、連続して(時間間隔をあけず)、商品が取られた場合、どの顧客が何個取ったかについて十分に判定することができなかった。
 本実施例では、このような従来技術の問題を解決するための好適な手段を提供している。
 なお、従来技術では、撮影画像上での画像解析に基づいて、商品のピックアップが行われたか否かを判定する場合、商品の画像解析や商品を掴もうとする手の画像解析にディープニューラルネットワーク(DNN:Deep Neural Network)を用いることがあった。DNNとは、ニューラルネットワークをディープラーニングに対応させて4層以上に層を深くしたものをいう。DNNは、画像認識に応用することができ、特に、2次元の画像データを一次元等の適当な数値列に変換してDNNに入力すると、その画像に何がどの位置に写っているかを認識した結果を出力することができる。
 画像認識でDNNを用いる場合、次の問題があった。
 DNNでは、判定する商品の種類が限られている。これに対して、公知なように、一般的な商店等で販売されている商品は、新商品の開発がほぼ途切れなく継続されている。例えば、スーパーやコンビニ等では、常時、新しい商品が導入されている。
 DNNでは、判定する商品の種類を増やそうとする場合、モデルの構成を変え、モデルを再度学習する必要がある。新商品が導入される間隔が短い場合、十分な学習期間を確保できず、運用面で課題が残る。
 また、撮影画像上でDNNを適用する場合、商品の有無がカメラに映る陳列方法しか採用できない。複数段を有する商品棚(平積み方式等)では、天板のない最上段の棚に乗せられた商品のみが、その全体を撮影することができるため、DNNの適用が可能となる。しかし、商品棚の2段目以降の段では、商品の全体が撮影できないため、DNNの適用が困難になり得る。従って、複数段の商品棚を有する店舗では、DNNに基づく画像認識には運用面で課題が残る。
 これに対して、本実施例では、管理サーバ101の顧客個数判定モジュール1105は、カメラセンサユニット104のカメラデバイス506からの撮影画像に基づいて得られた顧客の移動軌跡と、カメラセンサユニット104aのカメラデバイス506aからの撮影画像に基づいて得られた顧客の手の推定点と、商品棚の重量センサデバイス608の読み取り値とを組み合わせて用いることで、商品のピックアップが生じているか否かを判定する。このため、本実施例では、各商品の重量さえ知ることができれば、商品の種類を選ぶことなく適用できる。従って、本実施例では、商品の種類をより簡単に増やすことができる。
 さらに、本実施例では、カメラセンサユニット104のカメラデバイス506や、カメラセンサユニット104aのカメラデバイス506aによって、必ずしも商品の全体が撮影されることを必要としていない。このため、本実施例では、商品の陳列の仕方を選ぶことなく適用することができる。例えば、本実施例では、任意の形状の商品棚(平積み方式等)に適用することができる。
 さらに、本実施例では、商品のピックアップの判定をより良好に行うための工夫を行っている。
 通常、店舗内には、複数の商品棚が設置されている(図36の(A)、(B)参照)。そのため、ほぼ同時刻に、同じ顧客の動作を複数のカメラ(例えば、カメラデバイス506、カメラデバイス506a等)によって撮影されることが起こり得る。撮影画像の品質を良好に保つためには、予め、想定される使用状況に基づいて、各カメラの優先順位を設定しておくのが好ましい。
 例えば、商品棚の中の商品をピックアップする様子を撮影するためには、商品棚に対して向かい合う顧客の正面側の様子を上方から撮影するのが好ましい。その場合、好適には、顧客の商品を掴もうとする腕の動きを全体的に撮影することが好ましい。さらに好適には、顧客の左右の腕を比較的に均等に撮影する。これに対して、顧客を側方から撮影する場合、顧客の商品を掴もうとする腕の動きが顧客の体によって隠されることが起こり得る。また、顧客の左右の腕を比較的に均等に撮影することが困難となる。
 このように、各カメラの撮影画像の内容は一様ではない。上記のように、顧客を正面から撮影した画像と、顧客を側方から撮影した画像との両方が利用可能な場合、前者については、後者に対して、より高い優先度を与えておくのが好ましい。これによって、好ましい品質の画像に基づいて画像解析が行われることを確保できる。
 図53を参照すると、本実施例を利用可能な実際の店舗内の平面図が示されている。同図から理解できるように、店舗内には、出入り口(入店エリア/退店エリア)が設けられ、それに続いて、複数の商品棚が設置されたフロアが用意されている。なお、同図ではフロアを略四角形状に示しているが、実際のフロアの形状は様々に構成可能である。通常、店舗内のスペースを有効活用するため、フロアに設置された各商品棚は上下に複数段に分かれて、各段に複数の商品を提示している。これら商品棚の間は、顧客が自由に歩き回ることができるフリースペースとなっている。
 図54を参照すると、図53に例示した店舗内の平面図において、主に商品棚の設置位置に基づいたフロアの区分けが例示されている。このように、1つのフロアには、複数のエリアが設定されている。各エリアは、略四角形状の枠で例示されており、その枠の中には、1つまたは複数の商品棚が設置可能となっている。このエリアの形状及び大きさは様々に構成可能である。好適には、付近に設置されたカメラによって良好に撮影可能な範囲と対応付けられている。隣接するエリアは、双方の間に隙間を設けてもよい。また、隣接するエリアは、双方の間で一部重複させてもよい。
 図55を参照すると、図54に例示した店舗内の商品棚及び/またはエリアに関して、実際のカメラの撮影画像の例が示されている。この撮影画像は、カメラセンサユニット104のカメラデバイス506と、カメラセンサユニット104aのカメラデバイス506aとの双方に適用可能である。
 図55から理解できるように、エリアの設定では、棚の前(商品がおいてある位置と、少し手前側)を囲むように設定してもよい。
 図55から理解できるように、例えば、カメラのPOV/FOVは、商品棚をほぼ真上から撮影して、その商品棚に展示されている商品をピックアップしようとする顧客の腕の様子を正面から撮影できるようにしている。通常、顧客は、商品棚の中に展示されている商品を確認するために、商品棚と正対する。この場合、比較的良好に、顧客の上半身の様子を撮影することができる。なお、商品棚に対して斜めに立って、横から商品を取るような動きについても、少なくともその差し出された腕の様子は撮影できるようにしている。
 各商品棚及び/またはエリアの位置と、その周囲を撮影する各カメラのPOV/FOVは予め知られている。このため、どのカメラによってどの商品棚を最適に撮影できるのかは既知である。管理サーバ101は、商品棚及び/またはエリアごとに、好ましいカメラの優先順序を決めており、その順序に従って、撮影画像の画像解析を行うことができる。
 例えば、複数のカメラの撮影画像が利用可能であることが前もって推測できる場合、横から撮影した画像だと位置の精度が落ちるので、正面から撮影できる画像が利用可能な場合には、後者を優先的に利用する。
 優先度は、店舗内の様子に基づいて、様々に設定することができる。
 例えば、優先度は、各カメラ506、506aの位置と、商品棚及び/またはエリアの位置との間の距離を基準にしてもよい。
 例えば、優先度は、各カメラ506、506aのPOV/FOVと、商品棚及び/またはエリアの周囲に存在可能な人との対応関係を基準にしてもよい。
 例えば、優先度は、各カメラ506、506aの撮影画像と、被写体の向きとの対応関係を基準にしてもよい。
 例えば、優先度は、各カメラ506、506aの撮影画像と、被写体との間の障害物の有無を基準にしてもよい。
 例えば、優先度は、各カメラ506、506aの撮影画像と、それに基づく骨格検出の精度を基準にしてもよい。
 他、各カメラ506、506aの撮影画像の大きさ、様子、品質等に基づいて、優先度を様々に設定することができる。
 さらに、優先度に関連して、各エリアの大きさ、形状等を様々に設定することができる。
 このように、管理サーバ101は、予めどのカメラの撮影画像を用いるかについて優先度を設定することで、画像解析の品質が所定の基準を満たすようにしてもよい。
 図56を参照すると、ある店舗内の平面図(フロア)において、8つのエリアを画定するとともに、各エリアの撮影状況を例示している。これらの撮影画像は、カメラ506、506aの双方またはいずれかに適応可能である。
 図56から理解できるように、店舗内の様子は、複数(例えば、8つ)の撮影画像として取得可能である。これら撮影画像のうち、どの撮影画像を利用するかによって、店舗内を移動する顧客の追跡が変化し得る。
 例えば、あるカメラ506、506aの撮影画像に基づいて、ある顧客の動きを良好に撮影できたとしても、その顧客の位置の変化の結果、その撮影画像では、もはやその顧客の動きを十分に撮影できなくなることがある。
 管理サーバ101は、顧客の位置の変化や、顧客の動きの変化などに従って、想定可能な複数(例えば、8つ)の撮影画像のうち、どの撮影画像を利用するのが好ましいかについて、予め優先度を決めておいてもよい。
 図57を参照すると、図56に例示した場合において、店舗内を移動する顧客の様子が、2つの異なるカメラから追跡した例を示している。
 同図では、右上から左下にかけて、符号0236、0108、0227、0357、0570、0390、0391、0138で示された8つのカメラが例示されている。これらカメラは、カメラセンサユニット104のカメラデバイス506と、カメラセンサユニット104aのカメラデバイス506aの双方またはいずれかでもよい。
 この例では、人物IDとして、837が付与されているユーザが、2つのカメラ(0227と0391)によってほぼ同時に検出されている。
 人物ID「837」が小さく表示されている方は、カメラセンサユニット104のカメラデバイス506の撮影画像(ToF)に基づいて出力された人物IDに相当している。人物ID「837」が大きく表示されている方は、カメラセンサユニット104aのカメラデバイス506aの撮影画像に基づいて骨格と位置が紐付けられた結果、フロア内に存在すると推定されたユーザの人物IDに相当している。
 各カメラのPOV/FOVと、店舗内の顧客の位置との関係によって、各カメラによって検出される顧客の位置情報は変化し得る。管理サーバ101は、顧客の位置を連続的に追跡するとともに、その位置の変化に従って、どのカメラからの撮影画像を用いるかについて、予め優先度を定めておくことができる。その結果、管理サーバ101は、店舗内を移動する顧客について、常に、高い精度でその顧客の位置を追跡できるようにしている。
 このことは、顧客の位置検出用カメラセンサユニット104のカメラデバイス506と、顧客骨格検出用カメラセンサユニット104aのカメラデバイス506aとの双方について当てはめることができる。
 各カメラ506、506aのPOV/FOVは、それぞれ対応する商品棚の付近を適当にカバーするように、互いに相違する。好適には、各カメラ506、506aのPOV/FOVは、近くの商品棚の様子を良好に撮影できるように、予め固定されている。
 しかしながら、ある商品棚の付近の様子を良好に撮影するためには、予め設定されたPOV/FOVでは適当でない場合、管理サーバ101は、カメラ506、506aのPOV/FOVを変更させてもよい。
 例えば、店舗内で、比較的隅の方に顧客がいて、その様子が良好に撮影できない場合、カメラ506、506aの向きや角度を調整してもよい。
 従って、管理サーバ101は、各カメラ506、506aについて優先度を予め設定するとともに、実際の運用状況に応じて、各カメラ506、506aのPOV/FOVに修正を加えることは可能である。
 このように、本実施例では、顧客の動きを連続して追跡できるように工夫している。
 本実施例では、管理サーバ101がより良好に顧客の追跡を行えるように、さらなる工夫を行うことができる。この制御は、例えば、位置情報処理モジュール1102で行ってもよい。また、骨格検出処理モジュール1102a、顧客個数判定モジュール1105等で行ってもよい。
 例えば、従来技術では、店舗内の顧客の移動の仕方によっては、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって、顧客を完全に追跡することができない場合があった。顧客の位置情報を正確に追跡できない場合には、その後の商品のピックアップの判定を十分に行うことができないため、問題となる。
 例えば、図58を参照すると、従来技術におけるカメラセンサユニット104のカメラデバイス(ToF)506の追跡ミス/入れ替わりの様子が簡略的に例示されている。
 図58から理解できるように、店舗内を二人のユーザが存在している。この例では、それぞれ、人物IDとして、0と1とが割り当てられている。各ユーザ0、1は、同一または異なるカメラによって追跡されている。同図の(1)から(2)に例示するように、二人の顧客の位置が互いに接近すると、双方を明確に識別できない事態が起こり得る。図では、急接近した二人の顧客に対して、その後、同図の(2)から(3)に例示するように、それぞれの人物ID0、1が入れ替えられている。
 このように、追跡情報(人物情報)において、顧客の人物IDが入れ替わると、その後の顧客の追跡や骨格検出などがすべて連鎖的に誤る虞がある。
 本実施例では、上記のような事態が生じるのを未然に防ぐための手段を備えている。特に、本実施例では、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって撮影された画像に基づいて、顧客の位置を抽出する際、同時に、顧客の服装の情報を抽出する。各顧客は、それぞれ、位置情報と服装の情報(色情報)とを組み合わされて追跡することができる。従って、二人の顧客の位置が互いに接近した結果、位置情報だけでは、双方を明確に識別できない事態が生じたとしても、双方の服装の情報に基づいて、互いに区別することを可能にする。
 例えば、本実施例では、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって撮影された画像に基づいて、顧客の服装の色または形状を抽出する。例えば、顧客の肩の色を抽出する。顧客の頭部は、帽子などの着脱によって、色や形状の情報の一貫性が失われることが起こり得る。肘や手首や腕などは、比較的自由に動くことができ、見る角度によって隠されることが起こり得る。
 例えば、肘の場合、検出位置がずれたときや、腕まくりしている場合、素肌と服のどちらにもなりうる。また、手首だと、ポケット等へ出入りする場合、服や手のどちらにもなりうる。これらに対して、肩の位置は、多くの状況で比較的継続して視認することが可能である。そのため、肩の色の情報を用いることで、顧客の服装の情報を継続して追跡することができる。
 他、本実施例では、肩の色に追加して、顧客の他の色の情報を用いてもよい。例えば、肩の色の情報と、胸部や背中の色の情報とを組み合わせて用いてもよい。さらに、顧客の肩、胸部及び/または背中の服装の形状の情報を用いてもよい。さらに、単純な色でなく、服装全体の形状、模様、色、及び/または特徴量(例えば、特徴量は、別途作成したモデル・特徴量の計算方法によって抽出可能)等を利用してもよい。
 図59を参照すると、顧客の肩の色の情報を取得する状況を例示している。
 本実施例では、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aによって撮影されたRGB画像から、顧客の肩の座標の色を取得することで、服装の色を判別してもよい。
 なお、頭部が左右に動くことで、頭部の位置と肩の位置とが一部重なることが起こり得る。そのため、両肩の座標のうち、頭から遠い方の肩の座標を採用するのが好ましい。これにより、ユーザが映る角度によっては、頭が肩に重なることが起こり得るが、そのような事態を回避できる。図59では、頭部の位置と、左右の肩の位置とを対比して、頭部からより離れている右肩の方を採用し、左肩の方は不採用としてもよい。
 このようにして、店舗内の所定の領域(入口付近)から入店した各顧客について、入店直後の一定時間の間、位置情報とともに、肩の服装の色を記録する。または、入店直後に限らず、安定してユーザの服装を判定できる位置・タイミングで、服装の情報を取得してもよい。例えば、顧客個数判定モジュール1105は、任意のタイミングで服装の情報の取得を開始した後、数十秒、1分、数分間または他の任意の期間、周期的に肩の色を記録して、その平均値を演算により求めて、その値を顧客の服装の色として登録する。
 以降は、例えば、顧客個数判定モジュール1105は、各顧客の肩の色を取得し続け、複数の顧客が互いに接近した場合(図58の(2)参照)、それぞれの顧客の位置情報と服装の色情報とを組み合わせて用いて、互いに区別する。一時的に、複数の顧客の間で位置情報及び/または服装の色情報の入れ替わりが起きた場合、識別番号を入れ替える等して、識別番号(人物ID)が誤って付与されることを防止または訂正する。
 顧客の位置情報の追跡が正常に動作しているとき、例えば、顧客個数判定モジュール1105は、次のように機能する。
 例えば、顧客が店舗内の予め設定された出現エリア(入場口近辺)に来たら、各顧客に独自の人物IDを付与して、追跡を開始する。人物IDは、数字及び/または文字等を用いて構成されてもよい。例えば、人物IDは、来店する顧客ごとに通し番号として付与されてもよい。
 また、例えば、人物IDは、日時/時間の組み合わせとして付与されてもよい。例えば、2021年5月30日午前7時10分30秒に来店した顧客に対しては、20210530071030の識別番号を付与してもよい。同一の日時/時間に複数の顧客が現れたときには、末尾にa、b、c等の符号を付けて互いに区別してもよい。
 店舗内に顧客が存在する間、各顧客に割り当てられた人物IDは、そのまま保持される。そして、顧客が店舗内の予め設定された消失エリア(退場口近辺)に来たら、各顧客に割り当てられた人物IDが消去されて、追跡が終わる。同じ店舗に、同一人物が再度来店する場合、その都度、異なる人物IDが付与される。
 従来技術では、顧客が店舗内の所定の消失エリアに来ていないにも関わらず、その人物IDが消えることがあった(人物IDのロスト)。その場合、以降、そのユーザの追跡情報が出力されなくなるという問題があった。
 また、その顧客が改めて店舗内の所定の出現エリア(入場口近辺)に来たら、新たにその顧客に別の人物IDが付与されることがあった(意図しない人物IDの再出現)。その場合、以降、その顧客は、あたかも他の顧客(別人)として判定されることになるという問題があった。
 本実施例では、上記のような、人物IDのロスト/人物IDの再出現といった事態が生じることを未然に防ぐ手段をさらに備える。
 例えば、本実施例では、顧客の人物IDを一時的に消失する事態が生じたとしても、カメラセンサユニット104のカメラデバイス506またはカメラセンサユニット104aのカメラデバイス506aの撮影画像から検出される骨格の情報や、服装の色の情報に基づいて、その顧客を追跡することができる。
 従って、骨格の情報及び/または服装の色の情報に基づいて追跡される顧客については、その人物IDを継続して維持することができる。また、その顧客が改めて店舗内の所定の出現エリア(入場口近辺)に来たとしても、その顧客に対して新しい人物IDを付与することを回避/訂正することができる。
 図60を参照すると、顧客の追跡を良好に行う様子が簡略的に示されている。
 本実施例では、位置情報、骨格情報及び/または服装の色情報に基づいて、例えば、顧客個数判定モジュール1105は、カメラセンサユニット104のカメラデバイス506によって追跡している顧客の人物IDを保持する。従って、図60の(1)から(2)に例示したように、互いに近接する顧客を識別することができる。
 さらに、図60の(3)に例示したように、顧客の位置が消失エリアに入らないまま、その追跡が一時的に終了した場合(符号Aの点線参照)、例えば、顧客個数判定モジュール1105は、その顧客が店内にとどまっているものと仮定して、その人物IDを保持することができる。
 例えば、顧客個数判定モジュール1105は、現在追跡している各顧客について、そのデータを常時参照できるようにする。例えば、現在追跡している各顧客について、それぞれの骨格情報及び/または服装の色情報を紐付けておく。
 例えば、顧客個数判定モジュール1105は、店舗内にいる顧客全員のうち、余った骨格情報及び/または服装の色情報が見つかった場合、店舗内にとどまっていると仮定した顧客(一時的に追跡が消えた顧客)が、その骨格情報及び/または服装の色情報が見つかった位置にいるものとして仮定して、その位置から追跡を再開してもよい。
 図60の(4)から(5)を参照すると、位置情報を失って、骨格情報及び/または服装の色情報だけを有する顧客が改めて出現エリアに入ったことにより、別の人物ID(2)が付与されることが例示されている。
 このように、従来技術では、一度人物IDの追跡が途切れると、その人物に対しては別の人物IDが付与されていた。
 これに対して、図61の(1)から(3)を参照すると、本実施例では、位置情報を失って、骨格情報及び/または服装の色情報だけを有する顧客が改めて出現エリアに入ったことにより、別の人物ID(2)が付与されると、その新しく付与された人物ID(2)を元の人物ID(0)で置き換えることが例示されている。この結果、本実施例では、顧客が別人として誤って認定されることを防止している。
 以上のように、本実施例では、カメラの撮影画像に基づいて、人の上半身に限定して、特徴点(頭部、肩、肘、手首)を抽出する際、その位置情報だけでなく、服装の情報(服装の色、形状、模様、及び/または特徴量)を抽出してもよい。
 例えば、顧客個数判定モジュール1105は、カメラの撮影した画像に対して骨格検出モデルを適用することにより、さらに人体の肩部の付近の色の情報を検出してもよい。例えば、顧客個数判定モジュール1105は、この検出した肩の色の情報を基準にして、その肩の所有者に対して人物IDを付与してもよい。
 従って、本実施例では、店舗内の顧客の動きをより正確に追跡することを可能にする。その結果、店舗内における顧客の商品のピックアップの判定を正確に行うことを可能にする。
 なお、本実施例では、カメラセンサユニット104aには、深さ情報(デプス)を取得できるカメラを用いることができる。ただし、他の実施例によっては、カメラセンサユニット104aには、通常のカメラ(2Dカメラ)を用いることができる。
 また、本実施例では、カメラセンサユニット104には、ToFセンサ・モジュールによる位置の追跡を行うことができる。ただし、他の実施例では、カメラセンサユニット104による位置の追跡モジュール自体を削除することができる。他の実施例では、複数のカメラセンサユニット104aからの撮影画像間でユーザの特定・マッチングを行ってもよい。このように、顧客の位置の追跡と骨格情報の取得の双方を複数のカメラセンサユニット104aだけで行うことは可能である。
 なお、本実施例では、顧客が商品に向って手を伸ばしたときの接近の度合いを判定する基準(閾値)については、手動で商品の位置を取得し設定することができる。ただし、他の実施例では、この基準の設定について、自動補正(キャリブレーション)を適用することは可能である。他の実施例では、顧客が商品をとった際の手の座標を取得し、各商品の位置を上書きすることで、自動で商品の位置を補正してもよい。
 なお、本実施例では、どの顧客が商品をピックアップしたかの判定が不十分な場合、判定員による人的な判定を行うことができる。この際、判定員は、カメラセンサユニット104、104aによって撮影された動画をそのまま再生することができる。ただし、他の実施例では、この判定員の判定を補助する手段を備えることができる。
 他の実施例では、判定用の動画を撮影するカメラをキャリブレーションすることで、各カメラの位置・姿勢(カメラパラメータ)を計算することができる。さらに、このパラメータを利用して、商品の位置や、ユーザの位置が、画面上でどの点になるか計算し、その動画内にアノテーションすることで、判定員がよりわかりやすくなるようにしてもよい。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 なお、上述の実施例は少なくとも特許請求の範囲に記載の構成を開示している。
1…商品管理システム、101…管理サーバ、102…モバイル端末、103…サイネージ端末、104…位置追跡用カメラセンサユニット、104a…骨格検出用カメラセンサユニット、105…重量センサユニット、106…入店管理端末、107…決済処理サーバ、506…カメラデバイス、506a…カメラデバイス、608…重量センサデバイス、630…データ集約送信器、710…マイコン、2100…商品棚設置用フレーム
 

 

Claims (16)

  1.  商品を管理する管理システムであって、
     商品棚に設置された重量センサから送信された重量情報を取得する手段と、
     第1のカメラセンサにより撮影された画像から顧客の位置情報を取得する手段と、
     第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を算出する手段と、
     前記顧客の位置情報と、前記算出された手の推定点と前記商品棚の位置との間の相互関係と、前記重量センサの出力の変化と、に基づいて、商品のピックアップを判定する手段と、を有する
    管理システム。
  2.  前記第2のカメラセンサは、骨格検出用カメラセンサユニットであって、撮影された画像に対して前記骨格検出モデルを適用することにより、前記人体の肘と手首の特徴点を検出し、
     前記検出した特徴点の位置を用いて、前記肘と前記手首との間の長さである前腕の長さを所定の倍数で延長した位置を、前記手の推定点として算出する、
    請求項1に記載の管理システム。
  3.  前記骨格検出用カメラセンサユニットは、前記前腕の長さを約4/3倍、1.33倍または1.3倍のいずれか1つで延長した位置を、前記手の推定点として算出する、
    請求項2に記載の管理システム。
  4.  前記骨格検出用カメラセンサユニットは、
     前記前腕の長さを二等分する中心の位置を、前腕中心点として算出し、
     前記前腕の方向に沿って、前記肘から前記前腕中心点までの長さを所定の倍数で延長した位置を、前記手の推定点として算出する、
    請求項2に記載の管理システム。
  5.  前記骨格検出用カメラセンサユニットは、
     前記肘と前記手首との間の水平方向の2次元座標から、前記前腕中心点を算出し、
     前記肘から前記前腕中心点までの3次元座標による長さを所定の倍数で延長した位置を、前記手の推定点として算出する
    請求項4に記載の管理システム。
  6.  前記骨格検出用カメラセンサユニットは、前記人体のうち、頭部、左右の肩、左右の肘、左右の手首の7つの特徴点を検出する、
    請求項2から5のいずれか1項に記載の管理システム。
  7.  前記第1のカメラセンサは、前記顧客の位置を追跡する位置追跡用カメラセンサユニットであって、前記顧客までの距離を測定するカメラセンサである、
    請求項1から6のいずれか1項に記載の管理システム。
  8.  前記第1のカメラセンサは、前記顧客の位置を追跡する位置追跡用カメラセンサユニットであって、前記第2のカメラセンサから送信された前記特徴点と前記手の推定点の情報を、前記顧客の位置情報と同一の座標空間内に座標変換して、統合する、
    請求項1から7のいずれか1項に記載の管理システム。
  9.  前記第1のカメラセンサと前記第2のカメラセンサの少なくとも一方は、さらに前記顧客の前記人体の肩の付近の色、形状、模様、及び/または特徴量の情報を検出し、
     前記検出した肩の色、形状、模様、及び/または特徴量の情報を用いて、その肩に対応する前記顧客に対して識別情報を付与する、
    請求項1から8のいずれか1項に記載の管理システム。
  10.  前記商品のピックアップを判定する手段は、
     前記手の推定点と前記商品棚の位置との間の相互関係に基づいて、前記顧客が商品の近くに手を伸ばしている手伸ばしの区間を求め、
     前記重量センサの出力の変化に基づいて、複数の前記顧客のそれぞれに対し、前記手伸ばしの区間の両端に対応する重量変化量を求め、
     複数の前記顧客のそれぞれに対して算出された前記重量変化量に基づいて、商品をピックアップした前記顧客を判定する
    請求項1から9のいずれか1項に記載の管理システム。
  11.  前記商品のピックアップを判定する手段は、
     商品1つあたりの重量情報を取得し、複数の前記顧客のそれぞれに対して算出された前記重量変化量が、前記商品1つあたりの重量情報の整数倍に近い前記顧客を、前記商品をピックアップした前記顧客であるとして判定する
    請求項10に記載の管理システム。
  12.  前記商品のピックアップを判定する手段は、
     前記重量センサの出力の変化の時間と前記手の推定点の位置の変化の時間とのいずれかについて、時間を前後にずらす補正を行う、
    請求項1から11のいずれか1項に記載の管理システム。
  13.  前記商品のピックアップを判定する手段は、
     前記商品の近くにいる前記顧客の数が一人であると判定した場合に、前記顧客の前記手伸ばしの区間の中に途切れが存在した場合、その途切れを排除または最小にする補正を行う、
    請求項10、又は請求項10を直接又は間接的に引用する請求項11又は12に記載の管理システム。
  14.  前記商品のピックアップを判定する手段は、
     前記商品の近くにいる前記顧客が複数であると判定した場合に、複数の前記顧客の前記手伸ばしの区間の間に途切れが存在した場合、その途切れを排除または最小にするように、その途切れの前後の前記顧客の手の動きを拡大する補正を行う、
    請求項1から11のいずれか1項に記載の管理システム。
  15.  管理サーバにより商品を管理する管理方法であって
     商品棚に設置した重量センサから送信された重量情報を取得し、
     第1のカメラセンサにより撮影されたた画像から顧客の位置情報を取得し、
     第2のカメラセンサにより撮影された画像から骨格検出モデルを適用することによって前記顧客の人体の特徴点を取得するとともに、前記人体の特徴点を用いて手の推定点を演算により求め、
     前記顧客の位置情報と、前記演算により求められた手の推定点と前記商品棚の位置と、の間の相互関係と、前記重量センサの出力の変化とに基づいて、商品のピックアップを判定する、
    ことを特徴とする管理方法。
  16.  管理サーバに請求項15に記載の方法の各ステップを実行させるためのプログラム。
PCT/JP2022/016902 2021-06-03 2022-03-31 無人店舗の商品を管理する管理システム、管理方法及びプログラム WO2022254958A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-093705 2021-06-03
JP2021093705A JP2022185837A (ja) 2021-06-03 2021-06-03 無人店舗の商品を管理する管理サーバ及び管理方法

Publications (1)

Publication Number Publication Date
WO2022254958A1 true WO2022254958A1 (ja) 2022-12-08

Family

ID=84323120

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/016902 WO2022254958A1 (ja) 2021-06-03 2022-03-31 無人店舗の商品を管理する管理システム、管理方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2022185837A (ja)
WO (1) WO2022254958A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181499A1 (ja) * 2018-03-20 2019-09-26 日本電気株式会社 店舗管理装置および店舗管理方法
US20200193347A1 (en) * 2018-12-17 2020-06-18 Beijing Baidu Netcom Science Technology Co., Ltd. Vehicle passenger flow statistical method, apparatus, device, and storage medium
CN111831673A (zh) * 2020-06-10 2020-10-27 上海追月科技有限公司 货品识别系统、货品识别方法及电子设备
JP2021012518A (ja) * 2019-07-05 2021-02-04 クラスメソッド株式会社 無人店舗の商品を管理する管理サーバ及び管理方法
CN112434566A (zh) * 2020-11-04 2021-03-02 深圳云天励飞技术股份有限公司 客流统计方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181499A1 (ja) * 2018-03-20 2019-09-26 日本電気株式会社 店舗管理装置および店舗管理方法
US20200193347A1 (en) * 2018-12-17 2020-06-18 Beijing Baidu Netcom Science Technology Co., Ltd. Vehicle passenger flow statistical method, apparatus, device, and storage medium
JP2021012518A (ja) * 2019-07-05 2021-02-04 クラスメソッド株式会社 無人店舗の商品を管理する管理サーバ及び管理方法
CN111831673A (zh) * 2020-06-10 2020-10-27 上海追月科技有限公司 货品识别系统、货品识别方法及电子设备
CN112434566A (zh) * 2020-11-04 2021-03-02 深圳云天励飞技术股份有限公司 客流统计方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MIYAJIMA YOSUKE: "Using Cubemos' Skeleton Detection SDK and RealSense to Detect Human Reaching a Shelf", DEVELOPSIO, 18 May 2020 (2020-05-18), pages 1 - 10, XP093010961, Retrieved from the Internet <URL:https://dev.classmethod.jp/articles/detecting-human-hands-entering-a-shelf-using-cubemos-skeleton-tracking-sdk-and-realsense-d435i/> [retrieved on 20230102] *
MIZUKI MARUYAMA, SHUVOZIT GHOSE, KATSUFUMI INOUE, PARTHA PRATIM ROY, MASAKAZU IWAMURA, MICHIFUMI YOSHIOKA: "Word-level sign language recognition with Multi-stream Neural Networks Focusing on Local Region", IEICE TECHNICAL REPORT, PRMU, vol. 120, no. 409 (PRMU2020-78), 25 February 2021 (2021-02-25), JP, pages 53 - 58, XP009541632 *

Also Published As

Publication number Publication date
JP2022185837A (ja) 2022-12-15

Similar Documents

Publication Publication Date Title
RU2727084C1 (ru) Устройство и способ определения информации о заказе
US20210304176A1 (en) Information processing system
US20200202163A1 (en) Target positioning system and target positioning method
US10290031B2 (en) Method and system for automated retail checkout using context recognition
RU2739542C1 (ru) Система автоматической регистрации для торговой точки
WO2012132324A1 (ja) 店舗システム並びにその制御方法及び制御プログラムが格納された非一時的なコンピュータ可読媒体
WO2017085771A1 (ja) 精算支援システム、精算支援プログラム、及び精算支援方法
JP6596831B2 (ja) 予測システム、予測方法およびプログラム
KR102254639B1 (ko) 매장 관리 시스템 및 방법
US20240112252A1 (en) Identifying object of interest for handicapped individuals based on eye movement patterns
US20120130867A1 (en) Commodity information providing system and commodity information providing method
JP2021012518A (ja) 無人店舗の商品を管理する管理サーバ及び管理方法
US11651416B2 (en) Goods purchase analysis assist system
WO2022254958A1 (ja) 無人店舗の商品を管理する管理システム、管理方法及びプログラム
WO2019225260A1 (ja) 情報処理装置、制御方法、及びプログラム
GB2530770A (en) System and method for monitoring display unit compliance
EP4125056A1 (en) Information processing program, information processing method, and information processing device
US20230094892A1 (en) Computer-readable recording medium, estimation method, and estimation device
JP7318680B2 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
US20170278112A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
US20240054449A1 (en) Cart-based availability determination for an online concierge system
US20220164812A1 (en) Information processing device, information processing method, and recording medium
WO2023188068A1 (ja) 商品数特定装置、商品数特定方法、及び記録媒体
WO2022075051A1 (ja) 画像識別方法、画像識別プログラムが格納された記憶媒体及び画像識別システム
WO2023026277A1 (en) Context-based moniitoring of hand actions

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: 22815715

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 07.03.2024)