OCP: an OLAP-based bus crowdedness smart-perceiving mechanism for urban transportation

In this paper, we deal with the problem of similarity search about crowdedness for participatory-sensing buses for urban transportation. Similarity search is usually applied for measuring similarities in heterogeneous information networks. However, many models implement similarity search in a global setting, without taking object attributes into consideration. OCP, a novel OLAP-based crowdedness perception, is an attribute-enriched and meta-path-based model with machine learning to capture similarity based on the object connectivity, visibility and features. A set of common crowdedness attribute dimensions are defined across different types of objects, which can be obtained from the participatory passenger’s sensor data through deep-neural-network-based posture recognition. Accordingly, an object can be described as a series of node vectors from different dimensions. In such framework, OLAP is applied in analysing multiple resolutions and improving efficiency of similarity search. In addition, our data sources are based on participatory-sensing instead of using vehicle GPS systems. As more data be collected through participatory-sensing, more accurate crowdedness for a bus can be estimated. The experiment results further demonstrate the efficiency of our analytical approaches.


Introduction
In recent years, crowdedness in the bus has become one of the most concerning problems in the public transportation field, especially in those populous areas (Rajput et al., 2020). Passengers may feel extremely uncomfortable in the face of heavy crowding in the bus. What's worse, because of heavy crowding, some people even can't get on the bus, which may make them miss an important date or be late for jobs. Therefore, effective approaches should be developed to identify crowdedness in the bus.
Existing approaches (Chen & Kämäräinen, 2016;Maddalena et al., 2014;Wang et al., 2018;Zhao et al., 2022) for inferring crowdedness for a bus rely on image recognition by using visual devices, such as cameras. Visual devices should be equipped in the bus to get static photos in a certain time to judge how many people are there. However, these types of approaches are more correlated with external factors, such as the position of camera and frequency, which can be interfered easily. The application (Ghose et al., 2013) utilises bluetooth RSSI to compute the distance between two users, which can reflect the crowdedness intuitively. However, its accuracy is relatively lower. The passenger action attributes can reflect the crowdedness of a bus, which is not limited by extra devices and can be utilised for crowdedness perception.
In this paper, we propose OCP, an OLAP-based bus crowdedness smart perceiving mechanism for urban transportation via dynamic heterogeneous information network, which is attribute-enriched. There are two aspects of OCP, which are client-based OCP and serverbased OCP. For the client-based OCP, it is essential to conduct posture recognition and compute attributes of each passenger, such as deep-neural-network-based walking speed and stationary state, and then send attribute vector to the server. Attribute vector is inputted automatically by smartphones. In addition, for the server-based aspect, we have constructed the nodes-based and links-based hierarchical network. Then according to the attribute vector from the client-based aspect, a modified smart similarity search method, which is based on attribute-enriched Canopy clustering and OLAP, is developed to search for the most similar objects to determine the crowdedness of the passenger. In addition, when the search interval is specified, corresponding dimension can drill down to that interval and perform local search instead of global search. Otherwise, corresponding dimension will roll up to global settings. At last, we utilise a weights-based method to integrate the crowdedness of each passenger into the overall crowdedness. By combining both aspects, we can figure out the crowdedness of the participatory-sensing bus.
In Summary, our contributions can be summarised as follows: • We utilise smartphones to identify the users' action attributes intelligently, which can be used to perceive bus crowdedness. Users are passive to perceived task, so they do not need to pay more attentions on it, which can upgrade the number of users and improve the accuracy of our estimation. • Our method does not need any additional devices. On the contrary, we just utilise participatory sensing to obtain data from passengers' phones, convenient and precise. • Experimental results from 35 participants on the campus bus at Wuhan University verified the accuracy and robustness of our OCP.
The rest of the paper is organised as follows: the related works are discussed in Section 2. We give the preliminary of our OCP approach, as well as its system overview in Sections 3 and 4 respectively. The proposed OCP method is illustrated in detail in Section 5. We conduct the experiments and present the analysis of the evaluation results in Section 6. Finally, the conclusion is given in Section 7.

