掌桥专利:专业的专利平台
掌桥专利
首页

图像识别方法、装置及计算机可读存储介质

文献发布时间:2023-06-19 16:08:01



技术领域

本申请涉及金融科技领域,具体而言,涉及一种图像识别方法、装置及计算机可读存储介质。

背景技术

在企业运营中,工作人员在出差时所产生的差旅费用以及在举办活动时所产生的活动费用通常需要报销,报销的依据则是费用发票,例如,增值税专票。

但是在现有技术中,工作人员在进行费用报销时,需要人工识别发票上的发票信息,例如,增值税专票上的发票代码以及发票号码,然后再将发票信息人工录入到费用报销系统中。这种人工识别发票信息的方式,不仅识别效率低,而且容易出现识别错误的问题,从而影响到整体的费用报销流程。

针对上述问题,目前尚未提出有效的解决方案。

发明内容

本申请的主要目的在于提供一种图像识别方法、装置及计算机可读存储介质,以解决现有技术中人工识别发票信息所存在的识别效率低的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种图像识别方法。该方法包括:获取待识别发票的发票图像;基于发票图像,确定待识别发票中字符的字符高度;根据字符高度,确定发票图像中的表格框架,其中,表格框架表征发票图像中待识别发票的表格的轮廓信息;基于表格框架,对发票图像进行图像分割,得到目标图像区域;识别目标图像区域中的字符,生成图像识别结果。

进一步地,图像识别方法还包括:在获取待识别发票的发票图像之后,检测发票图像是否存在倾斜;在发票图像存在倾斜的情况下,对发票图像进行倾斜校正处理,得到校正后的第一发票图像。

进一步地,图像识别方法还包括:对发票图像进行二值化处理以及降噪处理,得到第二发票图像;对第二发票图像中的边缘线条进行增强处理,得到第三发票图像,其中,边缘线条为待识别发票中用于包围字符的线条;对第三发票图像进行霍夫变换,得到待识别发票在发票图像中的倾斜角;根据倾斜角对第三发票图像进行旋转,得到第一发票图像。

进一步地,图像识别方法还包括:基于第一发票图像,获取待识别发票中的所有字符;计算每个字符的高度值,得到待识别发票中的每个字符的字符高度。

进一步地,图像识别方法还包括:步骤一、在第一发票图像中随机确定一个目标像素;步骤二、将目标像素与第一像素连接,其中,第一像素与目标像素相邻,并且第一像素的像素值与目标像素的像素值相同;步骤三、在所有的第一像素以及目标像素全部连接之后,确定生成一个字符;步骤四、基于第一发票图像中的其他像素,重复执行步骤一、步骤二以及步骤三,直至所有像素值相同的相邻像素全部连接,得到待识别发票中的所有字符,其中,其他像素为第一发票图像中除目标像素以及第一像素之外的像素,并且其他像素的像素值与目标像素的像素值相同。

进一步地,图像识别方法还包括:根据每个字符的字符高度,确定最高字符高度;根据最高字符高度确定水平结构元以及垂直结构元;通过水平结构元提取第一发票图像中的水平等高线,得到水平等高线图;通过垂直结构元提取第一发票图像中的垂直等高线,得到垂直等高线图;将水平等高线图与垂直等高线图进行加权合并,得到合并后的图像,其中,合并后的图像中包含表格框架。

进一步地,图像识别方法还包括:基于表格框架,确定每条垂直等高线的第一顶点坐标以及每条水平等高线的第二顶点坐标,其中,第一顶点坐标为每条垂直等高线的上下两个端点的坐标,第二顶点坐标为每条水平等高线的左右两个端点的坐标;根据第一顶点坐标以及第二顶点坐标,确定表格框架中的每个子表格框架的坐标信息,其中,每个子表格框架由多条垂直等高线以及多条水平等高线组成;根据每个子表格框架的坐标信息对发票图像进行图像分割,得到目标图像区域,其中,目标图像区域中包含至少一个子表格框架,并且至少一个子表格框架内包含有字符信息。

为了实现上述目的,根据本申请的另一方面,提供了一种图像识别装置。该装置包括:获取模块,用于获取待识别发票的发票图像;第一确定模块,用于基于发票图像,确定待识别发票中字符的字符高度;第二确定模块,用于根据字符高度,确定发票图像中的表格框架,其中,表格框架表征发票图像中待识别发票的表格的轮廓信息;图像分割模块,用于基于表格框架,对发票图像进行图像分割,得到目标图像区域;识别模块,用于识别目标图像区域中的字符,生成图像识别结果。

