Fast Scale Invariant Feature Detection and Matching on Programmable Graphics Hardware

Size: px
Start display at page:

Download "Fast Scale Invariant Feature Detection and Matching on Programmable Graphics Hardware"

Transcription

1 Fast Scale Invariant Feature Detection and Matching on Programmable Graphics Hardware Nico Cornelis K.U.Leuven Leuven, Belgium Luc Van Gool K.U.Leuven / ETH Zurich Leuven, Belgium / Zurich, Switzerland vangool@vision.ee.ethz.ch Abstract Ever since the introduction of freely programmable hardware components into modern graphics hardware, graphics processing units (GPUs) have become increasingly popular for general purpose computations. Especially when applied to computer vision algorithms where a Single set of Instructions has to be executed on Multiple Data (SIMD), GPUbased algorithms can provide a major increase in processing speed compared to their CPU counterparts. This paper presents methods that take full advantage of modern graphics card hardware for real-time scale invariant feature detection and matching. The focus lies on the extraction of feature locations and the generation of feature descriptors from natural images. The generation of these featurevectors is based on the Speeded Up Robust Features (SURF) method [1] due to its high stability against rotation, scale and changes in lighting condition of the processed images. With the presented methods feature detection and matching can be performed at framerates exceeding 100 frames per second for images. The remaining time can then be spent on fast matching against large feature databases on the GPU while the CPU can be used for other tasks. Keywords GPU,SURF, feature extraction, feature matching 1. Introduction Since the arrival of dedicated graphics hardware, its development has mainly been driven by the game industry. Throughout the years, however, these GPUs transformed from a piece of hardware with fixed function pipelines into a compact size programmable mini computer with multiple processor cores and a large amount of dedicated memory. With an instruction set comparable to that of a CPU, modern day graphics boards provide a new platform for developers, allowing them to write new algorithms and also port existing CPU algorithms to the GPU which are then able to run at very high speeds. Algorithms developed using the GPU as a programming platform are commonly referred to as GPGPU (General Purpose Computations on GPU) algorithms [8]. Recent developments in graphics hardware also provide GPGPU programmers with a C-like programming environment for GPUs, enabling them to write even more efficient code, provided that a small number of guidelines are being followed. One such programming language is called CUDA which stands for Compute Unified Device Architecture [5]. This paper shows how scale invariant feature detection and matching can be performed using the GPU as development platform. More specifically, we show how carefully chosen data layouts can lead to a fast calculation of SURF feature locations and descriptors even when compared to existing GPU implementations [11, 3]. Additionally, fast feature matching is being performed by taking advantage of the CUBLAS library which provides fast GPU implementations of commonly used basic linear algebra routines on the latest generation of Geforce graphics cards. This approach has been developed for Geforce8 series graphics board and above. 2. Related work One commonly addressed problem in computer vision is the extraction of stable feature points from natural images. These feature points can subsequently be used for correspondence matching in applications such as wide-baseline stereo and object recognition. Because there can be a significant change in viewpoint position and orientation between images taken from a common scene, the extracted feature points need to be scale and rotation invariant and preferably also invariant to changes in lighting conditions in order to be considered as stable features. The most popular algorithm developed towards this goal, called Scale Invariant Feature Transform (SIFT) as proposed by Lowe [10], has already been applied successfully in a variety of applications. Shortly after the introduction of SIFT, a different kind /08/$ IEEE

2 of feature extraction and descriptor calculation was proposed, called SURF. While the feature localization stage of SURF has been tuned towards performance and parallelism by using a fast approximation of the Hessian, its feature descriptor stage has been tuned towards high recognition rates and proved to be a valid alternative to the SIFT descriptor. Therefore, the method proposed in this paper will use the SURF descriptor as our preferred choice of feature vector. 3. SURF overview The SURF method consists of multiple stages to obtain relevant feature points. The single SURF stages are: 1. Construction of an Integral Image, introduced by Viola and Jones [12], for fast box filtering with very few memory accesses. 2. Search for candidate feature points by the creation of a Hessian based scale-space pyramid (SURF detector). Fast filtering is performed by approximating the Hessian as a combination of boxfilters. 3. Further filtering and reduction of the obtained candidate points by applying a non maximum suppression stage in order to extract stable points with high contrast. To each remaining point, its position and scale are assigned. 4. Assignment of an orientation to each feature by finding a characteristic direction. 5. Feature vector calculation (SURF descriptor) based on the characteristic direction to provide rotation invariance. 6. Feature vector normalization for invariance to changes in lighting conditions. For feature localization on a single scale, a variety a feature detectors can be used such as the Laplacian of Gaussians (LoG), Difference of Gaussians (DoG) as used in SIFT and the determinant of the Hessian used in SURF. In order to provide scale invariance, however, these filters have to be applied at different scales, corresponding to different values of sigma for the Gaussian filter kernels. As the filter sizes become large, there is little difference in output values between neighbouring pixels. Therefore the computational complexity can be reduced by the creation of a scale-space pyramid where each level of the pyramid, referred to as an octave, consists of N different scales. The resolution of each octave is half that of the previous octave in both the x and y directions. In order to localize interest points in the image and over scales, non-maximum suppression (NMS) in a neighbourhood is applied to the scale-space pyramid. The extrema of the determinant of the Hessian matrix are then interpolated in scale and image space with the method proposed by Brown and Lowe [2]. The next step consists of fixing a reproducible orientation based on information from circular regions around the interest points. For that purpose, they first calculate the Haar-wavelet responses in x and y direction in a circular neighbourhood around the interest point. The size of the circular region and the sampling steps are chosen proportional to the scale at which the feature point was detected. Once the wavelet responses are calculated and weighted with a Gaussian centered at the interest point, the responses are represented as vectors in a space with the horizontal response strength along the abscissa and the vertical response strength along the ordinate. The dominant orientation is subsequently estimated by calculating the sum of all responses within a sliding orientation window covering an angle of Π 3. The horizontal and vertical responses within this window are summed. The two summed responses then yield a new vector. The longest such vector lends its orientation to the interest point. Finally, a descriptor is being generated for each feature. This step consists of constructing a square region centered around the interest point and oriented along the orientation selected in the previous step. This region is split up regularly into 4 4 square sub-regions. For each of these sub-regions, 4 characteristic values are computed at 5 5 regularly spaced sample points. The wavelet responses dx and dy computed at these sample points are first weighted with a Gaussian centered at the interest point and summed up over each sub-region to form a first set of entries to the feature vector. In order to bring in information about the polarity of the intensity changes, the sum of the absolute values of the responses, dx and dy, are also extracted. Hence, each sub-region has a four-dimensional descriptor vector v = (Σdx, Σdy, Σ dx, Σ dy ) for its underlying intensity structure resulting in a descriptor vector for all 4 4 sub-regions of length 64. The wavelet responses are invariant to a bias in illumination (offset). Invariance to contrast (a scale factor) is achieved by turning the descriptor into a unit vector. 4. GPU-implementation Writing GPGPU applications is by no means a trivial task, even in the presence of a reference CPUimplementation. One has to make careful choices regarding the data layout in graphics card memory to ensure that the application can take full advantage of the graphics card capabilities, especially in terms of parallelism. The following sections show how the data layout proposed in this paper allows for parallelism at both image-level and scale-level at various stages of the algorithm.

