智能文档处理黑科技,拥抱更高效的数字世界
目录
- 0 写在前面
- 1 为何要关注智慧文档?
- 2 图像弯曲矫正
- 3 手写板反光擦除
- 4 版面元素检测
- 5 文档篡改检测
- 总结
0 写在前面
近期,中国图象图形学学会文档图像分析与识别专业委员会与上海合合信息科技有限公司联合打造了《文档图像智能分析与处理》高峰论坛。论坛特别邀请了来自中科院自动化研究所、北京大学、中科大的学术专家与华为等知名企业的研究者们,围绕文档图像处理及OCR领域的前沿技术展开“头脑风暴”,共同交流文档图像分析与处理的前沿学术进展、在典型行业的规模化应用情况,并探讨未来技术及产业发展趋势。
很荣幸听了这次论坛,使我对文档智能识别技术有了更加深入的了解,也让我认识到了其中涵盖的技术在实际应用中的巨大潜力和挑战
1 为何要关注智慧文档?
随着信息技术的发展和应用场景的不断扩大,人们需要处理和利用大量的文档信息。而传统的手动处理方法效率低下,无法满足现代生活和工作的需求。文档图像智能分析与处理就是一个重要且极具挑战性的研究问题,智能文档识别技术基于人工智能和机器学习等技术,可以自动识别文档中的各种信息,如文字、图像、表格、条码等,然后将其分类、归档、摘要、提取等处理。
文档图像智能分析与处理技术被广泛应用在人们生活的方方面面,比如银行票据的自动分析处理、快递运单的自动识别、教科书的分析与识别、古籍文稿的分析与理解、数字档案、数字图书馆等等,极大地提高了信息的检索、处理、传播速率。总之,文档图像分析与识别技术的出现和发展极大地方便了人们的生活,也极大地促进了我们的社会向智能化、数字化、信息化发展。
文档图像智能分析与处理的难点在于文档的多样性和复杂性:文档类型和格式繁多,包括报告、合同、发票、证明、证件等等。不同类型的文档有不同的格式和布局,难以用统一的方法处理。而且智能文档处理受到图像质量、文字字体、文字大小、文字颜色等噪声因素的影响,容易出现误识别。此外,还有图像质量不一、文档获取繁琐等诸多问题。
针对这些问题及其背后的技术,合合信息的丁凯博士进行了深入的探讨和分析,相信对这个领域感兴趣的同学一定有所收获!
2 图像弯曲矫正
现代神经科学表明,哺乳动物大脑的初级视觉皮层的主要工作就是进行图像的字典表示,因为视觉是人类最重要的感觉——据不完全统计,至少80%以上的外界信息由视觉获得。然而,计算机获取图像的过程相当于用二维平面对三维客观世界进行降维表示,其中降低的维度称为深度,就像我们无法理解四维、五维等高维空间意义,二维平面图像因为维度丢失,导致图像处理的困难。
因为相机硬件不符合理论上透视相机模型针孔无限小的假设,所以真实图像会产生明显的径向失真——场景中的线条在图像中显示为曲线。径向畸变(Radial Distortion)有两种类型:筒体畸变(Barrel Distortion)与枕形失真(Pincushion Distortion)。此外由于相机组装过程中,透镜不能和成像面严格平行,会引入切向畸变(Tangential Distortion),再加上视觉文档图像的拍摄视角一般不垂直于文档平面,产生文档图像的变形和扭曲。例如比较厚重的书籍在展开后其书脊两侧文字区会出现向内弯曲的情况。由此可见,扭曲文档的形变情况要比平面文档要复杂,对其分析和矫正的难度也比平面文档图像要高。
在高峰论坛上,合合信息介绍了几种技术路线:
- 基于文本行线拟合和坐标变换方法(2003~2015)
- 基于文本行线坐标变换的优化方法(2015~2019)
- 基于偏移场学习的方法(2019~2022)
对于基本拟合、变换或优化等传统方法,存在一些缺陷,例如:在扭曲比较严重的文本区域还可能会定位错误、在复杂的版面或包含有图像的文档中识别精度下降等。
近年来,合合信息采用的基于偏移场的学习方法大大改善了上述缺陷。那么什么是偏移场呢?广义来说,图像的灰度不均匀性通常称为偏移场。灰度不均匀性的存在会影响图像后续的分析应用,许多图像处理方法都是建立在图像是均匀的基础之上的,这已然成为智能文档处理中的关键环节。
国内外学者对偏移场弯曲矫正也展开了大量的研究。Guillemaud等人提出了参数化的EM算法主要是使用一组多项式基函数的线性组合来模拟偏移场,用以保证偏移场的光滑性。Pham等人提出了RFCM(Robust Fuzzy C-mean)算法,将对偏移场的估计值引入到模糊 C 均值聚类算法(FCM) 模型中,可以对存在偏移场的图像进行聚类分割,随之而来的是繁琐的计算。由此,Ahmed 等人提出了BCFCM算法,可以兼顾对偏移场的矫正和噪声的抑制,但是该算法受图像轮廓不同的影响较大,使得估计出的偏移场不平滑,同时该算法对图像中零梯度问题处理效果很差。Likar等人在偏移场矫正过程中引入了最小信息熵方法,得到了不错的偏移场矫正效果,但是该方法却不能很好的解决寻找曲面最优解的问题。基于此,Salvado等人提出了局部熵最小化策略LEM 取得了较好的改进结果,但是LEM算法对初始化参数的要求较高。
合合信息采用的则是一种端到端结构的偏移场矫正方法,方法主要分为两个阶段:首先使用U-Net架构对输入图像进行分割,获得文本区域的掩模;接着将掩模输入到另一个U-Net网络中,该网络使用自注意力机制(self-attention)和残差连接(residual connections)对文档图像进行矫正。
在第一阶段,U-Net网络首先将输入图像进行编码,然后将编码的特征图像进行解码,生成相同大小的输出掩模。在该过程中,U-Net通过跳跃连接(skip connections)和上采样操作保留输入图像的高层次特征,从而获得更加准确的掩模。
在第二阶段,使用了另一个U-Net网络对输入图像进行矫正。该网络首先对输入图像进行特征提取,然后通过自注意力机制加强了特征图像中的相关性,从而更好地捕获了文档图像的全局和局部信息。接着,网络使用残差连接对输入特征和输出特征进行合并,从而得到矫正后的文档图像。
合合信息采用的技术相比于其他方法,能够更好地处理文档图像中的扭曲和旋转等问题,且实现了很好的商业化效果。
3 手写板反光擦除
随着各式各样的数码产品与数字仪器的快速普及,数字图像已经成人们生活
中所接触的最重要的信息载体之一。但是,图像的质量受到各种各样的外部因素的影响,例如反光干扰。用户通常希望通过消除图像中的反射来提取出清晰的背景图像,因此将反射图像和背景图像进行分离的图像去反光任务是计算机视觉领域的活跃研究方向。
图像去反光问题是不适定的,导致基于先验的方法去反光效果非常糟糕。普遍的基于先验的方法或多或少存在这样的问题,在面对实际中的反光图像时,泛化效果比较差。最近,深度卷积网络 (CNN) 在诸如图像识别、图像生成等计算机视觉任务取得了巨大的成功。同样的,在图像去任务上,深度卷积网络的强大表征能力同样表现出了不错的效果。合合信息正是采用基于学习的算法实现手写板反光擦除。
具体来说,这个算法的原理是使用背景提取网络和文字提取网络来分离原始图像中的反光区域和文字区域,然后再将这些区域进行重组以实现图像去反光的效果。如下图所示
原图像首先使用背景提取网络来检测图像中的背景区域。这可以通过对图像进行像素级别的分割来实现,其中像素被分类为属于背景或前景。在这个过程中,反光区域通常会被识别为前景区域。在训练时,背景提取网络会使用一组标注好的图像作为训练集,通过反向传播算法来更新网络中的权重参数,从而最小化损失函数。在测试时,网络会将输入图像作为网络的输入,经过前向传播计算得到每个像素点属于背景或前景的概率,然后根据概率阈值进行二值化处理,从而得到图像的分割结果。
接下来,算法使用文字提取网络来检测图像中的文字区域。这可以通过使用一些先进的文字识别技术,如OCR来实现。在这个过程中,文字区域通常会被准确地识别出来,并被排除在反光区域之外。最后,算法将背景区域和非文字区域重组成一张新的图像,从而去除反光效果。这个过程通常涉及到一些图像处理技术,如图像融合和修补,以确保新图像的视觉效果与原始图像相似。
真实样例的效果如下,可以看出反光擦除的效果很明显
4 版面元素检测
文档版面分析即对文档图像按照不同的语义功能及区域类别进行分割和识别,分割出文本区、表格区、公式区、图形区等区域,并判断各区域所属的类别。区域分类是版面分析中的一个重要组成部分,它可以通过机器学习或深度学习的方法来识别出相应的特征区域。例如Bukhari通过对连通域进行分析,提取出一些简单的特征,再根据这些简单的特征产生具有更好表达能力的特征向量,最后由多层感知机将连通域分类,实现对复杂文档不同区域的分类。Konya和Paaß 采取最小生成树的方法,通过大量的文档来提取特征并构造出相应的特征向量,来对分类器进行训练,以完成文档版面分析任务。
版面元素检测也可以理解为一个图像语义分割问题。目前主流的语义分割方法是采用特征图先缩小后恢复的方法,如 U-Net、DeconvNet等语义分割网络先通过对图像的卷积和池化操作得到低分辨率的特征图,再通过上采样或反卷积将特征图恢复到高分辨率。但是这种方法存在一个缺点就是图像从高分辨率到低分辨率的过程中会损失信息,为了解决这个问题,2019年提出的HRNet(High Resolution Network)可以使图像在一个分支上始终保持高分辨率的同时,并行地对特征图进行下采样产生低分辨特征图,各个分辨
率分别一个分支,然后各个分支不同分辨率特征图之间不断地进行特征融合来产生强大的高分辨率表示,从而使最终得到的特征图具有丰富的上下文信息,进一步提高了网络的分割准确率。
目前,合合信息提供了关于版面检测、还原的系统级解决方案:涉及文字检测识别,版面元素检测识别,图层分离,排版布局等一系列深度学习模型,并需要通过合理的方式糅合各个模块,搭配文档渲染,最终生成可供用户编辑修改的Word/Excel文档,具有非常巨大的应用价值。
5 文档篡改检测
篡改文本检测(TTD,tampered text detection)作为多媒体信息安全领域的一个新兴研究方向,是指通过对文本图像中纹理特征的分析,捕捉真实文本和篡改文本之间的纹理差异性,以确定文本图像中文字区域的真伪性。常见的应用场景有:谣言检测流水、合同造假识别、欺诈图像识别、学历造假检测、保单PS检测等。
篡改文本检测任务有两个主要挑战。
- 局部纹理差异性捕捉困难。篡改文本与真实文本仅存在局部纹理差异;
- 真实和篡改文本检测精度平衡困难。
相较传统的文本检测任务,篡改文本检测任务需要进一步区分篡改和真实文本。由于真实和篡改文本分类难度不一致,训练过程中网络无法平衡两类的学习过程,导致在测试过程中两类检测精度差异较大。上述挑战极大地限制了篡改文本检测方法的性能。因此,如何准确地捕捉局部纹理差异性,同时平衡篡改和真实类别学习难度,是目前篡改文本检测研究的重要方向。
合合信息采用的是现在大火的Transformer结构。Transformer又是什么呢?它是一种用于自然语言处理、计算机视觉或其他序列到序列(sequence-to-sequence)任务的神经网络架构。
Transformer基于注意力机制(Attention Mechanism)构建,其核心思想是在序列中进行全局信息的交互和捕捉,而不是像以往的循环神经网络(RNN)一样在序列中逐个位置处理信息。Transformer通过多个自注意力层(Self-Attention Layer)进行信息的交互和表示,而每个自注意力层包含了注意力机制的三个部分:查询(query)、键(key)和值(value)。现在流行的GPT(Generative Pre-trained Transformer)系列模型正是一种基于Transformer的语言模型。
具体来说,对于一个输入序列,Transformer将其转换为多个词向量(word embeddings),然后通过自注意力层进行特征提取。在自注意力层中,查询向量通过与所有键向量的相似度计算来计算注意力分数,这些分数用于加权求和值向量,最终得到每个位置的输出向量。然后,这些输出向量被馈送到下一个自注意力层或全连接层进行后续处理。
相比于传统的序列模型,Transformer的优点在于可以并行处理输入序列,从而加速模型的训练和推断。此外,Transformer还能够有效地处理长序列,因为它可以在不受时间限制的情况下一次性处理整个序列,而不需要像RNN那样进行逐个位置的处理。
总结
介绍了这么多黑科技之后,想必大家对智能文档处理领域有了一定了解。合合信息的智能文字识别应用开发宗旨就是为了让世界更高效!合合信息深耕人工智能17年,全球累计用户下载量23亿,享有国内外发明专利113项,在顶级AI竞赛获得15项世界冠军,提供行业智能解决方案30个。合合信息提供了深受全球用户喜爱的效率工具,例如C端的名片全能王、扫描全能王等。相信合合信息在模式识别、深度学习、图像处理、自然语言处理等领域的深耕厚积薄发,用技术方案惠及更多的人。
相关文章:

