2.2 Matching
The recognition consists in establishing an isomor-
phism between the 3D graph from the database and
the 2D graph obtained from the image. The prob-
lem is to establish a good quality measure for graph
matching. In our application, this task is difficult be-
cause the measure has to evaluate the similarity de-
gree between similar structures of two sub-graphs,
in order to manage the occlusion, shadow problems.
Therefore, it has to allow, in the recognition step, to
quickly choose the best model from the database (line
4 in figure 2) and also to perform a one to one node
matching, in order to locate and validate this hypoth-
esis (lines 5 to 12 in figure 2).
After studying several graph matching algorithms,
we implemented an isomorphism-based method us-
ing the topological signatures of each node. This
approach was used by Shokoufandeh (Shokoufandeh
and Dickinson, 1999), Siddiqi (Siddiqi et al., 1999)
and Macrini (Macrini et al., 2002) to match two shock
graphs. We introduced several modifications on this
method in order to obtain a robust matching algorithm
at the final nodes level and also to carry out the nodes
”polygamy” i.e. a node can be matched at the same
time with several nodes.
In order to topologically describe a tree we used
graphs eigenspaces. We remember that each graph
can be represented as a adjacency matrix of {0, 1}.
The values 1 give adjacent nodes of the graph (and
0 on the diagonal). The eigenvalues (EV) of the adja-
cency matrix of the graph store some significant struc-
tural properties of the graph (tree).
Explicitly, let T be a tree of maximum degree
∆ (T ) and T
1
, T
2
. . . , T
s
the sub-trees of its root. For
each sub-tree T
i
, the degree of its root is δ (T
i
). To
calculate this signature, we compute the eigenvalues
of each adjacency matrix of each sub-tree T
i
. Let S
i
be the sum of δ (T
i
) eigen values of T
i
. Then the
ordered elements S
i
, become the components of the
vector χ of dimension ∆ (T ) called topological sig-
nature and assigned to the tree’s root. If the elements
number S
i
is lower than ∆ (T ), then the vector is
filled with 0. This method is recursively repeated in
order to assign a vector to each node of the tree.
As we already mentioned, a trees isomorphism can
not exist between the image skeleton and the model
skeleton because of the occlusions or/and the noise.
The solution consists in finding a maximal cardinal-
ity and minimal weight matching in a bipartite graph
covering the nodes of the two skeletons. The bipartite
graph is a graph where each edge is pondered by the
topological distance.
We remember that our algorithm allows in a first
time to index the object’s skeleton in a database -
which corresponds to the recognition step. In a sec-
ond time, it allow a one-by-one matching of the nodes
needed in the localization and verification step.
2.3 Projection and Verification
In the precedent step, due to the noise, there are sev-
eral matching hypothesis. To verify a hypothesis va-
lidity we will estimate the rigid transformation be-
tween the recognized (presumed) model and the cam-
era. The model projection on the image allows to ac-
cept or reject this hypothesis. Each matched couple
corresponds to a segment couple, one of the 2D skele-
ton and the other of the 3D curvilinear skeleton. We
project the primitives of the 3D object model on the
image plane. If the projected primitives do not co-
incide with the image primitives, according to a pre-
established threshold, then the hypothesis is rejected
and we treat the next hypothesis and so forth. If the
points of the 3D skeleton projected on the image do
not coincide with the points of the 2D skeleton, then
the object is not recognized.
This verification module is based on the measure-
ment of this error (1) which is the distance in the
image (in pixels) between, each time, a 2D skeleton
point and a 3D skeleton point projected on the image.
error =
v
u
u
t
1
N
N
X
i=1
(ˆu
i
− u
i
)
2
+ (ˆv
i
− v
i
)
2
(1)
Where : N is the number of matching points,
(u
i
, v
i
) the coordinates of a point image,
(ˆu
i
, ˆv
i
) estimation of the object’s point after
projection on the image plane.
The 3D pose estimation consists in finding the
rigid transformation (R, T ) minimising some calcu-
lated error (as the sum of error squares) of the one of
two collinearity equations (in the image space or in
the object space). The two methods generally used
to solve this problem are the Gauss-Newton and the
Levenberg-Marquardt methods (Lowe, 1991).
We used the method of Lu and al(Lu et al., 2000)
named Orthogonal Iteration (OI) algorithm. Contrary
to classical methods, used to solve the optimisation
problems on the whole, the OI algorithm cleverly ex-
ploits the specifical structure of the 3D pose estima-
tion problem.
To estimate the object’s pose, this algorithm uses
an appropriated error function defined in the object’s
space. The error function is rewrited in order to accept
an iteration based on the classical solution of the 3D
pose estimation problem, called absolute orientation
problem.
This algorithm gives exact results and converges
quickly enough, therefore it is very interesting for
real-time applications.
The figures 6 and 7 present some initialization re-
sults. On each figure, from left to right, there are the
TOWARD 3D FREE FORM OBJECT TRACKING USING SKELETON
77