我使用魔杖,pytesseract獲得上傳到一個Django的網站,像這樣的PDF文本:如何減少魔杖內存使用量?
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服務器。但是,由於即使是一個13.7 MB的pdf文件,image_pdf也會增長到大約4 GB,因此它被OOM殺手所阻止。我不想支付更高的內存,我想盡量減少魔杖和ImageMagick使用的內存。由於它已經是異步的,我不介意增加計算時間。我已經剔除了這個:http://www.imagemagick.org/Usage/files/#massive,但我不確定它是否可以用魔杖執行。另一種可能的解決方法是一次一頁地打開一頁pdf,而不是一次將完整的圖像放入RAM中。另外,我怎麼能直接使用Python的ImageMagick接口,以便我可以使用這些內存限制技術?