fisher.c File Reference

Fisher - Declaration. More...

#include "fisher.h"
#include "gmm.h"
#include "mathop.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

## Functions

vl_size vl_fisher_encode (void *enc, vl_type dataType, void const *means, vl_size dimension, vl_size numClusters, void const *covariances, void const *priors, void const *data, vl_size numData, int flags)
Fisher vector encoding of a set of vectors. More...

## Function Documentation

 vl_size vl_fisher_encode ( void * enc, vl_type dataType, void const * means, vl_size dimension, vl_size numClusters, void const * covariances, void const * priors, void const * data, vl_size numData, int flags )
Parameters
 dataType the type of the input data (VL_TYPE_DOUBLE or VL_TYPE_FLOAT). enc Fisher vector (output). means Gaussian mixture means. dimension dimension of the data. numClusters number of Gaussians mixture components. covariances Gaussian mixture diagonal covariances. priors Gaussian mixture prior probabilities. data vectors to encode. numData number of vectors to encode. flags options.
Returns
number of averaging operations.

means and covariances have dimension rows and numCluster columns. priors is a vector of size numCluster. data has dimension rows and numData columns. enc is a vecotr of size equal to twice the product of dimension and numClusters. All these vectors and matrices have the same class, as specified by dataType, and must be stored in column-major format.

flag can be used to control several options: VL_FISHER_FLAG_SQUARE_ROOT, VL_FISHER_FLAG_NORMALIZED, VL_FISHER_FLAG_IMPROVED, and VL_FISHER_FLAG_FAST.

The function returns the number of averaging operations actually performed. The upper bound is the number of input features by the number of GMM modes; however, assignments are usually failry sparse, so this number is often much smaller. In particular, with the VL_FISHER_FLAG_FAST, is equal to the number of input features. This information can be used for diagnostic purposes.