コード例 #1
0
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
コード例 #2
0
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!")
コード例 #3
0
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
コード例 #4
0
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!")
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
ファイル: test_temp.py プロジェクト: dangchenyu/Center_Pose
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!")
コード例 #8
0
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!")
コード例 #9
0
ファイル: test_temp.py プロジェクト: dangchenyu/Center_Pose
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!")
コード例 #10
0
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])
コード例 #11
0
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!")
コード例 #12
0
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
コード例 #13
0
ファイル: test_utils_io_coord.py プロジェクト: Guanghan/ROLO
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