Giter Club home page Giter Club logo

ct-cycle_idnetity_gan_tensorflow's Introduction

CYCLE_IDENTITY_GAN-tensorflow

Kang, E., Koo, H. J., Yang, D. H., Seo, J. B., & Ye, J. C. (2018). Cycle Consistent Adversarial Denoising Network for Multiphase Coronary CT Angiography. arXiv preprint arXiv:1806.09748.

  • CYCLE_IDENTITY_GAN

I/O (DICOM file -> .npy)

  • Input data Directory
    • DICOM file extension = ['.IMA', '.dcm']

$ os.path.join(dcm_path, patient_no, [LDCT_path|NDCT_path], '*.' + extension)

Ntwork architecture

  • Generator(revised image)

reference : Kang, E., Chang, W., Yoo, J., & Ye, J. C. (2018). Deep convolutional framelet denosing for low-dose ct via wavelet residual network. IEEE transactions on medical imaging, 37(6), 1358-1369. generator architecture

  1. To reduce network complexity, images are used directly as inputs to the network instead of the wavelet transform coefficients
  1. The First convolution layer uses 128 set of 3 * 3 convolution kernels to produce 128 channel feature maps.
  1. We have 6 set of module composed of 3 sets of convolution, batch normalization, and ReLU layers, and one bypass connection with a ReLU layer. Convolution layers in the modules use 128 set of 3 * 3 * 128 convolution kernels.
  1. In addition, the proposed network has a concatenation layer that concatenates the inputs of each module and the output of the last module.
  1. followed by the convolution layer with 128 set of 3 * 3 * 896 convolution kernels. The last convolution layer uses 15 sets of 3 * 3 * 128 convolution kernels. Finally, we add an end-to-end bypass connection.
  • discriminator discriminator architecture
  • it consists of 5 convolution layers including the last fully-connected layer. The first convolution layer uses 64 sets of 4 * 4 convolution kernels, and the number of convolution kernels in the following layers is twice that of the previous layer except the last fully connected layer.

Training detail

  • mini batch size : 10
  • patch size : 56*56
  • opt : Adam(learning rate = 0.0002, beta1 = 0.5, beta2 = 0.999)
  • learning rate decay : first 100 eppoch 0.0002 and linearly decreased it to zero over the next epochs.
  • lambda(weight of cycle loss) : 10
  • gamma(weight of identity loss) : 5
  • epoch : 160
  • normalized input : -1 ~ 1

Main file(main.py) Parameters

  • Directory
  • dcm_path : dicom file directory
  • LDCT_path : LDCT image folder name
  • NDCT_path : NDCT image folder name
  • test_patient_no : test patient id list(p_id1,p_id2...) (train patient id : (patient id list - test patient id list)
  • checkpoint_dir : save directory - trained model
  • test_npy_save_dir : save directory - test numpy file
  • Image info
  • patch_size : patch size
  • whole_size : whole size
  • img_channel : image channel
  • img_vmax : max value
  • img_vmin : min value
  • Train/Test
  • model : red_cnn, wgan_vgg, cyclegan, cycle_identity (for image preprocessing)
  • phase : train | test
  • Training detail
  • end_epoch : end epoch (default = 160)
  • lr : learning rate (default=0.0002)
  • batch_size : batch size (default=10)
  • L1_lambda : weight of cyclic loss (default=10)
  • L1_gamma : weight of identity loss (default=5)
  • beta1 : Adam optimizer parameter (default=0.5)
  • beta2 : Adam optimizer parameter (default=0.999)
  • ngf : # of generator filters in first conv layer
  • nglf : # of generator filters in last conv layer
  • ndf : # of discriminator filters in first conv layer
  • others
  • save_freq : save a model every step (iterations)
  • print_freq : print frequency (iterations)
  • continue_train : load the latest model: true, false
  • gpu_no : visible devices(gpu no)
  • unpair : unpaired image(cycle loss), (default=True)

Run

  • train

python main.py

  • test

python main.py --phase=test

ct-cycle_idnetity_gan_tensorflow's People

Contributors

hyeongyuy 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.