3 4.1. Data Layout The methods proposed in this paper make extensive use of texture mipmaps. A texture mipmap differs from a regular texture in the sense that it also provides additional storage for subsampled versions of the full resolution (base) texture of size w h. Apart from the base level, the higher mipmap levels are generated by applying a 2 2 boxfilter on the previous mipmap level. Texture mipmaps generated this way are used to reduce aliasing artifacts when displaying high resolution textures in low resolution viewports. Because of the ability of the GPU to write into textures rather than treating them as a read-only part of memory and also because the data in the mipmap levels is not constrained to be subsampled versions of the base texture, these texture mipmaps can provide us with the data storage we need. Similar to the storage requirements for the Hessian calculations, the mipmap size at level i corresponds to max ( 1, w/2 i ) max ( 1, h/2 i ). As such, a texture mipmap proves to be a suitable choice for the scale-space pyramid where each octave corresponds to a mipmap level Scale-Space Pyramid Creation Although the pyramid creation proposed for SURF in [1] allows for fast filtering and parallelism at scale-level, it is not suited for an efficient GPU-implementation. This is caused by the fact that, although only a small amount of memory accesses have to be performed, there is a large stride between memory locations of those accesses at large scales leading to poor performance of the texture caches. Furthermore, the calculation of this fast Hessian at different scales requires texture accesses at different positions within the integral image. Because texture caching works efficiently on localized data, we prefer a computation of the exact Hessian as a combination of separable filters to an approximation using Integral Images. Similar to the first stages of SIFT, a two-pass approach is used where Gaussian filtered versions of the base texture are created in the first pass. The second pass consists of a pixel-wise calculation of the Hessian matrix Gaussian Pyramid Creation As noted in [3], GPUs do not only have parallel processing ability on a per pixel basis, parallelized by the number of fragment processors on the GPU, there is also parallelism on the computational stages of the GPU by calculating the four color channels simultaneously as a vector. To take advantage of these vector abilities of GPUs they modified the gray-level input image in a preprocessing step where the gray image data was rearranged into a four channel RGBA image. Each pixel in the RGBA image represented a 2 2 pixel block of the gray-level image, thus reducing the image area by a factor of 4. Although this approach clearly allows Channel Scale g(t) red 0 green 1 blue 2 alpha 3 Figure 1. Top Left: Gaussian blurred images, stored in multiple textures. Top Right: All octaves and scales mapped into a single texture mipmap. Bottom: Gaussian filter kernels for N = 4. for more efficient parallelization at image-space level this paper proposes an alternative data layout which also provides parallelism at scale-space level. For each octave, N Gaussian blurred versions G of the base texture I need to be created according to the following separable filter implementations: n s G s(x, y) = I(x t, y).g s (t) (1) t= n s n s G s (x, y) = G s(x, y t).g s (t) (2) t= n s where g s represents the discretized Gaussian kernel of size 2n s + 1 at scale s [0, N 1]. By defining: g(t) = (g 0 (t), g 1 (t),..., g N 1 (t)) T (3) the above equations can be rewritten as: n G (x, y) = I(x t, y) g(t) (4) G(x, y) = t= n n t= n G (x, y t) g(t) (5) where represents an elementwise multiplication operator and n = max(n 0, n 1,..., n N 1 ). Figure 1 illustrates the data layout used for N = 4 and n = 5. In practice, n = 9.

4 The separable Gaussian filters are implemented as a twopass operation. The first pass performs Gaussian filtering in the x-direction by fetching scalar values from the graylevel base texture I and multiplying them with the fourcomponent Gaussian kernel values g. As the values of g are independent of the pixel position, they can be hard-coded into the fragment shader. The results of the first pass are written to a four-channel intermediate texture G. Similarly, the second pass reads from G and writes the result of the Gaussian kernel to the four-component texture G. As such, the four Gaussian filtered versions are being calculated simultaneously. Note that, compared to the method proposed in [3], superfluous computations are being performed at lower scales caused by the zero-valued entries in the Gaussian kernels. This disadvantage, however, is being overcompensated by a reduced number of context and fragment shader switches as well as the elimination of a preprocessing step. Apart from the first octave, where the first pass takes samples from the base texture I, the first pass for the remaining octaves samples the alpha-component of G at the previous octave in order to reduce aliasing effects Hessian Pyramid Creation Once the four Gaussian filtered images have been calculated for an octave, with one scale per color channel, they can be used for calculating the determinant of the Hessian. deth(x, y) = 2 G(x,y) x 2 2 G(x,y) x y 2 G(x,y) x y 2 G(x,y) y 2 (6) Because the discretized second order derivative kernels are independent of the scale, the Hessian values are being calculated for the four scales simultaneously once again. Note that the methods mentioned above are also applicable for a GPU implementation of the SIFT algorithm Keypoint Filtering Once the Hessian values have been computed, Non Maximum Suppression is applied in a neighbourhood for all scales. First of all, in order to reduce the amount of data that has to be passed on to the next stage, we exploit the fact that no more than one extremum can be found in a 2 2 neighbourhood in image space. Therefore the results of the NMS stage can be written out to a texture mipmap of half the size of H in both x and y directions. Because the first and last scale lack one border scale to perform NMS filtering, the two last scales of the previous octave are resampled so that there are once again 4 detectable scales per octave. Without going into further detail, we would like to point out that the data-layout, which encodes 4 scales in a single four-component pixel, once more proves to be a Figure 2. Top: Fast extraction of sparse feature locations from large 2D arrays on GPU. Bottom: Expanding the algorithm to extract feature data at multiple scales from a matrix of encoded 32-bit values. good choice in terms of efficiency. The extremum in a 3 3 neighbourhood in image-space can be computed for multiple scales simultaneously by performing the comparisons on vectors rather than scalars. For each pixel, the result is encoded in a 4-byte value as follows: X-offset Y-offset Extremum Octave where the last byte encodes the octave that is currently being processed (up to 256 possible octaves). The third byte encodes whether an extremum has been detected with the least significant bit corresponding to scale 0. As such, this encoding allows for up to 8 detectable scales. The first two bytes encode the offset in x and y direction, needed because 2 2 pixels are being processed simultaneously. Note that, although a 16-bit encoding would suffice for N = 4, we have chosen a 32-bit encoding for further efficient processing in CUDA. Once the pixels have been encoded, we need to extract the extrema locations from the encoded images. Usually, this is done by transferring the data from the GPU to system memory followed by scanning the downloaded data on the CPU for extrema locations. Downloading large amounts of data to system memory, however, is slow as it has to be transferred over the PCI bus. Therefore, we present a method that only downloads the detected extrema locations to system memory. In 3D application programming interfaces such as OpenGL and DirectX, a fragment produced by a single ex-

