项目作者: charlychiu

项目描述 :
Implement "U-Net: Convolutional Networks for Biomedical Image Segmentation" on Keras
高级语言: Jupyter Notebook
项目地址: git://github.com/charlychiu/U-Net.git
创建时间: 2019-04-23T03:00:43Z
项目社区:https://github.com/charlychiu/U-Net

开源协议:

下载


U-Net with Keras


Paper

Keras implementation of U-Net, with simple annotation

U-Net: Convolutional Networks for Biomedical Image Segmentation
Paper URL : https://arxiv.org/abs/1505.04597

Dataset

  1. ISBI Challenge: Segmentation of neuronal structures in EM stacks
  2. Cell Tracking Challenge
    a. DIC-C2DH-HeLa (HeLa cells on a flat glass)
    b. PhC-C2DH-U373 (Glioblastoma-astrocytoma U373 cells on a polyacrylamide substrate)

Preprocessed

Original 512x512

training-data-0

Overlap-tile strategy 696x696

training-data-0

Patch Original

patch-original

Patch 1

patch-1

Patch 2

patch-2

Patch 3

patch-3

Patch 4

patch-4

Model

  1. __________________________________________________________________________________________________
  2. Layer (type) Output Shape Param # Connected to
  3. ==================================================================================================
  4. input_1 (InputLayer) (None, 572, 572, 1) 0
  5. __________________________________________________________________________________________________
  6. conv1_1 (Conv2D) (None, 570, 570, 64) 640 input_1[0][0]
  7. __________________________________________________________________________________________________
  8. conv1_2 (Conv2D) (None, 568, 568, 64) 36928 conv1_1[0][0]
  9. __________________________________________________________________________________________________
  10. maxpooling_1 (MaxPooling2D) (None, 284, 284, 64) 0 conv1_2[0][0]
  11. __________________________________________________________________________________________________
  12. conv2_1 (Conv2D) (None, 282, 282, 128 73856 maxpooling_1[0][0]
  13. __________________________________________________________________________________________________
  14. conv2_2 (Conv2D) (None, 280, 280, 128 147584 conv2_1[0][0]
  15. __________________________________________________________________________________________________
  16. maxpooling_2 (MaxPooling2D) (None, 140, 140, 128 0 conv2_2[0][0]
  17. __________________________________________________________________________________________________
  18. conv3_1 (Conv2D) (None, 138, 138, 256 295168 maxpooling_2[0][0]
  19. __________________________________________________________________________________________________
  20. conv3_2 (Conv2D) (None, 136, 136, 256 590080 conv3_1[0][0]
  21. __________________________________________________________________________________________________
  22. maxpooling_3 (MaxPooling2D) (None, 68, 68, 256) 0 conv3_2[0][0]
  23. __________________________________________________________________________________________________
  24. conv4_1 (Conv2D) (None, 66, 66, 512) 1180160 maxpooling_3[0][0]
  25. __________________________________________________________________________________________________
  26. conv4_2 (Conv2D) (None, 64, 64, 512) 2359808 conv4_1[0][0]
  27. __________________________________________________________________________________________________
  28. maxpooling_4 (MaxPooling2D) (None, 32, 32, 512) 0 conv4_2[0][0]
  29. __________________________________________________________________________________________________
  30. conv5_1 (Conv2D) (None, 30, 30, 1024) 4719616 maxpooling_4[0][0]
  31. __________________________________________________________________________________________________
  32. conv5_2 (Conv2D) (None, 28, 28, 1024) 9438208 conv5_1[0][0]
  33. __________________________________________________________________________________________________
  34. upsampling1 (Conv2DTranspose) (None, 56, 56, 512) 2097664 conv5_2[0][0]
  35. __________________________________________________________________________________________________
  36. cropped_conv4_2 (Cropping2D) (None, 56, 56, 512) 0 conv4_2[0][0]
  37. __________________________________________________________________________________________________
  38. skip_connection1 (Concatenate) (None, 56, 56, 1024) 0 upsampling1[0][0]
  39. cropped_conv4_2[0][0]
  40. __________________________________________________________________________________________________
  41. conv6_1 (Conv2D) (None, 54, 54, 512) 4719104 skip_connection1[0][0]
  42. __________________________________________________________________________________________________
  43. conv6_2 (Conv2D) (None, 52, 52, 512) 2359808 conv6_1[0][0]
  44. __________________________________________________________________________________________________
  45. upsampling2 (Conv2DTranspose) (None, 104, 104, 256 524544 conv6_2[0][0]
  46. __________________________________________________________________________________________________
  47. cropped_conv3_2 (Cropping2D) (None, 104, 104, 256 0 conv3_2[0][0]
  48. __________________________________________________________________________________________________
  49. skip_connection2 (Concatenate) (None, 104, 104, 512 0 upsampling2[0][0]
  50. cropped_conv3_2[0][0]
  51. __________________________________________________________________________________________________
  52. conv7_1 (Conv2D) (None, 102, 102, 256 1179904 skip_connection2[0][0]
  53. __________________________________________________________________________________________________
  54. conv7_2 (Conv2D) (None, 100, 100, 256 590080 conv7_1[0][0]
  55. __________________________________________________________________________________________________
  56. upsampling3 (Conv2DTranspose) (None, 200, 200, 128 131200 conv7_2[0][0]
  57. __________________________________________________________________________________________________
  58. cropped_conv2_2 (Cropping2D) (None, 200, 200, 128 0 conv2_2[0][0]
  59. __________________________________________________________________________________________________
  60. skip_connection3 (Concatenate) (None, 200, 200, 256 0 upsampling3[0][0]
  61. cropped_conv2_2[0][0]
  62. __________________________________________________________________________________________________
  63. conv8_1 (Conv2D) (None, 198, 198, 128 295040 skip_connection3[0][0]
  64. __________________________________________________________________________________________________
  65. conv8_2 (Conv2D) (None, 196, 196, 128 147584 conv8_1[0][0]
  66. __________________________________________________________________________________________________
  67. upsampling4 (Conv2DTranspose) (None, 392, 392, 64) 32832 conv8_2[0][0]
  68. __________________________________________________________________________________________________
  69. cropped_conv1_2 (Cropping2D) (None, 392, 392, 64) 0 conv1_2[0][0]
  70. __________________________________________________________________________________________________
  71. skip_connection4 (Concatenate) (None, 392, 392, 128 0 upsampling4[0][0]
  72. cropped_conv1_2[0][0]
  73. __________________________________________________________________________________________________
  74. conv9_1 (Conv2D) (None, 390, 390, 64) 73792 skip_connection4[0][0]
  75. __________________________________________________________________________________________________
  76. conv9_2 (Conv2D) (None, 388, 388, 64) 36928 conv9_1[0][0]
  77. __________________________________________________________________________________________________
  78. conv10 (Conv2D) (None, 388, 388, 2) 130 conv9_2[0][0]
  79. ==================================================================================================
  80. Total params: 31,030,658
  81. Trainable params: 31,030,658
  82. Non-trainable params: 0
  83. __________________________________________________________________________________________________

Paper

Model Structure

training-data-0

Overlap-tile strategy

training-data-0