【读点论文】Text Detection Forgot About Document OCR,很实用的一个实验对比案例,将科研成果与商业产品进行碰撞

Text Detection Forgot About Document OCR

Abstract

  • 从扫描和其他图像中检测和识别文本,通常称为光学字符识别 (OCR),是一种广泛使用的自动化文档处理形式,有多种方法可用。然而,OCR 系统仍然无法达到 100% 的准确率,在正确读出至关重要的应用中需要人工校正。机器学习的进步使得"自然"文本检测和识别的场景更具挑战性 - 例如从复杂场景的照片中检测物体上的文本 。虽然最先进的自然文本识别方法通常在复杂场景中进行评估,但它们在文档领域的性能通常不会公布,并且缺少与文档 OCR 方法的全面比较。本文比较了几种为自然文本识别和文档文本识别设计的方法,并在结构化文档领域对它们进行了评估。 结果表明,最初为自然文本检测提出的最先进的方法在文档文本检测方面也取得了有竞争力的结果,优于现有的 OCR 方法。我们认为,在评估文本检测和识别方法时不应忽略文档 OCR 的应用。

Introduction

  • 光学字符识别 (OCR) 是机器学习和计算机视觉领域的经典问题,目前已有标准方法 和综述。机器学习及其应用(如自动驾驶、场景理解或大规模图像检索)的最新进展将文本识别研究的注意力转向了更具挑战性的自然文本场景,在复杂场景中会出现任意形状和方向的文本实例。在自然场景中识别文本面临诸多挑战,例如极端的长宽比、弯曲或其他不规则的文本、复杂的背景和场景中的杂乱 。近期方法 [DBnet++, TextBPN++] 在 TotalText 或 CTW-1500 等具有挑战性的自然文本数据集上取得了令人瞩目的效果,F1 分别达到 90% 和 87%。尽管自动文档处理仍然是 OCR 的主要应用之一,但据我们所知,从未在文档领域对自然文本检测模型的结果进行全面评估,也从未与为文档 OCR 开发的方法进行比较

  • 本文回顾了最近为野外场景开发的几种文本检测方法 [Character region awareness for text detection、Disentangled contour learning for quadrilateral text detection、DBnet、DBnet++、Efficient and accurate arbitraryshaped text detection with pixel aggregation network、TextBPN++],评估了它们在基准文档数据集上的性能(开箱即用和微调),并将其得分与流行的文档 OCR 引擎 [Amazon textract、Google cloud document ai、Tesseract] 进行了比较。此外,我们采用了公开的文本识别模型 [Show, attend and read: A simple and strong baseline for irregular text recognition、An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition],并将它们与文本检测器相结合,执行两阶段端到端文本识别,以对文本提取进行全面评估

Document OCR

  • 为文档的"标准"应用领域设计的 OCR 引擎范围广泛,从 TesseractOCR 和 PP-OCR 等开源项目到 AWS Textract 或 Google Document AI 等商业服务。尽管文档 OCR 是一个具有许多实际应用的经典问题,经过了数十年的研究,但它仍然不能被视为"已解决"------即使是最好的引擎也难以达到完美的准确性。商业云服务背后的方法通常不会披露。在发布时最流行的 [GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)] 开源 OCR 引擎 Tesseract (v4 和 v5)使用长短期记忆 (LSTM) 神经网络作为默认识别引擎。

In-the-wild Text Detection

Regression-based Methods
  • 基于回归的方法遵循对象分类方法,简化为单类问题。TextBoxes 和 TextBoxes++ 通过使用具有不同长宽比的锚点集来定位具有不同长度的文本实例 。各种基于回归的方法利用迭代细化策略,迭代地提高检测到的边界的质量。LOMO 使用迭代细化模块,该模块在每一步中都会回归预测边界每个角的坐标,并带有注意机制。PCR 提出了一种自上而下的方法,从预测文本实例的中心和大小开始,并使用其轮廓定位机制迭代地改进边界框。TextBPN++ 引入了迭代边界变形模块,利用带有多头注意 编码器的 Transformer 块和多层感知器解码器,迭代地调整检测到的实例的顶点 。 DCLNet 不考虑边界框的顶点,而是通过定位限制相应区域的四条线来预测四边形边界,并在极坐标系中表示它们。为了解决任意形状的文本检测问题并准确建模不规则文本区域的边界,已经开发出更复杂的边界框表示思想。ABCNet 采用三次贝塞尔曲线来参数化弯曲的文本实例,从而获得了拟合非多边形形状的可能性。FCENet 提出了傅里叶轮廓嵌入方法,预测与傅里叶域中边界表示相对应的傅里叶特征向量,并使用它们通过逆傅里叶变换生成实例的形状
