深度学习OCR技术实现PDF转文本
在传统讲座中,常常会使用一系列的PDF幻灯片。通常情况下,要对这些讲座做笔记,就需要从PDF中复制和粘贴大量内容。
近期,K1 DiGital的高级机器学习工程师LUCas SoaRes致力于通过光学字符识别(OCR)技术自动转录PDF幻灯片,以便能够直接在Markdown文件中处理这些内容,避免了繁琐的手动复制和粘贴,从而实现了这一过程的自动化。
左侧为项目作者LUCas SoaRes。
项目地址:GitHub
为何不采用传统的PDF转文本工具?
LUCas SoaRes发现,传统工具往往会带来许多问题,需要耗费时间来解决。他尝试过一些传统的Python软件包,但遇到了诸多困难,例如需要复杂的正则表达式来解析输出,因此决定探索使用目标检测和OCR技术来解决这一问题。
基本流程概述
整个过程可以分为以下几个步骤:
- 将PDF转换为图片;
- 检测和识别图像中的文本;
- 展示示例输出。
基于深度学习的OCR实现PDF转文本
将PDF转换为图像
SoaRes使用的PDF幻灯片来自David SilveR的增强学习课程(参见以下PDF幻灯片地址)。他利用“pdf2image”包将每张幻灯片转换为PNG图像格式。
地址:PDF幻灯片
经过处理后,所有的PDF幻灯片均已转换为PNG格式的图像:
检测和识别图像中的文本
为了实现PNG图像中的文本检测和识别,SoaRes使用了OCR.pyTorch库中的文本检测器。根据说明下载模型并将其保存在checkpoints文件夹中。
OCR.pyTorch库地址:GitHub
在设置好输入和输出文件夹后,他遍历所有转换后的输入图像,然后通过single_pic_Proc()函数运行OCR模块中的检测和识别模型,最终将输出保存至输出文件夹。
其中,检测部分继承了PyTorch CTPN模型,而识别部分则继承了PyTorch CRNN模型,二者均存在于OCR模块中。
示例输出
下图左侧为原始PDF幻灯片,右侧为转录后的文本输出,转录的准确率非常高。
文本识别输出示例如下:
通过上述方法,最终可以获得一个强大的工具来转录各种文档,从检测和识别手写笔记到识别照片中的随机文本。拥有自己的OCR工具处理文本内容,显然比依赖外部软件转录文档要高效得多。
[[[IMG_1]]]
[[[IMG_2]]]
