AndJWu commited on
Commit
77c26b9
·
1 Parent(s): b3ebcc2

Add MRI images

Browse files
Files changed (32) hide show
  1. .gitattributes +1 -0
  2. app.py +8 -26
  3. data/BraTS20_Training_001/BraTS20_Training_001_flair.nii +3 -0
  4. data/BraTS20_Training_001/BraTS20_Training_001_seg.nii +3 -0
  5. data/BraTS20_Training_001/BraTS20_Training_001_t1.nii +3 -0
  6. data/BraTS20_Training_001/BraTS20_Training_001_t1ce.nii +3 -0
  7. data/BraTS20_Training_001/BraTS20_Training_001_t2.nii +3 -0
  8. data/BraTS20_Training_002/BraTS20_Training_002_flair.nii +3 -0
  9. data/BraTS20_Training_002/BraTS20_Training_002_seg.nii +3 -0
  10. data/BraTS20_Training_002/BraTS20_Training_002_t1.nii +3 -0
  11. data/BraTS20_Training_002/BraTS20_Training_002_t1ce.nii +3 -0
  12. data/BraTS20_Training_002/BraTS20_Training_002_t2.nii +3 -0
  13. data/BraTS20_Training_003/BraTS20_Training_003_flair.nii +3 -0
  14. data/BraTS20_Training_003/BraTS20_Training_003_seg.nii +3 -0
  15. data/BraTS20_Training_003/BraTS20_Training_003_t1.nii +3 -0
  16. data/BraTS20_Training_003/BraTS20_Training_003_t1ce.nii +3 -0
  17. data/BraTS20_Training_003/BraTS20_Training_003_t2.nii +3 -0
  18. data/BraTS20_Training_004/BraTS20_Training_004_flair.nii +3 -0
  19. data/BraTS20_Training_004/BraTS20_Training_004_seg.nii +3 -0
  20. data/BraTS20_Training_004/BraTS20_Training_004_t1.nii +3 -0
  21. data/BraTS20_Training_004/BraTS20_Training_004_t1ce.nii +3 -0
  22. data/BraTS20_Training_004/BraTS20_Training_004_t2.nii +3 -0
  23. data/BraTS20_Training_005/BraTS20_Training_005_flair.nii +3 -0
  24. data/BraTS20_Training_005/BraTS20_Training_005_seg.nii +3 -0
  25. data/BraTS20_Training_005/BraTS20_Training_005_t1.nii +3 -0
  26. data/BraTS20_Training_005/BraTS20_Training_005_t1ce.nii +3 -0
  27. data/BraTS20_Training_005/BraTS20_Training_005_t2.nii +3 -0
  28. data/BraTS20_Training_006/BraTS20_Training_006_flair.nii +3 -0
  29. data/BraTS20_Training_006/BraTS20_Training_006_seg.nii +3 -0
  30. data/BraTS20_Training_006/BraTS20_Training_006_t1.nii +3 -0
  31. data/BraTS20_Training_006/BraTS20_Training_006_t1ce.nii +3 -0
  32. data/BraTS20_Training_006/BraTS20_Training_006_t2.nii +3 -0
.gitattributes CHANGED
@@ -34,3 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  model_unet_2d_attention_combineloss.keras filter=lfs diff=lfs merge=lfs -text
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  model_unet_2d_attention_combineloss.keras filter=lfs diff=lfs merge=lfs -text
37
+ *.nii filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -6,30 +6,6 @@ from tensorflow.keras.models import load_model
6
  from tensorflow.keras import backend as K
7
  import tensorflow as tf
8
 
