发明内容
为了解决上述技术问题,本发明的一个目的是:提供一种耗时短、效率高和精确度高的票据图像金额分类方法。
本发明的另一目的是:提供一种耗时短、效率高和精确度高的票据图像金额分类系统。
本发明解决其技术问题所采用的技术方案是:一种票据图像金额分类方法,包括:
A、对采集的票据彩色图像进行灰度化处理,从而得到票据灰度图像;
B、对票据灰度图像进行二值化处理,从而得到票据二值图像;
C、根据预设的右上角定位模板和左上角定位模板对票据二值图像进行卷积运算,从而对大小写金额区域的位置进行定位,然后根据定位的结果提取出票据大小写金额区域二值图像;
D、对票据大小写金额区域二值图像进行识别,从而得到票据大小写金额的位数和首字符;
E、根据票据大小写金额的位数和首字符与预设的分类法则对票据金额进行分类。
进一步,所述步骤C,其包括:
C1、对票据二值图像的宽高比例进行计算,所述票据二值图像的宽高比例r的计算公式为:r=W/H,式中,W为票据二值图像的宽度,H为票据二值图像的高度;
C2、根据票据二值图像的宽高比例分别确定票据二值图像矩形框右上角和左上角的搜索范围;
C3、将票据二值图像搜索范围内的像素点分别与预设的右上角定位模板和左上角定位模板进行加权运算,从而对票据二值图像矩形框右上角和左上角的位置进行精确定位;
C4、根据票据二值图像矩形框右上角的位置从票据二值图像中提取出票据小写金额区域二值图像;
C5、根据票据二值图像矩形框左上角的位置从票据灰度图像中提取出票据大写金额区域灰度图像,然后进行两次二值化处理,从而得到票据大写金额区域二值图像。
进一步,所述步骤C2,其具体为:
根据票据二值图像的宽高比例r,判断票据是否已被撕掉存根,若是,则票据二值图像矩形框右上角和左上角的搜索范围均为由左上角[x0-a-c,y0-b]、右上角[x0+a-c,y0-b]、左下角[x0-a-c,y0+b]和右下角[x0+a-c,y0+b]这四个矩形框顶点所确定的矩形区域;反之,则票据二值图像矩形框右上角和左上角的搜索范围均为由左上角[x0-a,y0-b]、右上角[x0+a,y0-b]、左下角[x0-a,y0+b]和右下角[x0+a,y0+b]这四个矩形框顶点所确定的矩形区域;其中,x0和y0分别为完整票据矩形框右上角位置或左上角位置的水平坐标和垂直坐标,a和b分别为允许的水平偏移量和垂直偏移量,c为撕掉的存根宽度。
进一步,所述步骤C3,其包括:
C31、在票据二值图像矩形框右上角的搜索范围内,从票据二值图像的左上角开始,按自左向右,自上而下的顺序依次平移右上角定位模板,使右上角定位模板的中心与搜索范围内的相应像素点重合,然后计算右上角定位模板与其所覆盖票据二值图像像素点的卷积值,所述票据二值图像矩形框右上角的位置为计算出的卷积值最大值所对应的位置;
C32、在票据二值图像矩形框左上角的搜索范围内,从票据二值图像的左上角开始,按自左向右,自上而下的顺序依次平移左上角定位模板,使左上角定位模板的中心与搜索范围内的相应像素点重合,然后计算左上角定位模板与其所覆盖票据二值图像像素点的卷积值,所述票据二值图像矩形框左上角的位置为计算出的卷积值最大值所对应的位置。
进一步,所述步骤C4,其具体为:
根据票据二值图像矩形框右上角的位置,从票据二值图像中提取出票据小写金额区域二值图像S[i,j],所述票据小写金额区域二值图像S[i,j]的计算公式为:
S[i,j]=D[x0+i,y0+j],
其中,i=1,2,…,W1,j=1,2,…,H1;W1为票据小写金额区域二值图像的宽度,H1为票据小写金额区域二值图像的高度;S[i,j]表示票据小写金额区域二值图像水平位置为i和垂直位置j的像素点处的值,D[x0+i,y0+j]表示票据二值图像水平位置为x0+i和垂直位置为y0+j的像素点处的值。
进一步,所述步骤C5,其包括:
C51、根据票据二值图像矩形框左上角的位置,从票据灰度图像中提取出票据大写金额区域二值图像K[i,j],所述票据小写金额区域二值图像K[i,j]的计算公式为:
,
其中,i=1,2,…,W2,j=1,2,…,H2;W2为票据大写金额区域灰度图像的宽度,H2为票据大写金额区域灰度图像的高度;k[i,j]表示票据大写金额区域灰度图像水平位置为i和垂直位置j的像素点处的值,表示矩形框左上角到大写金额填写区域左上角的水平距离,表示票据灰度图像水平位置为和垂直位置为y0+j的像素点处的值;
C52、对票据大写金额区域灰度图像进行直接二值化,从而得到票据大写金额的第一二值图像;
C53、对票据大写金额的第一二值图像进行统计分析,计算出第一二值图像中白色像素点在票据彩色图像中所对应的灰度值,然后根据灰度值计算二值化阈值,再根据计算的二值化阈值对票据灰度图像进行二值化,从而得到票据大写金额区域二值图像。
进一步,所述步骤D,其具体为:
D1、根据票据的类型确定票据大小写金额各位的位置范围;
D2、从最高位开始,按从高位到低位的顺序,在票据大小写金额各位对应的位置处,对票据大小写金额各位进行票据二值图像垂直方向前景点进行统计,并将垂直方向前景点的当前统计值与预设的统计阈值进行比较,若垂直方向前景点的当前统计值小于预设的统计阈值,则转到票据大小写金额下一位进行票据二值图像垂直方向前景点统计;反之,则当前位为大小写金额填写的最高位,然后根据大小写金额填写的最高位确定票据大小写金额的位数和首位字符区域;
D3、对票据大小写金额首位字符区域进行OCR识别,从而得到票据大小写金额的首字符。
进一步,所述票据的类型包括支票、电子汇单、进账单、结算申请书、支付凭证和贷记凭证。
进一步,所述步骤E,其具体为:
判断票据大写金额的位数和首字符是否与票据小写金额的位数和首字符一致,若是,则直接按照预设的分类法则进行分类;反之,则以票据小写金额的位数和首字符为依据,然后按照预设的分类法则进行分类。
本发明解决其技术问题所采用的另一技术方案是:一种票据图像金额分类系统,包括:
灰度空间变换模块,用于对采集的票据彩色图像进行灰度化处理,从而得到票据灰度图像;
二值化处理模块,用于对票据灰度图像进行二值化处理,从而得到票据二值图像;
定位与提取模块,用于根据预设的右上角定位模板和左上角定位模板对票据二值图像进行卷积运算,从而对大小写金额区域的位置进行定位,然后根据定位的结果提取出票据大小写金额区域二值图像;
识别模块,用于对票据大小写金额区域二值图像进行识别,从而得到票据大小写金额的位数和首字符;
金额分类模块,用于根据票据大小写金额的位数和首字符与预设的分类法则对票据金额进行分类;
所述灰度空间变换模块的输出端依次通过灰度空间变换模块、二值化处理模块;定位与提取模块和识别模块进而与金额分类模块的输入端连接。
本发明的方法的有益效果是:通过对票据彩色图像进行灰度化、二值化、卷积运算、区域提取和识别处理,并通过预设的分类法则对票据金额自动进行分类,无需人工操作,减少了人工整理票据的时间以及人为操作所带来的偶然误差,耗时短、精确度高且提升了批量票据处理的效率。
本发明的系统的有益效果是:通过灰度空间变换模块、二值化处理模块和定位与提取模块、识别模块和金额分类模块对票据图像进行处理,对票据彩色图像进行灰度化、二值化、卷积运算、区域提取和识别处理,并通过预设的分类法则对票据金额自动进行分类,无需人工操作,减少了人工整理票据的时间以及人为操作所带来的偶然误差,耗时短、精确度高且提升了批量票据处理的效率。
具体实施方式
参照图1,一种票据图像金额分类方法,包括:
A、对采集的票据彩色图像进行灰度化处理,从而得到票据灰度图像;
B、对票据灰度图像进行二值化处理,从而得到票据二值图像;
C、根据预设的右上角定位模板和左上角定位模板对票据二值图像进行卷积运算,从而对大小写金额区域的位置进行定位,然后根据定位的结果提取出票据大小写金额区域二值图像;
D、对票据大小写金额区域二值图像进行识别,从而得到票据大小写金额的位数和首字符;
E、根据票据大小写金额的位数和首字符与预设的分类法则对票据金额进行分类。
其中,对采集的票据彩色图像进行灰度化处理,是指将采集的票据彩色图像由RGB空间变换到灰度空间,其进行变换时所采用的公式为:
Y[i,j]=0.35R[i,j]+0.59G[i,j]+0.11B[i,j]
式中,i=1,2,…,W0;j=1,2,…,H0;W0为票据彩色图像的宽度,H0为票据彩色图像的高度,i表示票据彩色图像像素点的横坐标,j表示票据彩色图像像素点(i,j)的纵坐标;R[i,j]、G[i,j]和B[i,j]分别表示票据彩色图像像素点(i,j)的红色分量值、绿色分量值和蓝色分量值,Y[i,j]表示票据灰度图像像素点(i,j)的像素值。
对票据灰度图像进行二值化处理主要是指,对票据灰度图像进行阈值分割,使大于分割阈值th的像素点的像素值等于255(黑色),而使小于或等于分割阈值th的像素点的像素值等于0(白色)。th的选取要使得票据灰度图像的黑色字体和表格信息凸现出来并去除其他信息的干扰,当像素点的像素值等于255时,为提取到前景目标点,分割阈值th可以取50(根据先验知识得到的值),th也可以通过自适应阈值或OSTU阈值计算方法得到。
定位模板是指用于定位票据二值图像矩形框的各顶点,与票据二值图像矩形框的各顶点进行卷积运算(加权运算)的矩阵。右上角定位模板用于定位票据二值图像矩形框的右上角顶点。左上角定位模板用于定位票据二值图像矩形框的左上角顶点。
参照图2,进一步作为优选的实施方式,所述步骤C,其包括:
C1、对票据二值图像的宽高比例进行计算,所述票据二值图像的宽高比例r的计算公式为:r=W/H,式中,W为票据二值图像的宽度,H为票据二值图像的高度;
C2、根据票据二值图像的宽高比例分别确定票据二值图像矩形框右上角和左上角的搜索范围;
C3、将票据二值图像搜索范围内的像素点分别与预设的右上角定位模板和左上角定位模板进行加权运算,从而对票据二值图像矩形框右上角和左上角的位置进行精确定位;
C4、根据票据二值图像矩形框右上角的位置从票据二值图像中提取出票据小写金额区域二值图像;
C5、根据票据二值图像矩形框左上角的位置从票据灰度图像中提取出票据大写金额区域灰度图像,然后进行两次二值化处理,从而得到票据大写金额区域二值图像。
进一步作为优选的实施方式,所述步骤C2,其具体为:
根据票据二值图像的宽高比例r,判断票据是否已被撕掉存根,若是,则票据二值图像矩形框右上角和左上角的搜索范围均为由左上角[x0-a-c,y0-b]、右上角[x0+a-c,y0-b]、左下角[x0-a-c,y0+b]和右下角[x0+a-c,y0+b]这四个矩形框顶点所确定的矩形区域;反之,则票据二值图像矩形框右上角和左上角的搜索范围均为由左上角[x0-a,y0-b]、右上角[x0+a,y0-b]、左下角[x0-a,y0+b]和右下角[x0+a,y0+b]这四个矩形框顶点所确定的矩形区域;其中,x0和y0分别为完整票据矩形框右上角位置或左上角位置的水平坐标和垂直坐标,a和b分别为允许的水平偏移量和垂直偏移量,c为撕掉的存根宽度。
以支票为例,若计算出的宽高比例r>2.5时,表明支票为完整的支票;反之,则表明支票为撕掉存根的支票。
参照图3,进一步作为优选的实施方式,所述步骤C3,其包括:
C31、在票据二值图像矩形框右上角的搜索范围内,从票据二值图像的左上角开始,按自左向右,自上而下的顺序依次平移右上角定位模板,使右上角定位模板的中心与搜索范围内的相应像素点重合,然后计算右上角定位模板与其所覆盖票据二值图像像素点的卷积值,所述票据二值图像矩形框右上角的位置为计算出的卷积值最大值所对应的位置;
C32、在票据二值图像矩形框左上角的搜索范围内,从票据二值图像的左上角开始,按自左向右,自上而下的顺序依次平移左上角定位模板,使左上角定位模板的中心与搜索范围内的相应像素点重合,然后计算左上角定位模板与其所覆盖票据二值图像像素点的卷积值,所述票据二值图像矩形框左上角的位置为计算出的卷积值最大值所对应的位置。
用T[m,n]表示右上角定位模板第m行第n列的像素值,T[m,n]满足:
用U[m,n]表示右上角定位模板第m行第n列的像素值U[m,n]满足:
以支票为例:
当r>2.5时,票据二值图像矩形框右上角搜索范围内各像素点与右上角定位模板T[m,n]的卷积值t[i,j]的计算方法如下:
,
票据二值图像矩形框左上角搜索范围内各像素点与左上角定位模板U[m,n]的卷积值u[i,j]的计算方法如下:
,
其中,i=x0-a,x0-a+1,…,x0+a;j=y0-b,y0-b+1,…,y0+b;D[i,j]表示票据二值图像水平位置为j和垂直位置为j的像素点处(i,j)的值。
当r≤2.5时,票据二值图像矩形框右上角搜索范围内各像素点与右上角定位模板T[m,n]的卷积值t[i,j]的计算方法如下:
,
票据二值图像矩形框左上角搜索范围内各像素点与左上角定位模板U[m,n]的卷积值u[i,j]的计算方法如下:
,
其中,i=x0-a-c,x0-a-c+1,…,x0+a-c;j=y0-b,y0-b+1,…,y0+b;D[i,j]表示票据二值图像水平位置为j和垂直位置为j的像素点处(i,j)的值。
在计算得到的票据二值图像矩形框右上角搜索范围内各像素点的卷积值t[i,j]中,t[i,j]最大值所对应的位置便为票据二值图像矩形框右上角的位置。
在计算得到的票据二值图像矩形框左上角搜索范围内各像素点的卷积值u[i,j]中,u[i,j]最大值所对应的位置便为票据二值图像矩形框左上角的位置。
进一步作为优选的实施方式,所述步骤C4,其具体为:
根据票据二值图像矩形框右上角的位置,从票据二值图像中提取出票据小写金额区域二值图像S[i,j],所述票据小写金额区域二值图像S[i,j]的计算公式为:
S[i,j]=D[x0+i,y0+j],
其中,i=1,2,…,W1,j=1,2,…,H1;W1为票据小写金额区域二值图像的宽度,H1为票据小写金额区域二值图像的高度;S[i,j]表示票据小写金额区域二值图像水平位置为i和垂直位置j的像素点处的值,D[x0+i,y0+j]表示票据二值图像水平位置为x0+i和垂直位置为y0+j的像素点处的值。
票据二值图像矩形框右上角的位置便为小写金额右上角的位置,因为小写金额区域左上角的位置与票据二值图像矩形框右上角的相对位置是固定的,所以得到票据二值图像矩形框右上角的相对位置后将小写金额区域从整个票据二值图像中提取出来,从而得到票据小写金额区域二值图像。
以支票为例,200dpi(dpi是"DotPerInch"的缩写,即每英寸所打印的点数或线数,用来表示打印机分辨率,即通常所说的硬件分辨率,是衡量打印机精度的一大标准,一般来说,该值越大,表明打印机的精度越高)支票小写金额区域二值图像的宽度W1=341,200dpi支票小写金额区域二值图像的高度H1=70。
参照图4,进一步作为优选的实施方式,所述步骤C5,其包括:
C51、根据票据二值图像矩形框左上角的位置,从票据灰度图像中提取出票据大写金额区域二值图像K[i,j],所述票据小写金额区域二值图像K[i,j]的计算公式为:
,
其中,i=1,2,…,W2,j=1,2,…,H2;W2为票据大写金额区域灰度图像的宽度,H2为票据大写金额区域灰度图像的高度;k[i,j]表示票据大写金额区域灰度图像水平位置为i和垂直位置j的像素点处的值,表示矩形框左上角到大写金额填写区域左上角的水平距离,表示票据灰度图像水平位置为和垂直位置为y0+j的像素点处的值;
C52、对票据大写金额区域灰度图像进行直接二值化,从而得到票据大写金额的第一二值图像;
C53、对票据大写金额的第一二值图像进行统计分析,计算出第一二值图像中白色像素点在票据彩色图像中所对应的灰度值,然后根据灰度值计算二值化阈值,再根据计算的二值化阈值对票据灰度图像进行二值化,从而得到票据大写金额区域二值图像。
票据二值图像矩形框左上角的位置便为大写金额左上角的位置,因为大写金额区域右上角的位置与票据二值图像矩形框左上角的相对位置是固定的,所以得到票据二值图像矩形框左上角的相对位置后将大写金额区域从整个票据灰度图像中提取出来,从而得到票据大写金额区域灰度图像。以支票为例,200dpi支票大写金额区域二值图像的宽度W2=700,200dpi支票大写金额区域二值图像的高度H1=70,。
提取到票据大写金额区域灰度图像后,由于票据大写金额区域除了背景底纹的影响外,还有金额栏上背景线条和印章的干扰,因此还需要去除底纹背景、背景线条及印章的干扰。
下面以支票例,对去除底纹背景、背景线条及印章的干扰过程进行说明:
首先,通过直接二值化方法滤除底纹背景,得到支票大写金额区域第一二值图像,该过程主要通过对票据灰度图像进行阈值分割,使大于分割阈值th1的像素点的像素值等于255(黑色),而使小于或等于分割阈值th1的像素点的像素值等于0(白色)。th1的选取要使得票据大写金额区域灰度图像的填写信息和背景底线凸现出来,而去除背景底纹的干扰。分割阈值th1可以取150(根据先验知识得到的值),th1也可以通过直方图统计的方法得到。
在得到票据大写金额区域第一二值化图像后,对票据大写金额区域第一二值化图像进行统计分析,计算出图像中白色点所对应于原始票据彩色图像中的灰度值,从这些灰度值计算二值化阈值,然后根据该二值化阈值对原图进行二值化,得到票据大写金额区域第二二值图像,该票据大写金额区域第二二值图像即为后续识别步骤所需要的票据大写金额区域二值图像。
参照图5,进一步作为优选的实施方式,所述步骤D,其具体为:
D1、根据票据的类型确定票据大小写金额各位的位置范围;
D2、从最高位开始,按从高位到低位的顺序,在票据大小写金额各位对应的位置处,对票据大小写金额各位进行票据二值图像垂直方向前景点进行统计,并将垂直方向前景点的当前统计值与预设的统计阈值进行比较,若垂直方向前景点的当前统计值小于预设的统计阈值,则转到票据大小写金额下一位进行票据二值图像垂直方向前景点统计;反之,则当前位为大小写金额填写的最高位,然后根据大小写金额填写的最高位确定票据大小写金额的位数和首位字符区域;
D3、对票据大小写金额首位字符区域进行OCR识别,从而得到票据大小写金额的首字符。
对票据大小写金额首位字符区域进行OCR识别,可通过google的一个开源的项目tessercat来实现,识别完成后将识别结果的第一位取出来作为票据大小写金额区域的首字符。
进一步作为优选的实施方式,所述票据的类型包括支票、电子汇单、进账单、结算申请书、支付凭证和贷记凭证。
进一步作为优选的实施方式,所述步骤E,其具体为:
判断票据大写金额的位数和首字符是否与票据小写金额的位数和首字符一致,若是,则直接按照预设的分类法则进行分类;反之,则以票据小写金额的位数和首字符为依据,然后按照预设的分类法则进行分类。
在得到大小写金额的位数和对首位字符识别后,便可以进行金额分类了,用D1表示小写金额算上“¥”的位数,用D2表示大写金额的位数。
本发明将金额分类区间划分为以下三类:
(1)第一类:元以下包括元;
(2)第二类:元至元包括元;
(3)第三类:元以上包括元。
其中,M和N均为1至9的整数,包括1和9。x和y为整数,y≥x,且y=x时,M>N。当y≤-4时,票据金额在10元以下,没必要进行分类;当y≥4时,支票金额在10亿元以上,超过了票据小写金额的最大范围,也不用考虑。
其中,支票、电汇凭证、进账单、结算申请书的票据小写金额区域共11位,y的取值范围为-3<y≤4;支付凭证和贷记凭证共10位,y的取值范围为-3<y<3。
如果大小写的识别结果(票据大写金额的位数和首字符与票据小写金额的位数和首字符)一致,则认为识别是正确的,此时依据分类法则分类;如果大小写识别结果不一致,则以小写识别结果的为准,然后再依据分类法则进行分类。
其中,分类法则如下:
(1)当y=x且M>N时,则有:
1)若D1<8+x,则票据金额属于第一类;
2)若D1=8+x且D2=4+s1(x),则有:
a)当识别结果小于N+1时,则票据金额属于第一类;
b)当识别结果不小于N+1时,则票据金额属于第二类;
c)当识别结果不小于M+1时,则票据金额属于第三类。
3)若D1=8+x且D2>4+s1(x),则有:
a)当识别结果小于N时,则票据金额属于第一类;
b)当识别结果不小于N且小于M时,则票据金额属于第二类;
c)当识别结果不小于M时,则票据金额属于第三类。
4)若D1>8+x,则票据金额属于第三类。
(2)当y>x且y=x+1时,则有:
1)若D1<8+x,则票据金额属于第一类;
2)若D1=8+x且D2=4+s1(x),则有:
a)当识别结果小于N+1时,则票据金额属于第一类;
b)当识别结果不小于N+1时,则票据金额属于第二类。
3)若D1=8+x且D2>4+s1(x),则有:
a)当识别结果小于N时,则票据金额属于第一类;
b)当识别结果不小于N时,则票据金额属于第二类。
4)若D1=9+x且D2=5+s2(x),则有:
a)当识别结果小于M+1时,则票据金额属于第二类;
b)当识别结果不小于M+1时,则票据金额属于第三类。
5)若D1=9+x且D2>5+s2(x),则有:
a)当识别结果小于M时,则票据金额属于第二类;
b)当识别结果不小于M时,则票据金额属于第三类。
6)若D1>9+x,则票据金额属于第三类;
(3)当y>x且y>x+1时,则有:
1)若D1<8+x,则票据金额为元以下;
2)若D1=8+x且D2=4+s1(x),则有:
a)当识别结果小于N+1时,则票据金额属于第一类;
b)当识别结果不小于N+1时,则票据金额属于第二类。
3)若D1=8+x且D2>4+s1(x),则有:
a)当识别结果小于N时,则票据金额属于第一类;
b)当识别结果不小于N时,则票据金额属于第二类。
4)若D1=9+x,则票据金额属于第二类;
5)若D1=8+y且D2=4+s1(y),则有:
a)当识别结果小于M+1时,则票据金额属于第二类;
b)当识别结果不小于M+1时,则票据金额属于第三类。
6)若D1>9+x,则票据金额属于第三类;
若D1=8+y且D2>4+s1(y),则有:
a)当识别结果小于M时,则票据金额属于第二类;
b)当识别结果不小于M时,则票据金额属于第三类。
7)若D1>8+y,则票据金额属于元以上。
其中,,,。
参照图6,一种票据图像金额分类系统,包括:
灰度空间变换模块,用于对采集的票据彩色图像进行灰度化处理,从而得到票据灰度图像;
二值化处理模块,用于对票据灰度图像进行二值化处理,从而得到票据二值图像;
定位与提取模块,用于根据预设的右上角定位模板和左上角定位模板对票据二值图像进行卷积运算,从而对大小写金额区域的位置进行定位,然后根据定位的结果提取出票据大小写金额区域二值图像;
识别模块,用于对票据大小写金额区域二值图像进行识别,从而得到票据大小写金额的位数和首字符;
金额分类模块,用于根据票据大小写金额的位数和首字符与预设的分类法则对票据金额进行分类;
所述灰度空间变换模块的输出端依次通过灰度空间变换模块、二值化处理模块、定位与提取模块和识别模块进而与金额分类模块的输入端连接。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。