Crowdedness perception
The traditional crowd density perception methods perceive the number of people in highdensity crowd based on the information from static images gathered by multiple cameras.
The perceiving model in Maddalena et al. (2014) obtains the crowdedness by a k-NN classification based on learning the count perceives from the feet maps, supported by a tracking mechanism that keeps track of people movements and their identities with time. In Wu et al. (2006), images of cameras are divided into different sizes and a technique of searching the extreme is applied to obtain the features and analyse these features to solve the problem of crowd density by support vector machine. Some systems utilise the features of static images to perceive crowd density by different analytic methods (Chen & Kämäräinen, 2016;Rajput et al., 2020;Wang et al., 2018;Zhao et al., 2022). However, the accuracy of the above methods is limited by the quality of images and extra equipment, such as the camera, is often unnecessary. Moreover, the above methods all need to utilise datasets to train their systems, which is tedious. OCP is an OLAP-based system, which perceives the crowdedness through similarity search in a participatory-sensing way according to human behaviour in different degrees of the crowd. OCP utilises only smartphones instead of excessive equipment and machine learning algorithms, which is convenient for applying.

Online analytical process
The hierarchies constructed in (Lin et al., 2008) include dimension hierarchy and term hierarchy. The former is same with those in traditional OLAP and the latter is to explore the level of attribute terms. In Zhang et al. (2009), combining OLAP with Probability Latent Attribute Analysis techniques, Topic cube is designed to perform data mining in both structured and unstructured data simultaneously within a unified framework. But neither of the above approaches considers the links among the objects and information is possible to lose.
A novel similarity search model, PathSim (Sun et al., 2011), is constructed for applications in a heterogeneous network. PathSim proposes the concept of peers and objects that are strongly connected and have similar attributes. Also, it respects the distinct semantic meanings behind different meta paths and enables users to interpret similarity in various parts. But in this paper, the semantic meanings behind different meta paths are not necessary. A most appropriate meta path is adequate in similarity search. Besides, according to the passenger-input vectors, PathSim only performs similarity search in the global setting while more specific range is possible in reality.
To address the above limitations, OCP considers dimension information of each passenger in Canopy-clustering-based similarity search and constructs hierarchical dimension trees to narrow the range of similarity search according to input vectors.

Posture recognition
The walk pattern recognition and indoor pedestrian tracking using phone inertial sensors are proposed by Niu et al. (2014), which is mainly based on HMM. The feature learning approach (Bhattacharya et al., 2014) constructs two datasets that are different in terms of the recognition tasks and sensor modalities. Both Han et al. (2014) and Sigg et al. (2014) propose novel methods to recognise the activities of people. In Han et al. (2014), the method is a smart phone-based Hierarchical Activity Recognition Framework that extends the Na07ve Bayes approach for the processing of activity modelling and real-time activity recognition. In Sigg et al. (2014), WIFI Received Signal Strength information (RSSI) on a mobile phone is used to recognise situations, activities and gestures. The above methods are all available for accurate posture recognition. However, the actions in this paper are simple relatively.
OCP recognises passengers' postures through threshold method and deep-neuralnetwork-based dead-reckoning. According to the method of neural-network-based PDR, MAGINS (Qiu et al., 2021), the displacement and the orientation can be obtained, which can be used to compute the walking speed of the passenger. In addition, OCP recognises the activities of passengers by the feature learning approach. Feature library is established and the features of each activity should be analysed, to determine the thresholds of different activities.

OLAP: online analytical processing
Online Analytical Processing (OLAP) is a technology that enables analysts to quickly, consistently, and interactively observe information from all aspects to gain a deep understanding of the data. To facilitate this analysis, data is collected from multiple data sources and stored in a data warehouse, which is then cleaned and organised into data cubes. Each OLAP cube contains dimensionally ordered data extracted from dimension tables in the data warehouse. The dimensions are then populated by members of the hierarchical organisation. OLAP cubes are often pre-aggregated across dimensions to dramatically reduce query times for relational databases.
To better assist OLAP scheme, some more concepts are adopted here.

