Computer Vision
• Face Detector

Due: October 16

Code

Questions

  1. Detecting and computing symmetries of 3D objects has many applications in shape analysis, shape matching, shape representation, object detection, object recognition, etc. Assume you have been given an oriented point cloud: a dense set of 3D points (x,y,z) and corresponding surface normals (n_x,n_y,n_z), evenly distributed over the surface of some object. Using the Hough transform, develop an algorithm for detecting the planes of symmetry for this object.

  2. Imagine you are given two vectors, a "signal" S and a "template" T. Assume T is shorter than S. Now, you want to find the position within S at which T is the best match according to the sum of squared differences (SSD) criterion. That is, given an offset k at which you are looking for T within S, you want to find the k that minimizes:

    Show how you can do this without an explicit loop over k by computing two convolutions:
    1. S convolved with some variant of T
    2. The vector consisting of the square of each element of S, convolved with a vector the same length as T but consisting of all ones.
    You will need this result for the face detection portion of the assignment below.

  3. Suppose you only need to determine the most significant eigenvector (i.e., that whose corresponding eigenvalue has the largest magnitude) of an arbitrary NxN matrix A. Although computing the full SVD of A will certainly do the job, this approach is rather inefficient since it requires computing a complete decomposition of the matrix. This question asks you to devise a more efficient strategy.
    Assume A is not singular and has eigenvalues and corresponding eigenvectors . First, convince yourself that we can write any arbitrary N-element vector as a linear combination of these eigenvectors:

    Next, note what happens when we multiply v by A:

    Use this result to devise a simple iterative algorithm for approximating the most significant eigenvector of A. Discuss the expected running time of your algorithm as it relates to the eigenvalues of A. There is a situation (property of A) in which you will not be able to identify the eigenvector with the largest eigenvalue using this trick. What is it? What is a real-world application of this algorithm? Lastly, describe how to use this same property to find the second most significant eigenvector, the third, etc.
Face Detector
Grayscale (2 control points - eyes)
Color (2 control points - eyes)
Color (3 control points - eyes and mouth)
Input Image
Sum-Squared Difference (B&W average face)
Sum-Squared Difference (Color average face)

Face Decomposition