Integral Curvature Representation and Matching Algorithms for Identification of Dolphins and Whales
Hendrik J. Weideman Zachary M. Jablons Jason Holmberg Kiirsten Flynn John Calambokidis Reny B. Tyson Jason B. Allen Randall S. Wells Krista Hupman Kim Urian Charles V. Stewart






1]Hendrik J. Weideman
1]Zachary M. Jablons
2]Jason Holmberg
3]Kiirsten Flynn
3]John Calambokidis
4]Reny B. Tyson
4]Jason B. Allen
4]Randall S. Wells
5]Krista Hupman
6]Kim Urian
1]Charles V. Stewart
[1]Rensselaer Polytechnic Institute
[2]WildMe
[3]Cascadia Research Collective
[4]Chicago Zoological Society's Sarasota Dolphin Research Program, c/o
Mote Marine Laboratory
[5]Massey University

affilsepx

[6]Duke University Marine Laboratory
[1]{weideh,jabloz2,stewart}@rpi.edu
affilsepx 
[2]holmbergius@gmail.com
[3]{kflynn,calambokidis}@cascadiaresearch.org
[4]{rtyson,allenjb,rwells}@mote.org
[5]k.rankmore@massey.ac.nz
[6]kim.urian@gmail.com

Integral Curvature Representation and Matching Algorithms
 for
