【发布时间】:2017-10-27 20:04:59
【问题描述】:
我正在使用 wand 和 pytesseract 将 pdf 的文本上传到 django 网站,如下所示:
image_pdf = Image(blob=read_pdf_file, resolution=300)
image_png = image_pdf.convert('png')
req_image = []
final_text = []
for img in image_png.sequence:
img_page = Image(image=img)
req_image.append(img_page.make_blob('png'))
for img in req_image:
txt = pytesseract.image_to_string(PI.open(io.BytesIO(img)).convert('RGB'))
final_text.append(txt)
return " ".join(final_text)
我让它在单独的 ec2 服务器中的 celery 中运行。但是,因为即使是 13.7 mb 的 pdf 文件, image_pdf 也会增长到大约 4gb,它会被 oom 杀手阻止。我不想支付更高的内存,而是想尝试减少 wand 和 ImageMagick 使用的内存。由于它已经是异步的,我不介意增加计算时间。我浏览了这个:http://www.imagemagick.org/Usage/files/#massive,但不确定它是否可以用 wand 实现。另一种可能的解决方法是一次在 wand 中打开 pdf 文件,而不是一次将完整图像放入 RAM。或者,我如何直接使用 python 与 ImageMagick 交互,以便我可以使用这些内存限制技术?
【问题讨论】:
标签: python amazon-ec2 imagemagick wand python-tesseract