手写样本生成方法、装置、计算机设备及存储介质与流程

文档序号:17150259发布日期:2019-03-19 23:21阅读:125来源:国知局
手写样本生成方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种手写样本生成方法、装置、计算机设备及存储介质。



背景技术:

在对手写文本识别的研究中,需要准备大量的手写样本以支撑手写文本识别模型的模型训练。

但是,目前的手写样本往往以人工收集为主,人工收集的方式容易造成收集到的手写样本种类单一,样本类型不够丰富,或者需要花费大量的时间和精力收集各种不同类型或不同应用场景的手写样本,同时,对收集到的手写样本还需要花费大量的时间进行错误清洗,造成人工收集手写样本的工作量大,导致手写样本的收集效率低,无法很好的支撑手写文本识别模型的模型训练,造成模型训练困难,进而影响到模型的识别准确率。



技术实现要素:

本发明实施例提供一种手写样本生成方法、装置、计算机设备及存储介质,以解决目前手写样本的收集种类无序,收集成本高且效率低,影响手写文本识别模型的识别准确率的问题。

一种手写样本生成方法,包括:

采集预设场景的图片,并将采集到的所述图片保存在预设的背景图片库中;

按照预设的选取方式,从所述预设的背景图片库中选取背景图片,并获取所述背景图片的尺寸;

从预设的文本语料库中获取语料文本,并设置所述语料文本的手写字体属性;

按照所述手写字体属性,将所述语料文本绘制在预设的画布上,得到文本图片,并获取所述文本图片的尺寸;

根据所述背景图片的尺寸和所述文本图片的尺寸之间的偏差,对所述背景图片进行缩放处理,得到与所述文本图片的尺寸相同的目标图片;

对所述文本图片和所述目标图片中每个相同位置的像素点进行像素值比较,根据比较结果确定该相同位置的像素点的目标像素值,并使用每个相同位置的像素点的目标像素值对所述文本图片和所述目标图片进行合成处理,得到合成后的所述手写样本图片;

将所述手写样本图片和所述语料文本作为手写样本,保存到预设的手写样本数据集中。

一种手写样本生成装置,包括:

采集模块,用于采集预设场景的图片,并将采集到的所述图片保存在预设的背景图片库中;

选取模块,用于按照预设的选取方式,从所述预设的背景图片库中选取背景图片,并获取所述背景图片的尺寸;

设置模块,用于从预设的文本语料库中获取语料文本,并设置所述语料文本的手写字体属性;

绘制模块,用于按照所述手写字体属性,将所述语料文本绘制在预设的画布上,得到文本图片,并获取所述文本图片的尺寸;

缩放模块,用于根据所述背景图片的尺寸和所述文本图片的尺寸之间的偏差,对所述背景图片进行缩放处理,得到与所述文本图片的尺寸相同的目标图片;

合成模块,用于对所述文本图片和所述目标图片中每个相同位置的像素点进行像素值比较,根据比较结果确定该相同位置的像素点的目标像素值,并使用每个相同位置的像素点的目标像素值对所述文本图片和所述目标图片进行合成处理,得到合成后的所述手写样本图片;

保存模块,用于将所述手写样本图片和所述语料文本作为手写样本,保存到预设的手写样本数据集中。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述手写样本生成方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述手写样本生成方法的步骤。

上述手写样本生成方法、装置、计算机设备及存储介质中,一方面,通过采集预设场景的图片得到背景图片库,从背景图片库中选取背景图片,并从预设的文本语料库中获取语料文本,按照设置的手写字体属性将语料文本绘制在画布上得到文本图片,然后通过将背景图片和文本图片进行合成处理的方式得到手写样本图片,实现了针对特定场景自动生成与场景对应的手写样本图片,不需要人工进行手写样本的收集,减少了手写样本的收集工作,提高了手写样本数据集的收集效率;另一方面,通过自动生成不同场景的包含手写文本的手写样本图片,实现对手写样本按场景分类收集,在丰富手写数据样本集的样本数量的同时,能够针对不同场景的手写文本识别模型的训练需求,建立合适的手写样本数据集,为后续针对手写文本识别模型的训练和调优建立基础,从而有针对性的提高手写文本识别模型的识别准确率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中手写样本生成方法的一流程图;

