@Reference(author={"Cootes, T. F.","Taylor, C. J."},title="Statistical Models of Appearance for Computer Vision",type=Unpublished,month="October",year="2001",url="http://isbe.man.ac.uk/~bim/Models/app_model.ps.gz") @Reference(type=Inproceedings,author={"C. J. Taylor","D. H. Cooper","J. Graham"},title="Training models of shape from sets of examples",year="1992",booktitle="Proc. BMVC92, Springer-Verlag",pages={"9","","18"}) public class PointDistributionModel extends Object
PointLists with
corresponding points (the ith point in each PointList is the same
landmark).
The pdm models the mean shape and the variance from the mean of the top N
principal components. The model is generative and can generate new shapes
from a scaling vector. To ensure that newly generated shapes are plausible,
scaling vectors have PointDistributionModel.Constraints applied to them.| Modifier and Type | Class and Description |
|---|---|
static class |
PointDistributionModel.BoxConstraint
A constraint that ensures that each individual element of the scaling
vector is within +/- x standard deviations of the model.
|
static interface |
PointDistributionModel.Constraint
Interface for modelling constraints applied to the scaling vector of
PointDistributionModels so that generated models are plausible. |
static class |
PointDistributionModel.EllipsoidConstraint
Constrain the scaling vector to a hyper-ellipsoid.
|
static class |
PointDistributionModel.NullConstraint
A constraint that does nothing.
|
| Modifier and Type | Field and Description |
|---|---|
protected PointDistributionModel.Constraint |
constraint |
protected int |
maxIter |
protected PointList |
mean |
protected int |
numComponents |
protected PrincipalComponentAnalysis |
pc |
| Constructor and Description |
|---|
PointDistributionModel(List<PointList> data)
Construct a
PointDistributionModel from the given data with a
PointDistributionModel.NullConstraint. |
PointDistributionModel(PointDistributionModel.Constraint constraint,
List<PointList> data)
Construct a
PointDistributionModel from the given data and
PointDistributionModel.Constraint. |
| Modifier and Type | Method and Description |
|---|---|
IndependentPair<Jama.Matrix,double[]> |
fitModel(PointList observed)
Determine the best parameters of the PDM for the given model.
|
PointList |
generateNewShape(double[] scaling)
Generate a plausible new shape from the scaling vector.
|
PointList |
getMean() |
double[] |
getStandardDeviations(double multiplier)
Compute the standard deviations of the shape components, multiplied by
the given value.
|
void |
setNumComponents(int n)
Set the number of components of the PDM
|
void |
setNumComponents(PrincipalComponentAnalysis.ComponentSelector selector)
Set the number of components of the PDM using a
PrincipalComponentAnalysis.ComponentSelector
. |
protected PointDistributionModel.Constraint constraint
protected PrincipalComponentAnalysis pc
protected int numComponents
protected int maxIter
public PointDistributionModel(List<PointList> data)
PointDistributionModel from the given data with a
PointDistributionModel.NullConstraint.data - public PointDistributionModel(PointDistributionModel.Constraint constraint, List<PointList> data)
PointDistributionModel from the given data and
PointDistributionModel.Constraint.constraint - data - public void setNumComponents(int n)
n - number of componentspublic void setNumComponents(PrincipalComponentAnalysis.ComponentSelector selector)
PrincipalComponentAnalysis.ComponentSelector
.selector - the PrincipalComponentAnalysis.ComponentSelector to apply.public PointList generateNewShape(double[] scaling)
PointDistributionModel.Constraint before being
used to generate the model.scaling - scaling vector.public double[] getStandardDeviations(double multiplier)
multiplier - the multiplierpublic IndependentPair<Jama.Matrix,double[]> fitModel(PointList observed)
observed - the observed model.