Heterogeneous information network.
A heterogeneous information network is represented as: Object feature dimensions. Each object v ∈V, φ(v) ∈A, has a set of information dimension (d 1 , d 2 , ... , d Q ).
Hierarchical attribute tree. Suppose each dimension of an object has M possible finest attribute values, a hierarchical attribute tree T is a hierarchy as such; each node on the hierarchy, n ij contains a subset of such attributes, with i denoting hierarchy level i = 0, 1, 2, . . . , I, 0 representing the apex level while I the lowest level, j denoting the jth node within a given level. n 0 is the apex level having only one node and contains all M attributes. n I is the lowest level and has M leaf nodes. A node in the ith level has exclusive subsets and forms the 1 + ith level children nodes, U j n ij = M. A path in the hierarchical attribute tree ζ is defined as a vector of I nodes = (n 0 , n 1j1 , n 2j2 , ... ., n IjI ) T . Each dimension d q of an object v∈V is represented by path ζ q .
Meta path. A meta path is defined on the dimension schema of fully connected graph G(D, S) and has form: P l = (D 1 , D 2 , ... , D l+1 ), whose sequence is decided by the contribution of each dimension to crowdedness. D and S denote dimensions and links, respectively.

Participatory-sensing bus crowdedness
In the participatory-sensing bus crowdedness perceiving system, the series of action attributes from the participatory passengers getting on the bus from the door to walking to a place to stand or sit down are used to represent the level of the crowdedness in the bus.
The specific detailed action attributes are as follows:

Walking speed
Walking speed is obtained by collecting the real trajectories of pedestrians walking. Because the more crowded the bus, the more difficult it is for the rescuer to move, and the slower the pedestrian walks.

Stable state
Stable state represents the final state of passengers. Despite different crowdedness levels, passengers can only end up in two stable states: standing or sitting. Usually, standing proves that the crowdedness level on the bus is high, otherwise means low.

Time of reaching stable state
This action attribute represents the time for reaching a steady state. It is also an important factor, as the degree of congestion in the vehicle can be roughly perceived by this attribute. For example, passengers usually spend more time locating an available seat when the bus is crowded.

Route fluctuation
Route fluctuation is defined as the change of track route caused by the swing of standing passengers. Route fluctuation can be understood as when there are many people in the vehicle, due to the phenomenon of pushing and shoving, the route fluctuation will increase with the increase of the flow of people.

Relative position before stable state
The relative position of a bus can be separated into three parts, i.e. front, middle and rear. The lightest turbulence is commonly recognised as in the middle of a bus. Therefore, generally speaking, the closer to the bus front or rear of a passenger's relative position, the higher the crowdedness of the bus is.

Proposed system overview
The OCP system architecture is shown in Figure 1. The system contains four units: sensors data acquisition, features extraction, personal crowdedness computation, and overall crowdedness level.

Sensors data acquisition
In this paper, the data from participatory-sensing comes from sensors on mobile phones including accelerometer, gyroscope, and orientation sensor. For example, we use the residual network to judge the actions of getting on and off the bus. The server will obtain this data from voluntary passengers, then calculate crowdedness and then return the results to clients.

Features extraction
When passengers get on the bus, they will go through the following actions: getting on, walking and finally reaching a stable state. Therefore, we can extract several indexes to evaluate the crowdedness level. In this paper, walking speed, stable state, time to reach the stable state, route fluctuation and relative position are five attributes to make different contributions to the crowdedness. For example, it will decrease the crowdedness level if the stable state is sitting, because sitting reflects less passengers. Otherwise, if the stable state is standing, it will increase crowdedness.

Personal crowdedness
This paper introduces an attribute-enriched and meta path-based method for revealing personal crowdedness. The degree of crowdedness can be divided into four levels, and each one is given a specific contribution value accordingly (Table 1). Lower level leads to fewer contribution.

Heterogeneous information network
We use the heterogeneous information network to describe the common dimensions of bus crowdedness. The crowdedness usually includes two state types ( Figure 2). Each state type is described by certain features and therefore has a common set of dimensions. And each dimension is represented by a hierarchical attribute tree which is similar to Topic Cube.

Hierarchical attribute tree
Each passenger in the network of crowdedness, despite state types, shares five common dimensions: walking speed, stable state, time to reach the stable state, route fluctuation and relative position. Figure 3 shows that each of the five dimensions forms a hierarchical attribute tree. Now supposing we describe the level one of crowdedness, five tree paths of getting-on can be considered an input vector to represent the features of this level:

Meta path
There are two concerns about the calculation of Meta Path. On one hand, for similarity search is conducted between two same dimensions, only paths with D 1 = D l+1 should be considered. On the other hand, fundamental principle of OCP is the relation of peer, which indicates a symmetric meta path, thus all meta paths in our paper is defined as the form P = (P l P l −1 ).
Therefore, we can search similarity between object x and object y both in dimension D 1 according to the specific meta path. In addition, different meta paths have different effects on similarity search of crowdedness.

