智能文档解析综述:结构化信息提取的技术、挑战与前景

综述论文:https://arxiv.org/abs/2410.21169

摘要

文档解析对于将非结构化和半结构化文档(如合同、学术论文和发票)转换为结构化、机器可读的数据至关重要。通过从非结构化输入中提取可靠的结构化数据,文档解析为众多应用提供了极大的便利。尤其是在大型语言模型的最新进展中,文档解析在知识库构建和训练数据生成中扮演着不可或缺的角色。本综述全面回顾了当前文档解析的现状,涵盖了从模块化管道系统到由大型视觉语言模型驱动的端到端模型等关键方法。详细探讨了版面检测、内容提取(包括文本、表格和数学表达式)以及多模态数据集成等核心组件。此外,本文还讨论了模块化文档解析系统和视觉语言模型在处理复杂布局、整合多个模块以及识别高密度文本时所面临的挑战,并强调了开发更大和更多样化的数据集的重要性,同时概述了未来的研究方向。


一. 介绍

随着数字化转型的加速,电子文档在各个行业中逐渐取代纸质文档,成为信息交换的主要媒介。这一变化显著增加了文档类型的多样性和复杂性,包括合同、发票和学术论文。因此,对高效的信息管理和检索系统的需求不断增加。然而,大量历史记录、学术出版物和法律文件仍以扫描或图像格式存在,这给信息提取、文档理解和增强检索等任务带来了巨大挑战。

为了解决这些挑战,文档解析(也称为文档内容提取)成为了一种关键工具,用于将非结构化和半结构化文档转换为结构化信息。文档解析识别并提取各种文档输入中的文本、公式、表格和图像等元素,同时保留其结构关系。提取的内容随后被转换为Markdown或JSON等结构化格式,实现与现代工作流程的无缝集成。

文档解析对于与文档相关的任务至关重要,重新定义了信息的存储、共享和应用方式。它为各种下游流程提供了基础,包括在各个实际领域中开发检索增强生成(RAG)系统,以及纸质材料的电子存储和检索库的自动化构建。此外,文档中仍有大量潜在信息尚未充分开发。文档解析技术能够有效提取和组织这些丰富的知识,为下一代智能系统的发展奠定坚实基础,例如训练更专业和强大的多模态模型。

尽管近年来文档解析技术,特别是基于深度学习的技术取得了显著进展,导致文档解析工具的激增和有前景的解析器的出现,但该领域的研究仍面临一些限制。许多关于文档解析的综述已过时,导致流程缺乏严谨性和全面性,技术描述未能捕捉到最新进展和应用场景的变化。此外,高质量的综述通常专注于文档解析中的特定子技术,如布局分析、数学表达式识别、表格结构识别和文档中的图表相关工作,而未提供整个文档解析过程的全面概述。

鉴于这些局限性,非常需要对文档解析进行全面的综述。在本次综述中,我们从整体视角分析文档解析的进展,为研究人员和开发者提供对该领域近期发展和未来方向的广泛理解。本文的主要贡献如下:

全面综述文档解析:系统整合和评估文档解析技术在解析流程各阶段的最新进展。
整合数据集和评估指标:汇总常用的数据集和评估指标,填补文档解析领域现有综述中的空白。
为研究人员和实践者提供整体视角:提供文档解析当前状态和未来方向的整体视角,弥合学术研究与实际应用之间的差距。
新手入门指南:为新手提供指南,帮助他们快速了解该领域的概况并识别有前途的研究方向。

本文的结构如下:第二节概述文档解析的两种主要方法。第三节到第六节详细探讨模块化文档解析系统中使用的关键算法。第七节介绍适用于文档相关任务的视觉语言大模型,重点关注文档解析和OCR。第八节和第九节涵盖文档解析中的数据集和评估指标。第十一节讨论该领域当前的挑战并强调重要的未来方向。最后,第十二节提供简明而深刻的结论。


二. 方法论

文档解析大致可以分为两种方法:模块化流水线(Pipeline)文档解析系统和基于大型视觉语言模型的端到端方法。

2.1 文档解析系统

2.1.1 布局分析

布局检测识别文档的结构元素,如文本块、段落、标题、图像、表格和数学表达式,并确定其空间坐标和阅读顺序。这一基础步骤对于确保内容的准确提取至关重要。值得注意的是,由于数学表达式的复杂性,尤其是内嵌的数学表达式,通常需要单独处理。

2.1.2 内容提取

文本提取:该过程利用光学字符识别(OCR)技术将文档图像转换为机器可读文本。通过分析字符的形状和模式,OCR能够准确识别和处理图像中的文本。

数学表达式提取:在此步骤中,文档区域内的数学符号和结构被检测并转换为标准化格式,如 LaTeX 或 MathML。由于符号的复杂性及其空间排列,这项任务具有独特的挑战。

表格数据和结构提取:表格识别涉及通过识别单元格的布局以及文档图像中行与列之间的关系来检测和解释表格结构。提取的表格数据通常与 OCR 结果结合,并转换为 LaTeX 、HTML等格式以便进一步使用。

图表识别:这一步骤侧重于识别不同类型的图表并提取其基础数据及结构关系。图表中的视觉信息被转换为原始数据表或 JSON 等结构化格式。

2.1.3 关系整合

每个步骤都建立在之前的基础上,确保从文本到数学表达式、表格和图表的顺畅流程,同时利用先进的识别技术将文档内容转换为结构化的机器可读格式。一旦提取出各个内容元素,关系整合步骤将它们组合成一个统一的结构。此步骤利用布局检测过程中识别的空间坐标,确保元素之间的空间和语义关系得到保留。通常应用基于规则的系统或专门的阅读顺序模型来维护内容的逻辑流。

2.2 端到端方法与多模态大型模型

虽然传统的模块化文档解析系统在特定领域中表现有效,但其架构常导致在不同文档类型中的联合优化和泛化能力受限。多模态大型模型的最新进展,特别是视觉语言模型(VLMs),提供了有前景的替代方案。像 GPT-4、Qwen、LLaMA 和 InternVL 这样的模型可以同时处理视觉和文本数据,促进文档图像到结构化输出的端到端转换。由于文档图像带来的独特挑战——如密集文本、复杂布局和视觉元素的高度多样性——专门的大型模型如 Nougat、Fox 和 GOT 应运而生。这些模型在自动化文档解析和理解方面代表了重大进步。


3 布局分析

3.1 布局分析技术简介

对扫描图像的文档布局分析(DLA)的研究始于20世纪90年代。早期研究集中于简单文档结构,通常作为预处理步骤,主要使用基于规则的方法[173–186, 71, 187, 188]或统计技术[189, 190, 178]。

到2000年代,DLA结合了特征工程和机器学习,将任务框定为基于像素的语义分割[191–193]。自2015年以来,深度学习技术,特别是卷积神经网络(CNNs)和Transformers,主导了这一领域,将DLA视为像素级分割问题,并利用视觉特征分析物理布局[194–199, 22]。

此外,图卷积网络(GCNs)被用于建模文档组件之间的关系表示[200, 23, 31, 201, 24, 25]。基于网格的方法[202–204, 26, 27]强调了保持空间结构的重要性。最近的研究还将多种数据源整合到这些模型中[28, 33, 31, 34, 32, 29, 30]。大约在2020年,多模态自然语言处理(NLP)中的自监督预训练影响了DLA研究,促使模型联合整合文本和视觉布局信息进行端到端学习。

3.2 基于视觉特征

早期基于深度学习的文档布局分析(DLA)主要集中于利用文档图像的视觉特征分析物理布局。文档被视为图像,通过神经网络架构检测和提取文本块、图像和表格等元素[194]。

3.2.1 基于CNN的方法

卷积神经网络(CNNs)的引入标志着文档布局分析(DLA)的重大进步。最初设计用于目标检测,这些模型被改编用于页面分割和布局检测等任务。R-CNN、Fast R-CNN 和 Mask R-CNN 对于检测文本块和表格等组件尤其具有影响力[195]。后来的研究改进了区域提议过程和架构,以增强页面对象检测[196]。像全卷积网络(FCN)和 ARU-net 等模型被开发来处理更复杂的布局[197, 198]。

3.2.2 基于Transformer的方法

最近Transformer模型的进展扩展了其在文档布局分析(DLA)中的应用。BEiT(来自图像Transformer的双向编码器表示)受BERT启发,采用自监督预训练来学习稳健的图像表示,擅长提取全局文档特征,如标题、段落和表格[199]。文档图像Transformer(DiT)具有类似Vision Transformer(ViT)的架构,将文档图像分割为小块以增强布局分析。然而,这些模型计算密集且需要大量预训练[22]。最近的研究如[205, 206]也集中于使用Transformers完成基于文档视觉特征的分类任务。

3.2.3 基于图的方法

虽然基于图像的方法在DLA方面取得了显著进展,但它们往往过于依赖视觉特征,限制了对语义结构的理解。图卷积网络(GCNs)通过建模文档组件之间的关系来解决这个问题,增强了布局的语义分析[200, 23, 31]。例如,Doc-GCN改进了对布局组件之间语义和上下文关系的理解[24]。GLAM是另一个重要模型,将文档页面表示为结构化图表,将视觉特征与嵌入的元数据结合以获得卓越表现[25]。

3.2.4 基于网格的方法

基于网格的方法通过将文档布局表示为网格来保留空间信息,这有助于保留空间细节[202–204, 26, 27]。例如,BERTGrid调整BERT以表示布局,同时保持空间结构[26]。VGT模型集成了Vision Transformer(ViT)和Grid Transformer(GiT)模块,以捕捉标记和段落级别的特征。然而,基于网格的方法通常面临参数量大和推理速度慢的挑战,限制了其实际应用[27]。

3.3 融合语义信息

随着文档分析的复杂性增加,仅靠物理布局分析已不再足够。尽管有研究证明,优秀的目标检测模型(如YOLO v8)在一些小语种基于字形的文档布局分析中仍然相对领先,并进行了相关改进[207, 208],但结合语义信息的文档布局分析方法仍然是一个重要的发展方向。逻辑布局分析需要根据文档元素的语义角色(如标题、图表或页脚)进行分类。随着多模态模型的兴起,结合视觉、文本和布局信息的方法在文档布局分析研究中变得越来越重要。