5 ecution of a fragment program is constrained to the pixel location where it is to be drawn on screen, even when using multiple render targets. The Nvidia CUDA language, however, allows data to be scattered at arbitrary locations in memory. One only needs to ensure that different threads do not write to the same location in memory to avoid undefined results. Therefore, the extrema extraction stage is implemented as a two-pass algorithm where the first pass assigns a unique index to each extremum, followed by a second pass which scatters the extrema locations into a continuous array of extrema locations. For clarity reasons, we will show how the CUDA language can be used to extract pixel locations from a sparse single-component m n matrix. This process is illustrated in the top half of Figure 2. In the first pass, n simultaneously running threads process a single column each and have an integer valued counter initialized at 0. While iterating over the m rows, the counter value is incremented by one if an extremum is detected. This results in a 1 n array where each value corresponds to the number of detected extrema in its corresponding column. Subsequently, this array is converted into another array N e of equal size where each value is the sum of all previous values with the first value initialized at 0. This conversion step can also be performed efficiently on the GPU [4]. In the second pass, the n threads once again process a single column each, but now their counter value is initialized at its corresponding value in N e. This way, whenever an extremum is encountered for the second time, the counter value provides a unique index for the extremum and its location can be scattered into a continuous output array. Afterwards, this output array is downloaded to system memory to inform the CPU of the number of features and their respective locations. Note that this approach avoids the need to download entire images to system memory as well as scanning these downloaded images for extrema locations on the CPU while the large number of simultaneously running threads compensates for the fact that the matrix needs to be traversed a second time. Expanding this algorithm to extract feature data at multiple scales from a 2D matrix of encoded 32-bit values is straightforward. Instead of incrementing the counter value by one, it is incremented by the number of extrema N p in the encoded pixel p at position (x, y) where N p corresponds to the number of ones in the third byte. In the second pass, the feature data of the detected extrema is scattered to N p contiguous 4-tuples in the output array starting at the index stored in the counter as shown in the bottom half of Figure 2. Note that, besides the 2D feature location in pixel units of the original image, we also write out the scale and octave for each feature. This additional information facilitates selecting the necessary mipmap levels and color channels to perform feature location interpolation. Figure 3. Tiling of square neighbourhood regions at extracted feature locations Feature Location Interpolation For features detected at higher octaves, feature location interpolation is needed in order to get more accurate localizations. Possible interpolation schemes range from a simple parabolic interpolation to the interpolation scheme proposed by Brown and Lowe [2]. Because they require a very limited amount of numerical operations and only have to be performed on a small amount of data, the choice of interpolation scheme will not have a significant impact on global performance. Since all values are stored in a texture mipmap, where each mipmap level corresponds to an octave and each color channel corresponds to a scale, all information needed to perform interpolation is present within a single texture mipmap. This means that interpolation for all features can be performed in a single pass while only a single texture mipmap needs to be bound to the fragment program. The ability to process all features in a single pass eliminates many texture- and framebuffer-switches Feature Descriptors In order to avoid loss of speed by reallocating data containers, the data structures should be initialized once at initialization time so that they can be reused. As the number of extracted features per image can vary, the data containers used to store feature information are initialized at a fixed maximum size. This section illustrates how orientation assignment and feature descriptor calculation is performed for a maximum allowable number of 4096 features Orientation Assignment Gradient information in the neighbourhood of the feature locations is stored in pixel-blocks which are tiled into a texture of size (64 16) (64 16) so that each feature corresponds to one of the 4096 pixel-blocks, as shown in Figure 3. The neighbourhood area covered in the original image is chosen proportionally to the scale at which the feature has been detected. As the original image is be-

6 ing loaded onto the graphics card in a texture mipmap, we can let OpenGL perform linear interpolation in both imagespace and mipmap-space automatically to avoid aliasing for features detected at large scales. The actual gradient computation for a feature neighbourhood stores a 64-bit value for each pixel in the pixel-block, corresponding to two 32-bit floating point values representing the gradients in x- and y-direction. These gradient values are also being weighted by a Gaussian centered at the feature location. Once these Gaussian filtered gradients have been computed, the results are transferred into a pixel buffer which serves as the data link between OpenGL and the CUDA context in which further operations will take place. Within CUDA, each pixel-block is processed by a multiprocessor running 256 threads in parallel where each thread transfers a pixel from the pixel-block into fast shared-memory. In order to ensure efficient memory transfers, one has to take the warp-size of the multi-processors into account. The warp-size is the number of threads that can be combined into a single SIMD instruction (32 for Geforce8). As the width of a pixel-block corresponds to half the warp-size, the requirement imposed by CUDA needed to coalesce the memory accesses into a single contiguous aligned memory access, is met. Once this transfer has taken place, the transferred gradient array is sorted according to its phase values by using a parallel bitonic sort algorithm and the dominant orientation is estimated by calculating the sum of all responses within a sliding orientation window covering an angle of Π 3. The horizontal and vertical responses within this window are summed to yield a new vector. The longest such vector lends its orientation to the interest point Aligned Feature Descriptors The feature descriptor generation stage is similar to the initial step in the orientation assignment. The feature neighbourhoods are tiled and multiplied with a Gaussian in the same way but are now aligned to their assigned orientation. As required by the SURF descriptor, the gradient values v = (dx, dy, dx, dy ) are now stored in 128-bit pixels. In this step, the results are written to a texture mipmap with a base size of (64 16) (64 16). By making use of hardware accelerated mipmapping, the values v = (Σdx, Σdy, Σ dx, Σ dy ) for mipmap level 2 are automatically generated as a 4 4 boxfiltering of the base level. As shown in Figure 4, this mipmap level is of size (64 4) (64 4) and each feature now corresponds to a 4 4 pixel-block, resulting in a descriptor of size 64. Although the resulting descriptor incorporates spatial information about the feature, it still needs to be normalized to provide invariance against changing lighting conditions. In order to avoid numerical inaccuracies when normalizing Figure 4. Feature vector generation and normalization. a vector of 64 floating point values, a multi-phase algorithm is needed. To this end, a texture mipmap with a base size of (64 4) (64 4) is allocated and is used to draw the squared values of v. Once again, hardware accelerated mipmapping is used to generate mipmap level 2. This mipmap level is of size and the sum of the four values in each pixel now corresponds to the squared norm of its corresponding feature vector. In a final step, the feature vectors are normalized according to these values. Because hardware accelerated mipmapping can be seen as a repetitive 2 2 boxfiltering, this is a multi-phase approach where each hierarchical level calculates the sum of four lower level values, thereby reducing numerical inaccuracies. 5. Matching Feature descriptor matching can be performed using different criteria, such as the Sum of Squared Differences (SSD) or the dot product (DOT). Finding the best match for a feature vector f in a database of feature vectors D is done by locating the feature d in D for which the SSD is minimal. Because the feature vectors have been normalized, this corresponds to finding the feature vector d for which the dot product with f is maximal: 63 SSD = (f i d i ) 2 (7) i= = fi 2 + d 2 i 2 f i.d i (8) i=0 i=0 i=0 = 2 2.DOT (9)

7 If the feature descriptors are to remain on the graphics card, the tiled feature descriptor array can be converted to a 2D matrix where each tile is mapped onto a row of the 2D matrix. Similar to the transformation in the orientation assignment pass, this step can be performed efficiently using CUDA. Next, a correlation matrix C is computed as C = D.F T, where each entry C i,j contains the dot product of the feature vectors d i and f j. Because the correlation matrix C is calculated as a basic matrix multiplication, it can be performed efficiently on the GPU by making use of the CUBLAS library which provides optimized versions of basic linear algebra operations on the GPU. Finally, in order to extract the best match for each of the features in F, a CUDA algorithm is used where each thread processes a column of C and returns the row index of the best match. When matching m features against a database of n features using descriptors of size d, calculating the correlation matrix C has a computational complexity of O(m n d) whereas the extraction of the best matches has a computational complexity of O(m n). 6. Results The proposed method has been tested using the datasets and the evaluation tool provided by Mikolajczyk [9]. The matching results for two image sequences along with the repeatability scores for the four most challenging image sequences are shown in Figure 6. As expected, the repeatability scores of the GPU implementation and the original SURF implementation are very similar. Timing results of the proposed method and the ones developed by Sinha et al. [11] and Heymann et al. [3] are listed in Table 1. The tests were performed on images with a resolution of For the matching test, a feature database of 3000 features is matched against another database of 3000 features, similar to [3]. More detailed timing results for the proposed algorithm are shown in Figure 5. For an image of size , the algorithm is able to extract 805 features locations and descriptors at 103 frames per second on a desktop pc and 35 frames per second on a mid-end workstation laptop. As previously developed GPU implementations already achieved near real-time framerates, one might fail to see the practical value of an even faster implementation. Not only does the method proposed in this paper allow for additional feature matching required by real-time applications such as object recognition, it can also be used to speed up offline applications that need to process vast amounts of data. For example, given an image of an object, one might want to retrieve alternate images containing this object by matching against a collection of images selected from large image databases [7, 6] based on image tag information. In both cases, the proposed methods can be used for fast feature extraction and matching against large feature databases. Ad- Figure 5. Detailed timing results for a desktop pc (GF8800GTX) and a mid-end workstation laptop (QFX1600M). Sinha Heymann This GPU model 7900GTX QFX GTX Octaves Scales Extraction Time 100ms 58ms 9.7ms Matching Time N/A 500ms 32ms Table 1. Performance comparison. ditionally, in order to achieve higher recognition rates, the increase in processing speed can be used to extend the feature descriptors by using more and/or larger subregions. 7. Conclusion In this paper, we have shown how the SURF algorithm can be accelerated significantly using programmable graphics hardware, even when compared to existing GPU implementations. By making extensive use of texture mipmapping and the CUDA programming language, feature extraction and descriptor generation can be performed at very high rates. As a result, the SURF algorithm can be applied to image sequences with pixels at framerates exceeding 100 frames per second. Furthermore, utilizing the CUBLAS library also resulted in fast feature matching against large databases.

8 References [1] H. Bay, T. Tuytelaars, and L. Van Gool. SURF: Speeded Up Robust Features. European Conference on Computer Vision, pages , [2] M. Brown and D. Lowe. Invariant features from interest point groups. British Machine Vision Conference, Cardiff, Wales, pages , [3] S. Heymann, K. Mu ller, A. Smolic, B. Fro hlich, and T. Wiegand. SIFT Implementation and Optimization for GeneralPurpose GPU, [4] cuda/sdk/website/projects/scan/doc/scan.pdf. [5] [6] [7] [8] [9] [10] D. Lowe. Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision, 60(2):91 110, [11] S. Sinha, J. Frahm, and M. Pollefeys. GPU-based Video Feature Tracking and Matching. EDGE 2006, workshop on Edge Computing Using New Commodity Architectures, [12] P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. Proc. CVPR, 1: , Figure 6. Results indicating invariance to rotation and scaling (Bark,Boat) and affine transformations (Graffiti,Wall). Top: Example of matching results. Middle: Number of extracted features for each data set. Bottom: Repeatability scores.

Comparison of Feature Detection and Matching Approaches: SIFT and SURF

Comparison of Feature Detection and Matching Approaches: SIFT and SURF GRD Journals- Global Research and Development Journal for Engineering Volume 2 Issue 4 March 2017 ISSN: 2455-5703 Comparison of Detection and Matching Approaches: SIFT and SURF Darshana Mistry PhD student

More information

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014 SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014 SIFT SIFT: Scale Invariant Feature Transform; transform image

More information

Implementation and Comparison of Feature Detection Methods in Image Mosaicing

Implementation and Comparison of Feature Detection Methods in Image Mosaicing IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-issn: 2278-2834,p-ISSN: 2278-8735 PP 07-11 www.iosrjournals.org Implementation and Comparison of Feature Detection Methods in Image

More information

SURF. Lecture6: SURF and HOG. Integral Image. Feature Evaluation with Integral Image

SURF. Lecture6: SURF and HOG. Integral Image. Feature Evaluation with Integral Image SURF CSED441:Introduction to Computer Vision (2015S) Lecture6: SURF and HOG Bohyung Han CSE, POSTECH bhhan@postech.ac.kr Speed Up Robust Features (SURF) Simplified version of SIFT Faster computation but

More information

SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS

SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS Cognitive Robotics Original: David G. Lowe, 004 Summary: Coen van Leeuwen, s1460919 Abstract: This article presents a method to extract

More information

GPU Accelerating Speeded-Up Robust Features Timothy B. Terriberry, Lindley M. French, and John Helmsen

GPU Accelerating Speeded-Up Robust Features Timothy B. Terriberry, Lindley M. French, and John Helmsen GPU Accelerating Speeded-Up Robust Features Timothy B. Terriberry, Lindley M. French, and John Helmsen Overview of ArgonST Manufacturer of integrated sensor hardware and sensor analysis systems 2 RF, COMINT,

More information

Outline 7/2/201011/6/

Outline 7/2/201011/6/ Outline Pattern recognition in computer vision Background on the development of SIFT SIFT algorithm and some of its variations Computational considerations (SURF) Potential improvement Summary 01 2 Pattern

More information

Scott Smith Advanced Image Processing March 15, Speeded-Up Robust Features SURF

Scott Smith Advanced Image Processing March 15, Speeded-Up Robust Features SURF Scott Smith Advanced Image Processing March 15, 2011 Speeded-Up Robust Features SURF Overview Why SURF? How SURF works Feature detection Scale Space Rotational invariance Feature vectors SURF vs Sift Assumptions

More information

Implementing the Scale Invariant Feature Transform(SIFT) Method

Implementing the Scale Invariant Feature Transform(SIFT) Method Implementing the Scale Invariant Feature Transform(SIFT) Method YU MENG and Dr. Bernard Tiddeman(supervisor) Department of Computer Science University of St. Andrews yumeng@dcs.st-and.ac.uk Abstract The

More information

SIFT: Scale Invariant Feature Transform

SIFT: Scale Invariant Feature Transform 1 / 25 SIFT: Scale Invariant Feature Transform Ahmed Othman Systems Design Department University of Waterloo, Canada October, 23, 2012 2 / 25 1 SIFT Introduction Scale-space extrema detection Keypoint

More information

CS 4495 Computer Vision A. Bobick. CS 4495 Computer Vision. Features 2 SIFT descriptor. Aaron Bobick School of Interactive Computing

CS 4495 Computer Vision A. Bobick. CS 4495 Computer Vision. Features 2 SIFT descriptor. Aaron Bobick School of Interactive Computing CS 4495 Computer Vision Features 2 SIFT descriptor Aaron Bobick School of Interactive Computing Administrivia PS 3: Out due Oct 6 th. Features recap: Goal is to find corresponding locations in two images.

More information

Computer Vision for HCI. Topics of This Lecture

Computer Vision for HCI. Topics of This Lecture Computer Vision for HCI Interest Points Topics of This Lecture Local Invariant Features Motivation Requirements, Invariances Keypoint Localization Features from Accelerated Segment Test (FAST) Harris Shi-Tomasi

More information

Key properties of local features

Key properties of local features Key properties of local features Locality, robust against occlusions Must be highly distinctive, a good feature should allow for correct object identification with low probability of mismatch Easy to etract

More information

B. Tech. Project Second Stage Report on

B. Tech. Project Second Stage Report on B. Tech. Project Second Stage Report on GPU Based Active Contours Submitted by Sumit Shekhar (05007028) Under the guidance of Prof Subhasis Chaudhuri Table of Contents 1. Introduction... 1 1.1 Graphic

More information

The SIFT (Scale Invariant Feature

The SIFT (Scale Invariant Feature The SIFT (Scale Invariant Feature Transform) Detector and Descriptor developed by David Lowe University of British Columbia Initial paper ICCV 1999 Newer journal paper IJCV 2004 Review: Matt Brown s Canonical

More information

Parallel SIFT-detector implementation for images matching

Parallel SIFT-detector implementation for images matching Parallel SIFT-detector implementation for images matching Anton I. Vasilyev, Andrey A. Boguslavskiy, Sergey M. Sokolov Keldysh Institute of Applied Mathematics of Russian Academy of Sciences, Moscow, Russia

More information

A Novel Extreme Point Selection Algorithm in SIFT

A Novel Extreme Point Selection Algorithm in SIFT A Novel Extreme Point Selection Algorithm in SIFT Ding Zuchun School of Electronic and Communication, South China University of Technolog Guangzhou, China zucding@gmail.com Abstract. This paper proposes

More information

Scale Invariant Feature Transform

Scale Invariant Feature Transform Why do we care about matching features? Scale Invariant Feature Transform Camera calibration Stereo Tracking/SFM Image moiaicing Object/activity Recognition Objection representation and recognition Automatic

More information

Augmented Reality VU. Computer Vision 3D Registration (2) Prof. Vincent Lepetit

Augmented Reality VU. Computer Vision 3D Registration (2) Prof. Vincent Lepetit Augmented Reality VU Computer Vision 3D Registration (2) Prof. Vincent Lepetit Feature Point-Based 3D Tracking Feature Points for 3D Tracking Much less ambiguous than edges; Point-to-point reprojection

More information

SIFT Descriptor Extraction on the GPU for Large-Scale Video Analysis. Hannes Fassold, Jakub Rosner

SIFT Descriptor Extraction on the GPU for Large-Scale Video Analysis. Hannes Fassold, Jakub Rosner SIFT Descriptor Extraction on the GPU for Large-Scale Video Analysis Hannes Fassold, Jakub Rosner 2014-03-26 2 Overview GPU-activities @ AVM research group SIFT descriptor extraction Algorithm GPU implementation

More information

Local Feature Detectors

Local Feature Detectors Local Feature Detectors Selim Aksoy Department of Computer Engineering Bilkent University saksoy@cs.bilkent.edu.tr Slides adapted from Cordelia Schmid and David Lowe, CVPR 2003 Tutorial, Matthew Brown,

More information

Panoramic Image Stitching

Panoramic Image Stitching Mcgill University Panoramic Image Stitching by Kai Wang Pengbo Li A report submitted in fulfillment for the COMP 558 Final project in the Faculty of Computer Science April 2013 Mcgill University Abstract

More information

A Comparison of SIFT, PCA-SIFT and SURF

A Comparison of SIFT, PCA-SIFT and SURF A Comparison of SIFT, PCA-SIFT and SURF Luo Juan Computer Graphics Lab, Chonbuk National University, Jeonju 561-756, South Korea qiuhehappy@hotmail.com Oubong Gwun Computer Graphics Lab, Chonbuk National

More information

Chapter 3 Image Registration. Chapter 3 Image Registration

Chapter 3 Image Registration. Chapter 3 Image Registration Chapter 3 Image Registration Distributed Algorithms for Introduction (1) Definition: Image Registration Input: 2 images of the same scene but taken from different perspectives Goal: Identify transformation

More information

A Comparison of SIFT and SURF

A Comparison of SIFT and SURF A Comparison of SIFT and SURF P M Panchal 1, S R Panchal 2, S K Shah 3 PG Student, Department of Electronics & Communication Engineering, SVIT, Vasad-388306, India 1 Research Scholar, Department of Electronics

More information

Feature Detection. Raul Queiroz Feitosa. 3/30/2017 Feature Detection 1

Feature Detection. Raul Queiroz Feitosa. 3/30/2017 Feature Detection 1 Feature Detection Raul Queiroz Feitosa 3/30/2017 Feature Detection 1 Objetive This chapter discusses the correspondence problem and presents approaches to solve it. 3/30/2017 Feature Detection 2 Outline

More information

SURF: Speeded Up Robust Features. CRV Tutorial Day 2010 David Chi Chung Tam Ryerson University

SURF: Speeded Up Robust Features. CRV Tutorial Day 2010 David Chi Chung Tam Ryerson University SURF: Speeded Up Robust Features CRV Tutorial Day 2010 David Chi Chung Tam Ryerson University Goals of SURF A fast interest point detector and descriptor Maintaining comparable performance with other detectors

More information

Motion illusion, rotating snakes

Motion illusion, rotating snakes Motion illusion, rotating snakes Local features: main components 1) Detection: Find a set of distinctive key points. 2) Description: Extract feature descriptor around each interest point as vector. x 1

More information

Local invariant features

Local invariant features Local invariant features Tuesday, Oct 28 Kristen Grauman UT-Austin Today Some more Pset 2 results Pset 2 returned, pick up solutions Pset 3 is posted, due 11/11 Local invariant features Detection of interest

More information

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy BSB663 Image Processing Pinar Duygulu Slides are adapted from Selim Aksoy Image matching Image matching is a fundamental aspect of many problems in computer vision. Object or scene recognition Solving

More information

DARTs: Efficient scale-space extraction of DAISY keypoints

