Обработка кадров видео с использованием Numpy - PullRequest
0 голосов
/ 20 марта 2020

У меня 60 видео, каждый из которых содержит около 100 кадров в 60 разных папках. Я пытаюсь объединить изображения в следующем порядке:

  • кадр 5
  • кадр 4
  • кадр 3
  • кадр 2
  • кадр 1

в одно изображение (5, 224, 224, 3)

Я написал следующий код для его реализации:

for i in onlyfiles:
    print(i)
    frame_folder_name = i
    frame_folder_path = path_dir +"/"+ i
    frame_files = [f for f in listdir(frame_folder_path) if isfile(join(frame_folder_path, f))]
    count_image = len(frame_files)
    l = frame_folder_name.split('_')[-1]
    y = y+count_image-5+1
    labels[o:y-1]=int(l)
    # print(y)
    o=y


    for i in range(1,count_image):
        if i >= 5:
          # print('*')
          for k in range(i,i-5,-1):
            # print(k)
            img_path = frame_folder_path+"/"+ str(k)+".png"
            img = image.load_img(img_path, target_size=(224, 224))
            x = image.img_to_array(img)
            x = np.expand_dims(x, axis=0)
            x = preprocess_input(x)
            x_c = np.append(x_c, x);
    # np.save('5_concat_images.npy',x_c)      # print('*')
print((labels))
print(np.shape(x_c))  

Я добавляю изображения в x_c, а затем изменяю их размер до (labels, 5,224,224,3), но мой баран падает во время обработки. Я использую Google Collab с 25 ГБ ОЗУ, но все еще не могу предварительно обработать его. Любой способ предварительной обработки этих данных. Я слышал о генераторах Keras, но не уверен, как использовать его в этом конкретном случае c! Пожалуйста, помогите мне. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...