Segmentation-based Methods
  • 基于分割的方法旨在将每个像素分类为文本或非文本,并使用对这样获得的像素图进行后处理来生成边界框。这种像素分类问题的二元确定性可能会导致文本实例边界上的学习混乱。许多方法通过预测文本核(实例的中心区域)并适当地聚集它们周围的像素来解决此问题。PSENet 预测不同大小的核,并通过迭代扩展其区域来形成边界框。PAN 生成像素分类和核图,将每个分类的文本像素链接到最近的核。CentripetalText 生成向心移位向量,将像素映射到正确的文本中心。KPN 创建像素嵌入向量,为每个实例定位中心像素,并通过用标量积测量嵌入向量的相似性来检索整个形状。
  • 绝大多数基于分割的方法生成概率图,表示像素包含在某些文本区域中的可能性,并使用某些二值化机制(例如通过应用阈值)将它们转换为二进制像素图。然而,阈值通常是根据经验确定的,如果选择不当,可能会导致性能急剧下降。为了解决这个问题,DBNet 提出了一个可微分二值化方程,使概率图和分类图之间的步骤可以端到端训练,从而让网络学习如何准确地对预测进行二值化。DBNet++ 通过使用自适应尺度融合注意模块扩展主干网络,增强了上采样过程并获得更深层的特征,进一步改进了基线。TextFuseNet 在三个不同层面上生成特征:全局、单词和字符级别,并将它们融合以获得相关上下文和对图像结构的更深入了解。CRAFT 不是检测单词,而是在字符级别定位文本,预测单个字母覆盖的区域,并根据生成的亲和力图链接每个实例的字符。

Methods

Text Detection

  • 为了涵盖广泛的文本检测器,我们从第 2.2 节中选择了具有不同方法的方法:对于基于回归的方法,我们包括 TextBPN++ 作为以顶点为中心的算法,以及 DCLNet 作为以边缘为中心的方法。对于基于分割的方法,我们选择 DBNet 和 DBNet++ 作为纯分割,选择 PAN 作为将文本像素链接到相应内核的方法。最后,选择 CRAFT 作为字符级方法。

Text Recognition

  • 文本检测的最终目标,特别是在文档处理的情况下,是识别检测到的实例中的文本。因此,为了评估流行的实际检测器对文档 OCR 的适用性,我们使用以下文本识别引擎执行端到端测量:SAR 、MASTER 和 CRNN 。开源引擎与检测方法以两阶段的方式相结合:输入图像首先由检测器处理,检测器返回边界框。之后,将相应的裁剪实例传递给识别模型。作为参考点,我们将所选方法的检测和端到端识别结果与三个常见的端到端文档 OCR 引擎的预测进行了比较:Tesseract 、Google Document AI 和 AWS Textract 。

Metric

  • 为了测量检测和端到端性能,我们使用了 CLEval [Cleval: Character-level evaluation for text detection and recognition tasks] 指标。与在单词级别感知文本的交并比 (IoU) 等指标相反,CLEval 在字符级别测量精度和召回率。因此,它略微减少了拆分或合并有问题的实例(例如日期)的惩罚,从而提供了可靠且直观的检测和识别质量比较。此外,CLEval 评估的识别分数大致对应于字符识别的精度,可告知识别引擎在检测到的边界框方面的质量。

Experiments