逻辑布局分析的需求推动了多模态模型的发展,这些模型整合了文本和布局信息以进行更全面的分析。研究通过结合监督学习和预训练的自然语言处理(NLP)或计算机视觉(CV)模型探索了多模态数据的整合。例如,LayoutLM是第一个在单一框架中融合文本和布局信息的模型,使用BERT架构通过文本、位置和图像嵌入捕捉文档特征[28]。

[33]通过结合RoBERTa和GCNs扩展了这一点,以从文本和图像中捕获关系布局信息。[31]引入了多尺度自适应聚合模块以融合视觉和语义特征,生成注意力图以实现更准确的特征对齐。

多模态NLP中的自监督预训练也显著推进了该领域。在预训练期间,模型使用统一的Transformer架构联合处理文本、图像和布局信息,使其能够从各种文档类型中学习跨模态知识。这种方法提高了模型的多样性,要求在不同文档类型和风格中进行微调时的监督最少。

2020年,[34]提出了一个多模态文档预训练框架,该框架端到端编码多页文档的信息,结合文档主题建模和随机文档预测等任务。这个框架使模型能够学习丰富的图像、文本和布局表示。值得注意的工作如UniDoc[32]使用Transformer和ResNet-50架构提取语言和视觉特征,通过门控跨模态注意力机制对齐。

进展包括LayoutLMv2和LayoutLMv3,它们通过优化文本、图像和布局信息的融合来改进LayoutLM。这些模型通过更深的多模态交互和掩码机制提高特征提取,实现更高效和全面的文档分析[29, 30]。此外,LayoutLLM[35]尝试使用大型语言模型整合某些语义信息以完成与文档布局相关的任务。


4 光学字符识别

4.1 文档OCR简介

光学字符识别(OCR)有着悠久的历史,起源于早期计算机的发展。这个概念最早由Tausheck在1929年提出。如今,OCR是计算机视觉和模式识别中的一个关键研究领域,旨在识别视觉数据中的文本并将其转换为可编辑的数字格式,以便进行后续分析和组织。

在20世纪50年代和60年代,OCR研究集中于手写文档识别,如支票处理和邮件分类。在此期间,OCR系统主要使用预处理技术和基于规则或模板匹配的方法。例如,ABBYY OCR的早期版本通过图像二值化、噪声减少和布局分析来通过模板匹配识别字符。

在深度学习出现之前,OCR系统主要依赖特征工程和传统机器学习技术进行字符识别。这些方法通常应用于邮政编码识别、表单处理和银行业务等任务。一个显著的例子是Tesseract OCR,由HP实验室在1984年开发,其早期版本(4.x版本之前)使用了这些技术。

随着OCR技术被整合到各个行业,对更高精度和更广泛适用性的需求不断增加。研究人员因此探索了更先进的OCR应用,包括场景文本识别、多语言识别和文档字符识别。自2010年以来,端到端深度学习算法的发展显著改变了OCR,提高了其效率和应用范围。

OCR通常涉及两个主要阶段:文本检测和文本识别。首先,在图像中定位文本,然后应用识别算法将识别出的文本转换为计算机可读的字符。当OCR同时集成文本检测和识别时,被称为文本定位识别(text spotting)。本节将讨论OCR的这三个关键技术方面。

4.2 文本检测

传统的非深度学习文本检测算法在背景对比度高的简单场景中通常有效。然而,它们常常需要手动调整参数以在不同环境中达到最佳性能,限制了其泛化能力。相比之下,基于深度学习的文本检测算法改进了目标检测和实例分割技术,可以分为四种主要方法:单阶段回归方法、两阶段区域提议方法、基于实例分割的方法和混合方法。

4.2.1 基于回归的单阶段方法

基于回归的方法,也称为直接回归方法,直接从图像中的特定点预测文本框的角坐标或长宽比,跳过了多阶段候选区域生成和后续分类的需要。像YOLO和SSD这样的算法已被改编用于文本检测,并进行了修改以处理文本特定的挑战,如多样的长宽比和方向[36, 37]。例如,CTPN [38]通过垂直位置和横向偏移的回归实现精确的文本行定位。SegLink [209]和DRRG [39]等方法应用回归技术处理不规则文本形状,而傅里叶变换[40]则能够紧凑地表示复杂的文本轮廓。虽然基于回归的方法计算效率高且与深度学习模型集成良好,但在处理模糊边缘和杂乱背景时可能会遇到困难。

4.2.2 基于区域提议的两阶段方法

基于区域提议的方法将文本块视为特定的检测目标,使用两阶段目标检测技术如Fast R-CNN和Faster R-CNN进行处理。这些方法旨在生成针对文本优化的候选框,提高对任意方向文本的检测精度。例如,DenseBox [210]引入了一种端到端的全卷积网络(FCN)框架,通过多任务学习结合位置和尺度信息,提高了检测精度。同样,DeepText [41]引入了一个Inception-RPN以生成更详细的文本候选框。虽然Faster R-CNN主要设计用于水平文本,但一些研究增强了其检测不规则文本区域的能力[42–46]。[47]的研究将这些方法扩展到处理任意方向的文本,包括弯曲的文本块,进一步提高了其鲁棒性。

4.2.3 基于分割的方法

文本检测也可以作为图像分割问题来处理,通过对像素进行分类来识别文本区域。这种方法在处理各种文本形状和方向时提供了灵活性。早期的方法[48]使用全卷积网络(FCNs)检测文本行,而后来的算法如PAN [49]提高了效率和准确性。CRAFT [50]通过采用字符级检测消除了对大型感受野的需求,代表了一个重要的进步。像[48]这样的实例分割方法通过将每个文本块视为一个独立实例来解决紧邻文本块的挑战。SPCNET [51]和LSAE [52]等技术分别使用金字塔注意力模块和双分支架构进一步改进了这一方法。在基于分割的方法中,后处理(如二值化)至关重要,差分二值化(DB)[53]通过将二值化集成到网络中提高了检测速度和准确性。

4.2.4 混合方法

混合方法结合了回归和分割方法的优势,以捕捉全局和局部文本细节,提高定位精度,同时减少对广泛后处理的需求。技术如EAST [54]和MOST结合了位置感知非极大值抑制(PA-NMS)以优化不同尺度上的检测。最近的方法如CentripetalText [55]使用向心偏移精细化文本定位。此外,图网络和Transformer架构[56, 57]等创新通过自适应边界提议和注意力机制进一步增强了检测。迁移学习和多模态集成[58, 59]的进展,特别是在基于Transformer的架构中,通过整合视觉-文本表示解决了检测小文本区域的挑战并提高了准确性。

总之,文本检测通过在目标检测、分割和新颖架构创新方面的进步,显著提高,成为各种应用的强大工具。

4.3 文本识别

文本识别是光学字符识别(OCR)的关键组成部分,指的是将书写或打印的文本图像自动转换为机器可读格式的过程。文本识别系统的主要目标是从视觉数据中解释字符和单词,以便进行后续的计算任务。随着时间的推移,各种文本识别方法已经出现,主要分为三类:基于视觉特征的方法、基于连接时序分类(CTC)损失的方法和序列到序列(seq2seq)技术。

4.3.1 基于视觉特征的OCR技术

基于图像特征的方法:近年来,OCR技术的进步利用了图像处理,特别是卷积神经网络(CNN),来捕捉文本图像中的空间特征。这些方法通过直接从图像中提取特征,消除了传统特征工程的需要,从而简化了模型设计和实现,同时有效捕捉空间结构信息,使这些技术特别适用于规则或半结构化的文本图像。例如,[211] 提出了一个使用CNN检测文本区域和分类字符的模型,有效管理字符的空间排列。同样,[60] 引入了一个合成数据生成器,结合深度CNN架构,以提高对各种文本类型的适应性。CA-FAN模型 [61] 通过采用字符注意力机制提高了字符识别的准确性。此外,TextScanner [62] 将CNN与循环神经网络(RNN)结合,以提高字符分割和定位的准确性。尽管这些方法有效,但在处理复杂或不规则文本时面临挑战,尤其是在涉及显著背景噪声或复杂文本结构的情况下,通常需要额外的后处理以增强识别准确性。

CTC 损失方法:连接时序分类(CTC)损失函数通过在训练期间无需显式对齐输入和输出序列,使模型能够优化序列对齐问题。CTC 计算所有可能对齐路径的概率,因此特别适合处理长度可变的文本。CTC 的一个显著应用是 [63] 提出的 CRNN 模型,该模型结合了 CNN 和 RNN 架构,并使用 CTC 损失进行序列生成。Deep TextSpotter [64] 将 CNN 特征提取与 CTC 相结合,提高了文本检测和识别的准确性。ADOCRNet [65] 进一步将 CTC 应用于 CNN 和双向长短期记忆(BLSTM)网络,以实现阿拉伯文档识别。然而,CTC 在处理较长文本和上下文细微差别时存在困难,这可能增加计算复杂性,影响模型训练效率和实时性能。

序列到序列方法:序列到序列(seq2seq)技术使用编码器-解码器架构来编码输入序列并生成相应的输出。这些方法通过注意力机制管理输入和输出序列之间的长距离依赖关系,促进端到端训练。传统方法通常使用 RNN 和 CNN 将图像特征转换为一维序列,然后由基于注意力的解码器处理。尽管这些方法有效,但将图像转换为一维序列以适应基于 Transformer 的架构存在挑战,特别是在处理任意方向和不规则文本时。为了解决这些问题,模型采用输入校正和二维特征图等策略。例如,空间变换网络(STNs)可以将文本图像校正为矩形、水平对齐的字符,这在 ASTER、ESIR 和 MORAN 中得到了应用。其他模型则通过学习二维特征图直接从二维空间中提取字符,以适应不规则和多方向文本,如 SAR、AON 和 SATRN 所示。Transformer 架构的兴起标志着从传统 CNN 和 RNN 模型向基于注意力的编码器-解码器系统的转变。例如,NRTR 采用完全自注意力架构,使用卷积层将二维输入图像转换为编码器-解码器框架的一维序列。像 ViTSTR 的视觉 Transformer 模型完全抛弃了传统的骨干网络,专门使用视觉 Transformer(ViT)架构进行编码,而 TrOCR 完全依赖 Transformer 架构进行图像处理和文本生成,完全避免使用 CNN。针对不规则或拉长文本序列的性能改进,重点在于更好地处理二维几何位置信息。例如,[212] 提出的方法整合了类似于传统 R-CNN 方法的校正模块,以及文本分组和排列模块。LOCR 通过结合文档元素的位置信息和图像块的位置编码,提高了文档中长文本的 OCR 性能。OCR 研究继续发展,尤其是在使用 Transformer 架构提高复杂图像文本性能方面。

