CN110427932B - 一种识别图像中多个票据区域的方法及装置 - Google Patents
一种识别图像中多个票据区域的方法及装置 Download PDFInfo
- Publication number
- CN110427932B CN110427932B CN201910713010.2A CN201910713010A CN110427932B CN 110427932 B CN110427932 B CN 110427932B CN 201910713010 A CN201910713010 A CN 201910713010A CN 110427932 B CN110427932 B CN 110427932B
- Authority
- CN
- China
- Prior art keywords
- lines
- line
- boundary
- bill
- area
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- 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/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种识别图像中多个票据区域的方法及装置,方法包括:获取包含多个排列的票据的图像;通过机器视觉算法识别各个票据在所述图像中的大致区域;针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。应用本发明提供的方案可以实现同时识别多个票据,提高票据识别的速度。
Description
技术领域
本发明涉及人工智能技术领域,特别涉及一种识别图像中多个票据区域的方法及装置、电子设备、计算机可读存储介质。
背景技术
随着经济的不断发展,人们的消费水平不断的提高,为了维护人们的消费权益,票据成为了消费者的有力保障以及有效的报销凭证,因此财务人员每天需要处理大量的票据。同时也有越来越多的人通过记账分类统计以掌握自身的消费情况。目前虽然可以通过人工智能自动识别票据中的相关信息,但是现有技术中一次只能识别一张票据的信息,当票据较多时,仍然需要花费较多时间和精力逐个进行票据识别。
发明内容
本发明的目的在于提供一种识别图像中多个票据区域的方法及装置、电子设备、计算机可读存储介质,以实现同时识别多个票据,提高票据识别的速度。具体技术方案如下:
第一方面,本发明提供了一种识别图像中多个票据区域的方法,包括:
获取包含多个票据的图像;
通过机器视觉算法识别各个票据在所述图像中的大致区域;
针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
可选的,所述机器视觉算法为目标检测算法。
可选的,所述根据多条参考边界线确定该票据的实际区域,包括:
获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
可选的,所述方法还包括:
针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容。
可选的,所述对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,包括:
对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
可选的,所述对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图,包括:
通过基于OpenCV的边缘检测算法对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图。
可选的,所述将所述线条图中相似的线条进行合并,得到多条初始合并线条,包括:
获取所述线条图中的长线条;其中,所述长线条为长度超过第一预设阈值的线条;
从所述长线条中获取多组第一类线条;其中,所述第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于第二预设阈值;
针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
可选的,所述将多条所述初始合并线条中相似的线条进行合并得到目标线条,包括:
从多条所述初始合并线条中获取多组第二类线条;其中,所述第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;
针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
可选的,所述边界矩阵按照以下方式确定:对多条所述初始合并线条以及所述长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中这些线条的像素点所在位置的值设置为第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。
可选的,所述根据所述边界矩阵,从多条所述目标线条中确定各个票据的多条参考边界线,包括:
针对每一条所述目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与所述边界矩阵进行对比,计算延长后的该目标线条上属于所述边界矩阵的像素点的个数,作为该目标线条的成绩;其中,所述线条矩阵与所述边界矩阵的大小相同;
根据各个目标线条的成绩,从多条所述目标线条中确定多条参考边界线。
可选的,所述线条矩阵按照以下方式确定:对延长后的目标线条进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。
可选的,在获得该大致区域中的多条参考边界线之后,还包括:
通过预先训练的边界线区域识别模型对该大致区域进行识别,得到该大致区域中票据的多个边界线区域;其中,所述边界线区域识别模型是基于神经网络的模型;
针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线;
根据确定的多条所述目标边界线确定该大致区域中票据的边缘。
可选的,针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线,包括:
计算每一条所述参考边界线的斜率;
针对每一个所述边界线区域,将该边界线区域转换为多条直线,并计算所述多条直线的平均斜率,再判断多条所述参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线。
可选的,所述方法还包括:
针对每一个所述边界线区域,如果判断出多条所述参考边界线中不存在斜率与所述平均斜率相匹配的参考边界线,则针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与所述边界矩阵进行对比,计算该直线上属于所述边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线;其中,所述线条矩阵与所述边界矩阵的大小相同。
可选的,在确定该大致区域中票据的边缘之后,还包括:
获得多条所述目标边界线的多个交点,对多个所述交点和多条所述目标边界线确定的区域进行投影变换,得到该大致区域中的票据的正视图。
第二方面,本发明还提供了一种识别图像中多个票据区域的装置,包括:
获取模块,用于获取包含多个票据的图像;
第一识别模块,用于通过机器视觉算法识别各个票据在所述图像中的大致区域;
确定模块,用于针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
可选的,其特征在于,所述机器视觉算法为目标检测算法。
可选的,所述确定模块根据多条参考边界线确定该票据的实际区域的方法,包括:
获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
可选的,所述装置还包括:
第二识别模块,用于针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容。
可选的,所述确定模块,包括:
获得子模块,用于对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
第一合并子模块,用于将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
第二合并子模块,用于将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
第一确定子模块,用于根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
可选的,所述获得子模块对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图的方法,包括:
通过基于OpenCV的边缘检测算法对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图。
可选的,所述第一合并子模块,具体用于:
获取所述线条图中的长线条;其中,所述长线条为长度超过第一预设阈值的线条;
从所述长线条中获取多组第一类线条;其中,所述第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于第二预设阈值;
针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
可选的,所述第二合并子模块,具体用于:
从多条所述初始合并线条中获取多组第二类线条;其中,所述第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;
针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
可选的,所述边界矩阵按照以下方式确定:对多条所述初始合并线条以及所述长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中这些线条的像素点所在位置的值设置为第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。
可选的,根据第一确定子模块根据所述边界矩阵,从多条所述目标线条中确定各个票据的多条参考边界线,包括:
针对每一条所述目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与所述边界矩阵进行对比,计算延长后的该目标线条上属于所述边界矩阵的像素点的个数,作为该目标线条的成绩;其中,所述线条矩阵与所述边界矩阵的大小相同;
根据各个目标线条的成绩,从多条所述目标线条中确定多条参考边界线。
可选的,所述线条矩阵按照以下方式确定:对延长后的目标线条进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。
可选的,所述确定模块,还包括:
识别子模块,用于在所述第一确定子模块获得该大致区域中的多条参考边界线之后,通过预先训练的边界线区域识别模型对该大致区域进行识别,得到该大致区域中票据的多个边界线区域;其中,所述边界线区域识别模型是基于神经网络的模型;
第二确定子模块,用于针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线;
第三确定子模块,用于根据确定的多条所述目标边界线确定该大致区域中票据的边缘。
可选的,所述第二确定子模块,具体用于:
计算每一条所述参考边界线的斜率;
针对每一个所述边界线区域,将该边界线区域转换为多条直线,并计算所述多条直线的平均斜率,再判断多条所述参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线。
可选的,所述第二确定子模块,还用于:
针对每一个所述边界线区域,如果判断出多条所述参考边界线中不存在斜率与所述平均斜率相匹配的参考边界线,则针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与所述边界矩阵进行对比,计算该直线上属于所述边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线;其中,所述线条矩阵与所述边界矩阵的大小相同。
可选的,所述确定模块,还包括:
变换子模块,用于在所述第三确定子模块确定该大致区域中票据的边缘之后,获得多条所述目标边界线的多个交点,对多个所述交点和多条所述目标边界线确定的区域进行投影变换,得到所述图像中的所述物体的正视图。
第三方面,本发明还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面所述的识别图像中多个票据区域的方法的步骤。
第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的识别图像中多个票据区域的方法的步骤。
与现有技术相比,本发明提供的一种识别图像中多个票据区域的方法及装置、电子设备、计算机可读存储介质具有以下有益效果:
通过获取包含多个票据的图像,首先识别图像中各个票据的大致区域,然后针对每一票据,对该票据的大致区域进行边缘检测处理,获得该票据大致区域中的多条参考边界线,从而根据多条参考边界线确定该票据的实际区域,进而可以对各个票据的实际区域进行票据识别,由于本发明可以对包含有多张票据的图像进行处理,不需要单独采集每张票据的图像分别进行识别,从而实现了同时处理多个票据,提高票据识别的速度,减轻了票据处理人员的工作负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的识别图像中多个票据区域的方法的流程示意图;
图2A~图2B为图像中票据依次排列互不重叠的示例图;
图3A~图3B为图像中票据重叠的示例图;
图4是图1所示的识别图像中多个票据区域的方法中步骤S103的过程示意图;
图5是本发明一实施例提供的识别图像中多个票据区域的装置的结构示意图;
图6是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种识别图像中多个票据区域的方法及装置、电子设备、计算机可读存储介质作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。此外,需要说明的是,本文的框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图1至6。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
为解决现有技术的问题,本发明实施例提供了一种识别图像中多个票据区域的方法及装置、电子设备、计算机可读存储介质。
需要说明的是,本发明实施例的一种识别图像中多个票据区域的方法可应用于本发明实施例的一种识别图像中多个票据区域的装置,该识别图像中多个票据区域的装置可被配置于电子设备上。其中,该电子设备可以是个人计算机、移动终端等,该移动终端可以是手机、平板电脑等具有各种操作系统的硬件设备。
图1是本发明一实施例提供的一种识别图像中多个票据区域的方法的流程示意图。请参考图1,一种识别图像中多个票据区域的方法可以包括如下步骤:
步骤S101,获取包含多个票据的图像。
所述图像为多个票据排列在一起的拍摄图片,多个所述票据可以依次互不重叠的排列,也可以有重叠的排列。所述票据的类型可以为:发票、账单、税单、收据、购物清单、餐饮小票、保险单、报销单、快递单、行程单、车票等含有付款金额的单据。多个所述票据可以为同一类型,也可以为不同类型,本实施例对此不做限定。
步骤S102,通过机器视觉算法识别各个票据在所述图像中的大致区域。
所述机器视觉算法可以为目标检测(Object Detection)算法等方式,如RCNN、Fast R-CNN、Faster R-CNN、Mask R-CNN算法。其中,Mask-RCNN算法是Faster-RCNN的一种改进算法。Mask R-CNN是一个实例分割(Instance segmentation)算法,通过增加不同的分支,可以完成目标分类、目标检测、语义分割、实例分割、人体姿势识别等多种任务,灵活而强大。
通过Mask-RCNN可以识别所述图像上的票据是单张还是多张,以及具体的数量,同时可以分割出每张票据所在区域的mask,获得mask map,对于每个mask区域会通过外接矩形框标注出其位置(分类回归),即通过所述机器视觉算法获取到多个票据在所述图像中的大概位置并进行标注框标注。
在步骤S102中,还可以对标注框标注出的每个票据的大致区域都分成独立的图像区域来,从而在步骤S103中可以对每个票据对应的图像区域进行处理,获得多条参考边界线,并进行后续处理。
步骤S103,针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
本实施例中,可以对每个所述票据的大致区域采用边缘检测方法找到边界线,进而根据边界线最终确定票据实际区域。确定边界线的原因在于步骤S102所获取的票据大致区域可能会有其他干扰,比如叠加的其他票据,边框范围内的其他物体等,因此需要确定票据的实际区域。
在获得一票据的大致区域的参考边界线后,根据多条参考边界线确定该票据的实际区域,可以包括:获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
举例而言,如图2A所示的图像,该图像中包含6个票据,各个票据依次排列且互不重叠,在步骤S102中,通过所述机器视觉算法可以识别出各个票据在该图像中的大致区域,图2A中仅示例性的示出了一个票据的大致区域A,然后在步骤S103中,通过所述边缘检测算法对大致区域A进行处理,可以获得该大致区域A中的多条参考边界线,如图2B中票据的上下左右四个边对应的参考边界线,进而将这四条边界线延长后得到线条可以得到四个交点,这四个交点和这四个边界线共同限定了一内部区域,此内部区域即为该票据的实际区域。图2A中其它5个票据的识别方法与该票据的识别方法相同,在此不做赘述。在得到每个票据的实际区域后,还可将每个票据的实际区域从图像中切割输出作为单张票据图片进行保存。
如图3A所示的票据示意图,图中有两个票据且两个票据有重叠的排列,即右边票据2的左上角覆盖了左边票据1的右下角,在步骤S102中,通过机器视觉算法识别出两个票据的大致区域分别为B和C。由于右边的票据2部分覆盖了左边的票据1,对于左边票据1而言,其大致区域B中包含了右边票据2的部分区域。因此,在步骤S103中,对大致区域B进行边缘检测,所获得参考边界线为如图3B中所示实线线条,实际上,右下角的两条短的实线边界线条不是左边票据的参考边界线,而是票据2的边界线,但是由于票据1中被票据2覆盖的部分区域已无法识别其中的票据内容,因此票据1的实际区域可以视为由图3B中所有的实线边界线条相交后所限定的内部区域,以便于后续对该实际区域内的票据内容进行识别。
另外,还可将票据1的右侧和下方的实线边界线条进行延长(可得到图3B中所示的虚线线条)补全交点,延长后的实线边界线条与左侧、上方的实线边界线条所共同组成的区域B’可进行切片形成票据1的票据图片。
图3A中票据2的识别方法与图2A中票据的识别方法相同,在此不做赘述。
本实施例中,在确定了各个票据的实际区域后,还可以针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容,如识别出票据的付款金额、开票时间、开票的店铺名称、地点等信息。预设的票据识别模型为预先训练好的神经网络模型,例如为可以卷积神经网络模型。
下面对步骤S103中对每个票据的大致区域采用边缘检测方法找到参考边界线的方法进行介绍。
具体的,如图4所示,步骤S103对所述图像中一票据的大致区域进行处理,获得该大致区域中的多条参考边界线,包括以下步骤:
S31,对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
S32,将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
S33,将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
S34,根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
在步骤S31中,对图像中一票据的大致区域进行处理,获得该大致区域中灰度轮廓的线条图的方式,可以为:通过基于OpenCV的边缘检测算法对该大致区域进行处理,获得该大致区域中灰度轮廓的线条图。OpenCV为一种开源计算机视觉库,基于OpenCV的边缘检测算法包括Sobel、Scarry、Canny、Laplacian、Prewitt、Marr-Hildresh、scharr等多种算法。其中,本实施例中采用Canny边缘检测算法,Canny边缘检测算法是一个多阶段的算法,即由多个步骤构成,包括:1、图像降噪:用高斯滤波器平滑图像;2、计算图像梯度:用一阶偏导有限差分计算梯度幅值和方向;3、非极大值抑制:对梯度幅值进行非极大值抑制;4、阈值筛选:用双阈值算法检测和连接边缘。
通过上述算法处理后,可得到该大致区域中灰度轮廓的线条图,在线条图中,各个线条实际上是一段一段很小的线段,其中,图像中票据的边界线线条实际上也被分为一段一段很小的线段,因此需要将相似的线条连接起来,并进行后续处理以得到票据的边界线线条。在实际应用中,线条图中各个小线段的表现形式是数组的形式,每个线段都是由起点和终点对应的像素点在整个线条图中的坐标值组成。
在步骤S32中,按照以下方式将所述线条图中相似的线条进行合并,得到多条初始合并线条:步骤A:获取所述线条图中的长线条;其中,所述长线条为长度超过第一预设阈值的线条;步骤B:从所述长线条中获取多组第一类线条;其中,所述第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于预设阈值;步骤C:针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
在步骤A中,所述线条图中的长线条指的是所述线条图中长度超过一定阈值的线条,例如将长度超过2像素的线条定义为长线条。仅获取所述线条图中的长线条进行后续合并处理,而不考虑所述线条图中的一些较短的线条,这样可以在合并线条时避免票据内部和外部的线条干扰,例如内部的文字和图形、外部的其它物体等的对应的线条。
对于步骤B,可以通过以下方式获取第一类线条:首先选择一个长线条,然后从该长线条开始依次判断两条相邻线条之间的夹角是否小于第二预设阈值,若判断出某一长线条与相邻线条之间的夹角不小于第二预设阈值时,则可以将所选择的长线条以及到该某一长线条之间的所有依次相邻的长线条组成一组第一类线条,接着再重复上述过程,从该某一长线条的相邻线条开始依次判断两条相邻线条之间的夹角是否小于第二预设阈值,依次类推,直到遍历完所有长线条,从而得到多组第一类线条。
在步骤C中将两个线条合并,指的是将两个线条的斜率取平均值,此平均值为合并后线条的斜率。在实际应用中,两个线条合并是根据两个线条的数组形式进行计算,从而计算得到合并后线条的起点和终点对应的像素点在整个线条图中的坐标值,进而根据计算得到的坐标值形成合并后线条的数组并进行存储。
另外,所述边界矩阵通过以下方式确定:对多条所述初始合并线条以及所述长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中这些线条的像素点所在位置的值设置第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。具体而言,所述边界矩阵可以是一个与图像矩阵大小相同的矩阵,例如图像的大小为1024×1024像素,则图像矩阵为1024×1024的矩阵,那么边界矩阵也就是一个1024×1024的矩阵,将多条所述初始合并线条以及所述长线条中未合并的线条按照一定的线宽(如线宽为2)重新绘制,根据重新绘制的线条的像素点对应到矩阵中的位置来对边界矩阵进行值的填充,线条上像素点对应到矩阵中的位置都设定为第一数值例如255,没有线条的像素点对应到矩阵中的位置设定为第二数值例如0,从而形成整个图片的超大矩阵即边界矩阵。需要说明的是,由于多条所述初始合并线条以及所述长线条中未合并的线条均是以数组的形式存储的,因此在确定所述边界矩阵时需要将其形成为实际线条数据,因此将线条重新绘制例如按照线宽为2进行重新绘制,从而获得每个线条上各个点对应的像素点的坐标值,进而根据所获得的坐标值对所述边界矩阵中进行值的填充,例如将所述边界矩阵中与坐标值相对应的位置的值设为255,其余位置的值设为0。
下面示例性的提供一个边界矩阵,该边界矩阵为10×10矩阵,其中该边界矩阵中所有值为255的位置连接起来即为多条初始合并线条以及长线条中未合并的线条。
在步骤S32中,合并后的初始合并线条为多条较长的线条。步骤S33可以根据上述步骤S32中的合并规则,继续判断多条初始合并线条中是否存在相似的线条从而将相似线条再次进行合并得到多条目标线条,同时将不能进行合并的初始合并线条也作为目标线条。
其中,将多条所述初始合并线条中相似的线条进行合并得到目标线条的具体的合并步骤如下:步骤a:从多条所述初始合并线条中获取多组第二类线条;其中,所述第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;步骤b:针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
上述对初始合并线条进行合并的步骤的原理,与步骤S32中对线条图中线条进行合并的原理相同,可以参见步骤S32中的相关描述,在此不做赘述。其中,所述第三预设阈值可以和所述第二预设阈值相同,也可以不同,本实施例对此不做限定,例如将所述第三预设阈值设置为夹角10度。
至此获得了多条目标线条,在多条目标线条中不仅存在参考边界线,还存在一些较长的干扰线条,例如,内部的文字和图形、外部的其它物体等的对应的线条经过合并处理后得到的较长线条,这些干扰线条会在后续步骤S34中根据边界矩阵进行去除,从而得到票据区域的边界线条。
在步骤S34中,根据所述边界矩阵,从多条所述目标线条中确定多条参考边界线,包括:首先,针对每一条所述目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与所述边界矩阵进行对比,计算延长后的该目标线条上属于所述边界矩阵的像素点的个数,作为该目标线条的成绩,其中线条矩阵与边界矩阵的大小相同;然后,根据各个目标线条的成绩,从多条所述目标线条中确定多条参考边界线。
其中,所述线条矩阵可以按照以下方式确定:对延长后的目标线条进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。所述线条矩阵的形成方式与所述边界矩阵类似,在此不做赘述。需要说明的是,所述目标线条是以数组的形式存储的,即存储其起点和终点的坐标值,对目标线条进行延长后,延长后的目标线条在存储时是以延长后的目标线条的起点和终点的坐标值形成数组的,因此在对延长后的目标线条进行重新绘制时,也是按照相同的线宽例如线宽为2进行重新绘制,从而获得延长后的目标线条上各个点对应的像素点的坐标值,进而根据坐标值对线条矩阵进行值的填充,即将线条矩阵中与坐标值相对应的位置的值设为255,其余位置的值设为0。
将合并后的目标线条进行延长,判断其上的像素点落入步骤S32中初始合并线条和所述长线条中未合并的线条上最多的目标线条作为参考边界线。具体的,针对每一条目标线条,判断上有多少像素点是属于边界矩阵的,计算一个成绩,具体为:将该目标线条进行延长,该目标线条延长后所得的线条也按照边界矩阵的形成方式形成一线条矩阵,将该线条矩阵与边界矩阵进行对比来判断有多少像素点落入到边界矩阵里面,即判断两个矩阵中有多少相同位置的像素点具有相同的第一数值例如255,从而计算成绩。这时成绩最好的线条可能还是有较多条,因此,根据各个目标线条的成绩,从多条目标线条中确定成绩最好的多条目标线条作为参考边界线。
例如,一条延长后的目标线条形成的线条矩阵如下,通过将该线条矩阵与上述的边界矩阵进行对比可知延长后的该目标线条上有7个像素点落入到边界矩阵里面,从而得到该目标线条的成绩。
最终,可以确定该大致区域的上、下、左、右四条参考边界线,将这四条参考边界线进行延长从而可以得到4个交点,根据交点位置以及这4条参考边界线确定一内部区域,此内部区域即为票据区域。或者,也可以获得该大致区域的上、下、左、右四个方向上均各自有多条参考边界线,从而将所有参考边界线进行延长后可在四个方向上的均得到多个交点,这些交点以及多条参考边界线也可以确定一内部区域,所确定的内部区域即为票据区域。
然后,针对每一票据获得该票据的实际区域后,针对每一个票据区域,可以切割后输出作为单张票据图片进行保存,或者调用预设的票据识别模型进行票据信息识别,识别出每张票据的内容,票据识别例如采用卷积神经网络模型进行。
另外,在获得该大致区域中的多条参考边界线之后,还可以进行以下步骤S35~S37的处理,以准确找到各个大致区域中票据的边缘,后期可以分割识别各个票据。
S35,通过预先训练的边界线区域识别模型对该大致区域进行识别,得到该大致区域中票据的多个边界线区域;其中,所述边界线区域识别模型是基于神经网络的模型;
S36,针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线;
S37,根据确定的多条所述目标边界线确定该大致区域中票据的边缘。
在步骤S35中,通过机器学习训练来建立所述边界线区域识别模型,此模型可以为基于神经网络的模型,所述边界线区域识别模型可以通过如下过程训练得到:对图像样本集中的每个图像样本进行标注处理,以标注出每个图像样本中票据的边界线区域、内部区域和外部区域;以及通过经过标注处理的图像样本集,对神经网络进行训练,以得到边界线区域识别模型。
通过机器学习训练建立的所述边界线区域识别模型识别票据的大致区域,可以识别出该大致区域中的边界线区域、内部区域(即票据所在区域)和外部区域(即票据的外部区域)3个部分,从而获取大致区域的多张(如4张)各个方向的边缘轮廓图(即大致区域中票据边界线区域),此时边缘轮廓较粗。
在步骤S36中,针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线,可以包括:首先,计算每一条所述参考边界线的斜率;然后,针对每一个所述边界线区域,将该边界线区域转换为多条直线,并计算所述多条直线的平均斜率,再判断多条所述参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线。其中,可以利用霍夫变换将该边界线区域转换为多条直线,当然也可以采用其它方式进行转换,本实施例对此不做限定。
本实施例中,所述边界线区域中的边缘轮廓较粗,针对每一边界线区域,可以利用霍夫变换将边界线区域转换为多条直线,这些线条具有近似的斜率,求得平均斜率,然后和每一条参考边界线的斜率进行比较,判断多条参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,即从多条参考边界线中找到最为近似的参考边界线,作为与该边界线区域相对应的目标边界线。
由于所确定的目标边界线的斜率与平均斜率的差距不能太大,因此在将平均斜率与每一参考边界线的斜率进行比较时,会设定一个比较阈值,当某一参考边界线的斜率与平均斜率之差的绝对值小于此比较阈值时,判定该参考边界线的斜率是与平均斜率相匹配的参考边界线,进而判定该参考边界线是与边界线区域相对应的目标边界线。
进一步的,针对每一个所述边界线区域,如果判断出多条所述参考边界线中不存在斜率与所述平均斜率相匹配的参考边界线,则进行如下处理:针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与所述边界矩阵进行对比,计算该直线上属于所述边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线。如果成绩最好的直线有多条,则根据排序算法将其中最先出现的一条直线作为最佳边界线。其中,所述线条矩阵按照以下方式确定:对直线进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。所述线条矩阵的形成方式与所述边界矩阵类似,在此不做赘述。
如果不能从参考边界线中找到与某一边界线区域相对应的目标边界线,则对霍夫变换获取的多条直线按照步骤S32和S34中所述的形成矩阵的方式形成对应的线条矩阵,判断哪条直线的像素点落入边界矩阵里面的成绩最好,则认为是该边界线区域相对应的目标边界线。将直线形成的线条矩阵与边界矩阵进行对比来计算直线的成绩的方式可以参照步骤S34中的相关描述,在此不做赘述。
在步骤S37中,在确定多条目标边界线后,由于每条目标边界线均对应大致区域中票据的一个边界线区域,因此多条目标边界线构成了大致区域中票据的边缘。
进一步的,还可以获得多条所述目标边界线的多个交点,对多个所述交点和多条所述目标边界线确定的区域进行投影变换,得到大致区域中的票据的正视图。每两条相邻的目标边界线相交得到一个交点,各个交点和各个目标边界线共同限定了大致区域中票据所在的区域。
投影变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。由于拍照所得的图像中,物体的真实形状在图像中发生了变化,即产生了几何畸变。因此,对大致区域中票据所在的区域进行投影变换,可以将大致区域中票据所在区域由平行四边形变换为正方形,即将大致区域中票据所在的区域转正,从而去除几何畸变的影响,得到大致区域中票据的正视图。其中,投影变换是根据空间投影换算坐标来将像素进行处理获取正视图的,在此不做赘述。
通过上述处理可以准确找到各个大致区域中票据的边缘,从而根据票据的边缘可以将各个票据区域切割出来作为单个票据图片,并调用预设的票据识别模型进行信息识别,也可以不进行切割直接对每个票据区域进行调用票据识别模型进行信息识别。
综上所述,本实施例提供的识别图像中多个票据区域的方法,通过获取包含多个票据的图像,首先识别图像中各个票据的大致区域,然后针对每一票据,对该票据的大致区域进行边缘检测处理,获得该票据大致区域中的多条参考边界线,从而根据多条参考边界线确定该票据的实际区域,进而可以对各个票据的实际区域进行票据识别,由于本实施例可以对包含有多张票据的图像进行处理,不需要单独采集每张票据的图像分别进行识别,从而实现了同时处理多个票据,提高票据识别的速度,减轻了票据处理人员的工作负担。
相应于上述方法实施例,本发明一实施例还提供了一种识别图像中多个票据区域的装置。请参考图5,图5是本发明一实施例提供的一种识别图像中多个票据区域的装置的结构示意图,一种识别图像中多个票据区域的装置可以包括:
获取模块201,用于获取包含多个票据的图像;
第一识别模块202,用于通过机器视觉算法识别各个票据在所述图像中的大致区域;
确定模块203,用于针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
本实施例提供的识别图像中多个票据区域的装置,通过获取包含多个票据的图像,首先识别图像中各个票据的大致区域,然后针对每一票据,对该票据的大致区域进行边缘检测处理,获得该票据大致区域中的多条参考边界线,从而根据多条参考边界线确定该票据的实际区域,进而可以对各个票据的实际区域进行票据识别,由于本实施例可以对包含有多张票据的图像进行处理,不需要单独采集每张票据的图像分别进行识别,从而实现了同时处理多个票据,提高票据识别的速度,减轻了票据处理人员的工作负担。
可选的,其特征在于,所述机器视觉算法为目标检测算法。
可选的,所述确定模块203根据多条参考边界线确定该票据的实际区域的方法,包括:
获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
可选的,所述装置还包括:
第二识别模块,用于针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容。
可选的,所述确定模块203,包括:
获得子模块,用于对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
第一合并子模块,用于将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
第二合并子模块,用于将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
第一确定子模块,用于根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
可选的,所述获得子模块对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图的方法,包括:
通过基于OpenCV的边缘检测算法对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图。
可选的,所述第一合并子模块,具体用于:
获取所述线条图中的长线条;其中,所述长线条为长度超过第一预设阈值的线条;
从所述长线条中获取多组第一类线条;其中,所述第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于第二预设阈值;
针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
可选的,所述第二合并子模块,具体用于:
从多条所述初始合并线条中获取多组第二类线条;其中,所述第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;
针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
可选的,所述边界矩阵按照以下方式确定:对多条所述初始合并线条以及所述长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中这些线条的像素点所在位置的值设置为第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。
可选的,根据第一确定子模块根据所述边界矩阵,从多条所述目标线条中确定各个票据的多条参考边界线,包括:
针对每一条所述目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与所述边界矩阵进行对比,计算延长后的该目标线条上属于所述边界矩阵的像素点的个数,作为该目标线条的成绩;其中,所述线条矩阵与所述边界矩阵的大小相同;
根据各个目标线条的成绩,从多条所述目标线条中确定多条参考边界线。
可选的,所述线条矩阵按照以下方式确定:对延长后的目标线条进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。
可选的,所述确定模块203,还包括:
识别子模块,用于在所述第一确定子模块获得该大致区域中的多条参考边界线之后,通过预先训练的边界线区域识别模型对该大致区域进行识别,得到该大致区域中票据的多个边界线区域;其中,所述边界线区域识别模型是基于神经网络的模型;
第二确定子模块,用于针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线;
第三确定子模块,用于根据确定的多条所述目标边界线确定该大致区域中票据的边缘。
可选的,所述第二确定子模块,具体用于:
计算每一条所述参考边界线的斜率;
针对每一个所述边界线区域,将该边界线区域转换为多条直线,并计算所述多条直线的平均斜率,再判断多条所述参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线。
可选的,所述第二确定子模块,还用于:
针对每一个所述边界线区域,如果判断出多条所述参考边界线中不存在斜率与所述平均斜率相匹配的参考边界线,则针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与所述边界矩阵进行对比,计算该直线上属于所述边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线;其中,所述线条矩阵与所述边界矩阵的大小相同。
可选的,所述确定模块203,还包括:
变换子模块,用于在所述第三确定子模块确定该大致区域中票据的边缘之后,获得多条所述目标边界线的多个交点,对多个所述交点和多条所述目标边界线确定的区域进行投影变换,得到所述图像中的所述物体的正视图。
本发明一实施例还提供了一种电子设备,图6是本发明一实施例提供的一种电子设备的结构示意图。请参考图6,一种电子设备包括处理器301、通信接口302、存储器303和通信总线304,其中,所述处理器301、所述通信接口302、所述存储器303通过所述通信总线304完成相互间的通信,
所述存储器303,用于存放计算机程序;
所述处理器301,用于执行所述存储器303上所存放的程序时,实现如下步骤:
获取包含多个依次排列的票据的图像;
通过机器视觉算法识别各个票据在所述图像中的大致区域;
针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图1所示的方法实施例,在此不做赘述。
另外,所述处理器301执行所述存储器303上所存放的程序而实现的识别图像中多个票据区域的方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。
本实施例提供的电子设备,通过获取包含多个票据的图像,首先识别图像中各个票据的大致区域,然后针对每一票据,对该票据的大致区域进行边缘检测处理,获得该票据大致区域中的多条参考边界线,从而根据多条参考边界线确定该票据的实际区域,进而可以对各个票据的实际区域进行票据识别,由于本实施例可以对包含有多张票据的图像进行处理,不需要单独采集每张票据的图像分别进行识别,从而实现了同时处理多个票据,提高票据识别的速度,减轻了票据处理人员的工作负担。
所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述通信接口用于上述电子设备与其他设备之间的通信。所述存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-VolatileMemory,NVM),例如至少一个磁盘存储器。可选的,所述存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。所述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
本发明一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:
获取包含多个票据的图像;
通过机器视觉算法识别各个票据在所述图像中的大致区域;
针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域。
需要说明的是,上述计算机程序被处理器执行时实现的识别图像中多个票据区域的方法的其他实施例,与前述方法部分提及的识别图像中多个票据区域的方法的实施例相同,在此不再赘述。
本实施例提供的计算机可读存储介质,通过获取包含多个票据的图像,首先识别图像中各个票据的大致区域,然后针对每一票据,对该票据的大致区域进行边缘检测处理,获得该票据大致区域中的多条参考边界线,从而根据多条参考边界线确定该票据的实际区域,进而可以对各个票据的实际区域进行票据识别,由于本实施例可以对包含有多张票据的图像进行处理,不需要单独采集每张票据的图像分别进行识别,从而实现了同时处理多个票据,提高票据识别的速度,减轻了票据处理人员的工作负担。
所述计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备,例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。所述计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所描述的计算机程序可以从所述计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收所述计算机程序,并转发该计算机程序,以供存储在各个计算/处理设备中的所述计算机可读存储介质中。用于执行本发明操作的计算机程序可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。所述计算机程序可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机程序的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、系统和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序实现。这些计算机程序可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些程序在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序存储在计算机可读存储介质中,这些计算机程序使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有该计算机程序的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机程序加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的计算机程序实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
需要说明的是,本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。在本文中使用的术语仅用于描述特定实施方式的目的,并非旨在限制本发明。如本文中所使用的,单数形式“一(a)”、“一(an)”和“一(the)”旨在也包括复数形式,除非在上下文中清楚地另外指出。如本文中所使用的,术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。当例如“中的至少一个”的表述处于一列元件之后时修饰整列元件,而不是修饰该列中的个别元件。如本文中所使用的,术语“基本上”、“约”以及类似术语被用作近似术语,而不是程度术语,并且意在表示测量值或计算值中的固有偏差,所述偏差将被那些本领域普通技术人员识别。此外,在描述本发明的实施方式时,“可以”的使用指的是“本发明的一个或多个实施方式”。如本文中所使用的,术语“使用”、“正使用”和“使用了”可以被认为分别与术语“利用”、“正利用”和“利用了”是同义的。同样,术语“示例性”意在指出实例或示例。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (19)
1.一种识别图像中多个票据区域的方法,其特征在于,包括:
获取包含多个票据的图像;
通过机器视觉算法识别各个票据在所述图像中的大致区域;
针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域;
其中,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,包括:
对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
2.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,所述机器视觉算法为目标检测算法。
3.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,根据多条参考边界线确定该票据的实际区域,包括:
获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
4.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,还包括:
针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容。
5.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,所述对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图,包括:
通过基于OpenCV的边缘检测算法对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图。
6.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,将所述线条图中相似的线条进行合并,得到多条初始合并线条,包括:
获取所述线条图中的长线条;其中,所述长线条为长度超过第一预设阈值的线条;
从所述长线条中获取多组第一类线条;其中,所述第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于第二预设阈值;
针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
7.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,将多条所述初始合并线条中相似的线条进行合并得到目标线条,包括:
从多条所述初始合并线条中获取多组第二类线条;其中,所述第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;
针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
8.如权利要求6所述的识别图像中多个票据区域的方法,其特征在于,所述边界矩阵按照以下方式确定:对多条所述初始合并线条以及所述长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中这些线条的像素点所在位置的值设置为第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。
9.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,根据所述边界矩阵,从多条所述目标线条中确定各个票据的多条参考边界线,包括:
针对每一条所述目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与所述边界矩阵进行对比,计算延长后的该目标线条上属于所述边界矩阵的像素点的个数,作为该目标线条的成绩;其中,所述线条矩阵与所述边界矩阵的大小相同;
根据各个目标线条的成绩,从多条所述目标线条中确定多条参考边界线。
10.如权利要求9所述的识别图像中多个票据区域的方法,其特征在于,所述线条矩阵按照以下方式确定:对延长后的目标线条进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个图像矩阵中,将图像矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。
11.如权利要求1所述的识别图像中多个票据区域的方法,其特征在于,在获得该大致区域中的多条参考边界线之后,还包括:
通过预先训练的边界线区域识别模型对该大致区域进行识别,得到该大致区域中票据的多个边界线区域;其中,所述边界线区域识别模型是基于神经网络的模型;
针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线;
根据确定的多条所述目标边界线确定该大致区域中票据的边缘。
12.如权利要求11所述的识别图像中多个票据区域的方法,其特征在于,针对每一所述边界线区域,从多条所述参考边界线中确定与该边界线区域相对应的目标边界线,包括:
计算每一条所述参考边界线的斜率;
针对每一个所述边界线区域,将该边界线区域转换为多条直线,并计算所述多条直线的平均斜率,再判断多条所述参考边界线中是否存在斜率与所述平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线。
13.如权利要求12所述的识别图像中多个票据区域的方法,其特征在于,所述方法还包括:
针对每一个所述边界线区域,如果判断出多条所述参考边界线中不存在斜率与所述平均斜率相匹配的参考边界线,则针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与所述边界矩阵进行对比,计算该直线上属于所述边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线;其中,所述线条矩阵与所述边界矩阵的大小相同。
14.如权利要求11所述的识别图像中多个票据区域的方法,其特征在于,在确定该大致区域中票据的边缘之后,还包括:
获得多条所述目标边界线的多个交点,对多个所述交点和多条所述目标边界线确定的区域进行投影变换,得到该大致区域中的票据的正视图。
15.一种识别图像中多个票据区域的装置,其特征在于,包括:
获取模块,用于获取包含多个票据的图像;
第一识别模块,用于通过机器视觉算法识别各个票据在所述图像中的大致区域;
确定模块,用于针对每一票据,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,并根据多条参考边界线确定该票据的实际区域;
其中,对所述图像中该票据的大致区域进行处理,获得该大致区域中的多条参考边界线,包括:
对所述图像中该票据的大致区域进行处理,获得该票据的大致区域中灰度轮廓的线条图;
将所述线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条所述初始合并线条确定一边界矩阵;
将多条所述初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的所述初始合并线条也作为目标线条;
根据所述边界矩阵,从多条所述目标线条中确定该大致区域中的多条参考边界线。
16.如权利要求15所述的识别图像中多个票据区域的装置,其特征在于,所述确定模块根据多条参考边界线确定该票据的实际区域的方法,包括:
获得多条参考边界线的多个交点,并将多个交点和多条参考边界线所确定的内部区域作为该票据的实际区域。
17.如权利要求15所述的识别图像中多个票据区域的装置,其特征在于,所述装置还包括:
第二识别模块,用于针对每一票据,调用预设的票据识别模型识别该票据的实际区域内的票据内容。
18.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上存储的程序时,实现权利要求1-14任一项所述的方法步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-14任一项所述的方法步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713010.2A CN110427932B (zh) | 2019-08-02 | 2019-08-02 | 一种识别图像中多个票据区域的方法及装置 |
PCT/CN2020/106231 WO2021023111A1 (zh) | 2019-08-02 | 2020-07-31 | 一种识别图像中票据数量、多个票据区域的方法及装置 |
US17/266,626 US11687886B2 (en) | 2019-08-02 | 2020-07-31 | Method and device for identifying number of bills and multiple bill areas in image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713010.2A CN110427932B (zh) | 2019-08-02 | 2019-08-02 | 一种识别图像中多个票据区域的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427932A CN110427932A (zh) | 2019-11-08 |
CN110427932B true CN110427932B (zh) | 2023-05-02 |
Family
ID=68413957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910713010.2A Active CN110427932B (zh) | 2019-08-02 | 2019-08-02 | 一种识别图像中多个票据区域的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427932B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687886B2 (en) | 2019-08-02 | 2023-06-27 | Hangzhou Glority Software Limited | Method and device for identifying number of bills and multiple bill areas in image |
CN111275139B (zh) * | 2020-01-21 | 2024-02-23 | 杭州大拿科技股份有限公司 | 手写内容去除方法、手写内容去除装置、存储介质 |
CN113516673B (zh) * | 2020-04-10 | 2022-12-02 | 阿里巴巴集团控股有限公司 | 图像检测方法、装置、设备和存储介质 |
CN111598074B (zh) * | 2020-05-21 | 2023-07-07 | 杭州睿琪软件有限公司 | 边缘检测方法和装置、电子设备和存储介质 |
CN111814876A (zh) * | 2020-07-08 | 2020-10-23 | 重庆农村商业银行股份有限公司 | 一种票据识别方法、装置、设备及存储介质 |
CN112232336A (zh) * | 2020-09-02 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 一种证件识别方法、装置、设备及存储介质 |
CN112418204A (zh) * | 2020-11-18 | 2021-02-26 | 杭州未名信科科技有限公司 | 基于纸质文档的文本识别方法、系统及计算机介质 |
CN112308036A (zh) * | 2020-11-25 | 2021-02-02 | 杭州睿胜软件有限公司 | 票据识别方法、装置及可读存储介质 |
CN112766073B (zh) * | 2020-12-31 | 2022-06-10 | 贝壳找房(北京)科技有限公司 | 表格提取方法、装置、电子设备及可读存储介质 |
CN113298812B (zh) * | 2021-04-22 | 2023-11-03 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 图像分割方法、装置、系统、电子设备及可读存储介质 |
CN114120518B (zh) * | 2021-11-26 | 2024-02-02 | 深圳怡化电脑股份有限公司 | 纸币连张检测方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4629718B2 (ja) * | 2007-11-12 | 2011-02-09 | 富士通株式会社 | 境界検出方法、プログラム、及び画像処理装置 |
CN107945194A (zh) * | 2017-10-31 | 2018-04-20 | 四川长虹电器股份有限公司 | 基于OpenCV技术的票据分割方法 |
CN108537237A (zh) * | 2018-04-04 | 2018-09-14 | 深圳怡化电脑股份有限公司 | 票据的特征区域提取方法、装置、设备和存储介质 |
CN108921166A (zh) * | 2018-06-22 | 2018-11-30 | 深源恒际科技有限公司 | 基于深度神经网络的医疗票据类文本检测识别方法及系统 |
CN109740548B (zh) * | 2019-01-08 | 2020-12-08 | 北京易道博识科技有限公司 | 一种报销票据图像分割方法及系统 |
-
2019
- 2019-08-02 CN CN201910713010.2A patent/CN110427932B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110427932A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427932B (zh) | 一种识别图像中多个票据区域的方法及装置 | |
CN111951290B (zh) | 一种图像中物体的边缘检测方法及装置 | |
CN112348815B (zh) | 图像处理方法、图像处理装置以及非瞬时性存储介质 | |
US11120254B2 (en) | Methods and apparatuses for determining hand three-dimensional data | |
US10699134B2 (en) | Method, apparatus, storage medium and device for modeling lane line identification, and method, apparatus, storage medium and device for identifying lane line | |
CN110428414B (zh) | 一种识别图像中票据数量的方法及装置 | |
CN106447721B (zh) | 图像阴影检测方法和装置 | |
US10885660B2 (en) | Object detection method, device, system and storage medium | |
CN110427946B (zh) | 一种文档图像二值化方法、装置和计算设备 | |
CN111598074A (zh) | 边缘检测方法和装置、电子设备和存储介质 | |
US11687886B2 (en) | Method and device for identifying number of bills and multiple bill areas in image | |
CN109919971B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN111008935B (zh) | 一种人脸图像增强方法、装置、系统及存储介质 | |
CN107545223B (zh) | 图像识别方法及电子设备 | |
CN110598703B (zh) | 一种基于深度神经网络的ocr识别方法及装置 | |
CN112396050B (zh) | 图像的处理方法、设备以及存储介质 | |
CN114331951A (zh) | 图像检测方法、装置、计算机、可读存储介质及程序产品 | |
CN111626295A (zh) | 车牌检测模型的训练方法和装置 | |
CN114037992A (zh) | 仪表示数识别方法、装置、电子设备及存储介质 | |
CN110796130A (zh) | 用于文字识别的方法、装置及计算机存储介质 | |
CN114445825A (zh) | 文字检测方法、装置、电子设备和存储介质 | |
CN112465050B (zh) | 一种图像模板选择方法、装置、设备及存储介质 | |
Fang et al. | Lane boundary detection algorithm based on vector fuzzy connectedness | |
CN111178200A (zh) | 一种仪表盘指示灯的识别方法及计算设备 | |
Kurlin et al. | A persistence-based approach to automatic detection of line segments in images |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |