def __init__(self, images, group=None, verbose=False, batch_size=None, diagonal=None, scales=(0.5, 1), holistic_features=no_op, # shape_model_cls=build_normalised_pca_shape_model, expert_ensemble_cls=CorrelationFilterExpertEnsemble, max_shape_components=None, reference_shape=None, shape_forgetting_factor=1.0): self.diagonal = checks.check_diagonal(diagonal) self.scales = checks.check_scales(scales) self.holistic_features = checks.check_features(holistic_features, self.n_scales) # self.shape_model_cls = checks.check_algorithm_cls( # shape_model_cls, self.n_scales, ShapeModel) self.expert_ensemble_cls = checks.check_algorithm_cls( expert_ensemble_cls, self.n_scales, ExpertEnsemble) self.max_shape_components = checks.check_max_components( max_shape_components, self.n_scales, 'max_shape_components') self.shape_forgetting_factor = shape_forgetting_factor self.reference_shape = reference_shape self.shape_models = [] self.expert_ensembles = [] # Train CLM self._train(images, increment=False, group=group, verbose=verbose, batch_size=batch_size)
def __init__(self, images, group=None, verbose=False, batch_size=None, diagonal=None, scales=(0.5, 1), holistic_features=no_op, shape_model_cls=OrthoPDM, expert_ensemble_cls=CorrelationFilterExpertEnsemble, max_shape_components=None, reference_shape=None): scales = checks.check_scales(scales) n_scales = len(scales) self.diagonal = checks.check_diagonal(diagonal) self.scales = scales self.holistic_features = checks.check_callable(holistic_features, self.n_scales) self.expert_ensemble_cls = checks.check_algorithm_cls( expert_ensemble_cls, self.n_scales, ExpertEnsemble) shape_model_cls = checks.check_callable(shape_model_cls, n_scales) self.max_shape_components = checks.check_max_components( max_shape_components, self.n_scales, 'max_shape_components') self.reference_shape = reference_shape self.shape_models = [] self._shape_model_cls = shape_model_cls self.expert_ensembles = [] # Train CLM self._train(images, increment=False, group=group, verbose=verbose, batch_size=batch_size)
def __init__(self, clm, gd_algorithm_cls=RegularisedLandmarkMeanShift, n_shape=None): self._model = clm self._gd_algorithms_cls = checks.check_algorithm_cls( gd_algorithm_cls, self.n_scales, GradientDescentCLMAlgorithm) self._check_n_shape(n_shape) self.algorithms = [] for i in range(self.clm.n_scales): algorithm = self._gd_algorithms_cls[i]( self.clm.expert_ensembles[i], self.clm.shape_models[i]) self.algorithms.append(algorithm)