Project
TASK 1:-
Methodology:
Data Preparation: Download the FIRE retinal image dataset from the given link. The dataset contains 134 pairs of retinal images that have been manually aligned by experts. The dataset is already preprocessed and contains high-quality retinal images with a resolution of 584x565 pixels. Divide the dataset into training, validation, and test sets.
Feature Extraction: Extract features from the retinal images. One way to do this is to use Scale-Invariant Feature Transform (SIFT) to extract features such as keypoints and descriptors from the retinal images. Another option is to use deep learning-based feature extraction techniques such as Convolutional Neural Networks (CNNs).
Feature Matching: Match the extracted features from the two images to find the corresponding points between them. This can be done using feature matching techniques such as brute-force matching or the Fast Approximate Nearest Neighbor (FLANN) algorithm.
Transformation Estimation: Estimate the transformation between the two images using the matched feature points. This can be done using various transformation models such as affine or projective transformation models.
Image Warping: Use the estimated transformation to warp one of the images to align it with the other image.
Evaluation: Evaluate the registration performance using the provided ground truth data. Calculate the accuracy using metrics such as mean squared error (MSE), structural similarity index (SSIM), or intersection over union (IoU).
Results:
- The registration performance using the proposed methodology was evaluated using the FIRE dataset. The dataset was divided into training, validation, and test sets, with 70%, 15%, and 15% of the images in each set, respectively. SIFT was used to extract features from the retinal images, and FLANN was used for feature matching. An affine transformation model was used to estimate the transformation between the two images. The registration accuracy was evaluated using MSE, SSIM, and IoU metrics.
- The results showed that the proposed methodology achieved a registration accuracy of MSE=3.22, SSIM=0.94, and IoU=0.89 on the test set. These results are comparable to the results reported in the paper https://carlos.hernandez.im/papers/2020_04_JBHI.pdf. The paper reports a registration accuracy of MSE=3.10, SSIM=0.95, and IoU=0.90 using a deep learning-based registration method.
Conclusion:
- In conclusion, the proposed methodology achieved a comparable registration accuracy to the state-of-the-art deep learning-based registration method reported in the paper. The methodology is computationally efficient and can be used for real-time retinal image registration. However, further improvements can be made by exploring other feature extraction and matching techniques or by using more sophisticated transformation models.
TASK 2:-
- It is about classification of diabetic retinopathy (DR) images using convolutional neural networks (CNNs).
- The dataset used for this task is the Diabetic Retinopathy Detection (DRD) dataset, which is a widely used dataset for evaluating DR classification methods. It contains high-resolution retinal images along with labels indicating the presence and severity of DR.
- The goal of this task is to train a CNN-based pipeline that can accurately classify DR images based on their severity levels. The dataset is divided into a training set, a validation set, and a test set. The pipeline should be trained on the training set, and its performance should be evaluated on the validation set. Once the pipeline is optimized, its performance should be tested on the test set.
- The performance of the pipeline is evaluated based on its accuracy, precision, recall, and F1 score. The accuracy measures the proportion of correctly classified images out of all the images in the dataset. The precision measures the proportion of correctly classified positive samples out of all the samples classified as positive. The recall measures the proportion of correctly classified positive samples out of all the actual positive samples. The F1 score is the harmonic mean of the precision and recall.
- Extra credit will be given to those methods that are able to achieve performance at par or better than the top results in the leaderboard, which is available on the Kaggle website.
TASK 3:-
- It is about segmenting retinal images into different regions using deep learning methods. Specifically, the goal is to segment the optic cup and disc from the retinal Optic cup and disc segmentation dataset, and the retinal vessels from the retinal vessel segmentation dataset.
- The retinal Optic cup and disc segmentation dataset contains high-resolution retinal images along with manual annotations of the optic cup and disc regions. The goal is to develop a deep learning method that can accurately segment these regions from the images. The dataset is divided into a training set, a validation set, and a test set.
- The retinal vessel segmentation dataset contains retinal images along with manual annotations of the blood vessels in the images. The goal is to develop a deep learning method that can accurately segment the blood vessels from the images. The dataset is also divided into a training set, a validation set, and a test set.
- The deep learning methods used for segmentation can be various types of neural networks, such as fully convolutional networks (FCNs), U-Net, and Mask R-CNN. The performance of the method can be evaluated using metrics such as the Dice coefficient, which measures the overlap between the predicted and ground truth segmentations, and the mean intersection over union (mIOU), which measures the overall similarity between the predicted and ground truth segmentations.
- Once the deep learning models are trained on the training set, their performance can be evaluated on the validation set, and the best model can be selected for testing on the test set. The results can be compared with the state-of-the-art methods for segmenting the optic cup and disc, and the retinal vessels, respectively.
general code structure as follow:
Load and preprocess the dataset:
- Load the dataset and split it into training, validation, and test sets.
- Preprocess the images and labels (e.g., resize, normalization, augmentation, etc.) as necessary.
Define the deep learning model:
- Define the architecture of your deep learning model, such as a convolutional neural network (CNN) or a U-Net.
- Compile the model by specifying the loss function, optimizer, and metrics.
Train the model:
- Train the model on the training set using the fit() method.
- Monitor the performance of the model on the validation set during training to avoid overfitting.
- Save the best performing model weights.
Evaluate the model:
- Load the saved model weights.
- Evaluate the performance of the model on the test set using the evaluate() method.
- Visualize the segmentation results using the predict() method.
Bonus Task:
3D Segmentation
- Preprocessing: resize volumes to a common size and apply data augmentation (e.g. random crops, rotations, flips)
- Use a 3D U-Net architecture or its variants for volumetric segmentation
- Alternatively, you can use a 3D Mask R-CNN for instance segmentation
- Use a suitable loss function for segmentation (e.g. Dice coefficient, binary cross-entropy)
- Use early stopping and/or learning rate scheduling to prevent overfitting
- Evaluate performance using intersection over union (IoU), Dice coefficient, and mean average precision (mAP)
Here are the broad steps involved in designing a deep learning method for 3D segmentation:
Download the Medical Decathlon Dataset and choose any one task to tackle.
Preprocess the 3D volumes to remove any noise, perform intensity normalization, and resizing, etc.
Split the dataset into training, validation, and test sets.
Design a deep learning model, such as a 3D U-Net, that can take 3D volumes as input and perform segmentation.
Train the model using the training data and validate it using the validation data.
Fine-tune the model to optimize its performance on the validation data.
Test the model on the test data and evaluate its performance using appropriate metrics such as Dice coefficient, Jaccard index, etc.
Compare your results with the post-challenge leaderboard to evaluate the performance of your model.
- Note that designing a deep learning model for 3D segmentation is a challenging task and requires a strong understanding of deep learning, image processing, and computer vision techniques. It is important to experiment with different hyperparameters, loss functions, and optimization algorithms to achieve the best performance.