为了实现上述目的,根据本申请的另一方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的图像识别方法。

为了实现上述目的,根据本申请的另一方面,提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的图像识别方法。

通过本申请的技术方案,采用根据字符高度,确定发票图像中的表格框架,并基于表格框架,对发票图像进行图像分割的方式,首先获取待识别发票的发票图像,然后基于发票图像,确定待识别发票中字符的字符高度,并根据字符高度,确定发票图像中的表格框架,从而基于表格框架,对发票图像进行图像分割,得到目标图像区域,最后识别目标图像区域中的字符,生成图像识别结果。其中,表格框架表征发票图像中待识别发票的表格的轮廓信息。

由上述内容可知,在本申请中,通过识别目标图像区域中的字符,自动识别得到了发票上的发票信息,与现有技术中需要人工识别发票上的发票信息相比,本申请不仅仅提高了发票信息的识别效率,还可以避免由于人工识别失误导致的发票信息识别错误的问题。另外,本申请在识别发票图像上的字符之前,还首先要确定待识别发票中字符的字符高度,然后根据字符高度确定发票图像中的表格框架。需要注意到的是,由于发票中的字符通常是位于表格框架之内,因此,通过字符高度,本申请可以准确地确定表格框架,从而避免了需要工作人员多次试验才能确定表格框架的问题,进而进一步的提高了发票信息的识别效率。

由此可见,通过本申请的技术方案,达到了自动化识别发票信息的目的,从而实现了提高发票信息识别准确度的效果,进而解决了现有技术中人工识别发票信息所存在的识别效率低的问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的图像识别方法的流程图;

图2是根据本申请实施例提供的发票识别报销系统的示意图;

图3是根据本申请实施例提供的倾斜的发票样本的发票图像的示意图;

图4是根据本申请实施例提供的第二发票图像的示意图;

图5是根据本申请实施例提供的第三发票图像的示意图;

图6是根据本申请实施例提供的第一发票图像的示意图;

图7是根据本申请实施例提供的水平等高线图的示意图;

图8是根据本申请实施例提供的垂直等高线图的示意图;

图9是根据本申请实施例提供的表格框架的示意图;

图10是根据本申请实施例提供的第一顶点坐标和第二顶点坐标的分布示意图;

图11是根据本申请的实施例提供的一种图像识别方法的流程图;

图12是根据本申请实施例提供的图像识别装置的示意图;

图13是根据本申请实施例提供的电子设备的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

另外,还需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。

实施例1

根据本发明实施例,提供了一种图像识别方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

另外,还需要注意到的是,一种发票识别报销系统可作为本发明实施例中的图像识别方法的执行主体。

图1是根据本申请实施例提供的图像识别方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,获取待识别发票的发票图像。

在步骤S101中,发票识别报销系统可使用图像采集模块获取待识别发票的发票图像,其中,图像采集模块可以是手机、智能平板等终端设备上的摄像头。具体的,图2示出了根据本申请实施例的一种发票识别报销系统的示意图,如图2所示,发票识别报销系统至少包括:图像采集模块、图像处理模块、字符识别模块以及输出模块。其中,图像采集模块,用于获取待识别发票的发票图像;图像处理模块,用于对倾斜的发票图像进行倾斜校正处理、识别发票图像中的表格框架以及获取表格框架中每个子表格框架的坐标信息;字符识别模块,用于对发票图像进行行区域检测、图像分割、以及字符识别;输出模块,用于对图像识别结果进行分析以及将图像识别结果反向填写在发票识别报销系统中的报销单中。

步骤S102,基于发票图像,确定待识别发票中字符的字符高度。

在步骤S102中,待识别发票中存在多个字符,其中,字符至少包括待识别发票上的文字、数字、符号等各种类型的字符。另外,字符可以是机器打印的字符,也可以是手写的字符。进一步地,每个字符都有自己的字符高度,在图像采集模块将获取得到的发票图像传输给图像处理模块之后,图像处理模块将获取每个字符的字符高度,并将其组成一个高度值集合。

