首页 > 其他分享 >【译】手稿上的光学字符识别

【译】手稿上的光学字符识别

时间:2024-02-06 16:13:16浏览次数:21  
标签:字符识别 文本 文档 使用 OCR 手稿 我们 光学

原作:乔纳森·阿尔诺

时间:2023 年 12 月 11 日

 

在本文中,我们将解释如何解决手写人口普查的 OCR 问题,以及我们从这次实验中吸取的教训。本文将追踪我们测试的库和在线服务,以及我们如何应用鲁昂大学的科学出版物来进行历史文献分析。

为历史文档建立索引

光学字符识别 (OCR) 是一项成熟的技术,用途广泛,从文档分析到使用 Google Lens 的“扫描和翻译”功能进行实时翻译。 云平台甚至提供检测管理文档布局并从中提取结构化文本的服务。

然而,一些 OCR 任务仍然充满挑战。 例如,使用 OCR 来索引历史文档目前并不能产生足够好的结果。 这是因为档案是手写的,部分扫描件对比度较差,而且很多条目不符合文档结构,如下图所示。

Source: POPP Dataset 来源:POPP 数据集

为了执行文档分析和文本识别,我们客户当前的解决方案依赖于人类从扫描中读取和提取文本。 但这种方法速度相当慢(可能需要数月至数年才能获得结果)、容易出错且成本高昂。

我们的客户希望探索人工智能(特别是 OCR)方面的新进展,以实现部分流程的自动化并减少从文档中获取结构化数据的时间。 他们主要需要从民事登记扫描中提取名字和姓氏。

试用OCR开源库

我们测试的第一个开源库是 Tesseract,因为它在 OCR 领域很有名,并且有深度学习的支持。虽然 Tesseract 对于黑白打字文本效果非常好,但是与我们的用例不匹配:默认情况下不支持手写文本,并且需要提高图像质量来改进推理。 这就是我们决定停止对该库进行实验的原因。

使用 Tesseract 进行线条识别

我们评估的第二个开源库是 OpenCV,它是计算机视觉领域的领先库。尽管 OpenCV 具有广泛的功能(从图像处理到对象识别),但它还提供文本检测和文本识别功能。文本识别依赖于用户必须提供的外部深度学习模型。然而,我们无法对单行文本进行识别,因为 OpenCV 的文档对此功能相当模糊,这就是我们选择放弃使用 OpenCV 的原因。

由于领域限制,我们无法使用开源库对历史文档进行 OCR,因此我们决定尝试 Amazon Web Service、Microsoft Azure 和 Google Cloud 提供的云服务。

OCR云服务研究

首先,我们决定使用 1936 年的手写人口普查来测试 AWS Textract,因为我们通常在 Marmelab 的项目中与这家云提供商合作。

我们使用 Textract 来分析整个页面,并进行布局检测,结果并没有我们希望的那么好。 虽然表格检测相当不错,但模型会跳过一些单词,由于书写过于复杂而难以识别某些单词,或者将跨行的单词分成两个单元格。 当我们需要确保名称被正确检测并且不分成两部分时,这尤其是一个问题。

此外,截至目前,我们还无法使用自己的数据训练自定义模型来微调 AWS 提供的模型以改进检测,这就是我们决定不再继续使用 AWS Textract 服务的原因。

使用 AWS Textract 进行线条识别

其次,我们评估了 Azure AI Document Intelligence(前 Azure 表单识别器),因为我们的客户使用 Azure 作为其主要云提供商。 与 Textract 类似,AI Document Intelligence 除了光学字符识别之外还提供布局和表格检测。

结果与 AWS 为同一任务提供的结果相当:表格单元格检测很棒,但它在识别交叉线单词方面存在同样的问题。 与 AWS Textract 相比,Azure AI Document Intelligence 的主要优势在于它可以根据用户提供的数据进行微调。 然而,由于跨线文字问题,我们选择不再继续提供服务。

使用 Azure AI 文档智能进行线条识别

最后,我们试验的最后一个云服务是 Google Cloud Document AI,与其他云服务类似,它提供表格布局和单元格提取以及光学字符识别。

有关历史文献 OCR 的论文

在我们对该主题的研究过程中,我们发现了一篇有趣的论文,名为 Projet d'Océrisation des revensements de la Population Parisienne (POPP)。该出版物来自法国鲁昂大学 LITIS 实验室。在这个项目中,该研究团队专注于 1926 年、1931 年和 1936 年巴黎人口普查的光学字符识别。由于我们正在从事同一时期的人口普查,因此该项目引起了我们的注意,我们决定看看他们的方法。

