Exemple #1
0
def generate_all_video(type, only_pose=False):
    assert type in video_types
    image_folder_base = "/media/jion/D/chenhaoming/DataSet/DouYin/images/{}".format(
        type)
    openpose_dir_base = "/media/jion/D/chenhaoming/DataSet/DouYin/machine_openpose/{}".format(
        type)
    output_dir_base = "/media/jion/D/chenhaoming/DataSet/DouYin/images/{}".format(
        type)

    images_folder_paths = utils_io_folder.get_immediate_subfolder_paths(
        image_folder_base)
    for image_folder_path in images_folder_paths:
        images_paths = utils_io_folder.get_immediate_childfile_paths(
            image_folder_path, exclude=".json")
        video_name = utils_io_folder.get_file_name_without_ext_from_path(
            image_folder_path)

        if not video_name.isdigit():
            continue

        input_jsons = utils_io_folder.get_immediate_childfile_paths(
            os.path.join(openpose_dir_base, video_name), ext=".json")
        output_dir = os.path.join(output_dir_base, video_name)
        assert len(images_paths) == len(input_jsons)
        print("images_path:{}".format(image_folder_path))
        for index in range(len(images_paths)):
            if only_pose:
                output_dir_final = os.path.join(output_dir, "only_pose")
            else:
                output_dir_final = os.path.join(output_dir, "pose_and_hand")
            openpose_convert_labelme_format(input_jsons[index],
                                            images_paths[index],
                                            output_dir_final,
                                            only_pose=only_pose)
Exemple #2
0
def work():
    cmd = "mv {} {}"
    root_path = "/media/jion/D/chenhaoming/DataSet/PoseTrack2017/posetrack_data/images"
    change_path = "/media/jion/D/chenhaoming/DataSet/PoseTrack2017/cropped_image/{}/{}"
    folder_paths = utils_io_folder.get_immediate_subfolder_paths(root_path)
    for folder_path in tqdm(folder_paths):
        first_folder_name = utils_io_folder.get_file_name_without_ext_from_path(folder_path)
        # print(first_folder_name)
        paths = utils_io_folder.get_immediate_subfolder_paths(folder_path)
        for path in paths:
            second_folder_name = utils_io_folder.get_file_name_without_ext_from_path(path)
            # print(second_folder_name)
            images_path = utils_io_folder.get_immediate_childfile_paths(path)
            new_path = change_path.format(first_folder_name, second_folder_name)
            utils_io_folder.create_folder(new_path)
            for image_path in images_path:
                image_name = utils_io_folder.get_file_name_without_ext_from_path(image_path)
                if image_name.find("transform") >= 0:
                    cmd_i = cmd.format(image_path, os.path.join(new_path, image_name))
                    os.system(cmd_i)
Exemple #3
0
def start(path):
    file_paths = utils_io_folder.get_immediate_childfile_paths(path)
    mota_paths = []
    for file_path in file_paths:
        file_name = utils_io_folder.get_file_name_without_ext_from_path(file_path)
        if file_name.find("MOT") > 0:
            mota_paths.append(file_path)

    wbk = xlwt.Workbook()
    sheet = wbk.add_sheet("sheet 1")
    sheet.write(0, 0, " ")
    i = 1
    for type in types:
        for name in names:
            sheet.write(i, 0, "{}-{}".format(type, name))
            i += 1
        sheet.write(i, 0, "")
        i += 1
    j = 1
    for file_path in mota_paths:
        file_name = utils_io_folder.get_file_name_without_ext_from_path(file_path)
        if file_name != total_name:
            index = file_name.find("_mpii")
            video_number = file_name[0:int(index)]
        else:
            video_number = "total"
        sheet.write(0, j, video_number)
        json_data = utils_json.read_json_from_file(file_path)
        i = 1
        for type in types:
            type_json_data = json_data[type]
            for index, _ in enumerate(names):
                sheet.write(i, j, type_json_data[index])
                i += 1
            sheet.write(i, j, "")
            i += 1
        j += 1

    interval_index = path.rindex("/")
    source_index = path.rindex("/", 0, interval_index)
    wbk.save("{}_{}.xls".format(path[source_index + 1:interval_index], path[interval_index + 1:]))
def start_tmp():
    labelme_base_path = "E:/temp/anno/{}"
    output_base_path = "E:/temp/anno/output/{}"
    temp_video_types = ["test", "train"]
    for video_type in temp_video_types:
        openpose_json_folder_type = output_base_path.format(video_type)
        labelme_folder = labelme_base_path.format(video_type)

        folder_name = utils_io_folder.get_file_name_without_ext_from_path(labelme_folder)

        openpose_json_folder = os.path.join(openpose_json_folder_type, folder_name)
        utils_io_folder.create_folder(openpose_json_folder)
        labelme_json_paths = utils_io_folder.get_immediate_childfile_paths(labelme_folder, ext="json")
        for labelme_json_path in tqdm(labelme_json_paths):
            # convert json one by one
            labelme_to_openpose(labelme_json_path, openpose_json_folder)
Exemple #5
0
def start_convert():
    labelme_base_path = "F:/DataSet/douyin/my_works/{}"
    index = ["000003"]
    for i in tqdm(index):
        path = labelme_base_path.format(i)
        print(path)
        labelme_json_paths = utils_io_folder.get_immediate_childfile_paths(
            path, ext="json")
        # TODO  之后要改成在统一的一个目录下
        output_folder = "F:/DataSet/douyin/my_works/{}".format(i)
        utils_io_folder.create_folder(output_folder)
        for labelme_json_path in tqdm(labelme_json_paths):
            number = int(
                utils_io_folder.get_file_name_without_ext_from_path(
                    labelme_json_path))
            labelme_to_openpose(labelme_json_path, output_folder)
def start_convert():
    labelme_base_path = "F:/DataSet/DouYin/annotation_labelme_image/{}"
    output_base_path = "F:/DataSet/DouYin/annotation_openpose/{}"
    for video_type in tqdm(video_types):
        openpose_json_folder_type = output_base_path.format(video_type)
        labelme_folder = labelme_base_path.format(video_type)

        video_folder_sequence = utils_io_folder.get_immediate_subfolder_paths(labelme_folder)
        for video_folder in tqdm(video_folder_sequence):
            folder_name = utils_io_folder.get_file_name_without_ext_from_path(video_folder)
            if folder_name.isdigit():
                openpose_json_folder = os.path.join(openpose_json_folder_type, folder_name)
                utils_io_folder.create_folder(openpose_json_folder)
                labelme_json_paths = utils_io_folder.get_immediate_childfile_paths(video_folder, ext="json")
                for labelme_json_path in tqdm(labelme_json_paths):
                    # convert json one by one
                    labelme_to_openpose(labelme_json_path, openpose_json_folder)
Exemple #7
0
def labelme_to_openpose(labelme_json_path, output_folder):
    labelme_data = utils_json.read_json_from_file(labelme_json_path)
    img_name = utils_io_folder.get_file_name_without_ext_from_path(
        labelme_json_path)
    shapes = labelme_data["shapes"]
    # for shape in shapes:
    temp_shape = []
    for shape in shapes:
        person_id = shape["group_id"]
        if person_id == 0:
            temp_shape.append(shape)
    output_path = os.path.join(
        output_folder,
        utils_io_folder.get_file_name_from_path(labelme_json_path))
    labelme_data["shapes"] = temp_shape
    print(output_path)
    utils_json.write_json_to_file(labelme_data, output_path)
def labelme_to_openpose(labelme_json_path, output_folder):
    labelme_data = utils_json.read_json_from_file(labelme_json_path)
    img_name = utils_io_folder.get_file_name_without_ext_from_path(labelme_json_path)
    shapes = labelme_data["shapes"]
    # for shape in shapes:
    openpose_data = dict()
    person_dicts = dict()
    person_ids = []
    next_id = 0
    for shape in shapes:
        person_id = shape["group_id"]
        if person_id not in person_ids:
            person_dict = dict()
            if person_id != -1:
                person_dict["person_id"] = person_id
            else:
                person_dict["person_id"] = next_id
                next_id += 1
            person_dict["pose_keypoints_2d"] = [0] * (len(pose_keypoints_order) * 3)
            person_dict["face_keypoints_2d"] = []
            person_dict["hand_left_keypoints_2d"] = [0] * (openpose_hand_keypoints_number * 3)
            person_dict["hand_right_keypoints_2d"] = [0] * (openpose_hand_keypoints_number * 3)
            person_dict["pose_keypoints_3d"] = []
            person_dict["face_keypoints_3d"] = []
            person_dict["hand_right_keypoints_3d"] = []
            person_dict = fill_keypoint(person_dict, shape)
            person_dicts[person_id] = person_dict
            person_ids.append(person_id)
        else:
            person_dict = person_dicts[person_id]
            person_dict = fill_keypoint(person_dict, shape)
            person_dicts[person_id] = person_dict
    output_path = os.path.join(output_folder, utils_io_folder.get_file_name_from_path(labelme_json_path))
    python_data = dict()
    python_data["version"] = 1.3
    people = []
    for person_index in person_dicts.keys():
        people.append(person_dicts[person_index])
    python_data["people"] = people
    utils_json.write_json_to_file(python_data, output_path)