CS498
Outcomes
Key
- Normal (on exam)
- Added (on exam)
- (to be reviewed)
To be covered in more depth later (not on exam) Removed from objectives(not on exam)
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
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 why a system of linear equations may have only one solution, infinitely many solutions, or no solution.- Explain how an overconstrained set of linear equations can be solved to find an approximate solution
- Explain the role of the matrix inverse
Explain under what conditions a matrix inverse existsExplain how you can find 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 "/".
Compute the trace of a small matrixCompute the trace of a matrix, given its eigenvaluesCompute the determinant of a 2x2 matrixCompute the determinant of a matrix, given its eigenvalues- Explain why the trace and determinant are preferable to compute over computing the eigenvalues
Define positive semi-definite matrixGive the key property eigenvalues of a positive semi-definite matrix
Lab 2: Homographic image warping
- (to be reviewed)
Explain the sense(s) in which rotation is linear - (to be reviewed)
Explain how linear transformations can be represented with matrices - Create a transform to rotate an image
- Create a transform to scale an image
- (to be reviewed)
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
an affine ora full projective transformation - Describe the effect of
affine andfull projective transformations on an image - (to be reviewed)
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
Define the term image interpolationExplain why image interpolation is important- Apply a homographic transform to a 2D image point
- Apply a homography to an image
Apply an arbitrary scaling and rotation to an image using image interpolation. (An important part of the SIFT algorithm.)Define the term robustnessDefine the term alpha-channelBlend images using alpha-compositing
Lab 3: Interest-point detection
- Explain why image point correspondences are useful for multi-camera geometry
- (later)
Explain why image patches are useful for image interpretation - (later)
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
- (to be reviewed)
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
pyramidstack is computed - Describe the images that make up the scale-space representation of an image
Explain how an image can be reconstructed from its scale-space representationExplain why an image pyramid can speed up processingPredict the location of an image feature in a scale-space pyramidList the two potential causes of gaps between resolution stacks in a scale-space pyramid, and explain why we need three extra layers to avoid themExplain how to avoid gaps when moving from one pyramid resolution to another
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
Implement illumination-invariance using derivative filtersImplement illumination-invariance using histogram trimming and normalizationExplain the two essential steps to achieving rotation invariance in the extraction of SIFT feature descriptorsExplain the role of the histogram in achieving robustness to feature localization errors in SIFT and HoGExplain how a Gaussian window increases the repeatability of a SIFT featureExplain the role of histogram normalization in achieving illumination invarianceCreate composite transformations from rotations and translations to create acoordinate transformExplain why sub-pixel feature-point selection improves the performance of SIFT. (We will not implement this feature.)Create a transform to sample a desired rotated image regionMap theta values back into the range -pi to pi using the modulus (mod
) function
Lab 5: Image alignment using SIFT feature matching
- Explain how features are matched in SIFT
Explain how the 2nd-nearest neighbor can be used to reduce false-positives in SIFTExplain the advantage of the K-D tree for SIFT feature matching- Explain how to remove false point-matches using the RANSAC algorithm
- Explain how RANSAC detects outliers and inliers
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
Explain how the best match can be determined with RANSACExplain 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
a known planeusing 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
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
(later?) Explain the alternative to a distance threshold used by the SIFT algorithm(later?) Illustrate the differences between these algorithms with two-dimensional figures(later?) Explain why distances in high-dimensional space are often nearly equal
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
the advantage ofhow a Haar-like feature is computed. - Describe how a Haar-like feature is like a blurred derivative filter
Illustrate the strategy used by a linear Support Vector Machine to classify points in two dimensions
Cut objectives
All objectives beyond this point have been cut.
Face Recognition
Explain the difference between face detection and face recognitionArgue for (or against) face recognition being able to recognize anyone on the streetExplain the role of resolution in face recognition performanceExplain what an eigenface is
Structure from motion
Define triangulationDefine structure from motionExplain (at a high level) how to compute structure from motion for a pair of camera imagesExplain (at a high level) how bundle adjustment works
Dense motion estimation
Explain how disparity can be computed along scan lines for a calibrated image pairCompute depth from disparityExplain the importance of smoothing parameters when computing stereo correspondences
3D Reconstruction and Structured Light
Explain how structured light can be use to reconstruct a 3D sceneExplain the key components of a Kinect scanner
Image-based rendering
Define image-based renderingDescribe a basic strategy for view interpolationExplain how holes can appear in a view-interpolated image, and explain a strategy for filling them