The input data are a 3D cloud (
xk ,
yk ,
zk ), with
k = 1, …,
N, corresponding to either elevation or curvature
zk at the node
Pk of the anterior corneal surface with Cartesian coordinates (
xk ,
yk ). We will discuss the case in which
zk corresponds to elevation. A standard procedure is to “flatten” the data by fitting it with the best-fit sphere
23 of the form
S(
x,
y) =
z 0 +
, where
R and (
x 0,
y 0,
z 0) are its radius and the Cartesian coordinates of its center, respectively.
As a result of the previous step, the residual errors ε
k(1) =
zk −
S(
xk,
yk) contain the relevant information at different scales and noise. Our aim is to fit these residuals by a function
E(
x,
y) in such a way that an analytic expression for the corneal height is given by
where
S accounts for the global shape of the cornea, while
E captures the small irregularities on the surface. Function
E is a linear combination of
n functions from a given dictionary. In an ideal setting,
n depends on the actual data and should be large enough to allow fitting all relevant information, but not too large to fit pure noise. Here, we use as basis functions the Gaussians of the form
where the superscript
T denotes the matrix transpose,
Q = (
Qx,
Qy)
T is a certain point on the plane (“center”), and
A is a positive-definite matrix in ℝ
2×2. For such a matrix, the
A-norm of a point (column vector)
P in
R2 is defined as
for
with α
x > 0 and α
xα
y > α
xy2.
In general, these are anisotropic radial basis functions that boil down to standard radial basis Gaussian functions (RBGF) when A is a positive multiple of the identity matrix I 2.
Hence, we seek the expression of the form
A fitting routine should allow for an adequate selection of all parameters: centers
Q (j), shape matrices
Aj , scaling factors
cj , and number of terms
n in the functional representation.
We propose an iterative algorithm of reconstruction, such that in each step we fit partially the residual error by one anisotropic radial basis Gaussian function (A-RBGF and compute the new residuals, which will become the input for the next iteration (residual iteration with knot insertion). All the parameters will be chosen dynamically, depending on the residual data in each step. A key observation is the possibility of linearizing the problem by using logarithms. We take advantage of the parallelization that modern hardware allows, as well as discuss the appropriate stopping criteria. The details are presented in the following sections.