图2是本发明一实施例中手写样本生成方法中步骤s5的一流程图;

图3是本发明一实施例中手写样本生成方法中步骤s51的一流程图;

图4是本发明一实施例中手写样本生成方法中步骤s52的一流程图;

图5是本发明一实施例中手写样本生成方法中背景图片的虚拟位置点及其周围相邻像素点的一示意图;

图6是本发明一实施例中手写样本生成方法中步骤s6的一示意图;

图7是本发明一实施例中手写样本生成方法中对手写样本进行扩充处理的一流程图;

图8是本发明一实施例中手写样本生成装置的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

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

本申请提供的手写样本生成方法,可应用在服务端,服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。

在一实施例中,如图1所示,提供一种手写样本生成方法,详述如下:

s1:采集预设场景的图片,并将采集到的图片保存在预设的背景图片库中。

在本实施例中,预设场景可以根据实际应用的需要进行设置,例如,海报签名、田字格写字等,不同预设场景的图片内容不同,比如,当预设场景为海报签名时,其图片内容可以包括各种宣传海报,当预设场景为田字格写字时,其图片内容可以包括各种不同规格的田字格。

预设场景的图片的采集渠道包括但不限于:从预设的图片资料库中获取,通过爬取工具从互联网下载等。

具体地,服务端通过预先设置的采集渠道,采集预设场景的图片,并将采集到的图片作为背景图片保存在预设的背景图片库中。

例如,若预设场景为海报签名,采集渠道为通过爬取工具从互联网下载,则服务端从互联网爬取宣传海报图片,并将爬取到的宣传海报图片保存到背景图片库中。

进一步地,在预设的背景图片库中,将图片按照场景分类保存,每个场景对应唯一的场景标识信息,将图片与其所属的场景的场景标识信息对应保存在背景图片库中。

s2:按照预设的选取方式,从预设的背景图片库中选取背景图片,并获取背景图片的尺寸。

在本实施例中,预设的选取方式包括对场景的选取设置,即在预设的选取方式中设置背景图片所属的目标场景,预设的选取方式还可以包括对图片的选取设置,例如采用随机选择方式,或者根据手写文本识别模型训练的场景需求设置特定的选择条件,比如选择特定颜色或者具有特定图案特征的图片等。

具体的,服务端根据预设的选取方式中对场景的选取设置,从背景图片库中选取目标场景的场景标识信息对应的图片,然后再根据预设的选取方式中对图片的选取设置,从选出的图片中选取至少一个背景图片,例如,若对图片的选取设置为采用随机选择方式,则从选出的多个图片中随机选取一个或者多个背景图片,并获取每个背景图片的尺寸。

s3:从预设的文本语料库中获取语料文本,并设置该语料文本的手写字体属性。

在本实施例中,预设的文本语料库为预先设置的用于存放语料文本的数据库,进一步地,在文本语料库中可以按照预设的分类方式对语料文本进行分类保存,即将语料文本按照所属的类别,分类存放在文本语料库中。

其中,语料文本可以是一个字、一句话、一个词,或者一段话等,预设的分类方式可以是按照领域进行分类,例如,化学、文学等不同领域,还可以是按照文本属性进行分类,例如,新闻、小说等不同属性,具体的分类方式可以根据实际应用的需要进行设置。

具体地,服务端根据手写文本识别模型训练所需的文本类别,从预设的文本语料库中获取该文本类别中的至少一个语料文本,并设置语料文本的手写字体属性。

其中,手写字体属性包括手写字体类型、字体颜色、字体深度,以及字体尺寸等。服务端对语料文本的手写字体属性的设置方式可以是分别随机选择一定数量的手写字体类型、字体颜色、字体深度和字体尺寸,然后进行组合,也可以是循环选择每种字体类型、字体颜色、字体深度和字体尺寸,然后进行组合,还可以是通过人机交互的方式由用户对手写字体属性进行自定义设置。可以理解的,一个语料文本可以对应一个手写字体属性,也可以对应多个不同的手写字体属性。

