MCPcopy
hub / github.com/IPADS-SAI/MobiAgent / _get_paddle_instance

Method _get_paddle_instance

utils/ocr_engine.py:133–167  ·  view source on GitHub ↗

获取全局PaddleOCR实例

(self)

Source from the content-addressed store, hash-verified

131 self._paddle = self._get_paddle_instance()
132
133 def _get_paddle_instance(self) -> Optional[Any]:
134 """获取全局PaddleOCR实例"""
135 global _global_paddle_instance
136 if _global_paddle_instance is None:
137 try:
138 # 判断是否支持GPU
139 use_gpu = paddle and paddle.device.is_compiled_with_cuda()
140 device = "gpu" if use_gpu else "cpu"
141 if paddle:
142 paddle.set_device(device)
143
144 logger.info(f"正在初始化PaddleOCR实例(设备: {device.upper()})...")
145
146 # 合并配置参数
147 config = {
148 "lang": "ch",
149 "use_textline_orientation": True,
150 **self.paddle_config
151 }
152
153 _global_paddle_instance = PaddleOCR(**config)
154 logger.info(f"PaddleOCR初始化成功(使用{device.upper()})")
155
156 except Exception as e:
157 logger.error(f"PaddleOCR初始化失败: {e}")
158 try:
159 logger.info("尝试使用默认参数初始化PaddleOCR...")
160 if paddle:
161 paddle.set_device("cpu")
162 _global_paddle_instance = PaddleOCR(lang="ch")
163 logger.info("PaddleOCR默认参数初始化成功")
164 except Exception as e2:
165 logger.error(f"PaddleOCR默认参数初始化也失败: {e2}")
166 _global_paddle_instance = None
167 return _global_paddle_instance
168
169 def _to_pil(self, img: Any) -> Image.Image:
170 """将输入图像转换为PIL图像对象"""

Callers 1

__init__Method · 0.95

Calls 2

infoMethod · 0.80
errorMethod · 0.80

Tested by

no test coverage detected