DARTs: Efficient scale-space extraction of DAISY keypoints DARTs: Efficient scale-space extraction of DAISY keypoints David Marimon, Arturo Bonnin, Tomasz Adamek, and Roger Gimeno Telefonica Research and Development Barcelona, Spain {marimon,tomasz}@tid.es Abstract

More information

Local Image Features

Local Image Features Local Image Features Computer Vision CS 143, Brown Read Szeliski 4.1 James Hays Acknowledgment: Many slides from Derek Hoiem and Grauman&Leibe 2008 AAAI Tutorial This section: correspondence and alignment

More information

Object Detection by Point Feature Matching using Matlab

Object Detection by Point Feature Matching using Matlab Object Detection by Point Feature Matching using Matlab 1 Faishal Badsha, 2 Rafiqul Islam, 3,* Mohammad Farhad Bulbul 1 Department of Mathematics and Statistics, Bangladesh University of Business and Technology,

More information

Scale Invariant Feature Transform by David Lowe

Scale Invariant Feature Transform by David Lowe Scale Invariant Feature Transform by David Lowe Presented by: Jerry Chen Achal Dave Vaishaal Shankar Some slides from Jason Clemons Motivation Image Matching Correspondence Problem Desirable Feature Characteristics

More information

Scale Invariant Feature Transform

Scale Invariant Feature Transform Scale Invariant Feature Transform Why do we care about matching features? Camera calibration Stereo Tracking/SFM Image moiaicing Object/activity Recognition Objection representation and recognition Image

More information

Motion Estimation and Optical Flow Tracking

Motion Estimation and Optical Flow Tracking Image Matching Image Retrieval Object Recognition Motion Estimation and Optical Flow Tracking Example: Mosiacing (Panorama) M. Brown and D. G. Lowe. Recognising Panoramas. ICCV 2003 Example 3D Reconstruction

More information

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT Oct. 15, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

Face Recognition using SURF Features and SVM Classifier

Face Recognition using SURF Features and SVM Classifier International Journal of Electronics Engineering Research. ISSN 0975-6450 Volume 8, Number 1 (016) pp. 1-8 Research India Publications http://www.ripublication.com Face Recognition using SURF Features

More information

Image Processing. Image Features

Image Processing. Image Features Image Processing Image Features Preliminaries 2 What are Image Features? Anything. What they are used for? Some statements about image fragments (patches) recognition Search for similar patches matching

More information

SCALE INVARIANT FEATURE TRANSFORM (SIFT)

SCALE INVARIANT FEATURE TRANSFORM (SIFT) 1 SCALE INVARIANT FEATURE TRANSFORM (SIFT) OUTLINE SIFT Background SIFT Extraction Application in Content Based Image Search Conclusion 2 SIFT BACKGROUND Scale-invariant feature transform SIFT: to detect

More information

Image Mosaic with Rotated Camera and Book Searching Applications Using SURF Method

Image Mosaic with Rotated Camera and Book Searching Applications Using SURF Method Image Mosaic with Rotated Camera and Book Searching Applications Using SURF Method Jaejoon Kim School of Computer and Communication, Daegu University, 201 Daegudae-ro, Gyeongsan, Gyeongbuk, 38453, South

More information

Feature Detection and Matching

Feature Detection and Matching and Matching CS4243 Computer Vision and Pattern Recognition Leow Wee Kheng Department of Computer Science School of Computing National University of Singapore Leow Wee Kheng (CS4243) Camera Models 1 /

More information

Local Features Tutorial: Nov. 8, 04

Local Features Tutorial: Nov. 8, 04 Local Features Tutorial: Nov. 8, 04 Local Features Tutorial References: Matlab SIFT tutorial (from course webpage) Lowe, David G. Distinctive Image Features from Scale Invariant Features, International

More information

CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt.

CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt. CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt. Section 10 - Detectors part II Descriptors Mani Golparvar-Fard Department of Civil and Environmental Engineering 3129D, Newmark Civil Engineering

More information

Computer Vision. Recap: Smoothing with a Gaussian. Recap: Effect of σ on derivatives. Computer Science Tripos Part II. Dr Christopher Town

Computer Vision. Recap: Smoothing with a Gaussian. Recap: Effect of σ on derivatives. Computer Science Tripos Part II. Dr Christopher Town Recap: Smoothing with a Gaussian Computer Vision Computer Science Tripos Part II Dr Christopher Town Recall: parameter σ is the scale / width / spread of the Gaussian kernel, and controls the amount of

More information

Local Features: Detection, Description & Matching

Local Features: Detection, Description & Matching Local Features: Detection, Description & Matching Lecture 08 Computer Vision Material Citations Dr George Stockman Professor Emeritus, Michigan State University Dr David Lowe Professor, University of British

More information

International Journal of Advanced Research in Computer Science and Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: Fingerprint Recognition using Robust Local Features Madhuri and

More information

Introduction. Introduction. Related Research. SIFT method. SIFT method. Distinctive Image Features from Scale-Invariant. Scale.

