Spaces:
Runtime error
Runtime error
import sys | |
import os | |
import cv2 | |
import matplotlib | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import torch | |
import torchvision | |
import glob | |
import gradio as gr | |
from PIL import Image | |
from segment_anything import SamAutomaticMaskGenerator, SamPredictor, sam_model_registry | |
import logging | |
from huggingface_hub import hf_hub_download | |
token = os.environ['HUB_TOKEN'] | |
loc =hf_hub_download(repo_id="JunchuanYu/files_for_segmentRS", filename="utils.py",repo_type="dataset",local_dir='.',token=token) | |
sys.path.append(loc) | |
from utils import * | |
with gr.Blocks(theme='gradio/soft') as demo: | |
gr.Markdown(title) | |
with gr.Accordion("Instructions For User 👉", open=False): | |
gr.Markdown(description) | |
x=gr.State(value=[]) | |
y=gr.State(value=[]) | |
label=gr.State(value=[]) | |
with gr.Row(): | |
with gr.Column(scale=13): | |
with gr.Row(): | |
with gr.Column(): | |
mode=gr.inputs.Radio(['Positive','Negative'], type="value",default='Positive',label='Types of sampling methods') | |
with gr.Column(): | |
clear_bn=gr.Button("Clear Selection") | |
interseg_button = gr.Button("Interactive Segment",variant='primary') | |
with gr.Row(): | |
input_img = gr.Image(label="Input") | |
gallery = gr.Image(label="Points") | |
input_img.select(get_select_coords, [input_img, mode,x,y,label], [gallery,x,y,label]) | |
with gr.Row(): | |
output_img = gr.Image(label="Result") | |
mask_img = gr.Image(label="Mask") | |
with gr.Row(): | |
with gr.Column(): | |
thresh = gr.Slider(minimum=0.8, maximum=1, value=0.90, step=0.01, interactive=True, label="Threshhold") | |
with gr.Column(): | |
points = gr.Slider(minimum=16, maximum=96, value=32, step=16, interactive=True, label="Points/Side") | |
with gr.Column(scale=2,min_width=8): | |
example = gr.Examples( | |
examples=[[s,0.9,32] for s in glob.glob('./images/*')], | |
fn=auto_seg, | |
inputs=[input_img,thresh,points], | |
outputs=[output_img], | |
cache_examples=False,examples_per_page=5) | |
autoseg_button = gr.Button("Auto Segment",variant="primary") | |
emptyBtn = gr.Button("Restart",variant="secondary") | |
interseg_button.click(interactive_seg, inputs=[input_img,x,y,label], outputs=[output_img,mask_img]) | |
autoseg_button.click(auto_seg, inputs=[input_img,thresh,points], outputs=[mask_img]) | |
clear_bn.click(clear_point,outputs=[gallery,mode,x,y,label],show_progress=True) | |
emptyBtn.click(reset_state,outputs=[input_img,gallery,output_img,mask_img,thresh,points,mode,x,y,label],show_progress=True,) | |
gr.Markdown(descriptionend) | |
if __name__ == "__main__": | |
demo.launch(debug=False,show_api=False) | |