KIE - SDMGR

论文原文:Spatial Dual-Modality Graph Reasoning for Key Information Extraction

1.网络结构

一种端到端的空间双模态图推理方法。将非结构化的文档图像建模为空间双模态图,其中图节点作为检测到的文本框,图边作为这些节点之间的空间关系。

在这里插入图片描述

A. 特征提取

使用U-Net作为CNN的特征提取网络,获得特征viv_ivi

  1. 使用字符级的BiLSTM提取文字特征,获得特征tit_iti

多模态特征用矩阵内积(Kronecker product)融合。

ni=P(ti⨂vi) n_i = P(t_i\bigotimes v_i) ni=P(tivi)

B.图卷积

​ 在图卷积部分,G={N,E},N={nin_ini},nin_ini代表text节点rir_iri的特征向量,由A中特征提取得到,包含视觉和文字特征;E={eije_{ij}eij} ,eije_{ij}eij代表rir_irirjr_jrj 节点之间边的权值。

rijr_{ij}rij定义了两个节点rir_irirjr_jrj 的距离。(5)(6)中的x和y表示两个节点空间上的水平距离和垂直距离,(7)中的rijPr_{ij}^PrijP编码了两个节点的空间位置关系(d是一个归一化常数),rijSr_{ij}^SrijS编码了相对长宽比。

在这里插入图片描述
如下(10),E是将空间关系信息嵌入去维表示的线性变换的函数,rijr_{ij}rij,Nl2是l2正则化,(11)把节点表示和边的表示concat起来,然后送到(12)的三层感知机M中,将eij转换为标量eije_{ij}eij 。这样e就结合了节点信息和空间信息。
在这里插入图片描述
niln_i^lnil 代表了在时间为l的时候,第i个节点的特征表示,α\alphaα是可学习的归一化权重,由(14)得到;e是i节点和j节点的线性关系,w代表线性变换,σ\sigmaσ 是ReLU激活函数。这样,在l+1时刻,nil+1n_i^{l+1}nil+1 就结合了l时间i节点的的特征niln_i^lnil ,以及l+1时间的i节点特征和该节点对不同个j节点eije_{ij}eij的总和。
在这里插入图片描述
在这里插入图片描述

C.损失函数

​ 最后将迭代推理模块的最终输出nLn^LnL输入给分类模块,对每个文本区域进行分类,loss采用交叉熵损失函数。

2.训练结果

使用了自己收集的 WildReceipt数据集。

我们在搜索引擎上搜索带有相关关键词的收据图像,如收据、发票等。我们下载了大约4300张文档图片。我们删除了里面有多个收据,不是收据,不可读,不完整或非英文的图像。我们首先标记文本边界框及其相应的文本,然后将每个边界框标记为25个关键信息类别中的一个

在这里插入图片描述
论文将SDMG-R与Chargrid、Chargrid-UNet、VRD等sota算法相对比。
在这里插入图片描述

3.模型训练

在paddleOCR上集成了训练代码。
在wildreceipt的数据集上,训练44epoch效果最好为87.7。
在自己的数据集上,准确率为92.4。标注的时候使用k-v标注,转一下数据格式就可用。

### PaddleOCR 的关键信息提取 (KIE) 功能 PaddleOCR 是一个基于 PaddlePaddle 构建的强大多语言 OCR 工具包,支持超过80种语言识别,并提供数据标注和合成工具[^2]。此工具不仅限于简单的文字识别,还集成了多种高级功能,其中包括关键信息提取(KIE)。特别是,在 README_ch.md 文件中提到,PaddleOCR 最新加入了若干先进算法,进一步增强了其处理能力[^3]。 对于 KIE 任务而言,PaddleOCR 集成了一项名为 Spatial Dual-Modality Graph Reasoning for Key Information Extraction(SDMG-R) 的技术。这项技术通过构建空间双模态图推理模型来提升从文档图像中抽取出结构化信息的效果[^1]。下面是一个简单示例展示如何利用 PaddleOCR 实现 KIE: #### 安装依赖库 首先安装必要的 Python 库: ```bash pip install paddlepaddle==2.4.0 pip install paddleocr ``` #### 加载并初始化模型 加载预训练好的 KIE 模型实例: ```python from paddleocr import PaddleOCR # 创建一个新的 OCR 对象,默认会下载最新的可用版本 ocr = PaddleOCR(use_angle_cls=True, lang='en', use_gpu=False) # 如果想要指定特定的检测/识别/KIE 模型路径,则可以通过如下方式设置参数 kie_ocr = PaddleOCR(det_model_dir='./inference/ch_ppocr_server_v2.0/det', rec_model_dir='./inference/ch_ppocr_server_v2.0/rec', kie_algorithm="SDMG", kie_model_dir="./inference/kie/sdmgr_novisual_lncd_st_real", use_angle_cls=True, lang='ch') ``` #### 执行关键信息提取操作 准备一张含有表格或表单样式的图片文件 `example_form.jpg` 并调用 API 进行分析: ```python result = ocr.ocr('example_form.jpg', cls=True) for line in result: print(line[-1][0]) # 输出每行的文字内容及其位置坐标 ``` 为了更深入理解所获得的结果以及更好地应用到实际项目当中,建议阅读官方 GitHub 页面提供的详细说明文档 和相关论文资料 来获取更多背景知识和技术细节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值