Information Processing Apparatus, Information Processing Method, and Program

The system enhances user behavior analysis by identifying and visualizing stay areas within facilities, addressing the limitations of conventional movement tracking to improve sales strategies.

JP7698163B2Active Publication Date: 2025-06-25SATO CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021098071
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-11
Publication Date
2025-06-25
Estimated Expiration
2041-06-11

AI Technical Summary

Technical Problem

Conventional systems struggle to accurately analyze user behavior within a facility, such as a supermarket, beyond mere movement patterns, as flow line information does not provide insights into what users are doing or how long they stay in certain areas.

Method used

An information processing system that acquires movement history data with position and time information, identifies areas of stay, and generates area processing data to group movements into stay areas, allowing for detailed behavior analysis by displaying these areas on a display device.

Benefits of technology

Enables more comprehensive analysis of user actions by visualizing stay areas and stay times, facilitating better understanding of consumer behavior and sales optimization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007698163000001
    Figure 0007698163000001
  • Figure 0007698163000002
    Figure 0007698163000002
  • Figure 0007698163000003
    Figure 0007698163000003
Patent Text Reader

Abstract

To analyze more useful behavior of a target person from movement history data of the target person within an area.SOLUTION: An information processing device includes: a first acquisition unit that acquires movement history data in which position information indicating a position of a communication device that moves together with a target person who moves within a predetermined movable area is associated with time information; a second acquisition unit that acquires one or more areas where the target person may have stayed based on the movement history data acquired by the first acquisition unit; and a display control unit that causes a display device to display the one or more areas acquired by the second acquisition unit.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, an information processing method, and a program.

Background Art

[0002] Conventionally, it has been required to analyze the behavior of users, such as consumers and employees, within the premises floor. For example, in commercial facilities such as supermarkets and shopping malls, in order to grasp the consumption trends of users and further increase sales, it has been required to analyze information on how users move within the facility.

[0003] Various methods for such user behavior analysis have been proposed. For example, a position information collection device has been proposed that accumulates the behavior log (movement history) of users on the shopping floor by receiving signals transmitted from signal transmitters disposed in portable containers that can be carried by users and that contain goods within the shopping area (for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] In a conventional system, it is possible to obtain the flow line information of a target person on the floor by receiving signals transmitted from a signal transmitter. However, it is difficult to define the behavior of the target person, such as what the target person was doing, from the flow line information, for example, from the staying area and staying time of the target person on the floor, and it is hard to say that it is useful information for analyzing the behavior of the target person. Therefore, an object of the present invention is to analyze more useful actions of a target person from the movement history data of the target person within an area.

Means for Solving the Problems

[0006] One aspect of the present invention includes a first acquisition unit that acquires movement history data in which position information indicating the position of a communication device that moves together with a target person moving within a predetermined movable area is associated with time information, , before a second acquisition unit that acquires one or more areas where the target person may have stayed, By generating, the above-mentioned one or more areas are and a display control unit that causes a display device to display the one or more areas acquired by the second acquisition unit. and the second acquisition unit generates area processing data in which the possible stay start time and the stay end time when the subject may have stayed are associated with each point based on the movement history data acquired by the first acquisition unit and points preset in the movable area, and based on the stay start time and the stay end time of the generated area processing data, groups the one or more points for each stay time when the subject may have stayed to generate each of the one or more areas. It is an information processing device.

Effects of the Invention

[0007] According to one aspect of the present invention, more useful actions of a target person can be analyzed from the movement history data of the target person within an area.

Brief Description of the Drawings

[0008] [Figure 1] It is a diagram schematically showing the action analysis system of the embodiment. [Figure 2] It is a diagram showing an example of the data configuration of the tag detection data list. [Figure 3] It is a diagram exemplifying the movement line of one wireless tag on an exemplary floor. [Figure 4] It is a diagram showing an example of a screen displayed on a store terminal. [Figure 5] It is a block diagram showing the internal configuration of each device of the action analysis system of the embodiment. [Figure 6] It is a diagram showing the overall processing of the action analysis process executed in the action analysis system. [Figure 7] It is a diagram showing an example of the data configuration of the area processing data list. [Figure 8] It is a diagram showing virtual points set on an exemplary floor. [Figure 9] It is a diagram showing an example of the data structure of the stay area data list. [Figure 10] It is a flowchart showing the process of generating a data list for area processing. [Figure 11] It is a diagram exemplifying the movement example of the detection position and the circles set for each detection position. [Figure 12] It is a diagram showing an example of the data structure of the in-work data list and the update key list. [Figure 13] It is a flowchart showing the process of generating the in-work data list in FIG. 10. [Figure 14] It is a flowchart showing the details of the incorporation process in FIG. 10. [Figure 15] It is a flowchart showing the grouping process. [Figure 16] It is a flowchart showing the details of the process of generating the aggregated group in FIG. 15. [Figure 17] In the process of generating the aggregated group in FIG. 16, it is a diagram explaining an example of the process for the group to be processed. [Figure 18] It is a flowchart showing the process of generating the stay area data list. [Figure 19] It is a diagram explaining the behavior analysis process for the behavior of the user in the first example. [Figure 20] It is a diagram explaining the behavior analysis process for the behavior of the user in the first example. [Figure 21] It is a diagram explaining the behavior analysis process for the behavior of the user in the first example. [Figure 22] It is a diagram explaining the behavior analysis process for the behavior of the user in the first example. [Figure 23] It is a diagram explaining the behavior analysis process for the behavior of the user in the second example. [Figure 24] It is a diagram explaining the behavior analysis process for the behavior of the user in the second example. [Figure 25] It is a diagram explaining the behavior analysis process for the behavior of the user in the second example. [Figure 26] It is a diagram explaining the behavior analysis process for the behavior of the user in the second example.

Mode for Carrying Out the Invention

[0009] Hereinafter, an information processing apparatus, an information processing method, and a program applicable to a behavior analysis system that acquires the position information of a target person and analyzes the behavior of the target person based on information transmitted by a communication device that moves within a predetermined movable range together with the target person will be described. As an application example of the behavior analysis system according to an embodiment, a system for analyzing the behavior of a target person on the floor of a store such as a supermarket can be cited. Hereinafter, this system will be described. When analyzing the behavior of a target person on the floor of a store, it is advisable to attach a wireless tag (transmitting device) as a communication device to a shopping cart or basket carried by the target person. However, this is not the only case. When the target person has a communication terminal such as a smartphone, the communication terminal can be used as a communication device for acquiring the position information of the target person. The communication device may be a tablet terminal or a wearable terminal in addition to a smartphone. Merely acquiring the position information of the target person according to the passage of time only provides the movement line information of the target person, and the behavior of the target person in the store cannot be fully recognized. Therefore, in the behavior analysis system according to an embodiment, for example, information on where the target person stayed on the floor of the store is acquired, and behavior analysis processing of the target person is performed.

[0010] (1) Outline of the behavior analysis system The outline of the behavior analysis system 1 according to the present embodiment will be described with reference to the drawings. FIG. 1 is a diagram schematically showing the behavior analysis system 1 according to the present embodiment. FIG. 2 is a diagram showing an example of the data configuration of a tag detection data list. FIG. 3 is a plan view of the floor FL (an example of a movable area) of the store illustrated in FIG. 1, and an example of the movement line M of one wireless tag is displayed. In FIGS. 1 and 3, an XYZ coordinate system is defined with reference to a predetermined position of the store.

[0011] As shown in FIG. 1, the behavior analysis system 1 of the present embodiment includes a wireless tag 2 attached to a cart CT used by a user (an example of a target person) who uses a store, a receiver 3, a store terminal 4, and a server 5 (an example of an information processing device). In FIG. 1, the case where the wireless tag 2 is attached to the cart CT is shown, but the wireless tag 2 may be attached to a shopping basket (not shown) on the cart CT.

[0012] The wireless tag 2 is an example of a communication device, and is, for example, a relatively small wireless communication device (transmitting device). The receiver 3 and the server 5 are connected by a network NW and constitute a position identification system for identifying the position of the user within the store. The network NW is, for example, a cellular network, a Wi-Fi network, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), a public circuit, a dedicated circuit, a wireless base station, or the like. The communication protocol between the wireless tag 2 and the receiver 3 is not limited, and examples include Wi-Fi (registered trademark), Bluetooth (registered trademark) Low Energy (hereinafter, BLE), and the like.

[0013] In FIG. 1, the positioning of the wireless tag 2 is performed, for example, by installing a receiver 3 (locator) on the ceiling of the store, and the receiver 3 receives radio waves (beacon signals) radiated from the wireless tag 2 of the cart used by the user, and uses the AOA (Angle of Arrival) method to calculate the incident angle of the received beacon signal. The receiver 3 measures the incident angle (arrival direction) of the beacon signal received from the wireless tag 2 and sends the information on the measured incident angle to the server 5. The server 5 acquires the position (XY coordinates) of the wireless tag 2 from the position (position of XYZ coordinates) of the receiver 3 as the transmission source within the store and the incident angle based on the position.

[0014] Although the position of the wireless tag 2 can be obtained by a single receiver 3 (locator), it is preferable to provide more receivers 3 according to the received signal strength (RSSI) of the beacon signal, the store area, and the radio wave environment of the store. For example, receivers 3 are arranged at equal intervals on the ceiling of the store, and it is preferable to arrange receivers 3 at shorter intervals in places where particularly high positioning accuracy is required, such as where the sales floor is crowded.

[0015] Note that the method of positioning the wireless tag 2 is not limited to the AOA method, and other methods such as the TOA (Time of Arrival) method may be used. The positioning interval of the wireless tag 2 may be set arbitrarily, but it is set to the time required to accurately grasp the behavior of the user (for example, 100 ms to 2 seconds).

