# Problem Set III Solution

\$30.00 \$24.00

Quantity

## Description

Point Distribution Models Read the classic paper by Cootes and Taylor on active shape models (see the PDF le of ASM) and write a program to construct a point distribution model from a set of point sets for faces (see below for a description of the data). A number of matlab utility functions are provided which you shall use for your solution. Document all equations that you use and explain what they are used for. All results should be clearly reported and discussed in the report.

1. (50%) Write a function that computes a mean point set and aligns all other point sets to it using a similarity transformation model of the form

 sin cos y ty (x; y) = s cos sin x + tx ;

where s > 0 denotes scale, is a rotation angle and tx and ty are the x and y components for the translation respectively. Follow the steps

1. Set the mean to the rst point set, x = x1.

2. Align all xi to x by minimizing

 M x cos sin xji tx E(s; ; tx; ty) = k s k 2 j=1 y sin cos yji ty X

to obtain fx^1; ; x^M g. Note, getAlignedPts.m (see description below and Figure 1) performs this computation for one point set. See Appendix A in the ASM paper for a description of the solution implemented in getAlignedPts.m. Note that the solution method does not solve directly for and s, but instead for s sin and s cos . This allows for a solution by solving a linear system.

3) Calculate the new mean as

N

x = N1 X x^i

i=1

1. Align x to x1 (and use it as the new x )

2. Goto 2 unless x has converged.

1. (50%) Write a function to extract the three most important shape variations using principal component analysis. Show the results by plotting shape variations with respect to these three principal components independently by varying between two standard deviations around the mean.

Before alignment After alignment

Figure 1: Aligning a face dataset to another using getAlignedPts.m

Documentation of the data les and matlab scripts

le/directory description

dat/

Contains all the point-data. Points are already correctly ordered, i.e., the ordering implies the correspondence.

Allows you the read one of the data les (It’s a very easy format with a short header and a list of (x,y) coordinates; if you don’t want to use matlab it should be straightforward to parse it with any other software.)

Reads all the cases at draws them on top of each other. This gives you an idea of the misalignment that is present.

getAlignedPts.m

Aligns one point set with respect to the other using a similarity transform.

You can use this as a basis for your PDM algorithm.

testAlign.m

A test script that shows you how to use getAlignedPts.m

drawFaceParts.m

Draws the face corresponding to a set of points.

2

0