Files
IPIN2016/presentation/demo.tex
2016-10-02 12:56:03 +02:00

645 lines
19 KiB
TeX

\documentclass[10pt]{beamer}
\usetheme[everytitleformat=regular]{m}
\usepackage[percent]{overpic}
\usepackage{booktabs}
\usepackage[scale=2]{ccicons}
\usepackage[outdir=./gfx/]{epstopdf}
\usepackage{pgfplots}
\usepackage{multimedia}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{psfrag}
\usepackage{color}
\usepackage{caption}
\usepackage{transparent}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{algorithm}
\usepackage{algpseudocode}
\setbeamerfont{caption}{size=\tiny}
\setbeamertemplate{caption}{\raggedright\insertcaption\par}
\makeatletter
\renewcommand{\ALG@beginalgorithmic}{\scriptsize}
\renewcommand{\alglinenumber}{\scriptsize}
\makeatother
\graphicspath{{./gfx/}}
\usepgfplotslibrary{dateplot}
\definecolor{pro}{HTML}{198c19}
\definecolor{con}{HTML}{CB410B}
% Costumizing the m-theme here
\setbeamertemplate{footline}[text line]{%
\parbox{\linewidth}{
\vspace*{-35pt}\insertpagenumber
\hfill\inserttitle
\hspace*{-30pt}
\hfill\includegraphics[width=0.20\textwidth]{gfx/logo_orange}
\hspace*{-30pt}
}
}
\definecolor{mBGColor}{HTML}{FAFAFA}
\definecolor{mWhite}{HTML}{FFFFFF}
\definecolor{mOrange}{HTML}{e84e25}
\setbeamercolor{frametitle}{%
use=mWhite,
fg=mWhite,
bg=mOrange
}
\setbeamercolor{alerted text}{%
fg=mOrange
}
% End Costumizing
\usepackage{amsmath}
\renewcommand{\vec}[1]{\boldsymbol{#1}}
\newcommand{\mat}[1]{\boldsymbol{#1}}
%\renewcommand{\hat}[1]{\oldhat{\mathbf{#1}}}
\newcommand{\SI}[2]{\ensuremath{#1}\text{\,#2}}
\newcommand{\SIrange}[3]{\ensuremath{#1} to \ensuremath{#2}\text{\,#3}}
\newcommand{\cm}{cm}
\newcommand{\meter}{m}
\newcommand{\per}{/}
\newcommand{\milli}{m}
\newcommand{\second}{s}
\newcommand{\giga}{G}
\newcommand{\hertz}{Hz}
\newcommand{\dBm}{dBm}
\newcommand{\percent}{\%}
\newcommand{\decibel}{dB}
\newcommand{\dB}{dB}
\newcommand{\degree}{\ensuremath{^{\circ}}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\NDist}{\mathcal{N}}
\newcommand{\UDist}{\mathcal{U}}
\newcommand{\qTurn}{\theta}
\newcommand{\qBaro}{\hat\rho_{\text{rel}}}
\newcommand{\oWifi}{s_{\text{wifi}}}
\newcommand{\oBeacons}{s_{\text{beacons}}}
\newcommand{\oStep}{n_\text{step}}
\newcommand{\oTurn}{\Delta\theta}
\newcommand{\oBaro}{\rho_{\text{rel}}}
\newcommand{\ispace}{\vspace{2mm}}
\newcommand{\vecB}[2]{\begin{pmatrix} #1\\ #2 \end{pmatrix}}
\newcommand{\matD}[4]{\begin{bmatrix} #1 & #2 \\ #3 & #4 \end{bmatrix}}
\title{On Monte Carlo Smoothing in Multi Sensor Indoor Localisation}
\date{\today}
\newcommand{\insertmail}{toni.fetzer@fhws.de}
\author{T. Fetzer$^\star$, F. Ebner$^\star$, F. Deinzer$^\star$, L. K\"oping$^\dagger$, M. Grzegorzek$^\dagger$}
\date{\today}
\institute{ $^\star$ University of Applied Sciences W\"urzburg - Schweinfurt \\
$^\dagger$ University of Siegen - Pattern Recognition Group}
%\input{misc/keywords}
%\input{misc/functions}
\begin{document}
\maketitle
\begin{frame}
\frametitle{Table of Contents}
\setbeamertemplate{section in toc}[sections numbered]
\tableofcontents[hideallsubsections]
\end{frame}
\section{General Idea \& Motivation}
\begin{frame}[fragile]
\frametitle{Indoor Localisation System}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{gfx/info_graphic}
\end{figure}%
\end{frame}
\begin{frame}[fragile]
\frametitle{Multimodal Distribution}
\begin{figure}
\centering
\def\svgwidth{0.9\columnwidth}
\input{gfx/multimodalpath.eps_tex}
\end{figure}%
\end{frame}
\begin{frame}[fragile]
\frametitle{Research Objectives}
\textbf{Goal:} Provide and discuss Monte-Carlo smoothing methods in the context of indoor localisation.
\newline
\newline
\textbf{General Assumptions:}
\begin{itemize}
\item A time-sequential, non-linear and non-Gaussian state-space
\newline $\rightarrow$ Monte-Carlo methods for approximation
\item A given indoor localisation system based on a statistical sensor fusion
\item No multi-target tracking (more than one person)
\end{itemize}
\end{frame}
%Section: Transition Model
\section{Forward Propagation}
\begin{frame}
\frametitle{Recursive Density Estimation}
\begin{itemize}
\item<1-> Current State\\
$\vec{q} = (x,y,z, \qTurn, \qBaro)^T, \enskip{}
\overbrace{x,y,z \in \R}^{\text{position}}, \enskip
\overbrace{\qTurn \in \R}^{\text{heading}},\enskip{}
\overbrace{\qBaro \in \R}^{\text{rel. pressure}}
$ \\
$\vec{q}_0 = $ uniformly distributed, $\qBaro = 0$
\ispace
\item<2-> Observation\\
$\vec{o} = (\vec{\oWifi}, \vec{\oBeacons}, \oStep, \oTurn, \oBaro, \Omega)$
\ispace
\item<3-> \small$
\underbrace{ p(\vec{q}_t\mid \vec{o}_{1:t})}_{\text{estimation}}
\propto %
\underbrace{ p(\vec{o}_t \mid \vec{q}_t) }_{\text{evaluation}}%
\int
\underbrace{ p(\vec{q}_t \mid \vec{q}_{t-1}, \vec{o}_{t-1}) }_{\text{transition}}%
\underbrace{ p(\vec{q}_{t-1} \mid \vec{o}_{1:t-1})}_{\text{recursion}}%
d\vec{q}_{t-1}%
$
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Observation}
\begin{itemize}
\item<1-> a location's probability based on the current sensor readings
\begin{equation*}
\begin{split}
p(\vec{o}_t \mid \vec{q}_t) =&\\
&p(\vec{o}_t \mid \vec{q}_t)_{\text{wifi}} \\
&p(\vec{o}_t \mid \vec{q}_t)_{\text{beacons}} \\
&p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} \\
\end{split}
\end{equation*}
\ispace
\item<1-> assuming statistical independence
\item<1-> \textit{step- and turn detection are used within the transition}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Observation - Wi-Fi/iBeacons}
\begin{itemize}
%\only<1>{
\item<1->
$p(\vec{o}_t \mid \vec{q}_t)_\text{wifi}=$
$p(\vec{\oWifi} \mid \vec{q}_t) = \prod_{\oWifi} \NDist(s_i \mid \overbrace{P_r(d_i, \Delta f_i)}^\text{model prediction}, \sigma_{\text{wifi}}^2)$,\\
\ispace
\only<1>{%
\small{\textit{probability to measure all currently received signal-strengths $\vec{\oWifi}$ at a location $\vec{q}_t$, by comparing them with corresponding estimations from a prediction model}}%
%\vspace{2.9cm}%
}
%}
\item<2->
3D signal strength prediction\\\ispace
$
P_r(d,\Delta f) =
\underbrace{P_0}_{\text{reference}}\enskip
\underbrace{- 10 \gamma \cdot \log_{10}(\tfrac{d}{d_0})}_{\text{attenuation per meter}}\enskip
\underbrace{+ \Delta f \lambda}_\text{floor attenuation}
\underbrace{+ X}_{\text{ noise }}
$
%\\\ispace$
% X \sim \NDist(0,\sigma^2_{\text{wifi}}),\enskip
% \underbrace{\Delta f \in \N}_{\text{number of floors}},\enskip
% \underbrace{\lambda \approx -8}_{\text{attenuation per floor}}
%$
%\ispace
\newline
\raisebox{5.0cm}{
%\only<2>{ \vspace{4.0cm} }
\only<3>{ \includegraphics[width = 0.35\textwidth]{gfx/wifi1.png} }%
\only<4->{ \includegraphics[width = 0.35\textwidth]{gfx/wifi2.png} }%
\only<5>{ \includegraphics[width = 0.35\textwidth]{gfx/wifi3.png} }%
\only<6->{ \includegraphics[width = 0.35\textwidth]{gfx/wifi4.png} }%
}
%\vspace{6mm}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Observation - Barometer}
\begin{itemize}
\item<1->
$p(\vec{o}_t \mid \vec{q}_t)_{\text{baro}} = $
$\NDist(o_t^{\oBaro} \mid q_t^{\qBaro}, \sigma_{\text{baro}}^2)$\\
\ispace
\small{\textit{probability to measure the pressure $o_t^{\oBaro}$ (relative to the start) at a location $\vec{q}_t$}, by comparing it with the corresponding prediction}
\item<2->
each transition performs a relative pressure prediction:\\
\ispace
$q_t^{\qBaro} = q_{t-1}^{\qBaro} + \Delta z \cdot b$, \enskip
$\underbrace{\Delta z = q_{t-1}^z - q_{t}^z}_{\text{height change}}$, \enskip
$\underbrace{b \in \R}_{\text{pressure change / meter}}$\\
%
\vspace{5mm}
\begin{figure}
\centering
\includegraphics[width = 0.4\textwidth]{gfx/baroChange}
\end{figure}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Transition - Floorplan}
\only<1>{%
1) start with the building's floorplan\\%
\includegraphics[width = 1.0\textwidth]{gfx/step1}%
}%
\only<2>{%
2) divide into cells and remove those intersecting with walls\\%
\includegraphics[width = 1.0\textwidth]{gfx/step2}%
}%
\only<3>{%
3) add edges to all (available) adjacent cells\\%
\includegraphics[width = 1.0\textwidth]{gfx/step3}%
}%
\only<4>{%
4) add stairs and remove unreachable cells\\%
\includegraphics[width = 1.0\textwidth]{gfx/step4}%
}%
\end{frame}
\newcommand{\leHeading}{\theta_{\text{walk}}}
%\newcommand{\leDistance}{d_{\text{walk}}}
\newcommand{\leDistance}{d}
\begin{frame}
\frametitle{Transition - Random Walk}
\begin{minipage}{0.49\textwidth}
$p(\vec{q}_t \mid \vec{q}_{t-1}, \vec{o}_{t-1})$:
\begin{enumerate}
\item get node $\vec{q}_{t-1}$ belongs to
\item draw distance $\leDistance$ to walk%\\ \textit{depends on the number of detected steps}
\item repeat until $\leDistance$ is reached
\begin{enumerate}
\item draw edge $e_{i,j}$ according to its probability $p(e_{i,j})$
\item walk along the edge
\item $\leDistance = \leDistance - \|e_{i,j}\|$
\end{enumerate}
\end{enumerate}
\end{minipage}
\begin{minipage}{0.49\textwidth}
\begin{figure}
\includegraphics[width = 1.0\textwidth]{gfx/walk}
\end{figure}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{Transition - Random Walk}
\begin{itemize}
\item<1-> distance to walk\\
\ispace
$%
\leDistance =
\underbrace{{o}_{t-1}^{\oStep}}_\text{steps detected} \cdot
\underbrace{s_\text{step}}_\text{step size} +
\underbrace{\mathcal{N}(0, \sigma^2_{\leDistance})}_\text{uncertainty}
$\newline\newline
\item<2-> pedestrian's heading\\
\ispace
$p(e_{i,j})_\text{turn} = p(e_{i,j} \mid \leHeading) = \NDist(\angle e_{i,j} \mid \leHeading, \sigma^2_{\text{dev}} )$\\
\ispace
$%
\underbrace{\leHeading = {q}_{t}^{\qTurn}}_\text{current heading} =
\underbrace{{q}_{t-1}^{\qTurn}}_\text{previous heading} +
\underbrace{{o}_{t-1}^{\oTurn}}_\text{sensor readings} +
\underbrace{\mathcal{N}(0, \sigma^2_{\leHeading})}_\text{uncertainty}
$\\
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Transition - Activity Recognition}
\begin{itemize}
\item additionally activity detection with\\
\ispace
$\Omega \in \{ \tt{unknown}, \tt{standing}, \tt{walking}, \tt{stairs\_up}, \tt{stairs\_down} \}$\newline
\item edges $e_{i,j}$ matching the currently detected
activity are favoured using $p(e_{i,j})_\text{act} = 0.8$ and $0.2$ otherwise
\end{itemize}
\end{frame}
%Section: Backward Propagation
\section{Backward Propagation}
\begin{frame}[fragile]
\frametitle{Basics of Particle Smoothing}
\begin{figure}
\centering
\def\svgwidth{0.9\columnwidth}
\input{gfx/basicssmoothing.eps_tex}
\end{figure}%
\end{frame}
\begin{frame}[fragile]
\frametitle{Forward-Backward Smoothing}
\begin{algorithm}[H]
\caption{Forward-Backward Smoother}
\label{alg:forward-backwardSmoother}
\begin{algorithmic}[1] % The number tells where the line numbering should start
\Statex{\textbf{Input:} Prior $\mu(\vec{X}^i_1)$}
\Statex{~}
\For{$t = 1$ \textbf{to} $T$} \Comment{Filtering}
\State{Perform particle filtering to obtain the weighted trajectories $ \{ W^i_t, \vec{X}^i_t\}^N_{i=1}$}
\EndFor
\For{ $i = 1$ \textbf{to} $N$} \Comment{Initialization}
\State{Set $W^i_{T \mid T} = W^i_T$}
\EndFor
\For{$t = T-1$ \textbf{to} $1$} \Comment{Smoothing}
\For{$i = 1$ \textbf{to} $N$}
\State{Compute the weights
\fcolorbox{mOrange}{mBGColor}{
$
W^i_{t \mid T} = W^i_t \left[ \sum^N_{j=1} W^j_{t+1 \mid T} \frac{p(\vec{X}^j_{t+1} \mid \vec{X}^i_t)}{\sum^N_{k=1} W^k_t ~ p(\vec{X}^j_{t+1} \mid \vec{X}^k_t)} \right]
$}
}
\EndFor
\EndFor
\end{algorithmic}
\end{algorithm}
\end{frame}
\begin{frame}[fragile]
\frametitle{Backward Simulation}
\begin{algorithm}[H]
\caption{Backward Simulation Smoothing}
\label{alg:backwardSimulation}
\begin{algorithmic}[1] % The number tells where the line numbering should start
\Statex{\textbf{Input:} Prior $\mu(\vec{X}^i_1)$}
\Statex{~}
\For{$t = 1$ \textbf{to} $T$} \Comment{Filtering}
\State{Perform particle filtering to obtain the weighted trajectories $ \{ W^i_t, \vec{X}^i_t\}^N_{i=1}$}
\EndFor
\For{ $k = 1$ \textbf{to} $N_{\text{sample}}$}
\State{Choose $\tilde{\vec{q}}^k_T = \vec{X}^i_T$ with probability $W^i_T$} \Comment{Initialize realization}
\For{$t = T-1$ \textbf{to} $1$} \Comment{Smoothing}
\For{$j = 1$ \textbf{to} $N$}
\State{Compute the weights \fcolorbox{mOrange}{mBGColor}{$W^j_{t \mid t+1} = W^j_t ~ p(\tilde{\vec{q}}_{t+1} \mid \vec{X}^j_{t})$}}
\EndFor
\State{\fcolorbox{mOrange}{mBGColor}{Choose $\tilde{\vec{q}}^k_t = \vec{X}^j_t$ with probability $W^j_{t\mid t+1}$}}
\EndFor
\State{$\tilde{\vec{q}}^k_{1:T} = (\tilde{\vec{q}}^k_1, \tilde{\vec{q}}^k_2, ..., \tilde{\vec{q}}^k_T)$ is one approximate realization from $p(\vec{q}_{1:T} \mid \vec{o}_{1:T})$}
\EndFor
\end{algorithmic}
\end{algorithm}
\end{frame}
\begin{frame}[fragile]
\frametitle{Backward Transition}
\begin{columns}[T,onlytextwidth]
\column{0.55\textwidth}
Very simple model for calculating the state transition $p(q_{t+1} \mid q_{t})$:
\begin{itemize}
\setlength{\itemindent}{-0.5cm}
\item Linear distance: $p(\vec{q}_{t+1} \mid \vec{q}_t)_{\text{step}} = $\\
\ispace
$%
\mathcal{N}(\Delta d_t \mid \mu_{\text{step}}, \sigma_{\text{step}}^2)
$\newline
\item Heading change: $p(\vec{q}_{t+1} \mid \vec{q}_t, \vec{o}_t)_{\text{turn}} = $\\
\ispace
$%
\mathcal{N}(\Delta\alpha_t \mid \oTurn, \sigma^2_{\text{turn}})
$\newline
\item Height change: $p(\vec{q}_{t+1} \mid \vec{q}_t, \vec{o}_t)_{\text{baro}} = $\\
\ispace
$
\mathcal{N}(\Delta z \mid \mu_z, \sigma^2_{z})
$
\end{itemize}
%\column{0.05\textwidth}
\column{0.60\textwidth}
\centering
\input{gfx/backwardTransition.eps_tex}{}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Backward Transition}
\begin{itemize}
\item<1-> the probability density of the smoothing transition is then given by
\begin{equation*}
\arraycolsep=1.2pt
\begin{array}{ll}
p(\vec{q}_{t+1} \mid \vec{q}_t, \vec{o}_t) =
&p(\vec{q}_{t+1} \mid \vec{q}_t)_{\text{step}}\\
&p(\vec{q}_{t+1} \mid \vec{q}_t, \vec{o}_t)_{\text{turn}}\\
&p(\vec{q}_{t+1} \mid \vec{q}_t, \vec{o}_t)_{\text{baro}}
\end{array}
\enspace .
\end{equation*}
\ispace
\item<1-> assuming again statistical independence
\item<1-> important: to do all this, we need to save all particles and their weight at each time step while filtering.
\end{itemize}
\end{frame}
%Section Evaluation
\section{Evaluation}
\begin{frame}[fragile]
\frametitle{Test Environment}
\begin{figure}
\centering
\scalebox{1.2}{
\input{gfx/paths}}
\end{figure}
%
\end{frame}
\begin{frame}[fragile]
\frametitle{Fixed-interval Smoothing - Path 2}
\begin{figure}
\centering
\scalebox{1.2}{
\input{gfx/path2_interval_compare}}
%\caption{a) Exemplary results for path 2 where BS (blue) and filtering (green) using 2500 particles and 500 sample realisations. b) A situation where smoothing provides a worse error in regard to the ground truth, but obviously a more realistic path.}
%\label{fig:int_path2}
\end{figure}
%
\end{frame}
\begin{frame}[fragile]
\frametitle{Fixed-interval Smoothing - UAH (This building)}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{gfx/uah_live.png}
\end{figure}
%
\end{frame}
\begin{frame}[fragile]
\frametitle{Fixed-lag Smoothing - Path 4}
\begin{figure}
\centering
\scalebox{1.2}{
\input{gfx/path4_lag_comp}}
%\caption{Estimation results on path 4 for the filter and both smoothers using fixed-lag smoothing with $\tau = 5$. For a better visualisation, the segments are divided using an outline of alternating grey levels. The corresponding segment-error can be seen in fig. \ref{fig:lag_error_path4}.}
%\label{fig:lag_comp_path4}
\end{figure}
\end{frame}
\begin{frame}[fragile]
\frametitle{Fixed-lag Smoothing - Path 4}
\begin{figure}
\centering
\scalebox{1.2}{
\input{gfx/error_timed}}
%\caption{Estimation results on path 4 for the filter and both smoothers using fixed-lag smoothing with $\tau = 5$. For a better visualisation, the segments are divided using an outline of alternating grey levels. The corresponding segment-error can be seen in fig. \ref{fig:lag_error_path4}.}
%\label{fig:lag_comp_path4}
\end{figure}
\end{frame}
\begin{frame}[fragile]
\frametitle{Overall Results}
Overall estimation results for all paths on 10 MC runs:
\centering
\begin{tabular}{ |l |c |c |}
\hline
& Galaxy S5 & Nexus 6 \\ \hline
Filtering & \SI{7.92}{m} & \SI{5.50}{m} \\\hline
Forwards-Backward & \SI{6.48}{m} & \SI{4.47}{m} \\\hline
Backward Simulation & \SI{6.68}{m} & \SI{4.80}{m} \\
\hline
\end{tabular}
\begin{itemize}
\item even with 50 particles backward simulation is still able to provide good results.
\item bigger lags improve the results with increasing temporal error
\end{itemize}
\end{frame}
%Section Conclusion
\section{Conclusion}
\begin{frame}[fragile]
\frametitle{Conclusion}
\textcolor{mLightBrown}{What you have seen:}
\begin{itemize}
\item Successful use of \textbf{different smoothing algorithm} in context of indoor localisation
\item A \textbf{very simple} backward transition model
\item \textbf{Practical} and \textbf{theoretical comparison} between the single approaches
\end{itemize}
\begin{columns}[T,onlytextwidth]
\column{0.5\textwidth}
\textcolor{pro}{What's good:}
\begin{itemize}
\item Realistic paths and good error compensation
\item \textbf{Low computational cost} and \textbf{low complexity} by using backward simulation
\end{itemize}
\column{0.05\textwidth}
\column{0.5\textwidth}
\textcolor{con}{What's future work?}
\begin{itemize}
\item Dynamic-lag smoothing
\item Prediction of future observations to reduce the estimation lag
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}[fragile]{}
\setbeamercolor{frametitle}{use=mDarkTeal,fg=mDarkTeal, bg=mWhite}
\vfill
\begin{center}
\vspace{1em}
\usebeamerfont{section title}
Thank you. Any questions?
\end{center}
\vfill
Toni Fetzer \\
\insertmail \\
University of Applied Sciences W\"urzburg - Schweinfurt
\end{frame}
%\begin{frame}[allowframebreaks]
% \frametitle{References}
% \bibliography{demo}
% \bibliographystyle{abbrv}
%\end{frame}
\end{document}