Some instrumental work

on the Shack-Hartmann wavefront sensor

and its implementation for Vision Science

Logo_web

Charles-Edouard Leroux and Chris Dainty

 

I have spent four years as a PhD student at the Applied Optics Group, in Galway (2006 to 2009). With the help of Chris Dainty, I have developed both hardware and software solutions that are well suited to the measurement of the aberrations of the human eye. I also had the chance to work on a collaborative project with other great scientists…

 

Our study of the statistics of the dynamics of ocular aberrations of the young human eye

By building a high-speed aberrometer during the first two years of my thesis, I contributed to a scientific project that aims to model the statistics of the aberration of the human eye. This project was a collaborative work with Chris Dainty, Conor Leahy (Applied Optics Group, Galway) and Luis Diaz Santana (City University, London). This work is described in reference [1]. Some of the experimental data we took are still being analysed by other research groups. 

 

Reduction of artefacts and calibration of a Shack-Hartmann for Vision Science

Not only did we record ocular aberrations at a fast frame rate, but also with a low-noise, and fully calibrated system. If you are interested in the tests that I performed with our aberrometer, you should read the second chapter of my thesis. Most of these tests are not well documented in the published literature. These tests include: the quantification/calibration of the speckle reduction, the study of the effect of the fill factor of the CCD/CMOS detector, and the effect of using additional lenses between the Shack-Hartmann lenslet array and the CCD.

 

On the processing of the Shack-Hartmann data for Vision Science

I took the time during my thesis to study what we call Estimation theory. With a Shack-Hartmann wavefront sensor, there are some computational issues in the measurement process. In particular, the largest data reduction consists in the computation of the “centroid” positions of the Shack-Hartmann spots. For ophthalmic applications of the Shack-Hartmann wavefront sensor, this processing stage is poorly documented. Chris Dainty and myself tried to present the main issues of “centroiding” [2], and we strongly recommend the use of a matched-filter algorithm when measuring ocular aberrations with a Shack-Hartmann wavefront sensor.    

 

An algorithm to extend the dynamic range of a Shack-Hartmann wavefront sensor

 We also introduced a powerful software-method to extend the dynamic range of a Shack-Hartmann [3]. The algorithm allows retrieving the lenslet of each detected Shack-Hartmann spot, even if it is shifted by more than half a lenslet in the detector plane. We propose a demo (and the codes), implemented under MATLAB for a 23×23 lenslets Shack-Hartmann, of pitch 0.2 mm and focal 7.10 mm. (CCD pixel size is 10.8 microns.)

To run it, just run the “Main_Script.m”. The Zernike description of the incoming wavefront can be defined as input, and so are the number of missing spots (randomly located in the pupil plane), and the noise in the centroid measurements. This demo has been tested on Matlab R2007a, and 2008a. Previous versions of MATLAB might not be compatible with the “geometry.mat” data. If you want to implement your own version of this code within your system, you have to define proper geometry matrices. You are welcome to contact me to get the required codes. (charleleroux “at” yahoo.fr)

As we explained in Optic Express, the algorithm requires a set of computed centroid positions, which are not bound to the numbering of the lenslet array. You can also find an example of source code that processes a raw Shack-Hartmann frame and compute rough estimates of these centroid positions. This code is written in the “locate_spots.m” file, and is not called when you run the rest of the demo. It is however necessary for a practical implementation of our method. With the MATLAB implementation, this code cannot work in real time. With a 2 GHz processor, it takes around 0.5 seconds to locate 400 spots. It would go significantly faster with a C implementation, as it consists of a succession of while and for loops.

References:

[1] C. Leahy, C. Leroux, C. Dainty and L. Diaz-Santana, “Temporal dynamics and statistical characteristics of the microfluctuations of accommodation: Dependence on the mean accommodative effort,” Opt. Express 18, 3 (2010).

[2] C. Leroux and C. Dainty, “A simple and robust method to extend the dynamic range of an aberrometer,” Opt. Express 17, 21 (2009).

[3] C. Leroux and C. Dainty, “Estimation of centroid positions with a matched-filter algorithm: relevance for aberrometry of the eye,” Opt. Express 18, 2 (2010).