def test_track_all(dataset = "test"): image_dir = "/export/guanghan/Data_2018_lighttrack/posetrack_data/" visualize_folder = "/export/guanghan/Data_2018_lighttrack/posetrack_results/lighttrack/visualize/" output_video_folder = "/export/guanghan/cpn/data" track_json_folder = "/export/guanghan/Data_2018/posetrack_results/{}/track/jsons_submission3".format(dataset) video_name_list = ["018630_mpii_test", "024156_mpii_test"]#["022699_mpii_test", "023730_mpii_test", "014307_mpii_test", "014313_mpii_test", "015868_mpii_test"] for video_name in video_name_list: json_name = os.path.basename(video_name) + ".json" track_json = os.path.join(track_json_folder, json_name) print("visualization!") create_folder(visualize_folder) if dataset == "val": image_subfolder = os.path.join(image_dir, "images/val", os.path.basename(video_name)) elif dataset == "test": image_subfolder = os.path.join(image_dir, "images/test", os.path.basename(video_name)) print(image_subfolder) visualize_subfolder = os.path.join(visualize_folder, os.path.basename(video_name)) create_folder(visualize_subfolder) show_all_from_standard_json(track_json, classes, joint_pairs, joint_names, image_subfolder, visualize_subfolder, flag_track = True) img_paths = get_immediate_childfile_paths(visualize_subfolder) visualize_video_path = os.path.join(visualize_folder, os.path.basename(video_name)+".mp4") make_video_from_images(img_paths, visualize_video_path, fps=15, size=None, is_color=True, format="xvid") return
def test_show_boxes_from_standard_json(): json_file_path = "../standardize/convert/keypoint_to_standard/keypoint_CPN_to_standard.json" img_folder_path = "/Users/guanghan.ning/Desktop/working/hard_examples/" output_folder_path = "/Users/guanghan.ning/Desktop/working/hard_examples_detection/" create_folder(output_folder_path) show_boxes_from_standard_json(json_file_path, classes, img_folder_path, output_folder_path) print("Done!")
def show_boxes_from_standard_json(json_file_path, classes, img_folder_path=None, output_folder_path=None, track_id=-1): dets = read_json_from_file(json_file_path) for det in dets: python_data = det if img_folder_path is None: img_path = os.path.join(python_data["image"]["folder"], python_data["image"]["name"]) else: img_path = os.path.join(img_folder_path, python_data["image"]["name"]) if is_image(img_path): img = cv2.imread(img_path) candidates = python_data["candidates"] for candidate in candidates: bbox = np.array(candidate["det_bbox"]).astype(int) score = candidate["det_score"] if score >= bbox_thresh: img = draw_bbox(img, bbox, score, classes, track_id=track_id) if output_folder_path is not None: create_folder(output_folder_path) img_output_path = os.path.join(output_folder_path, python_data["image"]["name"]) cv2.imwrite(img_output_path, img) return True
def test_show_all_from_standard_json_track(): json_file_path = "../standardize/convert/keypoint_track_to_standard/json/track_results_standard_format.json" img_folder_path = "/Users/guanghan.ning/Desktop/working/test_posetrack/" output_folder_path = "/Users/guanghan.ning/Desktop/working/test_posetrack_visualize/" create_folder(output_folder_path) show_all_from_standard_json(json_file_path, classes, joint_pairs, joint_names, img_folder_path, output_folder_path, flag_track = True) print("Done!")
def test_save_vec_as_numpy(): output_folder_path = '../temp_folder' create_folder(output_folder_path) pairs_list_numpy_file_path = '/home/ngh/dev/ROLO-TRACK/training_list/list.npy' dataset_annotation_folder_path = '/home/ngh/dev/ROLO-dev/benchmark/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0000' batchsize = 8 nsteps = 3 list_batch_pairs = load_list_batch_pairs_from_numpy_file( pairs_list_numpy_file_path, batchsize) for batch_pairs in list_batch_pairs[0:10]: batch_frame_ids = [int(batch_pair[1]) for batch_pair in batch_pairs] batch_subfolder_names = [batch_pair[0] for batch_pair in batch_pairs] batch_numpy_folder_paths = [ os.path.join(dataset_annotation_folder_path, subfolder_name, 'VID_loc_gt') for subfolder_name in batch_subfolder_names ] attempted_yolo_batch = batchload_yolovecs_from_numpy_folders( batch_numpy_folder_paths, batch_frame_ids, batchsize, nsteps) if attempted_yolo_batch is not False: batch_output_vecs = attempted_yolo_batch for id in range(batchsize): frame_id = batch_frame_ids[id] output_vec = batch_output_vecs[id][nsteps - 1] save_vec_as_numpy_by_frame_id(output_folder_path, frame_id, output_vec) return True
def show_poses_from_standard_json(json_file_path, joint_pairs, joint_names, img_folder_path=None, output_folder_path=None): poses = read_json_from_file(json_file_path) for pose in poses: python_data = pose if img_folder_path is None: img_path = os.path.join(python_data["image"]["folder"], python_data["image"]["name"]) else: img_path = os.path.join(img_folder_path, python_data["image"]["name"]) if is_image(img_path): img = cv2.imread(img_path) candidates = python_data["candidates"] for candidate in candidates: pose_keypoints_2d = candidate["pose_keypoints_2d"] joints = reshape_keypoints_into_joints(pose_keypoints_2d) img = show_poses_from_python_data(img, joints, joint_pairs, joint_names) if output_folder_path is not None: create_folder(output_folder_path) img_output_path = os.path.join(output_folder_path, python_data["image"]["name"]) cv2.imwrite(img_output_path, img) return
def test_show_boxes_from_standard_json(): json_file_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/results/pose/009602_mpii_test.json" img_folder_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/images/009602_mpii_test" output_folder_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/visualize/detection" create_folder(output_folder_path) show_boxes_from_standard_json(json_file_path, classes, img_folder_path, output_folder_path) print("Done!")
def test_show_all_from_standard_json(): #json_file_path = "../standardize/convert/keypoint_to_standard/json/keypoint_CPN_to_standard.json" #img_folder_path = "/Users/guanghan.ning/Desktop/working/hard_examples/" #output_folder_path = "/Users/guanghan.ning/Desktop/working/hard_examples_visualize/" json_file_path = "../standardize/convert/keypoint_to_standard/json/temp.json" img_folder_path = "/Users/guanghan.ning/Desktop/working/test_openSVAI/" output_folder_path = "/Users/guanghan.ning/Desktop/working/test_openSVAI_visualize/" create_folder(output_folder_path) show_all_from_standard_json(json_file_path, classes, joint_pairs, joint_names, img_folder_path, output_folder_path) print("Done!")
def test_show_all_from_standard_json_track(): json_file_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/results/track/009602_mpii_test.json" img_folder_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/images/009602_mpii_test" output_folder_path = "/Users/guanghan.ning/Desktop/working/POSETRACK_visualize/visualize/track/" create_folder(output_folder_path) show_all_from_standard_json(json_file_path, classes, joint_pairs, joint_names, img_folder_path, output_folder_path, flag_track=True) print("Done!")
def make_images_from_video(video_path, outimages_path=None): cap = cv2.VideoCapture(video_path) isOpened = cap.isOpened() fps = cap.get(cv2.CAP_PROP_FPS) # 帧率<每秒中展示多少张图片> width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取宽度 height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取宽度 i = 0 while (isOpened): # 当视频被打开了 i = i + 1 # i++ (flag, frame) = cap.read() # 读取每一张 flag<读取是否成功> frame<内容> file_name = "{0:08d}.jpg".format(i) if outimages_path is not None: utils_io_folder.create_folder(outimages_path) file_path = os.path.join(outimages_path, file_name) else: utils_io_folder.create_folder("output") file_path = os.path.join("output", file_name) if flag: # 读取成功的话 # 写入文件,1 文件名 2 文件内容 3 质量设置 cv2.imwrite(file_path, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])
def test_show_poly_from_standard_json(): #json_file_path = "../standardize/convert/poly_to_standard/json/poly_results_standard_format.json" # generated locally ''' json_file_path = "/Users/guanghan.ning/Desktop/dev/polyrnn/poly.json" # downloaded from server img_folder_path = "/Users/guanghan.ning/Desktop/working/douyin_4/images/" output_folder_path = "/Users/guanghan.ning/Desktop/working/douyin_4/visualize/poly/" ''' json_file_path = "/Users/guanghan.ning/Desktop/leftImg8bit_demoVideo/leftImg8bit/demoVideo/results/poly/cityscape.json" # downloaded from server img_folder_path = "/Users/guanghan.ning/Desktop/leftImg8bit_demoVideo/leftImg8bit/demoVideo/images/" output_folder_path = "/Users/guanghan.ning/Desktop/leftImg8bit_demoVideo/leftImg8bit/demoVideo/visualize/poly/" create_folder(output_folder_path) show_poly_from_standard_json(json_file_path, classes, joint_pairs, joint_names, img_folder_path, output_folder_path, flag_track=True) print("Done!")
def video_to_images(video_file_path, output_img_folder_path=None): video = file_to_video(video_file_path) if output_img_folder_path is None: parent_folder_path, _ = get_parent_folder_from_path(video_file_path) video_name = os.path.basename(video_file_path) print(parent_folder_path) print(video_name) video_name_no_ext = os.path.splitext(video_name)[0] output_img_folder_path = os.path.join(parent_folder_path, video_name_no_ext) create_folder(output_img_folder_path) success, image = video.read() count = 0 while success: img_name = "frame%05d.jpg" % count img_path = os.path.join(output_img_folder_path, img_name) cv2.imwrite(img_path, image) # save frame as JPEG file success, image = video.read() #print('Read a new frame: ', success) count += 1 return True
def test_save_vec_as_numpy(): output_folder_path = '../temp_folder' create_folder(output_folder_path) pairs_list_numpy_file_path = '/home/ngh/dev/ROLO-TRACK/training_list/list.npy' dataset_annotation_folder_path = '/home/ngh/dev/ROLO-dev/benchmark/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0000' batchsize = 8 nsteps = 3 list_batch_pairs = load_list_batch_pairs_from_numpy_file(pairs_list_numpy_file_path, batchsize) for batch_pairs in list_batch_pairs[0:10]: batch_frame_ids = [int(batch_pair[1]) for batch_pair in batch_pairs] batch_subfolder_names = [batch_pair[0] for batch_pair in batch_pairs] batch_numpy_folder_paths = [os.path.join(dataset_annotation_folder_path, subfolder_name, 'VID_loc_gt') for subfolder_name in batch_subfolder_names] attempted_yolo_batch = batchload_yolovecs_from_numpy_folders(batch_numpy_folder_paths, batch_frame_ids, batchsize, nsteps) if attempted_yolo_batch is not False: batch_output_vecs = attempted_yolo_batch for id in range(batchsize): frame_id = batch_frame_ids[id] output_vec = batch_output_vecs[id][nsteps-1] save_vec_as_numpy_by_frame_id(output_folder_path, frame_id, output_vec) return True