步骤S103,根据字符高度,确定发票图像中的表格框架。

在步骤S103中,表格框架表征发票图像中待识别发票的表格的轮廓信息。例如,在一张增值税专票中存在一个表格框架,其中,该表格框架可分解为多个子表格框架,并且在每个子表格框架中都填写有字符,这些字符即表示了各种发票信息,例如,发票号码、发票代码、金额、税率等等。

另外,图像处理模块调用opencv(一种开源的跨平台计算机视觉和机器学习软件库,可用于进行图像处理)系统,其中,opencv系统中具有两种函数,分别为水平结构元以及垂直结构元。基于获取得到的字符高度,opencv系统可以根据字符高度确定水平结构元以及垂直结构元,从而通过水平结构元提取发票图像中的水平等高线,得到水平等高图,通过垂直结构元提取发票图像中的垂直等高线,得到垂直等高图。最后,opencv系统将水平等高图与垂直等高图进行加权合并,得到表格框架。

需要注意到的是,由于发票中的字符通常是位于表格框架之内,因此,通过字符高度,本申请可以准确地确定表格框架,从而避免了需要工作人员多次试验或者迭代才能确定表格框架的问题,进而进一步的提高了发票信息的识别效率。

步骤S104,基于表格框架,对发票图像进行图像分割,得到目标图像区域。

在步骤S104中,图像处理模块将表格框架传输给字符识别模块,字符识别模块可以根据表格框架,确定每条垂直等高线的第一顶点坐标,其中,第一顶点坐标为每条垂直等高线的上下两个端点的坐标。另外,字符识别模块还可以确定每条水平等高线的第二顶点坐标,其中,第二顶点坐标为每条水平等高线的左右两个端点的坐标,由于表格框架以及表格框架的子表格框架都是基于水平等高线与垂直等高线组成的,因此,在确定了第一顶点坐标与第二顶点坐标的基础上,字符识别模块可以得到每个子表格框架的坐标信息。最后,字符识别模块根据每个子表格框架的坐标信息可以对发票图像进行图像分割,例如,如果需要识别待识别发票的发票代码,而发票代码位于子表格框架A内,则字符识别模块可以根据子表格框架A的坐标信息对发票图像进行分割,则到目标图像区域A,其中,目标图像区域A内至少包含有发票代码的相关字符。

步骤S105,识别目标图像区域中的字符,生成图像识别结果。

在步骤S105中,字符识别模块可以调用Tesseract(一种文字识别引擎)引擎来识别目标图像区域中的字符,并生成图像识别结果。其中,字符识别模块还可以引入jTessBoxEditor(一种用于训练Tesseract引擎的训练框架)来对Tesseract的字符库进行训练,从而通过扩展字符库的方法提高字符识别的准确率。

另外,在得到图像识别结果之后,字符识别模块将图像识别结果传输至输出模块中,然后输出模块可将图像识别结果输出至显示设备中进行显示,并由工作人员进行确认,待工作人员确认图像识别结果无问题之后,输出模块将图像识别结果反向填写在发票识别报销系统中的报销单中。

基于上述步骤S101至步骤S105的内容可知,通过本申请的技术方案,采用根据字符高度,确定发票图像中的表格框架,并基于表格框架,对发票图像进行图像分割的方式,首先获取待识别发票的发票图像,然后基于发票图像,确定待识别发票中字符的字符高度,并根据字符高度,确定发票图像中的表格框架,从而基于表格框架,对发票图像进行图像分割,得到目标图像区域,最后识别目标图像区域中的字符,生成图像识别结果。其中,表格框架表征发票图像中待识别发票的表格的轮廓信息。

由上述内容可知,在本申请中,通过识别目标图像区域中的字符,自动识别得到了发票上的发票信息,与现有技术中需要人工识别发票上的发票信息相比,本申请不仅仅提高了发票信息的识别效率,还可以避免由于人工识别失误导致的发票信息识别错误的问题。另外,本申请在识别发票图像上的字符之前,还首先要确定待识别发票中字符的字符高度,然后根据字符高度确定发票图像中的表格框架。需要注意到的是,由于发票中的字符通常是位于表格框架之内,因此,通过字符高度,本申请可以准确地确定表格框架,从而避免了需要工作人员多次试验或者迭代才能确定表格框架的问题,进而进一步的提高了发票信息的识别效率。

