function varargout = vlad(varargin) % VL_VLAD VLAD feature encoding % 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(). [varargout{1:nargout}] = vl_vlad(varargin{:});