Jafar
KLT theory

Table of contents

Where to find information

How it works

Technical details about the additional layer

Where to find information

Basics of the method can be found in the homepage of the documentation of the KLT lib : http://www.ces.clemson.edu/~stb/klt/.

A comparison between the KLT corner detector and Harris corner detector can also be found in this course of the University of Western Australia : http://undergraduate.csse.uwa.edu.au/units/CITS4240/Lectures/tracking.pdf.

An explanation of the multi-resolution pyramid of KLT can be found here : http://ilab.cs.ucsb.edu/publications/KolschBook05.pdf.

How it works

In brief, KLT select features representing corners using a method close to the Harris detector, and then track them maximizing the correlation with a Newton-Raphson technique, which operates with a multiresolution pyramid. Finally a consistency check of features using an affine mapping can be done.

Features extraction

Tomasi has proposed a feature selection based on corner detection, as Harris detector, but which is according to the author "optimal by construction because it is based on how the tracker works".

Corner detection, as in Harris detector, is based on a local structure matrix, but in a large area ( $(2d+1)\times(2d+1)$ neighbourhood $\mathcal R$, providing a smoothing) :

$C_{\textrm{KLT}}(x,y)=\left[ \begin{array}{cc} \sum \sum_{\mathcal R} \left(\frac{\partial I}{\partial x} \right)^2 & \sum \sum_{\mathcal R} \frac{\partial I}{\partial x} \frac{\partial I}{\partial y} \\ \sum \sum_{\mathcal R} \frac{\partial I}{\partial y} \frac{\partial I}{\partial x} & \sum \sum_{\mathcal R} \left(\frac{\partial I}{\partial y} \right)^2 \end{array} \right]$

Let's now consider the two eigenvalues $\lambda_1$ and $\lambda_2$ of the matrix C. As C is symmetric and positive semi-definite, both $\lambda_1$ and $\lambda_2$ are non-negative, and at the location of a corner we have : $\lambda_1\geq\lambda_2>0$, where both eigenvalues are large.

The KLT algorithm compares the smaller eigenvalue $\lambda_2$ to a threshold value $\lambda_{\textrm{min}}$ and if greater saves $(x,y)$ in a potential corner list $L$.

Then it sorts $L$ in decreasing order of $\lambda_2$, and scan the sorted list from top to bottom, selecting points in the list in sequence and removing points that fall inside the neighbourhood $\mathcal R$ of any selected points (in order to have neighbourhood which do not overlap, because those which overlap are probably due to the same corner), until having the required count of features.

Tracking

Basically, the tracking is done by an algorithm using Newton-Raphson on image correlation and which works under affine image transformations.

There are two models for image motion : translation - the simplest -, and affine motion. KLT uses translation for frame-to-frame transformations, but uses affine motion for comparing the pattern to the first image, to verify it has not too much moved away.

Birchfield uses a definition for the dissimilarity between two windows, one in image I and one in image J, which presents the particularity to be symmetric :

$ \epsilon = \int\int_W \left[ J\left(x+\frac d2\right) - I\left(x-\frac d2\right) \right]^2 w(x) $

where $x=[x,y]^T$, the displacement $d=[d_x,d_y]^T$, and the weighting function $w(x)$ usually set to the constant 1 (more information can be found at http://www.ces.clemson.edu/~stb/klt/birchfield-klt-derivation.pdf).

Then we can expand it in Taylor series truncated to the linear term, what leads to a matrix equation solved by Newton-Raphson.

Technical details about the additional layer

Here are some details about the implementation of the additional layer :

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:30 for Jafar by doxygen 1.7.6.1
LAAS-CNRS