IgnoreLee's picture
Upload utils.py
669e9b3
import os
import cv2
import lpips
import torch
import numpy as np
import gradio as gr
SPATIAL = True
ALEXT = lpips.LPIPS(net='alex', spatial=SPATIAL)
VGG = lpips.LPIPS(net='vgg', spatial=SPATIAL)
def normalize(img, factor=255./2., cent= 1.):
r"""
Image Normalizagion
[H, W, C], scale : [0 - 1]
"""
img = (img / factor - cent)
return img
def resize(img, resize=512):
r"""
Image Resize using cv2
"""
h, w, _ = img.shape
if h >= w:
scale = resize/h
else:
scale = resize/w
return cv2.resize(img, (int(w * scale), int(h * scale)))
def to_tensor(img):
r"""
make numpy to tensor
"""
img = torch.Tensor(img[..., np.newaxis].transpose((3, 2, 0, 1)))
return img
def img_preprocessing(img):
img = resize(img)
img = normalize(img)
img = to_tensor(img)
return img
def check_img(input_img, gt_img):
# Preprocessing
input_img = img_preprocessing(input_img)
gt_img = img_preprocessing(gt_img)
# predict similarytiy
similarity = ALEXT.forward(gt_img, input_img)
if SPATIAL:
return f"{(1 - similarity.mean().item()) *100:.4f}%"
else:
return f"{(1 - similarity.item()) *100:.4f}%"