Как извлечь координаты частей тела человека, используя библиотеку оценки позы человека? [Очень медленно] - PullRequest
0 голосов
/ 27 января 2020

Я использую эту библиотеку (https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation) для извлечения координат из видео. В видео только один человек выполняет некоторые движения. Я хочу извлечь координаты из каждого кадра и создать из него кадр данных. Это мой нынешний подход. В настоящее время это занимает много времени для каждого кадра. Есть ли более быстрый способ сделать это?

keras_weights_file = "model.h5"
frame_rate_ratio = 1
process_speed = 4
ending_frame = None

model = get_testing_model()
model.load_weights(keras_weights_file)
params, model_params = config_reader()


cam = cv2.VideoCapture(video_file)
input_fps = cam.get(cv2.CAP_PROP_FPS)
ret_val, orig_image = cam.read()
video_length = int(cam.get(cv2.CAP_PROP_FRAME_COUNT))

if ending_frame is None:
    ending_frame = video_length


scale_search = [1, .5, 1.5, 2]  # [.5, 1, 1.5, 2]
scale_search = scale_search[0:process_speed]

params['scale_search'] = scale_search

i = 0  # default is 0
while(cam.isOpened()) and ret_val is True and i < ending_frame:
    if i % frame_rate_ratio == 0:

        input_image = cv2.cvtColor(orig_image, cv2.COLOR_RGB2BGR)

        tic = time.time()

        # generate image with body parts
        body_parts, all_peaks, subset, candidate = extract_parts(input_image, params, model, model_params)

        print('Processing frame: ', i)
        toc = time.time()
        print('processing time is %.5f' % (toc - tic))
        cc.append(body_parts)

    ret_val, orig_image = cam.read()

    i += 1

...