POPP 项目定义了一种从历史表中提取数据的新颖过程。 该过程由三个不同的步骤组成:

  • 首先,作者从双页跨页中提取表格,展开它们,然后使用 DhSegment (EPFL) 从这些表格中提取行。 DhSegment 是一个经过微调的 ResNet-50 模型,致力于从历史文档中提取数据;
  • 然后,作者使用基于 BLSTM 架构的自定义模型对提取的线条执行 OCR。 为了提高检测结果,他们使用了师生模型方法,在验证数据集上获得了 4.52% 的字符错误率(CER)和 13.57% 的单词错误率(WER);
  • 最后,他们在 OCR 后整合了领域知识(人名词典、地区和国家的常用缩写列表等)以改进检测。

复制 POPP 过程

我们的客户要求我们进行一次峰值测试,以验证这种方法是否适合他们的用例。在 1 个冲刺期间(由 2 名开发人员和一名协调员组成的团队全职工作 2 周),我们对他们的程序进行了如下实验:

我们使用基于 Torch Framework 的最新版本的 DhSegment 从双页跨页中裁剪表格。为此,我们需要在 80 个双页的数据集上对模型进行标记和微调,并在验证和测试数据集上获得了良好的结果。

我们还使用 OpenCV 使用 2D 旋转矩阵来展开表格。然而,在本次冲刺期间,我们没有时间执行行提取,因为我们选择专注于 OCR 技术。

对于 OCR 部分,我们决定尝试 TrOCR,这是来自 Microsoft 的最先进的 OCR 模型。然而,当我们使用法语版本的模型对裁剪线进行检测时,我们面临这样一个事实:该模型仅返回纯文本,没有分隔符(例如逗号或斜杠)。

为了解决这一挑战,我们决定使用 POPP 项目提供的训练数据集对 French 模型进行微调,以匹配其在 Google Collab 上的输出格式(其中使用斜杠划分列,并添加其他元数据)。

经过一轮训练后,我们获得了 6% 的字符错误率 (CER) 和 22% 的单词错误率 (WER),但是,由于数据集驱动器的连接失败,我们无法在 Google Collab 上微调模型训练期间,冲刺剩余时间不足;

我们在测试期间也没有时间整合领域知识,因此跳过了这一部分。

微调 1 epoch 后得到的结果

这些结果令人鼓舞,但还不足以取代人类的工作。在峰值结束时,客户决定停止探索并与论文作者讨论,看看他们是否能为我们提供有关如何改进结果的见解。

用于全页识别的Transformers

我们会见了鲁昂大学 LITIS 实验室的研究团队,并向他们展示了我们的研究结果。他们很快告诉我们 POPP 程序的局限性,以及我们可以在哪些方面改进我们的结果。这次讨论表明该算法并不是最适合我们的用例。

他们还公开了他们在历史文献 OCR 方面的进展。他们现在正在开发一个名为 Exo-POPP 的新项目,该项目专注于使用整页文本分析来提取有关婚姻的信息。

他们现在使用基于 Transformer 的算法。 Transformers 模型在语言建模中被大量使用,因为它们捕获文本各部分之间的关​​系;这在婚姻历史文献的背景下尤其有趣,因为它们通常以全文段落的形式呈现。

他们的初步结果非常有希望,特别是因为他们不再需要检测表格和线条。 他们的新算法(迄今为止尚未发布)可处理整页扫描并使用领域知识来修复 OCR 错误。 他们的模型还能够从非结构化文本中提取命名实体(例如名字、姓氏、日期等),这比之前的方法有了很大的改进。

我们现在正在等待他们的新算法的发布,以便在我们的用例上对其进行测试。

结论

虽然光学字符识别在过去十年中迅速发展,但历史文档的分析仍然面临挑战:手写文本的连接和某些文档的扫描质量较差使得字符识别变得更加困难。 然而,领域知识的添加有助于提高检测精度。 此外,深度学习的最新进展以及基于Transformer 的模型的引入可以通过整页识别来增强检测,而不是单行分析。

在这个实验中,我们了解到基于云的文档视觉服务确实适用于许多传统用例(结构良好的文档、打字文本等)。这些服务消除了通过 SDK 使用深度学习模型的大部分困难,同时提供良好的字符识别率。

对于云服务未涵盖的用例,我们了解到使用开源库需要大量的工作和科学专业知识。开箱即用的结果永远不够好,有必要对模型进行微调以获得良好的结果。这是一项耗时的任务,需要大量数据来训练模型。

最后,当工程达到极限时,有必要求助于科学文献来寻找解决问题的新方法。与该领域的研究人员交谈是了解最新技术并了解未来的好方法。

 

