marta-0's picture
initate cfg and model outside inf
11ae501
raw
history blame contribute delete
No virus
1.88 kB
import requests
import gradio as gr
import paddle
from paddleseg.cvlibs import Config
from matting.core import predict
from matting.model import *
from matting.dataset import MattingDataset
def download_file(http_address, file_name):
r = requests.get(http_address, allow_redirects=True)
open(file_name, 'wb').write(r.content)
cfg_paths = ['configs/modnet/modnet_mobilenetv2.yml', 'configs/modnet/modnet_resnet50_vd.yml', 'configs/modnet/modnet_hrnet_w18.yml']
cfgs = [Config(cfg) for cfg in cfg_paths]
download_file('https://paddleseg.bj.bcebos.com/matting/models/modnet-mobilenetv2.pdparams', 'modnet-mobilenetv2.pdparams')
download_file('https://paddleseg.bj.bcebos.com/matting/models/modnet-resnet50_vd.pdparams', 'modnet-resnet50_vd.pdparams')
download_file('https://paddleseg.bj.bcebos.com/matting/models/modnet-hrnet_w18.pdparams', 'modnet-hrnet_w18.pdparams')
models_paths = ['modnet-mobilenetv2.pdparams', 'modnet-resnet50_vd.pdparams', 'modnet-hrnet_w18.pdparams']
models = [cfg.model for cfg in cfgs]
def inference(image, chosen_model):
paddle.set_device('cpu')
cfg = cfgs[chosen_model]
val_dataset = cfg.val_dataset
img_transforms = val_dataset.transforms
model = models[chosen_model]
alpha_pred = predict(model,
model_path=models_paths[chosen_model],
transforms=img_transforms,
image_list=[image])
return alpha_pred
inputs = [gr.inputs.Image(label='Input Image'),
gr.inputs.Radio(['MobileNetV2', 'ResNet50_vd', 'HRNet_W18'], label='Model', type='index')]
gr.Interface(
inference,
inputs,
gr.outputs.Image(label='Output'),
title='PaddleSeg - Matting',
examples=[['images/armchair.jpg', 'MobileNetV2'],
['images/cat.jpg', 'ResNet50_vd'],
['images/plant.jpg', 'HRNet_W18']]
).launch()