示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)