标签:字符识别,文本,文档,使用,OCR,手稿,我们,光学
From: https://www.cnblogs.com/Leap-abead/p/18009875

相关文章

  • Python实现光学字符识别技术-开源cnOCR
    CnOCR介绍CnOCR是一个用于中文OCR(光学字符识别)的Python3工具包。它支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,并支持竖排文字的识别。CnOCR主要针对排版简单的印刷体文字图片,如截图图片、扫描件等。CnOCR的基本原理包括两个步骤:文本检测和文字识别。文本检测用于......
  • 开源字符识别 OCR 引擎推荐
    开源字符识别OCR引擎推荐sea​现代支付架构部经理 Tesseract开源OCR引擎(主存储库) github地址 GitHub-tesseract-ocr/tesseract:TesseractOpenSourceOCREngine(mainrepository) 官方网址 Tesseractdocumentation Tesseract......
  • java期末复习,阳光学院
    1.面向对象都有那些特性以及你对这些特性的理解?类具有封装性,继承性和多态性的特性。(1)封装性:类的封装性为类的成员提供公有,缺省,保护和私有等访问权限,目的是隐藏类只的私有变量和类中方法的实现细节(2)继承性:允许通过继承原有类的某些特性或全部特性而产生全新的类,原有的类称为基类......
  • AR眼镜定制_ar智能眼镜光学显示整机硬件解决方案
    当今的AR眼镜因为易于佩戴、轻巧耐用、功能强大而用途广泛。AR眼镜的使用场景非常广泛,不仅在消费级领域有应用,还包括旅游、教育、工业和医疗等领域。新的工业AR穿戴技术以及工业级语音交互操作系统,能够让一线工作者解放双手。远程协作、数据采集、数字工单等智能应用有助于......
  • m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
    1.算法仿真效果vivado2019.2仿真结果如下:2.算法涉及理论知识概要基于FPGA的PPM(脉冲位置调制)光学脉位调制解调系统是一个复杂的电子与光电子相结合的通信系统。2.1PPM调制解调原理脉冲相位调制(PPM)最早由Pierce提出并应用于空间通信,是利用脉冲的相对位置来传递信息的一种调制......
  • 光学专家:非成像光学创新技术,儿童近视防控新护航
    根据国家卫健委官方数据显示,2022年全国儿童青少年总体近视率为53.6%,其中6岁儿童为14.5%,小学生为36%,初中生为71.6%,高中生为81%,近视防控形势不容小觑。选用高品质的护眼台灯,为孩子营造健康读写光环境,成为了中国家长们的必修课。然而,针对市面上五花八门、眼花缭乱的护眼台灯市场,普通消......
  • 光学专家:非成像光学创新技术,儿童近视防控新护航
    根据国家卫健委官方数据显示,2022年全国儿童青少年总体近视率为53.6%,其中6岁儿童为14.5%,小学生为36%,初中生为71.6%,高中生为81%,近视防控形势不容小觑。选用高品质的护眼台灯,为孩子营造健康读写光环境,成为了中国家长们的必修课。然而,针对市面上五花八门、眼花缭乱的护眼台灯市场,普通消......
  • AR眼镜解决方案_AR智能硬件方案|显示方案|光学方案
    AR眼镜硬件方案设计主要以满足客户需求和功能为核心进行定制。设计过程包括芯片平台选型、主板尺寸大小、内存、电池容量以及各种功能的传感器、显示光学模组、摄像头、接口、按键、充电等部分的实现,同时考虑整机的结构、散热设计,以及双目AR眼镜、单目智能眼镜、全息头盔等多种......
  • 通俗解释部分光学名词
    目录光瞳和光阑点扩散函数PSF和调制传递函数MTF波前Wavefront相位屏惠更斯-菲涅尔原理高斯谢尔模型(GSM)光束偏振移位键控技术(PolSK)光瞳和光阑Pupil:光瞳(pupil)是一个黑色开口,光通过它进入光瞳。你可以把它看作是相机中的光圈,控制着多少光线可以进入镜头。当光线充足时,光瞳......
  • AR眼镜,AR智能眼镜光学和显示/硬件主板方案
    AR光学方案在AR行业中扮演着核心的角色。光学元件的成本高昂,同时其亮度、清晰度和大小直接影响用户的体验。在AR眼镜的硬件成本中,光学部分(包括屏幕和光学模组)占据了大约70%的比重。AR眼镜的光学方案中,光波导和microLED被认为是黄金搭档,具有镜片轻薄、高清晰度、大可视角......