[0016] The server 5 measures the position of the user in the store (that is, the position of the wireless tag 2) and obtains the tag detection data list (an example of movement history data) shown in FIG. 2. As shown in FIG. 2, the tag detection data list is a list in which the identification information (tag ID) for identifying the wireless tag 2, the detection position (the x and y values of the coordinates on the floor FL), and the timestamp are used as one detection data. The timestamp is a digital value equivalent to time. In the example shown in FIG. 2, the timestamp represents the relative time in units of 1 / 1000 second. By plotting the detection positions included in the tag detection data list on the floor FL and connecting them in chronological order, the traffic line M illustrated in FIG. 3 is formed. The server 5 generates a stay area data list (described later), which is the basis for obtaining the area where the user may have stayed (hereinafter referred to as the "stay area") by executing the behavior analysis program described later. In addition, the server 5 generates an image visualizing the stay area of the user by executing the drawing program described later. In the following description, an image (an image visualizing the stay area of the user) displayed by executing the behavior analysis program and the drawing program is appropriately referred to as the "user stay area image".

[0017] Fig. 4 shows an example of a user stay area image generated by the server 5. The user stay area image in Fig. 4 is generated from the tag detection data list that forms the basis of the movement line M in Fig. 3. In Fig. 4, in addition to the arrowed line AL indicating the movement of the user, it includes a plurality of circles indicating the stay area of the user. The plurality of circles include a combination of two circles, the outermost circle C max and the central circle C med . The outermost circle C max and the central circle C med indicate the stay area of the user (for example, the area where the user stops or loiters in the vicinity). The outermost circle C max indicates the maximum value of the user stay area, and the central circle C med indicates the median value of the user stay area.

[0018] Compared with the movement line M shown in Fig. 3, the user stay area image in Fig. 4 can variably capture not only the movement path of the user but also the stay area indicating that the moving user stops or loiters on the way, according to the size of the area. Therefore, the behavior of the user is easy to analyze.

[0019] The store terminal 4 is arranged, for example, in the store office or the like, and is a terminal equipped with a display panel such as a personal computer or a tablet terminal. The store terminal 4 can communicate with the server 5 via the network NW, and is configured to, for example, acquire a user stay area image from the server 5 and display it on a display device such as a display panel. In one embodiment, the store terminal 4 may be capable of executing the above-described drawing program. In that case, the store terminal 4 is configured to acquire a stay area data list (described later) from the server 5 and generate a user stay area image by executing the drawing program and display it on the display device.

[0020] (2) Internal configuration of the behavior analysis system Next, the internal configuration of the behavior analysis system 1 will be described with reference to the block diagram of Fig. 6.

[0021] As shown in FIG. 5, the wireless tag 2 includes, for example, a control unit 21 and a communication unit 22. The control unit 21 is mainly composed of a microprocessor and controls the entire wireless tag 2. For example, the control unit 21 performs processing on received signals and transmitted signals (baseband signal processing). The communication unit 22 is an interface for communicating with the receiver 3. For example, the communication unit 22 modulates a transmission signal (e.g., a beacon signal) to the receiver 3 and performs broadcast transmission, for example, in accordance with BLE. The beacon signal includes the tag ID of the wireless tag 2.

[0022] As shown in FIG. 5, the receiver 3 includes, for example, a radio wave receiving unit 31, an incident angle measuring unit 32, and a communication unit 33. The radio wave receiving unit 31 includes an antenna that receives a beacon signal (radio wave) transmitted from the wireless tag 2. The incident angle measuring unit 32 measures the incident angle of the radio wave from the wireless tag 2 received by the radio wave receiving unit 31. The communication unit 33 is an interface for communicating with the wireless tag 2 and the server 5. For example, the communication unit 33 demodulates a received signal from the wireless tag 2. Further, the communication unit 33 associates the information on the incident angle measured by the incident angle measuring unit 32 with the tag ID of the wireless tag 2 included in the received beacon signal and transmits the result to the server 5 via the network NW.

[0023] As shown in FIG. 5, the store terminal 4 includes, for example, a control unit 41, a display unit 42, and a communication unit 43. The control unit 41 is mainly composed of a microprocessor and controls the entire store terminal 4. When a drawing program is installed in the store terminal 4, the control unit 41 executes the drawing program and generates a user stay area image based on a stay area data list (described later) obtained from the server 5. The display unit 42 includes, for example, a display panel such as an LCD (Liquid Crystal Display) panel and a drive circuit that drives the display panel. The display unit 42 displays, for example, the user stay area image generated by the control unit 41. The communication unit 43 functions as a communication interface for communicating with the server 5 via the network NW.

[0024] As shown in FIG. 5, the server 5 includes, for example, a control unit 51, a storage 52, and a communication unit 53. The control unit 51 is mainly composed of a microprocessor and controls the entire server 5. For example, when the microprocessor of the control unit 51 executes an action analysis program and a drawing program, it functions as a first acquisition unit 511, a second acquisition unit 512, and a display control unit 513. The first acquisition unit 511 acquires a detection data set DS composed of one or more detection data of the wireless tag 2 that moves with the user moving within the floor. As shown in FIG. 2, the detection data set DS is, for example, a predetermined number of consecutive detection data acquired from a tag detection data list. The second acquisition unit 512 acquires one or more areas where the user may have stayed based on the detection data set DS acquired by the first acquisition unit 511. The display control unit 513 causes the display device of the store terminal 4 to display one or more areas acquired by the second acquisition unit.

[0025] In one embodiment, the second acquisition unit 512 groups one or more virtual points according to the stay time during which the user may have stayed, based on the detection data set (an example of movement history data) and the virtual points preset in the floor, and acquires them as stay areas. The "stay time" here is the time when the user stayed near the position on the floor FL specified by the virtual point. The degree of proximity of the virtual points is specified, for example, by a circle with a predetermined range centered on the virtual point, as described below. A virtual point is, for example, a virtual point set at regular intervals in the X-axis and Y-axis directions on the floor FL of a store (see FIG. 8). The virtual points are provided to obtain information on the user's staying area on the store floor. Considering the detection error of the wireless tag 2, virtual points included in a predetermined range of a circle centered on the detected position of the wireless tag 2 are considered to be included in the user's staying area. Therefore, by acquiring one or more virtual points included in a circle centered on the detected position that moves as the detected position of the wireless tag 2 moves, and performing information processing described later, the staying area of the user in the store can be specified.

[0026] In one embodiment, the second acquisition unit 512 generates area processing data from the detection data set, and groups virtual points based on the start time stamp (start time of stay) and end time stamp (end time of stay) of the generated area processing data to obtain them as a staying area. As described later, the area processing data is data in which, for each virtual point, the start time stamp (start time of stay) and end time stamp (end time of stay) of the staying time during which the user may have stayed are associated. By associating virtual points with the start time stamp and end time stamp of the staying time, the staying area of the user can be specified more accurately. Note that in the following description and the attached drawings, the area processing data is associated with the staying time of the user with respect to the virtual point, but it can also be regarded as data associated with the staying time of the user with respect to the virtual point.

[0027] The storage 52 is a large-capacity storage device such as an HDD (Hard Disk Drive) device, and stores a store map, a tag detection data list (see FIG. 2), and a staying area data list. The store map includes two-dimensional information such as the positions of the facilities on the floor of the store and the passageways. The staying area data list will be described later. It is the result of the execution of the behavior analysis program and is the basis for generating an image of the user staying area. The communication unit 53 functions as a communication interface for communicating with the receiver 3 and the store terminal 4 via the network NW.

[0028] (3) User Behavior Analysis Process Next, with reference to FIGS. 6 to 18, the user behavior analysis process realized by the server 5 executing the behavior analysis program and the drawing program will be described. In the user behavior analysis process by the server 5, information processing is performed for each tag ID that identifies the wireless tag 2. In the following description, information processing for a specific tag ID and a specific date will be described. Note that in the embodiment, various processes not described below (for example, processes for associating data lists and data to be processed for each tag ID or each date, etc.) are also appropriately executed.

[0029] (3-1) Overall Flow FIG. 6 is a flowchart of the main routine of the user behavior analysis process. Each process included in the flowchart of FIG. 6 is as follows.

[0030] · Generation process of data list for area processing (step S2) The server 5 first executes the generation process of the data list for area processing. The generation process of the data list for area processing is a process of generating a data list for area processing based on the tag detection data list (see FIG. 2). The data list for area processing includes a plurality of data for area processing. As shown in FIG. 2, each detection data included in the tag detection data list is only information on the detection position of the user for each time stamp (that is, a point on the floor). Therefore, the server 5 detects virtual points within a predetermined range based on the detection position of the wireless tag 2, and acquires data for area processing, which is the stay time data for each virtual point. The data for area processing is the basis for specifying the stay area of the user.

[0031] · Grouping process (step S4) After generating the area processing data list, server 5 performs a process of grouping one or more area processing data included in the area processing data list. Since the area processing data is data associated with one virtual point, it does not correspond to the data of the user's stay area. Therefore, in the grouping process, a process of grouping one or more area processing data that can be considered as coherent actions within one stay area by the user is performed.

