top of page
Search

Seeing through my eyes: Simulating Keratoconus vision using OpenCV

  • Writer: Sarang Joshi
    Sarang Joshi
  • Aug 24, 2020
  • 2 min read

Updated: Mar 12, 2021


My story


I was born with normal eyesight. During my teenage years, my vision started changing. I was unable to comprehend or explain what was going on except for the fact that it had become difficult to perform day-to-day tasks. I would see shadows, multiple images and could not recognize faces from a distance. Doctors were not able to diagnose what was wrong. It was very hard to explain as well. After seeing multiple doctors for over 2 years, one doctor was finally able to confirm my condition. I had keratoconus (literally conical cornea), a rare eye condition that thins the cornea to a point and distorts my vision severely. Keratoconus has no known cure. Even corneal transplants which doctors often prescribe leave a patient with compromised vision.

After multiple trials with different types of corrective hard lenses to force the cornea into the correct shape and allows me to see clearer. These are special lenses known as Scleral lenses that cover the sclera and the cornea to improve vision. Each lens costs $400 ($800 per pair) and lasts for about a year. The unfortunate part is that insurance companies do not recognize this as a medical condition and hence do that cover the costs of the lenses. No matter how much I try to explain it has always been really frustrating for me to try and explain to others how the world looks through my eyes. I often tell them that I see multiple images and shadows. But it is very hard to imagine what all this really means without experiencing it.


Motivation


During the Fall of 2019, I was taking the Computer Vision class at Virginia Tech. I was learning the concepts of how to manipulate images using transformations and keypoint detection. While sitting in class, I thought to myself if there was any way in which I could do a project around Keratoconus. I decided to talk to the professor who was really supportive.

After brainstorming with Dr. Jones (the instructor), we narrowed down the idea for a computer vision project to tackle the issue of Keratoconus perception. The goal of the project was to try and recreate how keratoconus patients see common images. Using Python, OpenCV, and computer vision concepts, regular images would be distorted. This would allow for generating synthetic images that I could use to share my experience with other people. For this project, I had to use grayscale images instead of colored ones as working with grayscale was easier. Shown below is an image of a skyline in grayscale.


Shown below is a regular image


ree
Regular skyline image

Shown below is the transformed version generated synthetically using OpenCV.

ree
skyline for a person with keratoconus

Here is another example of a STOP sign.



ree

Shown below is the distorted version.


ree

Transformer Pipeline


I developed a simple pipeline using OpenCV that splits an image into 3 channels and performs different affine transforms on the image. More about this will be discussed in another post. Here is the block diagram of the pipeline.



ree
Image transformer pipeline for synthetic images

Conclusion


Through this project and this blog post, I feel really excited to share my vision for Keratoconus. It is my hope that this serves as a starting point for other people to take up the issue with insurance companies to recognize this medical condition. Code for this can be found on my github page here.









 
 
 

Comments


  • Octocat
  • Google Scholar Sarang Joshi
  • LinkedIn
  • Instagram

© 2023 by Web-Designer. Proudly created with Wix.com

bottom of page