智能文档处理黑科技,拥抱更高效的数字世界
目录 0 写在前面1 为何要关注智慧文档?2 图像弯曲矫正3 手写板反光擦除4 版面元素检测5 文档篡改检测总结 0 写在前面 近期,中国图象图形学学会文档图像分析与识别专业委员会与上海合合信息科技有限公司联合打造了《文档图像智能分析与处理》高峰论坛。…...

vue ts写法
Vue.js 和 TypeScript 结合使用可以让你的项目更加健壮和易于维护。在 Vue 3 中,你可以使用 Vue.js 的 Composition API 和 TypeScript 一起使用。以下是一个简单的 Vue.js 和 TypeScript 结合使用的例子: 首先,确保你已经安装了 Vue.js 和 T…...

Unity中的PostProcessBuild:深入解析与实用案例
Unity中的PostProcessBuild:深入解析与实用案例 在Unity游戏开发中,我们经常需要在构建完成后对生成的应用程序进行一些额外的处理。这时,我们可以使用Unity提供的PostProcessBuild功能。本文将详细介绍Unity中的PostProcessBuild方法&#…...

SimpleCG绘图函数(4)--绘制圆
在前一篇教程我们利用绘制矩形功能绘制了一个城市,接下来我们讲解另外一个同样重要且基础的图形----圆形。并一起看看该图形能绘制哪些应用呢。 绘制圆形相关函数如下: //圆心坐标(nXCenter,nYCenter),半径为nRatio//绘无填充制圆 void circle( int nXCenter, int …...

