Spaces:
Runtime error
Runtime error
import os | |
import sys | |
sys.path.append('.') | |
import cv2 | |
import math | |
import torch | |
import argparse | |
import numpy as np | |
from torch.nn import functional as F | |
from model.pytorch_msssim import ssim_matlab | |
from model.RIFE import Model | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
model = Model() | |
model.load_model('train_log') | |
model.eval() | |
model.device() | |
path = 'vimeo_interp_test/' | |
f = open(path + 'tri_testlist.txt', 'r') | |
psnr_list = [] | |
ssim_list = [] | |
for i in f: | |
name = str(i).strip() | |
if(len(name) <= 1): | |
continue | |
print(path + 'target/' + name + '/im1.png') | |
I0 = cv2.imread(path + 'target/' + name + '/im1.png') | |
I1 = cv2.imread(path + 'target/' + name + '/im2.png') | |
I2 = cv2.imread(path + 'target/' + name + '/im3.png') | |
I0 = (torch.tensor(I0.transpose(2, 0, 1)).to(device) / 255.).unsqueeze(0) | |
I2 = (torch.tensor(I2.transpose(2, 0, 1)).to(device) / 255.).unsqueeze(0) | |
mid = model.inference(I0, I2)[0] | |
ssim = ssim_matlab(torch.tensor(I1.transpose(2, 0, 1)).to(device).unsqueeze(0) / 255., torch.round(mid * 255).unsqueeze(0) / 255.).detach().cpu().numpy() | |
mid = np.round((mid * 255).detach().cpu().numpy()).astype('uint8').transpose(1, 2, 0) / 255. | |
I1 = I1 / 255. | |
psnr = -10 * math.log10(((I1 - mid) * (I1 - mid)).mean()) | |
psnr_list.append(psnr) | |
ssim_list.append(ssim) | |
print("Avg PSNR: {} SSIM: {}".format(np.mean(psnr_list), np.mean(ssim_list))) | |