summaryrefslogtreecommitdiff
path: root/assignment/proposal.org
blob: 727418a9e92a693d5fd25a076510a855c05e22b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#+TITLE: Diabetic Retinopathy Classification
#+AUTHOR: Vineet Kumar
#+DATE:
#+OPTIONS:   H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:https://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+HTML_LINK_UP:
#+HTML_LINK_HOME:
#+startup: beamer
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [aspectratio=169,bigger]
#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra)
#+BEAMER_THEME: metropolis
#+latex_header: \usepackage{fontspec}
#+latex_header: \setsansfont{Comic Neue}

* Objective
** Objective
- Classifying diabetic retinopathy into 5 classes
  1. Healthy retina
  2. Mild nonproliferative diabetic retinopathy
  3. Moderate nonproliferative diabetic retinopathy
  4. Severe nonproliferative diabetic retinopathy
  5. Proliferative diabetic retinopathy
- Input would be a picture of a retina (like those from an optometrist
  when they scan your eye)

* Materials and Method
** Materials
- Using a dataset from Kaggle ("Diabetic Retinopathy Arranged") that
  has all the labelled images:
  - There is a class imbalance (73% / 25k images are of healthy
    retinas), would be accounted for with the loss function when
    training
  - Class 0: 25k images
  - Class 1: 2.4k images
  - Class 2: 5.2k images
  - Class 3: 800 images
  - Class 4: 700 images

** Image Examples
*** figure
:PROPERTIES:
:BEAMER_col: 0.5
:END:
#+ATTR_LATEX: :width 0.8\textheight
#+CAPTION: Class 0: Healthy retina
[[./retina_class0.jpg]]

*** figure 2
:PROPERTIES:
:BEAMER_col: 0.5
:END:
#+ATTR_LATEX: :width 0.8\textheight
#+CAPTION: Class 4: Proliferative diabetic retinopathy
[[./retina_class4.jpg]]


** Method
- Training a CNN model for classification
  - There exists a few that can be finetuned on a dataset such as
    Microsoft's ResNet-50 (2015) and Google's EfficientNet-B0 (2019)
  - I would be comparing with both models
- Preprocessing
  - Resize images to 224x224 (input size that EfficientNet uses)
  - Apply CLAHE (Contrast Limited Adaptive Histogram Equalization) on
    luminosity channel of LAB
    - there is more usable information for a retina in the luminosity
      channel than the chrominance (colour) channel
    - I would also compare without CLAHE to see how that affects
      metrics
  - Normalize with ImageNet's mean and std
  - Perform random flips and rotations of the images so that the model
    can generalize across orientations

** Metrics
*** Primary
- Weighted F1-score (to account for class imbalance)
*** Additional
- Per-class precision and recall
- Confusion matrix

* Timeline
** Timeline
- Day 1-3: dataset setup, make preprocessing pipeline, perform baseline
  training on both models
- Day 4-6: evaluate and compare outputs, tune weighted loss function,
  maybe train with additional epochs for better metrics (depending on
  how long it takes)
- Day 7-9: gather final metrics, start preparing final report and
  presentation slides