Machine Learning Archive OPT OPE Archive Optical Archive Vision Archive


Development of a telehealth platform that provides digital optical prescriptions, making high quality vision accessible to everyone.





Typical eye exams are inconvenient to patients for many reasons, including scheduling fatigue, subjective inaccuracies from guessing whether something they see is better or worse, and the optometrists determining prescriptions partially based on patients’ personality and mood. Digiteyez Technologies has developed an algorithm that models a patient’s eye, simulates their vision, and calculates the ideal 20/20 prescription, effectively creating the world’s first digital eye exam.

Our project aims to modify Digiteyez Technologies’ pre-existing algorithms to calculate the axis of astigmatism, model the presbyopic eye, and determine whether the patient is myopic or hyperopic without a previously known prescription based on physical characteristics of the patient, such as age and sex. The final product will give a prescription for refractive errors that can be addressed with corrective lenses given only the physical characteristics and visual acuity of the patient.


Our algorithms use the Gullstrand model as a foundation for the eye and expands upon it to account for presbyopia. We modified the power of the eye in this model to account for presbyopia in older patients.

The Gullstrand model of the eye is a six surface eye model with two surfaces in the crystalline lens which contains a high index core and a lower index shell. Due to spherical aberration, the model will not perfectly match clinical data despite it being correct on the paraxial level.

Using real patient data for SPH, CYL, and axis of astigmatism, we explored visual acuity equations can be used to optimize Digiteyez’ existing algorithm such that analytical expressions for axis of astigmatism can be determined. This has been done by introducing unique error functions that explore the sensitivity of the theoretical visual acuity curve against clinical prescriptions, particularly the spherical equivalent. By equating the spherical equivalent power of a patient’s assigned prescription to the angular representation of blur area, our merit functions can not only be constrained to uniquely solve for an analytical expression of the axis of astigmatism, but also to define how sensitive visual acuity is to axis power of a prescription. In parallel, we used the Classification Learner app in MATLAB to search for unseen trends in patient data and determine whether the theoretical equation for V matches well with patient data.


Our MATLAB model uses a datasheet with 160 nearsighted patients to calculate their axis of astigmatism based on their SPH and CYL values. Our decision trees determine whether a patient has with-the-rule (WTR) or (ATR) axes of astigmatism with a 78% accuracy.

Knowing that the axes of astigmatism prescriptions are clumped in WTR and ATR clusters, we used decision trees that predicted if a patient should have a prescription of WTR or ATR astigmatism. The decision trees used optical values that can be calculated from SPH and CYL to achieve better accuracy. For instance, the following figure shows the ratio between X and Y axes refractive error for a patient vs CYL.

Feature Selection CombinationHighest AccuracyMost Accurate Tree(s)
SPH and CYL74.00%Coarse Tree
SPH equivalent and CYL73.20%Coarse KNN
Visual Acuity78.00%Coarse KNN
Calculated Visual Acuity77.20%Coarse KNN
Visual Acuity, Visual Acuity Contrast74.00%Fine Tree, Medium Tree
SPH Equivalent and Visual Acuity78.00%Coarse KNN
Age77.20%Coarse Tree
Table 1: The combination of predictors, the highest possible accuracy of a decision tree trained to the given combination, and the most accurate decision tree.

The highest accuracy we achieved with any decision tree classifying axes between WTR or ATR was 82%. It is important to understand that this decision tree achieves such high accuracy because patients with axis between 0-60 degrees fall under the same category as patients with axis between 120-180 degrees. 

After optimizing the decision tree, we were able to obtain 58% accuracy. This tree was very good at determining when a patient is class 2 (between 60 and 120 degrees), but struggled to differentiate class 1 from 3 (0-60 degrees, and 120-180 degrees).


Based on our testing, we can conclude that our assumptions over the course of the project were correct. Although we did not have enough data points to fully define the presbyopic eye, we developed a classification learner model that the customer will train with more data points to make significant insights and improve the accuracy of their algorithms