You are on page 1of 3

GPU Acceleration of Feature Extraction and

Matching Algorithms
M. Marinelli, A. Mancini, P. Zingaretti
Dipartimento di Ingegneria dellInformazione
Universita` Politecnica delle Marche
Email: mttmarinelli@gmail.com mancini@dii.univpm.it p.zingaretti@univpm.it
AbstractDuring the last years the applications of Computer
Vision have increased greatly in many different contexts, owing
to the availability of more and more powerful hardware.
However, in some situations, the problem of algorithms with a
high computational time still continues to limit their growth.
One of the causes is that the progress from the point of view of
software was much lower, despite very efficient algorithms have
been discovered. This paper is focused on a way to accelerate
some computer vision algorithms. In particular, they will be
described and tested the benefits of running on a Graphical
Processing Unit (GPU) the Feature Group Matching (FGM)
algorithm, a novel approach to local feature matching to select
stable features and obtain a more reliable similarity value
between two images. Being FGM based on the state of the art
algorithms Scale-Invariant Feature Transform (SIFT) and
Speeded Up Robust Features (SURF), also the performances of
these algorithms on a GPU implementation using the Compute
Unified Device Architecture (CUDA) will be described.
I.

I NTRODUCTION

It is well-known how the processing of images is time


consuming, particularly with recent high resolution images
[1]. Besides, many algorithms require the simultaneous
processing of many images and often in real time [2].
Nevertheless during the last years the applications of
Computer Vision have increased greatly in many different
contexts. This was due to the availability of more and more
powerful hardware rather than to more efficient algorithms.
In particular, there are many Computer Vision algorithms
where finding a correct correspondence between two images
is very important, such as in robotic localization and content
based image retrieval. Many applications exploit the benefits
of feature extraction and matching, such as registration of
medical images [3], co-registration of very high resolution
aerial / satellite images [4], [5], landing of an Unmanned
Aerial Vehicle [6], [7], ship extraction [8], object recognition
(e.g. face) [9], extraction of image correspondences or bundle
adjustment [10], [11].
A main problem when dealing with feature extraction and
matching is the computational time. In particular some algorithms (e.g., SIFT) require a lot of computation. A possibility
is to choose an alternative and faster algorithm (e.g. ORB [12]
rather than SIFT) but with lower quality [13]. For this reason
it is necessary to boost the performance of the algorithm by
reducing the computation time to do not renounce to accuracy
and precision. The classical approach based on CPU can be
replaced by the implementation of an algorithm running on

Graphical Processing Units (GPU), which are widely available


today and allow some parallel computing at low cost. An
example is the GPU version of SIFT, which significantly improves the computing performance of the CPU based version
of SIFT algorithm [14].
The main aim of this paper is to present a GPU implementation of the Feature Group Matching (FGM) algorithm
[15], [16], which is strongly depending from the features
extracted from state of the art algorithms, such as ScaleInvariant Feature Transform (SIFT) or Speeded Up Robust
Features (SURF). In addition some computer vision
algorithms will be tested, also written to be executed on a
Graphic Processing Unit (GPU)[17]. These algorithms are
SIFT [18], [19] and SURF [20], [21], which represent a
starting point for the FGM elaboration. This is why their
acceleration is also very important for both the processes of
feature extraction and calculation of descriptors and
matching.
The paper is organized as follows. Next section describes
the FGM. Section III provides details of the GPU
implementation by using Compute Unified Device
Architecture (CUDA). In Section IV the results are
presented. Section V outlines the conclusion and future
works.
II.

A LGORITHMS

The first two algorithms, SIFT and SURF, are image


description algorithms. In particular, they detect a set of
keypoints in the images and provide a description vector
called descriptor for each keypoint. These keypoints and
descriptors, once achieved, are used by other algorithms to
compare two images or part of them. Local feature
matching has become a commonly used method to compare
images, despite it is highly probable that at least some of the
matchings it detects are incorrect. FGM is a local feature
matching with the aim to select less but more robust features
and obtain a more reliable similarity value between two
images, also considering spatial relationships. FGM is the
evolution of the approach in the Cartesian space based on
Weighted Walkthroughs [22], [23].
A. Feature Group Matching
The key idea behind FGM is to improve and make more
robust the filtering of incorrect matchings, obtained by means
of whichever algorithm, in order to associate to a couple of
images the best similarity coefficient as possible. The main

978-1-4799-2280-2/14/$31.00 2014 IEEE

objective the FGM is a significantly reduction of incorrect


matchings and, consequently, more reliable similarity values.
FGM creates a feature group for each feature in the
matched images I1 and I2 and represents it with a vector,

the group descriptor. Then they are performed easy and fast
comparisons between group descriptors, one from I1 and the
other from I2, to determine stable features. A group is a set
of n features, with n > 1.

A group of features can be created for any of the G features


(i.e., keypoints) of an image extracted by a feature extractor
algorithm. In order to reduce the computation time the feature
groups are defined only for the features matched by the userchosen feature matching algorithm.
The location C of the feature on which a group is built
is considered the center of that feature group, which will be
constituted by a subset of K features, with 1 < K < G.
In general, the number K of features will be different for
each feature group of the given image. Referring to Fig.
1, the location P of the nearest feature to C permits to split
the space around C in order to describe feature spatial
relations. If d is the distance between C and P, M concentric
circumferences and L radial half-lines are defined. Each
circumference is described by the same center C and radius
given by ri = d i, where i is the index of the
circumference (1 i M ). Besides, starting from the
half-line described by CP , they are defined L angular
sectors, each represented by an angle j = j where 1
j L and = 360/L. These geometrical elements
divide the space in M L regions, which are named sectors
[15], [16]. Now it is possible to define a descriptor for the
group, by trying to represent different spatial displacements
of point features around the group centre. In Figure 1 an
example of feature group is shown. More details about the
definition of a group and the related descriptor can be
found in [16].

Fig. 2. Workflow of the FGM algorithm.

III. FGM I MPLEMENTATION


Fig. 1. Feature group description with M = 6, L = 10, 1 n
60

Starting from the original, based on CPU, C++


implementation of the FGM algorithm we identified the
points where it is possible and reasonable to introduce some
parallelism to speedup the processing.
Figure 2 shows a simple workflow of the algorithm, with a
high level of abstraction, just to clarify where the CUDA code
has been introduced. The FGM elaboration can be
decomposed into two main functions: one that calculates the
groups by an- alyzing the keypoints of the image and another
that calculates the descriptor for each group previously
found. The second

Thank you for using www.freepdfconvert.com service!


Only two pages are converted. Please Sign Up to convert all pages.
https://www.freepdfconvert.com/membership

You might also like