Laboratory of Computer Science, Military Polytechnic School, BP 17, Bordj-El-Bahri, Algiers 16111, Algeria
Abstract
The main aim of this paper is to describe an inter-minutiae binary network-based global matching algorithm. It exploits absolute minutiae features represented by a binary constraint graph. A dynamic tolerance area in the neighborhood of the minutiae combined with the search-rearrangement method on the binary constraint graph is used to perform the global matching. Tests on the public fingerprint databases DB1 and DB2 FVC2002 showed that our approach outperforms those based on the forward tracking search only. The most relevant aspect of this algorithm is that it does not require implicit alignment of the two fingerprint images due to the strong dependencies between minutiae described by the constraint graph.
1. Introduction
During the last two decades, several
automatic biometric systems have been designed to meet new requirements in
civilian applications. Recall that fingerprints have been used for many
centuries as a means
for identifying people and many fingerprint matching approaches were reported in
literature. They can be broadly classified into two categories: structural
feature-based matching [1–4], which is the most popular and widely used, and image-based
matching [5–7]. Both approaches are based on two major fingerprint matching principles: global and
local minutiae matchings,
which use the implicit or the explicit alignment step simultaneously with the
classical features as absolute position, direction, ridge counts, and type of
minutiae. For the prealignment phase, some authors avoid fingerprint alignment
[8] by introducing an intrinsic coordinate system according to a portioned
regular region defined by the orientation field. However, this approach has
some limits such as reliably partitioning the fingerprint into regular regions
and unambiguously defining intrinsic coordinate axes in poor-quality fingerprint
images [9].
The first matching principle
is based on the alignment of all minutiae points at a time. However, this is only an approximation since
two fingerprint features belonging to the same person are often related by a
nonlinear transformation [9]. This matching uses two main approaches: absolute
prealignment (explicit alignment) to find the point correspondences and the
optimal minutiae alignment [10, 11] and relative prealignment (implicit
alignment) which consists in explicitly aligning one or more corresponding points
(minutiae or singular points) generally based on a generalized Hough transform [12].
On the other hand, the second matching technique attempts to match minutiae occurring
within a small local area [13–18]. These approaches are robust to nonlinear
distortion due to graph-based matching. The approach described by Chikkerur et
al. [17] uses what they called K-plet representation to encode local
neighborhood of a minutiae. Their method is based on dynamic programming to
obtain candidate star pairs
followed by a consolidation of the local matches based on a novel coupled breadth
first search (BFS) algorithm.
It propagates the local matches simultaneously in both fingerprints to ensure a
reliably matching of all minutiae. The
accuracy of this method depends critically on the way this local matching is started; while the approach proposed in [18] matches
two fingerprints by solving a minimum cost flow problem.
These local matching
algorithms have a high accuracy and efficiency to nonlinear deformation
compared to global matching ones. For
the latter, there has been several attempts to improve the matching process by
using the elastic distortions model [13, 19–21]. Kovâcs-Vajna [13] have used a triangular matching approach for the large
deformations and demonstrated that small local distortions can result in large
global deformations. The method proposed in [19] uses the thin plate spline (TPS)
model to align each pair from different fingerprint impressions. Ross et al. [20] also introduce the average
deformation using the TPS model which is based on minutiae pair alignment for
several impressions of the same finger to improve the alignment minutiae points.
They have mentioned that the incorporation of the finger-specific deformation
model in the matching process shows the good performance compared to the
conventional approaches. On the other hand, Jea and Govindaraju [21] propose
the tolerance range errors (distance, orientation) according to the
interminutiae distance values. These tolerance areas are defined by thresholds
that vary with the length of the interminutiae line segment. They asserted that
these tolerances provide robustness against spatial distortions.
In this paper, we address a new minutiae-link-based
matching algorithm for fingerprint recognition without need for a prealignment
step. This algorithm rests upon a new
representation which is
described through an interminutiae relational network using a binary
constraint graph. The interminutiae constraint
network is constructed from the fingerprint enrollment via the number of ridges
crossed by the straight line segment connecting two minutiae and the two angles
formed by their orientations and this line, respectively. Hence, with this representation,
the minutiae features become invariant to geometric transformations, which
allows to avoid prealignment in our matching algorithm. The global matching
uses the search-rearrangement heuristic to check constraints between the
matched minutiae by applying dynamic tolerance area. Furthermore, we have used
two types of tolerance errors: the fixed and adaptive thresholds. Some
experimental results are presented to demonstrate significant improvements in
fingerprint matching accuracy on the two public fingerprint databases DB1 and
DB2 [9].
The breakdown of the paper is as follows.
We describe fingerprint features extraction in Section 2. Section 3 provides our fingerprint
constraint graph representation. The matching process via minutiae
correspondence computation and the binary constraints checking is presented in Section
4. Experiments carried out in this paper are reported in Section 5. Finally, a conclusion is drawn
in Section 6.
2. Fingerprint Features
For convenience, we use the minutia orientation
redefinition introduced in our paper [10] and extract the conventional
interminutiae ridge counts [14, 15]. Besides, we introduce two new features that
we called relative interminutiae angles (noted as
and
). These angles are formed by
the straight line segment connecting two minutiae (
,
) and the two angles formed by this line and their
orientations, respectively. As shown on Figure 1(a), each relative interminutiae
angle is obtained considering the anticlockwise sense. It is worth to note that
this representation is completely different from that described in [18] since they
use the angle formed by the straight line segment connecting two minutiae (
,
) and the x-axis.
Figure 1: Relative interminutiae
angles.
Figure 1(b) illustrates the main difference between the two representations. It is
easily noticeable that for [18] we can obtain the same angle (
)
between
and
for two different
fingerprints, but in our representation, relative interminutiae
angles
and
are completely different in two fingerprint images.
3. Interminutiae Binary Constraint Graph
In our matching algorithm,
the fingerprint features are represented by the interminutiae constraint
network. The main idea of our approach is to connect the minutiae features
throughout the links, which will be governed by constraints. Thus, we define a new
representation for fingerprint features using constraint network between all
minutiae (binary constraint graph) to represent these links.
The
binary interminutiae constraint graph consists of a set of minutiae
(variables)
with respective features
(domains) and a set of binary constraints. The binary constraint graph
for interminutiae relations is the undirected
graph, where V is the set of variables which are represented by the
minutiae and E is the set of edges, where each edge corresponds to a binary constraint C which describes the link between two minutiae (a minutiae pair).
Let
be the minutiae list extracted from the
fingerprint image. Formally, the interminutiae constraint network is defined as follows:(i)a set of n minutiae (variables):
,(ii)for each minutia
, a domain
of
values
,
exists, where
are previously computed by
the preceding features (ridge counts and the relative angles) between the minutia
and the other
minutiae
, for
,(iii)for each
pair of the minutiae
,
, a binary
constraint
,
which is a subset of
, exists. In our
representation, every constraint takes the two features at the same time. On
the other hand, each binary constraint is as follows:
(1)(iv)for each
minutia
, the constraint relation
is defined to describe the
relation between minutia
and the other ones as follows:
(2)
In the enrollment phase, the relational network for
each minutia
is computed from the features (Euclidean
distance, ridge counts, and relative interminutiae angles) between this
minutia and other minutiae
, for
and the
fingerprint template is generated
by the global
interminutiae constraint graph which represents the minutiae
relational network as shown in Figure 2. Let us note that for each minutiae
pair (
,
), we have
.
Figure 2: The enrollment process.
4. Binary Constraint Graph Matching
In this section, we
introduce our global constraint matching algorithm which is used to find
corresponding minutiae
pairs of two fingerprints. There are two steps to match the interminutiae
binary constraint graph. The first one is to compute minutiae pairing (the set
of split matched minutiae). The second one is to compute the global binary
constraints checking between matched minutiae from the split sets.
4.1. The Minutiae Pairing
The minutiae pairing allows
identifying corresponding minutiae pairs from two constraint graphs. Let
and
be the minutiae
lists extracted from template and input fingerprints and let
and
be their constraint graphs, respectively. The minutiae
pairing for two constraint graphs is described into the two following stages. First, we match vertices
(minutiae belonging to the template and the input fingerprints). The matching function
considered here is multivalent, that is, each minutia of the input fingerprint
constraint graph is matched with a possibly empty set of minutiae of the
template constraint graph. More formally, a matching of two constraint graphs
and
is a set
which contains every pair
such that the minutiae
is matched with the minutiae
. We now describe how two
minutiae are matched.
Let
and
be the minutiae
and
domains.For the
relative interminutiae angles tolerance, we define the adjustable (adaptive)
angles according to the relative interminutiae angle formed by the three straight
line segments connecting two minutiae (
,
) and the angle errors formed by these lines
and their orientations, respectively, as follows:
(3)
This adjustment overcomes the small non-linear
deformation present in fingerprint image pairs, minutia orientation and
localization error as illustrated in Figure 3.
Figure 3: The relative interminutiae angle error range.
Then the minutia
is matched with minutia
if
and
that respect the following conditions:
(4)
(5)
Given a minutia
segment, we compute the possible interminutiae angles at localization
errors (
and
) of each minutia according to minutia
orientation errors (
and
).
indicates the relative interminutiae
angle between the lines (
) and (
). In
our approach, the minutia localization error is ±15 pixels and the orientation
error is ±15 degrees.
However, the large
distortions (Figure 4) influence not only the minutiae ridge counts angles but
also the ridge counts. Using the ridge count or distance in this case, the
matching result is usually negative. Some authors have made recourse to the average
deformation model as described in [20] to overcome these large distortions.
This model permits to predistort minutiae points before matching process but
the model required registration stage. Hence, in our approach, we have proposed
strong constraint (see (4)) to compare ridge counts values. This latter allows matching
each two minutiae according to the other nearest neighbor minutiae and the distortion
influences this constraint for the long distance between minutiae.
Figure 4: Due to the nonlinear distortions, the
minutiae pairing is not accurate: ridge counts errors.
In the second stage, we also have to identify the set of split matched minutiae, that
is, the set of minutiae that are matched to more than one minutia. So, each
minutia
from the input fingerprints is associated
with the set
of its matched minutiae from the template fingerprint:
(6)
4.2. The Binary Constraint Checking
Once a set of split
minutiae is computed, the next phase is to check the global constraints
consistency for the matched minutiae. A state of the constraint graph matching problem
is defined by an assignment of template minutiae to some or all of the input
minutiae belonging to the set of split matched minutiae. An assignment that
does not violate any constraint is called a consistent or legal consistent
assignment. A complete assignment is one in which every minutia belonging to
the input fingerprint is mentioned. Therefore, an assignment
exists, where
, 
, is consistent if the constraint
for
each matched minutiae pair
is satisfied.
The backtracking search is
used for the constraints checking that chooses a minutia
from the set
for one minutia
at a time and backtracks when the minutia
has no constraint consistency to the other
minutiae belonging to
for
. We have chosen the
backtracking search because the variable ordering and the value selection
heuristics help significantly and the search may be systematic. Moreover, in
some cases, this
algorithm with search-rearrangement heuristics is more efficient solving due to specific solvers
such as prolog that we have exploited in our approach. Part of the search tree for
the global constraint checking is shown in Figure 5, where we have assigned the
matched minutiae from input fingerprint in the order
, where
represents the set of split matched minutiae
cardinality.
Figure 5: Part of the search tree for the global
constraint checking.
The backtracking search algorithm is described in the following
way:
We now proceed to give the
complexity of our global matching algorithm. Assume that the domain size for
each variable (each minutia
from the set
computed from the template fingerprint) is d. The overall time-complexity
of our backtracking search algorithm is widely considered to be
such that n represents the matched minutiae from the input fingerprint for the interminutiae
constraint graph. So, we express the
time-complexity
of our backtracking search
algorithm by the
number of partial
solutions generated by the algorithm. This is a valid
representation
because the time complexity
can be represented as the
number of partial
solutions multiplied by a
polynomial factor which is
ignored by the
notation.
4.3. The Score Matching
A matching score for fingerprint features establishes
a correspondence between the input constraint graph and all the graphs of the template
database set. So, after the global constraints checking has been verified, a
match score is computed based on the number of corresponding minutiae in the assignment
sets. Otherwise,
the match score represents the depth of the tree constructed from backtracking search
which is the maximal cardinality of assignment sets. Let
for
be the
assignment sets computed from the backtracking search algorithm. Then, the
match score is
(7) where
are the cardinality of the assignment sets.
Our backtracking search does not specify explicitly the order of the minutiae to be
assigned. Experiments and analysis by several researchers show that the
ordering in which variables are chosen for instantiation can have substantial
impact on the complexity of backtracking search [22]. This job is done by
ordering heuristics. Several heuristics have been developed and analyzed for
selecting variable ordering. The simplest and the most successful ordering heuristic is called search-rearrangement
method or Fail-Fist [24]. Therefore, we choose the minutiae with the
fewest possible remaining alternatives (smallest set of split matched minutiae)
and they are selected
for instantiation at each step in the tree search. Thus, the order of minutia
instantiation is, in general, different in different branches of the tree and
is determined dynamically, that is, the implementation requires maintaining
split set of each minutia which is updated dynamically when matched minutiae
are removed or restored. The optimizing problem for matched minutiae consistency
checking is to determine an order in which to perform the tests, which
minimizes the expected number of tests performed. So, the selection of the
matched minutiae (instruction: matched_minutia
) in the backtracking algorithm will be replaced by the selection of the minimal element among the split
sets by choosing the minutia
withthefewest values
(the smallest set
of its matched minutiae from the template
fingerprint). The second choose is to try the values (matched minutia of
) according to the minimal ridge counts
values. This last order allows to favor a local matching
by choosing at each step the closest neighbors of the minutia
.
5. Experimental Results
The tests were
performed by our proposed fingerprint matching algorithm. Therefore, we show
the experimental results in both verification and identification modes. The
experimental fingerprints databases came from the publicly available DB1-a and
DB2-a extracted from the Fingerprint Verification Competition (FVC2002) [9]. This
gave a total of
distinct fingerprint images for each database. Besides, all experiments
discussed in this section are conducted on a Pentium IV 3,2 GHz.
When verification or identification process is necessary, the binary constraint
graph is extracted from the user’s presented finger, and it is compared to the binary
constraint graphs (templates) in the database, as illustrated by the system flowchart
in Figure 6.
Figure 6: Search in a template fingerprint database.
5.1. Verification Mode
For the evaluation of our fingerprint verification algorithm, we adopt the equal
error rate (EER) that is an important indicator rate when the false acceptance
rate (FAR) and thefalse rejection rate (FRR) are identical. For FAR, the total number of
tests is (
)/2 = 4950 and for FRR, the total number of tests is
(
)/
= 2800. Then, the EER reported from the test are 2.31% on DB1-a and
1.42% on DB2-a as illustrated by Figure 7.
So, we have a false rejection rate,
% at false acceptance rate
FAR = 0%.
Figure 7: The ROC curves on DB1-a and DB2-a.
Compared
with the approach proposed in [18] on the database DB2-a, we can see that when 7% ≤ FAR ≤ 10%, our system achieves a lower FRR, while their approach
achieves a lower FRR for FAR ≤ 7%.
Moreover, the two methods all have high speed matching with small EERs 1.06%
and 1.31% using our minutiae extraction module as illustrated in Figure 8. In
addition, their algorithms have been developed by implementing the exact graph
matching using the minimum cost flow method and the NN approach. In contrary,
we have used inexact matching in our approach. Thus, the two approaches are
suitable for common applications with lower security requirements. Finally, the
weakness of our approach lies in the failure of the strong constraint (rigid
tolerance) on ridge count comparison particularly in the case when we have the
ridge count number with long distance between minutiae and for the deformable
images when we have large distortions. However, our method depends
on many implementation parameters to calculate these dynamic tolerances.
Figure 8: A comparison of ROC curves for DB2-a.
Table 1 shows the average computational time
cost of our interminutiae graph matching and the rank of our approach compared
to the results obtained by the different algorithms presented to the FVC2002 [26]
competition from the same bases (according to the criteria: EER, average enrollment
time, and average matching time). All times discussed in this section are
conducted on a Pentium IV 3.2 GHz. According to the ranking rule in terms of
EER, our constraint graph matching algorithm is in the first 15 and 12 places
on DB1-a and DB2-a, respectively. However, in terms of computational time cost,
we got less classified places.
Table 1: Ranking of our approach on DB1-a and DB2-a databases of the top 31 participants in FVC2002.
5.2. Identification Mode
In order to evaluate our constraint graph matching algorithm in the identification
case, we report our results according to the following matching protocol. We
have used 100 distinct fingerprint images as the reference base and the set of
the 700 remaining fingerprints as the test base. The probability of correct
identification at rank n means that the probability of the correct match
is somewhere in the top n matching scores. A cumulative match characteristic
(CMC) is used to show the probability of identification for numerous
(inclusive) ranks [26]. The probability of identification achieved on DB1-a and
DB2-a are shown in Table 2. Each CMC curve is estimated on the experimental databases
DB1-a and DB2-a as shown in Figure 9. Comparison between CMCs shows that our constraint
matching algorithm improves greatly the identification performance on DB2-a
database with an identification probability of 0.95.
Table 2: The probability of identification on DB1-a and DB2-a.
Figure 9: The CMC curves on DB1-a
and DB2-a.
5.3. Heuristic Speed Improvements
All experiments discussed in the preceding sections are conducted using the
backtracking search algorithm without specifying explicitly the order of the
selection of minutiae to be assigned neither for the minutiae of the input
fingerprint nor for that of template. However, another issue is the proposed
rearrangement method (the order in which the matched minutiae from the input
fingerprint are considered for instantiations and the order of the ridge count values).
For our constraint graph matching problem, three heuristics have been tested.(i)Variables ordering:given
the sets of matched minutiae from the input fingerprint, we have tried these
sets according to the ascending order of their cardinality (split cardinality).(ii)Domains ordering: given a matched
minutia, how to order the ridge count values to try. So, we adopt the same
strategy by ordering
the matched minutiae from the template fingerprint.(iii)Variables and domains
ordering: the combination of the two preceding strategies.
We experimentally show in Table 3 that the search-rearrangement heuristics led to an improvement about
three kinds of the matched minutiae orders for the identification mode on DB1-a
and DB2-a. It can be seen that the average matching times reported from the
test are 1.094760s on DB1-a and 0.894714s on DB2-a according to the ordered
minutiae extracted from the input fingerprints, respectively. In addition, the
matching time was also improved by the domains tries. But the combination of
the two heuristics
improved considerably the total time for all databases as indicated in Table 3.
Table 3: The average matching time using search-rearrangement method.
Therefore, we show the efficiency of this search-rearrangement heuristic in our approach by choosing a good minutia ordering or a good order
for the instantiation of different values (minutiae matching from the template
fingerprint) of a given minutia. However, with these search-rearrangement
heuristics, we got first to
classify place in terms of computational time cost. Thus, the
search-rearrangement heuristics can solve the critical problem of the minutia
choice in local matching proposed in approach [18] because the accuracy of their
approach depends critically on the way this local matching is started.
6. Conclusion
In this work, we have
presented a fingerprint recognition system that uses the globally minutiae-based
matching which is based on the constraint satisfaction problem resolution.
Experiments indicate that the search-rearrangement method is successful enough
for the fingerprint binary constraint graph matching and performs much better
than a purely backtracking search. The main advantage of our matching process is that it does not
require an implicit alignment of two fingerprint images compared to the
previous. In the near future, we will use the tree-structured local minutiae
matching for the global constraint graph matching decomposition problem.
References
- A. K. Jain, L. Hong, S. Pankanti, and R. Bolle, “An identity-authentication system using fingerprints,” Proceedings of the IEEE, vol. 85, no. 9, 1365 pages, 1997.
- M. Tico and P. Kuosmanen, “Fingerprint matching using an orientation-based minutia descriptor,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 25, no. 8, 1009 pages, 2003.
- A. Lumini and L. Nanni, “Two-class fingerprint matcher,” Pattern Recognition, vol. 39, no. 4, 714 pages, 2006.
- J. Qi, S. Yang, and Y. Wang, “Fingerprint matching combining the global orientation field with minutia,” Pattern Recognition Letters, vol. 26, no. 15, 2424 pages, 2005.
- K. A. Nagaty, “An adaptive hybrid energy-based fingerprint matching technique,” Image and Vision Computing, vol. 23, no. 5, 491 pages, 2005.
- A. K. Jain, S. Prabhakar, L. Hong, and S. Pankanti, “Fingercode: a filterbank for fingerprint representation and matching,” in Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR '99), vol. 2, p. 187, Fort Collins, Colo, USA, June 1999.
- A. Ross, A. Jain, and J. Reisman, “A hybrid fingerprint matcher,” Pattern Recognition, vol. 36, no. 7, 1661 pages, 2003.
- A. M. Bazen and S. H. Gerez, “An intrinsic coordinate system for fingerprint matching,” in Proceedings of the 3rd International Conference on Audio and Video-Based Biometric Person Authentifcation (AVBPA '01), p. 198, Halmstad, Sweden, June 2001.
- D. Maltoni, D. Maio, A. K. Jain, and S. Prabhakar, Handbook of Fingerprint Recognition, Sringer, New York, NY, USA, 2003.
- F. Benhammadi, M. N. Amirouche, H. Hentous, K. Bey Beghdad, and M. Aissani, “Fingerprint matching from minutiae texture maps,” Pattern Recognition, vol. 40, no. 1, 189 pages, 2007.
- J. Qi and Y. Wang, “A robust fingerprint matching method,” Pattern Recognition, vol. 38, no. 10, 1665 pages, 2005.
- N. K. Ratha, S. Chen, and A. K. Jain, “Adaptive flow orientation-based feature extraction in fingerprint images,” Pattern Recognition, vol. 28, no. 11, 1657 pages, 1995.
- Z. M. Kovâcs-Vajna, “A fingerprint verification system based on triangular matching and dynamic time warping,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, 1266 pages, 2000.
- X. Jiang and W. Y. Yau, “Fingerprint minutiae matching based on the local and global structures,” in Porceeding of the 15th International Conference on Pattern Recognition (ICPR '00), vol. 2, p. 1042, Barcelona, Spain, September 2000.
- S. N. Pradeep, M. D. Jain, R. Balasubramanian, and R. Bhargava, “Local and global tree graph structures for fingerprint verification,” in Proceedings of the 24th IASTED International Conference on Signal Processing, Pattern Recognition, and Applications (SPPRA '06), p. 287, Innsbruck, Austria, February 2006.
- H. Wei, Z. Ou, and J. Zhang, “Fingerprint identification based on ridge lines and graph matching,” in Proceedings of the World Congress on Intelligent Control and Automation (WCICA '06), vol. 2, p. 9965, Dalian, China, June 2006.
- S. Chikkerur, V. Govindaraju, and A. N. Cartwright, “K-plet and coupled BFS: a graph based fingerprint representation and matching algorithm,” in Proceedings of the International Conference on Biometrics (ICB '06), p. 309, Hong Kong, January 2006.
- T. Jea, Minutiae based partial fingerprint recognition, Ph.D. thesis, University at Buffalo, New York, NY, USA, 2005, http://www.cedar.buffalo.edu/~govind/Alan_Thesis.pdf.
- A. M. Bazen and S. H. Gerez, “Fingerprint matching by thin-plate spline modeling of elastic deformations,” Pattern Recognition, vol. 36, no. 8, 1859 pages, 2003.
- A. Ross, S. Dass, and A. Jain, “A deformable model for fingerprint matching,” Pattern Recognition, vol. 38, no. 1, 95 pages, 2005.
- T. Jea and V. Govindaraju, “A minutia-based partial fingerprint recognition system,” Pattern Recognition, vol. 38, no. 10, 1672 pages, 2005.
- R. Zabih and D. McAllester, “A rearrangement search strategy for determining propositional satisfiability,” in Proceedings of the 7th National Conference on Artificial Intelligence (AAAI '88), p. 155, St. Paul, Minn, USA, August 1988.
- R. M. Haralick and G. L. Elliott, “Increasing tree search efficiency for constraint satisfaction problems,” Artificial Intelligence, vol. 14, no. 3, 263 pages, 1980.
- P. Purdom, “Search rearrangement backtracking and polynomial average time,” Artificial Intelligence, vol. 21, no. 1-2, 117 pages, 1983.
- D. Maio, D. Maltoni, R. Cappelli, J. L. Wayman, and A. K. Jain, “FVC2002: second fingerprint verification competition,” in Proceedings of the 16th International Conference on Pattern Recognition, vol. 3, p. 811, Quebec, Canada, August 2002.
- P. J. Phillips, H. Moon, S. A. Rizvi, and P. J. Rauss, “The FERET evaluation methodology for face-recognition algorithms,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 10, 1090 pages, 2000.