4.3.2 语义信息的整合

文本识别传统上被视为视觉分类任务,通过整合语义信息和上下文理解,特别是在处理不规则、模糊或遮挡的文本时,能够显著提升性能。最新研究强调在文本识别系统中融入语义理解,主要分为三种方法:字符级语义整合、通过专用语义模块的增强,以及通过训练改进来提高上下文意识。

字符级语义整合:通过利用字符相关特征(如数量和顺序)来增强 OCR 性能。由 [75] 提出的 RF-L(互惠特征学习)框架强调使用隐式标签(如文本长度)的好处,以提高识别效果。RF-L 结合了计数任务(CNT)来预测字符频率,从而帮助识别任务。类似地,[76] 提出了一个上下文感知的双并行编码器(CDDP),通过交叉注意力和专用损失函数来整合排序和计数模块。尽管通过整合字符信息提高了性能,但在从大规模无标签文本中捕获多样化先验知识以进行语言模型预训练方面仍面临挑战。

通过语义模块的增强:虽然字符级语义整合很有价值,但一些方法专注于独立的语义模块,以捕捉更高层次的语义特征。这些策略通过专用模块中的上下文关系对齐视觉和语义数据。例如,SRN 引入了并行视觉注意模块(PVAM)和全局语义推理模块(GSRM),将二维视觉特征与字符对齐,将字符特征转换为语义嵌入以进行全局推理。类似地,SEED 在编码器和解码器之间添加了语义模块,通过语义转换增强特征序列。ABINet 通过迭代反馈优化字符位置,使用单独训练的语言模型进行上下文优化。这些策略有效地对齐语义和视觉数据,但在充分利用语义关系方面仍面临挑战。

提高上下文意识的训练进展:从自然语言处理(NLP)中借鉴的预训练策略(如 BERT)在增强 OCR 任务的上下文意识方面发挥了关键作用。VisionLAN 等方法通过引入掩码语言感知模块(MLM)和视觉推理模块(VRM)进行并行推理,利用掩码来提高上下文理解。类似地,Text-DIAE 在预训练期间应用掩码、模糊和噪声添加等降级方法,以提高 OCR 能力。PARSeq 修改了排列语言建模(PLM),通过重新排序编码标签来增强文本识别,以获得更好的上下文序列。这些预训练方法虽然提高了语义学习,但通常会增加计算复杂性和资源需求。

4.4 文本定位识别

文本定位识别涉及从图像中检测和转录文本信息,包括文本检测和识别任务。传统上,这些任务是独立处理的,检测器识别文本区域,识别模块随后转录识别出的文本。尽管这种方法简单,但检测和识别的独立处理可能影响性能,因为最终结果的效果在很大程度上取决于文本检测模型的准确性。随着深度学习的进步,最近的努力越来越集中于开发将文本检测和识别整合在一起的端到端模型,从而通过共享特征表示提高效率和准确性。基于深度学习的端到端文本定位识别模型主要分为两类:两阶段方法和单阶段方法,每种方法都有其独特的优势。尽管两种方法都被探索过,但最近的研究主要强调单阶段方法。

两阶段方法:

两阶段方法整合了文本检测和识别架构,实现了联合训练和特征对齐。这种方法通过提取公共特征(通常通过共享卷积层)和使用兴趣区域(RoI)机制连接任务,允许在检测和识别任务之间共享信息。在检测阶段,模型识别潜在的文本区域,并在识别阶段将其映射到共享特征图上进行转录。

例如,一个基础的两阶段方法结合了单扫描文本检测器和使用矩形 RoI 的序列到序列识别器。后续工作在使用类似架构的多方向文本检测方面有所改进。然而,矩形 RoI 最适合于有组织的文本布局,可能会受到背景元素的影响,因此研究人员探索了替代的 RoI 方法。一些方法采用了目标检测技术,如 FOTS 使用 RoIRotate 机制,以及 Mask TextSpotter 系列、AE TextSpotter 和 ABINet++ 使用 RoIAlign。值得注意的是,Mask TextSpotter v1 是第一个完全实现端到端 OCR 的方法,允许在联合训练期间进行检测和识别之间的反馈,而 Mask TextSpotter v3 引入了分割提议网络(SPN)以提供灵活的文本区域表示。

其他两阶段方法,例如,集成了注意力机制与文本对齐层,而不是 RoI。RoI 机制的创新包括 TextDragon 的 RoLSide 操作符,它提取并对齐任意文本区域,以及 ABCNet 中的 BezierAlign,它适应文本轮廓而非矩形边界。PAN++ 使用了掩码兴趣区域注意力识别头以平衡准确性和速度,而 SwinTextSpotter 引入了一种检测知情的识别机制。2022 年,GLASS 提出了旋转 RoIAlign,以增强从共享骨干中提取文本特征的能力,通过全局注意力模块解决了不同文本大小和方向带来的挑战。

尽管有这些创新,两阶段方法存在固有的局限性。它们对精确检测结果的依赖增加了对检测模块的要求,并需要高质量的标注数据集。此外,RoI 操作和后处理步骤在计算上非常密集,尤其是对于任意文本形状。

单阶段方法:

单阶段方法在单一架构中统一了文本检测和识别,不需要区分模块。通过共享损失函数,这两个任务可以联合训练和优化,避免因模块分离而导致的性能损失。第一个单阶段方法由 [226] 提出,引入了卷积字符网络,将字符检测为基本单元,并生成字符边界和标签,消除了对 RoI 裁剪的需求。虽然这种方法对英文文本有效,但计算量较大。CRAFTS [227] 继续采用这种基于字符的方法,将检测结果整合到基于注意力的识别器中,以在网络中传播识别损失。

后续发展如 [228] 引入了形状变换模块以优化端到端检测和识别,而 MANGO [229] 使用位置感知掩码注意力模块直接对字符序列应用注意力权重。最近的编码器-解码器模型进一步发展,PGNet [230] 和 PageNet [231] 将特征图解码为序列,而 SPTS 系列 [232, 233] 和 TESTR [234] 采用了基于 Transformer 的架构。通过交叉注意力机制增强的 CLIP 模型 [235] 改进了图像和文本嵌入之间的协作。在 [236] 中,引入了用于视频文本的文本定位识别方法 TransDETR,这是一种基于 Transformer 的框架,简化了文本的跟踪和识别,可能有利于文档文本定位识别任务。

尽管单阶段模型展示了多样性和提高的准确性,但其训练过程比两阶段模型更复杂,可能在某些特定的文本处理任务中表现不如两阶段模型。


5 数学表达式的检测与识别

5.1 数学表达式检测与识别简介

数学表达式的检测与识别主要关注在文档中识别和解释数学表达式。该过程通常根据数学表达式的类型进行分类:手写或印刷。手写数学表达式由于手写笔技术的进步,可以进一步分为在线(实时)和离线识别;此处讨论专注于离线数学表达式。

在文档中,数学表达式可以表现为独立于常规文本的显示数学表达式,或嵌入在文本行中的行内表达式。显示数学表达式通过文档布局分析更容易识别,而行内数学表达式由于与常规文本的接近性,带来了挑战,需要专门的检测技术。

早期的数学表达式检测方法依赖于基于规则的方法[237–245]或文档布局分析的改进[246–248]。对于行内数学表达式,统计和机器学习技术(包括支持向量机和贝叶斯模型)常用于特征提取和分类[244, 245, 249, 248, 250]。

随着深度学习的兴起,数学表达式检测越来越类似于文档图像中的目标检测,利用边界框或实例分割来隔离数学表达式区域。连续的数学表达式块可以通过高级分割技术进行管理。

识别印刷数学表达式的挑战最早在20世纪60年代被提出[251],标志着将数学表达式图像转换为结构化代码或标签的努力的开始。与常规文本不同,数学表达式由于其庞大的符号集、二维格式和依赖上下文的含义,带来了独特的挑战。到20世纪末,数学表达式识别被分为符号识别和结构分割[252]。序列方法成为关键方法,通过分类算法在识别之前对数学表达式中的符号进行分割[253–256],并辅以传达数学表达式二维结构的语法规则[257–259]。

另一种观点将数学表达式识别(MER)视为一个全局优化任务,从整体上识别符号及其相互关系,无需明确分割[260–262]。

随着序列深度学习在机器翻译等领域的成功,PAL模型引入了序列到序列的“编码器-解码器”架构到数学表达式识别中,代表了一个重要的进步[92]。尽管后续模型在此基础上进行了改进,但针对数学表达式检测和识别的端到端解决方案仍然严重短缺,导致了一些独特的挑战,这些将在此讨论。

5.2 数学表达式检测

5.2.1 早期工作与卷积神经网络

最初的数学表达式检测(MED)尝试使用卷积神经网络(CNNs)进行数学表达式定位。研究如[263, 196, 264]结合CNN与传统手动特征提取生成数学表达式识别的边界框。值得注意的是,[263]使用递归神经网络(RNNs)提取字符序列;然而,这些模型不支持完全端到端的检测,限制了其泛化能力和性能。Unet模型在[83]中被引入用于端到端检测,专注于印刷文档,避免了复杂的分割任务。虽然在检测行内数学表达式方面有效,但其对噪声的鲁棒性不足。

5.2.2 目标检测算法的进展

