fix(ocr): increase memory limit to 10GB, reduce render DPI to 200
Surya 0.17 models use ~5GB idle. At 300 DPI on a multi-page PDF, page images + inference tensors push past the 6GB limit, causing OOM kills during 'Detecting bboxes'. Increased to 10GB and reduced render DPI to 200 (still sufficient for OCR, uses ~44% less memory). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -78,8 +78,8 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: archive-ocr
|
container_name: archive-ocr
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
mem_limit: 6g
|
mem_limit: 10g
|
||||||
memswap_limit: 6g
|
memswap_limit: 10g
|
||||||
volumes:
|
volumes:
|
||||||
- ocr_models:/app/models
|
- ocr_models:/app/models
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -92,8 +92,9 @@ async def _download_and_convert_pdf(url: str) -> list[Image.Image]:
|
|||||||
|
|
||||||
for page_idx in range(len(pdf)):
|
for page_idx in range(len(pdf)):
|
||||||
page = pdf[page_idx]
|
page = pdf[page_idx]
|
||||||
# Render at 300 DPI for good OCR quality
|
# Render at 200 DPI — balances OCR quality vs memory usage
|
||||||
bitmap = page.render(scale=300 / 72)
|
# (Surya 0.17 models use ~5GB idle; 300 DPI causes OOM on multi-page docs)
|
||||||
|
bitmap = page.render(scale=200 / 72)
|
||||||
pil_image = bitmap.to_pil()
|
pil_image = bitmap.to_pil()
|
||||||
images.append(pil_image)
|
images.append(pil_image)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user