【文档智能】ERNIE-Layout

news2024/11/25 11:35:28

前言

这是百度在2022年的一篇工作:ERNIE-Layout。该工作通过增强布局知识的预训练模型,以学习更好的表示,结合文本、布局和图像的特征。旨在利用文档布局相关信息,进行文档理解,进一步提高文档信息抽取的性能。

1、文档布局信息的挖掘与利用

问题1:以OCR识别文档将信息序列化,以从左到右、从上到下的形式排列文字。然而,对于复杂结构布局的文档,效果不够理想。

解决方法:在文本输入后的序列化过程中加入一个基于布局的文档解析器,为每个输入文档生成一个合适的阅读顺序,这么做可以比OCR出来的结果的顺序更符合人类阅读习惯,然后为每个文本、视觉token都设置位置嵌入和布局嵌入。

问题2:现有方案将布局信息作为一种特殊的位置特征,如:layoutlm、layoutlmv2等,然而,布局可以看作是一种模态信息,将布局信息编码为一种特殊的位置特征,模型将缺少布局上的语义表达。

解决方法:为了实现多模态间的互动,文章借鉴了DeBERTa的解耦注意力,并提出了一种空间感知的分解注意力机制。以此向模型引入布局语义信息。

2、模型架构概述

ERNIE-Layout基于Transformer Encode架构,并提出以下trick:

2.1 OCR工具提取信息

借助OCR工具提取图片中的文字及文字对应的坐标信息(bounding box)。例如:paddleOCR等.

2.2 复杂布局position_ids

如下图,文档中同时包含了双栏结构、图片、表格等内容,其布局结构非常复杂,如果借鉴传统的OCR识别,效果非常差,在ERNIE-Layout借鉴了 DeBERTa 的解耦注意力,依靠Layout-Parser来设计 position_ids。LayoutParser是借助于目标检测模型来提取重要的内容patch,从而避免了两列内容按行扫描的混乱结果。

Layout-Parser

论文:https://arxiv.org/pdf/2103.15348.pdf

代码:https://github.com/Layout-Parser/layout-parser

2.3 预训练

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbAWxhDX-1690101172028)(/Users/junhui/Desktop/yjh/文章/ernie-layout/ernie-layout.assets/截屏2023-07-22 22.43.17.png)]

​ 模型整体架构

ERNIE-Layout通过引入序列化模块来纠正栅格扫描的顺序,视觉编码器提取相应的图像特征。通过空间感知的分解注意力机制,ERNIE-Layout提出了四个预训练任务。

  • Reading Order Prediction,阅读顺序预测

    由于transformer的输入序列没有明确的文本界限(不知道每段是否结束,段与段之间的区分)。所以为了模型对布局知识和阅读顺序之间的关系有更好的理解,提出了阅读顺序预测。

  • Replaced Region Prediction,替换区域预测

    为了使模型能够感知到图像斑块和文本之间的细微对应关系,在布局知识的帮助下,提出了替换区域预测。具体来说,随机选择10%的斑块,用另一幅图像的斑块来替换,处理后的图像由视觉编码器编码,并输入多模态变换器中。然后,Transformer输出的[CLS]向量被用来预测哪些斑块被替换。

在这里插入图片描述

  • Masked Visual-Language Modeling,遮蔽视觉-语言模型

    目的是根据文本上下文和多模态信息恢复被Mask的文本标记,类似MLM预训练。

  • Text-Image Alignment,文本-图像对齐

    目的是帮助模型学习图像区域和边界框的坐标之间的空间对应关系,其实就随机遮蔽一些文字,通过一个线型层,判断文字是否被覆盖,这点与layoutlmv2预训练任务一致。

3、输入表示(Embedding)

ERNIE布局的输入序列包括文本部分和视觉部分,以及表示每个部分都是其模态特征的组合和布局嵌入

  • Text Embedding:主要利用BERT将序列化模块后的文本进行embedding。
  • Visual Embedding:提取文档特征,将文档图片转换成224×224格式后,利用Faster-RCNN作为视觉编码的backbone获得visual_embeddings,然后加入position_embeddings、token_type_embeddings 、bbox_embeddings得到最终的图像Embedding。
  • Layout Embedding:主要将文本和文本对应的bounding box【x1,x2,y1,y2,h,w】、图片和图片对应的bounding box归一化到[0,1000]的范围,经过embedding得到【x1_embedding、x2_embedding、y1_embedding、y2_embedding、h_embedding和w_embedding】。

4、demo

文档信息抽取案例