打包和优化
私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…...

linuxOPS基础_Linux文件管理
Linux下文件命名规则 可以使用哪些字符? 理论上除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,不建议使用某些特殊字符,例如, <、>、?、* 等&…...

C语言——数据在内存中的存储(上)
数据在内存中的存储 1. 数据类型的介绍 之前已经介绍过C语言中的基本数据类型了,主要有: char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数 注意:C语言中是是没…...

LinkedIn 国际版怎么在国内登录?怎么使用领英国际版?
自从去年底国内用户使用LinkedIn就只能跳转到领英职场,而且就只是一个简单的招聘求职平台,没办法搜索添加国外客户,开发客户资源的效率大打折扣。但是国际版领英就不受影响,东哥今天就给各位做外贸的朋友分享如何使用国际版领英。…...

QThread Class
QThread QThread类枚举类型成员函数可重写函数公共槽信号静态成员函数保护函数静态保护函数QThread简单案例1QThread简单案例2 QThread类 标准头文件:#include <QThread> qmake: QT core 继承(父): QObject枚举类型 线程的优先级 enum Priority { IdlePri…...

C语言中的运算符及其优先级详解
引言: 在C语言中,运算符是用于进行各种数学和逻辑运算的符号。了解不同类型的运算符及其优先级对于正确理解和编写C语言代码至关重要。本文将详细介绍C语言中常用的运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符等,…...

