• Stars
    star
    203
  • Rank 192,890 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • 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

Two-Stage Convolutional Neural Network for Breast Cancer Histology Image Classification. ICIAR 2018 Grand Challenge on BreAst Cancer Histology images (BACH)

ICIAR2018

Two-Stage Convolutional Neural Network for Breast Cancer Histology Image Classification

This repository is the part A of the ICIAR 2018 Grand Challenge on BreAst Cancer Histology (BACH) images for automatically classifying H&E stained breast histology microscopy images in four classes: normal, benign, in situ carcinoma and invasive carcinoma.

We are presenting a CNN approach using two convolutional networks to classify histology images in a patchwise fashion. The first network, receives overlapping patches (35 patches) of the whole-slide image and learns to generate spatially smaller outputs. The second network is trained on the downsampled patches of the whole image using the output of the first network. The number of channels in the input to the second network is equal to the total number of patches extracted from the microscopy image in a non-overlapping fashion (12 patches) times the depth of the feature maps generted by the first network (C):

Prerequisites

  • Linux
  • Python 3
  • NVIDIA GPU (12G or 24G memory) + CUDA cuDNN

Getting Started

Installation

  • Clone this repo:
git clone https://github.com/ImagingLab/ICIAR2018
cd ICIAR2018
pip install -r requirements.txt

Dataset

  • We use the ICIAR2018 dataset. To train a model on the full dataset, please download it from the official website (registration required). The dataset is composed of 400 high resolution Hematoxylin and Eosin (H&E) stained breast histology microscopy images labelled as normal, benign, in situ carcinoma, and invasive carcinoma (100 images for each category):

After downloading, please put it under the `datasets` folder in the same way the sub-directories are provided.

Testing

  • The pre-trained ICIAR2018 dataset model resides under ./checkpoints.
  • To test the model, run test.py script
  • Use --testset-path command-line argument to provide the path to the test folder.
python test.py --testset-path ./dataset/test 
  • If you don't provide the test-set path, an open-file dialogbox will appear to select an image for test. The test results will be printed on the screen.

Training

  • To train the model, run train.py script
python train.py
  • To change the number of feature-maps generated by the patch-wise network use --channels argument:
python train.py --channels 1

Validation & ROC Curves

  • To validate the model on the validation set and plot the ROC curves, run validate.py script
python validate.py
  • To change the number of feature-maps generated by the patch-wise network use --channels argument:
python train.py --channels 1

Citation

If you use this code for your research, please cite our paper Two-Stage Convolutional Neural Network for Breast Cancer Histology Image Classification:

@inproceedings{nazeri2018two,
  title={Two-Stage Convolutional Neural Network for Breast Cancer Histology Image Classification},
  author={Nazeri, Kamyar and Aminpour, Azad and Ebrahimi, Mehran},
  booktitle={International Conference Image Analysis and Recognition},
  pages={717--726},
  year={2018},
  organization={Springer}
}