一种无监督矢量字体生成方法及装置

未命名 09-08 阅读:106 评论:0


1.本发明涉及计算机图形学和计算机视觉技术领域,尤其涉及一种无监督矢量字体生成方法及装置。


背景技术:

2.随着计算机图形学和计算机视觉的兴起,用户对于个性化字体的需求不断扩张,具有各种风格的字体可以灵活地表达个性,带来动态视觉感知,能够在内容显示和分发方面发挥着重要作用。然而,多样化的创意字体的设计需要付出大量的时间及人力成本,生成效率和质量较低。


技术实现要素:

3.本发明提供一种无监督矢量字体生成方法及装置,用以解决现有技术中多样化的创意字体的设计需要付出大量的时间及人力成本,生成效率和质量较低的缺陷,只需确定参考字体位图特征向量,就能够生成高质量的矢量字体,无需矢量字形作为监督,将极大提高矢量字体的生成效率,减少字体设计的时间及人力成本,能够为多个行业的应用和推广提供可靠依据,为多样化字体设计提供素材。
4.本发明提供一种无监督矢量字体生成方法,包括:确定参考字体位图特征向量;根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;根据所述目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体。
5.根据本发明提供的一种无监督矢量字体生成方法,所述确定参考字体位图特征向量,包括:获取用户输入的若干个参考字体位图;根据若干个所述参考字体位图得到参考字体位图特征向量;或,获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。
6.根据本发明提供的一种无监督矢量字体生成方法,还包括:对所述从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。
7.根据本发明提供的一种无监督矢量字体生成方法,所述根据若干个所述参考字体位图得到参考字体位图特征向量,包括:采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个所述参考字体位图进行编码,以得到所述参考字体位图特征向量。
8.根据本发明提供的一种无监督矢量字体生成方法,所述根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量,包括:采用自注意力特征融合模块的堆叠的自注意力层结构将所述参考字体位图特征向量融合为参考字体的整体的特征向量;采用自注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和所述预设目标字符的嵌入向量进行融合,以得到所述目标字形的特征向量。
9.根据本发明提供的一种无监督矢量字体生成方法,所述根据所述目标字形的特征
向量得到目标字形位图,包括:采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对所述目标字形的特征向量进行解码,得到所述目标字形位图;采用l2范数损失函数和lpips感知损失函数监督所述目标字形位图的重建。
10.根据本发明提供的一种无监督矢量字体生成方法,所述根据所述目标字形的特征向量得到目标字形的基本部分的参数,包括:采用路径解码器的多层感知机结构对所述目标字形的特征向量进行解码,得到所述目标字形的基本部分的参数,所述目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;根据所述控制点坐标得到目标字形的占据场;采用目标字形的占据场的l1范数损失函数监督所述目标字形的基本部分的重建。
11.根据本发明提供的一种无监督矢量字体生成方法,所述根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体,包括:根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓;根据迭代优化后所述目标字形的粗糙轮廓遍历预设目标字符集,生成所述预设目标字符集中的每一个字符对应的矢量字形;根据所述每一个字符对应的矢量字形生成所述矢量字体。
12.根据本发明提供的一种无监督矢量字体生成方法,所述根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓,包括:对所述目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;采用可微分栅格化方法对所述目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;采用所述栅格化的字形位图的l1范数损失函数和所述目标字形的粗糙轮廓的长度的正则项损失函数对所述目标字形的粗糙轮廓进行细分、简化和修剪;采用所述目标字形位图监督所述栅格化的字形位图,以迭代优化所述目标字形的粗糙轮廓。
13.本发明还提供一种无监督矢量字体生成装置,包括:字体特征获取模块,用于确定参考字体位图特征向量;自注意力特征融合模块,用于根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;解码器,用于根据所述目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;矢量字体生成模块,用于根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体。
14.根据本发明提供的一种无监督矢量字体生成装置,所述字体特征获取模块为用户输入字体特征获取模块,用于获取用户输入的若干个参考字体位图;根据若干个所述参考字体位图得到参考字体位图特征向量;或,隐空间采样字体特征获取模块,用于获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。
15.根据本发明提供的一种无监督矢量字体生成装置,还包括字体特征插值模块,用于对所述从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。
16.根据本发明提供的一种无监督矢量字体生成装置,所述用户输入字体特征获取模块具体用于采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个所述参考字体位图进行编码,以得到所述参考字体位图特征向量。
17.根据本发明提供的一种无监督矢量字体生成装置,所述自注意力特征融合模块包括:自注意力层模块,用于采用自注意力特征融合模块的堆叠的自注意力层结构将所述参考字体位图特征向量融合为参考字体的整体的特征向量;前馈神经网络模块,用于采用自
注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和所述预设目标字符的嵌入向量进行融合,以得到所述目标字形的特征向量。
18.根据本发明提供的一种无监督矢量字体生成装置,所述解码器包括:图像解码模块,用于采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对所述目标字形的特征向量进行解码,得到所述目标字形位图;第一监督模块,用于采用l2范数损失函数和lpips感知损失函数监督所述目标字形位图的重建。
19.根据本发明提供的一种无监督矢量字体生成装置,所述解码器还包括:路径解码模块,用于采用路径解码器的多层感知机结构对所述目标字形的特征向量进行解码,得到所述目标字形的基本部分的参数,所述目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;占据场模块,用于根据所述控制点坐标得到目标字形的占据场;第二监督模块,用于采用目标字形的占据场的l1范数损失函数监督所述目标字形的基本部分的重建。
20.根据本发明提供的一种无监督矢量字体生成装置,所述矢量字体生成模块包括:迭代优化模块,用于根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓;矢量字形模块,用于根据迭代优化后所述目标字形的粗糙轮廓遍历预设目标字符集,生成所述预设目标字符集中的每一个字符对应的矢量字形;矢量字体模块,用于根据所述每一个字符对应的矢量字形生成所述矢量字体。
21.根据本发明提供的一种无监督矢量字体生成装置,所述迭代优化模块包括:运算模块,用于对所述目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;栅格化模块,用于采用可微分栅格化方法对所述目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;优化轮廓模块,用于采用所述栅格化的字形位图的l1范数损失函数和所述目标字形的粗糙轮廓的长度的正则项损失函数对所述目标字形的粗糙轮廓进行细分、简化和修剪;采用所述目标字形位图监督所述栅格化的字形位图,以迭代优化所述目标字形的粗糙轮廓。
22.本发明提供的一种无监督矢量字体生成方法及装置,该方法包括:确定参考字体位图特征向量;根据参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;根据目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;根据目标字形位图和目标字形的基本部分的参数生成矢量字体。只需确定参考字体位图特征向量,就能够生成高质量的矢量字体,无需矢量字形作为监督,将极大提高矢量字体的生成效率,减少字体设计的时间及人力成本,使得字体的生成变得简单方便,能够为多个行业的应用和推广提供可靠依据。能够丰富电影、电视、广告等数字媒体和文化行业的字体材料,为其多元化设计提供素材。
附图说明
23.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本发明提供的一种无监督矢量字体生成方法的流程示意图;
25.图2是本发明提供的一种无监督矢量字体生成方法的原理示意图;
26.图3是本发明提供的从无监督矢量字体生成模型的隐空间中直接采样新字体的示意图;
27.图4是本发明提供的从无监督矢量字体生成模型的隐空间中对字体进行插值操作的示意图;
28.图5是本发明提供的一种无监督矢量字体生成方法的迭代优化示意图;
29.图6是本发明无监督矢量字体生成方法生成的字体与现有技术的矢量字体生成方法生成的字体的对比结果示意图;
30.图7是本发明提供的一种无监督矢量字体生成装置的结构示意图。
具体实施方式
31.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.在计算机图形学和计算机视觉领域,具有各种风格的字体在内容显示和分发方面发挥着重要作用。优秀的字体设计是耗费时间和人力的。因此,如何自动生成高质量的矢量字体在艺术界和计算机图形与视觉界仍然是一项具有实际意义的任务。
33.为了解决上述技术问题,本发明提出了一种无监督矢量字体生成方法。该方法将字形表示成多个基本部分的组合,将复杂的序列预测过程拆分成基本部分的参数预测和轮廓优化过程,提升矢量字体生成的质量。
34.请参考图1,图1为本发明提供的一种无监督矢量字体生成方法的流程示意图。
35.本发明提供一种无监督矢量字体生成方法,包括:
36.101:确定参考字体位图特征向量;
37.102:根据参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;
38.103:根据目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;
39.104:根据目标字形位图和目标字形的基本部分的参数生成矢量字体。
40.具体的,本发明使用无监督矢量字体生成方法构建了一个矢量字体生成装置,包括图像编码器,自注意力特征融合模块,图像解码器,路径解码器。该方法首先确定参考字体位图特征向量这里的参考字体位图特征向量可以根据获取到的由用户输入的若干个参考字体位图得到,也可以从矢量字体生成模型的隐空间中采样得到,其中nr为输入的参考字体位图的数量,然后根据参考字体位图特征向量和预设目标字符的嵌入向量t得到目标字形的特征向量z
t
。之后根据目标字形的特征向量z
t
得到目标字形位图i,根据目标字形的特征向量z
t
得到目标字形的基本部分的参数{x
i,j
},1≤i≤2n,1≤j≤2m,n,m分别为基本部分的数量和每个部分中包含的贝塞尔曲线的数量。最后根
据目标字形位图i和目标字形的基本部分的参数{x
i,j
}生成矢量字体。
41.需要说明的是,字形指单个字符的外观性状,常见的表达形式是位图和矢量图。
42.字体指一个具有一致外观样式或风格、同一排版尺寸的字形的集合,通常包含常用的所有字符(如英文a-z,a-z共52个字符)对应的字形。
43.字形矢量图/矢量字形,通常由若干条绘制指令构成,移动笔端,绘制直线,绘制曲线,终止绘制等指令,用于描述字形的轮廓。字体渲染引擎会通过数学运算进行渲染,其优点是可以进行随意缩放保持清晰。
44.字形位图,也称字形图像,字形栅格化图像,指根据字形矢量图渲染得到的结果,通常以灰度图的形式呈现。
45.在模型的训练阶段,输入的字形位图和目标字形位图均从英文字符集随机采样得到,模型训练的损失函数包括目标字形图像的重建损失,目标字形图像的占据场(occupancy field)的重建损失,目标字体的特征空间的规范性损失,目标字形矢量表示栅格化得到的位图的重建损失,目标字形矢量轮廓的规范性损失。在模型的推理阶段,利用训练好的模型,遍历字符集,即可得到包含所有英文字母的与输入位图风格一致的矢量字体,本发明在此不作特别的限定。
46.该发明使用的字符集为包括英文a-z和a-z共52个字形的各种风格的字体集,训练过程中只需要提供字符集的字体图像,不需要提供字符集的字体绘图命令进行监督,本发明在此不作特别的限定。
47.综上,本发明的无监督矢量字体生成方法,只需确定参考字体位图特征向量,就能够生成高质量的矢量字体,无需矢量字形作为监督,将极大提高矢量字体的生成效率,减少字体设计的时间及人力成本,使得字体的生成变得简单方便,能够为多个行业的应用和推广提供可靠依据。能够丰富电影、电视、广告等数字媒体和文化行业的字体材料,为其多元化设计提供素材。
48.在上述实施例的基础上:
49.请参考图2,图2为本发明提供的一种无监督矢量字体生成方法的原理示意图。
50.请参考图3,图3为本发明提供的从无监督矢量字体生成模型的隐空间中直接采样新字体的示意图。
51.作为一种优选的实施例,确定参考字体位图特征向量,包括:获取用户输入的若干个参考字体位图;根据若干个参考字体位图得到参考字体位图特征向量;或,获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。
52.为了适用于用户给定少量同一风格的字形,生成和这些风格一致的其他所有字符的字形,构成完整的风格一致的字体的场景。确定参考字体位图特征向量的方式可以为获取用户输入的若干个参考字体位图;根据若干个参考字体位图得到参考字体位图特征向量。
53.为了适用于用户给定两个或多个不同风格的字体,对这些字体进行风格上的融合,得到兼具这些字体风格的新字体的场景,本发明提供的方法可以从模型的隐空间中直接采样新字体,给出了4个新字体的例子。本发明方法生成的字体的质量高,多样性好。
54.请参考图4,图4为本发明提供的从无监督矢量字体生成模型的隐空间中对字体进行插值操作的示意图。
55.作为一种优选的实施例,还包括:对从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。
56.本发明提供的方法可以在模型的隐空间中对字体的风格进行操作,如在两个字体的风格之间进行插值,实现平滑的渐变。图中显示的字体在粗细、圆角、宽度等方面平滑地变化。
57.作为一种优选的实施例,根据若干个参考字体位图得到参考字体位图特征向量,包括:采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个参考字体位图进行编码,以得到参考字体位图特征向量。
58.作为一种优选的实施例,根据参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量,包括:采用自注意力特征融合模块的堆叠的自注意力层结构将参考字体位图特征向量融合为参考字体的整体的特征向量;采用自注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和预设目标字符的嵌入向量进行融合,以得到目标字形的特征向量。
59.a:图像编码器采用带注意力机制的卷积和下采样神经网络模型结构,自注意力特征融合模块采用堆叠的自注意力层结构和前馈神经网络结构。图像编码器将参考字体位图编码成参考字体位图特征向量nr为输入的参考字体位图的数量。自注意力特征融合模块将与预设目标字符的嵌入向量t进行特征融合,得到目标字形的特征向量z
t
。该过程可以表示为
60.fi=ef(ri)
[0061][0062][0063]zt
=ffn([z
style
,t])
[0064]
其中εf为图像编码器,sa为堆叠的自注意力层,这里使用6层自注意力层,μ为字体特征向量的均值,σ为字体特征向量的标准差,∈为从均值为0,方差为1的分布中采样的随机向量,fi,z
style
,t,z
t
均为长度为256的向量,nr在训练中可以在一个范围内取值,如2≤nr≤5。ffn为一个多层感知机。z
style
所在的隐空间被kl散度损失项约束:
[0065][0066]
kl代表kl散度计算。
[0067]
作为一种优选的实施例,根据目标字形的特征向量得到目标字形位图,包括:采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对目标字形的特征向量进行解码,得到目标字形位图;采用l2范数损失函数和lpips感知损失函数监督目标字形位图的重建。
[0068]
b:图像解码器采用带注意力机制的卷积和上采样神经网络模型结构。将目标字形
的特征向量z
t
经过图像解码器,输出目标字形的位图,重建得到的图像记为u,该过程可以表示为
[0069][0070]
其中是图像解码器,由具有注意力机制的卷积神经网络穿插上采样层构成。采用l2损失和lpips感知损失进行约束
[0071][0072]
其中ig是数据集中的该字母的真实图像。
[0073]
作为一种优选的实施例,根据目标字形的特征向量得到目标字形的基本部分的参数,包括:采用路径解码器的多层感知机结构对目标字形的特征向量进行解码,得到目标字形的基本部分的参数,目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;根据控制点坐标得到目标字形的占据场;采用目标字形的占据场的l1范数损失函数监督目标字形的基本部分的重建。
[0074]
c:路径解码器采用多层感知机结构。将目标字形的特征向量z
t
经过路径解码器,输出目标字形的基本部分中包含的贝塞尔曲线的参数,记为{x
i,j
},1≤i≤2n,1≤j≤2m,n,m分别为基本部分的数量和每个部分中包含的贝塞尔曲线的数量,该过程可以表示为
[0075][0076]
其中是路径解码器,是一个多层感知机。在这里,前n组路径为正路径的控制点,后n组路径为负路径的控制点,且pi,qi为一对,表示第i个基本部分。每个路径pi,qi[0077]
由m段首尾相连的二阶贝塞尔曲线{b
i,j
(x
i,2j-1
,x
i,2j
,x
i,2j+1
)}构成(x
i,2m+1
=x
i,1
),其中b(a,b,c)表示由控制点a,b,c定义的二阶贝塞尔曲线(省略参数t),即
[0078]
b(t;a,b,c)=(1-t)2a+(1-t)tb+t2c,t∈[0,1]
[0079]
从控制点{x
i,j
}可以计算字形的占据场(occupancy field),占据场是一个定义在二维平面上的单值函数,其取值为0或1,当某点在字形内部时值为1,否则为0。pi的占据场如下定义:
[0080][0081]
qi的占据场定义也一致,则整个字形的占据场如下定义
[0082][0083]
即每个基本部分中pi除去qi的部分取并集就得到了最终的字形。我们进一步构造
关于的参数可微分的近似占据场,使得这一部分是端到端可训练的。用d(p;b)表示点p到贝塞尔曲线b的最短距离,则路径pi的有符号距离场(signed distance field)可以表示为
[0084][0085]
为点x到pi边界的有向距离,在pi内部则为负,反之为正。可微分的近似占据场表示为
[0086][0087][0088][0089]
其中α是一个抛物线核。采用l1损失约束
[0090][0091]
其中ig是数据集中的该字母的真实图像。
[0092]
请参考图5,图5为本发明提供的一种无监督矢量字体生成方法的迭代优化示意图。
[0093]
作为一种优选的实施例,根据目标字形位图和目标字形的基本部分的参数生成矢量字体,包括:根据目标字形的基本部分的参数和目标字形位图迭代优化目标字形的粗糙轮廓;根据迭代优化后目标字形的粗糙轮廓遍历预设目标字符集,生成预设目标字符集中的每一个字符对应的矢量字形;根据每一个字符对应的矢量字形生成矢量字体。
[0094]
作为一种优选的实施例,根据目标字形的基本部分的参数和目标字形位图迭代优化目标字形的粗糙轮廓,包括:对目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;采用可微分栅格化方法对目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;采用栅格化的字形位图的l1范数损失函数和目标字形的粗糙轮廓的长度的正则项损失函数对目标字形的粗糙轮廓进行细分、简化和修剪;采用目标字形位图监督栅格化的字形位图,以迭代优化目标字形的粗糙轮廓。
[0095]
d:从贝塞尔曲线的参数中使用paper.js工具计算目标字形的矢量的轮廓其中ci由若干条首尾相连的贝塞尔曲线组成,k为当前字形的独立的路径数。使用可微分栅格化方法diffvg将栅格化为字形位图,在栅格化的字形位图上应用l1范数损失函数,可以表示为
[0096][0097]
为了控制轮廓的复杂程度,还在轮廓的长度上应用了正则项损失函数约束
[0098][0099]
其中,len表示路径长度。
[0100]
迭代优化过程中应用损失
[0101][0102]
对的控制点进行优化。在迭代优化过程中还使用了三种策略提高矢量字形的质量和表示效率:1)细分(subdivision):将长度超过字体画布宽10%的贝塞尔曲线从其中点分为两段。2)简化(simplification):(a)将长度过短的贝塞尔曲线去掉;(b)将控制点夹角》171
°
的贝塞尔曲线近似为直线段;(c)对于相邻的直线段,如果它们的夹角》175
°
就将它们合并;对于相邻的曲线,如果它们对应的隐式曲线的系数构成的高维向量间的距离过小,就认为它们可以被一条曲线表示,将它们合并。3)修剪(pruning):去掉内部区域过小的贝塞尔路径。
[0103]
e:重复执行步骤a-d,生成所有英文字母对应的具有输入图像风格的字形得到完整的矢量字体。
[0104]
在模型的训练阶段,输入的字形位图和目标字形位图均从英文字符集随机采样得到,模型训练的损失函数包括目标字形图像的重建损失,目标字形图像的占据场(occupancy field)的重建损失,目标字体的特征空间的规范性损失,目标字形矢量表示栅格化得到的位图的重建损失,目标字形矢量轮廓的规范性损失。模型使用以下损失进行端到端的训练
[0105][0106]
其中,λ
p
,λi,λ
kl
是控制不同损失的系数。
[0107]
在模型的推理阶段,利用训练好的模型生成基本部分表示和图像表示,通过步骤d即可得到矢量字形。遍历预设目标字符集,例如所有的目标字母,即可得到包含所有英文字母的与输入位图风格一致的矢量字体。
[0108]
当然,本发明的无监督矢量字体生成方法可以但不仅限于英文字体的生成。
[0109]
在时间线上用不同颜色标出了三种优化策略的应用时间。图中同时也绘制了迭代优化过程中字形轮廓的变化,标出了路径的起止点和控制点。在轮廓下方记录了迭代优化过程中直线段和曲线段数量的变化。
[0110]
请参考图6,图6为本发明无监督矢量字体生成方法生成的字体与现有技术的矢量字体生成方法生成的字体的对比结果示意图。
[0111]
将本发明提供的方法ours和其他现有的三种先进的矢量字体生成方法和一种通用的字体图像生成方法对比,包括im2vec,deepvecfont,multi-implicits和attr2font。其中参考字体为gt,可以看到attr2font只能生成字体图像,在缩放时边缘会产生伪影。im2vec方法生成的矢量字形具有比较圆的角,不能保留字形的显著特征,同时还有部分缺失。multi-implicits方法生成的边不够平滑,比如第二个例子中的g,x等字母。deepvecfont方法生成的矢量字形可能会具有错误的拓扑,比如第一个例子中的a,l,z等字母。而本发明提出的方法显著好于现有的方法,不仅能把握字体的大小、倾斜等大致特征,
也能生成高质量的边角、衬线等字形细节。
[0112]
请参考图7,图7为本发明提供的一种无监督矢量字体生成装置的结构示意图。
[0113]
本发明还提供一种无监督矢量字体生成装置,包括:字体特征获取模块701,用于确定参考字体位图特征向量;自注意力特征融合模块702,用于根据参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;解码器703,用于根据目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;矢量字体生成模块704,用于根据目标字形位图和目标字形的基本部分的参数生成矢量字体。
[0114]
作为一种优选的实施例,字体特征获取模块为用户输入字体特征获取模块,用于获取用户输入的若干个参考字体位图;根据若干个参考字体位图得到参考字体位图特征向量;或,隐空间采样字体特征获取模块,用于获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。
[0115]
作为一种优选的实施例,还包括字体特征插值模块,用于对从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。
[0116]
作为一种优选的实施例,用户输入字体特征获取模块具体用于采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个参考字体位图进行编码,以得到参考字体位图特征向量。
[0117]
作为一种优选的实施例,自注意力特征融合模块包括:自注意力层模块,用于采用自注意力特征融合模块的堆叠的自注意力层结构将参考字体位图特征向量融合为参考字体的整体的特征向量;前馈神经网络模块,用于采用自注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和预设目标字符的嵌入向量进行融合,以得到目标字形的特征向量。
[0118]
作为一种优选的实施例,解码器包括:图像解码模块,用于采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对目标字形的特征向量进行解码,得到目标字形位图;第一监督模块,用于采用l2范数损失函数和lpips感知损失函数监督目标字形位图的重建。
[0119]
作为一种优选的实施例,解码器还包括:路径解码模块,用于采用路径解码器的多层感知机结构对目标字形的特征向量进行解码,得到目标字形的基本部分的参数,目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;占据场模块,用于根据控制点坐标得到目标字形的占据场;第二监督模块,用于采用目标字形的占据场的l1范数损失函数监督目标字形的基本部分的重建。
[0120]
作为一种优选的实施例,矢量字体生成模块包括:迭代优化模块,用于根据目标字形的基本部分的参数和目标字形位图迭代优化目标字形的粗糙轮廓;矢量字形模块,用于根据迭代优化后目标字形的粗糙轮廓遍历预设目标字符集,生成预设目标字符集中的每一个字符对应的矢量字形;矢量字体模块,用于根据每一个字符对应的矢量字形生成矢量字体。
[0121]
作为一种优选的实施例,迭代优化模块包括:运算模块,用于对目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;栅格化模块,用于采用可微分栅格化方法对目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;优化轮廓模块,用于采用栅格化的字形位图的l1范数损失函数和目标字形的粗糙轮廓的长度的正则项损失函数对目
标字形的粗糙轮廓进行细分、简化和修剪;采用目标字形位图监督栅格化的字形位图,以迭代优化目标字形的粗糙轮廓。
[0122]
对于本发明提供的一种无监督矢量字体生成装置的介绍请参照上述方法实施例,本发明在此不再赘述。
[0123]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种无监督矢量字体生成方法,其特征在于,包括:确定参考字体位图特征向量;根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;根据所述目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体。2.根据权利要求1所述的无监督矢量字体生成方法,其特征在于,所述确定参考字体位图特征向量,包括:获取用户输入的若干个参考字体位图;根据若干个所述参考字体位图得到参考字体位图特征向量;或,获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。3.根据权利要求2所述的无监督矢量字体生成方法,其特征在于,还包括:对所述从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。4.根据权利要求2所述的无监督矢量字体生成方法,其特征在于,所述根据若干个所述参考字体位图得到参考字体位图特征向量,包括:采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个所述参考字体位图进行编码,以得到所述参考字体位图特征向量。5.根据权利要求1所述的无监督矢量字体生成方法,其特征在于,所述根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量,包括:采用自注意力特征融合模块的堆叠的自注意力层结构将所述参考字体位图特征向量融合为参考字体的整体的特征向量;采用自注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和所述预设目标字符的嵌入向量进行融合,以得到所述目标字形的特征向量。6.根据权利要求1所述的无监督矢量字体生成方法,其特征在于,所述根据所述目标字形的特征向量得到目标字形位图,包括:采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对所述目标字形的特征向量进行解码,得到所述目标字形位图;采用l2范数损失函数和lpips感知损失函数监督所述目标字形位图的重建。7.根据权利要求1所述的无监督矢量字体生成方法,其特征在于,所述根据所述目标字形的特征向量得到目标字形的基本部分的参数,包括:采用路径解码器的多层感知机结构对所述目标字形的特征向量进行解码,得到所述目标字形的基本部分的参数,所述目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;根据所述控制点坐标得到目标字形的占据场;采用目标字形的占据场的l1范数损失函数监督所述目标字形的基本部分的重建。8.根据权利要求1至7任一项所述的无监督矢量字体生成方法,其特征在于,所述根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体,包括:
根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓;根据迭代优化后所述目标字形的粗糙轮廓遍历预设目标字符集,生成所述预设目标字符集中的每一个字符对应的矢量字形;根据所述每一个字符对应的矢量字形生成所述矢量字体。9.根据权利要求8所述的无监督矢量字体生成方法,其特征在于,所述根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓,包括:对所述目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;采用可微分栅格化方法对所述目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;采用所述栅格化的字形位图的l1范数损失函数和所述目标字形的粗糙轮廓的长度的正则项损失函数对所述目标字形的粗糙轮廓进行细分、简化和修剪;采用所述目标字形位图监督所述栅格化的字形位图,以迭代优化所述目标字形的粗糙轮廓。10.一种无监督矢量字体生成装置,其特征在于,包括:字体特征获取模块,用于确定参考字体位图特征向量;自注意力特征融合模块,用于根据所述参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;解码器,用于根据所述目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;矢量字体生成模块,用于根据所述目标字形位图和所述目标字形的基本部分的参数生成矢量字体。11.根据权利要求10所述的无监督矢量字体生成装置,其特征在于,所述字体特征获取模块为用户输入字体特征获取模块,用于获取用户输入的若干个参考字体位图;根据若干个所述参考字体位图得到参考字体位图特征向量;或,隐空间采样字体特征获取模块,用于获取从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量。12.根据权利要求11所述的无监督矢量字体生成方法,其特征在于,还包括字体特征插值模块,用于对所述从矢量字体生成模型的隐空间中采样的若干个参考字体位图特征向量间进行插值操作。13.根据权利要求11所述的无监督矢量字体生成方法,其特征在于,所述用户输入字体特征获取模块具体用于采用图像编码器的带注意力机制的卷积和下采样神经网络模型结构对若干个所述参考字体位图进行编码,以得到所述参考字体位图特征向量。14.根据权利要求10所述的无监督矢量字体生成方法,其特征在于,所述自注意力特征融合模块包括:自注意力层模块,用于采用自注意力特征融合模块的堆叠的自注意力层结构将所述参考字体位图特征向量融合为参考字体的整体的特征向量;前馈神经网络模块,用于采用自注意力特征融合模块的前馈神经网络结构对述参考字体的整体的特征向量和所述预设目标字符的嵌入向量进行融合,以得到所述目标字形的特征向量。15.根据权利要求10所述的无监督矢量字体生成方法,其特征在于,所述解码器包括:
图像解码模块,用于采用图像解码器的带注意力机制的卷积和上采样神经网络模型结构对所述目标字形的特征向量进行解码,得到所述目标字形位图;第一监督模块,用于采用l2范数损失函数和lpips感知损失函数监督所述目标字形位图的重建。16.根据权利要求10所述的无监督矢量字体生成方法,其特征在于,所述解码器还包括:路径解码模块,用于采用路径解码器的多层感知机结构对所述目标字形的特征向量进行解码,得到所述目标字形的基本部分的参数,所述目标字形的基本部分的参数为目标字形的多组路径的贝塞尔曲线的控制点坐标;占据场模块,用于根据所述控制点坐标得到目标字形的占据场;第二监督模块,用于采用目标字形的占据场的l1范数损失函数监督所述目标字形的基本部分的重建。17.根据权利要求10至16任一项所述的无监督矢量字体生成方法,其特征在于,所述矢量字体生成模块包括:迭代优化模块,用于根据所述目标字形的基本部分的参数和所述目标字形位图迭代优化目标字形的粗糙轮廓;矢量字形模块,用于根据迭代优化后所述目标字形的粗糙轮廓遍历预设目标字符集,生成所述预设目标字符集中的每一个字符对应的矢量字形;矢量字体模块,用于根据所述每一个字符对应的矢量字形生成所述矢量字体。18.根据权利要求17所述的无监督矢量字体生成方法,其特征在于,所述迭代优化模块包括:运算模块,用于对所述目标字形的基本部分的参数进行布尔运算,得到目标字形的粗糙轮廓;栅格化模块,用于采用可微分栅格化方法对所述目标字形的粗糙轮廓进行栅格化,得到栅格化的字形位图;优化轮廓模块,用于采用所述栅格化的字形位图的l1范数损失函数和所述目标字形的粗糙轮廓的长度的正则项损失函数对所述目标字形的粗糙轮廓进行细分、简化和修剪;采用所述目标字形位图监督所述栅格化的字形位图,以迭代优化所述目标字形的粗糙轮廓。

技术总结
本发明提供一种无监督矢量字体生成方法及装置,该方法包括:确定参考字体位图特征向量;根据参考字体位图特征向量和预设目标字符的嵌入向量,得到目标字形的特征向量;根据目标字形的特征向量得到目标字形位图和目标字形的基本部分的参数;根据目标字形位图和目标字形的基本部分的参数生成矢量字体,只需确定参考字体位图特征向量,就能够生成高质量的矢量字体,无需矢量字形作为监督,将极大提高矢量字体的生成效率,减少字体设计的时间及人力成本,能够为多个行业的应用和推广提供可靠依据,为多样化字体设计提供素材。为多样化字体设计提供素材。为多样化字体设计提供素材。


技术研发人员:张松海 刘应天 郭元晨 胡事民
受保护的技术使用者:清华大学
技术研发日:2023.04.28
技术公布日:2023/9/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