Kernel Memory 中使用 PaddleSharp OCR

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

Kernel Memory支持使用OCR技术识别上传的图片中的文字。可以使用Azure Document Intelligence或自定义的OCR服务,如PaddleSharp OCR。在构建Kernel Memory时注册相应的OCR服务,然后可以自动调用OCR服务进行图片处理。代码实现已上传至GitHub。

🔎

延伸解读

OCR 在 Kernel Memory 中的角色

Kernel Memory 处理文档时,图片可作为文档上传,但需 OCR 技术提取文字才能进一步索引和问答。文章指出官方默认库集成了 Azure Document Intelligence,只需在构建时调用 WithAzureAIDocIntel 方法即可启用。这为已有 Azure 服务的用户提供了便捷路径,但若没有 Azure 服务,则需考虑自定义 OCR 方案。

自定义 OCR 的接入方式

文章以 PaddleSharp 为例,说明自定义 OCR 需实现 IOcrEngine 接口,该接口仅包含 ExtractTextFromImageAsync 方法。实现类 PaddleSharpOcrEngine 在方法内使用 PaddleOcrAll 运行识别并返回文本。注册时通过 AddSingleton<IOcrEngine> 将自定义引擎加入依赖注入容器,之后 Kernel Memory 处理图片便会自动调用该服务。

PaddleSharp 的依赖与平台限制

使用 PaddleSharp 需安装多个 NuGet 包,包括 Sdcb.PaddleInference、Sdcb.PaddleOCR、Sdcb.PaddleInference.runtime.win64.mkl、OpenCvSharp4.runtime.win 和 Sdcb.PaddleOCR.Models.Local。其中 runtime.win64.mkl 和 runtime.win 表明当前示例依赖 Windows 64 位环境,若在其他平台部署可能需要调整运行时包。

模型选择与代码参考

示例中注册时使用了 LocalFullModels.EnglishV3 模型,这意味着默认识别英文文本。若需识别其他语言,可能需要更换对应模型。文章提供了完整的 GitHub 仓库链接,包含实现代码和参考链接,读者可据此快速集成或进一步调整。

❓

Q&A

Kernel Memory 处理图片文档时如何识别文字?

Kernel Memory 使用 OCR 技术识别图片中的文字。可以注册 Azure Document Intelligence 或自定义 OCR 服务(如 PaddleSharp OCR)来实现。

如何在 Kernel Memory 中注册 Azure Document Intelligence 服务?

在构建 Kernel Memory 时调用 WithAzureAIDocIntel 方法,并传入 AzureAIDocIntelConfig 参数即可。

没有 Azure 服务,可以用什么 OCR 替代?

可以使用自定义 OCR 服务,例如 PaddleSharp OCR。需要实现 IOcrEngine 接口,并注册到 Kernel Memory 中。

实现自定义 OCR 服务需要满足什么接口?

需要实现 IOcrEngine 接口,该接口只包含一个 ExtractTextFromImageAsync 方法,用于从图片流中提取文本。

使用 PaddleSharp OCR 需要安装哪些 NuGet 包?

需要安装 Sdcb.PaddleInference、Sdcb.PaddleOCR、Sdcb.PaddleInference.runtime.win64.mkl、OpenCvSharp4.runtime.win 和 Sdcb.PaddleOCR.Models.Local。

如何将 PaddleSharp OCR 集成到 Kernel Memory 中?

实现 PaddleSharpOcrEngine 类(实现 IOcrEngine 接口),然后在构建 Kernel Memory 时通过 AddSingleton<IOcrEngine> 注册该实例。之后处理图片时会自动调用 PaddleSharp OCR。

🏷️

标签

➡️

继续阅读