Hypersphere Fitting from Noisy Data Using an EM Algorithm

Abstract

This letter studies a new expectation maximization (EM) algorithm to solve the problem of circle, sphere and more generally hypersphere fitting. This algorithm relies on the introduction of random latent vectors having a priori independent von Mises-Fisher distributions defined on the hypersphere. This statistical model leads to a complete data likelihood whose expected value, conditioned on the observed data, has a Von Mises-Fisher distribution. As a result, the inference problem can be solved with a simple EM algorithm. The performance of the resulting hypersphere fitting algorithm is evaluated for circle and sphere fitting.

Publication
IEEE Signal Processing Letters

The Matlab folder contains:

  • yuhuichen1015-SphericalDistributionsRand-224b007, a folder useful for sampling von Mises-Fisher distributions, by Yu-Hui Chen and found on Mathworks File Exchange SphericalDistributi​onsRand webpage (used in the 3D case)
  • e_landau.m, which estimates a circle using exact-Landau solution
  • EM_VmF.m, which estimates an hypersphere in any dimension using the EM algorithm proposed in the article
  • fgfa.m, which estimates a sphere using the Fast Geometric Fit Algorithm
  • iml.m, which estimates an hypersphere in any dimension using the Iterative Maximum Likelihood algorithm
  • kasa.m, which estimates a circle using the Kasa Algorithm
  • main_2D.m, which is the main file to obtain the results in 2 dimensions. In the prior settings, kappa = 0 leads to a uniform prior and kappa > 0 to a an informative von Mises-Fisher prior
  • main_3D.m, which is the main file to obtain the results in 3 dimensions. In the prior settings, kappa = 0 leads to a uniform prior and kappa > 0 to a an informative von Mises-Fisher prior
  • main_comp_time_2D.m, which is the main file to obtain the estimate the computation times in 2 dimensions
  • main_comp_time_2D.m, which is the main file to obtain the estimate the computation times in 3 dimensions
  • main_comp_time_2D.m, which plots the figure as in the article and the technical report for comparing the algorithms in 2 dimensions. It is used in the corresponding main file
  • main_comp_time_2D.m, which plots the figure as in the article and the technical report for comparing the algorithms in 3 dimensions. It is used in the corresponding main file
  • vmrand.m which generates data from a von Mised distribution and found on Mathworks File Exchange vmrand webpage (used in the 2D case)

The Python folder contains:

  • em_hypersphere.py, the class to create EM objects associated with the proposed algorithms
  • main.ipynb, a Jupyter notebook with a simplified routine to try the proposed EM algorithm in various dimensions and with various priors
Julien LESOUPLE
Julien LESOUPLE
Lecturer/Researcher

My research interests include statistical signal processing applied to navigation.