0

I was using this pytorch model for real-ESRGAN. It was giving good results:

Expected image

Now I converted this model to tensorflow one. Now when I use this, I am getting image super resoluted (I reached to that conclusion due to image size of output) but its color channels are in very weird condition:

enter image description here

I am using opencv to take input and then model to process it. I feel issue is with BGR and RGB of OpenCV and Tensorflow but using cv2.COLOR_BGRTORGB not helping.

Any idea how to solve this?

This is my code:

from pyexpat import model
import tensorflow as tf
import os.path as osp
import glob
import cv2
import numpy as np
import torch



test_img_folder = './images/*'

model = tf.saved_model.load("./RealESRGAN_1/")

idx = 0
for path in glob.glob(test_img_folder):
    idx += 1
    base = osp.splitext(osp.basename(path))[0]
    print(idx, base)
    # read images
    img = cv2.imread(path, cv2.IMREAD_COLOR)
    print(img.shape)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    cv2.imshow('Input',img)
    cv2.waitKey(0)
    img = np.transpose(img, (2,0,1))
    img = np.expand_dims(img, axis=0)
    img = tf.dtypes.cast(img, tf.float32)
    
    with torch.no_grad():
        output = model(x = img)
    
    output = output['sum'].numpy()
    output = output[0, :, :, :]
    output = np.transpose(output, (1,2,0))
    cv2.imwrite('./results/{:s}_rlt.png'.format(base), output)
mkrieger1
  • 19,194
  • 5
  • 54
  • 65

0 Answers0