【发布时间】:2014-02-16 09:13:43
【问题描述】:
我正在处理一个我处理的项目:
- 70,000 张 JPG 图片,总计 1 GB
- 每个文件约为 15kb。
- 每张图片都是 424x424。
我目前处理这些文件的解决方案是拍摄每个图像,将其裁剪为 150x150,然后将其保存在 NumPy memmap 数组中。我最终得到 1 个尺寸为 70,000 x 150 x 150 x 3(彩色图像)的大型 memmap 数组文件。
我的下一步是遍历这个 memmap 数组并随机采样图像块。然而,我的代码目前运行非常缓慢,最烦人的是,它只使用了大约 10% 的 CPU,HD 读取速度为 1-5 MB/秒。这可能甚至低于不预先计算裁剪的 numpy memmap 数组并每次读取 JPG。
我可以做些什么来更好地利用这里的系统资源?
系统信息
- Mac OS X
- 带硬盘的 Macbook Pro
谢谢!
【问题讨论】:
-
如果您只需要图像的随机子集,为什么不随机选择原始文件并只处理它们呢?此外,您可以启动一个后台线程,它将您的原始图像调整为 150x150 大小。
-
您使用什么操作系统?我猜你的操作系统在 memmap 后端文件上发出随机 I/O。
-
@nodakai 已编辑额外信息
标签: python image-processing numpy jpeg