Introduction. Introduction. Related Research. SIFT method. SIFT method. Distinctive Image Features from Scale-Invariant. Scale. Distinctive Image Features from Scale-Invariant Keypoints David G. Lowe presented by, Sudheendra Invariance Intensity Scale Rotation Affine View point Introduction Introduction SIFT (Scale Invariant Feature

More information

SIFT Implementation and Optimization for General-Purpose GPU

SIFT Implementation and Optimization for General-Purpose GPU SIFT Implementation and Optimization for General-Purpose GPU S. Heymann heimie@selective.de K. Müller kmueller@hhi.de A.Smolic smolic@hhi.de B. Fröhlich Bauhaus University Weimar Fakultät Medien Germany

More information

Local Image Features

Local Image Features Local Image Features Computer Vision Read Szeliski 4.1 James Hays Acknowledgment: Many slides from Derek Hoiem and Grauman&Leibe 2008 AAAI Tutorial Flashed Face Distortion 2nd Place in the 8th Annual Best

More information

Obtaining Feature Correspondences

Obtaining Feature Correspondences Obtaining Feature Correspondences Neill Campbell May 9, 2008 A state-of-the-art system for finding objects in images has recently been developed by David Lowe. The algorithm is termed the Scale-Invariant

More information

Feature Based Registration - Image Alignment

Feature Based Registration - Image Alignment Feature Based Registration - Image Alignment Image Registration Image registration is the process of estimating an optimal transformation between two or more images. Many slides from Alexei Efros http://graphics.cs.cmu.edu/courses/15-463/2007_fall/463.html

More information

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm Group 1: Mina A. Makar Stanford University mamakar@stanford.edu Abstract In this report, we investigate the application of the Scale-Invariant

More information

A Comparison and Matching Point Extraction of SIFT and ISIFT

A Comparison and Matching Point Extraction of SIFT and ISIFT A Comparison and Matching Point Extraction of SIFT and ISIFT A. Swapna A. Geetha Devi M.Tech Scholar, PVPSIT, Vijayawada Associate Professor, PVPSIT, Vijayawada bswapna.naveen@gmail.com geetha.agd@gmail.com

More information

Faster-than-SIFT Object Detection

Faster-than-SIFT Object Detection Faster-than-SIFT Object Detection Borja Peleato and Matt Jones peleato@stanford.edu, mkjones@cs.stanford.edu March 14, 2009 1 Introduction As computers become more powerful and video processing schemes

More information

CS 556: Computer Vision. Lecture 3

CS 556: Computer Vision. Lecture 3 CS 556: Computer Vision Lecture 3 Prof. Sinisa Todorovic sinisa@eecs.oregonstate.edu Interest Points Harris corners Hessian points SIFT Difference-of-Gaussians SURF 2 Properties of Interest Points Locality

More information

Multi-modal Registration of Visual Data. Massimiliano Corsini Visual Computing Lab, ISTI - CNR - Italy

Multi-modal Registration of Visual Data. Massimiliano Corsini Visual Computing Lab, ISTI - CNR - Italy Multi-modal Registration of Visual Data Massimiliano Corsini Visual Computing Lab, ISTI - CNR - Italy Overview Introduction and Background Features Detection and Description (2D case) Features Detection

More information

Real-Time Scene Reconstruction. Remington Gong Benjamin Harris Iuri Prilepov

Real-Time Scene Reconstruction. Remington Gong Benjamin Harris Iuri Prilepov Real-Time Scene Reconstruction Remington Gong Benjamin Harris Iuri Prilepov June 10, 2010 Abstract This report discusses the implementation of a real-time system for scene reconstruction. Algorithms for

More information

FESID: Finite Element Scale Invariant Detector

FESID: Finite Element Scale Invariant Detector : Finite Element Scale Invariant Detector Dermot Kerr 1,SonyaColeman 1, and Bryan Scotney 2 1 School of Computing and Intelligent Systems, University of Ulster, Magee, BT48 7JL, Northern Ireland 2 School

More information

Stereoscopic Images Generation By Monocular Camera

Stereoscopic Images Generation By Monocular Camera Stereoscopic Images Generation By Monocular Camera Swapnil Lonare M. tech Student Department of Electronics Engineering (Communication) Abha Gaikwad - Patil College of Engineering. Nagpur, India 440016

More information

Object Recognition with Invariant Features

Object Recognition with Invariant Features Object Recognition with Invariant Features Definition: Identify objects or scenes and determine their pose and model parameters Applications Industrial automation and inspection Mobile robots, toys, user

More information

Corner Detection. GV12/3072 Image Processing.

Corner Detection. GV12/3072 Image Processing. Corner Detection 1 Last Week 2 Outline Corners and point features Moravec operator Image structure tensor Harris corner detector Sub-pixel accuracy SUSAN FAST Example descriptor: SIFT 3 Point Features

More information

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong)

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) References: [1] http://homepages.inf.ed.ac.uk/rbf/hipr2/index.htm [2] http://www.cs.wisc.edu/~dyer/cs540/notes/vision.html

More information

Scale Invariant Feature Transform: A Graphical Parameter Analysis

Scale Invariant Feature Transform: A Graphical Parameter Analysis M. MAY, M. J. TURNER, T. MORRIS: SIFT PARAMETER ANALYSIS 1 Scale Invariant Feature Transform: A Graphical Parameter Analysis Michael May 1 michael.may@postgrad.manchester.ac.uk Martin J. Turner 2 martin.turner@manchester.ac.uk

More information

Semantic Kernels Binarized A Feature Descriptor for Fast and Robust Matching

Semantic Kernels Binarized A Feature Descriptor for Fast and Robust Matching 2011 Conference for Visual Media Production Semantic Kernels Binarized A Feature Descriptor for Fast and Robust Matching Frederik Zilly 1, Christian Riechert 1, Peter Eisert 1,2, Peter Kauff 1 1 Fraunhofer

More information

A Hybrid Feature Extractor using Fast Hessian Detector and SIFT

A Hybrid Feature Extractor using Fast Hessian Detector and SIFT Technologies 2015, 3, 103-110; doi:10.3390/technologies3020103 OPEN ACCESS technologies ISSN 2227-7080 www.mdpi.com/journal/technologies Article A Hybrid Feature Extractor using Fast Hessian Detector and

More information

Click to edit title style

Click to edit title style Class 2: Low-level Representation Liangliang Cao, Jan 31, 2013 EECS 6890 Topics in Information Processing Spring 2013, Columbia University http://rogerioferis.com/visualrecognitionandsearch Visual Recognition

More information

Local Patch Descriptors

Local Patch Descriptors Local Patch Descriptors Slides courtesy of Steve Seitz and Larry Zitnick CSE 803 1 How do we describe an image patch? How do we describe an image patch? Patches with similar content should have similar

More information

CS 231A Computer Vision (Fall 2012) Problem Set 3

CS 231A Computer Vision (Fall 2012) Problem Set 3 CS 231A Computer Vision (Fall 2012) Problem Set 3 Due: Nov. 13 th, 2012 (2:15pm) 1 Probabilistic Recursion for Tracking (20 points) In this problem you will derive a method for tracking a point of interest

More information

Computational Optical Imaging - Optique Numerique. -- Multiple View Geometry and Stereo --

Computational Optical Imaging - Optique Numerique. -- Multiple View Geometry and Stereo -- Computational Optical Imaging - Optique Numerique -- Multiple View Geometry and Stereo -- Winter 2013 Ivo Ihrke with slides by Thorsten Thormaehlen Feature Detection and Matching Wide-Baseline-Matching

More information

high performance medical reconstruction using stream programming paradigms

high performance medical reconstruction using stream programming paradigms high performance medical reconstruction using stream programming paradigms This Paper describes the implementation and results of CT reconstruction using Filtered Back Projection on various stream programming

More information

3D model search and pose estimation from single images using VIP features

3D model search and pose estimation from single images using VIP features 3D model search and pose estimation from single images using VIP features Changchang Wu 2, Friedrich Fraundorfer 1, 1 Department of Computer Science ETH Zurich, Switzerland {fraundorfer, marc.pollefeys}@inf.ethz.ch

More information

VK Multimedia Information Systems

VK Multimedia Information Systems VK Multimedia Information Systems Mathias Lux, mlux@itec.uni-klu.ac.at Dienstags, 16.oo Uhr This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Agenda Evaluations

More information

SURF: Speeded Up Robust Features

SURF: Speeded Up Robust Features SURF: Speeded Up Robust Features Herbert Bay 1, Tinne Tuytelaars 2, and Luc Van Gool 12 1 ETH Zurich {bay, vangool}@vision.ee.ethz.ch 2 Katholieke Universiteit Leuven {Tinne.Tuytelaars, Luc.Vangool}@esat.kuleuven.be

More information

SIFT - scale-invariant feature transform Konrad Schindler

SIFT - scale-invariant feature transform Konrad Schindler SIFT - scale-invariant feature transform Konrad Schindler Institute of Geodesy and Photogrammetry Invariant interest points Goal match points between images with very different scale, orientation, projective

More information

School of Computing University of Utah

School of Computing University of Utah School of Computing University of Utah Presentation Outline 1 2 3 4 Main paper to be discussed David G. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, IJCV, 2004. How to find useful keypoints?

