• Stars
    star
    207
  • Rank 189,769 (Top 4 %)
  • Language
    Python
  • Created almost 7 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implementation of the CheXNet network (PyTorch)

CheXNet implementation in PyTorch

Yet another PyTorch implementation of the CheXNet algorithm for pathology detection in frontal chest X-ray images. This implementation is based on approach presented here. Ten-crops technique is used to transform images at the testing stage to get better accuracy.

The highest accuracy evaluated with AUROC was 0.8508 (see the model m-25012018-123527 in the models directory). The same training (70%), validation (10%) and testing (20%) datasets were used as in this implementation.

alt text

Prerequisites

  • Python 3.5.2
  • Pytorch
  • OpenCV (for generating CAMs)

Usage

  • Download the ChestX-ray14 database from here
  • Unpack archives in separate directories (e.g. images_001.tar.gz into images_001)
  • Run python Main.py to run test using the pre-trained model (m-25012018-123527)
  • Use the runTrain() function in the Main.py to train a model from scratch

This implementation allows to conduct experiments with 3 different densenet architectures: densenet-121, densenet-169 and densenet-201.

  • To generate CAM of a test file run script HeatmapGenerator

Results

The highest accuracy 0.8508 was achieved by the model m-25012018-123527 (see the models directory).

Pathology AUROC
Atelectasis 0.8321
Cardiomegaly 0.9107
Effusion 0.8860
Infiltration 0.7145
Mass 0.8653
Nodule 0.8037
Pneumonia 0.7655
Pneumothorax 0.8857
Consolidation 0.8157
Edema 0.9017
Emphysema 0.9422
Fibrosis 0.8523
P.T. 0.7948
Hernia 0.9416

Computation time

The training was done using single Tesla P100 GPU and took approximately 22h.