Class CAAMModel
- java.lang.Object
-
- gov.nih.mipav.view.renderer.WildMagic.AAM.CAAMObject
-
- gov.nih.mipav.view.renderer.WildMagic.AAM.CAAMModel
-
- Direct Known Subclasses:
C_AAMMODEL,CAAMModelMS,CAAMModelSeq
public class CAAMModel extends CAAMObject
This is the Java modified version of C++ active appearance model API (AAM_API). It is modified with a subset of required functions for automatic MRI prostate segmentation. AAM-API LICENSE - file: license.txt This software is freely available for non-commercial use such as research and education. Please see the full disclaimer below. All publications describing work using this software should cite the reference given below. Copyright (c) 2000-2003 Mikkel B. Stegmann, mbs@imm.dtu.dk IMM, Informatics & Mathematical Modelling DTU, Technical University of Denmark Richard Petersens Plads, Building 321 DK-2800 Lyngby, Denmark http://www.imm.dtu.dk/~aam/ REFERENCES Please use the reference below, when writing articles, reports etc. where the AAM-API has been used. A draft version the article is available from the homepage. I will be happy to receive pre- or reprints of such articles. /Mikkel ------------- M. B. Stegmann, B. K. Ersboll, R. Larsen, "FAME -- A Flexible Appearance Modelling Environment", IEEE Transactions on Medical Imaging, IEEE, 2003 (to appear) ------------- 3RD PART SOFTWARE The software is partly based on the following libraries: - The Microsoft(tm) Vision Software Developers Kit, VisSDK - LAPACK DISCLAIMER This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any non-commercial purpose, and to alter it, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -- No guarantees of performance accompany this software, nor is any responsibility assumed on the part of the author or IMM. This software is provided by Mikkel B. Stegmann and IMM ``as is'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall IMM or Mikkel B. Stegmann be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. $Revision: 1.4 $ $Date: 2003/04/23 14:49:15 $ The core Active Appearance Model object that hold all eigenmodels, prediction matrices etc. Build by a CAAMBuilder.- Author:
- Ruida Cheng
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanm_bUseConvexHullflag to use convexhull.protected booleanm_bUseTangentSpaceflag to use targent space.protected CAAMDeformPCAm_CombinedPCAThe combined PCA.protected doublem_dAddExtentsflag to add extents.protected doublem_dAMFVersionThe AMF format version.protected doublem_dBuildTimemodel build time.protected CAAMDeformPCAm_DisplacementPCAdeform displacement PCA.protected doublem_dMeanShapeSizemean shape size.protected intm_iCombinedTrunccombined truncation.protected intm_iLearningMethodwhich learning method to use.protected intm_iModelReductionflag for model reduction.protected intm_iNShapesthe number of shapes.protected intm_iShapeTruncshape truncation.protected intm_iTextureSamplesThe number of texture samples in the model.protected intm_iTextureTrunctexture truncation.protected CDMatrixm_mQgEVThe texture part of the combined eigenvectors.protected CDMatrixm_mQsEVThe shape part of the combined eigenvectors.protected CDMatrixm_mShape2PixelWeightsThe shape-to-pixel weights.protected CDMatrixm_mShapeInstanceCache shape matrix.protected CDMatrixm_mTextureInstanceCache texture matrix.protected CAAMAnalyzeSynthesizem_pAnalyzeSynthesizeAAM synthesize analysis.protected CAAMReferenceFramem_pReferenceFrameAAM reference frame.protected CAAMDeformm_pShapeBasisThe shape basis.protected CAAMDeformm_pTextureBasisThe texture basis.protected CAAMTransferFunctionm_pTextureTFThe texture transfer function.protected CDMatrixm_R_cThe parameter prediction matrixprotected CDMatrixm_R_tprotected java.lang.Stringm_sCurrentAnalyzeIdCurrent analyzer name.protected CAAMDeformPCAm_ShapePCAThe shape PCA.protected CAAMShapem_sMeanAShapeCached mean shape.protected CAAMDeformPCAm_TexturePCAThe texture PCA.protected CDVectorm_vMeanTextureThe mean texture.protected CDVectorm_vMeanTextureOrgthe mean texture original.protected CDVectorm_vPoseParameterUpdateConstraintspose parameters update.protected CDVectorm_vShapeParameterConstraintsMeanshape parameters upate.protected CDVectorm_vShapeParameterConstraintsSDprotected CDVectorm_vTextureVarThe variance of each normalized pixel in the texture model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleAddExtents()Returns the amount shape extents added (warning: shape extents will be remove in later versions).booleanApproxExample(java.lang.String filename, ModelSimpleImage outImg)Doing model approximation of an (unseen) example.CAAMModelassign(CAAMModel m)Assignment operator.voidCombined2ShapeParam(CDVector c, CDVector b_s)Converts combined model parameters to shape parameters.voidCombined2TexParam(CDVector c, CDVector b_g)Converts combined model parameters to texture parameters.CAAMDeformPCACombinedPCA()Returns the combined PCA.voidConstrainSearchParameters(CDVector c, CDVector pose)Constrain the pose and model parameters to be within some reasonable limits.voiddispose()dispose memorybooleanEstimatePose(ModelSimpleImage image, CAAMShape shape, CDVector pose)Estimate the pose of a shape using the pose regression matrix.intgetNumberShapeParameters()Get the the number of eigen values in PCA.booleanIsConvexHullUsed()Returns true if the texture model is based on the convex hull.CAAMShapeMeanShape()Returns the mean shape.doubleMeanShapeSize()Returns the mean shape size, i.e. the size of the reference shape.CDVectorMeanTexture()Returns the mean texture.doubleModelEstimateTexDiff(ModelSimpleImage image, CDVector c, CAAMShape estimate, CDVector diff, int similaritym)Wrapper to calculate the pixel difference from a model instance and an image.doubleModelEstimateTexDiff(ModelSimpleImage image, CDVector c, CAAMShape estimate, CDVector diff, int similaritym, boolean useInterpolation)Calculates the pixel difference from a model instance and an image.voidModelImage(CDVector c, ModelSimpleImage outImg, CAAMShape matchPose)Generate model instance (match pose to 'shape') and render the instance into the image 'img'.voidModelImage(CDVector c, ModelSimpleImage outImg, CAAMShape matchPose, boolean fitTexture)Generates a model image based on the parameters in 'c' with various options.voidModelImageEx(CAAMShape shape, CDVector texture, ModelSimpleImage outImg, boolean renderImage, boolean fitTexture)Generates a synthetic image from the AAM using the model parameters in 'c'.intModelReduction()Return model reduction.intNBands()Returns the number of bands in the modelvoidNormalizeTexture(CDVector texture)Normalizes a texture vector.intNTextureSamples()Returns the number of samples in the texture model.CAAMOptResOptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c)Wrapper for model optimization.CAAMOptResOptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, java.util.Vector<CAAMOptState> pOptStates)Wrapper for model optimizationCAAMOptResOptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, java.util.Vector<CAAMOptState> pOptStates, boolean disableDamping)Performs AAM optimization of a shape containing initial pose and a set of model parameters (c).CAAMOptResOptimizeModelByFineTuning(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, int similaritym, int optimizer)Perform general-purpose optimization of the AAM using simulated annealing, conjugate gradient, steepest descent, BGFS or pattern search.CDMatrixQg()The texture part of the combined PCA eigenvectors.CDMatrixQs()The shape part of the combined PCA eigenvectors.CDMatrixRc()Texture parameter update prediction matrix.booleanReadModel(java.lang.String filename)Reads the complete AAMModel from disk.intReductionFactor()Returns the reduction factor of the training set that this model wasCAAMReferenceFrameReferenceFrame()Returns the reference frame of the model.CAAMShapeReferenceShape()Returns the reference shape where all texture sampling and comparison should be done.CDMatrixRt()Pose parameter update prediction matrix.intSampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples)Wrapper to build a texture vector from an image and a shape.intSampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize)Wrapper to build a texture vector from an image and a shape.intSampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize, boolean useInterpolation)Wrapper to build a texture vector from an image and a shape.intSampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize, boolean useInterpolation, boolean map)Builds a texture vector from an image and a shape.voidSetPoseParameterUpdateConstraints(CDVector pc)Sets constraints on the pose parameter updates.voidSetShapeParameterUpdateConstraints(CDVector mean, CDVector sd)Sets user-specified shape parameter update constraints.voidShape2Combined(CAAMShape shape, ModelSimpleImage image, CDVector c)Projects a shape into a set of c parameters.voidShape2Param(CAAMShape shape, CDVector b_s)Projects a shape into a set of shape parameters,CDMatrixShape2PixelWeights()Return shape to pixel weight.CAAMDeformShapeBasis()Returns the shape PCA.ModelSimpleImageShapeFreeImage(CDVector textureSamples, ModelSimpleImage outImg)Wrapper to generates a shape free image using a vector of texture samples.ModelSimpleImageShapeFreeImage(CDVector textureSamples, ModelSimpleImage outImg, boolean deMap)Generates a shape free image (that is; a mean shape image) using a vector of texture samples.voidShapeFreeImage(CDVector textureSamples, CDMatrix m, boolean deMap, boolean normalize)Generates a shape free image (that is; a mean shape image) using a vector of texture samples.voidShapeInstance(CDVector c, CAAMShape outShape)Generates a shape based on a set of model parameters.CAAMDeformPCAShapePCA()Returns the shape PCA.voidShapePCAInstance(CDVector b_s, CAAMShape outShape)Generates a shape based on a set of shape b-parameters.voidShapeTex2Combined(CAAMShape shape, CDVector texture, CDVector c)Projects the shape and texture into c-space i.e. the combined model parameters.voidShapeTex2Param(CAAMShape shape, CDVector texture, CDVector b)Extract the b-parameters from a shape and corresponding texture by inverting the shape and texture pca projection.voidShapeTexParam2Combined(CDVector b, CDVector c)Transforms the concatenated b-parameters into combined model parameters.voidShapeTexParam2Combined(CDVector b_s, CDVector b_g, CDVector c)Projects shape and texture parameters into the combined eigenspace.voidShapeTexParam2Combined(java.util.Vector<CDVector> bVectors, java.util.Vector<CDVector> cVectors)Converts a set of b-vectors to combined model parameters (c-vectors).CAAMDeformTextureBasis()Returns the texture PCA.voidTextureInstance(CDVector c, CDVector outTexture)Generates a texture based on a set of model parameters.CAAMDeformPCATexturePCA()Returns the texture PCA.CAAMTransferFunctionTextureTF()Return texture transfer function.booleanWriteModel(java.lang.String filename)Write the AAM model to text file or binary file.booleanWriteModel(java.lang.String filename, boolean txt_only)Writes the complete AAMModel to disk as a .txt and an .amf file.voidWriteVarianceMap(java.lang.String filename)Plots the variance of each pixel in the model over the training set into the mean shape and saves the image.-
Methods inherited from class gov.nih.mipav.view.renderer.WildMagic.AAM.CAAMObject
FromFile, ToFile
-
-
-
-
Field Detail
-
m_pAnalyzeSynthesize
protected CAAMAnalyzeSynthesize m_pAnalyzeSynthesize
AAM synthesize analysis.
-
m_pReferenceFrame
protected CAAMReferenceFrame m_pReferenceFrame
AAM reference frame.
-
m_pShapeBasis
protected CAAMDeform m_pShapeBasis
The shape basis.
-
m_pTextureBasis
protected CAAMDeform m_pTextureBasis
The texture basis.
-
m_ShapePCA
protected CAAMDeformPCA m_ShapePCA
The shape PCA.
-
m_TexturePCA
protected CAAMDeformPCA m_TexturePCA
The texture PCA.
-
m_CombinedPCA
protected CAAMDeformPCA m_CombinedPCA
The combined PCA.
-
m_mShape2PixelWeights
protected CDMatrix m_mShape2PixelWeights
The shape-to-pixel weights.
-
m_dAMFVersion
protected double m_dAMFVersion
The AMF format version.
-
m_mQsEV
protected CDMatrix m_mQsEV
The shape part of the combined eigenvectors.
-
m_mQgEV
protected CDMatrix m_mQgEV
The texture part of the combined eigenvectors.
-
m_vMeanTexture
protected CDVector m_vMeanTexture
The mean texture.
-
m_vMeanTextureOrg
protected CDVector m_vMeanTextureOrg
the mean texture original.
-
m_sMeanAShape
protected CAAMShape m_sMeanAShape
Cached mean shape.
-
m_mShapeInstance
protected CDMatrix m_mShapeInstance
Cache shape matrix.
-
m_mTextureInstance
protected CDMatrix m_mTextureInstance
Cache texture matrix.
-
m_vTextureVar
protected CDVector m_vTextureVar
The variance of each normalized pixel in the texture model.
-
m_iTextureSamples
protected int m_iTextureSamples
The number of texture samples in the model.
-
m_iNShapes
protected int m_iNShapes
the number of shapes.
-
m_dMeanShapeSize
protected double m_dMeanShapeSize
mean shape size.
-
m_R_c
protected CDMatrix m_R_c
The parameter prediction matrix
-
m_R_t
protected CDMatrix m_R_t
-
m_pTextureTF
protected CAAMTransferFunction m_pTextureTF
The texture transfer function.
-
m_iModelReduction
protected int m_iModelReduction
flag for model reduction.
-
m_dAddExtents
protected double m_dAddExtents
flag to add extents.
-
m_bUseConvexHull
protected boolean m_bUseConvexHull
flag to use convexhull.
-
m_bUseTangentSpace
protected boolean m_bUseTangentSpace
flag to use targent space.
-
m_iLearningMethod
protected int m_iLearningMethod
which learning method to use.
-
m_iShapeTrunc
protected int m_iShapeTrunc
shape truncation.
-
m_iTextureTrunc
protected int m_iTextureTrunc
texture truncation.
-
m_iCombinedTrunc
protected int m_iCombinedTrunc
combined truncation.
-
m_sCurrentAnalyzeId
protected java.lang.String m_sCurrentAnalyzeId
Current analyzer name.
-
m_dBuildTime
protected double m_dBuildTime
model build time.
-
m_vPoseParameterUpdateConstraints
protected CDVector m_vPoseParameterUpdateConstraints
pose parameters update.
-
m_vShapeParameterConstraintsMean
protected CDVector m_vShapeParameterConstraintsMean
shape parameters upate.
-
m_vShapeParameterConstraintsSD
protected CDVector m_vShapeParameterConstraintsSD
-
m_DisplacementPCA
protected CAAMDeformPCA m_DisplacementPCA
deform displacement PCA.
-
-
Constructor Detail
-
CAAMModel
public CAAMModel()
Constructor. Set up the default settings.
-
CAAMModel
public CAAMModel(CAAMModel m)
Copy constructor.- Parameters:
m- Object to copy from.
-
-
Method Detail
-
Rc
public CDMatrix Rc()
Texture parameter update prediction matrix.- Returns:
- texture prediction matrix
-
Rt
public CDMatrix Rt()
Pose parameter update prediction matrix.- Returns:
- pose prediction matrix
-
Qg
public CDMatrix Qg()
The texture part of the combined PCA eigenvectors.- Returns:
- combined texture PCA
-
Qs
public CDMatrix Qs()
The shape part of the combined PCA eigenvectors.- Returns:
- combined shape PCA
-
ReferenceFrame
public CAAMReferenceFrame ReferenceFrame()
Returns the reference frame of the model.- Returns:
- refrence frame
-
NBands
public int NBands()
Returns the number of bands in the model- Returns:
- single channel to represent the gray scal intensity.
-
TextureTF
public CAAMTransferFunction TextureTF()
Return texture transfer function.- Returns:
- return texture transfer function
-
NTextureSamples
public int NTextureSamples()
Returns the number of samples in the texture model.- Returns:
- sample numbers
-
IsConvexHullUsed
public boolean IsConvexHullUsed()
Returns true if the texture model is based on the convex hull.- Returns:
- ture convex hull, false not
-
AddExtents
public double AddExtents()
Returns the amount shape extents added (warning: shape extents will be remove in later versions).- Returns:
- shape extents
-
MeanShape
public CAAMShape MeanShape()
Returns the mean shape.- Returns:
- mean shape
-
MeanTexture
public CDVector MeanTexture()
Returns the mean texture.- Returns:
- mean texture
-
Shape2PixelWeights
public CDMatrix Shape2PixelWeights()
Return shape to pixel weight.- Returns:
- weight
-
ShapePCA
public final CAAMDeformPCA ShapePCA()
Returns the shape PCA.- Returns:
- shape PCA
-
TexturePCA
public final CAAMDeformPCA TexturePCA()
Returns the texture PCA.- Returns:
- texture PCA
-
ShapeBasis
public CAAMDeform ShapeBasis()
Returns the shape PCA.- Returns:
- shape PCA.
-
TextureBasis
public CAAMDeform TextureBasis()
Returns the texture PCA.- Returns:
- texture PCA.
-
CombinedPCA
public CAAMDeformPCA CombinedPCA()
Returns the combined PCA.- Returns:
- combined PCA.
-
ModelReduction
public int ModelReduction()
Return model reduction.- Returns:
- flag for model reduction.
-
MeanShapeSize
public double MeanShapeSize()
Returns the mean shape size, i.e. the size of the reference shape.- Returns:
- mean shape size.
-
dispose
public void dispose()
dispose memory
-
ApproxExample
public boolean ApproxExample(java.lang.String filename, ModelSimpleImage outImg)Doing model approximation of an (unseen) example. Synthesizes an unseen example by projecting the shape and (normalized) texture into c-parameter space, generating a model instance and assigning it the appropriate pose (incl. denormalization).- Parameters:
filename- The base filename of an annotation. Ex. "scan.asf"outImg- The output image where the model approximation has been overlaid.- Returns:
- true on success, false if the image and/or annotation could not be read.
-
SetPoseParameterUpdateConstraints
public void SetPoseParameterUpdateConstraints(CDVector pc)
Sets constraints on the pose parameter updates. NOTICE: Currently, these are *not* saved along with the model and thus must be set each time a model is loaded.- Parameters:
pc- Parameter constraints (in absolute numbers).
-
SetShapeParameterUpdateConstraints
public void SetShapeParameterUpdateConstraints(CDVector mean, CDVector sd)
Sets user-specified shape parameter update constraints. NOTICE: These are currently not saved with the model.- Parameters:
mean- Some shape parameter configuration.sd- The standard diviations of the 'mean'.
-
ConstrainSearchParameters
public void ConstrainSearchParameters(CDVector c, CDVector pose)
Constrain the pose and model parameters to be within some reasonable limits.- Parameters:
c- The model parameters.pose- The pose parameters.
-
EstimatePose
public boolean EstimatePose(ModelSimpleImage image, CAAMShape shape, CDVector pose)
Estimate the pose of a shape using the pose regression matrix.- Parameters:
image- The image to search in.shape- The shape to determine the pose from.pose- The output pose vector.- Returns:
- True is ok, false if the shape is outside the image.
-
ModelImage
public void ModelImage(CDVector c, ModelSimpleImage outImg, CAAMShape matchPose)
Generate model instance (match pose to 'shape') and render the instance into the image 'img'.- Parameters:
c- combined model parametersoutImg- result imagematchPose- matched shape
-
ModelImage
public void ModelImage(CDVector c, ModelSimpleImage outImg, CAAMShape matchPose, boolean fitTexture)
Generates a model image based on the parameters in 'c' with various options.- Parameters:
c- A set of model parameters.outImg- The output imge.matchPose- A pointer to a shape. If not NULL the model generated by the set of c-parameters will be aligned wrt. pose to this shape.fitTexture- If matchPose is not NULL, the de-mapped and de-normalized texture will be fitted in a least squares sense to the texture in outImg given by the shape. Default true.
-
ModelImageEx
public void ModelImageEx(CAAMShape shape, CDVector texture, ModelSimpleImage outImg, boolean renderImage, boolean fitTexture)
Generates a synthetic image from the AAM using the model parameters in 'c'.- Parameters:
shape- The shape the texture vector should be mapped to.textureSamples- The texture vector to be warped into an image. Will be de-mapped and de-normalized.outImg- The output image (sized correctly inside this method, if renderInImage is false).renderImage- If true: 1) outImg is expected to be allocated. 2) the model is rendered with it's pose unchanged, thus the shape is expected to lie within the outImg This option is used for drawing the final optimization into the image or to draw a model approximation into the image 'outImg'. Default false.fitTexture- If renderImage is true, the de-mapped and de-normalized texture will be fitted in a least squares sense to the texture in outImg given by the shape. Default true.
-
ShapeFreeImage
public ModelSimpleImage ShapeFreeImage(CDVector textureSamples, ModelSimpleImage outImg)
Wrapper to generates a shape free image using a vector of texture samples.- Parameters:
textureSamples- texture samplesoutImg- result image- Returns:
- shape free image
-
ShapeFreeImage
public ModelSimpleImage ShapeFreeImage(CDVector textureSamples, ModelSimpleImage outImg, boolean deMap)
Generates a shape free image (that is; a mean shape image) using a vector of texture samples.- Parameters:
textureSamples- The texture vector to be warped into an image. De-normalizes (and demaps) inside this method.outImg- A reference to an output image. Resize of the image is done inside this method.- Returns:
- shape free image.
-
ShapeFreeImage
public void ShapeFreeImage(CDVector textureSamples, CDMatrix m, boolean deMap, boolean normalize)
Generates a shape free image (that is; a mean shape image) using a vector of texture samples.- Parameters:
textureSamples- The texture vector to be warped into an image. De-normalizes (and demaps) inside this method.m- A reference to an output image on matrix form. Resize of the matrix is done inside this method.deMap-
-
ModelEstimateTexDiff
public double ModelEstimateTexDiff(ModelSimpleImage image, CDVector c, CAAMShape estimate, CDVector diff, int similaritym)
Wrapper to calculate the pixel difference from a model instance and an image.- Parameters:
image- model imagec- parameter vectorestimate- estimaed shapediff- difference vectorsimilaritym- similarity measure type- Returns:
- similarity measure
-
ModelEstimateTexDiff
public double ModelEstimateTexDiff(ModelSimpleImage image, CDVector c, CAAMShape estimate, CDVector diff, int similaritym, boolean useInterpolation)
Calculates the pixel difference from a model instance and an image.- Parameters:
image- The image (input)c- Model parameters (in/output).estimate- The shape estimate (in/output).diff- The pixel difference vector (output) Resized inside.similaritym- Set the used similarity measure: 0 Non-normalised L_2 norm (default) 1 The "Mahalanobis" distance (texture samples are regarded independent to increase performance). 2 The Lorentzian error norm. 3 Absolute auto correlation of the residuals.- Returns:
- The similarity measure.
-
NormalizeTexture
public void NormalizeTexture(CDVector texture)
Normalizes a texture vector.- Parameters:
texture- Texture to be normalized.
-
OptimizeModel
public CAAMOptRes OptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c)
Wrapper for model optimization.- Parameters:
image- search images- init shapec- init model parameters- Returns:
- optimization result
-
OptimizeModel
public CAAMOptRes OptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, java.util.Vector<CAAMOptState> pOptStates)
Wrapper for model optimization- Parameters:
image- search images- init shapec- init parametersmaxIterations- max iterationspOptStates- optimization state- Returns:
- optimization result
-
OptimizeModel
public CAAMOptRes OptimizeModel(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, java.util.Vector<CAAMOptState> pOptStates, boolean disableDamping)
Performs AAM optimization of a shape containing initial pose and a set of model parameters (c).- Parameters:
image- The image to search in.s- The initial shape (also containing the inital pose, thus; not a normalized shape). Actually only the pose of 's' is used (to align the reference shape as the initial shape). NOTE: The optimal shape is returned in 's' after execution.c- The initial model parameters. If this vector is empty, it is resized correctly and set equal to zero, thus the mean model. NOTE: The optimal model parameters are returned in 'c' after execution.maxIterations- The maximum iterations allowed.pOptStates- Optional parameter all convergence info can be returned in. See CAAMOptState.disableDamping- Disables the damping steps (default false).- Returns:
- The results of the optimization in the form of a 'CAAMOptRes' instance.
-
OptimizeModelByFineTuning
public CAAMOptRes OptimizeModelByFineTuning(ModelSimpleImage image, CAAMShape s, CDVector c, int maxIterations, int similaritym, int optimizer)
Perform general-purpose optimization of the AAM using simulated annealing, conjugate gradient, steepest descent, BGFS or pattern search.- Parameters:
image- The image beeing searched in.s- The inital shape pose.c- The initial model parameters.maxIterations- The maximum allowed number of iterations.similaritym- The used similarity measure for the optimization: 0 Non-normalized L_2 norm (default). 1 The "Mahalanobis" distance (texture samples are regarded independent to increase performance). 2 The Lorentzian error norm.optimizer- Sets the optimer to use: 1 Steepest Descent (default) 2 Conjugate Gradient 3 Quasi-Newton, BFGS 4 Pattern search 5 Simulated annealing- Returns:
- The final fit.
-
ReadModel
public boolean ReadModel(java.lang.String filename)
Reads the complete AAMModel from disk.- Parameters:
filename- Input filename without any extension. E.g. if the files on disk are 'model.txt' & 'model.amf' -> filename = 'model'- Returns:
- true on success, false on file errors.
-
ReductionFactor
public int ReductionFactor()
Returns the reduction factor of the training set that this model was- Returns:
- model reduction
-
SampleShape
public int SampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples)
Wrapper to build a texture vector from an image and a shape.- Parameters:
image- model imageshape- voitextureSamples- texture samples- Returns:
- shape inside or outside the image
-
SampleShape
public int SampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize)
Wrapper to build a texture vector from an image and a shape.- Parameters:
image- model imageshape- VIOtextureSamples- texture samplesnormalize- normalization- Returns:
- shape inside or outside the image
-
SampleShape
public int SampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize, boolean useInterpolation)
Wrapper to build a texture vector from an image and a shape.- Parameters:
image- model imageshape- VIOtextureSamples- texture samplesnormalize- normalizationuseInterpolation- interpolation or not.- Returns:
- shape inside or outside the image
-
SampleShape
public int SampleShape(ModelSimpleImage image, CAAMShape shape, CDVector textureSamples, boolean normalize, boolean useInterpolation, boolean map)
Builds a texture vector from an image and a shape.- Parameters:
image- The image to sample in.textureSamples- The normalized destination texture vector.shape- The shape to sample from (in image coordinates).normalize- Perform normalization after sampling. Default true.map- Perform mapping after sampling. Default true.- Returns:
- The number of samples done (zero if the shape is outside the image).
-
ShapeInstance
public void ShapeInstance(CDVector c, CAAMShape outShape)
Generates a shape based on a set of model parameters.- Parameters:
c- Input model parameters.outShape- The generated shape (resizing are done inside this method).
-
TextureInstance
public void TextureInstance(CDVector c, CDVector outTexture)
Generates a texture based on a set of model parameters.- Parameters:
c- Input model parameters.outShape- The generated texture (resizing are done inside this method).
-
ShapePCAInstance
public void ShapePCAInstance(CDVector b_s, CAAMShape outShape)
Generates a shape based on a set of shape b-parameters.- Parameters:
b_s- Shape parametersoutShape- Output shape (resized inside method).
-
ShapeTex2Combined
public void ShapeTex2Combined(CAAMShape shape, CDVector texture, CDVector c)
Projects the shape and texture into c-space i.e. the combined model parameters.- Parameters:
shape- The input shape aligned to the (aligned) mean shape.texture- The corresponding normalized texture.c- The resulting model parameters.
-
ShapeTex2Param
public void ShapeTex2Param(CAAMShape shape, CDVector texture, CDVector b)
Extract the b-parameters from a shape and corresponding texture by inverting the shape and texture pca projection. Assumes that the shape and texture PCA are done beforehand.- Parameters:
shape- The input shape aligned to the (aligned) mean shape.texture- The corresponding normalized texture.b- The resulting concatenated b vector.
-
ShapeTexParam2Combined
public void ShapeTexParam2Combined(CDVector b, CDVector c)
Transforms the concatenated b-parameters into combined model parameters.- Parameters:
b- Concatenated shape (weighted) and texture parametersc- Combined model parameters (resized inside function).- See Also:
ShapeTex2Param(gov.nih.mipav.view.renderer.WildMagic.AAM.CAAMShape,gov.nih.mipav.view.renderer.WildMagic.AAM.CDVector,gov.nih.mipav.view.renderer.WildMagic.AAM.CDVector)
-
WriteModel
public boolean WriteModel(java.lang.String filename)
Write the AAM model to text file or binary file.- Parameters:
filename- file name- Returns:
- success or not
-
WriteModel
public boolean WriteModel(java.lang.String filename, boolean txt_only)Writes the complete AAMModel to disk as a .txt and an .amf file.- Parameters:
filename- Output filename without any extension.txt_only- If true binary model data is not written.- Returns:
- true on success, false on file errors.
-
getNumberShapeParameters
public int getNumberShapeParameters()
Get the the number of eigen values in PCA.- Returns:
- number of eigen values in PCA
-
WriteVarianceMap
public void WriteVarianceMap(java.lang.String filename)
Plots the variance of each pixel in the model over the training set into the mean shape and saves the image.- Parameters:
filename- Output image filename.
-
ReferenceShape
public final CAAMShape ReferenceShape()
Returns the reference shape where all texture sampling and comparison should be done. The reference shape is defined as the mean shape size to mean size and moved to the fourth quadrant.- Returns:
- The reference shape.
-
ShapeTexParam2Combined
public void ShapeTexParam2Combined(java.util.Vector<CDVector> bVectors, java.util.Vector<CDVector> cVectors)
Converts a set of b-vectors to combined model parameters (c-vectors).- Parameters:
bVectors- The input b-vectors.cVectors- The output c-vectors.
-
assign
public CAAMModel assign(CAAMModel m)
Assignment operator.- Parameters:
m- Object to copy from.- Returns:
- This;
-
Shape2Combined
public void Shape2Combined(CAAMShape shape, ModelSimpleImage image, CDVector c)
Projects a shape into a set of c parameters.- Parameters:
shape- The input shape (assumed to be in abs coordinates).image- The image where the shape is placed.c- The output combined model parameters.
-
Shape2Param
public void Shape2Param(CAAMShape shape, CDVector b_s)
Projects a shape into a set of shape parameters,- Parameters:
shape- The input shape (assumed to be in abs parameters).b- The output shape model parameters.
-
Combined2ShapeParam
public void Combined2ShapeParam(CDVector c, CDVector b_s)
Converts combined model parameters to shape parameters.- Parameters:
c- Combined model parameters.b_s- Output non-weighted shape parameters.
-
Combined2TexParam
public void Combined2TexParam(CDVector c, CDVector b_g)
Converts combined model parameters to texture parameters.- Parameters:
c- Combined model parameters.b_g- Output texture parameters.
-
-