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}
|
\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$.
|
\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}
|
\begin{equation}
|
||||||
\mu_{\mPosVec} = \mTXP - 10 \mPLE \log_{10}{\frac{\mMdlDist}{\mMdlDist_0}} + \Delta{f} \mWAF
|
\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
|
(s_{\mPosVec} - \mu_{\mPosVec})^2
|
||||||
\enskip,\enskip\enskip
|
\enskip,\enskip\enskip
|
||||||
\mu_{\mPosVec} =
|
\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 .
|
\enspace .
|
||||||
\label{eq:optTarget}
|
\label{eq:optTarget}
|
||||||
\end{equation}
|
\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.
|
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}.
|
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.
|
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.
|
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.
|
To recognize the respective activities, we suggest a very simple threshold-based process.
|
||||||
If the current activity $\mObsActivity$ is recognized as "standing", a particle located on the floor receives a probability given by $\kappa$, otherwise $1 - \kappa$.
|
Defining a threshold $t_\text{acc}$ for acceleration (m/s$^2$) and $t_\text{baro}$ for altitude (hPa).
|
||||||
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$.
|
A corresponding activity is chosen by
|
||||||
The probability $\kappa$ is chosen empirically.
|
|
||||||
|
\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.
|
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.
|
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. }
|
\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 :))
|
\item bulli methode (gleich citen :))
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Sample Impoverishment}
|
\subsection{Sample Impoverishment}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item einfache methode um das zu beheben.
|
\item einfache methode um das zu beheben.
|
||||||
@@ -17,4 +19,6 @@
|
|||||||
\end{itemize}
|
\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}
|
\label{equ:bayesInt}
|
||||||
\end{equation}
|
\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}.
|
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.
|
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}
|
\begin{equation}
|
||||||
\mStateVec = (x, y, z, \mStateHeading),\enskip
|
\mStateVec = (x, y, z, \mStateHeading),\enskip
|
||||||
@@ -29,6 +29,7 @@ The state $\mState$ is given by
|
|||||||
\end{equation}
|
\end{equation}
|
||||||
%
|
%
|
||||||
where $x, y, z$ represent the position in 3D space and $\mStateHeading$ is the user's current (absolute) heading.
|
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
|
The observation vector is defined as
|
||||||
%
|
%
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
|
|||||||
Reference in New Issue
Block a user