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