Source code for menpofit.aam.result

from menpofit.result import (ParametricIterativeResult,
                             MultiScaleParametricIterativeResult)


[docs]class AAMAlgorithmResult(ParametricIterativeResult): r""" Class for storing the iterative result of an AAM optimisation algorithm. .. note:: When using a method with a parametric shape model, the first step is to **reconstruct the initial shape** using the shape model. The generated reconstructed shape is then used as initialisation for the iterative optimisation. This step is not counted in the number of iterations. Parameters ---------- shapes : `list` of `menpo.shape.PointCloud` The `list` of shapes per iteration. The first and last members correspond to the initial and final shapes, respectively. shape_parameters : `list` of ``(n_shape_parameters,)`` `ndarray` The `list` of shape parameters per iteration. The first and last members correspond to the initial and final shapes, respectively. appearance_parameters : `list` of ``(n_appearance_parameters,)`` `ndarray` The `list` of appearance parameters per iteration. The first and last members correspond to the initial and final shapes, respectively. initial_shape : `menpo.shape.PointCloud` or ``None``, optional The initial shape from which the fitting process started. If ``None``, then no initial shape is assigned. image : `menpo.image.Image` or `subclass` or ``None``, optional The image on which the fitting process was applied. Note that a copy of the image will be assigned as an attribute. If ``None``, then no image is assigned. gt_shape : `menpo.shape.PointCloud` or ``None``, optional The ground truth shape associated with the image. If ``None``, then no ground truth shape is assigned. costs : `list` of `float` or ``None``, optional The `list` of cost per iteration. If ``None``, then it is assumed that the cost function cannot be computed for the specific algorithm. """ def __init__(self, shapes, shape_parameters, appearance_parameters, initial_shape=None, image=None, gt_shape=None, costs=None): super(AAMAlgorithmResult, self).__init__( shapes=shapes, shape_parameters=shape_parameters, initial_shape=initial_shape, image=image, gt_shape=gt_shape, costs=costs) self._appearance_parameters = appearance_parameters @property def appearance_parameters(self): r""" Returns the `list` of appearance parameters obtained at each iteration of the fitting process. The `list` includes the parameters of the `initial_shape` (if it exists) and `final_shape`. :type: `list` of ``(n_params,)`` `ndarray` """ return self._appearance_parameters
[docs]class AAMResult(MultiScaleParametricIterativeResult): r""" Class for storing the multi-scale iterative fitting result of an AAM. It holds the shapes, shape parameters, appearance parameters and costs per iteration. .. note:: When using a method with a parametric shape model, the first step is to **reconstruct the initial shape** using the shape model. The generated reconstructed shape is then used as initialisation for the iterative optimisation. This step is not counted in the number of iterations. Parameters ---------- results : `list` of :map:`AAMAlgorithmResult` The `list` of optimization results per scale. scales : `list` or `tuple` The `list` of scale values per scale (low to high). affine_transforms : `list` of `menpo.transform.Affine` The list of affine transforms per scale that transform the shapes into the original image space. scale_transforms : `list` of `menpo.shape.Scale` The list of scaling transforms per scale. image : `menpo.image.Image` or `subclass` or ``None``, optional The image on which the fitting process was applied. Note that a copy of the image will be assigned as an attribute. If ``None``, then no image is assigned. gt_shape : `menpo.shape.PointCloud` or ``None``, optional The ground truth shape associated with the image. If ``None``, then no ground truth shape is assigned. """ def __init__(self, results, scales, affine_transforms, scale_transforms, image=None, gt_shape=None): super(AAMResult, self).__init__( results=results, scales=scales, affine_transforms=affine_transforms, scale_transforms=scale_transforms, image=image, gt_shape=gt_shape) # Create appearance parameters list self._appearance_parameters = None if results[0].appearance_parameters is not None: self._appearance_parameters = [] for r in results: self._appearance_parameters += r.appearance_parameters @property def appearance_parameters(self): r""" Returns the `list` of appearance parameters obtained at each iteration of the fitting process. The `list` includes the parameters of the `initial_shape` (if it exists) and `final_shape`. :type: `list` of ``(n_params,)`` `ndarray` """ return self._appearance_parameters