一种发票公章过滤的方法及装置转让专利

申请号 : CN201510416677.8

文献号 : CN105069455B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈健庆李锦鹏

申请人 : 广州敦和信息技术有限公司

摘要 :

本发明提出了一种发票公章过滤的方法,包括如下步骤:接收需要过滤公章的发票图片,并将所述发票图片转换为像素矩阵;由所述像素矩阵得到一个像素点集合,将所述像素点集合中的所有像素进行分类;将分类后每个类别中的所有像素按照其在所述发票图片中的坐标进行图片还原,并得到多个图层;所述图层的数量与所述类别的数量相同;使用OCR开源引擎对每个所述图层进行识别;计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片。本发明还涉及一种实现上述发票公章过滤的方法的装置。实施本发明的发票公章过滤的方法及装置,具有以下有益效果:能提高识别率、加快识别速度、系统维护较为方便、降低成本。

权利要求 :

1.一种发票公章过滤的方法,其特征在于,包括如下步骤:A)接收需要过滤公章的发票图片,并将所述发票图片转换为像素矩阵;

B)由所述像素矩阵得到一个像素点集合,将所述像素点集合中的所有像素进行分类;

C)将分类后每个类别中的所有像素按照其在所述发票图片中的坐标进行图片还原,并得到多个图层;所述图层的数量与所述类别的数量相同;

D)使用OCR开源引擎对每个所述图层进行识别;

E)计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片;

所述步骤B)中使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对所述像素点集合中的所有像素进行分类。

2.根据权利要求1所述的发票公章过滤的方法,其特征在于,所述像素矩阵为RGB像素矩阵。

3.根据权利要求1所述的发票公章过滤的方法,其特征在于,所述步骤E)进一步包括:E1)计算每个所述图层中每个字符的出现概率及出现次数;

E2)将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到所述当前图层的识别分数;

E3)按照所述步骤E2)中的方式计算剩余图层的识别分数;

E4)找出识别分数最大的图层,并将其作为滤除公章后的图片。

4.根据权利要求1所述的发票公章过滤的方法,其特征在于,所述像素矩阵中每个像素点为一个三维向量。

5.一种实现如权利要求1所述的发票公章过滤的方法的装置,其特征在于,包括:图片转换单元:用于接收需要过滤公章的发票图片,并将所述发票图片转换为像素矩阵;

像素分类单元:用于由所述像素矩阵得到一个像素点集合,将所述像素点集合中的所有像素进行分类;

图片还原单元:用于将分类后每个类别中的所有像素按照其在所述发票图片中的坐标进行图片还原,并得到多个图层;所述图层的数量与所述类别的数量相同;

图层识别单元:用于使用OCR开源引擎对每个所述图层进行识别;

识别分数计算单元:用于计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片;

所述像素分类单元中使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对所述像素点集合中的所有像素进行分类。

6.根据权利要求5所述的装置,其特征在于,所述像素矩阵为RGB像素矩阵。

7.根据权利要求5所述的装置,其特征在于,所述识别分数计算单元进一步包括:概率次数计算模块:用于计算每个所述图层中每个字符的出现概率及出现次数;

相乘相加模块:用于将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到所述当前图层的识别分数;

剩余图层识别分数计算模块:用于按照所述相乘相加模块中的方式计算剩余图层的识别分数;

识别分数最大图层获取模块:用于找出识别分数最大的图层,并将其作为滤除公章后的图片。

8.根据权利要求5所述的装置,其特征在于,所述像素矩阵中每个像素点为一个三维向量。

说明书 :

一种发票公章过滤的方法及装置

技术领域

[0001] 本发明涉及发票识别领域,特别涉及一种发票公章过滤的方法及装置。

背景技术

[0002] 传统的OCR(光学字符识别)技术识别由于受很多图片质量的影响,导致识别的准确度下降。特别是在发票行业,发票上面经常出现大量的公章,这样将会导致识别率下降。去除公章时候,需要对图片进行自动化分层,这样大大增加计算量,导致系统的识别速度下降,另外,还需要增加系统并行的进程来维持系统的正常识别速度,这样给系统的维护带来了不便,同时也增加了成本。

发明内容

[0003] 本发明要解决的技术问题在于,针对现有技术的上述识别率下降、识别速度下降、系统维护不便、成本较高的缺陷,提供一种能提高识别率、加快识别速度、系统维护较为方便、降低成本的发票公章过滤的方法及装置。
[0004] 本发明解决其技术问题所采用的技术方案是:构造一种发票公章过滤的方法,包括如下步骤:
[0005] A)接收需要过滤公章的发票图片,并将所述发票图片转换为像素矩阵;
[0006] B)由所述像素矩阵得到一个像素点集合,将所述像素点集合中的所有像素进行分类;
[0007] C)将分类后每个类别中的所有像素按照其在所述发票图片中的坐标进行图片还原,并得到多个图层;所述图层的数量与所述类别的数量相同;
[0008] D)使用OCR开源引擎对每个所述图层进行识别;
[0009] E)计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片。
[0010] 在本发明所述的发票公章过滤的方法中,所述像素矩阵为RGB像素矩阵。
[0011] 在本发明所述的发票公章过滤的方法中,所述步骤B)中使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对所述像素点集合中的所有像素进行分类。
[0012] 在本发明所述的发票公章过滤的方法中,所述步骤E)进一步包括:
[0013] E1)计算每个所述图层中每个字符的出现概率及出现次数;
[0014] E2)将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到所述当前图层的识别分数;
[0015] E3)按照所述步骤E2)中的方式计算剩余图层的识别分数;
[0016] E4)找出识别分数最大的图层,并将其作为滤除公章后的图片。
[0017] 在本发明所述的发票公章过滤的方法中,所述像素矩阵中每个像素点为一个三维向量。
[0018] 本发明还涉及一种实现上述发票公章过滤的方法的装置,包括:
[0019] 图片转换单元:用于接收需要过滤公章的发票图片,并将所述发票图片转换为像素矩阵;
[0020] 像素分类单元:用于由所述像素矩阵得到一个像素点集合,将所述像素点集合中的所有像素进行分类;
[0021] 图片还原单元:用于将分类后每个类别中的所有像素按照其在所述发票图片中的坐标进行图片还原,并得到多个图层;所述图层的数量与所述类别的数量相同;
[0022] 图层识别单元:用于使用OCR开源引擎对每个所述图层进行识别;
[0023] 识别分数计算单元:用于计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片。
[0024] 在本发明所述的装置中,所述像素矩阵为RGB像素矩阵。
[0025] 在本发明所述的装置中,所述像素分类单元中使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对所述像素点集合中的所有像素进行分类。
[0026] 在本发明所述的装置中,所述识别分数计算单元进一步包括:
[0027] 概率次数计算模块:用于计算每个所述图层中每个字符的出现概率及出现次数;
[0028] 相乘相加模块:用于将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到所述当前图层的识别分数;
[0029] 剩余图层识别分数计算模块:用于按照所述相乘相加模块中的方式计算剩余图层的识别分数;
[0030] 识别分数最大图层获取模块:用于找出识别分数最大的图层,并将其作为滤除公章后的图片。
[0031] 在本发明所述的装置中,所述像素矩阵中每个像素点为一个三维向量。
[0032] 实施本发明的发票公章过滤的方法及装置,具有以下有益效果:由于将需要过滤公章的发票图片转换为像素矩阵,然后将所有像素进行分类,将分类后每个类别中的所有像素按照其在发票图片中的坐标进行图片还原,得到多个图层;使用OCR开源引擎对每个图层进行识别,将识别分数最大的图层作为滤除公章后的图片,这样就会有效去除公章对识别率的影响,所以其能提高识别率、加快识别速度、系统维护较为方便、降低成本。

