|
from menpo_functions import * |
|
from deep_heatmaps_model_fusion_net import DeepHeatmapsModel |
|
from scipy.misc import imsave |
|
|
|
|
|
|
|
data_dir = '~/AF_dataset2/' |
|
test_data = 'Fernand_Leger' |
|
|
|
use_gt_bb = False |
|
|
|
|
|
out_dir = 'out_pred_landmarks' |
|
if not os.path.exists(out_dir): |
|
os.mkdir(out_dir) |
|
|
|
model_path = '~/model_foa/deep_heatmaps-60000' |
|
pdm_path = 'pdm_clm_models/pdm_models/' |
|
clm_path = 'pdm_clm_models/clm_models/g_t_all' |
|
|
|
outline_tune = False |
|
|
|
|
|
save_cropped_imgs = False |
|
|
|
map_landmarks_to_original_image = True |
|
|
|
|
|
|
|
|
|
|
|
|
|
bb_dir = os.path.join(data_dir, 'Bounding_Boxes') |
|
bb_dictionary = load_bb_dictionary(bb_dir, mode='TEST', test_data=test_data) |
|
if use_gt_bb: |
|
bb_type = 'gt' |
|
else: |
|
bb_type = 'init' |
|
|
|
img_list = load_menpo_image_list( |
|
img_dir=data_dir, test_data=test_data, train_crop_dir=data_dir, img_dir_ns=data_dir, bb_type=bb_type, |
|
bb_dictionary=bb_dictionary, mode='TEST', return_transform=map_landmarks_to_original_image) |
|
|
|
|
|
heatmap_model = DeepHeatmapsModel( |
|
mode='TEST', img_path=data_dir, test_model_path=model_path, test_data=test_data, menpo_verbose=False) |
|
|
|
|
|
|
|
print ("\npredicting landmarks for: "+os.path.join(data_dir, test_data)) |
|
print ("\nsaving landmarks to: "+out_dir) |
|
for i, img in enumerate(img_list): |
|
if i == 0: |
|
reuse = None |
|
else: |
|
reuse = True |
|
|
|
preds = heatmap_model.get_landmark_predictions(img_list=[img], pdm_models_dir=pdm_path, clm_model_path=clm_path, |
|
reuse=reuse, map_to_input_size=map_landmarks_to_original_image) |
|
|
|
if map_landmarks_to_original_image: |
|
img = img[0] |
|
|
|
if outline_tune: |
|
pred_lms = preds['ECpTp_out'] |
|
else: |
|
pred_lms = preds['ECpTp_jaw'] |
|
|
|
mio.export_landmark_file(PointCloud(pred_lms[0]), os.path.join(out_dir, img.path.stem + '.pts'), |
|
overwrite=True) |
|
if save_cropped_imgs: |
|
imsave(os.path.join(out_dir, img.path.stem + '.png'), img.pixels_with_channels_at_back()) |
|
print ("\nDONE!") |
|
|