Spaces:
Runtime error
Runtime error
| import argparse | |
| import os | |
| os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' | |
| import cv2 | |
| from src.correspondence import DTW | |
| from src.crop_video import YOLOCrop, TrackerCrop | |
| from src.pose_detection import MovenetPoseDetection | |
| from src import utils | |
| def main(ref_video_path, test_video_path, output_video_path, crop_method="yolo"): | |
| ref_frames = utils.get_video_frames(ref_video_path) | |
| test_frames = utils.get_video_frames(test_video_path) | |
| if crop_method == 'Tracker': | |
| crop_object = TrackerCrop() | |
| else: | |
| crop_object = YOLOCrop() | |
| ref_crop_frames = crop_object.video_crop(ref_frames) | |
| test_crop_frames = crop_object.video_crop(test_frames) | |
| movenet = MovenetPoseDetection() | |
| ref_keypoints = movenet.run_inference(ref_crop_frames) | |
| test_keypoints = movenet.run_inference(test_crop_frames) | |
| dtw = DTW(cost_weightage={'mae' : 0, 'angle_mae' : 1}) | |
| ref_frame_idx, test_frame_idx, costs = dtw.find_correspondence(ref_keypoints, test_keypoints) | |
| utils.Plot.plot_matching(ref_crop_frames, test_crop_frames, ref_keypoints, test_keypoints,ref_frame_idx, test_frame_idx, costs,output_video_path) | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser( | |
| description="run chained process", | |
| formatter_class=argparse.ArgumentDefaultsHelpFormatter | |
| ) | |
| parser.add_argument('--Ref_video', type=str, required=True) | |
| parser.add_argument('--Test_video', type=str, required=True) | |
| parser.add_argument('--Output_path', type=str, required=True) | |
| args = parser.parse_args() | |
| try: | |
| main(args.Ref_video, args.Test_video, args.Output_path) | |
| except NameError: | |
| print("Video file is not appropriate.") | |
| except ValueError: | |
| print("YOLO couldn't detect bounding box for given video.") | |
| except cv2.error: | |
| print( | |
| "Can not convert color from BGR to RGB. Please check the input frame." | |
| ) | |