初始化OCR引擎 Raises: ModelLoadError: 当初始化失败时
(self, **kwargs)
| 54 | self.initialize() |
| 55 | |
| 56 | def initialize(self, **kwargs) -> None: |
| 57 | """ |
| 58 | 初始化OCR引擎 |
| 59 | |
| 60 | Raises: |
| 61 | ModelLoadError: 当初始化失败时 |
| 62 | """ |
| 63 | try: |
| 64 | if self.use_import_onnx: |
| 65 | # 加载自定义模型 |
| 66 | self.session, charset_info = self.model_loader.load_custom_model( |
| 67 | self.import_onnx_path, self.charsets_path |
| 68 | ) |
| 69 | |
| 70 | # 设置模型配置 |
| 71 | self.charset_manager.charset = charset_info['charset'] |
| 72 | |
| 73 | # 初始化有效字符索引(使用完整字符集) |
| 74 | self.charset_manager._update_valid_indices() |
| 75 | |
| 76 | self.word = charset_info['word'] |
| 77 | self.resize = charset_info['image'] |
| 78 | self.channel = charset_info['channel'] |
| 79 | else: |
| 80 | # 加载默认模型 |
| 81 | self.session = self.model_loader.load_ocr_model(self.old, self.beta) |
| 82 | |
| 83 | # 加载默认字符集 |
| 84 | self.charset_manager.load_default_charset(self.old, self.beta) |
| 85 | |
| 86 | # 初始化有效字符索引(使用完整字符集) |
| 87 | self.charset_manager._update_valid_indices() |
| 88 | |
| 89 | # 设置默认配置 |
| 90 | self.word = False |
| 91 | self.resize = [64, 64] # 默认尺寸 |
| 92 | self.channel = 1 |
| 93 | |
| 94 | self.is_initialized = True |
| 95 | |
| 96 | except Exception as e: |
| 97 | raise ModelLoadError(f"OCR引擎初始化失败: {str(e)}") from e |
| 98 | |
| 99 | def predict(self, image: Union[bytes, str, Image.Image], |
| 100 | png_fix: bool = False, probability: bool = False, |
no test coverage detected