Hypersphere Fitting from Noisy Data Using an EM Algorithm

Résumé

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
Enseignant Chercheur

Mes activités de recherche concernent le traitement statistique du signal appliqué à la navigation.