9
- def dice_coefficient(y_true, y_pred, smooth=1.0):
10
- labels_num = 4
11
- for i in range(labels_num):
12
- y_true_f = K.flatten(y_true[:,:,:,i])
13
- y_pred_f = K.flatten(y_pred[:,:,:,i])
14
- intersection = K.sum(y_true_f * y_pred_f)
15
- loss = ((2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth))
16
- if i == 0:
17
- total_loss = loss
18
- else:
19
- total_loss = total_loss + loss
20
- total_loss = total_loss / labels_num
21
- return total_loss
22
-
23
- def dice_loss(y_true, y_pred):
24
- return 1 - dice_coefficient(y_true, y_pred)
25
-
26
- def combined_loss(y_true, y_pred):
27
- return 0.5 * dice_loss(y_true, y_pred) + 0.5 * tf.keras.losses.categorical_crossentropy(y_true, y_pred)
28
-
29
- def dice_coefficient_necrotic(y_true, y_pred, epsilon=1e-6):
30
- intersection = K.sum(K.abs(y_true[:,:,:,1] * y_pred[:,:,:,1]))
31
- return (2. * intersection) / (K.sum(K.square(y_true[:,:,:,1])) + K.sum(K.square(y_pred[:,:,:,1])) + epsilon)
32
-
33
  def dice_coefficient(y_true, y_pred, smooth=1.0):
34
  labels_num = 4
35
  for i in range(labels_num):
@@ -106,13 +82,19 @@ def predict(image_path):
106
  # 返回预测结果
107
  return prediction[0, :, :, 1:4]
108
 
 
 
 
 
 
 
109
  # 创建 Gradio 接口
110
  iface = gr.Interface(
111
  fn=predict,
112
- inputs=gr.Image(type="filepath"),
113
  outputs=gr.Image(type="numpy"),
114
  title="MRI Tumor Segmentation",
115
- description="上传一张MRI图像,模型将预测肿瘤区域。"
116
  )
117
 
118
  # 启动接口
 
6
  from tensorflow.keras import backend as K
7
  import tensorflow as tf
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  def dice_coefficient(y_true, y_pred, smooth=1.0):
10
  labels_num = 4
11
  for i in range(labels_num):
 
82
  # 返回预测结果
83
  return prediction[0, :, :, 1:4]
84
 
85
+ # 预先上传的 MRI 图像文件列表
86
+ mri_images_path = ["data/BraTS20_Training_001", "data/BraTS20_Training_002", "data/BraTS20_Training_003", "data/BraTS20_Training_004", "data/BraTS20_Training_005", "data/BraTS20_Training_006"]
87
+ mri_images = []
88
+ for i in range(len(mri_images_path)):
89
+ mri_images.append(mri_images_path[i] + "_flair.nii")
90
+
91
  # 创建 Gradio 接口
92
  iface = gr.Interface(
93
  fn=predict,
94
+ inputs=gr.Dropdown(choices=mri_images, label="选择MRI图像"),
95
  outputs=gr.Image(type="numpy"),
96
  title="MRI Tumor Segmentation",
97
+ description="选择一个MRI图像,模型将预测肿瘤区域。"
98
  )
99
 
100
  # 启动接口
