GithubHelp home page GithubHelp logo

guoshenli / mb-dcnn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ytongxie/mb-dcnn

0.0 0.0 0.0 32 KB

[TMI2020]A Mutual Bootstrapping Model for Automated Skin Lesion Segmentation and Classification.

License: MIT License

Python 100.00%

mb-dcnn's Introduction

Mutual Bootstrapping Deep Convolutional Neural Networks(MB-DCNN)

This is the official pytorch implementation of the MB-DCNN model:

Paper: A Mutual Bootstrapping Model for Automated Skin Lesion Segmentation and Classification. (https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8990108)

Requirements

Python 3.7
Torch==1.4.0
Torchvision==0.5.0
Apex==0.1
CUDA 10.0

Usage

0. Installation

  • Clone this repo
git clone https://github.com/YtongXie/MB-DCNN.git
cd MB-DCNN

1. Data Preparation

  • Download ISIC2017 dataset, Extra 1320 images(The ID information of the extra 1320 images is listed in here)

  • Put the data under ./dataset/data/

  • Run python ./dataset/extractPatch_cls_train.py and python ./dataset/extractPatch_cls_val_test.py to obtain the cropped training, validation and testing patches for classification task.

  • Run python ./dataset/extractPatch_seg_train.py to obtain the resized training patches for segmentation task.

  • Run python ./dataset/list_cls.py and python ./dataset/list_seg.py to generate the data lists.

2. Training coarse segmentation network (coarse-SN)

  • Download pretrained weights from Deeplabv3+, Xception and put them under ./models/ .

  • Run python train_CoarseSN.py to train the coarse segmentation network for roughly segmenting skin lesions.

  • The segmentation network structure is defined in ./net/models.py, and the hybrid loss is defined in ./net/loss.py.

3. Generating coarse masks

  • Run python generate_Coarse_mask.py to obtain the coarse masks for mask-CN and enhanced-SN.

4. Training mask-guided classification network (mask-CN)

  • Run python train_MaskCN.py to train the mask-guided classification network for skin lesion classification.

  • The classification network structure is defined in ./net/models.py, and the loss is cross-entropy loss.

5. Training enhanced segmentation network (enhanced-SN)

  • Run python train_EnhancedSN.py to train the enhanced segmentation network for more accurate skin lesion segmentation.

6. Evaluation

  • Run python eval_MaskCN.py and python eval_EnhancedSN.py to start the evaluation.

7. Citation

If this code is helpful for your study, please cite:

@ARTICLE{8990108,
  author={Yutong Xie and Jianpeng Zhang and Yong Xia and Chunhua Shen},
  journal={IEEE Transactions on Medical Imaging}, 
  title={A Mutual Bootstrapping Model for Automated Skin Lesion Segmentation and Classification}, 
  year={2020},
  volume={39},
  number={7},
  pages={2482-2493},}

8. Acknowledgements

The codes for Deeplabv3+ network and Xception network are reused from the YudeWang and Cadene.
Thanks to YudeWang and Cadene for the pretrained weights for Deeplabv3+ network and Xception network.

Contact

Yutong Xie ([email protected])

mb-dcnn's People

Contributors

ytongxie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.