s4:按照语料文本的手写字体属性,将该语料文本绘制在预设的画布上,得到文本图片,并获取该文本图片的尺寸。

具体地,服务端按照一张画布绘制一个语料文本的方式,将语料文本按照步骤s3确定的手写字体属性,绘制在预设的画布上,得到文本图片,并将画布的尺寸作为该文本图片的尺寸。

需要说明的是,预设的画布包括预设尺寸和预设颜色的画布,服务端可以直接使用预设的画布功能组件绘制指定尺寸和颜色的画布,然后使用预设的文本绘制功能组件在画布中按照手写字体属性绘制语料文本。

例如,可以使用gd2函数库中的imagecreate()函数创建画布,imagecolorallocate()函数设置画布的颜色,以及gdimagestringft()函数进行语料文本绘制。

进一步地,在画布上绘制语料文本时,还可以设置语料文本在画布上的位置。例如,将语料文本的位置坐标作为参数传入gdimagestringft()函数中,即可在画布的指定位置绘制语料文本。

优选地,将语料文本绘制在画布的中心位置。

s5:根据背景图片的尺寸和文本图片的尺寸之间的偏差,对背景图片进行缩放处理,得到与文本图片的尺寸相同的目标图片。

具体地,以文本图片的尺寸为基准,比较背景图片和文本图片之间的尺寸偏差,确定对背景图片进行缩小处理或者放大处理,将背景图片的尺寸通过缩放处理缩放到与文本图片具有相同的尺寸,并将缩放处理后的背景图片作为目标图片。

进一步的,当通过比较背景图片和文本图片之间的尺寸偏差,确定需要对背景图片进行缩小处理时,可以采用局部均值算法或者等间隔采样算法对背景图片进行缩小处理;当过比较背景图片和文本图片之间的尺寸偏差,确定需要对背景图片进行放大处理时,可以采用双线性差值算法或者最邻近插值算法对背景图片进行放大处理。

s6:对文本图片和目标图片中每个相同位置的像素点进行像素值比较,根据比较结果确定该相同位置的像素点的目标像素值,并使用每个相同位置的像素点的目标像素值对文本图片和目标图片进行合成处理,得到合成后的手写样本图片。

具体地,对具有相同尺寸的文本图片和目标图片进行每个相同位置的像素点遍历,比较每个相同位置的像素点的像素值,即比较每个相同位置的像素点在文本图片中的像素值和在目标图片中的像素值之间的大小,并根据比较结果确定该相同位置的像素点的目标像素值。

遍历完成后,即得到每个相同位置的像素点的目标像素值,使用该目标像素值对文本图片和目标图片进行合成处理,将每个相同位置的像素点的目标像素值作为合成后的手写样本图片中该相同位置的像素点的像素值,完成对文本图片和目标图片的合成处理。

需要说明的是,如果文本图片或目标图片为彩色图片,则可以对像素点的rgb三个通道分别进行分量值比较。

s7:将手写样本图片和语料文本作为手写样本,保存到预设的手写样本数据集中。

具体地,将步骤s6得到的手写样本图片和该手写样本图片中对应的语料文本作为一个手写样本,即将手写样本图片和语料文本对应保存到预设的手写样本数据集中。

进一步地,在预设的手写样本数据集中按照预设场景的场景标识信息,分类保存每个预设场景的手写样本。

本实施例中,一方面,通过采集预设场景的图片得到背景图片库,从背景图片库中选取背景图片,并从预设的文本语料库中获取语料文本,按照设置的手写字体属性将语料文本绘制在画布上得到文本图片,然后通过将背景图片和文本图片进行合成处理的方式得到手写样本图片,实现了针对特定场景自动生成与场景对应的手写样本图片,不需要人工进行手写样本的收集,减少了手写样本的收集工作,提高了手写样本数据集的收集效率;另一方面,通过自动生成不同场景的包含手写文本的手写样本图片,实现对手写样本按场景分类收集,在丰富手写数据样本集的样本数量的同时,能够针对不同场景的手写文本识别模型的训练需求,建立合适的手写样本数据集,为后续针对手写文本识别模型的训练和调优建立基础,从而有针对性的提高手写文本识别模型的识别准确率。

