CN114359038A - 基于生成对抗网络的多风格动态组字方法 - Google Patents
基于生成对抗网络的多风格动态组字方法 Download PDFInfo
- Publication number
- CN114359038A CN114359038A CN202210041793.6A CN202210041793A CN114359038A CN 114359038 A CN114359038 A CN 114359038A CN 202210041793 A CN202210041793 A CN 202210041793A CN 114359038 A CN114359038 A CN 114359038A
- Authority
- CN
- China
- Prior art keywords
- substructure
- font
- offset
- vector
- skeleton key
- 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.)
- Pending
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种基于生成对抗网络的多风格动态组字方法,包括:将汉字表述成IDS序列,IDS序列包含多个组成汉字的子结构的字符和表征子结构的布局信息的IDC字符;构建每个子结构的字形矢量模型,依据IDC字符呈现的子结构的布局信息对子结构的字形矢量模型进行矢量组合得到汉字的字形矢量模型;利用基于生成对抗网络构建的风格优化模型,对汉字的字形矢量模型对应的字形图像进行风格优化处理。该方法通过图形学方法进行初步动态组字,并基于对抗网络对多种风格字体的动态组字结果进行优化,从而实现更好的字形结体效果。
Description
技术领域
本发明属于计算机辅助设计领域,具体涉及一种基于生成对抗网络的多风格动态组字方法。
背景技术
对特定风格的汉字实现字符集的扩充一直是汉字设计领域的一项重要工程。近年来深度学习技术,尤其是基于变分自动编码器VAE和生成对抗网络GAN的风格迁移方法,已经在汉字字形的生成工作上取得了一些进展。其中具有代表性的一些工作有:Zhang Y,Zhang Y,Cai W.Separating style and content for generalized style transfer[C]//Proceedings of the IEEE conference on computer vision and patternrecognition.2018:8447-8455.Xie Y,Chen X,Sun L,et al.DG-Font:DeformableGenerative Networks for Unsupervised Font Generation[C]//Proceedings of theIEEE/CVF Conference on Computer Vision and Pattern Recognition.2021:5130-5140。
这些方法的共性是在面对一种覆盖较少字符的目标风格字体,需要选取一种覆盖较多字符的字体作为源风格字体,通过将其中的汉字字形迁移为目标风格,实现对其字符集的扩充。因此,对于某一个特定的汉字,要生成具有目标风格字形,需要源风格字体中已经包含该汉字才能进行有效的生成。
尽管这种风格迁移的方法一定程度上解决了字体在常用的汉字字符集上的扩充问题,但是在实际应用中,有时会遇到一些非标准的字符,比如生僻字、异体字和艺术造字。这些字具有较为独特的结构,不存在于常用的汉字字符集中,因此往往难以找到一个具有该字字形的源字体,此时无法使用上述类型的神经网络进行迁移生成。
对于这类特殊的汉字,可以使用一些高层汉字语义知识描述其的结构组成,其中具有代表性是表意文字描述序列IDS,一种描述汉字构字方式的前缀表达序列。目前有一些利用IDS序列作为输入神经网络生成指定风格字形的研究,但生成结果中字形的不够美观,存在不少结构上的问题。
汉字字形是否美观很大程度上取决于字形本身的结体,即字形内部各个子部件的组合方式。在过去三十年间,有不少利用汉字语义进行汉字自动结体(动态组字)的研究,早期的研究基于专家知识设定结构码进行参数化的动态组字【范建平,智能汉字设计与实验系统ICCDS;1990】,但基于专家知识的方法有很强的人工依赖性,数学建模困难。IDS标准确立后,也有一些基于图形学方法进行生僻字结体的尝试【莫礼平,一种湘西民间苗文字形的动态生成方法及其实现途径,2016】,但图形学方法生成的字形结果在结体上往往存在结构布局较为固定,缺少笔画穿插等缺陷。
总而言之,目前仅使用深度学习的方法主要面向常规字符集内的现代汉字,无法很好生成字符集外的特殊汉字,而仅使用图形学的方进行动态组字生成的结果存在一定的局限性。将二者结合进行多风格动态优化的研究还十分匮乏。
发明内容
鉴于上述,本发明的目的是提供一种基于生成对抗网络的多风格动态组字方法,通过图形学方法进行初步动态组字,并基于对抗网络对多种风格字体的动态组字的结果进行优化,从而实现更好的字形结体效果。
为实现上述发明目的,本发明提供以下技术方案:
一种基于生成对抗网络的多风格动态组字方法,包括以下步骤:
将汉字表述成IDS序列,IDS序列包含多个组成汉字的子结构的字符和表征子结构的布局信息的IDC字符;
构建每个子结构的字形矢量模型,依据IDC字符呈现的子结构的布局信息对子结构的字形矢量模型进行矢量组合得到汉字的字形矢量模型;
利用基于生成对抗网络构建的风格优化模型,对汉字的字形矢量模型对应的字形图像进行风格优化处理。
在一个实施例中,所述构建每个子结构的字形矢量模型,包括:
将每个子结构的骨架关键点集表示为二维点坐标序列S=((xi,yi));
将每个子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量表示为二维向量序列Offset1=((Δxi,Δyi));
手柄点相对关联轮廓节点的第二偏移向量表示为二维向量序列Offset2=((Δxi,Δyi))。
在一个实施例中,当IDC字符为堆叠结构的IDC字符,即按照堆叠结构的布局信息对子结构的字形矢量模型进行矢量组合时,矢量组合步骤包括:
S11,对子结构的字形矢量模型的骨架关键点进行坐标原点规范;
S12,对各子结构进行伸缩变换,包括:
依据字形矢量模型对应二值化字形图像中黑像素个数计算各子结构在汉字中的字形占比Ratiok;
根据各子结构的字形包围盒和字形占比Ratiou,各子结构之间的间隙距离,以及组合后字形距离正方形画布边缘的留白距离,计算各子结构的伸缩变换系数Factork;
在一个实施例中,当IDC字符为包围结构的IDC字符,即按照包围结构的布局信息对子结构的字形矢量模型进行矢量组合时,进行矢量组合的两个子结构被定义为包围的子结构和被包围的子结构,矢量组合步骤包括:
S22,计算包围的子结构内部所能容纳的最大内接矩形,同时计算被包围的子结构嵌入包围的子结构的最大内接矩形所需的伸缩变换系数;
S24,对包围的子结构进行骨架关键点、第一偏移向量、第二偏移向量的变换调整,调整其最大内接矩形有足够空间让被包围的子结构嵌入,得到调整后的骨架关键点集第一偏移向量序列Offset1′1、第二偏移向量序列Offset2′1;
在一个实施例中,基于生成对抗网络构建的风格优化模型时,优选zi2zi作为生成对抗网络,以矢量组合得到汉字的字形矢量模型作为样本,并以汉字的原始字形作为样本标签;
利用数据增强的样本集对应的样本标签对生成对抗网络进行对抗学习,以优化生成对抗网络参数,参数优化的优化生成对抗网络包含的生成器部分作为风格优化模型。
与现有技术相比,本发明具有的有益效果至少包括:
实施例提供的基于生成对抗网络的多风格动态组字方法,能够通过IDS生成任意的汉字字符,并利用生成对抗网络进行风格优化,在复原标准字符集内汉字字符字形时产生的字形与原始汉字相近。对于标准字符集外的特殊汉字与生造的艺术汉字,也能生成较为美观的结果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的基于生成对抗网络的多风格动态组字方法的流程图;
图2是实施例提供的IDC含义与结构示例;
图3是实施例提供的汉字结构树示例;
图4是实施例提供的字形包围盒示例;
图5是实施例提供的字形最大内接矩形示例;
图6是实施例提供的非标准汉字利用IDS进行图形学动态组字示意图;
图7是实施例提供的利用IDS生成艺术汉字;
图8是实施例提供的动态组字流程图;
图9是实施例提供的动态组字示例;
图10是实施例提供的pad和gap示例图;
图11是实施例提供的字形矢量模型通过变换扩大最大内接矩形的示例;
图12是实施例提供的不同IDC下参考点可视化示例;
图13是实施例提供的数据增强的示例;
图14是实施例提供的标准字符集内汉字复原效果对比图;
图15是实施例提供的非标准字符集内汉字生成效果。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1是实施例提供的基于生成对抗网络的多风格动态组字方法的流程图。如图1所示,实施例提供的基于生成对抗网络的多风格动态组字方法,包括以下步骤:
步骤1,将汉字表述成IDS序列,IDS序列包含多个组成汉字的子结构的字符和表征子结构的布局信息的IDC字符。
表意文字描述序列IDS是一种描述汉字构字方式的后缀表达式。IDS中有两种类型的字符,一种是常规汉字部件字符,另一种是表意文字描述字符IDC。IDC字符作为控制字符一共有12种,如图2所示,IDS的语法要求3元IDC字符(和)的后面跟随三个IDS,其他2元IDC字符后面则需要跟随两个IDS。因此对于一个汉字,利用IDC字符对汉字进行拆解,可以得到其子结构对应的IDS,这个过程可以重复多次,当不再拆分的时候,可以得到一棵汉字结构树,树中IDC位于分支节点,而子结构字符位于叶子节点,如图3所示。IDS就是该汉字结构树的后缀表达式。
对于表示堆叠结构的IDC为2元或3元IDC,其后续的IDS对应的汉字子结构在对应布局上遵循,先左后右,先上后下的规则;对于表示包围结构的IDC均为2元IDC,布局规则为第1个IDS对应的子结构包围第2个后续IDS对应的子结构。对于表示交叠结构的IDC其反应的布局规则复杂且不统一,如“夷”(大弓)和“乖”(千北)两字均使用,但构字方法完全不同,因此本发明方法不涉及对应IDS中含有交叠结构的IDC结构的汉字。
实施例中,对汉字进行分解,得到每个子结构,通过利用IDS对汉字构建汉字结构树,以对子结构进行组织管理,至此,得到汉字对应的IDS序列,其中,IDS序列包含子结构的字符和表征子结构的布局信息的IDC字符,具体包括堆叠结构的IDC字符和堆叠结构的IDC字符。
步骤2,构建每个子结构的字形矢量模型。
实施例中,为IDS序列中的每个子结构构建字形矢量模型,采用OTF或TTF格式字体文件的多风格字库作为字库,并根据字库提供的汉字矢量轮廓数据构建子结构的字形矢量模型。具体的构建字形矢量模型的方式参考专利文献CN112232022A公开的构建字形矢量模型的方式,具体包括:
将每个子结构的骨架关键点集表示为二维点坐标序列S=((xi,yi)),用长度为2的数组列表存储表示;
将每个子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量表示为二维向量序列Offset1=((Δxi,Δyi)),用长度为2的数组列表存储表示,上述骨架关键点的数组列表长度与第一偏移向量的数组列表长度相同;
手柄点与轮廓节点的关联关系具体实现为一个列表。列表按手柄点顺序记录了与手柄点相关联的轮廓节点下标,这样就可以简单明确地表示手柄点与轮廓节点的关联关系。
手柄点相对关联轮廓节点的第二偏移向量表示为二维向量序列Offset2=((Δxi,Δyi)),用长度为2的数组列表存储表示。
步骤3,依据IDC字符呈现的子结构的布局信息对子结构的字形矢量模型进行矢量组合得到汉字的字形矢量模型。
图像学的动态组字是通过解析汉字字符对应的IDS数据,根据IDC不断矢量组合较小子结构开始,向上合并为较大的子结构,最终获得完整的字符字形。其优势在于,只要保证IDS中子结构(一般是偏旁,部首)字符对应的字形存在于字库数据中就可以动态组字生成。就算是对于一些常规字符集之外的特殊汉字,也可以通过分析其字形结构得到其IDS序列然后加以生成,如图6所示。甚至可以通过合理的创造IDS来生成原本不存在的艺术汉字,如图7所示。
基于IDS后缀表达式的特点,可以利用两个堆栈的方式对其进行解析,通过从后向前不断将较小的子结构合成为较大子结构,最终完成动态组字。具体流程如下:
(a)获取一个汉字对应的IDS字符串序列,并指定动态组字的目标风格;
(b)将IDS字符串拆分成单个字符,按顺序压入第一个堆栈(堆栈A),同时准备另一个空的堆栈(堆栈B);
(c)取出堆栈A顶部字符,查看其类型,如果为部件字符,则利用字库数据构建其目标风格的字形矢量模型,并将字形矢量模型压入堆栈B;如果为IDC,则根据IDC是几元的,从堆栈B顶部依次取出2到3个子结构的字形矢量模型。进行矢量组合成一个更大子结构的字形矢量模型后压回堆栈B;
(d)判断堆栈A是否为空,如果不为空,则返回步骤(b);如果为空则循环结束,取出堆栈B顶部字形矢量模型即为对应汉字的动态组字结果,并输出对应的字形图片。
实施例中,矢量组合是通过图形学仿射变换的方法,使得较小子结构的字形矢量模型依照IDC提供的布局信息进行组合形成一个较大的子结构的字形矢量模型,对于堆叠结构和包围结构两种类型的IDC,矢量组合采取以下两种不同的方式。
方式一:堆叠结构矢量组合方式。
当IDC字符为堆叠结构的IDC字符,堆叠结构的矢量组合是将IDC后续的2或3个IDS对应的子结构的字形矢量模型进行矢量变换,然后通过左右或上下的形式平行排列,从而实现堆叠的效果。具体地,堆叠结构矢量组合步骤包括:
步骤11,对子结构的字形矢量模型的骨架关键点进行坐标原点规范。
实施例中,对于处在边长为L的正方形画布中的字符字形(即分辨率为L×L),其字形矢量模型中的骨架关键点的坐标在x,y方向上均落在[0,L]内。需要将骨架关键点坐标规范为原点对称(落在[-L/2,L/2]范围内)以便后续伸缩变换和位置布局。对于处于边长为L的正方形画布中央的子结构,对子结构的字形矢量模型的骨架关键点进行坐标原点规范为:
但对于部分子结构,其字形图像会明显偏离画布中央,如图3所示的“宀”。对于此类子结构的字形矢量模型,可以利用其包围盒对角线交点进行原点坐标规范。实施例中,字形包围盒指的是字符字形所处的字形画布中包围字形图像的最小矩形。图4给出了宝盖头字符“宀”包围盒的实例。记第k个子结构的字形包围盒左下角坐标为(xk,l,yk,d),右上角坐标为(xk,r,yk,u),则对子结构的字形矢量模型的骨架关键点进行坐标原点规范为:
步骤12,对各子结构进行伸缩变换。
实施例中,首先计算出各个子结构在合字中的字形占比,可以利用各子结构的字形矢量模型对应二值化图像中黑像素的个数P近似该字形笔画长度,然后采用以下公式计算各子结构在汉字中的字形占比Ratiok:
其中,n为子结构的个数,当时,式中的n=2,当IDC=时,n=3,wk为加权系数,表示布局中位于不同位置的子结构的一些经验权重,比如左右结构的汉字中左侧子结构一般小于右侧子结构,因此左侧子结构的对应加权系数会略小于右侧,Pk表示第k个子结构的字形矢量模型对应的二值化字形图像(字为黑像素,背景画布为白像素)中黑像素总个数。
实施例中,为了防止某个子结构笔画长度远小于其余子结构笔画长度导致其字形占比过小,还设置了字形占比有下限MinRatio(IDC),针对不同的IDC字符该MinRatio(IDC)的取值不同,实施例中,建议采用以下取值:
实施例中,依据设置的字形占比下限MinRatio(IDC)对各子结构在汉字中的字形占比Ratiok进行优化处理,当字形占比Ratiok小于MinRatio(IDC)时,字形占比Ratiok优化为:
Ratio′k=MinRatio(IDC)
当字形占比Ratiok大于等于MinRatio(IDC)时,字形占比Ratiok优化为:
其中,Ratio′k为优化后的字形占比,Ratio′k表示所有原本字形占比小于MinRatio(IDC)的子结构在调整后的字形占比数值之和,Ratiok表示所有原本字形占比大于MinRatio(IDC)的子结构的原本字形占比数值之和,通过调整能够保证
其次,根据各子结构的字形包围盒和字形占比Ratiok,各子结构之间的间隙距离gap,以及组合后字形距离正方形画布边缘的留白距离pad,计算各子结构的伸缩变换系数Factork。
实施例中,间隙距离gap和留白距离pad如图10所示。实施例中,针对不同IDC字符采用不同的伸缩变换系数Factork计算方式。
widthk=(L-2×pad-(n-1)×gap)×Ratio′k
然后计算伸缩变换系数:
heightk=(L-2×pad-(n-1)×gap)×Ratio′k
然后计算伸缩变换系数:
利用伸缩变换系数Factork对各子结构的第一偏移向量进行伸缩变换,得到的第一偏移向量序列Offset1′k为:
利用伸缩变换系数Factork对各子结构的第二偏移向量进行伸缩变换,得到的第二偏移向量序列Offset2′k为:
其中,Offset1k和Offset2k为第k个子结构原始的轮廓节点相对于匹配骨架关键点的第一偏移向量序列和手柄点相对关联轮廓节点的第二偏移向量序列;Offset1′k和Offset2′k为第k个子结构伸缩变换后的的轮廓节点相对于匹配骨架关键点的第一偏移向量序列和手柄点相对关联轮廓节点的第二偏移向量序列。
实施例中,由于得到的中骨架关键点的坐标范围是经过原点规范的,落在[-L/2,L/2]范围内,要重新变换到[0,L]范围内,因此需要进行以下的移动布局,即对骨架关键点集进行坐标变换,得到的骨架关键点集为:
其中,n为子结构的总数,
实施例中,将所有子结构的字形矢量模型进行合并,得到一个新字形矢量模型。对于骨架关键点集,轮廓节点相对于匹配骨架关键点的第一偏移向量序列,手柄点相对关联轮廓节点的第二偏移向量序列。合并形式如下:
Offset1new=Offset1′1+…+Offset1′n
Offset2new=Offset2′1+…+Offset2′n
需要说明的是,这里的加号意味着将列表相连接。
方式二:包围结构矢量组合方式。
包围结构矢量组合是将IDC后续的2个IDS对应的子结构进行矢量变换,使得第1个子结构的字形矢量模型有足够大的空间让第2个子结构的字形矢量模型嵌入,从而实现包围的效果。实施例中,将处于内围的第2个子结构定义为被包围的子结构,将处于外围的第1个子结构定义为包围的子结构。具体地,包围结构矢量组合步骤包括:
步骤22,计算包围的子结构内部所能容纳的最大内接矩形,同时计算被包围的子结构嵌入包围的子结构的最大内接矩形所需的伸缩变换系数。
在字形图像中,在字形包围盒范围内最大空白(没有字形笔画)的矩形区域为最大内接矩形,图5给出了“户”字的最大内接矩形的示例。字形最大内接矩形的计算可以通过将字形图像二值化,根据字形包围盒内部进行裁剪得到去除留白的字形二值图。再对该字形二值图在横向(x方向)和纵向(y方向)上分别应用直方图最大矩形算法,横向上的计算可以得到最大内接矩形左右边缘的坐标(对应Recxi,l,Recxi,r),纵向上的计算可以得到最大内接矩形上下边缘的坐标(对应Recyi,d,Recyi,u),由此获得最大内接矩形的范围。
基于最大内接矩形的定义,计算包围的子结构(也即是第1个子结构,k=1)内部所能容纳的最大内接矩形,并记录最大内接矩形的左下角坐标为(Recx1,l,Recy1,d),右上角坐标为(Recx1,r,Recy1,u)。
实施例中,伸缩变换系数包括x方向的伸缩变换系数Factor2.x和y方向的伸缩变换系数Factor2,y,计算方式包括:
其中,(x2,l,y2,d)表示被包围的子结构的字形包围盒的左下角坐标,(x2,r,y2,u)表示被包围的子结构的字形包围盒的右上角坐标;
为了防止被包围的子结构被放大或过度缩小,为伸缩变换系数设置缩放系数下限MinFactor,该MinFactor优选为0.4。依据设置的缩放系数下限MinFactor对伸缩变换系数进行优化处理,包括:
Factor′2,x=max(Factor2,x,MinFactor)
Factor′2,y=max(Factor2,y,MinFactor)
其中,Factor′2,x和Factor′2,y分别为优化后的伸缩变换系数,max()为最大取值函数。
实施例中,利用伸缩变换系数Factor′2,x,Factor′2,y对被包围的子结构(k=2)进行骨架关键点和第一偏移向量、第二偏移向量进行伸缩变换。
针对被包围的子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量序列Offset12,伸缩变换为:
针对被包围的子结构的手柄点相对关联轮廓节点的第二偏移向量序列Offset22,伸缩变换为:
步骤24,对包围的子结构进行骨架关键点和第一偏移向量、第二偏移向量的变换调整,调整其最大内接矩形有足够空间让被包围的子结构嵌入,得到调整后的骨架关键点集第一偏移向量序列Offset1′1、第二偏移向量序列Offset2′1。
实施例中,对包围的子结构的骨架关键点的变换方式为:
其中,fx(xi),fy(yi)为骨架关键点(xi,yi)的变换函数,形式如下:
针对包围的子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量序列Offset11,伸缩变换为:
其中,gx(Δxi),gy(Δyi)为第一偏移向量(Δxi,Δyi)的变换函数,形式如下:
注意到gx(Δxi),gv(Δyi)变换的区分条件不是(Δxi,Δyi)本身,而是与之下标对应的(xi,yi),这是为了保证骨架关键点与第一偏移向量变换上的一致性。
针对包围的子结构的手柄点相对关联轮廓节点的第二偏移向量序列Offset21,伸缩变换为:
Offset2′1=Offset21
上述骨架关键点的变换函数fx(xi),fy(yi)与第一偏移向量变换函数gx(Δxi),gy(Δyi)中,(x1,ref,y1,ref)是坐标变换参考点的坐标;(x1,l,y1,d)是包围的子结构的字形包围盒的左下角坐标,(x1,r,y1,u)是包围的子结构的字形包围盒的右上角坐标;Factor1,xl,Factor1,xr是参考点的左侧和右侧骨架点关键点x方向上的收缩系数;Factor1,yd,Factor1,yu是参考点的下侧和上侧骨架关键点y方向上的收缩系数。
对骨架关键点的操作是以参考点(x1,ref,y1,ref)为基准,将进行包围的子结构对应字形矢量模型中位于参考点左侧(xi≤x1,ref)的骨架关键点向字形包围盒左边缘以Factor1,xl的系数收缩;位于参考点右侧(xi>x1,ref)的骨架关键点向字形包围盒右边缘Factor1,xr的系数收缩;位于参考点下侧(yi≤y1,ref)的骨架关键点向字形包围盒下边缘Factor1,yd的系数收缩;位于参考点上侧(yi>y1,ref)的骨架关键点向字形包围盒上边缘Factor1,yu的系数收缩。
参考点的选择取决于具体的包围结构。实践中一般采用如下的选择:
图12给出了不同IDC下,参考点(x1,ref,y1,ref)所在位置的可视化示例。
对于四个缩放系数Factor1,xl,Factor1,xr,Factor1,yd,Factor1,yu的取值,需要根据被包围的子结构的伸缩变换系数Factor′2,x和Factor′2,y决定。
1、若Factor′2,x=MinFactor,则说明Factor2,x≤MinFactor。这意味着进行包围的子结构的字形最大内接矩形在x方向上偏窄。此时Factor1,xl,Factor1,xr可按照下式计算:
βxl=x1,ref-αx(x1,ref-Recx1,l)
βxr=x1,ref-αx(x1,ref-Recx1,r)
2、若Factor′2,x>MinFactor,则进行包围的子结构的字形最大内接矩形在x方向上无需扩张,则Factor1,xl=Factor1,xr=1,此时有fx(x)=x,即所有骨架关键点坐标在x方向上不变。
3、若Factor′2,y=MinFactor,则说明Factor2,y≤MinFactor。这意味着进行包围的子结构的字形最大内接矩形在y方向上偏窄。此时Factor1,yd,Factor1,yu可按照下式计算:
βyd=y1,ref-αy(y1,ref-Recy1,d)
βyu=y1,ref-αy(y1,ref-Recy1,u)
4、若Factor′2,y>MinFactor,则进行包围的子结构的字形最大内接矩形在y方向上无需扩张,则Factor1,yd=Factor1,yu=1,此时有fy(y)=y,即所有骨架关键点坐标在y方向上不变。
经过进行骨架关键点和第一、第二偏移量变换后,进行包围的子结构的最大内接矩形发生了变化。重新计算得到变换后的进行包围的子结构的最大内接矩形,记其左下角坐标为(Recx′1,l,Recy′1,d),右上角坐标为(Recx′1,r,Recy′1,u)。
和步骤13一样,需要骨架关键点的进行移动布局。差别在于包围结构矢量组合中进行包围的子结构没有进行过骨架关键点的坐标原点规范,因此只需布局在原处,即
对于被包围的子结构,其移动布局如下:
其中(Recx′1,l,Recy′1,d)和(Recx′1,r,Recy′1,u)为包围的子结构的经过骨架关键点和第一偏移向量、第二偏移向量变换后重新计算的最大内接矩形的左下角和右上角坐标。
通过重新布局,可以将被包围的子结构移动到变换后的包围的子结构的最大内接矩形的中央,示例见图11。
实施例中,将所有子结构的字形矢量模型进行合并,得到一个新字形矢量模型。由于包围结构的IDC都是二元IDC,即有n=2。因此合并形式如下:
Offset1new=Offset1′1+Offset1′2
Offset2new=Offset2′1+Offset2′2
需要说明的是,此处的加号依旧意味着将列表相相连接。
步骤4,利用基于生成对抗网络构建的风格优化模型,对汉字的字形矢量模型对应的字形图像进行风格优化处理。
图形学动态组字得到的字形存在一定的局限性,体现在字形的结体存在缺陷,比如:子结构占比不合理,结果缺少子结构之间的笔画穿插等方面的问题。为此,实施例使用基于生成对抗网络构建的风格优化模型对结果进行优化,从而得到更好的结果。
基于生成对抗网络的图像转换模型,一般是经典模型pix2pix的改进与变体。此类模型一般进行的是图像到图像的类型转换的任务,模型可以将一种类型图像转换成另一种风格的图像。假设已有A、B两组不同类型的图像,从中构建一个A类型和B类型的图像一一对应的训练集,模型通过该训练集学习如何将A类型的图像转化为B类型的图像,这一阶段一般称为模型的训练阶段。当遇到新的A类型的图像时,模型就可以没有见过对应B图像的情况下将其转化为对应的B类型图像,这一阶段一般称为模型的测试或预测阶段。
实施例中,在构建风格化优化模型时,生成对抗网络选用zi2zi,zi2zi是一个可以通过指定编号同时训练多种风格字形生成网络,在本技术方法中,若有m种字体,对于每一种字体,分别将进行动态组字得到字形集与对应风格字形集合配对构成数据集。即将原始配对扩展为配对,其中下标为区分风格的编号。将这样的数据集送入网络可以同时训练多种风格的字体进行字形结体的优化,并进一步起到数据增强的效果,提升网络的泛化能力。
实施例中,风格优化模型的构建方式包括:对于字库中一种特定风格的字体,训练阶段,将字表中的汉字字符依照其IDS进行动态组字,得到的字形矢量模型输出的字形图像作为A类型图像,其原始的字形作为B类型图形,二者通过汉字字符一一配对构成训练集,将多个风格字体的训练集通过编号区分,一并送入zi2zi进行训练,最终得到一个风格优化模型。
注意到A类型图像和B类型图像均是通过字体数据生成的,差别在于,A类型图像中字符的字形是利用图形学动态组字得到的,字形的结体上存在缺陷,而B类型图像中的字符字形是不存在缺陷的原始字形。网络通过训练所要学习的是如何将存在结体存在缺陷的字形优化,减少结体的缺陷,生成美观的字形。
由于gap的取值会对矢量组合中的伸缩变换系数产生细微的影响,因此通过将gap从固定值改为采样会使得图形学动态组字的结果存在一定的随机性,具体体现在:对于同一个IDS重复进行图形学动态组字,每次动态组字生成的结果中子结构之间的间隙和子结构的大小会存在细微的差别。通过将一个汉字字符依照其IDS进行若干次图形学动态组字得到的字形结果分别与该汉字原始的字形配对,由此实现数据增强,图13给出了一个示例,从而提高模型的泛化能力,使其在面对字形不同的缺陷结体的时候均能产生一定优化效果。
上述生成对抗网络训练完后可以对任意使用图形学动态组字得到的结果进行优化,包括不存在标准字符集中的汉字字符,甚至是利用IDS生造的艺术汉字。
实施例提供的基于生成对抗网络的多风格动态组字方法能够通过IDS生成任意的汉字字符,并利用生成对抗网络加油优化,在复原标准字符集内汉字字符字形时产生的字形与原始汉字相近,如图14。对于标准字符集外的特殊汉字与生造的艺术汉字,也能生成较为美观的结果,如图15,为自动扩充字体字符集和艺术创作新汉字提供一种有效的解决方法。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于生成对抗网络的多风格动态组字方法,其特征在于,包括以下步骤:
将汉字表述成IDS序列,IDS序列包含多个组成汉字的子结构的字符和表征子结构的布局信息的IDC字符;
构建每个子结构的字形矢量模型,依据IDC字符呈现的子结构的布局信息对子结构的字形矢量模型进行矢量组合得到汉字的字形矢量模型;
利用基于生成对抗网络构建的风格优化模型,对汉字的字形矢量模型对应的字形图像进行风格优化处理。
3.根据权利要求2所述的基于生成对抗网络的多风格动态组字方法,其特征在于,当IDC字符为堆叠结构的IDC字符,即按照堆叠结构的布局信息对子结构的字形矢量模型进行矢量组合时,矢量组合步骤包括:
S11,对子结构的字形矢量模型的骨架关键点进行坐标原点规范,包括:
对于处于边长为L的正方形画布中央的子结构,对子结构的字形矢量模型的骨架关键点进行坐标原点规范为:
对于偏离正方形画布中央的子结构,对子结构的字形矢量模型的骨架关键点进行坐标原点规范为:
其中,(xk,l,yk,d)为第k个子结构的字形包围盒的左下角坐标,(xk,r,yk,u)为第k个子结构的字形包围盒的右上角坐标;
S12,对各子结构进行伸缩变换,包括:
依据字形矢量模型对应二值化字形图像中黑像素个数计算各子结构在汉字中的字形占比Ratiok;
根据各子结构的字形包围盒和字形占比Ratiok,各子结构之间的间隙距离,以及组合后字形距离正方形画布边缘的留白距离,计算各子结构的伸缩变换系数Factork;
4.根据权利要求3所述的基于生成对抗网络的多风格动态组字方法,其特征在于,S12中,采用以下公式计算各子结构在汉字中的字形占比Ratiok:
其中,wk为加权系数,Pk表示第k个子结构的字形矢量模型对应的二值化字形图像中黑像素总个数;
优选地,依据设置的字形占比下限MinRatio(IDC)对各子结构在汉字中的字形占比Ratiok进行优化处理,针对不同的IDC字符,字形占比下限MinRatio(IDC)取值不同;
当字形占比Ratiok小于MinRatio(IDC)时,字形占比Ratiok优化为:
Ratio′k=MinRatio(IDC)
当字形占比Ratiok大于等于MinRatio(IDC)时,字形占比Ratiok优化为:
其中,Ratio′k为优化后的字形占比。
7.根据权利要求2或3所述的基于生成对抗网络的多风格动态组字方法,其特征在于,当IDC字符为包围结构的IDC字符,即按照包围结构的布局信息对子结构的字形矢量模型进行矢量组合时,进行矢量组合的两个子结构被定义为包围的子结构和被包围的子结构,矢量组合步骤包括:
S22,计算包围的子结构内部所能容纳的最大内接矩形,同时计算被包围的子结构嵌入包围的子结构的最大内接矩形所需的伸缩变换系数;
S24,对包围的子结构进行骨架关键点、第一偏移向量、第二偏移向量的变换调整,调整其最大内接矩形有足够空间让被包围的子结构嵌入,得到调整后的骨架关键点集第一偏移向量序列Offset1′1、第二偏移向量序列Offset2′1;
8.根据权利要求7所述的基于生成对抗网络的多风格动态组字方法,其特征在于,S22中,所述伸缩变换系数包括x方向的伸缩变换系数Factor2,x和y方向的伸缩变换系数Factor2,y,计算方式包括:
其中,(Recx1,l,Recy1,d)表示最大内接矩形的左下角坐标,(Recx1,r,Recy1,u)表示最大内接矩形的右上角坐标,gap为两个子结构之间的间隙距离,(x2,l,y2,d)表示被包围的子结构的字形包围盒的左下角坐标,(x2,r,y2,u)表示被包围的子结构的字形包围盒的右上角坐标;
优选地,依据设置的缩放系数下限MinFactor对伸缩变换系数进行优化处理,包括:
Factor′2,x=max(Factor2,x,MinFactor)
Factor′2,y=max(Factor2,y,MinFactor)
其中,Factor′2,x和Factor′2,y分别为优化后的伸缩变换系数,max()为最大取值函数;
针对被包围的子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量序列Offset12,伸缩变换为:
针对被包围的子结构的手柄点相对关联轮廓节点的第二偏移向量序列Offset22,伸缩变换为:
9.根据权利要求7所述的基于生成对抗网络的多风格动态组字方法,其特征在于,S24中,对包围的子结构的骨架关键点的变换方式为:
其中,fx(xi),fy(yi)为骨架关键点(xi,yi)的变换函数,形式如下:
对包围的子结构的轮廓节点相对于匹配骨架关键点的第一偏移向量序列Offset11,伸缩变换为:
其中,gx(Δxi),gy(Δyi)为第一偏移向量(Δxi,Δyi)的变换函数,形式如下:
针对包围的子结构的手柄点相对关联轮廓节点的第二偏移向量序列Offset21,伸缩变换为:
Offset2′1=Offset21
上述骨架关键点的变换函数fx(xi),fy(yi)与第一偏移向量变换函数gx(Δxi),gy(Δyi)中,(x1,ref,y1,ref)是坐标变换参考点的坐标;(x1,l,y1,d)是包围的子结构的字形包围盒的左下角坐标,(x1,r,y1,u)是包围的子结构的字形包围盒的右上角坐标;Factor1,xl,Factor1,xr是参考点的左侧和右侧骨架点关键点x方向上的收缩系数;Factor1,yd,Factor1,yu是参考点的下侧和上侧骨架关键点y方向上的收缩系数;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210041793.6A CN114359038A (zh) | 2022-01-14 | 2022-01-14 | 基于生成对抗网络的多风格动态组字方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210041793.6A CN114359038A (zh) | 2022-01-14 | 2022-01-14 | 基于生成对抗网络的多风格动态组字方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114359038A true CN114359038A (zh) | 2022-04-15 |
Family
ID=81092025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210041793.6A Pending CN114359038A (zh) | 2022-01-14 | 2022-01-14 | 基于生成对抗网络的多风格动态组字方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114359038A (zh) |
-
2022
- 2022-01-14 CN CN202210041793.6A patent/CN114359038A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111199531B (zh) | 基于泊松图像融合及图像风格化的交互式数据扩展方法 | |
US6903751B2 (en) | System and method for editing electronic images | |
US5987173A (en) | Interactive drawing recognition processing method and apparatus thereof | |
CN111723585A (zh) | 一种风格可控的图像文本实时翻译与转换方法 | |
US11386589B2 (en) | Method and device for image generation and colorization | |
CN110033054B (zh) | 基于协同笔画优化的个性化手写体迁移方法和系统 | |
CN114005123A (zh) | 一种印刷体文本版面数字化重建系统及方法 | |
CN101840582B (zh) | 一种地籍图地块的边界数字化方法 | |
CN111563563B (zh) | 一种手写体识别的联合数据的增强方法 | |
CN112784531A (zh) | 一种基于深度学习和部件拼接的中文字形及字库生成方法 | |
Xu et al. | Convolutional neural network for 3d object recognition using volumetric representation | |
Sharma et al. | Point cloud upsampling and normal estimation using deep learning for robust surface reconstruction | |
Rusakov et al. | Generating cuneiform signs with cycle-consistent adversarial networks | |
CN104881668A (zh) | 一种基于代表性局部模式的图像指纹提取方法及系统 | |
CN113963232A (zh) | 一种基于注意力学习的网络图数据提取方法 | |
CN103927533B (zh) | 一种针对早期专利文档扫描件中图文信息的智能处理方法 | |
US5572641A (en) | Method and device for graphs with different layers | |
CN117237623A (zh) | 一种无人机遥感图像语义分割方法及系统 | |
CN114359038A (zh) | 基于生成对抗网络的多风格动态组字方法 | |
Baloun et al. | ChronSeg: Novel Dataset for Segmentation of Handwritten Historical Chronicles. | |
JP2845107B2 (ja) | 画像処理装置 | |
CN112419208A (zh) | 一种基于施工图审查矢量图纸编译方法及系统 | |
Pohle-Fröhlich et al. | Roof Segmentation based on Deep Neural Networks. | |
JP2910344B2 (ja) | 画像処理方法 | |
JP5824309B2 (ja) | 画像処理装置、画像処理方法、およびプログラム |
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 |