added the reviewed tex document

This commit is contained in:
2017-08-02 09:43:43 +02:00
parent 1eaf8344f8
commit 0ea5832a72
139 changed files with 276512 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
\abstract{%
%
Indoor localization and indoor pedestrian navigation is an active field of research
with increasing attention.
%
As of today, many systems will run on commercial smartphones but most of them still rely on
fingerprinting which demands for high setup- and maintenance-times.
Alternatives, such as simple signal strength prediction models, provide fast setup times,
but often do not provide the accuracy required for use-cases like indoor navigation or
location-based services.
%
While more complex models provide an increased accuracy by including architectural knowledge
about walls and other obstacles, they often require additional computation during runtime and
demand for prior knowledge during setup.
\\%
Within this work we will thus focus on simple, easy to set-up models and evaluate their
performance compared to real-world measurements. The evaluation ranges from a fully empiric, instant
setup, given the transmitter locations are well-known, to a highly-optimized scenario based
on some reference measurements within the building. Furthermore, we will propose a new
signal strength prediction model as a combination of several simple ones. This tradeoff
increases accuracy with only minor additional computations.
%
All of the optimized models are evaluated within an actual smartphone-based
indoor localization system. This system uses the phone's \docWIFI{}, barometer and IMU
to infer the pedestrian's current location via recursive density estimation based on particle filtering.
\\%
We will show that while a \SI{100}{\percent} empiric parameter choice for the model already provides enough
accuracy for many use-cases, a small number of reference measurements is enough to dramatically increase
such a system's performance.
%
}

View File

@@ -0,0 +1,62 @@
\section{Conclusion and Future Work}
As denoted within the previous evaluations and discussions, the accuracy of
indoor localization systems based on \docWIFI{} depends on a manifold
of parameters and even minor adjustments can yield visible improvements.
Depending on required accuracy and acceptable setup- and maintenance times,
several approaches are conceivable:
If the use-case does not require utmost accuracy and the locations of permanently
installed transmitters is already well known, just using empiric model parameters
is a viable choice for many situations.
However, when combined with (particle) filtering, a heavily constrained
movement model might be a potential issue, as it can get stuck when
sensor observations or model predictions are too erroneous.
Using a small number of reference measurements to optimize the model parameters will already suffice
to improve such errors. Furthermore, it also removes the need for prior knowledge
about transmitter locations, as those can be estimated via optimization.
For the best accuracy, more complex signal strength propagation models
are required, which in turn demand for more reference measurements.
%
However, while using several instances of a simple propagation model
for different regions within a building is able to decrease the estimation
error, this approach might require prior guessing of where to place those regions.
As indicated by the error plots, just using one model for every floor within the building
seems to be a viable alternative.
More complex models, that include information about walls and other obstacles, should
be able to reduce the maximum error, which remains for some locations, at the cost of additional computations.
Special data-structures for pre-computation combined with online interpolation might
be a viable choice for utmost accuracy that is still able to run on
a commercial smartphone in real-time.
While we were able to improve the performance of the \docWIFI{} sensor component,
the filtering process should be more robust against erroneous observations.
Getting stuck should be prevented, independent of minor changes in quality for
the signal strength prediction model \cite{Fetzer-17}.
Our \docWIFI{} quality metric often was able to determine situations that
would yield multimodal or bad \docWIFI{} estimations and temporarily
ignoring this sensor prevented additional errors. Still, there were some
cases where the metric failed to correctly determine a potentially bad
observation, which leaves room for future improvements.
%100 prozent optimierung ist nicht moeglich, es gibt
%immer stellen, die, zugunsten von anderen, schlechter werden.
%es haengt auch stark davon ab, was man optimiert, das modell,
%die uebereinstimmung, welche fingerprints [schlechte vs. gute stellen]
%zudem ist das modell fuer unser gebaeude nicht gut ggeeignet.
%zu viele verschiedene materialien und trennwaende, APs immer in raeumen,
%nie auf dem flur. viele hindernisse, wenige freie raeume.
%andere modelle koennten hier helfen, erfordern dann aber zur
%aufzeit mehr berechnung, oder muessten vorab auf einem grid berechnet
%werden \todo{cite auf competition}
%besseres modell mit (leichter) interpolation zwischen den randbereichen?

View File