由此可见,通过本申请的技术方案,达到了自动化识别发票信息的目的,从而实现了提高发票信息识别准确度的效果,进而解决了现有技术中人工识别发票信息所存在的识别效率低的问题。

在一种可选的实施例中,在获取待识别发票的发票图像之后,图像处理模块检测发票图像是否存在倾斜,在发票图像存在倾斜的情况下,对发票图像进行倾斜校正处理,得到校正后的第一发票图像。

可选的,图像处理模块在接收到图像采集模块所发送的发票图像之后,首先要检测发票图像是否存在倾斜,如果发票图像存在倾斜的情况,则图像处理模块将对发票图像进行倾斜校正处理,从而得到校正后的第一发票图像。具体的,如果图像处理模块检测到发票图像存在倾斜,则图像处理模块首先对发票图像进行二值化处理以及降噪处理,得到第二发票图像,然后图像处理模块对第二发票图像中的边缘线条进行增强处理,得到第三发票图像,其中,边缘线条为待识别发票中用于包围字符的线条。针对于第三发票图像,图像处理模块对第三发票图像进行霍夫变换,得到待识别发票在发票图像中的倾斜角,进而根据倾斜角对发票图像进行旋转,得到第一发票图像。其中,第一发票图像即为倾斜校正后的发票图像。

可选的,图3示出了一张倾斜的发票样本的发票图像,图像处理模块通过opencv系统的自适应阈值二值化算法,将采集到的存在倾斜情况的发票图像进行二值化处理以及降噪处理,其中,在进行二值化处理时,图像处理模块会对发票的每个小区块按照局部特分别进行阈值计算。如图4所示,在经过二值化处理以及降噪处理后所得到的第二发票图像中,待识别发票的字符将变得更加清晰。

可选的,图像处理模块还将通过Canny(一种多级边缘检测算法)边缘检测算法继续对第二发票图像进行边缘线条的检测,并对检测得到的边缘线条进行增强处理,得到第三发票图像。其中,如图5所示,图像处理模块不仅可检测到发票图像中的边缘线条,还可以将边缘线条变得更加清晰明显。另外,在得到第三发票图像之后,图像采集模块还可以运用霍夫变换检测第三发票图像中的大量直线,并且计算得出直线与第三发票图像的边框之间的角度,该角度即为倾斜角,最后图像处理模块根据倾斜角对第三发票图像进行旋转校正,即可得到倾斜校正后的第一发票图像。其中,图3中的发票图像在进行倾斜校正后,可以得到图6中的第一发票图像,在图6中,发票样本的位置已经不在倾斜,处于了相对水平居中的位置。

需要注意到的是,通过对发票图像进行倾斜校正处理,可以提高发票信息的识别准确率,进而规避了由于发票图像倾斜导致的发票信息识别错误的问题。

在一种可选的实施例中,如果发票图像不存在倾斜,则图像处理模块只需要对发票图像进行二值化处理、降噪处理以及边缘线条增强处理即可。

在一种可选的实施例中,图像处理模块还用于确定待识别发票中字符的字符高度。具体的,图像处理模块首先基于第一发票图像,获取待识别发票中的所有字符。然后,图像处理模块计算每个字符的高度值,从而得到待识别发票中的每个字符的字符高度。

可选的,在基于第一发票图像,获取待识别发票中的所有字符时,图像处理模块需要进行以下步骤:

步骤一、在第一发票图像中随机确定一个目标像素;步骤二、将目标像素与第一像素连接,其中,第一像素与目标像素相邻,并且第一像素的像素值与目标像素的像素值相同;步骤三、在所有的第一像素以及目标像素全部连接之后,确定生成一个字符;步骤四、基于第一发票图像中的其他像素,重复执行步骤一、步骤二以及步骤三,直至所有像素值相同的相邻像素全部连接,得到待识别发票中的所有字符,其中,其他像素为第一发票图像中除目标像素以及第一像素之外的像素,并且其他像素的像素值与目标像素的像素值相同。

举例而言,在步骤一中,图像处理模块首先在第一发票图像中随机选取一个目标像素p(x,y)。其中,目标像素的像素值为黑色像素值,并且在目标像素的相邻像素中至少存在有一个背景像素,背景像素的像素值为白色像素值。需要注意到的是,由于第一发票图像已经进行了二值化处理,因此,像素值只有黑色像素值与白色像素值两种。