Commuting matrix
Given a meta path P, its commuting matrix M = W D1D2 W D2D3 ... W Dn−1Dn with W Dn−1Dn denoting the adjacency matrix between dimension D n−1 and D n . According to the commuting matrix, we can search the number of path instances between D 1 and D n , which is used to conduct the similarity measure.

Overall crowdedness level
To fully reveal the crowdedness of the bus, it is essential to integrate all the five attributes of each passenger for calculating the overall crowdedness level. Moreover, whenever a passenger gets on the bus, the result will be updated immediately.

Walking speed
Walking speed can be obtained by neural-network-based PDR (Qiu et al., 2021). This method is capable of extracting high-level feature representations (velocity vectors) from large datasets and does not rely on geometric theory. By collecting a large number of IMU data and real tracks of pedestrian walking and making them into the input features and labels of the neural network, a network model that fits the walking gait characteristics of pedestrians is trained. The model takes the IMU data as input, regresses the velocity increment of the pedestrian, and then deduces the pedestrian's trajectory through integration. Then it can be represented as a sequence S = S 1 , S 2 , S 3 ... S n over time. S n denotes the speed at certain time. Each sequence has different contributions to the crowdedness. For example, when the bus is crowded, the sequence may consist of ragged speed because it is hard to move. Therefore, we can identify the crowdedness by distinguishing those sequences.
Walking speed is obtained by dead-reckoning technology. We first compute the displacement by acceleration and orientation in a second. Then we compute the speed.

Stable state
Different stable states correspond to different contributions. We cannot judge getting on and off by simple z-axis acceleration because the current state of the pedestrian is not always horizontal (e.g. uphill and downhill). To obtain a more general action recogniser, we use a ResNet18-1D to learn from acceleration and gyroscope data. On the other hand, different people have different styles from standing to sitting, and it is not possible to accurately judge the sitting motion only based on the z-axis acceleration.
For the above considerations, we perform five-category learning of states: walking, getting on, getting off, standing, sitting. Data is fed into the RestNet in 200 Hz windows and learned with softmax loss.
The trained network traverses the data with a window of the same size and a step size of 10 Hz to obtain the current motion action, and then we can obtain their stable state when there is an act of getting on the bus and sitting down.

Time of reaching stable state
From extensive experiments, we can learn that the time to reach the stable state is short because passengers may choose the seats near the door or it is so crowded that passengers have to stop in a position of the carriage quickly. After recognising the stable state of passengers, we can obtain the time to a stable state.

Route fluctuation
The pedestrian route fluctuation can be obtained through the deep learning PDR, which also accepts acceleration and gyroscope data as input, and works in parallel with the action classifier to obtain the vector velocity at each moment. Route fluctuation mainly depends on the route of passengers in the corridor. As usual, passengers in the crowd still tend to choose the straight-line route. But due to pushing and shoving, route fluctuation increases with the rise of the crowdedness.

Relative position
Due to the lack of a reference frame, deep learning schemes are no longer effective at different positions of the vehicle. Fortunately, the difference in vibration in different parts of the car when passing through the speed bump can be a distinct feature. Each of them has two peak values of Z-axis acceleration respectively when the bus passes a speed bump. In the front of the bus, the first peak is lower than the second one. In the middle of bus, the first peak is almost equal to the second one while in the rear of bus the first peak is higher than the second one.
We can determine the relative positions of passengers by the relative size of two shocks. Of course, if the buses do not pass the speed bumps, relative position cannot become the standard of the crowdedness, so we should neglect this item.

Smart personal crowdedness computation
After obtaining five attributes of the passenger, we utilise the meta-path-based method to measure similarity. Each object in our datasets has a corresponding level of crowdedness.