附图说明

[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1为本发明发票公章过滤的方法及装置一个实施例中方法的流程图;
[0035] 图2为所述实施例中计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片的具体流程图;
[0036] 图3为所述实施例中需要识别的图片;
[0037] 图4为所述实施例中第一图层的示意图;
[0038] 图5为所述实施例中第二图层的示意图;
[0039] 图6为所述实施例中第三图层的示意图;
[0040] 图7为所述实施例中第四图层的示意图;
[0041] 图8为所述实施例中装置的结构示意图。

具体实施方式

[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 在本发明发票公章过滤的方法及装置实施例中,其发票公章过滤的方法的流程图如图1所示。图1中,该发票公章过滤的方法包括如下步骤:
[0044] 步骤S01接收需要过滤公章的发票图片,并将发票图片转换为像素矩阵:首先需要准备一个字条训练数据。对每个字条的字符的出现概率进行统计。这里以发票代码字条为例,其字符的出现概率为prob(‘0’)=0.1、prob(‘1’)=0.1、prob(‘2’)=0.1、prob(‘3’)=0.1、prob(‘4’)=0.1、prob(‘5’)=0.1、prob(‘6’)=0.1、prob(‘7’)=0.1、prob(‘8’)=
0.1和prob(‘9’)=0.1;其中,prob表示字符的出现概率。所有字符的出现概率总和为1。图3为本实施例中需要去除公章的图片,本实施例中将以图3中的图片为例,说明将公章滤除并并获取相应的文字的过程。本步骤中,接收需要过滤公章的发票图片,并将发票图片转换为像素矩阵,该像素矩阵为RGB(红绿蓝)像素矩阵,每个像素点为一个三维向量。
[0045] 步骤S02由像素矩阵得到一个像素点集合,将像素点集合中的所有像素进行分类:本步骤中,由像素矩阵得到一个像素点集合,将像素点集合中的所有像素进行分类。本实施例中,为了描述方便,将像素点集合标记为S。系统使用各种聚类算法和欧式距离,把像素点集合中所有像素分为K类,这K类分别标记为S1,S2,…,SK,其中,K为大于0的整数。根据交叉验证(Cross Validation)表示,当K=10时分层效果最好。值得一提的是,本步骤使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对像素点集合中的所有像素进行分类。当然,在本实施例的一些情况下,也可以采用其他聚类算法对像素点结合中的所有像素进行分类。
[0046] 步骤S03将分类后每个类别中的所有像素按照其在发票图片中的坐标进行图片还原,并得到多个图层:本步骤中,将分类后每个类别中的所有像素按照其在发票图片中的坐标进行图片还原,并得到多个图层,本实施例中,图层的数量与类别的数量相同,也就是图层的数量为K个。由交叉验证试验表明K=10个图层是最优值,对所有需要识别的图片都会分割为10个图层,本实施例限于篇幅,这里不展示所有图层,本实施例以K=4为例进行说明,当K=4时,有四个图层,将这四个图层分别命名为第一图层、第二图层、第三图层和第四图层,图4为本实施例中第一图层的示意图;图5为本实施例中第二图层的示意图;图6为本实施例中第三图层的示意图;图7为本实施例中第四图层的示意图。值得一提的是,在本实施例的一些情况下,图层的个数可以根据具体需要进行相应调整。
[0047] 步骤S04使用OCR开源引擎对每个图层进行识别:本步骤中,使用OCR开源引擎对每个图层进行识别,分别得到每个图层的识别结果,其中,第一图层的识别结果为14401137,第二图层的识别结果为144011370557,第三图层的识别结果为14401137,第四图层的识别结果为1440147。
[0048] 步骤S05计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片:本步骤中,计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片,具体的,以第一图层、第二图层、第三图层和第四图层为例,也就是分别计算第一图层的识别分数、第二图层的识别分数、第三图层的识别分数和第四图层的识别分数,然后将识别分数最大的图层作为滤除公章后的图片。通过去除公章,这样就可以避免公章对OCR的识别影响。所以其能提高识别率、加快识别速度、系统维护较为方便、降低成本。
[0049] 对于本实施例而言,上述步骤S05还可进一步细化,其细化后的流程图如图2所示。图中,上述步骤S05进一步包括:
[0050] 步骤S51计算每个图层中每个字符的出现概率及出现次数:本步骤中,计算每个图层中每个字符的出现概率及出现次数,将字符的出现概率标记为prob(char),将字符的出现次数标记为num(char),char为字符。
[0051] 步骤S52将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到当前图层的识别分数:本步骤中,将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到当前图层的识别分数,也就是Σ(num(char)*prob(char))。假设第一图层为当前图层,则第一图层中的字符出现次数分别为:num(‘0’)=1、num(‘1’)=3、num(‘2’)=0、num(‘3’)=1、num(‘4’)=2、num(‘5’)=0、num(‘6’)=0、num(‘7’)=1、num(‘8’)=0、num(‘9’)=0,第一图层的识别分数为num(‘0’)*prob(‘0’)+num(‘1’)*prob(‘1’)+num(‘2’)*prob(‘2’)+…+num(‘9’)*prob(‘9’)=0.1+0.2+0.1+0.2+0.1+0.1=0.8。
[0052] 步骤S53计算剩余图层的识别分数:本步骤中,按照上述步骤S52的方式计算剩余图层的识别分数。第二图层的识别分数为1.2,第三图层的识别分数为0.8,第四图层的识别分数为0.7。
[0053] 步骤S54找出识别分数最大的图层,并将其作为滤除公章后的图片。本实施例中,第二图层的识别分数最大,将第二图层作为滤除公章后的图片。也就是选取第二图层为正确的图片,从而达到了去除公章的效果。
[0054] 本实施例还涉及一种实现上述发票公章过滤的方法的装置,其结构示意图如图8所示。图8中,该装置包括图片转换单元1、像素分类单元2、图片还原单元3、图层识别单元4和识别分数计算单元5;其中,图片转换单元1用于接收需要过滤公章的发票图片,并将发票图片转换为像素矩阵;像素分类单元2用于由像素矩阵得到一个像素点集合,将像素点集合中的所有像素进行分类;图片还原单元3用于将分类后每个类别中的所有像素按照其在发票图片中的坐标进行图片还原,并得到多个图层;其中图层的数量与类别的数量相同;图层识别单元4用于使用OCR开源引擎对每个图层进行识别;识别分数计算单元5用于计算每个图层的识别分数,并将识别分数最大的图层作为滤除公章后的图片。值得一提的是,像素矩阵为RGB像素矩阵。像素分类单元2中使用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法对像素点集合中的所有像素进行分类。像素矩阵中每个像素点为一个三维向量。这样就会有效去除公章对识别率的影响,所以其能提高识别率、加快识别速度、系统维护较为方便、降低成本。
[0055] 本实施例中,识别分数计算单元5进一步包括概率次数计算模块51、相乘相加模块52、剩余图层识别分数计算模块53和识别分数最大图层获取模块54;其中,概率次数计算模块51用于计算每个图层中每个字符的出现概率及出现次数;相乘相加模块52用于将当前图层中每个字符的出现概率及出现次数进行相乘,并将每个乘积进行相加得到当前图层的识别分数;剩余图层识别分数计算模块53用于按照相乘相加模块中的方式计算剩余图层的识别分数;识别分数最大图层获取模块54用于找出识别分数最大的图层,并将其作为滤除公章后的图片,也就是识别分数最大的图层为去除公章后的图片,这样就会避免公章对OCR识别的影响。
[0056] 总之,在本实施例中,通过将公章滤除掉,这样将避免了公章对OCR识别的影响,有效去除公章对识别率的影响。
[0057] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。