You are on page 1of 3

ABSTRACT

Several methods are available in computer vision to recognize objects. Mostly, these methods
consist of two well-separated parts: first the region of interest has to be recognized on the input
image. After this, the visual representation of the object has to be compared with already-known
samples: there are several ways, mostly based on the shape, color and pattern, or corner- or
keypoints of the display of the object. An interesting method is to use image projections for
object matching, which method can be separated into multiple subtasks. For research purposes,
the most-widely used prototyping environment Matlab is used to understand the behaviour of
image signatures based on projections.
INTRODUCTION:
One of the most challenging tasks in Computer Vision is to recognize objects on a picture [1].
The problem can be defined as object detection: when we have a template of the object or objects
that we are looking for. However, these objects may vary in their appearance, they even can be
different instances of the same type of object. Another - a way more complicated - problem is
categorization or class recognition of the visible objects. If the objects are very similar (in our
example, all are vehicles from behind), the classification method becomes even more complex.
The specific problem that is analyzed in this paper is the recognition of vehicles, where these
objects of interests are viewed from behind (Figure 1). The images are in very low quality, the
cameras are placed in a tunnel. There is no color information or visible plate that could be used
to simplify our task.
1. Object Detection
While humans are able to detect the number and type of objects in an image, in Computer Vision
there is no such thing as a universal object detector. All methods available are based on a
premise that we know what we are looking for. The method on detecting objects on an image are
based on the type of the visual representation of the object. There are simple solutions to find a
distinct colored [3] or shaped [4] subject on the image, while other well-defined techniques are
known to detect human faces [5] or pedestrians [6]. The mostly applied methods are based on
corners or keypoints [7] given by templates, or in some cases, where these methods could fail
(mostly on noisy pictures) low-level techniques are used [8]. If the task is purely to detect an
object, the Viola-Jones detector [9] could be applied, which is based on Haar-features [10] of the
object. To be able to use this method, the teaching of the detector has to be done. Because the
method is based on rectangles, and intensity sums in these rectangular areas, integral image can
be used to simplify the calculations. The computational costs are lowered by this extension, and
the detector could even be used in real-time video streams.
2. Object Matching
To correctly label objects, the template set needs to be iterated, and each detected object should
be compared with each and every template, and the best match should be marked as the same
instance. There are multiple ways [11] [12] [13] to compare the objects, and all of these methods
are very sensitive to noise. Low quality images could be marked as false-negatives during the
comparison, which leads to faulty behavior. In such cases image projections could be used as
fingerprints or signatures of objects, and by comparing these functions a detection with higher
tolerance for noise could be applied.
BLOCK DIAGRAM:

IMPLEMENTATION IN MATLAB
Matlab is designed to work with matrices and vectors - it is named Matlab form ”Matrix
laboratory”. All variables in this environment are multidimensional: even vectors are defined as
1 × N matrices. Since everything is a matrix in Matlab, the name vector is mostly used for the
array data structure. A. Image signatures In Matlab, the calculation of the horizontal and vertical
projections are very simple based on the matrix operators (Code 1).

The calculation of the horizontal projection vector h is done by summarizing the elements of the
matrix row-by-row, and normalizing the resulting vector by dividing each value with the width
of the square matrix. In Matlab, when the division operation is applied to a vector of elements
and a scalar, then each element of the vector is divided with the scalar value. To calculate the
vertical projection v, the same method is used, however the result of the summarization is a row-
vector which is realigned to a column vector.
The calculations of the diagonal projection vectors d and a (Code 2) only differ in the direction
of the projection. By flipping the matrix around the vertical axis, the very same algorithm works
for both. The main idea behind this approach is that each value is cumulated into vector dsum.
The input matrix M is serialized into M array, which is the base for an iterative calculation. In
each iteration, the values for each projected point are added to d_sum. To correctly select the
values for accumulation, a temporary array tmp is created. Matlab s colon operator is used to
create a regularly spaced vector, which is given to the serialized M as a vector of indexes. Using
this vector of indexes, i : N +1: end means that the first element in the indexing vector is i, and
the next elements are calculated by adding N + 1 to the previous element, until the end of the
array is reached. The correct dsum element is increased with the sum of the relevant part of tmp.
Finally, each element in this array is divided with the number of elements added, resulting in a
normalized projection - to achieve this, the right array division of Matlab is used

You might also like