在步骤二中,图像处理模块从目标像素p(x,y)开始,寻找与目标像素相邻的第一像素,其中,第一像素的像素值与目标像素的像素值相同,也是黑色像素值,并且第一像素与目标像素之间不存在背景像素。在找到第一像素之后,图像处理模块将目标像素与第一像素进行连接。

在步骤三中,除了目标像素与第一像素之间进行连接之外,相邻的第一像素之间也进行连接,由于不同的字符之间存在背景像素(即白色像素),因此,组成不同字符的黑色像素(即目标像素与第一像素)是不会进行连接的,只有同一字符内的黑色像素才会互相连接。在此基础上,在一个字符内的目标像素与第一像素全部连接之后,即相当于生成了该字符。

在步骤四中,通过重复执行步骤一至步骤三的过程,直至所有像素值相同的相邻像素全部连接之后,则可以得到待识别图像中的所有字符。

需要注意到的是,通过上述过程,可以识别出待识别发票中的所有字符,从而发票识别报销系统可以根据每个字符的高度更加精准的确定表格框架。

在一种可选的实施例中,在得到所有字符之后,图像处理模块可以根据每个字符的字符高度,确定最高字符高度,并根据最高字符高度确定水平结构元以及垂直结构元,然后通过水平结构元提取第一发票图像中的水平等高线,得到水平等高线图;通过垂直结构元提取第一发票图像中的垂直等高线,得到垂直等高线图。最后,图像处理模块将水平等高线图与垂直等高线图进行加权合并,得到合并后的图像,其中,合并后的图像中包含表格框架。

可选的,图像处理模块会将得到的所有字符高度组成一个高度值集合,并从其中确定最高字符高度,由于表格框架是用于包围字符的,因此,通过最高字符高度确定表格框架,可确保所有的字符都在表格框架之内。另外,opencv系统中存在两个函数,分别为水平结构元、垂直结构元。图像处理模块可通过最高字符高度确定水平结构元的阈值以及垂直结构元的阈值。如图7所示,图像处理模块利用水平结构元提取第一发票图像中的水平等高线,得到水平等高线图;如图8所示,图像处理模块利用垂直结构元提取第一发票图像中的垂直等高线,得到垂直等高线图。最后,如图9所示,图像处理模块可利用图片加权算法对水平等高线图以及垂直等高线图进行加权合并,从而得到表格框架。其中,图像处理模块可设置水平等高线图的权值与垂直等高线图的权值相等。另外,在得到合并后的图像之后,为了使表格框架更加清楚,图像处理模块可以选取3*3结构元对合并后的图像进行卷积,得到卷积后的图像,然后对卷积后的图像进行按位取反,得到更加清晰的表格框架。

需要注意到的是,由于发票中的字符通常是位于表格框架之内,因此,通过字符高度,本申请可以准确地确定表格框架,从而避免了需要工作人员多次试验或者迭代才能确定表格框架的问题,进而进一步的提高了发票信息的识别效率。

在一种可选的实施例中,发票识别报销系统可基于表格框架,确定每条垂直等高线的第一顶点坐标以及每条水平等高线的第二顶点坐标,其中,第一顶点坐标为每条垂直等高线的上下两个端点的坐标,第二顶点坐标为每条水平等高线的左右两个端点的坐标。然后发票识别报销系统根据第一顶点坐标以及第二顶点坐标,确定表格框架中的每个子表格框架的坐标信息,其中,每个子表格框架由多条垂直等高线以及多条水平等高线组成。最后,发票识别报销系统根据每个子表格框架的坐标信息对发票图像进行图像分割,得到目标图像区域,其中,目标图像区域中包含至少一个子表格框架,并且至少一个子表格框架内包含有字符信息。

可选的,如图10所示,在得到表格框架之后,发票识别报销系统利用opencv库获取每条垂直等高线的第一顶点坐标以及每条水平等高线的第二顶点坐标。由于每个子表格框架都是由垂直等高线与水平等高线组成的,因此,在得到第一顶点坐标与第二顶点坐标的基础上,发票识别报销系统可以确定每个子表格框架的坐标信息。最后,发票识别报销系统通过每个子表格框架的坐标信息即可对发票图像进行分割,得到目标图像区域。

