Hypersphere Fitting from Noisy Data Using an EM Algorithm
Julien LESOUPLE,
Barbara Pilastre,
Yoann Atlmann,
Jean-Yves Tourneret
January, 2021
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 SphericalDistributionsRand 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
Lecturer/Researcher
My research interests include statistical signal processing applied to navigation.