More information

CS 223B Computer Vision Problem Set 3

CS 223B Computer Vision Problem Set 3 CS 223B Computer Vision Problem Set 3 Due: Feb. 22 nd, 2011 1 Probabilistic Recursion for Tracking In this problem you will derive a method for tracking a point of interest through a sequence of images.

More information

Evaluation and comparison of interest points/regions

Evaluation and comparison of interest points/regions Introduction Evaluation and comparison of interest points/regions Quantitative evaluation of interest point/region detectors points / regions at the same relative location and area Repeatability rate :

More information

Edge and corner detection

Edge and corner detection Edge and corner detection Prof. Stricker Doz. G. Bleser Computer Vision: Object and People Tracking Goals Where is the information in an image? How is an object characterized? How can I find measurements

More information

Lecture 10 Detectors and descriptors

Lecture 10 Detectors and descriptors Lecture 10 Detectors and descriptors Properties of detectors Edge detectors Harris DoG Properties of detectors SIFT Shape context Silvio Savarese Lecture 10-26-Feb-14 From the 3D to 2D & vice versa P =

More information

Image Features: Detection, Description, and Matching and their Applications

Image Features: Detection, Description, and Matching and their Applications Image Features: Detection, Description, and Matching and their Applications Image Representation: Global Versus Local Features Features/ keypoints/ interset points are interesting locations in the image.

More information

PowerVR Hardware. Architecture Overview for Developers

PowerVR Hardware. Architecture Overview for Developers Public Imagination Technologies PowerVR Hardware Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.

More information

Digital Image Processing (CS/ECE 545) Lecture 5: Edge Detection (Part 2) & Corner Detection

Digital Image Processing (CS/ECE 545) Lecture 5: Edge Detection (Part 2) & Corner Detection Digital Image Processing (CS/ECE 545) Lecture 5: Edge Detection (Part 2) & Corner Detection Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Recall: Edge Detection Image processing

More information

AK Computer Vision Feature Point Detectors and Descriptors

AK Computer Vision Feature Point Detectors and Descriptors AK Computer Vision Feature Point Detectors and Descriptors 1 Feature Point Detectors and Descriptors: Motivation 2 Step 1: Detect local features should be invariant to scale and rotation, or perspective

More information

IMAGE RETRIEVAL USING VLAD WITH MULTIPLE FEATURES

IMAGE RETRIEVAL USING VLAD WITH MULTIPLE FEATURES IMAGE RETRIEVAL USING VLAD WITH MULTIPLE FEATURES Pin-Syuan Huang, Jing-Yi Tsai, Yu-Fang Wang, and Chun-Yi Tsai Department of Computer Science and Information Engineering, National Taitung University,

More information

XIV International PhD Workshop OWD 2012, October Optimal structure of face detection algorithm using GPU architecture

XIV International PhD Workshop OWD 2012, October Optimal structure of face detection algorithm using GPU architecture XIV International PhD Workshop OWD 2012, 20 23 October 2012 Optimal structure of face detection algorithm using GPU architecture Dmitry Pertsau, Belarusian State University of Informatics and Radioelectronics

More information

III. VERVIEW OF THE METHODS

III. VERVIEW OF THE METHODS An Analytical Study of SIFT and SURF in Image Registration Vivek Kumar Gupta, Kanchan Cecil Department of Electronics & Telecommunication, Jabalpur engineering college, Jabalpur, India comparing the distance

More information

Speeding Up SURF. Peter Abeles. Robotic Inception

Speeding Up SURF. Peter Abeles. Robotic Inception Speeding Up SURF Peter Abeles Robotic Inception pabeles@roboticinception.com Abstract. SURF has emerged as one of the more popular feature descriptors and detectors in recent years. While considerably

More information

Graphics Hardware. Instructor Stephen J. Guy

Graphics Hardware. Instructor Stephen J. Guy Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!

More information

A Novel Algorithm for Color Image matching using Wavelet-SIFT

A Novel Algorithm for Color Image matching using Wavelet-SIFT International Journal of Scientific and Research Publications, Volume 5, Issue 1, January 2015 1 A Novel Algorithm for Color Image matching using Wavelet-SIFT Mupuri Prasanth Babu *, P. Ravi Shankar **

More information

Performance Evaluation of Scale-Interpolated Hessian-Laplace and Haar Descriptors for Feature Matching

Performance Evaluation of Scale-Interpolated Hessian-Laplace and Haar Descriptors for Feature Matching Performance Evaluation of Scale-Interpolated Hessian-Laplace and Haar Descriptors for Feature Matching Akshay Bhatia, Robert Laganière School of Information Technology and Engineering University of Ottawa

More information

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects Intelligent Control Systems Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects Shingo Kagami Graduate School of Information Sciences, Tohoku University swk(at)ic.is.tohoku.ac.jp http://www.ic.is.tohoku.ac.jp/ja/swk/

More information

Tracking in image sequences

Tracking in image sequences CENTER FOR MACHINE PERCEPTION CZECH TECHNICAL UNIVERSITY Tracking in image sequences Lecture notes for the course Computer Vision Methods Tomáš Svoboda svobodat@fel.cvut.cz March 23, 2011 Lecture notes

More information

Image matching. Announcements. Harder case. Even harder case. Project 1 Out today Help session at the end of class. by Diva Sian.

Image matching. Announcements. Harder case. Even harder case. Project 1 Out today Help session at the end of class. by Diva Sian. Announcements Project 1 Out today Help session at the end of class Image matching by Diva Sian by swashford Harder case Even harder case How the Afghan Girl was Identified by Her Iris Patterns Read the

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Feature Descriptors. CS 510 Lecture #21 April 29 th, 2013

Feature Descriptors. CS 510 Lecture #21 April 29 th, 2013 Feature Descriptors CS 510 Lecture #21 April 29 th, 2013 Programming Assignment #4 Due two weeks from today Any questions? How is it going? Where are we? We have two umbrella schemes for object recognition

More information

Motion Estimation. There are three main types (or applications) of motion estimation:

Motion Estimation. There are three main types (or applications) of motion estimation: Members: D91922016 朱威達 R93922010 林聖凱 R93922044 謝俊瑋 Motion Estimation There are three main types (or applications) of motion estimation: Parametric motion (image alignment) The main idea of parametric motion

More information

IMAGE-GUIDED TOURS: FAST-APPROXIMATED SIFT WITH U-SURF FEATURES

IMAGE-GUIDED TOURS: FAST-APPROXIMATED SIFT WITH U-SURF FEATURES IMAGE-GUIDED TOURS: FAST-APPROXIMATED SIFT WITH U-SURF FEATURES Eric Chu, Erin Hsu, Sandy Yu Department of Electrical Engineering Stanford University {echu508, erinhsu, snowy}@stanford.edu Abstract In

More information

FPGA-Based Feature Detection

FPGA-Based Feature Detection FPGA-Based Feature Detection Wennie Tabib School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 wtabib@andrew.cmu.edu Abstract Fast, accurate, autonomous robot navigation is essential

More information