数学表达式检测通过改进通用目标检测算法演变为专门的形式,包括单阶段和双阶段方法。单阶段检测器,如DS-YOLOv5 [90],结合可变形卷积和多尺度架构以提高检测准确性和速度。同样,单次多框检测器(SSD)[85]通过滑动窗口策略加速了尺度不变检测的计算。2021年ICDAR竞赛展示了诸如广义焦点损失(GFL)的进步,以解决类别不平衡问题,并通过特征金字塔网络改善小型数学表达式的检测。双阶段检测器,尤其是 R-CNN 变体 [87],提供高精度,但计算速度较慢。Faster R-CNN 和 Mask R-CNN 等技术直接应用,并通过区域提议网络(RPN)进行性能优化 [265, 266]。尽管多锚点配置仍存在挑战,但无锚方法如 FCOS 和 DenseBox 已出现,然而它们缺乏针对数学表达式检测(MED)的特定优化 [267, 268]。

5.2.3 实例分割技术

实例分割算法与数学表达式检测(MED)高度契合,通过像素级分割有效管理非线性和密集的数学表达式配置。Mask R-CNN [269] 通过在其框架中加入像素掩码预测,提升了区域识别能力。PANet [270] 和 Hybrid Task Cascade (HTC) [271] 进一步改进了这些方法,通过增强语义定位并将检测与分割任务集成在一起。2024年,FormulaDet [91] 创新性地将MED视为实体和关系提取问题,成功利用上下文和布局感知网络。这种集成方法在理解和检测复杂公式结构方面表现出显著改进。

5.3 数学表达式识别(MER)

数学表达式识别(MER)模型通常使用编码器-解码器架构,将视觉表示转换为结构化格式如 LaTeX。大多数模型依赖于基于 CNN 的编码器,最近的进展整合了基于 Transformer 的编码器。在解码器方面,RNN 和 Transformer 架构被广泛使用,并通过多种增强措施提高了模型性能。

5.3.1 MER中的编码器方法

MER编码器的基本任务是提取有意义的图像特征,以涵盖数学表达式的复杂性。传统的CNN因其捕捉局部特征的能力而被广泛使用,但往往在处理数学表达式的多尺度和复杂表示方面存在困难。增强方法如密集卷积架构和多方向扫描(例如,MDLSTM)通过促进丰富的空间依赖性来解决这些限制。

卷积方法:包括DenseNet和ResNet在内的多种卷积架构被提议用于改善MER的特征提取[94, 95]。后续发展涉及通过将CNN与RNN或位置编码相结合,更好地捕捉数学表达式结构,从而增强空间和上下文的解释能力[92, 93]。

Transformer编码器:鉴于CNN在处理长距离依赖性方面的局限性,较新的模型使用基于视觉的Transformer,如Swin Transformer[96],通过自注意力机制提供了管理全局上下文和复杂性的更强能力。

5.3.2 MER中的解码器方法

在MER中,解码涉及类似于光学字符识别(OCR)的序列数据处理,使用RNN和Transformer等架构。基于RNN的解码器通过注意力机制增强,生成与输入固有顺序对应的序列[92, 97]。这些模型在管理上下文依赖性方面表现出色,这对于准确处理嵌套和层次化表达式至关重要。

高级设计结合了门控循环单元(GRUs)和注意力机制,以资源高效地处理复杂的数学表达式结构。同时,树结构和基于Transformer的解码器解决了消失梯度和计算开销的问题,从而增强了处理复杂公式符号的鲁棒性[98, 99]。

5.3.3 其他改进策略

除了在编码器-解码器架构上的改进,其他策略也被提出以提高MER的准确性。

字符和长度提示:结合字符和长度信息有助于处理不同的书写风格和序列长度,通常作为传统框架中的补充线索嵌入[100, 101]。

笔画顺序信息:利用笔画顺序数据对于在线手写数学表达式特别有益,能够提供关于结构语义的更深入见解[102, 103]。

数据增强:创新的数据操作技术,如模式生成和预训练增强,对于提高数据集的鲁棒性和模型性能至关重要,从而缓解架构停滞[93, 96]。


6 表格检测与识别

6.1 表格检测与识别简介

表格在各种文档中是重要的信息载体,包括报告、学术论文、财务报表和技术文档。它们以结构化和连贯的方式呈现数据,方便快速理解数据之间的关系和层次。因此,准确的表格检测与识别对于有效的文档分析至关重要。

表格检测是指在文档图像或电子文件中识别和分割表格区域。这个过程旨在定位表格,并将其与文本或图像等其他内容区分开来。表格检测的精确性直接影响后续结构识别和数据提取的成功,因此是一个关键的初始步骤。

目前的表格检测方法主要依赖于文档布局分析(DLA)和增强的目标检测算法。虽然DLA在识别和分割表格区域方面表现出色,但在处理缺乏明确边界的表格时常遇到困难。基于Transformer的目标检测算法也已被改进用于表格检测,优化了常规方法以获得更好的结果。

随着检测准确性的提高,研究重点已转向表格结构识别,涉及对检测后表格的内部结构进行分析。这包括分割行和列、提取单元格内容以及将单元格关系解释为结构化格式,如LaTeX。增强的识别能力促进了自动化信息处理,减少了人工干预,丰富了文档分析应用。

本节回顾了基于目标检测的表格检测算法,并讨论了近期研究中衍生出的三种基于深度学习的表格识别方法。

6.2 基于目标检测算法的表格检测

表格检测(TD)通常被视为目标检测任务,其中表格被视为对象,并应用于最初为自然图像开发的模型。尽管页面元素与自然图像之间存在固有差异,但通过仔细的重新训练和调整,一阶段、两阶段和基于Transformer的模型可以产生稳健的结果,常常作为TD的基准。

为了将目标检测适用于TD,许多研究致力于增强标准方法。例如,[104] 将PDF特征(如字符坐标)整合到基于CNN的模型中。[105] 通过修改表示和优化锚点,将Faster R-CNN定制用于文档图像。[106] 将可变形CNN与Faster R-CNN结合,以适应不同表格尺度,[107] 则专门针对表格微调Faster R-CNN。[108] 使用YOLO系列,增强了锚点和后处理技术。

为了解决表格稀疏性,[109] 扩展了SparseR-CNN,采用高斯噪声增强图像尺寸的提议和多对一标签分配,引入信息覆盖评分(ICS)来评估识别精度。

6.3 表格结构识别

历史上,表格结构识别依赖于手动规则和启发式方法,如用于检测线条的霍夫变换和用于分析无框表格的空白空间分析。然而,这些方法在处理复杂表格布局时存在困难。最近的进展利用了文档布局和公式检测算法来改进表格结构识别,将方法分为行列分割、单元格检测和序列生成方法。

TabNet [272] 是一种创新的深度学习模型,专为表格特征提取设计,能够以端到端方式处理表格数据的数值和分类特征。它引入了一种高效且可解释的学习架构,针对多种下游任务进行优化。TabNet的序列注意力机制使模型能够逐步选择性地关注相关特征,使用实例级稀疏特征选择和多步决策架构。这种方法增强了TabNet在局部和全局层面解释特征重要性的能力。

在此基础上,像TabTransformer [273]这样的模型进一步推进了表格特征提取,为开发稳健的表格识别模型提供了宝贵的见解。

6.3.1 基于行和列分割的方法

表结构识别的主要挑战通常在于检测单个单元格,尤其是在存在大量空白区域时。早期的深度学习方法通过将表格分割为行和列来解决这个问题。这些算法通常采用自上而下的策略,首先识别整体表格区域,然后将其分割为行和列。这种相对简单的方法在边界清晰、布局简单的表格中表现有效。

行和列检测:最初,表结构识别被视为表检测的扩展,主要利用目标检测算法识别表的边界框。分割算法随后建立行与列之间的关系。在这个背景下,卷积神经网络(CNN)和Transformer架构发挥了关键作用。例如,Faster R-CNN被改编用于表检测,随后使用全卷积网络(FCN)进行语义分割,有效捕获表的结构。同样,像Unet和DeepLab这样的模型促进了像素级识别的端到端语义分割。基于CNN的技术,如使用VGG-19的多任务学习,专注于表区域和行/列分割。相比之下,Transformers如DETR在识别图像中的全局关系方面表现出色,从而增强了泛化能力。创新包括通过transformer查询进行行和列分割,以及动态查询增强模型DQ-DETR。此外,双向门控循环单元(Bi-GRUs)通过双向扫描图像有效捕捉行和列分隔符。

融合模块:尽管早期的方法强调检测表格线条,但它们往往忽略了复杂的单元格间关系。先进的算法构建了模型来估计单元格之间的合并概率,从而提高了缺乏明确行和列线条的表格的识别准确性。例如,嵌入模块被用于在网格上下文中集成纯文本,通过GRU解码器指导合并预测。其他技术则利用邻接标准和空间兼容性来预测单元格合并。全局计算模型(如Transformers)的集成进一步增强了复杂表格的分析。

尽管近年来的努力旨在优化针对表格特征的架构,卷积神经网络(CNN)仍然是表格图像特征提取的基础。例如,用ShuffleNetv2替换ResNet18显著减少了模型参数。尽管取得了一些进展,但在缺乏明确线条的表格中,如内容稀疏或排列不规则的表格,仍然存在挑战。

6.3.2 基于单元格的方法

基于单元格的方法是自下而上的方法,通过检测单个单元格并根据视觉或文本关系合并它们来构建表格。这些方法通常包括两个阶段:检测单元格边界,然后关联单元格以形成整体表格结构,从而在处理复杂表格和减少错误传播方面具有优势。

早期的改进集中在提高单元格关键点检测和分割的准确性。例如,HRNet被用作高分辨率特征表示的骨干网络,用于多阶段实例分割任务。一些方法引入了新的损失项以增强检测,包括连续性损失和重叠损失。还有一些方法开发了双路径模型,以学习局部特征并优化表格分割。

顶点预测专注于单元格的角点,对于解决因角度或透视导致的变形单元格非常有益。像Cycle-Pairing Module这样的技术同时预测单元格的中心和顶点。将表格表示为图结构使得理解更加细致,利用图神经网络(GNNs)来建模复杂关系。这些方法有效改善了传统基于网格的方法在捕捉复杂单元格关系方面的局限性。

基于图的方法通过将表格视为图来有效利用单元格特征,其中单元格代表顶点,关系表示边。这种方法允许对邻接关系进行全面建模,使GNNs成为处理复杂表格的强大工具。

