current TeX

This commit is contained in:
2017-04-25 16:39:58 +02:00
parent fe9c25cde5
commit 6df505d3ae
3 changed files with 116 additions and 82 deletions

View File

@@ -514,15 +514,19 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
K::Statistics<float> statsExp;
K::Statistics<float> statsWaf;
K::Statistics<float> statsPosErr;
int numAPs = 0;
int numWrongZ = 0;
for (const AccessPoint& ap : mdl.getAllAPs()) {
// param range
const WiFiModelLogDistCeiling::APEntry params = mdl.getAP(ap.getMAC());
statsTxp.add(params.txp);
statsExp.add(params.exp);
statsWaf.add(params.waf);
// position error
const Point3 mdlPos = params.position_m;
const auto& it = FloorplanHelper::getAP(map, ap.getMAC());
@@ -531,9 +535,17 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
const Point3 realPos = fap->getPos(floor);
const float posErr = mdlPos.getDistance(realPos);
statsPosErr.add(posErr);
// wrong z?
if (mdlPos.z < floor->atHeight || mdlPos.z > (floor->atHeight+floor->height)) {
++numWrongZ;
}
++numAPs;
}
PlotErrFunc pef("", "\\docAP{}s (%)");
@@ -553,6 +565,7 @@ void plotEstAndRealApPosDistance(Floorplan::IndoorMap* map) {
std::cout << "EXP:\t" << statsExp.asString() << std::endl;
std::cout << "WAF:\t" << statsWaf.asString() << std::endl;
std::cout << "Pos:\t" << statsPosErr.asString() << std::endl;
std::cout << "WrongZ:\t" << numWrongZ << " (" << (numWrongZ*100.0f/numAPs) << "%) "<< std::endl;
int i = 0; (void) i;

View File

@@ -21,6 +21,8 @@
% -------------------------------- optimization -------------------------------- %
\subsection{Model optimization}
As the signal strength prediction model is the heart of the absolute positioning component
described in \ref{sec:system} we start with the model parameter estimation (see \ref{sec:optimization}) for
\mTXP, \mPLE and \mWAF based on some reference measurements and compare the results
@@ -51,55 +53,7 @@
% visible APs:
% cnt(121) min(2.000000) max(22.000000) range(20.000000) med(8.000000) avg(9.322314) stdDev(4.386709)
As mentioned in section \ref{sec:optimization}, we will look at various optimization strategies:
{\bf\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.
{\bf\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
using the reference measurements.
{\bf\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
parameters for all.
{\bf\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements.
{\bf\optPerFloor{}} and {\bf\optPerRegion{}} are just like \optParamsPosEachAP{} except that
there are several sub-models that are optimized for one floor / region instead of the whole building.
Figure \ref{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, even with \optPerRegion{} the maximal error is relatively high due to some locations that do
not fit the model at all. 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
(-42, 2.4, 6.0), the minimum and maximum values are clearly outside of the physically possible range.
\begin{figure}
\input{gfx/wifi_model_error_0_95.tex}
\input{gfx/wifi_model_error_95_100.tex}
\label{fig:wifiModelError}
\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.
}
\end{figure}
%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)
Looking at figure \ref{fig:wifiIndoorOutdoor} indicates the strong attenuation imposed by the metallised
windows installed within our building. Even though the transmitter is only \SI{5}{\meter} away from the reference
measurement, the windows attenuate the signal as much as \SI{50}{\meter} of corridor.
While \optPerRegion{} is able to overcome some of those situations, it requires a profound prior knowledge
when selecting the regions that model should work with.
%Such issues can only be fixed using more appropriate models that consider walls and other obstacles.
\begin{figure}
\begin{figure}[b]
\centering
\input{gfx/compare-wifi-in-out.tex}
\label{fig:wifiIndoorOutdoor}
@@ -109,31 +63,81 @@
the metallised windows (dashed outline) attenuate the signal by over \SI{30}{\decibel} (lower rectangle).
}
\end{figure}
BESCHREIBEN
Figure \ref{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 metallised windows attenuate the signal as much as \SI{50}{\meter}
of corridor (wide box). 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:
{\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.
{\em\optParamsAllAP{}} is the same as above, except that the three parameters are optimized
using the reference measurements.
{\em\optParamsEachAP{}} optimizes the three parameters per \docAP{} instead of using the same
parameters for all.
{\em\optParamsPosEachAP{}} does not need any prior knowledge and will optimize all six parameters
(3D position, \mTXP, \mPLE, \mWAF) based on the reference measurements.
{\em\optPerFloor{}} and {\em\optPerRegion{}} are just like \optParamsPosEachAP{} except that
there are several sub-models that are optimized for one floor / region instead of the whole building.
Figure \ref{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, even with {\em \optPerRegion{}} the maximal error is relatively high due to some locations that do
not fit the model at all. 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 clearly outside of 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.
\begin{figure}
\centering
\input{gfx/wifiOptApPosDifference.tex}
\caption{UNNÖTIG?}
\input{gfx/wifi_model_error_0_95.tex}
%\input{gfx/wifi_model_error_95_100.tex}
\label{fig:wifiModelError}
\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.
}
\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
figure \ref{fig:wifiIndoorOutdoor} e.g. by using a separate bounding box just for the outdoor area,
it obviously requires a profound prior knowledge when selecting 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 -------------------------------- %
wie viele fingerprints sind genug?
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 viable model parameters.
Depending on the number of to-be-optimized model parameters, more measurements are required.
This especially holds true for {\em \optPerRegion{}} where each region needs at least some measurements
to determine transmitter positions and parameters.
Haengt vom modell ab
bei den einfachen modellen aendert sich erstmal nicht viel. man hat ja viele testdaten für ein modell mit wenigen parametern.
je mehr variable wird, z.B. position, und das ganze pro AP und nicht füer alle, desto wichtiger wird, dass die fingerprints passen.
neuralgische schwachpunkte wie betonierte treppenhäuser kann man weglassen, dadurch wird der rest etwas besser,
die treppenhäuser ansich aber natürlich nochmal schlechter. siehe \ref{fig:wifiNumFingerprints}
\begin{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}
\label{fig:wifiNumFingerprints}%
@@ -141,13 +145,27 @@
number of fingerprints
}%
\end{figure}
Figure \ref{fig:wifiNumFingerprints} depicts the impact of reducing the number of fingerprints
for the {\em \optPerRegion{}} strategy. Only using 60 of the 121 fingerprints yields only a slightly
increasing model error and still provides good results. While using only \SI{25}{\percent} of the reference
measurements increases the error rapidly, \SI{75}{\percent} of all considered errors are still better
than using just empiric values without any reference measurements.
Additionally we examined the impact of skipping reference measurements for difficult locations
like aforementioned staircases, surrounded by concrete. While this slightly decreases the
estimation error for all other positions, the error within those locations is dramatically
increasing (see lower half of figure \ref{fig:wifiNumFingerprints}). It is thus highly recommended
to include such locations.
% -------------------------------- wifi walk error -------------------------------- %
Using aforementioned model setups and the measurements $\mRssiVec$ determined by scanning for nearby \docAPshort{}s,
\subsection{Location estimation error}
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}:
\begin{equation}
@@ -180,7 +198,7 @@
using linear interpolation between adjacent markers.
% walked paths
\begin{figure}
\begin{figure}[t]
{
\centering
\input{gfx/all_walks.tex}
@@ -196,7 +214,7 @@
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.
\begin{figure}
\begin{figure}[b]
\input{gfx/modelPerformance_meter.tex}
\label{fig:modelPerformance}
\caption{
@@ -217,7 +235,7 @@
% -------------------------------- plots indicating walk issues -------------------------------- %
\begin{figure}
\begin{figure}[t]
\input{gfx/wifiMultimodality.tex}
\label{fig:wifiMultimodality}
\caption{

View File

@@ -35,6 +35,7 @@
\subsection{Signal Strength Prediction Model}
\label{sec:sigStrengthModel}
\begin{equation}
\mRssi = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{}
@@ -97,6 +98,16 @@
\subsection{Model Parameter Optimization}
\begin{figure}[t!]
\input{gfx/wifiop_show_optfunc_params}
\label{fig:wifiOptFuncTXPEXP}
\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.
}
\end{figure}
For systems that demand a higher accuracy, one can choose a compromise between fingerprinting and
pure empiric model parameters where (some) model parameters are optimized,
based on a few reference measurements throughout the building.
@@ -115,15 +126,7 @@
TODO TODO TODO
\end{equation}
\begin{figure}
\input{gfx/wifiop_show_optfunc_params}
\label{fig:wifiOptFuncTXPEXP}
\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.
}
\end{figure}
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,
@@ -133,7 +136,7 @@
As can be seen in figure \ref{fig:wifiOptFuncPosYZ}, there are two local minima and only one of
both also is a global one.
\begin{figure}
\begin{figure}[t!]
\input{gfx/wifiop_show_optfunc_pos_yz}
\label{fig:wifiOptFuncPosYZ}
\caption{