Despite advancement in healthcare technologies, prevalence of visual impairment and blindness remains significantly high across the globe. The major causes of visual impairment and blindness are eye diseases such as diabetic retinopathy, glaucoma, cataracts, trachoma and age-related macular degenera
Neural Network approach for Non-Invasive Detection of Eye Disease(s)
Despite advancement in healthcare technologies, prevalence of visual impairment and blindness remains significantly high across the globe. The major causes of visual impairment and blindness are eye diseases such as diabetic retinopathy, glaucoma, cataracts, trachoma and age-related macular degeneration. Diabetic Retinopathy, a progressive complication of type 1 and type 2 diabetes, is one of the prime eye diseases causing blindness in one-third of the total diabetic patient population. Early detection of diabetic retinopathy is crucial for effective prognosis and treatment. Diagnostic and decision support systems are particularly useful in faster and less expensive screening, detection of early symptoms and aiding doctors in providing better prognosis. Previous studies for automated diabetic retinopathy grading show that more than 90% specificity has been achieved for binary classification but results for classification between the five main classes of DR needs improvement.
The objective of this project is to employ a Neural Network-based Real-time Diagnostic Support System to aid in non-invasive detection of retinal eye diseases through colored fundus photography. The proposed system for this application is building a real-time Diabetic Retinopathy 5-nary classifier using Convolutional Neural Networks. The training of basic CNN model for classifying 5-nary diabetic retinopathy stages has been evaluated and different architecture of CNN like Vgg16, xception etc has been tested.The Final architecture will be implemented on Raspberry Pi along with parallel processing environment such as FPGA (optional), to build a stand-alone real time classifier. The final model of project comprises of a fundas camera for taking retinal images of patient's eye and transfering it to raspberry pi for classification.
The purpose of this project is to employ Neural Network classification techniques to build a Diagnostic Support System to aid in non-invasive detection of retinal eye diseases through colored fundus photography. Diabetic Retinopathy, a complication of diabetes, is the primarily chosen eye disease for this project. Since diabetic retinopathy is a disease with progressive stages of severity, the problem at hand is a multiple classification problem. The approach proposed for grading of different stages of diabetic retinopathy is acquiring and preprocessing of colored fundus retinal images and implementing multiclassification using Convolutional Neural Networks. The approach for this project is to select a CNN architecture and implement it on Raspberry Pi along with a parallel processing environment such as FPGA (optional) to build a stand-alone real time classifier.
The methodology of the project is divided into several parts starting with acquisition of dataset for diabetic retinopathy, followed by exploring data preprocessing techniques and finally training and testing CNN models for diabetic retinopathy severity stages classification.
1. Data Acquisition
The dataset acquired for this project is from the Kaggle Diabetic Retinopathy Detection Online Competition. However these images contain artifacts, noise, some are out of focus, underexposed, or overexposed. These factors badly affect the CNN classifier. To solve this problem higher resolution and noise free images are used from messidor database along with kaggle dataset.
2. Dataset Preprocessing
Image data has to be carefully preprocessed before feeding it to the network. Otherwise, the network will focus on the unwanted features in the images and therefore minimizes its classification accuracy.
The images therefore must be preprocessed before feeding it to the neural network. This is required so that images have:
3. Offline Training in python using Keras
3.1. Training a simple CNN for dog/Cat Classification Problem
In order to get familiar with working of CNN, we classified dogs and cats using the Keras Deep Learning Libraries and help from Keras Documentation.A simple CNN with two convolutional block, adam optimizer and binary cross_entropy was build and applied on cat/dog classification problem.This classifier attained 89.05% accuracy.
3.2. Training a simple CNN Model for 2-nary (No DR/Proliferative DR) Classification On kaggle dataset
For binary (No DR/ Proliferative DR) classification the same CNN algorithm used for classifying cats and dog is used with addition of a convolutional block, hidden layer and few other modifications. 68.67% classification accuracy was attained on preprocessed retinal images of these two classes.
3.3. Training the CNN Model for 5-nary DR Classfication on kaggle dataset
When the same CNN model is used for classifying 5 classes of DR , we obtained train accuracy 39.08% and validation accuracy 28.83%.
3.4. Testing Different Architecture of CNN for DR Classification
Pretrained networks like VGG16 , VGG19, mobilenet, inceptionV3 and xception nets performed much better on our applicaation. Among all these nets xception net gives the best results. We achieved 83.61% accuracy on kaggle dataset for binary classification. However we attained only 42.8% accuracy for 5-ary classification.
As mentioned earlier kaggle dataset contains lot of uncertainities. When above nets were applied on messidor dataset, again xception perfomed better than others. We attained 85.6% and 63.7% accuracy on binary and 4-ary classes respectively.
The main goal of this project is to build a diagnostic support system for diabetic retinopathy which will be so that this system can be utilized by hospitals and clinics as a useful tool in automating the DR screening and grading of diabetic patients.
Through this project, we aim to achieve an abstract low-cost, real-time stand-alone classifier system for DR screening and grading which can be further tested out and extended for other eye diseases if the actual testing results are considerable.
The main goal of this project is to build a diagnostic support system for diabetic retinopathy. The final product will consist of fundas camera and raspberry pi along with visual Interface. Fundas Camera will be used for taking the retinal image of patient's eye. Trained CNN will be uploaded on raspberry pi. In real time the image taken from camera will be sent to raspberry pi. Then raspberry pi will predict the class of this image. This result will be shown on the screen.
| Item Name | Type | No. of Units | Per Unit Cost (in Rs) | Total (in Rs) |
|---|---|---|---|---|
| D-EYE: Digital retinal camera | Equipment | 1 | 61596 | 61596 |
| Shipping Cost | Miscellaneous | 1 | 6513 | 6513 |
| CanaKit Raspberry Pi 3 B+ | Equipment | 1 | 6937 | 6937 |
| Total in (Rs) | 75046 |
Electricity prices are skyrocketing these days and there is a need to manage the consumpti...
Robots that can navigate through their environment are termed mobile robots. Mobile robots...
A system has been developed that brings innovation in medical field of PAKISTAN that ...
HPAS is a platform of automation of the Fast NUCES hostel manual system and blue-collar wo...
Bio-floc technology is an eco-friendly approach. The microbial community in bio-floc syste...