Spaces:
Runtime error
Runtime error
| import os | |
| import cv2 | |
| import random | |
| import numpy as np | |
| from glob import glob | |
| from PIL import Image, ImageOps | |
| import matplotlib.pyplot as plt | |
| import tensorflow as tf | |
| from tensorflow import keras | |
| from tensorflow.keras import layers | |
| def charbonnier_loss(y_true, y_pred): | |
| return tf.reduce_mean(tf.sqrt(tf.square(y_true - y_pred) + tf.square(1e-3))) | |
| def peak_signal_noise_ratio(y_true, y_pred): | |
| return tf.image.psnr(y_pred, y_true, max_val=255.0) | |
| model = tf.keras.models.load_model('./MIRNet.h5', custom_objects={'charbonnier_loss': | |
| charbonnier_loss, "peak_signal_noise_ratio":peak_signal_noise_ratio}) | |
| def plot_results(images, titles, figure_size=(12, 12)): | |
| fig = plt.figure(figsize=figure_size) | |
| for i in range(len(images)): | |
| fig.add_subplot(1, len(images), i + 1).set_title(titles[i]) | |
| _ = plt.imshow(images[i]) | |
| plt.axis("off") | |
| plt.show() | |
| def infer(original_image): | |
| image = keras.preprocessing.image.img_to_array(original_image) | |
| image = image.astype("float32") / 255.0 | |
| image = np.expand_dims(image, axis=0) | |
| output = model.predict(image) | |
| output_image = output[0] * 255.0 | |
| output_image = output_image.clip(0, 255) | |
| output_image = output_image.reshape( | |
| (np.shape(output_image)[0], np.shape(output_image)[1], 3) | |
| ) | |
| output_image = Image.fromarray(np.uint8(output_image)) | |
| original_image = Image.fromarray(np.uint8(original_image)) | |
| return output_image | |