项目作者: mk-michal

项目描述 :
Repo for Vin-Big Chest-ray kaggle competition in order to find thoracic abnormalities from chest radiographs using Faster-RCNN network.
高级语言: Python
项目地址: git://github.com/mk-michal/radiograph_abnormality_detection.git


Radiograph Abnormality Detection

Project for localizing and detection 14 types of thoratic abnormalities from ches radiographs.

Dataset

We used kaggle VinBig dataset that can be found via following link: https://www.kaggle.com/c/vinbigdata-chest-xray-abnormalities-detection/data

For faster training we recommend using reshaped data to 1024x1024 that are available via https://www.kaggle.com/awsaf49/vinbigdata-1024-image-dataset

Dataset consists of 18 000 scans in DiCOM format that were annotated by experienced radiologists with multiple annotations for each image. Radiologists localized and classified 14 differend findings:

  1. 0 - Aortic enlargement
  2. 1 - Atelectasis
  3. 2 - Calcification
  4. 3 - Cardiomegaly
  5. 4 - Consolidation
  6. 5 - ILD
  7. 6 - Infiltration
  8. 7 - Lung Opacity
  9. 8 - Nodule/Mass
  10. 9 - Other lesion
  11. 10 - Pleural effusion
  12. 11 - Pleural thickening
  13. 12 - Pneumothorax
  14. 13 - Pulmonary fibrosis

Example Image from dataset:

image

Method

For localization and classification of lung abnormalities we used two-staged model Faster-RCNN from pytorch library. ResNet50 was used as a base backbone of our model. We used pretrained model on ImageNET dataset and fine-tuned it on our data.

SGD optimizer with weight decay and momentum to optimize parameters of our model with Stepwise learning rate decay, that was decrease by factor of 0.1 each 30 epochs.

Model was evaluated on unlabeled test set and results were submitted for VinBig kaggle competition.

Usage

Install requirements listed in requirements.txt by pip install -r requirements.txt

In order to run the training script you can run

  1. python xray/train.py --n-workers 8 \
  2. --data-path $DATA_PATH \
  3. --save-path $SAVE_PATH \
  4. --lr 0.001 \
  5. --device cuda \
  6. --momentum 0.9 \
  7. --n-epochs 100 \
  8. --batch-size 32 \
  9. --log-step 20 \
  10. --step-size 30 \
  11. --gamma 0.1

with proper for VinBig data path and save path.