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

一种凸字体银行卡号图像的合成方法、识别方法及装置

文献发布时间:2023-06-19 10:27:30


一种凸字体银行卡号图像的合成方法、识别方法及装置

技术领域

本申请涉及图像合成技术领域,尤其涉及一种凸字体银行卡号图像的合成方法、识别方法及装置。

背景技术

近年来随着光学字符识别(Optical Character Recognition,OCR)技术不断发展,通过OCR技术识别各类证件照片中的文字信息成为了可能。由于训练需要大量的图片,而真实图片的数量获取难度较高,且获取数量有限,故采用合成图像样本训练识别模型。

目前,合成图像样本的一种方法是使用Synthtext算法,但在合成复杂的自然场景文本图像(特别是带有复杂纹理的图像,如带有凸字体效果的银行卡图像)时,合成效果往往很差,导致识别模型准确率较低。此外,对于合成凸字体银行卡号图像可以使用Pix2Pix等基于监督学习的生成对抗模型的方法,虽然模拟出银行卡图像的立体效果及纹理效果非常好,但是合成训练集样本过程中需要制作真实银行卡号图像所对应的非凸字体图像,并且需要手工标注真实图像中的银行卡号,当训练集较大时,往往花费较多的时间进行人工标注,耗资较大。

发明内容

有鉴于此,本申请实施例至少提供一种凸字体银行卡号图像的合成方法、识别方法及装置,不仅合成的凸字体银行卡号图像质量较高,采用这种合成的凸字体银行卡号图像进行识别模型的训练,可以提高识别模型识别银行卡号的准确率。

本申请主要包括以下几个方面:

第一方面,本申请实施例提供一种凸字体银行卡号图像的合成方法,所述合成方法包括:

获取待合成的非凸字体银行卡号图像所需的资源文件;所述资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体;

基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像;

基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成与每个非凸字体银行卡号图像对应的凸字体银行卡号图像。

在一种可能的实施方式中,所述基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像,包括:

基于所述银行卡卡号的排列规则信息和所述银行卡卡号的字体,合成每个非凸字体银行卡图像中的前景图像;

将每个非凸字体银行卡图像中的所述前景图像和所述银行卡卡号背景图像进行合成,得到每个非凸字体银行卡号图像。

在一种可能的实施方式中,所述环形生成式对抗网络模型包括第一生成器、第二生成器、第一判别器和第二判别器,在获取所述待合成的非凸字体银行卡号图像所需的资源文件之前,所述合成方法还包括根据以下步骤生成所述环形生成式对抗网络模型:

通过非凸字体银行卡号图像样本和凸字体银行卡号图像样本对所述第一生成器、所述第二生成器、所述第一判别器以及所述第二判别器进行训练,当所述第一判别器的第一损失函数、所述第二判别器的第二损失函数、所述第一生成器和所述第二生成器的第三损失函数和所述第一生成器和所述第二生成器第四损失函数均满足对应的预设条件时,训练截止,得到训练好的环形生成式对抗网络模型;

所述第一损失函数是所述第一判别器对所述第一生成器生成的凸字体银行卡号图像以及所述凸字体银行卡号图像样本进行判断使用的函数;

所述第二损失函数时所述第二判别器对所述第二生成器生成的非凸字体银行卡号图像以及非凸字体银行卡号图像样本进行判断使用的函数。

在一种可能的实施方式中,

根据以下步骤训练所述第一判别器:

将所述非凸字体银行卡号图像样本输入第一生成器中,输出第一合成凸字体银行卡号图像样本;

基于所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本对第一判别器进行训练,直至所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本之间的第一损失小于第一预值,得到训练好的第一判别器;

根据以下步骤训练所述第二判别器:

将所述凸字体银行卡号图像样本输入第二生成器中,输出第一合成非凸字体银行卡号图像样本;

基于所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本对第二判别器进行训练,直至所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本之间的第二损失小于第二预值,得到训练好的第二判别器。

在一种可能的实施方式中,根据以下步骤训练所述第一生成器和所述第二生成器;

将所述第一合成非凸字体银行卡号图像样本输入所述第一生成器中,输出第二合成凸字体银行卡号图像样本,以及将所述第一合成凸字体银行卡号图像样本输入所述第二生成器中,输出第二合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第二合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像样本和所述第二合成非凸字体银行卡号图像样本训练所述第二生成器,直至由所述第一生成器和所述第二生成器的第三损失函数确定的第三损失小于第三预值时,得到训练好的第一生成器和训练好的第二生成器;

在一种可能的实施方式中,根据以下步骤训练所述第一生成器和所述第二生成器:

将所述凸字体银行卡号图像样本输入所述第一生成器中,输出第三合成凸字体银行卡号图像样本,以及将所述非凸字体银行卡号图像样本输入所述第二生成器中,输出第三合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第三合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像样本和所述第三合成非凸字体银行卡号图像样本训练第二生成器,直至由所述第一生成器和所述第二生成器的第四损失函数确定的第四损失小于第四预值时,得到训练好的第一生成器和训练好的第二生成器;

第二方面,本申请实施例还提供一种凸字体银行卡号图像的识别方法,所述识别方法包括:

将待识别的凸字体银行卡号图像输入训练好的卡号识别模型中,得到所述待识别的凸字体银行卡号图像中的银行卡号的识别结果;

其中,所述卡号识别模型是基于第一方面所述的凸字体银行卡号图像的合成方法得到的凸字体银行卡号图像进行训练得到的。

第三方面,本申请实施例还提供一种凸字体银行卡号图像的合成装置包括:

第一获取模块,用于获取待合成的非凸字体银行卡号图像所需的资源文件;所述资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体;

第一合成模块,用于基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像;

第二合成模块,用于基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成与每个非凸字体银行卡号图像对应的凸字体银行卡号图像。

第四方面,本申请实施例还提供一种凸字体银行卡号图像的识别装置,所述识别装置包括:

识别模块,用于将待识别的凸字体银行卡号图像输入训练好的卡号识别模型中,得到所述待识别的凸字体银行卡号图像中的银行卡号的识别结果;

其中,所述卡号识别模型是基于第三方面所述的凸字体银行卡号图像的合成装置得到的凸字体银行卡号图像进行训练得到的。

第五方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如第一方面的凸字体银行卡号图像的合成方法和/或第二方面的凸字体银行卡号图像的识别方法的步骤。

第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面的凸字体银行卡号图像的合成方法和/或第二方面的凸字体银行卡号图像的识别方法的步骤。

本申请实施例提供的一种凸字体银行卡号图像的合成方法、识别方法及装置,本申请利用非凸字体银行卡图像合成算法(Synthtext算法)合成非凸字体银行卡号图像,输入到训练好的环形生成式对抗网络模型(CycleGAN网络模型)当中,合成凸字体银行卡号图像。与现有技术中直接利用Synthtext算法合成凸字体银行卡号图像,纹理不清晰,识别错误多,或者,采用Pix2Pix等基于监督学习的生成对抗模型的方法进行合成模型,人工成本更高相比,本申请可以提高纹理清晰度,提高识别时的准确率,并降低成本。

进一步的,基于所述银行卡卡号的排列规则信息和所述银行卡卡号的字体,合成每个非凸字体银行卡图像中的前景图像,合成每个非凸字体银行卡图像中的前景图像,在将每个非凸字体银行卡图像中的所述前景图像和所述银行卡卡号背景图像进行合成,通过对前景图像和背景图像的像素矩阵叠加的方式合成非凸银行卡图像,进行无缝融合,有利于提高合成的非凸字体银行卡号图像的清晰度。

进一步的,将待识别的凸字体银行卡号图像输入训练好的卡号识别模型中,得到所述待识别的凸字体银行卡号图像中的银行卡号的识别结果,基于凸字体银行卡号图像的合成方法得到的凸字体银行卡号图像进行训练得到的卡号识别模型。与现有的技术相比,运用真实的银行卡进行训练相比,节省了大量的成本,并且有大量的凸字体银行卡号图像做为训练的基础,可以提升银行卡号的识别准确率。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种凸字体银行卡号图像的合成方法的流程图;

图2示出了本申请实施例所提供的另一种凸字体银行卡号图像的合成方法的流程图;

图3示出了本申请实施例所提供的一种凸字体银行卡号图像的合成装置的功能模块图之一;

图4示出了本申请实施例所提供的一种凸字体银行卡号图像的合成装置的功能模块图之二;

图5示出了图3中的第一合成模块的功能模块图;

图6示出了本申请实施例所提供的一种电子设备的结构示意图。

主要元件符号说明:

图中:300-凸字体银行卡号图像的合成装置;310-第一获取模块;320-第一合成模块;322-第一合成单元;324-第二合成单元;330-第二合成模块;340-训练模块;600-电子设备;610-处理器;620-存储器;630-总线。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。

为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“合成凸字体银行卡号图像”,给出以下实施方式,对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。

本申请实施例下述方法及装置可以应用于任何需要进行合成凸字体银行卡号图像场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的凸字体银行卡号图像的合成方法及装置的方案均在本申请保护范围内。

近年来随着光学字符识别(Optical Character Recognition,OCR)技术不断发展,通过OCR技术识别各类证件照片中的文字信息成为了可能。由于训练需要大量的图片,而真实图片的数量获取难度较高,且获取数量有限。

目前,合成图像样本的一种方法是使用Synthtext算法,但在合成复杂的自然场景文本图像(特别是带有复杂纹理的图像,如带有凸字体效果的银行卡图像)时,合成效果往往很差,导致识别模型准确率较低。此外,对于合成凸字体银行卡号图像可以使用Pix2Pix等基于监督学习的生成对抗模型的方法,虽然模拟出银行卡图像的立体效果及纹理效果非常好,但是合成训练集样本过程中需要制作真实银行卡号图像所对应的非凸字体图像,并且需要手工标注真实图像中的银行卡号,当训练集较大时,往往花费较多的时间进行人工标注,耗资较大。

针对上述问题,获取待合成的非凸字体银行卡号图像所需的资源文件,资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息和银行卡卡号的字体。基于资源文件和非凸字体银行卡图像合成算法合成非凸字体银行卡号图像,并输入到训练好的环形生成式对抗网络模型中,合成每个非凸字体银行卡号图像对应的凸字体银行卡号图像,采取上述方法得到的合成的凸字体银行卡号图像质量较高,因此,采用这种合成的凸字体银行卡号图像进行识别模型的训练,可以提高识别模型识别银行卡号的准确率。

为便于对本申请进行理解,下面结合具体实施例对本申请提供的技术方案进行详细说明。

图1为本申请实施例所提供的一种凸字体银行卡号图像的合成方法的流程图。如图1所示,本申请实施例提供的一种凸字体银行卡号图像的合成方法,包括以下步骤:

S110:获取待合成的非凸字体银行卡号图像所需的资源文件;所述资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体。

在具体实施中,首先要获取到待合成的非凸字体银行卡号图像所需要的资源文件,资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体。优选地,本申请是合成凸字体银行卡号图像,所以在获取资源文件时,获取的图像的尺寸一致,图像尺寸可以为400*32。

银行卡卡号背景图像是从真实的银行卡上剪切得来的背景图像。例如:可以截取某真实银行卡上银行卡号对应部分的背景作为本申请使用的背景图像。

银行卡卡号的排列规则信息是按照一定规则的带有相应语义信息的数字组合。真实银行卡号比如6228 3241 5461 8747 587,分为五组,前四组为每组四位数字,第五组为三位数字;或者如622814 9844795236417,分为两组,第一组为六位数字,第二组为十三位数字,其中,每一位数字为0-9中的任一数字。

银行卡卡号的字体运用的是真实银行卡号上的字体。通过采用和真实银行卡号接近的字体来合成非凸字体银行卡号图像,进而使最终合成的凸字体银行卡号图像与真实银行卡号的字体一致,可以提升对真实银行卡号的识别准确率。例如:可以选取Farrington7B作为合成非凸字体银行卡号图像的数字字体。

S120:基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像。

在具体实施中,利用非凸字体银行卡图像合成算法对资源文件进行处理,得到非凸字体银行卡号图像,可以使用Synthtext算法作为合成非凸字体银行卡号图像的算法。

进一步地,步骤S120中基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像,包括:

基于所述银行卡卡号的排列规则信息和所述银行卡卡号的字体,合成每个非凸字体银行卡图像中的前景图像;

将每个非凸字体银行卡图像中的所述前景图像和所述银行卡卡号背景图像进行合成,得到每个非凸字体银行卡号图像。

