私はそうのようなDjangoのウェブサイトにアップロードされたPDFファイルのテキストを取得するために杖とpytesseractを使用しています:ワンドのメモリ使用量を減らすには?
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サーバにセロリで実行されています。しかし、image_pdfは13.7 MB pdfファイルでも約4 GBに増加するため、oom killerによって停止されています。より高いラムを支払う代わりに、私はワンドとImageMagickが使用するメモリを減らそうとします。それはすでに非同期なので、計算時間の増加は気にしません。私はこれをスキップしました:http://www.imagemagick.org/Usage/files/#massiveですが、ワンドで実装できるかどうかはわかりません。もう一つの可能な修正は、一度に全画像をRAMに入れるのではなく、一度に1ページずつPDFを開く方法です。あるいは、私はこれらのメモリ制限技術を使うことができるように、Pythonを使ってImageMagickと直接インターフェースすることができますか?