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
  • Iterate over all the elements of an image using a for-loop
  • Note that for-loops expect a row as the range, not a column

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 dealing with edge cases where the filter runs off of the image.
    • (✓) 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
    • (✓) 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
  • (✓) 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

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 invariance 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
  • (✓) Describe the various steps of the SIFT algorithm's two stages
  • (✓) 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
  • Describe why it is necessary remove interest-points with a low value in the DoG stack
  • (✓) 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.

Lab 4: Image Transformations

Linear Algebra Review

  • (✓) Spelect 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
  • 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 (a full homography)
  • (✓) Describe the effect of full projective transformations (a full homography) 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 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