Fingerprinting-based Indoor Positioning
- Dr. R. Montoliu, Dr J. Torres-Sospedra,
- Dr. A. Pérez-Navarro, Dr. J. Conesa, Dr. O. Belmonte
Fingerprinting-based Indoor Positioning Dr. R. Montoliu, Dr J. - - PowerPoint PPT Presentation
Fingerprinting-based Indoor Positioning Dr. R. Montoliu, Dr J. Torres-Sospedra, Dr. A. Prez-Navarro, Dr. J. Conesa, Dr. O. Belmonte The main objective of this tutorial is: The students will learn how to develop a fingerprint-based
algorithm from zero avoiding the same mistakes we faced when we started.
Phd student G. Mendoza
Part Time Content 1 17:00-17:15 Introduction to fingerprinting 2 17:15-17:30 Theoretical background 3 17:30-17:45 The training step 4 17:45-18:15 Time to perform the training step 5 18:15-18:30 The operational step 6 18:30-18:45 Time to play with operational source code 7 18:45-19:00 How to improve the ILS 8 19:00-19:15 Time to improve the ILS 9 19:15-19:30 Awards
○ Deploy beacons ○ Use existing beacons and the position of the beacons is known ○ Use existing beacons and the position of the beacons is unknown ○ No use beacons
https://www.kinvey.com/wp-content/uploads/2014/05/beacon.jpg
Beacon ID Localization 1 [lat, long] ... [lat, long] N [lat, long]
http://www.clipartkid.com/images/679/pedestrian-20clipart-clipart-panda-free-clipart-images-gz3PIn-clipart.png
RSSI: Received Signal Strength Indication
○ The desired location is the one of the closest beacon
○ Apply trilateration
○ Apply trilateration
○ Trilateration techniques can be applied
https://pixabay.com/static/uploads/photo/2013/07/13/13/24/fist-160957_640.png https://pixabay.com/static/uploads/photo/2013/07/13/13/24/fist-160958_640.png
Note that the existing beacons could be deployed for providing some services, but not localization.
○ Trilateration techniques can be applied
○ Most of the times, without localization purpose
○
Trilateration techniques can not be applied
○ Algorithms are in “work in progress” state
○ Training step ○ Operational step
○ Position is unknown
MAC RSII
xx-xx-xx-xx-xx-xx
...
xx-xx-xx-xx-xx-xx
Latitude Longitude
MAC RSII
xx-xx-xx-xx-xx-xx
...
xx-xx-xx-xx-xx-xx
Latitude Longitude MAC RSII
xx-xx-xx-xx-xx-xx
...
xx-xx-xx-xx-xx-xx
Latitude Longitude
Training Fingerprints database
○ https://archive.ics.uci.edu/ml/datasets/UJIIndoorLoc
○ 21048 fingerprints ○ 520 different MACs ○ 4 multifloor building
○ Joaquín Torres-Sospedra, Raúl Montoliu, Adolfo Martínez-Usó, Tomar J. Arnau, Joan P. Avariento, Mauri Benedito-Bordonau, Joaquín Huerta “UJIIndoorLoc: A New Multi-building and Multi-floor Database for WLAN Fingerprint-based Indoor Localization Problems” In Proceedings of the Fifth International Conference on Indoor Positioning and Indoor Navigation, 2014.
MAC001 MAC002 ... MAC520 Longitude Latitude Floor Building User Phone Timestamp
MAC RSII
xx-xx-xx-xx-xx-xx
...
xx-xx-xx-xx-xx-xx
Training Fingerprints database Indoor Localization System MAC RSII
xx-xx-xx-xx-xx-xx
...
xx-xx-xx-xx-xx-xx
○ The system only use the information captured in a particular time moment to estimate the location.
○ The system use the last information captured and some historic data. ○ Tracking.
○ Reflection ○ Refraction ○ Diffraction ○ Absorption
By Витольд Муратов (Own work) [Public domain], via Wikimedia Commons
Per Inductiveload, NASA [GFDL (http://www.gnu.org/copyleft/fdl.html) o CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via la Wikimedia Commons
Per Inductiveload, NASA [GFDL (http://www.gnu.org/copyleft/fdl.html) o CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via la Wikimedia Commons
Per Inductiveload, NASA [GFDL (http://www.gnu.org/copyleft/fdl.html) o CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via la Wikimedia Commons
WiFi: 2,4 GHz 5 GHz
θi θr θt Separation interface n1 n2
θi θr θt Separation interface n1 n2
(for parallel polarization)
At the end will always be a minimum.
r1 r2
Per Bbkkk (Treball propi) [GFDL (http://www.gnu.org/copyleft/fdl.html) o CC BY-SA 4.0-3.0-2.5-2.0-1.0 (http://creativecommons.org/licenses/by-sa/4.0-3.0-2.5-2.0-1.0)], via la Wikimedia Commons
Intensity Attenuation coefficient Penetration depth frequency magnetic permeability conductivity
Absorption A.P.
Difraction A.P.
Reflection A.P.
Specific Absorption Rate (SAR) Power absorved mass Also exists the Whole Body SAR (WBSAR)
Absorption Cross Section Power absorved Power density in the incident wave Silhouette area of a perfectly-absorbing surface that would absorb the same power as the loading object under discussion
Source: S. Gabriel, R. W. Lau, and C. Gabriel, “The dielectric properties of biological tissues:
and Biology, vol. 41, no. 11, p. 2271, 1996.
Frequency of 1 cm penetration Dry Skin 5.2 GHz Infiltrated Fat 9.5 GHz Muscle 4.7 GHz
Source: Melia, Gregory (2013) Electromagnetic Absorption by the Human Body from 1 - 15 GHz. PhD thesis, University of York.
Source: Melia, Gregory (2013) Electromagnetic Absorption by the Human Body from 1 - 15 GHz. PhD thesis, University of York.
Source: Melia, Gregory (2013) Electromagnetic Absorption by the Human Body from 1 - 15 GHz. PhD thesis, University of York.
Source: Melia, Gregory (2013) Electromagnetic Absorption by the Human Body from 1 - 15 GHz. PhD thesis, University of York.
Source: S. Garcia-Villalonga and A. Perez-Navarro, "Influence of human absorption of Wi-Fi signal in indoor positioning with Wi-Fi fingerprinting," Indoor Positioning and Indoor Navigation (IPIN), 2015 International Conference on, Banff, AB, 2015, pp. 1-10. doi: 10.1109/IPIN.2015.7346778
between them
RadioMap Test
9 A.M. 4 P.M.
Airplace
○ Reflection ○ Refraction ○ Absorption ○ Diffraction Changes in the environment can affect values of WiFi measured
Changes in the number of people affect values of WiFi measured
https://www.flickr.com/photos/shonk/57302289
https://www.flickr.com/photos/shonk/57302289
RSSI1, RSSI2, RSSI3, RSSI4, RSSI5
Strong, Medium, Medium, Medium, Weak Medium, Strong, Strong, Medium, Medium Weak, Medium, Medium, Strong, Medium Weak, Weak, Medium, Medium, Strong
Medium, Strong, Strong, Medium, Medium Medium, Strong, Strong, Medium, N/A Medium, Strong, Medium, Medium, Medium Strong, Strong, Strong, Medium, Medium
https://pixabay.com/es/persona-icono-salida-de-emergencia-1332793/
Medium, Strong, Strong, Medium, N/A
N/A, Weak, Strong, N/A, N/A Very extreme case
Medium, Strong, Strong, Medium, Medium Medium, Strong, Strong, Medium, Medium Medium, Strong, Strong, Medium, Medium Medium, Strong, Strong, Medium, Medium
https://commons.wikimedia.org/wiki/File:Mobile_phone_font_awesome.svg https://www.goodfreephotos.com/vector-images/mobile-cellphone-vector-clipart.png.php https://pixabay.com/es/smartphone-tel%C3%A9fono-m%C3%B3vil-tel%C3%A9fono-1132675/ https://commons.wikimedia.org/wiki/File:Mobile_phone.svg
Medium, Strong, Strong, Medium, Medium Medium, Medium, Strong, Medium, Medium Medium, Strong, Strong, Medium, Medium-Weak Medium-Weak, Strong, Strong, Medium, Medium Strong ~ -40dBm Strong ~ -50dBm Strong ~ -30dBm Strong ~ -35dBm
https://i.ytimg.com/vi/OyRW9uFSmh0/maxresdefault.jpg
Strong, Medium, Medium, Medium, Weak Medium, Strong, Strong, Medium, Medium Weak, Medium, Medium, Strong, Medium Weak, Weak, Medium, Medium, Strong
https://pixabay.com/p-303768/?no_redirect
Cover all the environment Consider spatial density Consider temporal density Consider device heterogeneity Consider dynamics of the environment
https://c2.staticflickr.com/4/3228/2373073659_d231a0cc65.jpg
You need independent data to fine tune and validate your system
http://www.relatably.com/m/img/valid-memes/78c0b38fecebd3c736c8123b34fc69059aedce91ada224ee82677ba7707e14f9.jpg
Avoid using Training Data! It may provide slanted information. N consecutive fps: (N-1) Training and 1 for validation ? No!
Necessary to: 1. Provide an estimation of the IPSs error: geometric error, hit detection rates,... 2. Calibrate your System: kNN algorithms and variants 3. Filter APs 4. Among many other useful operations :-)
What happens if there is no Validation Data ? 1. k-fold Cross-Validation of training data 2. Consider groups of samples: ref point, user, device, day, among others to increase diversity and independence of the sets
https://c2.staticflickr.com/4/3228/2373073659_d231a0cc65.jpg
Your system may work fine All the contexts have not been considered
Depending on the main objective of the IPS, you may have
1. Operational Data Fingerprints from working system + Feedback from users 2. Testing Data Fingerprints explicitly collected for testing Research: Training + Validation + Test Better if Test Data is Blind UJIIndoorLoc has T + V + Blind TS !!!
Slow procedure! High precision in reference points High precision on the fingerprint measures Consecutive / Cumulative values Dense radio map Simple
Slow procedure! High precision in reference points High precision on the fingerprint measures Consecutive / Cumulative values Dense radio map Simple
Slow procedure! High precision in reference points High precision on the fingerprint measures Consecutive / Cumulative values Dense radio map Simple
Fast procedure! You have a few reference or calibration points Depends on user’s velocity Fingerprint readings may be close or far to ref. points Fingerprint attached to a segment of the path The reference point may be displaced to the real path Light radio map Complex
https://c1.staticflickr.com/9/8429/7755469546_61f6d51490_b.jpg
https://pixabay.com/p-1546436/
mac, rssi, channel, bssid, .... position (XYZ), room, area, floor, building, ...
RSSI1 RSSI2 RSSI3 ... RSSIn X Y Z ... Others
+100
...
Use of default value for non-detected signal +100 Use of a documented coordinate system XYZ Use of additional location info: office, area, floor, building, campus, city, ….
https://cdn.meme.am/instances/500x/58606836.jpg
http://www.soulseeds.com/wp-content/uploads/2011/10/take-ownership.jpg
DON’T FORGET TO UPDATE THE REFERENCE POINT !!!
DON’T FORGET TO UPDATE THE REFERENCE POINT !!!
Algorithm with k=1
○ Training database (samples and labels of each sample) ○ Test sample
○ Label of the test sample
○ Estimate the distances between the test sample and all training ones ○ Return the label of the training sample with less distance
Algorithm with k>1
○ Training database (samples and labels of each sample) ○ Test sample
○ Label of the test sample
○ Estimate the distances between the test sample and all training ones ○ Get the labels of the k-th training samples with less distance ○ Return the majority label
label: longitude and latitude.
○ The localization of the test sample, is the localization of the closest sample in the training dataset. ■ “closest” in the feature space
○ The localization of the test sample, is the centroid of the localizations of the k-th closest samples in the training dataset.
○ The localization of the test sample, is the centroid of the localizations of the k-th closest samples in the training dataset.
function IPIN2016_Tutorial_TrainYourSystem conf = SetMyConfiguration(); data = ReadAllData(conf); data = ChangeDataRepresentation(data); for i=1:conf.experiment_repetitions folds = DivideInFolds(number_of_samples,conf); vmean_error_in_meters(i) = KnnWithCrossValidation(data, folds, conf); end mean_error_in_meters = mean(vmean_error_in_meters); fprintf('\n The method has obtained an error of %f meters.\n',mean_error_in_meters); end
function mean_error_in_meters = KnnWithCrossValidation(data, folds, conf) M = conf.number_of_macs; for i=1:conf.number_of_folds for j=1:conf.number_of_folds if (i==j) test_data = data(folds{i},1:M); test_labels = data(folds{i},M+1:M+2); else train_data = [train_data; data(folds{j},1:M)]; train_labels = [train_labels; data(folds{j},M+1:M+2)]; end end est_labels = ApplyKnn(train_data,train_labels,test_data,conf); verror(i) = EstimateMeanErrorMeters(est_labels,test_labels); end mean_error_in_meters = mean(verror); end
function est_labels = ApplyKnn(train_data,train_labels,test_data,conf) distance_matrix = GetDistanceMatrix(train_data,test_data,conf); for i=1:N_test vpos = GetPositionsOfTheMinimums(distance_matrix,conf); lat = 0; long = 0; for j=1:conf.k lat = lat + train_labels(vpos(j),2); long = long + train_labels(vpos(j),1); end est_labels(i,:) = [ long/conf.k, lat/conf.k ]; end end
Presence of Noisy WAPs 1. SSID ‘iPhone of …’ 2. Very weak signal 3. Located at distant places 4. High variability in the same reference point
Huge workload of the kNN algorithm: 1. Simplify reference dataset
a. Calculate means b. Remove noisy fingerprints in ref. point c. Remove repeated fingerprints
2. Apply clustering pre-stage
a. Group similar fingerprints - Representative FP
3. Reduce reference dataset on-the-fly
a. Common macs b. Strongest signal
kNN Centroid
kNN Centroid
FS = 10 FS = 40 FS = 120
kNN Centroid
FS = 10 FS = 40 FS = 120
kNN Centroid
FS = 10 FS = 40 FS = 120 Weight = 17 Weight = 4 Weight = 1
kNN Centroid
FS = 10 FS = 40 FS = 120 Weight = 12 Weight = 3 Weight = 1
kNN Centroid
FS = 10 FS = 40 FS = 120 Weight = 144 Weight = 9 Weight = 1
kNN Centroid
FS = 10 FS = 40 FS = 120
X
X
X vs
N/A
N/A N/A
N/A vs vs
Continuity
N/A
N/A
N/A vs
N/A
N/A
○ ApplyKnn ○ ChangeDataRepresentation
○ TestKnn