互联网资讯 / 人工智能 · 2023年12月11日 0

基于深度学习的OCR技术实现PDF转文本,告别「复制+粘贴」

传统的讲座通常伴随着一组 pdf 幻灯片。一般来说,想要对此类讲座做笔记,需要从 pdf 复制、粘贴很多内容。

最近,来自 K1 DiGital 的高级机器学习工程师 LUCas SoaRes 一直在尝试通过使用 OCR(光学字符识别)自动转录 pdf 幻灯片,以便直接在 MaRkdown 文件中操作它们的内容,从而避免手动复制和粘贴 pdf 内容,实现这一过程的自动化。

左为项目作者 LUCas SoaRes。

项目地址:https://Github.coM/EnkRateiaLUCca/ocR_foR_tRanscRiBing_pdf_slides

为什么不使用传统的 pdf 转文本工具呢?

LUCas SoaRes 发现传统工具往往会带来更多的问题,需要花时间解决。他曾经尝试使用传统的 Python 软件包,但是遇到了很多问题(例如必须使用复杂的正则表达式模式解析最终输出等),因此决定尝试使用目标检测和 OCR 来解决。

基本过程可分为以下步骤:

将 pdf 转换为图片; 检测和识别图像中的文本; 展示示例输出。

基于深度学习的 OCR 将 pdf 转录为文本

将 pdf 转换为图像

SoaRes 使用的 pdf 幻灯片来自于 David SilveR 的增强学习(参见以下 pdf 幻灯片地址)。使用「pdf2image」包将每张幻灯片转换为 png 图像格式。

地址:https://www.davidsilveR.uk/WP-content/uploads/2020/03/intRo_RL.pdf

经过处理后,所有的 pdf 幻灯片都转换成 png 格式的图像:

检测和识别图像中的文本

为了检测和识别 png 图像中的文本,SoaRes 使用 ocR.pyTorch 库中的文本检测器。按照说明下载模型并将模型保存在 checkpoints 文件夹中。

ocR.pyTorch 库地址:https://Github.coM/couRao/ocR.pyTorch

设置输入和输出文件夹,接着遍历所有输入图像(转换后的 pdf 幻灯片),然后通过 single_pic_Proc() 函数运行 OCR 模块中的检测和识别模型,最后将输出保存到输出文件夹。

其中检测继承(inheRIT)了 PyTorch CTPN 模型,识别继承了 PyTorch CRNN 模型,两者都存在于 OCR 模块中。

示例输出

下图左为原始 pdf 幻灯片,图右为转录后的输出文本,转录后的准确率非常高。

文本识别输出如下:

通过上述方法,最终你可以得到一个非常强大的工具来转录各种文档,从检测和识别手写笔记到检测和识别照片中的随机文本。拥有自己的 OCR 工具来处理一些文本内容,这比依赖外部软件来转录文档要好的多。