尽管有效,基于单元格的方法可能在计算上要求较高,因为它们涉及每个单元格的独立检测和分类。在这个阶段发生的错误可能会显著影响最终的表格结构。

当然,以下是保留文献引用标志后的翻译:

6.3.3 图像到序列

基于OCR和公式识别的进展,图像到序列的方法将表格图像转换为结构化格式,如LaTeX、HTML或Markdown。编码器-解码器框架利用注意力机制将表格图像编码为特征向量,然后解码器将其转换为描述性文本序列。

早期的工作由[124]通过编码器-解码器架构将科学论文中的图像翻译为LaTeX代码。后续模型通过双解码器架构改进了这些技术,使得结构和文本信息能够同时处理[125]。MASTER架构被改编用于场景文本识别,有效区分结构元素和位置信息[126]。

最近的进展提出专门为科学表格设计Transformer架构,以增强在特定上下文(如医疗报告)中对复杂特征的鲁棒性[127]。像VAST框架这样的解决方案通过使用双解码器来管理HTML和坐标序列,提高了准确性[128]。

虽然这些方法在处理复杂表格方面具有显著优势,但挑战在于训练模型以充分捕捉多样化的表格结构,同时避免错误传播。

6.4 图表感知

6.4.1 文档中与图表相关的任务简介

文档中的图表是数据的图形化表示,能够简洁直观地展示模式、趋势和关系。常见的图表类型包括折线图、柱状图、面积图、饼图和散点图,它们在传达关键信息方面起着关键作用。

处理文档中图表的任务通常涉及多个子任务,例如图表分类、复合图表分割、标题匹配、图表元素识别以及数据和结构提取。第一步,图表分类,对于区分不同类型的图表至关重要,因为每种类型需要独特的提取方法。例如,在折线图中,识别关键点如转折点和端点至关重要,而在柱状图中,数据和相关文本标签都是关键组件。确定图表是折线图、柱状图还是其他类型对于成功提取至关重要。

一旦分类完成,标题与图表进行匹配,复合图表被分割。诸如坐标轴、标签、刻度、数据点和图例等元素被检测和识别,通常使用边界框检测,以促进进一步的提取。

图表感知,也称为图表信息提取,涉及从视觉表示中检索数值和文本数据。最终目标是将视觉数据转换为结构化格式,如表格或JSON,从而使模型能够更有效地处理。例如,提取散点图点、折线图拐点、饼图比例和柱状图元素,并与相应的标签匹配以生成结构化数据。此外,对于流程图、结构图和思维导图等图表,提取结构信息有助于下游任务,如推理。

在图表理解和推理任务中使用视觉-语言模型,包括摘要和问答,为以自然语言解释和表示图表内容提供了巨大潜力[276]。

6.5 图表分类

图表分类通过关注图表的视觉特征和表现形式来对各种图表类型进行分类。此过程旨在准确识别图表类型,如柱状图、饼图、折线图、散点图和热图,可以手动或自动完成。主要挑战在于图表类型的多样性及其细微的视觉差异,这使得自动区分变得复杂。准确的分类对于后续任务(如数据挖掘和图表分析)至关重要。

AlexNet在2015年ImageNet竞赛中的成功引发了深度学习模型在图像分类(包括图表分类)中的主导地位。卷积神经网络(CNN)如VGG、ResNet、Inception和EfficientNet被用于从图表图像中提取高级特征。迁移学习通过利用从自然图像中学习到的特征来进一步提高图表任务的分类准确性[277]。ResNet和VGG等网络在大型数据集和复杂图表类型上表现尤为出色[129–132]。随着数据集的增长和图表复杂性的增加,DenseNet和EfficientNet等模型展示了卓越的性能[133–135]。

尽管有这些进展,基于CNN的模型在处理噪声或视觉上相似的图表时常常遇到困难。为了解决这些挑战,视觉Transformer成为一种有前景的发展。在2022年图表分类竞赛中,预训练的Swin Transformer表现优于其他模型[136]。Swin Transformer凭借其分层结构和局部窗口注意力机制,有效管理全局和局部图像特征,在处理复杂图表时超越了竞争对手[134]。Swin-Chart模型[137]通过集成微调的Swin Transformer,并采用权重平均策略,进一步提升了性能。此外,[138]提出了一种由粗到细的课程学习策略,显著改善了视觉上相似图表的分类。

6.6 图表检测与元素识别

在文档中检测和分割图表需要布局检测算法来准确识别图表区域。在提取数据之前,需要完成一些任务,如将图表与标题关联、分割多面板图表以及识别图表元素。

6.6.1 图表与标题关联

将图表与其标题关联在一起是理解图表数据和实现高效检索的关键。基于规则的算法通常通过分析图表周围文本的空间布局来确定这种关系 [139, 140],并采用匈牙利算法和贪心匹配等方法 [278, 279]。最近的方法使用基于CNN的分类器和OCR,通过大型数据集将标题与图表关联 [280, 281],而多模态Transformer结合图像和文本特征以改进标题关联 [282, 283]。

6.6.2 复合图表的识别

复合图表在单个框架内汇集多个子图表,每个子图表具有不同的数据。分割这些图表对于准确的数据提取至关重要。早期的方法采用几何特征和基于像素轮廓的分割 [141, 284]。将分割视为目标检测任务,像YOLO和Faster R-CNN等方法能够同时检测子图表及其元素 [285, 140]。

6.6.3 图表元素的检测

图表包含文本和视觉元素,这些元素对于数据提取至关重要。关键任务包括检测文本并将其分类为标题和标签等类别。最近的图表文本检测方法通常使用半自动系统,用户输入帮助识别重要元素,如轴标签 [280, 142–144]。传统系统如Microsoft OCR和Tesseract OCR尽管在精度上有限,但仍被广泛使用 [142, 150]。视觉元素的检测与文本类似,深度学习模型正逐渐取代基于规则的方法。2023年的Context-Aware系统使用Faster R-CNN来检测图例和数据点等元素,依赖于区域提议网络 [286]。

6.6.4 文本与视觉元素之间的关联匹配

将文本链接到相应的视觉元素对于解释图表数据至关重要。早期的方法是基于规则的,主要关注位置关系 [287–289, 131]。2022年引入的基于Swin Transformer的方法改进了这些技术,通过Transformer架构实现了更好的关联匹配 [136, 145]。

6.7 图表感知

图表感知从柱状图、折线图、饼图和散点图等图表中检索数据。该过程提取数据结构和文本信息。随着视觉语言模型的发展,端到端的图表到文本转换也成为可能。

6.7.1 图表数据提取

图表数据提取专注于基础图表,已经从手动方法发展到深度学习技术。半自动化系统仍然常见,例如允许用户输入以提高准确性的系统。[146]允许用户指定标签和坐标轴位置,而[144]则支持结果校正。现代方法要么是多阶段的,要么是端到端的。像FigureSeer [142]这样的两阶段模型首先对图表进行分类,然后进行目标检测。端到端模型,如ChartDETR [147],结合CNN和Transformer进行元素检测,生成结构化数据。还有研究利用大量的图像-表格数据,通过自监督训练实现图像到文本的转换 [290, 291]。针对特定图表类型,如散点图、柱状图和折线图,也开发了专门的方法 [148–150, 292]。

6.7.2 图表结构提取

从流程图和树状图等图表中提取结构信息需要检测诸如单元格框和连接线等组件。关于流程图结构提取的研究集中在手绘和机器生成的图表 [293, 294]。最近的模型,如FR-DETR [151],结合DETR和LETR同时检测符号和边缘,提高了准确性。然而,仍然存在挑战,特别是复杂连接线的问题,[152]强调了使用两阶段方法进行线条检测的组织结构图研究。


7 大模型在文档解析中的应用:概述与最新进展

文档提取大模型(DELMs)利用基于Transformer的架构,从文档中提取多模态信息(如文本、表格和图像)到结构化数据中。与传统的基于规则的系统不同,DELMs整合了视觉、语言和结构信息,使文档结构分析、表格提取和跨模态关联更加有效。这些能力使DELMs非常适合端到端的文档解析,为后续任务提供更深刻的理解。

随着多模态大语言模型(MLLMs),特别是视觉语言模型(LVLMs)的进步,它们在处理复杂多模态输入(如结合文本、图像和结构化信息的文档和网页)方面变得越来越熟练。尽管取得了这些进展,但在高效处理学术和专业文档方面仍然存在挑战,尤其是在OCR和详细文档结构提取方面。以下小节记录了DELMs的发展历程,重点介绍了它们对这些挑战的解决方案,并展示了每个模型如何在先前工作的基础上进行构建。

7.1 文档多模态处理的初步发展

早期的文档提取模型,如LLaVA-Next [156]、Qwen-VL [157]和InternVL [160],旨在理解文档中的多模态内容(即图像和文本)。这些模型通过在包含图像和文本的大规模数据集上进行训练,为大规模文档分析奠定了基础。然而,它们的通用图像理解能力不足以应对更复杂的学术和专业文档,其中领域特定任务如OCR和详细文档结构分析是必不可少的。这些模型在理解视觉内容方面表现出色,但在处理技术报告或学术论文等文本密集型文档时缺乏所需的细粒度。

为了解决这一差距,DocOwl1.5 [165] 和 Qwen-VL 等模型在特定文档数据集上进行了微调。对 CLIP-ViT 架构的增强提高了它们在文档相关任务中的性能。此外,像 TextMonkey [161] 和 Ureader [163] 等模型使用的滑动窗口技术,有助于将大型高分辨率文档分割成更小的片段,从而提高 OCR 的准确性。然而,这些早期模型在对齐大量文本和视觉信息方面仍然存在困难,比如在 GOT 模型 [6] 中,视觉推理的重点与细粒度文本提取产生了冲突。

7.2 OCR和端到端文档解析的进展

2023年,Nougat [170] 实现了文档提取的重大飞跃,成为首个专为学术文档处理设计的端到端Transformer模型。Nougat基于Donut,使用Swin Transformer编码器和mBART [295] 解码器,允许将学术文档直接转换为Markdown格式。这一创新整合了数学表达式识别和页面关系组织,特别适合科学文档。Nougat代表了一种从模块化OCR系统转向的变革,这些系统分别处理文本提取、公式识别和页面格式化。然而,它在处理非拉丁文字时存在局限性,并且由于计算需求高,转换速度较慢。