Meta-path-based method
A meta path-based similarity measure between two objects considering dimension attributes is as Equation (1): In the above formula, objects i and j belong to the same dimension. M denotes the commuting matrix M(i, j) is the number of paths between x and yin the fully connected graph. However, if the total scale of passengers is large, it can be a huge computational overhead to calculate the similarities between all objects directly. Therefore, in this paper, we introduce a machine learning method, Canopy (Mccallum et al., 2000), to cluster objects in advance before the similarity calculation. Although Canopy is less precise, producing coarse categories, it is computationally inexpensive and enables the discovery of broad categories to which objects may belong. The parameters T1 and T2 of Canopy are determined by the distribution of the number of path instances of the commuting matrix M. And the distance of Canopy can be measured by the similarity shown in Equation (1) and at the same time, the results of the calculation will be retained for later use if needed. In the pre-clustering stage, the times of calculations for each object are related to the number of current clusters, which is much fewer than the initial meta path-based method. After completing the coarse clustering, similarity calculations are performed for the objects in the same class, and there is no similarity calculation performed between objects that in different classes, greatly reducing the workload of similarity calculations.

Matrix computation-baseline method
According to the path P, which determines the commuting matrix M, the OCP search similarity between objects i and j in the same dimension by using the meta-path-based method. However, it is not necessary to calculate all object j. Only in the same state type, the similarity search between i and j is meaningful. In addition, if object j and object i are in the same sub attribute-tree or they are the neighbours, such objects are considered. Through sorting all similarities between object i and others, we can find the most similar object.

Overall crowdedness level
Every time the bus stops at the bus station, the server needs to combine the crowdedness level of passengers who are getting on or off the bus and the overall crowdedness level of the last stopping to calculate a new overall crowdedness level, which is called iteratively updating.
Assume the number of passengers who get on the bus is n, we can get: In Equation (2), C i and C i−1 denote the current and the last time overall crowdedness respectively.a i denotes the crowdedness contribution of ith passenger who gets on the bus. This formula needs to be conducted for n times.
The above calculation of the overall crowdedness level only associated with passengers who are getting on the bus, but passengers who are getting off the bus also have an influence on the crowdedness. Assume that the crowdedness will reduce µ when a passenger gets off the bus and the number of passengers who get off the bus is k in a station. So, the formula of C i is changed to: In Equation (3), ß l denotes the crowdedness contribution of lth passenger who gets off the bus. When C i is between 0 and 10, 10 and 20, 20 and 40, 40 and 80, the overall crowdedness is 1, 2, 3 and 4 respectively.

Experimental performance evaluation
We conducted the experimental evaluation on the eight heterogeneous information networks which are based on the information gathered in the campus bus system at Wuhan University to test the correctness and effectiveness of OCP. There are 35 voluntary students from Wuhan University participating in this experiment. Before the experiment, all participants spent six months collecting data on attributes, which are as datasets to conduct a similarity search. We divide eight heterogeneous information networks into two groups according to two state types. Each of the group has four networks, which correspond to four crowdedness levels respectively. Each of the networks contains almost 500 objects. When the server receives the user input vector, it will search for similarity in these networks and confirms which crowdedness level passenger is similar with. Our experiments are implemented in C++ Programming language on a local workstation. The local workstation runs on a 32-bit Linux OS. In this paper, the main factors include the meta path and different crowdedness. Therefore, we choose different meta paths to get different similarity results and show the comparison with them to find the most effective meta path. Meanwhile, we will conduct the experiment in different crowdedness. We also need to test the accuracy of posture recognition, which is the fundamental work.

Evaluation for posture recognition
Through the analysis of acceleration data, we can identify the action of passengers. The actions we need to recognise are getting on and getting off the bus, sitting, standing and  walking. In this experiment, each action will be performed ten times by 35 people. We exhibit a group of feature figures of Z-axis acceleration which has been denoised. Figure 4 shows Z-axis acceleration of getting-on, walking and getting-off in which we subtracted the acceleration of gravity.
We utilise X-axis acceleration to recognise the route fluctuation. Figure 5 shows the data of X-axis acceleration change rapidly, which is because the crowdedness level is 3. The route fluctuation rises with the crowdedness level rising.  Table 3. Crowdedness level of getting-on based on different meta-path. The final experimental result is shown in Table 2. Experimental data denotes the number of each action. Result shows the number of actions which is recognised correctly. In Table 2, we found that the recognising rate of five actions is more than 80%, which proves the accuracy of our recognition.

