add activity recognition
This commit is contained in:
@@ -41,7 +41,7 @@ The comparison between a single RSSI measurement $\mRssi_i$ and the reference is
|
||||
\end{equation}
|
||||
|
||||
\noindent where $\mu_{i,\mPosVec}$ denotes the (predicted) average signal strength and $\sigma_{i,\mPosVec}^2$ a corresponding standard deviation for the \docAPshort{} identified by $i$, regarding the location $\mPosVec$.
|
||||
Within this work $\mu_{\mPosVec}$ is calculated by a modified version of the wall-attenuation-factor model as presented in \cite{Ebner-17}. Here, the prediction depends on the 3D distance $d$ from the \docAPshort{} and the number of floors $\Delta f$ between the \docAPshort{} and $\mPosVec$ of the particle-in-question:
|
||||
Within this work $\mu_{\mPosVec}$ is calculated by a modified version of the wall-attenuation-factor model as presented in \cite{Ebner-17}. Here, the prediction depends on the 3D distance $d$ from the \docAPshort{} and the number of floors $\Delta f$ between the \docAPshort{} and $\mPosVec$ of the state-in-question:
|
||||
|
||||
\begin{equation}
|
||||
\mu_{\mPosVec} = \mTXP - 10 \mPLE \log_{10}{\frac{\mMdlDist}{\mMdlDist_0}} + \Delta{f} \mWAF
|
||||
@@ -68,12 +68,13 @@ The target function to optimize the $6$ model parameters for one \docAPshort{} i
|
||||
(s_{\mPosVec} - \mu_{\mPosVec})^2
|
||||
\enskip,\enskip\enskip
|
||||
\mu_{\mPosVec} =
|
||||
\mTXP{} + 10 \mPLE{} \log_{10} \| \mPosVec-\mPosAPVec \| + \text{floors}(\mPosVec,\mPosAPVec) \mWAF{}
|
||||
\mTXP{} + 10 \mPLE{} \log_{10} \| \mPosVec-\mPosAPVec \| + \Delta f \mWAF{}
|
||||
\enspace .
|
||||
\label{eq:optTarget}
|
||||
\end{equation}
|
||||
|
||||
\noindent Here, one reduces the squared error between reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding model predictions $\mu_{\mPosVec}$ (cf. eq. \eqref{eq:wallAtt}).
|
||||
\noindent Here, one reduces the squared error between reference measurements $s_{\mPosVec} \in \vec{s}$ with well-known location $\mPosVec$ and corresponding model predictions $\mu_{\mPosVec}$ (cf. eq. \eqref{eq:wallAtt}).
|
||||
The number of floors between $\mPosVec$ and $\mPosAPVec$ is again given by $\Delta f$.
|
||||
As discussed by \cite{Ebner-17}, optimizing all 6 parameters, especially the unknown \docAPshort{} position $\mPosAPVec$, usually results in optimizing a non-convex, discontinuous function.
|
||||
A promising way to deal with non-convex functions is using a genetic algorithm, which is inspired by the process of natural selection \cite{goldberg89}.
|
||||
|
||||
@@ -107,17 +108,50 @@ Nevertheless, our method also allows to distribute beacons in the whole building
|
||||
|
||||
To enable continuous floor changes we use a simple activity recognition based on the smartphone's barometer and accelerometer.
|
||||
The method distinguishes between the following: standing, walking, walking up or walking down.
|
||||
\todo{fill me}
|
||||
For each sensor we define two fixed-sized windows: $\vec{\omega}_\text{s}$ (short) and $\vec{\omega}_\text{l}$ (long).
|
||||
As their naming suggests, the windows differ in size and thus in the number of raw sensor measurements they hold.
|
||||
Both windows are implemented as real-time queues.
|
||||
Therefore, if a new sensor measurement is added, the oldest entry will be removed.
|
||||
|
||||
All this is evaluated within $p(\vec{o}_t \mid \vec{q}_t)_\text{act}$ by providing a probability based on whether a particle is located at a stair, an elevator or the floor.
|
||||
If the current activity $\mObsActivity$ is recognized as "standing", a particle located on the floor receives a probability given by $\kappa$, otherwise $1 - \kappa$.
|
||||
The same applies to "walking up" and "walking down", here a particle located on one of the possible staircases or elevators receives $\kappa$ and those who remain on the floor $1 - \kappa$.
|
||||
The probability $\kappa$ is chosen empirically.
|
||||
To recognize the respective activities, we suggest a very simple threshold-based process.
|
||||
Defining a threshold $t_\text{acc}$ for acceleration (m/s$^2$) and $t_\text{baro}$ for altitude (hPa).
|
||||
A corresponding activity is chosen by
|
||||
|
||||
\begin{equation}
|
||||
\mObsActivity =
|
||||
\begin{cases}
|
||||
\text{standing} & \Delta \bar\omega_\text{acc} < t_\text{acc} \\
|
||||
\text{walking} & |\Delta \bar\omega_\text{baro}| < t_\text{baro} \\
|
||||
\text{walking down} & \Delta \bar\omega_\text{baro} > 0 \\
|
||||
\text{walking up} & \text{otherwise}
|
||||
\end{cases}
|
||||
\end{equation}
|
||||
|
||||
\noindent where
|
||||
|
||||
\begin{equation}
|
||||
\Delta \bar\omega = \bar\omega_\text{l} - \bar\omega_\text{s}
|
||||
\end{equation}
|
||||
\noindent and $\bar\omega$ provides the arithmetic mean of the respective windows and thus represents a moving average.
|
||||
We set $t_\text{acc} = $ \SI{0.015}{m/s$^2$} and $t_\text{baro} = $ \SI{0.042}{m/s$^2$}.
|
||||
For both involved sensors we suggest to set the size of $\vec{\omega}_\text{s}$ between \SI{0.3}{\second} and \SI{0.6}{\second}.
|
||||
Recognizing if the pedestrian is standing or walking requires less prior data, then climbing stairs.
|
||||
Therefore, $\vec{\omega}_\text{l, acc}$ is recommended between \SI{1}{\second} and \SI{2}{\second}, while $\vec{\omega}_\text{l, baro}$ between \SI{3}{\second} and \SI{5}{\second}.
|
||||
It should be noted, that the window size is a classic trade-off between flexibility and robustness.
|
||||
The larger the window, the slower changes become noticeable and vice versa.
|
||||
Of course, the above suggested values are depended upon the particular requirements and used sensors.
|
||||
However, they should be valid for many modern commercially available smartphones.
|
||||
|
||||
The activity is now evaluated using $p(\vec{o}_t \mid \vec{q}_t)_\text{act}$ by providing a probability based on whether the 3D location $\mPosVec$ of the state-in-question is on a staircase, in an elevator or on the floor.
|
||||
If the current activity $\mObsActivity$ is recognized as "standing", a $\mPosVec$ located on the floor results in a probability given by $\kappa$, otherwise $1 - \kappa$.
|
||||
The same applies to "walking up" and "walking down", here a $\mPosVec$ located on one of the possible staircases or elevators provides $\kappa$ and those who remain on the floor $1 - \kappa$.
|
||||
The likelihood for $\kappa$ is chosen empirically.
|
||||
It is useful to find a reasonable value that is not too restrictive.
|
||||
In most cases, $\kappa = 0.75$ provides good results by remaining enough room for erroneous classifications.
|
||||
A significant higher value like $\kappa = 0.99$ could cause the particle filter to be stuck on a staircase or to be unable to change floors.
|
||||
A significant higher value like $\kappa = 0.99$ could cause the system to be stuck on a staircase or to be unable to change floors.
|
||||
|
||||
|
||||
\commentByToni{Wir haben im related work schon von particeln gesprochen. hier in der eval nehm ich aber wieder viel state und state-in-question. wie wollen wir es machen?}
|
||||
|
||||
\commentByToni{warum wir die große treeppe so schwer ist: wlan model zieht JEDE decke ab, nicht nur die sichtbaren, weil das model einfach so gebaut wurde. }
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
\item bulli methode (gleich citen :))
|
||||
\end{itemize}
|
||||
|
||||
|
||||
|
||||
\subsection{Sample Impoverishment}
|
||||
\begin{itemize}
|
||||
\item einfache methode um das zu beheben.
|
||||
@@ -17,4 +19,6 @@
|
||||
\end{itemize}
|
||||
|
||||
|
||||
%fürs verständnis, diesen satz hier nicht vergessen.
|
||||
as described in chapter \ref{sec:rse}, a particle is a weighted representation of one possible system state $\mStateVec$....
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ The filtering equation to calculated the posterior is given by the recursion
|
||||
\label{equ:bayesInt}
|
||||
\end{equation}
|
||||
%
|
||||
where $\mState$ is the hidden state and $\mObs_t$ provides the corresponding observation vector at time $t$.
|
||||
where $\mStateVec_t$ is the hidden state and $\mObsVec_t$ provides the corresponding observation vector at time $t$.
|
||||
As realization of \eqref{equ:bayesInt} we use the well-known CONDENSATION particle filter \cite{Isard98:CCD}.
|
||||
Here, the transition is used as proposal distribution and a resampling step is utilized to handle the phenomenon of weight degeneracy.
|
||||
|
||||
The state $\mState$ is given by
|
||||
The state $\mStateVec$ is given by
|
||||
%
|
||||
\begin{equation}
|
||||
\mStateVec = (x, y, z, \mStateHeading),\enskip
|
||||
@@ -29,6 +29,7 @@ The state $\mState$ is given by
|
||||
\end{equation}
|
||||
%
|
||||
where $x, y, z$ represent the position in 3D space and $\mStateHeading$ is the user's current (absolute) heading.
|
||||
In context of particle filtering, a particle is thus a weighted representation of one possible state $\mStateVec$.
|
||||
The observation vector is defined as
|
||||
%
|
||||
\begin{equation}
|
||||
|
||||
Reference in New Issue
Block a user