Identification of Dolphins and Whales
    [
    December 30, 2023
====================================================================================================

empty




  We address the problem of identifying individual cetaceans from images
  showing the trailing edge of their fins.  Given the trailing edge from an
  unknown individual, we produce a ranking of known individuals from a
  database.  The nicks and notches along the trailing edge define an
  individual's unique signature.  We define a representation based on integral
  curvature that is robust to changes in viewpoint and pose, and captures the
  pattern of nicks and notches in a local neighborhood at multiple scales.  We
  explore two ranking methods that use this representation.  The first uses a
  dynamic programming time-warping algorithm to align two representations, and
  interprets the alignment cost as a measure of similarity.  This algorithm
  also exploits learned spatial weights to downweight matches from regions of
  unstable curvature.  The second interprets the representation as a feature
  descriptor.  Feature keypoints are defined at the local extrema of the
  representation.  Descriptors for the set of known individuals are stored in a
  tree structure, which allows us to perform queries given the descriptors from
  an unknown trailing edge.  We evaluate the top-k accuracy on two real-world
  datasets to demonstrate the effectiveness of the curvature representation,
  achieving top-1 accuracy scores of approximately 95% and 80% for
  bottlenose dolphins and humpback whales, respectively.





§ INTRODUCTION

We address the problem of identifying individual cetaceans from images of their
fins — dorsal fins for bottlenose dolphins, and flukes for humpback whales.
Fitting into the broad domain of contour-based recognition <cit.>, the fin instance recognition
problem is particularly challenging, as illustrated in
Figures <ref> and <ref>.





Our hypothesis is that the information necessary to distinguish between the
outlines of fins from distinct individuals is encoded in local measures of
integral curvature <cit.>.  Differential curvature measures have been applied to a
variety of recognition problems, but these approaches are sensitive to
noise <cit.>.  Integral curvature, which produces more stable
measurements, has been applied to category recognition problems like
identifying leaf species <cit.>.

In this paper, we propose novel combinations of integral curvature
representation for extracted outline contours and two matching algorithms for
identifying individuals.  The first interprets the curvature representation as
a sequence, and defines the similarity between two representations as the cost
of warping one sequence onto the other.  The second treats subsections of the
representation as feature descriptors, and matches them using approximate
nearest neighbors.  Each takes a query image and produces a ranking of known
individuals from a database.  We also introduce a method for learning spatial
weights that describe the relative importance of points along the trailing
edge, which enables the matching algorithm to assign higher value to the most
distinguishing areas of the fin contours.

In cetacean research, identifying individuals observed during a survey is a
fundamental part of studying populations.  Traditionally, techniques such as
tagging or branding are used to make identification easier.  Not only do these
require specialized equipment and training, but they also tend to be invasive,
requiring catch-and-release of wild animals.  As a less invasive alternative,
photo identification requires no direct contact with the animals. Instead,
researchers use images of long-lasting markings, such as nicks, notches, or
scars, to track individuals over time <cit.>.

Photo identification presents its own challenges. The images showing distinct
individuals observed during a study need to be matched against a database
containing images of known individuals.  For large cetacean populations
covering a large geographical area and monitored over a long time period, this
can be very time-consuming when done using manual methods.  Additionally, parts
of the trailing edge required for identification are often occluded by water or
viewpoint, requiring the use of multiple images per individual.  Even when the
trailing edge contours are consistently visible, direct matching between
trailing edges from different images is problematic.  Because the images are
captured “in the wild”, animals occur in a wide variety of poses and are
photographed from varying viewpoints.  Even for a small change in viewpoint,
out-of-plane rotations can lead to difficulty in matching nicks and notches.

By presenting likely matches for a query individual to the user in order of
similarity, manual identification may be substantially accelerated by reducing
(on average) the number of individuals to compare per query.



 §.§ Time-Warping Sequence Alignment
 
It is possible to treat the curvature representations of the trailing edges as
vectors and compute their similarity using any vector norm.  The start and
endpoints of fins are ambiguous, and pose and viewpoint stretch some sections
and foreshorten others, so we need to account for nicks and notches occurring
at differing locations along the trailing edge.  We use a dynamic programming
time-warping algorithm <cit.> that computes the alignment cost of two
representations.  Rather than a one-to-one matching, as with a vector norm,
this allows many points from one representation to match to one point in the
other, and vice versa.  This warps one representation onto the other, where the
alignment cost is the sum of errors for local correspondences <cit.>.



 §.§ Descriptor Indexing
 
Considering that the nicks and notches used for identification are often
sparsely distributed along the trailing edge, and that points in between offer
little value for identification, it seems desirable to use only the former when
performing an identification.  To do this, we compute local extrema in the
trailing edge representation, i.e., points corresponding to regions of high
curvature in the original trailing edge, and use these as feature
keypoints <cit.>.  Between these keypoints, we extract feature
descriptors, resample them to a fixed length, and normalize using the Euclidean
norm.  All individuals from the database are stored in a tree-like structure,
after which the most likely candidate matches for a given trailing edge are
computed using the local naive Bayes nearest neighbor classifier <cit.>.



 §.§ Contributions

The primary contributions of this work are that we (a) develop an integral
curvature measure to represent trailing edge contours in such a way that the
representation is robust to changes in viewpoint and pose that make direct
comparison difficult, (b) propose integration of these measures with
time-warping alignment and descriptor indexing algorithms as two approaches for
ranking potential matches, (c) develop a learning algorithm to weight sections
of the trailing edge contour, and (d) produce results using this representation
and these algorithms on real-world datasets from active cetacea research groups
to confirm their efficacy.



§ RELATED WORK

The curvature computed at points along a contour is often used to represent
shape information <cit.>.  For differential
curvature, this is defined as the change of the angle of the normal vector
along the length of the contour <cit.>.  This representation is
sensitive to noise, however, and instead we use integral curvature.  A fixed
shape is placed at points along the contour, while measuring the area of the
intersection of the shape with the contour <cit.>.  Using integral
curvature to capture shape information is a key part of the Leafsnap
system <cit.>, which classifies leaves by using curvature histograms at
multiple scales as shape features.  We briefly compare to Leafsnap in
Section <ref>.

In terms of identifying dolphins from their dorsal fins, most notable is
DARWIN <cit.>.  The key idea behind DARWIN is to account for changes
in viewpoint by computing a transformation between two fins to align them, and
using the resulting sum of squared distances to define a similarity
score <cit.>.  As pointed out in <cit.>, a fundamental
problem with this approach is that fins from distinct individuals are unlikely
to align correctly, with the result that similarity scores cannot be compared
reliably to produce a ranking.

Another system, Finscan <cit.>, frames the problem of comparing two
dorsal fins as a string matching problem <cit.>.  In this setting,
they compute a low-level string representation of the trailing edge curvature.
Because the curvature function defined in terms of derivatives is typically
noisy, they refine this representation to a high-level string
representation.  To compute the similarity between two string representations,
they use a linear time-warping algorithm.

In both DARWIN and Finscan, the extraction of the trailing edge is a
semi-automatic, interactive process where the user manually corrects an initial
estimate of the trailing edge.  The size of our datasets, as well as our goal
of scaling to real-world scenarios, makes comparison with these
systems impractical.  Instead, we design our representation and matching
algorithms to be robust against the occasional inaccurate trailing edge
extraction.

In <cit.>, the authors propose a trailing edge indexing algorithm and
apply it to great white sharks.  After defining keypoints for feature
extraction by convolving the contour with a Difference-of-Gaussian kernel, they
explore the use of both the Difference-of-Gaussian norm and the descriptor
from <cit.>.  The descriptor indexing algorithm in our work is
similar, except that we instead use the curvature representation as a feature
descriptor.

A notable approach to the more general problem of ranking is the triplet
network <cit.>, a natural extension of the Siamese
network <cit.>.  A triplet network is a neural network that learns
a useful representation by minimizing the distance between the representations
of instances of the same class, while maximizing the distance between
representations from different classes.  One key advantage of this approach is
that the representation does not need to be designed by hand, rather, it is
learned from a large set of labeled training data.  The resulting
representation is then used to embed query instances into the same space, where
a ranking may be computed.  We briefly explored the use of triplet networks
using the original trailing edge contours as well as the curvature
representation, but found that our small datasets
would lead to overfitting.  Additionally, the parametric nature of these models
makes it difficult to apply them to new datasets <cit.>, whereas we confirm in
Section <ref> that our approach may be applied
unchanged to an unseen dataset of the same species.



§ DATASETS AND PREPROCESSING


We use two real-world datasets provided by active research groups to evaluate
our approach.  The first dataset is provided by the Sarasota Dolphin Research
Program and is illustrated in Figure <ref>.  This dataset
contains 10,713 images representing 401 distinct bottlenose dolphins
(Tursiops truncatus).  Researchers take photos of the dolphins
encountered at a particular time and place, and the best images of each
individual are separated into encounters.  These images are cropped to
the dorsal fin and added to the dataset.  The second dataset is provided by the
Cascadia Research Collective and shown in Figure <ref>.  This
dataset contains 7,173 images representing 3,572 humpback whales
(Megaptera novaeangliae).  Unlike the first dataset where each
individual appears in multiple images per encounter, here each individual
typically appears in only a single image per encounter.  

Given an image, a fully-convolutional neural network (FCNN) <cit.>
outputs the probability that each pixel is part of the trailing edge.  Anchor
points are computed, and a shortest-path algorithm selects pixels based
on costs determined by a combination of the FCNN and image gradients.
For dorsal fins, this includes a spatial transformer network <cit.>
that transforms the image such that the fin is approximately perpendicular to
the image plane.



§ INDIVIDUAL IDENTIFICATION




 §.§ Curvature Representation


Given a trailing edge contour represented as an ordered set of coordinates,
{(x_1, y_1), (x_2, y_2), …, (x_n, y_n)}, we wish to represent this
contour such that it is robust to changes in viewpoint and pose.  For this we
use an integral curvature measure that captures local shape information at each
point along the trailing edge.  For a given point (x_i, y_i) that lies on the
trailing edge, we place a circle of radius r at the point and find all points
on the trailing edge that lie within this circle, i.e., 𝐩_i = {(x_j,
y_j) | (x_i - x_j)^2 + (y_i - y_j)^2 ≤ r^2}.  To describe a point
(x_i, y_i)  by its local curvature, we first orient the points 𝐩_i
such that 𝐩_i(1) and 𝐩_i(n) lie on a horizontal line.
The coordinates of the points in 𝐩_i are then clipped to the
dimensions of an axis-aligned square with side length 2r centered at (x_i,
y_i).  Using the bottom side of this square as the axis for the independent
variable, we use trapezoidal integration to approximate the area under the
curve defined by the discrete points 𝐩_i.  We define the curvature
c ∈ [0, 1] at this point as the ratio of the area under the curve to the
total area of the square, which implies that the curvature value for a straight
line is c = 0.5.  See Figure <ref> for an illustration. By
computing this integral curvature measure at all points along the trailing
edge, we obtain the curvature representation of the trailing edge for a single
value of r.  To control the extent to which we capture local and global
information, we vary the radius of the circle placed at each point by choosing
multiple values of r (typically four).  The result is a matrix C of dimensions m × n,
where m is the number of values of r that we choose and
n is the number of points along the trailing edge.  The scalar C_ij∈
[0, 1] is the curvature value for the ith value of r at the jth point
along the trailing edge.







 §.§ Ranking


We explore two types of methods that use the curvature representation defined in
Section <ref> to
produce a ranking of known individuals given a query.


  §.§.§ Sequence Alignment

Dynamic Time-Warping.
The first method for comparing representations that we explore interprets the
curvature representations as temporal sequences and computes an alignment cost
between them <cit.>.  Given that the start and
endpoints of the trailing edges are not only ambiguous, but also often under
water, it is desirable to allow some degree of warping when computing
correspondences.  If we define 𝐜_i and 𝐜_j' as the ith
and jth columns (each a vector representing the curvature values at a point) of two
curvature representations C and C' of lengths m and m', respectively, then the total
alignment cost c(m, m') is defined recursively as 

    c(i, j)    = d(𝐜_i, 𝐜_j') 
       + min{c(i-1, j), c(i, j-1),
      c(i-1, j-1)},

where d defines the distance between two points based on their curvature
values at multiple scales.  It is possible to use a simple vector norm, such as
d(𝐜_i, 𝐜_j') =
||𝐜_i-𝐜_j'||_2.  

Spatial Weights.
The definition above, however, treats the contribution from correspondences
along the entire length of the trailing edge as equal.  We know that the end of
the trailing edge is often underwater for dorsal fins, and the tips often
cropped for flukes.  Ideally, we would thus like corresponding points from
these unstable regions to contribute less towards the total alignment cost.

To realize the above, we define a weight vector 𝐰, where the
elements w_1, w_2, …, w_n describe the relative importance of each point
along the trailing edge.  In doing so, we define a more meaningful distance
function as



    d(𝐜_i, 𝐜_j' | 𝐰) = w_iw_j||𝐜_i - 𝐜_j'||_2,

where the product w_iw_j scales the contribution of each correspondence to
the total alignment cost based on the relative importance of the points.

Learning the Weights.
To determine suitable values for the elements of 𝐰, we frame the
problem as an unconstrained optimization problem where we maximize the top-k
score (the fraction of times the correct individual appears in the first k
entries of the ranking) over a training set.  For the training set we use the
images in the database, and take the images from a single encounter for each individual
to be used as queries.  The separation of images into database and queries is
described in Section <ref>.  

To avoid overfitting, rather than learn all the
elements of 𝐰, we reduce the number of parameters by expressing
𝐰 as a linear combination of the Bernstein polynomials <cit.> of degree
n evaluated at uniformly spaced points between 0 and 1.  The linear
combination of Bernstein polynomials determined by coefficients 𝐜 is defined as

    B_n(x) = ∑_i=0^nc_ib_i,n(x),

where

    b_i,n(x) = n ix^i(1 - x)^n - i,   i = 0, 1, …, n.

These polynomials have two particular properties that are desirable for our
application, namely that (a) they are positive between 0 and 1, i.e.,
b_i,n(x) ≥ 0 for x ∈ [0, 1], and (b) they form a partition of unity, i.e., ∑_i=0^nb_i,n(x) = 1.

We use the latter to initialize the search at 𝐜 = 1, which
leads to a uniform 𝐰.  We set n = 10 and optimize for the
coefficients 𝐜
using an open-source package for Bayesian optimization <cit.>.
These coefficients 𝐜 define a polynomial f(x|𝐜) on the interval x ∈ [0,
1].  After defining n uniformly-spaced points x_1, x_2, …, x_n on
this interval, where n is the number of points on the trailing edge contour,
we compute the entries in the spatial weight vector as w_i =
f(x_i|𝐜).
This leads to the weight vectors shown in Figure <ref>   for the
Bottlenose and Humpback datasets.  




  §.§.§ LNBNN Classification

Similar to <cit.>, we use the local naive Bayes
nearest neighbor (LNBNN) algorithm <cit.> to produce a
ranking of known individuals <cit.>.  Our work differs
from <cit.> in that we use the integral curvature representation both
to compute descriptors and to determine keypoints.

Feature Descriptor.
Instead of using the Difference-of-Gaussian norm defined in Equation 1
in <cit.> to encode local shape information, we use the curvature
representation defined in Section <ref> of this
work.
Subsections of the curvature representation are resampled to a fixed length,
normalized by the Euclidean norm, and used as feature descriptors.

Feature Keypoints.
Similar to <cit.>, we choose the keypoints between which to define the subsections mentioned
above by resampling the curvature representation to a fixed length and choosing as
keypoints the n - 2 largest local extrema of the curvature representation at each
scale as well as the start and endpoints.  Combinations of these
keypoints yields n 2 subsections per scale, between which we
extract the corresponding values from the curvature representation.

LNBNN Classification.
These feature descriptors are computed for all known
individuals in the database, and placed in a data structure for approximate
nearest neighbors using ANNOY <cit.>.  We compute a score for
each individual using LNBNN classification, specifically Algorithm 2 as defined
in <cit.>. The benefit of using LNBNN instead of standard approximate
nearest neighbors is that it considers not only the distance to the nearest
descriptor from a given individual, but also the distance to the nearest descriptor
from a different individual <cit.>.  The difference between these is
used to update the score, which  reduces the contribution from non-distinctive
feature descriptors.



§ EXPERIMENTS


To demonstrate the effectiveness of our curvature representation and matching
algorithms, we evaluate the two approaches from Section <ref>
for producing a ranking of known individuals on the Bottlenose and
Humpback datasets.  We use the top-k score, defined as the fraction of
the time the correct individual appears in the first k entries of the
ranking, to evaluate time-warping (with and without learned spatial
weights), as well as LNBNN using our curvature descriptor and the
Difference-of-Gaussian descriptor <cit.>.

In particular, we show that when using top-1 accuracy,
the curvature representation outperforms the Difference-of-Gaussian descriptor
by 95% to 91% on the Bottlenose
dataset, and 80% to 40% on the Humpback dataset.
To compare against Leafsnap <cit.>, we also construct the Histogram
of Curvature over Scale from our integral curvature representation, and
produce a ranking using the histogram intersection distance.  We were unable
to achieve good results with this, however, and we suspect that the reason is
that computing a histogram over the curvature representation loses the spatial
information of the nicks and notches necessary for individual identification.

Additionally, because humpback whales often have uniquely identifying patterns
of scarring and pigmentation on their flukes, we also compare against
HotSpotter <cit.>, which uses LNBNN with SIFT
descriptors <cit.>.  The texture information captured by HotSpotter is
complementary to the curvature of the trailing edge, and so we also evaluate
combining our identification algorithms with HotSpotter.

We run experiments identical to those described in the following section on two
related datasets to ensure the generality of our approach.



 §.§ Defining Queries


Bottlenose Dolphins. 
We randomly select m = 10 encounters for each individual, and use all the images
from these encounters for the database.  When an individual appears in only n
encounters such that m > n, we use n-1 encounters for the database so that
we have at least one query.  The images from remaining encounters
are used as query encounters.  We also investigate the effect of
varying m on the top-k accuracy in Section <ref>.

Humpback Whales.
The Humpback dataset typically contains only a single image per
individual in each encounter and two encounters per individual.  In practice,
this means that most individuals are represented by one image in the database.

When evaluating time-warping and HotSpotter, we use the minimum alignment cost across images
in the encounter as the similarity score.  For LNBNN, we stack the descriptors
from all images in the encounter to build the query.

We run all experiments on five random splits and report mean scores,
however, there is little variance across runs.



 §.§ Qualitative Results

Before quantitatively evaluating
our algorithms, we show successful and unsuccessful identifications for
the Bottlenose and Humpback datasets in
Figures <ref> and <ref>, respectively.
In each figure, we show the pair of images (query and database) that
contributes the most to the total score.  We plot a minimal subset of matches
such that the sum of the LNBNN scores from these matches is at least half the
total score.  Although the matches shown are sparse, in practice the entire
length of the contour is matched, albeit with lower scores.  Pairs of lines of
the same color indicate the start and endpoints of the trailing edge
corresponding to the matched curvature descriptor.  The matches are ordered
such that the strongest match is shown in red, and the weakest in purple.  The
sections of the trailing edge not covered by strong LNBNN matches is shown in
blue.

There are two main causes of misidentifications, namely (a) errors in the
contour extraction that cause distinguishing features to be poorly represented
in the curvature vectors, and (b)  distinctions between very smooth trailing
edges that are insufficiently valued by the matching algorithm.  Both are
amplified by significant viewpoint differences between database and query
trailing edges for the correct match. 
























 §.§ Ranking Performance


To evaluate ranking performance, we compare two variations of each of
the algorithms from Section <ref>.  Next, we
describe the parameter choices for each of these algorithms.

Time-Warping Alignment.
When using learned spatial weights,
we use the relevant 𝐰 as shown in Figure <ref> for the
Bottlenose and Humpback datasets.  For the Bottlenose
dataset, we resample the curvature representation to 128 points and set the
Sakoe-Chiba bound <cit.> in the dynamic time-warping algorithm to 8.
We use scales of {0.04, 0.06, 0.08, 0.10}.  For the
Humpback dataset, these are set to 748, 75, and {0.02, 0.04, 0.06,
0.08}, respectively.  For both datasets, we determine the radii of the
circles used for integral curvature (Figure <ref>) by multiplying the scales by the maximum
dimension of the fin, specifically, the height for dorsal fins, and the width
for flukes.

Descriptor Indexing.
When doing LNBNN classification, we set the number of keypoints at which we
define contour subsections to 32.  The keypoints are placed along the trailing edge
(which is resampled to 1024 points) at
the points corresponding to the local extrema of the
curvature or Difference-of-Gaussian representation, as appropriate.
We set the dimension of the feature descriptors to 32.  The
top-k accuracy plateaus or slightly degrades on both datasets for larger
dimensions.  We speculate that this is due to the noisy nature of our extracted
trailing edges, where resampling to a smaller feature dimension acts as a form
of smoothing.  The scales for the Difference-of-Gaussian descriptors 
are the same as described in <cit.>.

The results for the Bottlenose and Humpback datasets are
shown in Figures <ref> and <ref>,
respectively.  With LNBNN, the curvature descriptor outperforms the Difference-of-Gaussian
descriptor for both datasets.  We argue that this is because of the robustness
with which integral curvature can capture noisy local information — with a
sufficiently large number of points representing the trailing edge, the
exact coordinates of any single point have little effect on the curvature
value.

Evaluation. The relative performance of the two matching algorithms is
different for the two datasets —  it is likely that this is because of how
the identifying information is distributed.  For the Bottlenose dataset,
where only a few distinct marks are useful for identification, the descriptor
indexing approach performs better.  For the Humpback dataset, where the
information necessary for identification is spread along the entire length of
the trailing edge, the time-warping alignment approach achieves similar
results.

We repeat these experiments on two smaller datasets to determine if our
approach generalizes to datasets of the same (or similar) species.  On a common
dolphin dataset with 3744 images representing 186 individuals, we achieve
74% top-1 accuracy using time-warping and 69% using LNBNN, and on a
humpback whale dataset with 1388 images representing 419 individuals, we
achieve 86% top-1 accuracy using time-warping and 89% using LNBNN.







 §.§ Number of Encounters per Known Individual


While we choose the encounters from the Bottlenose dataset randomly to
evaluate our algorithms, researchers may wish to choose the best images of each
known individual for the database.  Figure <ref>
shows the effect of increasing the number of encounters.  Adding more
encounters, and hence more images, to the database has several advantages.
First, there are more viewpoints represented, which makes it more likely that a
given query aligns well with one from the database.  Second, more
images per individual acts as insurance against the event where images may have
distinctive parts of the trailing edge occluded.  Choosing database images to
maximize the information content for identification is a problem we intend to
address in future work.





 §.§ Error Correlation


In addition to evaluating the ranking performance of each algorithm separately,
we also explore the possibility of combining algorithms.  If the correct
individual appears in the top-k entries of either of the algorithms, we
consider the match to be correct.  Combining our algorithms with
HotSpotter <cit.> is
of particular interest to us, because of their complementary nature — while
our matching algorithms use the integral curvature of the trailing edge,
HotSpotter uses SIFT <cit.> descriptors extracted from the interior of the fluke to
describe the unique patterns of pigmentation.
Figure <ref> shows that augmenting time-warping
(TW+SW) with HotSpotter (HS) improves the top-1 accuracy from 80% to
89%, and augmenting LNBNN with HotSpotter improves the top-1 accuracy from
79% to 88%.





§ CONCLUSION

We introduced novel combinations of integral curvature representation and two
matching algorithms for identifying individual cetaceans from their fins.  This
representation captures the local pattern of nicks and notches in such a way
that they may be compared using either a time-warping algorithm or descriptor
indexing.  The effectiveness of our method is shown by computing accuracy
scores on two real-world datasets, each with distinct challenges.  For the
Bottlenose dataset, with very little information per image, 
descriptor indexing outperforms time-warping because it considers not only the
feature distance, but also distinctiveness.  For the Humpback dataset,
there are few images per individual, but many features per image.  The
time-warping algorithm is well-suited for this problem, because it preserves
the spatial integrity of curvature along the trailing edge while exploiting
learned spatial weights to emphasize matches from regions of stable curvature.
As a result, the performance of the two algorithms is similar.  In both
cases, we demonstrate that we achieve results that can greatly accelerate the
process of cetacean identification.

While the focus of this paper has not been on the details of the contour
extraction, a major focus of future work will be a unified algorithm that works
on both species and leads to a generalization that allows rapid adaptation to
new species. An important consideration will be to restrict the amount of
manually-generated training data required.


ieee