在一实施例中,如图2所示,步骤s5中,根据背景图片的尺寸和文本图片的尺寸之间的偏差,对背景图片进行缩放处理,得到与文本图片的尺寸相同的目标图片,具体包括如下步骤:

s51:若背景图片的尺寸大于文本图片的尺寸,则采用局部均值算法对背景图片进行缩小处理,得到与文本图片的尺寸相同的目标图片。

具体地,比较背景图片的尺寸和文本图片的尺寸,若背景图片的尺寸大于文本图片的尺寸,则需要对背景图片进行缩小处理以使得缩小处理后的背景图片能够达到与文本图片相同的尺寸。

在对背景图片进行缩小处理时,可以采用局部均值算法计算缩小处理后的背景图片中每个像素点的像素值,并将缩小处理后的背景图片作为目标图片。

s52:若背景图片的尺寸小于文本图片的尺寸,则采用双线性差值算法对背景图片进行放大处理,得到与文本图片的尺寸相同的目标图片。

具体地,比较背景图片的尺寸和文本图片的尺寸,若背景图片的尺寸小于文本图片的尺寸,则需要对背景图片进行放大处理以使得放大处理后的背景图片能够达到与文本图片相同的尺寸。

在对背景图片进行放大处理时,可以采用双线性差值算法计算放大处理后的背景图片中每个像素点的像素值,并将放大处理后的背景图片作为目标图片。

s53:若背景图片的尺寸等于文本图片的尺寸,则将背景图片作为目标图片。

具体地,比较背景图片的尺寸和文本图片的尺寸,若背景图片的尺寸等于文本图片的尺寸,则不需要对背景图片进行缩小处理或者放大处理,直接将背景图片作为目标图片。

本实施例中,通过比较背景图片的尺寸和文本图片的尺寸,若背景图片的尺寸大于文本图片的尺寸,则采用局部均值算法对背景图片进行缩小处理,若背景图片的尺寸小于文本图片的尺寸,则采用双线性差值算法对背景图片进行放大处理,并将缩小处理或者放大处理后的背景图片确定为与文本图片的尺寸相同的目标图片,若背景图片的尺寸等于文本图片的尺寸,则直接将背景图片作为目标图片,实现了背景图片和文本图片的尺寸统一,为后续对背景图片和文本图片的合成提供了基础,使得在相同尺寸的基础上能够通过简单的合成算法即可完成背景图片和文本图片的合成处理,有效提高处理效率。

在一实施例中,如图3所示,在步骤s51中,采用局部均值算法对背景图片进行缩小处理,得到与文本图片的尺寸相同的目标图片,具体包括如下步骤:

s511:根据背景图片的尺寸和文本图片的尺寸,确定目标图片中每个目标像素点在背景图片中的采样区间。

具体地,若背景图片的尺寸为w*h,其中,w为背景图片的长,h为背景图片的宽,w和h均指像素点数量,假设文本图片的尺寸即目标图片的尺寸为(k1*w)*(k2*h),其中,0<k1<1,0<k2<1,则目标图片中每个目标像素点在背景图片中的采样区间大小为a*b,其中,a=1/k1,b=1/k2。

s512:获取目标图片中每个目标像素点在背景图片中的采样区间包含的采样像素点和每个采样像素点的采样像素值。

具体地,根据步骤s511确定目标图片中每个目标像素点在背景图片中的采样区间,获取背景图片中该采样区间中包含的像素点,作为采样像素点,并将背景图片中采样像素点的像素值作为该采样像素点的采样像素值。

