chengwang96 commited on
Commit
1db65f3
·
1 Parent(s): 41edbc8

track png with git lfs

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip 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
 
 
33
  *.zip 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
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .DS_Store
app.py CHANGED
@@ -1,57 +1,111 @@
1
  import gradio as gr
2
- import numpy as np
3
- import pandas as pd
4
- from PIL import Image, ImageEnhance
5
-
6
- # 伪造的算法函数,请替换成你自己的模型
7
- def enhance_image(img):
8
- enhancer = ImageEnhance.Contrast(img)
9
- enhanced = enhancer.enhance(1.5)
10
- return enhanced
11
-
12
- def diagnose(img):
13
- # 假数据
14
- stats = pd.DataFrame({
15
- "指标": ["增龄斑", "黄斑变性"],
16
- "结果": ["正常", "异常"],
17
- "概率": [0.85, 0.15]
18
- })
19
- return img, stats
20
-
21
- def analyze_structure(img):
22
- # 假数据
23
- stats = pd.DataFrame({
24
- "结构": ["血密度", "分形维数"],
25
- "数值": [4.12, 1.53]
26
- })
27
- return img, stats
28
-
29
- with gr.Blocks(title="AI眼底影像辅助分析系统") as demo:
30
- gr.Markdown("## AI眼底影像辅助分析系统")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  with gr.Row():
32
- # 图像增强模块
33
  with gr.Column():
34
  gr.Markdown("### 图像增强模块")
35
- input_img = gr.Image(label="原始图片", type="pil")
36
- enhanced_img = gr.Image(label="增强图片")
37
  enhance_btn = gr.Button("增强图片")
38
- enhance_btn.click(enhance_image, inputs=input_img, outputs=enhanced_img)
39
 
 
 
 
 
 
 
40
  with gr.Row():
41
- # 疾病诊断模块
42
  with gr.Column():
43
- gr.Markdown("### 疾病诊断模块")
44
- diag_img = gr.Image(label="诊断结果图片")
45
- diag_table = gr.Dataframe(headers=["指标", "结果", "概率"])
46
- diag_btn = gr.Button("疾病诊断")
47
- diag_btn.click(diagnose, inputs=input_img, outputs=[diag_img, diag_table])
48
 
49
- # 结构分析模块
 
 
 
50
  with gr.Column():
51
- gr.Markdown("### 结构分析模块")
52
- struct_img = gr.Image(label="结构分析图片")
53
- struct_table = gr.Dataframe(headers=["结构", "数值"])
54
- struct_btn = gr.Button("结构分析")
55
- struct_btn.click(analyze_structure, inputs=input_img, outputs=[struct_img, struct_table])
 
 
 
56
 
57
  demo.launch()
 
1
  import gradio as gr
