text:
\section{Conclusion}

In recent years, offline approaches that use regression to predict
2D-to-3D correspondences
\cite{Shotton2013,GuzmanRivera2014,Valentin2015RF,Brachmann2016,Massiceti2016}
have achieved state-of-the-art camera relocalisation results, but
their adoption for online relocalisation in practical systems such as InfiniTAM
\cite{Kaehler2015,Kaehler2016} has been hindered by the need to train
extensively on the target scene ahead of time.

We show how to circumvent this limitation by adapting offline-trained regression forests to novel scenes online.
Our adapted forests achieve relocalisation performance on 7-Scenes
\cite{Shotton2013} that is competitive with the offline-trained forests of
existing methods, and our approach runs in under $150$ms, making it competitive
in practice with fast keyframe-based approaches such as random ferns
\cite{Glocker2015,Kaehler2016}. Compared to such approaches, we are also much better
able to relocalise from novel poses, freeing the user from manually searching for known
poses when relocalising.

\section*{Acknowledgements}
\noindent
We would like to thank Victor~Prisacariu and Olaf~K{\"a}hler for providing us with the InfiniTAM source code.
\\
This work was supported by the EPSRC, ERC grant ERC-2012-AdG 321162-HELIOS, EPSRC grant Seebibyte EP/M013774/1 and EPSRC/MURI grant EP/N019474/1.
\section{Experiments}

We perform both quantitative and qualitative experiments to evaluate our
approach. In \S\ref{subsec:adaptationperformance}, we compare our
\emph{adaptive} approach to state-of-the-art \emph{offline} relocalisers
that have been trained directly on the scene of interest. We show that our adapted
forests achieve competitive relocalisation performance despite being trained
on very different scenes, enabling their use for \emph{online}
relocalisation. In \S\ref{subsec:trackinglossrecovery}, we show that we can perform this adaptation on-the-fly from live sequences, allowing us to
support tracking loss recovery in interactive scenarios.
In \S\ref{subsec:novelposes}, we evaluate how well our approach
generalises to novel poses in comparison to a keyframe-based random fern
relocaliser based on \cite{Glocker2015}. This relocaliser is also practical for
on-the-fly relocalisation (hence its use in InfiniTAM \cite{Kaehler2016}), but
its use of keyframes prevents it from generalising well to novel poses.
By contrast, we are able to relocalise well even from poses that are quite far
away from the training trajectory. Finally, in \S\ref{subsec:timings}, we
compare the speed of our approach with random ferns during both normal operation
(i.e.\ when the scene is being successfully tracked) and relocalisation.
Our approach is slower than random ferns, but remains close to real-time
and achieves much higher relocalisation performance.
Further analysis can be found in the supplementary material.

\subsection{Adaptation Performance}
\label{subsec:adaptationperformance}

\begin{table*}[!t]
    \centering
    \scriptsize
    \rowcolors{2}{white}{gray!25}
    \begin{tabular}{cccccccccc}
        \toprule
        ~ & & \multicolumn{7}{c}{\textbf{Relocalisation Performance on Test Scene}} \\
        \rowcolor{white}
        \multirow{-2}{*}{\textbf{Training Scene}} & & \textbf{Chess} & \textbf{Fire} & \textbf{Heads} & \textbf{Office} & \textbf{Pumpkin} & \textbf{Kitchen} & \textbf{Stairs} & \textbf{Average (all scenes)} \\
        \midrule
        \cellcolor{white}                                       & Reloc & 99.8\% & 95.7\% & 95.5\% & 91.7\% & 82.8\% & 77.9\% & 25.8\% & 81.3\% \\
        \cellcolor{white}\multirow{-2}{*}{Chess}                & + ICP & 99.9\% & 97.8\% & 99.5\% & 94.1\% & 91.3\% & 83.3\% & 28.4\% & 84.9\% \\
        \cellcolor{white}                                       & Reloc & 98.4\% & 96.9\% & 98.2\% & 89.7\% & 80.5\% & 71.9\% & 28.6\% & 80.6\% \\
        \cellcolor{white}\multirow{-2}{*}{Fire}                 & + ICP & 99.1\% & 99.2\% & 99.9\% & 92.1\% & 89.1\% & 81.7\% & 31.0\% & 84.6\% \\
        \cellcolor{white}                                       & Reloc & 98.0\% & 91.7\% & 100\%  & 73.1\% & 77.5\% & 67.1\% & 21.8\% & 75.6\% \\
        \cellcolor{white}\multirow{-2}{*}{Heads}                & + ICP & 99.3\% & 92.3\% & 100\%  & 81.1\% & 87.7\% & 82.0\% & 31.9\% & 82.0\% \\
        \cellcolor{white}                                       & Reloc & 99.2\% & 96.5\% & 99.7\% & 97.6\% & 84.0\% & 81.7\% & 33.6\% & 84.6\% \\
        \cellcolor{white}\multirow{-2}{*}{Office}               & + ICP & 99.4\% & 99.0\% & 100\%  & 98.2\% & 91.2\% & 87.0\% & 35.0\% & 87.1\% \\
        \cellcolor{white}                                       & Reloc & 97.5\% & 94.9\% & 96.9\% & 82.7\% & 83.5\% & 70.4\% & 30.7\% & 75.5\% \\
        \cellcolor{white}\multirow{-2}{*}{Pumpkin}              & + ICP & 98.9\% & 97.6\% & 99.4\% & 86.9\% & 91.2\% & 82.3\% & 32.4\% & 84.1\% \\
        \cellcolor{white}                                       & Reloc & 99.9\% & 95.4\% & 98.0\% & 93.3\% & 83.2\% & 86.0\% & 28.2\% & 83.4\% \\
        \cellcolor{white}\multirow{-2}{*}{Kitchen}              & + ICP & 99.9\% & 98.2\% & 100\%  & 94.5\% & 90.4\% & 88.1\% & 31.3\% & 86.1\% \\
        \cellcolor{white}                                       & Reloc & 97.3\% & 95.4\% & 97.9\% & 90.8\% & 80.6\% & 74.5\% & 45.7\% & 83.2\% \\
        \cellcolor{white}\multirow{-2}{*}{Stairs}               & + ICP & 98.0\% & 97.4\% & 99.8\% & 92.1\% & 89.5\% & 81.0\% & 46.6\% & 86.3\% \\
        \cellcolor{white}                                       & Reloc & 97.3\% & 95.7\% & 97.3\% & 83.7\% & 85.3\% & 71.8\% & 24.3\% & 79.3\% \\
        \cellcolor{white}\multirow{-2}{*}{Ours (Author's Desk)} & + ICP & 99.2\% & 97.7\% & 100\%  & 88.2\% & 90.6\% & 82.6\% & 31.0\% & 84.2\% \\
        \midrule
        \cellcolor{white}                                       & Reloc & 98.4\% & 95.3\% & 97.9\% & 87.8\% & 82.2\% & 75.2\% & 29.8\% & 80.9\% \\
        \cellcolor{white}\multirow{-2}{*}{Average}              & + ICP & 99.2\% & 97.4\% & 99.8\% & 90.9\% & 90.1\% & 83.5\% & 33.5\% & 84.9\% \\
        \bottomrule
    \end{tabular}
    \vspace{1mm}
    \caption{
        The performance of our \emph{adaptive} approach after pre-training on various scenes of the 7-Scenes dataset \cite{Shotton2013}.
        We show the scene used to pre-train the forest in each version of our approach in the left column. The pre-trained forests are adapted \emph{online} for the test scene, as described in the main text.
        The percentages denote proportions of test frames with $\le 5$cm translational error and $\le 5^\circ$ angular error.
        }
    \label{tbl:adaptationperformance}
	\vspace{-\baselineskip}
\end{table*}

In evaluating the extent to which we are able to adapt a regression forest that
has been pre-trained on a different scene to the scene of interest, we seek to
answer two questions. First, how does an adapted forest compare to one that has
been pre-trained offline on the target scene? Second, to what extent does an
adapted forest's performance depend on the scene on which it has been
pre-trained? To answer both of these questions, we compare the performances of
adapted forests pre-trained on a variety of scenes (each scene from the 7-Scenes
dataset \cite{Shotton2013}, plus a novel scene containing the first author's
desk) to the performances of forests trained offline on the scene of interest
using state-of-the-art approaches
\cite{Shotton2013,GuzmanRivera2014,Valentin2015RF,Brachmann2016}.

The exact testing procedure we use for our approach is as follows. First, we
pre-train a forest on a generic scene and remove the contents of its leaves, as
described in \S\ref{sec:method}: this process runs \emph{offline} over a number
of hours or even days (but we only need to do it once). Next, we adapt the
forest by feeding it new examples from a training sequence captured on the scene
of interest: this runs \emph{online} at frame rates (in a real system, this allows
us to start relocalising almost immediately whilst training carries on in the
background, as we show in \S\ref{subsec:trackinglossrecovery}). Finally, we test
the adapted forest by using it to relocalise from every frame of a separate testing
sequence captured on the scene of interest.

As shown in Table~\ref{tbl:adaptationperformance}, the results are very accurate.
Whilst there are certainly some variations in the performance achieved by
adapted forests pre-trained on different scenes (in particular, forests trained
on the \emph{Heads} and \emph{Pumpkin} scenes from the dataset are slightly
worse), the differences are not profound: in particular, relocalisation
performance seems to be more tightly coupled to the difficulty of the scene of
interest than to the scene on which the forest was pre-trained. Notably, all of
our adapted forests achieve results that are within striking distance of the
state-of-the-art \emph{offline} methods (Table~\ref{tbl:comparativeperformance}), and
are considerably better than those that can be achieved by online competitors
such as the keyframe-based random fern relocaliser implemented in InfiniTAM
\cite{Glocker2015,Kaehler2016} (see \S\ref{subsec:novelposes}). Nevertheless,
there is clearly a trade-off to be made here between performance and
practicality: pre-training on the scene of interest is impractical for
on-the-fly relocalisation, but achieves somewhat better results, probably due to
the opportunity afforded to adapt the structure of the forest to the target
scene.

This drop in performance in exchange for practicality can be mitigated to some
extent by refining our relocaliser's pose estimates using the ICP-based tracker
\cite{Besl1992} in InfiniTAM \cite{Kaehler2015}. Valentin et al.\
\cite{Valentin2015RF} observe that the 5cm/5$^\circ$ error metric commonly used
to evaluate relocalisers is `fairly strict and should allow any robust
model-based tracker to resume'. In practice, ICP-based tracking is in many cases
able to resume from initial poses with even greater error: indeed, as
Table~\ref{tbl:adaptationperformance} shows, with ICP refinement enabled, we are
able to relocalise from a significantly higher proportion of test frames. Whilst
ICP could clearly also be used to refine the results of offline methods, what is
important in this case is that ICP is fast and does not add significantly to the
overall runtime of our approach, which remains close to real time. As such,
refining \emph{our} pose estimates using ICP yields a high-quality relocaliser
that is still practical for online use.

\iftrue
\begin{table}[!t]
\centering
\scriptsize
\begin{tabular}{cHcccccc}
\toprule
\textbf{Scene} & \textbf{Testing frames} & \cite{Shotton2013} & \cite{GuzmanRivera2014} & \cite{Valentin2015RF} & \cite{Brachmann2016} & \textbf{Us} & \textbf{Us+ICP} \\
\midrule
Chess   & 2000 & 92.6\% &  96\%  & 99.4\% & 99.6\% & 99.2\% & 99.4\% \\
Fire    & 2000 & 82.9\% &  90\%  & 94.6\% & 94.0\% & 96.5\% & 99.0\% \\
Heads   & 1000 & 49.4\% &  56\%  & 95.9\% & 89.3\% & 99.7\% &  100\% \\
Office  & 4000 & 74.9\% &  92\%  & 97.0\% & 93.4\% & 97.6\% & 98.2\% \\
Pumpkin & 2000 & 73.7\% &  80\%  & 85.1\% & 77.6\% & 84.0\% & 91.2\% \\
Kitchen & 5000 & 71.8\% &  86\%  & 89.3\% & 91.1\% & 81.7\% & 87.0\% \\
Stairs  & 1000 & 27.8\% &  55\%  & 63.4\% & 71.7\% & 33.6\% & 35.0\% \\
\midrule
Average & --   & 67.6\% & 79.3\% & 89.5\% & 88.1\% & 84.6\% & 87.1\% \\
\bottomrule
\end{tabular}
\vspace{1mm}
\caption{Comparing our \emph{adaptive} approach to state-of-the-art
    \emph{offline} methods on the 7-Scenes dataset \cite{Shotton2013} (the percentages denote
    proportions of test frames with $\le 5$cm translation error and $\le
    5^{\circ}$ angular error). For our method, we report the results obtained by
    adapting a forest pre-trained on the \emph{Office} sequence (from
    Table~\ref{tbl:adaptationperformance}). We are competitive with, and
    sometimes better than, the offline methods, without needing to pre-train
    on the test scene.}
\label{tbl:comparativeperformance}
\vspace{-\baselineskip}
\end{table}
\fi

\subsection{Tracking Loss Recovery}
\label{subsec:trackinglossrecovery}

In \S\ref{subsec:adaptationperformance}, we investigated our ability to adapt a forest to a new scene by filling its leaves with data from a training sequence for that scene, before testing the adapted forest on a separate testing sequence shot on the same scene.
Here, we quantify our ability to perform this adaptation \emph{on the fly} by filling the leaves frame-by-frame from the testing sequence: this allows recovery from tracking loss in an interactive scenario without the need for prior training on anything other than the live sequence, making our approach extremely convenient for tasks such as interactive 3D reconstruction.

Our testing procedure is as follows: at each new frame (except the first), we assume that tracking has failed, and try to relocalise using the forest we have available at that point; we record whether or not this succeeds. Regardless, we then restore the ground truth camera pose (or the tracked camera pose, in a live sequence) and, provided tracking hasn't actually failed, use examples from the current frame to continue training the forest. As Figure~\ref{fig:trackinglossrecovery} shows, we are able to start relocalising almost immediately in a live sequence (in a matter of frames, typically 4--6 are enough). Subsequent performance then varies based on the difficulty of the sequence, but rarely drops below $80\%$, except for the challenging \emph{Stairs} sequence. This makes our approach highly practical for interactive relocalisation, something we also show in our supplementary video.

\stufig{width=\linewidth}{images/online_relocalization_icp}{The performance of our approach for tracking loss recovery (\S\ref{subsec:trackinglossrecovery}). Filling the leaves of a forest pre-trained on \emph{Office} frame-by-frame \emph{directly} from the \emph{testing} sequence, we are able to start relocalising almost immediately in new scenes. This makes our approach highly practical in interactive scenarios such as 3D reconstruction.}{fig:trackinglossrecovery}{!t}

\subsection{Generalisation to Novel Poses}
\label{subsec:novelposes}

\stufig{width=\linewidth}{images/novelposes-graph}{Evaluating how well our approach generalises to novel poses in comparison to a keyframe-based random fern relocaliser based on \cite{Glocker2015}. The performance decay experienced as test poses get further from the training trajectory is much less severe with our approach than with random ferns.}{fig:novelposes-graph}{!t}

\begin{figure}[!t]
\vspace{\baselineskip}
\includegraphics[width=\linewidth]{images/poses_frustums}
\includegraphics[width=\linewidth]{images/poses_numbered}
\caption{A qualitative example of novel poses from which we are able to
    relocalise to within 5cm/5$^\circ$ on the \emph{Fire} sequence from 7-Scenes
    \cite{Shotton2013}. Pose novelty measures the distance of a test pose from a
    nearby pose (blue) on the training trajectory (yellow). We can relocalise from
    both easy poses (up to 35cm/35$^\circ$ from the training trajectory, green) and
    hard poses ($>$ 35cm/35$^\circ$, red). The images below the main figure show
    views of the scene from the training poses and testing poses indicated.}
\label{fig:novelposes-example}
\vspace{-\baselineskip}
\end{figure}

To evaluate how well our approach generalises to novel poses, we examine how the
proportion of frames we can relocalise decreases as the distance of the (ground
truth) test poses from the training trajectory increases. We compare our
approach with the keyframe-based relocaliser in InfiniTAM \cite{Kaehler2016},
which is based on the random fern approach of Glocker et al.\
\cite{Glocker2015}. Relocalisation from novel poses is a well-known failure case
of keyframe-based methods, so we would expect the random fern approach to
perform poorly away from the training trajectory; by contrast, it is interesting
to see the extent to which our approach can relocalise from a wide range of
novel poses.

We perform the comparison separately for each 7-Scenes sequence, and then
aggregate the results. For each sequence, we first group the test poses into
bins by pose novelty. Each bin is specified in terms of a maximum translation
and rotation difference of a test pose with respect to the training trajectory
(for example, poses that are within 5cm and 5$^\circ$ of any training pose are
assigned to the first bin, remaining poses that are within 10cm and 10$^\circ$
are assigned to the second bin, etc.). We then determine the proportion of the
test poses in each bin for which it is possible to relocalise to within $5$cm
translational error and $5^\circ$ angular error using (a) the random fern
approach, (b) our approach without ICP and (c) our approach with ICP. As shown
in Figure~\ref{fig:novelposes-graph}, the decay in performance experienced as
the test poses get further from the training trajectory is much less severe with
our approach than with random ferns.

A qualitative example of our ability to relocalise from novel poses is shown in
Figure~\ref{fig:novelposes-example}. In the main figure, we show a range of test
poses from which we can relocalise in the \emph{Fire} scene, linking them to
nearby poses on the training trajectory so as to illustrate their novelty in
comparison to poses on which we have trained. The most difficult of these test
poses are also shown in the images below alongside their nearby training poses,
visually illustrating the significant differences between the two.

As Figures~\ref{fig:novelposes-graph} and \ref{fig:novelposes-example}
illustrate, we are already quite effective at relocalising from poses
that are significantly different from those on which we have trained;
nevertheless, further improvements seem possible. For example, one interesting
extension of this work might be to explore the possibility of using
rotation-invariant split functions in the regression forest to improve its
generalisation capabilities.

\subsection{Timings}
\label{subsec:timings}

\begin{table}[!t]
\centering
\begin{tabular}{ccc}
\toprule
& \textbf{Random Ferns} \cite{Glocker2015,Kaehler2016} & \textbf{Us} \\
\midrule
Per-Frame Training & 0.9ms & 9.8ms \\
Relocalisation     & 10ms  & 141ms \\
\bottomrule
\end{tabular}
\vspace{1mm}
\caption{Comparing the typical timings of our approach vs.\ random ferns during
    both normal operation and relocalisation. Our approach is slower than random
    ferns, but achieves significantly higher relocalisation performance, especially
    from novel poses. All of our experiments are run on a machine with an Intel Core
    i7-4960X CPU and an NVIDIA GeForce Titan Black GPU.}
\label{tbl:timings}
\vspace{-\baselineskip}
\end{table}

To evaluate the usefulness of our approach for on-the-fly relocalisation in new
scenes, we compare it to the keyframe-based random fern relocaliser implemented
in InfiniTAM \cite{Glocker2015,Kaehler2016}. To be practical in a real-time
system, a relocaliser needs to perform in real time during normal operation
(i.e.\ for online training whilst successfully tracking the scene), and ideally
take no more than around $200$ms for relocalisation itself (when the system has
lost track). As a result, relocalisers such as
\cite{Shotton2013,GuzmanRivera2014,Valentin2015RF,Brachmann2016,Massiceti2016},
whilst achieving impressive results, are not practical in this context due to
their need for offline training on the scene of interest.

As shown in Table~\ref{tbl:timings}, the random fern relocaliser is fast both
for online training and relocalisation, taking only $0.9$ms per frame to update
the keyframe database, and $10$ms to relocalise when tracking is lost. However,
speed aside, the range of poses from which it is able to relocalise is quite
limited. By contrast, our approach, whilst taking $9.8$ms for online training
and $141$ms for actual relocalisation, can relocalise from a much broader range
of poses, whilst still running at acceptable speeds. Additionally, it should be
noted that our current research-focused implementation is not heavily optimised,
making it plausible that it could be sped up even further with additional
engineering effort.

\section{Introduction}

\stufigstar{width=.8\linewidth}{images/pipeline.pdf}{
    \textbf{Overview of our approach}. First, we train a regression forest
    \emph{offline} to predict 2D-to-3D correspondences for a generic scene. To
    adapt this forest to a new scene, we remove the scene-specific information
    in the forest's leaves while retaining the branching structure (with learned split parameters) of the trees;
    we then refill the leaves \emph{online} using training examples from the new
    scene. The adapted forest can be deployed to predict correspondences for the
    new scene that are fed to Kabsch \cite{Kabsch1976} and RANSAC
    \cite{Fischler1981} for pose estimation.
    }{fig:pipeline}{!t}

Camera pose estimation is an important problem in computer vision, with
applications in simultaneous localisation and mapping (SLAM)
\cite{Newcombe2011,MurArtal2014,Kaehler2015}, virtual and augmented reality
\cite{Bae2016,Castle2008,Golodetz2015SPDEMO,Paucher2010,Rodas2015,Valentin2015SP} and
navigation \cite{Lee2016}. In SLAM, the camera pose is commonly initialised
upon starting reconstruction and then tracked from one frame to the next, but
tracking can easily be lost due to e.g.\ rapid movement or textureless regions
in the scene; when this happens, it is important to be able to relocalise the
camera with respect to the scene, rather than forcing the user to start the
reconstruction again from scratch. Camera relocalisation is also crucial for
loop closure when trying to build globally consistent maps
\cite{Fioraio2015,Kaehler2016,Whelan2015RSS}. Traditional approaches to camera
relocalisation have been based around one of two main paradigms:

\emph{(i) Image matching methods} match the current image from the camera
against keyframes stored in an image database (potentially with some interpolation
between keyframes where necessary). For example, Galvez-Lopez et al.\
\cite{GalvezLopez2011} describe an approach that computes a bag of binary words
based on BRIEF descriptors for the current image and compares it with bags of
binary words for keyframes in the database using an L1 score. Gee et al.\
\cite{Gee2012} estimate camera pose from a set of synthetic (i.e.\ rendered)
views of the scene. Their approach is interesting because unlike many image
matching methods, they are to some extent able to relocalise from novel
poses; however, the complexity increases linearly with the number of synthetic views
needed, which poses significant limits to practical use. Glocker et al.\
\cite{Glocker2015} encode frames using Randomised Ferns, which when evaluated on
images yield binary codes that can be matched quickly by their Hamming
distance: as noted in \cite{Li2015}, this makes their approach much faster than
\cite{Gee2012} in practice.

\emph{(ii) Keypoint-based methods} find 2D-to-3D correspondences between
keypoints in the current image and 3D scene points, so as to deploy e.g.\ a
Perspective-n-Point (PnP) algorithm \cite{Hartley2004} (on RGB data) or
the Kabsch algorithm \cite{Kabsch1976} (on RGB-D data) to generate a
number of camera pose hypotheses that can be pruned to a single hypothesis using
RANSAC \cite{Fischler1981}. For example, Williams et al.\ \cite{Williams2011}
recognise/match keypoints using an ensemble of randomised lists, and exclude
unreliable or ambiguous matches when generating hypotheses. Their approach is
fast, but needs significant memory to store the lists. Li et al.\ \cite{Li2015} use
graph matching to help distinguish between visually-similar keypoints. Their
method uses BRISK descriptors for the keypoints, and runs at around 12 FPS.
Sattler et al.\ \cite{Sattler2016} describe a large-scale localisation approach
that finds correspondences in both the 2D-to-3D and 3D-to-2D directions before
applying a 6-point DLT algorithm to compute pose hypotheses. They use a visual
vocabulary to order potential matches by how costly they will be to establish.

Some hybrid methods use both paradigms. For example, Mur-Artal et al.\
\cite{MurArtal2015} describe a relocalisation approach that initially finds pose
candidates using bag of words recognition \cite{GalvezLopez2012}, which they
incorporate into their larger ORB-SLAM system (unlike \cite{GalvezLopez2011},
they use ORB rather than BRIEF features, which they found to improve
performance). They then refine these candidate poses using PnP and RANSAC.
Valentin et al.\ \cite{Valentin2016} present an approach that finds initial pose
candidates using the combination of a retrieval forest and a multiscale
navigation graph, before refining them using continuous pose optimisation.

Several less traditional approaches have also been tried. Kendall et
al.~\cite{Kendall2015} train a convolutional neural network to directly regress
the 6D camera pose from the current image. Deng et al.~\cite{Deng2016} match a 3D
point cloud representing the scene to a local 3D point cloud constructed from a
set of query images that can be incrementally extended by the user to achieve a
successful match. Lu et al.~\cite{Lu2015} perform 3D-to-3D localisation that
reconstructs a 3D model from a short video using structure-from-motion and
matches that against the scene within a multi-task point retrieval framework.

Recently, Shotton et al.\ \cite{Shotton2013} proposed the use of a regression
forest to directly predict 3D correspondences in the scene for all pixels in the
current image. This has two key advantages over traditional keypoint-based
approaches: (i) no explicit detection, description or matching of keypoints is
required, making the approach both simpler and faster, and (ii) a significantly
larger number of points can be deployed to verify or reject camera pose
hypotheses. However, it suffers from the key limitation of needing to train a
regression forest on the scene \emph{offline} (in advance), which prevents
on-the-fly camera relocalisation.
Subsequent work has significantly improved upon the relocalisation performance
of \cite{Shotton2013}. For example, Guzman-Rivera et al.\
\cite{GuzmanRivera2014} rely on multiple regression forests to generate a number of
camera pose hypotheses, then cluster them and use the mean pose of the cluster
whose poses minimise the reconstruction error as the result. Valentin et al.\
\cite{Valentin2015RF} replace the modes used in the leaves of the forests in
\cite{Shotton2013} with mixtures of anisotropic 3D Gaussians in order to better
model uncertainties in the 3D point predictions, and show that by combining this
with continuous pose optimisation they can relocalise 40\% more frames than
\cite{Shotton2013}.
Brachmann et al.\ \cite{Brachmann2016} deploy a stacked classification-regression
forest to achieve results of a quality similar to \cite{Valentin2015RF} for
RGB-D relocalisation.
Massiceti et al.\ \cite{Massiceti2016} map between regression forests and neural
networks to try to leverage the performance benefits of neural networks for
dense regression while retaining the efficiency of random forests for
evaluation. They use robust geometric median averaging to achieve improvements
of around 7\% over \cite{Brachmann2016} for RGB localisation. However, despite
all of these advances, none of these papers remove the need to train on the
scene of interest in advance.

In this paper, we show that this need for \emph{offline} training on the scene
of interest can be overcome through \emph{online} adaptation to a new scene of a regression forest that has been pre-trained on a generic scene. We achieve genuine
on-the-fly relocalisation similar to that which can be obtained using
keyframe-based approaches \cite{Glocker2015}, but with both significantly higher
relocalisation performance in general, and the specific advantage that we can
relocalise from novel poses. Indeed, our adapted forests achieve relocalisation
performance that is competitive with offline-trained forests, whilst requiring
no pre-training on the scene of interest and relocalising in close to real time.
This makes our approach a practical and high-quality alternative to
keyframe-based methods for online relocalisation in novel scenes.
\section{Method}
\label{sec:method}

\subsection{Overview}
\label{subsec::methodoverview}

\noindent Figure~\ref{fig:pipeline} shows an overview of our approach.
Initially, we train a regression forest \emph{offline} to predict 2D-to-3D
correspondences for a \emph{generic} scene, as per \cite{Valentin2015RF}.
To adapt this forest to a new scene, we remove the
contents of the leaf nodes in the forest (i.e.\ GMM modes and associated covariance matrices)
whilst retaining the branching structure of the trees (including learned split parameters). We then adapt the forest
\emph{online} to the new scene by feeding training examples down the forest to
refill the empty leaves, dynamically learning a set of leaf distributions specific
to that scene. Thus adapted, the forest can then be used to predict
correspondences for the new scene that can be used for camera pose estimation.
Reusing the tree structures spares us from expensive offline learning on
deployment in a novel scene, allowing for relocalisation on the fly.

\subsection{Details}
\label{subsec::methoddetails}
\subsubsection{Offline Forest Training}
\label{subsubsec::forestpretraining}

Training is done as in \cite{Valentin2015RF}, greedily optimising a standard
reduction-in-spatial-variance objective over the randomised parameters of simple
threshold functions. Like \cite{Valentin2015RF}, we make use of `Depth' and
`Depth-Adaptive RGB' (`DA-RGB') features, centred at a pixel $\textbf{p}$, as
follows:
\begin{equation}
f^{\text{Depth}}_\Omega = D(\mathbf{p}) - D\left(\mathbf{p} + \frac{\boldsymbol{\delta}}{D(\mathbf{p})}\right)
\end{equation}
\begin{equation}
f^{\text{DA-RGB}}_\Omega = C(\mathbf{p},c) - C\left(\mathbf{p} + \frac{\boldsymbol{\delta}}{D(\mathbf{p})}, c\right)
\end{equation}
In this, $D(\mathbf{p})$ is the depth at $\mathbf{p}$, $C(\mathbf{p},c)$ is the
value of the $c^{\text{th}}$ colour channel at $\mathbf{p}$, and $\Omega$ is a
vector of randomly sampled feature parameters. For `Depth', the only parameter
is the 2D image-space offset $\boldsymbol{\delta}$, whereas `DA-RGB' adds the
colour channel selection parameter $c \in \{R,G,B\}$. We randomly generate 128
values of $\Omega$ for `Depth' and 128 for `DA-RGB'. We concatenate the
evaluations of these functions at each pixel of interest to yield 256D feature
vectors.

At training time, a set $S$ of training examples, each consisting of such a
feature vector $\mathbf{f} \in \mathbb{R}^{256}$, its corresponding 3D location
in the scene and its colour, is assembled via sampling from a ground truth RGB-D
video with known camera poses for each frame (obtained by tracking from depth camera
input). A random subset of these training examples is selected to train each tree in
the forest, and we then train all of the trees in parallel.

Starting from the root of each tree, we recursively partition the set of training examples in
the current node into two using a binary threshold function. To decide how to split each
node $n$, we randomly generate a set $\Theta_n$ of $512$ candidate split parameter pairs,
where each $\theta = (\phi,\tau) \in \Theta_n$ denotes the binary threshold function
\begin{equation}
\theta(\mathbf{f}) = \mathbf{f}[\phi] \ge \tau.
\end{equation}
In this, $\phi \in [0,256)$ is a randomly-chosen feature index, and $\tau \in \mathbb{R}$
is a threshold, chosen to be the value of feature $\phi$ in a randomly-chosen training example.
Examples that pass the test are routed to the right subtree of $n$; the remainder are routed
to the left.
To pick a suitable split function for $n$, we use exhaustive search to find a $\theta^{*} \in \Theta_n$
whose corresponding split function maximises the information gain that can be achieved by splitting the
training examples that reach $n$. Formally, the information gain corresponding to split parameters
$\theta \in \Theta_n$ is
\begin{equation}
V(S_n) - \displaystyle\sum_{i\in\{\text{L,R}\}} \frac{|S^i_n(\theta)|}{|S_n|} \; V(S^i_n(\theta)),
\end{equation}
in which $V(X)$ denotes the spatial variance of set $X$, and $S^L_n(\theta)$ and
$S^R_n(\theta)$ denote the left and right subsets into which the set $S_n
\subseteq S$ of training examples reaching $n$ is partitioned by the split
function denoted by $\theta$. Spatial variance is defined in terms of the
log of the determinant of the covariance of a fitted 3D Gaussian \cite{Valentin2015RF}.

For a given tree, the above process is simply recursed to a maximum depth of 15.
As in \cite{Valentin2015RF}, we train 5 trees per forest.
The (approximate, empirical) distributions in the leaves are discarded at the end of this process (we replace them during online forest adaptation, as discussed next).

\subsubsection{Online Forest Adaptation}
\label{subsubsec::forestadaptation}

\begin{stusubfig*}{!t}
	\begin{subfigure}{.47\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/modes-pretrained}
		\caption{}
	\end{subfigure}%
	\hspace{10mm}%
	\begin{subfigure}{.47\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/modes-adapted}
		\caption{}
	\end{subfigure}%
\caption{An illustrative example of the effect that online adaptation has on a
    pre-trained forest: (a) shows the modal clusters present in a small number of
    randomly-selected leaves of a forest pre-trained on the \emph{Chess} scene from
    the 7-Scenes dataset \cite{Shotton2013} (the colour of each mode indicates its
    containing leaf); (b) shows the modal clusters that are added to the same leaves
    during the process of adapting the forest to the \emph{Kitchen} scene.}
\label{fig:modes}
\vspace{-1.5\baselineskip}
\end{stusubfig*}

To adapt a forest to a new environment, we replace the distributions discarded from its leaves at the end of pre-training with dynamically-updated ones drawn entirely from the new scene.
Here, we detail how the new leaf distributions used by the relocaliser are computed and updated online.

We draw inspiration from the use of reservoir sampling \cite{Vitter1985} in SemanticPaint \cite{Valentin2015SP}, which makes it possible to store an unbiased subset of an empirical distribution in a bounded amount of memory.
On initialisation, we allocate (on the GPU) a fixed-size sample reservoir for each leaf of the existing forest.
Our reservoirs contain up to $1024$ entries, each storing a 3D (world coordinate) location and an associated colour.
At runtime, we pass training examples (as per \S\ref{subsubsec::forestpretraining}) down the forest and identify the leaves to which each example is mapped.
We then add the 3D location and colour of each example to the reservoirs associated with its leaves.
To obtain the 3D locations of the training examples, we need to know the transformation that maps points from camera space to world space.
When testing on sequences from a dataset, this is trivially available as the ground truth camera pose, but in a live scenario, it will generally be obtained as the output of a fallible tracker.
To avoid corrupting the reservoirs in our forest, we avoid passing new examples down the forest when the tracking is unreliable.
We measure tracker reliability using the support vector machine (SVM) approach described in \cite{Kaehler2016}.
For frames for which a reliable camera pose \emph{is} available, we proceed as follows:
\begin{enumerate}
	\item First, we compute feature vectors for a subset of the pixels in the image, as detailed in \S\ref{subsubsec::forestpretraining}. We empirically choose our subset by subsampling densely on a regular grid with $4$-pixel spacing, i.e.\ we choose pixels $\{(4i,4j) \in [0,w) \times [0,h) : i,j \in \mathbb{N} \}$, where $w$ and $h$ are respectively the width and height of the image.
	\item Next, we pass each feature vector down the forest, adding the 3D position and colour of the corresponding scene point to the reservoir of the leaf reached in each tree. Our CUDA-based random forest implementation uses the node indexing described in~\cite{Sharp2008}.
	\item Finally, for each leaf reservoir, we cluster the contained points using a CUDA implementation of Really Quick Shift (RQS) \cite{Fulkerson2010} to find a set of modal 3D locations. We sort the clusters in each leaf in decreasing size order, and keep at most $10$ modal clusters per leaf. For each cluster we keep, we compute 3D and colour centroids, and a covariance matrix. The cluster distributions are used when estimating the likelihood of a camera pose, and also during continuous pose optimisation (see \S\ref{subsubsec:poseestimation}).
	Since running RQS over all the leaves in the forest would take too long if run in a single frame, we amortise the cost over multiple frames by updating $256$ leaves in parallel each frame in round-robin fashion. A typical forest contains around \num[group-separator={,}]{42000} leaves, so each leaf is updated roughly once every $6$s.
\end{enumerate}
The aforementioned reservoir size, number of modal clusters per leaf and number of leaves to update per frame were determined empirically to achieve online processing rates.

Figure~\ref{fig:modes} illustrates the effect that
online adaptation has on a pre-trained forest: (a) shows the modal clusters
present in a few randomly-selected leaves of a forest pre-trained on
the \emph{Chess} scene from the 7-Scenes dataset \cite{Shotton2013}; (b) shows
the modal clusters that are added to the same leaves during the process of
adapting the forest to the \emph{Kitchen} scene. Note that whilst the positions
of the predicted modes have (unsurprisingly) completely changed, the split
functions in the forest's branch nodes (which we preserve) still do a good
job of routing similar parts of the scene into the same leaves, enabling
effective sampling of 2D-to-3D correspondences for camera pose estimation.

\subsubsection{Camera Pose Estimation}
\label{subsubsec:poseestimation}

As in \cite{Valentin2015RF}, camera pose estimation is based on the preemptive, locally-optimised RANSAC of \cite{Chum2003}.
We begin by randomly generating an initial set of up to $1024$ pose hypotheses.
A pose hypothesis $H \in \mathbf{SE}(3)$ is a transform that maps points in camera space to world space.
To generate each pose hypothesis, we apply the Kabsch algorithm \cite{Kabsch1976} to $3$ point pairs of the form $(\mathbf{x}_i^\mathcal{C}, \mathbf{x}_i^\mathcal{W})$, where $\mathbf{x}_i^\mathcal{C} = D(\mathbf{u}_i) K^{-1} (\mathbf{u}_i^\top,1)$ is obtained by back-projecting a randomly-chosen point $\mathbf{u}_i$ in the live depth image $D$ into camera space, and $\mathbf{x}_i^\mathcal{W}$ is a corresponding scene point in world space, randomly sampled from $M(\mathbf{u}_i)$, the modes of the leaves to which the forest maps $\mathbf{u}_i$.
In this, $K$ is the intrinsic calibration matrix for the depth camera.
Before accepting a hypothesis, we subject it to a series of checks:
\begin{enumerate}
	\item First, we randomly choose one of the three point pairs $(\mathbf{x}_i^\mathcal{C},\mathbf{x}_i^\mathcal{W})$ and compare the RGB colour of the corresponding pixel $\mathbf{u}_i$ in the colour input image to the colour centroid of the mode (see \S\ref{subsubsec::forestadaptation}) from which we sampled $\mathbf{x}_i^\mathcal{W}$. We reject the hypothesis iff the L0 distance between the two exceeds a threshold.
	\item Next, we check that the three hypothesised scene points are sufficiently far from each other. We reject the hypothesis iff the minimum distance between any pair of points is less than $30$cm.
	\item Finally, we check that the distances between all scene point pairs and their corresponding back-projected depth point pairs are sufficiently similar, i.e.\ that the hypothesised transform is `rigid enough'. We reject the hypothesis iff this is not the case.
\end{enumerate}
If a hypothesis gets rejected by one of the checks, we try to generate an alternative hypothesis to replace it.
In practice, we use $1024$ dedicated threads, each of which attempts to generate a single hypothesis.
Each thread continues generating hypotheses until either (a) it finds a hypothesis that passes all of the checks, or (b) a maximum number of iterations is reached.
We proceed with however many hypotheses we obtain by the end of this process.

Having generated our large initial set of hypotheses, we next aggressively cut it down to a much smaller size by scoring each hypothesis and keeping the $64$ lowest-energy transforms (if there are fewer than $64$ hypotheses, we keep all of them).
To score the hypotheses, we first select an initial set $I = \{i\}$ of $500$ pixel indices in $D$, and back-project the denoted pixels $\mathbf{u}_i$ to corresponding points $\mathbf{x}_i^\mathcal{C}$ in camera space as described above.
We then score each hypothesis $H$ by summing the Mahalanobis distances between the transformations of each $\mathbf{x}_i^\mathcal{C}$ under $H$ and their nearest modes:
\begin{equation}
E(H) = \sum_{i \in I} \left( \min_{(\boldsymbol{\mu},\Sigma) \in M(\mathbf{u}_i)} \left\| \Sigma^{-\frac{1}{2}} (H\mathbf{x}_i^\mathcal{C} - \boldsymbol{\mu}) \right\| \right)
\end{equation}
After this initial cull, we use pre-emptive RANSAC to prune the remaining $\le 64$ hypotheses to a single, final hypothesis.
We iteratively (i) expand the sample set $I$ (by adding $500$ new pixels each time), (ii) refine the pose candidates via Levenberg-Marquardt optimisation \cite{Levenberg1944,Marquardt1963} of the energy function $E$, (iii) re-evaluate and re-score the hypotheses, and (iv) discard the worse half.
In practice, the actual optimisation is performed not in $\mathbf{SE}(3)$, where it would be hard to do, but in the corresponding Lie algebra, $\mathfrak{se}(3)$.
The details of this process can be found in \cite{Valentin2015RF}, and a longer explanation of Lie algebras can be found in \cite{Strasdat2012}.

This process yields a single pose hypothesis, which we can then return if desired.
In practice, however, further pose refinement is sometimes possible.
For example, if our relocaliser is integrated into an open-source 3D reconstruction framework such as InfiniTAM \cite{Kaehler2016}, we can attempt to refine the pose further using ICP \cite{Besl1992}.
Since tasks such as 3D reconstruction are one of the key applications of our approach, we report results both with and without ICP in Table~\ref{tbl:adaptationperformance}.

\part*{\textsc{Supplementary Materials}} \vspace{2\baselineskip}]
	\input{supplementary_main}
}
\fi

\end{document}

\section{Analysis of Failure Cases}

As shown in the main paper, our approach is able to achieve highly-accurate online relocalisation in under $150$ms, from novel poses and without needing extensive offline training on the target scene.
However, there are inevitably still situations in which it will fail.
In this section, we analyse two interesting failure cases, so as to help the reader understand the underlying reasons in each case.

\subsection{Office}

The first failure case we analyse is from the \emph{Office} scene in the 7-Scenes dataset \cite{Shotton2013}.
This scene captures a typical office that contains a number of desks (see Figure~\ref{fig:officefailure}).
Unfortunately, these desks appear visually quite similar: they are made of the same wood, and have similar monitors and the same associated chairs.
This makes it very difficult for a relocaliser such as ours to distinguish between them: as a result, our approach ends up producing a pose that faces the wrong desk (see Figure~\ref{fig:officefailure}(d)).

On one level, the pose we produce is not entirely unreasonable: indeed, it looks superficially plausible, and is oriented at roughly the right angle with respect to the incorrect desk.
Nevertheless, in absolute terms, the pose is obviously very far from the ground truth.

To pin down what has gone wrong, we visualise the last $16$ surviving camera pose hypotheses for this instance in Figure~\ref{fig:officecandidates}, in descending order (left-to-right, top-to-bottom).
We observe that whilst the top candidate selected by RANSAC relocalises the camera to face the wrong desk, any of the next five candidates would have relocalised the camera successfully.
The problem in this case is that the energies computed for the hypotheses are fairly similar for both the correct and incorrect poses.

Although we do not investigate it here, one potential way of fixing this might be to score the last few surviving hypotheses based on the photometric consistencies between colour raycasts from their respective poses and the colour input image.

\vspace{3cm}\textcolor{white}{.}

\begin{stusubfig}{H}
	\begin{subfigure}{\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/office_mesh}
		\caption{}
	\end{subfigure}%
	\\
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/office_train_desk}
		\caption{}
	\end{subfigure}%
	\hspace{1.5mm}%
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/office_train_desk_2}
		\caption{}
	\end{subfigure}%
	\\
	\begin{subfigure}{\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/office_reloc_error}
		\caption{}
	\end{subfigure}%
\caption{The \emph{Office} scene from the 7-Scenes dataset \cite{Shotton2013} (a) contains multiple desks, e.g.\ (b) and (c), that can appear visually quite similar, making it difficult for the relocaliser to distinguish between them. In (d), for example, the relocaliser incorrectly chooses a pose facing the desk in (b), whilst the RGB-D input actually shows the desk in (c).}
\label{fig:officefailure}
\vspace{-1.5\baselineskip}
\end{stusubfig}

\begin{figure*}[!p]
\centering
\includegraphics[height=20.5cm]{images/supplementary/office_candidates}
\caption{The top $16$ pose candidates (left-to-right, top-to-bottom) corresponding to the failure case on the \emph{Office} scene shown in Figure~\ref{fig:officefailure}(d). The coloured points indicate the 2D-to-3D correspondences that are used to generate the initial pose hypotheses. Note that whilst the top candidate selected by RANSAC relocalises the camera to face the wrong desk, any of the next five candidates would have relocalised the camera correctly.}
\label{fig:officecandidates}
\end{figure*}

\clearpage

\subsection{Stairs}

\begin{stusubfig}{!t}
	\begin{subfigure}{\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/stairs_mesh}
		\caption{}
	\end{subfigure}%
	\\
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/stairs_train_1}
		\caption{}
	\end{subfigure}%
	\hspace{1.5mm}%
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/stairs_train_2}
		\caption{}
	\end{subfigure}%
	\\
	\begin{subfigure}{\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/stairs_reloc_error}
		\caption{}
	\end{subfigure}%
\caption{The \emph{Stairs} scene from the 7-Scenes dataset \cite{Shotton2013} (a) is notoriously difficult, containing a staircase that consists of numerous visually-identical steps (see (b) and (c)). In (d), many of the 2D-to-3D correspondences predicted by the forest are likely to be of a low quality, since it is hard to distinguish between similar points on different stairs. This significantly reduces the probability of generating good initial hypotheses, leaving RANSAC trying to pick a good hypothesis from an initial set that only contains bad ones.}
\label{fig:stairsfailures}
\vspace{3cm}
\end{stusubfig}

The second failure case we analyse is from the \emph{Stairs} scene in the 7-Scenes dataset \cite{Shotton2013}.
This is a notoriously difficult scene containing a staircase that consists of numerous visually-identical steps (see Figure~\ref{fig:stairsfailures}).
When viewing the scene from certain angles (see Figure~\ref{fig:stairsgood}), the relocaliser is able to rely on points in the scene that can be identified unambiguously to correctly estimate the pose, but from viewpoints such as that in Figure~\ref{fig:stairsfailures}(d), it is forced to use more ambiguous points, e.g.\ those on the stairs themselves or the walls.
When this happens, relocalisation is prone to fail, since the relocaliser finds it difficult to tell the difference between the different steps.

As in the previous section, we can visualise the top $16$ camera pose hypotheses for this instance to pin down what has gone wrong (see Figure~\ref{fig:stairscandidates}).
It is noticeable that in this case, none of the top $16$ hypotheses would have successfully relocalised the camera.
As suggested by the points predicted in the 3D scene for each hypothesis (which are often in roughly the right place but on the wrong stairs), this is because the points at the same places on different stairs tend to end up in similar leaves, making the modes in the leaves less informative (see Figure~\ref{fig:stairsmodes}) and significantly reducing the probability of generating good initial hypotheses.

Unlike in the \emph{Office} case, the problem here cannot be fixed by a late-stage consistency check, since none of the last few surviving hypotheses are of any use.
Instead, one potential way of fixing this might be to improve the way in which the initial set of hypotheses is generated so as to construct a more diverse set and increase the probability of one of the initial poses being in roughly the right place.
An alternative might be to adaptively increase the number of hypotheses generated in difficult conditions.

\clearpage

\begin{stusubfig}{!t}
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/candidates_stairs_good}
	\end{subfigure}%
	\hspace{1.5mm}%
	\begin{subfigure}{.48\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/candidates_stairs_good_2}
	\end{subfigure}%
\caption{From certain angles in the \emph{Stairs} scene, the relocaliser is able to rely on points in the scene that can be identified unambiguously to estimate the pose.}
\label{fig:stairsgood}
\vspace{-1.5\baselineskip}
\end{stusubfig}

\begin{figure}[!t]
\centering
\includegraphics[width=\linewidth]{images/supplementary/stairs_candidates_leave_modes}
\caption{The modal clusters contained in the leaves for the points in the optimal camera pose hypothesis from Figure~\ref{fig:stairscandidates}. It is noticeable that points at the same places on different stairs end up in the same leaves, making the distributions in those leaves less informative.}
\label{fig:stairsmodes}
\vspace{6cm}
\end{figure}

\section{Further Successful Examples}

Some further examples of successful relocalisation, this time in the \emph{Fire} scene from the 7-Scenes dataset \cite{Shotton2013}, can be seen in Figure~\ref{fig:firegood}.
As in Figure~\ref{fig:stairsgood}, it is noticeable that the relocaliser tries to rely on points in the scene that can be identified unambiguously where these are available, something that is clearly easier in sequences such as \emph{Fire} that contain many easily-distinguished objects.

\begin{stusubfig}{H}
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/candidates_fire_good}
	\end{subfigure}%
	\hspace{1.5mm}%
	\begin{subfigure}{.49\linewidth}
		\centering
		\includegraphics[width=\linewidth]{images/supplementary/candidates_fire_good_2}
	\end{subfigure}%
\caption{Further examples of successful relocalisation in the \emph{Fire} scene from the 7-Scenes dataset \cite{Shotton2013}. To estimate the pose, the relocaliser tries to rely on points in the scene that can be identified unambiguously.}
\label{fig:firegood}
\vspace{-1.5\baselineskip}
\end{stusubfig}

\begin{figure*}[!p]
\centering
\includegraphics[height=20.5cm]{images/supplementary/stairs_candidates_leaves}
\caption{The top $16$ pose candidates (left-to-right, top-to-bottom) corresponding to the failure case on the \emph{Stairs} scene shown in Figure~\ref{fig:stairsfailures}(d). The coloured points indicate the 2D-to-3D correspondences that are used to generate the initial pose hypotheses. Note that in this case, none of the candidates would relocalise the camera successfully. This is likely because the points at the same places on different stairs tend to end up in similar leaves, making the modes in the leaves less informative and significantly reducing the probability of generating good initial hypotheses.}
\label{fig:stairscandidates}
\end{figure*}

redpajama_set_name: RedPajamaArXiv


Katja Römer-Schuurman has been a house hold name in The Netherlands since her first TV appearance in 1993, winning the hearts of Dutch boys across the nation.
Katja has a special place in our heart as she chooses to cruise around on her mint green LEKKER Jordaan. Stylish, classic and beautifully Dutch – the LEKKER Jordaan and Katja are very well matched!
We met Katja in a restaurant in Amsterdam, and eventually the conversation turned to her four-year-old daughter who, like most Dutch kids, is very keen to start cycling around their city.
Katja thought the vintage-style Jordaan was the right bike for her to ride alongside her daughter, and show her how Dutch urban cycling is done.


text:
Q: "A food is fed (to) someone or something" vs. "Someone or something is fed on (or with) a food" Focusing on the passive voice, which of the following grammatical constructions is (or are) more typical of AE?

More research is necessary before *soy formula is fed to babies^ source
More research is necessary before babies are fed on soy formula.
More research is necessary before babies are fed with soy formula.
More research is necessary before soy babies are fed soy formula.

-

Reductions in mother-to-child transmission are optimized when babies are fed on formula milk source>/
Reductions in mother-to-child transmission are optimized when formula milk is fed to babies.
Reductions in mother-to-child transmission are optimized when babies are fed with formula milk.
Reductions in mother-to-child transmission are optimized when babies are fed formula milk.

.

In the winter, certified organic fodder is fed to our Jersey and Guernsey cows.
In the winter, our Jersey and Guernsey cows are fed on certified organic fodder.
In the winter, our Jersey and Guernsey cows are fed with certified organic fodder.
In the winter, our Jersey and Guernsey cows are fed certified organic fodder is fed.

.

This ensures that a clean supply of ink is fed to your printer every time.
  source>/
This ensures that your printer is fed on a clean supply of ink every time. (sounds weird).
This ensures that your printer is fed with a clean supply of ink every time.
This ensures that your printer is fed a clean supply of ink every time.

A: Outside of Academia and Management, active voice is more common than passive voice.

A: In the first part of your tryptich, I favor number three,

Reductions in mother-to-child transmission are optimized when babies are fed formula milk.

But coming in a close second is

Reductions in mother-to-child transmission are optimized when babies are fed with formula milk.

Frankly, I prefer getting rid of the passive "are fed" and "are fed with" by wording the sentence as follows:

We reduce mother-to-child transmissions optimally by feeding babies formula milk.

Or,

We reduce mother-to-child transmissions optimally when we feed babies formula milk.

Or,

Optimally, by feeding babies formula milk we reduce mother-to-child transmissions.

As for the middle part of your tryptich, I like number two,

In the winter, our Jersey and Guernsey cows are fed with certified organic fodder.

However, I would prefer it read as follows:

In the winter, we feed our Jersey and Guernsey cows certified organic fodder.

Now for the last part of your tryptich. I think I prefer number three,

This ensures that the printer is fed with a clean supply of ink every time.

And believe it or not, it sounds just fine, as is, since the feeding is done mechanically, I assume, by some built-in device and not a human being. If so, then the word This could precede the name of the device; for example,

"This auto-feed device ensures that the printer is fed with a clean supply of ink every time."

(By the way, I was brought up in Rochester, a decent size city in Upstate New York, near Lake Ontario, one of the Great Lakes, the names of which you can remember by using the acronym/mnemonic  H.O.M.E.S., which stands for Lakes Huron, Ontario, Michigan, Erie, and Superior.)

redpajama_set_name: RedPajamaStackExchange


We are on duty 24 hours to support you with any requests in relation to our services.
You can promptly understand how to use our The Hobby Line Internet Control Panel with the help of our thorough video classes.
We provide an easy–to–use Frequently Answered Questions section where you could find solutions to the most frequently asked questions.
Our support team is on shift 24 hours to reply to your technical queries. Expect a solution within up to 1–hour after you have posted your ticket.
If you need guidance administering your Linux web hosting account, or need more resources for your sites, just let us know and we'll give you the perfect answer.
Provided that you want support making use of your admin interface or with the pre–configured applications, just let us know and we'll approach you in less than 1–hour.
We'll be on shift night and day to help you out with any given server administration process or to help you enhance the latest setup of your dedicated hosting server.
When you have any issues with your semi-dedicated server or need assistance with a specified challenge, don't be reluctant to get hold of our trained staff of support engineers. They are available 24/6, prepared to assist you.


text:
2020 Session: A "mixed bag" for the family
All in all, we must remain grateful for what did pass and what was stopped!
The 2020 Session began with a great deal of promise, but ended with somewhat of a "thud" because of the COVID-19 shutdown. Yes, several good bills for the family were passed. And, yes, several bad bills were killed. But the overwhelming takeaway is "So much more could have been done, if COVID-19 had stayed away another few weeks."
To be clear, pro-family legislators worked very hard and were on course to have a great Session for the family. But COVID-19 ended the paths forward for a number of very good bills, leaving them with not enough time to pass before the shortened Session came to an end.
Fortunately, on the last day, courageous legislators moved SB 9 and HB 451. Without doubt, legislators are hoping to renew their work on them in 2021. (A listing of bills we worked on is below.)
Offensive Victories: Good Bills that passed
Senate Bill 9: Born Alive Infant Protection Act Vetoed by Gov. Beshear!!!
By Sen. Whitney Westerfield: This bill protects infants, who are born alive, from being denied nourishment and reasonable medical care. SB 9 applies to infants born alive after an attempted abortion and also to infants who may be born with medical complications or who are not wanted by their parents. (This bill passed the full Senate and its House Committee in 2019, but died in the House for lack of time.)
Advocates said: All human life must be protected. There are cases across the nation where infants born alive after abortion attempts have been allowed to starve to death and have been denied any care.
Status: This bill, WITH HB 451 AMENDED INTO IT, passed the Senate on Jan. 27 with a 32 to 0 vote and the House on April 15 with a 70 to 16 vote. (See HB 451 below) Gov. Beshear vetoed SB 9 on April 24.
House Concurrent Resolution 5: Expediting Responsible Marijuana Research
By Rep. Danny Bentley: This resolution (HCR 5) urges the Federal Government to re-schedule marijuana from a Schedule I drug and then expedite the study of the possible medical benefits of marijuana, using evidence-based science. The resolution addresses several issues that prevent potential medicines from being made safely available to Kentucky citizens.
Advocates said: The Kentucky legislature should not try to do the job of the Federal Food and Drug Administration (FDA). Even though marijuana has been around a long time, it has not been studied properly. Opioids were also around a long time, but were not properly researched before doctors began routinely prescribing. (And look what happened.)
Status: HCR 5 passed the House 89 to 2 on Jan. 30 and the Senate 35 to 0 on March 3. Signed by Governor on March 9.
House Bill 451: Expands the Attorney General's Authority to Enforce Abortion Laws
By Rep. Stan Lee: When fashioned, the Kentucky Constitution created a fairly weak Attorney General's office, but HB 451 bolsters the Attorney General's authority regarding the investigation of the state's abortion industry.
Advocates said: HB 451 is critical to what is going on in Kentucky . . . consider: 1) U of L's deep involvement with the abortion clinic in Louisville; 2) the Governor's abortion clinic favoritism during the COVID-19 crisis; and 3) the newly-opened abortion clinic in Louisville – Planned Parenthood – right in the midst of COVID-19. These things must be looked into!
Status: This bill passed the House on March 10 with a 70 to 23 vote and passed the Senate on April 15 with a 31 to 2 vote. But it was never sent to the Governor because the essence of the bill had been amended into Senate Bill 9 (See above.)
House Bill 2: Strengthening the Human Trafficking Laws
By Rep. Suzanne Miles: HB 2 adds offenses to what qualifies as a sex crime and it affirms that a human trafficking victim's cooperation during an offense shall not disqualify the state from having a criminal claim.
Advocates said: HB 2 is another step forward in the war to combat the plague of human trafficking that has beset the entire world and that has become a national transgression in America as well. Status: This bill passed the House on March 9 with a unanimous 87 to 0 vote and passed the Senate on March 26 with another unanimous 33 to 0 vote. Gov. Beshear signed HB 2 into law on April 2.
Defensive Kills: Bad Bills that were stopped
House Bill 137: Gambling Expansion – (the so-called "Sports Wagering" Bill)
By Rep. Adam Koenig: This bill was called the "Sports Wagering" Bill because it would have expanded gambling in Kentucky beyond 1) horse racing, 2) charitable gambling, and 3) The Lottery, into the world of sports and "other" competition. Originally, the bill authorized wagering only on professional sports, but the bill's language was expanded into college sports in Kentucky, Fantasy Sports and online Poker.
Opponents said: 1) To expand gambling you must change the Kentucky Constitution with an amendment; 2) HB 137 targets the poor and young people, setting up gambling on cell phones "24/7"; 3) The language is overbroad, giving the Racing Commission H-U-G-E control with no Executive Ethics Code; 4) The bill has been written BY gambling folks FOR gambling folks with no concern for the people; 5) No studies – ZERO – have been done to predict the impact on Kentucky families.
Status: HB 137 passed its House Committee on Jan. 15. It died there primarily because of courageous work of many House Republicans who did not want to see their majority in the House bend to serve the gambling industry. There likely were enough Democrats and Republicans together that could have secured passage. Of course, what was missing is that HB 137 was not a constitutional amendment, which many believe was required by law.
House Bill 136: Legalizing Medical Marijuana (in an arbitrary way)
By Rep. Jason Nemes: This bill is almost exactly the opposite of House Concurrent Resolution 5 (see left on page 2). It legalizes medical marijuana in Kentucky and sets up Kentucky's own efforts to regulate and study the plant. The question is whether this law will do what the FDA can do.
Opponents said: Kentucky cannot do as thorough a job researching the plant as the FDA.
Status: HB 136 passed its House Committee on Feb. 12 and the full House on Feb. 20 with a vote of 65 to 30. It died in the Senate with the Senate choosing, instead, to pass HCR 5. HCR 5 calls for the FDA to expedite its research so that no one would by hurt by a premature authorization of marijuana. Every drug has bad interactions with other medications. Marijuana is no exception; it just hasn't been researched to find its vulnerabilities.
Good Bills that failed (by COVID-19 pressure or opposition
House Bill 67: The Human Life Amendment – By Rep. Joe Fischer:
This bill was a Constitutional Amendment that affirms that the Kentucky Constitution does not guarantee the right to abortion funding or to have abortion.
House Bill 281: Educating on Pornography – By Rep. Nancy Tate:
This bill requires the KY Dept. of Education to develop informational materials on the public health risks and potential harms of sexually explicit internet content and to distribute the informational materials to parents and guardians of students.
House Bill 321: Youth Health Protection Act – By Rep. Savannah Maddox:
This bill prohibits the attempts to surgically or hormonally change the biological sex of any child under the age of 18.
House Bill 370: Dignified Disposal of Human (Fetal) Remains – By Rep. Nancy Tate:
This bill would ensure that the bodies of pre-viability babies, and babies whose lives are terminated by abortion or by natural causes, would be treated in a manner that respects the dignity of human life.
House Bill 447: "Safe Haven Baby Boxes" Act – By Rep. Nancy Tate:
For mothers who are tempted to abandon their newborn child, specially designed, medically safe boxes are installed in participating fire stations or hospitals, which are manned 24/7.
Senate Bill 90: The Medical Ethics and Diversity Act – By Sen. Stephen Meredith:
This bill provides religious liberty and conscience protections for medical professionals regarding controversial medical technologies and practices.
Senate Bill 114: "Save Women's Sports" Act – By Sen. Robby Mills:
This bill would prohibit biological males from competing in girls' athletic events at the college and high school level in Kentucky schools.
Senate Bill 116: Parents' Rights Protection Act – By Sen. Stephen West:
This bill affirms the rights of parents as "fundamental rights," directing the courts to honor them before they infringe on the upbringing of children.
← U of L's significant ties with abortion unmasked The Family Foundation focuses on lawmakers, but we also engage courts . . . →

redpajama_set_name: RedPajamaCommonCrawl


text:
Liberals easily hold Canning, but with a 6.4% swing to Labor
Saturday, Sep 19, 2015, 10:45 PM | Source: The Conversation
By Adrian Beaumont
Adrian Beaumont, University of Melbourne
The Canning by-election was held yesterday. With counting final for election night, the Liberals' Andrew Hastie has won by 55.0-45.0, a 6.9% swing to Labor. Primary votes were 46.4% for Hastie (down 4.7%), 35.9% for Labor's Matt Keogh (up 9.3%), 6.1% for the Greens (down 1.3%), 3.1% for Palmer United (down 3.8%) and 3.1% for the Christians (steady).
At by-elections, there are no out-of-electorate absent votes, which favour Labor, and almost all of the counting after election day will be postals, which strongly favour the Coalition. At the 2013 election, postals in Cannning gave the Liberals 65.1% Two Party Preferred (2PP), compared with their overall 61.8%. As a result, the swing to Labor should reduce somewhat as these postals are counted, and I expect the final swing to Labor to be about 6.5%.
Before the change in PM last Monday, this by-election was seen as a huge test for Tony Abbott. The change to Turnbull meant that the by-election lost importance, though a very poor result for Labor could have put pressure on Shorten. The sizable swing to Labor will be a relief to Shorten.
The two national polls taken since Turnbull became PM have shown a 50-50 tie (ReachTEL) and 51-49 to the Coalition (Galaxy). Kevin Bonham thinks the by-election result is well in line with what we would expect given national polling of about 50.5% 2PP to the Coalition.
It is surprising that Labor's primary vote was up 9.3%, while the Greens actually lost 1.3%. Labor's primary vote gains came mainly at the expense of the Liberals and Palmer United, who benefited from drawing the top square on the ballot paper. The Greens' poor performance is partly explained by the presence of left wing micro parties, such as Animal Justice, Sustainable Population and the Pirate Party, but the two national polls conducted since PM Turnbull have the Greens averaging 11.5%, up 2.8% on their 2013 result.
Partly as a result of the Greens' poor performance, Labor's share of all minor party preferences was only up marginally to 51.7%. Until PM Turnbull, it had looked as if Labor's minor party preference share would be in at least the 60's.
The only Canning poll taken since PM Turnbull was a ReachTEL poll for The West Australian, conducted Thursday night from a sample of 1130. This poll gave the Liberals a 57-43 lead on primary figures that suggest 58-42 had actual preference flows been known. There were many polls conducted while Abbott was still PM, but we cannot now assess their accuracy.
I will update this article with the results of the Greek election tomorrow, and will have a full wrap of the national polls since the shift to Turnbull next Thursday.
Update Monday morning 21 September: Almost 8,500 postal votes have been counted, and these have broken to the Liberals by 59.5-40.5, a swing to Labor on postals of 5.6%. Before the election, it was expected that postals and pre-polls would swing more to Labor than ordinary election day votes, because many of the postals and pre-polls were cast when Abbott was still PM. However, this expectation has not been realised.
The addition of these postals had reduced the overall swing to Labor to 6.4%. It is unlikely that there are many more votes to count.
SYRIZA wins Greek election easily
In July, the Greek Parliament agreed to further austerity in exchange for another Greek bailout. This deal was opposed by some of the SYRIZA (Coalition of the Radical Left) government's MPs, meaning SYRIZA had to rely on opposition votes to pass the deal. Owing to this rebellion, Greek PM Alexis Tsipras called new elections in late August in an attempt to secure a SYRIZA government that did not rely on these rebellious MPs.
The Greek Parliament has 300 members; 250 are elected by proportional representation with a minimum 3% threshold required to enter Parliament, and the remaining 50 are awarded to the party that wins more votes than any other party.
The election was held yesterday, and SYRIZA has won first place and the 50-seat bonus by a 7.5% margin over the conservative New Democrats. SYRIZA will have 145 of the 300 seats (down 4 from the January election), but will be able to form a coalition government with the Greek Independents, who won 10 seats. Greek Independents were in coalition with SYRIZA in the last Parliament, so this is effectively a status quo result. Polling had shown a much closer contest between SYRIZA and New Democracy.
New Democracy won 75 seats (down 1), the far-right Golden Dawn won 18 seats (up 1), the old major left wing party, PASOK, won 17 seats (up 4), the Communists won 15 seats (steady), the pro-European River won 11 seats (down 6), and the Union of Centrists won 9 seats after clearing the 3% threshold. A party that represented the rebellious SYRIZA MPs, Popular Unity, won only 2.9% of the vote, and failed to clear the 3% threshold.
Adrian Beaumont, PhD Student, Department of Mathematics and Statistics, University of Melbourne
Adrian Beaumont Mathematics and Statistics


text:
Artem Andriyovych Fedetskyi - em ucraniano, Артем Андрійович Федецький (Novovolynsk, 26 de abril de 1985) - é um futebolista profissional ucraniano que atua como defensor, atualmente defende o Dnipro Dnipropetrovsk.

Na era soviética, seu nome era russificado para Artyom Andreyevich Fedetskiy (Артём Андреевич Федецкий, em russo).

Carreira
Artem Fedetskyi fez parte do elenco da Seleção Ucraniana de Futebol da Eurocopa de 2016.

Futebolistas da Ucrânia
Futebolistas do Arsenal Kiev
Futebolistas do Karpaty Lviv
Futebolistas do FC Shakhtar Donetsk
Futebolistas do Dnipro Dnipropetrovsk
Futebolistas do SV Darmstadt 98
Jogadores da Seleção Ucraniana de Futebol
Jogadores da Eurocopa de 2016
Naturais de Novovolynsk

redpajama_set_name: RedPajamaWikipedia


This week we find another pile of finales and at best a few reality premiers. I have the listings through the end of August which to me marks the end of the summer TV season.
That means the GeekTonic 2011 Fall TV Season premieres guide series is coming this week. I'll highlight all the new shows and provide a detailed listing of all TV premieres for the Fall and early-winter TV season. For now read on for the GeekTonic weekly TV update highlighting all the new premieres, finales and specials coming up this week.
Quirky (10pm on Sundance) New technology/reality series that follows the www.Quirky.com team as they work on designing and fabricating a single product idea in each episode suggested by their online community. I've purchased a few of the products created through this site and look forward to this one.
There aren't many remote controls that I put in the cool category, but today I discovered a concept design (read: not available to purchase) that I find beautiful and something that just might appeal to the masses. It's the Baand Remote by Kristian Ulrich Larsen!
Baand Remote UI example from Kristian Ulrich Larsen on Vimeo.
The unfortunate thing is that you can't buy this today as it's only a design concept. It sure looks like a perfect companion to a HTPC-type home media setup to me though. Would you use it?
I'm preparing some articles about SageTV and looking for some input to help me decide how much work I should put towards SageTV articles and what my focus should be given the fact that SageTV is no longer available to new users.
1. What HTPC software do you use for DVR functions? SageTV or something else?
2. What HTPC software do you use for Movie playback – non-TV movies?
3. What do you use for music in your home?
4. If you use SageTV do you use the default menu or something else? Phoenix, Diamond or something else?
I recently dropped Cable and went with Satellite. The following post will highlight how easy it was to do so, why the cable company lost yet another customer and why they should embrace the HT/HTPC enthusiast. I will be speaking from my specific experience and also my situation, so assume that these arguments may not be valid for everyone.
First of all, there were two main reasons behind my decision to leave cable behind: the prices have been steadily increasing every year with very little value added, and my wife and I are football fans. In the three since we had our previous cable provider our price has increased by $30, with a planned proposal to go up by another $9 this year. That's roughly $10 per year. In that time they have added a number of channels that mean nothing to me (and I assume a majority of the people). Granted, in that time frame they took SPEED to SPEED HD and increased their HD offerings, but, to be honest, so did everyone else. What they haven't added in that time frame is NFL Network or the Red Zone Channel. This brings me to my second reason for dropping cable. As I mentioned, we are big football fans. Where we live we get very little Miami Dolphins games – our favorite team. We also do not get Thursday Night Football games. If our cable provider added the NFL Network and the Red Zone Channel we might have thought about staying.
Anyway, this blog is about how they didn't do the other things to ensure we would stay either, had we not been compelled or willing to go elsewhere for our programming needs (this should mean everyone else who has other reasons besides Sunday Ticket to leave Cable). Let me go over what I believe are the things our cable company could have done to keep us and why.
Alternatives – So the previous argument brings me to the second one. HTPC enthusiasts are good at finding alternatives and work-arounds. When HD was not available, we turned to QAM tuners. And when those really started to be locked out of good programming we turned to the HD PVR. And really, that is the key to what has allowed me to more or less seamlessly transition from cable to satellite. The corollary to that argument is also that the cable companies have not provided alternatives to enthusiasts. Think of how many not-that-techy people you know who also hate their DVR. Maybe not that many, but think of some of those people who just accept their DVR for what it is, and how much happier they would be with say, a cable company provided TiVo. Or those people who flock to Netflix and cut the cord. Would those people (and the cable companies) not be better served if the cable company had an internet device only viewing plan at a fraction of the cost? Or an a-la-cart plan? Or, for that matter, an internet device only a-la-cart plan? Instead, the cable companies and the studios go out of their way to lock out Netflix, increase costs, set up caps, etc… anything they can do to lock in and not provide alternatives. Reminds me of the RIAA. That did not turn out as well for them.
Bleeding Edge Technologists – HTPC enthusiasts are definitely ones to embrace bleeding or leading edge technology. The cable companies are trying to get better at this, but their whole scheme still revolves around lock in. Granted this isn't their entire fault, as they have licensing deals, etc. But they are also probably not trying that hard either. Think of the iPad apps hat have come out from Time Warner and Comcast/Xfinity. Those apps have a lot of potential, but still, hampered by unfair DRM requirements. When you take a portable device and make the programming accessible to it but then lock it down to viewing only within the home or on the same Broadband network the cable company provides, it really isn't that much of an option. At that point why not just use the Netflix App or the Hulu Plus App? The cable company did not provide the right incentives for me to stay. If my cable company provided DVR (assuming it weren't a stinking pile) was capable of streaming my recordings to any device that I could authenticate with credentials, then I may not necessarily want to cut the cord. Because, let's face it, in the end Cable has more programming choices. The HTPC enthusiast demands this, and is willing to forego some things or deal with some less than ideal steps in order to get it-which brings me to my next argument.
Other Sources – Short and sweet: if you don't provide the means to get the programming I want when I want it and where I want it, I will find someone else who can.
So in our case it came down to two things. But to be honest my whole SageTV/HTPC endeavors have been around one thing: control. I want to control how much space I allocate to my DVR. I want to control how much I spend on tangible hardware, versus service. I want to control how flexible my system is. I was willing to forego HD channels for a time to get it. I was willing to pay more upfront to get it. And I was willing to deal with the frustrations of setting the system up as well as the plug and play nature of a cable company DVR. But really, things would have been much easier if the options were there and readily available and supported. The value may have been worth the monthly rate they were charging me. I may have grown to like my system and how it was set up with the cable company because of the way everything would come together. But instead, I began to see it as a battle between me and cable. With having to implement work-arounds along the way, another thing that I learned was that I didn't need cable. And once people realize that, then it's only a short leap away from moving away.
This week brings a bunch of finales and a few reality premiers. The GeekTonic 2011 Fall TV Season premieres guide is just about complete – I'll be sharing it with everyone soon. For now read on for the GeekTonic weekly TV update highlighting all the new premieres, finales and specials coming up this week.
High Stakes Sweepers (10pm on TLC) New reality series about people obsessed with entering sweepstakes.
CMT Made (10pm on CMT) New reality series. From the producers of MTV's "Made" but for adults instead of teens.
Tanked (9pm on Animal Planet) New documentary series that profiles makers of huge aquariums for expensive homes, hotels and business.
Buried Treasure (8pm on Fox) a new reality/collectibles series.


I'm a real sucker for cool interior spaces and this house in Cape Town blew my mind. The owners Emma and Warren, did everything by themselves and made it cosy and super cool. The house is full of recognizable Ikea pieces that we all have seen so many times but they look totally different and original in this lovely home.


• The Union Cabinet approved the MoU between India and Electoral Tribunal of Panama and Electoral Commission of Namibia on 6th Feb 2019.
• It would promote bilateral cooperation, aimed at building technical assistance/ capacity support for the Electoral Commission of Namibia (ECN) and with Electoral Tribunal of Panama (ETP).
• The Cabinet was chaired by PM Narendra Modi.
• MoU between India and Malaysia for Mutual Cooperation in the field of Company Secretary Ship.
• MoU between India and Brazil on cooperation in the field of Traditional Systems of Medicine and Homoeopathy.
• MoU between India and Maldives for Establishing Mutual Cooperation to Improve the Ecosystems for Agribusiness.
• MoU between India and Uzbekistan for promoting bilateral cooperation in the area of e-Governance.
• Proposal for higher allocation of power to Home State from Under Construction Projects of NTPC Ltd.
• Introduction of National Institutes of Food Technology, Entrepreneurship and Management Bill, 2019 in the Parliament.
• Establishment of a unified authority for regulating all financial services in International Financial Services Centres (IFSCs) in India through International Financial Services Centres Authority Bill, 2019.
• Establishment of Circuit Bench of Calcutta High Court at Jalpaiguri.
• Establishment of Rashtriya Kamdhenu Aayog for Conservation protection and development of cows and their progeny.
Indian Coast Guard signed MoU with AAI.
• Indian Coast Guard and the Airport Authority of India signed a Memorandum of Understanding at Coast Guard Regional Headquarters in Port Blair.
• The MoU with AAI is aimed at strengthening mutual interactions, interoperability, and validating procedures during the conduct of search and rescue operations.
• The Swachh Bharat Mission launched the 'Darwaza BandPart 2' campaign on 6th Feb 2019 in Mumbai.
• The campaign was produced by the Ministry of Drinking Water and Sanitation was launched in the presence of iconic actor Amitabh Bachchan.
• The campaign focuses on sustaining the open defecation free status of village across the country.
• Smt. Smriti Irani, the Union Minister of Textiles launched the India Size project in Mumbai on 6th February 2019.
• It aims to arrive at a standard Indian size for the ready-to-wear clothing industry.
• A size chart will be developed which will be specific to Indian consumer's measurements.
• The project is undertaken by the Ministry of Textiles.
• Swine flu has claimed 226 lives across the country, with the worst hit in Rajasthan claiming 85 deaths.
• 2,263 patients have been found positive with influenza as per the NCDC report.
• A meeting was held on 6th February 2019 by the Ministry of Health headed by Preeti Sudan to take action to deal with it.
• Swine flu is caused by H1N1 virus and has symptoms similar to the regular flu.
PM to flag off Vande Bharat Express.
• Prime Minister Narendra Modi will flag-off Vande Bharata Express on 15th February, 2019 from the New Delhi Railway Station.
• It is India's first engineless train.
• The train has been manufactured by the Integral Coach Factory, Chennai and has become India's fastest train.
• It hit the speed of over 180 kmph during a trial run at the Delhi-Mumbai Rajdhani route.
• Earlier, it was named Train 18.
CCEA approves 12,000 MW power projects.
• The proposal was by the Ministry of New and Renewable Energy for the implementation of the CPSU scheme Phase-II for setting up these projects.
• The power projects will be set up in 4 years at a cost of Rs. 48,000 crores.
Sixth Bi-Monthly Monetary Policy Statement, 2017-18 by Dr.Urjit Patel.
• Reduce the policy repo rate under the liquidity adjustment facility (LAF) by 25 basis points from 6.5% to 6.25% with immediate effect.
• The reverse repo rate under the LAF stands adjusted to 6.0%, and the marginal standing facility (MSF) rate and the Bank Rate to 6.5%.
• The first advance estimates (FAE) has placed the growth of real gross value added (GVA) at 7.0% in 2018-19 as compared with 6.9% in 2017-18.
• The Cabinet Committee of Economic Affairs chaired by PM Narendra Modi approved the creation of Agri-Market Infrastructure Fund (AMIF) on 6th Feb 2019.
• It is being created for the up-gradation and development of agricultural marketing infrastructure in Regulated Wholesale Markets and Gramin Agricultural Markets.
• A corpus of Rs. 2000 crore has been approved for the creation of the fund.
Dr Jitendra Singh delivers keynote.
• Dr Jitendra Singh, Minister of the DoNER (The Ministry of Development of North Eastern Region), delivered a keynote address at the 'Parmanu Tech 2019' conference on 6th February 2019 at New Delhi .
• It was organized by the Ministry of External Affairs and Department of Atomic Energy.
• The conference also discussed issues related to Radiation Technologies and Nuclear Energy.
India-Germany join hands for cooperation.
• The 3rd Indo-German Working Group for water and waste management concluded on 6th February 2019 in New Delhi.
• Delegates from both the sides met and discussed potential cooperation in the field of water and waste management.
• The Indian delegation was headed by Shri Anil Kumar Jain.
• Third Indo-German Environment Forum will meet in New Delhi on February 13, 2019.


Mital and Rex hosted an idyllic wedding reception at the Lakeview Golf Resort and Spa, where metallics and regal colors were cornerstones. In keeping with the outfits of the newly weds, Zaccagnini's Morgan Town Florist set up the dessert bar on dark green sequin linens, while the guest tables were adorned in magenta sequin linens with floral tablescapes. Almost Heaven Desserts (aptly named) were responsible for the delectable dessert spread, that comprised of an assortment of frosted cupcakes, and the wedding cake with beaded design with a vintage "Rex & Mital" topper. Navy blue drapes and olive green curtains surrounded the ballroom. Our superstars of the evening coordinated their ensembles, with Rex in a slate grey tuxedo worn over a navy blue shirt, and Mital in a royal blue, embroidered floor-length anarkali featuring stunning zari work elements. Hayley Carlin from Toni Exquisite Hair gave Mital a braided updo, thus letting her gorgeous gold chand balis take center stage. Beauty by Joy Lager finished Mital's look with dewy coral blush and minimalistic smokey eyes. Planet DJ Productions entertained the guest with their mix of Bollywood numbers and pop chartbusters. "The amazing crowd loved to have fun and dance! The dance floor was fully packed from the second we started till the extended time we kept going till after the party stopped," said photographer Tyler, one half of the terrific Tyler Vincent Photography duo. Go through their gallery for inspiration on how to incorporate dark colors to make your big party come alive!
The marriage of two cultures is always intriguing to us, and if you feel the same way, visit the blog tomorrow for more such wedding planning inspiration!
Planet DJ Event Lighting and Planet DJ Productions are members of the Platinum Guide. Love what you see? Explore their portfolios.


Well, now I just want to read it RIGHT NOW! Great review!
Thanks Nicole, Skin Game is definitely one of my favorite Dresden books.
One of my favorite parts of this book was the meeting with Maggie, as well as the teaser with the new spirit. I can't wait to see how Jim develops both of these characters in future books!
I will do my best to wait patiently for peace talks.... Hopefully I will not read the next one in a day as well since it means a long wait for the next book.
I read this book not having read any of the others in the series and I LOVED it!! Off to read the 1st 14 so I can catch up on what I missed and fill in the holes. Wow! Why didn't I notice this series earlier?
excellent book, after being so disappointed by bound, and making my way back to this, well its good to know you still got it Dresden. keep goin man.


Lucy the Elephant is a 65-foot-wood and tin elephant is a beloved tourist attraction and a national landmark in Margate, N.J.
Jersey Icons is an occasional series devoted to the things that help define life in the Garden State.
You can climb inside a wooden elephant that stares out at the ocean. Need we say more? Lucy is an iconic structure if only for her sheer endurance and the passion she has inspired among those who came to her rescue.
Built in 1881, this 65-foot wooden elephant was the brainchild of James Vincent de Paul Lafferty, Jr., an inventor and developer from Philadelphia.
She was modeled after "Jumbo" a then-famous elephant with Barnum & Bailey's Greatest Show on Earth. The cost of Lucy's construction was reported at $25,000 or about $557,259 in today's dollars.
Lafferty owned several lots in Margate, which was then-known as South Atlantic City. He had hopes that curiosity about Lucy would spur interest in buying his nearby land. That effort failed.
A British doctor and his family rented Lucy as his residence in the summer of 1902. She also served as a tavern briefly in 1903, despite the fact that she had no electricity.
The combination of kerosene lanterns and people drinking alcohol inside a wooden elephant proved not to be a good idea, though, and it was soon discontinued, said Richard Helfant, executive director and CEO of the Save Lucy Committee.
Lucy then began her career as a tourist attraction.
By the late 1960s, Lucy was on her last legs. Time and the elements had taken a toll on her structure. And the land owner had plans to demolish her to build what is today a condominium complex.
The prospect of demolition sparked a Save Lucy Committee – which raised the funds to move her a short distance to a town park and renovate her.
A gift store created a revenue stream to help fund further repairs and renovation, plus the committee landed several grants.
In 1976 amid the nation's bi-centennial celebration, Lucy was added to the federal register of National Historic Landmarks.
On July 22 – two days after the anniversary of her move – Lucy celebrated her 136th birthday.
In 2016, 35,000 people toured inside of Lucy and 135,000 visited the site.
"As she came down off the curb, you saw these clouds of dust fly out of her and the birds flew out of her and nails creaking but she made the move." — Helfant, describing how he watched a crew move Lucy when he was a 12-year-old boy.
Lafferty obtained a patent for Lucy's design, which was created by Philadelphia architect William Free. The patent described a building in the form of an animal with several rooms and legs containing stairs that led to the body.
The patent also stated that the building "may be in the form of any other animal than an elephant, as that of a fish, fowl, etc." However, Lafferty never attempted building any such structures.
Lucy even has her own song, by musician Michael Falcone. Listen here.
"Jersey Icons" is a series about the places, things, songs, objects and structures that have helped define what it means to live in the Garden State.
Among the topics we'll explore: the boardwalk, the Pulaski Skyway, the Jersey Tomato and Lucy the Elephant. Each week we'll offer interesting facts, a bit of history, a video and a podcast on a Jersey icon.
We'd like to invite your help as well. What do you consider an iconic part of life in New Jersey? Send your suggestions along to John Ensslin at jensslin@gannett.com or via Twitter @bergenmatters.
To see a video and hear a podcast about these Jersey Icons, visit NorthJersey.com.


text:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>

#include <as6502/error.h>
#include <as6502/symbols.h>

#include "object.h"
#include "flat.h"
#include "ines.h"

static void linkObjects(FILE *outFile, ld6502_file_type format, FILE *chrFile, int numFiles, char * const files[]) {
	ld6502_object *linkResult = ld6502_createObject();
	ld6502_object **objects = calloc(numFiles, sizeof(ld6502_object *));

	// Read in a flat file as the only object
	FILE *flatFile = fopen(files[numFiles - 1], "r");
	ld6502_readObjectFromFlatFile(linkResult, flatFile);
	fclose(flatFile);

	///////////// LOAD /////////////
	for (int o = 0; o < numFiles; o++) {
		ld6502_loadObjectFromFile(objects[o], files[o], ld6502_file_type_None);
	}

	ld6502_object *chrRom = NULL;
	if (chrFile) {
		ld6502_readObjectFromFlatFile(chrRom, chrFile);
	}

	///////////// LINK /////////////
	// Iterate through symbol table, copy all objects into a new single flat object until all unlinked symbols are resolved, if any symbols cannot be found, error.
	// Also make sure to consolidate all symbol tables into a singular master table that has all symbols.

	// Iterate thorugh unlinked objects
	for (int o = 0; o < numFiles; o++) {
		ld6502_object *currentObject = objects[o];
		assert(currentObject);
		for (as6502_symbol *currentSymbol = currentObject->table->first_symbol; currentSymbol; currentSymbol = currentSymbol->next) {
			// Does symbol already exist in linkResult, if not, we know it doesn't exist on any objects before objects[o + 1]

			// If not, copy required symbol, otherwise change symbol address
		}
	}

	/////////// CLEAN UP ///////////
	for (int o = 0; o < numFiles; o++) {
		ld6502_destroyObject(objects[o]);
	}
	free(objects);

	// Create the property struct
	ines_properties props;

	switch (format) {
	  default:
			writeToINES(outFile, &linkResult->blobs[0], chrRom ? &chrRom->blobs[0] : NULL, &props);
			break;
	}
	ld6502_destroyObject(linkResult);
}

static void usage() {
	fprintf(stderr, "usage: ld6502 [-o out_file] [-F format] [-C chr_rom] [file ...]\n");
}

int main(int argc, char * const argv[]) {
	ld6502_file_type format = ld6502_file_type_iNES;
	char outName[FILENAME_MAX] = "out.nes";
	FILE *chrFile = NULL;
	FILE *out = NULL;

	int ch;
	while ((ch = getopt(argc, argv, "o:C:F:")) != -1) {
		switch (ch) {
			case 'F': {
				if (!strncmp(optarg, "ines", 4)) {
					format = ld6502_file_type_iNES;
				}
			} break;
			case 'o': {
				out = fopen(optarg, "w");
			} break;
			case 'C': {
				chrFile = fopen(optarg, "r");
			} break;
			case '?':
			default:
				usage();
				return 0;
		}
	}

	argc -= optind;
	argv += optind;

	currentFileName = outName;
	linkObjects(out, format, chrFile, argc, argv);
	if (chrFile) {
		fclose(chrFile);
	}
	if (out) {
		fclose(out);
	}
}

redpajama_set_name: RedPajamaGithub


text:
Task Forces/Task Force Officers (2)
Heroin (145)
Methamphetamine (75)
Marijuana Concentrates (3)
LSD (2)
K2/Spice (1)
Opioids (1)
Synthetic Opioids (3)
St. Louis (49)
Headquarters (21)
New York Man Pleads Guilty to Multi-Drug Conspiracy
BOSTON – A New York man pleaded guilty today in federal court in Boston to his role in a drug distribution conspiracy involving heroin, fentanyl and cocaine. Wilkin Cedano, 37, of Brooklyn, N.Y., pleaded guilty to one count of conspiracy to distribute and possess with intent to distribute 100 grams...
Two Malden Men Indicted For Trafficking Fentanyl and Methamphetamine
BOSTON – Two Malden men were indicted yesterday in connection with trafficking fentanyl and methamphetamine disguised as Adderall, Xanax or oxycodone in and around the Malden area. Igor Desouza, 25, and Matthew Ramos, 24, were indicted on one count each of possession with intent to distribute 500 grams or more...
Puerto Rico Man Sentenced to Prison For Trafficking Cocaine to Connecticut
CONNECTICUT - Leonard C Boyle, Acting United States Attorney for the District of Connecticut, announced that ROBERTO MUNIZ, 37, of Guaynabo, Puerto Rico, was sentenced today via videoconference by U.S. District Judge Victor A. Bolden to 30 months of imprisonment, followed by three years of supervised release, for trafficking cocaine...
Worcester Man Sentenced for Multi-Drug Trafficking Conspiracy
MASSACHUSETTS – A Worcester man was sentenced yesterday in connection with a fentanyl, heroin, cocaine and crack cocaine trafficking conspiracy. Robert Young, 50, was sentenced by U.S. District Court Judge Timothy S. Hillman to five years in prison and three years of supervised release. In October 2018, Young pleaded guilty...
NY Man Charged with Multi-Drug Conspiracy
BOSTON – A New York man was charged yesterday in federal court in Boston in connection with a drug distribution conspiracy involving heroin, fentanyl and cocaine. Wilkin Cedano, 37, of Brooklyn, N.Y., was charged with one count of conspiracy to distribute and possess with intent to distribute 100 grams or...
Colombian National Convicted After Attempting to Buy 20 Kilos of Cocaine
BOSTON – A Colombian national, recently residing in Revere, was convicted by a federal jury today in connection with attempting to purchase 20 kilograms of cocaine from undercover agents. Jesus Arley Munera-Gomez, 35, was convicted following a week-long trial of one count of attempt to possess with intent to distribute...
Man Sentenced for Fentanyl and Cocaine Conspiracy
BOSTON – A Quincy man was sentenced yesterday for his involvement in a drug conspiracy involving fentanyl and cocaine. Tre Fernandes, a/k/a "OZ" or "OC," 26, was sentenced by U.S. District Court Chief Judge F. Dennis Saylor IV to three months in prison, nine months of home confinement and three...
Hartford Man Sentenced to 7 Years in Federal Prison
Hartford, Conn. - Leonard C Boyle, Acting United States Attorney for the District of Connecticut, announced that Kendall Jones, also known as "Wolf," 32, of Hartford, was sentenced today by U.S. District Judge Alvin W. Thompson in Hartford to 84 months of imprisonment, followed by four years of supervised release...
Southeastern Connecticut Drug Trafficker, Co-Conspirator Found Guilty
Brideport, Conn. - Leonard C Boyle, Acting United States Attorney for the District of Connecticut, Brian D. Boyle, Special Agent in Charge of the Drug Enforcement Administration for New England, and New London Police Chief Brian Wright, today announced that a federal jury in Bridgeport has found Anthony Whyte, also...
Man Sentenced Five Years for Trafficking Cocaine through U.S. Mail
BRIDGEPORT, Conn. – DEA New England Division Special Agent in Charge Brian D. Boyle and Leonard C Boyle, Acting United States Attorney for the District of Connecticut, announced that Miguel Freytes, 42, of Bristol, was sentenced by U.S. District Judge Victor A. Bolden in Bridgeport to 60 months of imprisonment...