若背景图片的尺寸为w*h,目标图片的尺寸为(k1*w)*(k2*h),目标图片中每个目标像素点在背景图片中的采样区间大小为a*b,其中,a=1/k1,b=1/k2,0<k1<1,0<k2<1,背景图片中每个像素点(i,j)的像素值为f(i,j),其中,(i,j)为背景图片中每个像素点的位置坐标,i∈[1,w],j∈[1,h],目标图片每个目标像素点(x,y)的像素值为g(x,y),其中,(x,y)为目标图片中每个目标像素点的位置坐标,x∈[1,m],y∈[1,n],并且,m=w*k1,n=h*k2,则目标图片中每个目标像素点(x,y)在背景图片中的采样区间包含的采样像素点矩阵用g(x,y)表示为:

其中,该采样像素点矩阵g(x,y)中的元素为采样像素点的采样像素值。

s513:计算目标像素点在背景图片中的采样区间中每个采样像素点的采样像素值的平均值,并将该平均值作为目标图片中目标像素点的像素值。

具体地,根据步骤s512确定的目标图片中每个目标像素点(x,y)对应的采样像素点矩阵g(x,y),计算g(x,y)中每个元素的平均值,将该平均值作为目标像素点(x,y)的像素值g(x,y)。

本实施例中,根据背景图片的尺寸和文本图片的尺寸,确定目标图片中每个目标像素点在背景图片中的采样区间,并在背景图片中获取该采样区间包含的采样像素点和每个采样像素点的采样像素值,计算该采样区间中每个采样像素点的采样像素值的平均值,将该平均值作为目标像素点在目标图片中的像素值,实现了通过局部均值算法对背景图片的缩小处理,使得缩小后的背景图片能最大限度的保持原背景图片中的像素信息。

在一实施例中,如图4所示,在步骤s52中,采用双线性差值算法对背景图片进行放大处理,得到与文本图片的尺寸相同的目标图片,具体包括如下步骤:

s521:根据背景图片的尺寸和文本图片的尺寸,确定背景图片分别在水平方向和垂直方向的水平放大比例和垂直放大比例。

具体地,若背景图片的尺寸为w*h,文本图片的尺寸即目标图片的尺寸为m*n,其中,w为背景图片的长,h为背景图片的宽,m为背景图片的长,n为背景图片的宽,w、h、m和n均指像素点数量,则背景图片在水平方向的水平放大比例为a=m/w,背景图片在垂直方向的垂直放大比例为b=n/h。

s522:根据水平放大比例和垂直放大比例,确定目标图片中每个目标像素点在背景图片中对应的原始像素点集合。

具体地,根据步骤s521得到的水平放大比例a和垂直放大比例b,确定目标图片中每个目标像素点(x,y)在背景图片中对应的虚拟点位置p的坐标为(x*a,y*b),将背景图片中虚拟点位置p周围相邻的4个像素点构成原始像素点集合。

如图5所示,虚拟点位置p周围相邻的4个像素点的坐标分别为(x0,y0)、(x1,y0)、(x0,y1)和(x1,y1),其中,x1-x0=1,y1-y0=1。

s523:对目标像素点对应的原始像素点集合中每个像素点的像素值进行双线性差值计算,得到目标图片中目标像素点的像素值。

具体地,对步骤s522得到的原始像素点集合中的每个像素点的像素值进行双线性差值计算,以图5所示的虚拟点位置p周围相邻的4个像素点构成原始像素点集合为例,可以按照如下公式计算目标像素点(x,y)的像素值g(x,y):

g(x,y)=v*[u*f(x1,y1)+(1-u)*f(x0,y1)]+(1-v)*[u*f(x1,y0)+(1-u)*f(x0,y0)]

其中,u为x*a的小数部分,v为y*b的小数部分,f(x1,y1)为背景图片中像素点(x1,y1)的像素值,f(x0,y1)为背景图片中像素点(x0,y1)的像素值,f(x1,y0)为背景图片中像素点(x1,y0)的像素值,f(x0,y0)为背景图片中像素点(x0,y0)的像素值。

