Spaces:
Runtime error
Runtime error
| # Copyright (c) Facebook, Inc. and its affiliates. | |
| # Copyright (c) Meta Platforms, Inc. All Rights Reserved | |
| import multiprocessing as mp | |
| import numpy as np | |
| from PIL import Image | |
| from detectron2.config import get_cfg | |
| from detectron2.projects.deeplab import add_deeplab_config | |
| from detectron2.data.detection_utils import read_image | |
| from open_vocab_seg import add_ovseg_config | |
| from open_vocab_seg.utils import VisualizationDemo | |
| import gradio as gr | |
| def setup_cfg(config_file): | |
| # load config from file and command-line arguments | |
| cfg = get_cfg() | |
| add_deeplab_config(cfg) | |
| add_ovseg_config(cfg) | |
| cfg.merge_from_file(config_file) | |
| cfg.freeze() | |
| return cfg | |
| def inference(class_names, input_img): | |
| mp.set_start_method("spawn", force=True) | |
| config_file = './configs/ovseg_swinB_vitL_demo.yaml' | |
| cfg = setup_cfg(config_file) | |
| demo = VisualizationDemo(cfg) | |
| class_names = class_names.split(',') | |
| img = read_image(input_img, format="BGR") | |
| _, visualized_output = demo.run_on_image(img, class_names) | |
| return Image.fromarray(np.uint8(visualized_output.get_image())).convert('RGB') | |
| # demo = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| # demo.launch() | |
| examples = [['Oculus, Ukulele', './resources/demo_samples/sample_03.jpeg'],] | |
| output_labels = ['segmentation map'] | |
| title = 'OVSeg' | |
| description = """ | |
| Gradio Demo for Open-Vocabulary Semantic Segmentation with Mask-adapted CLIP \n | |
| You may click on of the examples or upload your own image. \n | |
| OVSeg could perform open vocabulary segmentation, you may input more classes (seperate by comma). | |
| """ | |
| article = """ | |
| <p style='text-align: center'> | |
| <a href='https://arxiv.org/abs/2210.04150' target='_blank'> | |
| Open-Vocabulary Semantic Segmentation with Mask-adapted CLIP | |
| </a> | |
| | | |
| <a href='https://github.com' target='_blank'>Github Repo</a></p> | |
| """ | |
| gr.Interface( | |
| inference, | |
| inputs=[ | |
| gr.inputs.Textbox( | |
| lines=1, placeholder=None, default='', label='class names'), | |
| gr.inputs.Image(type='filepath') | |
| ], | |
| outputs=gr.outputs.Image(label='segmentation map'), | |
| title=title, | |
| description=description, | |
| article=article, | |
| examples=examples).launch(enable_queue=True) | |