"""OCR 工具 基于 RapidOCR(ONNXRuntime 后端)的图片文字提取工具。 模块级持有单例引擎,导入时完成初始化,后续直接复用。 """ from rapidocr import RapidOCR # 模块级单例:导入时初始化一次,全局复用 # 初始化配置(RapidOCR 3.x 用 params 字典,key 为配置项点路径): # - 关闭方向分类(Cls):公告图基本都是正的,省一道计算 # - 其余检测/识别/后端配置沿用 RapidOCR 默认值,避免和新版枚举参数冲突 _engine = RapidOCR( params={ "Global.use_cls": False, "Global.text_score": 0.5, } ) def ocr(image: bytes) -> str: """识别图片中的文字。 Args: image: 图片的字节数据(爬虫下载下来的图片流,无需落盘)。 Returns: 识别出的文字,多段以换行拼接为一段文本;没有文字或识别失败时返回空字符串。 """ result = _engine(image) # .txts 是识别出的多段文字(元组),没识别到时可能为 None 或空 if not result or not result.txts: return "" return "\n".join(result.txts)