Global Positioning System (GPS) provides satisfied outdoor positioning services but does not work indoor. WiFi is currently the dominant local wireless network standard for short-range communication and is the leading technology for indoor positioning[li2017passively]. WiFi fingerprinting based on Received Signal Strength Indicator (RSSI) has been widely used in commercial indoor positioning systems because of its high positioning accuracy and ubiquitousness, such as Google and Apple. A traditional fingerprinting system requires a radio map comprised of a large quantity of WiFi fingerprints and each WiFi fingerprint contains a WiFi RSSI list and its ground truth location label. To build up radio maps, professionals consume huge amount of time to conduct a site survey for the ground truth location labels[li2015time]. To avoid the intensive training efforts in fingerprinting, crowdsourcing approaches have become increasingly interesting for researchers. And then, we use crowdsourcing smartphone data to build indoor map.
In this work, we propose a novel system for automatic construction of featured crowdsourcing trajectory generation, which requires neither priori knowledge of a floor plan nor manual initializations of PDR traces. Our contributions are summarized as follows.
Firstly, daptive jerk pace step detection algorithm is exploited for step detection; hierarchical support vector machine method is exploited for displacement estimation; and magnetometer aided heading estimation is exploited in PDR. They work together to infer the relative motions more accurately from the raw IMU data sequences.
Then, a floor classification algorithm based on jointly DBSCAN clustering of barometer readings of PDR trajectories and WiFi MAC address clustering is proposed. It can divide the trajectories into correct floors rather reliably.
Finally, eliable turning point detection method is proposed to detect reliable turnings as the motion feature points. Small turnings are filtered out and frequent turning segments are deleted to exclude the impacts of irregular motions. So each PDR trajectory is converted to a chain type graph
, which uses the end points and the extracted turning points as vertices and uses the motion vectors between vertices as edge.
Ii System Overview
Trackpuzzle design is based on a participatory sensing approach, where phone sensors measurements collected from users moving naturally inside the building are processed to generate featured motion traces which in turn can provide an adequate description of the indoor route graph. In this paper, we only provide the method of featured trajectory generation, and the part of indoor route graph generation is discussed in another paper. The system consists of two main module: (a) the Data Collection Module is responsible for collecting measurements from users’ devices, and (b) the Featured Trajectory Generation Module is responsible for building accurate motion traces based on Motion Trajectory Generation, Floor Classification and Vertex & Edge Extraction.
The data collection module collects measurements from phone embedded sensors including: accelerometer, magnetometer, gyroscope, barometer and the received cellular and WiFi signal strengths from the available cell towers and WiFi access points. In this system, we use Getsensordata app[jimenez2019tools] to collect these data as shown in Figure 1, and then generate files and send them back to the server for processing.
Iii Featured Trajectory Generation Module
In this section, we will firstly introduce (1) how a PDR algorithm is carefully designed to recover the motion trajectories as accurate as possible; (2) how the motion trajectories are segmented into different floors; and (3) how the motion trajectories are filtered and processed to extract reliable turning points as the feature points, so that each motion trajectory is converted to a chain-type graph using the feature points as vertices and motion vectors between feature points as edges.
Iii-a Motion Trajectory Generation
The first step is to recover the motion trajectory from the raw IMU data, which relies on a dead-reckoning based approach. The user’s current location is estimated from the previous location , the estimated step length is denoted by , and the estimated motion direction is denoted by . Then:
where the displacement is mainly obtained from the accelerometer data, while is estimated from the magnetometer and the gyroscope data. The PDR algorithm has been extensively studied in the literature. We conduct extensive experiments and select the following methods to try to recover the motion trajectories accurately.
Iii-A1 Step Detection
The accuracy of step detection affects the accuracy of PDR greatly. Step detection is based on the detection of peak and valley oscillation on the magnitude signal of the accelerometer data. Because the motion trajectories may be collected by phones using different brands of sensors and the users may take the phones in different places and poses, the magnitudes of the accelerometer data are different in different trajectories, or even different in different segments of one trajectory.
To detect steps correctly in different application scenarios, we uses ADAPTIV[murray2018adaptiv], an adaptive jerk pace buffer based step detection algorithm. Jerk is the acceleration change from peak to valley in a step oscillation. Pace is the time duration of a step. ADAPTIV proposes adaptive jerk and adaptive pace thresholds, and proposes a buffer to update the jerk and pace thresholds. It shows reliable step detection accuracy for accelerometer data collected by different phone poses, which provides better accuracy than the step detection algorithm implemented in Android system.
Iii-A2 Stride Length Estimation
Stride length estimation is to estimate the displacement in each step. [alzantot2012uptime] shows that the stride length changes significantly for the same person when the gait type changes. Therefore, this paper exploits the variable stride length estimation method proposed in UPTIME [alzantot2012uptime] to improve the accuracy of stride length estimation.
The method uses a hierarchical support vector machine[alzantot2012uptime]
to design a gait classifier. The signal characteristics in a step are extracted to construct features, including the stride duration, accelerometer signal variance, acceleration peak, RMS acceleration etc. Then the user gait is classified by the hierarchical support vector machine using these features as input, and the stride length is estimated by looking up table using the estimated gait. The method can much improve the accuracy and adaptivity of stride length estimation.
Iii-A3 Direction Estimation
Direction estimation is to estimate the heading angle . We exploit HUMAINE [mohssen2014s], a sensor fusion method to accurately estimate user orientation relative to the Earth coordinate frame.
In HUMAINE, firstly, the gravity vector is tracked by the opportunities when the acceleration vector approximately equals (9.80665m/s2) and by fusion of gyroscope and magnetometer data. Whenever the trend of gyroscope and magnetometer reading is correlated, the magnetometer reading is believed accurate[zhou2014use] and is selected to estimate the phone’s direction.
By tracking gravity vector and the correct magnetometer readings, equations for estimating roll and pitch are set up by relating phone pose with the gravity vector. Then the equation to estimate yaw angle (phone’s orientation) is set up based on the magnetometer readings. But the phone’s orientation maybe different from the user’s motion orientation. So a principal component analysis (PCA) method is applied on the extracted linear acceleration data of the phone to find the direction with the largest variance. The first principle direction with acute angle with the phone orientation is then detected as the user moving orientation.
Iii-B Floor Classification
The first step to register the PDR trajectories is to find the trajectories that are collected from the same floor. One trajectory maybe collected when a user walks through multiple floors. Such trajectories should be cut into segments of different floors for registering the trajectory segments of the same floor to recover the floor routes.
The barometer reading is an important clue to distinguish floor index. However, barometer sensors have good accuracy in measuring relative pressure changes, but have unsatisfied accuracy in measuring absolute pressure. This is because the biases of barometer readings are different in different phones. We therefore can use barometer readings to confidently separate a trajectory into segments of different floors but the barometer readings cannot tell exactly the floor index of the segments.
We find that the trajectories on the same floor share more common MAC addresses of the WiFi APs, and the trajectories on different floors share much less common MAC addresses. We therefore propose to use the Jaccard coefficient of MAC address appearing in trajectory segments to further classify the trajectory segments to classify their floor indices.
Firstly, the PDR points in a trajectory is clustered by DBSCAN method regarding the barometer readings of the points, which automatically cluster the trajectory data into multiple clusters if the trajectory travels multiple floors. Each cluster is a trajectory segment in one floor.
Then all the trajectory segments separated from different trajectories are put together. For each trajectory segment (say trajectory segment ), the set of AP MAC address appearing in is extracted and is denoted by . Then for any two trajectory segments and , we have the following two MAC address sets:
where is the MAC address of an AP. We then obtain the intersection and union of and .
The Jaccard coefficient of and is calculated using the following equation:
where is the carnality of the set . Finally, using jaccard coefficient
as a distance, a hierarchical clustering[johnson1967hierarchical] is performed on the trajectory segments to obtain specific floor indices. The final cluster of trajectory segments with the highest average pressure is the trajectories of the first floor. An example is shown in Fig.4. The three trajectories are segmented and are clustered into trajectory segments of four floors.
Iii-C Vertex and Edge Extraction On Each Trajectory
Then we consider feature extraction on each trajectory segment. Traditional RSS features are noisy. But different PDR trajectories on a same floor show rather stable relative turning patterns at common turning points. We therefore propose to extract the reliableturning points (TPs) on the trajectories. The extracted turning points become vertices. The RSS at the turning point is used as vertex feature and the motion vectors among the turning points will become edges. This will turn each trajectory segment into a chain-type graph.
Iii-C1 Turning Points Detection
The ideal turning point detection is shown in Fig.7, where reliable turning points are detected as feature points. Because user motions and the sensor data have noises, there are heading direction noises in each step, as shown in Fig.7. To detect reliable turning points, we need on one hand to avoid false alarming caused by heading noises, and on the other hand to reliably detect turning when the accumulated heading direction has changed enough.
We therefore design a sliding window based turning point detection algorithm. The algorithm starts by using the first point as the origin. is the detected set of turning points which is initialized by . Starting from , whenever a turning point (denoted as point ) is detected, this turning point will become the starting point of a new window, and is set as the origin of the new window. For each point following this point, i.e., , turning angle are calculated by
When , is added to the current window. Only when , will be detected as a new turning point. is added into the turning point set. The window length is reset to 1 and the point becomes the new origin. By this method, the sliding window filters out the turning noises and detects a turning point when enough turning has been accumulated. For a trajectory segment , all detected turning points will be extracted as vertices, denoted by set . The motion vector between each pair of vertices is a motion edge. The edges form a edge set . So the trajectory is represented by a chain-type graph .
Iii-D Delete Frequent Turning Segments
Turning points will be detected frequently if a user turns frequently during data collection. Such kinds of trajectories cannot accurately reveal the indoor path features, because the turnings are mainly caused by the user’s irregular motions. Since there are redundant trajectories, we don’t need these “bad” trajectories. We therefore propose to delete trajectory segments with continuous turning points. If some turning points appear very closely on a trajectory, such sub-trajectories will be deleted to avoid the frequent turnings’ impacts to the trajectory registration. We propose to:
Divide a trajectory into two trajectories if two turning points are detected successively.
Delete a sub-trajectory if the length of a sub-trajectory is too short.
The algorithm checks the vertex set sequentially. If two neighboring vertices are not successive in the original trajectory, the vertices are added into current trajectory graph . If two neighboring vertices are successive, a new sub-trajectory graph will be generated and using as the starting point of this new sub-trajectory graph. If is too short, will be deleted, since the short sub-trajectories can not well reveal the path structure. An example is shown in Fig.7.
Iii-E The Motion Vector and the RSS Vertex Feature
After forming each chain-type graph , the motion vector between each pair of vertices is calculated. Note that stores the th vertex’s origin index in the trajectory. Let be the motion vector between and . Then
where is the motion vector in the original trajectory from node to node . Note the summation of motion vectors between successive turning points smooths the step-by-step motion noises. The motion vector gives the motion estimation between each pair of vertices. We then use to represent the RSS signature of vertices. So a trajectory segment is converted to a chain-type graph , where are reliable turning points; represent the motion vectors of edges; and represents the RSS features of vertices. Note that each trajectory graph consists only one path, which likes a chain.
Iv Experiment Results for Track Generation
Iv-a Performance for Floor Classification
First, we analyze the performance of DBSCAN algorithm for separating the trajectories to different floors. We set the maximum number of clusters in DBSCAN as 20. For each dataset, we put all trajectories together for floor clustering. By comparing with the ground truth, the floor classification accuracy is shown for all the trajectories in each data-set. The results are shown in Table I.
|Atlantis le Centre||3|
Iv-B Optimizing the Parameters for Turning Point Detection
The turning detection threshold and sliding window length of the turning point detection algorithm are optimized using the experimental data. For evaluating turning point detection accuracy, we use precision, recall and F-measure as the evaluation indices for turning point detection.
Using the dataset of Dangdai Shopping Mall, we evaluated the precision, recall and F of turning point detection when varies is the range . The results are shown in Fig(8(a)). It can be seen that obtains the highest . Then, by fixing , we calculated the precision, recall and F of as a function of the window length when varies in . The result is shown in Fig(8(b)). It can be seen that when , the precision reaches 100%. So turning point detection parameters are set as in the final experiments.
V Biography Section
Wanting Liis a PhD in the Department of Computer Science, Renmin University of China. She received the BS degree in Computer science and technology from China Agricultural University (2019). She won Honorable Mentions in 2018 mathematical modeling contest of American College Students. Her research is unsupervised learning pervasive computing.
Yongcai Wang received his BS and PhD degrees from department of automation sciences and engineering, Tsinghua University in 2001 and 2006 respectively. He worked as associated researcher at NEC Labs. China from 2007-2009. He was an research scientist in Institute for Interdisciplinary Information Sciences (IIIS), Tsinghua University from 2009-2015. He was a visiting scholar at Cornell University in 2015. He is currently associate professor at Department of Computer Sciences, Renmin University of China. His research interests include network localization, and combinatorial optimization and applications.
Deying Li received the MS degree in Mathematics from Huazhong Normal University (1988) and PhD degree in Computer Science from City University of Hong Kong (2004). She is currently a Professor in the Department of Computer Science, Renmin University of China. Her research includes wireless networks, mobile computing, social network and algorithm design and analysis.