Feature Detection and Description: Techniques and Algorithms, Exams of Computer Science

Various feature detection techniques, including differential and statistical methods, edge detection, and corner detection. It covers concepts such as derivatives, scale and smoothing, variance, and connectivity in discrete domains. The document also discusses edge linking and grouping, correspondences, and shape detection using the hough transform.

Typology: Exams

Pre 2010

Uploaded on 08/30/2009

koofers-user-qz6
koofers-user-qz6 🇺🇸

10 documents

1 / 35

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Feature Detection
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23

Partial preview of the text

Download Feature Detection and Description: Techniques and Algorithms and more Exams Computer Science in PDF only on Docsity!

Feature Detection

Features

  • Places where intensities vary is some prescribed way in a small neighborhood
  • How to quantify this variability
    • Derivatives – direcitonal derivatives, magnitudes - Scale and smoothing
    • Statistics
      • Variance of some property (Gaussian weights on neighborhood)

Other Types of Features

  • Lines (contrast, width, orientation)
  • Corners (contrast, angle, orientation)
  • Ridges/valleys
  • Line ends f

Edges

  • Places of “sharp” change in brightness
  • How to quantify this…
  • In 1D - model
    • Gauss conv w/step
      • f(x) = g(x)*s(x)
      • Derivative of step is delta

Generalizing To Multiple

Dimensions

  • Marr-Hildreth
    • Gradient threshold
    • Zero crossings in the Laplacian of f(x)
    • f xx (x) + f yy (x) = 0 ; f x (x) 2 + f y (x) 2 > T 2
  • Canny Edges (1980s)
    • Do nonmaximal suppression along the direction of the gradient

Canny Edges

  • Preprocessing - denoising
  • Derivatives - computed with kernels
  • Zero crossings - 8-connected thin lines
  • Hysterises thresholding (on gradient)
    • All pixels that satisfy zero-crossing and gradient

      Thi are edges - All accept all pixels that in the Thi connected components using Tlo - Lower gradient edges can be brought in if they are connected to high-gradient edges Thi –> edges Tlo –> not edges Tlo –> edges

Connected Component

  • A subset S of pixels in an image such that
    • For any pair of pixels [(a),(b)] E S, there exists a k-connected path between (a) and (b).
  • Usefulness: find connected components S in an image that satisfy some conditions - Pixel conditions P(a) - Threshold or some other grey-level test - Region conditions R(S) - Aggregate quantities such as size, length, etc.
  • Algorithm: flood fill

Flood Fill

  • Highlight regions in an image
  • “Test(i, j)” - is value at pixel (i,j) between a and b
  • Inputs: seed, values a&b
  • Data structures: input array, output array, list of grid points to be processed

Corners

  • Places where gradient directions vary (at some scale) - + high gradient (edge) possibly
  • How to capture this…

Level Sets of an Image

  • Level set – set of points f(x, y)=k
    • “isophote”, “isocontour”, “isosurface”(3D) Family of embedded contours Greyscale image

Corners – differential approach

  • High derivative of normal in direction perpendicular to gradient
  • This is level-set/isophote curvature–κ

Corners – differential approach

  • Non-maximal supression
  • Or local max of
    • Compare to neighbors
      • Canny edge Has a “sign” convex/concave

Finding Local Point Maxima

  • Zero crossings of x and y derivatives
  • Pixel greater than its neighbors (4 or 8 connected)
  • Threshold and find center of mass of connected component

VISPack Code

im = im.gaussDiffuse(3.0); im_dx = im.dx(); im_dy = im.dy(); grad_mag = (im_dx.power(2) + im_dy.power(2)).sqrt(); curve = (im.dx(2)im_dy.power(2) + im.dy(2)im_dx.power(2) - 2.0im_dx.dy()im_dxim_dy).abs() /(grad_mag.power(2) + (float)1.0e-2); curve = curve.setBorder(0.0f, 2); curve = grad_magcurve.abs();