在具体实施中,在获得的资源文件后,将资源文件中的银行卡卡号的排列规则信息和银行卡卡号的字体合成每个非凸字体银行卡图像中的前景图像,前景图像即只包含生成的银行卡号的图像,在将每个非凸字体银行卡图像中的前景图像和银行卡卡号背景图像进行合成,得到每个非凸字体银行卡号图像。利用此种方式获得这样的图像,没有明显的伪影,提高了合成的非凸字体银行卡号图像的辨识度,使非凸字体银行卡号图像更清晰。

当下的运用Synthtext算法合成图片的技术中一般运用的是泊松融合,但是此方法在合成非凸字体银行卡号图像的过程中,会造成前景图像和背景图像产生伪影,导致合成的非凸字体银行卡号图像不清晰,合成的效果不好。所以本申请先将银行卡卡号的排列规则信息和银行卡卡号的字体合成非凸字体银行卡图像中的前景图像,利用前景图像的像素矩阵和背景图像像素矩阵进行叠加运算,最终得到非凸字体银行卡号图像,利用这样的方法合成的图像没有伪影,图像的效果优于利用泊松融合进行合成的图像的效果。

S130:基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成与每个非凸字体银行卡号图像对应的凸字体银行卡号图像。

在具体实施中,将合成的每个非凸字体银行卡号图像输入到环形生成式对抗网络模型中,再利用训练好的环形生成式对抗网络模型,合成每个非凸字体银行卡号图像对应的凸字体银行卡号图像。本申请中的环形生成式对抗网络模型可以为CycleGAN网络模型。

CycleGAN网络模型是两个镜像堆成的生成式对抗网络模型,构成了一个环形网络,一共存在两个生成器和两个判别器,分别为第一生成器、第二生成器、第一判别器以及第二判别器。CycleGAN网络模型的工作原理是将非凸字体效果的图像输入到第一生成器中,第一生成器将这些非凸字体效果图像生成凸字体效果的图像,并将生成的凸字体效果图像和一些真实的凸字体效果图像放在一起输入到第一判别器当中,第一判别器进行判断,将真实的凸字体效果图像和由第一生成器生成的凸字体效果图像分开,经过训练迭代后,第一生成器生成的图像越来越逼真,直到第一判别器无法判断哪个凸字体效果图像是第一生成器生成的,这个网络模型达到了一个动态的平衡过程,采取这样的方式,训练出的CycleGAN网络模型。

本申请实施例提供了一种凸字体银行卡号图像合成方法,该方法包括获取待合成的非凸字体银行卡号图像所需的资源文件,资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息和银行卡卡号的字体。基于资源文件和非凸字体银行卡图像合成算法合成非凸字体银行卡号图像,并输入到训练好的环形生成式对抗网络模型中,合成每个非凸字体银行卡号图像对应的凸字体银行卡号图像,采取上述方法得到的合成的凸字体银行卡号图像纹理质量较高,因此,采用这种合成的凸字体银行卡号图像进行识别模型的训练,可以提高识别模型识别银行卡号的准确率。

参见图2所示,本申请实施例提供了另一种凸字体银行卡号图像的合成方法的流程图,该方法包括以下步骤:

S210:环形生成式对抗网络模型包括第一生成器、第二生成器、第一判别器和第二判别器,通过非凸字体银行卡号图像样本和凸字体银行卡号图像样本对所述第一生成器、所述第二生成器、所述第一判别器以及所述第二判别器进行训练,当所述第一判别器的第一损失函数、所述第二判别器的第二损失函数、以及所述第一生成器和所述第二生成器的第三损失函数和所述第一生成器和所述第二生成器第四损失函数均满足对应的预设条件时,训练截止,得到训练好的环形生成式对抗网络模型;所述第一损失函数是所述第一判别器对所述第一生成器生成的凸字体银行卡号图像以及所述凸字体银行卡号图像样本进行判断使用的函数;所述第二损失函数时所述第二判别器对所述第二生成器生成的非凸字体银行卡号图像以及非凸字体银行卡号图像样本进行判断使用的函数。

在具体实施中,想要获得训练好的环形生成式对抗网络模型,需要基于非凸字体银行卡号图像样本和凸字体银行卡号图像样本进行训练,在实际的训练过程中,运用非凸字体银行卡号图像样本和凸字体银行卡号图像样本各一千张图左右进行训练就可以得到训练好的样本图像结果,本申请在训练环形生成式对抗网络模型中,进行少量的训练,即可得到字体效果很好的样本图像。可以根据拍到的图片或者网络上下载来获得凸字体银行卡号图像样本,本申请还可以根据Synthtext算法利用将图像前景和图像背景合成的方式来合成非凸字体银行卡号图像样本。获取凸字体银行卡号图像样本不需要与非凸字体银行卡号图像样本成对存在,所以只获取到的凸字体银行卡号图像样本覆盖真实的银行卡种类和样式就可以满足要求。

