Spaces:
Runtime error
Runtime error
from menpo_functions import * | |
from deep_heatmaps_model_fusion_net import DeepHeatmapsModel | |
import os | |
import pickle | |
# directory for saving predictions | |
out_dir = '/Users/arik/Desktop/out/' | |
if not os.path.exists(out_dir): | |
os.mkdir(out_dir) | |
# directory with conventional landmark detection datasets (for bounding box files) | |
conv_dir = '/Users/arik/Dropbox/a_mac_thesis/face_heatmap_networks/conventional_landmark_detection_dataset/' | |
# bounding box type for conventional landmark detection datasets (gt / init) | |
bb_type='init' | |
# directory with clm models for tuning step | |
clm_path='pdm_clm_models/clm_models/g_t_all' | |
# directory with pdm models for correction step | |
pdm_path='pdm_clm_models/pdm_models/' | |
# model path | |
model_path = '/Users/arik/Dropbox/Thesis_dropbox/models/model_train_wiki/model/deep_heatmaps-60000' | |
# directory containing test sets | |
data_dir = '/Users/arik/Dropbox/a_mac_thesis/artistic_faces/artistic_face_dataset/' | |
test_sets = ['all_AF'] # test sets to evaluate | |
# data_dir = '/Users/arik/Desktop/Thesis_mac/semi_art_sets/semi_art_sets_wiki_train_2/' | |
# test_sets = [ | |
# 'challenging_set_aug_geom_texture', | |
# 'common_set_aug_geom_texture', | |
# 'test_set_aug_geom_texture', | |
# 'full_set_aug_geom_texture' | |
# ] | |
# load heatmap model | |
heatmap_model = DeepHeatmapsModel( | |
mode='TEST', img_path=conv_dir, test_model_path=model_path, menpo_verbose=False, scale=1) | |
bb_dir = os.path.join(conv_dir, 'Bounding_Boxes') | |
# predict landmarks for input test sets | |
for i,test_data in enumerate(test_sets): | |
if i == 0: | |
reuse=None | |
else: | |
reuse=True | |
out_temp = os.path.join(out_dir, test_data) | |
if not os.path.exists(out_temp): | |
os.mkdir(out_temp) | |
bb_dictionary = load_bb_dictionary(bb_dir, mode='TEST', test_data=test_data) | |
img_list = load_menpo_image_list(img_dir=data_dir, train_crop_dir=data_dir, img_dir_ns=data_dir, mode='TEST', | |
test_data=test_data, bb_type=bb_type, bb_dictionary=bb_dictionary) | |
img_list = img_list[:10] | |
print test_data + ':' + str(len(img_list)) + ' images' | |
preds = heatmap_model.get_landmark_predictions(img_list=img_list, pdm_models_dir=pdm_path, clm_model_path=clm_path, | |
reuse=reuse) | |
init_lms = preds['E'] | |
ppdm_lms = preds['ECp'] | |
clm_lms = preds['ECpT'] | |
ect_lms = preds['ECT'] | |
ecptp_jaw_lms = preds['ECpTp_jaw'] | |
ecptp_out_lms = preds['ECpTp_out'] | |
filehandler = open(os.path.join(out_temp,'E_lms'),"wb") | |
pickle.dump(init_lms,filehandler) | |
filehandler.close() | |
filehandler = open(os.path.join(out_temp,'ECp_lms'),"wb") | |
pickle.dump(ppdm_lms,filehandler) | |
filehandler.close() | |
filehandler = open(os.path.join(out_temp,'ECpT_lms'),"wb") | |
pickle.dump(clm_lms,filehandler) | |
filehandler.close() | |
filehandler = open(os.path.join(out_temp,'ECT_lms'),"wb") | |
pickle.dump(ect_lms,filehandler) | |
filehandler.close() | |
filehandler = open(os.path.join(out_temp,'ECpTp_jaw_lms'),"wb") | |
pickle.dump(ecptp_jaw_lms,filehandler) | |
filehandler.close() | |
filehandler = open(os.path.join(out_temp,'ECpTp_out_lms'),"wb") | |
pickle.dump(ecptp_out_lms,filehandler) | |
filehandler.close() | |
print("\nDone!\n") |