2
+ from PIL import Image
3
+ import os
4
+ import random
5
+
6
+ # ========== 配置图片路径 ==========
7
+ # 图像增强
8
+ ENHANCE_INPUT_DIR = "f1_input"
9
+ ENHANCE_OUTPUT_DIR = "f1_output"
10
+ ENHANCE_IMG_NAMES = [f"{i}.png" for i in range(1, 613)] # 1.png ~ 612.png
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, 6)] # 1.png ~ 5.png
16
+
17
+ # 诊断
18
+ DIAG_INPUT_DIR = "diag_input"
19
+ DIAG_IMG_NAMES = [f"{i}.png" for i in range(1, 6)] # 1.png ~ 5.png
20
+
21
+ # Kvasir 类别
22
+ KVASIR_CLASSES = [
23
+ "正常粘膜 (normal-z-line)",
24
+ "静脉曲张 (esophagitis)",
25
+ "食管腺癌 (barretts)",
26
+ "息肉 (polyps)",
27
+ "溃疡 (ulcerative-colitis)",
28
+ "糜烂 (dyed-lifted-polyps)",
29
+ "出血 (dyed-resection-margins)",
30
+ "炎症 (bbps-0-1)",
31
+ "直肠癌 (bbps-2-3)"
32
+ ]
33
+
34
+ # ========== 功能函数 ==========
35
+ def open_img(img_path):
36
+ if not os.path.exists(img_path):
37
+ # 返回一张空白图片
38
+ return Image.new("RGB", (256, 256), (200, 200, 200))
39
+ return Image.open(img_path)
40
+
41
+ # 图像增强模块
42
+ def show_enhance_input(img_name):
43
+ path = os.path.join(ENHANCE_INPUT_DIR, img_name)
44
+ return open_img(path)
45
+
46
+ def enhance_demo(img_name):
47
+ path = os.path.join(ENHANCE_OUTPUT_DIR, img_name)
48
+ return open_img(path)
49
+
50
+ # 图像分割模块
51
+ def show_seg_input(img_name):
52
+ path = os.path.join(SEG_INPUT_DIR, img_name)
53
+ return open_img(path)
54
+
55
+ def segment_demo(img_name):
56
+ path = os.path.join(SEG_OUTPUT_DIR, img_name)
57
+ return open_img(path)
58
+
59
+ # 疾病诊断模块
60
+ def show_diag_input(img_name):
61
+ path = os.path.join(DIAG_INPUT_DIR, img_name)
62
+ return open_img(path)
63
+
64
+ def diagnose_demo(img_name):
65
+ pred = random.choice(KVASIR_CLASSES)
66
+ conf = round(random.uniform(0.85, 0.99), 2)
67
+ return f"诊断结果:{pred}\n置信度:{conf}"
68
+
69
+ # ========== Gradio 布局 ==========
70
+ with gr.Blocks(title="AI内窥镜影像辅助分析系统") as demo:
71
+ gr.Markdown("## AI内窥镜影像辅助分析系统")
72
+
73
+ # 上方:图像增强模块
74
  with gr.Row():
 
75
  with gr.Column():
76
  gr.Markdown("### 图像增强模块")
77
+ enhance_select = gr.Dropdown(choices=ENHANCE_IMG_NAMES, value=ENHANCE_IMG_NAMES[0], label="选择样例图片", filterable=True)
78
+ enhance_input_img = gr.Image(label="原始图片", interactive=False)
79
  enhance_btn = gr.Button("增强图片")
80
+ enhance_output_img = gr.Image(label="增强结果图片", interactive=False)
81
 
82
+ # 选择图片自动显示原图
83
+ enhance_select.change(fn=show_enhance_input, inputs=enhance_select, outputs=enhance_input_img)
84
+ # 按钮显示增强结果
85
+ enhance_btn.click(fn=enhance_demo, inputs=enhance_select, outputs=enhance_output_img)
86
+
87
+ # 下方:左右两大模块
88
  with gr.Row():
89
+ # 左:图像分割
90
  with gr.Column():
91
+ gr.Markdown("### 图像分割模块")
92
+ seg_select = gr.Dropdown(choices=SEG_IMG_NAMES, value=SEG_IMG_NAMES[0], label="选择样例图片", filterable=True)
93
+ seg_input_img = gr.Image(label="输入图片", interactive=False)
94
+ seg_btn = gr.Button("执行分割")
95
+ seg_output_img = gr.Image(label="分割结果图片", interactive=False)
96
 
97
+ seg_select.change(fn=show_seg_input, inputs=seg_select, outputs=seg_input_img)
98
+ seg_btn.click(fn=segment_demo, inputs=seg_select, outputs=seg_output_img)
99
+
100
+ # 右:疾病诊断
101
  with gr.Column():
102
+ gr.Markdown("### 疾病诊断模块")
103
+ diag_select = gr.Dropdown(choices=DIAG_IMG_NAMES, value=DIAG_IMG_NAMES[0], label="选择样例图片", filterable=True)
104
+ diag_input_img = gr.Image(label="输入图片", interactive=False)
105
+ diag_btn = gr.Button("开始诊断")
106
+ diag_result = gr.Textbox(label="诊断结果")
107
+
108
+ diag_select.change(fn=show_diag_input, inputs=diag_select, outputs=diag_input_img)
109
+ diag_btn.click(fn=diagnose_demo, inputs=diag_select, outputs=diag_result)
110
 
111
  demo.launch()
f1_input/1.png ADDED

