This is a Python3 (Pytorch) reimplementation of CheXNet. The model takes a chest X-ray image as input and outputs the probability of each thoracic disease along with a likelihood map of pathologies.
The ChestX-ray14 dataset comprises 112,120 frontal-view chest X-ray images of 30,805 unique patients with 14 disease labels. To evaluate the model, we randomly split the dataset into training (70%), validation (10%) and test (20%) sets, following the work in paper. Partitioned image names and corresponding labels are placed under the directory labels.
- Python 3.4+
- PyTorch and its dependencies
-
Clone this repository.
-
Download images of ChestX-ray14 from this released page and decompress them to the directory images.
-
Specify one or multiple GPUs and run
python model.py
We followed the training strategy described in the official paper, and a ten crop method is adopted both in validation and test. Compared with the original CheXNet, the per-class AUROC of our reproduced model is almost the same. We have also proposed a slightly-improved model which achieves a mean AUROC of 0.847 (v.s. 0.841 of the original CheXNet).
Pathology | Wang et al. | Yao et al. | CheXNet | Our Implemented CheXNet | Our Improved Model |
---|---|---|---|---|---|
Atelectasis | 0.716 | 0.772 | 0.8094 | 0.8294 | 0.8311 |
Cardiomegaly | 0.807 | 0.904 | 0.9248 | 0.9165 | 0.9220 |
Effusion | 0.784 | 0.859 | 0.8638 | 0.8870 | 0.8891 |
Infiltration | 0.609 | 0.695 | 0.7345 | 0.7143 | 0.7146 |
Mass | 0.706 | 0.792 | 0.8676 | 0.8597 | 0.8627 |
Nodule | 0.671 | 0.717 | 0.7802 | 0.7873 | 0.7883 |
Pneumonia | 0.633 | 0.713 | 0.7680 | 0.7745 | 0.7820 |
Pneumothorax | 0.806 | 0.841 | 0.8887 | 0.8726 | 0.8844 |
Consolidation | 0.708 | 0.788 | 0.7901 | 0.8142 | 0.8148 |
Edema | 0.835 | 0.882 | 0.8878 | 0.8932 | 0.8992 |
Emphysema | 0.815 | 0.829 | 0.9371 | 0.9254 | 0.9343 |
Fibrosis | 0.769 | 0.767 | 0.8047 | 0.8304 | 0.8385 |
Pleural Thickening | 0.708 | 0.765 | 0.8062 | 0.7831 | 0.7914 |
Hernia | 0.767 | 0.914 | 0.9164 | 0.9104 | 0.9206 |
This work was collaboratively conducted by Xinyu Weng, Nan Zhuang, Jingjing Tian and Yingcheng Liu.
All of us are students/interns of Machine Intelligence Lab, Institute of Computer Science & Technology, Peking University, directed by Prof. Yadong Mu (http://www.muyadong.com).