BIB-VERSION:: CS-TR-v2.0
ID:: CORNELLCS//TR93-1399
ENTRY:: 1994-03-17
ORGANIZATION:: Cornell University, Computer Science Department
LANGUAGE:: English
TITLE:: Good Features to Track
AUTHOR:: Shi, Jianbo 
AUTHOR:: Tomasi, Carlo
DATE:: November 1993
PAGES:: 28
ABSTRACT::
No feature-based vision system can work until good features can be identified 
and tracked from frame to frame. Although tracking itself is by and large a 
solved problem, selecting features that can be tracked well and correspond to 
physical points in the world is still an open problem. We propose a feature 
selection criterion that is optimal by construction because it is based on how 
the tracker works, as well as a feature monitoring method that can detect 
occlusions, disocclusions, and features that do not correspond to points in 
the world. These methods are based on a new tracking algorithm that extends 
previous Newton-Raphson style search methods to work under affine image 
transformations. We test performance with several simulations and experiments 
on real images.
END:: CORNELLCS//TR93-1399
BODY::
Good Features to Track
Jianbo Shi
Carlo Tomasi*
TR 93-1399
November 1993
Department of Computer Science
Cornell University
Ithaca, NY 14853-7501
This research was supported by the National Science Foundation under contract
lRl-9201 751
Good Features to Track
Jianbo Shi and Carlo Tomasi1
December 1993
1This research was supported by the National Science Foundation under contract IRI-9201751.
Abstract
No feature-based vision system can work until good features can be identified and tracked from
frame to frame. Although tracking itself is by and large a solved problem, selecting features that
can be tracked well and correspond to physical points in the world is still an open problem. We
propose a feature selection criterion that is optimal by construction because is based on how the
tracker works, as well as a feature monitoring method that can detect occiusions, disocclusions, and
features that do not correspond to points in the world. These methods are based on a new tracking
algorithm that extends previous Newton-Raphson style search methods to work under affine image
transformations. We test performance with several simulations and experiments on real images.
Chapter 1
Introduction
Is feature tracking a solved problem? The extensive studies of image correlation [CL74],[CR76],
[RGH8o], [Woo83], [FP86], [TH86] and sum-of-squared-difference (SSD) methods [BYX82], [Ana89]
show that all the basics are in place. When image dispiacements are small from one frame to the
next, a window can be tracked by optimizing some matching criterion [LK81], [Ana89j over all
possible small translations and, in more sophisticated systems, over all moderate linear image
deformations [F8?7], [FM91], [MO93]. Furthermore, feature windows can be selectedby maximizing
an interest criterion, or some measure of texturedness or cornerness in the first image. Favorite
criteria are a high standard deviation in the spatial intensity profile [Mor8O], the presence of zero
crossings of the Laplacian of the image intensity [MPU79], and corners [KR8o], [DN8l]. Finally,
even the size of the window to be tracked can be selected adaptively based on local variations of
image intensity and inter-frame disparity [0K92j.
Yet a nagging problem remains open. In fact, even a region of high interest or rich texture
content can be poor. For instance, it can straddle a depth discontinuity or the boundary of a
reflection highlight. In either case, the window is not attached to a fixed point in the world,
making that feature useless or more likely harmful to most structure-from-motion algorithms. This
phenomenon occurs very often. Extreme but typical examples are trees and cars. In a tree, branches
at different depths and orientations create intersections in the image that would trigger any feature
detector and yet correspond to no physical point in the world. With a car, most features on the
body and windows are reflections that change their position on the surface as the car drives past
the camera. Even in carefully engineered imaging situations, the problem of poor features is so
pervasive that good features must often be picked by hand. Furthermore, even good features can
be occluded by nearer surfaces, and trackers often blissfully drift away from their original point in
the world when this occurs. No vision system based on feature tracking can be claimed to really
work until these issues have been settled.
In this report we show how to monitor the quality of image features during tracking. Specifically,
we investigate a measure of feature dissimiiarnt? that quantifies how much the appearance of a
feature changes between the first and the current frame. The idea is straightforward: dissimilarity
is the feature's rms residue between the first and the current frame, and when dissimilarity grows
too large the feature should be abandoned. However, in this report we make two main contributions
to this problem. First, we provide experimental evidence that pure translation is not an adequate
model for image motion when measuring dissimilarity, but affine image changes, that is, linear
warping and translation, are adequate. Second, we propose a numerically sound and efficient way
of determining affine changes by a Newton-Raphson stile minimization procedure, much in the style
of what Lucas and Kanade [LK81] do for the pure translation model.
In addition to these two main contributions, we improve tracking in two more ways. First, we
propose a more principled way to select features than the more traditional "interest" or "cornerness"
measures. Specifically, we show that feature windows with good texture properties can be defined
by explicitly optimizing the tracker's accuracy. In other words, the right features are exactly those
that make the tracker work best. Second, we submit that two models of image motion are better
than one. In fact, pure translation gives more stable and reliable results than affine changes when
the inter-frame camera translation is small. On the other hand, affine changes are necessary to
compare distant frames as is done when determining dissimilarity.
In the next chapter, we introduce affine image changes and pure translation as our two models
for image motion. In chapter 3 we describe our method for the computation of affine image changes.
Then, in chapters 4 and 5, we discuss our measure of texturedness and feature dissimilarity, which
are based on the definition of the tracking method given in chapter 3. We discuss simulations and
experiments on real sequences in chapters 6 and 7, and conclude in chapter 8.
2
Chapter 2
Two Models of Image Motion
In this chapter, we introduce two models of image motion: the more general afline motion is a
combination of translation and linear deformation, and will be described first. The second model,
pure translation, is the restriction of the general model to zero deformation.
As the camera moves, the patterns of image intensities change in a complex way. In general,
any function of three variables I(x, y, t), where the space variables x, y and the time variable t are
discrete and suitably bounded, can represent an image sequence. However, images taken at near
time instants are usually strongly related to each other, because they refer to the same scene taken
from only slightly different viewpoints.
We usually express this correlation by saying that there are patterns that move in an image
stream. Formally, this means that the function I(x, ?, t) is not arbitrary, but satisfies the following
property:
I(x,v,t+T) =Nx--H?(x,y,t,r),u--H?x,y,t,r))
(2.1)
Thus, a later image taken at time t + 7 can be obtained by moving every point in the current image,
taken at time t, by a suitable amount. The amount of motion 6 = (?, n) is called the displacement
of the point at x = (x, y) between time instants t and t + 7.
Even in a static environment under constant lighting, the property described by equation (2.1)
is often violated. For instance, at occluding boundaries, points do not just move within the image,
but appear and disappear. Furthermore, the photometric appearance of a surface changes when
refiectivity is a function of the viewpoint. However, the invariant (2.1) is by and large satisfied at
surface markings that are away from occluding contours. At these locations, the image intensity
changes fast with x and y, and the location of this change remains well defined even in the presence
of moderate variations of overall brightness around it.
A more pervasive problem derives from the fact that the displacement vector 6 is a function of
the image position x, and variations in 6 are often noticeable even within the small windows used
for tracking. It then makes little sense to speak of "the" displacement of a feature window, since
there are different displacements within the same window. Unfortunately, one cannot just shrink
windows to single pixels to avoid this difficulty. In fact, the value of a pixel can both change due to
noise and be confused with adjacent pixels, making it hard or impossible to determine where the
pixel went in the subsequent frame.
A better alternative is to enrich the description of motion within a window, that is, to define a
set of possible displacement functions 6(x), for given t and r, that includes more than just constant
functions of x. An affine motion field is a good compromise between simplicity and flexibility:
6= Dx+d
3
where
dxx dx?
D = - d?x d?y -
is a deformation matrix, and d is the translation of the feature window's center. The image
coordinates x are measured with respect to the window's center. Then, a point x in the first image
I moves to point Ax t d in the second image J, where
A= 1+D
and 1 is the 2 x 2 identity matrix. Thus, the affine motion model can be summarized by the
following equation relating image intensities:
J(Axtd) =1(x)			(2.2)
Given two images I and J and a window in image I, tracking means determining the six
parameters that appear in the deformation matnx D and displacement vector d. The quality of
this estimate depends on the size of the feature window, the texturedness of the image within it,
and the amount of camera motion between frames. When the window is small, the matrix D is
harder to estimate, because the variations of motion within it are smaller and therefore less reliable.
However, smaller windows are in general preferable for tracking because they are more likely to
contain features at similar depths, and therefore correspond to small patches in the world, rather
than to pairs of patches in different locations as would be the case along a depth discontinuity. For
this reason, a ptre translation model is preferable during tracking:
J(x+d) = 1(x)
where the deformation matrix D is assumed to be zero.
The experiments in chapters 6 and 7 show that the best combination of these two motion
models is pure translation for tracking, because of its higher reliability and accuracy over the small
inter-frame motion of the camera, and affine motion for comparing features between the first and
the current frame in order to monitor their quality. In order to address these issues quantitatively,
however, we first need to introduce our tracking method. In fact, we define texturedness based on
how tracking works. Rather than the more ad hoc definitions of interest operator or "cornerness",
we define a feature to have a good texture content if the feature can be tracked well.
4
Chapter 3
Computing Image Motion
The affine motion model is expressed by equation (2.2):
J(Ax + d) =1(x)
and for pure translation the matrix A is assumed to be equal to the identity matrix. Because of
image noise and because the affine motion model is not perfect, the equation above is in general
not satisfied exactly. The problem of determining the motion parameters can then be defined as
that of finding the A and d that minimize the dissimi1arnt?
e = 11w [J(Ax + d) --H1(x)]2 w(x) dx
(3.1)
where W is the given feature window and w (x) is a weighting function. In the simplest case,
w(x) = 1. Alternatively, w could be a Gaussian-like function to emphasize the central area of the
window. Under pure translation, the matrix A is constrained to be equal to the identity matrix. In
the following, we first look at the unconstrained problem, which we solve by means of a Newton-
Raphson style iterative search for the optimal values of A = 1 + D and d. The case of pure
translation is then obtained as a specialization.
To minimize the residual (3.1), we differentiate it with respect to the unknown parameters in
the deformation matrix D and the displacement vector d and set the result to zero. This yields
the following two matrix equations:
where
1 Oe
2aD
1 ??
--H !$?[J(Ax+d)?I(x)]gxTwdx=O
--H !jw[J(Ax+d)?I(x)igwdx=o
is the spatial gradient of the image intensity and the superscipt T denotes transposition.
If the image motion
(3.2)
(3.3)
u= Dx+d			(3.4)
could be assumed to be small, the term J(Ax + d) could be approximated by its Taylor series
expansion truncated to the linear term:
J(Ax+d) = J(x)+gT(u)			(3.5)
5
which, combined with equations (3.2) and (3.3) would yield the following systems of equations:
ff?gxT(gTu)wdx = ?fw [1(x) --H J(x)]gxTwdx			(3.6)
ff?g(Ju)wdx = ff?[I(x)?J(x)igwdx			(3.7)
Even when affine motion is a good model, these equations are only approximately satisfied, because
of the linearization of equation (3.5). However, equations (3.6) and (3.7) can be solved iteratively
as follows. Let
D0=1			d0=O			J0=J(x)
be the initial estimates of deformation D and displacement d and the initial intensity function
J(x). At the i-th iteration, equations (3.6) and (3.7) can be solved with J(x) replaced by J??i to
yield the new values
Dj			dj			J?=J??i(A?x+d?)
where Aj = 1 + Dj is the transformation between images Jt--Hi and J?. To make this computation
more explicit, we can write equations (3.6) and (3.7) in a more compact form by factoring out the
unknowns D and d. This yields (see Appendix A) the following linear 6 x 6 system:
where
x22 x2
9x 9x91, X?9z2
X29?91, X291,2 X?9z91,
2			22
X?9? X?9?1, Y9x
T=w XY9z91, Xy91,2 Y29x91,
2			2
x9? X9x91, Y9x
X9?91,			2
X91, y9?91,
is a matrix that can be computed from one image,
Tz = a			(3.8)
dx?
dx1,
d1,1,
d1,
XY9x91, 2
X9x X9x91,
2 2
x?91, X9:91, X91,
2 2
Y 9x91, Y9x Y9x91,
22			2
Y 91, U9:91, Y91,
U9x91,			9x2			9x91,
2			2
?91,			9x91,			91,
wdx
is a vector that collects the unknown entries of the deformation D and displacement d, and
a ffw [1(x) --H J(x)] wdx
:X9?
X91,
?9x
y91,
9x
91,
is an error vector that depends on the difference between the two images.
The symmetric 6 x 6 matrix T can be partitioned as follows:
T=ffw?F ? wdx
z
6
(3.9)
where U is 4 x 4, Z is 2 x 2, and V is 4 x 2.
During tracking, the affine deformation D of the feature window is likely to be small, since
motion between adjacent frames must be small in the first place for tracking to work at all. It is
then safer to set D to the zero matrix. In fact, attempting to determine deformation parameters
in this situation is not only useless but can lead to poor displacement solutions: in fact, the
deformation D and the displacement d interact through the 4 x 2 matrix V of equation (3.9), and
any error in D would cause errors in d. Consequently, when the goal is to determine d, the smaller
system
Zd = e			(3.10)
should be solved, where e collects the last two entries of the vector a of equation (3.8).
When monitoring features for dissimilarities in their appearance between the first and the
current frame, on the other hand, the full affine motion system (3.8) should be solved. In fact,
motion is now too large to be described well by the pure translation model. Furthermore, in
determining dissimilarity, the whole transformation between the two windows is of interest, and
a precise displacement is less critical, so it is acceptable for D and d to interact to some extent
through the matrix V.
In the next two chapters we discuss these issues in more detail: first we determine when system
(3.10) yields a good displacement measurement (chapter 4) and then we see when equation (3.8)
can be used reliably to monitor a feature's quality (chapter 5).
7
Chapter 4
Texturedness
Regardless of the method used for tracking, not all parts of an image contain motion information.
This has been known ever since the somewhat infelicitous label of aperture problem was attached to
the issue: for instance, only the vertical component of motion can be determined for a horizontal
intensity edge. To overcome this difficulty, researchers have proposed to track corners, or windows
with a high spatial frequency content, or regions where some mix of second-order derivatives is
sufficiently high. However, there are two problems with these "interest operators" First, they are
often based on a preconceived and arbitrary idea of what a good window looks like. In other words,
they are based on the assumption that good features can be defined independently of the method
used for tracking them. The resulting features may be intuitive, but are not guaranteed to be the
best for the tracking algorithm to produce good results. Second, "interest operators" have been
usually defined for the simpler pure translation model of chapter 2, and the underlying concept are
hard to extend to affine motion.
In this report, we propose a more principled definition of feature quality. Rather than intro-
ducing this notion a priori, we base our definition on the method used for tracking: a good window
is one that can be tracked well. With this approach, a window is chosen for tracking only if it is
good enough for the purpose, so that the selection criterion is optimal by construction.
To introduce our definition of a good feature, we turn to equation (3.10), the basic equation to
be solved during tracking. We can track a window from frame to frame if this system represents
good measurements, and if it can be solved reliably. Consequently, the symmetric 2 x 2 matrix Z of
the system must be both above the image noise level and well-conditioned. The noise requirement
implies that both eigenvalues of Z must be large, while the conditioning requirement means that
they cannot differ by several orders of magnitude. Two small eigenvalues mean a roughly constant
intensity profile within a window A large and a small eigenvalue correspond to a unidirectional
texture pattern. Two large eigenvalues can represent corners, salt-and-pepper textures, or any
other pattern that can be tracked reliably.
In practice, when the smaller eigenvalue is sufficiently large to meet the noise criterion, the
matrix Z is usually also well conditioned. This is due to the fact that the intensity variations in a
window are bounded by the maximum allowable pixel value, so that the greater eigenvalue cannot
be arbitrarily large.
As a consequence, if the two eigenvalues of Z are A1 and A2, we accept a window if
min(A1,A2) > A			(4.1)
8
where A is a predefined threshold.
To determine A, we first measure the eigenvalues for images of a region of approximately uniform
brightness, taken with the camera to be used during tracking. This yields a lower bound for A. We
then select a set of various types of features, such as corners and highly textured regions, to obtain
an upper bound for A. In practice, we have found that the two bounds are comfortably separate,
and the value of A, chosen halfway in-between, is not critical.
We illustrate this idea through two extreme cases. The left picture in figure 4.1 is an image
window with a broad horizontal white bar on a black background. The picture on the right shows
the corresponding confidence ellipse defined as the ellipse whose half axes have lengths A1, A2 and
directions given by the corresponding eigenvectors.
Figure 4.1: An image window with a white horizontal bar (left) and the corresponding confidence
ellipse (right).
Because of the aperture problem mentioned above, a horizontal motion of the bar cannot be
detected, and the horizontal axis of the confidence ellipse is correspondingly zero.
The situation is very different in figure 4.2, showing four circular blobs in the image window.
Because motion of this pattern can be detected equally well in all directions, the corresponding
confidence ellipse, shown on the right, is a circle.
O&??MYY\
Figure 4.2: An image window with four circular blobs (left) and the corresponding confidence ellipse
(right)
Similar considerations hold also when solving the full affine motion system (3.8) for the defor-
mation D and displacement d. However, an essential difference must be pointed out: deformations
are used to determine whether the window in the first frame matches that in the current frame
well enough during feature monitoring. Thus, the goal is not to determine deformation per se.
Consequently, it does not matter if one component of deformation (such as horizontal scaling in
figure 4.1) cannot be determined reliably. In fact, this means that that component does not affect
the window substantially, and any value along this component will do in the comparison. In prac-
tice, the system (3.8) can be solved by computing the pseudo-inverse of T. Then, whenever some
component is undetermined, the minimum norm solution is computed, that is, the solution with a
zero deformation along the undetermined component(s).
It is still instructive, however, to consider through some examples the relative size of the eigen-
vectors and eigenvalues of the matrix U in equation (3.9), corresponding to the space of linear
9
deformations of the image window. For instance, a horizontal stretch or shear of the window of
figure 4.1 would pass unnoticed, while a vertical stretch or shear would not. This is illustrated in
figure 4.3: the diagram on the lower left shows the four eigenvalues of the deformation matrix D.
434
Figure 4.3: Effects of a horizontal scaling (top center), horizontal shear (bottom center), vertical
scaling (top right) and vertical shear (bottom right) for the image at the top left. The diagram
shows the eigenvalues of the deformation matrix.
The corresponding eigenvectors are orthogonal directions in the four-dimensional space of defor-
mations (the four entries of D are the parameters of this space). What these directions correspond
to depends on the particular image content. The four right pictures in figure 4.3 show the effects
of a deformation along each of the four eigenvectors for the bar window of figure 4.1, repeated for
convenience at the top left of figure 4.3. The two deformations in the middle of figure 4.3 corre-
spond to the zero eigenvalues, so no change is visible, except for a boundary effect in the figure at
the bottom center. The two corresponding eigenvectors correspond to the deformation matrices
- oloO -			and			oOol -
which represent unit horizontal scaling and shear, respectively. The two image windows on the
right of figure 4.3, on the other hand, represent changes parallel to the eigenvectors corresponding
to the large eigenvalues and to the vertical scaling and shear matrices
- OoOi			and			- OiOo
respectively.
For the blobs of figure 4.2, repeated at the top left of figure 4.4, the situation is quite different.
Here, the four deformation eigenvalues are of comparable size. Overall scaling (top right) is the
direction of maximum confidence (second eigenvalue in the diagram), followed by vertical scaling
(top center, first eigenvalue), a combination ot vertical and horizontal shear (bottom right, fourth
10
1234
Figure 4.4: Effects of a horizontal scaling (top center), horizontal shear (bottom center), vertical
scaling (top right) and vertical shear (bottom right) for the image at the top left. The diagram
shows the eigenvalues of the deformation matrix.
eigenvalue), and rotation (third eigenvalue, bottom center). Because all eigenvalues are high, the
deformation matrix can be computed reliably with the method described in chapter 3.
11
Chapter 5
Dissimilarity
A feature with a high measure of confidence, as defined in the previous chapter, can still be a
bad feature to track. For instance, in an image of a tree, a horizontal twig in the foreground can
intersect a vertical twig in the background. This intersection, however, occurs only in the image,
not in the world, since the two twigs are at different depths. Any selection criterion would pick the
intersection as a good feature to track, and yet there is no real world feature there to speak of. The
problem is that image feature and world feature do not necessarily coincide, and an image window
just does not contain enough information to determine whether an image feature is also a feature
in the world.
The measure of diss?miiar?ty defined in equation (3.1), on the other hand, can often indicate
that something is going wrong. Because of the potentially large number of frames through which a
given feature can be tracked, the dissimilarity measure would not work well with a pure translation
model. To illustrate this, consider figure 5.1, which shows three out of 21 frame details from Woody
Allen's movie, Manhattan.
Figure 5.1: Three frame details from Woody Allen's Manhattan. The details are from the 1st, 11th,
and 21st frames of a subsequence from the movie.
Figure 5.2 shows the results of tracking the traffic sign in this sequence.
Figure 5.2: A window that tracks the traffic sign visible in the sequence of figure 5.1. Frames
1,6,11,16,21 are shown here.
12
While the inter-frame changes are small enough for the pure translation tracker to work, the
cumulative changes over 25 frames are too large. In fact, the size of the sign increases by about
15 percent, and the dissimilarity measure (3.1) increases rather quickly with the frame number, as
shown by the dashed line of figure 5.3.
0.012
0.01
0.006
a
E 0.006
0.004
0.002
Th
0 ? d I I In II
20
Figure 5.3: Pure translation (dashed) and affine motion (solid) dissimilarity measures for the
window sequence of figure 5.2.
The solid line in the same figure, on the other hand, shows the dissimilarity measure when also
deformations are accounted for, that is, if the entire system (3.8) is solved for z. As expected,
this new measure of dissimilarity remains small and roughly constant. Figure 5.4 shows the same
windows as in figure 5.2, but warped by the computed deformations. The deformations make the
five windows virtually equal to each other.
movie where something goes wrong with the
bright, small window on the building in the
through five frames. Notice that in the third
Figure 5.4: The same windows as in figure 5.2, warped by the computed deformation matrices.
Let us now look at a sequence from the same
feature. In figure 5.5, the feature tracked is the
background. Figure 5.6 shows the feature window
frame the traffic sign occludes the original feature.
The circled curves in figure 5.7 are the dissimilarity measures under affine motion (solid) and
pure translation (dashed). The sharp jump in the affine motion curve around frame 4 indicates the
occlusion. After occlusion, the first and current windows are too dissimilar from each other. Figure
5.8 shows that the deformation computation attempts to deform the traffic sign into a window.
13
??`???`.?, J?.?
Figure 5.6: The bright window from figure 5.5, visible as the bright rectangular spot in the first
frame (a), is occluded by the traffic sign (c).
O?2
Oo2?
?o?o15[
oflos?
4
10			12			6			18			20
frame
Figure 5.7: Pure translation (dashed) and affine motion (solid) dissimilarity measures for the
window sequence of figure 5.1 (plusses) and 5.5 (circles).
Figure 5.8: The same windows as in figure 5.6, warped by the computed deformation matrices.
14
Chapter 6
Simulations
In this chapter, we present simulation results to show that if the affine motion model is correct
then the tracking algorithm presented in chapter 3 converges even when the starting point is far
removed from the true solution.
The first series of simulations are run on the four circular blobs we considered in chapter 4
(figure 4.2). The following three motions are considered:
D1 =
D2 =
1.4095			--H0.3420			- 3 -
0.3420 0.5638 , d1 = 0
0.6578			--H0.3420			- 2
0.3420			0.6578			, d2 =			0
0.8090 0.2534			3
D3 --H 0.3423			1.2320			, d3 =			0
To see the effects of these motions, compare the first and last column of figure 6.1. The images
in the first column are the feature windows in the first image (equal for all three simulations in this
series), while the images in the last column are the images warped and translated by the motions
specified above and corrupted with random Gaussian noise with a standard deviation equal to 16
percent of the maximum image intensity. The images in the intermediate columns are the results
of the deformations and translations to which the tracking algorithm subjects the images in the
leftmost column after 4, 8, and 19 iterations, respectively. If the algorithm works correctly, the
images in the fourth column of figure 6.1 should be as similar as possible to those in the fifth
column, which is indeed the case.
A more quantitative idea of the convergence of the tracking algorithm is given by figure 6.2,
which plots the dissimilarity measure, translation error, and deformation error as a function of the
frame number (first three columns), as well as the intermediate displacements and deformations
(last two columns). Deformations are represented in the fifth column of figure 6.2 by two vectors
each, corresponding to the two columns of the transformation matrix A = 1 + D. Displacements
and displacement errors are in pixels, while deformation errors are the Frobenius norms of the
difference between true and computed deformation matrices. Table 6.1 shows the numerical values
of true and computed deformations and translations.
Figure 6.3 shows a similar experiment with a more complex image, the image of a penny
(available in MATLAB). Finally, figure 6.4 shows the result of attempting to match two completely
different images: four blobs (leftmost column) and a cross (rightmost column). The algorithm tries
15
to do its best by rotating the four blobs until they are aligned (fourth column) with the cross, but
the dissimilarity (left plot in the bottom row of figure 6.4) remains high throughout.
Figure 6.1: Original image (leftmost column) and image warped, translated and corrupted by noise
(rightmost column) for three different motions. The intermediate columns are the images in the
leftmost column deformed and translated by 4,8,and 19 iterations of the tracking algorithm.
Simulation			True			Computed			True			Computed
Number			Deformation			Deformation			Translation Translation
1.4095			--H0.3420			1.3930			--H0.3343			- 3			-			- 3.0785
1			0.3420			0.5638			0.3381			0.5691			0			--H0.0007
0.6578			--H0.3420			0.6699			--H0.3432			- 2			-			2.0920
2			0.3420			0.6578			0.3187			0.6605			0			0.0155
0.8090			0.2534			0.8018			0.2350			- 3 -			3.0591
3			0.3423			1.2320			0.3507			1.2274			0			0.0342
Table 6.1: Comparison of true and computed deformations and displacements (in pixels) for the
three simulations illustrated in figures 6.1 and 6.2.
16
0.1
0.05
u
0			10			20
3
1.5
0
0.1			3			1
0.05			1.5			0.5
0			0			0
0			10			20			0			10			20			0			10			20 0
0.1
0.05
0			0			0
0			10			20			0			10			20			0			10			20
0			3
0
Figure 6.2: The first three columns show the dissimilarity, displacement error, and deformation error
as a function of the tracking algorithm's iteration number. The last two columns are displacements
and deformations computed during tracking, starting from zero displacement and deformation.
17
Chapter 7
More Experiments on Real Images
The experiments and simulations of the previous chapters illustrate specific points and issues con-
cerning feature monitoring and tracking. Whether the feature selection and monitoring proposed
in this report are useful, on the other hand, can only be established by more extensive experiments
on more images and larger populations of features. The experiments in this chapter are a step in
that direction.
Figure 7.1: The first frame of a 26 frame sequence taken with a forward moving camera.
Figure 7.1 shows the first frame of a 26-frame sequence. The Pulnix camera is equipped with
a l6mm lens and moves forward 2mm per frame. Because of the forward motion, features loom
larger from frame to frame. The pure translation model is sufficient for inter-frame tracking but not
for a useful feature monitoring, as discussed below. Figure 7.2 displays the 102 features selected
according to the criterion introduced in chapter 4. To limit the number of features and to use
each portion of the image at most once, the constraint was imposed that no two feature windows
can overlap in the first frame. Figure 7.3 shows the dissimilarity of each feature under the pure
translation motion model, that is, with the deformation matrix D set to zero for all features.
This dissimilarity is nearly useless: except for features 58 and 89, all features have comparable
dissimilarities, and no clean discrimination can be drawn between good and bad features.
From figure 7.4 we see that features 58 is at the boundary of the block with a letter U visible in
the lower right-hand side of the figure. The feature window straddles the vertical dark edge of the
19
Figure 7.2: The features selected according to the texturedness criterion of chapter 4.
0.2
0.2
o i?
0.1
0.0?
10
58
89
4i
24 60
20
25
3C
frame
Figure 7.3: Pure translation dissimilarity for the features in figure 7.2. This dissimilarity is nearly
useless for feature discrimination.
20
block in the foreground as well as parts of the letters Cra in the word "Crayola" in the background.
Six frames of this window are visible in the third row of figure 7.5. As the camera moves forward,
the pure translation tracking stays on top of approximately the same part of the image. However,
the gap between the vertical edge in the foreground and the letters in the background widens, and
a deformation of the current window into the window in the first frame becomes harded and harder,
leading to the rising dissimilarity. The changes in feature 89 are seen even more easily. This feature
is between the edge of the book in the background and a lamp partially visible behind it in the top
right corner of figure 7.4. As the camera moves forward, the shape of the glossy reflection on the
lamp shade changes and is more occluded at the same time: see the last row of figure 7.5.
Figure 7.4: Labels of some of the features in figure 7.2.
However, many other features are bad in this frame. For instance, feature 3 in the lower right
of figure 7.4 is affected by a substantial disocclusion of the lettering on the Crayola box by the U
block as the camera moves forward, as well as a slight disocclusion by the "3M" box on the right.
Yet the dissimilarity of feature 3 is not substantially different from that of all the other features
in figure 7.3. This is because the degradation of the dissimilarity caused by the camera's forward
motion is dominant, and reflects in the overall upward trend of the majority of curves in figure 7.3.
Similar considerations hold, for instance, for features 78 (a disocclusion), 24 (an occlusion), and 4
(a disocclusion) labeled in figure 7.4.
Now compare the pure translation dissimilarity of figure 7.3 with the affine motion dissimilarity
of figure 7.6. The thick stripe of curves at the bottom represents all good features, including features
1,21,30,53. From figure 7.4, these four features can be seen to be good, since they are immune from
occlusions or glossy reflections: 1 and 21 are lettering on the "Crayola" box (the second row of
figure 7.5 shows feature 21 as an example), while features 30 and 53 are details of the large title on
the book in the background (upper left in figure 7.4). The bad features 3,4,58,78,89, on the other
hand, stand out very clearly in figure 7.6: discrimination is now possible.
Features 24 and 60 deserve a special discussion, and are plotted with dashed lines in figure 7.6.
These two features are lettering detail on the rubber cement bottle in the lower center of figure
7.4. The fourth row of figure 7.5 shows feature 60 as an example. Although feature 24 has an
additional slight occlusion as the camera moves forward, these two features stand out from the very
beginning, that is, even for very low frame numbers in figure 7.6, and their dissimilarity curves are
very erratic throughout the sequence. This is because of aliasing: from the fourth row of figure 7.5,
21
3
21
58
60
78
89
6			11			16			21			26
Figure 7.5: Six sample features through six sample frames.
0.a-
0.045
0.04
0.035
89
0.03			58
? 0.025
2
a
0.02
0.015			I `			4			-			60
0.01			43
0			S			10			15			20			25			30
frame
Figure 7.6: Affine motion dissimilarity for the features in figure 7.2. Notice the good discrimination
between good and bad features. Dashed plots indicate aliasing (see text).
22
we see that feature 60 (and similarly feature 24) contains very small lettering, of size comparable
to the image's pixel size (the feature window is 25 x 25 pixels). The matching between one frame
and the next is haphazard, because the characters in the lettering are badly aliased. This behavior
is not a problem: erratic dissimilarities indicate trouble, and the corresponding features ought to
be abandoned.
23
Chapter 8
Conclusion
In this report, we have proposed both a method for feature selection and a technique for feature
monitoring during tracking. Selection specifically maximizes the quality of tracking, and is therefore
optimal by construction, as opposed to more ad hoc measures of texturedness. Monitoring is
computationally inexpensive and sound, and makes it possible to discriminate between good and
bad features based on a measure of dissimilarity that uses affine motion as the underlying image
change model.
Of course, monitoring feature dissimilarity does not solve all the problems of tracking. In some
situations, a bright spot on a glossy surface is a bad (that is, nonrigid) feature, but may change
little over a long sequence: dissimilarity may not detect the problem. However, it must be realized
that not everything can be decided locally. For the case in point, rigidity is not a local feature, so
a local method cannot be expected to detect its violation. On the other hand, many problems can
indeed be discovered locally and these are the target of the investigation in this report. The many
illustrative experiments and simulations, as well as the large experiment of chapter 7, show that
monitoring is indeed effective in realistic circumstances. A good discrimination at the beginning of
the processing chain can reduce the remaining bad features to a few outliers, rather than leaving
them an overwhelming majority. Outlier detection techniques at higher levels in the processing
chain are then much more likely to succeed.
24
Bibliography
[Ana89] P. Anandan. A computational framework and an algorithm for the measurement of visual
motion. International Journal of Computer Vision, 2(3):283--H310, January 1989.
[BYX82] P. J. Burt, C. Yen, and X. Xu. Local correlation measures for motion analysis: a com-
parative study. In Proceedings of the IEEE Conference on Pattern Recognition and Image
Processing, pages 269--H274, 1982.
[CL74] D. J. Connor and J. 0. Limb. Properties of frame-difference signals generated by moving
images. IEEE Transactions on Communications, COM-22(10):1564--H1575, October 1974.
[CR76] C. Cafforio and F. Rocca. Methods for measuring small displacements in television images.
IEEE Transactions on Information Theory, IT-22:573--H579, 1976.
[DN81]
[F8?7]
L. Dreschler and H.-H. Nagel. Volumetric model and 3d trajectory of a moving car derived
from monocular tv frame sequences of a street scene. In Proceedings of the International
Joint Conference on Artificial Intelligence, pages 692--H697, Vancouver, Canada, August
1981.
W. Foerstuer. Reliability analysis of parameter estimation in linear models with applica-
tions to mansuration problems in computer vision. Computer Vision, Graphics, and Image
Processing, 40:273--H310, 1987.
[FM91] C. 5. Puh and P. Maragos. Motion displacement estimation using and affine model for
matching. Optical Engineering, 30(7):881--H887, July 1991.
[FP86]
W. Foerstner and A. Pertl. Photogrammetric Standard Methods and Digital Image Match-
ing Techniques for High Precision Surface Measurements. Elsevier Science Publishers,
1986.
[KR8O] L. Kitchen and A. Rosenfeld. Gray-level corner detection. Computer Science Center 887
University of Maryland, College Park, April 1980.
[LK81] B. D. Lucas and T. Kanade. An iterative image registration technique with an application
to stereo vision. In Proceedings of the 7th International Joint Conference on Artificial
Intelligence, 1981.
[M093]
R. Manmatha and John Oliensis. Extracting affine deformations from image patches -
Finding scale and rotation. In Proceedings of the IEEE Conference on Computer Vision
and Pattern Recognition, pages 754--H755, 1993.
[Mor80] H. Moravec. Obstacle avoidance and navigation in the real world by a seeing robot rover.
PhD thesis, Stanford University, September 1980.
25
[MPU79] D. Marr, T. Poggio, and S. Uliman. Bandpass channels, zero-crossings, and early visual
information processing. Journal of the Optical Societ? of America, 69:914--H916,1979.
[OK92] M. Okutomi and T. Kanade. A locally adaptive window for signal matching. International
Journal of Computer Vision, 7(2):143--H162, January 1992.
[RGH8O] T. W. Ryan, R. T. Gray, and B. R. Hunt. Prediction of correlation errors in stereo-pair
images. Optical Engineering, 19(3):312--H322, 1980.
[TH86] Q. Tian and M. N. Huhns. Algoritlims for subpixel registration. Computer Vision, Graph-
ics, and Image Processing, 35:220--H233, 1986.
[Van92] C. Van Loan. Computational Frameworks for the Fast Fourier Transform. Prontiers in
Applied Mathematics. SlAM, Philadelphia, PA, 1992.
[Woo83] G. A. Wood. Realities of automatic correlation problem. Photogrammetric Engineering
and Remote Sensing, 49:537--H538, April 1983.
26
Appendix A
Derivation of the Tracking Equation
In this appendix, we derive the basic tracking equation (3.8) by rewriting equations (3.6) and (3.7)
in a matrix form that clearly separates unknowns from known parameters. The necessary algebraic
manipulation can be done cleanly by using the Kronecker product defined as follows [Van92]. If A
is a p x q matrix and B is m x n, then the Kronecker product A ? B is the p x q block matrix
a11B ... aiqB -
a?1B `. apqB -
of size pm X qn. For any p x q matrix A, let now v(A) be a vector collecting the entries of A in
column-major order:
all
a21
v(A) =
apq
so in particular for a vector or a scalar xwe have v(x) = x). Given three matrices A,X,B for which
the product AXB is defined, the following two equalities are then easily verified:
AToBT
v(AXB)
=			(A?B)T
=			(BT 0 A)v(X).			(A.2)
The last equality allows us to "pull out" the unknowns D and d from equations (3.6) and (3.7).
The scalar term gTu appears in both equations (3.6) and (3.7). By using the identities (A.1),
(A.2), and definition 3.4, we can write
T? =
g
--H gT?x+gT?
= t,(gTDx) + gTd
= (xT 0 gT)v(D) + gTd
= (x 0 g)Tv(D) + gT?
Similarly, the vectorized version of the 2 x 2 matrix gxT that appears in equation (3.6) is
v(g?T) = v(glxT)
= xog
27
We can now vectorize matrix equation (3.6) into the following vector equation:
(11w U(x)wdx) v(D) + (1 1wV(x)wdx) d =11wb(x)wdx
where the rank 1 matrices U and V and the vector b are defined as follows:
U(x) = (xQg)(x?g)T
V(x) = (x?g)gT
b(x) = [I(x)?J(x)]v(gxT)
Similarly, equation (3.7) can be written as
(11wVT(x)wdx) v(D) + (11wz(x)wdx) d = l1wC(X)WdX
where V has been defined above and the rank 1 matrix Z and the vector c are defined as follows:
Z(x) = ggT
c(x) = [I(x)--HJ(x)jg
Equations (A.3) and (A.4) can be summarized by introducing the symmetric 6 x 6 matrix
T = llw?? ? wdx
z
x2g? X29x9y XY9z2 XYOx91, X9x2 9:91,
29?91, 291,2 XY9:91, X?91,2 X9:9? 91,2
2			22 2			2
XU9x X?9:91, Y 9: Y 9:9? U9: ?9:9i,
2 2			22			2
Xy91, y 9:9i, Y 91, Y9:91, Y91,
2			2			2
9:			9:9?			?9:			Y9:91,			9:			9:9?
9:9? 91,2 Y9:91, y91,2 9:9? 91,2
=ffw			w dx,
the 6 x 1 vector of unknowns
z - -
d
and the 6 x 1 vector
a = 11w bc wdx
9:
91,
y91,
9:
91,
--H 11w[I(x)?J(x)] wdx
With this notation, the basic step of the iterative procedure for the computation of affine
deformation D and translation d is the solution of the following linear 6 x 6 system:
Tz = a
28
