宜信OCR技术探索之版面分析业务实践|技术沙龙直播速记

直播视频回放:https://v.qq.com/x/page/i3135lgkagd.htmlhtml

1、项目背景

业务端大量的新增数据来自纸质报告、电子邮件、文档、图像、视频等非结构化内容。据统计,业务线对于80%的非结构化内容没法有效管理,60%的管理人员在决策时没法得到关键信息,50%的信息内容没法为公司带来业务价值。算法

解决痛点

一、降本增效:帮助客户减小人力投入,解放传统OCR识别场景耗费的时间,提高工做效率。编程

二、关键信息提取:涉及多类复杂场景,理解识别文档内容、提取关键信息,为风险控制、营销扩展、流程优化作支撑。api

三、识别准确率、速度、安全性、稳定性:基于人工智能的深度学习算法解决传统OCR识别率低、模版固定、设备依赖的问题。安全

项目目标

咱们的目标是,由最左侧银行单据图像,经由AI模块,识别出带有坐标和文字内容的半结构化数据,再经版面分析模块解析出业务可理解的结构化数据。其中蓝色框的过程就是咱们今天讲解的版面分析模块过程,也就是说从AI识别结果到版面分析结果。两种过程也是AI技术和编程技术的结合的一种表现。学习

版面分析现状

前期咱们对行业内版面分析技术进行调研,查阅文档,查找一些大厂公开的解决方案,借鉴其中部分经验,结合实际场景需求,研发人员依次突破了行列识别、模板、结构化的技术难点,并进行总结、抽象和优化,提取出一套较为统一的OCR版面分析解决方案。优化

2、抽象行列识别

行列识别介绍

  • 那么什么是行列识别?

行列识别即将AI模块识别回来的坐标块,依据必定方法,分辨出哪些块,在逻辑上属于同一行或同一列人工智能

  • 为何要进行行列识别?

版面分析开发中,行列识别是结构化的前提条件spa

  • 如何进行行列识别?

在研发过程当中,造成了不少行列识别方法,咱们挑几个典型方法介绍3d

行列识别抽象方案演进

方法一:

按标题识别
根据已识别出的标题坐标,能够覆盖到该列范围,再根据列顺序判断行号

缺点:

一、标题文字识别不许确或未识别到标题

二、标题左右粘连(即识别到一个块中)

三、中间串行致使行号不正确

方法二:

属于标题法的升级版,针对多数场景,行的做用大于列,识别出行就能够进行结构化解析了,因标题过多,全识别成功率低,那么只要知道最后一列的位置横坐标范围,在根据纵坐标排序,一旦某一块属于最后一列,那么后面的就必定是属于下一行了

问题:
和方法一相似,最后一列标题也可能会识别失败,部分模板,最后一列还可能受盖章影响

方法三:

根据模板数据特色,参考经验值设置数据块平均高度,再从标题下边开始,把数据根据平均高度切割行

问题:

行高度是经验值,不必定靠谱,例如图片分辨率就可能会有影响

方法四:投影法

把全部数据块的竖边投射到右侧,重叠的部分即属于同一行

优势:
方法效率高,可封装,为开发屏蔽细节

缺点:

有较长干扰块,会把大部分块包含进去,密集数据也会混乱

#### 俄罗斯方块方法

俄罗斯方块法
一、按横坐标分别排序

二、从第一个数据块开始放入第i列集合

三、若是新数据知足下面条件则数据当前列,不然换列了

3.1 在当前列全部数据的右侧   3.2 和当前列中数据在纵轴上有重叠

四、依次算完每一个数据块

五、同理计算行数据

优势:

封装代码,对开发屏蔽细节
开发周期大幅缩短,从3-5天缩短为一小时提供可配置参数

缺点:

参数比较多,开发须要必定学习时间

问题:

一、条件2中,若是两块属于重叠,可是边缘压的很少,能够设置阈值,当作不重叠

二、图片上下左右可能会存在部分干扰,能够设置一些匹配规则,知足条件的外部区域能够裁剪掉,提升识别成功率

总结:

以上各个方法各有优缺点,适应场景各不相同,目前咱们使用较多的方法是俄罗斯方块法和投影法

这些是咱们初期探索出的一些方法,相信还会有更好的方法,咱们也会继续探索

3、模板开发

什么是模板

模板:

  • 识别的目标文件可能有不一样业务线的图片,例如流水、卡证、报告、其余单据等 – 咱们叫业务类
  • 每种业务线还有细化的类型,例如银行流水中的不一样银行,保单中不一样保险公司等 – 咱们叫大类
  • 每家银行或保险公司的单据在不一样地点、时间上还可能不是一个样子,这每种图片样子叫作模板

为了提升成功率咱们须要针对模板定制化解析,要理解一点,专属的必定比公用的好
那么第一步咱们就须要区分图片属于那种模板
针对刚才说的,到大类这一层比较固定,经过api层判断
如今来形象看下模板这层的问题

模板举例

看三张图片,针对同一个大类,分别是无表格、虚线表格和有表格的,须要经过训练验出来,有助于模板区分

模板方法

在开发中,总结了两种模板判断方法
当业务模板种类较少较固定时,咱们采用大标题法

一、大标题判断方法,查找已知模板在大类中存在特殊的文字表示判断

缺点:一、可能找不出经验特色 二、可能识别失败

相反二、可配置的模板匹配度方法配置模板中各属性的内容和坐标范围等要素,计算出匹配评分,选取分高者

优势:
一、开发效率极高 二、对开发屏蔽了细节

缺点:
仅能区分已知模板

4、结构化

什么是结构化

什么是结构化

结构化是版面分析最后一步,在行列和模板识别完成后,把数据块转化为目标报文结构,用于存储、传输、分析等

如何结构化

一般使用标题和坐标来抽取数据,但有时一些特殊的模板会使结构化难度提升

特殊模板举例

有些图片有水印或印章,干扰结构化结果
目前咱们只解决部分水印,盖章问题,还有没教好较统一解决方案,这也是目前咱们重点要解决的课题,但愿有机会同行交流交流经验

#### 近行列粘连

#### 无标题

更有这种标题分多行的
针对上面几种场景,咱们依据经验,采用模式匹配方式封装了一些经常使用方法来解析和抽取关键数据,最后组装数据
#### 缺块

因为图片质量问题,会出现缺数据块的状况,这时即便模式匹配也没法抽取,目前咱们AI模型在逐渐优化过程当中,这种问题会愈来愈少

语义矫正

部分业务对文字准确率要求高,例如 工资 有时会识别成7资 7贝 1识别成I 0识别成o,遇到这种状况,咱们综合利用全局及局部语义信息进行的NLP文字校订正
上期刘创老师有介绍过文字纠错内容,这里就不细讲了,有兴趣的同窗能够翻回上期内容复习一下,至此版面分析技术侧内容分享完毕

5、总结

咱们回顾一下今天讲解内容。先介绍了项目背景,又从版面分析技术角度,分别介绍了行列识别五种技术方案探索过程,并重点讲解了俄罗斯方块法,而后介绍什么是模板开发,并介绍了两种不一样的模板,最后介绍什么是结构化及结构化遇到的问题和解决方案,至此个人分享结束感谢你们。

做者:宜信技术学院 刘鹏飞