\chapter{Introduction}
\label{sec:learnmatch_intro}

Keypoint-based object detection has become a cornerstone of modern computer vision, enabling great advances in areas such as augmented reality (AR) and simultaneous localisation and mapping (SLAM). These object detection approaches model an object as a set of keypoints, which are matched independently in an input image. Robust estimation procedures based on RANSAC \cite{Fischler1981, Chum2005, Torr2000} are then used to determine geometrically consistent sets of matches which can be used to infer the presence and transformation of the object. 

There has been a great deal of progress in making these approaches suitable for real-time applications and there are now a range of methods available for use on a desktop PC \cite{Lepetit2006,Bay2008,Ozuysal2010}. Recently, there has been significant interest in developing approaches suitable for low-powered mobile devices such as smartphones and tablets, which are becoming increasingly popular platforms for computer vision applications \cite{Rosten2006,Taylor2009,Calonder2010,Leutenegger2011}. These approaches focus on making the matching stage as efficient as possible, since this is generally the most time-consuming part of the detection pipeline. To achieve this they design image descriptors which can be represented as binary vectors, allowing matching to be performed very efficiently by measuring Hamming distance between descriptors, which can be implemented using binary CPU instructions.

The object models built by traditional approaches are static, usually constructed offline for a particular object. For certain
applications like AR and SLAM, however, we want to detect the object repeatedly in a dynamic environment. Additionally,
some applications require on-the-fly learning and detection to build an instantaneous model from only a single snapshot of the object. Therefore it is desirable to be able to learn an object model efficiently online and adapt it to a particular environment, which is not typically addressed by traditional approaches. This process of adapting or learning the model should not add significant overhead to the detection pipeline and should still be suitable for real-time detection on low-powered devices. These requirements create a very challenging problem for a learning algorithm.

The approach we propose in this chapter frames the entire object detection procedure as a structured learning problem, such that overall detection performance can be optimised given a set of training images. Our formulation combines feature learning, matching, and pose estimation into a single unified framework. Furthermore, because we use a linear structured SVM to perform learning, we are able to perform training online, which allows us to quickly adapt our model to a given environment. Additionally, we show that we can accurately approximate our model during evaluation in such a way that we
can take advantage of binary descriptors and the efficiency they provide. As a result, our algorithm adds a relatively small amount of computational
overhead compared to static models, while improving the detection rate significantly.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../learnmatch"
%%% End:
