 |
(Title Screen)
|
 |
At the University of California at Berkeley, the OPTICAL project is a
multidisciplinary effort in the Computer Science Division and School
of Optometry.
|
 |
"OPTICAL" is an acronym for "OPtics and Topography
Involving the Cornea And Lens". This project is concerned with the
computer-aided measurement, modeling, reconstruction, and
visualization of the shape of the human cornea, called corneal
topography.
|
 |
The cornea is the transparent tissue covering the front of the eye.
|
 |
It performs 3/4 of the refraction, or bending, of light in the eye,
and focuses light towards the lens and the retina. Thus, subtle
variations in the shape of the cornea can significantly diminish
visual performance.
|
 |
Eye care practitioners need to know the shape of a patient's cornea to
fit contact lenses,
|
 |
to plan and evaluate the results of surgeries that
improve vision by altering the shape of the cornea,
|
 |
and to diagnose
keratoconus, an eye condition where the cornea has an irregular shape
with a local protrusion, or "cone", which has dramatic effects on
vision.
|
 |
(Summarized reasons why eye clinicians need to know the shape of patients' corneas)
|
 |
Recently, instruments to measure corneal topography have become
commercially available. These devices, called videokeratographs,
|
 |
typically shine rings of light onto the cornea
|
 |
and then capture the
reflection pattern
|
 |
with a built-in video camera.
|
 |
Our task
|
 |
is to construct
|
 |
a model of the cornea
|
 |
from this image and from the geometry of the videokeratograph's source pattern.
For purposes of illustration, we have shrunk the source pattern to a fraction
of its normal size here.
|
 |
We will use a simplified source pattern to illustrate the algorithm more
easily.
|
 |
We begin our construction by guessing
|
 |
a possible surface shape.
|
 |
(We rotate the camera to convey the 3-dimensional nature of the scene and to end up looking toward the right side of the scene)
|
 |
Then we measure
|
 |
the difference between
|
 |
the surface that we have guessed
|
 |
and the real cornea.
|
 |
First we identify features in the image
|
 |
(In the video, the red dot on the left blinks to indicate it's one of the features we were talking about)
|
 |
and their corresponding points in the source pattern. (The corresponding red point blinks too)
|
 |
(The corresponding green points blink)
|
 |
(The corresponding blue points blink)
|
 |
(Now we rotate the camera back so that we end up looking at the scene straight on, as in the beginning)
|
 |
If we assume that the lens system can be modeled by
|
 |
a pinhole or nodal point, we can simulate the process that formed the image by using backward ray tracing.
|
 |
A ray from an image feature
|
 |
is traced through the nodal point
|
 |
to the surface.
|
 |
If the surface that we guessed has the correct local shape,
|
 |
the ray will intersect the source pattern
|
 |
at the corresponding feature.
|
 |
More commonly,
|
 |
the surface is incorrect, (the surface changes shape to represent an incorrect guess)
|
 |
so the ray
|
 |
misses the feature. (Doh!) The aim is to change the surface so that the ray
intersects the correct location.
However, we must change the shape of the surface globally, otherwise
|
 |
rays from other features
|
 |
will still
|
 |
miss
|
 |
their
|
 |
corresponding
|
 |
features. (Doh!)
|
 |
The appropriate global change is computed using constrained optimization.
|
 |
From the traced rays we formulate an error function that measures the
difference between the guessed surface and the true cornea.
|
 |
The surface that minimizes this error funtion has a simular shape to the
true cornea.
|
 |
In order to make the problem more easily solved, we constrain the surface
to interpolate one or more points.
|
 |
These constraints and the error function define
|
 |
a standard constrained
minimization problem.
|
 |
We solve this problem iteratively, by taking an initial guess,
|
 |
and stepping toward the solution. (The rays are animated as they move toward the solution)
|
 |
We have carefully formulated the error function and chosen a surface
representation so that each step can be performed efficiently.
|
 |
Each iteration requires
|
 |
tracing
|
 |
rays,
|
 |
computing
|
 |
a set of normals,
|
 |
and fitting a new surface (the surface changes shape to indicate the fitting is taking place)
|
 |
to the normals.
|
 |
In our case, we can fit the normals by solving a linear system. (Rays trace back to source pattern to indicate the new surface is correct)
|
 |
Roll Credits.
|
 |
 |
 |
 |
 |
 |