python - 如何加速图像的数据增强

标签 python opencv computer-vision

我正在使用 python 中的 opencv2 进行数据扩充。我使用的数据集包含大约 4000 张 96x96 单 channel 图像。

我正在应用一系列平移和缩放的仿射变换 cv2.warpAffine。但是我注意到,随着代码遍历数据集,过程变得越来越慢。下面的旋转变换代码 - 我在每张图片上调用它。

def augment_rotation(depth):
augment_rotate = []
rows,cols = depth.shape
for i in range(-180,181):
    M = cv2.getRotationMatrix2D(((cols-1)/2.0,(rows-1)/2.0),i,1)
    augment_rotate.append(cv2.warpAffine(depth,M,(cols,rows)))
return augment_rotate

这不仅限于我的计算机,因为我在其他计算机上尝试过并遇到了同样的问题。知道如何解决这个问题或让它更快,这样我就不必等待数小时来执行增强吗?

最佳答案

我遇到了 python 内置的 joblib 库。它是为此目的而设计的。根据the documentation joblib 使用后端的 multiprocessing 库帮助并行执行循环。

这些文档说明了一个数字示例,用于对数字列表并行执行简单的数学运算。我能够将此功能扩展到处理图像。作为示例演示,我选择对桌面上的所有图像执行加权求和 withwithout joblib

事实证明,对于总大小为 58Mb 的 14 张图像,我得到了以下信息:

('Using Joblib : ', 0.09400010108947754)
('Without Joblib : ', 15.386000156402588)

Here is the write-up for the answer I wrote recently .我相信你也可以用它来增强体质!!

尝试一下,让我知道它是如何工作的!

关于python - 如何加速图像的数据增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51351315/

相关文章:

python - 在 Google App Engine Python 2.7 上安装 opencv

qt4 - Qt programname.exe 退出,代码为 -1073741819 我该如何解决这个问题?

algorithm - 冲浪指标

python - 使用 opencv - python 检测 W2 中的单个框

debugging - 退出显示图像OpenCV时堆损坏

python - 如何使用 Python OpenCV 查找单词并将其裁剪成单个图像?

python - 如何在 TensorFlow 中获取张量中元素的计数?

python - 带有新 key python的boto3 put_object

python - 在 python numpy 数组中指定每个对象的数据类型

python - unicode在哪里?