本实施例中,根据背景图片的尺寸和文本图片的尺寸,确定背景图片分别在水平方向和垂直方向的水平放大比例和垂直放大比例,根据水平放大比例和垂直放大比例,确定目标图片中每个目标像素点在背景图片中对应的原始像素点集合,对该原始像素点集合中每个像素点的像素值进行双线性差值计算,得到目标图片中目标像素点的像素值,实现了通过双线性差值算法对背景图片进行放大处理,充分利用了背景图片中虚拟点四周的四个真实存在的像素值来共同决定目标图片中的一个像素值,在保持较小的计算量的同时能够达到较好的放大效果,不会出现像素值不连续的情况,从而提高放大后的目标图片的图像质量。

在一实施例中,如图6所示,在步骤s6中,对文本图片和目标图片中每个相同位置的像素点进行像素值比较,根据比较结果确定该相同位置的像素点的目标像素值,并使用每个相同位置的像素点的目标像素值对文本图片和目标图片进行合成处理,得到合成后的手写样本图片,具体包括如下步骤:

s61:对文本图片和目标图片每个相同位置的像素点进行遍历,获取每个相同位置的像素点在文本图片中的像素值和在目标图片中的像素值。

具体地,文本图片和目标图片具有相同尺寸,文本图片的每个像素点和目标图片中的每个像素点一一对应,一一对应的文本图片的像素点和目标图片的像素点具有相同位置。

对文本图片和目标图片每个相同位置的像素点进行遍历,针对每个相同位置,获取文本图片中该相同位置的像素点的像素值,以及目标图片中该相同位置的像素点的像素值。

s62:若相同位置的像素点在文本图片中的像素值小于该相同位置的像素点在目标图片中的像素值,则将该相同位置的像素点在文本图片中的像素值确定为该相同位置的像素点的目标像素值。

具体地,假设文本图片中相同位置的像素点的像素值为a,目标图片中该相同位置的像素点的像素值为b,若a小于b,则将该相同位置的像素点的目标像素值设置为a。

s63:若相同位置的像素点在文本图片中的像素值大于或等于该相同位置的像素点在目标图片中的像素值,则将该相同位置的像素点在目标图片中的像素值确定为该相同位置的像素点的目标像素值。

具体地,假设文本图片中相同位置的像素点的像素值为a,目标图片中该相同位置的像素点的像素值为b,若a大于或者等于b,则将该相同位置的像素点的目标像素值设置为b。

s64:对文本图片和目标图片进行合成处理,将文本图片和目标图片每个相同位置的像素点的目标像素值作为合成后的手写样本图片中该相同位置的像素点的像素值,得到合成后的所述手写样本图片。

具体地,在对文本图片和目标图片每个相同位置的像素点的遍历完成后,即得到每个相同位置的像素点的目标像素值,使用该该相同位置的目标像素值对文本图片和目标图片进行合成处理,将该相同位置的目标像素值作为合成后的手写样本图片中该相同位置的像素点的像素值,完成对文本图片和目标图片的合成处理,得到合成后的手写样本图片。

本实施例中,通过对文本图片和目标图片每个相同位置的像素点进行遍历,比较该相同位置的像素点在文本图片的像素值和在目标图片中的像素值的大小,并将较小的像素值作为合成后的手写样本图片中该相同位置的像素点的像素值,实现了对文本图片和目标图片的快速合成,从而提高手写样本图片的生成效率。

在一实施例中,如图7所示,在步骤s7之后,该手写样本生成方法还包括对手写样本的扩充处理,详述如下:

s81:获取手写样本图片中每个像素点的像素值,并将目标图片中每个像素点的像素值的平均值作为背景像素值。

具体地,对手写样本图片进行像素点遍历,获取每个像素点的像素值。同时,计算目标图片中每个像素点的像素值的平均值,并将该平均值作为背景像素值。

s82:根据手写样本图片中语料文本的手写字体属性,确定语料文本的像素值范围,并将获取的像素值满足该像素值范围的像素点确定为待处理像素点。

具体地,根据手写样本图片中语料文本的手写字体属性,获取该语料文本的字体颜色和字体深度,并根据字体颜色和字体深度确定语料文本在手写样本图片中的像素值范围,并根据步骤s81获取到的每个像素点的像素值,将像素值满足该像素值范围的像素点作为待处理像素点。

