VLFeat - Documentation > MATLAB API > VLAD - vl_vlad

# VLFeat.org

Documentation> MATLAB API> VLAD - vl_vlad

ENC = VL_VLAD(X, MEANS, ASSIGNMENTS) computes the VLAD encoding of the vectors X relative to cluster centers MEANS and vector-to-cluster soft assignments ASSIGNMENTS.

X has one column per data vector (e.g. a SIFT descriptor), and MEANS has one column per component. Usually one has one component per KMeans cluster and MEANS are the KMeans centers. X and MEANS have the same number of rows and the data class, which can be either SINGLE or DOUBLE.

ASSIGNMENTS has as many rows as clusters and as many columns as X. Its columns are non-negative and should sum to one, representing the soft assignment of the corresponding vector in X to each of the clusters. It is of the same class as X.

ENC is a vector of the same class of X of size equal to the product of the data dimension and the number of clusters.

By default, ENC is L2 normalized. VL_VLAD() accepts the following options:

Unnormalized

  If specified, no overall normalization is applied to ENC.

NormalizeComponents

  If specified, the part of the encoding corresponding to each cluster is individually normalized.

NormalizeMass

  If specified, each component is re-normalized by the mass of data vectors assigned to it. If NormalizedComponents is also selected, this has no effect.

SquareRoot

  If specified, the signed square root function is applied to ENC before normalization.

Verbose

  Increase the verbosity level (may be specified multiple times).

See: VLAD, VL_HELP().