在这里插入图片描述

code:

from paddlenlp import Taskflow
docprompt = Taskflow("document_intelligence")
print(docprompt([{"doc": "./resume.png", "prompt": ["五百丁本次想要担任的是什么职位?", "五百丁是在哪里上的大学?", "大学学的是什么专业?"]}]))

结果:

[{'prompt': '五百丁本次想要担任的是什么职位?',
  'result': [{'end': 7, 'prob': 1.0, 'start': 4, 'value': '客户经理'}]},
{'prompt': '五百丁是在哪里上的大学?',
  'result': [{'end': 37, 'prob': 1.0, 'start': 31, 'value': '广州五百丁学院'}]},
{'prompt': '大学学的是什么专业?',
  'result': [{'end': 44, 'prob': 0.82, 'start': 38, 'value': '金融学(本科)'}]}]

更多demo开源地址:https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/ernie-layout

总结

优点:ERNIE-Layout对识别到的文档字词进行重新排列,设计了一种新的注意力机制,以帮助ERNIE-Layout在文本/图像和布局特征之间建立更好的联系。在文章中通过大量的实验证明了ERNIE-Layout的有效性,并且分析了利用不同的布局知识对文档理解的影响。

缺点:ERNIE-Layout整体依赖于paddleOCR的识别效果,然而,paddleOCR的识别精度与推理速度呈负相关。

参考文献

【1】ERNIE-Layout: Layout Knowledge Enhanced Pre-training for Visually-rich Document Understanding,https://arxiv.org/abs/2210.06155

【2】LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis,https://arxiv.org/pdf/2103.15348.pdf

【3】https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/ernie-layout

【4】https://github.com/Layout-Parser/layout-parser

【5】LayoutLM: Pre-training of Text and Layout for Document Image Understanding,https://arxiv.org/abs/1912.13318

【6】LayoutLMv2: Multi-modal Pre-training for Visually-Rich Document Understanding,https://arxiv.org/abs/2012.14740

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

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

相关文章

FPGA_学习_13_方差计算小模块

测距器件APD的性能与器件本身的温度、施加在APD的偏置电压息息相关。 在不同的温度下,APD的偏压对测距性能的影响非常大。 要确定一个合适的APD的偏压Vopt,首先你要知道当前温度下,APD的击穿电压Vbr,一般来讲,Vopt Vb…

【Zerotier】通过docker自建PLANET服务器

在如今全球互联的时代,我们对于互联网的依赖程度越来越高。然而,传统的网络连接方式在某些情况下可能会受到一些限制,例如局域网的范围限制、防火墙的阻断或者设备所处的多层NAT等。但是,现在有一个名为ZeroTier的工具出现了&…

yolov7 详解(1):yolov7 网络结构及创新点

文章目录 0. 概述1. 网络整体结构2.创新点2.1 创新点1:E-ELAN结构 (Extended efficient layer aggregation networks)ELAN结构2.2 创新点2: 模型缩放2.3 创新点3: 计划的重参数化卷积2.3.1 结构重参化原理2.3.2 什么是计划的重参数化卷积2.4 标签匹配策略论文: Trainable bag-…

【网络】协议与序列化反序列化

目录 一、相关概念 二、自定义协议 三、编写服务器 四、编写客户端 五、JSON 六、补充内容 一、相关概念 在《网络编程套接字》中,我们实现了服务器与客户端之间字符串的通信。但是更多的时候,需要传输的不仅仅是字符串,而是结构化的数…

奇思 妙想

一. main方法可以被其它方法调用吗? 在C语言中,一个工程内只能声明一个main函数,如果声明多个,则程序无法运行然后报错。Java则不同,Java在一个工程内,可以声明多个main方法,但在程序执行时&am…

搭建OIDC Provider,以Golang为例

搭建OIDC Provider,以Golang为例 1 需求 结合对OIDC:https://blog.csdn.net/weixin_45747080/article/details/131810562的理解,我尝试自己搭建OIDC的demo。在搭建demo之前,我需要先确定我想要实现成什么样子。以上文提到的http…

【算法|动态规划No.6】leetcode63. 不同路径Ⅱ

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

使用diagrams画架构图

序 最近发现一个画架构图的神器diagrams,提供了很多云厂商及开源组件的图标,相比于C4-PlantUML显得更专业一点。 之前写过技术文档画图工具箱,diagrams属于diagram as code工具派别。 mac安装 brew install graphviz pip install diagrams…

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据)

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.文件结构3.Excel数据4.分块代码4.1 arithXover.m4.2 delta.m4.3 ga.m4.4 gabpEval.m4.5 initializega.m4.6 maxGenTerm.m4.7 nonUnifMutation.m4.8 normGeomSel…

