Spaces:
Runtime error
Runtime error
import torch | |
import torch.nn as nn | |
import torchvision | |
import torch.backends.cudnn as cudnn | |
import torch.optim | |
import os | |
import sys | |
import argparse | |
import time | |
import dataloader | |
import model | |
import numpy as np | |
from torchvision import transforms | |
from PIL import Image | |
import glob | |
import time | |
import gradio as gr | |
def lowlight(image_path): | |
os.environ['CUDA_VISIBLE_DEVICES']='0' | |
data_lowlight = Image.open(image_path) | |
data_lowlight = (np.asarray(data_lowlight)/255.0) | |
data_lowlight = torch.from_numpy(data_lowlight).float() | |
data_lowlight = data_lowlight.permute(2,0,1) | |
data_lowlight = data_lowlight.cuda().unsqueeze(0) | |
DCE_net = model.enhance_net_nopool().cuda() | |
DCE_net.load_state_dict(torch.load('snapshots/Epoch99.pth')) | |
start = time.time() | |
_,enhanced_image,_ = DCE_net(data_lowlight) | |
end_time = (time.time() - start) | |
print(end_time) | |
image_path = image_path.replace('test_data','result') | |
result_path = image_path | |
if not os.path.exists(image_path.replace('/'+image_path.split("/")[-1],'')): | |
os.makedirs(image_path.replace('/'+image_path.split("/")[-1],'')) | |
torchvision.utils.save_image(enhanced_image, result_path) | |
def predict(img): | |
data_lowlight = (np.asarray(img)/255.0) | |
data_lowlight = torch.from_numpy(data_lowlight).float() | |
data_lowlight = data_lowlight.permute(2,0,1) | |
data_lowlight = data_lowlight.cuda().unsqueeze(0) | |
DCE_net = model.enhance_net_nopool().cuda() | |
DCE_net.load_state_dict(torch.load('snapshots/Epoch99.pth')) | |
_,enhanced_image,_ = DCE_net(data_lowlight) | |
return enhanced_image | |
if __name__ == '__main__': | |
# test_images | |
with torch.no_grad(): | |
# filePath = 'data/test_data/' | |
# file_list = os.listdir(filePath) | |
# for file_name in file_list: | |
# test_list = glob.glob(filePath+file_name+"/*") | |
# for image in test_list: | |
# # image = image | |
# print(image) | |
# lowlight(image) | |
interface = gr.Interface(fn=predict, inputs='image', outputs='image') | |
interface.launch() | |