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 numbersGive 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