【模型压缩】 LPPN论文阅读笔记

LPPN论文阅读笔记 LPPN: A Lightweight Network for Fast Phase Picking 背景 深度学习模型的问题在于计算复杂度较高,在实际数据处理中需要面临较高的处理代价,且需要专用的加速处理设备,如GPU。随着数据累积,迫切需要设计一种…

IDE/mingw下动态库(.dll和.a文件)的生成和部署使用(对比MSVC下.dll和.lib)

文章目录 概述问题的产生基于mingw的DLL动态库基于mingw的EXE可执行程序Makefile文件中使用Qt库的\*.a文件mingw下的*.a 文件 和 *.dll 到底谁起作用小插曲 mingw 生成的 \*.a文件到底是什么为啥mingw的dll可用以编译链接过程转换为lib引导文件 概述 本文介绍了 QtCreator mi…

17 界面布局--登录界面

要点: 利用widgets做布局:水平,垂直,栅格 利用弹簧设置收缩 widget宽高比实际控件大很多:设置Fixed 如果需要去除其余边框间隙可以设置layout 将最小尺寸和最大尺寸设置为固定即为固定尺寸 设置窗口标题:wi…

基于DeepFace模型设计的人脸识别软件

完整资料进入【数字空间】查看——baidu搜索"writebug" 人脸识别软件(无外部API) V2.0 基于DeepFace模型设计的人脸识别软件 V1.0 基于PCA模型设计的人脸识别软件 V2.0 更新时间:2018-08-15 在观看了吴恩达老师的“深度学习课程”,了解了深…

关于新手学习Ubuntu使用vim,如何使用c/cpp的编译器以及如何使用makefile的详细记录

ubuntu下 首先如何编辑 1.启动vim编辑器 打开终端,输入vim,按回车键。 vim gcc.c 2.进入编辑模式 输入i ,进入插入模式。就可以修改文件内容了。 按“ESC”退出编辑模式。 3.退出 Shift键 “:”,切换到命令模式。 输入“q”后回车&…

基于OpenCV的红绿灯识别

基于OpenCV的红绿灯识别 技术背景 为了实现轻舟航天机器人实现红绿灯的识别,决定采用传统算法OpenCV视觉技术。 技术介绍 航天机器人的红绿灯识别主要基于传统计算机视觉技术,利用OpenCV算法对视频流进行处理,以获取红绿灯的状态信息。具…

【Linux】Tcp服务器的三种与客户端通信方法及守护进程化

全是干货~ 文章目录 前言一、多进程版二、多线程版三、线程池版四、Tcp服务器日志的改进五、将Tcp服务器守护进程化总结 前言 在上一篇文章中,我们实现了Tcp服务器,但是为了演示多进程和多线程的效果,我们将服务器与客户通通信写成了一下死循…

【Linux】 由“进程”过渡到“线程” -- 什么是线程(thread)?

知识引入初识线程1.什么叫做进程?2.什么叫做线程?3.如何看待我们之前学习的进程? 理解线程创建线程函数调用1.线程一旦被创建,几乎所有资源都是被线程所共享的2.与进程之间切换相比,线程的切换 初识线程总结&#xff1…

JWT 的使用

一、简介 JWT将用户的一些信息存储在客户端,访问后台时会带着JWT,服务器要对这个JWT进行检验。 由于signKey是存放在服务器端的,所以比较安全只要JWT被篡改就会立刻发现。 JWT认证的优势 1.简洁:JWT Token数据量小,传…

WebRTC带宽评估 -- Transport-wide Congestion Control

简述:在RTP包中增加transport-wide-cc扩展头,放置传输层面的包序号。视频接收端记录RTP包的接收时间,并通过RTCP Feedback消息反馈到视频发送端,发送端结合缓存的RTP包发送时间,基于丢包和延迟估算当前带宽&#xff0c…

zabbix 企业级监控 (3)Zabbix-server监控mysql及httpd服务

目录 web界面设置 server.zabbix.com 服务器操作 编辑 chk_mysql.sh脚本 查看web效果 web界面设置 1. 2. 3. 4. 5. 6. 7. 8. server.zabbix.com 服务器操作 [rootserver ~]# cd /usr/local/zabbix/etc/ [rootserver etc]# vim zabbix_agentd.conf UnsafeUserParameters1 Us…