import argument_parser import trainer from auxiliary.my_utils import * from functools import reduce from auxiliary.model_atlasnet import * import miou_shape import useful_losses as loss import my_utils from my_utils import Max_k, Min_k import ICP import tqdm from save_mesh_from_points_and_labels import * import figure_2_3 import pdb opt = argument_parser.parser() my_utils.plant_seeds(randomized_seed=opt.randomize) min_k = Min_k(opt.k_max_eval) max_k = Max_k(opt.k_max_eval) if opt.num_figure_3_4 > 0: min_k_fig = Min_k(opt.num_figure_3_4) max_k_fig = Max_k(opt.num_figure_3_4) trainer = trainer.Trainer(opt) trainer.build_dataset_train_for_matching() trainer.build_dataset_test_for_matching() trainer.build_network() trainer.network.eval() # =============DEFINE Criterions to evaluate======================================== #
def draw_face_direction(img, image_points, nose_end_point2D, direction): cv2.putText(img, 'Yaw' + str(direction["Yaw"]), (20, 10), cv2.FONT_HERSHEY_PLAIN, 1, (0, 0, 255), 2) cv2.putText(img, 'Pitch' + str(direction["Pitch"]), (20, 25), cv2.FONT_HERSHEY_PLAIN, 1, (0, 0, 255), 2) cv2.putText(img, 'Roll' + str(direction["Roll"]), (20, 40), cv2.FONT_HERSHEY_PLAIN, 1, (0, 0, 255), 2) p1 = (int(image_points[0][0]), int(image_points[0][1])) p2 = (int(nose_end_point2D[0][0][0]), int(nose_end_point2D[0][0][1])) cv2.line(img, p1, p2, (255, 0, 0), 2) return img def send_udp(client, server_address, direction): message = json.dumps(direction) client.sendto(message.encode(), server_address) def low_pass_filter(now, prev, k): return np.array([do_low_pass_filter(x, y, k) for x, y in zip(now, prev)]) def do_low_pass_filter(now, prev, k): return (1 - k) * prev + k * now if __name__ == "__main__": args = parser() print(args) main(args)