| | 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')
|
| |
|
| |
|
| | 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')
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | 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()
|
| |
|
| |
|
| | 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'
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | 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')
|
| |
|