一种文档图像实例分割方法及装置
技术领域
本发明涉及计算机视觉领域,尤其是一种文档图像实例分割方法及装置。
背景技术
在各种场景中,需要将文档进行电子化,比如文档图像分析、识别、分类、存储等都需要使用文档中的内容信息,这种识别称之为OCR技术,传统的OCR版式分析方法采用图像二值化、连通域分析、分步提取各种版式要素(表格、文字、图章)。该方法对于输入图像的要求比较高,一般是要求扫描图像,这种图像分辨率固定、背景比较单一,版式不复杂。
如果图像是手机拍摄、扫描仪拍摄等情况,基本上很难得到理想的结果,主要原因:
1.受到光照不均匀、清晰度低、拍摄角度歪斜、折痕多等;
2.图像透视变换失真、梯形失真、桶形失真、书页形失真等;
3.图像分辨率不固定,不同的手机分辨率不一样;
4.ROI区域占据的区域大小不确定, 不同的远近造成拍摄的图像大小不一样;
5.背景复杂不定,图像上有印章、划痕等干扰。
文档图像OCR属于计算机视觉领域的一个重要分支,跟人脸识别、语音识别并列,文档图像OCR技术也是一个古老的技术,从上个世纪60年代就开始研究的传统图像分析方法,到深度学习技术兴起并由此产生基于深度学习的图像分析方法。由于文档图像中可能存在文字、表格、图章、插图等要素,如果分别单独使用深度学习提取,将非常耗费时间。如果能够将多种文档图像要素分割统一在一个通用的神经网络中,将大大提高文档实例分割的速度,有利于节省基于深度学习的文档图像分析总的时间消耗。
如图1所示,文档图像分割的难点在于以下几点:
1.文档版式多样:需要处理的文档对象版式多,OCR之所以复杂,就是需要处理的版式太多,非常不固定,有各种证件、发票票据、银行单据、保险保单、医疗票据等等,各种文档图像没有一个是一样的,在我们的经验中文档不同没有一个版式是一样的。
2.打印方式多样:文档中给的内容有几种方式形成,有的是印刷上去的,有的是激光打印上去的,有的是针式打印机打印上去的,有的是手写上去的,还有一些是套打上去的,存在着压字、偏移等诸多影响。
3.采集设备多样: 图像获取设备可以是扫描仪、高拍仪等专用设备,还有目前普遍使用的手持设备如手机、PAD、摄像机等移动设备。
4.拍摄环境复杂:由于文档图像手持设备比较多,所有图像采集环境变得多样化、复杂化,各种光照环境都有可能采集图像,包括直接在阳光下,也有可能在光照度比较低的房子里面,还有在因为光照遮挡原因,有可能在图像上形成阴影等情况。
5.分辨率不固定:由于使用摄像头为主要输入设备,使得所采集的图像没有固定的分辨率,字符、表格等要素的大小也不固定,最小的字符有可能小于16像素,最大的字符上千像素。
6.拍摄角度自由:由于人手持拍摄,各种拍摄角度就会出现,图像倾斜、抖动、透视形变、纸张的柔性变形都会出现。
发明内容
基于此,有必要针对传统技术存在的问题,提供一种基于深度学习的文档图像的实例分割方法,针对扫描仪、高拍仪和手机拍摄的各种类型文档图像而设计。能够高效、准确的分割出文档图像中的各种要素,通过将多个对象实例分割集中在一个神经网络中,大大提供文档图像版面分析的速度,也大大提高了文档图像版面分析的精度,该方法为文档图像分析提供了一种新的基于实例分割的技术路线。
根据本发明的第一方面,提供一种文档图像实例分割方法,包括以下步骤:
步骤1:将原始图像输入到全卷积神经网络中,所述原始图像上包括n个类别的实例对象,n≧1;
步骤2:输出原始图像的文字方向分数图、n个实例对象分数图以及像素链接图;
步骤3:根据n个实例对象分数图和像素链接图分割出n个实例对象区域轮廓,并对实例对象进行描述;以及
步骤4:输出实例对象分割结果,包括实例对象的类别和位置。
进一步的,所述步骤2具体包括:
步骤21:通过全卷积神经网络的卷积层对原始图像进行特征提取;
步骤22:对原始图像进行上采样,并融合步骤21的结果形成特征图;
步骤23:根据分割需求,输出文字方向分数图、n个实例对象分数图以及像素链接图。
进一步的,所述文字方向分数图中,文字方向归一化在[0,1],对应[0,2]的角度。
进一步的,所述n个实例对象分数图的输出值经过归一化指数函数处理,取值范围为[0,1]。
进一步的,所述像素链接图取特征图中每个像素紧邻方向的链接信息,每个方向上2个分数图,对应正链接和负链接,输出值经过归一化指数函数处理,取值范围为[0,1]。
进一步的,所述步骤3具体包括:
步骤31:针对第i类实例对象的实例对象分数图设定第一阈值,针对像素链接图设定第二阈值,i为整数且1≤i≤n;
步骤32:根据第一阈值和第二阈值对第i类实例对象的实例对象分数图以及像素链接图进行二值化处理,在第i类实例对象的实例对象分数图中得到实例对象像素点和背景像素点,在像素链接图中得到链接状态信息和非链接状态信息;
步骤33:根据实例对象像素点结合链接状态信息,得到第i类实例对象的像素点区域,用连通域表示像素点区域的轮廓,并对第i类实例对象的像素点区域进行描述,
其中,第一阈值取值范围为[0,1],且第二阈值取值范围为[0,1]。
进一步的,所述n个类别包括线条、图章、图形、第一字体文本和/或第二字体文本。
根据本发明的第二方面,提供一种文档图像实例分割装置,包括以下部件:
原始图像输入部件,用于将原始图像输入到全卷积神经网络中,所述原始图像上包括n个类别的实例,n≧1;
分数图输出部件,用于输出原始图像的文字方向分数图、n个实例对象分数图以及像素链接图;
实例分割部件,用于根据n个实例对象分数图和像素链接图分割出n个实例对象区域轮廓,并对实例对象进行描述;以及
分割结果输出部件,用于输出实例对象分割结果,包括实例对象的类别和位置,
其中,所述n个类别包括线条、图章、图形、第一字体文本和/或第二字体文本。
根据本发明的第三方面,提供一种文档图像的实例分割系统,所述系统包括:
处理器和用于存储可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以执行如前述任一方面所述的文档图像实例分割方法。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一方面所述的文档图像实例分割方法。
本发明的有益效果:
1、基于全卷积网络FCN的文档图像实例分割方法,一次卷积可以得到检测不同的目标物体的scoresmap,大大提高了检测的效率;
2、可以适应不同角度、排列规则、多方向、多尺度的文字和图章,召回率和精度在金融样本上分别达到99%和97%;
3、设计的全卷积网络最后输出scoresmap,也就是分数图,代表了在同样的文字预测的几何尺寸的置信度,通过这个置信度可以得到预测直线、文本、图章的置信度,可以对后期的文档图像的识别或者版式分析提供置信度指导。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1示出现有技术中文档图像OCR效果图;
图2示出根据本发明的文档图像实例分割方法流程图;
图3示出据本发明一个实施例的实例分割网络结构示意图;
图4示出根据本发明一个实施例的直线Objectmap示意图;
图5示出根据本发明一个实施例的打印文本Objectmap示意图;
图6示出根据本发明一个实施例的线条分析表述示意图;
图7示出根据本发明一个实施例的印章分析表述示意图;
图8示出根据本发明一个实施例的插图分析表述示意图;
图9示出根据本发明一个实施例的文本行连通域及其多边形表述示意图;
图10示出根据本发明一个实施例的道格拉斯-普客算法示意图;
图11示出根据本发明一个实施例的文字定位印刷体分割效果图;
图12示出根据本发明一个实施例的文字定位手写体分割效果图;
图13示出根据本发明一个实施例的表格线提取分割效果图;
图14示出根据本发明一个实施例的图章检测分割效果图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
多个,包括两个或者两个以上。
和/或,应当理解,对于本公开中使用的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明涉及一种快速精确的文档图像实例分割方法。针对文档图像分析目标任务,申请人创新性地采用了实例分割全卷积神经检测网络,将角度检测、表格检测、图章检测、文字检测(手写和印刷)、插图检测等分割任务融合在一个网络之中,从最后输出的多个特征分数图(scoresmap)中分析得到需要分割和定位的目标对象。
根据本发明的文档图像的实例分割方法包括:
步骤1:将原始图像输入到全卷积神经网络中,所述原始图像上包括n个类别的实例对象,n≧1;
步骤2:输出原始图像的文字方向分数图、n个实例对象分数图以及像素链接图;
步骤3:根据n个实例对象分数图和像素链接图分割出n个实例对象区域轮廓,并对实例对象进行描述;以及
步骤4:输出实例对象分割结果,包括实例对象的类别和位置。
本发明还提供一种文档图像的实例分割装置,包括以下部件:
原始图像输入部件,用于将原始图像输入到全卷积神经网络中,所述原始图像上包括n个类别的实例,n≧1;
分数图输出部件,用于输出原始图像的文字方向分数图、n个实例对象分数图以及像素链接图;
实例分割部件,用于根据n个实例对象分数图和像素链接图分割出n个实例对象区域轮廓,并对实例对象进行描述;以及
分割结果输出部件,用于输出实例对象分割结果,包括实例对象的类别和位置,
其中,所述n个类别包括线条、图章、图形、第一字体文本和/或第二字体文本。
本发明还提供一种文档图像的实例分割系统,所述系统包括:
处理器和用于存储可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以执行如上所述的文档图像的实例分割方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的文档图像的实例分割方法。
实施例
参照图2,根据本发明的一个实施例包括以下步骤:
第一步:输入原始图像
将原始图像输入到文档图像实例分割系统中,原始图像上具有背景、线条、图章、插图、印刷体文本、手写体文本6个实例目标。
第二步:图像预处理
如果输入的原始图像尺寸不合理,则需要对原始图像进行预处理,即边界补齐,使得图像的宽度和高度能够不受下采样影响,对齐边界的值一般跟下采样的数值一致。例如,下采样是1/16,则边界对齐是16个单位或像素,或者16的整数倍,如32,64等。
第三步,实例分割
将预处理之后的原始图像送入实例分割全卷积神经网络FCN,实例分割网络结构如图3。
整个实例分割网络采用一个UNet型网络设计,先通过一个5层的卷积层,进行图像的特征提取,然后上采样并融合上一层的卷积结果,最后得到一个1/2(可以根据分割的目标不同,选择不同的尺度如1,1/2,1/4,1/8等)图像大小的64位特征图Featuremap,根据分割的需求,输出不同的分数图(scoresmap):
1)输出一个文字方向分数图(Direction scoresmap),每一个像素所在视野区域内文字的方向信息,归一化在[0,1],对应[0,2]的角度。
2)输出6个实例对象分割图Objectmap,即6个实例对象分数图(scoresmap),包括背景、线条、图章、插图、印刷体文本、手写体文本等6个目标实例对象。输出值是这6个类别经过归一化指数函数(softmax)之后的输出,取值范围在[0,1]。
3)输出8紧邻方向的链接信息——称作八邻域像素链接图Linkmap,每一个方向上2个scoresmap,对应正链接(Pos-Link)和负链接(Neg-Link),输出值也是经过softmax之后的,取值范围在[0,1]之间。
图4是直线的Objectmap,图5是打印文本的Objectmap。
实例分割全卷积神经网络FCN的训练过程如下:
1) 样本标注
所有的实例对象都采用矢量线段来表述,对于线条使用有线线段和线宽描述,对于实例如文字、图章等,采用多边形进行描述;对于文字方向,则标记每一个字符矩形框内为一个方向,字符方向为字头朝向,定义向上(正向)为0度角,一个字符框内的所有像素为一个方向。
2) 训练过程
将样本集分为训练集和测试集,通过训练集对神经网络进行训练,得到全卷积神经网络的模型,然后通过测试集对模型进行测试,以确定算法的泛化能力,如果效果不佳则继续修改参数重新训练,直到训练的模型在测试集上能够达到预设的准确率。如果准确率不能满足要求,则继续增加训练样本,增加样本的多样性,重新进行训练,然后进行测试,如此循环。如此,输出准确率满足要求的全卷积神经网络模模型。
第四步,实例图分析
针对每一个分类的实例分割图的对象分割图Objectmap和像素链接Linkmap,将同一实例中的像素点链接起来分割出不同的对象实例,然后直接从分割结果中利用像素分析的方法分析出目标实例对象。
1)线条分割图分析:根据直线的Objectmap和Linkmap,并分别设置和为阈值,对两个scoresmap进行二值化,小于阈值的置位0,大于阈值的置位1,对于Objectmap二值化得到是前景像素1和背景像素0,对于Linkmap二值化得到的是八个邻域间的链接1和不链接0,根据二值化之后的Objectmap中前景像素并结合Linkmap二值化图中的八邻域链接信息,进行图像的区域搜索,得出线条的分割区域,用连通域CC(connectedcomponent)表示。为了更简单的描述文档上的一条直线(文档上的一条直线,有可能在图像上因为各种原因,导致直线并不是直线,而是一条弯曲的直线),本实施例采用分段拟合的方式描述这条直线,也即直线是一个多个点组成的线段组合而成。图6中的一条图像上的直线就是由5个点组成的4条线段进行表述,另外加上每一个线段的宽度信息。
2)图章分割图分析:根据图章的Objectmap和Linkmap,并分别设置和为阈值,对两个scoresmap进行二值化,小于阈值的置位0,大于阈值的置位1,对于Objectmap二值化得到是前景像素1和背景像素0,对于Linkmap二值化得到的是八个邻域间的链接1和不链接0,根据二值化之后的Objectmap中前景像素并结合Linkmap二值化图中的八邻域链接信息,进行图像的区域搜索,得出图章的分割区域,用连通域CC(connectedcomponent)表示。进一步分析每一个图章区域的连通域,可以得到拟合的图章的形状,方形、长方形、圆形、椭圆形等形状,并根据不同的类别表述成不同的形式。方形章和长方形的章表述为4条边的集合,圆形和椭圆形描述为曲线的集合,如图7所示。
3)插图分割图分析:
根据插图的Objectmap和Linkmap,并分别设置和为阈值,对两个scoresmap进行二值化,小于阈值的置位0,大于阈值的置位1,对于Objectmap二值化得到是前景像素1和背景像素0,对于Linkmap二值化得到的是八个邻域间的链接1和不链接0,根据二值化之后的Objectmap中前景像素并结合Linkmap二值化图中的八邻域链接信息,进行图像的区域搜索,得出插图的分割区域,用连通域CC(connected component)表示。同样图片区域包括各种柱状图、饼图、插图等等,使用一个最小外接矩形minAreaRect来描述,包含最小外接矩形的中心(x,y),(宽度,高度),旋转角度,如图8所示。
4)打印文本图分析:
根据打印文本的Objectmap和Linkmap,根据阈值和为阈值,对两个scoresmap进行二值化,小于阈值的置位0,大于阈值的置位1,对于Objectmap二值化得到是前景像素1和背景像素0,对于Linkmap二值化得到的是八个邻域间的链接1和不链接0,根据二值化之后的Objectmap中前景像素并结合Linkmap二值化图中的八邻域链接信息,进行图像的区域搜索,得出打印文本的分割区域,用连通域CC(connected component)表示。考虑文本有很多复杂的情况,有的很长有的很短,而且有横排和竖排,有的长行还会跟着纸张发生变形,如果使用一个矩形,或者最小面积的外界矩形进行描述,误差会很大,在一些特殊情况下会带来很多文本行外的噪声,为了更好的表述文本区域,本实施例使用封闭的多边形来表述polygon表述。图9示出一个图像变形的文本行连通域,其表述方法如下:获得CC外界轮廓点序列,按照顺时针方向进行排列,然后利用道格拉斯普客算法(DouglasPeucker algorithm)进行平滑(如图10所示),在弦上小于一定阈值的距离的点都会被抛弃,最后剩余的点就是多边形表述需要的点。
每一个文本区域(或者所是文本行)都有一个方向,为了确定每一个文本行的方向,本实施例利用文本行内每一个像素预测的文字方向的平均值。也就是利用连通域CC内的所有Text Scoresmap,对预测出来的文本像素点对应的文字方向Direction scoresmap中索引对应像素点的文字方向,然后将所有在CC类的像素点的方向进行平均,确定本行文字的主方向角度。
5)手写文本图分析:
根据手写文本的Objectmap和Linkmap,根据阈值和为阈值,对两个scoresmap进行二值化,小于阈值的置位0,大于阈值的置位1,对于Objectmap二值化得到是前景像素1和背景像素0,对于Linkmap二值化得到的是八个邻域间的链接1和不链接0,根据二值化之后的Objectmap中前景像素并结合Linkmap二值化图中的八邻域链接信息,进行图像的区域搜索,得出手写文本的分割区域,用连通域CC(connectedcomponent)表示,表述方法同打印文本图分析的表述方法。
第五步:分割结果输出
所有的实例分割结果有两个重要的信息,一个是类别,一个是位置,为了后面继续处理提供足够的信息。在开发过程中,文档图像实例分割之后的结果通过一个XML输出,也可以使用其他结构化的文件格式如JASON等。
图11示出根据本发明一个实施例的文字定位印刷体分割效果图,图12示出根据本发明一个实施例的文字定位手写体分割效果图,图13示出根据本发明一个实施例的表格线提取分割效果图,图14示出根据本发明一个实施例的图章检测分割效果图。
实验表明,本发明的文档图像实例分割方法能够在同一个网络中定位到不同的文档图像中的对象,并完成对象的实例分割,最终得到每一个实例对象:线条、图章、插图、打印文本、手写文本等对象,该方法与传统的文档图像分析方法相比,具有更好的定位精度、定位性能、并行执行,而且只需要更少的训练迭代轮次和更少的训练数据。
本发明的方法中,各种不同的文档要素实例分割技术可以合在一起如同本专利这样进行提取,也可以单独的应用本专利的实例分割方法分别进行提取,只需简单的修改神经网络实例分割输出部分,比如只需要分割文本,则实例分割部分就输出文本和背景(非文本)两个scoresmap;也可以组合其中几个实际应用中需要的要素进行提取,比如输出线条、打印文本和背景3个scoresmap,以提取线条和打印文本。该网络的实例分割部分也可以根据需要进行替换或者扩展,以适应不同的文档要素提取的需求,比如增加一个类别条形码类别,本发明也可以简单的修改实例分割输出,增加一个条形码的scoresmap即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现 出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘) 中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器, 或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上 述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的, 本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求 所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。