У меня 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! Пожалуйста, помогите мне. Спасибо