小编Spa*_*das的帖子

每秒提取文件夹中所有视频的帧

我试图每秒提取一个视频帧,同时在一个文件夹中有多个视频。我让它适用于像这样的 1 个视频,但我认为我搞乱了所有视频的循环。以下是 1 个有效视频的代码。

import cv2
pathOut = r"C:/Users/Me/Out/"
vidcap = cv2.VideoCapture(r'C:\Me\Desktop\test.mp4');
count = 0
success = True
while success:
    success,image = vidcap.read()
    print('read a new frame:',success)
    if count%30 == 0 :
         cv2.imwrite(pathOut + 'frame%d.jpg'%count,image)
    count+=1
Run Code Online (Sandbox Code Playgroud)

对于所有视频的循环,我都是这样制作的。

import os
import cv2
pathOut = r"C:/Users/Me/Out/"
count = 0
success = True
counter = 1
listing = os.listdir(r'C:/Users/Me/videos/train')
for vid in listing:
    vid = r"C:/Users/Me/videos/train/"+vid
    cap = cv2.VideoCapture(vid)
    count = 0
    counter += 1
    while success:
        success,image = cap.read()
        print('read a …
Run Code Online (Sandbox Code Playgroud)

python opencv loops ffmpeg frames

6
推荐指数
1
解决办法
9210
查看次数

使用 predict_generator 和 VGG16 的内存错误

我正在尝试在我自己的数据集上应用迁移学习,该数据集存在于 33.000 个训练图像(总共 1.4GB)中。使用 Keras (2.2.0) 中的 predict_generator 进行预测时,我遇到了内存错误。在查看我的任务管理器时,我可以看到内存缓慢地运行到 Tesla K80 (1GPU) 的 5GB 最大 VRAM。我正在使用以下代码:

#Train
print('train dataset:')
datagen = ImageDataGenerator(preprocessing_function=preprocess_input)
train_generator = datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_width, img_height),
    batch_size=batch_size,
    class_mode=None,
    shuffle=False)

num_classes = len(train_generator.class_indices)
nb_train_samples = len(train_generator.filenames)
predict_size_train = int(math.ceil(nb_train_samples / batch_size))
VGG16_bottleneck_features_train = model.predict_generator(train_generator, predict_size_train, verbose=1)
np.save('XVGG16_bottleneck_features_train.npy', VGG16_bottleneck_features_train)
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,但我似乎无法让它为我工作。我已经阅读了许多建议使用批处理的解决方案,但我认为我的 predict_generator 已经以批处理形式接收数据?这里有没有人可以验证这对我的系统不起作用,还是有其他可能的解决方案?

python memory machine-learning computer-vision keras

5
推荐指数
1
解决办法
750
查看次数