Git LFS Details

  • SHA256: d874e6f6b3a680bc39de02107e40eb06d8784f5c08b792993e999552147712ff
  • Pointer size: 130 Bytes
  • Size of remote file: 98.4 kB
f1_input/10.png ADDED

Git LFS Details

  • SHA256: dbb56bbe591efae156c5057f30b2fef781e57c4c6dd85e2407be7441c6d8b6c7
  • Pointer size: 130 Bytes
  • Size of remote file: 88.1 kB
f1_input/11.png ADDED

Git LFS Details

  • SHA256: f2d2a801932afbac555abd97dadddc6ababa2472cc8662de531a788a698c7b7e
  • Pointer size: 130 Bytes
  • Size of remote file: 93.4 kB
f1_input/12.png ADDED

Git LFS Details

  • SHA256: 3d36025637e0620d92ee32f884a7f8b3d4d3d7de3ea9ad83cec7067ba7fe6279
  • Pointer size: 130 Bytes
  • Size of remote file: 99.4 kB
f1_input/13.png ADDED

Git LFS Details

  • SHA256: a0d9e5927f5ff71fee3ef38440009eb6476c2b9113de45990ac5eebe978cf3b3
  • Pointer size: 130 Bytes
  • Size of remote file: 91.8 kB
f1_input/14.png ADDED

Git LFS Details

  • SHA256: caf0dafd505ccc922801ecaca7e390dcb286297d4b817af66e2186ff169c1810
  • Pointer size: 131 Bytes
  • Size of remote file: 108 kB
f1_input/15.png ADDED

Git LFS Details

  • SHA256: f05075eadd2fb1b904b5bcf088c363aafe597be8bf6182584080e107e5f70760
  • Pointer size: 130 Bytes
  • Size of remote file: 98.1 kB
f1_input/16.png ADDED

Git LFS Details

  • SHA256: 2d652053ae6042c9b62bf478d43b448e152bd2fcbb86664ac9d3b64debb0df47
  • Pointer size: 130 Bytes
  • Size of remote file: 86.7 kB
f1_input/17.png ADDED

Git LFS Details

  • SHA256: d23c4cdd49cda0bf119ff4cf331f5ed7f48e6e2f76166f82f681efb95a072918
  • Pointer size: 130 Bytes
  • Size of remote file: 85.8 kB
f1_input/18.png ADDED

Git LFS Details

  • SHA256: 74fb49afbd1abc7f126026cdcf9a49e65d2b5d562835b371ae5ab1a9587913f5
  • Pointer size: 130 Bytes
  • Size of remote file: 91 kB
f1_input/19.png ADDED

Git LFS Details

  • SHA256: f3bfebbe95713e03502bffbd69b0b23020ad1bd35d4fbad86e2eb64b779b6811
  • Pointer size: 130 Bytes
  • Size of remote file: 97.3 kB
f1_input/2.png ADDED

Git LFS Details

  • SHA256: 50456080d7f211840c869c6296c329fd2b8996a0aed47619f871641abe205b28
  • Pointer size: 130 Bytes
  • Size of remote file: 99.6 kB
f1_input/20.png ADDED

Git LFS Details

  • SHA256: 532ff7a87243c9fa5b28515cf62bea15bbe80628a8a0bb3a9a54fab08f14a8d8
  • Pointer size: 130 Bytes
  • Size of remote file: 88 kB
f1_input/21.png ADDED

Git LFS Details

  • SHA256: 4f54e3d6835af3237f45d66cd70281ae8b191e9e88e67dcd118ca73aceace14f
  • Pointer size: 130 Bytes
  • Size of remote file: 88.7 kB
f1_input/22.png ADDED

Git LFS Details

  • SHA256: bd44737399899ad5ebdb63d8b9be0a6ae0ca4e11fcb8759da3e09180cfbdf2d7
  • Pointer size: 130 Bytes
  • Size of remote file: 83.9 kB
f1_input/23.png ADDED

Git LFS Details

  • SHA256: b6e7b10d075cb23212b8e9ff804aba994f867812097ef6d3cb6a3b25d8b6a783
  • Pointer size: 130 Bytes
  • Size of remote file: 90.7 kB
