• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

priyavrat-misra/xrays-and-gradcam: Classification and Gradient-based Localizatio ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

priyavrat-misra/xrays-and-gradcam

开源软件地址(OpenSource Url):

https://github.com/priyavrat-misra/xrays-and-gradcam

开源编程语言(OpenSource Language):

Jupyter Notebook 99.1%

开源软件介绍(OpenSource Introduction):

Classification and Gradient-based Localization of Chest Radiographs

cover

Contents

Introduction

A team of radiologists from New Orleans studied the usefulness of Chest Radiographs for diagnosing COVID-19 compared to the reverse-transcription polymerase chain reaction (RT-PCR) and found out they could aid rapid diagnosis, especially in areas with limited testing facilities [1].
Another study found out that the radiographs of different viral cases of pneumonia are comparative, and they overlap with other infectious and inflammatory lung diseases, making it hard for radiologists to recognize COVID‐19 from other viral pneumonia cases [2].
This project aims to make the former study a reality while dealing with the intricacies in the latter, with the help of Deep Learning.

Overview

The project uses the COVID-19 Radiography Database [3] as it's dataset. It has a total of 21165 Chest X-Rays (CXRs) belonging to 4 different classes (COVID-19, Lung Opacity, Normal and Viral Pneumonia).
Three top scoring CNN architectures, VGG-16 [4], ResNet-18 [5] and DenseNet-121 [6], trained on the ImageNet Dataset [7], were chosen for fine-tuning on the dataset.
The results obtained from the different architectures were then evaluted and compared.
Finally, with the help of Gradient weighted Class Activation Maps (Grad-CAM) [8] the affected areas in CXRs were localized.

  • Note: The dataset and the trained models can be found in here.

Steps

  1. Dataset Exploration
  2. Split the dataset
    Type COVID-19 Lung Opacity Normal Viral Pneumonia Total
    Train 3496 5892 10072 1225 20685
    Val 60 60 60 60 240
    Test 60 60 60 60 240
  3. Fine-tune VGG-16, ResNet-18 and DenseNet-121
    1. Define Transformations
    2. Handle imbalanced dataset with Weighted Random Sampling (Over-sampling)
    3. Prepare the Pre-trained models
    4. Fine-tune step with Early-stopping
      • Hyper-parameters
        Learning rate 0.00003
        Batch Size 32
        Number of Epochs 25
      • Loss Function Optimizer
        Categorical Cross Entropy Adam
    5. Plot running losses & accuracies
      • Model Summary Plot
        VGG-16 vgg_plot
        ResNet-18 res_plot
        DenseNet-121 dense_plot
  4. Results Evaluation
    1. Plot confusion matrices
    2. Compute test-set Accuracy, Precision, Recall & F1-score
    3. Localize using Grad-CAM
  5. Inference

Results

VGG-16 ResNet-18 DenseNet-121
Pathology
COVID-19
Lung Opacity
Normal
Viral Pneumonia
Accuracy Precision Recall F1-Score
0.9956 0.9833 1.0000 0.9916
0.9582 0.8833 0.9464 0.9138
0.9622 0.9667 0.8923 0.9280
0.9913 0.9833 0.9833 0.9833
Accuracy Precision Recall F1-Score
0.9871 0.9667 0.9830 0.9748
0.9664 0.8667 1.0000 0.9286
0.9664 1.0000 0.8823 0.9375
0.9957 1.0000 0.9836 0.9917
Accuracy Precision Recall F1-Score
0.9957 0.9833 1.0000 0.9916
0.9623 0.9167 0.9322 0.9244
0.9623 0.9500 0.9047 0.9268
0.9957 0.9833 1.0000 0.9916
TL;DR
Train set
Test set
Total Correct Predictions Total Accuracy
20362 98.44%
229 95.42%
Total Correct Predictions Total Accuracy
20639 99.78%
230 95.83%
Total Correct Predictions Total Accuracy
20540 99.30%
230 95.83%
Confusion Matrices

vgg_confmat

res_confmat

dense_confmat

  • Localization with Gradient-based Class Activation Maps
original vgg_cam res_cam dense_cam
COVID-19 infected CXR VGG-16 ResNet-18 DenseNet-121

Usage

  • Clone the repository
git clone 'https://github.com/priyavrat-misra/xrays-and-gradcam.git' && cd xrays-and-gradcam/
  • Install dependencies
pip install -r requirements.txt
  • Using argparse script for inference
python overlay_cam.py --help
usage: GradCAM on Chest X-Rays [-h] [-i IMAGE_PATH]
                               [-l {covid_19,lung_opacity,normal,pneumonia}]
                               -m {vgg16,resnet18,densenet121}
                               [-o OUTPUT_PATH]

Overlays given label's CAM on a given Chest X-Ray.

optional arguments:
  -h, --help            show this help message and exit
  -i IMAGE_PATH, --image-path IMAGE_PATH
                        Path to chest X-Ray image.
  -l {covid_19,lung_opacity,normal,pneumonia}, --label {covid_19,lung_opacity,normal,pneumonia}
                        Choose from covid_19, lung_opacity, normal &
                        pneumonia, to get the corresponding CAM. If not
                        mentioned, the highest scoring label is considered.
  -m {vgg16,resnet18,densenet121}, --model {vgg16,resnet18,densenet121}
                        Choose from vgg16, resnet18 or densenet121.
  -o OUTPUT_PATH, --output-path OUTPUT_PATH
                        Format: "<path> + <file_name> + .jpg"
  • An example
python overlay_cam.py --image-path ./assets/original.jpg --label covid_19 --model resnet18 --output-path ./assets/dense_cam.jpg
GradCAM generated for label "covid_19".
GradCAM masked image saved to "./assets/res_cam.jpg".

Conclusions

  • DenseNet-121 having only 7.98 Million parameters did relatively better than VGG-16 and ResNet-18, with 138 Million and 11.17 Million parameters respectively.
  • Increase in model's parameter count doesn’t necessarily achieve better results, but increase in residual connections might.
  • Oversampling helped in dealing with imbalanced data to a great extent.
  • Fine-tuning helped substantially by dealing with the comparatively small dataset and speeding up the training process.
  • GradCAM aided in localizing the areas in CXRs that decides a model's predictions.
  • The models did a good job distinguishing various infectious and inflammatory lung diseases, which is rather hard manually, as mentioned earlier.

References




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap