pengpeng2000 commited on
Commit
c5ee0ce
·
verified ·
1 Parent(s): 5da896f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -5
app.py CHANGED
@@ -1,12 +1,38 @@
1
  import gradio as gr
2
-
3
  from transformers import AutoProcessor, AutoModelForMaskGeneration
 
 
4
 
 
5
  processor = AutoProcessor.from_pretrained("facebook/sam-vit-base")
6
  model = AutoModelForMaskGeneration.from_pretrained("facebook/sam-vit-base")
7
 
8
- def greet(name):
9
- return "Hello " + name + "!!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
12
- demo.launch()
 
1
  import gradio as gr
 
2
  from transformers import AutoProcessor, AutoModelForMaskGeneration
3
+ from PIL import Image
4
+ import numpy as np
5
 
6
+ # 加载预训练的processor和模型
7
  processor = AutoProcessor.from_pretrained("facebook/sam-vit-base")
8
  model = AutoModelForMaskGeneration.from_pretrained("facebook/sam-vit-base")
9
 
10
+ def segment_image(image):
11
+ # 将图片预处理
12
+ inputs = processor(images=image, return_tensors="pt")
13
+
14
+ # 获取模型输出
15
+ outputs = model(**inputs)
16
+
17
+ # 提取分割掩码, 假设输出是 logits,您可能需要根据实际模型输出进行调整
18
+ masks = outputs.logits.sigmoid().detach().cpu().numpy()
19
+
20
+ # 提取第一个掩码作为示例
21
+ mask = masks[0][0]
22
+
23
+ # 转换掩码为图像
24
+ mask_image = Image.fromarray((mask * 255).astype(np.uint8))
25
+
26
+ return mask_image
27
+
28
+ # 创建 Gradio 接口
29
+ demo = gr.Interface(
30
+ fn=segment_image,
31
+ inputs=gr.inputs.Image(type="pil"),
32
+ outputs="image",
33
+ title="Image Segmentation with Huggingface",
34
+ description="使用Huggingface的SAM-ViT-base模型进行图像分割"
35
+ )
36
 
37
+ # 启动接口
38
+ demo.launch()