@@ -0,0 +1,895 @@
\section{Experiments}
% intro
Within our experiments we will first have a look at model optimizations to reduce the error (in \decibel)
between the signal strengths predicted by the models and real-world conditions in section \ref{sec:evalModelOpt}.
This optimization is based on 121 reference measurements conducted at known locations.
Likewise, we will examine the impact of using less reference measurements for this process.
Hereafter, in section \ref{sec:evalWifiMeter}, we examine the resulting accuracy (in \meter)
when using the optimized models for localization solely by the \docWIFI{} component without additional sensors, assumptions or filtering.
This evaluation uses smartphone data from 13 walks within the buildings and corresponding ground truth for error estimations.
Finally, all models are evaluated in the context of our indoor localization system \refeq{eq:recursiveDensity},
using additional smartphone sensors and the building's floorplan in section \ref{sec:evalFiltered}.
\changed{%
For simplicity reasons all calculations have been performed using desktop hardware. However,
the setup is able to run on commercial smartphones as well as it uses C++ code: The presented system participated
as winner in the \emph{IPIN 2016 Indoor Localization Competition} using a \emph{Motorola Nexus 6}
smartphone. It took around 90 minutes to perform reference measurements within the area
of the competition -- the floorplan was known beforehand -- followed by one minute of calculation time for
the \emph{\optParamsPosEachAP{}} strategy. Using 5000 particles for the particle filter it took around
\SI{100}{\milli\second} for each transition/evaluation step. Those updates were scheduled every
\SI{500}{\milli\second}.
}%
All optimizations and evaluations \changed{conducted within this work} took place within two adjacent buildings (4 and 2 floors, respectively)
and two connected outdoor regions (entrance and inner courtyard),
\SI{110}{\meter} x \SI{60}{\meter} in size.
Within all \docWIFI{} observations, we only consider the \docAP{}s that are permanently installed
and can be identified by their well-known MAC address.
Temporal and movable transmitters like smart TVs or smartphone hotspots are ignored as they might cause estimation errors.
The \docWIFI{} quality factor from section \ref{sec:wifiQuality} was configured with
a lower bound of \SI{-85}{\decibel m}, an upper bound of \SI{-70}{\decibel m} and a threshold of $0.25$.
%
Unfortunately, due to legal reasons, our institution does not allow depicting the actual location
of installed transmitters within the following figures.
%modell direkt fuer den gelaufenen pfad optimiert (also wirklich jede wifi messung direkt auf den ground-truth)
%der fehler wird zwar kleiner, ist aber immernoch deutlich spürbar. das spricht dafür, dass das modell einfach nicht
%gut geeignet ist.
%optimierungs input: alle 4 walks samt ground-truth
%dann kommt fuer die 4 typen [fixed, all same par, each par, each par pos]
%log probability 50 75, meter 50, 75
% -------------------------------- optimization -------------------------------- %
\subsection{Model optimization}
\label{sec:evalModelOpt}
As the signal strength prediction model is the core of the absolute positioning component
described in section \ref{sec:system}, we start with the model parameter optimization (see section \ref{sec:optimization}).
\mTXP{}, \mPLE{} and \mWAF{} will be estimated based on some reference measurements using
various optimization strategies. The results of those optimization strategies are compared
with each other and an empiric parameter choice:
\mTXP{} = \SI{-40}{\decibel{}m} @ \SI{1}{\meter}
(defined by the usual \docAPshort{} transmit power for Europe), a path loss exponent $\mPLE{} = 2.5$ and
$\mWAF{} = \SI{-8}{\decibel}$ per floor/ceiling (made of reinforced concrete)
\cite{PathLossPredictionModelsForIndoor, ElectromagneticPropagation, ANewPathLossPrediction}.
\reffig{fig:referenceMeasurements} depicts the location of the used 121 reference measurements.
Each location was scanned 30 times ($\approx$ \SI{25}{\second} scan time),
non-permanent \docAP{}s were removed, the values were grouped per physical transmitter (see section \ref{sec:vap})
and aggregated to form the average signal strength per transmitter.
\begin{figure}
\begin{subfigure}[t!]{0.48\textwidth}
\input{gfx2/all_fingerprints.tex}
\caption{
The size of each square denotes the number of permanently installed \docAPshort{}s
that were visible while scanning, and ranges between 2 and 22 with an average of 9.
}
\label{fig:referenceMeasurements}
\end{subfigure}
\enskip\enskip
\begin{subfigure}[t!]{0.48\textwidth}
\input{gfx2/model-bboxes.tex}
\caption{
Each distinct floor-color denotes a region (6 indoors, 1 outdoors) for {\em \optPerRegion{}}.
Often more than one bounding box is needed to describe the region's shape.
}
\label{fig:modelBBoxes}
\end{subfigure}
\caption{
\changed{
Locations of the 121 reference measurements (left) and bounding-boxes used for {\em \optPerRegion{}} (right).
Indoor-areas are denoted using a grey fill-color per floor, outdoor-areas are green.
}
}
\end{figure}
% used reference measurements
%\begin{figure}
% {
% \centering
% \input{gfx/all_fingerprints.tex}
% }
% \caption{
% Locations of the 121 reference measurements.
% The size of each square denotes the number of permanently installed \docAPshort{}s
% that are visible at this location,
% and ranges between 2 and 22 with an average of 9.
% }
% \label{fig:referenceMeasurements}
%\end{figure}
% visible APs:
% cnt(121) min(2.000000) max(22.000000) range(20.000000) med(8.000000) avg(9.322314) stdDev(4.386709)
\begin{figure}
\centering
\input{gfx2/compare-wifi-in-out.tex}
\caption{
\changed{
Measurable signal strengths of a testing \docAPshort{} (black dot).
While the signal diminishes slowly along the corridor (wide, black rectangle)
the building's metallized windows (dashed, grey lines) between the indoor-region (grey)
and the outdoor-region (green) attenuate the signal by over
\SI{30}{\decibel} (small, black rectangle).
}
}
\label{fig:wifiIndoorOutdoor}
\end{figure}
\reffig{fig:wifiIndoorOutdoor} depicts the to-be-expected issues by examining the signal strength
values of the reference measurements for one \docAP{}.
Even though the transmitter is only \SI{5}{\meter} away from the reference
measurement (small box), the metallized windows attenuate the signal as much as \SI{50}{\meter}
of corridor (wide rectangle). The model described in section \ref{sec:sigStrengthModel} will not be able
to match such situations due to the lack of obstacle information.
%
We will thus look at various optimization strategies and the error between
the resulting estimation model and our reference measurements:
\begin{itemize}
\item{
{\em\noOptEmpiric{}} uses the same three empiric parameters \mTXP{}, \mPLE{}, \mWAF{} for each \docAPshort{} in combination
with its position, which is well known from the floorplan.
}
\item{
{\em\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
using the reference measurements (convex function). All transmitters share the same three parameters.
}
\item{
{\em\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
parameters for all. This still denotes a convex function per transmitter.
}
\item{
{\em\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements (non-convex function).
}
\item{
{\em\optPerFloor{}} and {\em\optPerRegion{}} are just like {\em \optParamsPosEachAP{}} except that
there are several sub-models, each of which is optimized for one floor/region instead of the whole building.
The chosen bounding boxes and resulting sub-models are depicted in \reffig{fig:modelBBoxes}.
}
\end{itemize}
\reffig{fig:wifiModelError} shows the optimization results for all strategies which are as expected:
The estimation error is indirectly proportional to the number of optimized parameters.
However, while median- and average-errors are fine, maximal errors sometimes are relatively high.
As depicted in \reffig{fig:wifiModelErrorMax}, even with {\em \optPerRegion{}}, some locations simply do not fit the model,
and thus lead to high (local) errors.
%
Looking at the optimization results for \mTXP{}, \mPLE{} and \mWAF{} supports
this finding. While the median for those values based on all optimized transmitters is totally sane
(\SI{-42}{\decibel{}m}, \SI{2.4}, \SI{-6.0}{\decibel}), the minimum and maximum values are far beyond the physically possible range.
The same holds for the estimated transmitter position when using {\em \optParamsPosEachAP{}}: The median
distance between estimated and real position is $\sim$\SI{8}{\meter} and the maximum $\sim$\SI{27}{\meter}.
For \SI{68}{\percent} of all installed transmitters, the estimated floor-number matched the real location.
\newcommand{\tablefont}{\scriptsize}
\begin{figure}
\centering
\begin{subfigure}{0.52\textwidth}
\input{gfx2/wifi_model_error_0_95.tex}
\end{subfigure}%
\begin{subfigure}{0.47\textwidth}
\centering
\begin{tabular}{|l|c|c|c|c|}
\hline
& \tablefont 25 \% & \tablefont median & \tablefont 75 \% & \tablefont avg \\\hline
\tablefont\noOptEmpiric{} & \tablefont\SI{2.5}{\decibel} & \tablefont\SI{5.6}{\decibel} & \tablefont\SI{9.3}{\decibel} & \tablefont\SI{6.5}{\decibel} \\\hline
\tablefont\optParamsAllAP{} & \tablefont\SI{2.0}{\decibel} & \tablefont\SI{4.3}{\decibel} & \tablefont\SI{7.5}{\decibel} & \tablefont\SI{5.4}{\decibel} \\\hline
\tablefont\optParamsEachAP{} & \tablefont\SI{1.6}{\decibel} & \tablefont\SI{3.3}{\decibel} & \tablefont\SI{6.2}{\decibel} & \tablefont\SI{4.4}{\decibel} \\\hline
\tablefont\optParamsPosEachAP{} & \tablefont\SI{1.5}{\decibel} & \tablefont\SI{3.0}{\decibel} & \tablefont\SI{5.5}{\decibel} & \tablefont\SI{3.8}{\decibel} \\\hline
\tablefont\optPerFloor{} & \tablefont\SI{0.7}{\decibel} & \tablefont\SI{1.6}{\decibel} & \tablefont\SI{3.3}{\decibel} & \tablefont\SI{2.6}{\decibel} \\\hline
\tablefont\optPerRegion{} & \tablefont\SI{0.6}{\decibel} & \tablefont\SI{1.4}{\decibel} & \tablefont\SI{3.1}{\decibel} & \tablefont\SI{2.4}{\decibel} \\\hline
\end{tabular}
\vspace{8mm}
\end{subfigure}
\caption{
Cumulative error distribution for all optimization strategies. The error results from the (absolute) difference
between model predictions and real-world values for each reference measurement.
The higher the number of variable parameters, the better the model resembles real-world conditions.
}
\label{fig:wifiModelError}
\end{figure}
\begin{figure}
\centering
\begin{subfigure}{0.32\textwidth}
\centering
\input{gfx2/wifiMaxErrorNN_opt0.tex}
\caption{\em \noOptEmpiric{}}
\label{fig:wifiModelErrorMaxA}
\end{subfigure}
\begin{subfigure}{0.32\textwidth}
\centering
\input{gfx2/wifiMaxErrorNN_opt3.tex}
\caption{\em \optParamsPosEachAP{}}
\label{fig:wifiModelErrorMaxB}
\end{subfigure}
\begin{subfigure}{0.32\textwidth}
\centering
\input{gfx2/wifiMaxErrorNN_opt5.tex}
\caption{\em \optPerRegion{}}
\label{fig:wifiModelErrorMaxC}
\end{subfigure}
\caption{
\changed{%
At every of the 121 reference measurements more than one \docAPshort{} is visible, and for
for every visible \docAPshort{} there is a difference between model estimated and real-world signal strength.
The three figures depict the highest among those errors around the location of each reference measurement.
While optimization is able to reduce the average error, local maxima remain due to overadaption.
}%
}
\label{fig:wifiModelErrorMax}
\end{figure}
%\begin{figure}
% \input{gfx/wifi_model_error_0_95.tex}
% %\input{gfx/wifi_model_error_95_100.tex}
% \caption{
% Comparison between different optimization strategies by examining the error (in \decibel) at each reference measurement.
% The higher the number of variable parameters, the better the model resembles real world conditions.
% }
% \label{fig:wifiModelError}
%\end{figure}
% statds:
%TXP: cnt(34) min(-67.698959) max(4.299183) range(71.998146) med(-41.961170) avg(-41.659286) stdDev(17.742294)
%EXP: cnt(34) min(0.932817) max(4.699000) range(3.766183) med(2.380410) avg(2.546959) stdDev(1.074687)
%WAF: cnt(34) min(-27.764957) max(5.217187) range(32.982143) med(-5.921916) avg(-7.579522) stdDev(5.840527)
%Pos: cnt(34) min(3.032438) max(26.767128) range(23.734690) med(7.342710) avg(8.571227) stdDev(4.801449)
While {\em \optPerRegion{}} is able to overcome the indoor vs. outdoor issues depicted in
\reffig{fig:wifiIndoorOutdoor}, by using a separate bounding box just for the outdoor area,
it obviously requires a profound prior knowledge to correctly select the individual regions for the sub-model.
%Such issues can only be fixed using more appropriate models that consider walls and other obstacles.
% das ist wohl zu viel
%\begin{figure}
% \centering
% \input{gfx/wifiOptApPosDifference.tex}
% \caption{zu viel, oder?}
%\end{figure}
% -------------------------------- number of fingerprints -------------------------------- %
\hspace{3mm} % HACK...
As we try to minimize the system's setup time as much as possible, we need to determine
the amount of necessary reference measurements for the optimization to produce robust model parameters.
Depending on the chosen model, and thus the number of to-be-optimized parameters, more measurements will be required.
While there was almost no difference between using 121 or 30 reference measurements for
{\em \optParamsAllAP{}} and {\em \optParamsEachAP{}}
(average error changed from \SIrange{5.3}{5.4}{\decibel} and \SIrange{4.5}{5.0}{\decibel}, respectively),
{\em \optPerRegion{}} is highly affected
(average error changed from \SIrange{2.0}{6.2}{\decibel}), as it needs at least a certain number of measurements within each
region for the optimization to converge.
\begin{figure}
\centering
\begin{subfigure}{0.49\textwidth}
\input{gfx2/wifi_model_error_num_fingerprints_method_5_0_90.tex}
\end{subfigure}
\begin{subfigure}{0.49\textwidth}
\input{gfx2/wifi_model_error_num_fingerprints_method_5_90_100.tex}
\end{subfigure}
\caption{
Impact of reducing the number of reference measurements for optimizing {\em \optPerRegion{}}.
The cumulative error distribution is determined by comparing its signal strength prediction against all 121 measurements.
While using only \SI{50}{\percent} of the 121 scans has barely an impact on the error,
30 measurements (\SI{25}{\percent}) are clearly insufficient.
}
\label{fig:wifiNumFingerprints}
\end{figure}
%\begin{figure}[b]
% \input{gfx/wifi_model_error_num_fingerprints_method_5_0_90.tex}
% \input{gfx/wifi_model_error_num_fingerprints_method_5_90_100.tex}
% \caption{%
% Impact of reducing the number of reference measurements during optimization on {\em \optPerRegion{}}.
% The model's cumulative error distribution is determined by comparing the its signal strength prediction against all 121 measurements.
% While using only \SI{50}{\percent} of the 121 scans has barely an impact on the error,
% 30 measurements (\SI{25}{\percent}) are clearly insufficient.
% }%
% \label{fig:wifiNumFingerprints}%
%\end{figure}
\reffig{fig:wifiNumFingerprints} depicts the impact of reducing the number of reference measurements
during the optimization process for the {\em \optPerRegion{}} strategy.
The error is determined by using the (absolute) difference between expected signal strength and
the optimized model's corresponding prediction for all of the 121 reference measurements.
%
Considering only 60 of the 121 scans (\SI{50}{\percent}) yields a slightly increasing model error but still provides good results.
While using only \SI{25}{\percent} of the reference measurements increases the error rapidly,
for \SI{75}{\percent} of the 121 considered error-values, the estimation is still better than using just empiric values without optimization.
%The extremely large outlier depicted in the right half of figure \ref{fig:wifiNumFingerprints} (red line) relates to one
%sub-model with only one assigned reference measurement, where the optimized result is unable to predict values
%for the rest of the sub-model's region. \todo{versteht man das?}
Additionally we examined the impact of skipping reference measurements for difficult locations,
like staircases surrounded by steel-enforced concrete. While this slightly decreases the
estimation error for all other positions (hallway, etc.) as expected, the error within the skipped locations is dramatically
increasing (see right half of \reffig{fig:wifiNumFingerprints}). It is thus highly recommended
to also perform reference measurements for locations, that are expected to strongly deviate (signal strength)
from their surroundings.
%leaving out fingerprints for model 1
% 25%: cnt(1128) min(0.007439) max(27.804710) range(27.797272) med(4.404236) avg(5.449720) stdDev(4.470373)
% 50%: cnt(1128) min(0.006027) max(27.732193) range(27.726166) med(4.367859) avg(5.437861) stdDev(4.475426)
% 100%: cnt(1128) min(0.000282) max(27.705376) range(27.705093) med(4.272881) avg(5.411202) stdDev(4.493495)
% noStair%: cnt(1128) min(0.000801) max(27.209221) range(27.208420) med(4.333328) avg(5.459918) stdDev(4.459484)
%leaving out fingerprints for model 2
% 25%: cnt(1128) min(0.000320) max(29.752560) range(29.752239) med(3.837357) avg(5.027578) stdDev(4.617191)
% 50%: cnt(1128) min(0.015305) max(34.152130) range(34.136826) med(3.627090) avg(4.635868) stdDev(4.135866)
% 100%: cnt(1128) min(0.000488) max(25.687740) range(25.687252) med(3.319756) avg(4.441193) stdDev(3.912525)
% noStair%: cnt(1128) min(0.017693) max(25.687740) range(25.670048) med(3.304321) avg(4.507620) stdDev(3.957071)
%leaving out fingerprints for model 3
% 25%: cnt(1128) min(0.003242) max(39.470978) range(39.467735) med(3.371758) avg(4.977330) stdDev(5.213937)
% 50%: cnt(1128) min(0.002808) max(30.113415) range(30.110607) med(2.941238) avg(4.015042) stdDev(3.696969)
% 100%: cnt(1128) min(0.000557) max(16.813850) range(16.813293) med(3.056915) avg(3.813013) stdDev(3.062580)
% noStair%: cnt(1128) min(0.002518) max(30.370636) range(30.368118) med(3.016884) avg(3.983101) stdDev(3.508327)
%leaving out fingerprints for model 4
% 25%: cnt(1128) min(0.000000) max(62.233345) range(62.233345) med(2.502831) avg(5.432897) stdDev(8.664582)
% 50%: cnt(1128) min(0.000000) max(56.843803) range(56.843803) med(1.543137) avg(2.937506) stdDev(4.417061)
% 100%: cnt(1128) min(0.000046) max(33.175812) range(33.175766) med(1.537933) avg(2.441976) stdDev(2.793499)
% noStair%: cnt(1128) min(0.000000) max(62.233345) range(62.233345) med(1.493668) avg(2.744918) stdDev(4.428092)
%leaving out fingerprints for model 5
% 25%: cnt(1128) min(0.000000) max(62.620842) range(62.620842) med(2.140709) avg(6.257105) stdDev(11.638572)
% 50%: cnt(1128) min(0.000000) max(57.371948) range(57.371948) med(1.357452) avg(2.982217) stdDev(5.877471)
% 100%: cnt(1128) min(0.000000) max(14.837151) range(14.837151) med(1.251358) avg(1.989277) stdDev(2.189072)
% noStair%: cnt(1128) min(0.000000) max(62.233345) range(62.233345) med(1.143669) avg(2.316189) stdDev(4.164822)
% -------------------------------- wifi walk error -------------------------------- %
\subsection{\docWIFI{} location estimation error}
\label{sec:evalWifiMeter}
Having optimized several signal strength prediction models, we can now examine the resulting localization
accuracy (in \meter) for each. For now, this will just cover the \docWIFI{} component itself.
The impact of fusing additional sensors and a adding prior knowledge provided by a transition model will be evaluated later.
%Using the optimized model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
%we can directly perform a location estimation by rewriting \refeq{eq:wifiProb}:
%For each of the discussed optimization strategies we can now determine the resulting localization accuracy.
The position $\mPosVec{}$ within the building that best fits some \docWIFI{} signal strength measurements $\mRssiVec$ received by the smartphone
is the one that maximizes $p(\mPosVec \mid \mRssiVec)$.
Omitting prior knowledge and normalization, this can be rewritten as:
\begin{equation}
p(\mPosVec \mid \mRssiVec) =
\frac{p(\mRssiVec \mid \mPosVec) p(\mPosVec)}{p(\mRssiVec)}
\propto p(\mRssiVec \mid \mPosVec),\enskip
p(\mPosVec) = p(\mRssiVec) = \text{const}
.
\label{eq:wifiBayes}
\end{equation}
Following \refeq{eq:wifiObs} and \refeq{eq:wifiProb}, the best
location $\mPosVec^*$ given $\mRssiVec$ is the one that satisfies
\begin{equation}
\mPosVec^* = \argmax_{\mPosVec}
\prod_{\mRssi_{i} \in \mRssiVec{}}
\mathcal{N}(\mRssi_i \mid \mu_{i,\mPosVec}, \sigma^2)
\enskip.
\label{eq:bestWiFiPos}
\end{equation}
In \refeq{eq:bestWiFiPos} $\mu_{i,\mPosVec}$ is the signal strength for \docAP{} $i$,
installed at location $\mPosVec$, returned from the to-be-examined prediction model.
For all comparisons, we use a constant uncertainty of $\sigma = \SI{8}{\decibel}$,
which is an empirical choice based on prior experiments.
The quality of the estimated location is determined by using the Euclidean distance between estimation
$\mPosVec^*$ and the pedestrian's ground truth position at the time the scan $\mRssiVec$
has been received.
We therefore conducted 13 walks on 5 different paths within our building,
each of which is defined by connecting marker points at well known positions
(see \reffig{fig:allWalks}).
Whenever the pedestrian reached such a marker, the current time was recorded.
Due to constant walking speeds, the ground truth for any timestamp can be approximated
using linear interpolation between adjacent markers.
% walked paths
\begin{figure}
\centering
\input{gfx2/all_walks.tex}
\caption{
Overview of all conducted paths, each starting at the denoted rectangle.
Outdoor areas are marked in green.
The length of the paths is as follows:
path 1: \SI{207}{\meter}, path 2: \SI{138}{\meter}, path 3: \SI{86}{\meter}, path 4: \SI{140}{\meter},
and path 5: \SI{97}{\meter}.
}
\label{fig:allWalks}
\end{figure}
\begin{figure}
\centering
% error gfx
\begin{subfigure}{0.52\textwidth}
\centering
\input{gfx2/modelPerformance_meter.tex}
\end{subfigure}
% table
%5.98767 9.23025 14.4272 11.9649
%6.53764 9.01424 12.8797 12.0121
%6.85665 9.82203 13.8528 12.9988
%5.35629 8.5921 14.8037 11.9996
%4.30191 6.91534 14.0746 11.948
%4.26189 6.35975 11.5646 10.7466
\begin{subfigure}{0.47\textwidth}
\footnotesize
\centering
\begin{tabular}{|l|c|c|c|c|}
\hline
& \tablefont\SI{25}{\percent} & \tablefont median & \tablefont\SI{75}{\percent} & \tablefont avg \\\hline
\tablefont\noOptEmpiric{} & \tablefont\SI{6.0}{\meter} & \tablefont\SI{9.2}{\meter} & \tablefont\SI{14.4}{\meter} & \tablefont\SI{11.9}{\meter} \\\hline
\tablefont\optParamsAllAP{} & \tablefont\SI{6.5}{\meter} & \tablefont\SI{9.0}{\meter} & \tablefont\SI{12.8}{\meter} & \tablefont\SI{12.0}{\meter} \\\hline
\tablefont\optParamsEachAP{} & \tablefont\SI{6.8}{\meter} & \tablefont\SI{9.8}{\meter} & \tablefont\SI{13.8}{\meter} & \tablefont\SI{13.0}{\meter} \\\hline
\tablefont\optParamsPosEachAP{} & \tablefont\SI{5.4}{\meter} & \tablefont\SI{8.6}{\meter} & \tablefont\SI{14.8}{\meter} & \tablefont\SI{12.0}{\meter} \\\hline
\tablefont\optPerFloor{} & \tablefont\SI{4.3}{\meter} & \tablefont\SI{6.9}{\meter} & \tablefont\SI{14.0}{\meter} & \tablefont\SI{11.9}{\meter} \\\hline
\tablefont\optPerRegion{} & \tablefont\SI{4.2}{\meter} & \tablefont\SI{6.5}{\meter} & \tablefont\SI{11.6}{\meter} & \tablefont\SI{10.7}{\meter} \\\hline
\end{tabular}
\vspace{7mm}
\end{subfigure}
\caption {
\changed{%
Cumulative error distribution for the error between a location estimation using \refeq{eq:bestWiFiPos} (only \docWIFI{})
and the corresponding ground truth depending on the signal strength prediction model,
using each of the 3756 \docWIFI{} measurements within the 13 walks.
%depending on the signal strength prediction model.
All models suffer from several (extremely) high errors that relate to bad \docWIFI{}
coverage e.g. within outdoor areas (see \reffig{fig:wifiIndoorOutdoor}). This negatively affects the
resulting average and 75th
percentile. The strategies {\em \optParamsAllAP{}} and {\em \optParamsEachAP{}} sometimes suffered from overadaption,
indicated by increased error values for the 25th percentile.
}%
}
\label{fig:modelPerformance}
\end{figure}
%To estimate the overall performance of the prediction models, we compare the position estimation
%for each \docWIFI{} measurement within the recorded paths (3756 \docAPshort{} scans in total)
%against the corresponding ground-truth, which indicates the absolute 3D error in meter.
The position estimation for each \docWIFI{} measurement within the recorded walks (3756 scans in total)
is compared against its corresponding ground truth, indicating the 3D distance error.
\changed{%
This is the Euclidean distance (in $x,y,z$) between estimation and ground truth, calculated for every
\docWIFI{} measurement (approximately every \SI{600}{\milli\second}).
}%
The resulting cumulative error distribution can be seen in \reffig{fig:modelPerformance}.
The quality of the location estimation directly scales with the quality of the signal strength prediction model.
However, as discussed earlier, the maximal estimation error might increase for some setups.
%
Either due to multimodalities, where more than one area matches the recent
\docWIFI{} observation, or optimization yielded an overadaption where the average signal
strength prediction error is small, but the maximum error is dramatically increased for some regions.
% -------------------------------- plots indicating walk issues -------------------------------- %
\begin{figure}
\centering
\input{gfx2/wifiMultimodality.tex}
\caption{
\docWIFI{}-only location probability for three distinct scans where
higher color intensities denote a higher likelihood for \refeq{eq:bestWiFiPos}.
The first scan (left, green) depicts a best-case scenario, where the region around the ground truth (black rectangle) is highly probable.
Often, other locations are just as likely as the ground truth (2nd scan, blue),
or the location with the highest probability is far from the actual ground truth (3rd scan, right, red).
}
\label{fig:wifiMultimodality}
\end{figure}
\reffig{fig:wifiMultimodality} depicts aforementioned issues of multimodal (blue) or wrong (red) location
estimations. Filtering (\refeq{eq:recursiveDensity}) thus is highly recommended, as minor errors are compensated
using other sensors or a movement model that prevents the estimation from leaping within the building.
However, if wrong sensor values are observed for longer time periods, even filtering will produce erroneous
results and might get stranded (density is trapped e.g. within a room),
as the movement model is constrained by the actual floorplan.
% -------------------------------- other distributions, unseen APs, etc -------------------------------- %
\hspace{3mm}%hack
To reduce the amount of such misclassifications, where other locations within the building are
as likely as the pedestrian's actual location, we examined various approaches.
Unfortunately, most of which did not provide a viable enhancement under all conditions for the performed walks.
%\commentByFrank{ja, eig gehoert das vor in die theorie, aber da es so kurz ist und vorne immer die ueberleitung kaputt macht
%oder anderen dingen vorgreifen wuerde, steht es hier}
The misclassification-rate is determined by counting the amount of (random) locations within
the building that produce a similar probability \refeq{eq:wifiProb} compared to the actual ground truth
position.
One possibility to dissolve such an equal \docWIFI{}-likelihood between two (or more) locations is,
to not only consider the \docAPshort{}s seen by the smartphone, but also the \docAPshort{}s not seen
by the smartphone. This additional information can be used to rule out all locations where this unseen
\docAP{} should have be received (high signal strength from the prediction model).
% There might be an \docAP{} that should be visible at the other locations. However,
%as the Smartphone did not see this \docAPshort{} the other location can be ruled out.
While this works in theory, evaluations revealed several issues:
\begin{itemize}
\item{
There is a chance that even a nearby \docAPshort{} is unseen during a scan due to packet collisions or
temporal effects within the surrounding. It thus might make sense to opt-out other locations
only, if at least two \docAPshort{}s are missing. On the other hand, this obviously demands for (at least)
two \docAPshort{}s to actually be different between the two locations, and requires a lot of permanently
installed transmitters to work out.
}
\item{
Furthermore, this requires the signal strength prediction model to be fairly accurate. Within our testing
walks, several places are surrounded by concrete walls, which cause a harsh, local drop in signal strength.
The models used within this work will not accurately predict the signal strength for such locations.
%%Including \docAPshort{}s unseen by the Smartphone thus often increases the estimation error instead
%%of fixing the multimodality.
}
\end{itemize}
To sum up, while some situations e.g. outdoors could be improved,
many other situations are deteriorated, especially when some transmitters are (temporarily)
attenuated by ambient conditions like concrete walls.
We therefore examined variations of the probability calculation from \refeq{eq:wifiProb}.
Contrary to the results shown in \cite{PotentialRisks}, removing weak \docAPshort{}s from $\mRssiVec{}$
did not work out. While some estimations were improved, the overall error increased
for our walks, as there are many situations where only a handful \docAP{}s can be seen.
Removing this (valid) information will increase the error for such situations.
However, incorporating additional knowledge provided by virtual \docAP{}s (see section \ref{sec:vap}) mitigated this issues.
If e.g. only one out of six virtual networks is seen, this observation is likely to be erroneous, no matter
what the corresponding signal strength indicates.
As those occasions are relatively seldom, the impact is a minor one.
Nevertheless, depending on the used prediction model, a handful of major estimation errors were prevented.
Additionally, among all examined models and walks, there was none where this approached lead to increased error values.
%This approach improved the location estimation especially
%for areas where a transmitter was hardly seen within the reference measurements and its optimization is thus
%expected to be inaccurate.
Using a smaller $\sigma$ or a stricter exponential distribution for the model vs. scan comparison in \refeq{eq:wifiProb}
had a positive effect on the misclassification error for some of the walks, but also slightly increased the overall estimation error.
%(see figure \ref{fig:normalVsExponential}).
Due to those negative side-effects, the final localization system (\refeq{eq:recursiveDensity}) is unlikely to profit from such changes.
%\todo{ueberleitung OK?}
% braucht zu viel platz
%\begin{figure}
% \input{gfx/wifiCompare_normalVsExp_cross.tex}
% \input{gfx/wifiCompare_normalVsExp_meter.tex}
% \caption{
% Comparison between normal- (black) and exponential-distribution (red) for \refeq{eq:wifiProb}.
% While misclassifications are slightly reduced (upper chart),
% the median error between ground-truth and estimation (lower chart) increases by
% about \SI{1}{\meter}.
% }
% \label{fig:normalVsExponential}
%\end{figure}
%\todo{
% erwähnen??? sigma je nach signalstärke anpassen bringt leider auch nichts. wenn man das aber macht,
% dann: fuer grosse signalstaerken ein grosses sigma! andersrum gehts nach hinten los!
%}
% -------------------------------- final system -------------------------------- %
\subsection{Filtered location estimation error}
\label{sec:evalFiltered}
After examining the \docWIFI{} component on its own, we will now analyze the impact of previously discussed model
optimizations on our smartphone-based indoor localization system described in section \ref{sec:system}, based on
\refeq{eq:recursiveDensity}.
Due to transition constraints from the building's floorplan, we expect the
posterior density to often get stuck when the \docWIFI{} component provides erroneous estimations
due to bad signal strength predictions or observations (see \reffig{fig:wifiMultimodality}):
A pedestrian walks along a hallway, but bad model values indicate that his most likely position
is within a room right next to the hallway.
If the density (described by the particles) is dragged (completely) into this room,
the IMU indicates no change in direction (pedestrian walks straight),
and the room has only one single door, the density is trapped within this room.
%
While such problems can often be solved by simply using more particles to describe the posterior,
smartphone use-cases are usually performance- and battery limited.
As particle filtering from \refeq{eq:recursiveDensity} is a random process with varying output,
we calculated each combination of the {\em 13 walks and six optimization strategies},
25 times, using 5000, 7500 and 10000 particles resulting in 75 runs per walk, 975 per strategy and 5850 in total.
%
\reffig{fig:overallSystemError} depicts the cumulative error distribution per optimization strategy,
resulting from all executions for each conducted walk.
While most values represent the expected results (more optimization yields better results),
the values for {\em \optParamsAllAP{}} and {\em \optPerRegion{}} do not.
The increased error for both strategies can be explained by having a closer look at the walked
paths and relates to exceptional regions like outdoors. In both cases there is some sort of model overadaption.
%
As mentioned earlier, a single, simple model is unable to accurately estimate the signal strength for both
buildings and adjacent outdoor regions. Due to metallized glass (see \reffig{fig:wifiIndoorOutdoor}), in- and
outdoor conditions strongly differ. The model's optimization
builds a compromise among all locations and renders indoor places unnecessarily bad: Previous
discussions showed that outdoor regions do not provide viable \docWIFI{} signals at all. It thus makes sense
to just omit badly covered regions from the model optimization process, as the filter's evaluation will simply
omit \docWIFI{} when the quality is insufficient (see section \ref{sec:wifiQuality}).
%
While {\em \optPerRegion{}} does not suffer from such issues due to separated optimization regions for in- and outdoor,
its increased error relates to movements between such adjacent regions, as there often is a huge model difference.
While this difference is perfectly fine, as it also exists within real-world conditions,
the filtering process suffers at such model-boundaries:
The model prevents the particles from moving e.g. from inside the building towards outdoor regions, as the
outdoor-model does not yet match. Due to sensor delays and issues with the absolute heading near in- and outdoor boundaries
(metal-framed doors) the error is slightly increased and retained for some time until the density stabilizes itself.
Especially for {\em path 1}, the particle-filter often got stuck within the upper right outdoor area between both buildings
(see \reffig{fig:final}). Using the empirical parameters, \SI{40}{\percent} of all runs for this path got stuck at this location.
{\em \optParamsAllAP{}} already reduced the risk to \SI{20}{\percent} and all other optimization strategies did not get stuck at all.
Increasing the number of particles from 5000 to 10000 indicated only a minor increase in accuracy and slightly decreased
the risk of getting stuck. For battery- and performance-constrained use-cases on the smartphone 5000 thus seems to be sufficient.
Issues while moving from the inside out or vice versa, should also be mitigated by incorporating the smartphone's GPS sensor.
However, within our testing walks, the GPS did rarely provide accurate measurements, as the outdoor-time often was too short
for the sensor to receive a valid fix. The accuracy indicated by the GPS usually was $\ge \SI{50}{\meter}$ and thus
did not provide useful information.
However, comparing the error results within \reffig{fig:modelPerformance} and \reffig{fig:overallSystemError}, one can
denote the positive impact of fusing multiple sensors with a transition model based on the building's
actual floorplan. Even within outdoor regions and staircases that suffer from erroneous \docWIFI{} estimations due to a bad
signal strength coverage. The quality metric described in section \ref{sec:wifiQuality} was able to detect such
cases and \docWIFI{} was temporarily ignored. The remaining sensors, like the IMU, and the floorplan were able to
keep the pedestrian's heading until the signal quality reached sane levels again.
\begin{figure}
\centering
\begin{subfigure}{0.49\textwidth}
\input{gfx2/overall-system-error.tex}
\end{subfigure}
%
\begin{subfigure}{0.50\textwidth}
%OVERALL:2.62158 5.13701 11.1822 9.00261
%OVERALL:2.92524 6.00231 12.4425 10.6983
%OVERALL:1.98318 3.99259 7.92429 5.81281
%OVERALL:1.8647 3.86918 7.10482 5.62054
%OVERALL:1.60847 3.15739 6.13963 4.79148
%OVERALL:1.63617 3.34828 6.5379 5.12281
\footnotesize
\centering
\setlength{\tabcolsep}{0.25em} % for the horizontal padding
\begin{tabular}{|l|c|c|c|c|c|}
\hline
& \tablefont\SI{25}{\percent} & \tablefont median & \tablefont\SI{75}{\percent} & \tablefont avg & \tablefont stuck \\\hline
\tablefont\noOptEmpiric{} & \tablefont\SI{2.6}{\meter} & \tablefont\SI{5.1}{\meter} & \tablefont\SI{11.2}{\meter} & \tablefont\SI{9.0}{\meter} & \tablefont\SI{22}{\percent} \\\hline
\tablefont\optParamsAllAP{} & \tablefont\SI{2.9}{\meter} & \tablefont\SI{6.0}{\meter} & \tablefont\SI{12.4}{\meter} & \tablefont\SI{10.7}{\meter} & \tablefont\SI{15}{\percent} \\\hline
\tablefont\optParamsEachAP{} & \tablefont\SI{1.9}{\meter} & \tablefont\SI{4.0}{\meter} & \tablefont\SI{7.9}{\meter} & \tablefont\SI{5.8}{\meter} & \tablefont\SI{5}{\percent} \\\hline
\tablefont\optParamsPosEachAP{} & \tablefont\SI{1.9}{\meter} & \tablefont\SI{3.9}{\meter} & \tablefont\SI{7.1}{\meter} & \tablefont\SI{5.6}{\meter} & \tablefont\SI{5}{\percent} \\\hline
\tablefont\optPerFloor{} & \tablefont\SI{1.6}{\meter} & \tablefont\SI{3.2}{\meter} & \tablefont\SI{6.1}{\meter} & \tablefont\SI{4.8}{\meter} & \tablefont\SI{4}{\percent} \\\hline
\tablefont\optPerRegion{} & \tablefont\SI{1.6}{\meter} & \tablefont\SI{3.3}{\meter} & \tablefont\SI{6.5}{\meter} & \tablefont\SI{5.0}{\meter} & \tablefont\SI{4}{\percent} \\\hline
\end{tabular}
\setlength{\tabcolsep}{1.0em} % reset the horizontal padding
\vspace{9.0mm}
\end{subfigure}
%
\caption{
Cumulative error distribution for each model when used within the final localization system from \refeq{eq:recursiveDensity}.
\changed{The error between ground truth and estimation is calculated for each filter update, every \SI{500}{\milli\second}.}
Especially {\em \optParamsAllAP{}} suffered from overadaption and thus provided worse results. Compared to just using \docWIFI{}
(\reffig{fig:modelPerformance}) the error difference between the models now is much more distinct.
Starting from {\em \optParamsEachAP{}} the system rarely gets stuck and provides a viable accuracy.
}
\label{fig:overallSystemError}
\end{figure}
Finally, \reffig{fig:final} depicts all of the previously discussed improvements and issues by examining {\em path 1}
from \reffig{fig:allWalks}.
For better visibility within path- and error-plots, the unfiltered estimations were smoothed, using a moving average of
ten consecutive values ($\approx \SI{7}{\second}$). As can be seen, optimizing the \docWIFI{} model yields an improvement
for indoor situations, as the estimation is closer to the ground truth, and the starting position (indicated by the rectangle)
is more accurate.
For the depicted walk, the error outdoors is increased, as the likeliest position is shifted. Adding
the particle filter (\refeq{eq:recursiveDensity}) on top of the optimized model, fixes this issue. What cannot be seen
within the figure: while the likeliest position is deteriorated by the optimization, the likelihood of the region around
the pedestrian's ground truth is actually increased. Thus, combined with transition model and other sensors, the system
is able to stay right on track. The filter fails for {\em \noOptEmpiric}, as one \docAPshort{} near the entry of the second
building prevents the density from entering, due to a very high difference between model and real-world conditions.
\begin{figure}
%\begin{subfigure}{0.49\textwidth}
% \centering
% \input{gfx/final3D.tex}
%\end{subfigure}
%\begin{subfigure}{0.49\textwidth}
% \centering
% \input{gfx/final2D.tex}
%\end{subfigure}
\begin{subfigure}{0.99\textwidth}
\centering
\input{gfx2/final3D.tex}
\end{subfigure}
\\\vspace{4mm}
\begin{subfigure}{0.48\textwidth}
\centering
\input{gfx2/final2D-a.tex}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
\centering
\input{gfx2/final2D-b.tex}
\end{subfigure}
\\
\begin{subfigure}{0.99\textwidth}
\input{gfx2/final-error.tex}
\end{subfigure}
\caption{
Detailed analysis of the \docWIFI{} error for {\em \noOptEmpiric{}} (unoptimized) and {\em \optPerFloor{}}
using {\em path 1} (see \reffig{fig:allWalks}). While optimization reduces the error indoors, the error outdoors
is increased (bold line). A particle filter (PF, \refeq{eq:recursiveDensity}) on top of the optimized model
takes \SI{5}{\second} to initialize the starting-position (rectangles), fixes the outdoor-issue and
improves indoor situations. A filter on top of {\em \noOptEmpiric{}} got stuck right before
entering the 2nd building. Both, the filtered and unfiltered version of {\em \noOptEmpiric{}}
are dragged into the 2nd floor in the middle of the walk.
\changed{%
As the particle filter starts uniformly distributed along the whole area, the initial estimations
determine the pedestrian's position to be in the center of the area (average position among all particles).
The black and green walks thus start in empty space above the ground.
After a few filter updates (see first seconds of the error plot) the estimation represents the pedestrian's
actual position within the building.
}
}
\label{fig:final}
\end{figure}
% results
% 5000 particles
%
% model empiric
% |path1a(5.76715@100%) |path1b(3.73881@4%) |toni-all-1a(6.1505@76%) |toni-all-1b(4.60639@40%) |path2a(7.35355@28%) |path2b(7.4316@0%) |toni-all-2a(10.7068@44%) |toni-all-2b(7.4323@28%) |toni-inst-1b(4.60685@0%) |toni-inst-2a(3.83979@0%) |toni-inst-2b(3.98889@0%) |toni-inst-3a(4.70925@0%) |toni-inst-3b(4.40971@0%) | OVERALL:(5.12463@24%)
% model opt 1
% |path1a(17.6635@56%) |path1b(9.41882@24%)|toni-all-1a(4.06972@0%) |toni-all-1b(3.83157@0%) |path2a(6.92405@16%) |path2b(8.6365@16%) |toni-all-2a(11.6348@48%) |toni-all-2b(12.029@76%) |toni-inst-1b(5.07535@0%) |toni-inst-2a(4.45517@0%) |toni-inst-2b(3.99025@0%) |toni-inst-3a(8.28201@8%) |toni-inst-3b(5.57021@20%) | OVERALL:(6.57212@20%)
% model opt 2
% |path1a(2.01602@0%) |path1b(2.90237@0%) |toni-all-1a(2.80293@0%) |toni-all-1b(1.99745@0%) |path2a(5.39013@4%) |path2b(8.13855@0%) |toni-all-2a(9.7462@40%) |toni-all-2b(9.28677@44%) |toni-inst-1b(4.5305@0%) |toni-inst-2a(4.28726@0%) |toni-inst-2b(4.03041@0%) |toni-inst-3a(4.26278@4%) |toni-inst-3b(5.63394@24%) | OVERALL:(4.07822@8%)
% model opt 3
% |path1a(1.74623@0%) |path1b(2.61609@0%) |toni-all-1a(2.49372@0%) |toni-all-1b(1.90326@0%) |path2a(5.07957@4%) |path2b(7.73973@8%) |toni-all-2a(10.2793@48%) |toni-all-2b(6.48194@16%) |toni-inst-1b(5.73752@4%) |toni-inst-2a(3.76165@0%) |toni-inst-2b(3.51509@0%) |toni-inst-3a(6.06681@16%) |toni-inst-3b(5.27748@24%) | OVERALL:(3.94786@9%)
% model per floor
% |path1a(1.76139@0%) |path1b(2.22047@0%) |toni-all-1a(2.10094@0%) |toni-all-1b(1.62287@0%) |path2a(5.50715@16%) |path2b(7.1257@0%) |toni-all-2a(10.5138@48%) |toni-all-2b(6.72044@20%) |toni-inst-1b(3.77885@0%) |toni-inst-2a(2.23669@0%) |toni-inst-2b(3.20604@0%) |toni-inst-3a(2.46891@0%) |toni-inst-3b(2.73366@0%) | OVERALL:(3.22315@6%)
% model per bbox
% |path1a(1.80033@0%) |path1b(2.32875@0%) |toni-all-1a(2.17754@0%) |toni-all-1b(1.6697@0%) |path2a(6.38772@16%) |path2b(5.84004@0%) |toni-all-2a(9.67635@36%) |toni-all-2b(8.3282@24%) |toni-inst-1b(4.11891@0%) |toni-inst-2a(2.64016@0%) |toni-inst-2b(3.36297@0%) |toni-inst-3a(2.15568@0%) |toni-inst-3b(2.98047@0%) | OVERALL:(3.40679@5%)
%
%
% 7500 particles
% model empiric
% |path1a(8.23256@100%) |path1b(3.91532@0%) |toni-all-1a(7.0666@80%) |toni-all-1b(5.35225@48%) |path2a(6.5708@16%) |path2b(7.53023@0%) |toni-all-2a(10.6246@40%) |toni-all-2b(6.63087@4%) |toni-inst-1b(4.76934@0%) |toni-inst-2a(3.82903@0%) |toni-inst-2b(4.00339@0%) |toni-inst-3a(3.85417@4%) |toni-inst-3b(4.47613@0%) | OVERALL:(5.23337@22%)
% model opt 1
% |path1a(10.3959@36%) |path1b(8.37674@16%)|toni-all-1a(3.96164@0%) |toni-all-1b(4.24675@4%) |path2a(6.02912@8%) |path2b(8.1804@0%) |toni-all-2a(12.4277@48%) |toni-all-2b(10.4748@56%) |toni-inst-1b(5.49874@4%) |toni-inst-2a(4.09279@0%) |toni-inst-2b(3.87762@0%) |toni-inst-3a(5.10456@0%) |toni-inst-3b(4.52029@4%) | OVERALL:(5.97832@13%)
% model opt 2
% |path1a(2.04657@0%) |path1b(2.82853@0%) |toni-all-1a(2.93467@0%) |toni-all-1b(1.98463@0%) |path2a(4.66513@8%) |path2b(8.19959@0%) |toni-all-2a(8.34246@12%) |toni-all-2b(7.2456@12%) |toni-inst-1b(4.72651@0%) |toni-inst-2a(4.00208@0%) |toni-inst-2b(3.94811@0%) |toni-inst-3a(3.74498@0%) |toni-inst-3b(5.15519@16%) | OVERALL:(3.99594@3%)
% model opt 3
% |path1a(1.82148@0%) |path1b(2.7664@0%) |toni-all-1a(2.46073@0%) |toni-all-1b(1.93273@0%) |path2a(5.15394@4%) |path2b(7.53562@0%) |toni-all-2a(8.43582@20%) |toni-all-2b(6.01557@8%) |toni-inst-1b(5.47576@0%) |toni-inst-2a(3.44451@0%) |toni-inst-2b(3.6069@0%) |toni-inst-3a(4.84921@4%) |toni-inst-3b(5.62456@8%) | OVERALL:(3.88747@3%)
% model per floor
% |path1a(1.79881@0%) |path1b(2.1456@0%) |toni-all-1a(2.17125@0%) |toni-all-1b(1.63247@0%) |path2a(5.37789@8%) |path2b(6.79701@0%) |toni-all-2a(9.29407@32%) |toni-all-2b(6.28292@8%) |toni-inst-1b(3.79967@0%) |toni-inst-2a(2.24007@0%) |toni-inst-2b(3.15768@0%) |toni-inst-3a(2.17671@0%) |toni-inst-3b(2.83445@0%) | OVERALL:(3.16559@3%)
% model per bbox
% |path1a(1.77473@0%) |path1b(2.2609@0%) |toni-all-1a(2.06814@4%) |toni-all-1b(1.6841@0%) |path2a(6.48652@4%) |path2b(5.79359@0%) |toni-all-2a(9.40116@24%) |toni-all-2b(7.21382@16%) |toni-inst-1b(3.82829@0%) |toni-inst-2a(2.47975@0%) |toni-inst-2b(3.35265@0%) |toni-inst-3a(2.20058@0%) |toni-inst-3b(2.86407@0%) | OVERALL:(3.3381@3%)
%
% 10000 particles
% model empiric
% |path1a(6.43082@100%) |path1b(3.58544@0%) |toni-all-1a(6.92747@76%) |toni-all-1b(5.81139@72%) |path2a(5.12683@4%) |path2b(7.91078@0%) |toni-all-2a(10.3958@16%) |toni-all-2b(7.09186@8%) |toni-inst-1b(4.45815@0%) |toni-inst-2a(4.077@0%) |toni-inst-2b(4.02524@0%) |toni-inst-3a(3.35953@0%) |toni-inst-3b(4.40318@0%) | OVERALL:(5.06224@21%)
% model opt 1
% |path1a(6.47262@16%) |path1b(6.04852@12%)|toni-all-1a(3.97276@0%) |toni-all-1b(3.62778@0%) |path2a(5.48776@8%) |path2b(8.21965@0%) |toni-all-2a(11.3175@44%) |toni-all-2b(11.4499@60%) |toni-inst-1b(5.19827@0%) |toni-inst-2a(4.1351@0%) |toni-inst-2b(3.90291@0%) |toni-inst-3a(4.58096@8%) |toni-inst-3b(4.62723@4%) | OVERALL:(5.47998@11%)
% model opt 2
% |path1a(2.15007@0%) |path1b(2.80157@0%) |toni-all-1a(2.70849@0%) |toni-all-1b(1.8937@0%) |path2a(4.13743@0%) |path2b(8.20317@0%) |toni-all-2a(7.86448@12%) |toni-all-2b(7.41533@12%) |toni-inst-1b(4.54459@0%) |toni-inst-2a(4.17614@0%) |toni-inst-2b(3.90311@0%) |toni-inst-3a(3.846@4%) |toni-inst-3b(4.84665@8%) | OVERALL:(3.89883@2%)
% model opt 3
% |path1a(1.79085@0%) |path1b(2.64892@0%) |toni-all-1a(2.33085@0%) |toni-all-1b(1.9533@0%) |path2a(4.40712@4%) |path2b(7.815@0%) |toni-all-2a(8.97738@28%) |toni-all-2b(5.87188@0%) |toni-inst-1b(4.93315@0%) |toni-inst-2a(3.53349@0%) |toni-inst-2b(3.60056@0%) |toni-inst-3a(5.57379@8%) |toni-inst-3b(4.49996@4%) | OVERALL:(3.78756@3%)
% model per floor
% |path1a(1.7498@0%) |path1b(2.11555@0%) |toni-all-1a(1.89388@0%) |toni-all-1b(1.61323@0%) |path2a(5.06884@0%) |path2b(6.7157@0%) |toni-all-2a(9.54228@36%) |toni-all-2b(6.7699@24%) |toni-inst-1b(3.84709@0%) |toni-inst-2a(2.2789@0%) |toni-inst-2b(3.17625@0%) |toni-inst-3a(2.13417@0%) |toni-inst-3b(2.59095@0%) | OVERALL:(3.08506@4%)
% model per bbox
% |path1a(1.73406@0%) |path1b(2.30577@0%) |toni-all-1a(2.01979@0%) |toni-all-1b(1.64225@0%) |path2a(6.30713@12%) |path2b(6.02961@0%) |toni-all-2a(9.70206@20%) |toni-all-2b(6.55847@8%) |toni-inst-1b(3.93324@0%) |toni-inst-2a(2.459@0%) |toni-inst-2b(3.3522@0%) |toni-inst-3a(2.13783@0%) |toni-inst-3b(2.63231@0%) | OVERALL:(3.29408@3%)
% all combined
% model empiric
% |path1a(6.72661@100%) |path1b(3.74113@1%) |toni-all-1a(6.69696@77%) |toni-all-1b(5.26661@53%) |path2a(6.11286@16%) |path2b(7.63154@0%) |toni-all-2a(10.5765@33%) |toni-all-2b(7.0506@13%) |toni-inst-1b(4.61087@0%) |toni-inst-2a(3.91375@0%) |toni-inst-2b(4.00372@0%) |toni-inst-3a(3.89586@1%) |toni-inst-3b(4.43552@0%) | OVERALL:(5.13701@22%)
% model opt 1
% |path1a(10.0538@36%) |path1b(7.96075@17%)|toni-all-1a(3.99762@0%) |toni-all-1b(3.89137@1%) |path2a(6.08714@10%) |path2b(8.33165@5%) |toni-all-2a(11.7481@46%) |toni-all-2b(11.2068@64%) |toni-inst-1b(5.25558@1%) |toni-inst-2a(4.23255@0%) |toni-inst-2b(3.92269@0%) |toni-inst-3a(5.62327@5%) |toni-inst-3b(4.82302@9%) | OVERALL:(6.00231@15%)
% model opt 2
% |path1a(2.07273@0%) |path1b(2.84622@0%) |toni-all-1a(2.81671@0%) |toni-all-1b(1.9553@0%) |path2a(4.66453@4%) |path2b(8.17561@0%) |toni-all-2a(8.60702@21%) |toni-all-2b(7.68813@22%) |toni-inst-1b(4.59132@0%) |toni-inst-2a(4.15243@0%) |toni-inst-2b(3.96315@0%) |toni-inst-3a(3.96402@2%) |toni-inst-3b(5.16219@16%) | OVERALL:(3.99259@5%)
% model opt 3
% |path1a(1.78819@0%) |path1b(2.67775@0%) |toni-all-1a(2.43527@0%) |toni-all-1b(1.92948@0%) |path2a(4.90009@4%) |path2b(7.70505@2%) |toni-all-2a(9.16313@32%) |toni-all-2b(6.10436@8%) |toni-inst-1b(5.37191@1%) |toni-inst-2a(3.57332@0%) |toni-inst-2b(3.57426@0%) |toni-inst-3a(5.4337@9%) |toni-inst-3b(5.12685@12%) | OVERALL:(3.86918@5%)
% model per floor
% |path1a(1.77029@0%) |path1b(2.16265@0%) |toni-all-1a(2.05043@0%) |toni-all-1b(1.62289@0%) |path2a(5.29536@8%) |path2b(6.88344@0%) |toni-all-2a(9.75416@38%) |toni-all-2b(6.57473@17%) |toni-inst-1b(3.80742@0%) |toni-inst-2a(2.25183@0%) |toni-inst-2b(3.18067@0%) |toni-inst-3a(2.24992@0%) |toni-inst-3b(2.72835@0%) | OVERALL:(3.15739@4%)
% model per bbox
% |path1a(1.76908@0%) |path1b(2.30081@0%) |toni-all-1a(2.09503@1%) |toni-all-1b(1.66411@0%) |path2a(6.39346@10%) |path2b(5.8772@0%) |toni-all-2a(9.59953@26%) |toni-all-2b(7.06924@16%) |toni-inst-1b(3.96094@0%) |toni-inst-2a(2.51694@0%) |toni-inst-2b(3.3549@0%) |toni-inst-3a(2.1656@0%) |toni-inst-3b(2.81547@0%) | OVERALL:(3.34847@4%)
% REAL WALKS
%\todo{obwohl das angepasste modell doch recht gut laeuft und der fehler recht klein wird, sind immernoch stellen dabei,
%wo es einfach nicht gut passt, unguenstige mehrdeutigkeiten vorliegen, oder regionen einfach nicht passen wie sie sollten.
%das liegt teils auch daran, dass die fingerprints drehend aufgenommen wurden und beim laufen nach hinten durch den
%menschen abgeschottet wird. auch zeitlicher verzug kann ein problem darstellen.}
%\todo{
% wenn ich beim fingerprinten einen AP an einer stelle NICHT gesehen habe,
% ist das auch eine aussage für die model optimierung.. da kann dann sicher keine signatlstaerke > -90 an der stelle raus kommen
%}
%ware das grid-model nicht da, wuerde der outdoor teil richtig schlecht laufen,
%weil das wlan hier absolut ungenau ist.. da die partikel aber aufgrund des vorherigen
%walks schon recht dicht beisamen sind, kittet das das ganze sehr gut.
%kann man testen, indem man z.B. weniger resampling macht und mehr alte partikel aufhebt.
%geht sofort kaputt sobald man aus dem gebäude raus kommt
% was ist das??
%\input{gfx/wifi-opt-error-hist-methods.tex}
%\input{gfx/wifi-opt-error-hist-stair-outdoor.tex}
%outdoor hat insgesamt nicht all zu viel einfluss, da die meisten APs
%an den outdoor punkten kaum gesehen werden. auf einzelne APs kann
%der einfluss jedoch recht groß sein, siehe den fingerprint plot von
%dem einen ausgewählten AP
%\todo{anfaenglich falsches heading ist gift, wegen rel. heading, weil sich dann alles verlaeuft. fix: anfaenglich große heading variation erlauben}
%\todo{NICHT MEHR AKTUELL: abs-head ist in der observation besser, weil es beim resampling mehr bringt und dafuer srogt, dass die richtigen geloescht werden!}

View File

@@ -0,0 +1 @@
abstract

View File

@@ -0,0 +1,86 @@
\section{Introduction}
State of the art indoor localization systems use a fusion of multiple
(smartphone) sensors to infer the pedestrian's current location within a building
based on a variety of sensor observations.
%
Among those, the internal IMU, namely accelerometer and gyroscope, is often
used as a core component, that provides accurate relative movement information
like step- and turn-detection. However, this requires the pedestrian's
initial position to be well known, e.g. using a GPS-fix just before
entering the building. Additionally, the sensor's error will sum up over
time \cite{Koeping14}.
Depending on the used fusion-method, latter can be addressed
using a movement model for the pedestrian, that prevents unlikely movements
and locations. However, this will obviously work only to some extent and still
requires the initial position to be at least vaguely known.
%
Thus, indoor localization systems incorporate the knowledge of sensors,
that provide absolute location information, like \docWIFI{} and
\docIBeacon{}s. The signal strength of nearby transmitters, received
by the smartphone, yields a vague information about the distance
towards it. While the provided accuracy is relatively low,
it can be stabilized by the IMU and vice versa.
The downside of this approach is that both, \docWIFI{} and \docIBeacon{}s, require additional prior
knowledge to work. To infer the probability of the pedestrian currently
residing at an arbitrary location, the signal strengths received
by the smartphone are compared with the signal strengths which should be received at this
location (prior knowledge). As radio frequency (RF) signals are highly dependent
on the surroundings, those values can change rapidly within meters.
%
That is why fingerprinting became popular, where the required prior knowledge
is gathered by manually scanning each location within the building e.g.
using cells of $\approx \SI{2}{\meter}$ in size. This usually leads to
a very high accuracy due to actual measurements of the real situation.
However, the amount of work for the initial
setup and the maintenance, when transmitters are changed or renovations take
place, is very high.
Setup- and maintenance effort can be prevented by using models to predict
the signal strengths that should be received at some arbitrary location.
Depending on the used model, only a few parameters and the locations of the
transmitters within the building are required. For newer installations
the latter is often available and tagged within the building's floorplan.
%As signals are attenuated by the buildings architecture like walls and floors,
%advanced models additionally include the floorplan within their prediction.
Obviously, simple models will represent the real signal strengths only
to some extent, as not all ambient conditions, such as walls, are considered.
Furthermore, the choice of the model's parameters depends on the actual architecture and \docWIFI{} setup:
Parameters that work within building A might not work out within building B.
Thus, a compromise comes to mind: Instead of using several hundreds of fingerprints,
a few reference measurements used for a model setup might be a valid tradeoff
between resulting accuracy and necessary setup time.
Within this work we will focus on simple signal strength prediction models
that do not incorporate knowledge of nearby walls, but can be used
for real-time applications on commercial smartphones.
%
To mitigate the issues of those signal strength predictors, we propose a new model
that is a combination of several simple ones. It is more accurate, requires only minor
additional computations and thus is well suited for use in mobile applications.
%
The to-be-expected accuracy (in \decibel{} and \meter{}) of all models is analyzed for various setups ranging from
just empirical parameters (no setup time when transmitter positions are known) to optimized
parameters, where no prior knowledge is necessary and a few reference measurements suffice.
Besides analyzing the \docWIFI{} performance on its own, we will also have
a closer look at the resulting performance-changes within a fully featured smartphone-based
indoor localization system using a movement model based on the building's floorplan,
together with various other sensors and recursive state estimation based on a particle filter.
%\todo{
%fokus:\\
%- wlan parameter + optimierung\\
%- evaluation der einzel und gesamtergebnisse
%}
%\todo{
%contribution?:\\
%- neues wifi modell,\\
%- neues resampling,\\
%- model param optimierung + eval was es bringt
%}

View File

@@ -0,0 +1,97 @@
\section{Related Work}
Indoor localization based on \docWIFI{} and received signal strength indications (RSSI) dates back to the year
2000 and the work of Bahl and Padmanabhan \cite{radar}. During a one-time offline-phase, a
multitude of reference measurements are conducted. During the online-phase, where the pedestrian
walks along the building, those prior measurements are compared against live readings.
The pedestrian's location is inferred using the $k$-nearest neighbor(s) based on the Euclidean distance between currently
received signal strengths and the readings during the offline-phase.
Inspired by this initial work, Youssef et al. \cite{horus} proposed a more robust, probabilistic
approach. Their fingerprints were placed every \SI{1.52}{\meter} and estimated by scanning each location
100 times. The resulting signal strength distribution for each location is hereafter encoded by a histogram.
The latter can be compared against live measurements to infer its matching-probability. The center
of mass among the $k$ highest probabilities, including their weight, describes the pedestrian's current location.
%
In \cite{ProbabilisticWlan}, a similar approach is used and compared against nearest neighbor, kernel-density-estimation and machine learning.
Furthermore, they mention potential issues of (temporarily) invisible transmitters and describe a simple heuristic of how to handle such cases.
Meng et al. \cite{secureAndRobust} discuss several fingerprinting issues like environmental changes
after the fingerprints were recorded. They propose an outlier detection based on RANSAC to remove potentially
distorted measurements and thus improve the matching process.
Despite a very high accuracy \changed{-- up to an average error of \SI{1}{\meter} --} due to real-world comparisons,
aforementioned approaches suffer from tremendous setup- and maintenance times.
Using robots instead of human workforce to accurately gather the necessary
fingerprints might thus be a viable choice \cite{robotFingerprinting}.
Being cheaper and more accurate, this technique can also
be combined with SLAM for cases where the floorplan is unavailable.
Besides real-world measurements via fingerprinting, model predictions can be used to determine
signal strengths for arbitrary locations. Propagation models are a well-established field of research,
initially used to determine the \docWIFI{}-coverage for new installations.
While many of them are intended for outdoor and line-of-sight purposes, they are often applied to indoor use-cases as well
\cite{ANewPathLossPrediction, PredictingRFCoverage, empiricalPathLossModel}.
The model-based approach presented by Chintalapudi et al. \cite{WithoutThePain} works without any prior knowledge.
During a setup phase, pedestrians just walk within the building and transmit all observations to a central
server. Some GPS fixes with well-known position (e.g. entering and leaving the building) observed by the pedestrians
are used as reference points. A genetic optimization algorithm hereafter estimates both, the parameters for a
signal strength prediction model and the pedestrian's locations during the walk. The estimated parameters
can be refined using additional walks and may hereafter be used for the indoor localization process.
Likewise, it is possible to apply a global optimization that also determines a vague floorplan for the building \cite{crowdinside}.
% log distance model. optimization of path-loss-exponent.
% uses least-squares to solve for 3 unknowns: x, y, path-loss
% based on triangulation by converting the rssi back to a distance based on the model
% whole walk/dataset must be known beforehand?!
\changed{%
While signal strength models are used to predict a signal strength given the distance from the transmitter,
some also allow to infer the distance based on a known signal strength.
Given several signal strength measurements from transmitters at known locations
it is thus possible to perform trilateration. Such an approach is presented in \cite{rssModelOpt1},
where the pedestrian's 2D location and one model parameter are optimized using
a non-linear least square approach.
Optimizing location and model parameter together yields a setup which is invariant
to temporal environmental changes affecting the signal strength propagation.
However, all transmitters are assumed to have the same optimized model parameter, which
is an oversimplification for most environments. This issue is addressed in
\cite{autoRssModel}, where this parameter is estimated per transmitter
to increase the accuracy.
However, due to the used optimized strategy it is hard to include additional constraints,
such as knowledge given by a floorplan that would prevent the estimation from
returning unreachable areas within a building.
Likewise, the approach will not work smoothly for 3D location estimation,
as the corresponding signal strength propagation models are usually non-continuous
due to impact of floors/ceilings.
}%
\changed{%
As the presented drawbacks denote, using just \docWIFI{} signal strengths as location estimation is erroneous.
It thus makes sense to combine several other sensors
via sensor fusion, to leverage the positive aspects of each individual source.
Recursive state estimation, e.g. based on an (extended) Kalman filter, allows for combining
absolute \docWIFI{} location information, absolute landmarks, and relative pedestrian dead reckoning (PDR),
as presented in \cite{indoorKalman,indoorKalman2}.%
}%
\changed{%
Besides signal strengths, other RF characteristics
like the signal's time of arrival (TOA) and time difference of arrival (TDOA),
as used within the GPS, or its angle of arrival (AOA) can be used.
They %
}
are more accurate and mostly invariant to architectural obstacles \cite{TimeDifferenceOfArrival1, TOAAOA}.
Especially signal runtimes are unaffected by walls and thus allow for stable distance estimations, if the used components
support measuring time-delays down to a few picoseconds. This is why those techniques often need special (measurement) hardware
to estimate parameters like signal-runtime or signal-phase-shifts. Those requirements only allow for a limited number of use-cases.
We therefore focus on the RSSI that is available on each commercial smartphone, and use a
simple signal strength prediction model to estimate the most probable location given the phone's observations.
Furthermore, we propose a new model based on multiple simple ones, which will reduce the prediction error.
Several strategies to optimize simple models and the resulting accuracies are hereafter evaluated and discussed.
\changed{%
Finally, we include additional smartphone sensors using sensor fusion via recursive state estimation to
enhance the system's accuracy.
}%

144
tex_reviewed/chapters/system.tex Executable file
View File

@@ -0,0 +1,144 @@
\section{Indoor Positioning System}
\label{sec:system}
Our smartphone-based indoor localization system estimates a pedestrian's current location and heading
using recursive density estimation \changed{\cite{particleFilter,robotics}}
seen in \refeq{eq:recursiveDensity}.
\begin{equation}
%\arraycolsep=1.2pt
%\begin{array}{ll}
p(\mStateVec_{t} \mid \mObsVec_{1:t}) \propto\\
\underbrace{p(\mObsVec_{t} \mid \mStateVec_{t})}_{\text{evaluation}}
\int \underbrace{p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})}_{\text{transition}}
\underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}} \enspace,
%\end{array}
\label{eq:recursiveDensity}
\end{equation}
The pedestrian's hidden state $\mStateVec$ is given by
\begin{equation}
\mStateVec = (x, y, z, \mStateHeading),\enskip
x, y, z, \mStateHeading \in \R \enspace,
\end{equation}
%
where $x, y, z$ represent its position in 3D space and $\mStateHeading$ his current (absolute) heading.
The corresponding observation vector, given by the smartphone's sensors, is defined as
%
\begin{equation}
\mObsVec = (\mRssiVecWiFi{}, \mObsSteps, \mObsHeadingRel, \mObsHeadingAbs, \mPressure, \mObsGPSVec) \enspace.
\end{equation}
%
$\mRssiVecWiFi$ contains the signal strength measurements of all \docAP{}s (\docAPshort{}s) currently visible to the phone,
$\mObsSteps$ describes the number of steps detected since the last filter-step,
$\mObsHeadingRel$ the (relative) angular change since the last filter-step,
$\mObsHeadingAbs$ the vague absolute heading as provided by the magnetometer,
$\mPressure$ the ambient pressure in hPa and
$\mObsGPSVec = ( \mObsGPSlat, \mObsGPSlon, \mObsGPSaccuracy)$ the current location given by the GPS.
If the latter is currently not available, this is indicated by a special value combination, which
is checked within the evaluation.
Assuming statistical independence, the state-evaluation density from \refeq{eq:recursiveDensity} can be written as
%
\begin{equation}
p(\vec{o}_t \mid \vec{q}_t) =
p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}\enskip
p(\vec{o}_t \mid \vec{q}_t)_\text{gps}\enskip
p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}\enskip
p(\vec{o}_t \mid \vec{q}_t)_\text{activity}\enskip
\enspace.
\label{eq:evalDensity}
\end{equation}
%
Besides the evaluation, a movement model, based on random walks on a graph, samples only those transitions
(= pedestrian movements), that are allowed by the building's floorplan.
%$p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$
The smartphone's accelerometer, gyroscope, magnetometer, GPS- and \docWIFI{}-module provide
the observations for both, the transition and the following evaluation step to infer the hidden state,
namely the pedestrian's location and heading
\cite{Ebner2016OPN, Fetzer2016OMC}.
Absolute location information is provided by $p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}$ and
$p(\vec{o}_t \mid \vec{q}_t)_\text{gps}$, if available. Otherwise, their probability
is uniformly distributed (same likelihood for any location).
The vague absolute heading provided by
the smartphone's magnetometer is included using a simple heuristic for
$p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}$. Finally, the barometer is used
to distinguish between normal walking and climbing stairs within
$p(\vec{o}_t \mid \vec{q}_t)_\text{activity}$
\changed{%
by comparing relative pressure changes. This makes the barometer invariant to long-term pressure fluctuations
due to temperature and humidity.
}%
Furthermore, the smartphone's IMU is used to infer the number of steps
and the relative turn angle the pedestrian has taken since the last filter-update.
While those values could be used within the evaluation \refeq{eq:evalDensity}
we apply them within the transition model (see \cite{Koeping14-PSA, Ebner2016OPN})
to estimate the pedestrian's potential
movement $p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})$ within the building.
Using real values to perform this movement-update instead of just scattering randomly
along the floorplan followed by downvoting within the evaluation \refeq{eq:evalDensity}
provides a more stable result.
As this work focuses on \docWIFI{} optimization, not all parts of the localization system were discussed in detail.
For missing explanations and further details on aforementioned practices,
please refer to \cite{Ebner2016OPN}.
%
Compared to this reference, absolute heading and GPS have been added as additional sensors
to further enhance the localization.
\changed{%
Within \refeq{eq:evalAbsHead}, we favour movements (model transitions \refeq{eq:recursiveDensity})
with a heading $\pm\SI{120}{\degree}$ around the heading $\mObs_t^{\mObsHeadingAbs}$
indicated by the smartphone's compass.
As this sensor is usually inaccurate, we use $\pm\SI{120}{\degree}$ to just prevent walks in the opposite direction.
The result is normalized using $\xi$.
A normal distribution in \refeq{eq:evalGPS} is used to model GPS' uncertainty.
}%
The difference between the GPS' estimation and potential state $\mStateVec$ is given by the
Euclidean 2D $\text{distance}(\dots)$ in \refeq{eq:evalGPS}.
\begin{equation}
p(\vec{o}_t \mid \vec{q}_t)_\text{abshead}
= \xi
\begin{cases}
0.7 & | \mObs_t^{\mObsHeadingAbs} - \mState_t^{\mStateHeading} | < \SI{120}{\degree} \\
0.3 & \text{else}
\end{cases}
,\enskip
\xi = \text{const}
\label{eq:evalAbsHead}
\end{equation}
\begin{equation}
p(\vec{o}_t \mid \vec{q}_t)_\text{gps} =
\mathcal{N}(
d
\mid
0,
\sigma^2
), \enskip
d = \text{distance}(
(\mObsGPS_\text{lat}, \mObsGPS_\text{lon}),
(\mState_t^x, \mState_t^y)
), \enskip
\sigma = \mObsGPS_\text{accuracy}
\label{eq:evalGPS}
\end{equation}
%\todo{neues resampling? je nach dem was sich noch in der eval zeigt}
The GPS sensor should enhance scenarios where multiple, unconnected buildings are involved
and the pedestrian is required to move outdoors to enter the next facility.
Indoors the GPS will usually not provide viable location estimations and the system has to
solely rely on the smartphone's \docWIFI{} observations.
Therefore its crucial for the \docWIFI{} component to supply location
estimations that are as accurate as possible,
while the component itself must be easy to set-up and maintain.
%\todo{ueberleitung besser?}