虽然Nougat解决了许多先前模型的不足,但其专注于学术文档,仍在其他领域如细粒度OCR任务和图表解释方面有待改进。Vary [296] 出现以应对这些挑战,通过改进图表和文档OCR。Vary通过将SAM风格的视觉词汇库整合到其框架中,扩展了视觉词汇库,从而在不分割文档页面的情况下实现更好的OCR和图表理解。然而,Vary在处理语言多样性和多页文档时仍然存在困难,显示出对更专业化模型的持续需求。

7.3 处理多页文档和细粒度任务

2024年,Fox [168] 引入了一种新方法,用于多页文档理解和细粒度任务。通过利用多个预训练的视觉词汇库,如CLIP-ViT和SAM风格的ViT,Fox在不修改预训练权重的情况下,实现了自然图像和文档数据的同时处理。此外,Fox采用了混合数据生成策略,合成结合文本和视觉元素的数据集,提高了跨页翻译和摘要生成等任务的性能。该模型解决了早期DELMs在处理复杂、多页文档结构时的局限性。

尽管Fox在多页文档处理方面表现出色,但其对层次化文档结构的处理被像Detect-Order-Construct [297]这样的模型进一步优化。Detect-Order-Construct引入了一种基于树构建的方法用于层次化文档分析,将过程分为检测、排序和构建三个阶段。通过检测页面对象、分配逻辑角色和建立阅读顺序,该模型重建了整份文档的层次结构。这种统一的关系预测方法在理解和重构复杂文档结构方面优于传统的基于规则的方法。

7.4 文档解析和结构化数据提取的统一框架

OmniParser [298] 等模型的引入标志着向统一框架的转变,这些框架结合了多个文档处理任务,如文本解析、关键信息提取和表格识别。OmniParser的双阶段解码器架构增强了结构信息的提取,提供了一种更可解释且高效的方法来管理文档中的复杂关系。通过将OCR与结构序列处理分离,OmniParser在文本检测和表格识别方面优于早期的任务特定模型如TESTER和SwinTextSpotter,同时减少了推理时间。

同时,GOT [6] 于2024年发布,引入了一种通用OCR范式,将所有字符(文本、公式、表格、乐谱)视为对象。这一方法使模型能够处理从场景文本OCR到细粒度文档OCR的广泛文档类型。GOT利用了500万对文本-图像数据集及其三阶段训练策略——预训练、联合训练和微调,使其在处理复杂图表、非传统内容如乐谱和几何图形方面超越了以往的文档特定模型。GOT代表了朝着能够处理现代文档中多样化内容的通用OCR系统迈进的一步。

综上所述,DELMs的发展以解决早期模型的特定局限性为标志。最初的发展改善了多模态文档处理,而后来的模型如Nougat和Vary提升了OCR能力和细粒度提取任务。像Fox和Detect-Order-Construct这样的模型进一步优化了多页和层次化文档理解。最终,像OmniParser这样的统一框架和像GOT这样的通用OCR模型正为更全面、高效和通用的文档提取解决方案铺平道路。这些进步在复杂文档的分析和处理方式上取得了显著进展,惠及学术和专业领域。


8 数据集

8.1 单任务数据集

8.1.1 文档布局分析(DLA)数据集

文档布局分析(DLA)数据集主要分为合成、真实世界(文档和扫描图像)和混合数据集。早期的研究集中在历史文档上,如IMPACT [299]、Saint Gall [14] 和GW20 [300]。更综合的数据集,如IIT-CDIP [301],包含700万份具有复杂布局的文档,也相继出现。2010年后,研究兴趣逐渐转向复杂印刷布局,同时继续研究手写历史文本。表1列出了过去十年在DLA研究中使用的关键数据集。此外,国际文档分析与识别会议(ICDAR)等主要会议举办的竞赛引入了具有高质量、标准化标注的数据集,这对于模型评估和基准测试至关重要。例如,ICDAR 2013页面分割竞赛专注于使用报纸、期刊和杂志进行文档布局分析,提供多种标注类型。ICDAR 2021竞赛则强调历史文档,解决由于老化导致的布局挑战,以及科学文献解析以提取结构化信息。

8.1.2 OCR 数据集

本节概述了常用的印刷文本OCR数据集。其中最著名且广泛使用的是各种ICDAR竞赛中引入的数据集,如ICDAR2013和ICDAR2015,这些数据集包括真实场景和文档图像,常用于评估场景文本检测算法。此外,Street View Text Perspective和MSRA-TD500等数据集专注于在复杂环境中检测不规则文本。合成数据集,如SynthText和SynthAdd,是人工生成的,包含大量数据,因此在文本检测和识别任务中很受欢迎。此外,ICDAR2015和ICDAR2019等数据集提供区域标注和文本内容,支持端到端OCR任务。表2总结了常用的OCR数据集。

8.1.3 数学表达式检测和识别(MED 和 MER)数据集

在文档分析中,数学表达式的检测和识别是关键研究领域。借助专门的数据集,研究人员在多样化数学表达式的识别方面取得了显著进展。表3列出了用于数学表达式检测和识别的常用基准数据集,涵盖了各种文档格式(如图像和文档)中的印刷和手写数学表达式。这些数据集支持数学表达式的检测、提取、定位和识别任务。

重要的数据集包括UW-III、InftyCDB-1和Marmot,通常用于评估印刷数学表达式的检测,涉及行内和独立数学表达式。ICDAR系列通过竞赛推动了该领域的发展,如ICDAR-2017 POD和ICDAR-2021 IBEM,这些数据集提供了广泛而复杂的场景。这些资源提高了识别模型的鲁棒性,并强调了在复杂文档结构中检测数学表达式的挑战。此外,FormulaNet和ArxivFormula等数据集强调大规模检测,特别是从图像中提取数学表达式。尽管取得了进展,但用于数学表达式检测和识别的数据集仍然有限,需要在多格式支持和鲁棒性方面进行改进。

 

8.1.4 表格检测和识别(TD 和 TSR)数据集

鉴于表格数据的广泛范围和复杂结构,许多具有代表性的数据集已被开发用于与表格相关的任务。基础的表格数据集主要来源于官方ICDAR竞赛,如ICDAR2013和ICDAR2017,这些数据集提供了多样的来源和适当的复杂性。为了增强数据集中表格的多样性,研究人员引入了TableBank,其中包含来自科学文献和商业文档的高质量标注表格。该数据集增加了表格的多样性,为表格检测和识别任务提供了更广泛的应用场景和更真实的数据。

此外,像TabStructDB这样的数据集通过提供更详细的结构化信息(如内部单元格表示和表格结构细节)丰富了现有数据集,促进了更精确的结构分析。一些数据集专门针对不规则表格样本。例如,Marmot数据集专注于有线和无线表格的检测,CamCap收集了拍摄于曲面上的不规则表格,而Wired Table in the Wild (WTW)则包含常见现实挑战(如遮挡和模糊)的表格。这些数据集增强了表格识别系统在复杂环境中的鲁棒性。

某些数据集专门针对特定的表格相关任务。例如,FinTabNet专注于金融表格的检测和识别,SciTSR专门用于识别学术文章中的表格结构。这些数据集为专业表格分析任务提供了有针对性的支持,推动了细分研究领域的进展。此外,WikiTableSet和Marmot等数据集涵盖了包括中文在内的多语言表格,有助于解决语言多样性不足的问题,并支持跨语言的表格检测和结构分析。

尽管现有的表格数据集为表格检测和结构识别等任务提供了丰富的数据源和支持多样化的场景,但在场景多样性、任务特异性和语言覆盖方面仍有改进空间。

 

8.1.5 图表相关任务的数据集

文档中的图表涉及多个关键任务,包括图表分类、数据提取、结构提取和图表解释。为支持这些任务,存在多种数据集,表5中列出了与图表分类和信息提取相关的数据集。图表分类领域相对成熟,拥有众多广泛使用的权威数据集。例如,DeepChart(2015)包含5,000个图表,分为五类用于分类任务。VIEW(2012)包括300个图表,分为三类,专注于提高图表图像的可访问性。ReVision(2011)包含2,601个实例,分为10类图表,支持图表的自动分类、分析和重新设计。这些数据集为推动图表分类研究提供了有力支持。

相比之下,图表数据和结构提取领域通常依赖于定制的数据集,如UB-PMC(2019-2022)和Synth(2020)。UB-PMC数据集收集了科学出版物中的真实图表,其子集在不同年份发布,涵盖4到15个图表类别,实例数量从2,000到30,000不等。Synth 2020由使用Matplotlib库生成的9,600个合成图表组成。虽然这些数据集对于数据提取任务非常有价值,但公开可用的数据源仍然有限。

在图表理解与推理领域,随着大型视觉语言模型的最新进展,高质量数据集的创建得以实现。例如,LineEX430k(2023)专注于折线图数据提取,包含430,000个折线图实例。OneChart(2023)是一个大型数据集,包含1,000万张图表,支持复杂任务,如图表信息提取、问答和推理。这些数据集显著推动了图表理解与推理的研究。

 

8.2 其他文档相关任务的数据集

除了特定任务导向的数据集,还有一些支持多种文档相关任务的数据集。一个值得注意的例子是FUNSD数据集,它广泛用于表单处理和文档OCR。尽管规模较小,仅有199张图像,但通过标注的文本块和关系,为解析表单和文档结构提供了宝贵的资源。该数据集非常适合用于结构化文档理解的早期训练和测试。

相比之下,SROIE数据集[372]包含1,000张收据图像,专注于提取关键信息,如公司名称、日期、地址和总费用,非常适合于金融和零售行业的文档信息提取自动化。

LOCR数据集[74]专注于学术文档任务,是一个从arXiv学术论文中提取的大规模资源。覆盖125,738页,包含超过7700万个文本位置对,提供复杂排版元素的标注边界框,使其适用于需要识别复杂布局的学术OCR任务。