这里,环形生成式对抗网络模型在训练时,会存在将非凸字体银行卡号图像样本和凸字体银行卡号图像样本进行关联映射的训练步骤,确保输入的非凸字体银行卡号图像样本和凸字体银行卡号图像样本存在有意义的映射关系,即映射一些相同的特征。经过这个步骤之后,可以将获取到的凸字体银行卡号图像样本与非凸字体银行卡号图像样本映射为除了字体效果不同,其余的特征都大致相同的状态。在这样的训练之下,非凸字体银行卡号图像样本和凸字体银行卡号图像样本即使是非成对存在的,也可以用在环形生成式对抗网络模型的训练中。非凸字体银行卡号图像样本和凸字体银行卡号图像样本非成对存在的,即,不用考虑两种图像中的银行卡号是否相同等情况,只需要满足输入的两种图像的银行卡号一种为凸字体银行卡号,另一种为非凸字体银行卡号,就可以进行训练环形生成式对抗网络。其余的特征在第一生成器和第二生成器训练的过程中,使图像的特征相似。举例说明,这样在重复训练的过程中,由于输入的图像一定会有凸字体效果和非凸字体效果两种图像,所以第一判别器对字体效果的判断不断增强,这样的判断结果使生成器不断的生成凸字体效果更好的图像,重复这样的训练过程,就可以得到训练好的环形生成式对抗网络模型。对现有技术中需要成对存在的非凸字体银行卡号图像样本和凸字体银行卡号图像样本来讲,无需获取大量的与非凸字体银行卡号图像样本对应的凸字体银行卡号图像样本,降低了模型训练的成本。

优选地,在获取凸字体银行卡号样本时,只需要凸字体银行卡号图像样本能够覆盖真实的银行卡种类,进可能的获取多的种类,例如,各个银行推出的银行卡花纹,背景颜色,银行卡号的排列规则可能都不同,需要将尽可能多的银行卡类型获取到,以提升环形生成式对抗网络模型的准确性。

需要说明的是,环形生成式对抗网络模型包括第一生成器G、第二生成器F、第一判别器D

这里,将非凸字体效果的银行卡号图像定义为X类型图像,将凸字体效果的银行卡号图像定义为Y类型图像。第一生成器G将X类型图像生成为Y类型图像,第二生成器F将Y类型图像生成为X类型图像。

进一步地,步骤S210中还包括根据以下步骤训练所述第一判别器:

将所述非凸字体银行卡号图像样本输入第一生成器中,输出第一合成凸字体银行卡号图像样本;

基于所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本对第一判别器进行训练,直至所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本之间的第一损失小于第一预值,得到训练好的第一判别器;训练所述第一判别器的过程包括:

在具体实施中,训练第一判别器D

第一判别器D

其中,L

