fix: update PaddleOCR 3.x API - replace deprecated gpu_mem parameter with device parameter
PaddleOCR 3.x changed the API:
- Removed: use_gpu=True/False and gpu_mem=<value>
- Added: device="gpu:0" or device="cpu"
Changes:
- Updated get_ocr_engine() to use device parameter
- Updated get_structure_engine() to use device parameter
- GPU mode: device="gpu:{gpu_device_id}"
- CPU mode: device="cpu"
This fixes the "ValueError: Unknown argument: gpu_mem" runtime error.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -170,11 +170,12 @@ class OCRService:
|
|||||||
logger.info(f"Initializing PaddleOCR engine for language: {lang} (GPU: {self.use_gpu})")
|
logger.info(f"Initializing PaddleOCR engine for language: {lang} (GPU: {self.use_gpu})")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# PaddleOCR 3.x uses 'device' parameter instead of 'use_gpu' and 'gpu_mem'
|
||||||
|
device = f"gpu:{settings.gpu_device_id}" if self.use_gpu else "cpu"
|
||||||
self.ocr_engines[lang] = PaddleOCR(
|
self.ocr_engines[lang] = PaddleOCR(
|
||||||
use_angle_cls=True,
|
use_angle_cls=True,
|
||||||
lang=lang,
|
lang=lang,
|
||||||
use_gpu=self.use_gpu,
|
device=device,
|
||||||
gpu_mem=int(settings.gpu_memory_fraction * 1000) if self.use_gpu else 500,
|
|
||||||
)
|
)
|
||||||
logger.info(f"PaddleOCR engine ready for {lang} ({'GPU' if self.use_gpu else 'CPU'} mode)")
|
logger.info(f"PaddleOCR engine ready for {lang} ({'GPU' if self.use_gpu else 'CPU'} mode)")
|
||||||
|
|
||||||
@@ -186,7 +187,7 @@ class OCRService:
|
|||||||
self.ocr_engines[lang] = PaddleOCR(
|
self.ocr_engines[lang] = PaddleOCR(
|
||||||
use_angle_cls=True,
|
use_angle_cls=True,
|
||||||
lang=lang,
|
lang=lang,
|
||||||
use_gpu=False,
|
device="cpu",
|
||||||
)
|
)
|
||||||
logger.info(f"PaddleOCR engine ready for {lang} (CPU mode - fallback)")
|
logger.info(f"PaddleOCR engine ready for {lang} (CPU mode - fallback)")
|
||||||
else:
|
else:
|
||||||
@@ -205,6 +206,8 @@ class OCRService:
|
|||||||
logger.info(f"Initializing PP-StructureV3 engine (GPU: {self.use_gpu})")
|
logger.info(f"Initializing PP-StructureV3 engine (GPU: {self.use_gpu})")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# PaddleOCR 3.x uses 'device' parameter instead of 'use_gpu' and 'gpu_mem'
|
||||||
|
device = f"gpu:{settings.gpu_device_id}" if self.use_gpu else "cpu"
|
||||||
self.structure_engine = PPStructureV3(
|
self.structure_engine = PPStructureV3(
|
||||||
use_doc_orientation_classify=False,
|
use_doc_orientation_classify=False,
|
||||||
use_doc_unwarping=False,
|
use_doc_unwarping=False,
|
||||||
@@ -212,8 +215,7 @@ class OCRService:
|
|||||||
use_table_recognition=True,
|
use_table_recognition=True,
|
||||||
use_formula_recognition=True,
|
use_formula_recognition=True,
|
||||||
layout_threshold=0.5,
|
layout_threshold=0.5,
|
||||||
use_gpu=self.use_gpu,
|
device=device,
|
||||||
gpu_mem=int(settings.gpu_memory_fraction * 1000) if self.use_gpu else 500,
|
|
||||||
)
|
)
|
||||||
logger.info(f"PP-StructureV3 engine ready ({'GPU' if self.use_gpu else 'CPU'} mode)")
|
logger.info(f"PP-StructureV3 engine ready ({'GPU' if self.use_gpu else 'CPU'} mode)")
|
||||||
|
|
||||||
@@ -228,7 +230,7 @@ class OCRService:
|
|||||||
use_table_recognition=True,
|
use_table_recognition=True,
|
||||||
use_formula_recognition=True,
|
use_formula_recognition=True,
|
||||||
layout_threshold=0.5,
|
layout_threshold=0.5,
|
||||||
use_gpu=False,
|
device="cpu",
|
||||||
)
|
)
|
||||||
logger.info("PP-StructureV3 engine ready (CPU mode - fallback)")
|
logger.info("PP-StructureV3 engine ready (CPU mode - fallback)")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user