fix: fixed issue #531

This commit is contained in:
SWHL committed 2025-09-03 21:58:15 +08:00
1 parent a0bb926500
commit 336e6424a5
17 files changed
+41 -41

No files matched your search

+1 -3
View File
@@ -17,12 +17,10 @@ from typing import List, Optional, Tuple, Union
import numpy as np
from ..utils.logger import Logger
from ..utils.log import logger
from ..utils.utils import save_img
from ..utils.vis_res import VisRes
logger = Logger(logger_name=__name__).get_log()
@dataclass
class TextClsOutput:
+1 -3
View File
@@ -9,12 +9,10 @@ import numpy as np
import pyclipper
from shapely.geometry import Polygon
from ..utils.logger import Logger
from ..utils.log import logger
from ..utils.utils import save_img
from ..utils.vis_res import VisRes
logger = Logger(logger_name=__name__).get_log()
@dataclass
class TextDetOutput:
+2 -2
View File
@@ -21,8 +21,8 @@ import numpy as np
from rapidocr.inference_engine.base import FileInfo, get_engine
from ..utils import Logger
from ..utils.download_file import DownloadFile, DownloadFileInput
from ..utils.log import logger
from ..utils.vis_res import VisRes
from .typings import TextRecInput, TextRecOutput
from .utils import CTCLabelDecode
@@ -35,7 +35,7 @@ DEFAULT_MODEL_PATH = Path(__file__).parent.parent / "models"
class TextRecognizer:
def __init__(self, cfg: Dict[str, Any]):
self.session = get_engine(cfg.engine_type)(cfg)
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
# onnx has inner character, other engine get or download character_dict_path
character, character_dict_path = self.get_character_dict(cfg)
+1 -3
View File
@@ -8,12 +8,10 @@ from typing import List, Optional, Tuple, Union
import numpy as np
from ..utils.logger import Logger
from ..utils.log import logger
from ..utils.utils import save_img
from ..utils.vis_res import VisRes
logger = Logger(logger_name=__name__).get_log()
@dataclass
class TextRecConfig:
+1
View File
@@ -14,6 +14,7 @@ Global:
return_single_char_box: false
font_path: null
log_level: "info" # debug / info / warning / error / critical
EngineConfig:
onnxruntime:
+1 -4
View File
@@ -10,15 +10,13 @@ from typing import Dict, Union
import numpy as np
from omegaconf import OmegaConf
from ..utils.logger import Logger
from ..utils.log import logger
from ..utils.typings import EngineType, ModelType, OCRVersion, TaskType
from ..utils.utils import import_package
cur_dir = Path(__file__).resolve().parent.parent
MODEL_URL_PATH = cur_dir / "default_models.yaml"
logger = Logger(logger_name=__name__).get_log()
def get_engine(engine_type: EngineType):
logger.info("Using engine_name: %s", engine_type.value)
@@ -70,7 +68,6 @@ class FileInfo:
class InferSession(abc.ABC):
model_info = OmegaConf.load(MODEL_URL_PATH)
DEFAULT_MODEL_PATH = cur_dir / "models"
logger = Logger(logger_name=__name__).get_log()
@abc.abstractmethod
def __init__(self, config):
@@ -10,14 +10,14 @@ import numpy as np
from onnxruntime import GraphOptimizationLevel, InferenceSession, SessionOptions
from ...utils import DownloadFile, DownloadFileInput
from ...utils.logger import Logger
from ...utils.log import logger
from ..base import FileInfo, InferSession
from .provider_config import ProviderConfig
class OrtInferSession(InferSession):
def __init__(self, cfg: Dict[str, Any]):
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
# support custom session (PR #451)
session = cfg.get("session", None)
@@ -7,7 +7,7 @@ from typing import Any, Dict, List, Sequence, Tuple
from onnxruntime import get_available_providers, get_device
from ...utils.logger import Logger
from ...utils.log import logger
class EP(Enum):
@@ -19,7 +19,7 @@ class EP(Enum):
class ProviderConfig:
def __init__(self, engine_cfg: Dict[str, Any]):
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
self.had_providers: List[str] = get_available_providers()
self.default_provider = self.had_providers[0]
+2 -2
View File
@@ -10,15 +10,15 @@ import numpy as np
from omegaconf import DictConfig
from openvino.runtime import Core
from ..utils import Logger
from ..utils.download_file import DownloadFile, DownloadFileInput
from ..utils.log import logger
from .base import FileInfo, InferSession
class OpenVINOInferSession(InferSession):
def __init__(self, cfg: DictConfig):
super().__init__(cfg)
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
core = Core()
+13 -6
View File
@@ -12,14 +12,14 @@ from omegaconf.errors import ConfigKeyError
from paddle import inference
from ..utils.download_file import DownloadFile, DownloadFileInput
from ..utils.logger import Logger
from ..utils.log import logger
from ..utils.typings import OCRVersion
from .base import FileInfo, InferSession
class PaddleInferSession(InferSession):
def __init__(self, cfg, mode: Optional[str] = None) -> None:
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
self.mode = mode
# 设置设备特定的环境变量
@@ -43,7 +43,12 @@ class PaddleInferSession(InferSession):
envs = {}
_set_envs(envs)
elif not any([engine_cfg.get(f"use_{dev}", False) for dev in ["cuda", "npu", "xpu", "mlu", "dcu", "gcu"]]):
elif not any(
[
engine_cfg.get(f"use_{dev}", False)
for dev in ["cuda", "npu", "xpu", "mlu", "dcu", "gcu"]
]
):
envs = {}
_set_envs(envs)
@@ -109,11 +114,11 @@ class PaddleInferSession(InferSession):
return pdmodel_path, pdiparams_path
def download_model(
self, model_info, default_model_dir: str, model_file_name: str
self, model_info, default_model_dir: str, model_file_name: str
) -> Path:
model_file_url = f"{default_model_dir}/{model_file_name}"
model_file_path = (
self.DEFAULT_MODEL_PATH / Path(default_model_dir).name / model_file_name
self.DEFAULT_MODEL_PATH / Path(default_model_dir).name / model_file_name
)
DownloadFile.run(
DownloadFileInput(
@@ -191,7 +196,9 @@ class PaddleInferSession(InferSession):
infer_num_threads = cfg.engine_cfg.get("cpu_math_library_num_threads", -1)
if infer_num_threads != -1 and 1 <= infer_num_threads <= cpu_nums:
infer_opts.set_cpu_math_library_num_threads(infer_num_threads)
self.logger.info(f"Set CPU math library threads to: {infer_num_threads}")
self.logger.info(
f"Set CPU math library threads to: {infer_num_threads}"
)
if hasattr(infer_opts, "enable_new_ir"):
infer_opts.enable_new_ir(True)
+2 -2
View File
@@ -9,7 +9,7 @@ from omegaconf import OmegaConf
from ..networks.architectures.base_model import BaseModel
from ..utils.download_file import DownloadFile, DownloadFileInput
from ..utils.logger import Logger
from ..utils.log import logger
from .base import FileInfo, InferSession
root_dir = Path(__file__).resolve().parent.parent
@@ -18,7 +18,7 @@ DEFAULT_CFG_PATH = root_dir / "networks" / "arch_config.yaml"
class TorchInferSession(InferSession):
def __init__(self, cfg) -> None:
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
model_path = cfg.get("model_path", None)
if model_path is None:
+6 -3
View File
@@ -3,6 +3,7 @@
# @Contact: liekkaskono@163.com
import argparse
import copy
import logging
from pathlib import Path
from typing import Any, Dict, List, Optional, Tuple, Union
@@ -17,7 +18,6 @@ from .ch_ppocr_rec import TextRecInput, TextRecognizer, TextRecOutput
from .cli import check_install, generate_cfg
from .utils import (
LoadImage,
Logger,
RapidOCROutput,
VisRes,
add_round_letterbox,
@@ -25,6 +25,7 @@ from .utils import (
get_rotate_crop_image,
resize_image_within_bounds,
)
from .utils.log import logger
from .utils.parse_parameters import ParseParams
from .utils.typings import LangRec
@@ -37,9 +38,11 @@ class RapidOCR:
self, config_path: Optional[str] = None, params: Optional[Dict[str, Any]] = None
):
cfg = self._load_config(config_path, params)
self._initialize(cfg)
self.logger = Logger(logger_name=__name__).get_log()
logger.setLevel(logging.getLevelName(cfg.Global.log_level.upper()))
self.logger = logger
self._initialize(cfg)
def _load_config(
self, config_path: Optional[str], params: Optional[Dict[str, Any]]
-1
View File
@@ -3,7 +3,6 @@
# @Contact: liekkaskono@163.com
from .download_file import DownloadFile, DownloadFileException, DownloadFileInput
from .load_image import LoadImage, LoadImageError
from .logger import Logger
from .output import RapidOCROutput
from .parse_parameters import ParseParams
from .process_img import (
@@ -7,7 +7,7 @@ import colorlog
class Logger:
def __init__(self, log_level=logging.DEBUG, logger_name=None):
def __init__(self, log_level=logging.INFO, logger_name=None):
self.logger = logging.getLogger(logger_name)
self.logger.setLevel(log_level)
self.logger.propagate = False
@@ -35,3 +35,6 @@ class Logger:
def get_log(self):
return self.logger
logger = Logger(log_level=logging.INFO).get_log()
+1 -3
View File
@@ -6,14 +6,12 @@ from typing import Any, Dict, List, Optional, Tuple, Union
import numpy as np
from .logger import Logger
from .log import logger
from .to_json import ToJSON
from .to_markdown import ToMarkdown
from .utils import save_img
from .vis_res import VisRes
logger = Logger(logger_name=__name__).get_log()
@dataclass
class RapidOCROutput:
+2 -2
View File
@@ -13,7 +13,7 @@ from PIL import Image, ImageDraw, ImageFont
from .download_file import DownloadFile, DownloadFileInput
from .load_image import LoadImage
from .logger import Logger
from .log import logger
from .typings import LangRec
root_dir = Path(__file__).resolve().parent.parent
@@ -31,7 +31,7 @@ class VisRes:
lang_type: Optional[LangRec] = None,
font_path: Optional[str] = None,
):
self.logger = Logger(logger_name=__name__).get_log()
self.logger = logger
self.text_score = text_score
self.load_img = LoadImage()
-2
View File
@@ -16,12 +16,10 @@ sys.path.append(str(root_dir))
from rapidocr import EngineType, LangRec, LoadImageError, ModelType, RapidOCR
from rapidocr.main import main
from rapidocr.utils.logger import Logger
from rapidocr.utils.typings import OCRVersion
tests_dir = root_dir / "tests" / "test_files"
img_path = tests_dir / "ch_en_num.jpg"
logger = Logger(logger_name=__name__).get_log()
@pytest.fixture()