如何加快图像的数据扩充



我正在python中使用opencv2进行数据扩充。我使用的数据集由大约4000个96x96单通道图像组成。

我正在使用CCD_ 1。然而,我注意到,随着代码在数据集中迭代,过程变得越来越慢。下面的旋转变换代码-我称之为每个图像。

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

这并不局限于我的电脑,因为我在其他电脑上尝试过,也遇到过同样的问题。你知道如何解决这个问题或让它更快,这样我就不必等上几个小时才能执行扩充了吗?

我发现了内置的joblib库python。它就是为这个目的而设计的。根据文档,joblib有助于使用后端的multiprocessing库并行执行循环。

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

事实证明,对于14张58Mb集体大小的图像,我得到了以下结果:

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

这是我最近写的答案。我相信你也可以用它来增强!!

试试看,让我知道它是如何工作的!

最新更新