[0032] ·Stay area data list generation process (step S6) After the grouping process, server 5 performs a stay area data list generation process. The stay area data list generation process is a process of generating stay area data (data indicating the user's stay area) for each group grouped by the grouping process. Since the group (aggregation group described later) generated in the grouping process is an aggregate of area processing data corresponding to the virtual point ID, it does not directly indicate the area. Therefore, in the stay area data list generation process, based on each group generated in the grouping process, a list (stay area data list) including stay area data indicating the user's stay area is generated.

[0033] ·Drawing process (step S8) After the stay area data list generation process, server 5 performs a drawing process based on the store map and the stay area data list. By performing the drawing process, the user stay area image illustrated in FIG. 4 is generated.

[0034] FIG. 7 shows an example of the data configuration of the area processing data list. As illustrated in FIG. 7, one or more area processing data included in the area processing data list of one embodiment are associated with a unique area processing ID and include values of the virtual point ID, start time stamp, end time stamp, and stay time. Here, the virtual point ID is identification information that identifies virtual points Vp set at regular intervals in the X-axis and Y-axis directions on the floor FL, as illustrated in FIG. 8. The virtual point ID is associated with the position (x, y) of the corresponding virtual point Vp. In each area processing ID, the stay time is a value obtained by subtracting the start time stamp from the end time stamp, and is indicated, for example, in units of seconds. Each area processing data included in the area processing data list indicates that the user was likely to be near the virtual point corresponding to the virtual point ID from the start time stamp to the end time stamp.

[0035] FIG. 9 shows an example of the data configuration of the stay area data list. As illustrated in FIG. 9, each stay area data in the stay area data list of one embodiment includes values of a start time stamp (stay start time), an end time stamp (stay end time), a stay time, the center coordinates (x, y) of a circle, the maximum value of the area radius, and the median value of the area radius. The center coordinates of the circle may be coordinates associated with the coordinates of the floor. Here, the circle formed by the maximum value of the area radius from the center coordinates (x, y) of the circle corresponds to the maximum circle C of the user stay area image shown in FIG. 4. max The circle formed by the median value of the area radius from the center coordinates (x, y) of the circle corresponds to the central circle C of the user stay area image shown in FIG. 4. med The maximum circle indicates the range where the user may have stayed. The maximum circle is useful for grasping the entire range where the user may have stayed. The central circle indicates the range where the user is more likely to have stayed within the range indicated by the maximum circle. The central circle is useful for grasping the range of the user's main actions. For example, when analyzing the user's actions in front of the shelf, the central circle C of the user stay area image where the user is likely to have stayed can be used. med can be used.

[0036] (3-2) Area Processing Data List Generation Process Next, with reference to FIGS. 10 to 14, the details of the area processing data list generation process in step S2 of FIG. 6 described above will be described. FIG. 10 shows the overall flow of the generation process of the area processing data list. In this process, first, a predetermined number of consecutive detection data to be processed are acquired from the tag detection data list shown in FIG. 2, and based on the virtual point IDs obtained from the predetermined number of detection data, a working data list including provisional area processing data that is the basis of the area processing data is generated. In the example of FIG. 10, from the perspective of preventing resource depletion due to real-time data processing on the tag detection data list and batch data processing on a large amount of data, a case is shown where a predetermined number of detection data are put into a buffer and repeatedly processed. At the time of executing the process, for example, since there is an area processing data list generated previously, after generating the working data list, an incorporation process is performed to incorporate each provisional area processing data in the working data list into the generated area processing data.

[0037] As shown in FIG. 10, the server 5 acquires a detection data set DS consisting of a predetermined number of consecutive detection data to be processed from the tag detection data list (step S10). Next, the server 5 acquires a virtual point set PS, which is a set of virtual point IDs included in a predetermined range from the detection positions (x, y) of each detection data in the detection data set DS (step S12). The virtual point set PS is acquired for each detection data.

[0038] After the server 5 acquires the virtual point set PS, the server 5 sequentially extracts the detection data to be processed (referred to as "target data") from the detection data set DS (step S14). The server 5 sequentially extracts each virtual point ID in the virtual point set PS acquired for the detection data as the virtual point ID to be processed (referred to as "target point ID") (step S16), and performs a working data list generation process (step S18).

[0039] During operation, the in - work data list is a list containing one or more pieces of data for temporary area processing. The data for temporary area processing is generated based on a predetermined number of detection data (i.e., the detection data set DS) obtained in step S10. The server 5 completes the in - work data list corresponding to the detection data set DS obtained in step S10 by executing the in - work data list generation process for each detection data in the detection data set DS (steps S20, step S22). When the in - work data list is completed, the server 5 executes the incorporation process (step S24). The incorporation process is a process of incorporating one or more pieces of data for temporary area processing included in the in - work data list into the generated area processing data list. If the generated area processing data list exists, the data for temporary area processing is incorporated into the generated area processing data list. After the processing for a predetermined number of detection data is completed, new predetermined number of detection data is obtained from the tag detection data list and the same processing is performed (step S26: YES). When the processing for all detection data in the tag detection data list is completed (step S26: NO), the area processing data list generation process is completed.

[0040] FIG. 11 is a diagram for explaining a method of obtaining the virtual point set PS, and illustrates an example of the movement of the detection position and the circles set for each detection position. FIG. 11 shows, for three consecutive detection data which are a part of an exemplary detection data set DS, the detection positions D1 to D3 and the circles C1 to C3 indicating a predetermined range centered on each detection position. For example, from the detection data corresponding to the detection position D1, the virtual point IDs corresponding to the eight virtual points Vp1 to Vp8 included in the circle C1 are obtained. The eight virtual points Vp1 to Vp8 are an example of the virtual point set PS obtained for the detection data corresponding to the detection position D1. The example shown in FIG. 11 indicates that the user is moving along the path of detection positions D1 → D2 → D3. As shown in FIG. 11, as the user moves, the circles C1 to C3 corresponding to each detection position move, and the virtual points Vp of the virtual point set PS included in each of the circles C1 to C3 change over time.

[0041] Identifying the virtual points Vp included in a predetermined range centered on the detection position is for identifying the user's staying area. That is, in the example of FIG. 11, although it indicates that the user is moving along the path of detection positions D1 → D2 → D3, due to detection errors of the wireless tag 2 and the like, the user may not be exactly at the detection position. Therefore, in order to identify the range where the user is likely to be located, the virtual points Vp included in a predetermined range centered on the detection position are identified. The fact that the virtual point Vp is commonly included in a plurality of circles indicates that the user was located near the virtual point Vp at the time specified by the time stamp included in the detection data corresponding to the plurality of circles. That is, the time can be regarded as the staying time at the virtual point Vp. For example, since the virtual points Vp1 and Vp2 shown in FIG. 11 are commonly included in the circles C1 and C2, it indicates that the user was located near the virtual points Vp1 and Vp2 at the time specified by the time stamps included in the detection data corresponding to the detection positions D1 and D2. The interval for setting the virtual points is not limited, but for example, it is 0.1 to 1.0 meters.

[0042] Here, FIG. 12 shows an example of the data configuration of the in-operation data list and an example of the data configuration of the update key list used in the flow of FIG. 13. As shown in FIG. 12, the data configuration of the in-work data list includes values of a virtual point ID, an update key, a start time stamp (stay start time), and an end time stamp (stay end time). Each row in FIG. 12 represents data for temporary area processing. In each of the figures referred to hereinafter, the time stamp of the target data may be denoted as "mts", the update key as "cmk", the start time stamp (stay start time) as "sts", and the end time stamp (stay end time) as "ets". The update key is a key associated with the virtual point ID. The update key is used to manage multiple pieces of data for temporary area processing generated corresponding to the same virtual point ID in the in-work data list. In the initial state of the update key list, the update key cmk corresponding to all virtual point IDs is NULL (empty). In the example of FIG. 12, the in-work data list includes multiple pieces of data for temporary area processing temp_AD corresponding to different update keys cmk (for example, update keys "0", "1", "2") for the same virtual point ID (for example, virtual point ID "10").

[0043] In the flow of FIG. 13, when the value of the update key cmk is updated, the update key cmk managed in the update key list is also updated as appropriate. The in-work data list generation process is executed each time new target data and a target point ID are extracted. After the update key cmk corresponding to the virtual point ID is read from the update key list, if the value of the update key cmk is updated during the execution of the in-work data list, the value of the update key cmk corresponding to the virtual point ID in the update key list is also updated.

[0044] Next, FIG. 13 shows the detailed flow of the in-work data list generation process in step S18 of FIG. 10 described above. In FIG. 13, the server 5 refers to the update key list and determines whether the update key cmk corresponding to the target point ID extracted from the virtual point set PS is NULL (step S28). If the update key cmk corresponding to the target point ID is NULL, the update key cmk is set to "0" for initialization (step S30). Next, the server 5 refers to the working data list and determines whether there is any temporary area processing data temp_AD corresponding to the target point ID and the current update key cmk in any row of the working data list (step S32). If not (step S32: NO), a time stamp jts that is a predetermined time before (for example, a few seconds such as 5 to 15 seconds) the time stamp mts of the target data is set (step S34).

[0045] Here, calculating the time stamp jts before the predetermined time is to exclude the influence in the case of radio wave fluctuations or a situation where data is temporarily interrupted. The server 5 refers to the generated area processing data list and determines whether there is area processing data with an end time stamp ets (stay end time) that includes the same virtual point ID as the target point ID, is equal to or later than (the same time as or later than the time of the time stamp jts before the predetermined time), and is equal to or earlier than (the same time as or earlier than the time of the time stamp mts) the time stamp mts included in the target data (step S38). If the server 5 determines that there is such area processing data, the start time stamp sts (stay start time) of the temporary area processing data temp_AD corresponding to the current update key cmk is set to the start time stamp sts (stay start time) included in the area processing data specified in step S38, and the end time stamp ets (stay end time) of the temporary area processing data temp_AD is set to the time stamp mts included in the target data (step S42).

[0046] As a result, since the start time stamp sts (stay start time) included in the temporarily generated area processing data temp_AD is the same as the start time stamp sts (stay start time) included in the generated area processing data, the temporarily generated area processing data corresponding to the current update key cmk will be the target of data update in the subsequent incorporation process. In the incorporation process, the generated area processing data specified in step S38 and the area processing data that are separate from each other will no longer be newly inserted, and the influence in the case where radio waves fluctuate or data is temporarily interrupted is excluded.

[0047] When the condition of step S38 is not satisfied (step S38: NO), the server 5 sets both the start time stamp sts and the end time stamp ets of the temporarily generated area processing data temp_AD corresponding to the current update key cmk as the time stamp mts of the target data (step S44).

[0048] In step S32, when the target point ID and the temporarily generated area processing data temp_AD corresponding to the current update key cmk exist in the working data list (step S32: YES), it is determined whether the time stamp mts of the target data has increased by a predetermined value or more from the end time stamp ets included in the temporarily generated area processing data temp_AD (that is, whether a predetermined time has elapsed) (step S36). When a predetermined time has elapsed, in order to distinguish from the temporarily generated area processing data specified in step S32, the server 5 increments the update key cmk by 1 (step S40) and generates temporarily generated area processing data temp_AD corresponding to the new update key cmk in the working data list. The server 5 sets both the start time stamp sts (stay start time) and the end time stamp ets (stay end time) of the new temporarily generated area processing data temp_AD as the time stamp mts of the target data (step S44).

[0049] That is, the server 5 determines whether there is generated area processing data including the same virtual point as the virtual point corresponding to the target data (including the time stamp mts as the first time), and whether the time stamp mts of the target data is equal to or greater than a predetermined value (i.e., a time after a predetermined time) than the end time stamp ets (departure end time) of the generated area processing data. If it is equal to or greater than the predetermined value, based on the virtual point corresponding to the target data, virtual area processing data different from the generated area processing data is generated. For example, in the movement example of FIG. 11 above, assume that area processing data (start time stamp sts: TS1, end time stamp ets: TS2) corresponding to the virtual point Vp1 has been generated based on the movement to the detection position D1. Further, assume that the detection data set acquired for the detection position D2 includes detection data (virtual point ID: ID of Vp1, time stamp mts). When this detection data is used as the target data, if the time stamp mts corresponds to a time after a predetermined time has elapsed based on TS2, virtual area processing data corresponding to the virtual point Vp1 is separately generated in order to distinguish it from the generated area processing data. By doing so, it is possible to reliably detect that the user has moved rather than the radio wave fluctuation, and generate virtual area processing data that is distinguished from the existing area processing data. By performing the processes of steps S38 and S44, in the subsequent incorporation process, the stay times corresponding to the virtual point are separated by a predetermined time or more between two or more pieces of area processing data including the same virtual point, and two or more pieces of area processing data are generated.

[0050] In step S36, if the time stamp mts of the target data has not increased by a predetermined value or more from the end time stamp ets (departure time) of the temporary area processing data temp_AD specified in step S32 (that is, if a predetermined time or more has not elapsed), the end time stamp ets of the temporary area processing data temp_AD is updated to the time stamp mts of the target data (step S46). That is, since the same virtual point ID has been obtained for two different detection data with close time stamps mts due to the actions of the user such as the user returning to the same position, one piece of temporary area processing data is concatenated based on these two pieces of detection data.

[0051] Next, the incorporation process will be described with reference to FIG. 14. The server 5 sequentially extracts one or more pieces of temporary area processing data (referred to as "target data group") corresponding to the virtual point ID to be processed (referred to as "target point ID") from the in-work data list (step S48). The server 5 sequentially extracts the target data corresponding to the update key cmk to be processed from the target data group (step S50). The processes of steps S52 to S56 are executed for each piece of temporary area processing data included in the in-work data list.

[0052] The server 5 refers to the generated area processing data list and determines whether there is area processing data that includes the same virtual point ID as the target point ID extracted in step S48 and has the same start time stamp sts (stay start time) as the target data (step S52).

[0053] If there is area processing data (step S52: YES), the server 5 adds update data including the area processing ID and the end time stamp ets of the area processing data to the update list (step S54). The update list is used to update the generated area processing data. That is, if there is already area processing data corresponding to the actions of the user that started at the same time and are related to the same virtual point, the end time stamp ets is updated to the latest value.

[0054] When there is no area processing data (step S52: NO), server 5 adds the insertion data including the point of interest ID, start time stamp sts, and end time stamp ets to the insertion list (step S56). The insertion list is used to add to the generated area processing data list.

[0055] When there is insertion data included in the insertion list (step S62: YES), server 5 executes an insertion process to add the insertion data to the generated area processing data list (step S64). At that time, a new area processing ID is issued, and the value of the stay time is set to the difference between the start time stamp sts and the end time stamp ets of the insertion data.

[0056] When there is update data included in the update list (step S66: YES), server 5 executes an update process to update the generated area processing data list using the update data (step S68). The generated area processing data corresponding to the area processing ID of the update data is rewritten with the end time stamp ets of the update data, and the value of the stay time is set to the difference between the start time stamp sts of the generated area processing data and the end time stamp ets of the update data.

[0057] As described above, each provisional area processing data in the in-work data list is inserted as new area processing data into the generated area processing data list, and the area processing data in the generated area processing data list is updated, and the area processing data list generation process ends.

[0058] Note that in the above area processing data list generation process, when there is no generated area processing data list, that is, when executing the process for the first predetermined number of detection data in the tag detection data list, the determination in step S38 of the in-work data list generation process (FIG. 13) is set to NO, and the determination in step S52 in the incorporation process is set to NO.

[0059] (3-3) Grouping process Next, the grouping process will be described with reference to FIGS. 15 to 17. FIG. 15 shows the overall flow of the grouping process. The grouping process is a process of grouping one or more pieces of area processing data included in the area processing data list. The purpose of grouping one or more pieces of area processing data is to make the one or more pieces of area processing data correspond to the actions within one stay area by the user. Referring to FIG. 15, the server 5 first generates a plurality of groups G[i] by taking one or more pieces of area processing data having the same start time stamp sts (stay start time) from the area processing data list as one group (step S70). That is, grouping is performed in time order so that groups having the same start time stamp sts are formed. Note that the plurality of groups G[i] (i = 0, 1, 2,...) are generated in ascending order of the start time stamp sts (that is, in ascending order of time). That is, the group G[0] is a collection of area processing data having the smallest start time stamp sts.

[0060] The server 5 obtains the maximum value of the end time stamp ets from one or more pieces of area processing data included in the group G[0] (the latest time of the stay end time among the area processing data included in the group G[0]), and sets it as the reference time stamp gts (an example of the reference time) (step S72).

[0061] After initializing the variable j in the aggregated group CG[j] described later (step S74), the server 5 sequentially extracts the group to be processed (the target group jdg) from the plurality of groups G[i] (i = 0, 1, 2,...) generated in step S70, starting from the group G[0] (step S76). Server 5 obtains the minimum value sts_min of the start time stamp of the target group jdg (the earliest time among the stay start times of the area processing data included in the target group jdg), the maximum value ets_max of the end time stamp (the latest time among the stay end times of the area processing data included in the target group jdg), and the maximum value drs_max of the stay time (= ets_max - sts_min) (step S78), and executes an aggregation group generation process (step S80).

[0062] Here, the aggregation group generation process refers to a process of grouping one or more pieces of area processing data with the same start time stamp sts by the grouping process in step S70, and then, even for two or more groups including area processing data with different start time stamps sts, when it is considered that they correspond to the integrated actions of the user within one stay area, aggregating the two or more groups into one group (referred to as an "aggregation group").

[0063] The aggregation group CG[j] (j = 0, 1, 2,...) is generated by sequentially extracting each of the plurality of groups G[i] (i = 0, 1, 2,...) generated in step S70 as the group to be processed. The aggregation group CG[j] (j = 0, 1, 2,...) is generated in ascending order of the start time stamp sts (that is, in ascending order of time).

[0064] After the aggregation group generation process, server 5 determines whether the center of gravity gbc[j] corresponding to the generated aggregation group CG[j] has been calculated (step S82). If it has not been calculated, a process of calculating the center of gravity gbc[j] is performed (step S84). The reason for calculating the center of gravity gbc[j] of the aggregation group in step S84 is that the processing for the target group jdg varies according to the distance between the center of gravity gbc[j] of the aggregation group and the center of gravity of the target group jdg.

[0065] Note that the center of gravity of a group such as an aggregation group or a focus group indicates the coordinates corresponding to the virtual point ID included in the area processing data when there is one piece of area processing data included in the group, and when there are two or more pieces of area processing data included in the group, it indicates the coordinates of the center of gravity (geometric center based on multiple virtual points) obtained based on the multiple coordinates corresponding to the multiple virtual point IDs included in the two or more pieces of area processing data.

[0066] When calculating the center of gravity of a group, it is not necessary to use all the area processing data included in the group, and the center of gravity of the group may be calculated based on some of the area processing data. In one embodiment, among two or more pieces of area processing data included in the group to be processed, area processing data whose stay time is equal to or greater than a predetermined ratio of the maximum value of the stay time of the group (the time when the stay end time is the latest among the area processing data included in the group) is extracted, and the center of gravity of the group may be calculated based on the extracted area processing data. As a result, since the area processing data reflecting a situation where the user has gone to and returned from a distant place for only a short time within the group, for example, is excluded from the target of calculating the center of gravity, the center of the user's behavior is reflected in the calculated center of gravity. The predetermined ratio is not limited, but is, for example, a value between 92% and 98%.

[0067] Next, with reference to FIG. 16, the details of the aggregation group generation process of step S80 shown in FIG. 15 will be described. FIG. 16 shows a detailed flow of the aggregation group generation process. Referring to FIG. 16, the server 5 performs the following processing according to the comparison result between the minimum value sts_min of the start time stamp of the target group jdg (the earliest stay start time among the area processing data included in the target group jdg) and the maximum value ets_max of the end time stamp (the latest stay end time among the area processing data included in the target group jdg), and the reference time stamp gts (reference time). Note that the reference time stamp gts is the maximum value of the end time stamps ets included in group G[0] or the most recently generated aggregated group (the latest stay end time among the area processing data included in group G[0] or the most recently generated aggregated group), and is sequentially updated in the process of generating the aggregated groups CG[j] (j = 0, 1, 2,...).

[0068] (I) When both the minimum value sts_min of the start time stamp of the target group jdg and the maximum value ets_max of the end time stamp are less than or equal to the reference time stamp gts (the same as or earlier than the reference time) (step S88: YES, step S90: YES) In this case, since the stay time of the user corresponding to the target group jdg does not exceed the reference time stamp gts, if there is no aggregated group CG[j] (step S94: NO), the server 5 sets the target group jdg as the aggregated group CG[j] (step S96). If there is an aggregated group CG[j] (step S94: YES), the server 5 aggregates the target group jdg into the aggregated group CG[j] (step S98). Then, the server 5 updates the reference time stamp gts so that the maximum value ets_max of the end time stamp of the aggregated group CG[j] becomes the reference time stamp gts (step S100).

[0069] (II) When the minimum value sts_min of the start time stamp of the target group jdg is greater than the reference time stamp gts (later than the reference time) (step S88: NO) In this case, it is considered that the target group jdg corresponds to an action different from the action corresponding to the existing aggregation group CG[j]. Therefore, the variable j is incremented by 1 (step S92), and the target group jdg is associated with the next aggregation group CG[j] for processing. The processing after step S94 is the same as that in case (I).

[0070] (III) When the minimum value sts_min of the start timestamp of the target group jdg is less than or equal to the reference timestamp gts (the same as or earlier than the reference time), but the maximum value ets_max of the end timestamp of the target group jdg is greater than the reference timestamp gts (later than the reference time) (step S88: YES, step S90: NO) This means that the reference timestamp gts exists between the minimum value sts_min of the start timestamp and the maximum value ets_max of the end timestamp of the target group jdg. In this case, when a predetermined condition is satisfied, a data distribution process is performed to distribute each area processing data included in the target group jdg to one of two consecutive aggregation groups with respect to the reference timestamp gts (reference time) as a boundary.

[0071] In the case of (III) above, the predetermined condition for performing the data distribution process corresponds to step S106 in FIG. 16, and steps S102 and S104 are executed for that determination. The server 5 calculates the centroid G_jdg of the target group jdg (step S102), and calculates the distance md from the centroid gbc[j] of the aggregation group CG[j] to the centroid G_jdg of the target group jdg (step S104). Next, the server 5 determines whether the calculated distance md is equal to or greater than a predetermined action setting value (step S106). Calculating the distance md between the centroids is to determine whether the target group jdg corresponds to the action of the same user as the aggregation group CG[j]. The number of circles, the size of the circles, etc. corresponding to the stay area data generated later for each aggregation group can be adjusted by the action setting value.

[0072] When the distance md between the centers of gravity is greater than or equal to the action set value (step S106: YES), since it is considered that the area processing data corresponding to an action different from the aggregation group CG[j] is included in the target group jdg, the server 5 executes data distribution processing (step S108). The data distribution processing will be described later. On the other hand, when the distance md between the centers of gravity is less than the action set value (step S106: NO), the server 5 aggregates the target group jdg into the aggregation group CG[j] (step S98), and sets the end time stamp ets of the aggregation group CG[j] as the reference time stamp gts (step S100). The action set value in step S106 is not limited, but is set to a value of several meters, for example, 3 meters.

[0073] FIG. 17 is a diagram showing differences in processing when the target group jdg satisfies the above conditions (I) to (III). FIG. 17 shows differences in processing for the target group jdg when the most recently generated aggregation group is CG[M - 1] (that is, j = M - 1; provided that M ≥ 1). In FIG. 17, the maximum value of the end time stamp of the aggregation group CG[M - 1] (the time when the stay end time is the latest among the area processing data of the aggregation group CG[M - 1]) is the reference time stamp gts (reference time). At this time, when the target group jdg satisfies the condition (I) above, that is, when the minimum value of the start time stamp sts of the target group jdg (the time when the stay start time is the earliest among the area processing data included in the target group jdg) and the maximum value of the end time stamp ets (the time when the stay end time is the latest among the area processing data included in the target group jdg) are both less than or equal to the reference time stamp gts (the same as or earlier than the reference time), the process of aggregating the target group jdg into the aggregation group CG[M - 1] is performed (step S98 shown in FIG. 16). When the target group jdg satisfies the condition in (II) above, that is, when the minimum value sts_min of the start time stamp of the target group jdg is greater than the reference time stamp gts (later than the reference time), a process is performed to set the target group jdg as another aggregation group CG[M] with respect to the aggregation group CG[M - 1] (steps S92 and S96 shown in FIG. 16). That is, since two or more groups that overlap in time are aggregated into one aggregation group, when generating an area corresponding to the aggregation group later, the coverage accuracy of the area corresponding to one integrated action of the user can be improved.

[0074] In FIG. 17, when the target group jdg satisfies the condition in (III) above, the data of the part of the target data TD1 that does not exceed the reference time stamp gts is aggregated into the most recently generated aggregation group CG[M - 1]. The data of the part of the target data TD1 that exceeds the reference time stamp gts (later than the reference time) becomes the next aggregation group CG[M] after the most recently generated aggregation group CG[M - 1]. Also, the target data TD2 included in the target group jdg is merged into the most recently generated aggregation group CG[M - 1]. In this way, the data distribution process in step S108 is performed. By performing the above-described data distribution, the continuity of the data for area processing is ensured, and when generating the stay area data later, it is possible to suppress data loss such that gaps occur between adjacent areas, for example. By ensuring the continuity of the data for area processing, it is possible to avoid a situation where the user suddenly moves to another location on the data.

[0075] As described above, in the grouping process shown in FIG. 15, groups with the same start time stamp are generated based on one or more pieces of data for area processing included in the data list for area processing, and further aggregated into aggregation groups that are considered to correspond to one integrated action by the user. Each generated aggregation group corresponds to the stay area data described later. That is, in one embodiment, the control unit 51 of the server 5 functions as a second acquisition unit 512 that groups the area processing data generated for each virtual point in time order based on the start time stamp (stay start time) to generate a group. In this case, the second acquisition unit 512 uses the minimum value of the start time stamp (the time with the earliest stay start time) among one or more area processing data included in the group and the maximum value of the end time stamp (the time with the latest stay end time) to group one or more area processing data included in the group into an aggregated group. As will be described later, stay area data (described later) indicating the stay area is acquired from each aggregated group. By aggregating a group consisting of one or more area processing data into an aggregated group, the number of stay areas generated from the tag detection data list is limited, making it easier to analyze the behavior of the user.

[0076] As described with reference to FIG. 16, when generating an aggregated group, distribution processing is performed when the distance md calculated in step S104 is equal to or greater than a predetermined behavior setting value. In the distribution processing, if there is a reference time stamp gts between the start time stamp sts and the end time stamp ets of the area processing data included in the target group, the area processing data is distributed to the preceding and succeeding aggregated groups. Here, when the distance md is equal to or greater than the behavior setting value, it is also conceivable to discard the portion of the area processing data that exceeds the reference time stamp gts. However, by distributing the portion to the next aggregated group, the continuity of the area processing data is ensured, and it is possible to suppress data loss such that gaps are generated between adjacent areas, for example.

[0077] (3-4) Generation process of stay area data list Next, the stay area data list generation process will be described with reference to FIG. 18. FIG. 18 shows the overall flow of the stay area data list generation process. The stay area data list generation process is a process of generating stay area data indicating the stay area of the user for each aggregated group generated by the grouping process.

[0078] Referring to FIG. 18, the server 5 sequentially extracts a group to be processed (target group) from the plurality of generated aggregation groups CG[j] (j = 0, 1, 2,...) (step S140).

[0079] When the server 5 extracts the target group, it executes the following processing (step S142). (i) The minimum value sts_min of the start time stamp of the target group is set to the start time stamp sts_j of the stay area data Ind[j]. (ii) The maximum value ets_max of the end time stamp of the target group is set to the end time stamp ets_j of the stay area data Ind[j]. (iii) The stay time drs_j of the stay area data Ind[j] is set to the value obtained by subtracting the start stamp sts_j of the stay area data Ind[j] from the end stamp ets_j of the stay area data Ind[j] (ets_j - sts_j). (iv) The center of gravity of the target group is set to the center of gravity of the stay area data Ind[j].

[0080] Next, the server 5 sequentially extracts the area processing data to be processed (referred to as "target data") from one or more area processing data included in the target group (step S144), and calculates the distance Dg between the virtual point corresponding to the virtual point ID included in the target data and the center of gravity of the target group (step S146). Of the distances Dg calculated for one or more area processing data included in the target group, the server 5 sets the maximum value as the maximum value of the area radius of the stay area data Ind[j], and sets the median value as the median value of the area radius of the stay area data Ind[j] (step S150). Note that the present invention is not limited to obtaining the median value of the area radius, and the average value of the area radius may be obtained. That is, the average value of the distances Dg calculated for one or more area processing data included in the target group can be obtained, and the average value can be set as the average value of the area radius of the stay area data Ind[j].

[0081] As described above, in the stay area data list generation process, a stay area data list including a plurality of stay area data Ind[j] (j = 0, 1, 2,...) corresponding to a plurality of aggregation groups CG[j] (j = 0, 1, 2,...) is generated. Each stay area data includes a start time stamp, an end time stamp, a stay time, a center of gravity, a maximum value of the area radius, and a median value of the area radius. That is, in the stay area data list generation process, based on one or more virtual points included in each aggregation group and the stay time associated with the one or more virtual points, the area corresponding to each stay area data and the stay time of the user in the area are obtained. Since the area is specified based on the virtual point, it is possible to avoid the influence of the error in the detection position of the wireless tag 2 on the specified area, and it is possible to reduce the amount of data for specifying the area. The stay area data includes information such as the entry time, exit time, stay time, and movement range of the user with respect to the area, and thus is useful for analyzing the behavior of the user. That is, by capturing the movement of the user as a variable stay area, for example, the behavior (definition) of the user, such as what the user was doing there, can be analyzed from the stay area and the stay time. For example, based on the stay area data for a plurality of users including visitors and store staff and the position information of the shelves in the store, the behavior of the visitors and store staff on the store floor can be grasped. Examples of such behavior include the behavior when a visitor is selecting a product from the shelves in the store, the behavior when a store staff is serving a visitor, and the behavior when a visitor is viewing digital signage in the store.

[0082] Also, by comparing the staying area of a certain customer with that of other customers, for example, the social distance between customers can be grasped. Also, based on the staying area of a mobile terminal that is used by store staff for business operations and functions as a wireless tag, the work done by the store staff inside the store can be grasped. For example, by grasping the picking location and working time (i.e., the staying time at the picking location) of the store staff from the contact point between the staying area of the store staff themselves and the staying area of the picking cart moved by the store staff with a wireless tag attached, optimization of in-store operations can be achieved. For example, based on the difference between the picking location and working time of the store staff in the current work and the picking location and working time in the past work, it is conceivable to issue an instruction to shorten the work at the picking location where the working time has extended more than in the past. Also, for example, in the store's backyard, office, etc., the usage time of a chair can be grasped from the contact point between the staying area of equipment such as a chair with a wireless tag attached and the staying area of a user who uses the chair and a mobile terminal that functions as a wireless tag. Therefore, by estimating the replacement time of the chair in light of its service life, cost reduction can be expected, such as replacing the most frequently used chairs first.

[0083] (3-5) Drawing process As shown in FIG. 6, when the staying area data list generation process is completed, the drawing process is then performed. The drawing process is a process of generating a user staying area image illustrated in FIG. 4 based on the store map and the staying area data list. In the drawing process, the server 5 draws on the store map a line with an arrow that sequentially connects the centers of gravity in the order of the start time stamp and end time stamp included in each staying area data of the staying area data list. The server 5 also draws on the store map the maximum circle and the central circle, which are concentric circles, as areas based on the center of gravity, the maximum value of the area radius, and the median value of the area radius. By drawing a line with an arrow that sequentially connects the centers of gravity, information regarding the entry direction and exit direction to each area can be displayed.

[0084] The server 5 may draw circles (maximum circle, central circle) corresponding to the stay area data in different modes according to the stay time (that is, the length of the stay time during which the user may have stayed). For example, according to a predetermined threshold value, in the order of longer stay time, the inside of the circle may be drawn in different colors (such as in the order of red, green, blue), or different patterns, or the thickness of the contour of the circle may be made different according to the stay time. By doing so, it becomes even easier to check the user's behavior. For example, when the user is chatting for a long time (the circle is small and the stay time is long) and when the user stops for a short time (the circle is small and the stay time is short), they can be more effectively differentiated and displayed. Note that drawing in different modes according to the stay time also includes text-displaying the value of the stay time in association with the circle. Also, it is not essential to draw both the maximum circle and the central circle as the user stay area image, and it may be sufficient to draw either one of the circles.

[0085] Note that the user stay area image finally obtained will be different depending on the "behavior setting value" in step S106 of FIG. 16 described above. In the user stay area image when the behavior setting value is large, the data volume of the stay area data list becomes small, and there is an advantage that it is easy to absorb fluctuations in radio waves when the radio wave condition is poor when acquiring detection data. Also, when performing user behavior analysis processing on two or more users (that is, two or more tag IDs), there is an advantage that it is easy to recognize the contact points of the two or more users. On the other hand, it becomes relatively difficult to check the fine movements of the user. In the user stay area image when the behavior setting value is small, there is an advantage that it is easy to capture changes in the fine movements of the user. On the other hand, the data volume of the stay area data list becomes relatively large, and it becomes difficult to recognize the contact points of two or more users. Therefore, it is preferable to set the behavior setting value in step S106 to an optimal value according to the application of the behavior analysis system.

[0086] (4) Application examples Next, two examples of the user stay area image of an embodiment will be described with reference to FIGS. 19 to 26. In the following, two examples will be described, and the time stamp is represented by the time in hours, minutes, and seconds for ease of understanding.

[0087] (4-1) User behavior analysis process for the behavior of the user in the first example FIGS. 19 to 22 are diagrams for explaining the user behavior analysis process for the behavior of the user in the first example. FIG. 19 is a diagram showing the behavior of the user in the first example. In FIG. 19, as the detection position of the wireless tag indicating the position of the user moves, circles set centered on the detection position are shown. As the user moves, the circles move from C1→C2→C3→C4→C5→C6→C7. FIG. 19 also shows the time stamps at the detection positions corresponding to the respective circles. In FIG. 19, while showing the movement pattern of the circles, the virtual point IDs ("01" to "58") of the virtual points provided at equal intervals on the floor are shown.

[0088] Based on the user movement history data shown in FIG. 19, the area processing data list generated by the area processing data list generation process is shown in FIG. 20. Here, the area processing data list has the area processing data arranged in ascending order of the start time stamp sts (stay start time). Each area processing data includes the values of the start time stamp sts, the end time stamp ets, and the stay time drs for the virtual point ID (VpID). In the example of FIG. 20, a plurality of area processing data included in the area processing data list are grouped into six groups G[0] to G[5] with the same start time stamp by the grouping process (step S70 in FIG. 15).

[0089] Next, referring to FIG. 21, six groups G[0] to G[5] are further aggregated into three aggregated groups CG[0] to CG[2]. The [merge] attached to the area processing data of each aggregated group shown in FIG. 21 indicates that the first aggregation has been performed, and [merge2] indicates that the second aggregation has been performed. In the example of FIG. 21, the aggregated groups CG[0] to CG[2] are generated by the aggregated group generation process (step S80 in FIG. 15, FIG. 16).

[0090] · Group G[0] According to step S72 in FIG. 15, the reference timestamp gts is "00:00:03". In the aggregated group generation process, at step S88 in FIG. 16, the minimum value sts_min ("00:00:01") of the start timestamp of the target group jdg (group G[0]) is determined to be less than or equal to the reference timestamp gts (the same as or earlier than the reference time) (YES). Next, at step S90, the maximum value ets_max ("00:00:03") of the end timestamp of the target group jdg (group G[0]) is determined to be less than or equal to the reference timestamp gts (the same as or earlier than the reference time) (YES). Next, due to the determination at step S94 that the aggregated group CG[j] does not exist (NO), at step S96, the aggregated group CG[0] = the target group jdg (G[0]).

[0091] · Group G[1] In the aggregated group generation process, at step S88 in FIG. 16, the minimum value sts_min ("00:00:02") of the start timestamp of the target group jdg (group G[1]) is determined to be less than or equal to the reference timestamp gts "00:00:03" (the same as or earlier than the reference time) (YES). Next, at step S90, the maximum value ets_max ("00:00:03") of the end timestamp of the target group jdg (group G[0]) is determined to be less than or equal to the reference timestamp gts (YES). Next, when it is determined in step S94 that the aggregation group CG[0] exists (YES), the target group jdg (group G[1]) is aggregated into the aggregation group CG[0] by step S98 ([merge]).

[0092] · Group G[2] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:00:03") of the start time stamp of the target group jdg (group G[2]) is determined to be less than or equal to the reference time stamp gts "00:00:03" (the same as or earlier than the reference time) (YES). Next, in step S90, the maximum value ets_max ("00:00:03") of the end time stamp of the target group jdg (group G[2]) is determined to be less than or equal to the reference time stamp gts (YES). Next, when it is determined in step S94 that the aggregation group CG[0] exists (YES), the target group (group G[2]) is aggregated into the aggregation group CG[0] by step S98 ([merge2]).

[0093] · Group G[3] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:00:04") of the start time stamp of the target group jdg (group G[3]) is determined not to be less than or equal to the reference time stamp gts "00:00:03" (within the reference time) (NO). Next, the variable j is incremented by 1 in step S92. Next, since the aggregation group CG[1] does not exist in step S94 (NO), the aggregation group CG[1] = the target group jdg (group G[3]) by step S96. Here, the reference time stamp gts is updated to "00:00:05" (the maximum value of the end stamp ets among the area processing data included in the aggregation group CG[1]) (step S100 of FIG. 16).

[0094] · Group G[4] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:00:05") of the start time stamp of the target group jdg (group G[4]) is determined to be less than or equal to the reference time stamp gts "00:00:05" (the same as or earlier than the reference time) (YES). In step S90, the maximum value ets_max ("00:00:05") of the end time stamp of the target group jdg (group G[4]) is determined to be less than or equal to the reference time stamp gts (YES). Next, due to the determination in step S94 that the aggregation group CG[1] exists (YES), in step S98, the target group (group G[4]) is aggregated into the aggregation group CG[1] ([merge]).

[0095] · Group G[5] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:01:00") of the start time stamp of the target group jdg (group G[5]) is determined not to be less than or equal to the reference time stamp gts "00:00:05" (the same as or earlier than the reference time) (NO). Next, in step S92, the variable j is incremented by 1. Next, since the aggregation group CG[2] does not exist in step S94 (NO), in step S96, the aggregation group CG[2] = the target group jdg (group G[5]). Here, the reference time stamp gts is updated to "00:01:09" (step S100 of FIG. 16).

[0096] Next, in the stay area data list generation process, in steps S142 and S150 of FIG. 18, the stay area data Ind[0] to [2] corresponding to the aggregation groups CG[0] to CG[2] are generated respectively (see FIG. 21). In FIG. 21, the specific values of the centroid, the maximum area radius, and the median area radius are omitted.

[0097] Figure 22 shows the rendering results generated based on the stay area data Ind[0] to [2]. Note that in Figure 22, only the circle (maximum circle) corresponding to the maximum value of the area radius is shown. The circles corresponding to the stay area data Ind[0] to [2] shown in Figure 22 visually represent the range where the user might have stayed, which is different from the numerical data shown in the tag detection data list as exemplified in Figure 2. Also, the circles corresponding to the stay area data Ind[0] to [2] shown in Figure 22 represent the areas corresponding to the aggregation groups, so there are fewer circles than the numbers of circles C1 to C7 in Figure 19, making it easier to grasp the user's multiple stay areas and enabling the analysis of the user's behavior based on the stay area and stay time. Further, in Figure 22, the movement between the multiple circles indicating the stay areas is shown by lines with arrows, making it easy to grasp the movement pattern of the user.

[0098] (4-2) User Behavior Analysis Processing for the Behavior of the User in the Second Example Figures 23 to 26 are diagrams for explaining the user behavior analysis processing for the behavior of the user in the second example. Figure 23 is a diagram showing the behavior of the user in the second example. In Figure 23, as the detection position of the wireless tag indicating the user's position moves, circles set centered on the detection position are shown. As the user moves, the circles move as C1 → C2 → C3 → C4 → C5 → C6 → C7 → C8 → C9. Figure 23 shows the time stamps at the detection positions corresponding to each circle. In Figure 23, an example is shown where circle C5 and circle C6 are separated by more than the action setting value (for example, 3 meters). In Figure 23, while showing the movement pattern of the circles, the virtual point IDs ("01" to "58") of the virtual points provided at equal intervals on the floor are shown.

[0099] Based on the user's movement history data shown in FIG. 23, the area processing data list generated by the area processing data list generation process is shown in FIG. 24. The area processing data list has the area processing data arranged in ascending order of the start time stamp sts. Each area processing data includes values of the start time stamp sts (stay start time), end time stamp ets (stay end time), and stay time drs for the virtual point ID (VpID). In the example of FIG. 24, a plurality of area processing data included in the area processing data list are grouped into seven groups G[0] to G[6] with the same start time stamp by the grouping process (step S70 in FIG. 15).

[0100] Next, referring to FIG. 25, the seven groups G[0] to G[6] are further aggregated into four aggregated groups CG[0] to CG[3]. The [chunk.merge] attached to the area processing data of each aggregated group shown in FIG. 25 indicates that distribution processing has been performed on one area processing data. In the example of FIG. 25, the aggregated groups CG[0] to CG[3] are generated by the aggregated group generation process (step S80 in FIG. 15, FIG. 16).

[0101] · Group G[0] By step S72 in FIG. 15, the reference time stamp gts is "00:10:01". In the aggregated group generation process, at step S88 in FIG. 16, the minimum value sts_min ("00:10:00") of the start time stamp of the target group jdg (group G[0]) is determined to be less than or equal to the reference time stamp gts "00:10:01" (the same as or earlier than the reference time) (YES). Next, at step S90, the maximum value ets_max ("00:10:01") of the end time stamp of the target group jdg (group G[0]) is determined to be less than or equal to the reference time stamp gts (YES). Next, in step S94, when it is determined that there is no aggregation group CG[j] (NO), in step S96, the aggregation group CG[0] = the target group jdg(G[0]).

[0102] · Group G[1] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:10:01") of the start time stamp of the target group jdg(group G[1]) is determined to be less than or equal to the reference time stamp gts "00:10:01" (within the reference time) (YES). Next, in step S90, it is determined that the maximum value ets_max ("00:10:03") of the end time stamp of the target group jdg(group G[1]) is not less than the reference time stamp gts (NO). Next, in step S106, when it is determined that the distance md between the centroid of the target group jdg(group G[1]) and the centroid of the aggregation group CG[0] is less than the action setting value (NO), in step S98, the target group jdg(group G[1]) is aggregated into the aggregation group CG[0] ([merge]). Here, the distance between the centroid (VpID: 18) of group G[1] and the centroid (VpID: 09) of the aggregation group CG[0] is smaller than the action setting value (for example, 3 meters), so the determination in S106 is NO. The reference time stamp gts is updated to "00:10:03" (step S100 in FIG. 16).

[0103] · Group G[2] In the aggregation group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:11:00") of the start time stamp of the target group jdg(group G[2]) is determined not to be less than or equal to the reference time stamp gts "00:10:03" (within the reference time) (NO). Next, the variable j is incremented by 1 in step S92 → Since there is no aggregation group CG[1] in S94 (NO), the aggregation group CG[1] becomes the target group jdg (group G[2]) in step S96. Here, the reference timestamp gts is updated to "00:11:00" (step S100 in Fig. 16).

[0104] · Group G[3] In the aggregation group generation process, in step S88 of Fig. 16, the minimum start timestamp sts_min ("00:11:01") of the target group jdg (group G[3]) is determined not to be less than the reference timestamp gts (NO). Next, the variable j is incremented by 1 in step S92 → Since it is determined in S94 that there is no aggregation group CG[2] (NO), the aggregation group CG[2] becomes the target group jdg (group G[3]) in step S96. Here, the reference timestamp gts is updated to "00:11:06" (step S100 in Fig. 16).

[0105] · Group G[4] In the aggregation group generation process, in step S88 of Fig. 16, the minimum start timestamp sts_min ("00:11:05") of the target group jdg (group G[4]) is determined to be less than or equal to the reference timestamp gts "00:11:06" (the same as or earlier than the reference time) (YES). Next, in step S90, the maximum end timestamp ets_max ("00:11:08") of the target group jdg (group G[4]) is determined not to be less than or equal to the reference timestamp gts "00:11:06" (the same as or earlier than the reference time) (NO). Next, the centroid G_jdg of the target group jdg (group G[4]) is calculated in step S102, and the distance md from the centroid gbc of the aggregation group CG[2] to the centroid G_jdg of the target group jdg (group G[4]) is calculated in step S104. Next, it is determined (YES) in step S106 that the distance md is greater than or equal to the action setting value. Next, data distribution processing is performed in step S108. In step S106, since the distance between the center of gravity G_jdg (the intermediate position of VpID: 50 and 51) of the target group jdg (group G[4]) and the center of gravity gbc (the center of gravity position of VpID: 56 and 57) of the aggregated group CG[2] exceeds the action setting value (for example, 3 meters), the determination in step S106 is YES. The data distribution processing in step S108 is performed for each area processing data included in the target group jgd (group G[4]). In the data distribution processing, for the first area processing data (VpID: 51) included in the target group jdg (group G[4]), since the start time stamp sts "00:11:05" is less than or equal to the reference time stamp gts "00:11:06" (the same as or earlier than the reference time), and the end time stamp ets "00:11:05" is less than or equal to the reference time stamp gts, it is aggregated into the aggregated group CG[2] ([merge]) (see TD2 in Fig. 17). In the data distribution processing, for the second area processing data (VpID: 50) included in the target group (group G[4]), the start time stamp sts "00:11:05" is less than or equal to the reference time stamp gts, but the end time stamp ets "00:11:08" is not less than or equal to the reference time stamp gts. Therefore, a part of the stay time that is less than or equal to the reference time stamp gts (the part from the start time stamp sts "00:11:05" to the end time stamp ets "00:11:06") in the second area processing data (VpID: 50) is aggregated into the aggregated group CG[2] ([chunk.merge]). Also, a part of the stay time that is greater than or equal to the reference time stamp gts (after the reference time) (the part from the start time stamp sts "00:11:06" to the end time stamp ets "00:11:08") in the second area processing data (VpID: 50) is set as the aggregated group CG[3] ([chunk.merge]) (see TD1 in Fig. 17).

[0106] · Group G[5] In the aggregated group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:11:08") of the start time stamp of the target group jdg (group G[5]) is not determined to be less than or equal to the reference time stamp gts "00:11:06" (within the reference time) (NO). Next, the variable j is incremented by 1 in step S92 → Since there is an aggregated group CG[3] in step S94 (YES), G[5] is aggregated into CG[3] by step S98 ([merge]). Here, the reference time stamp gts is updated to "00:11:09" (step S100 of FIG. 16).

[0107] · Group G[6] In the aggregated group generation process, in step S88 of FIG. 16, the minimum value sts_min ("00:11:09") of the start time stamp of the target group jdg (group G[6]) is determined to be less than or equal to the reference time stamp gts (YES). Next, in step S90, the maximum value ets_max ("00:00:09") of the end time stamp of the target group jdg (group G[6]) is determined to be less than or equal to the reference time stamp gts (within the reference time) (YES). Next, since it is determined that there is an aggregated group CG[3] in step S94, the target group (group G[6]) is aggregated into the aggregated group CG[3] by step S98 ([merge2]).

[0108] Next, in the stay area data list generation process, stay area data Ind[0] to [3] corresponding to the aggregated groups CG[0] to CG[3] are generated by steps S142 and S150 of FIG. 18 (see FIG. 25). Note that in FIG. 25, the specific values of the centroid, the maximum value of the area radius, and the median value of the area radius are omitted.

[0109] Fig. 26 shows the drawing result generated based on the stay area data Ind[0] to [3]. Note that in Fig. 26, only the circle (the maximum circle) corresponding to the maximum value of the area radius is shown. Different from the numerical data indicated by the tag detection data list as exemplified in Fig. 2, the circles corresponding to the stay area data Ind[0] to [3] shown in Fig. 26 enable the visual recognition of the range where the user may have stayed. Also, in the circles corresponding to the stay area data Ind[0] to [3] shown in Fig. 26, since they represent the areas corresponding to the aggregation groups, the number is less than that of the circles C1 to C9 in Fig. 23, enabling easy grasp of the user's multiple stay areas and making it possible to analyze the user's behavior based on the stay area and the stay time. Further, in Fig. 26, the movement between the multiple circles indicating the stay areas is shown by lines with arrows, enabling easy grasp of the user's movement pattern.

[0110] As described above, according to the behavior analysis system of the embodiment, the server 5 acquires a tag detection data list in which the position information indicating the position of the wireless tag 2 moving with the user is associated with the time information, and acquires one or more areas (one or more stay areas) where the user may have stayed based on the acquired tag detection data list. The server 5 can further cause the acquired one or more areas to be displayed on the store terminal 4 (an example of a display device). In this way, the stay area of the user can be visualized more clearly and understandably.

[0111] According to the behavior analysis system of an embodiment, the server 5 generates area processing data associating the stay time with virtual points based on the tag detection data list and the virtual points preset in the floor. The server 5 further groups the virtual points based on the generated area processing data and associates one or more areas. That is, since the area is determined based on the virtual points, information on the movement (stay area) of the user corresponding to the stay time can be obtained while compressing the data volume (see, for example, FIG. 3). That is, the final output data volume (for example, the data volume of the stay area data list) can be compressed to such an extent that the behavior of the user can be easily analyzed with respect to the tag detection data list that is the basis of the flow line. For example, in the example shown in FIG. 4, the data can be compressed to about 2 to 3% compared with the flow line data in FIG. 3.

[0112] The information on the stay area and the stay time corresponding to the stay area data is easy to analyze the behavior of the user. For example, when the stay area is small and the stay time is long, it can be determined that, for example, "the user is standing still", "the user is standing and talking", etc. When the stay area is large and the stay time is long, it can be determined that, for example, "the user is looking for something", "the user is lost", etc. Thus, based on the information on the stay area and the stay time, the behavior of the user can be analyzed (for example, defined). In one embodiment, the control unit 51 of the server 5 may function as an analysis unit that analyzes the behavior of the user based on the stay area acquired by the second acquisition unit 512 and the length of the stay time of the user in the stay area (that is, the stay time during which the user may have stayed). For example, as described above, the analysis unit can analyze the behavior of the user based on conditions such as when the area is small and the stay time is long or when the area is large and the stay time is long. The analysis unit can also analyze the behavior of the user from the entry angle with respect to the area. For example, the analysis unit may identify the behavior of the user based on information about the area and / or stay time corresponding to the stay area data by referring to a database in which the size of the stay area, the stay time in the area, and the behavior of the user are associated in advance. The analysis unit can also identify the behavior of the user by using machine learning. In machine learning, a learning model is generated by previously learning the size of the stay area, the stay time in the area, and the behavior of the user. Then, the analysis unit inputs information about the stay area and / or stay time corresponding to the stay area data obtained by the stay area data list generation process into the learning model to identify the behavior of the user.

[0113] For example, in the case of a store, when the floor is divided into a plurality of zones (for example, sales floor zones), since each stay area data included in the stay area data list includes the value of the centroid, it is also possible to recognize in which zone the user stayed based on the value of the centroid. Also, based on the information about the area radius included in the stay area data, the behavior of the user can be associated with one or more zones.

[0114] In the above user behavior analysis process, the process for the tag ID of a specific wireless tag 2 has been described. However, by performing the same process for the tag IDs of a plurality of wireless tags 2, the distances of a plurality of users on the floor can be visualized. For example, by generating respective user stay area images from the tag detection data list of the wireless tags moving together with two users such as a store customer and an employee, it is possible to analyze and evaluate the employee's customer service in terms of the sense of distance between the two.

[0115] In one embodiment, the analysis unit identifies the relationship between two or more users based on the relationship of a plurality of staying areas acquired for two or more users (such as the degree of overlap of the staying areas and the distance between the central positions of the areas). For example, when the area of the overlapping part between the areas of two or more users is equal to or greater than a predetermined ratio of the area of each area, and / or the distance between the centroids of the areas of two or more users is equal to or less than a predetermined value, it can be determined that the two or more users have had some kind of communication. Further, the depth of communication (such as when only a greeting is made or when a long conversation is had) can be measured according to the staying time when the areas of two or more users overlap. As described above, when two or more users are a store customer and a store staff member, it is also possible to grasp the degree of customer service of the store staff.

[0116] In one embodiment, the analysis unit may identify the relationship between two or more users by referring to a database that defines the degree of overlap of areas at a common staying time for two or more users, and / or the distance between the central positions of the areas, and the relationship between the two or more users. The analysis unit can also identify the relationship between two or more users by using machine learning. In machine learning, the degree of overlap of areas acquired for two or more users, and / or the distance between the central positions of the areas, and the relationship between the two or more users are learned in advance to generate a learning model. Then, the analysis unit inputs the staying area data for the two or more users obtained by the staying area data list generation process into the learning model to identify the relationship between the two or more users. By analyzing the staying area data list acquired for two or more users, the relationship between the two or more users can be grasped.

[0117] In one embodiment, the analysis unit determines the relationship between the user and the facility based on whether the facility placed on the floor is located within the acquired staying area of the user and / or the distance between the position of the facility and the center of gravity (an example of the central position) of the staying area. The analysis unit may also determine the relationship between the user and the facility in consideration of the staying time of the user. In the example of a store, the facilities are product shelves, digital signage, cash registers, and the like. For example, if there is a product shelf within the area where the user stays in the store or the distance between the center of gravity of the area and the product shelf is equal to or less than a predetermined value, it can be determined that the user is selecting a product on the product shelf. In that case, it can also be determined that the user is selecting a product on the product shelf only when the staying time is equal to or longer than a predetermined time. Also, if there is digital signage within the area where the user stays in the store or the distance between the center of gravity of the area and the digital signage is equal to or less than a predetermined value, it can be determined that the user is viewing the digital signage. In that case, it can also be determined that the user is viewing the digital signage only when the staying time is equal to or longer than a predetermined time. The analysis unit may determine the relationship between the user and the facility by referring to a database that defines whether the facility is located within the area acquired for the user and / or the distance between the position of the facility and the center of gravity of the area and the relationship between the user and the facility. The analysis unit may also determine the relationship between the user and the facility in consideration of the staying time of the user. By analyzing the acquired staying area data list for the user in association with the facilities placed on the floor, the actions of the user in the store can be more specifically defined in association with the facilities in the store.

[0118] Although the case where the staying area data includes the area radius (maximum value, median value) and the user staying area image includes a circle based on the area radius has been described, it is not limited thereto. Since it is only necessary to be able to visualize the staying area of the user, it does not necessarily have to be a circle, and for example, it may be displayed as a polygon surrounding virtual points. However, there is an advantage that it is easy to visually recognize by performing circular display.

[0119] As described with reference to FIG. 11, the case where a plurality of virtual points are set at regular intervals within the floor has been explained, but this is not the only case. For areas on the floor where the behavior of users is to be analyzed more carefully, virtual points may be set finely, and for areas where less careful analysis is required, virtual points may be set coarsely. However, setting a plurality of virtual points at regular intervals within the floor has the advantage of enabling uniform analysis of the behavior of users throughout the floor.

[0120] As described above, embodiments of the information processing apparatus, the information processing method, and the program have been explained, but the present invention is not limited to the above embodiments. Also, various improvements and modifications can be made to the above embodiments without departing from the gist of the present invention. For example, in one embodiment, at least a part of the functions performed by the server 5 may be realized by the software of the store terminal 4, or at least a part of the functions performed by the store terminal 4 may be realized by the software of the server 5. Also, each of the functions of the store terminal 4 and the functions of the server 5 may be realized by being distributed between the store terminal 4 and the server 5 as necessary. The functions executed by the server 5 may be distributed and executed by a plurality of devices.

[0121] For example, in the above-described embodiment, the case where data transfer between the store terminal 4 and the server 5 is performed via the network NW has been explained, but this is not the only case. Data transfer between the store terminal 4 and the server 5 can also be performed via a storage medium such as a USB (Universal Serial Bus) memory, an SD (Secure Digital) memory card, an HDD device, or an SSD (Solid State Drive).

Explanation of Reference Numerals

[0122] 1... Behavior analysis system 2... Wireless tag 21... Control unit 22... Communication unit 3... Receiver 31... Radio wave receiving unit 32... Incident angle measurement unit 33…Communication unit 4…Store terminal 41…Control unit 42…Display unit 43…Communication unit 5…Server 51…Control unit 511…First acquisition unit 512…Second acquisition unit 513…Display control unit 52…Storage 53…Communication unit NW…Network CT…Cart

Claims

1. A first acquisition unit that acquires movement history data in which position information indicating the position of a communication device that moves together with a person to be moved within a predetermined movable area is associated with time information; A second acquisition unit that acquires one or more areas by generating one or more areas where the person to be moved may have stayed; A display control unit that causes a display device to display the one or more areas acquired by the second acquisition unit, and has: The second acquisition unit generates area processing data in which a stay start time and a stay end time when the person to be moved may have stayed are associated with each point based on the movement history data acquired by the first acquisition unit and points preset in the movable area, and based on the stay start time and the stay end time of the generated area processing data, groups the one or more points for each stay time when the person to be moved may have stayed to generate each of the one or more areas. An information processing apparatus.

2. The second acquisition unit: Groups the area processing data generated for each point in time order based on the stay start time, and uses the earliest stay start time and the latest stay end time among the one or more grouped area processing data to group the one or more grouped area processing data to acquire as an area. The information processing apparatus according to claim 1.

3. Among the points preset in the movable area, identify the points included in a predetermined range centered on the position indicated by the position information included in the movement history data, and associate the stay start time and the stay end time for each identified point with the stay start time and the stay end time when the person to be moved may have stayed in any of the one or more areas. The information processing apparatus according to claim 1 or 2.

4. An analysis unit that analyzes the behavior of the person to be moved based on the area acquired by the second acquisition unit and the length of the stay time when the person to be moved may have stayed in the area is provided. The information processing apparatus according to any one of claims 1 to 3.

5. The analysis unit identifies the relationship between two or more persons to be moved based on the degree of overlap of the areas acquired for the two or more persons to be moved and / or the distance between the center positions of the areas. The information processing apparatus described in claim 4.

6. The analysis unit specifies the relationship between the subject person and the facility based on whether the facility arranged in the movable area is located within the area acquired for the subject person, and / or based on the distance between the position of the facility and the center position of the area. The information processing apparatus according to claim 4 or 5.

7. The second acquisition unit When generating two pieces of area processing data including the same point, the two pieces of area processing data are generated such that the stay start time of one piece of area processing data is a time after a predetermined time has elapsed based on the stay end time of the other piece of area processing data. The information processing apparatus according to any one of claims 1 to 6.

8. The area acquired by the second acquisition unit is circular, and the size of the circle is determined based on the positions of the points included in the area. The information processing apparatus according to any one of claims 1 to 7.

9. The points are set at regular intervals within the movable area. The information processing apparatus according to any one of claims 1 to 8.

10. The display control unit causes the display device to display the area acquired by the second acquisition unit in different modes according to the length of the stay time. The information processing apparatus according to any one of claims 1 to 9.

11. An information processing method executed by an information processing apparatus, acquiring movement history data in which position information indicating the position of a communication device moving together with a subject person moving within a predetermined movable area is associated with time information; acquiring the one or more areas by generating one or more areas where the subject person may have stayed; displaying the acquired one or more areas on a display device, and in the step of acquiring the one or more areas, based on the acquired movement history data and points preset in the movable area, area processing data associating a possible stay start time and a possible stay end time for which the subject person may have stayed for each point is generated, and based on the stay start time and the stay end time of the generated area processing data, the one or more points are grouped for each possible stay time of the subject person to generate each of the one or more areas. Information processing method.

12. A program for causing a computer to execute a predetermined method, wherein the method comprises: acquiring movement history data associating position information indicating the position of a communication device moving together with a person to be moved within a predetermined movable area and time information; a second step of obtaining the one or more areas by generating one or more areas where the person to be moved may have stayed; causing the display device to display the one or more obtained areas; and in the step of obtaining the one or more areas, based on the acquired movement history data and points preset in the movable area, area processing data associating a possible stay start time and a possible stay end time for the person to be moved for each point is generated, and based on the stay start time and the stay end time of the generated area processing data, the one or more points are grouped for each possible stay time of the person to be moved to generate each of the one or more areas. Program.

Citation Information

Patent Citations

  • System for processing flow line information

    JP2005071252A

  • Flow line recognition system

    JP2010140515A

  • Action and attribute estimation device, method, and program

    JP2012164227A

  • Location information collection device, sensing type content display device, location information management server and method of the same

    JP2017033442A

  • Information processing device, information processing system, and program

    JP2021086578A