Evaluation for different meta path
In OCP, the server can use different meta paths. There are five dimensions in the experimental networks, which are W, S, T, R and P denoting walking speed, stable state, time to reach the stable state, route fluctuation and relative position respectively.
Based on different meta paths, the top-5 similarity rank in global search is also quite different. We only show top-1 crowdedness level in this experiment. Our experimental site is in the campus bus of Wuhan University in which there are twenty seats and a total of 23 people tested in this experiment. The former passengers who got on the bus experienced the lower crowdedness and the latter passengers experienced the higher degree. In general, the crowdedness is level 2. Table 3 demonstrates the most similar crowdedness levels of 23 passengers which are computed based on meta paths W-T-S-T-W, T-R-W-S-P-S-W-R-T and W-T-R-S-P-S-R-T-W. Along with the crowdedness level is the related score. 1-23 denotes the order of getting-on. By comparing the scores of the same passenger in different meta paths, we can conclude that the longer meta-path will generate higher similarity score, which implies the crowdedness level is more similar with this passenger. The comparison between T-R-W-S-P-S-W-R-T and W-T-R-S-P-S-R-T-W may be inconspicuous. But when we computed the overall crowdedness level, we found the level of T-R-W-S-P-S-W-R-T is three and the level of W-T-R-S-P-S-R-T-W is two. The comparison between two meta paths is not enough. So, we conducted extensive experiments which do not list here due to the page limit. The conclusion is that when the meta path is W-R-T-S-P-S-T-R-W, we can get the most similar crowdedness level of each passenger and compute the most accurate overall crowdedness level.

Evaluation for different crowdedness
We further evaluate the correctness and effectiveness of our algorithms in different crowdedness based on the meta path W-R-T-S-P-S-T-R-W. We choose two crowdedness levels: level 2 and level 4. In this experiment, our experimental site was still in the campus bus of Wuhan University and a total of 35 people joined in the test. For the purpose of comparison and practicability, the campus bus ran to the next station specially. Specific experimental steps are as follows: 1. At the starting station, 25 passengers got on the bus sequentially and the overall crowdedness level was 2. 2. At the next station, there were 15 people getting on the bus and 5 people getting off.
So totally there were 35 people on the bus and at this time people almost could not move anymore. Accordingly, the overall crowdedness level is 4. Figure 6(a) shows the tendency of walking speed going down with the crowdedness rising and Figure 6(b) shows the time to reach a stable state corresponds to relative position when getting-on at the first station, because at that time the crowdedness level is low. In the right of Figure 6(c), the route fluctuation rises sharply because of the high crowdedness level. Besides, in Figure 7(a), with Stationary State 1 denoting sitting and 2 denoting standing, we can find that stable states are almost sitting at the first bus stop and the stable states of new passengers are almost standing at second station. In Figure 7(b), Relative Positions 1, 2 and 3 represent the front, the middle and the rear of the bus respectively.   Figure 8 shows the crowdedness levels of each passenger. When getting on at the first station, the crowdedness levels we get from the dimension information of passengers change from one to two. And when getting on at the second station, the crowdedness level of each passenger rises sharply from 1 to 4, which means our similarity search algorithms work well. In addition, considering the crowdedness level four, we can explain why the relative position is the front of the bus and route fluctuation is low in the right of Figure 6(c) and Figure 7(b), because the latter passengers cannot move as soon as they get on the bus.
Since our algorithms are based on participatory sensing, we should validate the effectiveness of participatory sensing in different numbers of people. As shown in Figure 9, abscissa denotes the first x passengers and ordinate denotes the overall crowdedness level corresponding to abscissa. In general, the relationship between Figures 8 and 9 is similar with the relationship between probability density function and probability distribution function. Observing Figure 9, we find that though abnormal data marked in Figure 8 influence the overall crowdedness level, they are modified by the other normal data. And the more passengers join in the computation of overall crowdedness level, the more accurate the result is.

Conclusion
In this paper, we design an attribute-enriched meta path and OLAP-based Crowdedness Prediction for participatory-sensing bus, named OCP. It can capture similarity in dynamic heterogeneous information networks, which is based on object connectivity, visibility and features. By leveraging similarity search, OCP can compute the overall crowdedness without extra equipment or machine learning strategy. Once there is enough data about crowdedness, we can obtain the crowdedness of anyone without training in advance. Experimental results show high-precision and robustness of OCP.
For future work, we plan to introduce more intelligent pre-processing methods to cope with the situation of different placement of users' phones or transition switching. Further, we will try to apply OCP in more complicated scenarios, such as subway, attractions, etc.