karolmajek's picture
resize input to 512px :fire:
7e94c26
import paddlehub as hub
import gradio as gr
import requests
import numpy as np
import matplotlib.pyplot as plt
model = hub.Module(name='deeplabv3p_resnet50_cityscapes')
url1 = 'https://cdn.pixabay.com/photo/2014/09/07/21/52/city-438393_1280.jpg'
r = requests.get(url1, allow_redirects=True)
open("city1.jpg", 'wb').write(r.content)
url2 = 'https://cdn.pixabay.com/photo/2016/02/19/11/36/canal-1209808_1280.jpg'
r = requests.get(url2, allow_redirects=True)
open("city2.jpg", 'wb').write(r.content)
colormap = np.zeros((256, 3), dtype=np.uint8)
colormap[0] = [128, 64, 128]
colormap[1] = [244, 35, 232]
colormap[2] = [70, 70, 70]
colormap[3] = [102, 102, 156]
colormap[4] = [190, 153, 153]
colormap[5] = [153, 153, 153]
colormap[6] = [250, 170, 30]
colormap[7] = [220, 220, 0]
colormap[8] = [107, 142, 35]
colormap[9] = [152, 251, 152]
colormap[10] = [70, 130, 180]
colormap[11] = [220, 20, 60]
colormap[12] = [255, 0, 0]
colormap[13] = [0, 0, 142]
colormap[14] = [0, 0, 70]
colormap[15] = [0, 60, 100]
colormap[16] = [0, 80, 100]
colormap[17] = [0, 0, 230]
colormap[18] = [119, 11, 32]
def applyColormap(img,colormap):
ret = np.zeros((img.shape[0],img.shape[1],3), dtype=np.uint8)
for y in range(img.shape[0]):
for x in range(img.shape[1]):
ret[y,x] = colormap[int(img[y,x])]
return ret.astype(np.uint8)
def inference(image):
image = image.resize(size=(512,512))
img = np.array(image)[:,:,::-1]
result = model.predict(images=[img], visualization=True)[0]
result_color = applyColormap(result,colormap)
return result_color
title = "PaddleHub: DeepLabv3p R50 Cityscapes"
description = "demo for PaddleHub. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below.\nModel: deeplabv3p_resnet50_cityscapes"
article = "<p style='text-align: center'><a href='https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_resnet50_cityscapes&en_category=ImageSegmentation'>PaddleHub page</a></p>"
gr.Interface(
inference,
[gr.inputs.Image(type="pil", label="Input")],
gr.outputs.Image(type="numpy", label="Output"),
title=title,
description=description,
article=article,
examples=[
["city1.jpg"],
["city2.jpg"]
]).launch()