s83:按照如下公式确定每个待处理像素点对应的修正像素点:

x'=xcosθ+ysinθ

y'=-xsinθ+ycosθ

其中,θ为预设的旋转角度,(x,y)为待处理像素点在手写样本图片中的位置坐标,(x',y')为待处理像素点(x,y)在手写样本图片中对应的修正像素点的位置坐标。

具体地,预设的旋转角度θ,可以随机生成,也可以根据应用的需要进行预先设置,此处不做限制。

s84:将手写样本图片中每个修正像素点的像素值替换为该修正像素点对应的待处理像素点的像素值,将该修正像素点对应的待处理像素点的像素值设置为背景像素值,并将对每个待处理像素点和每个修正像素点进行像素值更新后得到手写样本图片作为更新图片。

具体地,根据步骤s83得到的手写样本图片中每个待处理像素点(x,y)对应的修正像素点(x',y'),将修正像素点(x',y')的像素值修改为待处理像素点(x,y)的像素值,同时,将待处理像素点(x,y)的像素值修改为步骤s81得到的背景像素值,并将调整后的手写样本图片作为更新图片。

例如,待处理像素点(x,y)的像素值为120,背景像素值为50,则将待处理像素点(x,y)的像素值120赋值给修正像素点(x',y')的像素值,使得修正像素点(x',y')的像素值被替换为120,同时,将背景像素值50赋值给待处理像素点(x,y)的像素值,使得待处理像素点(x,y)的像素值被设置为50。

s85:将更新图片和语料文本作为新的手写样本,保存到手写样本数据集中。

具体地,服务端将步骤s84得到的手写样本图片对应的更新图片和该手写样本图片对应的语料文本作为新的手写样本,即将更新图片和语料文本对应保存到手写样本数据集中。

本实施例中,通过获取手写样本图片中每个像素点的像素值,根据手写样本图片中语料文本的手写字体属性,确定语料文本的像素值范围,并将像素值满足该像素值范围的像素点确定为待处理像素点,然后根据预设的旋转角度计算每个待处理像素点对应的修正像素点的位置坐标,并将修正像素点的像素值替换为待处理像素点的像素值,同时将该修正像素点对应的待处理像素点的像素值修改为背景像素值,得到更新图片,从而实现了采用随机角度倾斜的方式对手写样本图片中的语料文本进行角度调整,完成对手写样本的快速扩充,从而进一步提高手写样本的收集效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种手写样本生成装置,该手写样本生成装置与上述实施例中手写样本生成方法一一对应。如图8所示,该手写样本生成装置包括采集模块81、选取模块82、设置模块83、绘制模块84、缩放模块85、合成模块86和保存模块87。各功能模块详细说明如下:

采集模块81,用于采集预设场景的图片,并将采集到的图片保存在预设的背景图片库中;

选取模块82,用于按照预设的选取方式,从预设的背景图片库中选取背景图片,并获取背景图片的尺寸;

设置模块83,用于从预设的文本语料库中获取语料文本,并设置语料文本的手写字体属性;

绘制模块84,用于按照语料文本的手写字体属性,将语料文本绘制在预设的画布上,得到文本图片,并获取文本图片的尺寸;

缩放模块85,用于根据背景图片的尺寸和文本图片的尺寸之间的偏差,对背景图片进行缩放处理,得到与文本图片的尺寸相同的目标图片;

合成模块86,用于对文本图片和目标图片中每个相同位置的像素点进行像素值比较,根据比较结果确定该相同位置的像素点的目标像素值,并使用每个相同位置的像素点的目标像素值对文本图片和目标图片进行合成处理,得到合成后的手写样本图片;

保存模块87,用于将手写样本图片和语料文本作为手写样本,保存到预设的手写样本数据集中。

进一步地,缩放模块85包括:

缩小处理子模块,用于若背景图片的尺寸大于文本图片的尺寸,则采用局部均值算法对背景图片进行缩小处理,得到与文本图片的尺寸相同的目标图片;