347
tex_reviewed/chapters/work.tex Executable file
View File

@@ -0,0 +1,347 @@
\section{WiFi Location Estimation}
\label{sec:optimization}
The \docWIFI{} sensor infers the pedestrian's current location based on a comparison between live observations
(the smartphone continuously scans for nearby \docAP{}s) and fingerprints or
signal strength predictions for well-known locations. The location that fits the observations best,
is the pedestrian's current location. Assuming statistical independence of all transmitters
installed within a building,
\changed{the matching probability $p(\mRssiVecWiFi \mid \mPosVec)$ for a location $\mPosVec = (x,y,z)^T$} can be written as
\begin{equation}
p(\vec{o}_t \mid \vec{q}_t)_\text{wifi} =
p(\mRssiVecWiFi \mid \mPosVec) =
\prod_{\mRssi_{i} \in \mRssiVec{}} p(\mRssi_{i} \mid \mPosVec),\enskip
%\mPos = (x,y,z)^T
\mPosVec \in \R^3
\enskip ,
\label{eq:wifiObs}
\end{equation}
\noindent where matching a single signal strength observation \changed{$\mRssi_{i}$} against the reference is given by
\begin{equation}
p(\mRssi_i \mid \mPosVec) =
\mathcal{N}(\mRssi_i \mid \mu_{i,\mPosVec}, \sigma_{i,\mPosVec}^2)
\enskip .
\label{eq:wifiProb}
\end{equation}
In \refeq{eq:wifiProb}, $\mu_{i,\mPosVec}$ and $\sigma_{i,\mPosVec}$ denote the average signal strength
and corresponding standard deviation for the \docAPshort{} identified by $i$,
that should be measurable given the location $\mPosVec = (x,y,z)^T$. Those two values can be determined using various
methods. Most common and accurate, as of today, is fingerprinting, where hundreds of locations throughout the building
are scanned beforehand. The received \docAP{}s including their (average) signal strength and deviation
denote each location's fingerprint.
%
To prevent the time-consuming setup process, we use a model to predict the average signal strength for each location,
based on the \docAPshort{}'s position $\mPosAPVec{} = (x,y,z)^T$ and a few additional parameters.
\subsection{Signal Strength Prediction Model}
\label{sec:sigStrengthModel}
\begin{equation}
\changed{%
\mRssi = \mTXP{} - 10 \mPLE{} \log_{10} \frac{d}{d_0} + \mGaussNoise{}
}
\label{eq:logDistModel}
\end{equation}
The log distance model \cite{IntroductionToRadio, WirelessCommunications} in \refeq{eq:logDistModel} is a commonly
used signal strength prediction model that
is intended for line-of-sight predictions. However, depending on the surroundings, the model is versatile enough
to also serve for indoor purposes.
%
It predicts an \docAP{}'s signal strength
for an arbitrary location,
%$\mPosVec{}$
given the distance $d$ between both and two environmental parameters:
The \docAPshort{}'s signal strength \mTXP{} measurable at a known distance $d_0$ (usually \SI{1}{\meter}) and
the signal's depletion over distance \mPLE{}, which depends on the \docAPshort{}'s surroundings like walls
and other obstacles.
\mGaussNoise{} is a zero-mean Gaussian noise and models the uncertainty.
As \mPLE{} depends on the architecture around the transmitter, the model is bound to homogenous surroundings
like one floor, solely divided by drywalls of the same thickness and material.
%
The log normal shadowing-, or wall-attenuation-factor model \cite{PathLossPredictionModelsForIndoor}
is a slight modification, to adapt the log distance model to indoor use-cases.
It introduces an additional parameter, that considers obstacles between (line-of-sight) the \docAPshort{} and the
location in question by attenuating the signal with a constant value.
%
Depending on the use-case, this value describes the number and type of walls, ceilings, floors etc. between both positions.
For obstacles, this requires an intersection-test of each obstacle with the line-of-sight, which is costly
for larger buildings. For real-time use on a smartphone, a (discretized) model pre-computation might thus be necessary
\cite{competition2016}.
%Furthermore this requires a detailed floorplan, that includes material information
%for walls, doors, floors and ceilings.
Throughout this work, we thus use a tradeoff between both models, where walls are ignored and only floors/ceilings are considered.
Assuming buildings with even floor levels, the number of floors/ceilings between two position can be determined
without costly intersection checks and thus allows for real-time use-cases running on smartphones.
\begin{equation}
\changed{%
\mRssi = \mTXP{} - 10 \mPLE{} \log_{10} \frac{d}{d_0} + \numFloors{} \mWAF{} + \mGaussNoise{}
}
\label{eq:logNormShadowModel}
\end{equation}
In \refeq{eq:logNormShadowModel}, a constant attenuation factor \mWAF{} is
multiplied by the number \numFloors{} of floors/ceilings between sender and the location in question.
The attenuation \mWAF{} (per element) depends on the building's architecture and for common,
steel enforced concrete floors $\mWAF \approx \SI{-8.0}{\decibel}$ is a viable choice \cite{ElectromagneticPropagation}.
\subsection {Model Parameters}
As previously mentioned, for the prediction model to work, it is necessary to know the location $\mPosAPVec_i$ for every
permanently installed \docAP{} $i$ within the building to derive the distance $d$, plus its environmental parameters
\mTXP{}, \mPLE{} and \mWAF{}.
While it is possible to use empiric values for those environmental parameters \cite{Ebner-15}, the positions are mandatory.
For many buildings there should be floorplans that include the locations of all installed transmitters.
If so, a model setup takes only several minutes to (vaguely) position the \docAPshort{}s within a virtual
map and assign some fixed, empirically chosen parameters for \mTXP{}, \mPLE{} and \mWAF{}.
Depending on the building's architecture this might already provide enough accuracy for some use-cases,
where a vague location information is sufficient.
\subsection{Model Parameter Optimization}
%\begin{figure}
% \input{gfx/wifiop_show_optfunc_params}
% \caption{
% The average error (in \SI{}{\decibel}) between all reference measurements and corresponding model predictions
% for one \docAPshort{} dependent on \docTXP{} \mTXP{} and \docEXP{} \mPLE{}
% [known position $\mPosAPVec{}$, fixed \mWAF{}] denotes a convex function.
% }
% \label{fig:wifiOptFuncTXPEXP}
%\end{figure}
For systems that demand a higher accuracy, one can choose a compromise between fingerprinting and
aforementioned pure empiric model parameters by optimizing those parameters
based on a few reference measurements throughout the building.
The more parameters are staged for optimization ($\mPosAPVec{}, \mTXP{}, \mPLE{}, \mWAF{}$) the more
reference measurements are necessary to provide a stable result.
Depending on the desired accuracy, setup time and whether the transmitter positions are known or unknown,
several optimization strategies arise, where not all 6 parameters are optimized, but only some of them.
The target function \refeq{eq:optTarget} optimizes the model-parameters for one \docAP{} by reducing the squared error between
reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding
model predictions $\mu_{\mPosVec}$.
The number of floors between $\mPosVec$ and the transmitter's location $\mPosAPVec$ is
$\text{floors}(\mPosVec,\mPosAPVec)$.
\begin{equation}
\changed{%
\epsilon^* =
\argmin_{\mPosAPVec, \mTXP, \mPLE, \mWAF}
\sum_{s_{\mPosVec} \in \vec{s}}
(s_{\mPosVec} - \mu_{\mPosVec})^2
\enskip,\enskip\enskip
\mu_{\mPosVec} =
\mTXP{} + 10 \mPLE{} \log_{10} \| \mPosVec-\mPosAPVec \| + \text{floors}(\mPosVec,\mPosAPVec) \mWAF{}
}
\label{eq:optTarget}
\end{equation}
Just optimizing \mTXP{} and \mPLE{} with constant \mWAF{} and known transmitter position
usually means optimizing a convex function, as can be seen in \reffig{fig:wifiOptFuncTXPEXP}.
For such error functions, algorithms like gradient descent and simplex \cite{gradientDescent, downhillSimplex1, downhillSimplex2}
are well suited and will provide the global minimum.
However, optimizing an unknown transmitter position usually means optimizing a non-convex, discontinuous
function, especially when the $z$-coordinate, that influences the number of attenuating floors/ceilings,
is involved.
While the latter can be mitigated by introducing a continuous function for the
number $n$, e.g. a sigmoid, the function is not necessarily convex.
\reffig{fig:wifiOptFuncPosYZ} depicts two local minima and only one of both also is a global one.
\begin{figure*}
\centering
\begin{subfigure}{0.48\textwidth}
%\centering
\input{gfx2/wifiop_show_optfunc_params}
\caption{
Modifying \docTXP{} \mTXP{} and \docEXP{} \mPLE{}
[known position $\mPosAPVec{}$, fixed \mWAF{}] denotes a convex function.
}
\label{fig:wifiOptFuncTXPEXP}
\end{subfigure}%
\enskip\enskip
\begin{subfigure}{0.48\textwidth}
%\centering
\input{gfx2/wifiop_show_optfunc_pos_yz}
\caption{
Modifying $y$- and $z$-position [fixed $x$, \mTXP{}, \mPLE{} and \mWAF{}]
denotes a non-convex function with multiple local minima.
}
\label{fig:wifiOptFuncPosYZ}
\end{subfigure}
\caption{
Average error (in \SI{}{\decibel}) between all reference measurements and corresponding model predictions
for one \docAPshort{}.
}
\end{figure*}
%\begin{figure}
% \input{gfx/wifiop_show_optfunc_pos_yz}
% \caption{
% The average error (in \SI{}{\decibel}) between reference measurements and model predictions
% for one \docAPshort{} dependent on $y$- and $z$-position [fixed $x$, \mTXP{}, \mPLE{} and \mWAF{}]
% usually denotes a non-convex function with multiple [here: two] local minima.
% }
% \label{fig:wifiOptFuncPosYZ}
%\end{figure}
Such functions demand for optimization algorithms, that are able to deal with non-convex functions.
We thus used a genetic algorithm to perform this task \cite{goldberg89}.
However, initial tests indicated that while being superior to simplex
and similar algorithms, the results were not yet satisfying as the optimization often did not converge.
As the range of the six to-be-optimized parameters is known ($\mPosAPVec{}$ within the building,
\mTXP{}, \mPLE{}, \mWAF{} within a sane interval around empiric values), we slightly modified the
genetic algorithm: The initial population is now uniformly sampled from the known range. During each iteration,
the best \SI{25}{\percent} of the population are kept and the remaining entries are
re-created by modifying the best entries with uniform random values within
$\pm$\SI{10}{\percent} of the known range.
Inspired by {\em cooling} known from simulated annealing \cite{Kirkpatrick83optimizationby},
the result is stabilized by narrowing the allowed modification range
%(starting at \SI{10}{\percent})
over time.
\subsection{Modified Signal Strength Model}
%\todo{nicht: during initial eval, sondern gleich sagen, dass die vermutung nahe liegt, dass das modell
%nicht gut klappen wird, weil waende und unser metall-glas nicht beruecksichtigt werden. deshalb
%versuchen wir ein anderes modell das immernoch live arbeiten kann}
%During the initial eval, some issues were discovered. While aforementioned optimization was able to
%reduce the error between reference measurements and model estimations to \SI{50}{\percent},
%the position estimation \ref{eq:wifiProb} did not benefit from improved model parameters.
%To the contrary, there were several situations throughout the testing walks, where
%the inferred location was more erroneous than before.
As the used model tradeoff does not consider walls, it is expected to provide erroneous values
for regions that are heavily shrouded, e.g. by steel-enforced concrete or metallized glass.
Instead of using only one optimized model per \docAP{}, we use several instances with different
parameters that are limited to some region within the building. By reducing the area
that the model has to describe, we expect the limited number of model parameters to
provide better (local) results.
\begin{itemize}
\item{
{\em \optPerFloor{}} will use one model for each story, that is optimized using
only the fingerprints that belong to the corresponding floor. During evaluation,
the $z$-value from $\mPosVec{}$ in \refeq{eq:wifiProb} is used to select the correct model
for this location's signal strength estimation.
}
\item{
{\em \optPerRegion{}} works similar, except that each model is limited to a predefined,
axis-aligned bounding box. This approach allows for an even more refined distinction between
several areas like in- and outdoor regions or locations that are expected to highly differ
from their surroundings.
}
\end{itemize}
Especially the second model imposes a potential issue we need to address:
If an \docAPshort{} is seen only once or twice within such a bounding box, it is impossible
to optimize its parameters, just like a line cannot be defined using one single point.
However, due to \refeq{eq:wifiProb}, we need each model to provide the same number of
\docAP{}s. Otherwise regions with less known transmitters would automatically be more
likely than others. We therefore use fixed model parameters,
$\mTXP = \SI{-100}{\decibel{}m}$, $\mPLE = 0$ and $\mWAF = \SI{0}{\decibel}$ for every
transmitter with less than three reference measurements per region. This yields
a model that always returns \SI{-100}{\decibel{}m}, independent of the distance from the transmitter.
While this most probably is not the correct reading for all locations, it works
for most cases, as usual smartphones are unable to measure signals below this threshold.
%\todo{AP wird in einer region nur dann beruecksichtigt, wenn mindestanzahl an messungen vorhanden ist!}
%\todo{das heißt aber, dass an unterschiedlichen stellen unterschiedlich viele APs verglichen werden. das geht ned. deshalb feste -100}
\subsection{\docWIFI{} quality factor}
\label{sec:wifiQuality}
Evaluations within previous works showed, that there are many situations where the overall \docWIFI{} location estimation
is highly erroneous. Either when the signal strength prediction model does not match real-world
conditions, or the received measurements are ambiguous and there is more than one location
within the building that matches those readings. Both cases can occur e.g. in areas surrounded by
concrete walls, where the model does not match the real-world conditions as those walls are not considered,
and the smartphone barely receives \docAPshort{}s due to the high attenuation.
If such a sensor error occurs only for a short time period, the recursive density estimation from
\refeq{eq:recursiveDensity} is able to compensate using other observations and the transition
model. However, if the sensor-fault persists for a longer time period, such an error will slowly distort
the posterior distribution. As our movement model depends on the actual floorplan, the density
might get trapped e.g. within a room if the other sensors are unable to compensate for
the \docWIFI{} error.
Thus, we try to determine the quality of received measurements, which allows for
temporarily disabling \docWIFI{}'s contribution within the evaluation \refeq{eq:evalDensity}
if the quality is insufficient.
In \refeq{eq:wifiQuality} we use the average signal strength $\bar\mRssi$ among all \docAP{}s seen within one measurement
$\mRssiVec$ and scale this value to match a region of $[0, 1]$ depending on an upper and lower bound.
Using this scaled regions allows for using the quality factor as a probability measure
to reduce/increase the impact of the \docWIFI{} component \cite{Fetzer-17}.
Within this work a simple binary good/bad decision was used instead:
If the returned quality is below a certain threshold, \docWIFI{} is completely ignored within the evaluation.
Lower and upper bound are chosen empirically by looking at the usual range of \docWIFI{} signal strengths,
that still provide persistent data-connections to clients. Likewise, the threshold is determined by examining
the scaled output of \refeq{eq:wifiQuality} for some places with good and bad \docWIFI{} location estimations, respectively.
\begin{equation}
\newcommand{\leMin}{l_\text{min}}
\newcommand{\leMax}{l_\text{max}}
\text{quality}(\mRssiVec) =
\max \left(0,
\min \left(
\frac{
\bar\mRssi - \leMin
}{
\leMax - \leMin
},
1
\right)
\right)
,\enskip
\bar\mRssi = \frac{1}{n} \sum_{i = 1}^{n} \mRssi_i
\label{eq:wifiQuality}
\end{equation}
\subsection {Virtual \docAP{}s (VAP)}
\label{sec:vap}
Assuming normal conditions, the received signal strength at one location will also (strongly) vary over time
due to environmental conditions like temperature, humidity, open/closed doors and RF interference.
Fast variations can be addressed by averaging several consecutive measurements at the expense
of a delay in time.
To prevent this delay, we use the fact, that many buildings use so called virtual access points
where one physical hardware \docAP{} provides more than one virtual network to connect to.
They can usually be identified, as only the last digit of the MAC address is altered among the virtual networks.
%
As those normally share the same frequency, they are unable to transmit at the same instant in time.
When scanning for \docAPshort{}s, one will thus receive several responses from the same hardware, all with
a very small delay (micro- to milliseconds). Such measurements may be grouped using some aggregate
function like average, median or maximum instead of using each single measurement.
Furthermore, VAP grouping can be used to suppress unlikely observations: If a physical hardware is known
to provide six virtual networks, it is unlikely for the smartphone to only see one of those networks.
This is due to temporal effects or multipath signal propagation and the received signal strength will often be far from
the normal average. It thus makes sense to just omit such unlikely observations, focusing on the remaining, stable ones.
%\todo{???
%aps sind (statistisch) unaebhaengig. d.h., jeder AP kann fuer sich optimiert werden.
%optimierung des gesamtsystems ist nicht notwendig.
%}