chengwang96 commited on
Commit
c31c545
·
1 Parent(s): d70a23e

upload all examples

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. app.py +48 -10
  3. diag_input/img_1.jpg +3 -0
  4. diag_input/img_10.jpg +3 -0
  5. diag_input/img_11.jpg +3 -0
  6. diag_input/img_12.jpg +3 -0
  7. diag_input/img_13.jpg +3 -0
  8. diag_input/img_14.jpg +3 -0
  9. diag_input/img_15.jpg +3 -0
  10. diag_input/img_16.jpg +3 -0
  11. diag_input/img_17.jpg +3 -0
  12. diag_input/img_18.jpg +3 -0
  13. diag_input/img_19.jpg +3 -0
  14. diag_input/img_2.jpg +3 -0
  15. diag_input/img_20.jpg +3 -0
  16. diag_input/img_21.jpg +3 -0
  17. diag_input/img_22.jpg +3 -0
  18. diag_input/img_23.jpg +3 -0
  19. diag_input/img_24.jpg +3 -0
  20. diag_input/img_25.jpg +3 -0
  21. diag_input/img_26.jpg +3 -0
  22. diag_input/img_27.jpg +3 -0
  23. diag_input/img_28.jpg +3 -0
  24. diag_input/img_29.jpg +3 -0
  25. diag_input/img_3.jpg +3 -0
  26. diag_input/img_30.jpg +3 -0
  27. diag_input/img_31.jpg +3 -0
  28. diag_input/img_32.jpg +3 -0
  29. diag_input/img_4.jpg +3 -0
  30. diag_input/img_5.jpg +3 -0
  31. diag_input/img_6.jpg +3 -0
  32. diag_input/img_7.jpg +3 -0
  33. diag_input/img_8.jpg +3 -0
  34. diag_input/img_9.jpg +3 -0
  35. seg_input/{1.png → img_1.png} +0 -0
  36. seg_input/{10.png → img_10.png} +0 -0
  37. seg_input/{11.png → img_11.png} +0 -0
  38. seg_input/{12.png → img_12.png} +0 -0
  39. seg_input/{13.png → img_13.png} +0 -0
  40. seg_input/{14.png → img_14.png} +0 -0
  41. seg_input/{15.png → img_15.png} +0 -0
  42. seg_input/{16.png → img_16.png} +0 -0
  43. seg_input/{17.png → img_17.png} +0 -0
  44. seg_input/{18.png → img_18.png} +0 -0
  45. seg_input/{19.png → img_19.png} +0 -0
  46. seg_input/{2.png → img_2.png} +0 -0
  47. seg_input/{20.png → img_20.png} +0 -0
  48. seg_input/{21.png → img_21.png} +0 -0
  49. seg_input/{22.png → img_22.png} +0 -0
  50. seg_input/{23.png → img_23.png} +0 -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
  *.png 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
  *.png filter=lfs diff=lfs merge=lfs -text
37
+ *.jpg filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -7,16 +7,16 @@ import random
7
  # 图像增强
8
  ENHANCE_INPUT_DIR = "sr_input"
9
  ENHANCE_OUTPUT_DIR = "sr_output"
10
- ENHANCE_IMG_NAMES = [f"{i}.png" for i in range(1, 30)]
11
 
12
  # 分割
13
  SEG_INPUT_DIR = "seg_input"
14
  SEG_OUTPUT_DIR = "seg_output"
15
- SEG_IMG_NAMES = [f"{i}.png" for i in range(1, 30)]
16
 
17
  # 诊断
18
  DIAG_INPUT_DIR = "diag_input"
19
- DIAG_IMG_NAMES = [f"{i}.png" for i in range(1, 30)]
20
 
21
  # Kvasir 类别