放大处理子模块,用于若背景图片的尺寸小于文本图片的尺寸,则采用双线性差值算法对背景图片进行放大处理,得到与文本图片的尺寸相同的目标图片;

平行处理子模块,用于若背景图片的尺寸等于文本图片的尺寸,则将背景图片作为目标图片。

进一步地,缩小处理子模块包括:

采样区间确定单元,用于根据背景图片的尺寸和文本图片的尺寸,确定目标图片中每个目标像素点在背景图片中的采样区间;

采样像素值获取单元,用于获取目标图片中每个目标像素点在背景图片中的采样区间包含的采样像素点和每个采样像素点的采样像素值;

目标像素值计算单元,用于计算目标像素点在背景图片中的采样区间中每个采样像素点的采样像素值的平均值,并将该平均值作为目标图片中目标像素点的像素值。

进一步地,放大处理子模块包括:

放大比例确定单元,用于根据所述背景图片的尺寸和所述文本图片的尺寸,确定所述背景图片分别在水平方向和垂直方向的水平放大比例和垂直放大比例;

原始像素点确定单元,用于根据水平放大比例和垂直放大比例,确定目标图片中每个目标像素点在背景图片中对应的原始像素点集合;

双线性差值单元,用于对目标像素点对应的原始像素点集合中每个像素点的像素值进行双线性差值计算,得到目标图片中目标像素点的像素值。

进一步地,合成模块86包括:

遍历子模块,用于对文本图片和目标图片每个相同位置的像素点进行遍历,获取每个相同位置的像素点在文本图片中的像素值和在目标图片中的像素值;

第一比较子模块,用于若相同位置的像素点在文本图片中的像素值小于该相同位置的像素点在目标图片中的像素值,则将该相同位置的像素点在文本图片中的像素值确定为该相同位置的像素点的目标像素值;

第二比较子模块,用于若相同位置的像素点在文本图片中的像素值大于或等于该相同位置的像素点在目标图片中的像素值,则将该相同位置的像素点在目标图片中的像素值确定为该相同位置的像素点的目标像素值;

像素合成子模块,用于对文本图片和目标图片进行合成处理,将文本图片和目标图片每个相同位置的像素点的目标像素值作为合成后的手写样本图片中该相同位置的像素点的像素值,得到合成后的手写样本图片。

进一步地,该手写样本生成装置还包括:

像素值获取模块,用于获取手写样本图片中每个像素点的像素值,并将目标图片中每个像素点的像素值的平均值作为背景像素值;

像素点确定模块,用于根据手写样本图片中语料文本的手写字体属性,确定语料文本的像素值范围,并将获取的像素值满足像素值范围的像素点确定为待处理像素点;

位置计算模块,用于按照如下公式确定每个待处理像素点对应的修正像素点:

x'=xcosθ+ysinθ

y'=-xsinθ+ycosθ

其中,θ为预设的旋转角度,(x,y)为待处理像素点在手写样本图片中的位置坐标,(x',y')为待处理像素点(x,y)在手写样本图片中对应的修正像素点的位置坐标;

像素值修正模块,用于将手写样本图片中每个修正像素点的像素值替换为该修正像素点对应的待处理像素点的像素值,将该修正像素点对应的待处理像素点的像素值设置为背景像素值,并将对每个待处理像素点和每个修正像素点进行像素值更新后得到手写样本图片作为更新图片;

新样本保存模块,用于将更新图片和语料文本作为新的手写样本,保存到手写样本数据集中。

关于手写样本生成装置的具体限定可以参见上文中对于手写样本生成方法的限定,在此不再赘述。上述手写样本生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储手写样本数据集。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种手写样本生成方法。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例手写样本生成方法的步骤,例如图1所示的步骤s1至步骤s7。或者,处理器执行计算机程序时实现上述实施例中手写样本生成装置的各模块/单元的功能,例如图8所示模块81至模块87的功能。为避免重复,此处不再赘述。

在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中手写样本生成方法,或者,该计算机程序被处理器执行时实现上述装置实施例中手写样本生成装置中各模块/单元的功能。为避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1