CN115620307B - 用于扩充ocr训练集的随机字体样式生成方法及系统 - Google Patents
用于扩充ocr训练集的随机字体样式生成方法及系统 Download PDFInfo
- Publication number
- CN115620307B CN115620307B CN202211534793.6A CN202211534793A CN115620307B CN 115620307 B CN115620307 B CN 115620307B CN 202211534793 A CN202211534793 A CN 202211534793A CN 115620307 B CN115620307 B CN 115620307B
- Authority
- CN
- China
- Prior art keywords
- font
- random
- coordinate
- picture
- point
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/1444—Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/1463—Orientation detection or correction, e.g. rotation of multiples of 90 degrees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/15—Cutting or merging image elements, e.g. region growing, watershed or clustering-based techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/16—Image preprocessing
- G06V30/164—Noise filtering
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明属于文字生成技术领域,具体涉及用于扩充OCR训练集的随机字体样式生成方法及系统。方法包括:S1,收集TTF字体文件并自动解析,提取字体坐标信息;S2,通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;S3,根据修改后的字体坐标信息,生成随机字体图片;S4,对随机字体图片,通过图片随机过程的方式,进行数据增强;S5,根据数据增强后的随机字体图片,生成字体训练集。本发明具有基于字体文件底层数据,能对字体样式进行修改,用户根据需求输入参数后,可生成不限量的训练集样本,极大扩充OCR模型训练样本集,进而提高模型泛化能力的特点。
Description
技术领域
本发明属于文字生成技术领域,具体涉及用于扩充OCR训练集的随机字体样式生成方法及系统。
背景技术
OCR(Optical Character Recognition)即光学字符识别,是将打字、手写或印刷文本的图像转换为机器编码的文本,无论是从扫描的文件、文件的照片、场景照片(例如风景照片中的标志和广告牌上的文字)还是从叠加在图像上的字幕文本。即对图像中的文字进行识别,并以文本的形式返回。
图像预处理:无论是使用图像来做识别还是别的操作,都需要对图像做一定的预处理操作,图像预处理是对包含文字的图像进行处理以便后续进行特征提取、学习。这个过程的主要目的是减少图像中的无用信息,方便后续对图像的识别,分类等操作。在这个步骤通常有:灰度化(如果是彩色图像)、降噪、二值化、字符切分以及归一化这些子步骤。经过二值化后,图像只剩下两种颜色,即黑和白,其中一个是图像背景,另一个颜色就是要识别的文字了。
文字检测:文本检测任务是找出图像中的文字位置,是OCR技术过程中的一个重要的环节。不同于目标检测任务,目标检测不仅要解决定位问题,还要解决目标分类问题。文字检测的目标是将图片中的文字区域位置检测出来,以便于进行后面的文本识别,只有找到了文本所在区域,才能对其内容进行识别。目标检测和文本检测同属于“定位”问题。但是文本检测无需对目标分类,并且文本形状复杂多样。一般采用一些机器学习或深度学习的算法来实现这一过程。
文本识别:影响识别准确率的技术瓶颈之一是文本识别,而这部分也是OCR技术的重中之重。文本识别是在文本检测的基础上,对文本内容进行识别,将图像中的文字转化为文本信息。文本识别分为两种识别方法,包括单字符识别和文本行识别。目前主要采用的方法是对文本行的识别,近两年效果比较出色的方法是基于卷积神经网络的模型OCR识别。
数据标注技术:
模型训练需要首先构造标签数据集。文字检测和识别同样需要大量人工标注的图像数据。当前的数据集构建,首先收集大量带有文字的图片数据,通过标注软件,人工为每一张图片上的文字画上多边形框(包括矩形或更多边形),并对框内文字进行记录。算法工程师通过读取标注文件,获得图片上的文字位置坐标、文字内容,进行模型训练任务。
数据增强技术:
在深度学习时代,数据的规模越大、质量越高,模型就能够拥有更好的泛化能力,数据直接决定了模型学习的上限。然而在实际工程中,采集的数据很难覆盖全部的场景。而数据增强是一种基于有限的数据生成更多等价或同样有效的数据,丰富训练数据的分布,使通过训练集得到的模型泛化能力更强的技术。
数据增强可以分为有监督的数据增强和无监督的数据增强方法。常见的有监督的数据增强有几何变换和像素变换。几何变换类即对图像进行几何变换,包括翻转,旋转,裁剪,变形,缩放等各类操作,将单一的样本进行扩充。几何变换并没有改变图像本身的内容,如果要改变图像本身的内容,就属于像素变换类的数据增强,常见的像素变换包括噪声、模糊、颜色变换、擦除、填充等。而最常见的无监督数据增强方法为生成对抗网络GAN,通过模型学习数据的分布,随机生成与训练数据集分布一致的图片。
字体样式转换技术:
算法专家也在研究利用字体转换技术来构造新的字体,进而构造更多样式的字体图片,增加模型训练样本。目前包括两类方法:一种是借助已有的标注字体库,生成新的字体,参考中国专利《一种生成中文TrueType字体的方法及系统》,主要方法是利用字体的外形轮廓数据转换为新字体的外形轮廓数据;另一种方法是字体样式的转化,参考中国专利《字体格式的转换方法及设备》,主要方法是对轮廓曲线进行降阶处理。中国专利《手写样本生成方法、装置及应用》提到,仅对手写字的关键点(又称为锚点)、控制点(又称为非锚点)进行了随机扰动,但未对坐标点的属性进行变化调整,也未提到常规字体的操作。
目前的模型训练集样本生成方式主要存在以下缺点:
1.人工标注训练集成本高。对于OCR文字识别任务来说,其训练集中需要包含大量不同书写形态的字体,如手写体,艺术字等。好的训练集必须具备丰富且接近真实的数据和精确的标签,而构造一个这样的数据集往往需要耗费大量的人力、物力,且人工标注周期较长,交付慢。
2.传统字体生成方法仿真效果差。目前大多数字体生成方法基于对抗神经网络,根据真实字体的特征值生成改造后的新字体,最后计算特征值之间的差值进行训练。然而这些方法通常只能生成固定风格的字体样式,并且含有太多源域字体信息,与真实值相差较大,不能很好地适应OCR文字识别等任务。
3.传统的数据增强方法随机性不强。对抗神经网络的数据生成需要大量的数据作为基础,基于小样本数据的生成任务差强人意。传统的数据增强方法也能够增加数据集,但其通常需要大量的标注信息,数据增强的维度有限,不具备对字体字形本身的变换能力,对模型的泛化能力提升效果有限。
4.利用字体样式转换可以扩充生成文字样式,进而增加所构造的训练集数量。但目前的字体样式,仍然是采用较为固定的方法,每构造出一个新的或者转化的字体,其生成样式结果仍然较为固化,随机性不强,不满足算法对于大量多样式训练集的需求,不适用于算法训练集的构造。
因此,设计一种基于字体文件底层数据,能对字体样式进行修改,用户根据需求输入参数后,可生成不限量的训练集样本,极大扩充OCR模型训练样本集,进而提高模型泛化能力的用于扩充OCR训练集的随机字体样式生成方法及系统,就显得十分重要。
发明内容
本发明是为了克服现有技术中,现有的模型训练集样本生成方式存在成本高、仿真效果差、随机性差以及训练集数量少的问题,提供了一种基于字体文件底层数据,能对字体样式进行修改,用户根据需求输入参数后,可生成不限量的训练集样本,极大扩充OCR模型训练样本集,进而提高模型泛化能力的用于扩充OCR训练集的随机字体样式生成方法及系统。
为了达到上述发明目的,本发明采用以下技术方案:
用于扩充OCR训练集的随机字体样式生成方法,包括如下步骤:
S1,收集TTF字体文件并自动解析,提取字体坐标信息;
S2,通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
S3,根据修改后的字体坐标信息,生成随机字体图片;
S4,对随机字体图片,通过图片随机过程的方式,进行数据增强;
S5,根据数据增强后的随机字体图片,生成字体训练集。
作为优选,步骤S1包括如下步骤:
S11,将现有可收集的TTF字体文件存放到字体库,并自动解析TTF字体文件,将TTF字体文件中的数据解析出来,用XML的文件格式保存;
S12,读取XML数据文件,通过查找“cmap”和“glyf”两个数据表,将字体坐标信息提取出来;
其中,提取出来的坐标信息包含3种数据:绘出的对应字的所有点坐标(一般表示为直角坐标系中的横纵坐标X、Y),笔画坐标的索引以及每个点坐标的类型;所述点坐标的类型包括锚点和非锚点。
作为优选,步骤S2包括如下步骤:
锚点转换:
S21,在数据文件中,设定0代表非锚点,1代表锚点;若一个坐标点的锚点类型是1,则在绘制贝塞尔曲线时,所述贝塞尔曲线将经过对应坐标点;若锚点类型为0,则贝塞尔曲线不经过对应坐标点,而在对应坐标点影响下,由直线变成曲线;
S22,随机选择一部分点坐标,将所述点坐标的锚点类型进行转换,被选中的坐标点将改变锚点的类型;设锚点参数为,坐标点总数为N,随机改变锚点类型的个数取值区间为(0, N*),最终获得与原字形相近的新字形。
作为优选,步骤S2还包括如下步骤:
坐标波动:
S23,通过对坐标点实施波动,即改变点坐标位置,从而改变点坐标所在位置笔画的长短或粗细,形成局部的偏移;具体为,设拟波动的坐标点(, ),波动参数 ,波动幅度 γ,最大波动半径 R。波动幅度γ在区间(0, R)内随机取值。
其中,最大波动半径R的求取采用自适应的最小距离方法,即求(, )与坐标点(, )之间的最小距离,再乘以。
公式为:,其中i为全部坐标点序号。
作为优选,步骤S2还包括如下步骤:
混合随机:
S24,将锚点转换和坐标波动两种方法混合,同时对一个字体进行两种随机处理过程。
作为优选,步骤S4中所述图片随机过程的方式包括:
几何变换:
S41,对图像进行几何变换,包括翻转,旋转,移位,裁剪,变形和缩放操作;翻转包括水平翻转和垂直翻转,水平翻转为将图像左右翻转180度,垂直翻转为将图像上下翻转180度,移位只涉及沿X或Y方向移动图像,裁剪用于改变图像的大小。
作为优选,步骤S4中所述图片随机过程的方式还包括:
像素变换:
S42,对图像进行像素变换,包括噪声、模糊、颜色变换、擦除和填充操作;其中噪声操作采用高斯噪声,模糊操作采用滤波方法降低清晰度。
作为优选,步骤S5包括如下步骤:
S51,将数据增强后的随机字体图片以png的图片格式保存下来,并以“文字+序号”形式命名,存储于系统的结果文件夹;
S52,通过读取图片文件名,直接获取对应图片的文字标签并进行数据规整,最终直接用于模型训练。
作为优选,所述锚点参数为的取值为1/5;所述波动参数的取值为1/4。
本发明还提供了用于扩充OCR训练集的随机字体样式生成系统,包括:
坐标信息提取模块,用于收集TTF字体文件并自动解析,提取字体坐标信息;
字体随机过程模块,用于通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
随机字体图片生成模块,用于根据修改后的字体坐标信息,生成随机字体图片;
图片随机过程模块,用于对随机字体图片,通过图片随机过程的方式,进行数据增强;
字体训练集生成模块,用于根据数据增强后的随机字体图片,生成字体训练集。
本发明与现有技术相比,有益效果是:(1)本发明大幅节约成本,不需要大量人工标注好的数据集,可以根据任意一种字体衍生出多种不同的字体;其次,不同于传统生成某一种固定的具有特定形态的新字体,本发明可以模仿用户手写体生成仿真字体;最后,本发明可以提供给用户字体生成的参数范围,用户可根据自身需要灵活选择参数生成新的字体,相比基于生成对抗网络的方法,本发明的方法更加直观可控,可以更有针对性的对汉字的某个偏旁或笔画进行针对性变换以生成新的字体;能够大幅减少人力、财力的消耗;(2)本发明提高了OCR识别准确率,通过生成更丰富的数据集,提高OCR算法文字识别的准确性,从而解决准确率不高、算法无法进一步提升的痛点;(3)本发明对特定场景任务进行了优化,本发明在不同场景下,可根据识别任务,专门重训算法;例如,一批识别任务为识别合同中的文字,文字统一为宋体,可直接根据宋体的字体文件生成批量数据集,快速训练小模型以完成识别任务,从而解决算法任务固化,无法适应新场景新需求的痛点,并且重训模型的成本低。
附图说明
图1为本发明中用于扩充OCR训练集的随机字体样式生成方法的一种流程图;
图2为本发明中采用锚点转换的一种效果可视化示意图;
图3为本发明中采用坐标波动的一种效果可视化示意图;
图4为本发明中采用混合随机的一种效果可视化示意图;
图5为与本发明相关的“cmap”和“glyf”数据表的一种示意图;
图6为采用直线以及贝塞尔曲线绘制的字母C的一种示意图;
图7为贝塞尔曲线绘制的一种示意图;
图8为本发明实施例所提供的锚点转换、坐标波动和混合随机三种方法,在给定随机参数下的一种生成效果示意图;
图9为本发明实施例所提供的对图8生成的字形图片再进行数据增强后的一种效果示意图。
具体实施方式
为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
实施例:
如图1所示,本发明提供了用于扩充OCR训练集的随机字体样式生成方法,包括如下步骤:
S1,收集TTF字体文件并自动解析,提取字体坐标信息;
S2,通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
S3,根据修改后的字体坐标信息,生成随机字体图片;
S4,对随机字体图片,通过图片随机过程的方式,进行数据增强;
S5,根据数据增强后的随机字体图片,生成字体训练集。
进一步的,步骤S1包括如下步骤:
S11,将现有可收集的TTF字体文件存放到字体库,并自动解析TTF字体文件,将TTF字体文件中的数据解析出来,用XML的文件格式保存;
S12,读取XML数据文件,通过查找“cmap”和“glyf”两个数据表,将字体坐标信息提取出来;
其中,提取出来的坐标信息包含3种数据:绘出的对应字的所有点坐标,笔画坐标的索引以及每个点坐标的类型;所述点坐标的类型包括锚点和非锚点。
进一步的,步骤S2包括如下步骤:
锚点转换:
S21,在数据文件中,设定0代表非锚点,1代表锚点;若一个坐标点的锚点类型是1,则在绘制贝塞尔曲线时,所述贝塞尔曲线将经过对应坐标点;若锚点类型为0,则贝塞尔曲线不经过对应坐标点,而在对应坐标点影响下,由直线变成曲线;
S22,随机选择一部分点坐标,将所述点坐标的锚点类型进行转换,被选中的坐标点将改变锚点的类型;设锚点参数为,坐标点总数为N,随机改变锚点类型的个数取值区间为(0, N*),最终获得与原字形相近的新字形。
锚点是提取出来的数据中重要的特征之一,一个字的所有坐标点都含有这个特征。其变化的本质是通过改变锚点数量,进而改变贝塞尔曲线阶数,以此影响曲线绘制。锚点转换是基于此特点,通过随机选择一部分点,将他们的锚点类型进行转换,被选中的点将改变锚点的类型。
通过这种随机变换,可以实现控制字体的某一小部分边缘的线条类型变换,由直线变成小幅度的曲线或由曲线变成直线,从而创造出与原字形相近但不完全一样的新字形。通过大量实验测定,锚点转换的随机个数控制在坐标点数的1/5范围内,即设=1/5,得到的结果质量最好。具体的锚点转换技术的效果可视化如图2所示(其中X坐标、Y坐标分别表示点的横、纵坐标值)。
坐标波动:
S23,通过对坐标点实施波动,即改变点坐标位置,从而改变点坐标所在位置笔画的长短或粗细,形成局部的偏移;
具体为,设拟波动的坐标点(, ),波动参数 ,波动幅度 γ,最大波动半径R。波动幅度γ在区间(0, R)内随机取值。
其中,最大波动半径R的求取采用自适应的最小距离方法,即求(, )与坐标点(, )之间的最小距离,再乘以。
公式为:,其中i为全部坐标点序号。
坐标波动随机方法是小幅度改变点坐标位置,此处把波动的最大幅度定义为波动半径。从本质上讲,由贝塞尔曲线绘制的字形是由多个坐标点构成,坐标点决定着字形的样式。那么改变某个坐标点的位置,就会改变字形中的某个位置的长短或粗细,形成局部的偏移。当然,如果波动半径过大,会严重影响字体的结构,导致造出无法辨识的字体。据此本发明设计上述一种自适应波动半径的求取方法。通过大量试验得出=1/4时,效果最好。具体的坐标波动技术的效果可视化如图3所示(其中X坐标、Y坐标分别表示点的横、纵坐标值)。
混合随机:
S24,将锚点转换和坐标波动两种方法混合,同时对一个字体进行两种随机处理过程,使其拥有更丰富的随机样式,具体技术效果可视化如图4所示(其中X坐标、Y坐标分别表示点的横、纵坐标值)。
这种混合随机方法可以极大的丰富随机样式,快速扩充数据,同时需要更多更合理的参数控制,使用者可根据自己的需求调整。
进一步的,步骤S4中所述图片随机过程的方式包括:
几何变换:
S41,对图像进行几何变换,包括翻转,旋转,移位,裁剪,变形和缩放操作;翻转包括水平翻转和垂直翻转,水平翻转为将图像左右翻转180度,垂直翻转为将图像上下翻转180度,移位只涉及沿X或Y方向移动图像,裁剪用于改变图像的大小。
通常在训练的时候会采用多种几何变换的方法来应对应用场景下复杂多变的情况。
上面的几何变换类操作,没有改变图像本身的内容,它只是选择了图像的一部分或者对像素进行了重分布。如果要改变图像本身的内容,就需要进行像素变换类的数据增强。
像素变换:
S42,对图像进行像素变换,包括噪声、模糊、颜色变换、擦除和填充操作;其中噪声操作采用高斯噪声,模糊操作采用滤波方法降低清晰度。
通过几何变换和像素变换对加工后的图片数据进行进一步的数据增强,更进一步的丰富数据,进而提高模型的准确性。
进一步的,步骤S5包括如下步骤:
S51,将数据增强后的随机字体图片以png的图片格式保存下来,并以“文字+序号”形式命名,存储于系统的结果文件夹;
S52,通过读取图片文件名,直接获取对应图片的文字标签并进行数据规整,最终直接用于模型训练。
另外,对于步骤S1的相关过程有如下说明:
TrueType是一种字体文件类型。常见的字体文件还有OTF、WOFF。TrueType是由美国苹果公司和微软公司共同开发的一种电脑轮廓字体类型标准,也称为曲线描边字。这种类型字体文件的扩展名是.TTF。TrueType字体中的字形轮廓由直线和贝塞尔曲线(bézier)片段构成。TrueType文件是一种数据存储文件,为了满足不同形式下的字体需求,这种存储文件的体积要尽可能的小。不同于JSON数据存储格式,TrueType文件只保存了数据的Value值,省去了Key值。TrueType字体文件由一连串的表组成,一个表是一个字的序列。每个表都必须是长对齐的,必要时用零填充。
在TrueType文件有类似于目录的概念,叫Font Directory,文件中第一个表就是字体目录,这是一个特殊的表,可以方便访问字体中的其他表。它里面主要的内容就是TrueType文件正文有多少部分,每个部分在哪里。TrueType文件的正文是Font Tables,是目录之后是一连串包含字体数据的表。这些表可以以任何顺序出现。每一个表都有自己的作用,这里仅介绍与本发明相关的数据表—cmap和glyf,具体如图5所示。
cmap表是字符与字体字形对应的表,由于字体文件的数据的高度压缩,大部分表只保留value值,所以需要建立起一种映射,通过某种方式索引到该字的具体数据信息。camp表就是做这项工作的,可以通过camp表中某个字的索引数据找到与这个字的其他数据信息。
glyf表中数据是字体的最核心内容,“glyf”表包含定义字体中字形外观的数据,它表示一个文字是如何被绘制的。例如图6所示的字母C,从0到37的序号位置,标记了存储于glyf中的38个点坐标,这些点的坐标信息以及自身特性(如是否为锚点),是本步骤收集的重要信息。图6是在未做任何更改的情况下,利用上述信息,使用python代码中的matplotlib(一种开源代码包)绘制出来的标准字符图像。
对于步骤S2中所述的贝塞尔曲线有如下说明:
贝塞尔曲线主要用于二维图形应用程序中的数学曲线,曲线由起始点、终止点(也称锚点)和控制点(也称非锚点)组成,通过调整控制点,绘制的贝塞尔曲线形状会发生变化。在计算机图形学中贝赛尔曲线的运用很广泛,例如Photoshop中的钢笔效果,在软件GUI开发中一般也会提供对应的方法来实现贝赛尔曲线。
贝塞尔曲线的类别按照其控制点的多少划分,两个控制点为一阶贝塞尔曲线,三个控制点为二阶贝塞尔曲线,n个控制点为(n-1)阶贝塞尔曲线。贝塞尔曲线动点的移动公式为:
贝塞尔曲线可以看成是根据时间参数t运动的点所画出的曲线。下面以二阶贝塞尔曲线为例,说明贝塞尔曲线如何绘制,建构二阶贝塞尔曲线,可以中介点Q0和Q1作曲线,时间t取0到1,如图7所示:
首先,由P0至P1的连续点Q0,描述一条一阶贝塞尔曲线,即画出一条直线a。
其次,由P1至P2的连续点Q1,描述一条一阶贝塞尔曲线,即画出一条直线b。
最后,Q0 在a上随时间运动,Q1在b上随时间运动,由Q0至Q1的连续点B(t),画出一条二阶贝塞尔曲线,即图7中下方的深色曲线(图中t=0.25时,所绘制的点在B点位置)。
贝塞尔曲线是字形绘制的基础,通过贝塞尔曲线绘制的原理,可以实现自定义的字形绘制。
本发明后续的随机修改字体轮廓和样式,都是基于贝塞尔曲线完成的。
本发明还提供了用于扩充OCR训练集的随机字体样式生成系统,包括:
坐标信息提取模块,用于收集TTF字体文件并自动解析,提取字体坐标信息;
字体随机过程模块,用于通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
随机字体图片生成模块,用于根据修改后的字体坐标信息,生成随机字体图片;
图片随机过程模块,用于对随机字体图片,通过图片随机过程的方式,进行数据增强;
字体训练集生成模块,用于根据数据增强后的随机字体图片,生成字体训练集。
另外,本发明生成技术可用于公司算法部门的OCR模型训练过程。某公司算法部门需要进一步提高OCR模型文本识别模块的准确率,但缺乏足够的数据集,或缺少足够的人力财力去标注数据。结合实际应用,本发明具体实施方案如下:
1.确定生成目标,做一定的数据准备:
明确所需数据集的范围,收集字体文件作为生成数据集的输入。常规场景直接使用常见的字体文件作为输入。这里选择最常见的字体文件之一:方正兰亭黑.ttf。确定字体文件后提取字体文件中的关键坐标信息数据,将其保存下来。
2.根据字体形式选择合适字形的字体随机过程:
图8分别展示了锚点转换、坐标波动和混合随机三种方法,在给定随机参数下,以“好”字为例的生成效果图。
图中原始字形,是未进行任何字体修改的图片生成结果;
图中锚点转换,取锚点参数=1/5,即随机选择1/5的点坐标,将其锚点类型再以1/2概率随机转换,字体的部分边缘的线条类型发生了改变,明显的表现是:当点坐标的类型由1变为0(即锚点变为非锚点)时,边角变得圆润(如图8中圆圈所示);
图中坐标波动,取波动参数=1/4,利用S23方法求取随机波动半径r,波动幅度在区间(0, r)随机取值,通过小幅度改变坐标点(, )的位置,从而改变字形边缘线条的长短或粗细,形成局部偏移(如图8中矩形所示);
图中混合随机,取锚点参数=1/5,波动参数=1/4,锚点转换修改的是坐标之间的曲线样式,坐标波动改变的是点坐标的位置,二者结合,使得字形曲线发生的两种变化交叉混合在一起。
3.根据算法需要选择合适的数据增强过程:
为了尽可能的扩充数据集,并提高模型的泛化能力,要对生成的文字图形进行数据增强。数据增强中所使用的各种技术和工具,可使用python语言opencv(一种开源代码包)中的方法。
几何变换:包括翻转,旋转,移位,裁剪,变形和缩放操作;翻转包括水平翻转和垂直翻转,水平翻转为将图像左右翻转180度,垂直翻转为将图像上下翻转180度,移位只涉及沿X或Y方向移动图像,裁剪用于改变图像的大小。
像素变换:包括噪声、模糊、颜色变换、擦除和填充操作;随机叠加噪声最常见的做法为高斯噪声,模糊用于减少像素和分辨率。
通常在真正算法训练的时候会采用多种几何变换结合像素变换的方法来应对应用场景下复杂多变的情况。随机参数的具体设置要通过试验和经验收集,当然也要根据实际业务需求来设定,以保证增强后的图片文字至少肉眼可识别,同时贴近真实场景。
本实施例仅选择水平翻转(25%随机)、旋转(-30至30度)、宽高拉伸(0.8至1.2区间随机)、颜色填充等几种常用方法,对图8中生成的三个字体图形进行了简易数据增强,效果如图9所示。与图8结果对比,可见图片数据进一步得到扩充,多样性增加,有助于下一步OCR的任务开展。
需要注意的是,几何变换中的翻转个别字的应用上会导致文字变化,如“人”水平翻转后更像是“入”,这里需要操作人员注意识别。
4.保存为数据集:
将图片以png的格式保存下来,并以该字为图片命名,算法人员可通过读取图片文件名,直接获取该图标签,可直接进行模型训练。
本发明的创新点如下:
1.创新字体变换模式:利用字体底层技术,调整贝塞尔曲线随机参数,实现了字体的随机变换,提出了采用锚点变换、坐标波动和两者混合的方法来生成新的字体,这种字体生成方式更加灵活,更加直观也更加可控。
2.文字图片无限拓展技术:利用现有基本字体库,可根据用户需求,无限生成随机字体图片,为算法训练生成大量需求图片;同时提出了一直用可视化的随机字体样式生成系统。
3.扩充OCR算法训练集新技术,大量减少标注训练集构建,提升效率节约成本。
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。
Claims (6)
1.用于扩充OCR训练集的随机字体样式生成方法,其特征在于,包括如下步骤:
S1,收集TTF字体文件并自动解析,提取字体坐标信息;
S2,通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
S3,根据修改后的字体坐标信息,生成随机字体图片;
S4,对随机字体图片,通过图片随机过程的方式,进行数据增强;
S5,根据数据增强后的随机字体图片,生成字体训练集;
步骤S1包括如下步骤:
S11,将现有可收集的TTF字体文件存放到字体库,并自动解析TTF字体文件,将TTF字体文件中的数据解析出来,用XML的文件格式保存;
S12,读取XML数据文件,通过查找“cmap”和“glyf”两个数据表,将字体坐标信息提取出来;
其中,每个文字的字体坐标信息包含三种数据:点坐标、笔画坐标的索引以及每个点坐标的类型;所述点坐标的类型包括锚点和非锚点;
步骤S2包括如下步骤:
锚点转换:
S21,在数据文件中,设定0代表非锚点,1代表锚点;若一个坐标点的锚点类型是1,则在绘制贝塞尔曲线时,所述贝塞尔曲线将经过对应坐标点;若锚点类型为0,则贝塞尔曲线不经过对应坐标点,而在对应坐标点影响下,由直线变成曲线;
S22,随机选择一部分点坐标,将所述点坐标的锚点类型进行转换,被选中的坐标点将改变锚点的类型;设锚点参数为α,坐标点总数为N,随机改变锚点类型的个数取值区间为(0,N*α),最终获得与原字形相近的新字形;
坐标波动:
S23,通过对坐标点实施波动,即改变点坐标位置,从而改变点坐标所在位置笔画的长短或粗细,形成局部的偏移;
具体为,设拟波动的坐标点(x0,y0),波动参数β,波动幅度γ,最大波动半径R;波动幅度γ在区间(0,R)内随机取值;
其中,最大波动半径R的求取采用自适应的最小距离方法,即求(x0,y0)与坐标点(xi,yi)之间的最小距离,再乘以β;
混合随机:
S24,将锚点转换和坐标波动两种方法混合,同时对一个字体进行两种随机处理过程。
2.根据权利要求1所述的用于扩充OCR训练集的随机字体样式生成方法,其特征在于,步骤S4中所述图片随机过程的方式包括:
几何变换:
S41,对图像进行几何变换,包括翻转,旋转,移位,裁剪,变形和缩放操作;翻转包括水平翻转和垂直翻转,水平翻转为将图像左右翻转180度,垂直翻转为将图像上下翻转180度,移位只涉及沿X或Y方向移动图像,裁剪用于改变图像的大小。
3.根据权利要求2所述的用于扩充OCR训练集的随机字体样式生成方法,其特征在于,步骤S4中所述图片随机过程的方式还包括:
像素变换:
S42,对图像进行像素变换,包括噪声、模糊、颜色变换、擦除和填充操作;其中噪声操作采用高斯噪声,模糊操作采用滤波方法降低清晰度。
4.根据权利要求3所述的用于扩充OCR训练集的随机字体样式生成方法,其特征在于,步骤S5包括如下步骤:
S51,将数据增强后的随机字体图片以png的图片格式保存下来,并以“文字+序号”形式命名,存储于系统的结果文件夹;
S52,通过读取图片文件名,直接获取对应图片的文字标签并进行数据规整,最终直接用于模型训练。
5.根据权利要求1所述的用于扩充OCR训练集的随机字体样式生成方法,其特征在于,所述锚点参数为α的取值为1/5;所述波动参数β的取值为1/4。
6.用于扩充OCR训练集的随机字体样式生成系统,用于实现权利要求1-5任一项所述的用于扩充OCR训练集的随机字体样式生成方法,其特征在于,所述用于扩充OCR训练集的随机字体样式生成系统包括:
坐标信息提取模块,用于收集TTF字体文件并自动解析,提取字体坐标信息;
字体随机过程模块,用于通过锚点转换或坐标波动或混合随机的方式,对提取的字体坐标信息进行处理,获得修改后的字体坐标信息;
随机字体图片生成模块,用于根据修改后的字体坐标信息,生成随机字体图片;
图片随机过程模块,用于对随机字体图片,通过图片随机过程的方式,进行数据增强;
字体训练集生成模块,用于根据数据增强后的随机字体图片,生成字体训练集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534793.6A CN115620307B (zh) | 2022-12-02 | 2022-12-02 | 用于扩充ocr训练集的随机字体样式生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534793.6A CN115620307B (zh) | 2022-12-02 | 2022-12-02 | 用于扩充ocr训练集的随机字体样式生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115620307A CN115620307A (zh) | 2023-01-17 |
CN115620307B true CN115620307B (zh) | 2023-04-18 |
Family
ID=84880518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211534793.6A Active CN115620307B (zh) | 2022-12-02 | 2022-12-02 | 用于扩充ocr训练集的随机字体样式生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115620307B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418224A (zh) * | 2021-01-22 | 2021-02-26 | 成都无糖信息技术有限公司 | 一种基于机器学习的通用ocr的训练数据生成系统及方法 |
CN114863416A (zh) * | 2022-07-07 | 2022-08-05 | 合肥高维数据技术有限公司 | 通用文本ocr的训练数据生成方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150178476A1 (en) * | 2013-12-24 | 2015-06-25 | Andrew Horton | System and method of monitoring font usage |
JP2019148846A (ja) * | 2018-02-26 | 2019-09-05 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN113792855B (zh) * | 2021-09-09 | 2023-06-23 | 北京百度网讯科技有限公司 | 一种模型训练及字库建立方法、装置、设备和存储介质 |
CN114693917A (zh) * | 2022-03-29 | 2022-07-01 | 北京云杉信息技术有限公司 | 一种应用于招牌照识别的数据增强方法 |
-
2022
- 2022-12-02 CN CN202211534793.6A patent/CN115620307B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418224A (zh) * | 2021-01-22 | 2021-02-26 | 成都无糖信息技术有限公司 | 一种基于机器学习的通用ocr的训练数据生成系统及方法 |
CN114863416A (zh) * | 2022-07-07 | 2022-08-05 | 合肥高维数据技术有限公司 | 通用文本ocr的训练数据生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115620307A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10489682B1 (en) | Optical character recognition employing deep learning with machine generated training data | |
CN111723585B (zh) | 一种风格可控的图像文本实时翻译与转换方法 | |
CN106384094B (zh) | 一种基于书写风格建模的中文字库自动生成方法 | |
US6903751B2 (en) | System and method for editing electronic images | |
US8875016B2 (en) | Method and apparatus to convert digital ink images for use in a structured text/graphics editor | |
US7139004B2 (en) | Method and apparatus to convert bitmapped images for use in a structured text/graphics editor | |
EP1854051A2 (en) | Intelligent importation of information from foreign application user interface using artificial intelligence | |
CN111460782B (zh) | 一种信息处理方法、装置及设备 | |
CN114005123A (zh) | 一种印刷体文本版面数字化重建系统及方法 | |
CN113012265B (zh) | 针式打印字符图像生成方法、装置、计算机设备和介质 | |
CN112069900A (zh) | 基于卷积神经网络的票据文字识别方法及系统 | |
CN115812221A (zh) | 图像生成及着色方法及装置 | |
CN109522898A (zh) | 手写样本图片标注方法、装置、计算机设备及存储介质 | |
Hung et al. | Micrography QR codes | |
CN114332895A (zh) | 文本图像合成方法、装置、设备、存储介质和程序产品 | |
Zhang et al. | SSNet: Structure-Semantic Net for Chinese typography generation based on image translation | |
CN114241492A (zh) | 一种识别作文稿纸的手写文本识别并复现文本结构的方法 | |
CN114419632A (zh) | 一种ocr训练样本生成方法、装置及系统 | |
Balreira et al. | Handwriting synthesis from public fonts | |
CN115620307B (zh) | 用于扩充ocr训练集的随机字体样式生成方法及系统 | |
CN113743159A (zh) | 一种应用于电力企业的ocr方法 | |
CN114861595B (zh) | 一种基于矢量线条变换的个性字体生成方法 | |
CN112732259B (zh) | 基于人工智能的前端交互页面转换方法、装置及介质 | |
CN113392772B (zh) | 一种面向文字识别的文字图像收缩变形增强方法 | |
CN112132916B (zh) | 一种利用生成对抗网络的篆刻作品定制化设计生成装置 |
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 |