The disclosed techniques relate to a simulation apparatus, a learning apparatus, a simulation method, and a simulation program.
There have been attempts to predict a flow of human in the future (after a time point T) and reproduce a flow of human in the past, based on data obtained by measuring the number of people passing through a plurality of monitoring points and the number of people within a monitoring area.
For example, techniques using LONG SHORT-TERM MEMORY (LSTM), Markov chain (NPL 1 and 2), and the like have been proposed for predicting a flow of human.
Furthermore, there is a technique of setting a walk model for a movement (walking) of people, and simulating the movement of people assuming that the people moves along the walk model. For example, a walk model has been proposed using, as parameters, acceleration force toward ideal speed, repulsion from environments such as walls, and attraction force from others, objects, and the like (NPL 3).
Furthermore, a technique has been proposed for simulating movement of a target object (such as human), with the target object moving to an adjacent cell or staying where he or she is under a predetermined rule within each area segmented by cells (NPL 4).
Some related-art techniques take interaction between pedestrians into consideration, but are incapable of reproducing an unusual movement of human, such as that in a case where the flow of human is controlled under a crowded condition, for example.
The disclosed technique has been made in view of the above, and an object of the present invention is to appropriately simulate movement of a moving body even when the movement of the moving body is unusual.
A first aspect of the present disclosure relates to a simulation apparatus including: a vector field setting unit configured to set a vector field for providing virtual force for reproducing, in a region in which a moving body moves, movement of the moving body in a certain direction; and a simulation unit configured to simulate the movement of the moving body in the region, based on a movement model to which a parameter for simulating the movement of the moving body is set and the vector field set by the vector field setting unit.
A second aspect of the present disclosure relates to a learning apparatus including a learning unit configured to learn, based on monitoring data at a plurality of past time points at which movement of a moving body has been monitored, a vector field used for reproducing movement of the moving body in a region in which the moving body moves, together with a movement model to which a parameter for simulating the movement of the moving body is set, the vector field providing virtual force for simulating movement of the moving body in a certain direction.
A third aspect of the present disclosure relates to a simulation method executed by a simulation apparatus including a vector field setting unit and a simulation unit, the method including: setting, at the vector field setting unit, a vector field for providing virtual force for reproducing, in a region in which a moving body moves, movement of the moving body in a certain direction; and simulating, at the simulation unit, the movement of the moving body in the region, based on a movement model to which a parameter for simulating the movement of the moving body is set and the vector field set by the vector field setting unit.
A fourth aspect of the present disclosure relates to a simulation program causing a computer to function as: a vector field setting unit configured to set a vector field for providing virtual force for reproducing, in a region in which a moving body moves, movement of the moving body in a certain direction; and a simulation unit configured to simulate the movement of the moving body in the region, based on a movement model to which a parameter for simulating the movement of the moving body is set and the vector field set by the vector field setting unit.
According to the disclosed technology, movement of the moving body can be appropriately simulated even when the movement of the moving body is unusual.
Hereinafter, one example of the embodiments of the disclosed technique will be described with reference to the drawings. In the drawings, the same reference numerals are given to the same or equivalent constituent elements and parts. The dimensional ratios in the drawings are exaggerated for convenience of explanation and may differ from the actual ratios.
As illustrated in
The CPU 11 is a central processing unit that executes various programs and controls each unit. In other words, the CPU 11 reads a program from the ROM 12 or the storage 14 and executes the program using the RAM 13 as a work area. The CPU 11 performs control of each of the components described above and various arithmetic processing operations in accordance with a program stored in the ROM 12 or the storage 14. In the present embodiment, a simulation program for executing a learning process and a simulation process described below is stored in the ROM 12 or the storage 14.
The ROM 12 stores various programs and various kinds of data. The RAM 13 is a work area that temporarily stores a program or data. The storage 14 is constituted by a storage device such as a hard disk drive (HDD) or a solid state drive (SSD) and stores various programs including an operating system and various kinds of data.
The input unit 15 includes a pointing device such as a mouse and a keyboard and is used for performing various inputs.
The display unit 16 is, for example, a liquid crystal display and displays various kinds of information. The display unit 16 may employ a touch panel system and function as the input unit 15.
The communication I/F 17 is an interface for communicating with other devices and, for example, uses a standard such as Ethernet (trade name), FDDI, or Wi-Fi (trade name).
Next, functional components of the simulation apparatus 10 will be described.
As illustrated in
The learning unit 101 receives an input of monitoring data (hereinafter, referred to as “monitoring data (past)”) at a plurality of time points in the past at which movement of the moving body has been monitored. Note that, when a learning process is performed in real-time, the input of monitoring data at the current time point (hereinafter, referred to as “monitoring data (current)”) may also be received.
The monitoring data at each time point is, for example, data that can be used to simulate the movement of the moving body, such as the number of the moving bodies passing through a plurality of points and the number of moving bodies in an area, at the time point. The monitoring data is acquired based on, for example, sensor data detected by various sensors and images captured by a camera. The monitoring data may be manually monitored data obtained by using a number detector or the like.
Based on the received monitoring data (past), the learning unit 101 learns the vector field 152 providing virtual force to reproduce movement of the moving body in a certain direction in a region where the moving body moves.
For example, as illustrated in
The movement of people for getting on and off a train as illustrated in
In view of this, in the present embodiment, the vector field 152 is set separately from the movement model 153, and the movement of the moving body is simulated based on the movement model 153 and the vector field 152.
Specifically, as illustrated in
More specifically, a case is assumed in which the learning unit 101 receives the input of the monitoring data (past) at time points T1, T2, . . . , and TN. In this case, for example, the learning unit 101 sets the initial position and the number of moving bodies based on the monitoring data at a time point T1, and moves each moving body thus set in accordance with the parameter of the movement model 153, to predict movement of the moving body at the time points T2, . . . , and TN. The learning unit 101 generates a vector field to approximate the movement direction of the moving body indicated by the prediction result to the movement direction of the moving body indicated by the monitoring data (past) at the time points T2, . . . , and TN.
Furthermore, the learning unit 101 learns the parameters of the movement model 153 so that the actual movement can be more appropriately reproduced with the movement model 153.
The movement model 153 is a model for simulating movement of the moving body. An existing model such as that described in NPLs 3 and 4 can be used as the movement model 153. For example, the parameters set to the movement model 153 for simulating the movement of the moving body include acceleration force toward ideal speed, repulsion from environments such as walls, and attraction force from others, objects, and the like.
Specifically, the learning unit 101 learns the parameters of the movement model 153, for at least one of the moving body, relationship between the moving body and another moving body, and relationship between the moving body and the surrounding environment (such as a wall) of the moving body, in association with at least one of the location where the moving body exists and the time point of the simulation.
Specifically, the learning unit 101 learns the acceleration for the ideal speed of the moving body, which is a parameter of the movement model 153, based on the actual movement of the moving body. Furthermore, the learning unit 101 learns the magnitude of attraction force or repulsion between the moving bodies and/or between the moving body and the surrounding environment of the moving body, which is a parameter of the movement model 153, based on the actual movement of the moving body.
For example, as illustrated in
The learning unit 101 passes the learned vector field 152 to the vector field setting unit 102. The learning unit 101 passes the learned parameter of the movement model 153 to the parameter setting unit 103.
The vector field setting unit 102 sets the vector field 152 received from the learning unit 101 to be usable together with the movement model 153 in the simulation unit 104 described below, and stores the resultant vector field 152 in a predetermined storage region. As a result, the vector field is set in association with at least one of the location in the region where the moving body moves and the time point of the simulation.
The parameter setting unit 103 sets the parameter received from the learning unit 101 to the movement model 153, and stores the resultant movement model 153 in a predetermined storage region. As a result, at least one of the acceleration for the ideal speed of the moving body, the attraction force or the repulsion between the moving bodies, and the attraction force or the repulsion between the moving body and the surrounding environment of the moving body is set to be the parameter of the movement model 153 in association with at least one of the location where the moving body exists and the time point of the simulation.
The simulation unit 104 simulates movement of the moving body in the region, based on the vector field 152 set by the vector field setting unit 102 and the movement model 153 the parameters of which have been set by the parameter setting unit 103.
Specifically, the simulation unit 104 receives the input of the monitoring data (current), and sets the initial position and number of moving bodies based on the received monitoring data (current). The simulation unit 104 moves each moving body thus set, in accordance with the parameter of the movement model 153 and the vector field 152 to perform simulation to predict movement of the moving body at a future time point or reproduce the movement of the moving body at a time point in the past. Thus, the moving direction and speed of the moving body are determined based on the interaction between the movement model 153 and the vector field 152, so that a simulation result appropriately reproducing the actual movement of the moving body can be obtained. The simulation unit 104 outputs the simulation result.
Next, an operation of the simulation apparatus 10 will be described.
In step S101, the CPU 11 serves as the learning unit 101 and receives monitoring data (past) input to the simulation apparatus 10.
Next, in step S102, the CPU 11 serves as the learning unit 101, and based on the received monitoring data (past), the learning unit 101 learns the vector field 152 providing virtual force to reproduce movement of the moving body in a certain direction in a region where the moving body moves. Then, the CPU 11 serves as the learning unit 101, and passes the learned vector field 152 to the vector field setting unit 102.
Next, in step S103, the CPU 11 serves as the vector field setting unit 102, and sets the vector field 152 received from the learning unit 101 to be usable together with the movement model 153 in the simulation unit 104, and stores the resultant vector field 152 in a predetermined storage region.
Next, in step S104, the CPU 11 serves as the learning unit 101, and learns the parameters of the movement model 153 so that the actual movement can be more appropriately reproduced with the movement model 153. The CPU 11 serves as the learning unit 101, and passes the learned parameter of the movement model 153 to the parameter setting unit 103.
Next, in step S105, the CPU 11 serves as the parameter setting unit 103, and sets the parameter received from the learning unit 101 to the movement model 153, and stores the resultant movement model 153 in a predetermined storage region. Then, the learning process ends.
In step S201, the CPU 11 serves as the simulation unit 104 and receives monitoring data (current) input to the simulation apparatus 10.
Next, in step S202, the CPU 11 serves as the simulation unit 104 and sets the initial position and number of the moving bodies based on the received monitoring data (current). Then, the CPU 11 serves as the simulation unit 104, and moves the moving body thus set, based on the parameter of the movement model 153 and the vector field 152. As a result, simulation predicting the movement of the moving body at a future time point, or reproducing movement of the moving body at a past time point is implemented.
Next, in step S203, the CPU 11 serves as the simulation unit 104, and outputs the simulation result, and then simulation process ends.
As described above, with the simulation apparatus according to the present embodiment, virtual force for reproducing the movement of the moving body in a certain direction at each location and time point is set as the vector field, based on monitoring data (past). The simulation apparatus then uses the set vector field together with the movement model to simulate the movement of the moving body. This allows the simulation apparatus to appropriately simulate the movement of the moving body even in cases where movement of the moving body is unusual, such as movement under the movement control in a case where people wait in line or the like.
Furthermore, the simulation apparatus variably sets the parameter of the movement model for each location and time point based on the monitoring data (past), so that the movement of the moving body can be more accurately simulated.
Note that in the above embodiment, a description is given on a case in which the learning unit learns the vector field and the parameters of the movement model. Alternatively, the vector field and the parameters of the movement model may be manually set.
Furthermore, in the embodiment described above, a case is described in which both the vector field and the parameters of the movement model are set. Alternatively, at least the vector field may be set, and a model in which an existing parameter is set may be used for the movement model.
Further, in the above embodiment, the configuration is described in which the simulation apparatus also includes the learning unit. Alternatively, the learning unit may be configured as a learning apparatus separate from the simulation apparatus.
Note that the simulation process which is performed by causing the CPU to read and execute the software (program) in the above-described embodiment may be performed by various processors other than the CPU. Examples of the processor in such a case include a programmable logic device (PLD) such as a field-programmable gate array (FPGA) the circuit configuration of which can be changed after manufacturing, a dedicated electric circuit such as an application specific integrated circuit (ASIC) that is a processor having a circuit configuration designed dedicatedly for executing the specific processing, and the like. Further, the simulation process may be performed by one of these various processors or a combination of two or more processors of the same type or different types (such as, for example, a combination of a plurality of FPGAs and a combination of a CPU and an FPGA). More specifically, the hardware structure of such various processors is an electrical circuit obtained by combining circuit devices such as semiconductor devices.
In each of the embodiment described above, although a form in which the simulation program is stored (installed) in the ROM 12 or the storage 14 in advance has been described, the form is not limited thereto. The program may be provided in the form of being stored in a non-transitory storage medium such as a compact disc read only memory (CD-ROM), a digital versatile disc read only memory (DVD-ROM), a Blu-ray disc, or a universal serial bus (USB) memory. The program may be in a form that is downloaded from an external apparatus via a network.
Relating to the embodiment described above, the following supplementary notes are disclosed.
Supplementary Note 1
A simulation apparatus comprising:
a memory; and
at least one processor connected to the memory,
the processor being configured to:
set a vector field for providing virtual force for reproducing, in a region in which a moving body moves, movement of the moving body in a certain direction; and
simulate the movement of the moving body in the region, based on a movement model to which a parameter for simulating the movement of the moving body is set and the vector field set by the vector field setting unit.
Supplementary Note 2
A non-transitory recording medium storing a program executable by a computer to execute a simulation process, the simulation process comprising:
setting a vector field for providing virtual force for reproducing, in a region in which a moving body moves, movement of the moving body in a certain direction; and
simulating the movement of the moving body in the region, based on a movement model to which a parameter for simulating the movement of the moving body is set and the vector field set by the vector field setting unit.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2019/038931 | 10/2/2019 | WO |