Training Strategies

  • DBNet 、DBNet++ 和 PAN 经过 100 个 epoch(FUNSD 为 600 个 epoch)的微调,批处理大小为 8,初始学习率设置为 0.0001,在第 60 和第 80 个 epoch(FUNSD 为第 200 和第 400 个 epoch)时降低 10 倍。从 MMOCR 0.6.2 Model Zoo 下载了在 SynthText (DBNet、DBNet++)或 ImageNet (PAN)上预训练的基线。 DCLNet 在每个数据集上从预训练模型 进行微调,进行 150 个 epoch,批处理大小为 4,初始学习率为 0.001,衰减至 0.0001。对于每个数据集,TextBPN++ 都是从预训练模型 [Arbitrary shape text detection via boundary transformer] 微调而来的,该模型训练了 50 个时期,批处理大小为 4,学习率为 0.0001,数据增强包括翻转、裁剪和旋转。由于没有公开可用的 CRAFT 训练脚本,在实验期间,我们使用了 github 存储库 [Official implementation of character region awareness for text detection (craft)] 中的 MLT 模型,未进行微调。所有实验均使用 Adam 优化器(动量为 0.9)在单个 GPU(具有 11 GB VRAM)上进行(GeForce GTX-1080Ti)。

Detection Results

  • 表 2 显示了第 3.1 节中选择的文本检测方法在表 1 中的数据集上的结果。 在 FUNSD 数据集上,DBNet++ 实现了最高的检测召回率 (97.40%) 和 F1 分数 (97.42%)。CRAFT 的准确率最高,为 97.84%。PAN 在所有考虑的野生算法中表现最差,F1 分数仅为 81.44% 。尽管在 FUNSD 上取得了更好的结果,但基于分割的方法在 CORD 和 XFUND 上的表现不如基于回归的方法。TextBPN++ 被证明是 CORD 上召回率和 F1 分数方面表现最好的算法,分别得分为 99.74% 和 99.19% 。 DCLNet 在 CORD 上记录了最佳准确率(98.67%),在 XFUND 上取得了优异的成绩,在所有三个指标上均优于其余方法:准确率 - 98.22%,召回率 - 98.17%,F1 得分 - 98.20%。

    • 表1 文本检测与识别实验中使用的文档数据集。

    • 表 2 所选方法在基准数据集上的检测性能与 CLEval 指标的比较。 "P"、"R"和"F1"分别代表准确率、召回率和 F1 分数。

  • 在端到端文档 OCR 的流行引擎中,AWS Textract 在结构化文档扫描领域(FUNSD 和 XFUND)表现最佳,F1 得分分别为 96.69% 和 92.65%。Google Document AI 对 CORD 数据集中扭曲的收据照片的泛化效果显著,F1 得分达到 93.30%,超过了 AWS Textract 和 Tesseract 的得分。结果表明,在文档数据集上微调的野生检测器在 CLEval 检测指标方面可以胜过结构化文档领域的流行 OCR 引擎。但是,由于拆分规则不同,预训练检测器的预测结果可能不完全具有代表性 。 例如,Document AI 为特殊符号(例如括号)创建单独的实例,导致将"names"等单词意外拆分成几个片段,从而降低精度和召回率。在所有实验数据集上,所有微调的野生文本检测模型都达到了较高的预测分数,证明它们能够处理结构化文档中的文本。对检测器预测的定性分析表明,主要的错误来源是长文本片段(例如电子邮件地址)的错误拆分、密集文本区域中的实例的合并以及缺少短的独立文本(例如个位数)

Recognition Results

  • 表 3 列出了将经过微调的野外检测器与 MMOCR 0.6.2 Model Zoo 中的 SAR 和 MASTER 模型以及 docTR 中的 CRNN 相结合的端到端文本识别结果。本次实验跳过了 XFUND 数据集,因为它包含中文和日文字符,而识别模型并未针对这些字符进行训练。在 FUNSD 上,端到端测量结果遵循检测的模式:配备 CRNN 作为识别引擎,DBNet++ 被证明是 CLEval 端到端召回率 (93.52%) 和 F1 分数 (92.23%) 方面最佳的调整模型,在准确率方面仅次于 CRAFT。 AWS Textract 测得的 F1 分数高得多 (+2%),其端到端结果优于所有考虑的算法。

  • 值得注意的是,AWS Textract 的识别分数几乎达到 96%,比 CRNN 的分数高出约 2%。这表明 AWS Textract 中使用的识别引擎在 FUNSD 上的表现比 CRNN 模型准确得多,这可能是取得良好结果的关键原因 。在 CORD 上进行评估时,具有可微分二值化的模型在所有端到端测量中得分最高:召回率(DBNet++)、精度和 F1 分数(DBNet);大大超过其余方法。有趣的是,尽管获得了最佳召回率,但 DBNet++ 在端到端 F1 分数方面并没有击败更简单的 DBNet。当测量纯检测分数时,基于回归的方法的预测比基于分割的方法更好,但与 CRNN 的结合似乎略差。然而,TextBPN++ 仍然具有竞争力,取得了与 DBNet 和 DBNet++ 类似的结果

  • 无论选择哪种自然检测器,CRNN 的识别分数在 FUNSD 上都超过 93%,在 CORD 上超过 98.5%,再次证明了将这些算法应用于文档文本识别的适用性。未经专门对文档进行训练的 SAR 模型表现较差:在 FUNSD 和 CORD 上测得的最高 F1 分数分别为 86.36% 和 85.25%,均由与 TextBPN++ 的组合获得。微调后的 SAR 模型的 F1 分数略高,在 FUNSD(配备 DBNet++ 作为检测器)上达到 89.49%,在 CORD(与 TextBPN++ 检测相结合)上达到 93.77%。 尽管与基线相比获得了明显的优势,但微调后的 SAR 模型并没有超越预训练的 CRNN 的性能。与 SAR 类似,预训练的 MASTER 模型 与 TextBPN++ 结合效果最佳,在 FUNSD 上实现了 83.00% 的 F1 分数,在 CORD 上实现了 93.26% 的 F1 分数。

  • 表 3 所选文本检测方法与 MMOCR 的 SAR 和 MASTER 默认模型、微调 SAR 以及 docTR 的 CRNN 默认模型相结合,在 FUNSD 和 CORD 上的识别性能比较,以 CLEval 指标为依据。"P"、"R"、"F1"和"S"分别代表端到端精度、召回率、F1 分数和识别分数。

Conclusions

  • 近年来,得益于深度机器学习的进步,文本检测研究取得了长足进步。最近推出的方法扩大了文本检测器的应用范围,使其可用于自然文本识别。这将注意力转移到更复杂的场景,包括任意形状的文本或具有非正交方向的实例 。由于自动文档处理仍然是最相关的商业 OCR 应用之一,我们强调确定最先进的场景文本识别方法是否也可以改进文档 OCR 的重要性。我们的实验证明,为自然文本识别设计的检测器确实可以非常成功地应用于文档。特别是,根据 CLEval 指标,诸如 DBNet++ 或 TextBPN++ 之类的微调模型在 FUNSD 上产生了超过 96% 的检测 F1 分数,在 CORD 上产生了超过 98% 的检测 F1 分数,在 XFUND 上产生了超过 96% 的检测 F1 分数,优于 Google Document AI 和 AWS Textract。此外,将这些检测器与公开可用的 CRNN 识别模型以两阶段方式相结合,即使没有对 CRNN 进行显式微调,也能始终实现超过 90% 的 CLEval 端到端 F1 分数。我们希望这些结果能够引起更多关注,以评估未来的文本检测方法,不仅在自然文本场景中,而且在文档领域。
相关推荐
算家云6 分钟前
快速识别模型:simple_ocr,部署教程
开发语言·人工智能·python·ocr·数字识别·检测模型·英文符号识别
谢眠1 小时前
深度学习day3-自动微分
python·深度学习·机器学习
z千鑫1 小时前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr1 小时前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
爱喝热水的呀哈喽1 小时前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
YRr YRr3 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
幻风_huanfeng3 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
deephub4 小时前
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
人工智能·pytorch·深度学习·图嵌入