f1_input/24.png ADDED

Git LFS Details

  • SHA256: fd272c016df8fa3918693927ca1075c6b5564b4a0f408a9468e0f7862c942135
  • Pointer size: 130 Bytes
  • Size of remote file: 91.3 kB
f1_input/25.png ADDED

Git LFS Details

  • SHA256: db36e3276aa7a5913fed289e63ad17c3eeafd9b421cfe7fabc94c3d343ca49c2
  • Pointer size: 130 Bytes
  • Size of remote file: 91.7 kB
f1_input/26.png ADDED

Git LFS Details

  • SHA256: c729f55aaafca2a30cab8257e8f06be1467ae11b34fb15acd167dd052e44d746
  • Pointer size: 130 Bytes
  • Size of remote file: 66.9 kB
f1_input/27.png ADDED

Git LFS Details

  • SHA256: 33ec4693d0fe012cdc01131dfba12f0fc3f3d70f60099381c2bb9afcd8b9a30f
  • Pointer size: 130 Bytes
  • Size of remote file: 58.6 kB
f1_input/28.png ADDED

Git LFS Details

  • SHA256: 5ebf41c2f24712fa67184614fb38f73aec7c54f59218ae8f616ca19a6cc86c10
  • Pointer size: 130 Bytes
  • Size of remote file: 53.1 kB
f1_input/29.png ADDED

Git LFS Details

  • SHA256: f0fd91f9e0a2f994a3c8f6bdcd288f31adec39572b1563300b7ec8a7d7deca47
  • Pointer size: 130 Bytes
  • Size of remote file: 51.4 kB
f1_input/3.png ADDED

Git LFS Details

  • SHA256: 130d91b4187c854d2743d55c644467685e162d55049b6570996caf14e9b99332
  • Pointer size: 130 Bytes
  • Size of remote file: 97.6 kB
f1_input/30.png ADDED

Git LFS Details

  • SHA256: 3f622db0192f4f831a9a8f3ab7e76c12a11ce3a6e1ced3f08c24b4a1b1e1e5ad
  • Pointer size: 130 Bytes
  • Size of remote file: 60.1 kB
f1_input/4.png ADDED

Git LFS Details

  • SHA256: 5fc845dce2adc11018edd12e88665eca0951beac5de250cf89d2061f7570ea88
  • Pointer size: 131 Bytes
  • Size of remote file: 104 kB
f1_input/5.png ADDED

Git LFS Details

  • SHA256: 658cdf7550dcc708e16ff7bb9639a083bf69369a4d6c23c487ce7f9bcb315a55
  • Pointer size: 131 Bytes
  • Size of remote file: 101 kB
f1_input/6.png ADDED

Git LFS Details

  • SHA256: 2c4195db256f1ed8aa398735a4c1777224a69ff99189ee1ea5c5ce6fe7c9b52e
  • Pointer size: 130 Bytes
  • Size of remote file: 90.1 kB
f1_input/7.png ADDED

Git LFS Details

  • SHA256: b616aeacbb1f6af551912a2586222b932ea32628a4223ae0c7d58db15f131ae2
  • Pointer size: 130 Bytes
  • Size of remote file: 95 kB
f1_input/8.png ADDED

Git LFS Details

  • SHA256: f184fe3cdbddb5ce327a099d36bc69fe8b463e5d43d5504b92a75b895cacfc7e
  • Pointer size: 131 Bytes
  • Size of remote file: 102 kB
f1_input/9.png ADDED

Git LFS Details

  • SHA256: a869095a16e9603eb4694ce4b2716fe146ff3622e7edfb7f3545962ee5a956a1
  • Pointer size: 130 Bytes
  • Size of remote file: 96.5 kB
f1_output/1.png ADDED

Git LFS Details

  • SHA256: 0468c7d06f6249690bb135ddebe2f9b926cdf85af080d92e7169c427ee38292e
  • Pointer size: 131 Bytes
  • Size of remote file: 108 kB
f1_output/10.png ADDED

