首先上个图镇场子,里面红底的就是做图片信息提取,所需要重点关注的文件

关键信息抽取:UIE模型做图片信息提取全流程_特征工程

UIE理论部分

  • UIE原始论文
    论文阅读笔记

关键信息抽取:UIE模型做图片信息提取全流程_特征工程_02

关键信息抽取:UIE模型做图片信息提取全流程_特征工程_03

UIE(Universal Information Extraction):Yaojie Lu等人在ACL-2022中提出了通用信息抽取统一框架UIE。该框架实现了实体抽取、关系抽取、事件抽取、情感分析等任务的统一建模,并使得不同任务间具备良好的迁移和泛化能力。为了方便大家使用UIE的强大能力,PaddleNLP借鉴该论文的方法,基于ERNIE 3.0知识增强预训练模型,训练并开源了首个中文通用信息抽取模型UIE。该模型可以支持不限定行业领域和抽取目标的关键信息抽取,实现零样本快速冷启动,并具备优秀的小样本微调能力,快速适配特定的抽取目标。

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_04

网页直接体验UIEX原始模型:https:///spaces/PaddlePaddle/UIE-X
输入schema,点击submit即可

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_05

本机安装使用

环境安装

基本都是使用一键预测功能:Taskflow API去做使用的,安装包,引入库,然后就三行代码,就可以使用了,封装得很完善

  • python >= 3.7
  • paddlepaddle >= 2.3

pip install --upgrade paddlenlp

快速开始

这里以信息抽取-命名实体识别任务,UIE模型为例,来说明如何快速使用PaddleNLP:

  • text类信息提取
    PaddleNLP提供一键预测功能,无需训练,直接输入数据即可开放域抽取结果:

关键信息抽取:UIE模型做图片信息提取全流程_特征工程_06

  • 图片类信息提取(使用uie-x)

关键信息抽取:UIE模型做图片信息提取全流程_paddle_07

直接在/root/目录下运行,第一次运行会在根目录生成.paddlenlp和.paddleocr的隐藏文件夹,用于存储自动下载的uie和ocr模型,然后开始推理

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_08

有一些字段没有显示的,应该就是没有找到,下面只显示的是找到的,可是但凡显示出来的准确度都很高,可以说效果真的很牛,就是密码区一直不认
大概可以得出的结论是:只要图像上靠近且有明显键值对的,都可以识别,只有那种键值对不明显,或者只有值没有键的信息,才会难以提取,才会需要微调。

关键信息抽取:UIE模型做图片信息提取全流程_特征工程_09

测试到这里我就觉得这个方案是可行的了,所以打算基于UIEX做小样本学习,实际上除了发票,对于任何图片信息提取场景,根据它的介绍少量学习都能带来大幅提升,经过我的测试确实如此

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_10

step1、UIEX模型微调(小样本学习)

https:///PaddlePaddle/PaddleNLP/tree/develop/applications/information_extraction/document进行模型微调,教程写的挺清楚了,我这里说一些其他的注意点

关键信息抽取:UIE模型做图片信息提取全流程_paddle_11

数据标注(label_studio)

这是本地启动服务网页使用的,为了方便数据获取,就在win装,因为我的基本环境烂了,会有一些奇怪报错:django.db.utils.OperationalError: no such function: JSON_VALID所以我在anaconda里面新建py39环境,可以正常运行

关键信息抽取:UIE模型做图片信息提取全流程_paddle_12

这个地方,一定得是image或者text,不能是ocr什么的,在后面数据处理转换json文件为paddle数据集的时候,只认image/test,如果换成其他的会不识别报错

关键信息抽取:UIE模型做图片信息提取全流程_paddle_13

标注的时候,框要偏大一点,不能恰恰好贴着文字,不然会导致提取信息的时候漏掉前面几个字符

关键信息抽取:UIE模型做图片信息提取全流程_paddle_14

直到后来我label多了我才意识到,原始模型的可视化就是在教我怎么label最完美:都要向前框一点,包括冒号

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_15

导出数据转换

ext:抽取式任务,实体收取和关系抽取都是抽取

关键信息抽取:UIE模型做图片信息提取全流程_paddle_16

关键信息抽取:UIE模型做图片信息提取全流程_paddle_17

定制模型一键预测

我写了一个脚本,来同时执行原始模型和微调模型在同一张图片上的表现,同时可视化和输出识别结果到txt,以便对比:

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_18

关键信息抽取:UIE模型做图片信息提取全流程_paddle_19

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_20

推理就是

python testuie_self.py data/testimages/b78.jpg

关键信息抽取:UIE模型做图片信息提取全流程_深度学习_21

左边一列是微调后的,右边的原始UIE-X-base

关键信息抽取:UIE模型做图片信息提取全流程_paddle_22

但也有问题:比如会认密码区但不跨行,只有第一行(还不如不要),对于密码区,盖章识别,二维码识别,我就去掉了,不设schema,这些需要额外优化

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

关键信息抽取:UIE模型做图片信息提取全流程_特征工程_23