【C语言】语言篇——数组和字符串
C站的小伙伴们,大家好呀😝😝!我最近在阅读学习刘汝佳老师的《算法竞赛入门经典》,今天将整理本书的第三章——数组和字符串的一些习题,本章习题较多,下选取部分习题进行练习总结,在这…...

Js写的二级联动和三级联动
二级联动的实现 第一步 在HTML页面创建两个 select 下拉列表元素,并设置id为 ‘province’和id ‘city’ <!--省份--> <select id"province" onchange"getCity()"></select><!--城市--> <select id"city&qu…...

一文带你了解UI自动化测试框架
PythonSeleniumUnittestDdtHTMLReport分布式数据驱动自动化测试框架结构 1、Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_page import Login_Page from H…...

【Linux】守护进程
守护进程(Daemon)是一种在后台运行的特殊进程。它通常在操作系统启动时启动,并一直运行直至系统关闭。它不与任何终端关联,并且没有标准输入、输出和错误流。它的主要作用是在系统启动后执行一些特定的任务或者提供某些服务&#…...

Vue中组件和插件有什么区别?
Vue中组件和插件有什么区别? 组件是什么 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度,在保持接口…...

第五章 图像处理
文章目录 前言一、图像金字塔1.高斯金字塔2.拉普拉斯金字塔 二、图像轮廓1. 轮廓提取2. 轮廓绘制3. 轮廓特征4. 轮廓近似5. 轮廓标记 三、模板匹配四、直方图1. 对比度2. 绘制直方图3. 均衡化3.1 理论3.2 代码 4. CLAHE 五、图像傅里叶变换5.1 正弦平面波5.2 二维傅里叶变换5.3…...

