一种发票字条自动识别录入的方法及装置的制造方法_3

文档序号:9288607阅读:来源:国知局
数字,拉丁字母)的出现概率。该出现概率是对整个训练数据库的统计,而不是对单一发票图片的统计。例如:发票代码中字符的出现概率如下:prob (‘0’)= 0.Uprob (‘ I’)= 0.Uprob (‘2’)= 0.Uprob (‘3’)= 0.Uprob (‘4’)=0.1、prob ( ‘5’ ) = 0.1、prob ( ‘6’ ) = 0.1、prob ( ‘7’ ) = 0.1、prob ( ‘8’ ) = 0.1和prob( ‘9’ ) = 0.1 ;发票号码中字符的出现概率如下:prob( ‘0’ ) = 0.Uprob ( ‘I’ )=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。
[0078]步骤S42分别计算需要识别的发票图片上被包围盒套用的每个字条中字符的出现次数:本步骤中,分别计算需要识别的发票图片上被包围盒套用的每个字条中字符的出现次数。
[0079]步骤S43分别计算每个字条的字符的出现概率和出现次数的乘积,并对每个乘积求和后除以需要识别的发票图片中被包围盒套用的字条的数量,分别得到需要识别的发票图片与训练数据库中每种格式的发票图片的相似度:本步骤中,分别计算每个字条的字符的出现概率和出现次数的乘积,并对每个乘积求和后除以需要识别的发票图片中被包围盒套用的字条的数量,分别得到需要识别的发票图片与训练数据库中每种格式的发票图片的相似度。也就是Σ (prob (char) *num(char)) /字条数量,其中,char为字符,prob (char)为字符的出现概率,num(char)为字符的出现次数。假设去匹配训练数据库中的一张发票图片,在需要识别的发票图片中使用开源OCR引擎获取到:发票代码为000123,发票号码为12555555,那么需要识别的发票图片和训练数据库中的发票图片的相似度为
0.1*3+0.1*2+0.1*2+0.1氺1+0.1*6 = 1.4/2 = 0.7。传统的识别技术,需要通过特征提取或使用识别器来识别字符。而本实施例采用字条的分布过滤结果,这样可以提高识别结果的精度,譬如发票金额小写只允许数字和小数点出现。本实施例还可自动对识别内容进行分类。
[0080]步骤S44找出训练数据库中相似度最大的发票图片,并将其作为需要识别的发票图片的格式:本步骤中,找出训练数据库中相似度最大的发票图片,并将其作为需要识别的发票图片的格式。
[0081]对于本实施例而言,上述步骤S06还可进一步细化,其细化后的流程图如图4所示。图4中,上述步骤S06进一步包括:
[0082]步骤S61采用开源OCR引擎对每个图层进行识别:本步骤中,采用开源OCR引擎对每个图层进行识别。
[0083]步骤S62计算每个图层中每个字符的出现概率及出现次数:本步骤中,计算每个图层中每个字符的出现概率及出现次数。
[0084]步骤S63分别将每个图层中每个字符的出现概率及出现次数进行相乘,并将乘积求和后分别得到每个图层的识别分数:本步骤中,分别将每个图层中每个字符的出现概率及出现次数进行相乘,并将乘积求和后分别得到每个图层的识别分数。
[0085]步骤S64找出识别分数最高的图层,并将其作为滤除公章后的字条:本步骤中,将每个图层的识别分数进行比较,找出识别分数最高的图层,并将其作为滤除公章后的字条。例如:去除公章后的字条如下:
[0086]fapiaodaima (发票代码)144011420721
[0087]fapiaojinexiaoxie (发票金额小写)108.90
[0088]fapiaojinedaxie (发票金额大写)壹佰零捌证欠角
[0089]fapiaohaoma (发票号码)49773974
[0090]kaipiaoren(开票人)金明贞
[0091]kaipiaoriqi (开票日期)2015 年 3 月 2 日
[0092]fapiaotaitou (顾客名称)广州市丰成网络科技有限公司。
[0093]本实施例还涉及一种实现上述发票字条自动识别录入的方法的装置,其结构示意图如图5所示。图5中,该装置包括训练数据库建立单元1、发票图片位置检测单元2、套用识别单元3、格式匹配单元4、图片分层单元5和公章过滤单元6 ;其中,训练数据库建立单元I用于建立训练数据库,采集各种不同格式的发票图片,并对每种格式的发票图片中的字条标记包围盒及所属类别后保存到训练数据库中;发票图片位置检测单元2接收需要识别的发票图片,并自动检测其位置;该需要识别的发票图片包括多个字条;套用识别单元3用于将训练数据库中的每种格式的发票图片中的包围盒套用到所述需要识别的发票图片上面,并采用开源OCR引擎对被包围盒套用的需要识别的发票图片中的字条进行识别;格式匹配单元4用于将需要识别的发票图片与训练数据库中每种格式的发票图片进行格式匹配,并找出格式最匹配的发票图片,将格式最匹配的发票图片的格式作为需要识别的发票图片的格式;图片分层单元5用于对需要识别的发票图片中被最匹配格式的发票图片的包围盒套用的字条进行图片分层,得到多个图层;值得一提的是,图片分层单元5中采用K-均值聚类算法、层次聚类算法和自组织映射图聚类算法进行图片分层;公章过滤单元6用于采用开源OCR引擎对每个图层进行识别,计算每个图层的识别分数,并将识别分数最高的图层作为滤除公章后的字条。这样,对于手写潦草等字体,就不需要人工录入,所以其能识别发票中手写潦草字体、发票录入效率较高、识别效果较好。
[0094]本实施例中,发票图片位置检测单元2进一步包括图像矩阵转换模块21和遍历位置查找模块22 ;其中,图像矩阵转换模块21用于接收需要识别的发票图片,并将其转换为图像矩阵;遍历位置查找模块22用于利用滑动窗口遍历图像矩阵,找出滑动窗口中最大的点乘值模板作为需要识别的发票图片的位置。
[0095]本实施例中,格式匹配单元4进一步包括出现概率统计模块41、出现次数计算模块42、相似度获取模块43和最大相似度获取模块44 ;其中,出现概率统计模块41用于统计所述训练数据库中每个字条的字符的出现概率;出现次数计算模块42用于分别计算需要识别的发票图片上被包围盒套用的每个字条中字符的出现次数;相似度获取模块43用于分别计算每个字条的字符的出现概率和出现次数的乘积,并对每个乘积求和后除以需要识别的发票图片中被包围盒套用的字条的数量,分别得到需要识别的发票图片与训练数据库中每种格式的发票图片的相似度;最大相似度获取模块44用于找出训练数据库中相似度最大的发票图片,并将其作为需要识别的发票图片的格式。
[0096]本实施例中,公章过滤单元6进一步包括图层识别模块61、出现概率及次数计算模块62、图层识别分数获取模块63和识别分数最高图层获取模块64 ;其中,图层识别模块61用于采用开源OCR引擎对每个图层进行识别;出现概率及次数计算模块62用于计算每个图层中每个字符的出现概率及出现次数;图层识别分数获取模块63用于分别将每个图层中每个字符的出现概率及出现次数进行相乘,并将乘积求和后分别得到
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1