在一种可选的实施例中,图11是根据本申请的实施例提供的一种图像识别方法的流程图,如图11所示,首先工作人员通过手机上的摄像头拍摄增值税发票专票的发票图像,并将发票图像传输给图像处理模块,图像处理模块根据接收到的发票图像,进行倾斜校正处理,得到第一发票图像。然后图像处理模块基于第一发票图像,识别增值税发票专票的表格框架,并根据所识别的表格框架,获取表格框架中每个子表格框架的坐标信息。字符识别模块根据坐标信息,对发票图像进行图像分割,得到目标图像区域,并对目标图像区域中的字符进行识别,得到图像识别结果。最后,输出模块对图像识别结果进行分析与确认,并将确认后的图像识别结果反填在发票识别报销系统的报销单中。

由上述内容可知,与现有技术使用人工方式识别并录入发票信息相比,本申请提供了一种更加方便快捷的处理方式,不仅避免了人工录入的错误,而且极大的提高了发票信息录入效率,节省了识别发票信息的时间。

实施例2

本申请实施例还提供了一种图像识别装置,需要说明的是,本申请实施例的图像识别装置可以用于执行本申请实施例1所提供的图像识别方法。以下对本申请实施例提供的图像识别装置进行介绍。

图12是根据本申请实施例的图像识别装置的示意图。如图12所示,该装置包括:获取模块1201,用于获取待识别发票的发票图像;第一确定模块1202,用于基于发票图像,确定待识别发票中字符的字符高度;第二确定模块1203,用于根据字符高度,确定发票图像中的表格框架,其中,表格框架表征发票图像中待识别发票的表格的轮廓信息;图像分割模块1204,用于基于表格框架,对发票图像进行图像分割,得到目标图像区域;识别模块1205,用于识别目标图像区域中的字符,生成图像识别结果。

可选的,图像识别装置还包括:检测模块以及校正模块。其中,检测模块,用于检测发票图像是否存在倾斜;校正模块,用于在发票图像存在倾斜的情况下,对发票图像进行倾斜校正处理,得到校正后的第一发票图像。

可选的,上述校正模块还包括:二值化处理模块、增强处理模块、倾斜角识别模块以及旋转模块。其中,二值化处理模块,用于对发票图像进行二值化处理以及降噪处理,得到第二发票图像;增强处理模块,用于对第二发票图像中的边缘线条进行增强处理,得到第三发票图像,其中,边缘线条为待识别发票中用于包围字符的线条;倾斜角识别模块,用于对第三发票图像进行霍夫变换,得到待识别发票在发票图像中的倾斜角;旋转模块,用于根据倾斜角对第三发票图像进行旋转,得到第一发票图像。

可选的,上述第一确定模块还包括:第一获取模块以及计算模块。其中,第一获取模块,用于基于第一发票图像,获取待识别发票中的所有字符;计算模块,用于计算每个字符的高度值,得到待识别发票中的每个字符的字符高度。

可选的,上述第一获取模块还包括:第一执行模块、第二执行模块、第三执行模块以及第四执行模块。其中,第一执行模块,用于执行步骤一、在第一发票图像中随机确定一个目标像素;第二执行模块,用于执行步骤二、将目标像素与第一像素连接,其中,第一像素与目标像素相邻,并且第一像素的像素值与目标像素的像素值相同;第三执行模块,用于执行步骤三、在所有的第一像素以及目标像素全部连接之后,确定生成一个字符;第四执行模块,用于执行步骤四、基于第一发票图像中的其他像素,重复执行步骤一、步骤二以及步骤三,直至所有像素值相同的相邻像素全部连接,得到待识别发票中的所有字符,其中,其他像素为第一发票图像中除目标像素以及第一像素之外的像素,并且其他像素的像素值与目标像素的像素值相同。

可选的,上述第二确定模块还包括:第三确定模块、第四确定模块、第一提取模块、第二提取模块以及加权合并模块。其中,第三确定模块,用于根据每个字符的字符高度,确定最高字符高度;第四确定模块,用于根据最高字符高度确定水平结构元以及垂直结构元;第一提取模块,用于通过水平结构元提取第一发票图像中的水平等高线,得到水平等高线图;第二提取模块,用于通过垂直结构元提取第一发票图像中的垂直等高线,得到垂直等高线图;加权合并模块,用于将水平等高线图与垂直等高线图进行加权合并,得到合并后的图像,其中,合并后的图像中包含表格框架。

