File size: 4,980 Bytes
cda88e0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | import numpy as np
import json
import pdb
import os
from os.path import join
import html
from tqdm import tqdm
import argparse
import pandas as pd
import matplotlib.pyplot as plt
def get_files(folder):
return [join(folder, f) for f in os.listdir(folder) if os.path.isfile(join(folder, f))]
def get_folders(folder):
return [join(folder, f) for f in os.listdir(folder) if os.path.isdir(join(folder, f))]
vis_img_folder = 'imgs'
vis_eval_img_folder = 'eval_imgs'
def eval_gen(webpage, output_folder, is_pattern=True):
def get_file(files, key_world):
mitsuba_shadow = ''
for f in files:
if f.find(key_world) != -1:
mitsuba_shadow = f
break
return mitsuba_shadow
def flip_shadow(img_file):
dirname, fname = os.path.dirname(img_file), os.path.splitext(os.path.basename(img_file))[0]
if img_file == '':
print('find one zero')
mts_shadow_np = np.zeros((256,256,3))
else:
mts_shadow_np = plt.imread(img_file)
save_path = join(dirname, fname + '_flip.png')
plt.imsave(save_path, 1.0-mts_shadow_np)
return save_path
img_folders = join(output_folder, 'imgs')
folders = get_folders(img_folders)
print("There are {} folders".format(len(folders)))
for model in tqdm(folders):
cur_model_relative = join(vis_img_folder, os.path.basename(model))
evl_cur_model_relative = join(vis_eval_img_folder, os.path.basename(model))
if is_pattern:
ibl_relative = join(cur_model_relative, 'pattern')
else:
ibl_relative = join(cur_model_relative, 'real')
# import pdb; pdb.set_trace()
ibl_folders = get_folders(ibl_relative)
ibl_folders.sort()
for ibl in ibl_folders:
cur_ibl_relative = join(ibl_relative,os.path.basename(ibl))
gt_files = get_files(cur_ibl_relative)
mts_shadow = get_file(gt_files, '_shadow.png')
ibl_name = os.path.basename(ibl)
ibl = join(cur_ibl_relative, ibl_name + '.png')
mitsuba_shadow = flip_shadow(mts_shadow)
cur_eval_folder = join(evl_cur_model_relative, join('pattern', ibl_name))
net_predict = get_file(get_files(cur_eval_folder), 'predict.png')
# mitsuba_final = join(cur_ibl_relative, 'composite.png')
# pred_final = join(cur_ibl_relative, 'composite_pred.png')
# print(ibl_name)
ims, txts, links = [ibl,mitsuba_shadow, net_predict], ['ibl','mitsuba', 'predict'], [ibl,mitsuba_shadow, net_predict]
webpage.add_images(ims, txts, links)
vis_pattern_folder = '/home/ysheng/Documents/vis_pattern'
vis_real_folder = '/home/ysheng/Documents/vis_real'
def vis_files_in_folder():
folder = '/home/ysheng/Documents/vis_models'
webpage = html.HTML(folder, 'models', reflesh=1)
img_folders = join(folder, 'imgs')
files = get_files(img_folders)
print("There are {} files".format(len(files)))
prefix_set = set()
for cur_file in tqdm(files):
cur_name = os.path.splitext(os.path.basename(cur_file))[0]
prefix_set.add(cur_name[:-3])
print('there are {} prefixs'.format(len(prefix_set)))
prefix_set = list(prefix_set)
prefix_set.sort()
# import pdb; pdb.set_trace()
relative_folder = './imgs'
for i, prefix in enumerate(prefix_set):
ims = [join(relative_folder, prefix + '{:03d}.png'.format(i)) for i in range(len(files) // len(prefix_set))]
txts = [prefix + '{:03d}'.format(i) for i in range(len(files) // len(prefix_set))]
links = ims
webpage.add_images(ims, txts, links)
webpage.save()
print('finished')
def vis_files(df_file):
""" input is a pandas dataframe
format: path, path,..., name,name, ...
"""
folder = '.'
webpage = html.HTML(folder, 'benchmark', reflesh=1)
relative_folder = './imgs'
# for i, prefix in enumerate(prefix_set):
# ims = [join(relative_folder, prefix + '{:03d}.png'.format(i)) for i in range(len(files) // len(prefix_set))]
# txts = [prefix + '{:03d}'.format(i) for i in range(len(files) // len(prefix_set))]
# links = ims
# webpage.add_images(ims, txts, links)
df = pd.read_csv(df_file)
for i,v in tqdm(df.iterrows(), total=len(df)):
img_range = len(v)//2+1
imgs = [join(relative_folder,v[i]) for i in range(1,img_range)]
txts = [v[i] for i in range(img_range, len(v))]
links = imgs
webpage.add_images(imgs, txts, links)
webpage.save()
print('finished')
if __name__ == "__main__":
vis_files('/home/ysheng/Documents/paper_project/adobe/soft_shadow/benchmark_results/html.csv')
|