What is a Fisher Vector for 3D point clouds – 3D Point Cloud Classification Primer

September 4, 2018

Recently we published a paper about 3d point cloud classification (and segmentation) using our proposed 3D modified Fisher Vector (3DmFV) representation and convolutional neural networks (CNNs). The preprint is available on ArXiv and the final version is available in Robotics and Automation Letters (RA-L) journal.

I believe in making research accessible to everyone and I realized that this paper requires some level of familiarity with two main topics:

This post is the second in a series of three and aims to be a Fisher Vector (FV) primer for using 3DmFV for 3D point cloud classification. The first is about GMMS, if you are unfamiliar with it you should start there.

So, what is a Fisher Vector?

The shortest answer is a feature aggregation method. For an in-depth answer make sure to read Perronnin’s papers – I personally like this one. Intuitively, FV describes points by their deviation from a GMM.

I will start with some mathematical definitions but will also give a more intuitive example at the bottom.

The Math

Remember that the likelihood of every point associated with the GMM is given by

The Fisher Vector may be written as the sum of normalized gradient statistics for each point

Here, is the set of parameters of a component GMM: , where are the mixture weight, expected value, and covariance matrix of the Gaussian.

We perform a change of variables from to , ensures that is a valid distribution and simplifies the gradient calculation:

The soft assignment of a point to a gaussian is given by

The normalized gradients are:

Finally, the Fisher vector is formed by concatenating all of these components and normalizing them by the number of points .

The Intuition

It is much easier to understand the FV for points with some nice visualizations.

Let’s take a single 2D point in a single Gaussian and show its FV next to it. In the image below, the Gaussian is qualitatively visualized with a dashed circle with a radius of a single standard deviation.