Сбой приложения Django после того, как pytesseract считывает автогенерированное изображение из pdf
Когда пользователь загружает файлы в мою систему, я запускаю новый поток, который сканирует их, чтобы найти определенный шаблон, в то время как представление, которое обрабатывает загрузку, возвращается и приложение перенаправляется на главную страницу.
thread = threading.Thread(target=fucn1, args=(arg1,))
thread.start()
В func1(), если файл является PDF, я разделяю его на страницы, а затем сохраняю и анализирую каждую из них, как показано ниже:
def func1(uuid):
documents = Document.objects.filter(model_uuid=uuid)
result = set()
for document in documents:
if extension == 'pdf':
pages = convert_from_path(filepath,500)
for i in range(len(pages)):
page = pages[i]
img_filepath = local_directory + 'page_' + str(i) + '.jpg'
page.save(img_filepath, 'JPEG')
values = analize(img_filepath)
result = set.union(result, values)
else:
values = analize(filepath)
result = set.union(result, values)
def analize(filepath):
pattern = "xxxxxxxxxxxx"
# Load image
img = cv2.imread(filepath)
# Extract text from image
sret = pytesseract.image_to_string(img)
return re.findall(pattern, sret)
Если входной файл уже является изображением (png, jpg, jpeg), деление на страницы опускается, и все работает хорошо. Однако, если файл является PDF, система терпит крах здесь:
sret = pytesseract.image_to_string(img)
Это наводит меня на мысль, что проблема связана с pdf2image или poppler-utils. Однако, эта функция также успешно выполняется, когда входным файлом является изображение.
Apache2 error.log выводит следующее:
От процесса-демона 'process_name' получены усеченные или чрезмерно большие заголовки ответа: /home/ubuntu/proejctname/appname/appname/wsgi.py, referer: https://xxxxxxxx.es/yyyyyyy/
Импорт:
from pdf2image import convert_from_path
import boto3
import cv2
import os
import pytesseract
import re
import sys
import numpy as np
Дополнительная информация:
- Ubuntu 18.04.4 LTS
- Django 3.6.9
- Apache/2.4.29
Спасибо!