data/BraTS20_Training_001/BraTS20_Training_001_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1671dfab75fbaaede29989011cabcef12b7825c72a315f293441b698a8e8d39c
3
+ size 17858880
data/BraTS20_Training_001/BraTS20_Training_001_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:56f39a503ebc4df200a5b9872b1ace83d92fa775d55b6ce301f12d2f63507180
3
+ size 8930976
data/BraTS20_Training_001/BraTS20_Training_001_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6440b711f433a7071379088fc61ad9e0ff01ae5f551a7e5f006135c5adcf0f83
3
+ size 17858880
data/BraTS20_Training_001/BraTS20_Training_001_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed3732f26987226748147562cc64e58958564a6a7e47611b726773fd4e057b99
3
+ size 17858880
data/BraTS20_Training_001/BraTS20_Training_001_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0918a2aed1e8aac1a802bf899940f9032b0e61bae70b35c9fa93d35e7e27c569
3
+ size 17858880
data/BraTS20_Training_002/BraTS20_Training_002_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f51b5715db978afb246dc00b9e2950bcdb7a48ff0933f0a1b8f4ebd0d08c8613
3
+ size 17858896
data/BraTS20_Training_002/BraTS20_Training_002_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5e5476e303ce247b623ea9fb25fc08833831560c71bc9bc5b93e637f0482fdb5
3
+ size 8930976
data/BraTS20_Training_002/BraTS20_Training_002_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0cc02bda2df29e8100459fe730b9cd5bf3350ce5d79a53ea17c39d8b9378c50
3
+ size 17858880
data/BraTS20_Training_002/BraTS20_Training_002_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd9402472cbc67d9c0f65102fc198c23649c509deceb418fc2c69cbd91ddbd78
3
+ size 17858880
data/BraTS20_Training_002/BraTS20_Training_002_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:741f3823e914e21efeff9d1795e84bef7ee3acf701d50f758b32e658ab094cda
3
+ size 17858880
data/BraTS20_Training_003/BraTS20_Training_003_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a16b8f19e5faacf4a737f08e940ac489ea4dee2e32b14dc4d27242f147a9e96
3
+ size 17858880
data/BraTS20_Training_003/BraTS20_Training_003_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:63f2d7824969c7089324fdbd8b1407bc8677716fc8dff42018d2a4b7af43ad07
3
+ size 8930976
data/BraTS20_Training_003/BraTS20_Training_003_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:41c2146286d3c26938c8fdd7643c1bb0a7c1e03b23d97a741f836c866d14e12c
3
+ size 17858880
data/BraTS20_Training_003/BraTS20_Training_003_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d92ee091991ffb7302bc587dc56dfc4da42e9f9e03b66f2c4904a70c8141d45e
3
+ size 17858880
data/BraTS20_Training_003/BraTS20_Training_003_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:55fc801c3476820c9decb8e42d31069e698d6a84505725e3a9d9c114be76fc45
3
+ size 17858880
data/BraTS20_Training_004/BraTS20_Training_004_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be40926564982a19e008ed93943cccb4fcd6a63ff37a4f5ec2b107bba48d2e6a
3
+ size 17859248
data/BraTS20_Training_004/BraTS20_Training_004_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f64c6ce007c614599391d4257a0b2f1d6f12258743f42445cf94965fbd882967
3
+ size 8930560
data/BraTS20_Training_004/BraTS20_Training_004_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e020fc0d0781665b0ff04b1d9375fead31300b8e2239f75b465c1704cee425b2
3
+ size 17859248
data/BraTS20_Training_004/BraTS20_Training_004_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a08abafdba9d29749a1de7ff546fcbfe6f133de6a94fbfb7d349e320abe3a7c1
3
+ size 17859248
data/BraTS20_Training_004/BraTS20_Training_004_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0e17e2540b96f9ee64f9a666ea232e0b00b81a231bc98924cdae837520ec7433
3
+ size 17859248
data/BraTS20_Training_005/BraTS20_Training_005_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:166d3d14e4207592af999ba43b6dbd5ff9ba8fb0737f6a5d5c1a4fd5748f8476
3
+ size 17859248
data/BraTS20_Training_005/BraTS20_Training_005_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:07613cbb392aeff1499e8799bf1c23ad9fa9e5ddd9ae0bf739b7f39d09a242b2
3
+ size 8930560
data/BraTS20_Training_005/BraTS20_Training_005_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f29468fb3485c67b868d6d8a9af2f326f2c163d8c104d1304e70dd3fc9a0848d
3
+ size 17859248
data/BraTS20_Training_005/BraTS20_Training_005_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7016965dad97e1db1bdd8c89fcf3e6914939dca782e2d9c9128e6fa2d117cb2b
3
+ size 17859248
data/BraTS20_Training_005/BraTS20_Training_005_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c32d1dc5dac8335f5b3b1925eb21d536a21f9f62706bdb4c77c41adf82e4ad66
3
+ size 17859248
data/BraTS20_Training_006/BraTS20_Training_006_flair.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4143f9278d88930faa4f388169d507685121719ccab64828350c2bafba10c62
3
+ size 17858880
data/BraTS20_Training_006/BraTS20_Training_006_seg.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f2eb58da5fcd5c987049aa89ecda7df1ec2f1321bf56c3c921d7cbfc1d256eb9
3
+ size 8930976
data/BraTS20_Training_006/BraTS20_Training_006_t1.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d9bd7ecae6c61de76f4dbd7ce35d39c6043406521044fe6641433d9c9b3bc0f
3
+ size 17858880
data/BraTS20_Training_006/BraTS20_Training_006_t1ce.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9108e2962abf44588f4d88518fd081776ee24e668a8611c425806dfccb126242
3
+ size 17858880
data/BraTS20_Training_006/BraTS20_Training_006_t2.nii ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0098db0a5676defff5c651a8bd039b96b1b0f93eff64f7d9920bc49acdf41d95
3
+ size 17858880