CN108960062A - 校正发票图像的方法、装置、计算机设备和存储介质 - Google Patents
校正发票图像的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108960062A CN108960062A CN201810557203.9A CN201810557203A CN108960062A CN 108960062 A CN108960062 A CN 108960062A CN 201810557203 A CN201810557203 A CN 201810557203A CN 108960062 A CN108960062 A CN 108960062A
- Authority
- CN
- China
- Prior art keywords
- straight line
- picture
- group
- mentioned
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012937 correction Methods 0.000 claims abstract description 62
- 238000012360 testing method Methods 0.000 claims abstract description 32
- 238000001514 detection method Methods 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 abstract description 11
- 238000012549 training Methods 0.000 description 32
- 230000009466 transformation Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004069 differentiation Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Image Analysis (AREA)
Abstract
本发明提出的校正发票图像的方法、装置、计算机设备和存储介质,其中方法包括:对所述待校正的发票图像进行黑白二值化处理得到第一图片;检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;检测所述第二图片的边框;对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。本发明提出的校正发票图像的方法、装置、计算机设备和存储介质,用于对发票图像进行统一的正视图校正处理,减小发票图像的质量差异。
Description
技术领域
本发明涉及到计算机技术领域,特别是涉及到一种校正发票图像的方法、装置、计算机设备和存储介质。
背景技术
为了能在新的发票图像中提取特定项目的文本信息,需要先使用已经大量标记好的发票图像输入到具体深度学习的算法中训练模型,然后利用训练好的模型来提取新的发票图像的特定项目的文本信息。而在训练模型的过程中,需要大量的发票图像,由于用来训练的大量发票图像来自于途径,例如由不同的用户通过拍照的方式上传,而拍摄的发票图像由于会受到拍照角度、光照条件、拍摄背景以及发票在发票图像中的位置等多种因素的影响,导致这些发票图像的质量千差万别,当将这些发票图像直接用于训练模型时会使得模型的收敛速度较为缓慢,因此如何将这些发票图像进行统一的正视图校正处理,从而减小发票图像的质量差异成为亟待解决的问题。
发明内容
本发明的主要目的为提供一种校正发票图像的方法、装置、计算机设备和存储介质,用于对发票图像进行统一的正视图校正处理,减小发票图像的质量差异。
本发明提出的校正发票图像的方法,包括:
对所述待校正的发票图像进行黑白二值化处理得到第一图片;
检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
检测所述第二图片的边框;
对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。
进一步地,所述检测所述第一图片中的文字部分的步骤包括:
将所述第一图片输入到预设的CTPN模型中进行检测;其中,所述CTPN 模型为指定量的已知文字部分的第一图片以及所述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;
获取所述CTPN模型输出的检测结果,所述检测结果即为所述第一图片中的文字部分。
进一步地,所述CTPN模型包括VGG网络、LSTM网络以及全连接层,所述将所述第一图片输入到预设的CTPN模型中进行检测的步骤,包括:
将所述第一图片处理成指定像素要求的黑白图片;
将所述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;
通过LSTM网络对所述第一图像特征进行关联性特征计算得到多个第二图片特征;
通过全连接层将所述多个第二图片特征结合在一起形成全局图片特征,从而输出检测结果。
进一步地,所述检测所述第二图片的边框的步骤包括:
检测所述第二图片中的多个黑色的短直线;
对多个所述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离;
将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;
分别对每个所述短直线组内的短直线进行拟合得到对应的多组长直线;
根据所述多组长直线在所述第二图片中的位置进行分类,得到多组方位直线组;
根据预设规则,删除每一方位直线组内不符合条件的长直线;
计算每一所述方位直线组中剩余的长直线的斜率平均值;
选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离所述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线;
按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框。
进一步地,所述根据预设规则,删除每一方位直线组内不符合条件的长直线的步骤,包括:
当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;
当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
进一步地,所述方位直线组包括上方组、下方组、左方组以及右方组,所述边界直线包括上边界直线、下边界直线、左边界直线以及右边界直线;所述按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框的步骤,包括:
获取所述上边界直线、下边界直线、左边界直线以及右边界直线围成的闭合区域对应的线段,作为所述第二图片的边框。
进一步地,所述对所述待校正的发票图像进行黑白二值化处理得到第一图片的步骤,包括:
对所述待校正的发票图像进行转换得到灰度图;
将所述灰度图进行黑白二值化处理得到第一图片。
本发明提出的校正发票图像的装置,包括:
处理单元,用于对所述待校正的发票图像进行黑白二值化处理得到第一图片;
第一检测单元,用于检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
第二检测单元,用于检测所述第二图片的边框;
变换单元,用于对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。
本发明还提出的计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提出的计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时上述方法的步骤。
本发明的有益效果为:对所述待校正的发票图像进行黑白二值化处理得到第一图片;计算出所述第一图片中的文字部分,并将计算得到的文字部分填充为空白状态得第二图片;检测所述第二图片的边框;对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片得到经过正视图校正后的发票图片,从而实现了减小发票图像的质量差异的目的,从而,校正后的发票图像作为训练样本对发票图像等相关模型进行训练时,由于发票图像的质量相近,能显著加快该模型的收敛速度,提高模型的训练效率。
附图说明
图1为本发明一实施例中的校正发票图像的方法的步骤示意图:
图2为本发明另一实施例中的校正发票图像的方法的步骤示意图;
图3为本发明一实施例中的校正发票图像的装置的结构示意图;
图4为本发明一实施例中的校正发票图像的装置的第一检测单元的结构示意图;
图5为本发明一实施例中的校正发票图像的装置的第一检测模块的结构示意图;
图6为本发明一实施例中的校正发票图像的装置的第二检测单元的结构示意图;
图7为本发明另一实施例中的校正发票图像的装置的结构示意图;
图8为本发明一实施例中的校正发票图像的装置的处理单元的结构示意图;
图9为本发明一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明提出的校正发票图像的方法,包括:
步骤S1,对所述待校正的发票图像进行黑白二值化处理得到第一图片;
步骤S2,检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
步骤S3,检测所述第二图片的边框;
步骤S4,对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。
在步骤S1中,本实施例中的校正发票图像的方法,需要先获取待校正的发票图像,其中待校正的发票图像作为进行统一的正视图校正处理的原始图像。对于上述待校正的发票图像需要进行黑白二值化处理得到对应的第一图片,具体的说,将待校正的发票图像中的边框和文字部分变为黑色,而边框和文字部分之外其它区域例如背景或空白部分将变为白色。而将上述待校正的发票图像进行黑白二值化处理之后,能更容易的计算出上述待校正的发票图像中的文字部分。
在步骤S2中,对于得到的第一图片,需要检测出上述第一图片中的文字部分,并将检测得到的上述第一图片中的文字部分填充为空白状态得到第二图片,将文字部分填充为空白状态可以避免在检测上述第二图片的边框时造成干扰,从而提高检测待校正的发票图像的边框的准确性。
在步骤S3中,在对待校正的发票图像进行校正之前,需要检测得到待校正的发票图像的边框,这里,第二图片的边框就是对待校正的发票图像进行校正的参考边框,从而实现对边框内的区域进行统一的正视图校正处理。
在步骤S4中,在对待校正的发票图像进行校正时,需要根据检测得到的上述第二图片的边框位置,对应获取得到上述待校正的发票图像中位于上述边框内的区域,然后对上述待校正的发票图像中位于上述边框内的区域进行透视变换得到校正后的发票图片。其中透视变换的具体方式为以上述待校正的发票图像中的边框的四个交点放入到坐标系,在坐标系中,从左上角按照顺时针依次排列为(xi,yi),其中i=0,1,2,3,需要指出的是,在该坐标系中,将上述第二图片的边框中位于左上角的交点作为原点,X轴的正方向为水平向右,Y轴的正方向竖直向下。其中校正后的发票图片的边框上的四个交点的坐标为(xi′,yi′),i=0,1,2,3。校正后的发票图片的四个交点的坐标与校正前的发票图像的四个交点的坐标所对应的关系为:x0′=y0′=y1′=x2′=0, x1′=x2′=max(x1-x0,x3-x2),y2′=y3′=max(y2-y0,y3-y1)。根据变换前后的四个点所对应的坐标来计算得到变换矩阵M,其中求解变换矩阵M的公式为:
在上述公式中,t为常数,根据上述公式求得的变换矩阵M,将待校正的发票图像中所有点坐标(xi,yi)代入公式:
从而求得校正后的发票图像中所有点在透视变换后的坐标(xi′,yi′),得到经过正视图校正后的发票图片,从而实现了减小发票图像的质量差异的目的;从而,校正后的发票图像作为训练样本对发票图像等相关模型进行训练时,由于发票图像的质量相近,能显著加快该模型的收敛速度,提高模型的训练效率。
本实施例中,所述检测所述第一图片中的文字部分的步骤,包括:
步骤S21,将所述第一图片输入到预设的CTPN模型中进行检测;其中,所述CTPN模型为指定量的已知文字部分的第一图片以及所述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;
步骤S22,获取所述CTPN模型输出的检测结果,所述检测结果即为所述第一图片中的文字部分。
对于获取的第一图片,需要检测第一图片中的文字部分,本实施例中采用CTPN模型来进行检测,其中上述CTPN模型为训练好的模型。对于CTPN 模型进行训练的方法包括,先获取大量的样本数据,并将上述样本数据分成训练集和测试集,其中上述样本数据包括已知文字部分的第一图片,以及在上述第一图片中标记出的文字部分。将上述训练集的样本数据输入到预设的 CTPN模型中进行训练,得到用于检测文字部分的结果训练模型。对于训练得到的结果训练模型,将测试集的样本数据中的已知文字部分的第一图片输入到结果训练模型得到priorbox、pred和score三个结果,通过将上述三个结果与输入的第一图片中标记出的文字部分的数据进行对比,验证是否达到要求,其中具体通过损失函数来计算分类损失和回归损失的加权和是否达到要求,对于分类损失,它是通过预测的文本类型的分类结果与文本类型的真实分类结果计算的交叉熵,计算公式为对于回归损失,它是通过预测的文本位置与真实的文本位置计算的smooth L1损失,其中,具体通过选取出文本位置的对角的两个坐标(对应四个值)进行计算,计算公式为
其中x就是预测的文本位置与真实的文本位置的差值,σ是一个可以调节的参数,在训练过程中通过调节这个参数使得分类损失函数和smooth L1损失函数的加权和大致相同,以达到通过最小化损失来驱动CTPN模型训练的目的。当CTPN模型训练完成之后,当将上述第一图片输入到训练好的CTPN 模型后,上述CTPN模型将输出检测结果,上述检测结果即为上述第一图片中的文字部分,从而能进一步实现将文字部分填充成空白状态,便于检测边框。
本实施例中的校正发票图像的方法,所述CTPN模型包括VGG网络、 LSTM网络以及全连接层,所述将所述第一图片输入到预设的CTPN模型中进行检测的步骤S21,包括:
步骤S211,将所述第一图片处理成指定像素要求的黑白图片;
步骤S212,将所述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;
步骤S213,通过LSTM网络对所述第一图像特征进行关联性特征计算得到多个第二图片特征;
步骤S214,通过全连接层将所述多个第二图片特征结合在一起形成全局图片特征,从而输出检测结果。
对于上述第一图片,在输入到上述预设的CTPN模型之前,需要先将第一图片处理成指定像素要求的黑白图片;其中具体的处理方式为将第一图片在保持长宽比不变的情况下,先将第一图片的最大维度调整为256像素,从而得到指定像素要求的黑白图片。
将上述指定像素要求的黑白图片输入到CTPN模型进行检测,其中CTPN 模型具体包括VGG网络、LSTM网络以及全连接层。上述CTPN模型中的 VGG网络用于对上述黑白图片进行卷积计算得到第一图片特征;经过VGG 网络进行卷积计算得到第一图片特征,还需要通过LSTM网络对上述第一图像特征进行关联性特征计算得到第二图片特征,需要指出的是CTPN模型增加LSTM网络,可以使得CTPN模型能充分利用了第一图片特征中的文字部分的前后关联性,直接同步预测出文字部分的位置、类型与置信度三个参量,大大提高检测第一图片中的文字部分的速度以及精度。由于第二图片特征为局部图片特征,因此需要通过全连接层将上述第二图片特征结合在一起形成全局图片特征,最后根据全局图片特征得到检测结果,其中对应的检测结果为priorbox、pred和score三个结果,其中priorbox用来表示文本位置,pred 用来表示文本类型,score用来表示特定位置上文本类型的置信度大小,根据得到上述三个参数即可得到上述第一图片中的文字部分。
本实施例中的校正发票图像的方法,所述检测所述第二图片的边框的步骤S3包括:
步骤S31,检测所述第二图片中的多个黑色的短直线;
步骤S32,对多个所述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离;
步骤S33,将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;
步骤S34,分别对每个所述短直线组内的短直线进行拟合得到对应的多组长直线;
步骤S35,根据所述多组长直线在所述第二图片中的位置进行分类,得到多组方位直线组;
步骤S36,根据预设规则,删除每一方位直线组内不符合条件的长直线;
步骤S37,计算每一所述方位直线组中剩余的长直线的斜率平均值;
步骤S38,选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离所述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线;
步骤S39,按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框。
本实施例中的通过概率霍夫变换来检测上述第二图片得到多个黑色的短直线,其中上述概率霍夫变换检测得到黑色的短直线的方法具体为,将上述第二图片放置到直角坐标系中,而对于直角坐标系中的每个点 (xi,yi),i=1,2,...n,如果它们在同一条直线上,那么xicosθi+yisinθi对于所有的点i=1,2,...n,均相同,而这个数值就是原点到上述所有点集所在直线的距离,其中θi表示(xi,yi)与横轴正向的夹角,也就是(xi,yi)在极坐标下的表示(θi,ρi)中的角分量。再随机抽取上述第二图片中的边缘点进行检测,如果此点已经被标定为之前检测出的短直线上的点,则跳过,否则沿着本条检测出的直线方向去标定共线的点以确定短直线的端点,直到上述第二图片中所有边缘点都抽取完毕。相较于经典霍夫变换需要遍历上述第二图片上的所有边缘点,概率霍夫变换的速度更快,而且检测出的是更贴合图形边缘的短直线,而不是经典霍夫变换中的横跨整个图像的大直线。
对于通过上述概率霍夫变换检测得到的多个短直线,需要对多个上述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离。其中对多个上述短直线分别进行方向判定的方法为,通过将两条短直线夹角的余弦值与1的差值的绝对值作为衡量的标准;当该两条短直线夹角的余弦值与1的差值的绝对值大小为0,说明两条短直线平行,当该两条短直线夹角的余弦值与1的差值的绝对值大小为1,说明两条短直线垂直。优选地,当两条短直线夹角的余弦值与1的差值的绝对值大小低于0.1时,也判定两条短直线的方向为一致。其中计算相邻的所述短直线之间的距离的方法为,随机在两条短直线中选取两个端点,分别计算某一端点到另一条短直线的距离,从得到的四个端点到短直线的四个距离值,选取四个距离值中的最大值,当该最大值小于预设阈值时,具体的说小于15个像素点时,则说明这两条短直线的距离很小。根据上述方法将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组。
对于上述多组短直线,需要将上述多组短直线中的所有短直线,以组内的形式进行拟合得到对应的多组长直线,其中进行拟合的方法为采用最小二乘法。需要注意的是,对于接近水平的短直线,直接使用最小二乘法即可;对于接近竖直的短直线,由于短直线的斜率非常大,导致直接使用最小二乘法会产生比较大的误差,对于这种情况,需要将x坐标和y坐标位置进行交换,再使用最小二乘法,计算出结果后再将坐标交换回来。
对于得到的多组长直线,需要将上述所有的长直线根据位置进行分类得到多组方位直线组。其中具体的分组方式为将水平的且位于整体第二图片中上方三分之一的位置的长直线分在上方组,将水平的且位于整体第二图片中下方三分之一的位置的长直线分在下方组,将竖直的且在第二图片整体左方三分之一的位置的长直线分在左侧组,将竖直的且在第二图片整体右方三分之一的位置的长直线分在右侧组,从而实现将所有的长直线根据位置进行分类。
对于得到的多组方位直线组中每组内的长直线,需要根据预设规则,删除每一方位直线组内不符合条件的长直线,其目的在于删除方位直线组中与组内其它长直线方向不一致的长直线,排除不是第二图片的边界所产生的直线。
计算每一所述方位直线组中剩余的长直线的斜率平均值,需要注意的是,对于接近水平的长直线,直接计算斜率即可;对于接近竖直的长直线,由于长直线的斜率非常大,对于这种情况,需要将x坐标和y坐标位置进行交换再计算斜率即可,计算出结果后再将坐标交换回来。
对于该方位直线组中的剩余的长直线,选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离上述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点;例如当该方位直线组为上方组时,该指定点指的是所有端点中距离所有端点中距离的上边界距离最近的端点;根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线。
根据求出的边界直线,按照上述边界直线,以及预设的边框规则,生成上述第二图片的边框;其中预设的边框规则为获取得到的边界直线围成的闭合区域所对应的线段作为上述第二图片的边框。
优选地,本实施例中的校正发票图像的方法,所述根据预设规则,删除每一方位直线组内不符合条件的长直线的步骤S36,包括:
当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;
当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
在每一方位直线组中,当每一组中包括两条长直线时,如果这两条长直线方向不一致,则删除其中长度较短的一条长直线。当每一组中包括两条以上的长直线时,如果一条长直线与本组中超过一半以上的长直线方向不一致,则删除这条长直线。具体判断两条长直线的方向是否一致的方法为,通过将两条长直线夹角的余弦值与1的差值的绝对值大小作为衡量的标准;当该两条长直线夹角的余弦值与1的差值的绝对值大小为0,说明两条长直线平行,当该两条长直线夹角的余弦值与1的差值的绝对值大小为1,说明两条长直线垂直。当每一组中只有一条长直线时,则将该长直线作为该方位直线组的边界直线。
优选地,本实施例中的校正发票图像的方法,所述方位直线组包括上方组、下方组、左方组以及右方组,所述边界直线包括上边界直线、下边界直线、左边界直线以及右边界直线;所述按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框的步骤S39,包括:
获取所述上边界直线、下边界直线、左边界直线以及右边界直线围成的闭合区域对应的线段,作为所述第二图片的边框。
根据上述多组长直线在所述第二图片中的位置进行分类时,能得到多组方位直线组,当方位直线组包括上方组、下方组、左方组以及右方组,则上述边界直线包括上边界直线、下边界直线、左边界直线以及右边界直线,获取所述上边界直线、下边界直线、左边界直线以及右边界直线围成的闭合区域对应的线段,作为所述第二图片的边框。需要说明的是,当某一侧不存在方位直线组,则判断对侧是否存在方位直线组,若对侧存在方位直线组,则把对侧的边界直线向本侧平移,直至与垂直侧的其中一条边界直线的端点将要分离的位置处时停止平移,然后把这条从对侧平移过来的边界直线作为本侧的边界直线进行上述操作;若对侧同样不存在直线,则直接使用两侧第二图片本身的边界作为边框。
本实施例中的校正发票图像的方法,所述计算出所述第一图片中的文字部分,并将计算得到的文字部分填充为空白状态得第二图片的步骤S2之前,包括:
步骤S201,调整所述第一图片的对比度。
在步骤S201中,对于得到的第一图片,可以通过调整第一图片的对比度,使得上述第一图片中的黑白部分的区分更加明显。其中调整第一图片的对比度的方法具体可以为限制对比度自适应直方图均衡算法(CLAHE算法),其中限制对比度自适应直方图均衡算法(CLAHE算法)具体采用自适应修剪图像的直方图,再使用修剪后的直方图对黑白图片进行均衡调整,其优点在于使得上述第一图片中的文字部分和边框部分对应的区域与空白部分、背景部门对应的白色区域之间的区分更加明显。
本实施例中的校正发票图像的方法,所述对所述待校正的发票图像进行黑白二值化处理得到第一图片的步骤S1,包括:
步骤S11,对所述待校正的发票图像进行转换得到灰度图;
步骤S12,将所述灰度图进行黑白二值化处理得到第一图片。
由于待校正的发票图像中的每个像素点的颜色由R、G、B三个分量决定,而每个分量有256个值可取,这样每个像素点有1600多万种颜色的变化范围。而灰度图是R、G、B三个分量相同的一种特殊的彩色图像,每个像素点的变化范围仅为256种,所以将待校正的发票图像在进行黑白二值化之前,将待校正的发票图像进行转换得到灰度图,能使得后续的计算量变得更少。其中对待校正的发票图像进行转换得到灰度图的方法可以为求出每个像素点的R、 G、B三个分量的平均值,然后将这个平均值赋予给这个像素点的三个分量。此外,对待校正的发票图像进行转换得到灰度图的方法还可以为其他方法,例如在YUV的颜色空间中,Y的分量的物理意义所代表的是点的亮度,由Y 值反映亮度等级,从而根据RGB和YUV颜色空间的变化关系可建立亮度Y 与R、G、B三个颜色分量的对应关系:Y=0.3R+0.59G+0.11B,将Y这个亮度值用来表示待校正的发票图像每个像素点的灰度值,也使得后续的计算量变得更少。
在得到由待校正的发票图像转换得到的灰度图,即可对上述灰度图进行黑白二值化处理,其中对上述灰度图进行黑白二值化处理的方法具体为,对于上述灰度图中的每一个像素点P,选取以点P为中心的边长为21个像素点的正方形矩阵R,把正方形矩阵R中所有像素点的灰度值从大到小(颜色由白到黑)进行排序,选取正方形矩阵R中所有像素点20%的较大灰度值中最小灰度值T作为灰度阈值,如果点P的灰度值低于灰度阈值T,则将点P置为黑色,否则将点P置为白色。对于上述灰度图的所有像素点均通过上述方法进行黑白二值化处理,从而将上述灰度图中的文字部分和边框部分变成黑色,背景和空白部分变成白色,得到对应的第一图片,进行黑白二值化处理的第一图片有利于检测出其中的文字部分,以及检测边框。
参照图3,本实施例中的校正发票图像的装置,包括:
处理单元10,用于对所述待校正的发票图像进行黑白二值化处理得到第一图片;
第一检测单元20,用于检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
第二检测单元30,用于检测所述第二图片的边框;
变换单元40,用于对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图。
本实施例中的校正发票图像的装置,需要先获取待校正的发票图像,其中待校正的发票图像作为进行统一的正视图校正处理的原始图像。对于上述待校正的发票图像需要进行黑白二值化处理得到对应的第一图片,具体的说,将待校正的发票图像中的边框和文字部分变为黑色,而边框和文字部分之外其它区域例如背景或空白部分将变为白色。处理单元10将上述待校正的发票图像进行黑白二值化处理之后,能更容易的计算出上述待校正的发票图像中的文字部分。
对于得到的第一图片,第一检测单元20需要检测上述第一图片中的文字部分,并将检测得到的上述第一图片中的文字部分填充为空白状态得到第二图片,将文字部分填充为空白状态可以避免在检测上述第二图片的边框时造成干扰,从而提高检测的待校正的发票图像的边框的准确性。
在对待校正的发票图像进行校正之前,第二检测单元30检测得到待校正的发票图像的边框,这里,第二图片的边框就是对待校正的发票图像进行校正的参考边框,从而实现对边框内的区域进行统一的正视图校正处理。
在对待校正的发票图像进行校正时,需要根据检测得到的上述第二图片的边框位置,对应获取得到上述待校正的发票图像中位于上述边框内的区域,变换单元40对上述待校正的发票图像中位于上述边框内的区域进行透视变换得到校正后的发票图片。其中透视变换的具体方式为以上述待校正的发票图像中的边框的四个交点放入到坐标系,在坐标系中,从左上角按照顺时针依次排列为(xi,yi),其中i=0,1,2,3,需要指出的是,在该坐标系中,将上述第二图片的边框中位于左上角的交点作为原点,X轴的正方向为水平向右,Y轴的正方向竖直向下。其中校正后的发票图片的边框上的四个交点的坐标为 (xi′,yi′),i=0,1,2,3。校正后的发票图片的四个交点的坐标与校正前的发票图像的四个交点的坐标所对应的关系为:x0′=y0′=y1′=x2′=0, x1′=x2′=max(x1-x0,x3-x2),y2′=y3′=max(y2-y0,y3-y1)。根据变换前后的四个点所对应的坐标来计算得到变换矩阵M,其中求解变换矩阵M的公式为:
在上述公式中,t为常数,根据上述公式求得的变换矩阵M,将待校正的发票图像中所有点坐标(xi,yi)代入公式:
从而求得校正后的发票图像中所有点在透视变换后的坐标(xi′,yi′),得到经过正视图校正后的发票图片,从而实现了减小发票图像的质量差异的目的;从而,校正后的发票图像作为训练样本对发票图像等相关模型进行训练时,由于发票图像的质量相近,能显著加快该模型的收敛速度,提高模型的训练效率。
参照图4,本实施例中的校正发票图像的装置,所述第一检测单元20,包括:
第一检测模块21,用于将所述第一图片输入到预设的CTPN模型中进行检测;其中,所述CTPN模型为指定量的已知文字部分的第一图片以及所述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;
获取模块22,用于获取所述CTPN模型输出的检测结果,所述检测结果即为所述第一图片中的文字部分。
对于获取的第一图片,第一检测模块21检测第一图片中的文字部分,本实施例中采用CTPN模型来进行检测,其中上述CTPN模型为训练好的模型。对于CTPN模型进行训练的方法包括,先获取大量的样本数据,并将上述样本数据分成训练集和测试集,其中上述样本数据包括已知文字部分的第一图片,以及在上述第一图片中标记出的文字部分。将上述训练集的样本数据输入到预设的CTPN模型中进行训练,得到用于检测文字部分的结果训练模型。对于训练得到的结果训练模型,将测试集的样本数据中的已知文字部分的第一图片输入到结果训练模型得到priorbox、pred和score三个结果,通过将上述三个结果与输入的第一图片中标记出的文字部分的数据进行对比,验证是否达到要求,其中具体通过损失函数来计算分类损失和回归损失的加权和是否达到要求,对于分类损失,它是通过预测的文本类型的分类结果与文本类型的真实分类结果计算的交叉熵,计算公式为对于回归损失,它是通过预测的文本位置与真实的文本位置计算的smooth L1损失,其中,具体通过选取出文本位置的对角的两个坐标(对应四个值)进行计算,计算公式为
其中x就是预测的文本位置与真实的文本位置的差值,σ是一个可以调节的参数,在训练过程中通过调节这个参数使得分类损失函数和smooth L1损失函数的加权和大致相同,以达到通过最小化损失来驱动CTPN模型训练的目的。当CTPN模型训练完成之后,当将上述第一图片输入到训练好的CTPN 模型后,获取模块22输出的检测结果,上述检测结果即为上述第一图片中的文字部分,从而能进一步实现将文字部分填充成空白状态,便于检测边框。
参照图5,本实施例中的校正发票图像的装置,所述CTPN模型包括VGG 网络、LSTM网络以及全连接层,所述第一检测模块21,包括:
处理子模块211,用于将所述第一图片处理成指定像素要求的黑白图片;
第一计算子模块212,用于将所述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;
第二计算子模块213,用于通过LSTM网络对所述第一图像特征进行关联性特征计算得到多个第二图片特征;
结合子模块214,用于通过全连接层将所述多个第二图片特征结合在一起形成全局图片特征,从而输出检测结果。
对于上述第一图片,在输入到上述预设的CTPN模型之前,处理子模块 211将第一图片处理成指定像素要求的黑白图片;其中具体的处理方式为将第一图片在保持长宽比不变的情况下,先将第一图片的最大维度调整为256像素,从而得到指定像素要求的黑白图片。
第一计算子模块212将上述指定像素要求的黑白图片输入到CTPN模型进行检测,其中CTPN模型具体包括VGG网络、LSTM网络以及全连接层。上述CTPN模型中的VGG网络用于对上述黑白图片进行卷积计算得到第一图片特征;经过VGG网络进行卷积计算得到第一图片特征,第二计算子模块 213通过LSTM网络对上述第一图像特征进行关联性特征计算得到第二图片特征,需要指出的是CTPN模型增加LSTM网络,可以使得CTPN模型能充分利用了第一图片特征中的文字部分的前后关联性,直接同步预测出文字部分的位置、类型与置信度三个参量,大大提高检测第一图片中的文字部分的速度以及精度。由于第二图片特征为局部图片特征,结合子模块214通过全连接层将上述第二图片特征结合在一起形成全局图片特征,最后根据全局图片特征得到检测结果,其中对应的检测结果为priorbox、pred和score三个结果,其中priorbox用来表示文本位置,pred用来表示文本类型,score用来表示特定位置上文本类型的置信度大小,根据得到上述三个参数即可得到上述第一图片中的文字部分。
参照图6,本实施例中的校正发票图像的装置,所述第二检测单元30,包括:
第二检测模块31,用于检测所述第二图片中的多个黑色的短直线;
执行模块32,用于对多个所述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离;
分组模块33,用于将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;
拟合模块34,用于分别对每个所述短直线组内的短直线进行拟合得到对应的多组长直线;
分类模块35,用于根据所述多组长直线在所述第二图片中的位置进行分类,得到多组方位直线组;
删除模块36,用于根据预设规则,删除每一方位直线组内不符合条件的长直线;
第一计算模块37,用于计算每一所述方位直线组中剩余的长直线的斜率平均值;
第二计算模块38,用于选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离所述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线;
生成模块39,用于按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框。
本实施例中的第二检测模块31通过概率霍夫变换来检测上述第二图片得到多个黑色的短直线,其中上述概率霍夫变换检测得到黑色的短直线的方法具体为,将上述第二图片放置到直角坐标系中,而对于直角坐标系中的每个点(xi,yi),i=1,2,...n,如果它们在同一条直线上,那么xicosθi+yisinθi对于所有的点i=1,2,...n,均相同,而这个数值就是原点到上述所有点集所在直线的距离,其中θi表示(xi,yi)与横轴正向的夹角,也就是(xi,yi)在极坐标下的表示 (θi,ρi)中的角分量。再随机抽取上述第二图片中的边缘点进行检测,如果此点已经被标定为之前检测出的短直线上的点,则跳过,否则沿着本条检测出的直线方向去标定共线的点以确定短直线的端点,直到上述第二图片中所有边缘点都抽取完毕。相较于经典霍夫变换需要遍历上述第二图片上的所有边缘点,概率霍夫变换的速度更快,而且检测出的是更贴合图形边缘的短直线,而不是经典霍夫变换中的横跨整个图像的大直线。
对于通过上述概率霍夫变换检测得到的多个短直线,执行模块32对多个上述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离。其中对多个上述短直线分别进行方向判定的方法为,通过将两条短直线夹角的余弦值与1的差值的绝对值作为衡量的标准;当该两条短直线夹角的余弦值与1的差值的绝对值大小为0,说明两条短直线平行,当该两条短直线夹角的余弦值与1的差值的绝对值大小为1,说明两条短直线垂直。优选地,当两条短直线夹角的余弦值与1的差值的绝对值大小低于0.1时,也判定两条短直线的方向为一致。其中计算相邻的所述短直线之间的距离的方法为,随机在两条短直线中选取两个端点,分别计算某一端点到另一条短直线的距离,从得到的四个端点到短直线的四个距离值,选取四个距离值中的最大值,当该最大值小于预设阈值时,具体的说小于15个像素点时,则说明这两条短直线的距离很小。分组模块33根据上述方法将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组。
对于上述多组短直线,拟合模块34将上述多组短直线中的所有短直线,以组内的形式进行拟合得到对应的多组长直线,其中进行拟合的方法为采用最小二乘法。需要注意的是,对于接近水平的短直线,直接使用最小二乘法即可;对于接近竖直的短直线,由于短直线的斜率非常大,导致直接使用最小二乘法会产生比较大的误差,对于这种情况,需要将x坐标和y坐标位置进行交换,再使用最小二乘法,计算出结果后再将坐标交换回来。
对于得到的多组长直线,分类模块35将上述所有的长直线根据位置进行分类得到多组方位直线组。其中具体的分组方式为将水平的且位于整体第二图片中上方三分之一的位置的长直线分在上方组,将水平的且位于整体第二图片中下方三分之一的位置的长直线分在下方组,将竖直的且在第二图片整体左方三分之一的位置的长直线分在左侧组,将竖直的且在第二图片整体右方三分之一的位置的长直线分在右侧组,从而实现将所有的长直线根据位置进行分类。
删除模块36对于得到的多组方位直线组中每组内的长直线,需要根据预设规则,删除每一方位直线组内不符合条件的长直线,其目的在于删除方位直线组中与组内其它长直线方向不一致的长直线,排除不是第二图片的边界所产生的直线。
第一计算模块37计算每一所述方位直线组中剩余的长直线的斜率平均值,需要注意的是,对于接近水平的长直线,直接计算斜率即可;对于接近竖直的长直线,由于长直线的斜率非常大,对于这种情况,需要将x坐标和y 坐标位置进行交换再计算斜率即可,计算出结果后再将坐标交换回来。
对于该方位直线组中的剩余的长直线,选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离上述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点;例如当该方位直线组为上方组时,该指定点指的是所有端点中距离所有端点中距离的上边界距离最近的端点;第二计算模块38根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线。
生成模块39根据求出的边界直线,按照上述边界直线,以及预设的边框规则,生成上述第二图片的边框;其中预设的边框规则为获取得到的边界直线围成的闭合区域所对应的线段作为上述第二图片的边框。
优选地,本实施例中的校正发票图像的装置,所述删除模块36用于当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
在每一方位直线组中,当每一组中包括两条长直线时,如果这两条长直线方向不一致,删除模块36则删除其中长度较短的一条长直线。当每一组中包括两条以上的长直线时,如果一条长直线与本组中超过一半以上的长直线方向不一致,删除模块36则删除这条长直线。具体判断两条长直线的方向是否一致的方法为,通过将两条长直线夹角的余弦值与1的差值的绝对值大小作为衡量的标准;当该两条长直线夹角的余弦值与1的差值的绝对值大小为0,说明两条长直线平行,当该两条长直线夹角的余弦值与1的差值的绝对值大小为1,说明两条长直线垂直。当每一组中只有一条长直线时,则将该长直线作为该方位直线组的边界直线。
优选地,本实施例中的校正发票图像的装置,根据上述多组长直线在所述第二图片中的位置进行分类时,能得到多组方位直线组,当方位直线组包括上方组、下方组、左方组以及右方组,则上述边界直线包括上边界直线、下边界直线、左边界直线以及右边界直线,生成模块39获取所述上边界直线、下边界直线、左边界直线以及右边界直线围成的闭合区域对应的线段,作为所述第二图片的边框。需要说明的是,当某一侧不存在方位直线组,则判断对侧是否存在方位直线组,若对侧存在方位直线组,则把对侧的边界直线向本侧平移,直至与垂直侧的其中一条边界直线的端点将要分离的位置处时停止平移,然后把这条从对侧平移过来的边界直线作为本侧的边界直线进行上述操作;若对侧同样不存在直线,则直接使用两侧第二图片本身的边界作为边框。
参照图7,另一实施例中的校正发票图像的装置,还包括:
调整单元201,用于调整所述第一图片的对比度。
对于得到的第一图片,调整单元201可以通过调整第一图片的对比度,使得上述第一图片中的黑白部分的区分更加明显。其中调整第一图片的对比度的方法具体可以为限制对比度自适应直方图均衡算法(CLAHE算法),其中限制对比度自适应直方图均衡算法(CLAHE算法)具体采用自适应修剪图像的直方图,再使用修剪后的直方图对黑白图片进行均衡调整,其优点在于使得上述第一图片中的文字部分和边框部分对应的区域与空白部分、背景部门对应的白色区域之间的区分更加明显。
参照图8,本实施例中的校正发票图像的装置,所述处理单元10,包括:
转换模块11,用于对所述待校正的发票图像进行转换得到灰度图;
处理模块12,用于将所述灰度图进行黑白二值化处理得到第一图片。
由于待校正的发票图像中的每个像素点的颜色由R、G、B三个分量决定,而每个分量有256个值可取,这样每个像素点有1600多万种颜色的变化范围。而灰度图是R、G、B三个分量相同的一种特殊的彩色图像,每个像素点的变化范围仅为256种,所以将待校正的发票图像在进行黑白二值化之前,转换模块101将待校正的发票图像进行转换得到灰度图,能使得后续的计算量变得更少。其中对待校正的发票图像进行转换得到灰度图的方法可以为求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素点的三个分量。此外,对待校正的发票图像进行转换得到灰度图的方法还可以为其他方法,例如在YUV的颜色空间中,Y的分量的物理意义所代表的是点的亮度,由Y值反映亮度等级,从而根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应关系:Y=0.3R+0.59G+0.11B,将Y这个亮度值用来表示待校正的发票图像每个像素点的灰度值,也使得后续的计算量变得更少。
在得到由待校正的发票图像转换得到的灰度图,处理模块102对上述灰度图进行黑白二值化处理,其中对上述灰度图进行黑白二值化处理的方法具体为,对于上述灰度图中的每一个像素点P,选取以点P为中心的边长为21 个像素点的正方形矩阵R,把正方形矩阵R中所有像素点的灰度值从大到小 (颜色由白到黑)进行排序,选取正方形矩阵R中所有像素点20%的较大灰度值中最小灰度值T作为灰度阈值,如果点P的灰度值低于灰度阈值T,则将点P置为黑色,否则将点P置为白色。对于上述灰度图的所有像素点均通过上述方法进行黑白二值化处理,从而将上述灰度图中的文字部分和边框部分变成黑色,背景和空白部分变成白色,得到对应的第一图片,进行黑白二值化处理的第一图片有利于检测出其中的文字部分,以及检测边框。
参照图9,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于预设的校正发票图像的方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种校正发票图像的方法。
上述处理器执行上述校正发票图像的方法的步骤:对上述待校正的发票图像进行黑白二值化处理得到第一图片;检测上述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;检测上述第二图片的边框;对上述待校正的发票图像中位于上述边框内的区域进行透视变换得到校正后的发票图片。
上述计算机设备,将上述检测上述第一图片中的文字部分的步骤包括:将上述第一图片输入到预设的CTPN模型中进行计算;其中,上述CTPN模型为指定量的已知文字部分的第一图片以及上述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;获取上述 CTPN模型输出的计算结果,上述计算结果即为上述第一图片中的文字部分。
在一个实施例中,上述CTPN模型包括VGG网络、LSTM网络以及全连接层,上述将上述第一图片输入到预设的CTPN模型中进行计算的步骤,包括:将上述第一图片处理成指定像素要求的黑白图片;将上述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;通过LSTM网络对上述第一图像特征进行关联性特征计算得到多个第二图片特征;通过全连接层将上述多个第二图片特征结合在一起形成全局图片特征,从而输出计算结果。
在一个实施例中,上述检测上述第二图片的边框的步骤包括:检测上述第二图片中的多个黑色的短直线;对多个上述短直线分别进行方向判定,以及计算相邻的上述短直线之间的距离;将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;分别对每个上述短直线组内的短直线进行拟合得到对应的多组长直线;根据上述多组长直线在上述第二图片中的位置进行分类,得到多组方位直线组;根据预设规则,删除每一方位直线组内不符合条件的长直线;计算每一上述方位直线组中剩余的长直线的斜率平均值;选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离上述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一上述方位直线组中剩余的长直线的斜率平均值,以及上述指定点生成上述第二图片在对应方位直线组所在侧的边界直线;按照上述边界直线,以及预设的边框规则,生成上述第二图片的边框。
在一个实施例中,上述根据预设规则,删除每一方位直线组内不符合条件的长直线的步骤,包括:当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种校正发票图像方法,具体为:对上述待校正的发票图像进行黑白二值化处理得到第一图片;检测上述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;检测上述第二图片的边框;对上述待校正的发票图像中位于上述边框内的区域进行透视变换得到校正后的发票图片。
上述计算机可读存储介质,将上述检测上述第一图片中的文字部分的步骤包括:将上述第一图片输入到预设的CTPN模型中进行计算;其中,上述 CTPN模型为指定量的已知文字部分的第一图片以及上述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;获取上述CTPN模型输出的计算结果,上述计算结果即为上述第一图片中的文字部分。
在一个实施例中,上述CTPN模型包括VGG网络、LSTM网络以及全连接层,上述将上述第一图片输入到预设的CTPN模型中进行计算的步骤,包括:将上述第一图片处理成指定像素要求的黑白图片;将上述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;通过LSTM网络对上述第一图像特征进行关联性特征计算得到多个第二图片特征;通过全连接层将上述多个第二图片特征结合在一起形成全局图片特征,从而输出计算结果。
在一个实施例中,上述检测上述第二图片的边框的步骤包括:检测上述第二图片中的多个黑色的短直线;对多个上述短直线分别进行方向判定,以及计算相邻的上述短直线之间的距离;将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;分别对每个上述短直线组内的短直线进行拟合得到对应的多组长直线;根据上述多组长直线在上述第二图片中的位置进行分类,得到多组方位直线组;根据预设规则,删除每一方位直线组内不符合条件的长直线;计算每一上述方位直线组中剩余的长直线的斜率平均值;选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离上述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一上述方位直线组中剩余的长直线的斜率平均值,以及上述指定点生成上述第二图片在对应方位直线组所在侧的边界直线;按照上述边界直线,以及预设的边框规则,生成上述第二图片的边框。
在一个实施例中,上述根据预设规则,删除每一方位直线组内不符合条件的长直线的步骤,包括:当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM) 或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM (SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM (SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种校正发票图像的方法,其特征在于,包括:
对所述待校正的发票图像进行黑白二值化处理得到第一图片;
检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
检测所述第二图片的边框;
对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。
2.根据权利要求1所述的校正发票图像的方法,其特征在于,所述检测所述第一图片中的文字部分的步骤包括:
将所述第一图片输入到预设的CTPN模型中进行检测;其中,所述CTPN模型为指定量的已知文字部分的第一图片以及所述第一图片中标记出的文字部分作为样本数据训练所得,用于检测得到第一图片中的文字部分;
获取所述CTPN模型输出的检测结果,所述检测结果即为所述第一图片中的文字部分。
3.根据权利要求2所述的校正发票图像的方法,其特征在于,所述CTPN模型包括VGG网络、LSTM网络以及全连接层,所述将所述第一图片输入到预设的CTPN模型中进行检测的步骤,包括:
将所述第一图片处理成指定像素要求的黑白图片;
将所述黑白图片输入到VGG网络中进行卷积计算得到多个第一图片特征;
通过LSTM网络对所述第一图像特征进行关联性特征计算得到多个第二图片特征;
通过全连接层将所述多个第二图片特征结合在一起形成全局图片特征,从而输出检测结果。
4.根据权利要求1所述的校正发票图像的方法,其特征在于,所述检测所述第二图片的边框的步骤包括:
检测所述第二图片中的多个黑色的短直线;
对多个所述短直线分别进行方向判定,以及计算相邻的所述短直线之间的距离;
将相邻的短直线之间的距离小于预设阈值,且达到预设的方向一致性条件的短直线,分到同一个短直线组中,得到多个短直线组;
分别对每个所述短直线组内的短直线进行拟合得到对应的多组长直线;
根据所述多组长直线在所述第二图片中的位置进行分类,得到多组方位直线组;
根据预设规则,删除每一方位直线组内不符合条件的长直线;
计算每一所述方位直线组中剩余的长直线的斜率平均值;
选取出该方位直线组中的剩余的长直线的两个端点,找出所有端点中距离所述第二图片在对应方位直线组所在侧的边界最近的端点作为指定点,根据每一所述方位直线组中剩余的长直线的斜率平均值,以及所述指定点生成所述第二图片在对应方位直线组所在侧的边界直线;
按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框。
5.根据权利要求4所述的校正发票图像的方法,其特征在于,所述根据预设规则,删除每一方位直线组内不符合条件的长直线的步骤,包括:
当每一组方位直线组中包括两条长直线时,则删除长度较短的长直线;
当每一组方位直线组中包括两条以上的长直线时,将与组内其它长直线方向不一致的长直线删除。
6.根据权利要求4所述的校正发票图像的方法,其特征在于,所述方位直线组包括上方组、下方组、左方组以及右方组,所述边界直线包括上边界直线、下边界直线、左边界直线以及右边界直线;所述按照所述边界直线,以及预设的边框规则,生成所述第二图片的边框的步骤,包括:
获取所述上边界直线、下边界直线、左边界直线以及右边界直线围成的闭合区域对应的线段,作为所述第二图片的边框。
7.根据权利要求1所述的校正发票图像的方法,其特征在于,所述对所述待校正的发票图像进行黑白二值化处理得到第一图片的步骤,包括:
对所述待校正的发票图像进行转换得到灰度图;
将所述灰度图进行黑白二值化处理得到第一图片。
8.一种校正发票图像的装置,其特征在于,包括:
处理单元,用于对所述待校正的发票图像进行黑白二值化处理得到第一图片;
第一检测单元,用于检测所述第一图片中的文字部分,并将检测得到的文字部分填充为空白图像以得第二图片;
第二检测单元,用于检测所述第二图片的边框;
变换单元,用于对所述待校正的发票图像中位于所述边框内的区域进行透视变换得到校正后的发票图片。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810557203.9A CN108960062A (zh) | 2018-06-01 | 2018-06-01 | 校正发票图像的方法、装置、计算机设备和存储介质 |
PCT/CN2018/095484 WO2019227615A1 (zh) | 2018-06-01 | 2018-07-12 | 校正发票图像的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810557203.9A CN108960062A (zh) | 2018-06-01 | 2018-06-01 | 校正发票图像的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108960062A true CN108960062A (zh) | 2018-12-07 |
Family
ID=64492481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810557203.9A Pending CN108960062A (zh) | 2018-06-01 | 2018-06-01 | 校正发票图像的方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108960062A (zh) |
WO (1) | WO2019227615A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815954A (zh) * | 2019-01-31 | 2019-05-28 | 科大讯飞股份有限公司 | 增值税发票图像的方向校正方法、装置、设备及存储介质 |
CN110415183A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 图片校正方法、装置、计算机设备及计算机可读存储介质 |
CN110674889A (zh) * | 2019-10-15 | 2020-01-10 | 贵州电网有限责任公司 | 一种用于电表终端故障识别的图像训练方法 |
CN111259177A (zh) * | 2020-01-10 | 2020-06-09 | 深圳盒子信息科技有限公司 | 一种黑白二值签名图片存储方法和系统 |
CN111369554A (zh) * | 2020-03-18 | 2020-07-03 | 山西安数智能科技有限公司 | 低亮度多角度环境下皮带损伤样本的优化和预处理方法 |
CN111444912A (zh) * | 2020-01-14 | 2020-07-24 | 国网电子商务有限公司 | 一种票据图像文字识别方法及装置 |
CN111738254A (zh) * | 2019-10-12 | 2020-10-02 | 贵州电网有限责任公司 | 一种继电保护装置面板与屏幕内容自动化识别方法 |
CN111784587A (zh) * | 2020-06-30 | 2020-10-16 | 杭州师范大学 | 一种基于深度学习网络的发票照片位置矫正方法 |
CN113220859A (zh) * | 2021-06-01 | 2021-08-06 | 平安科技(深圳)有限公司 | 基于图像的问答方法、装置、计算机设备及存储介质 |
CN117333374A (zh) * | 2023-10-26 | 2024-01-02 | 深圳市海恒智能股份有限公司 | 一种基于图像直线段信息的书脊图像校正方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310746B (zh) * | 2020-01-15 | 2024-03-01 | 支付宝实验室(新加坡)有限公司 | 文本行检测方法、模型训练方法、装置、服务器及介质 |
CN111695558B (zh) * | 2020-04-28 | 2023-08-04 | 深圳市跨越新科技有限公司 | 基于YoloV3模型的物流运单图片摆正方法及系统 |
CN111695559B (zh) * | 2020-04-28 | 2023-07-18 | 深圳市跨越新科技有限公司 | 基于YoloV3模型的运单图片信息打码方法及系统 |
CN111753830A (zh) * | 2020-06-22 | 2020-10-09 | 作业不凡(北京)教育科技有限公司 | 一种作业图像校正方法和计算设备 |
CN111860608B (zh) * | 2020-06-28 | 2024-06-18 | 浙江大华技术股份有限公司 | 发票图像配准方法、设备及计算机存储介质 |
CN111899270B (zh) * | 2020-07-30 | 2023-09-05 | 平安科技(深圳)有限公司 | 卡片边框检测方法、装置、设备及可读存储介质 |
CN111862082B (zh) * | 2020-07-31 | 2024-08-30 | 成都盛锴科技有限公司 | 一种列车闸片厚度复核方法及其系统 |
CN112052853B (zh) * | 2020-09-09 | 2024-02-02 | 国家气象信息中心 | 一种基于深度学习的手写气象档案资料的文本定位方法 |
CN112529014B (zh) * | 2020-12-14 | 2023-09-26 | 中国平安人寿保险股份有限公司 | 直线检测方法、信息提取方法、装置、设备及存储介质 |
CN112529989B (zh) * | 2020-12-19 | 2024-08-06 | 新讯数字科技(杭州)有限公司 | 一种基于票据模板的图片重构方法 |
CN112633275B (zh) * | 2020-12-22 | 2023-07-18 | 航天信息股份有限公司 | 一种基于深度学习的多票据混拍图像校正方法及系统 |
CN112800797B (zh) * | 2020-12-30 | 2023-12-19 | 凌云光技术股份有限公司 | 一种dm码的区域定位方法及系统 |
CN116311333B (zh) * | 2023-02-21 | 2023-12-01 | 南京云阶电力科技有限公司 | 针对电气图纸中边缘细小文字识别的预处理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473763A (zh) * | 2013-08-31 | 2013-12-25 | 哈尔滨理工大学 | 基于启发式概率Hough变换的道路边缘检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8995770B2 (en) * | 2011-07-11 | 2015-03-31 | Brigham Young University | Word warping for offline handwriting recognition |
CN108022243A (zh) * | 2017-11-23 | 2018-05-11 | 浙江清华长三角研究院 | 一种基于深度学习的图像中纸张检测方法 |
CN107862303B (zh) * | 2017-11-30 | 2019-04-26 | 平安科技(深圳)有限公司 | 表格类图像的信息识别方法、电子装置及可读存储介质 |
-
2018
- 2018-06-01 CN CN201810557203.9A patent/CN108960062A/zh active Pending
- 2018-07-12 WO PCT/CN2018/095484 patent/WO2019227615A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473763A (zh) * | 2013-08-31 | 2013-12-25 | 哈尔滨理工大学 | 基于启发式概率Hough变换的道路边缘检测方法 |
Non-Patent Citations (3)
Title |
---|
王娅君: ""东南亚若干首都城市街景图像汉字检崩与时空分布分析"" * |
田文利: ""基于霍夫直线检测与二维透视变换的图像校正恢复算法"" * |
陈国栋: ""Hough变换改进算法研究"" * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815954A (zh) * | 2019-01-31 | 2019-05-28 | 科大讯飞股份有限公司 | 增值税发票图像的方向校正方法、装置、设备及存储介质 |
CN110415183A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 图片校正方法、装置、计算机设备及计算机可读存储介质 |
CN111738254A (zh) * | 2019-10-12 | 2020-10-02 | 贵州电网有限责任公司 | 一种继电保护装置面板与屏幕内容自动化识别方法 |
CN110674889A (zh) * | 2019-10-15 | 2020-01-10 | 贵州电网有限责任公司 | 一种用于电表终端故障识别的图像训练方法 |
CN111259177A (zh) * | 2020-01-10 | 2020-06-09 | 深圳盒子信息科技有限公司 | 一种黑白二值签名图片存储方法和系统 |
CN111444912A (zh) * | 2020-01-14 | 2020-07-24 | 国网电子商务有限公司 | 一种票据图像文字识别方法及装置 |
CN111369554A (zh) * | 2020-03-18 | 2020-07-03 | 山西安数智能科技有限公司 | 低亮度多角度环境下皮带损伤样本的优化和预处理方法 |
CN111784587A (zh) * | 2020-06-30 | 2020-10-16 | 杭州师范大学 | 一种基于深度学习网络的发票照片位置矫正方法 |
CN111784587B (zh) * | 2020-06-30 | 2023-08-01 | 杭州师范大学 | 一种基于深度学习网络的发票照片位置矫正方法 |
CN113220859A (zh) * | 2021-06-01 | 2021-08-06 | 平安科技(深圳)有限公司 | 基于图像的问答方法、装置、计算机设备及存储介质 |
CN113220859B (zh) * | 2021-06-01 | 2024-05-10 | 平安科技(深圳)有限公司 | 基于图像的问答方法、装置、计算机设备及存储介质 |
CN117333374A (zh) * | 2023-10-26 | 2024-01-02 | 深圳市海恒智能股份有限公司 | 一种基于图像直线段信息的书脊图像校正方法 |
CN117333374B (zh) * | 2023-10-26 | 2024-09-03 | 深圳市海恒智能股份有限公司 | 一种基于图像直线段信息的书脊图像校正方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019227615A1 (zh) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108960062A (zh) | 校正发票图像的方法、装置、计算机设备和存储介质 | |
CN109583445B (zh) | 文字图像校正处理方法、装置、设备及存储介质 | |
WO2020038205A1 (zh) | 目标检测方法、装置、计算机可读存储介质及计算机设备 | |
CN110163842B (zh) | 建筑裂缝检测方法、装置、计算机设备和存储介质 | |
US9953437B1 (en) | Method and device for constructing a table including information on a pooling type and testing method and testing device using the same | |
US20210166015A1 (en) | Certificate image extraction method and terminal device | |
CN110245662A (zh) | 检测模型训练方法、装置、计算机设备和存储介质 | |
CN106686308B (zh) | 图像焦距检测方法和装置 | |
CN110516541B (zh) | 文本定位方法、装置、计算机可读存储介质和计算机设备 | |
CN110400278B (zh) | 一种图像颜色和几何畸变的全自动校正方法、装置及设备 | |
CN113223025B (zh) | 图像处理方法及装置、神经网络的训练方法及装置 | |
CN109583483A (zh) | 一种基于卷积神经网络的目标检测方法和系统 | |
CN109325532A (zh) | 一种小样本下扩充数据集的图像处理方法 | |
CN109840524B (zh) | 文字的类型识别方法、装置、设备及存储介质 | |
CN111784588A (zh) | 图像数据增强方法、装置、计算机设备和存储介质 | |
CN111833237B (zh) | 基于卷积神经网络和局部单应性变换的图像配准方法 | |
CN110135446B (zh) | 文本检测方法及计算机存储介质 | |
CN110147787A (zh) | 基于深度学习的银行卡号自动识别方法及系统 | |
CN108334955A (zh) | 基于Faster-RCNN的身份证复印件检测方法 | |
WO2022105524A1 (zh) | 票据分类的方法、装置和计算机设备 | |
CN111161274A (zh) | 腹部图像分割方法、计算机设备 | |
CN110163864A (zh) | 图像分割方法、装置、计算机设备和存储介质 | |
CN113159035B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN113313092A (zh) | 手写签名识别方法、理赔自动化处理方法、装置和设备 | |
CN115619678B (zh) | 一种图像变形的矫正方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181207 |