ADLxMLDS 2017 fall final
Team:XD
黃晴 (R06922014), 王思傑 (R06922019), 曹爗文 (R06922022), 傅敏桓 (R06922030), 湯忠憲 (R06946003)
In this task, we have to plot bounding boxes for each disease finding in a single chest X-ray without goundtruth (X, Y, width, height) in training set. The workflow is shown below:
- Predict findings
- Use the classifier to plot heatmap (Grad-CAM)
- Plot the bounding box base on Grad-CAM
Pytorch==0.2.0
torchvision==0.2.0
matplotlib
scikit-image==0.13.1
opencv_python==3.4.0.12
numpy==1.13.3
matplotlib==2.1.1
scipy==1.0.0
sklearn==0.19.1
- OS: Linux
- Python 3.5
- GPU: 1080 Ti
- CPU: Xeon(R) E5-2667 v4
- RAM: 500 GB
- preprocessing:
python3 preprocessing.py [path of images folder] [path to data_entry] [path to bbox_list_path] [path to train_txt] [path to valid_txt] [path of preprocessed output (folder)]
- training:
python3 train.py [path of preprocessed output (folder)]
- local testing:
python3 denseNet_localization.py [path to test.txt] [path of images folder]
- Output txt format:
After running denseNet_localization.py, you would get a txt file. The format is shown below:
[image_path] [number_of_detection]
[disease] [x] [y] [width] [height]
[disease] [x] [y] [width] [height]
...
[image_path] [number_of_detection]
[disease] [x] [y] [width] [height]
[disease] [x] [y] [width] [height]
...
For DeepQ platform testing:
upload deepQ_25.zip to the platform. Then use following command:
python3 inference.py
In our .py script, I used the following script to assign the task running on GPU 0.
import os
os.environ['CUDA_VISIBLE_DEVICES'] = "0"
- Image is modified from Ref [2].
Prediction
Heatmap per disease
Visualization of some heat maps with its ground-truth label (red) and its prediction
(blue) selected from each disease class. (From top-left to bottom: Atelectasis, Cardiomegaly,
Effusion, Infiltration, Mass, Nodule, Pneumonia and Pneumothorax)
Bounding Box per patient Visualization of some images with its ground-truth label (red) and its prediction (blue) selected from each disease class.
Refers to the report for more experiment results.
- ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases [Arxiv]
- LEARNING TO DIAGNOSE FROM SCRATCH BY EXPLOITING DEPENDENCIES AMONG LABELS [Arxiv]
- CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning [Arxiv]
- Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization [Arxiv]