868 views

Uploaded by pi194043

Overview of Good Features to Track Feature Detector and implementation details

save

- automatic white balance algorithm 1
- A detailed descriptions and results for different color constancy algorithms
- Seeded Region Growing using Line Scan algorithm - Stack base Implementation
- FASOGBONLab02report
- shape classification using Histogram of oriented gradients
- OpenCL 2D Convolution Using Separable Filters -Box Filter
- Gesture Recognition using Hidden Markov Mode
- temporal filters
- Noise Models in Image processing
- Feature Detection - Overview of Harris Corner Feature Detection
- Overview and Implementation of Fast Corner Detection Method
- Region Growing Algorithm For UnderWater Image Segmentation
- A simple color balance algorithm
- Image enhancement using Fusion
- OpenCL Image Convolution Filter - Box Filter
- OpenCL Heterogeneous parallel program for Gaussian Filter
- Control Limited Adaptive Histogram Equalization for Image Enhancement
- Symmetic Nearest Neighbour Anisotropic 2D image filter
- Spatio Temporal Feature extraction using harris 3d corner detector
- Fitting Line to set of Points
- An efﬁcient method for computing genus expansionsand counting numbers in the Hermitian matrix model
- OpenCL Heterogenenous program for Image Processing - ColorSpace conversion BGR-HSV,HSV-BGR,BGR-GRAY
- Image Segmentation
- Using the Canny Edge Detector for Feature Extraction and Enhancement of Remote Sensing Images
- Fast 3D Extension of Fast Feature Detection for SpatioTemporal Corner Detection
- A Novel Approach of Fuzzy Logic Based Edge Detection for Coronary Angiogram Using Virtual Instrumentation
- Uniform Color Quantization
- Image Degradation and Restoration Model
- Single Passs Connected Component Labelling
- OpenVision Library Gaussian Mixture Model Implementation
- Adaptive Skin Color Detector
- ARM Neon Optimization for image interleaving and deinterleaving
- A linear channel filter
- Dense optical flow expansion based on polynomial basis approximation
- Continuous Emission Hidden Markov Model for sequence classification
- Fast 2D Separable Symmetric/Anti-Symmmetric Convolution
- Implementation of discrete hidden markov model for sequence classification in C++ using Eigen
- Markov chain implementation in C++ using Eigen
- Modified Canny Edge Detection
- Polynomial Approximation of 2D image patch -Part 2
- Gaussian Multivariate Distribution -Part 1
- Multi Class Logistic Regression Training and Testing
- Compiling Native C/C++ library for Android
- C++ virtual functions and abstract class
- C++ static members and function
- Uniform Local Binary Pattern and Spatial Histogram Computation
- Normalized convolution for image interpolation
- Tan and Triggs Illumination normalization
- Mean Shift Algorithm
- Local Binary Pattern
- C++ Inheritance
- Polynomial Approximation of 1D signal
- C++ Const,Volatile Type Qualifiers
- polynomial approximation of a 2D signal
- Integral Image for Computation of Mean And Variance
- Random Ferns for Patch Description
- Embedded Systems Programming with ARM on Linux - Blinking LED
- Unit 01 Engineering Ethics
- Brand Elements
- LARSEN-FREEMAN(1997)Chaos and Complexity Theory
- ARÓSTEGUI, Júlio- A Pesquisa histórica-História e historiografia os fundamentos2.pdf
- 7-De Que Hablamos
- Barnes - A Suggestion About Value
- Verdad e interioridad en San Agustín
- Imagen Personal
- The Notion of Freedom in Krishnamurti and Sartre
- Curriculo Minimo Eja
- Art El Yo en Crisis Embarazo Adolescente
- Monday 1
- Lizzini-Existence_tcm261-250816.pdf
- Libro Secundaria Maestro
- Beyond the Ropes
- Teun a Van Dijk - Text and Context
- Multi Modal Human Computer Interaction
- Expo Gestalt
- 4. La Imagen de La Ciudad
- RUTA CRITICA
- iNFORME DE PRÁCTICA DOCENTE 10-nov-2011.pOWER POINT
- Apresentação NIETZSCHE E A REINTERPRETAÇÃO MORAL DO EGOÍSMO
- Visualidad Pura Dddd
- Signo a Discurso
- template of a didactic unit
- Planificacion orientacion 6° unidad 2 mayo junio 2018
- The Mindfulness Solution for Intense Emotions Take Control of Borderline Personality Disorder With DBT
- Aposentadoria Premio Ou Castigo
- Comportamento humano - tudo (ou quase tudo) que você gostaria de saber para viver melhor.
- Articulo 3 Valores Morales en La Educacion Superior

You are on page 1of 10

Pi19404

February 20, 2013

Contents

Contents

Feature Detection - Good Features To Track 3

0.1 Abstract . . . . . . . . . . . . . . . . . . . . . . 0.2 Image motion model . . . . . . . . . . . . . . 0.3 Implementation . . . . . . . . . . . . . . . . . . 0.3.1 Requirements and Default Values . 0.3.2 Computing Eigen Values . . . . . . . 0.3.3 Filtering the Corners Points . . . . 0.4 Code . . . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

3 3 7 7 7 9 9 10

2 | 10

0.1 Abstract

In this article we will look at the implementation of of a feature detection technique called Good Features To Track by Carlo Tomasi and Jianbo Shi which is used in OpenCV

Consider a model for Image motion.Let I(x,y,t) represent the image frame observed at time t.Let I(x,y,t+ ) represent the image frame observed at time t .

Let us assume that some motion has occured between the two observation times. The motion is reflected as change in intensity patterns. We analyze the change in intensity pattern at each point in the image. The ammount of motion x; y is called the displacement of the point p x; y .

a@ A

a @ A

The image observed at time t can be obtained by taking the initial image observed at time t and moving every point by suitable displacement vector. The displacement vector is a function of image position x. Over a small interval of time the motion can be assumed to be affine ie translation,rotational and/or scaling .

3 | 10

I x; y; t D

dxx dyx

dxy dyy

(1)

tx ty

a t;

if D

aH C C

Thus to track motion we need to determine the 6 parameters. a point x in the first image frame move to a point Ax t in the second image frame where A D . Thus error in estimation is determined by taking a difference of points at Ax t in second image and point x in the first image. If the intensity value of points are same error is zero .

a IC

If we consider a small neighborhood about a point all of them would have the same displacement vector. Thus for a patch in the first image we would be able to locate a patch in the second image. However we consider a small interval of time and can assume the motion to be purely translational and D=0. Under purel translation motion A .

aI

"

2

(2)

W is the size of neighborhood and w(x) is weighting function. We assume that the error function has a global minimum. use a first order taylors expansion for J Ax d

@ C A

we

To minimize the error we differentiate it wrt motion translation parameters and set the derivative to zero.

4 | 10

J Ax "

@ C dA a J @xA C d a R RW jJ @xA C d

1 @x

1 @x

@J

Cd

2 @y

2 @y

@J

@J

Cd

1 @x

@J

I @xAj w@xA@x:

2 2 @y

2

@J

Cd Cd

R

@J

R R

@J @J w W @t @x

1 @x

@J

2 @y

@J

@ A I @X A a @J @t R d W @ @J A w @xA@x C d @x

J X

1

@J @J W @y @x @J 2

@xA@x

d1

@J @J W @y @x

w@xA@x C d

(3)

W @y

w@xA@x a

@J @J w W @t @y

@xA@x

Gd

ae

P "

2 Ix Ix Iy 2 Ix Iy Iy

a P ItIxIy T

We use small scaling factor of - and Thus given a pair of successive frame we evaluate d. This is done recursively till convergence is attained when the error is below a certain value. Thus a feature or patch can be tracked Reliably if d can be found at every frame. we are required to compute G , Thus required G is well conditioned.

In practical scenario for we have the elements of G bounded by largest pixel values,since largest derivative value can be 255. Thus eigen values are also bounded by largest available pixel values. Thus if derivative values are stronger we get a larger values of eigen values.Thus measure of eigen values gives us the strength of derivatives. Thus a good features is the one where minimum eigen value is greater than a specified threshold.

5 | 10

This leads to matrix being well conditioned The well conditioned matrix only indicates a large derivative value. However if the point being tracked is the same cannot be assumed. For verification after the estimation is performed we compute the error in prediction. If the error is larger than a specified values we consider that feature tracked are not the same. However in the present article only importance is to locate the pixels which leads to well conditioned matrix. Thus we have two frames we compute at all points the matrix G and minimum eigen value. Only points with minimum eigen value greater than a threshold can be tracked reliably and thus is a good feature to track. Thus task of feature detection is to identify such points in the image.

6 | 10

0.3 Implementation

0.3.1 Requirements and Default Values

The inputs to the algorithm are :1. Input Image 2. Number of corners to be detected 3. minimum eigen value threshold 4. minimum distance between corner points 5. Block size 6. Mask Image The outputs of algorithm are :1. the number of corners detected 2. location of corner points Edges are bounded by the maximum value taken by the pixel ie 1 ,and the user specified threshold for minimum eigen values can be specified as any number between 0 to 1 which is scaling factor for the maximum value of the edge pixel. The default is choosen as 0.01 of the maximum valued of edge pixel. Typically we also specify the minimum distance between the detected points so that all the feature points are not clustered around in one region. The default value is choosen to be 10 To determine the minimum eigen values ,we need to evaluated the features for the specified point about a small neighborhood of that point. The default value for neighborhood size is choosen as 15.

The first component the algorithm requires is the computation of minimum eigen values. correponding to each point in the image.This is

7 | 10

Feature Detection - Good Features To Track essentially a neighborhood operation. For computing this we require first derivatives along the x and y directions. We use Sobel Edge detection to perform the same. For edge detection we would also need to input the aperture size the default is taken as 3 After computing this at each point of the image we require 3 2 2 quantities Dx ; Dy ; Dx Dy . An easy way to compute the minimum eigen values over a block is to first take the average of a window of block size and then evaluate the eigen value at each point of the window.

"

2 2 2 2 2 2 2 2 2 2 2 2 2 2

PW Dx PW DxDy# PW DxDy PW Dy

2 2

"

PW Dx PW DxDy # PW DxDy PW Dy

2 2

a a

(a+c)

pa

( 2

( +c)2 2

4(acb2 )

(a+c)

p a c

)2 +4b2 )

(4)

Thus we set all the points whose minimum eigen values are less than say 1/100 of maximum eigen value to 0.

8 | 10

Now we have a set of corner points . Filtering consists of selecting the most dominant corner point. and selecting most dominant point in small neighborhood so that points are not clustered together. OpenCV does this by analysing all the points and then selecting points that are minDistance from each other. This not necssary since the aim of filtering stage is to not cluster points together. we use the approch of dividing the image into cells of size minDistance and select the most dominant point in the small neighborhood. This reduces the sample set of points to be analyzed. If the minDist is large we get globally dominant corner but number of corner points detected may be small. In the OpenCV implementation the minimum eigen values are used to determine dominant corners.The points with larger minimum eigen values are selected first however we will use the larger eigen value for determining the corner points Then we sort the points as per the maximum eigen values. We add the dominant corner points to output array,if the current point is at distance less than minDistance with points in the output array we move on to the next point.

0.4 Code

we define a main f eatured etector base class containing methods and data common to all feature detector. the goodf eaturet ot rackc lass is derived class containing specific implementations of algorithms. The code OpenCV code can be found in code repository https: //github.com/pi19404/m19404/tree/master/FEATURE_DETECTOR or https: //code.google.com/p/m19404/source/browse/FEATURE_DETECTOR/

9 | 10

Bibliography

Bibliography

[1] Jianbo Shi and C. Tomasi. Good features to track. In: Computer Vision and

Pattern Recognition, 1994. Proceedings CVPR '94., 1994 IEEE Computer Society Conference on.

doi: 10.1109/CVPR.1994.323794.

10 | 10

- automatic white balance algorithm 1Uploaded bypi194043
- A detailed descriptions and results for different color constancy algorithmsUploaded bypi194043
- Seeded Region Growing using Line Scan algorithm - Stack base ImplementationUploaded bypi194043
- FASOGBONLab02reportUploaded byPeter Fash Faspet
- shape classification using Histogram of oriented gradientsUploaded bypi194043
- OpenCL 2D Convolution Using Separable Filters -Box FilterUploaded bypi194043
- Gesture Recognition using Hidden Markov ModeUploaded bypi194043
- temporal filtersUploaded bypi194043
- Noise Models in Image processingUploaded bypi194043
- Feature Detection - Overview of Harris Corner Feature DetectionUploaded bypi194043
- Overview and Implementation of Fast Corner Detection MethodUploaded bypi194043
- Region Growing Algorithm For UnderWater Image SegmentationUploaded bypi194043
- A simple color balance algorithmUploaded bypi194043
- Image enhancement using FusionUploaded bypi194043
- OpenCL Image Convolution Filter - Box FilterUploaded bypi194043
- OpenCL Heterogeneous parallel program for Gaussian FilterUploaded bypi194043
- Control Limited Adaptive Histogram Equalization for Image EnhancementUploaded bypi194043
- Symmetic Nearest Neighbour Anisotropic 2D image filterUploaded bypi194043
- Spatio Temporal Feature extraction using harris 3d corner detectorUploaded bypi194043
- Fitting Line to set of PointsUploaded bypi194043
- An efﬁcient method for computing genus expansionsand counting numbers in the Hermitian matrix modelUploaded byMichael Pearson
- OpenCL Heterogenenous program for Image Processing - ColorSpace conversion BGR-HSV,HSV-BGR,BGR-GRAYUploaded bypi194043
- Image SegmentationUploaded byసదాశివ మద్దిగిరి
- Using the Canny Edge Detector for Feature Extraction and Enhancement of Remote Sensing ImagesUploaded byKiran Jot Singh
- Fast 3D Extension of Fast Feature Detection for SpatioTemporal Corner DetectionUploaded bypi194043
- A Novel Approach of Fuzzy Logic Based Edge Detection for Coronary Angiogram Using Virtual InstrumentationUploaded byAnonymous vQrJlEN
- Uniform Color QuantizationUploaded bypi194043
- Image Degradation and Restoration ModelUploaded bypi194043
- Single Passs Connected Component LabellingUploaded bypi194043

- OpenVision Library Gaussian Mixture Model ImplementationUploaded bypi194043
- Adaptive Skin Color DetectorUploaded bypi194043
- ARM Neon Optimization for image interleaving and deinterleavingUploaded bypi194043
- A linear channel filterUploaded bypi194043
- Dense optical flow expansion based on polynomial basis approximationUploaded bypi194043
- Continuous Emission Hidden Markov Model for sequence classificationUploaded bypi194043
- Fast 2D Separable Symmetric/Anti-Symmmetric ConvolutionUploaded bypi194043
- Implementation of discrete hidden markov model for sequence classification in C++ using EigenUploaded bypi194043
- Markov chain implementation in C++ using EigenUploaded bypi194043
- Modified Canny Edge DetectionUploaded bypi194043
- Polynomial Approximation of 2D image patch -Part 2Uploaded bypi194043
- Gaussian Multivariate Distribution -Part 1Uploaded bypi194043
- Multi Class Logistic Regression Training and TestingUploaded bypi194043
- Compiling Native C/C++ library for AndroidUploaded bypi194043
- C++ virtual functions and abstract classUploaded bypi194043
- C++ static members and functionUploaded bypi194043
- Uniform Local Binary Pattern and Spatial Histogram ComputationUploaded bypi194043
- Normalized convolution for image interpolationUploaded bypi194043
- Tan and Triggs Illumination normalizationUploaded bypi194043
- Mean Shift AlgorithmUploaded bypi194043
- Local Binary PatternUploaded bypi194043
- C++ InheritanceUploaded bypi194043
- Polynomial Approximation of 1D signalUploaded bypi194043
- C++ Const,Volatile Type QualifiersUploaded bypi194043
- polynomial approximation of a 2D signalUploaded bypi194043
- Integral Image for Computation of Mean And VarianceUploaded bypi194043
- Random Ferns for Patch DescriptionUploaded bypi194043
- Embedded Systems Programming with ARM on Linux - Blinking LEDUploaded bypi194043

- Unit 01 Engineering EthicsUploaded byGowtham Ganesan
- Brand ElementsUploaded byimad
- LARSEN-FREEMAN(1997)Chaos and Complexity TheoryUploaded byLucian Craciunescu
- ARÓSTEGUI, Júlio- A Pesquisa histórica-História e historiografia os fundamentos2.pdfUploaded bySheila Parra
- 7-De Que HablamosUploaded byjoluormi
- Barnes - A Suggestion About ValueUploaded byRafaelVogelmann
- Verdad e interioridad en San AgustínUploaded byDaniel
- Imagen PersonalUploaded byNiiky BOomberiitha
- The Notion of Freedom in Krishnamurti and SartreUploaded byMaheshUrsekar
- Curriculo Minimo EjaUploaded byLuísFelipeLira
- Art El Yo en Crisis Embarazo AdolescenteUploaded byMartin Pasquini
- Monday 1Uploaded byAshna Haron
- Lizzini-Existence_tcm261-250816.pdfUploaded byhsynmnt
- Libro Secundaria MaestroUploaded byDocente De Matematicas Eliseo
- Beyond the RopesUploaded byFernando Loureiro
- Teun a Van Dijk - Text and ContextUploaded bymamicamonica
- Multi Modal Human Computer InteractionUploaded bymtech@seemu
- Expo GestaltUploaded byraul
- 4. La Imagen de La CiudadUploaded byElizabeth Gonzalez Ospina
- RUTA CRITICAUploaded bygogita09
- iNFORME DE PRÁCTICA DOCENTE 10-nov-2011.pOWER POINTUploaded byJ. B. Rafael OrdazGarcía.
- Apresentação NIETZSCHE E A REINTERPRETAÇÃO MORAL DO EGOÍSMOUploaded byFlavio Sousa
- Visualidad Pura DdddUploaded byDayeli AB
- Signo a DiscursoUploaded byyunuen alvarado
- template of a didactic unitUploaded byapi-353122363
- Planificacion orientacion 6° unidad 2 mayo junio 2018Uploaded byclaudio contreras
- The Mindfulness Solution for Intense Emotions Take Control of Borderline Personality Disorder With DBTUploaded byW1ngch0n
- Aposentadoria Premio Ou CastigoUploaded bysracamilaelvas
- Comportamento humano - tudo (ou quase tudo) que você gostaria de saber para viver melhor.Uploaded bypinus_ellioti
- Articulo 3 Valores Morales en La Educacion SuperiorUploaded bydjbovo