import tensorflow as tf import numpy as np from PIL import Image from glob import glob import pandas as pd from tensorflow.keras.preprocessing.image import img_to_array from huggingface_hub import from_pretrained_keras import gradio as gr model = from_pretrained_keras("keras-io/super-resolution") model.summary() def infer(image): nx=image.shape[0] ny=image.shape[1] img = Image.fromarray(image) # img = img.resize((100,100)) # img = img.crop((0,100,0,100)) ycbcr = img.convert("YCbCr") y, cb, cr = ycbcr.split() y = img_to_array(y) y = y.astype("float32") / 255.0 input = np.expand_dims(y, axis=0) out = model.predict(input) nxo = out.squeeze().shape[0] nyo = out.squeeze().shape[1] out_img_y = out[0] out_img_y *= 255.0 # Restore the image in RGB color space. out_img_y = out_img_y.clip(0, 255) out_img_y = out_img_y.reshape((np.shape(out_img_y)[0], np.shape(out_img_y)[1])) out_img_y = Image.fromarray(np.uint8(out_img_y), mode="L") out_img_cb = cb.resize(out_img_y.size, Image.BICUBIC) out_img_cr = cr.resize(out_img_y.size, Image.BICUBIC) out_img = Image.merge("YCbCr", (out_img_y, out_img_cb, out_img_cr)).convert( "RGB" ) out = {} out.update( {'input image size': (nx,ny) } ) out.update( {'output image size': (nxo,nyo) } ) return (pd.DataFrame(data=out.values(), index=out.keys()).transpose(), img,out_img) article = "

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

Image Super-Resolution using an Efficient Sub-Pixel CNN

Contributors: Devjyoti Chakraborty|Ritwik Raha|Aritra Roy Gosthipaty
" # examples = [['examples/2000-04-28-18-21-24_L5_rgb.jpg'],['examples/2000-08-02-18-23-18_L5_rgb.jpg'], # ['examples/2000-08-18-18-23-46_L5_rgb.jpg'],['examples/2000-09-19-18-24-18_L5_rgb.jpg'],['examples/2000-10-21-18-24-43_L5_rgb.jpg']] examples= [[l] for l in glob('examples/tiles/*.jpg')] out1 = gr.outputs.Image(label="Cropped input image") out2 = gr.outputs.Image(label="Super-resolution x3 image") out3 = gr.outputs.Dataframe(label='Summary', headers=["Input (px)", "Output (px)"], type='pandas') iface = gr.Interface( fn=infer, title = " Satellite Super-resolution", description = "This space is a demo of the keras tutorial 'Image Super-Resolution using an Efficient Sub-Pixel CNN' based on the paper 'Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network' 👀", article = article, inputs=gr.inputs.Image(label="Input Image"), outputs=[out1,out2,out3], examples=examples, ).launch()