Skip to content

Repository files navigation

DeepCNVDELTA

This work proposes a robust, fully automated framework for grading corneal neovascularization (CNV) based on the extent of vessel ingrowth. The overall workflow of the proposed approach is illustrated in the figure. The primary objective is to predict the severity grade of CNV by extracting relevant image-based features from the corneal region and using these features within a supervised regression framework.

The proposed method consists of two main stages. The first stage focuses on accurately segmenting and extracting the corneal region from the surrounding structures in the mouse eye image, while the second stage estimates the corresponding CNV severity grade using deep feature extraction and regression-based learning.

For corneal segmentation, we employ Mask R-CNN, a state-of-the-art deep learning framework for instance segmentation. A representative subset of mouse eye images was manually annotated and used to train the Mask R-CNN model to identify the corneal region. The trained network produces a binary segmentation mask in which the white region represents the cornea and the black region corresponds to the background, including structures such as the eyelids, eyelashes, and other surrounding tissues. Restricting the analysis to the corneal region reduces potential errors caused by variations in the texture and color of surrounding anatomical structures, thereby improving the robustness of the subsequent grading process.

Because the binary masks generated by Mask R-CNN do not always form a geometrically regular corneal boundary, an additional post-processing step is applied. A circle is fitted to the predicted binary mask to obtain an optimal circular representation of the corneal region. This refined circular mask is then applied to the original image to isolate the cornea and suppress irrelevant background information.

Following corneal extraction, a ResNet-50 convolutional neural network is used to obtain deep image features that characterize the appearance of the corneal region and the associated vascularization patterns. These extracted features are subsequently used to train supervised regression models based on Random Forest (RF) and Extreme Gradient Boosting (XGBoost). Each corneal image is assigned one of five ordinal CNV severity grades: Naive / No CNV (0), Mild CNV (1), Moderate CNV (2), Severe CNV (3), and Extreme CNV (4).

The RF and XGBoost regression models are trained using corneal images with known CNV grades, allowing the models to learn the relationship between the extracted deep features and disease severity. Once trained, the regression models are applied to an independent testing dataset that is excluded from the training process. The predicted grades are then compared with the corresponding reference grades to evaluate the performance and reliability of the proposed automated CNV grading framework.



How to use DeepCNVDELTA

There are four main folders in our repository:

CorneaDetection: contains algorithm scripts used to test Mask R-CNN and circle fitting.

CorneaDetectionAndCNVClassification: contains algorithm scripts used to test Mask R-CNN (MultiClass).

CNVClassification: contains algorithm scripts used to test RF and XGBoost.


There are two parts for this software, you can skip Part 1 (Cornea Detection) if you already have your cornea extracted in 400x400 image size dimention.

Part 1 --> Cornea Detection: Extract the cornea from mice raw images using Mask R-CNN

Part 2 --> CNV Grading: Run the classifier to grade the CNV disease.

In both parts, there are readme file that describes the needed steps. The description is also placed here


Part 1 : Cornea detection

To get cornea detection

  1. Put your raw images in a folder called input, the images should be placed as this example:

input\Extreme\ET_101_Day 21_04.16.2015\image1.png

  1. Run Main_cornea_data_preparation.m

This script will prepare your input for Mask R-CNN detection.

  1. Setup Mask R-CNN using this website: Mask_RCNN

Put the cornea_weights in log folder, and put your Output\stage_test folder in the same folder with the nucleus example and run nucleus_MaskRCNN_CNV.py

  1. Take the detection masks and place them in

Output/Output_from_MaskRCNN_masks

To treat the results generated from mask R-CNN by fitting a circle on mask R-CNN results, you should run 5, and the results will be ready in Output/Classify_me_circles folder for RF CNV Grading

  1. fit_circles_to_maskrcnn_masks_results.m

This script uses Pratt method to fit the cicle

Cornea Detection and Classification using Mask R-CNN

To detect cornea and classify at the same time run the following script nucleus_MaskRCNN_CNV_MultiClass.py. This will detect cornea and also provide the score for the grading.


Project Collaborators and Contact

Author: Gani Rahmon, Suneel Gupta, Rajiv Mohan and Kannappan Palaniappan

Copyright © 2026-2027. Gani Rahmon, Prof. K. Palaniappan and Curators of the University of Missouri, a public corporation. All Rights Reserved.

Created by: Gani Rahmon
Department of Electrical Engineering and Computer Science,
University of Missouri-Columbia

For more information, contact:

About

DeepCNVDELTA: Detection and grading of corneal neovascularization from slit-lamp images

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages