Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ee10aa7a2 | ||
|
|
30e33bb037 | ||
|
|
d92a18e212 | ||
|
|
abecb2d20a | ||
|
|
eb3ad3b887 |
+3
-25
@@ -84,7 +84,6 @@ nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_tshirt" > nohup/iccv/pyr
|
|||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_skirt" > nohup/iccv/pyr/iccv_pyr_32_skirt_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_skirt" > nohup/iccv/pyr/iccv_pyr_32_skirt_skirt.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_dress" > nohup/iccv/pyr/iccv_pyr_32_skirt_dress.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_dress" > nohup/iccv/pyr/iccv_pyr_32_skirt_dress.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_batch" > nohup/iccv/pyr/iccv_pyr_32_skirt_batch.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_skirt_batch" > nohup/iccv/pyr/iccv_pyr_32_skirt_batch.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_seq" > nohup/iccv/pyr/iccv_pyr_32_seq_2.out 2>&1 &
|
|
||||||
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64" > nohup/iccv/pyr/iccv_pyr_32_64.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64" > nohup/iccv/pyr/iccv_pyr_32_64.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_skirt.out 2>&1 &
|
||||||
@@ -96,14 +95,6 @@ nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_reg" > nohup/iccv/pyr
|
|||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_reg_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_reg_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_reg_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_reg_skirt.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_10p" > nohup/iccv/pyr/iccv_pyr_32_64_10p.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_10p" > nohup/iccv/pyr/iccv_pyr_32_64_10p.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_25p" > nohup/iccv/pyr/iccv_pyr_32_64_25p.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_25p" > nohup/iccv/pyr/iccv_pyr_32_64_25p.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_tshirt" > nohup/iccv/pyr/iccv_pyr_32_64_tshirt.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_trousers" > nohup/iccv/pyr/iccv_pyr_32_64_trousers.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_top" > nohup/iccv/pyr/iccv_pyr_32_64_top.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_skirt_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_skirt_skirt.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_skirt_dress" > nohup/iccv/pyr/iccv_pyr_32_64_skirt_dress.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_jumpsuit" > nohup/iccv/pyr/iccv_pyr_32_64_jumpsuit.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_seq" > nohup/iccv/pyr/iccv_pyr_32_64_seq.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_seq_2" > nohup/iccv/pyr/iccv_pyr_32_64_seq_2.out 2>&1 &
|
|
||||||
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_cape_f" > nohup/iccv/pyr/iccv_pyr_64_cape_f.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_cape_f" > nohup/iccv/pyr/iccv_pyr_64_cape_f.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_cape_m" > nohup/iccv/pyr/iccv_pyr_64_cape_m.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_cape_m" > nohup/iccv/pyr/iccv_pyr_64_cape_m.out 2>&1 &
|
||||||
@@ -125,14 +116,6 @@ nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_reg" > nohup/iccv
|
|||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_curv" > nohup/iccv/pyr/iccv_pyr_32_64_128_curv.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_curv" > nohup/iccv/pyr/iccv_pyr_32_64_128_curv.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_curv_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_curv_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_curv_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_curv_skirt.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_var" > nohup/iccv/pyr/iccv_pyr_32_64_128_var.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_var" > nohup/iccv/pyr/iccv_pyr_32_64_128_var.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_tshirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_tshirt.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_trousers" > nohup/iccv/pyr/iccv_pyr_32_64_128_trousers.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_top" > nohup/iccv/pyr/iccv_pyr_32_64_128_top.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_jumpsuit" > nohup/iccv/pyr/iccv_pyr_32_64_128_jumpsuit.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_skirt_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_skirt_skirt.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_skirt_dress" > nohup/iccv/pyr/iccv_pyr_32_64_128_skirt_dress.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128" > nohup/iccv/pyr/iccv_pyr_32_64_128.out 2>&1 &
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128" > nohup/iccv/pyr/iccv_pyr_32_64_128.out 2>&1 &
|
|
||||||
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_128_cape_m_00032_SL" > nohup/iccv/pyr/iccv_pyr_64_128_cape_m_00032_SL.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_128_cape_m_00032_SL" > nohup/iccv/pyr/iccv_pyr_64_128_cape_m_00032_SL.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_128_cape_f_03223_SL" > nohup/iccv/pyr/iccv_pyr_64_128_cape_f_03223_SL.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_64_128_cape_f_03223_SL" > nohup/iccv/pyr/iccv_pyr_64_128_cape_f_03223_SL.out 2>&1 &
|
||||||
@@ -144,6 +127,7 @@ nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_skin" > nohup
|
|||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_curv" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_curv.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_curv" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_curv.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_curv_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_curv_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_curv_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_curv_skirt.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_reg" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_reg.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_reg" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_reg.out 2>&1 &
|
||||||
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_seq" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_seq.out 2>&1 &
|
||||||
|
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_512" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_512.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_512" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_512.out 2>&1 &
|
||||||
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_512_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_512_skirt.out 2>&1 &
|
nohup python cvae_pyramid.py --name="lhunor_iccv_pyr_32_64_128_256_512_skirt" > nohup/iccv/pyr/iccv_pyr_32_64_128_256_512_skirt.out 2>&1 &
|
||||||
@@ -172,22 +156,16 @@ nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_curv_skirt
|
|||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_10p > nohup/iccv/evaluate/iccv_pyr_32_64_10p.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_10p > nohup/iccv/evaluate/iccv_pyr_32_64_10p.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_25p > nohup/iccv/evaluate/iccv_pyr_32_64_25p.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_25p > nohup/iccv/evaluate/iccv_pyr_32_64_25p.out 2>&1 &
|
||||||
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128 > nohcup/iccv/evaluate/iccv_pyr_32_64_128.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128 > nohup/iccv/evaluate/iccv_pyr_32_64_128.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_skirt.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_skirt.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skin > nohup/iccv/evaluate/iccv_pyr_32_64_128_skin.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skin > nohup/iccv/evaluate/iccv_pyr_32_64_128_skin.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skin_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_skin_skirt.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skin_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_skin_skirt.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_reg > nohup/iccv/evaluate/iccv_pyr_32_64_128_reg.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_reg > nohup/iccv/evaluate/iccv_pyr_32_64_128_reg.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_curv > nohup/iccv/evaluate/iccv_pyr_32_64_128_curv.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_curv > nohup/iccv/evaluate/iccv_pyr_32_64_128_curv.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_curv_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_curv_skirt.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_curv_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_curv_skirt.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_trousers > nohup/iccv/evaluate/iccv_pyr_32_64_128_trousers.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_tshirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_tshirt.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_top > nohup/iccv/evaluate/iccv_pyr_32_64_128_top.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_jumpsuit > nohup/iccv/evaluate/iccv_pyr_32_64_128_jumpsuit.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skirt_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_skirt_skirt.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_skirt_dress> nohup/iccv/evaluate/iccv_pyr_32_64_128_skirt_dress.out 2>&1 &
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128 > nohup/iccv/evaluate/iccv_pyr_32_64_128.out 2>&1 &
|
|
||||||
|
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256 > nohup/iccv/evaluate/iccv_pyr_32_64_128_256.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256 > nohup/iccv/evaluate/iccv_pyr_32_64_128_256.out 2>&1 &
|
||||||
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_seq > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_seq.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_skirt.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_skirt > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_skirt.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_skin > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_skin.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_skin > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_skin.out 2>&1 &
|
||||||
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_curv > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_curv.out 2>&1 &
|
nohup python evaluate_ae_pyramid.py --name evaluate_ae_iccv_pyr_32_64_128_256_curv > nohup/iccv/evaluate/iccv_pyr_32_64_128_256_curv.out 2>&1 &
|
||||||
|
|||||||
+4
-11
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_abl_pyr_32_64_128_tshirt import config
|
from configs.iccv.config_abl_pyr_32_64_128_seq import config
|
||||||
|
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
@@ -92,16 +92,9 @@ if __name__ == '__main__':
|
|||||||
frames = [frame for frame in frames if not frame.endswith('_fixed_coll.npy')]
|
frames = [frame for frame in frames if not frame.endswith('_fixed_coll.npy')]
|
||||||
# frames = frames[:100]
|
# frames = frames[:100]
|
||||||
|
|
||||||
# if 'frames_file_test' in config.keys():
|
# print('Reading bodies...')
|
||||||
# with open(os.path.join(folder, config['frames_file_test']), 'r') as f:
|
# bodies_folder = '/home/workspace/local-data' + ('' if config['is_skirt'] else '_127') + '/test' + ('_skirt' if config['is_skirt'] else '') + '_ready' + ('_2' if config['is_skirt'] else '') + '/mesh_posed_body_no_orient'
|
||||||
# lines = f.readlines()
|
# bodies = {frame : np.load(bodies_folder + '/' + frame[:-1] + 'z')['mesh_posed_body_no_orient'] for frame in tqdm(frames) }
|
||||||
# lines = [line.strip() for line in lines]
|
|
||||||
# frames = lines
|
|
||||||
|
|
||||||
if error_type == 'collision':
|
|
||||||
print('Reading bodies...')
|
|
||||||
bodies_folder = '/home/workspace/local-data' + ('' if config['is_skirt'] else '_127') + '/test' + ('_skirt' if config['is_skirt'] else '') + '_ready' + ('_2' if config['is_skirt'] else '') + '/mesh_posed_body_no_orient'
|
|
||||||
bodies = {frame : np.load(bodies_folder + '/' + frame[:-1] + 'z')['mesh_posed_body_no_orient'] for frame in tqdm(frames) }
|
|
||||||
|
|
||||||
if config['remove_global_orientation']:
|
if config['remove_global_orientation']:
|
||||||
gt_name = 'mesh_posed_no_orient'
|
gt_name = 'mesh_posed_no_orient'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '0'
|
config['gpu'] = '4'
|
||||||
config['name'] = 'iccv_pyr_32_64_128_256_512'
|
config['name'] = 'iccv_pyr_32_64_128_256_512'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
config['tags'] = ['pyr', 'iccv']
|
config['tags'] = ['pyr', 'iccv']
|
||||||
@@ -34,8 +34,8 @@ config['pyramid']['final_upscale_enhancer'] = ''
|
|||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
config['train_dir'] = '/home/workspace/local-data/train'
|
||||||
config['valid_dir'] = '/home/workspace/local-data/train'
|
config['valid_dir'] = '/home/workspace/local-data/train'
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
||||||
# config['frames_file'] = 'frames_00761_0.txt'
|
config['frames_file'] = 'frames_00761_0.txt'
|
||||||
# config['frames_file_valid'] = 'frames_00761_0.txt'
|
config['frames_file_valid'] = 'frames_00761_0.txt'
|
||||||
config['batch_size'] = 4
|
config['batch_size'] = 4
|
||||||
config['is_skirt'] = False
|
config['is_skirt'] = False
|
||||||
config['is_cape'] = False
|
config['is_cape'] = False
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '2'
|
config['gpu'] = '4'
|
||||||
config['name'] = 'iccv_pyr_32_64_128_256_512_skirt'
|
config['name'] = 'iccv_pyr_32_64_128_256_512_skirt'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
config['tags'] = ['pyr', 'iccv']
|
config['tags'] = ['pyr', 'iccv']
|
||||||
|
|||||||
+4
-7
@@ -1,7 +1,7 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '2'
|
config['gpu'] = '3'
|
||||||
config['name'] = 'iccv_pyr_32_64_128_trousers'
|
config['name'] = 'iccv_pyr_32_64_128_256_seq_2'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
config['tags'] = ['pyr', 'iccv']
|
config['tags'] = ['pyr', 'iccv']
|
||||||
|
|
||||||
@@ -26,16 +26,13 @@ config['pretrained_model'] = ''
|
|||||||
config['pretrained_model_iteration'] = ''
|
config['pretrained_model_iteration'] = ''
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
config['pyramid'] = dict()
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
config['pyramid']['resolutions'] = [32, 64, 128, 256]
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_trousers'
|
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_128_seq_2'
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
config['pyramid']['final_upscale_enhancer'] = ''
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
config['train_dir'] = '/home/workspace/local-data/train'
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
config['valid_dir'] = '/home/workspace/local-data/valid'
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
||||||
config['frames_file'] = 'frames_trousers.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_trousers.txt'
|
|
||||||
config['frames_file_test'] = 'frames_trousers.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
config['batch_size'] = 4
|
||||||
config['is_skirt'] = False
|
config['is_skirt'] = False
|
||||||
+3
-6
@@ -1,7 +1,7 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '3'
|
config['gpu'] = '1'
|
||||||
config['name'] = 'iccv_pyr_32_64_128_jumpsuit'
|
config['name'] = 'iccv_pyr_32_64_128_seq_2'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
config['tags'] = ['pyr', 'iccv']
|
config['tags'] = ['pyr', 'iccv']
|
||||||
|
|
||||||
@@ -27,15 +27,12 @@ config['pretrained_model_iteration'] = ''
|
|||||||
|
|
||||||
config['pyramid'] = dict()
|
config['pyramid'] = dict()
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
config['pyramid']['resolutions'] = [32, 64, 128]
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_jumpsuit'
|
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_seq_2'
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
config['pyramid']['final_upscale_enhancer'] = ''
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
config['train_dir'] = '/home/workspace/local-data/train'
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
config['valid_dir'] = '/home/workspace/local-data/valid'
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
||||||
config['frames_file'] = 'frames_jumpsuit.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_jumpsuit.txt'
|
|
||||||
config['frames_file_test'] = 'frames_jumpsuit.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
config['batch_size'] = 4
|
||||||
config['is_skirt'] = False
|
config['is_skirt'] = False
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '7'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_skirt_dress'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_skirt_dress'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data_127/valid_skirt'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_dress.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_dress.txt'
|
|
||||||
config['frames_file_test'] = 'frames_dress.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1_skirt'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1_skirt'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1_skirt'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2_skirt'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2_skirt'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2_skirt'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2_skirt'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_skirt_skirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_skirt_skirt'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_skirt.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_skirt.txt'
|
|
||||||
config['frames_file_test'] = 'frames_skirt.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1_skirt'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1_skirt'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1_skirt'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2_skirt'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2_skirt'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2_skirt'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2_skirt'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_top'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_top'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test'] = 'frames_top.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_top.txt'
|
|
||||||
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_top_skirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_top'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test'] = 'frames_top.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_top.txt'
|
|
||||||
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '2'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_tshirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_tshirt'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data_128/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_tshirt.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '2'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_128_tshirt_skirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64, 128]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_64_tshirt'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data_128/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_tshirt.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_skirt_dress'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_skirt_dress'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data_127/valid_skirt'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_dress.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_dress.txt'
|
|
||||||
config['frames_file_test'] = 'frames_dress.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1_skirt'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1_skirt'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1_skirt'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2_skirt'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2_skirt'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2_skirt'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2_skirt'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_skirt_skirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_skirt_skirt'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train_skirt'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data_127/valid_skirt'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_skirt.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_skirt.txt'
|
|
||||||
config['frames_file_test'] = 'frames_skirt.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = True
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1_skirt'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1_skirt'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1_skirt'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2_skirt'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2_skirt'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2_skirt'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2_skirt'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '3'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_top'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_top'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data_127/test_ready'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data_128/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test'] = 'frames_top.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_top.txt'
|
|
||||||
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '2'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_trousers'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_trousers'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data_127/test_ready'
|
|
||||||
config['frames_file'] = 'frames_trousers.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_trousers.txt'
|
|
||||||
config['frames_file_test'] = 'frames_trousers.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '2'
|
|
||||||
config['name'] = 'iccv_pyr_32_64_tshirt'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_tshirt'
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data_127/test_ready'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data_128/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_valid_skirt'] = 'frames_tshirt.txt'
|
|
||||||
config['frames_file_test_skirt'] = 'frames_tshirt.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
+4
-7
@@ -1,7 +1,7 @@
|
|||||||
config = dict()
|
config = dict()
|
||||||
|
|
||||||
config['gpu'] = '3'
|
config['gpu'] = '4'
|
||||||
config['name'] = 'iccv_pyr_32_64_jumpsuit'
|
config['name'] = 'iccv_pyr_32_seq_2'
|
||||||
config['notes'] = ''
|
config['notes'] = ''
|
||||||
config['tags'] = ['pyr', 'iccv']
|
config['tags'] = ['pyr', 'iccv']
|
||||||
|
|
||||||
@@ -27,15 +27,12 @@ config['pretrained_model_iteration'] = ''
|
|||||||
|
|
||||||
config['pyramid'] = dict()
|
config['pyramid'] = dict()
|
||||||
config['pyramid']['resolutions'] = [32, 64]
|
config['pyramid']['resolutions'] = [32, 64]
|
||||||
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32_jumpsuit'
|
config['pyramid']['pretrained_pyramid'] = 'checkpoints/iccv/iccv_pyr_32'
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
config['pyramid']['final_upscale_enhancer'] = ''
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
config['train_dir'] = '/home/workspace/local-data/train'
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
config['valid_dir'] = '/home/workspace/local-data/valid'
|
||||||
config['test_dir'] = '/home/workspace/local-data_127/test_ready'
|
config['test_dir'] = '/home/workspace/local-data/test_ready'
|
||||||
config['frames_file'] = 'frames_jumpsuit.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_jumpsuit.txt'
|
|
||||||
config['frames_file_test'] = 'frames_jumpsuit.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
config['batch_size'] = 4
|
||||||
config['is_skirt'] = False
|
config['is_skirt'] = False
|
||||||
@@ -1,193 +0,0 @@
|
|||||||
config = dict()
|
|
||||||
|
|
||||||
config['gpu'] = '2'
|
|
||||||
config['name'] = 'iccv_pyr_32_test'
|
|
||||||
config['notes'] = ''
|
|
||||||
config['tags'] = ['pyr', 'iccv']
|
|
||||||
|
|
||||||
# DON'T FORGET TO RESET SSIM LOSS USAGE
|
|
||||||
# DON'T FORGET TO CHECK MODEL LOADING
|
|
||||||
# DON'T FORGET TO CHECK IF STORE IN MEMORY
|
|
||||||
# DON'T FORGET TO CHECK REG LOSS COEFF
|
|
||||||
# DON'T FORGET TO LOAD FINAL UPSCALER UNLESS HAVE LEVEL 512
|
|
||||||
# DON'T FORGET TO CHECK IF SKIRT
|
|
||||||
# DON'T FORGET TO CHECK IF CAPE
|
|
||||||
# DON'T FORGET TO CHECK IF USING DOWNSCALE NONE OR _2
|
|
||||||
# DON'T FORGET TO CHECK UPSCALING and ENCODER CHECKPOINTS
|
|
||||||
|
|
||||||
config['use_skinning'] = True # and deshaping
|
|
||||||
config['remove_global_orientation'] = True
|
|
||||||
config['use_extra_losses'] = True # edge, collision, 3d mesh
|
|
||||||
config['use_offsets'] = False
|
|
||||||
config['use_norm_loss'] = True
|
|
||||||
config['use_curvature'] = True
|
|
||||||
|
|
||||||
config['pretrained_model'] = ''
|
|
||||||
config['pretrained_model_iteration'] = ''
|
|
||||||
|
|
||||||
config['pyramid'] = dict()
|
|
||||||
config['pyramid']['resolutions'] = [32]
|
|
||||||
config['pyramid']['pretrained_pyramid'] = ''
|
|
||||||
config['pyramid']['final_upscale_enhancer'] = ''
|
|
||||||
|
|
||||||
config['train_dir'] = '/home/workspace/local-data/train'
|
|
||||||
config['valid_dir'] = '/home/workspace/local-data/valid'
|
|
||||||
config['test_dir'] = '/home/workspace/local-data_127/test_ready'
|
|
||||||
config['train_dir_skirt'] = '/home/workspace/local-data_128/train_skirt'
|
|
||||||
config['valid_dir_skirt'] = '/home/workspace/local-data/valid_skirt'
|
|
||||||
config['test_dir_skirt'] = '/home/workspace/local-data_128/test_skirt_ready_2'
|
|
||||||
config['frames_file'] = 'frames_top.txt'
|
|
||||||
config['frames_file_valid'] = 'frames_top.txt'
|
|
||||||
config['frames_file_test'] = 'frames_top.txt'
|
|
||||||
|
|
||||||
config['batch_size'] = 4
|
|
||||||
config['is_skirt'] = False
|
|
||||||
config['is_cape'] = False
|
|
||||||
|
|
||||||
config['dataset_in_memory'] = False
|
|
||||||
config['resolution'] = None
|
|
||||||
|
|
||||||
config['smpl_res'] = 14475
|
|
||||||
if config['is_cape']:
|
|
||||||
config['smpl_res'] = 3638
|
|
||||||
|
|
||||||
config['lr'] = 0.0001
|
|
||||||
config['starting_balancing_coeff'] = 0.001
|
|
||||||
config['reg_loss_coeff'] = 0.1 # set to 0 if don't want to use edge+collision
|
|
||||||
config['avg_garment_path'] = ''
|
|
||||||
config['bottleneck_scale'] = 2
|
|
||||||
|
|
||||||
config['signature_dynamic'] = { 'id': (), 'frame_nr': (),
|
|
||||||
'pose_shape': (72 + 11,),
|
|
||||||
'uv_body_posed': (512, 256, 3),
|
|
||||||
'mesh_body_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_posed': (config['smpl_res'], 3,),
|
|
||||||
'mesh_unposed': (config['smpl_res'], 3,),
|
|
||||||
'uv_unposed': (512, 256, 3),
|
|
||||||
'uv_curvature': (512, 256, 7),
|
|
||||||
}
|
|
||||||
config['signature_static'] = { 'uv_static': (512, 256, 3),
|
|
||||||
'mesh_mask': (config['smpl_res'],),
|
|
||||||
'uv_mask': (512, 256,),
|
|
||||||
}
|
|
||||||
|
|
||||||
config['pyramid']['is_label'] = False
|
|
||||||
config['pyramid']['add_noise'] = False
|
|
||||||
config['pyramid']['noise_amount'] = 0.0
|
|
||||||
|
|
||||||
config['pyramid']['loss_weights'] = [1,1,1,1,1]
|
|
||||||
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res != 512:
|
|
||||||
res_modifier = '_' + str(res)
|
|
||||||
config['signature_dynamic']['uv_body_posed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_unposed' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_dynamic']['uv_curvature' + res_modifier] = (res, res//2, 7)
|
|
||||||
config['signature_static']['uv_static' + res_modifier] = (res, res//2, 3)
|
|
||||||
config['signature_static']['uv_mask' + res_modifier] = (res, res//2)
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['static_model'] = 'checkpoints/iccv/static_iccv_1'
|
|
||||||
config['pyramid']['body_model'] = 'checkpoints/iccv/body_iccv_1'
|
|
||||||
config['pyramid']['curvature_model'] = 'checkpoints/iccv/curv_iccv_1'
|
|
||||||
config['pyramid']['freeze_encoders'] = True
|
|
||||||
|
|
||||||
|
|
||||||
config['pyramid']['levels'] = []
|
|
||||||
for res in config['pyramid']['resolutions']:
|
|
||||||
if res == 512:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 512
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 7
|
|
||||||
level['encoder_depths'] = [3, 3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [16, 32, 64, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = ''
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 256:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 256
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [3, 3, 9, 3]
|
|
||||||
level['encoder_dims'] = [64, 128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_256_2'#'checkpoints/up_3_d256_512_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 128:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 128
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 5
|
|
||||||
level['encoder_depths'] = [9, 9, 9]
|
|
||||||
level['encoder_dims'] = [128, 128, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_128_2'#'checkpoints/up_3_d128_256_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 64:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 64
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [9, 9]
|
|
||||||
level['encoder_dims'] = [64, level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_64_2'#checkpoints/up_3_d64_128_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
elif res == 32:
|
|
||||||
level = dict()
|
|
||||||
level['resolution'] = 32
|
|
||||||
level['latent_dim'] = 64 * config['bottleneck_scale']
|
|
||||||
level['kernel_size'] = 3
|
|
||||||
level['encoder_depths'] = [16]
|
|
||||||
level['encoder_dims'] = [level['latent_dim']]
|
|
||||||
level['decoder_depths'] = level['encoder_depths']
|
|
||||||
level['decoder_dims'] = level['encoder_dims']
|
|
||||||
level['avg_garment_path'] = ''
|
|
||||||
level['upscale_enhancer'] = 'checkpoints/iccv/iccv_32_2'#'checkpoints/up_3_d32_64_2'
|
|
||||||
level['upscale_enhancer_freeze'] = True
|
|
||||||
config['pyramid']['levels'].append(level)
|
|
||||||
else:
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
config['cond_ae_static'] = dict()
|
|
||||||
config['cond_ae_static']['is_label'] = False
|
|
||||||
config['cond_ae_static']['kernel_size'] = 7
|
|
||||||
config['cond_ae_static']['bottleneck_size'] = 8 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_static']['encoder_depths'] = [3, 3, 3, 27, 3]
|
|
||||||
config['cond_ae_static']['encoder_dims'] = [8, 16, 32, 64, config['cond_ae_static']['bottleneck_size']]
|
|
||||||
config['cond_ae_static']['decoder_depths'] = config['cond_ae_static']['encoder_depths']
|
|
||||||
config['cond_ae_static']['decoder_dims'] = config['cond_ae_static']['encoder_dims']
|
|
||||||
config['cond_ae_static']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_curv'] = dict()
|
|
||||||
config['cond_ae_curv']['is_label'] = True
|
|
||||||
config['cond_ae_curv']['kernel_size'] = 7
|
|
||||||
config['cond_ae_curv']['bottleneck_size'] = 40 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_curv']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_curv']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_curv']['bottleneck_size']]
|
|
||||||
config['cond_ae_curv']['decoder_depths'] = config['cond_ae_curv']['encoder_depths']
|
|
||||||
config['cond_ae_curv']['decoder_dims'] = config['cond_ae_curv']['encoder_dims']
|
|
||||||
config['cond_ae_curv']['activation'] = 'tanh'
|
|
||||||
|
|
||||||
config['cond_ae_body'] = dict()
|
|
||||||
config['cond_ae_body']['is_label'] = False
|
|
||||||
config['cond_ae_body']['kernel_size'] = 7
|
|
||||||
config['cond_ae_body']['bottleneck_size'] = 16 * config['bottleneck_scale']
|
|
||||||
config['cond_ae_body']['encoder_depths'] = [3, 3, 9, 9, 3]
|
|
||||||
config['cond_ae_body']['encoder_dims'] = [16, 32, 64, 128, config['cond_ae_body']['bottleneck_size']]
|
|
||||||
config['cond_ae_body']['decoder_depths'] = config['cond_ae_body']['encoder_depths']
|
|
||||||
config['cond_ae_body']['decoder_dims'] = config['cond_ae_body']['encoder_dims']
|
|
||||||
config['cond_ae_body']['activation'] = 'tanh'
|
|
||||||
+11
-30
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_abl_pyr_32_64_128_skirt_dress import config
|
from configs.iccv.config_abl_pyr_32_tshirt import config
|
||||||
|
|
||||||
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
|
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
@@ -39,13 +39,12 @@ else:
|
|||||||
from losses import uv_mask_loss, bend_loss, kl_loss, collision_ratio, normal_loss
|
from losses import uv_mask_loss, bend_loss, kl_loss, collision_ratio, normal_loss
|
||||||
# from losses import collision_penalty as collision_penalty
|
# from losses import collision_penalty as collision_penalty
|
||||||
from losses import collision_loss as collision_penalty
|
from losses import collision_loss as collision_penalty
|
||||||
from custom_utils.custom_utils import batch_to_dict, load_model, save_stl
|
from custom_utils.custom_utils import batch_to_dict, load_model
|
||||||
from dataset import DatasetFactory, StaticDataset
|
from dataset import DatasetFactory, StaticDataset
|
||||||
from custom_utils.smpl import SMPL
|
from custom_utils.smpl import SMPL
|
||||||
from models.pyramid_model_optimized import PyramidNew as Pyramid
|
from models.pyramid_model_optimized import PyramidNew as Pyramid
|
||||||
from postprocessing import fix_collision
|
from postprocessing import fix_collision
|
||||||
from custom_utils.custom_utils import Accumulator
|
from custom_utils.custom_utils import Accumulator
|
||||||
from sample_pro_2 import postprocess
|
|
||||||
|
|
||||||
|
|
||||||
def init_wandb():
|
def init_wandb():
|
||||||
@@ -683,10 +682,9 @@ def test():
|
|||||||
|
|
||||||
|
|
||||||
def generate_results():
|
def generate_results():
|
||||||
load_model(model, 'checkpoints/iccv/' + config['name'])
|
load_model(model, 'checkpoints/' + config['name'])
|
||||||
F = np.load("custom_utils/smpl_faces" + skirt_modifier + ".npy").astype(np.int32)
|
|
||||||
|
|
||||||
dataset_test = factory.get_dataset(folder=config['train_dir'],
|
dataset_test = factory.get_dataset(folder=config['test_dir'],
|
||||||
batch_size=config['batch_size'],
|
batch_size=config['batch_size'],
|
||||||
# batch_size=1,
|
# batch_size=1,
|
||||||
signature=config['signature_dynamic'],
|
signature=config['signature_dynamic'],
|
||||||
@@ -695,16 +693,15 @@ def generate_results():
|
|||||||
is_cape=config['is_cape'],
|
is_cape=config['is_cape'],
|
||||||
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
||||||
do_repeat=False,
|
do_repeat=False,
|
||||||
shuffle=True)
|
shuffle=False)
|
||||||
static_dataset_test = StaticDataset(folder=config['train_dir'],
|
static_dataset_test = StaticDataset(folder=config['test_dir'],
|
||||||
signature=config['signature_static'],
|
signature=config['signature_static'],
|
||||||
resolutions=dataset_resolutions,
|
resolutions=dataset_resolutions,
|
||||||
in_memory=True,
|
in_memory=True,
|
||||||
is_cape=config['is_cape'])
|
is_cape=config['is_cape'])
|
||||||
folder = os.path.join('examples/qualitative', config['name'])
|
folder = os.path.join('/home/workspace/data/results/cape', config['name'])
|
||||||
os.makedirs(folder, exist_ok=True)
|
os.makedirs(folder, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
for batch in tqdm.tqdm(dataset_test):
|
for batch in tqdm.tqdm(dataset_test):
|
||||||
batch = static_dataset_test.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
batch = static_dataset_test.expand_batch(batch_to_dict(batch, config['signature_dynamic']))
|
||||||
|
|
||||||
@@ -721,28 +718,14 @@ def generate_results():
|
|||||||
mesh_pred = uv2mesh(pred)
|
mesh_pred = uv2mesh(pred)
|
||||||
mesh_pred_shaped = mesh_pred + shape_offsets * batch['mesh_mask'][:,:,tf.newaxis]
|
mesh_pred_shaped = mesh_pred + shape_offsets * batch['mesh_mask'][:,:,tf.newaxis]
|
||||||
mesh_pred_posed = smpl.run_garment(batch['pose_shape'][:, :72], batch['pose_shape'][:, 72:], mesh_pred_shaped)
|
mesh_pred_posed = smpl.run_garment(batch['pose_shape'][:, :72], batch['pose_shape'][:, 72:], mesh_pred_shaped)
|
||||||
mesh_gt = batch['mesh_posed'].numpy()
|
|
||||||
body = batch['mesh_body_posed'].numpy()
|
|
||||||
|
|
||||||
for i in range(batch['id'].shape[0]):
|
for i in range(batch['id'].shape[0]):
|
||||||
mask = batch['mesh_mask'][i].numpy().astype(bool)
|
mask = batch['mesh_mask'][i].numpy().astype(bool)
|
||||||
id, frame_nr = batch['id'][i].numpy().decode("utf-8"), batch['frame_nr'][i].numpy().decode("utf-8")
|
id, frame_nr = batch['id'][i].numpy().decode("utf-8"), batch['frame_nr'][i].numpy().decode("utf-8")
|
||||||
unposed = mesh_pred[i].numpy()[mask, :]
|
unposed = mesh_pred[i].numpy()[mask, :]
|
||||||
posed = mesh_pred_posed[i].numpy()[mask, :]
|
posed = mesh_pred_posed[i].numpy()[mask, :]
|
||||||
_, faces_garment = _maskFaces(np.zeros((14475, 3), np.float32), F, mask)
|
np.save(os.path.join(folder, id + '_' + frame_nr + '_posed.npy'), posed)
|
||||||
faces_garment = faces_garment.astype(np.int32)
|
np.save(os.path.join(folder, id + '_' + frame_nr + '_unposed.npy'), unposed)
|
||||||
posed_unmasked = np.zeros((1, 14475, 3), np.float32)
|
|
||||||
posed_unmasked[0, mask, :] = posed
|
|
||||||
posed = postprocess(posed_unmasked, body[i], faces_garment, mask, do_smoothing=True)
|
|
||||||
unposed_unmasked = np.zeros((1, 14475, 3), np.float32)
|
|
||||||
unposed_unmasked[0, mask, :] = unposed
|
|
||||||
unposed = postprocess(unposed_unmasked, body[i], faces_garment, mask, do_smoothing=True)
|
|
||||||
save_stl(os.path.join(folder, id + '_' + frame_nr + '_posed.stl'), posed, faces_garment)
|
|
||||||
save_stl(os.path.join(folder, id + '_' + frame_nr + '_unposed.stl'), unposed, faces_garment)
|
|
||||||
save_stl(os.path.join(folder, id + '_' + frame_nr + '_gt.stl'), mesh_gt[i][mask, :], faces_garment)
|
|
||||||
print(id + '_' + frame_nr)
|
|
||||||
# np.save(os.path.join(folder, id + '_' + frame_nr + '_posed.npy'), posed)
|
|
||||||
# np.save(os.path.join(folder, id + '_' + frame_nr + '_unposed.npy'), unposed)
|
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -789,7 +772,7 @@ if __name__ == '__main__':
|
|||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
is_cape=config['is_cape'],
|
is_cape=config['is_cape'],
|
||||||
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
frames_file=config['frames_file'] if 'frames_file' in config.keys() else None,
|
||||||
frames_file_skirt=config['frames_file_skirt'] if 'frames_file_skirt' in config.keys() else '',
|
frames_file_skirt=config['frames_file'] if 'frames_file' in config.keys() else '',
|
||||||
folder_skirt=config['train_dir_skirt'] if 'train_dir_skirt' in config.keys() else '',
|
folder_skirt=config['train_dir_skirt'] if 'train_dir_skirt' in config.keys() else '',
|
||||||
)
|
)
|
||||||
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
static_dataset_train = StaticDataset(folder=config['train_dir'],
|
||||||
@@ -805,7 +788,7 @@ if __name__ == '__main__':
|
|||||||
in_memory=config['dataset_in_memory'],
|
in_memory=config['dataset_in_memory'],
|
||||||
is_cape=config['is_cape'],
|
is_cape=config['is_cape'],
|
||||||
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
frames_file=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else None,
|
||||||
frames_file_skirt=config['frames_file_valid_skirt'] if 'frames_file_valid_skirt' in config.keys() else '',
|
frames_file_skirt=config['frames_file_valid'] if 'frames_file_valid' in config.keys() else '',
|
||||||
folder_skirt=config['valid_dir_skirt'] if 'valid_dir_skirt' in config.keys() else '',
|
folder_skirt=config['valid_dir_skirt'] if 'valid_dir_skirt' in config.keys() else '',
|
||||||
)
|
)
|
||||||
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
static_dataset_valid = StaticDataset(folder=config['valid_dir'],
|
||||||
@@ -829,8 +812,6 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
# generate_results()
|
# generate_results()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ckpt = tf.train.Checkpoint(model=model)
|
ckpt = tf.train.Checkpoint(model=model)
|
||||||
manager = tf.train.CheckpointManager(ckpt, 'checkpoints/iccv/' + config['name'], max_to_keep=20)
|
manager = tf.train.CheckpointManager(ckpt, 'checkpoints/iccv/' + config['name'], max_to_keep=20)
|
||||||
train_accumulator = Accumulator()
|
train_accumulator = Accumulator()
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
name: "lhunor_iccv23"
|
|
||||||
services:
|
|
||||||
lhunor_tf:
|
|
||||||
image: lhunor_tf:2023.02.21
|
|
||||||
container_name: lhunor_iccv23
|
|
||||||
#command: python -c "import tensorflow as tf;tf.test.gpu_device_name()"
|
|
||||||
ipc: host
|
|
||||||
user: 11017:11000
|
|
||||||
tty: true
|
|
||||||
ulimits:
|
|
||||||
memlock: -1
|
|
||||||
stack: 67108864
|
|
||||||
volumes:
|
|
||||||
- '~/workspace:/workspace'
|
|
||||||
- '/data-net/guest/lhunor/data:/data-net'
|
|
||||||
- '/data-fast/126-data1/lhunor/data:/data-local/126'
|
|
||||||
- '/data-fast/127-data1/lhunor/data:/data-local/127'
|
|
||||||
- '/data-fast/128-data1/lhunor/data:/data-local/128'
|
|
||||||
working_dir: /data-net
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
reservations:
|
|
||||||
devices:
|
|
||||||
- capabilities: [gpu]
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from configs.iccv.config_abl_pyr_32_64_128_tshirt_skirt import config
|
from configs.iccv.config_abl_pyr_32_64_128_seq import config
|
||||||
|
|
||||||
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
os.environ["CUDA_VISIBLE_DEVICES"] = config['gpu']
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
|
|||||||
+45
-45
@@ -8,11 +8,11 @@ if __name__ == '__main__':
|
|||||||
garment_type_table = np.load('custom_data/garment_type_table_test.npy', allow_pickle=True).item()
|
garment_type_table = np.load('custom_data/garment_type_table_test.npy', allow_pickle=True).item()
|
||||||
folder = '/home/workspace/data/results/errors/iccv'
|
folder = '/home/workspace/data/results/errors/iccv'
|
||||||
|
|
||||||
checkpoint_name = 'iccv_pyr_32_64_128_2'
|
checkpoint_name = 'iccv_pyr_32_64_128_256_seq_2'
|
||||||
checkpoint_name_skirt = 'iccv_pyr_32_64_128_skirt_dress'
|
checkpoint_name_skirt = 'iccv_pyr_32_64_128_skin_skirt'
|
||||||
iteration = '125' + '000'
|
iteration = '185' + '000'
|
||||||
iteration_skirt : str = '175' + '000'
|
iteration_skirt : str = '155' + '000'
|
||||||
error_type = '-euclidean' # '-euclidean' '-collision' -edge -normal
|
error_type = 'euclidean' # 'euclidean' 'collision' edge normal
|
||||||
|
|
||||||
|
|
||||||
errors = []
|
errors = []
|
||||||
@@ -21,50 +21,50 @@ if __name__ == '__main__':
|
|||||||
per_garment_errors_skirt = { 'Tshirt': [], 'Dress': [], 'Skirt': [], 'Top': [] }
|
per_garment_errors_skirt = { 'Tshirt': [], 'Dress': [], 'Skirt': [], 'Top': [] }
|
||||||
|
|
||||||
|
|
||||||
# with open(os.path.join(folder, f'{checkpoint_name}-{iteration}{error_type}.csv'), 'r') as f:
|
with open(os.path.join(folder, f'{checkpoint_name}-{iteration}-{error_type}.csv'), 'r') as f:
|
||||||
# csv_reader = csv.reader(f, delimiter=',')
|
|
||||||
# for row in csv_reader:
|
|
||||||
# per_garment_errors[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
|
|
||||||
|
|
||||||
# print('\nNon-skirt:')
|
|
||||||
# for key in per_garment_errors.keys():
|
|
||||||
# avg = np.mean(per_garment_errors[key])
|
|
||||||
# errors.append(avg)
|
|
||||||
# print(key + ': ' + str(avg))
|
|
||||||
|
|
||||||
# print('\nAvg non-skirt: ' + str(np.mean(errors)))
|
|
||||||
|
|
||||||
with open(os.path.join(folder, f'{checkpoint_name_skirt}-{iteration_skirt}{error_type}.csv'), 'r') as f:
|
|
||||||
csv_reader = csv.reader(f, delimiter=',')
|
csv_reader = csv.reader(f, delimiter=',')
|
||||||
for row in csv_reader:
|
for row in csv_reader:
|
||||||
per_garment_errors_skirt[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
|
per_garment_errors[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
|
||||||
|
|
||||||
print('\nSkirt:')
|
print('\nNon-skirt:')
|
||||||
for key in per_garment_errors_skirt.keys():
|
|
||||||
avg = np.mean(per_garment_errors_skirt[key])
|
|
||||||
errors_skirt.append(avg)
|
|
||||||
print(key + ': ' + str(avg))
|
|
||||||
|
|
||||||
print('Avg skirt: ' + str(np.mean(errors_skirt)))
|
|
||||||
|
|
||||||
cum_avg_shirt = np.mean(per_garment_errors['Tshirt'] + per_garment_errors_skirt['Tshirt'])
|
|
||||||
cum_avg_top = np.mean(per_garment_errors['Top'] + per_garment_errors_skirt['Top'])
|
|
||||||
|
|
||||||
print('Global tshirt avg: ' + str(cum_avg_shirt))
|
|
||||||
print('Global top avg: ' + str(cum_avg_top))
|
|
||||||
|
|
||||||
print('\nGlobal per garment: ')
|
|
||||||
|
|
||||||
global_errors = []
|
|
||||||
per_garment_errors['Tshirt'].extend(per_garment_errors_skirt['Tshirt'])
|
|
||||||
per_garment_errors['Top'].extend(per_garment_errors_skirt['Top'])
|
|
||||||
per_garment_errors['Skirt'] = per_garment_errors_skirt['Skirt']
|
|
||||||
per_garment_errors['Dress'] = per_garment_errors_skirt['Dress']
|
|
||||||
for key in per_garment_errors.keys():
|
for key in per_garment_errors.keys():
|
||||||
avg = np.mean(per_garment_errors[key])
|
avg = np.mean(per_garment_errors[key])
|
||||||
global_errors.append(avg)
|
errors.append(avg)
|
||||||
print(key + ': ' + str(avg), 'samples: ' + str(len(per_garment_errors[key])))
|
print(key + ': ' + str(avg))
|
||||||
|
|
||||||
print('Global avg: ' + str(np.mean(global_errors)))
|
print('\nAvg non-skirt: ' + str(np.mean(errors)))
|
||||||
print(len(global_errors))
|
|
||||||
|
# with open(os.path.join(folder, f'{checkpoint_name_skirt}-{iteration_skirt}-{error_type}.csv'), 'r') as f:
|
||||||
|
# csv_reader = csv.reader(f, delimiter=',')
|
||||||
|
# for row in csv_reader:
|
||||||
|
# per_garment_errors_skirt[garment_type_table[row[0].split('_')[0]]].append(float(row[1]))
|
||||||
|
|
||||||
|
# print('\nSkirt:')
|
||||||
|
# for key in per_garment_errors_skirt.keys():
|
||||||
|
# avg = np.mean(per_garment_errors_skirt[key])
|
||||||
|
# errors_skirt.append(avg)
|
||||||
|
# print(key + ': ' + str(avg))
|
||||||
|
|
||||||
|
# print('Avg skirt: ' + str(np.mean(errors_skirt)))
|
||||||
|
|
||||||
|
# cum_avg_shirt = np.mean(per_garment_errors['Tshirt'] + per_garment_errors_skirt['Tshirt'])
|
||||||
|
# cum_avg_top = np.mean(per_garment_errors['Top'] + per_garment_errors_skirt['Top'])
|
||||||
|
|
||||||
|
# print('Global tshirt avg: ' + str(cum_avg_shirt))
|
||||||
|
# print('Global top avg: ' + str(cum_avg_top))
|
||||||
|
|
||||||
|
# print('\nGlobal per garment: ')
|
||||||
|
|
||||||
|
# global_errors = []
|
||||||
|
# per_garment_errors['Tshirt'].extend(per_garment_errors_skirt['Tshirt'])
|
||||||
|
# per_garment_errors['Top'].extend(per_garment_errors_skirt['Top'])
|
||||||
|
# per_garment_errors['Skirt'] = per_garment_errors_skirt['Skirt']
|
||||||
|
# per_garment_errors['Dress'] = per_garment_errors_skirt['Dress']
|
||||||
|
# for key in per_garment_errors.keys():
|
||||||
|
# avg = np.mean(per_garment_errors[key])
|
||||||
|
# global_errors.append(avg)
|
||||||
|
# print(key + ': ' + str(avg), 'samples: ' + str(len(per_garment_errors[key])))
|
||||||
|
|
||||||
|
# print('Global avg: ' + str(np.mean(global_errors)))
|
||||||
|
# print(len(global_errors))
|
||||||
|
|
||||||
@@ -155,15 +155,18 @@ class PyramidLevelNew(tf.keras.Model):
|
|||||||
return out
|
return out
|
||||||
|
|
||||||
|
|
||||||
def call(self, inputs, z_cond, training=None):
|
def call(self, inputs, z_cond, prev_latent=None, training=None):
|
||||||
uv_unposed, uv_template, uv_body_posed, uv_curv, uv_mask, uv_mask_high = inputs
|
uv_unposed, uv_template, uv_body_posed, uv_curv, uv_mask, uv_mask_high = inputs
|
||||||
|
|
||||||
x = tf.concat([uv_unposed, uv_template, uv_body_posed, uv_curv], axis=-1)
|
x = tf.concat([uv_unposed, uv_template, uv_body_posed, uv_curv], axis=-1)
|
||||||
mean, logvar = self.encoder(x, training=training)
|
mean, logvar = self.encoder(x, training=training)
|
||||||
z = self.reparameterize(mean, logvar, training)
|
z = self.reparameterize(mean, logvar, training)
|
||||||
z = self.reshape(z)
|
z_latent = self.reshape(z)
|
||||||
|
|
||||||
z = tf.concat([z, z_cond], axis=-1)
|
if prev_latent is not None:
|
||||||
|
z_latent = tf.concat([z_latent, prev_latent], axis=-1)
|
||||||
|
|
||||||
|
z = tf.concat([z_latent, z_cond], axis=-1)
|
||||||
x = self.decoder(z, training=training)
|
x = self.decoder(z, training=training)
|
||||||
|
|
||||||
if self.avg_garment is not None:
|
if self.avg_garment is not None:
|
||||||
@@ -177,4 +180,4 @@ class PyramidLevelNew(tf.keras.Model):
|
|||||||
|
|
||||||
# x = x * uv_mask_high[:,:,:,tf.newaxis]
|
# x = x * uv_mask_high[:,:,:,tf.newaxis]
|
||||||
|
|
||||||
return x, mean, logvar
|
return x, mean, logvar, z_latent
|
||||||
@@ -12,244 +12,6 @@ from models.pyramid_level import PyramidLevel, PyramidLevelNew
|
|||||||
from models.upscaler import UpscalerBasic, UpscalerBasicConv, UpscalerBasicNew
|
from models.upscaler import UpscalerBasic, UpscalerBasicConv, UpscalerBasicNew
|
||||||
|
|
||||||
|
|
||||||
class Pyramid(tf.keras.Model):
|
|
||||||
|
|
||||||
def __init__(self, config):
|
|
||||||
super(Pyramid, self).__init__()
|
|
||||||
|
|
||||||
self.static_enc : AEEncoder = AEEncoder(config['cond_ae']['latent_dim'], config['cond_ae']['encoder_depths'], config['cond_ae']['encoder_dims'], config['cond_ae']['bottleneck_size'], config['cond_ae']['kernel_size'])
|
|
||||||
if config['pyramid']['static_model'] != '':
|
|
||||||
load_model(self.static_enc, config['pyramid']['static_model'] + '_enc')
|
|
||||||
|
|
||||||
self.body_enc : AEEncoder = AEEncoder(config['cond_ae_body']['latent_dim'], config['cond_ae_body']['encoder_depths'], config['cond_ae_body']['encoder_dims'], config['cond_ae_body']['bottleneck_size'], config['cond_ae_body']['kernel_size'])
|
|
||||||
if config['pyramid']['body_model'] != '':
|
|
||||||
load_model(self.body_enc, config['pyramid']['body_model'] + '_enc')
|
|
||||||
|
|
||||||
self.curv_enc : AEEncoder = AEEncoder(config['cond_ae']['latent_dim'], config['cond_ae']['encoder_depths'], config['cond_ae']['encoder_dims'], config['cond_ae']['bottleneck_size'], config['cond_ae']['kernel_size'])
|
|
||||||
if config['pyramid']['curvature_model'] != '':
|
|
||||||
load_model(self.curv_enc, config['pyramid']['curvature_model'] + '_enc')
|
|
||||||
|
|
||||||
if config['pyramid']['freeze_encoders']:
|
|
||||||
self.static_enc.trainable = False
|
|
||||||
self.body_enc.trainable = False
|
|
||||||
self.curv_enc.trainable = False
|
|
||||||
|
|
||||||
self.cond_encoder = tf.keras.Sequential([tf.keras.layers.Dense(512, activation='relu'),
|
|
||||||
tf.keras.layers.Dense(256, activation='relu'),
|
|
||||||
tf.keras.layers.Dense(128, activation='relu'),
|
|
||||||
tf.keras.layers.Dense(config['pyramid']['latent_dim'], activation='tanh'),])
|
|
||||||
|
|
||||||
self.levels = [PyramidLevel({ **config['pyramid']['levels'][i], **{ 'cond_ae': config['cond_ae']} }) for i in range(len(config['pyramid']['levels']))]
|
|
||||||
|
|
||||||
# if config['is_cape']:
|
|
||||||
# if len(config['pyramid']['resolutions']) == 2:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# if len(config['pyramid']['resolutions']) == 3:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# if len(config['pyramid']['resolutions']) == 4:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# self.levels[-3].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# else:
|
|
||||||
if len(config['pyramid']['resolutions']) == 2:
|
|
||||||
self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
if len(config['pyramid']['resolutions']) == 3:
|
|
||||||
self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
if len(config['pyramid']['resolutions']) == 4:
|
|
||||||
self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 10000)])
|
|
||||||
self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
self.levels[-3].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
if len(config['pyramid']['resolutions']) == 5:
|
|
||||||
self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100000)])
|
|
||||||
self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 10000)])
|
|
||||||
self.levels[-3].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
self.levels[-4].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
|
|
||||||
self.add_noise = config['pyramid']['add_noise']
|
|
||||||
self.noise_amount = config['pyramid']['noise_amount']
|
|
||||||
self.use_offsets = config['use_offsets']
|
|
||||||
|
|
||||||
self.upscale_enhancer = None
|
|
||||||
if config['pyramid']['final_upscale_enhancer'] != '':
|
|
||||||
k_size = config['pyramid']['final_upscale_enhancer_kernel_size'] if 'final_upscale_enhancer_kernel_size' in config['pyramid'].keys() else ((3 if config['pyramid']['resolutions'][-1] <= 64 else 5))
|
|
||||||
self.upscale_enhancer = UpscalerBasicConv(low_res=config['pyramid']['resolutions'][-1], kernel_size=k_size)
|
|
||||||
load_model(self.upscale_enhancer, config['pyramid']['final_upscale_enhancer'])
|
|
||||||
self.upscale_enhancer.trainable = False
|
|
||||||
|
|
||||||
def enhance(self, low, mask, training):
|
|
||||||
x = self.upscale_enhancer([low, mask], training=training)
|
|
||||||
return x
|
|
||||||
|
|
||||||
def encode_conds(self, uv_template, uv_body_posed, uv_curv, training):
|
|
||||||
z_static = self.static_enc(uv_template, training)
|
|
||||||
z_body = self.body_enc(uv_body_posed, training)
|
|
||||||
z_curv = self.curv_enc(uv_curv, training)
|
|
||||||
|
|
||||||
z_cond = tf.concat([z_static, z_body, z_curv], axis=-1)
|
|
||||||
z_cond = self.cond_encoder(z_cond, training=training)
|
|
||||||
|
|
||||||
return z_cond
|
|
||||||
|
|
||||||
def call(self, inputs, training):
|
|
||||||
levels_input, conds = inputs
|
|
||||||
uv_static, uv_body, uv_curv = conds[0], conds[1], conds[2]
|
|
||||||
|
|
||||||
z_cond = self.encode_conds(uv_static, uv_body, uv_curv, training)
|
|
||||||
|
|
||||||
if self.add_noise == True and training == True:
|
|
||||||
z_cond = z_cond + (tf.random.uniform(z_cond.shape, maxval=self.noise_amount * 2) - self.noise_amount)
|
|
||||||
|
|
||||||
out_levels = []
|
|
||||||
pred, mean, logvar = self.levels[0](levels_input[0], z_cond, training=training)
|
|
||||||
if self.use_offsets:
|
|
||||||
pred = pred + levels_input[0][2] # uv_body_posed_32
|
|
||||||
if 1 != len(self.levels):
|
|
||||||
pred = self.levels[0].enhance(pred, levels_input[0][-2], training=training) # levels_input[i][-2]=uv_mask_res
|
|
||||||
pred = tf.image.resize(pred, (self.levels[1].size, self.levels[1].size//2), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
out_levels.append([pred, mean, logvar])
|
|
||||||
pred = pred * levels_input[1][-2][:,:,:,tf.newaxis]
|
|
||||||
else:
|
|
||||||
pred = self.enhance(pred, levels_input[0][-2], training=training)
|
|
||||||
pred = tf.image.resize(pred, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
pred = pred * levels_input[-1][-1][:,:,:,tf.newaxis] # full res uv mask
|
|
||||||
out_levels.append([pred, mean, logvar])
|
|
||||||
|
|
||||||
for i in range(1, len(self.levels)):
|
|
||||||
pred_level, mean, logvar = self.levels[i](levels_input[i], z_cond, training=training)
|
|
||||||
pred = pred + pred_level
|
|
||||||
if i != len(self.levels) - 1:
|
|
||||||
pred = self.levels[i].enhance(pred, levels_input[i][-2], training=training)
|
|
||||||
out_levels.append([pred, mean, logvar])
|
|
||||||
pred = tf.image.resize(pred, (self.levels[i+1].size, self.levels[i+1].size//2), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
pred = pred * levels_input[i+1][-2][:,:,:,tf.newaxis]
|
|
||||||
else:
|
|
||||||
if self.upscale_enhancer is not None:
|
|
||||||
pred = self.enhance(pred, levels_input[-1][-2], training=training)
|
|
||||||
pred = tf.image.resize(pred, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
pred = pred * levels_input[-1][-1][:,:,:,tf.newaxis] # full res uv mask
|
|
||||||
out_levels.append([pred, mean, logvar])
|
|
||||||
|
|
||||||
return out_levels
|
|
||||||
|
|
||||||
# # 32
|
|
||||||
# pred_0, mean_0, logvar_0 = self.levels[0](levels_input[0], z_cond, training=training)
|
|
||||||
# pred_0 = self.enhance(pred_0, levels_input[0][-2], training=training)
|
|
||||||
# pred_0 = tf.image.resize(pred_0, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# pred_0 = pred_0 * levels_input[-1][-1][:,:,:,tf.newaxis] # full res uv mask
|
|
||||||
# return [ [pred_0, mean_0, logvar_0] ]
|
|
||||||
|
|
||||||
# # 32 64
|
|
||||||
# pred_0, mean_0, logvar_0 = self.levels[0](levels_input[0], z_cond, training=training)
|
|
||||||
# pred_0 = self.levels[0].enhance(pred_0, levels_input[0][-2], training=training) # levels_input[i][-2]=uv_mask_res
|
|
||||||
# pred_0 = tf.image.resize(pred_0, (self.levels[1].size, self.levels[1].size//2), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# pred = pred_0 * levels_input[1][-2][:,:,:,tf.newaxis]
|
|
||||||
|
|
||||||
# pred_1, mean_1, logvar_1 = self.levels[1](levels_input[1], z_cond, training=training)
|
|
||||||
# pred_1 = pred + pred_1
|
|
||||||
# pred_1 = self.enhance(pred_1, levels_input[-1][-2], training=training)
|
|
||||||
# pred_1 = tf.image.resize(pred_1, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# pred_1 = pred_1 * levels_input[-1][-1][:,:,:,tf.newaxis] # full res uv mask
|
|
||||||
|
|
||||||
# return [ [pred_0, mean_0, logvar_0], [pred_1, mean_1, logvar_1] ]
|
|
||||||
|
|
||||||
|
|
||||||
# class Pyramid(tf.keras.Model):
|
|
||||||
|
|
||||||
# def __init__(self, config):
|
|
||||||
# super(Pyramid, self).__init__()
|
|
||||||
|
|
||||||
# self.static_enc : AEEncoder = AEEncoder(config['cond_ae']['latent_dim'], config['cond_ae']['encoder_depths'], config['cond_ae']['encoder_dims'], config['cond_ae']['bottleneck_size'], config['cond_ae']['kernel_size'])
|
|
||||||
# if config['pyramid']['static_model'] != '':
|
|
||||||
# load_model(self.static_enc, config['pyramid']['static_model'] + '_enc')
|
|
||||||
|
|
||||||
# self.body_enc : AEEncoder = AEEncoder(config['cond_ae']['latent_dim'], config['cond_ae']['encoder_depths'], config['cond_ae']['encoder_dims'], config['cond_ae']['bottleneck_size'], config['cond_ae']['kernel_size'])
|
|
||||||
# if config['pyramid']['body_model'] != '':
|
|
||||||
# load_model(self.body_enc, config['pyramid']['body_model'] + '_enc')
|
|
||||||
|
|
||||||
# self.curv_enc : AEEncoder = AEEncoder(config['cond_ae']['latent_dim'], config['cond_ae']['encoder_depths'], config['cond_ae']['encoder_dims'], config['cond_ae']['bottleneck_size'], config['cond_ae']['kernel_size'])
|
|
||||||
# if config['pyramid']['curvature_model'] != '':
|
|
||||||
# load_model(self.curv_enc, config['pyramid']['curvature_model'] + '_enc')
|
|
||||||
|
|
||||||
# if config['pyramid']['freeze_encoders']:
|
|
||||||
# self.static_enc.trainable = False
|
|
||||||
# self.body_enc.trainable = False
|
|
||||||
# self.curv_enc.trainable = False
|
|
||||||
|
|
||||||
# self.cond_encoder = tf.keras.Sequential([tf.keras.layers.Dense(512, activation='relu'),
|
|
||||||
# tf.keras.layers.Dense(256, activation='relu'),
|
|
||||||
# tf.keras.layers.Dense(128, activation='relu'),
|
|
||||||
# tf.keras.layers.Dense(config['pyramid']['latent_dim']),])
|
|
||||||
|
|
||||||
# self.levels = [PyramidLevel({ **config['pyramid']['levels'][i], **{ 'cond_ae': config['cond_ae']} }) for i in range(len(config['pyramid']['levels']))]
|
|
||||||
|
|
||||||
|
|
||||||
# self.upscale_enhancer = None
|
|
||||||
# if config['pyramid']['final_upscale_enhancer'] != '':
|
|
||||||
# self.upscale_enhancer = UpscalerBasicNew(low_res=config['pyramid']['resolutions'][-1])
|
|
||||||
# load_model(self.upscale_enhancer, config['pyramid']['final_upscale_enhancer'])
|
|
||||||
# self.upscale_enhancer.trainable = False
|
|
||||||
|
|
||||||
# def enhance(self, low, mask, training):
|
|
||||||
# x = self.upscale_enhancer([low, mask], training=training)
|
|
||||||
# return x
|
|
||||||
|
|
||||||
# def encode_conds(self, uv_template, uv_body_posed, uv_curv):
|
|
||||||
# z_static = self.static_enc(uv_template)
|
|
||||||
# z_body = self.body_enc(uv_body_posed)
|
|
||||||
# z_curv = self.curv_enc(uv_curv)
|
|
||||||
|
|
||||||
# z_cond = tf.concat([z_static, z_body, z_curv], axis=-1)
|
|
||||||
# z_cond = self.cond_encoder(z_cond)
|
|
||||||
|
|
||||||
# return z_cond
|
|
||||||
|
|
||||||
# def call(self, inputs, training):
|
|
||||||
# levels_input, conds = inputs
|
|
||||||
# uv_static, uv_body, uv_curv = conds[0], conds[1], conds[2]
|
|
||||||
# z_cond = self.encode_conds(uv_static, uv_body, uv_curv)
|
|
||||||
|
|
||||||
# out_levels = []
|
|
||||||
# pred_0, mean_0, logvar_0 = self.levels[0](levels_input[0], z_cond, training=training)
|
|
||||||
# pred_0 = self.levels[0].enhance(pred_0, levels_input[0][-2], training=training) # levels_input[i][-2]=uv_mask_res
|
|
||||||
# # pred_0 = self.enhance(pred_0, levels_input[0][-2], training=training)
|
|
||||||
|
|
||||||
# ##################
|
|
||||||
# # if more than 1 level
|
|
||||||
# # x = tf.image.resize(pred_0, (self.levels[1].size, self.levels[1].size//2), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# # x = x * levels_input[1][-2][:,:,:,tf.newaxis]
|
|
||||||
|
|
||||||
# # if only 1 level
|
|
||||||
# pred_0 = tf.image.resize(pred_0, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# ##################
|
|
||||||
|
|
||||||
|
|
||||||
# # pred_1, mean_1, logvar_1 = self.levels[1](levels_input[1], z_cond, training=training)
|
|
||||||
# # pred_1 = pred_0 + pred_1
|
|
||||||
# # pred_1 = self.levels[1].enhance(pred, levels_input[1][-2], training=training)
|
|
||||||
|
|
||||||
# # for i in range(1, len(self.levels)):
|
|
||||||
# # pred_level, mean, logvar = self.levels[i](levels_input[i], z_cond, training=training)
|
|
||||||
# # pred = pred + pred_level
|
|
||||||
# # if i != len(self.levels) - 1:
|
|
||||||
# # pred = self.levels[i].enhance(pred, levels_input[i][-2], training=training)
|
|
||||||
# # out_levels.append([pred, mean, logvar])
|
|
||||||
# # pred = tf.image.resize(pred, (self.levels[i+1].size, self.levels[i+1].size//2), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# # pred = pred * levels_input[i+1][-2][:,:,:,tf.newaxis]
|
|
||||||
# # else:
|
|
||||||
# # if self.upscale_enhancer is not None:
|
|
||||||
# # pred = self.enhance(pred, levels_input[-1][-2], training=training)
|
|
||||||
# # pred = tf.image.resize(pred, (512, 256), tf.image.ResizeMethod.LANCZOS5)
|
|
||||||
# # out_levels.append([pred, mean, logvar])
|
|
||||||
# # pred = pred * levels_input[-1][-1][:,:,:,tf.newaxis] # full res uv mask
|
|
||||||
|
|
||||||
# out_levels = [
|
|
||||||
# [pred_0, mean_0, logvar_0]
|
|
||||||
# ]
|
|
||||||
|
|
||||||
# return out_levels
|
|
||||||
|
|
||||||
|
|
||||||
class PyramidNew(tf.keras.Model):
|
class PyramidNew(tf.keras.Model):
|
||||||
|
|
||||||
@@ -278,21 +40,6 @@ class PyramidNew(tf.keras.Model):
|
|||||||
self.levels = [PyramidLevelNew({ **config['pyramid']['levels'][i] }) for i in range(len(config['pyramid']['levels']))]
|
self.levels = [PyramidLevelNew({ **config['pyramid']['levels'][i] }) for i in range(len(config['pyramid']['levels']))]
|
||||||
|
|
||||||
|
|
||||||
# if len(config['pyramid']['resolutions']) == 2:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# if len(config['pyramid']['resolutions']) == 3:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
# self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# if len(config['pyramid']['resolutions']) == 4:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 10000)])
|
|
||||||
# self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
# self.levels[-3].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
# if len(config['pyramid']['resolutions']) == 5:
|
|
||||||
# self.levels[-1].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100000)])
|
|
||||||
# self.levels[-2].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 10000)])
|
|
||||||
# self.levels[-3].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 1000)])
|
|
||||||
# self.levels[-4].decoder.decoder.last = tf.keras.Sequential([tf.keras.layers.Dense(3), tf.keras.layers.Lambda(lambda x: x / 100)])
|
|
||||||
|
|
||||||
self.add_noise = config['pyramid']['add_noise']
|
self.add_noise = config['pyramid']['add_noise']
|
||||||
self.noise_amount = config['pyramid']['noise_amount']
|
self.noise_amount = config['pyramid']['noise_amount']
|
||||||
self.use_offsets = config['use_offsets']
|
self.use_offsets = config['use_offsets']
|
||||||
@@ -411,7 +158,7 @@ class PyramidNew(tf.keras.Model):
|
|||||||
z_cond = z_cond + (tf.random.uniform(z_cond.shape, maxval=self.noise_amount * 2) - self.noise_amount)
|
z_cond = z_cond + (tf.random.uniform(z_cond.shape, maxval=self.noise_amount * 2) - self.noise_amount)
|
||||||
|
|
||||||
out_levels = []
|
out_levels = []
|
||||||
pred, mean, logvar = self.levels[0](levels_input[0], z_cond, training=training)
|
pred, mean, logvar, z_latent = self.levels[0](levels_input[0], z_cond, training=training)
|
||||||
if self.use_offsets:
|
if self.use_offsets:
|
||||||
pred = pred + levels_input[0][2] # uv_body_posed_32
|
pred = pred + levels_input[0][2] # uv_body_posed_32
|
||||||
if 1 != len(self.levels):
|
if 1 != len(self.levels):
|
||||||
@@ -429,7 +176,7 @@ class PyramidNew(tf.keras.Model):
|
|||||||
for i in range(1, len(self.levels)):
|
for i in range(1, len(self.levels)):
|
||||||
input = levels_input[i]
|
input = levels_input[i]
|
||||||
input[0] = input[0] - pred
|
input[0] = input[0] - pred
|
||||||
pred_level, mean, logvar = self.levels[i](input, z_cond, training=training)
|
pred_level, mean, logvar, z_latent = self.levels[i](input, z_cond, z_latent, training=training)
|
||||||
pred = pred + pred_level
|
pred = pred + pred_level
|
||||||
if i != len(self.levels) - 1:
|
if i != len(self.levels) - 1:
|
||||||
pred = self.levels[i].enhance(pred, levels_input[i][-2], training=training)
|
pred = self.levels[i].enhance(pred, levels_input[i][-2], training=training)
|
||||||
|
|||||||
+35
-46
@@ -41,14 +41,13 @@ from custom_utils.smpl import SMPL
|
|||||||
from convert_to_uv_api import convert_to_uv_api
|
from convert_to_uv_api import convert_to_uv_api
|
||||||
from models.upscaler import UpscalerBasicConv as Upscaler
|
from models.upscaler import UpscalerBasicConv as Upscaler
|
||||||
from postprocessing import fix_collision
|
from postprocessing import fix_collision
|
||||||
# from models.pyramid_model_optimized import Pyramid
|
from models.pyramid_model_optimized import Pyramid
|
||||||
|
|
||||||
# from configs.config_abl_overfit_dress_var_3 import config as config_main
|
# from configs.config_abl_overfit_dress_var_3 import config as config_main
|
||||||
# from configs.config_abl_overfit_jumpsuit_2 import config as config_main
|
# from configs.config_abl_overfit_jumpsuit_2 import config as config_main
|
||||||
# from configs.config_cvae_curv import config as config_curv
|
# from configs.config_cvae_curv import config as config_curv
|
||||||
# from configs.iccv.config_abl_all_skirt_var import config as config_main
|
# from configs.iccv.config_abl_all_skirt_var import config as config_main
|
||||||
# from configs.iccv.config_abl_all_skirt import config as config_main
|
from configs.iccv.config_abl_skin_var import config as config_main
|
||||||
from configs.iccv.config_abl_all import config as config_main
|
|
||||||
from configs.iccv.config_cvae_curv import config as config_curv
|
from configs.iccv.config_cvae_curv import config as config_curv
|
||||||
# from models.cvae_model_overfit_jumpsuit import CVAE
|
# from models.cvae_model_overfit_jumpsuit import CVAE
|
||||||
from models.cvae_model import CVAENew as CVAE
|
from models.cvae_model import CVAENew as CVAE
|
||||||
@@ -297,54 +296,52 @@ def sampling_example(frame, camera, nr=15):
|
|||||||
mask = batch['mesh_mask'][0].numpy().astype(bool)
|
mask = batch['mesh_mask'][0].numpy().astype(bool)
|
||||||
_, faces = _maskFaces(np.zeros((14475, 3)), F, mask)
|
_, faces = _maskFaces(np.zeros((14475, 3)), F, mask)
|
||||||
|
|
||||||
# noise = tf.random.normal(shape=(nr, 8, 4, 128))
|
noise = tf.random.normal(shape=(nr, 8, 4, 128))
|
||||||
# out = model.sample(tf.tile(batch['uv_static'], [nr,1,1,1]), tf.tile(batch['uv_body_posed'], [nr,1,1,1]), tf.tile(batch['uv_curvature'], [nr,1,1,1]), tf.tile(batch['uv_mask'], [nr,1,1]), noise)
|
out = model.sample(tf.tile(batch['uv_static'], [nr,1,1,1]), tf.tile(batch['uv_body_posed'], [nr,1,1,1]), tf.tile(batch['uv_curvature'], [nr,1,1,1]), tf.tile(batch['uv_mask'], [nr,1,1]), noise)
|
||||||
# # out,_,_ = model([tf.tile(batch['uv_unposed'], [nr,1,1,1]), tf.tile(batch['uv_static'], [nr,1,1,1]), tf.tile(batch['uv_body_posed'], [nr,1,1,1]), tf.tile(batch['uv_curvature'], [nr,1,1,1]), tf.tile(batch['uv_mask'], [nr,1,1])], training=False)
|
# out,_,_ = model([tf.tile(batch['uv_unposed'], [nr,1,1,1]), tf.tile(batch['uv_static'], [nr,1,1,1]), tf.tile(batch['uv_body_posed'], [nr,1,1,1]), tf.tile(batch['uv_curvature'], [nr,1,1,1]), tf.tile(batch['uv_mask'], [nr,1,1])], training=False)
|
||||||
|
|
||||||
# if config_main['use_skinning']:
|
if config_main['use_skinning']:
|
||||||
# posed_mesh = [get_posed_mesh(uv, batch['pose_shape'], batch['mesh_body_posed'], mask) for uv in tf.unstack(out)]
|
posed_mesh = [get_posed_mesh(uv, batch['pose_shape'], batch['mesh_body_posed'], mask) for uv in tf.unstack(out)]
|
||||||
# else:
|
else:
|
||||||
# posed_mesh = [uv2mesh(uv[tf.newaxis,:,:,:]) for uv in tf.unstack(out)]
|
posed_mesh = [uv2mesh(uv[tf.newaxis,:,:,:]) for uv in tf.unstack(out)]
|
||||||
# gt_mesh = batch['mesh_posed'][0].numpy()[mask, :]
|
gt_mesh = batch['mesh_posed'][0].numpy()[mask, :]
|
||||||
|
|
||||||
body = batch['mesh_body_posed'][0].numpy()
|
body = batch['mesh_body_posed'][0].numpy()
|
||||||
# posed_mesh_fixed = [postprocess(mesh, body, faces, mask, do_smoothing=True) for mesh in posed_mesh]
|
posed_mesh_fixed = [postprocess(mesh, body, faces, mask, do_smoothing=True) for mesh in posed_mesh]
|
||||||
# # posed_mesh_fixed = [mesh[0].numpy()[mask, :] for mesh in posed_mesh]
|
# posed_mesh_fixed = [mesh[0].numpy()[mask, :] for mesh in posed_mesh]
|
||||||
|
|
||||||
# # error = [np.sqrt(((gt_mesh-m) ** 2).sum(-1)).mean() for m in posed_mesh_fixed]
|
# error = [np.sqrt(((gt_mesh-m) ** 2).sum(-1)).mean() for m in posed_mesh_fixed]
|
||||||
|
|
||||||
# # row_sampling = []
|
# row_sampling = []
|
||||||
# # fig = plot_fixed(gt_mesh, body, faces, camera)
|
# fig = plot_fixed(gt_mesh, body, faces, camera)
|
||||||
# # fig.write_image('/tmp/exp_temp_7.png')
|
# fig.write_image('/tmp/exp_temp_7.png')
|
||||||
# # img = cv2.imread('/tmp/exp_temp_7.png')
|
# img = cv2.imread('/tmp/exp_temp_7.png')
|
||||||
# # row_sampling.append(img[:, 100:700, :])
|
# row_sampling.append(img[:, 100:700, :])
|
||||||
# # for mesh in posed_mesh_fixed:
|
# for mesh in posed_mesh_fixed:
|
||||||
# # fig = plot_fixed(mesh, body, faces, camera)
|
# fig = plot_fixed(mesh, body, faces, camera)
|
||||||
# # fig.write_image('/tmp/exp_temp_7.png')
|
# fig.write_image('/tmp/exp_temp_7.png')
|
||||||
# # img = cv2.imread('/tmp/exp_temp_7.png')
|
# img = cv2.imread('/tmp/exp_temp_7.png')
|
||||||
# # row_sampling.append(img[:, 100:700, :])
|
# row_sampling.append(img[:, 100:700, :])
|
||||||
|
|
||||||
|
|
||||||
# custom_imshow(np.concatenate(row_sampling, axis=1)).show()
|
# custom_imshow(np.concatenate(row_sampling, axis=1)).show()
|
||||||
# os.makedirs(os.path.join(out_folder, frame), exist_ok=True)
|
os.makedirs(os.path.join(out_folder, frame), exist_ok=True)
|
||||||
|
|
||||||
# plot_fixed(np.zeros_like(gt_mesh), body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_body.png'))
|
plot_fixed(np.zeros_like(gt_mesh), body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_body.png'))
|
||||||
# plot_fixed(gt_mesh, body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_gt.png'))
|
plot_fixed(gt_mesh, body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_gt.png'))
|
||||||
# for i in range(nr):
|
for i in range(nr):
|
||||||
# plot_fixed(posed_mesh_fixed[i], body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_' + str(i) + '.png'))
|
plot_fixed(posed_mesh_fixed[i], body, faces, camera).write_image(os.path.join(out_folder, frame, frame + '_' + str(i) + '.png'))
|
||||||
|
|
||||||
# save_stl(os.path.join(out_folder, frame, frame + '_body.stl'), body, F_body)
|
# save_stl(os.path.join(out_folder, frame, frame + '_body.stl'), body, F_body)
|
||||||
# save_stl(os.path.join(out_folder, frame, frame + '_gt.stl'), gt_mesh, faces.astype(np.int32))
|
# save_stl(os.path.join(out_folder, frame, frame + '_gt.stl'), gt_mesh, faces.astype(np.int32))
|
||||||
# for i in range(nr):
|
# for i in range(nr):
|
||||||
# save_stl(os.path.join(out_folder, frame, frame + '_' + str(i) + '.stl'), posed_mesh_fixed[i], faces.astype(np.int32))
|
# save_stl(os.path.join(out_folder, frame, frame + '_' + str(i) + '.stl'), posed_mesh_fixed[i], faces.astype(np.int32))
|
||||||
# np.save(os.path.join(out_folder, frame, frame + '_gt.npy'), gt_mesh)
|
np.save(os.path.join(out_folder, frame, frame + '_gt.npy'), gt_mesh)
|
||||||
# np.save(os.path.join(out_folder, frame, frame + '_body.npy'), body)
|
np.save(os.path.join(out_folder, frame, frame + '_body.npy'), body)
|
||||||
# np.save(os.path.join(out_folder, frame, frame + '_faces.npy'), faces.astype(np.int32))
|
np.save(os.path.join(out_folder, frame, frame + '_faces.npy'), faces.astype(np.int32))
|
||||||
# for i in range(nr):
|
for i in range(nr):
|
||||||
# np.save(os.path.join(out_folder, frame, frame + '_' + str(i) + '.npy'), posed_mesh_fixed[i])
|
np.save(os.path.join(out_folder, frame, frame + '_' + str(i) + '.npy'), posed_mesh_fixed[i])
|
||||||
|
|
||||||
save_stl(os.path.join(out_folder, frame + '_gt_body.stl'), body, F_body)
|
|
||||||
save_stl(os.path.join(out_folder, frame + '_posed_body.stl'), body, F_body)
|
|
||||||
|
|
||||||
# custom_imshow(np.concatenate(row_sampling, axis=1)).write_image(os.path.join(out_folder, frame + '_sampling.png'))
|
# custom_imshow(np.concatenate(row_sampling, axis=1)).write_image(os.path.join(out_folder, frame + '_sampling.png'))
|
||||||
print()
|
print()
|
||||||
@@ -420,7 +417,6 @@ def sampling_garment(frame, camera):
|
|||||||
|
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='')
|
parser = argparse.ArgumentParser(description='')
|
||||||
parser.add_argument('--name', type=str)
|
parser.add_argument('--name', type=str)
|
||||||
@@ -480,16 +476,9 @@ if __name__ == '__main__':
|
|||||||
# frame = '04925_272'
|
# frame = '04925_272'
|
||||||
|
|
||||||
# frames = ['01070_13', '02276_232', '02978_242', '04008_295', '04173_193']
|
# frames = ['01070_13', '02276_232', '02978_242', '04008_295', '04173_193']
|
||||||
# frames = ['00073_160', '00073_217', '00096_86', \
|
frames = ['02276_232', '02978_242', '04173_193']
|
||||||
# '04347_100', '04360_2', '04404_41', '04442_85', '04466_59', '04620_68', '04620_129', \
|
|
||||||
# '04655_28', '04668_255', '04682_96', '04709_37', '06117_123', '06141_162']
|
|
||||||
|
|
||||||
# frames = ['00265_257', '04070_263', '00239_9', '04608_170', '04372_289', '00077_106', '00205_164', '00323_97', '00185_7', '00079_250', \
|
out_folder = 'examples/sampling_analysis'
|
||||||
# '04143_56', '00240_136', '00185_33']
|
|
||||||
|
|
||||||
frames = ['009042_205', '009152_33', '010352_168', '012002_4', '03316_168', '03365_230']
|
|
||||||
|
|
||||||
out_folder = 'examples/qualitative/bodies3'
|
|
||||||
os.makedirs(out_folder, exist_ok=True)
|
os.makedirs(out_folder, exist_ok=True)
|
||||||
for frame in tqdm.tqdm(frames):
|
for frame in tqdm.tqdm(frames):
|
||||||
sampling_example(frame, camera_1)
|
sampling_example(frame, camera_1)
|
||||||
|
|||||||
Reference in New Issue
Block a user