From 79a9bb0128193554352e3ef3e84595b295c263b9 Mon Sep 17 00:00:00 2001 From: Robert Sachunsky Date: Sat, 18 Jul 2026 00:59:57 +0200 Subject: [PATCH] cnn-rnn-ocr: increase default batch size and VRAM limit --- src/eynollah/eynollah_ocr.py | 2 +- src/eynollah/model_zoo/model_zoo.py | 2 +- src/eynollah/predictor.py | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/eynollah/eynollah_ocr.py b/src/eynollah/eynollah_ocr.py index fe0bb1f..748d6a2 100644 --- a/src/eynollah/eynollah_ocr.py +++ b/src/eynollah/eynollah_ocr.py @@ -83,7 +83,7 @@ class Eynollah_ocr(Eynollah): self.logger = logger if logger else logging.getLogger('eynollah.ocr') self.min_conf_value_of_textline_text = min_conf_value_of_textline_text - self.b_s = batch_size or 2 if tr_ocr else 8 + self.b_s = batch_size or (2 if tr_ocr else 64) self.model_zoo = model_zoo self.setup_models(device=device) diff --git a/src/eynollah/model_zoo/model_zoo.py b/src/eynollah/model_zoo/model_zoo.py index 5a0a867..f230a31 100644 --- a/src/eynollah/model_zoo/model_zoo.py +++ b/src/eynollah/model_zoo/model_zoo.py @@ -24,7 +24,7 @@ MODEL_VRAM_LIMITS = { "region_fl_np": 1756, "table": 1818, "reading_order": 632, - "ocr": 850, + "ocr": 2400, # 850 for bs 8 } class EynollahModelZoo: diff --git a/src/eynollah/predictor.py b/src/eynollah/predictor.py index 2d892c7..0641e38 100644 --- a/src/eynollah/predictor.py +++ b/src/eynollah/predictor.py @@ -1,5 +1,5 @@ from contextlib import ExitStack -from typing import List, Dict, Tuple, Union +from typing import List, Dict, Sequence, Tuple, Union import logging import logging.handlers import multiprocessing as mp @@ -41,10 +41,10 @@ class Predictor(mp.context.SpawnProcess): def input_shape(self): return self({}) - def predict(self, data: ArrayT, verbose=0) -> ArrayT: + def predict(self, data: Union[Sequence[ArrayT], ArrayT], verbose=0) -> Union[Sequence[ArrayT], ArrayT]: return self(data) - def __call__(self, data: Union[ArrayT, Dict]) -> Union[ArrayT, Tuple]: + def __call__(self, data: Union[Sequence[ArrayT], ArrayT, Dict]) -> Union[ArrayT, Tuple]: # unusable as per python/cpython#79967 #with self.jobid.get_lock(): # would work, but not public: