File size: 2,168 Bytes
9b4a05a
a1fac21
 
 
3243b25
 
000c87e
8638595
9b4a05a
3122c78
e46d735
9b4a05a
3243b25
7c71738
1248637
a1fac21
a87b5fc
 
 
a1fac21
a87b5fc
 
a1fac21
a87b5fc
 
a1fac21
a87b5fc
 
 
a1f8014
e07aae5
 
a1f8014
a87b5fc
 
4bf66ef
a1fac21
1fd4941
4c267fb
9b4a05a
 
d570c51
cb49204
4c267fb
a1fac21
9090de4
129df37
9b4a05a
f372f78
410ea82
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import tensorflow as tf

import math
import numpy as np
from PIL import Image

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")

def infer(image):
	img = Image.fromarray(image)
	img = img.resize((100,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)

	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"
	)
	return (img,out_img)
	
article = "<p style='text-align: center'><a href='https://arxiv.org/abs/1609.05158' target='_blank'>Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network</a></p><center> <a href='https://keras.io/examples/vision/super_resolution_sub_pixel/' target='_blank'>Image Super-Resolution using an Efficient Sub-Pixel CNN</a></p> <center>Contributors: <a href='https://twitter.com/Cr0wley_zz'>Devjyoti Chakraborty</a>|<a href='https://twitter.com/ritwik_raha'>Ritwik Raha</a>|<a href='https://twitter.com/ariG23498'>Aritra Roy Gosthipaty</a></center>"

iface = gr.Interface(
	fn=infer,
	title = " Image 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=[gr.outputs.Image(label="Resized 100x100 image"),
	gr.outputs.Image(label="Super-resolution 300x300 image")
	],
	examples=[["camel.jpg"], ["pokemon.jpg"]],
).launch()