22
  KVASIR_CLASSES = [
@@ -28,7 +28,9 @@ KVASIR_CLASSES = [
28
  "糜烂 (dyed-lifted-polyps)",
29
  "出血 (dyed-resection-margins)",
30
  "炎症 (bbps-0-1)",
31
- "直肠癌 (bbps-2-3)"
 
 
32
  ]
33
 
34
  # ========== 功能函数 ==========
@@ -59,9 +61,46 @@ def show_diag_input(img_name):
59
  return open_img(path)
60
 
61
  def diagnose_demo(img_name):
62
- pred = random.choice(KVASIR_CLASSES)
63
- conf = round(random.uniform(0.85, 0.99), 2)
64
- return f"诊断结果:{pred}\n置信度:{conf}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  # ========== Gradio 布局 ==========
67
  with gr.Blocks(title="AI内窥镜影像辅助分析系统") as demo:
@@ -77,9 +116,7 @@ with gr.Blocks(title="AI内窥镜影像辅助分析系统") as demo:
77
  enhance_output_img = gr.Image(label="增强结果图片", interactive=False)
78
  enhance_btn = gr.Button("增强图片")
79
 
80
- # 选择图片自动显示原图
81
  enhance_select.change(fn=show_enhance_input, inputs=enhance_select, outputs=enhance_input_img)
82
- # 按钮显示增强结果
83
  enhance_btn.click(fn=enhance_demo, inputs=enhance_select, outputs=enhance_output_img)
84
 
85
  # 下方:左右两大模块
@@ -101,9 +138,10 @@ with gr.Blocks(title="AI内窥镜影像辅助分析系统") as demo:
101
  diag_select = gr.Dropdown(choices=DIAG_IMG_NAMES, value=DIAG_IMG_NAMES[0], label="选择样例图片", filterable=True)
102
  diag_input_img = gr.Image(label="输入图片", interactive=False)
103
  diag_btn = gr.Button("开始诊断")
 
104
  diag_result = gr.Textbox(label="诊断结果")
105
 
106
  diag_select.change(fn=show_diag_input, inputs=diag_select, outputs=diag_input_img)
107
- diag_btn.click(fn=diagnose_demo, inputs=diag_select, outputs=diag_result)
108
 
109
  demo.launch()
 
7
  # 图像增强
8
  ENHANCE_INPUT_DIR = "sr_input"
9
  ENHANCE_OUTPUT_DIR = "sr_output"
10
+ ENHANCE_IMG_NAMES = [f"img_{i}.jpg" for i in range(1, 30)]
11
 
12
  # 分割
13
  SEG_INPUT_DIR = "seg_input"
14
  SEG_OUTPUT_DIR = "seg_output"
15
+ SEG_IMG_NAMES = [f"img_{i}.png" for i in range(1, 30)]
16
 
17
  # 诊断
18
  DIAG_INPUT_DIR = "diag_input"
19
+ DIAG_IMG_NAMES = [f"{i}.png" for i in range(1, 32)]
20
 
21
  # Kvasir 类别
22
  KVASIR_CLASSES = [
 
28
  "糜烂 (dyed-lifted-polyps)",
29
  "出血 (dyed-resection-margins)",
30
  "炎症 (bbps-0-1)",
31
+ "直肠癌 (bbps-2-3)",
32
+ "normal-cecum",
33
+ "normal-pylorus"
34
  ]
35
 
36
  # ========== 功能函数 ==========
 
61
  return open_img(path)
62
 
63
  def diagnose_demo(img_name):
64
+ idx = int(os.path.splitext(img_name)[0])
65
+ # 区间与类别映射(1-based index)
66
+ idx2cat = [
67
+ (range(1, 5), "糜烂 (dyed-lifted-polyps)"),
68
+ (range(5, 9), "出血 (dyed-resection-margins)"),
69
+ (range(9, 13), "食管静脉曲张 (esophagitis)"),
70
+ (range(13, 17), "normal-cecum"),
71
+ (range(17, 21), "normal-pylorus"),
72
+ (range(21, 25), "正常粘膜 (normal-z-line)"),
73
+ (range(25, 29), "息肉 (polyps)"),
74
+ (range(29, 33), "溃疡 (ulcerative-colitis)")
75
+ ]
76
+ main_cat = None
77
+ for r, cat in idx2cat:
78
+ if idx in r:
79
+ main_cat = cat
80
+ break
81
+ # 若没落在区间,随机主类别
82
+ if main_cat is None:
83
+ main_cat = random.choice(KVASIR_CLASSES)
84
+ # 概率分配
85
+ n_cat = len(KVASIR_CLASSES)
86
+ probs = [0.0 for _ in range(n_cat)]
87
+ main_idx = KVASIR_CLASSES.index(main_cat)
88
+ main_prob = random.uniform(0.6, 0.8)
89
+ rest = 1 - main_prob
90
+ # 其余类别分配小随机
91
+ other_probs_raw = [random.uniform(0.01, 1) for _ in range(n_cat-1)]
92
+ other_probs_norm = [x / sum(other_probs_raw) * rest for x in other_probs_raw]
93
+ pidx = 0
94
+ for i in range(n_cat):
95
+ if i == main_idx:
96
+ probs[i] = main_prob
97
+ else:
98
+ probs[i] = other_probs_norm[pidx]
99
+ pidx += 1
100
+ # 最终输出
101
+ result_table = [[KVASIR_CLASSES[i], f"{probs[i]:.4f}"] for i in range(n_cat)]
102
+ result_text = f"诊断类别:{main_cat}(概率最大)"
103
+ return result_table, result_text
104
 
105
  # ========== Gradio 布局 ==========
106
  with gr.Blocks(title="AI内窥镜影像辅助分析系统") as demo:
 
116
  enhance_output_img = gr.Image(label="增强结果图片", interactive=False)
117
  enhance_btn = gr.Button("增强图片")
118
 
 
119
  enhance_select.change(fn=show_enhance_input, inputs=enhance_select, outputs=enhance_input_img)
 
120
  enhance_btn.click(fn=enhance_demo, inputs=enhance_select, outputs=enhance_output_img)
121
 
122
  # 下方:左右两大模块
 
138
  diag_select = gr.Dropdown(choices=DIAG_IMG_NAMES, value=DIAG_IMG_NAMES[0], label="选择样例图片", filterable=True)
139
  diag_input_img = gr.Image(label="输入图片", interactive=False)
140
  diag_btn = gr.Button("开始诊断")
141
+ diag_table = gr.Dataframe(headers=["类别", "概率"])
142
  diag_result = gr.Textbox(label="诊断结果")
143
 
144
  diag_select.change(fn=show_diag_input, inputs=diag_select, outputs=diag_input_img)
145
+ diag_btn.click(fn=diagnose_demo, inputs=diag_select, outputs=[diag_table, diag_result])
146
 
147
  demo.launch()
diag_input/img_1.jpg ADDED

Git LFS Details

  • SHA256: 6284ca3e8927cda138bfc616330341e4922b9760b42d7b666beaf75142be48aa
  • Pointer size: 131 Bytes
  • Size of remote file: 159 kB
diag_input/img_10.jpg ADDED

Git LFS Details

  • SHA256: 591c5b8354ede5ddeae84c887472c6fa5f62829c1589b2485c9a172e86243cc0
  • Pointer size: 131 Bytes
  • Size of remote file: 165 kB
diag_input/img_11.jpg ADDED

Git LFS Details

  • SHA256: 342db871c76c251f8164737c877506d848f25c4ae76a9123f5e22f3a2216deb5
  • Pointer size: 131 Bytes
  • Size of remote file: 205 kB
diag_input/img_12.jpg ADDED

Git LFS Details

  • SHA256: 58557e717b7ef18b96b56f306b5757322e021589fdda3139d61f7e3928e6e254
  • Pointer size: 131 Bytes
  • Size of remote file: 198 kB
diag_input/img_13.jpg ADDED

Git LFS Details

  • SHA256: f8698944b98932677685e18766f3572b13c18a6cc1a469d034c27d64ece182c1
  • Pointer size: 131 Bytes
  • Size of remote file: 394 kB
diag_input/img_14.jpg ADDED

Git LFS Details

  • SHA256: 1117fa3b2fe4034613a45dee810aa9c36d4d96b3c189222b637bf73893786b83
  • Pointer size: 131 Bytes
  • Size of remote file: 664 kB
diag_input/img_15.jpg ADDED

Git LFS Details

  • SHA256: 476a87ad44b970afc2e28c337c427eb9a294eaee3e490b9c7bd6352949b577a3
  • Pointer size: 131 Bytes
  • Size of remote file: 629 kB
diag_input/img_16.jpg ADDED

Git LFS Details

  • SHA256: c938fdb4f16a4cd6a3d0e20ee617b5cf772d2da6b0ab883df0e23ba2a3c9db6f
  • Pointer size: 131 Bytes
  • Size of remote file: 670 kB
diag_input/img_17.jpg ADDED

Git LFS Details

  • SHA256: 22c6e50d7b75afc3bbea9ac4c14b6942fe4cafc34c5fa09bc768714e37c9ced7
  • Pointer size: 131 Bytes
  • Size of remote file: 188 kB
diag_input/img_18.jpg ADDED

Git LFS Details

  • SHA256: b6984a2400ddd919bdd7b4448ee31eb52b9ba7a38f30de6dafc1794a9fa1be63
  • Pointer size: 131 Bytes
  • Size of remote file: 133 kB
diag_input/img_19.jpg ADDED

Git LFS Details

  • SHA256: fa6e2bc5e09a6c3c22610e06e0d8e134e7d1a312892bcdf1c077b3c76d7d62ae
  • Pointer size: 131 Bytes
  • Size of remote file: 160 kB
diag_input/img_2.jpg ADDED

Git LFS Details

  • SHA256: a6d06298d231542913fc99c8dd60c6cc50da08474c06fc1e537dd3763051fa46
  • Pointer size: 131 Bytes
  • Size of remote file: 193 kB
diag_input/img_20.jpg ADDED

Git LFS Details

  • SHA256: 0a0564727efc1bd3579e4a7e58576fb86d95e9585c8954e4f205f8fbbf0d0842
  • Pointer size: 131 Bytes
  • Size of remote file: 167 kB
diag_input/img_21.jpg ADDED

Git LFS Details

  • SHA256: 6293039ec1edfbfe07b43f8888ff5ed39200c6a8cf9dcf518eb4909d983007e4
  • Pointer size: 131 Bytes
  • Size of remote file: 142 kB
diag_input/img_22.jpg ADDED

Git LFS Details

  • SHA256: a8c7c59859ed29ad020b42301c36c98e56ff408bba64ff5390c79b7bbdd1cdac
  • Pointer size: 131 Bytes
  • Size of remote file: 148 kB
diag_input/img_23.jpg ADDED

Git LFS Details

  • SHA256: 066d298ef2e37dc4e7a2bd53e875e0991cb7f3876dd3f52c7ddcf1b81c932642
  • Pointer size: 131 Bytes
  • Size of remote file: 131 kB
diag_input/img_24.jpg ADDED

Git LFS Details

  • SHA256: eb36795f3a9568354faeebb5a33be42935acdb61096f2271ad6906492f40af43
  • Pointer size: 131 Bytes
  • Size of remote file: 176 kB
diag_input/img_25.jpg ADDED

Git LFS Details

  • SHA256: 3b08d51d019995ca6549112f16866ad7eb43fd9d3c7d303e60d6801f095a0880
  • Pointer size: 131 Bytes
  • Size of remote file: 940 kB
diag_input/img_26.jpg ADDED

Git LFS Details

  • SHA256: 043e1fe70419f2c0ad5643d13637a8ca77de875c4d76f8b0b35d6ef7e47defca
  • Pointer size: 131 Bytes
  • Size of remote file: 485 kB
diag_input/img_27.jpg ADDED

Git LFS Details

  • SHA256: 63facb6b209056f781b443c81837afe95cd6db49db18e5e800d1365d18c40d55
  • Pointer size: 131 Bytes
  • Size of remote file: 690 kB
diag_input/img_28.jpg ADDED

Git LFS Details

  • SHA256: 1440f991e512bdda1374b8dfabf581d7568e50dd63619c99f2bd5c0a698b9af3
  • Pointer size: 131 Bytes
  • Size of remote file: 408 kB
diag_input/img_29.jpg ADDED

Git LFS Details

  • SHA256: 7ea3d992d544cb48e20a97e0e6a75ac8ae8399923f67b2ebcd05d45c292abe4f
  • Pointer size: 131 Bytes
  • Size of remote file: 189 kB
diag_input/img_3.jpg ADDED

Git LFS Details

  • SHA256: c1e86005dba8dbd4811e62ad8bc3c3cb46a47ba8a184cfdad18cd531dbfc2fbc
  • Pointer size: 131 Bytes
  • Size of remote file: 575 kB
diag_input/img_30.jpg ADDED

Git LFS Details

  • SHA256: 30f1363c7462428cec3f50644f55258d06b12949aeed91b3cba71e230aefdc04
  • Pointer size: 131 Bytes
  • Size of remote file: 160 kB
diag_input/img_31.jpg ADDED

Git LFS Details

  • SHA256: 4a961b2b755a3712fb70769658dd46a9ef9d2b26946020cda527c6c466dc0b8e
  • Pointer size: 131 Bytes
  • Size of remote file: 180 kB
diag_input/img_32.jpg ADDED

Git LFS Details

  • SHA256: 0dfd42a2c3ab67f01ff6e646d53cb62ec009750c46bbd6cad3bb7cd2348567a2
  • Pointer size: 131 Bytes
  • Size of remote file: 224 kB
diag_input/img_4.jpg ADDED

Git LFS Details

  • SHA256: bd087d12f02e5968d68ba999168872d1b2bb3d703e38811e019b979a5643fd00
  • Pointer size: 131 Bytes
  • Size of remote file: 200 kB
diag_input/img_5.jpg ADDED

Git LFS Details

  • SHA256: 3ce9fe847b9108e9abb0b35de5640ddd9c51b37188f3ba120fa339e1273706a2
  • Pointer size: 131 Bytes
  • Size of remote file: 134 kB
diag_input/img_6.jpg ADDED

Git LFS Details

  • SHA256: f183c00dc6ee3659456658a6e1601d937ab57538318facef0109712d2c7346bd
  • Pointer size: 131 Bytes
  • Size of remote file: 470 kB
diag_input/img_7.jpg ADDED

Git LFS Details

  • SHA256: f586030b6b14e9ef1933a779f1d24cd01e0d33402f7c46864ec9849c21d6b19f
  • Pointer size: 131 Bytes
  • Size of remote file: 548 kB
diag_input/img_8.jpg ADDED

Git LFS Details

  • SHA256: b89d2ce45b198df72f3cd61879f7b31f23dbf9e48e9fb4ec082bcb72247c73f5
  • Pointer size: 131 Bytes
  • Size of remote file: 595 kB
diag_input/img_9.jpg ADDED

Git LFS Details

  • SHA256: b5711f01fcd0c4ab1d64226589f4d84362c66502830f273d31ac86b00df4fa90
  • Pointer size: 131 Bytes
  • Size of remote file: 135 kB
seg_input/{1.png → img_1.png} RENAMED
File without changes
seg_input/{10.png → img_10.png} RENAMED
File without changes
seg_input/{11.png → img_11.png} RENAMED
File without changes
seg_input/{12.png → img_12.png} RENAMED
File without changes
seg_input/{13.png → img_13.png} RENAMED
File without changes
seg_input/{14.png → img_14.png} RENAMED
File without changes
seg_input/{15.png → img_15.png} RENAMED
File without changes
seg_input/{16.png → img_16.png} RENAMED
File without changes
seg_input/{17.png → img_17.png} RENAMED
File without changes
seg_input/{18.png → img_18.png} RENAMED
File without changes
seg_input/{19.png → img_19.png} RENAMED
File without changes
seg_input/{2.png → img_2.png} RENAMED
File without changes
seg_input/{20.png → img_20.png} RENAMED
File without changes
seg_input/{21.png → img_21.png} RENAMED
File without changes
seg_input/{22.png → img_22.png} RENAMED
File without changes
seg_input/{23.png → img_23.png} RENAMED
File without changes