可选的,图像分割模块还包括:第五确定模块、第六确定模块以及第一图像分割模块。其中,第五确定模块,用于基于表格框架,确定每条垂直等高线的第一顶点坐标以及每条水平等高线的第二顶点坐标,其中,第一顶点坐标为每条垂直等高线的上下两个端点的坐标,第二顶点坐标为每条水平等高线的左右两个端点的坐标;第六确定模块,用于根据第一顶点坐标以及第二顶点坐标,确定表格框架中的每个子表格框架的坐标信息,其中,每个子表格框架由多条垂直等高线以及多条水平等高线组成;第一图像分割模块,用于根据每个子表格框架的坐标信息对发票图像进行图像分割,得到目标图像区域,其中,目标图像区域中包含至少一个子表格框架,并且至少一个子表格框架内包含有字符信息。

实施例3

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述实施例1中的图像识别方法。

实施例4

根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述实施例1中的图像识别方法。

如图13所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取待识别发票的发票图像;基于发票图像,确定待识别发票中字符的字符高度;根据字符高度,确定发票图像中的表格框架,其中,表格框架表征发票图像中待识别发票的表格的轮廓信息;基于表格框架,对发票图像进行图像分割,得到目标图像区域;识别目标图像区域中的字符,生成图像识别结果。

可选的,处理器执行程序时还实现以下步骤:在获取待识别发票的发票图像之后,检测发票图像是否存在倾斜;在发票图像存在倾斜的情况下,对发票图像进行倾斜校正处理,得到校正后的第一发票图像。

可选的,处理器执行程序时还实现以下步骤:对发票图像进行二值化处理以及降噪处理,得到第二发票图像;对第二发票图像中的边缘线条进行增强处理,得到第三发票图像,其中,边缘线条为待识别发票中用于包围字符的线条;对第三发票图像进行霍夫变换,得到待识别发票在发票图像中的倾斜角;根据倾斜角对第三发票图像进行旋转,得到第一发票图像。

可选的,处理器执行程序时还实现以下步骤:基于第一发票图像,获取待识别发票中的所有字符;计算每个字符的高度值,得到待识别发票中的每个字符的字符高度。

可选的,处理器执行程序时还实现以下步骤:步骤一、在第一发票图像中随机确定一个目标像素;步骤二、将目标像素与第一像素连接,其中,第一像素与目标像素相邻,并且第一像素的像素值与目标像素的像素值相同;步骤三、在所有的第一像素以及目标像素全部连接之后,确定生成一个字符;步骤四、基于第一发票图像中的其他像素,重复执行步骤一、步骤二以及步骤三,直至所有像素值相同的相邻像素全部连接,得到待识别发票中的所有字符,其中,其他像素为第一发票图像中除目标像素以及第一像素之外的像素,并且其他像素的像素值与目标像素的像素值相同。

可选的,处理器执行程序时还实现以下步骤:根据每个字符的字符高度,确定最高字符高度;根据最高字符高度确定水平结构元以及垂直结构元;通过水平结构元提取第一发票图像中的水平等高线,得到水平等高线图;通过垂直结构元提取第一发票图像中的垂直等高线,得到垂直等高线图;将水平等高线图与垂直等高线图进行加权合并,得到合并后的图像,其中,合并后的图像中包含表格框架。

可选的,处理器执行程序时还实现以下步骤:基于表格框架,确定每条垂直等高线的第一顶点坐标以及每条水平等高线的第二顶点坐标,其中,第一顶点坐标为每条垂直等高线的上下两个端点的坐标,第二顶点坐标为每条水平等高线的左右两个端点的坐标;根据第一顶点坐标以及第二顶点坐标,确定表格框架中的每个子表格框架的坐标信息,其中,每个子表格框架由多条垂直等高线以及多条水平等高线组成;根据每个子表格框架的坐标信息对发票图像进行图像分割,得到目标图像区域,其中,目标图像区域中包含至少一个子表格框架,并且至少一个子表格框架内包含有字符信息。

本文中的电子设备可以是服务器、PC、PAD、手机等。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

技术分类

06120114715267