另一个重要资源是DocGenome数据集[5],这是一个开源的大规模基准,包含来自arXiv的500,000份科学文档,涵盖153个学科和13种文档组件(如图表、数学表达式、表格)。使用DocParser标注工具创建,支持文档分类、布局检测、视觉定位等多模态任务,以及文档组件转换为LaTeX。该数据集旨在评估和训练用于文档理解任务的大型多模态模型。

OCRBench[373]是一个全面的评估平台,整合了29个数据集,涵盖文本识别、视觉问答和手写数学表达式识别等各种OCR相关任务。它突出了OCR任务的复杂性和多模态模型在跨任务性能中的潜力。

在专业领域,CHEMU[374]和ChEMBL25[375]数据集专注于识别化学文献中的分子数学表达式和化学结构,从而扩展了OCR在科学符号提取和分析中的应用。MUSCIMA++[376]和DeepScores[377]通过标注手写乐谱和符号,推动了乐谱符号识别。这些数据集展示了OCR在高度技术领域的潜力和挑战。

最近在大型文档模型数据集方面的发展为文档解析和大规模模型训练开辟了新途径。例如,Nougat利用来自arXiv、PubMed Central(PMC)和工业文档库(IDL)的数据集,通过将文档页面与源代码配对,特别是用于保留数学表达式和表格中的语义信息。

Vary数据集包括200万对中文和英文文档图像文本对,150万对图表图像文本对,以及12万对自然图像负样本对。该数据集结合了新的视觉词汇与CLIP词汇,适用于OCR、Markdown/LaTeX转换以及中英文环境下的图表理解任务。

GOT模型数据集包含约500万对图像文本对,来源于Laion-2B、悟空和Common Crawl,涵盖中英文数据。包括200万个场景文本数据点和300万个文档级数据点,合成数据集支持如乐谱识别、分子数学表达式、几何图形和图表分析等任务。这种多样性使GOT能够应对从一般文档OCR到专业和精细化OCR的广泛任务。

文档解析数据集的多样性和复杂性推动了文档相关算法和大型模型的发展。这些数据集为模型提供了广泛的测试平台,并为各个领域的文档处理提供了新解决方案。


9 评价指标

9.1 文档布局分析(DLA)的指标

在文档布局检测中,结果通常包括文档元素的坐标区域信息和分类。因此,文档布局分析(DLA)的评价指标主要关注元素位置识别的准确性、识别准确性以及结构层次的重要性,以全面反映模型在分割、识别和重建文档结构方面的表现。对于元素位置识别的准确性,主要使用交并比(IoU)来衡量预测框与实际框之间的重叠程度。关于模型识别准确性,常用指标包括精确率(Precision)、召回率(Recall)和F1分数。除了上述传统评价指标外,可以根据具体分析目标灵活调整。在接下来的章节中,对于文本检测、数学表达式、表格检测等,主要使用精确率、召回率、F1分数和IoU进行评价,因此不再详细介绍。

9.2 OCR的指标

文本检测和文本识别是OCR任务中的两个关键步骤,各自有不同的评价指标。文本检测更关注定位准确性和覆盖率,主要使用精确率、召回率、F1分数和IoU来评估性能。相比之下,文本识别强调识别结果的正确性,通常使用字符错误率、词错误率、编辑距离和BLEU分数进行评估。在像LOCR [74]这样的项目中,还引入了METEOR,以弥补BLEU的一些不足,提供机器生成文本与参考文本之间相似性的更全面评价。

9.3 数学表达式识别(MER)的指标

虽然数学表达式可以在转换为格式化代码后使用OCR任务指标进行评估,但目前在数学表达式识别领域中,BLEU、编辑距离和ExpRate是最常用的评价指标,各自都有其局限性。由于数学表达式可能有多种有效表示,仅依赖文本匹配的指标无法公平准确地评估识别结果。一些研究尝试将图像评价指标应用于数学表达式识别,但效果不理想。数学表达式识别结果的评估仍是一个需要进一步探索和发展的领域。[379]提出了字符检测匹配(CDM)这一指标,消除了不同LaTeX表示引起的问题,提供了一种更直观、准确和公平的评估方法。

9.4 表格识别的指标

在表格检测任务中,除了常用的字符级召回率、精确率和F1分数外,还可以使用纯度和完整性进行检测。表格结构识别主要关注分析表格内部的布局结构及单元格之间的关系。除了传统的精确率和召回率外,最近开发的详细评估方法为表格识别任务提供了更多维度的评估,如行和列的准确性、多列召回率(MCR)和多行召回率(MRR)[380]。随着表格识别领域的不断发展,一些通用的评估指标也被提出,如单元格邻接关系(CAR)和基于树编辑距离的相似性(TEDS)[125]。[128]介绍了S-TEDS指标的简化版本,该版本仅考虑表格的逻辑结构,忽略单元格内容,重点关注行、列、跨行和跨列信息的匹配。TGRNet [152]中的性能评估指标提供了一些创新思路,提出了如Aall的指标,描述了四个逻辑位置,同时还有测量综合性能的Fβ。它还使用加权平均F分数来评估在不同IoU阈值下邻接关系预测的性能。涉及将表格转换为LaTeX或其他结构化语言的任务时,通常以字符级评估为主要方法。字母数字符号评估(AN)评估模型生成的结构化代码与真实值中的字母数字符号之间的匹配程度。LaTeX符号和非LaTeX符号评估(LT)测量模型生成LaTeX特定符号的准确性。此外,平均Levenshtein距离(ALD)计算生成的结构化代码与真实值之间的编辑距离,量化两者字符串的相似性。由于表格检测和识别任务的特殊性,评估指标种类繁多。许多研究根据其需要提出不同的指标,使用多种指标的组合可以更全面地评估模型性能。随着任务复杂性的增加,未来的评估工作可能会更多依赖于细粒度的评估指标。

9.5 与图表相关任务的指标

在图表分类中,评价指标与标准分类任务相似,因此这里不再详细说明。对于图表元素检测,通常使用平均IoU、召回率和精确率来评估元素(如文本区域、柱状图)的检测[365]。此外,对于数据转换,使用s0(视觉元素检测得分)、s1(图例匹配准确性的平均名称得分)、s2(数据转换准确性的平均数据系列得分)和s3(所有指标的综合得分)等指标。这些指标全面评估了数据提取框架对各种类型图表数据的有效性和鲁棒性。

从图表中提取数据和结构的任务仍未成熟,尚未建立标准的评价指标。例如,在ChartOCR项目中,为不同类型的图表(如柱状图、饼图和折线图)使用自定义指标。柱状图评估使用预测和真实值边界框之间的距离函数,通过解决分配问题得出分数。对于饼图,在序列匹配框架中考虑数据值的重要性和顺序,通过动态规划计算得分。ChartDETR使用精确率、召回率和F1分数。

对于折线图,使用严格和宽松的对象关键点相似性指标,提供结合准确性和灵活性的平衡视角。LINEEX也采用了这种方法。

对于具有结构关系的图表(如树形图),结构化数据提取评估器修改了现有指标。例如,在[152]中,所有权或从属关系等元组只有在所有组件都准确提取的情况下才被视为正确,并计算精确率、召回率和F1分数。

StructChart [368]引入了面向图表结构化表示的度量(SCRM),用于评估图表感知任务。SCRM包括在固定相似性阈值下的精确率和跨可变阈值的平均精确率(mPrecision)。公式为:

 这里,L表示图像总数,( d(i)_{\text{IoUthr,tol}} )是判别函数,如果第i个图像的IoU在容差范围内满足阈值,则输出1;否则,输出0。类似地,( d(i, 0.05t)_{\text{tol}} )是用于不同阈值t从0.5到0.95的另一个判别函数。

总之,由于评估标准的多样性和复杂性,图表数据和结构提取任务具有显著的发展潜力。随着研究的推进,建立一个全面且普适的图表提取评估系统变得越来越必要。


10 用于文档提取的开源工具

表10列出了几个在GitHub上获得超过1000颗星的开源文档提取工具,设计用于处理各种文档格式和转换任务。

光学字符识别(OCR)是文档处理和内容提取的关键方面。它使用计算机视觉技术来检测和提取文档中的字符和文本,将图像转换为可编辑和可搜索的数据。现代OCR工具在准确性、速度和多语言支持方面有了显著提高。广泛使用的通用OCR系统,如Tesseract和PaddleOCR,在这一领域做出了重大贡献。Tesseract是一个开源引擎,提供强大的文本识别和灵活的配置,使其在大规模文本提取任务中特别有效。PaddleOCR则以其强大的多语言能力,在准确性和速度方面表现出色,尤其是在复杂场景中。

虽然像Tesseract和PaddleOCR这样的通用工具在文档OCR方面非常有效,但像Unstructured和Zerox这样的专业工具在处理复杂文档结构(如嵌套表格或包含文本和图像的文档)方面表现优异。这些工具特别擅长提取结构化信息。

除了OCR,大型模型在文档解析中也越来越多地被使用。最近的模型如Nougat、Fox、Vary和GOT在处理复杂文档,特别是PDF格式方面表现出色。例如,Nougat专为解析科学文档而设计,擅长提取公式和符号。Fox结合多模态信息,提高了其在语义理解和信息检索方面的有效性。Vary专注于解析多种文档格式,包括嵌入图像、文本框和表格的格式。GOT作为OCR 2.0时代的领先模型,采用统一的端到端架构和先进的视觉感知能力,使其能够处理各种内容,如文本、表格、数学公式、分子结构和几何图形。此外,它还支持区域级OCR、高分辨率处理和多页文档的批量操作。

此外,常用于图像和语言任务的大型多模态模型,如GPT-4、QwenVL、InternVL和LLaMA系列,也能够在一定程度上执行文档解析。


11 讨论

用于文档解析的模块化文档解析系统和视觉语言模型(VLMs)仍然面临诸多挑战和局限性。

管道式系统的挑战与未来方向。管道式文档解析系统面临的主要挑战包括多个模块的集成、输出格式的标准化以及复杂文档中不规则的阅读顺序。例如,像MinerU这样的系统需要对输入文档进行大量的预处理、复杂的后处理以及对每个模块进行特定训练以达到预期效果。此外,关于文档阅读顺序的研究仍然有限,许多方法仍依赖于难以应对复杂布局(如多列格式)的规则。管道系统通常逐页处理文档,进一步限制了其便利性。

