CS498
Outcomes

Global Protect

  • To restart if it is continually "connecting", open services (from the control panel).
    • Stop the service PanGPS
    • Start the service PanGPS
    • Ask me if more detailed steps desired

Matlab

  • Without a loop, write matlab code to create an array containing a given range of numbers
  • Without a loop, write matlab code to apply various operators and functions to every element of an array
  • Concatenate matrices together using Matlab

Lab 1: Introduction to Image Processing in Matlab

  • Manipulate an image as an array of numbers
  • Filtering: convolution and correlation
    • Explain the advantages and disadvantages of the four standard ways of dealin with edge cases where the filter runs off of the image.
    • Filtering: Gaussian blurring
    • Sample a gaussian PDF to produce a filter, normalized to have a sum of 1
    • Explain why a filter's values should generally sum to 1 if it only has positive values.
    • Blur an image using Gaussian filtering
    • Describe the function of the two-sample derivative filter
    • Without a loop, write matlab code to create a derivative image
    • Explain why the edge filter's values should sum to 0
    • Find edges using derivative filtering
  • Create and interpret edge magnitude and phase images
  • Explain why all colors can be represented by just three numbers
  • Give the RGB values for Red, Blue, Green, Cyan, Magenta, and Yellow
  • Convert an image to grayscale by averaging RGB values
  • Compute histograms of image intensities
  • Interpret intensity histograms to compare the brightness of two images
  • Describe how a gradient vector can be computed
  • Describe the meaning of a gradient vector's angle and magnitude
  • Compute a weighted histogram of edge gradient directions

Linear Algebra Review

  • Select the appropriate element from a matrix based on its indices
  • Multiply two small matrices by hand
  • Explain the constraints on dimensions when multiplying two matrices
  • Create a matrix with identical rows or columns using matrix multiplication
  • Explain how an overconstrained set of linear equations can be solved to find an approximate solution
  • Explain the role of the matrix inverse
  • Explain why, (e.g. when using matlab) you usually don't need to find an inverse.
  • Solve a set of linear equations in Matlab using the fancy "matrix divide" operators "\" and "/".
  • Explain why the trace and determinant are preferable to compute over computing the eigenvalues

Lab 2: Homographic image warping

  • Explain the sense(s) in which rotation is linear
  • Explain how linear transformations can be represented with matrices
  • Create a transform to rotate an image
  • Create a transform to scale an image
  • Create a transform to translate an image
  • Apply transformations to points
  • Apply transformations to images
  • Explain why, to transform I1 onto I2 using homography H, you actually need to use inv(H).
  • Write a matrix for a full projective transformation
  • Describe the effect of full projective transformations on an image
  • Create a composite transform rotating an image about a desired point
  • Convert between "true" and homographic representations of a point
  • Explain why a full projective homography is important
  • Compute a homography based on feature-point correspondences
  • Apply a homographic transform to a 2D image point
  • Apply a homography to an image

Lab 3: Interest-point detection

  • Explain why image point correspondences are useful for multi-camera geometry
  • Explain why image patches are useful for image interpretation
  • Explain the role of features in reducing image variations
  • Define repeatability
  • Define illumination-invariance
  • Explain why illumination-invariance is important
  • Describe rotation invariance
  • Explain why rotation invariance is important
  • Define scale-invariance
  • Explain the importance of scale invariance
  • Define interest-point
  • Describe how interest-points can be detected
  • Implement interest-point detection for SIFT
  • Explain how SIFT feature-point detection achieves illumination invariance
  • Explain how SIFT feature-point detection achieves rotation invariance
  • Explain how a matrix can be used to represent an ellipse
  • Explain how the dimensions of the ellipse can be determined from the eigenvalues of the matrix
  • Define the Hessian matrix
  • Explain how a surface can be modelled at a minimum/maximum by fitting a parabaloid to the ellipse
  • Explain how points can be distinguished from lines by testing the ratio of the Hessian matrix's trace to its determinant.
  • Define scale-space
  • Explain how scale-space representations can be used to match different images of the same object
  • Explain how feature-points can be selected from scale-space
  • Explain why extrema in scale-space should be compared not only spatially, but also across scale
  • Explain how a difference-of-gaussian stack is computed
  • Describe the images that make up the scale-space representation of an image

Lab 4: Interest-point description

  • Explain the role of the gradient in achieving illumination invariance
  • (later?) Explain the role of edge direction in describing an image patch
  • (later?) Explain the role of coordinate transformation and sampling in achieving rotation invariance

Lab 5: Image alignment using SIFT feature matching

  • Explain how features are matched in SIFT
  • (optional?) Explain how the 2nd-nearest neighbor can be used to reduce false-positives in SIFT
  • Explain how to remove false point-matches using the RANSAC algorithm
  • Explain how RANSAC detects outliers and inliers
  • (optional?) Estimate the number of RANSAC iterations needed to find a match
  • Explain why it is usually best to use the minimum number of features possible to find the initial estimate of the transform when using RANSAC
  • Use RANSAC to find correct matches in the midst of many false matches
  • Explain how RANSAC determines if a match is an outlier
  • (optional?) Explain how the best match can be determined with RANSAC
  • (optional?) Explain how these metrics may fail, and how to correct for failure

Lab 6: Camera Geometry

  • Intrinsically and extrinsically calibrate a camera using prebuilt tools
  • Interpret the parameters of a camera's intrinsic and extrinsic calibration matrices
  • Project points from a world coordinate system into a camera coordinate system
  • Locate points on the unit plane using back-projection from a known camera calibration

Thresholding and Morphology

  • Describe the simplest thresholding algorithm
  • Threshold a very small image by hand
  • Describe the effect of simple thresholding on a histogram.
  • Explain the importance of adaptive thresholding
  • Explain the complementary roles of thresholding and morphological operators
  • Perform dilation and erosion on very small images by hand
  • Explain how dilation+erosion joins pixels together
  • (later?) Explain how to remove speckle noise from a binary image

Face Detection and Recognition

  • Explain the difference between face detection and face recognition

Modern Computer Vision -- detection, features, machine learning, and ... detection

  • Define feature in the context of machine learning
  • Explain how heuristic features aid in machine learning
  • Explain why features are often hand-constructed (heuristic)
  • Explain how some machine learning problems can be viewed as a high-dimensional space partitioning problem
  • Describe the difference between a binary classification and a regression machine learning problem
  • Define training data
  • Define testing data
  • (later?) Describe how supervised, unsuperised, and semi-supervised learning can be distinguished based on their use of training data

Machine Learning Algorithm Performance

  • Define True Positive, False Positive, True Negative, False Negative
  • Explain why increasing true positives alone is not meaningful
  • Explain how the tradeoffs associated with changing an acceptence threshold can be illustrated with an ROC (Receiver Operator Characteristic) diagram
  • Draw points on an ROC curve
  • Interpret points and lines on an ROC curve
  • (optional?) Explain why an ROC curve is always convex
  • Explain why some ROC curves have axes ranges [0-1] on both axes
  • (later) and others do not

Detection Algorithms

  • Describe the scanning window approach to object detection
  • Given the number of windows in an image, determine the false-positive rate per window necessary to achieave a given false-positive rate per image or per sequence of images
  • Describe the advantage of a cascade of classifiers
  • Describe how a Haar-like feature is computed.
  • Describe how a Haar-like feature is like a blurred derivative filter
  • (optional?) Illustrate the strategy used by a linear Support Vector Machine to classify points in two dimensions