Fingerprinting-based algorithms are popular in indoor location systems based on mobile devices. Comparing the RSSI (Received Signal Strength Indicator) from different radio wave transmitters, such as Wi-Fi access points, with prerecorded fingerprints from located points (using different artificial intelligence algorithms), fingerprinting-based systems can locate unknown points with a few meters resolution. However, training the system with already located fingerprints tends to be an expensive task both in time and in resources, especially if large areas are to be considered. Moreover, the decision algorithms tend to be of high memory and CPU consuming in such cases and so does the required time for obtaining the estimated location for a new fingerprint. In this paper, we study, propose, and validate a way to select the locations for the training fingerprints which reduces the amount of required points while improving the accuracy of the algorithms when locating points at room level resolution. We present a comparison of different artificial intelligence decision algorithms and select those with better results. We do a comparison with other systems in the literature and draw conclusions about the improvements obtained in our proposal. Moreover, some techniques such as filtering nonstable access points for improving accuracy are introduced, studied, and validated.
Indoor location systems provide a solution for user navigation in places where GPS signals are not available. There are many alternatives available for locating users indoors that can be categorized in several ways according to the mathematical algorithms used, radio technologies required, or hardware components used. Some of the alternatives are based on the user carrying a mobile device and others are based on device free [
Smartphone based indoor location systems can be categorized into two major families: on-demand location systems and continuous user location tracking systems. The former normally rely on fingerprinting techniques [
This paper focuses on fingerprinting smartphone-based algorithms which are employed to locate users at room level (the exact location of the user inside a room is not that relevant but knowing the exact room the user is in with the highest accuracy is crucial). Using room level granularity will allow us to overcome one of the crucial aspects of indoor location systems when the areas to cover are big: scalability [
In summary, this paper contributes in 3 major ways: The way to select the most convenient sampling points to measure training fingerprints in order to increase the accuracy while minimizing the memory and CPU execution requirements. The cost for training the system includes both the number of training points and the number of fingerprints at each point. The paper focuses on reducing the cost associated to the number of points not adding additional constrains on the number of fingerprints at each training point. The analysis and evaluation of the performance of different decision algorithms. The way to filter unstable access points in order to increase accuracy and minimize execution requirements.
The rest of the paper is organized as follows. Section
Several different approaches and technologies have been proposed, analysed, explored, and validated for indoor positioning systems, fingerprinting being the preferred alternative for smartphone-based indoor locations systems [
The authors in [
Indoor location systems focus on solving the problem of best estimating the user location. The exact user location inside a building is occasionally required. In some occasions, however, the location is only required to be estimated at room or area levels. Smartphone-based indoor location systems which rely on fingerprinting can be used for either finding the best estimate for the user location inside a building or for finding the best room or area in which the user is located. In the first case it was found that best estimate means that an exhaustive training of the system is required in order to measure fingerprints in as many training locations as possible. Trying to estimate the user location at a room level involves, on the other hand, different training requirements for the system. In this paper we focus on best solving this second problem. In the next section we analyse different alternatives for selecting the best training locations for indoor location fingerprinting-based algorithms. The validation results are presented in Section
The major contribution of this paper is the study, analysis, and evaluation of the relative accuracy of the different smartphone fingerprinting-based indoor location algorithms when locating users at room level. This has been done using different strategies for selecting the points used to train the system, applying different values for noise and stability filters in order to select the best WAPs, and taking the average of several measured fingerprints when locating the user. In particular the following algorithms have been used: ADTree, BFTree, Decision Stump, FT, J-48, J-48graft, LADTree, LMT, NBTree, Random Forest, Random Tree, REPTree, SVM, Naïve Bayes,
The confidence is also analysed in order to select the best algorithms, the number of WAPs to be considered, the values for the noise and stability filters, and the location of the training points. The results are also validated by comparing them to those presented in papers which deal with similar aspects.
Smartphone fingerprinting-based indoor location systems require a training phase to be carried out before they can be used to locate new unknown points. Select the locations where taking measures for the set of training fingerprints is by itself a decision that has to be studied, analysed, and optimized taking into account both the final relative accuracy of the location algorithm and the underlying computational requirements. Two major approaches are examined in previous studies: using a complete grid of points which cover the entire part of the building where users are to be located [
In this paper, we propose a third approach to minimize the requirements for the number of training fingerprints when using the indoor location algorithms at room level. We propose to only measure the points in the border of each room without fingerprinting the interior part of each area. This approach is aligned with the objective of the system to be designed: to differentiate among rooms without taking into account user movements inside each room. The results in Section
One of the parameters to be considered when fingerprinting an area for training the indoor location system is the distance between adjacent points that need measuring. The authors in [
The temporal stability of the RSSI has a major impact on the results of the algorithms that use it to estimate the location of the user in indoor environments. The authors in [
Authors in [
In this paper we propose (and validate in Section Take several measures over time in the same location to train the system (ideally on different days and different times). Mark as potentially unstable those WAPs whose number of noisy RSSIs is, for a particular training location, below a noise threshold. Mark as potentially unstable those WAPs whose variance for the RSSI is, for a particular training location, greater than a stability threshold. Finally, those WAPs marked as potentially unstable must be removed if the number of training points where they are marked as potentially unstable is above a threshold.
The selection of the values of these thresholds will provide a mechanism to select either a smaller number of more stable WAPs or a bigger number of less stable WAPs. The results captured in Section
In more detail, the following four thresholds have been set for the analysis performed in this paper.
NNST =
LT =
Having established the above thresholds, the first step of the algorithm is to calculate the number of noisy samples by WAP for each location. A sample is considered a noisy one when its RSSI is less than the value set as NT (note that the WAP is not considered noisy if it is not detected at a certain point, only if it is detected with a fluctuating power below the noise threshold a number of times above the NNST).
Then, for each location and wireless access point we check if the result obtained in the previous step equals or exceeds the NNST. If so, the WAP is marked as unstable for that location. If not, the variance of its RSSIs is calculated. If this number exceeds the VT, the WAP is marked as unstable for that location. In summary, we consider that a WAP is unstable at a given location when the number of noisy samples for this access point in that location equals or exceeds the NNST or the variance of the RSSIs for that wireless access point and location exceeds the VT.
Finally, for each wireless access point we add the number of locations where the WAP is considered unstable. If the result equals or exceeds the LT we eliminate this WAP.
Depending on how the previous four thresholds (noise, number of noisy samples, variance, and location) are configured we can be more or less strict when taking into account a smaller or larger number of WAPs. For instance, if we keep fixed NT and VT, we take a number of samples (
Configuration of UMR and UL thresholds.
#WAPs | 5 | 8 | 10 | 16 | 20 | 32 |
|
||||||
NT = −80 dBm | ||||||
|
||||||
|
||||||
Factor | 0.7 | 0.7 | 0.7 | 1 | 1 | 1 |
NNST | ≥7 | ≥7 | ≥7 | ≥10 | ≥10 | ≥10 |
|
||||||
VT = 60 dBm2 (~8 dBm) | ||||||
|
||||||
|
||||||
Factor | 0.5 |
0.6 |
0.75 | 0.75 |
0.83 |
1 |
LT | ≥6 | ≥8 | ≥9 | ≥9 | ≥10 | ≥12 |
In the first row of Table
Another mechanism that may be used to improve the performance of the fingerprint based indoor location algorithms is combining several fingerprints measured when trying to estimate the location of an unknown point. The more the fingerprints over a longer period of time the better the impact one expects to obtain in the predicted results. However, there is a trade-off in the number of fingerprints that can be taken into account in a real setting since the user expects to obtain a result from the algorithm in a reasonable amount of time. In this paper we will analyse the impact on the relative accuracy obtained when combining several consecutive fingerprints taken over a few seconds interval. In order to combine the fingerprints we propose two different algorithms (the results will be presented in Section Calculate the average of the measured fingerprints and make an estimate of the location of this average fingerprint. Estimate the location of each of the measured fingerprints and make a majority based decision in order to select the most likely location.
Section
All the tests described in this paper took place in the first floor of the Torres Quevedo Building (including the hallway and the research lab 4.1.C.03) of the Telematics Engineering Department at the Carlos III University of Madrid. In Figure
Experiments environment, as seen from our Android training application (Google Maps API v2).
For the first experiment 12 post-its (4 for each area) were arranged as training labels and they were separated by a distance of 3 meters. These markers indicated the points that were going to carry out the sampling. In total there were 12 training locations that we grouped and divided into 3 sequential areas: 6 interior area locations and the other remaining 6 were the ones we called “border” locations and we defined the three areas designated on the map. For each of the locations we needed to make 5 consecutive measurements (at intervals of 15 s) of the RSSI of Wi-Fi networks. Once the 12 points had been scanned we repeated the same procedure for each location; hence the training had involved 10 steps in two batches of 5 spaced in time. This made a total of 120 (12 locations
For the second experiment, a more complex setting was selected. We used 3 areas physically separated by walls and doors (two connected aisle sections, separated by a connecting door and a research laboratory wall to wall with one of the aisle sections). We took 6 location points in each of these areas following the proposed approach to sample points in the border between areas. The borders sample points have been measured with a 2-3-meter separation criteria.
To carry out the analysis of the tests we used 10-fold cross-validation to estimate how accurate a model is before implementing it. Using this technique the input data set is divided into 10 equal-sized subsets. Of these, one subset is taken to validate the generated model, while the remaining nine are used to train the system and generate the corresponding model. This process is repeated 10 times, using each of the 10 subsets exactly once to validate the model. The 10 results from the 10 iterations are then averaged to produce a single estimation. The sampling type we have chosen is “stratified” because not only does it generate random subsets but also ensures that the class distribution in these subsets is the same as in the initial set (Figure
In all experiments we simulated, using the RapidMiner Studio 6.0.008 tool, what would be the response of our indoor location system when training with each of the following algorithms?
This section captures the results of both experiments carried out. Section
In this section we present a comparison of the algorithms described in Section
These algorithms receive as input parameters the area in which the fingerprint was taken and the RSSIs values measured for each WAP. Initially we started with a set of 40 WAPs which involved training the system with 40 (RSSIs for each WAP) + 1 (area) parameters. Our first objective was using our algorithm to delete unstable WAPs (previously described in Section
Our second challenge was to study the behaviour of the algorithms when we trained the system with only border locations, that is, the ones that delimit an area, and to analyse whether the results were better than when all locations were used (or at least comparable, since training the system only with border locations simplifies the training face and increases scalability). In Figure
“Border” locations for each area.
Finally, we wanted to analyze how the variations in the measured RSSIs values overnight affect the predictions made by the system and if there was any way to improve them when applying our noise and stability filters (in our case, the building is dedicated to research activities involving wireless networks and some of the WAPs were moved of switched off from one day to the other).
In the following two subsections we show a comparison of the results we obtained when training the algorithms with all locations (12) compared to those obtained when we only use the “border” (6) and validate the models generated considering all locations (interior and borders). These results are presented in conjunction with the ones coming from our algorithm to delete unstable WAPs. This way we get a better overview of the impact of our three major contributions to improve the problem of indoor location based on smartphones and fingerprinting and for the metric “relative accuracy.”
Relative accuracy by algorithm based on the number of WAPs when training with all locations (part I).
#WAPs | ADTree | BFTree | Decision |
FT | J-48 |
---|---|---|---|---|---|
|
95.83 |
95.00 |
95.00 |
97.50 |
95.83 |
|
|||||
5 | 85.83 |
85.83 |
86.67 |
79.17 |
87.50 |
|
|||||
8 | 90.00 |
88.33 |
87.50 |
88.33 |
85.83 |
|
|||||
|
|
|
|
|
|
|
|||||
16 | 95.83 |
95.83 |
92.50 |
96.67 |
93.33 |
|
|||||
20 | 95.83 |
94.17 |
92.50 |
97.50 |
93.33 |
|
|||||
32 | 95.83 |
94.17 |
92.50 |
95.83 |
94.17 |
Relative accuracy by algorithm based on the number of WAPs when training with all locations (part II).
#WAPs | J-48graft | LADTree | LMT | NBTree | Random |
---|---|---|---|---|---|
|
93.33 |
85.83 |
98.33 |
97.50 |
97.50 |
|
|||||
5 | 86.67 |
88.33 |
77.50 |
85.00 |
85.83 |
|
|||||
8 | 85.83 |
87.50 |
87.50 |
91.67 |
92.50 |
|
|||||
|
|
|
|
|
|
|
|||||
16 | 91.67 |
90.83 |
96.67 |
98.33 |
96.67 |
|
|||||
20 | 91.67 |
90.00 |
96.67 |
95.00 |
97.50 |
|
|||||
32 | 91.67 |
90.83 |
95.00 |
98.33 |
98.33 |
Relative accuracy by algorithm based on the number of WAPs when training with all locations (part III).
#WAPs | Random |
REPTree | SVM |
|
NBC |
---|---|---|---|---|---|
|
90.83 |
93.33 |
99.17 |
94.17 |
85.00 |
|
|||||
5 | 80.83 |
82.50 |
71.67 |
83.33 |
78.33 |
|
|||||
8 | 89.17 |
86.67 |
85.00 |
87.50 |
79.17 |
|
|||||
|
|
|
|
|
|
|
|||||
16 | 92.50 |
93.33 |
97.50 |
95.83 |
97.50 |
|
|||||
20 | 90.00 |
92.50 |
98.33 |
96.67 |
95.00 |
|
|||||
32 | 87.50 |
93.33 |
98.33 |
95.83 |
86.67 |
Comparing the results for the first and fourth rows we can see that out of the 15 algorithms evaluated, the results are maintained or improved significantly for 9 of them (ADTree[+0.84], BFTree, FT, LADTree[+5.84], Random Forest, Random Tree[+3.34], REPTree[+0.84],
When we compare the results published for the WASP and Redpin algorithms with noise filtering and 5 access points [
To generate the comparative chart on Figure
Relative accuracy by algorithm as we take 40 or 10 WAPs.
Figure
Relative accuracy by algorithm based on the number of WAPs.
Relative accuracy by algorithm based on the number of WAPs when training with border locations (part I).
#WAPs | ADTree | BFTree | Decision |
FT | J-48 |
---|---|---|---|---|---|
|
98.17 |
95.17 |
94.50 |
99.83 |
91.50 |
|
|||||
5 | 91.33 |
87.67 |
85.50 |
70.50 |
85.00 |
|
|||||
8 | 93.33 |
94.17 |
89.83 |
88.17 |
90.17 |
|
|||||
|
|
|
|
|
|
|
|||||
16 | 97.33 |
95.50 |
94.83 |
99.17 |
95.17 |
|
|||||
20 | 97.50 |
95.83 |
94.83 |
98.83 |
96.17 |
|
|||||
32 | 98.00 |
94.17 |
94.83 |
99.00 |
91.50 |
Relative accuracy by algorithm based on the number of WAPs when training with border locations (part II).
#WAPs | J-48graft | LADTree | LMT | NBTree | Random |
---|---|---|---|---|---|
|
92.17 |
88.00 |
99.00 |
97.67 |
99.00 |
|
|||||
5 | 85.33 |
73.33 |
77.83 |
91.00 |
90.00 |
|
|||||
8 | 90.17 |
91.50 |
93.67 |
92.00 |
94.50 |
|
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||
20 | 96.17 |
93.50 |
98.83 |
99.67 |
98.33 |
|
|||||
32 | 92.17 |
87.33 |
99.33 |
98.00 |
99.00 |
Relative accuracy by algorithm based on the number of WAPs when training with border locations (part III).
#WAPs | Random |
REP |
SVM |
|
NBC |
---|---|---|---|---|---|
|
91.50 |
92.50 |
98.00 |
97.00 |
87.17 |
|
|||||
5 | 88.33 |
82.50 |
68.17 |
80.00 |
80.50 |
|
|||||
8 | 87.83 |
92.17 |
87.50 |
86.33 |
81.17 |
|
|||||
|
|
|
|
|
|
|
|||||
16 | 95.67 |
92.83 |
98.33 |
95.17 |
96.67 |
|
|||||
20 | 93.83 |
93.83 |
97.50 |
94.67 |
95.50 |
|
|||||
32 | 95.83 |
92.83 |
99.33 |
98.50 |
87.50 |
If we compare the values and reliability intervals obtained in this second test for the metric “relative accuracy” we can see a significant improvement as compared to when all locations were used. The increases/decreases in percentage points in those cases where we did not execute our algorithm to delete unstable WAPs are as follows (we take all the WAPs from the initial set, as indicated in the first row of combined Tables
Although for five (Decision Stump, J-48, J-48graft, REPTree, and SVM) of the fifteen algorithms evaluated the percentages decrease, when we run our algorithm to rule out unstable WAPs these results improve substantially (Decision Stump[+4.17], J-48[+2.50], J-48graft[+3.33], and SVM[+2.34]). Just to REPTree [−0.84] we do not get an improvement. For other algorithms markers would be as follows: ADTree[+2.33], BFTree[+1.83], FT[+1.67], LADTree[+0.16], LMT[+1.16], NBTree[+1.00], Random Forest[+1.00], Random Tree[+3.16],
Comparing the results of the second test for the first and fourth rows we can see that out of the 15 algorithms tested, the results are maintained or improved significantly for 11 of them (ADTree[+0.83], BFTree[+1.66], Decision Stump[+2.17], J-48[+4.33], J-48graft[+3.66], LADTree[+3.83], NBTree, Random Tree[+5.83], REPTree[+0.83], SVM[+0.17], and NBC[+9.83]) and slightly worse for the remaining 4 (FT[−0.66], LMT[−1.17], Random Forest[−0.50], and
When we compare the results published for the WASP and Redpin algorithms with noise filtering and 5 access points [
Figure
Relative accuracy by algorithm as we take 40 or 10 WAPs.
Figure
Relative accuracy by algorithm based on the number of WAPs.
Our goal here was to evaluate the system’s predictions for each of the three areas we have trained and labeled “1” (left side hallway), “2” (central hallway), and “3” (right side hallway). As detailed at the beginning of Section
In Tables
System predictions for area 1 when using 16 WAPs (part I).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0.6 | 0.6 | 0.6 | 0.6 | 0.7 | 0.8 | 0.8 | 0.6 | 0.5 | 0.7 |
0.3 | 0.2 | 0.3 | 0.3 | 0.2 | 0.0 | 0.1 | 0.2 | 0.2 | 0.0 |
0.1 | 0.2 | 0.1 | 0.1 | 0.1 | 0.2 | 0.1 | 0.2 | 0.3 | 0.3 |
System predictions for area 1 when using 16 WAPs (part II).
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|
0.5 | 0.7 | 0.9 | 0.7 | 0.7 | 0.4 | 0.6 | 0.5 | 0.4 | 0.4 |
0.3 | 0.0 | 0.0 | 0.2 | 0.2 | 0.4 | 0.2 | 0.3 | 0.3 | 0.1 |
0.2 | 0.3 | 0.1 | 0.1 | 0.1 | 0.2 | 0.2 | 0.2 | 0.3 | 0.5 |
System predictions for area 2 when using 16 WAPs (part I).
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 |
|
2 | 2 | 2 | 2 | 2 | 2 |
0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
0.9 | 0.4 | 0.7 | 0.4 | 0.8 | 1.0 | 0.8 | 0.9 | 0.9 | 0.9 |
0.0 | 0.3 | 0.2 | 0.2 | 0.2 | 0.0 | 0.1 | 0.0 | 0.0 | 0.0 |
System predictions for area 2 when using 16 WAPs (part II).
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
|
2 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
1.0 | 1.0 | 0.8 | 0.6 | 0.7 | 1.0 | 0.8 | 0.8 | 0.3 | 0.8 |
0.0 | 0.0 | 0.0 | 0.3 | 0.2 | 0.0 | 0.0 | 0.1 | 0.5 | 0.0 |
System predictions for area 3 when using 16 WAPs (part I).
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
---|---|---|---|---|---|---|---|---|---|
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
3 |
|
|
3 |
|
3 |
|
3 | 3 | 3 |
0.1 | 0.1 | 0.0 | 0.2 | 0.1 | 0.3 | 0.1 | 0.3 | 0.1 | 0.1 |
0.4 | 0.5 | 0.7 | 0.2 | 0.5 | 0.3 | 0.5 | 0.3 | 0.2 | 0.2 |
0.5 | 0.4 | 0.3 | 0.6 | 0.4 | 0.4 | 0.4 | 0.4 | 0.7 | 0.7 |
System predictions for area 3 when using 16 WAPs (part II).
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
---|---|---|---|---|---|---|---|---|---|
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
3 |
|
|
3 | 3 | 3 |
|
3 |
|
|
0.3 | 0.3 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.3 | 0.4 | 0.4 |
0.2 | 0.4 | 0.5 | 0.4 | 0.2 | 0.4 | 0.5 | 0.3 | 0.3 | 0.3 |
0.5 | 0.3 | 0.4 | 0.5 | 0.7 | 0.5 | 0.4 | 0.4 | 0.3 | 0.3 |
When we train the system with the fingerprints collected on the second day and validate with the ones corresponding to the first, adjusting our algorithm to take 16 WAPs, we obtain a relative accuracy of 80% (48/60 successes and 12/60 failures) (Tables
System predictions for area 1 when using 10 WAPs (part I).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0.9 | 0.9 | 0.9 | 0.9 | 0.9 | 1.0 | 0.9 | 1.0 | 1.0 | 1.0 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0.0 | 0.0 | 0.0 |
0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
System predictions for area 1 when using 10 WAPs (part II).
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0.9 | 0.9 | 0.9 | 0.9 | 0.9 | 0.9 | 1.0 | 1.0 | 1.0 | 0.9 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.0 | 0.0 | 0.0 | 0.1 |
System predictions for area 2 when using 10 WAPs (part I).
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 |
|
2 |
|
2 | 2 | 2 | 2 | 2 | 2 |
0.2 | 0.7 | 0.3 | 1.0 | 0.0 | 0.2 | 0.2 | 0.2 | 0.0 | 0.0 |
0.8 | 0.3 | 0.7 | 0.0 | 1.0 | 0.8 | 0.8 | 0.8 | 1.0 | 1.0 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
System predictions for area 2 when using 10 WAPs (part II).
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
0.2 | 0.2 | 0.3 | 0.0 | 0.0 | 0.2 | 0.2 | 0.3 | 0.2 | 0.0 |
0.8 | 0.8 | 0.7 | 0.9 | 1.0 | 0.8 | 0.8 | 0.7 | 0.7 | 1.0 |
0.0 | 0.0 | 0.0 | 0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0.0 |
For 10 access points the results are as follows: area 1 (20/20 successes and 0/20 failures) and area 2 (18/20 successes and 2/20 failures) (Tables
System predictions for area 1 when using 5 WAPs (part I).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0.8 | 0.6 | 0.7 | 0.8 | 0.7 | 0.8 | 0.6 | 0.8 | 0.5 | 0.5 |
0.0 | 0.2 | 0.2 | 0.2 | 0.2 | 0.0 | 0.0 | 0.0 | 0.2 | 0.1 |
0.2 | 0.2 | 0.1 | 0.0 | 0.1 | 0.2 | 0.4 | 0.2 | 0.3 | 0.4 |
System predictions for area 1 when using 5 WAPs (part II).
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0.3 | 0.4 | 0.6 | 0.7 | 0.7 | 0.7 | 0.8 | 0.5 | 0.4 | 0.5 |
0.0 | 0.2 | 0.1 | 0.2 | 0.2 | 0.0 | 0.0 | 0.0 | 0.2 | 0.2 |
0.7 | 0.4 | 0.3 | 0.1 | 0.1 | 0.3 | 0.2 | 0.5 | 0.4 | 0.3 |
System predictions for area 2 when using 5 WAPs (part I).
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
0.0 | 0.1 | 0.0 | 0.1 | 0.0 | 0.0 | 0.2 | 0.0 | 0.0 | 0.0 |
1.0 | 0.5 | 1.0 | 0.7 | 1.0 | 1.0 | 0.7 | 1.0 | 1.0 | 1.0 |
0.0 | 0.4 | 0.0 | 0.2 | 0.0 | 0.0 | 0.1 | 0.0 | 0.0 | 0.0 |
System predictions for area 2 when using 5 WAPs (part II).
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
|
2 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.4 | 0.0 |
1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.3 | 1.0 |
0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3 | 0.0 |
System predictions for area 3 when using 5 WAPs (part I).
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
---|---|---|---|---|---|---|---|---|---|
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
3 | 3 | 3 | 3 | 3 |
|
3 | 3 |
|
3 |
0.3 | 0.2 | 0.1 | 0.0 | 0.1 | 0.6 | 0.4 | 0.3 | 0.5 | 0.3 |
0.0 | 0.1 | 0.0 | 0.4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
0.7 | 0.7 | 0.9 | 0.6 | 0.9 | 0.4 | 0.6 | 0.7 | 0.5 | 0.7 |
System predictions for area 3 when using 5 WAPs (part II).
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
---|---|---|---|---|---|---|---|---|---|
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
|
|
3 | 3 | 3 |
|
|
3 | 3 | 3 |
0.3 | 0.5 | 0.1 | 0.2 | 0.2 | 0.6 | 0.5 | 0.2 | 0.4 | 0.3 |
0.4 | 0.2 | 0.3 | 0.3 | 0.2 | 0.1 | 0.1 | 0.3 | 0.0 | 0.0 |
0.3 | 0.3 | 0.6 | 0.5 | 0.6 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 |
If we analyze the results for 5 access points (area 1) we can see that the system succeeds 19 times out of 20 and fails once out of 20 (fingerprint 11). For area 2 the system is wrong in its prediction for the fingerprint 39; it succeeds 19 times out of 20 and it fails once out of 20. As for area 3 it succeeds 14 times out of 20 and it fails 6 out of 20 times (fingerprints 46, 49, 51, 52, 56, and 57). In total the system succeeds 52 times out of 60 and fails 8 times out of 60 which means there is a relative accuracy of 86.67%. If we compare this result with those obtained for 16 (80%) and 10 (63.34%) WAPs we get a difference of +6.67 and +23.33 percentage points, respectively. This finding is of special interest since it proves that when changes occur in the WAPs’ measured RSSIs considered day to day we need to be stricter when selecting access points in order to obtain better predictions.
As we saw in the previous tables the system made, among others, the following wrong predictions: for area 1 (fingerprint 11), for area 2 (fingerprint 39), and for area 3 (fingerprint 52). These are the three scenarios in which we will introduce average fingerprinting to help the system make the right predictions for each of the areas. To do this we will calculate the average fingerprint using (a) the previous fingerprint, (b) the previous and subsequent ones, and (c) two previous and two subsequent fingerprints to the current one.
As we see in Table
System predictions for area 1 when using average fingerprint based on the number of WAPs.
|
pred (tag) | conf (1) | conf (2) | conf (3) |
---|---|---|---|---|
16 WAPs | ||||
11 | 1 | 0.5 | 0.3 | 0.2 |
10-11 (average) | 1 | 0.5 | 0.2 | 0.3 |
10-11-12 (average) | 1 | 0.5 | 0.2 | 0.3 |
9-10-11-12-13 (average) | 1 | 0.5 | 0.2 | 0.3 |
|
||||
10 WAPs | ||||
11 | 1 | 0.9 | 0.0 | 0.1 |
10-11 (average) | 1 | 0.9 | 0.0 | 0.1 |
10-11-12 (average) | 1 | 0.9 | 0.0 | 0.1 |
9-10-11-12-13 (average) | 1 | 0.9 | 0.0 | 0.1 |
|
||||
5 WAPs | ||||
11 |
|
0.3 | 0.0 | 0.7 |
10-11 (average) | 1 | 0.8 | 0.0 | 0.2 |
10-11-12 (average) | 1 | 0.4 | 0.3 | 0.3 |
9-10-11-12-13 (average) | 1 | 0.5 | 0.1 | 0.4 |
System predictions for area 2 when using average fingerprint based on the number of WAPs.
|
pred (tag) | conf (1) | conf (2) | conf (3) |
---|---|---|---|---|
16 WAPs | ||||
39 |
|
0.2 | 0.3 | 0.5 |
38-39 (average) | 2 | 0.1 | 0.8 | 0.1 |
38-39-40 (average) | 2 | 0.1 | 0.8 | 0.1 |
37-38-39-40-41 (average) | 2 | 0.1 | 0.9 | 0.0 |
|
||||
10 WAPs | ||||
39 | 2 | 0.2 | 0.7 | 0.1 |
38-39 (average) | 2 | 0.0 | 0.9 | 0.1 |
38-39-40 (average) | 2 | 0.0 | 1.0 | 0.0 |
37-38-39-40-41 (average) | 2 | 0.3 | 0.7 | 0.0 |
|
||||
5 WAPs | ||||
39 | 1 | 0.4 | 0.3 | 0.3 |
38-39 (average) | 2 | 0.0 | 1.0 | 0.0 |
38-39-40 (average) | 2 | 0.0 | 1.0 | 0.0 |
37-38-39-40-41 (average) | 2 | 0.0 | 1.0 | 0.0 |
For area “2” the system also makes the right prediction when it receives the average fingerprint in the three modalities described before. For 16 WAPs the system says that it belongs to area 2 with 80% confidence whereas for 5 WAPs this percentage increases up to 100% (Table
System predictions for area 3 when using average fingerprint based on the number of WAPs.
|
pred (tag) | conf (1) | conf (2) | conf (3) |
---|---|---|---|---|
16 WAPs | ||||
52 |
|
0.30 | 0.40 | 0.30 |
51-52 (average) |
|
0.10 | 0.50 | 0.40 |
51-52-53 (average) | 3 | 0.10 | 0.40 | 0.50 |
50-51-52-53-54 (average) |
|
0.20 | 0.50 | 0.30 |
|
||||
10 WAPs | ||||
52 |
|
0.90 | 0.10 | 0.00 |
51-52 (average) |
|
0.90 | 0.10 | 0.00 |
51-52-53 (average) |
|
0.90 | 0.10 | 0.00 |
50-51-52-53-54 (average) |
|
0.90 | 0.10 | 0.00 |
|
||||
5 WAPs | ||||
52 |
|
0.50 | 0.20 | 0.30 |
51-52 (average) | 3 | 0.00 | 0.10 | 0.90 |
51-52-53 (average) | 3 | 0.00 | 0.20 | 0.80 |
50-51-52-53-54 (average) | 3 | 0.30 | 0.20 | 0.50 |
For area 3, fingerprint 52, the system also makes the right prediction when it receives the average fingerprint for 5 and 16 WAPs scenarios with 50% and 80% percent of reliability, respectively. However, when the system takes 10 WAPs it still fails. Why? This is because whether we calculate the average fingerprint using the previous one (51), one previous fingerprint and subsequent one (51 and 53) or two previous and two subsequent fingerprints (50, 51, 53, and 54) the predictions made by the system for these fingerprints are also wrong so there is no way to get an upgrade.
A more complex scenario including 3 wall and door separated areas has also been implemented as presented in Figure
Validation points.
A similar approach to evaluate the 15 machine learning algorithms as in the previous section was used. The same sampling schema as in Section
Estimated areas for the validation points.
Validation points | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|
||||||||||||||||||
Estimated area | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 2 | 3 | 3 | 3 |
All validation points are properly located except point 15 which is a point very close to the border between areas 2 and 3. For a moving target to be located, the assessed trajectory information could be used to decide in which area a user is in order to improve the accuracy of the algorithms when approaching the border of two areas.
In this paper we have presented several ways to optimize fingerprinting-based techniques for locating users indoors when only room level accuracy is required.
One of the parameters studied is the way to select the most convenient sampling points to measure training fingerprints in order to increase the accuracy while minimizing the memory and CPU execution requirements. Previous studies have focused on either an exhaustive grid of sample points or a random selection of them. This paper concludes that, for room level accuracy, border points between rooms or areas contain the required information for the prediction algorithm in order to provide a similar or even better accuracy that the one provided by exhaustive or random sampling techniques.
The paper also provides a comparative analysis and evaluation of the performance of different decision algorithms identifying under which circumstances each of them work better.
Another contribution presented in this paper is the proposal and evaluation of a new way to filter unstable access points in order to increase accuracy and minimize execution requirements. Taking into account the quality and stability over time of the received signals from the different WAPs, the algorithm selects those maximizing both the signal strength and the minimal fluctuations over time. Several thresholds are defined. The experimental results show that the algorithms find optimal behavior when filters are configured to select between 10 and 16 WAPs.
Finally, the paper has presented that taking several consecutive fingerprints when locating a mobile device can improve the accuracy of the results. A compromise exists between the accuracy obtained and the time required to locate the user. The results show that 3 consecutive measures are a reasonable trade-off.
The authors declare that there is no conflict of interests regarding the publication of this paper.
The research leading to these results has received funding from the “HERMES-SMART DRIVER” Project TIN2013-46801-C4-2-R within the Spanish “Plan Nacional de I+D+I” funded by the Spanish Ministerio de Economía y Competitividad, from the Grant PRX15/00036 for the “Estancias de Movilidad de Profesores e Investigadores Seniores en Centros Extranjeros de Enseñanza Superior e Investigación,” from the Ministerio de Educación Cultura y Deporte, and from the Spanish Ministerio de Economía y Competitividad funded projects (cofinanced by the Fondo Europeo de Desarrollo Regional (FEDER)), IRENE (PT-2012-1036-370000), COMINN (IPT-2012-0883-430000), and REMEDISS (IPT-2012-0882-430000) within the INNPACTO program.