Y为凸字体银行卡号图像样本,(D

X为非凸字体银行卡号图像样本,G(X)为第一生成器G输出的第一合成凸字体银行卡号图像样本,(1-D

步骤S210中还包括根据以下步骤训练所述第二判别器:

将所述凸字体银行卡号图像样本输入第二生成器中,输出第一合成非凸字体银行卡号图像样本;

基于所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本对第二判别器进行训练,直至所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本之间的第二损失小于第二预值,得到训练好的第二判别器。

在具体实施中,训练第二判别器D

第二判别器D

其中,L

X为非凸字体银行卡号图像样本,(D

Y为凸字体银行卡号图像样本,F(Y)为第一合成非凸字体银行卡号图像样本,1-D

进一步地,步骤S210中包括根据以下步骤训练第一生成器G和第二生成器F:

将所述第一合成非凸字体银行卡号图像样本输入所述第一生成器中,输出第二合成凸字体银行卡号图像样本,以及将所述第一合成凸字体银行卡号图像样本输入所述第二生成器中,输出第二合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第二合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像样本和所述第二合成非凸字体银行卡号图像样本训练所述第二生成器,直至由第一生成器和第二生成器的第三损失函数确定的第三损失小于第三预值时,得到训练好的第一生成器和训练好的第二生成器;

在具体实施中,将第一合成非凸字体银行卡号图像输入第一生成器G中,第一生成器G输出第二合成凸字体银行卡号图像,以及将第一合成凸字体银行卡号图像输入第二生成器F中,第二生成器F输出第二合成非凸字体银行卡号图像,基于凸字体银行卡号图像样本和第二合成凸字体银行卡号图像训练第一生成器G,以及基于非凸字体银行卡号图像样本和第二合成非凸字体银行卡号图像训练第二生成器F,当由第一生成器和第二生成器的第三损失函数确定的第三损失小于第三预值时,得到训练好的第一生成器G和第二生成器F,第三预值表征环形生成式对抗网络模型当中第一生成器G和第二生成器F的训练精度。对第一生成器G和第二生成器F的训练过程是对获取的非凸字体银行卡号图像样本和凸字体银行卡号图像样本进行关联映射的过程,目的是使输入第一生成器G的非凸字体银行卡号图像样本与凸字体银行卡号图像样本更接近。

第一生成器G和第二生成器F中的第三损失函数公式为:

其中,L

F(G(X))为第二生成器F生成的第二合成非凸字体银行卡号图像,

G(F(Y))为第一生成器G生成的第二合成凸字体银行卡号图像,

进一步地,步骤S210还包括根据以下步骤训练训练所述第一生成器和所述第二生成器:

将所述凸字体银行卡号图像样本输入所述第一生成器中,输出第三合成凸字体银行卡号图像样本,以及将所述非凸字体银行卡号图像样本输入所述第二生成器中,输出第三合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第三合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像和所述第三合成非凸字体银行卡号图像样本训练第二生成器,直至由第一生成器和第二生成器的第四损失函数确定的第四损失小于第四预值时,得到训练好的第一生成器和训练好的第二生成器;

在具体实施中,将凸字体银行卡号图像样本输入第一生成器G中,第一生成器G输出第三合成凸字体银行卡号图像样本,以及将非凸字体银行卡号图像样本输入第二生成器F中,第二生成器F输出第三合成非凸字体银行卡号图像样本,基于凸字体银行卡号图像样本和第三合成凸字体银行卡号图像样本训练第一生成器G,以及基于非凸字体银行卡号图像和第三合成非凸字体银行卡号图像样本训练第二生成器F。当第一生成器和所述第二生成器的第四损失函数确定的第四损失小于第四预值时,得到训练好的第一生成器G和第二生成器F,第四预值表征环形生成式对抗网络模型中第一生成器G和第二生成器F的训练精度。

这里,当给第一生成器G输入凸字体银行卡号图像样本时,第一生成器G的输出应该生成更好的凸字体银行卡号图像样本,给第二生成器F输入非凸字体银行卡号图像样本时,第二生成器F的输出应该生成更好的非凸字体银行卡图像样本。这样做的目的是为了使第一生成器G能够做到同一映射,意思就是训练第一生成器G,做到不管输入第一生成器G的图像是凸字体效果的图像或者是非凸字体效果的图像,第一生成器G都生成对应的具有凸字体效果的图像。

第一生成器G和第二生成器F中的第四损失函数公式为:

其中,L

G(Y)为第一生成器G生成的第三合成凸字体银行卡号图像样本,

F(X)为第二生成器F生成的第三合成非凸字体银行卡号图像样本,

训练环形生成式对抗网络模型中的第一生成器G、第二生成器F、第一判别器D

环形生成式对抗网络模型的总体损失函数公式如下:L(G,F,D

需要说明的是,本申请中的环形生成式对抗网络模型想要对判别器训练的是判别器判断字体是否为凸字体效果的能力,所以整个训练过程中,判别器判断生成器生成的凸字体银行卡号图像字体效果没有达到标准时,生成器则继续生成凸字体效果更好的凸字体银行卡号图像,并输入到判别器中。在判别器与生成器进行对抗的过程中,判别器的判别能力越来越强,生成器生成的凸字体银行卡号图像凸字体效果越来越好,最后形成一种均衡的状态,达到这种状态的环形生成式对抗网络模型的总体损失值就满足第五预值,此时,环形生成式对抗网络模型合成的凸字体银行卡号图像就可以使用了。

本申请中的环形生成式对抗网络模型是为了生成凸字体银行卡号图像而进行训练,并最终应用在实际的工作当中。本申请中获取的所有图像的尺寸是一致的,包括:银行卡卡号背景图像,凸字体银行卡号图像样本。还包括合成的每个非凸字体银行卡图像中的前景图像,合成的非凸字体银行卡号图像样本等,图像尺寸均为400*32。所以在训练环形生成式对抗网络模型之前,根据获取的图像的尺寸修改环形生成式对抗网络模型的网络参数,生成训练好的环形生成式对抗网络模型。训练好的环形生成式对抗网络模型在合成凸字体银行卡号图像时的图像质量更高,对比于不修改网络参数,合成的图像有更好的清晰度和辨识度。还可以在训练环形生成式对抗网络模型之后,根据要合成的图像尺寸修改环形生成式对抗网络模型的网络参数,这样的修改更加灵活。

一示例中,更改了本申请的环形生成式对抗网络模型的网络结构,原有的判别器对于判断正方形图像的效果更好,而在更改了网络结构之后,不仅增大了特征图的尺寸,同时也加强了判别器的判断效果,使环形生成式对抗网络模型在训练的过程中的损失函数更容易收敛,模型生成的凸字体银行卡号图像的质量更高,相比之下,更改之后的环形生成式对抗网络模型生成的凸字体银行卡号图像纹理细节更好。

S220:获取待合成的非凸字体银行卡号图像所需的资源文件;所述资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体。

S230:基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像。

S240:基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成与每个非凸字体银行卡号图像对应的凸字体银行卡号图像。

其中,S220至S240的描述可以参照S110至S130的描述,并且能达到相同的技术效果,对此不做赘述。

基于同一申请构思,本申请实施例中还提供了与上述实施例提供的凸字体银行卡号图像的合成方法对应的凸字体银行卡号图像的合成装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例的凸字体银行卡号图像的合成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

图3为本申请实施例提供的一种凸字体银行卡号图像的合成装置300的功能模块图之一,图4为本申请实施例提供的一种凸字体银行卡号图像的合成装置300的功能模块图之二,图5示出了图3中的第一合成模块320的功能模块。

如图3所示,凸字体银行卡号图像的合成装置300包括:

第一获取模块310,用于获取待合成的非凸字体银行卡号图像所需的资源文件;所述资源文件包括银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体;

第一合成模块320,用于基于所述银行卡卡号背景图像、银行卡卡号的排列规则信息、银行卡卡号的字体以及非凸字体银行卡图像合成算法,合成多个非凸字体银行卡号图像;

第二合成模块330,用于基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成与每个非凸字体银行卡号图像对应的凸字体银行卡号图像。

如图4所示,凸字体银行卡号图像的合成装置300还包括:

训练模块340,用于通过非凸字体银行卡号图像样本和凸字体银行卡号图像样本对所述第一生成器、所述第二生成器、所述第一判别器以及所述第二判别器进行训练,当所述第一判别器的第一损失函数、所述第二判别器的第二损失函数、所述第一生成器和所述第二生成器的第三损失函数和所述第一生成器和所述第二生成器第四损失函数均满足对应的预设条件时,训练截止,得到训练好的环形生成式对抗网络模型;

所述第一损失函数是所述第一判别器对所述第一生成器生成的凸字体银行卡号图像以及所述凸字体银行卡号图像样本进行判断使用的函数;

所述第二损失函数是所述第二判别器对所述第二生成器生成的非凸字体银行卡号图像以及非凸字体银行卡号图像样本进行判断使用的函数。

如图4所示,训练模块340,用于根据以下步骤训练所述第一判别器:

将所述非凸字体银行卡号图像样本输入第一生成器中,输出第一合成凸字体银行卡号图像样本;

基于所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本对第一判别器进行训练,直至所述第一合成凸字体银行卡号图像样本和所述凸字体银行卡号图像样本之间的第一损失小于第一预值,得到训练好的第一判别器;

训练模块340,用于根据以下步骤训练所述第二判别器:

将所述凸字体银行卡号图像样本输入第二生成器中,输出第一合成非凸字体银行卡号图像样本;

基于所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本对第二判别器进行训练,直至所述第一合成非凸字体银行卡号图像样本和所述非凸字体银行卡号图像样本之间的第二损失小于第二预值,得到训练好的第二判别器。

如图4所示,训练模块340,用于根据以下步骤训练第一生成器和第二生成器:

将所述第一合成非凸字体银行卡号图像样本输入所述第一生成器中,输出第二合成凸字体银行卡号图像样本,以及将所述第一合成凸字体银行卡号图像样本输入所述第二生成器中,输出第二合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第二合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像样本和所述第二合成非凸字体银行卡号图像样本训练所述第二生成器,直至由第一生成器和第二生成器的第三损失函数确定的第三损失小于第三预值时,得到训练好的第一生成器和训练好的第二生成器;

如图4所示,训练模块340,具体用于根据以下步骤训练第一生成器和第二生成器:

将所述凸字体银行卡号图像样本输入所述第一生成器中,输出第三合成凸字体银行卡号图像样本,以及将所述非凸字体银行卡号图像样本输入所述第二生成器中,输出第三合成非凸字体银行卡号图像样本;

基于所述凸字体银行卡号图像样本和所述第三合成凸字体银行卡号图像样本训练所述第一生成器,以及基于所述非凸字体银行卡号图像样本和所述第三合成非凸字体银行卡号图像样本训练第二生成器,直至由第一生成器和第二生成器的第四损失函数确定的第四损失小于第四预值时,得到训练好的第一生成器和训练好的第二生成器。

如图5所示,第一合成模块320包括:

第一合成单元322,用于基于所述银行卡卡号的排列规则信息和所述银行卡卡号的字体,合成每个非凸字体银行卡图像中的前景图像;

第二合成单元324,用于将每个非凸字体银行卡图像中的所述前景图像和所述银行卡卡号背景图像进行合成,得到每个非凸字体银行卡号图像。

本申请实施例所提供的一种凸字体银行卡号图像的识别方法,包括以下步骤:

将待识别的凸字体银行卡号图像输入训练好的卡号识别模型中,得到所述待识别的凸字体银行卡号图像中的银行卡号的识别结果;其中,所述卡号识别模型是基于凸字体银行卡号图像的合成方法得到的凸字体银行卡号图像进行训练得到的。

在具体实施中,基于每个非凸字体银行卡号图像和训练好的环形生成式对抗网络模型,合成了凸字体银行卡号图像。将合成的凸字体银行卡号图利用在卡号识别模型当中,用于训练卡号识别模型。训练卡号识别模型的过程中使用的是基于凸字体银行卡号图像的合成方法合成的凸字体银行卡号图像。将卡号识别模型训练完成之后,用待识别的凸字体银行卡号图像在训练好的卡号识别模型中进行识别,并得到识别结果。若训练好的卡号识别模型可以识别出待识别的凸字体银行卡号图像是真是假,那么证明本申请中的凸字体银行卡号合成方法所合成的凸字体银行卡号图像达到了目标结果,可以投入使用当中。

基于同一申请构思,本申请实施例中还提供了与上述实施例提供的凸字体银行卡号图像的合成方法对应的凸字体银行卡号图像的合成装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例的凸字体银行卡号图像的合成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

本申请实施例所提供的一种凸字体银行卡号图像的识别装置包括:

识别模块,用于将待识别的凸字体银行卡号图像输入训练好的卡号识别模型中,得到所述待识别的凸字体银行卡号图像中的银行卡号的识别结果;其中,所述卡号识别模型是基于凸字体银行卡号图像的合成装置得到的凸字体银行卡号图像进行训练得到的。

基于同一申请构思,参见图6所示,本申请实施例提供的一种电子设备600的结构示意图,包括:处理器610、存储器620和总线630,所述存储器620存储有所述处理器610可执行的机器可读指令,当电子设备600运行时,所述处理器610与所述存储器620之间通过所述总线630进行通信,所述机器可读指令被所述处理器610运行时可以执行如上述图1、图2所示方法实施例中的凸字体银行卡号图像合成方法的步骤和/或上述实施例中的凸字体银行卡号图像识别方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

基于同一申请构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时可以执行如上述图1、图2所示方法实施例中的凸字体银行卡号图像合成方法的步骤,和/或上述实施例中的凸字体银行卡号图像识别方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应所述理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种凸字体银行卡号图像的合成方法、识别方法及装置
  • 一种基于图像处理的字体识别方法
技术分类

06120112552472