这些系统的有效性也很大程度上依赖于各个模块的性能;因此,每个模块的进步对于整体系统的改进至关重要。尽管取得了一些进展,个别模块仍然存在具体挑战:

布局分析(DLA):分析具有嵌套元素的复杂文档布局的准确性需要提高。未来的DLA技术应关注于整合语义信息,以增强对细粒度布局(如多级标题结构)的理解。
文档OCR:当前系统在准确识别大块密集文本和处理多种字体格式(如粗体和斜体)方面存在困难。此外,在一般OCR任务与特定任务(如表格识别)之间取得平衡仍是一个问题。
表格检测与识别:表格的形状对检测性能有显著影响。例如,检测没有明显边界或跨越多页的表格仍然具有挑战性。在识别方面,处理嵌套表格、无单元格边界的表格以及包含多行文本的单元格仍需改进。
数学表达式识别:检测和识别文档中的内嵌和多行数学表达式仍然困难。对于印刷的数学表达式,结构提取需要改进,而在处理不同字体大小、噪声和失真情况下的屏幕捕获数学表达式的鲁棒性也需要关注。手写数学表达式带来了额外的挑战。此外,当前数学表达式识别的评估指标不足,呼吁更细化和一致的基准。
图表提取:从文档中提取图表是一个不断发展的领域,但缺乏统一的定义和标准转换范式。现有方法通常是半自动化或为特定图表类型设计的,面临应用限制。端到端模型具有前景,但在识别图表元素、OCR和理解图表结构方面需要改进。尽管当前的多模态大语言模型(MLLMs)在处理复杂图表类型方面具有巨大潜力,但难以集成到模块化文档解析系统中。

大型视觉模型的挑战与未来方向。相比之下,用于文档解析的大型视觉模型通过提供端到端解决方案,消除了复杂的模块连接和后处理的需求。它们还解决了管道式系统在理解文档结构和生成具有更高语义一致性的输出方面的一些局限性。然而,大型模型也存在自身的挑战。

性能限制:最显著的是,大型文档解析模型并不总是优于模块化系统,特别是在区分页元素(如页眉和页脚)或处理高密度文本和复杂表格结构方面。这部分是由于缺乏针对复杂文档和高分辨率图像任务的精细调优模型。
参数冻结和OCR能力:尤其是,许多LVM在训练期间冻结LLM参数,这在处理大量文本时限制了其光学字符识别(OCR)能力。尽管当前模型在编码文档图像方面表现出色,但在长文档生成中重复输出和格式错误等问题仍然存在。这些问题可以通过开发更好的解码策略或采用正则化技术来缓解。
资源效率:大型模型的训练和部署成本也很高,其在处理高密度文本时的低效率导致了相当大的资源浪费。在处理大量文本时,现有的图像和文本特征对齐方法不足,特别是在A4大小文档等密集格式中。虽然大型模型本质上需要大量参数,但通过架构改进和数据增强可以帮助减少其规模。

除了技术挑战,当前的文档解析研究往往集中在结构化文档类型,如科学论文和教科书,而对更复杂的文档(如说明书、海报和报纸)的研究不足。这种狭窄的关注限制了该领域的整体发展。需要更大和更多样化的数据集来支持训练和评估工作。


12 结论

本文详细概述了文档解析技术,涵盖了模块化系统和大型模型。它回顾了数据集、评估指标和开源工具,并强调了该领域当前的局限性。由于文档解析技术在检索增强生成(RAG)、信息存储以及作为训练数据来源等方面的广泛应用,其受到了越来越多的关注。虽然模块化系统被广泛使用,但端到端的大型模型在未来发展中展现出巨大潜力。未来,文档解析有望发展成为一种更精确、多语言且下游任务友好的技术,以支持多样化的OCR任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35859.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Web】AlpacaHack Round 7 (Web) 题解

Treasure Hunt flag在md5值拼接flagtxt的文件里,如 d/4/1/d/8/c/d/9/8/f/0/0/b/2/0/4/e/9/8/0/0/9/9/8/e/c/f/8/4/2/7/e/f/l/a/g/t/x/t 访问已经存在的目录状态码是301 访问不存在的目录状态码是404 基于此差异可以写爆破脚本 这段waf可以用url编码绕过 做个lab …

操作系统——文件系统

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。 文件系统是操作系统中以文件方式管理计算机软件资源的软件和被管理的文件和数据结构(如目录和索引表等)的集合。从系统角度来看,文件系统是…

java面向对象实验——扫雷+24点

扫雷 窗口绘制: GameWin package com.sxt;import javax.swing.*;public class GameWin extends JFrame {void launch(){this.setVisible(true);this.setSize(500, 500);this.setLocationRelativeTo(null);this.setTitle("SWE23070扫雷游戏");this.setD…

GPU 调度策略架构与CUDA运行机制(二)

市面上有很多GPU厂家,他们产品的软硬件架构各不相同,但是核心往往差不多,整明白了一个基本上就可以触类旁通了。针对当前gpu底层的一些架构以及硬件层一些调度策略的话估计大部分人就很难说的上熟悉了,这个不是大家的错&#xff0…

ddos攻击防御的方法有哪些

DDoS攻击,即分布式拒绝服务攻击(Distributed Denial of Service),是一种恶意的网络攻击方式,旨在通过发送大量流量或请求到目标服务器、服务或网络,使其资源耗尽,无法处理合法用户的请求,从而导致服务中断或…

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

集成 Applitools 进行视觉回归测试(快速入门) 简介Applitools 的核心特点Applitools 的应用场景1. 准备工作2. 获取示例项目2.1 下载示例代码2.2 安装依赖2.3 选择测试运行方式3. 代码解析3.1 测试用例示例4. 运行测试4.1 设置 Applitools API 变量4.2 设置 Applitools Eyes …

RuoYi中数据分页功能实现的步骤(nvliz)

目录 前言 数据分页的作用 RuoYi中的实现步骤 前端的显示界面(实例介绍) 源码分析(前端) Pagination(分页组件)介绍 前端:getList()(方法源码分析) 源码分析(后端) 后端:List()…

HarmonyOS 5.0应用开发——全局广播的使用

【高心星出品】 文章目录 全局广播的使用公共事件接受系统公共事件原理 发布与订阅自定义公共事件订阅系统事件 全局广播的使用 全局广播可以用来做应用间通信,进程间通信,包含订阅、发布等功能。 公共事件 CES(Common Event Service&…

ceph存储池

1、存储池 1、存储池的概念 存储池就是ceph的逻辑分区,专门用来存储对象的 特点 将文件切片成对象,通过hash算法,找到存储池中的pg,池中的pg根据crush算法找到osd节点 存储中的PG数量对性能有重要的影响,过多和过少…

Ollama记录

先在官网下载Ollama 模型下载 ollama run qwen2:0.5b 可以快速部署很多模型 方便 可以替换openai api key from openai import OpenAIclient OpenAI(base_url https://127.0.0.1:11434/v1,api_keyollama, # required, but unused )response client.chat.completions.…

锻造船用发动机动力系统,铸强船舶“心脏”

船舶是海洋、湖泊及河流中重要的水上交通工具,不仅能够促进海上经济的发展,还能够保卫国家的制海权。船舶动力装置,也就是船舶的核心动力源——船用发动机动力系统对船舶的重要作用不言自明,关系到船舶的性能质量,能够…

LIN状态管理

文章目录 前言一、状态管理二、实现过程三、response_error信号的变化条件四、节点内部报告五、测试应用方式1:LIN ISC方式2:CAPL脚本方式 前言 在LIN专栏的文章中,我们介绍了 LIN的网络管理:LIN网络管理:休眠&唤…

云帆在线学习考试系统对国产化数据库的支持情况说明

云帆在线学习考试系统对国产化数据库的支持情况说明 云帆学习考试系统是一款优秀的学习和考试系统!多年以来一直深耕在线教育板块,积累了丰富的行业经验,多年来的产品和技术沉淀,服务了众多政府机构、知名高校、企事业单位。 今…

反向传播算法中的误差项

背景 在反向传播算法中,我们需要计算每个神经元的误差项,以便更新网络中的权重。对于输出层的神经元,误差项的计算公式如下: 其中: E是损失函数(例如均方误差)。 zk 是输出层神经元的加权输入&a…

如何高效整合金蝶云星辰采购入库单与聚水潭系统

星辰-采购入库单集成到聚水潭的技术实现 在企业信息化管理中,数据的高效流转和准确对接至关重要。本文将分享一个实际案例:如何通过轻易云数据集成平台,将金蝶云星辰V2系统中的采购入库单数据无缝集成到聚水潭系统中,实现业务流程…

Uniapp的App环境下使用Map获取缩放比例

概述 目前我试过的就是你用vue后缀是拿不到比例的你可以用nvue当然uniapp的uvue应该是更加可以的我使用的是高德所以你得在高德的后台声请原生的Android的key才可以如果是vue3的开发模式的话不用使用this来获取当前对象使用scale对象来接受和改变缩放比例会比较友好然后直接走…

C++入门项目:Linux下C++轻量级Web服务器 项目详解(小白篇)

拿到一个项目首先先跑通,然后再慢慢来看代码,关于怎么将这个项目跑通,上一篇已经讲过,感兴趣的小伙伴可以移步下面的链接,或者其他博主的教程。 C入门项目:Linux下C轻量级Web服务器 跑通|运行|测试&#xf…

RuoYi集成Drools,并实现数据库获取规则

Drools是一个开源的业务规则管理系统(BRMS)和规则引擎,它允许开发者以接近自然语言的形式定义业务规则,并将这些规则应用到应用程序中,实现业务逻辑的自动化和决策过程的优化。Drools基于Java语言开发,使用…

什么是API接口?如何调用API接口?

一、什么是 API 接口 定义 API(Application Programming Interface)即应用程序编程接口。它是一组定义好的规则和协议,允许不同的软件应用程序之间进行通信和交互。可以把 API 想象成是餐厅的服务员,当顾客(一个软件应…