算法8.从暴力递归到动态规划1
算法|8.从暴力递归到动态规划1 目前感觉,背包问题和货币数组问题本质相同,货币的与dp相关的三种代码写完了,快复习不完了,背包暂时先不写了,回头再写,补充,再总结,结合那个C大神的文…...

8-JDBC 编程
目录 1.数据库编程的必备条件 PS:程序是怎么操作数据库的? 2.什么是JDBC? 2.1.JDBC定义 2.2.JDBC工作原理 3.JDBC使用 3.1.创建项目并添加MySQL驱动包 3.2.使用代码操作数据库 3.2.1.获得数据源 3.2.2.获得连接 3.2.3.获得执行器 …...

零基础如何学习 Web 安全?
Web安全不仅是互联网的核心,而且还是云计算和移动互联网的最佳载体。对于信息安全从业者而言,Web安全是一个非常重要的研究课题之一。 Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用,社交网络、聊天工具…...

【简单实用框架】【AddressablesMgr】【可移植】
☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…...

android 12.0Launcher3禁止拖拽app图标到第一屏
1.概述 在12.0进行定制化开发Launcher3中,会对Launcher3 做些要求,比如现在的需求就是Launcher3第一屏的图标固定,不让其他屏的图标拖动到 第一屏所以说这个需求和 禁止拖拽图标到Hotseat类似,也是从WorkSpace.java里面寻找解决方案 2.Launcher3禁止拖拽app图标到第一屏相…...

SkyLine简介
简介 SkyLine产品系列(TerraExplorer 、TerraGate、TerraBuilder)是一套优秀的三维数字地球平台软件。凭借其国际领先的三维数字化显示技术,它可以利用海量的遥感航测影像数据、数字高程数据以及其他二三维数据搭建出一个对真实世界进行模拟…...

算法基础学习笔记——④前缀和\差分\双指针\位运算
✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨前缀和 ✨一维前缀和 🍓一维前缀和模板: ✨二维前缀和 🍓二位前缀和模板: 前言:算法学习笔记记录日常分享,需要的看哈O(∩_∩)O&a…...

【Linux系统基础快速入门详解】Linux下安装软件必知必会4种方法(yum,编译安装,rpm包,二进制方式)等详解
在 Linux 下安装软件有多种方法可供选择,常用的包括 yum、编译安装、rpm 包和二进制方式。下面对这些方法进行详细说明: 使用 yum 安装软件yum 是 Red Hat 系列 Linux 发行版中常用的软件包管理工具,通过 yum 可以方便地安装、升级和删除软件包。yum 默认从官方仓库中下载软…...

ASEMI代理长电可控硅BT136参数,BT136规格,BT136说明
编辑-Z 长电可控硅BT136参数: 型号:BT136 RMS通态电流IT(RMS):6A 非重复浪涌峰值导通电流ITSM:25A 峰值栅极电流IGM:2A 平均栅极功耗PG(AV):0.5W 存储接点温度范围Tstg:-40 to 150℃ 工…...

代码线程安全
线程生命周期 synchronized synchronized会自动释放锁 synchronized同步代码块 synchronized后面括号里obj是锁对象(保证唯一);static修饰的obj对象是自定义MyThread线程类的静态成员变量,该自定义线程类所有实例共享保证锁对象唯一性;另一…...

Filebeat技术栈总结
filebeat 是一个轻量型日志采集器,本质上是一个 agent 。不依赖于任何应用,可以安装在任何节点上,可单独使用 Filebeat 并根据配置读取对应位置的日志进行上报和搜集。 filebeat 内置了常用的 output 组件,例如 kafka、ElasticSe…...

【App自动化测试】(十六)健壮性测试工具——Android Monkey
目录 1. 介绍2. 安装3. Monkey的使用4. money常用命令5. 常用事件类型参数6. Monkey使用参考 1. 介绍 Monkey是一个在模拟器或设备上运行的程序,用于生成用户事件的伪随机流。 为什么要使用Monkey这个自动化遍历工具? Monkey解决了一个测试痛点ÿ…...

实现第一个内核程序的Hello World
背景 在内核的开发中,总要先入个门。那么就要来编写第一个内核程序 入门 一个 module_init 程序是Linux内核模块的一部分,通过module_init 方法就能将程序载入内核。 module_init 方法需要以下步骤 编写module_init 的代码,并将其保存为…...

python基于协同过滤推荐算法的电影观后感推荐管理系统的设计
本课题所设计的影单管理系统,使用B/S架构,Python语言进行开发,它的优点代码不能从浏览器查看,保密性非常好,比其他的影单管理更具安全性。Python还容易修改和调试,毕竟影视是在不断发展过程中,难…...