Git LFS Details

  • SHA256: fb8f03a42d1959587fab6bb8e9ed1116e6d79ea3b9866e27e249571d511db924
  • Pointer size: 130 Bytes
  • Size of remote file: 97 kB
f1_output/11.png ADDED

Git LFS Details

  • SHA256: 11eae0deeb61c7c2e7bc37cd2a218da38118ef69f08370d435744e52a49ab71b
  • Pointer size: 131 Bytes
  • Size of remote file: 103 kB
f1_output/12.png ADDED

Git LFS Details

  • SHA256: 505f33643155dbdcca09a3cd6df6572d2e07d56297e86d2ea59330f8319f1102
  • Pointer size: 131 Bytes
  • Size of remote file: 109 kB
f1_output/13.png ADDED

Git LFS Details

  • SHA256: 759fc19513fac28d957881395d5657a991d81d4aa6615ae576594bdc159e6453
  • Pointer size: 131 Bytes
  • Size of remote file: 102 kB
f1_output/14.png ADDED

Git LFS Details

  • SHA256: 3b572cfd1b38781e43bd9a99c50bbbcd46c421816cbdaf6aa0288c0a8add0c39
  • Pointer size: 131 Bytes
  • Size of remote file: 117 kB
f1_output/15.png ADDED

Git LFS Details

  • SHA256: c8a8509dd519a47c9e7e13a5af48bbe8df6404252325c7960fa7ebb44b616c30
  • Pointer size: 131 Bytes
  • Size of remote file: 106 kB
f1_output/16.png ADDED

Git LFS Details

  • SHA256: 87891de3d6cfe50e5d6657517ba64edf5c904ac9f75f95f3ebe227fbcfcc8f98
  • Pointer size: 130 Bytes
  • Size of remote file: 95.8 kB
f1_output/17.png ADDED

Git LFS Details

  • SHA256: 9d2f4645a67f698e4ec0ee26955aae689ea9c65ff2d43f2f2e24e01fea05b514
  • Pointer size: 130 Bytes
  • Size of remote file: 93.5 kB
f1_output/18.png ADDED

Git LFS Details

  • SHA256: fcd8c6ae49a87acf3c566f2b78d78ee1075f7cc12aa769e4deb72f79afd8f917
  • Pointer size: 130 Bytes
  • Size of remote file: 99.7 kB
f1_output/19.png ADDED

Git LFS Details

  • SHA256: 8b2b55b7974f44dbd0f013f62f4628e9e23400b3cc33bcfe678f6539c17f34a1
  • Pointer size: 131 Bytes
  • Size of remote file: 107 kB
f1_output/2.png ADDED

Git LFS Details

  • SHA256: 107c2d0e7db5aa13d3346de5b1acb4912694db1deae035fbffe7cb1b18dbe6c0
  • Pointer size: 131 Bytes
  • Size of remote file: 109 kB
f1_output/20.png ADDED

Git LFS Details

  • SHA256: c7fdfbec56539dd2094ecf28ac283e249d1b03d3c322325872de66d001f04637
  • Pointer size: 130 Bytes
  • Size of remote file: 96.9 kB
f1_output/21.png ADDED

Git LFS Details

  • SHA256: 7131c6bc2dcc3296e89c1ee140972b9c266cb9c8f269fd2d67af2f3a5cf0ca75
  • Pointer size: 130 Bytes
  • Size of remote file: 96.2 kB
f1_output/22.png ADDED

Git LFS Details

  • SHA256: 328a5f89f90b8c21c9ae030deb357855e452ebe4591ada8794062bbfc7d0d38b
  • Pointer size: 130 Bytes
  • Size of remote file: 89.9 kB
f1_output/23.png ADDED

Git LFS Details

  • SHA256: b7272944cf551061a73af06f7a92e0dceb9554a2d831c60fb255c3ecbb362157
  • Pointer size: 130 Bytes
  • Size of remote file: 98 kB
f1_output/24.png ADDED

Git LFS Details

  • SHA256: 608d20d04fc8f132d828fbd114e836a6306fdb2aae4b6547d34a2b928472f7c6
  • Pointer size: 130 Bytes
  • Size of remote file: 98.5 kB