CN117634421A - 字体信息处理方法、装置、电子设备及存储介质 - Google Patents
字体信息处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117634421A CN117634421A CN202311252170.4A CN202311252170A CN117634421A CN 117634421 A CN117634421 A CN 117634421A CN 202311252170 A CN202311252170 A CN 202311252170A CN 117634421 A CN117634421 A CN 117634421A
- Authority
- CN
- China
- Prior art keywords
- control point
- control
- points
- subset
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 32
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000003860 storage Methods 0.000 title claims description 31
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000008859 change Effects 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000012549 training Methods 0.000 claims description 94
- 238000012545 processing Methods 0.000 claims description 21
- 238000012216 screening Methods 0.000 claims description 20
- 230000000694 effects Effects 0.000 abstract description 17
- 238000013461 design Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 32
- 238000005516 engineering process Methods 0.000 description 28
- 238000009792 diffusion process Methods 0.000 description 15
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 7
- 210000001503 joint Anatomy 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 238000009499 grossing Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012938 design process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000004508 fractional distillation Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本申请公开了一种字体信息处理方法,属于计算机技术领域。该方法可以对字体对应的点集进行分类,得到需要进行点位变化的点集,并且对需要进行点位变化的点集再次分类,得到只考虑创意变化而进行点位变动的点形成第一子集,以及既考虑到创意变化又考虑到接缝平滑而进行点位变动的点形成的第二子集,对于第一子集的点在点位迭代变化过程中仅考虑点位损失,对于第二子集的点在点位迭代变化过程中不仅考虑点位损失还考虑接缝损失,这样可以使得点位迭代后第一子集的点和第二子集的点充分满足创意变化的需求,而第二子集的点还可以确保局部创意变化的点迹轮廓与未发生点位变化的点迹轮廓平滑衔接,降低接缝畸变,确保局部创意字体变化效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及字体信息处理方法、装置、电子设备及存储介质。
背景技术
相关技术中可以根据一些指示信息对字体的轮廓进行变化,从而增强字体的表现力,提升字体的信息载量,这种技术方案为字体创意设计。相关技术中对完整的字体进行创意设计过程中基本不存在接缝畸变的情况,原因在于字体轮廓是宏观整体都发生了变化,但是如果只变更完整的字体中的部分轮廓,被变更的轮廓和未被变更的轮廓的接缝位置就容易出现畸变。因为相关技术中的创意设计技术方案并未考虑到接缝的存在,也未考虑接缝对接问题,因此,如果将其直接运用到对局部笔画的创意设计,会出现接缝畸变的问题,无法实现既保证局部笔画对应点的点位按照预设要求变化,同时让其余笔画跟点位变化后的局部笔画能够平滑的衔接,因此,无法保证整体的创意设计效果。
发明内容
本申请实施例提供了一种字体信息处理方法,能够在对局部笔画进行轮廓形变从而实现创意设计的同时,消弭接缝畸变现象,既实现局部笔画对应点的点位按照预设要求变化,同时还能够让其余笔画跟点位变化后的局部笔画能够平滑的衔接,进而保证整体的创意设计效果。
根据本申请实施例的一个方面,提供了一种字体信息处理方法,所述方法包括:
获取第一字体对应的初始控制点集和轮廓变形指示信息;
在所述初始控制点集中,确定第一子集和第二子集,所述第一子集中的全部控制点都为第一类控制点,所述第二子集中的全部控制点都为第二类控制点;所述第一类控制点为在训练过程中基于点位损失发生点位变动的点,所述第二类控制点为在训练过程中基于所述点位损失和接缝损失发生点位变动的点,所述点位损失用于指示基于所述轮廓变形指示信息确定出的对应的点的位置损失,所述接缝损失用于指示接缝畸变产生的损失;
基于所述第一子集和所述第二子集,确定训练控制点集,所述训练控制集的控制点数量小于所述初始控制点集的控制点数量;
基于所述轮廓变形指示信息对所述训练控制点集进行训练,得到目标训练控制点集;
基于所述目标训练控制点集,得到第二字体,所述第二字体为所述第一字体基于所述轮廓变形指示信息的点位变化结果。
根据本申请实施例的一个方面,提供了一种字体信息处理装置,所述装置包括:
处理参数获取模块,用于获取第一字体对应的初始控制点集和轮廓变形指示信息;
点集分类模块,用于在所述初始控制点集中,确定第一子集和第二子集,所述第一子集中的全部控制点都为第一类控制点,所述第二子集中的全部控制点都为第二类控制点;所述第一类控制点为在训练过程中基于点位损失发生点位变动的点,所述第二类控制点为在训练过程中基于所述点位损失和接缝损失发生点位变动的点,所述点位损失用于指示基于所述轮廓变形指示信息确定出的对应的点的位置损失,所述接缝损失用于指示接缝畸变产生的损失;
点位迭代模块,用于基于所述第一子集和所述第二子集,确定训练控制点集,所述训练控制集的控制点数量小于所述初始控制点集的控制点数量;基于所述轮廓变形指示信息对所述训练控制点集进行训练,得到目标训练控制点集;以及,基于所述目标训练控制点集,得到第二字体,所述第二字体为所述第一字体基于所述轮廓变形指示信息的点位变化结果。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述字体信息处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述字体信息处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行以实现上述字体信息处理方法。
本申请实施例提供的技术方案可以带来如下有益效果:
本申请实施例提出一种字体信息处理方法,该字体信息处理方法可以首先对字体对应的点集进行分类,得到需要进行点位变化的点集,并且对需要进行点位变化的点集再次分类,得到只考虑创意变化而进行点位变动的点形成第一子集,以及既考虑到创意变化又考虑到接缝平滑而进行点位变动的点形成的第二子集,对于第一子集的点在点位迭代变化过程中仅考虑点位损失,对于第二子集的点在点位迭代变化过程中不仅考虑点位损失还考虑接缝损失,这样可以使得点位迭代后第一子集的点和第二子集的点充分满足创意变化的需求,而第二子集的点还可以确保局部创意变化的点迹轮廓与未发生点位变化的点迹轮廓平滑衔接,降低接缝畸变,确保局部创意字体变化效果。综合来说,本申请实施例提供的一种字体信息处理方法是针对字体设计的精细化控制算法,可以实现AI字体设计对局部笔画的精细化控制。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的可训练字形控制点集示意图;
图2是本申请一个实施例提供的可训练字形控制点集经过部分局部笔画创意设计后的结果示意图;
图3是本申请一个实施例提供的应用程序运行环境的示意图;
图4是本申请一个实施例提供的字体信息处理方法的流程图;
图5是本申请一个实施例提供的多个控制点集确定方法示意图;
图6是本申请一个实施例提供的局部控制点筛选过程示意图;
图7是本申请一个实施例提供的第一子集和第二子集的确定方法流程示意图;
图8是本申请一个实施例提供的第三控制点集确定方式示意图;
图9是本申请一个实施例提供的接缝损失计算方法流程示意图;
图10是本申请一个实施例提供的接缝损失确定过程示意图;
图11是本申请一个实施例提供的一种基于点位损失调整第一子集的过程示意图;
图12是本申请一个实施例提供的字体信息处理方式整体示意图;
图13是本申请一个实施例提供的接缝控制点子集的平滑效果示意图;
图14是本申请一个实施例提供的术方案执行效果示意图;
图15是本申请一个实施例提供的字体信息处理装置的框图;
图16是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
在介绍本申请提供的方法实施例之前,先对本申请方法实施例中可能涉及的相关术语或者名词进行简要介绍,以便于本申请领域技术人员理解。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
深度学习:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步地说,就是指用摄影机和电脑代替。人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
文生图:文生图指的是根据文本生成对应的图片。
提示工程(Prompt Engineering,也称为In-Context Prompting)指在不更新模型参数的前提下、通过输入文本等方法来操控大型语言模型(Large Language Model)以指导其行为、引导其生成需要的结果的方法。提示工程是一种相对较新的学科,用于开发和优化提示,以有效地使用语言模型来处理各种应用和研究主题。
Stable Diffusion简称SD,是一种潜在扩散模型(Latent Diffusion Model),它基于DDPM(Denoising Diffusion Probabilistic Models,去噪扩散概率模型)进行速度优化而成。SD是CompVis、Stability AI和LAION等公司研发的一个文生图模型,它的模型和代码是开源的,而且训练数据LAION-5B也是开源的。Stable Diffusion的设计与训练基于提示工程思想,输入Stable Diffusion的文本信息即可以被理解一种提示信息(prompt)。
SD通过在U-Net中引入text condition(文本条件)来实现基于文本生成图像。SD的核心来源于潜在扩散模型(Latent Diffusion)的工作,其是一种可以生成图像的模型,它先采用一个autoencoder(自动编码器)将输入的样本图像压缩到latent空间,转化为压缩的featuremap(特征图),在featuremap基础上进行加噪、去噪过程,大幅度降低了计算量,并最终基于autoencoder的decoder(解码)模块就可以得到生成的图像。SD是DDPM速度优化后得到的一种模型,DDPM也是一种图像生成模型,它通过扩散和逆扩散过程来生成图像。扩散过程是指向数据集的真实图片中逐步加入高斯噪声,而逆扩散过程是指对加了噪声的图片逐步去噪,从而还原出真实图片。加噪过程满足一定的数学规律,而去噪过程则采用神经网络来学习。这样,DDPM就可以从一堆杂乱无章的噪声图片中生成真实图片了。但是DDPM中图片的特征尺寸不变,会带来巨大的计算开销,而SD中基于压缩的featuremap实现了提速,性能优于DDPM,但是原理是一致的。
SD模型的主体结构,主要包括三个模型:
autoencoder(自动编码器):autoencoder将图像压缩到latent空间,而autoencoder中的decoder(解码器)将latent解码为图像;
CLIP text encoder(CLIP文本编码器):提取输入文字的text embeddings(文本特征),通过cross attention(注意力交叉)方式送入潜在扩散模型的U-Net中作为textcondition(文本条件);CLIP是文-图检索的经典工作,论文为《Learning TransferableVisual Models From Natural Language Supervision》,属于学术通用专有名词,细节可参考论文。
U-Net网络:潜在扩散模型的主体,用来实现文本引导下的latent生成。
SD的文生图的推理流程可以被简述为:首先根据输入信息用CLIP text encoder提取文本嵌入特征(text embeddings),同时初始化一个随机噪音noise(latent上的,512x512图像对应的noise维度为64x64x4),然后将text embeddings和noise送入潜在扩散模型U-Net中生成去噪后的latent,最后送入autoencoder的decoder模块得到生成的图像。
在具体阐述本申请实施例之前,对与本申请实施例有关的相关技术背景进行介绍,以便于本申请领域技术人员理解。
AI字体设计旨在通过将指定概念的语义信息融入用贝塞尔曲线控制点所表示的字体轮廓中,以可学习的方式指示指定字体的轮廓发生变化,既保证轮廓表达出预先设定概念的语义,又保持字体的原本字形轮廓,形成一种再创作后的艺术字形,为艺术家提供设计灵感或设计素材。目前,相关技术中的AI字体设计方案只支持对完整的字体进行AI创意设计,但若直接运用到对局部笔画的AI创意设计时,会出现接缝畸变的问题。当然,本申请实施例并不限定对字体进行创意设计的具体方法,比如,可以利用一些文本信息以文生图的方式进行创意设计,即通过文生图中的文字信息来指导创意设计过程,文生图的方式属于计算机视觉和深度学习的范畴,在进行基于文生图方式的创意设计实施的过程中,可以使用提示学习的思想提升图像的生成效果,进而保证创意设计的效果。
相关技术中对完整的字体进行AI创意设计中接缝畸变的情况并不突出,原因在于字体轮廓是宏观整体都发生了变化,但是如果只变更完整的字体中的部分轮廓,那么被变更的轮廓和未被变更的轮廓的接缝位置就容易出现畸变。请参考图1,其示出本申请实施例提供的可训练字形控制点集示意图。该可训练字形控制点集形成了字母“e”的完整轮廓,所谓的可训练字形控制点集指的就是控制点的位置可以基于训练思想被变更,从而形成变更后的新的轮廓的点集,如果以创意设计相关的信息指导训练过程,可以使得变更后的新的轮廓体现创意结果,即将变更后的新的轮廓作为创意设计的结果。请参考图2,其示出本申请实施例提供的可训练字形控制点集经过部分局部笔画创意设计后的结果示意图。图2中可以看出明显的畸变现象。事实上,图2是将相关技术中的AI字体创意设计的技术方案直接应用在可训练字形控制点集中的部分点后产生的结果,因为相关技术中的创意设计技术方案并未考虑到接缝的存在,也未考虑接缝对接问题,因此,如果将其直接运用到对局部笔画的AI创意设计时,会出现接缝畸变的问题,无法实现既保证局部笔画对应点的点位按照预设要求变化,同时让其余笔画跟点位变化后的局部笔画能够平滑的衔接,因此,无法保证整体的AI创意设计效果。
有鉴于此,本申请实施例提出一种字体信息处理方法,该字体信息处理方法可以首先对字体对应的点集进行分类,得到需要进行点位变化的点集,并且对需要进行点位变化的点集再次分类,得到只考虑创意变化而进行点位变动的点形成第一子集,以及既考虑到创意变化又考虑到接缝平滑而进行点位变动的点形成的第二子集,对于第一子集的点在点位迭代变化过程中仅考虑点位损失,对于第二子集的点在点位迭代变化过程中不仅考虑点位损失还考虑接缝损失,这样可以使得点位迭代后第一子集的点和第二子集的点充分满足创意变化的需求,而第二子集的点还可以确保局部创意变化的点迹轮廓与未发生点位变化的点迹轮廓平滑衔接,降低接缝畸变,确保局部创意字体变化效果。综合来说,本申请实施例提供的一种字体信息处理方法是针对字体设计的精细化控制算法,可以实现AI字体设计对局部笔画的精细化控制。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图3,其示出了本申请一个实施例提供的应用程序运行环境的示意图。该应用程序运行环境可以包括:终端10和服务器20。
终端10包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备等电子设备。终端10中可以安装应用程序的客户端。
在本申请实施例中,上述应用程序可以是任何能够提供字体信息处理服务的应用程序。典型地,该应用程序可以为图像服务类应用程序。当然,除了图像服务类应用程序之外,其它类型的应用程序中也可以提供字体信息处理服务。例如,新闻类应用程序、社交类应用程序、互动娱乐类应用程序、浏览器应用程序、购物类应用程序、内容分享类应用程序、虚拟现实(Virtual Reality,VR)类应用程序、增强现实(Augmented Reality,AR)类应用程序等,本申请实施例对此不作限定。本申请实施例对此不作限定。可选地,终端10中运行有上述应用程序的客户端。
服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。
可选地,终端10和服务器20之间可通过网络30进行互相通信。终端10以及服务器20可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
请参考图4,其示出了本申请一个实施例提供的字体信息处理方法的流程图。该方法可应用于计算机设备中,上述计算机设备是指具备数据计算和处理能力的电子设备,如各步骤的执行主体可以是图3所示的应用程序运行环境中的服务器20。该方法可以包括以下几个步骤:
S401.获取第一字体对应的初始控制点集和轮廓变形指示信息。
本申请实施例中第一字体指的是进行形变之前的字体,也就是进行创意设计的对象。该字体可以包括字形、字号、字内容等信息,比如,中文楷体5号字的“桌”,英文黑体3号字的“A”都可以作为第一字体。
需要说明的是,本申请中的创意设计并非艺术领域的创意设计概念,而是一种根据一些指示信息对字体的轮廓进行变化,从而增强字体的表现力,提升字体的信息载量的技术方案。该指示信息即为该轮廓变形指示信息,比如,该轮廓变形指示信息提示第一字体中的横线应当具备波浪效果,则形变后得到的第二字体中的横线就呈现波浪效果。当然,本申请实施例指出在不考虑接缝畸变的情况下,基于轮廓变形指示信息对第一字体进行形变,得到创意设计结果的技术在相关技术中已有记载,也就是,如何进行用于满足轮廓变形指示信息的点位变化并非本申请实施例的重点内容,也不构成本申请实施例的实施障碍。
第一字体的轮廓是由初始控制点集中的控制点所形成的,上述初始控制点集中的各个控制点按照上述第一字体的点的绘制顺序被顺序编号,进行用于满足轮廓变形指示信息的点位变化的过程可以理解为:通过将轮廓变形指示信息的语义信息融入用贝塞尔曲线控制点所表示的第一字体轮廓中,以可学习的方式实现第一字体的轮廓变化,既保证轮廓表达出预先设定概念的语义,又保持字体的原本字形轮廓,形成一种再创作后的艺术字形,即第二字体。但是,本申请实施例不仅考虑到进行用于满足轮廓变形指示信息的点位变化的过程,还需要考虑到消弭接缝的问题,因此,相较于相关技术而言,本申请实施例提出了一种在消弭接缝方面进行过改进的字体变化方法。详情请参看下文。
S402.在上述初始控制点集中,确定第一子集和第二子集,上述第一子集中的全部控制点都为第一类控制点,上述第二子集中的全部控制点都为第二类控制点;上述第一类控制点为在训练过程中基于点位损失发生点位变动的点,上述第二类控制点为在训练过程中基于上述点位损失和接缝损失发生点位变动的点,上述点位损失用于指示基于上述轮廓变形指示信息确定出的对应的点的位置损失,上述接缝损失用于指示接缝畸变产生的损失;
本申请实施例使用点位迭代的方式进行点位(点的位置)的变动,发生点位迭代的点都是可以被训练的点,即可训练点,可训练点的点位根据自身对应的训练损失而发生变化,这一过程的原理本申请实施例不做赘述。第一子集和第二子集中的控制点都是可训练点,不同之处在于,第一子集中的控制点对应的训练损失仅包括点位损失,第二子集中的控制点对应的训练损失包括上述点位损失和接缝损失。其中,上述点位损失用于指示基于上述轮廓变形指示信息确定出的对应的点的位置损失,上述接缝损失用于指示接缝畸变产生的损失。点位损失是相关技术中进行字体创意设计的时候,在进行点位迭代环节需要计算的一种损失,其主要是用于衡量点位变动后的轮廓与轮廓变形指示信息的符合程度,比如,如果轮廓变形指示信息指示波浪线,则点位变动后的轮廓与波浪线的差异形成点位损失,关于点位损失的具体计算方式本申请不做限定,可以参考相关技术,其不构成本申请实施例的实施障碍。接缝损失是本申请实施例所提出的,在第一字体局部轮廓因为点位迭代发生变更的时候,基于变更后的轮廓与未被变更的轮廓之间的接缝的畸变程度即得到该接缝损失。
本申请实施例并不限定第一子集和第二子集的确定方法,比如,可以直接在已知需要进行点位迭代的点都是哪些点的前提下,根据该需要进行点位迭代的点查找到接缝位置对应的点,然后在接缝位置对应的点所在的一段轮廓上截取一部分点作为第二子集,将需要进行点位迭代的全部点与该第二子集的差集作为第一子集。
在一个实施方式中,上述在上述初始控制点集中,确定第一子集和第二子集,包括:
S4021.基于控制点筛选信息在上述初始控制点集中提取第一控制点集,上述控制点筛选信息用于指示基于上述轮廓变形指示信息进行点位变动的点;将上述初始控制点集和上述第一控制点集的差集确定为第二控制点集;
本申请实施例并不限定第一控制点集的确定方法,比如,用户可以在上述初始控制点集中选择至少一个线段,各被选择的线段中的点形成目标控制点集,基于该目标控制点集即可确定该第一控制点集,该用户输入的用于选择线段的信息即为控制点筛选信息。
在一个可行的实施方式中,上述基于控制点筛选信息在上述初始控制点集中提取第一控制点集,包括:在上述控制点筛选信息指向多边形轮廓的情况下,将上述初始控制点集中落入上述多边形轮廓的控制点形成的点集确定为目标控制点集。
请参考图5,其示出本申请实施例提出的多个控制点集确定方法示意图。图5中,控制点筛选信息由用户输入,基于该控制点筛选信息形成多边形点集V,多变形点集V形成多边形轮廓。通过位置关系判断,找出初始控制点集P0中包含在多边形点集V所表示的多边形内的点,得到目标控制点集。该目标控制点集体现了对于可训练的控制点的初步筛选结果,在图5中将其记录为非标准化的可训练字形控制点子集Pt0。
在一些实施方式中,对于可训练的控制点的数量是有要求的,即提出了预设数量要求。如果目标控制点集中的控制点的数量满足该预设数量要求,将目标控制点集作为第一控制点集。在上述目标控制点集的控制点数量不满足预设数量要求的情况下,对上述目标控制点集中的控制点进行删除处理,直至上述目标控制点集中的控制点数量满足上述预设要求。
举个例子,如果可训练的控制点在训练过程中基于三阶贝塞尔曲线进行点位迭代,则希望可训练的控制点的总数为3的倍数,也就是,希望第一控制点集中点的数量为3的倍数,进而最终得到的第一子集也是3的倍数。当然,本申请并不对删除处理的方式进行限制,优先删除接缝附近的控制点,值得注意的是,上述删除操作并不是将控制点直接忽略不计,而是将该控制点从目标控制点集中删除,将该控制点作为不可训练的点,也就是该点作为第二控制点集中的点。在一个实施方式中,上述对上述目标控制点集中的控制点进行删除处理,包括:在上述目标控制点集中确定紧邻接缝的各目标控制点;删除上述目标控制点。可以逐个删除目标控制点直至达到预设数量要求,当然,如果目标控制点都删除之后还没有达到预设数量要求,可以重新执行“在上述目标控制点集中确定紧邻接缝的各目标控制点;删除上述目标控制点”的操作,删除新得到的接缝处的目标控制点,直至达到预设数量要求。
在一个具体的实施方式中,可以首先计算len(Pt0)对3的余数mod,len(Pt0)指的是非标准化训练字形控制点子集Pt0的点数,然后找到接缝的位置,在该位置处向前查找一共得到mod个位置,删除这些位置对应的控制点后,得到第一控制点集Ptrain,属于初始控制点集并且不属于第一控制点集的控制点形成的集合为第二控制点集Pu,第一控制点集和第二控制点集在图5中分别被称为可训练字形控制点子集Ptrain,不可训练字形控制点子集Pu。
图6是本申请实施例提出的局部控制点筛选过程示意图。虚线框表示用户输入的多边形V,该多边形V作为一种控制点筛选信息,基于该多边形V得到虚线框内黑色点形成的可训练字形控制点子集Ptrain,以及虚线框内和虚线框外灰色点形成的不可训练字形控制点子集Pu。
S4022.基于上述第一控制点集中的控制点在上述初始控制点集中的序号,以及上述第二控制点集中的控制点在上述初始控制点集中的序号,生成状态集,上述状态集指示每一上述序号对应的状态标识,上述第一控制点集中的控制点与上述第二控制集中的控制点具备不同的状态标识;
各个控制点都在初始控制点集中有对应的序号,根据上述第一控制点集中的控制点在上述初始控制点集中的序号,以及上述第二控制点集中的控制点在上述初始控制点集中的序号,生成状态集。在一个实施方式中,第一控制点集中的点对应的状态标识为1,第二控制点集中的点对应的状态标识为0,从而形成图5中的状态集St。
S4023.基于上述状态集确定接缝处控制点对应的序号;基于上述接缝处控制点对应的序号、预设的接缝宽度和上述第一控制点集,确定上述第一子集和上述第二子集。
不同于相关技术中直接对于第一控制点中的点进行点位迭代训练,本申请实施例不仅关注需要进行轮廓形变的点,也同样关注接缝处的点。因此,本申请实施例需要首先定位接缝,具体来说,就是基于上述状态集确定接缝处控制点对应的序号,如果状态发生变动,比如从0到1,则第一个1前面的0对应的序号就是接缝处控制点对应的序号,从而定位接缝处控制点。
请参考图7,其示出本申请实施例提供的第一子集和第二子集的确定方法流程示意图。上述基于上述接缝处控制点对应的序号、预设的接缝宽度和上述第一控制点集,确定上述第一子集和上述第二子集,包括:
S701.基于上述接缝宽度和上述接缝处控制点对应的序号,确定接缝控制点序号集,上述接缝控制点序号集中的最大序号和最小序号的差值等于上述接缝宽度,并且上述接缝处控制点对应的序号位于上述最大序号和最小序号形成的序号区间内;将上述初始控制点集中序号落入上述接缝控制点序号集的控制点形成的集合确定为第三控制点集;
上述接缝控制点序号集中的最大序号和最小序号的差值等于上述接缝宽度,并且上述接缝处控制点对应的序号位于上述最大序号和最小序号形成的序号区间内,说明接缝线段覆盖了原本的接缝位置,并且延伸到了需要变更的线段和原本不允许变更的线段。
本申请实施例并不限定接缝控制点序号集确定方法,只要满足S701的要求即可。在一个实施方式中,上述基于上述接缝宽度和上述接缝处控制点对应的序号,确定接缝控制点序号集,包括:在上述接缝宽度为奇数的情况下,将以上述接缝处控制点对应的序号为中间序号的连续控制点序号形成的集合确定为上述接缝控制点序号集;在上述接缝宽度为偶数的情况下,将以上述接缝处控制点对应的序号为中间序号的相邻序号的连续控制点序号形成的集合确定为上述接缝控制点序号集。然后,将上述初始控制点集中序号落入上述接缝控制点序号集的控制点形成的集合确定为第三控制点集。
S702.将上述第一控制点集和上述第三控制点集的差集确定为上述第一子集;将上述第三控制点集确定为上述第二子集。
需要注意的是,在一些实施方式中,本申请实施例需要保证第一子集的数量满足前述的预设数量要求,或者也需要保证第二子集的数量满足前述的预设数量要求,基于该预设数量要求需要对第一控制点集和第三控制点集的数量进行控制,对接缝宽度也基于该要求进行控制。
请参考图8,其示出本申请实施例的第三控制点集确定方式示意图。不论是第一控制点集还是第二控制点集,其内的每个控制点都有对应的序号,即位置索引index,经过前文的控制点集划分可以得到字形控制点状态集S,用0、1的序列表示,可训练字形控制点子集Ptrain(第一控制点集),在对应的长方形框中,用空白圆圈和灰色圆圈表示,不可训练字形控制点子集Pu(第二控制点集),在对应的长方形框中,用黑色圆圈表示。位于可训练字形控制点子集的边界处的灰色圆圈,即为接缝点,获取接缝点的位置索引,以其为中心,对称的找到对应接缝宽度seam_width个点,记为接缝控制点子集Pseam-0,形成第三控制点集,即第二子集,第一控制点集和该第三控制点集的差异即为第一子集。第二子集经过训练过程,不断进行点位迭代,比如,迭代t次得到Pseam-t。
S403.基于上述第一子集和上述第二子集,确定训练控制点集,上述训练控制集的控制点数量小于上述初始控制点集的控制点数量;基于上述轮廓变形指示信息对上述训练控制点集进行训练,得到目标训练控制点集;
需要提出的是,第二子集和第一子集总和构成了训练控制点集,训练控制点集中的点都是可训练点,并且其总量一定要小于上述初始控制点集的控制点数量,这样才能保证存在不发生点位迭代的点,这些点形成的轮廓不发生改变,从而确保发生点位迭代的点形成轮廓仅仅是第一字体的局部轮廓,从而确保本申请实施例应用于局部轮廓变更场景。
本申请实施例进行训练的过程就是第一子集和第二子集中的控制点进行点位迭代的过程,第一子集中的控制点基于点位损失进行点位迭代,第二子集中的控制点基于点位损失和接缝损失进行点位迭代。本申请实施例对于点位迭代的具体过程不做限定,并且关于点位损失的具体计算方式本申请不做限定,可以参考相关技术,其不构成本申请实施例的实施障碍。本申请实施例中当迭代次数达到预设的次数阈值,或者当点位损失以及接缝损失分别小于对应的损失阈值的情况下,停止迭代,得到目标训练控制点集。
请参考图9,其示出接缝损失计算方法流程示意图。上述接缝损失通过下述方法获取:
S901.在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之前,得到至少一个控制点组,每一上述控制点组包括三个序号相邻的上述控制点,不同的控制点组所包括的控制点不完全一样;
步骤S901中的所谓位置迭代指的是某一次或者说单次的点位迭代。请参考图10,其示出接缝损失确定过程示意图。图10中示例性的给出了接缝位置的控制点的序号以及相对位置关系。以seam_width=5为例,即接缝宽度为5,可以在第二子集中得到三个控制点组,控制点组通过其中的控制点的序号表示为{1,2,3}、{2,3,4}、{3,4,5}。
S902.根据每一上述控制点组中的三个控制点,计算三个夹角参数;基于上述三个夹角参数,计算上述控制点组对应的第一平均夹角参数;
对于每个控制点组,其包含三个相邻的控制点,形成了三个线段,那就能算出三个夹角,该三个夹角用A0、A1、A2表示,A0、A1、A2就是夹角参数,进而计算其平均夹角A,即第一平均夹角参数。
S903.在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之后,计算每一上述控制点组对应的第二平均夹角参数;将上述第二平均夹角参数与上述第一平均夹角参数的差异,确定为上述控制点组对应的单项角度损失;
第二平均夹角参数与第一平均夹角参数计算方法相同,不做赘述,只不过使用的是发生单次位置迭代之后的新位置计算出来的。本申请实施例并不限定单项角度损失具体确定方法,只要能体现差异就行,请参考图10,在一个实施例中可以将上述第二平均夹角参数与上述第一平均夹角参数的均方差作为该单项角度损失。
S904.基于各上述控制点组各自对应的单项角度损失,确定上述接缝损失。
本申请实施例并不限定基于各上述控制点组各自对应的单项角度损失,确定上述接缝损失的具体方法,比如,可以将各单项角度损失的均值作为该接缝损失,或者将每一单项角度损失都作为接缝损失指导对于该单项角度损失对应的控制点的点位迭代。
对于点位损失本申请实施例不做赘述,请参考图11,其示出本申请实施例提出的一种基于点位损失调整第一子集的过程示意图。本申请实施例中图11的初始字形控制点集P0和可训练字形控制点P都是指该第一子集。图11中的共形损失、得分蒸馏采样损失和色调保留损失中的至少一个都可以用于作为该点位损失。
图11中给定可训练字形控制点集P,可训练控制点集P经过可微光栅化渲染器可以得到初始化的光栅图R0和能参与到训练的光栅图R,可训练的光栅图R经过可逆的数据增广方法,得到一张新的图像,结合预训练的Stable Diffusion模型,得分蒸馏采样损失,用于将指定概念的语义信息以直接计算出来的梯度的方式依次回传到光栅图R,最终到达可训练的字形控制点集P,使得其中每个控制点的二维坐标位置发生偏移,逐渐形成指定概念的轮廓形状。
为了保证可训练的字形控制点集在经过轮廓点位变化后,仍然能保持跟原本字体相近的字形轮廓,初始字形控制点集P0与可训练字形控制点集P会经过三角化处理,例如德洛内三角化,得到可以表达几何形状的角度几何A0和角度几何A,一起得到共形损失,实现轮廓约束。
为了保证发生轮廓点位变化后的字形控制点集P经过可微光栅化渲染器渲染出来的光栅图R在整体色调上能够跟初始化的光栅图R0比较接近,光栅图会经过低通滤波器进行模糊处理,得到色调图R和色调图R0,得到色调保留损失,实现色调约束。
基于点位损失和接缝损失调整第二子集的过程与图11所示的过程相似,只是多引入了一个接缝损失而已,在此不做赘述。事实上图11所示的过程仅仅是基于点位损失调整第一子集的一种示例,相关技术中还存在很多其他方法,这并不构成本申请实施例的实施障碍,对此不做赘言。
S404.基于上述目标训练控制点集,得到第二字体,上述第二字体为上述第一字体基于上述轮廓变形指示信息的点位变化结果。
具体来说,本申请仅仅是对第一字体局部进行形变的技术方案,因此,可以在上述初始控制点集中,确定第三子集,上述第三子集为在训练过程中点位不发生变动的点;基于上述目标训练控制点集中各控制点的点位,和,上述第三子集中各点的点位,得到上述第二字体。也就是说,将发生形变的轮廓和不发生形变的轮廓所构成的整体字体作为第二字体,即作为上述第一字体基于上述轮廓变形指示信息的点位变化结果。
请参考图12,其示出本申请实施例提出的字体信息处理方式整体示意图。给定初始字形控制点集P0(初始控制点集)和用户输入的多边形点集V(轮廓变形指示信息),要求对包含在V集内的P0中代表局部笔画的字形控制点子集进行局部AI字体创意设计,初始字形控制点集P0和用户输入的多边形点集V经过控制点集分类后,被划分为不可训练的字形控制点子集Pu(第二控制点集)、可训练的字形控制点子集Ptrain(第一控制点集)和字形控制点状态集S,其中可训练的字形控制点子集Ptrain中的第一子集会经过基于点位损失进行点位迭代,从而使得其中控制点的位置发生变化,基于Pu、Ptrain、S得到第二子集,该第二子集初始为初始化接缝控制点子集Pseam-0,其中接缝宽度seam_width可以控制想要修复的接缝长度,其经过基于接缝损失和点位损失的点位迭代之后,得到对应的接缝控制点子集Pseam-t,接缝控制点子集Pseam-t可以使得接缝位置出曲线平滑,解决接缝畸变的问题。
请参考图13,其示出本申请实施例的接缝控制点子集的平滑效果示意图。图13中左图为没有对接缝控制点子集进行训练的字体变形效果示意图,使用相关技术中的字体变形方案考虑到了点位损失但是没有考虑接缝损失,没有设置接缝控制点子集,也没有对接缝控制点子集进行训练,因此存在较大的接缝畸变。图13中右图为对接缝控制点子集进行训练后的字体变形效果示意图。使用本申请实施例中的字体变形方案既考虑到了点位损失又考虑接缝损失,通过设置接缝控制点子集,并对接缝控制点子集进行训练,消弭接缝畸变。
请参考图14,其示出本申请实施例的技术方案执行效果示意图。其中,(d)体现使用本申请实施例后的效果图,可以看到上半部分的局部笔画仍然保持了跟(b)接近的创意形象,但是接缝处较(c)更加平滑,下半部分仍然保持跟原始字形相同,从而既达到了创意变形的目的,又达到了接缝平滑效果。
请参考图15,其示出了本申请一个实施例提供的字体信息处理装置的框图。该装置具有实现上述字体信息处理方法的功能,上述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置可以包括:
处理参数获取模块1501,用于获取第一字体对应的初始控制点集和轮廓变形指示信息;
点集分类模块1502,用于在上述初始控制点集中,确定第一子集和第二子集,上述第一子集中的全部控制点都为第一类控制点,上述第二子集中的全部控制点都为第二类控制点;上述第一类控制点为在训练过程中基于点位损失发生点位变动的点,上述第二类控制点为在训练过程中基于上述点位损失和接缝损失发生点位变动的点,上述点位损失用于指示基于上述轮廓变形指示信息确定出的对应的点的位置损失,上述接缝损失用于指示接缝畸变产生的损失;
点位迭代模块1503,用于基于上述第一子集和上述第二子集,确定训练控制点集,上述训练控制集的控制点数量小于上述初始控制点集的控制点数量;基于上述轮廓变形指示信息对上述训练控制点集进行训练,得到目标训练控制点集;以及,基于上述目标训练控制点集,得到第二字体,上述第二字体为上述第一字体基于上述轮廓变形指示信息的点位变化结果。
在一个实施例中,上述点位迭代模块1503,用于执行下述操作:
在上述初始控制点集中,确定第三子集,上述第三子集为在训练过程中点位不发生变动的点;
基于上述目标训练控制点集中各控制点的点位,和,上述第三子集中各点的点位,得到上述第二字体。
在一个实施例中,上述初始控制点集中的各个控制点按照上述第一字体的点的绘制顺序被顺序编号,上述点集分类模块1502,用于执行下述操作:
基于控制点筛选信息在上述初始控制点集中提取第一控制点集,上述控制点筛选信息用于指示基于上述轮廓变形指示信息进行点位变动的点;
将上述初始控制点集和上述第一控制点集的差集确定为第二控制点集;
基于上述第一控制点集中的控制点在上述初始控制点集中的序号,以及上述第二控制点集中的控制点在上述初始控制点集中的序号,生成状态集,上述状态集指示每一上述序号对应的状态标识,上述第一控制点集中的控制点与上述第二控制集中的控制点具备不同的状态标识;
基于上述状态集确定接缝处控制点对应的序号;
基于上述接缝处控制点对应的序号、预设的接缝宽度和上述第一控制点集,确定上述第一子集和上述第二子集。
在一个实施例中,上述点集分类模块1502,用于执行下述操作:
基于上述接缝宽度和上述接缝处控制点对应的序号,确定接缝控制点序号集,上述接缝控制点序号集中的最大序号和最小序号的差值等于上述接缝宽度,并且上述接缝处控制点对应的序号位于上述最大序号和最小序号形成的序号区间内;
将上述初始控制点集中序号落入上述接缝控制点序号集的控制点形成的集合确定为第三控制点集;
将上述第一控制点集和上述第三控制点集的差集确定为上述第一子集;
将上述第三控制点集确定为上述第二子集。
在一个实施例中,上述点集分类模块1502,用于执行下述操作:
在上述接缝宽度为奇数的情况下,将以上述接缝处控制点对应的序号为中间序号的连续控制点序号形成的集合确定为上述接缝控制点序号集;
在上述接缝宽度为偶数的情况下,将以上述接缝处控制点对应的序号为中间序号的相邻序号的连续控制点序号形成的集合确定为上述接缝控制点序号集。
在一个实施例中,上述点集分类模块1502,用于执行下述操作:
在上述控制点筛选信息指向多边形轮廓的情况下,将上述初始控制点集中落入上述多边形轮廓的控制点形成的点集确定为目标控制点集;
在上述目标控制点集的控制点数量不满足预设数量要求的情况下,对上述目标控制点集中的控制点进行删除处理,直至上述目标控制点集中的控制点数量满足上述预设要求。
在一个实施例中,上述点集分类模块1502,用于执行下述操作:
在上述目标控制点集中确定紧邻接缝的各目标控制点;
删除上述目标控制点。
在一个实施例中,上述点位迭代模块1503,用于执行下述操作:
在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之前,得到至少一个控制点组,每一上述控制点组包括三个序号相邻的上述控制点,不同的控制点组所包括的控制点不完全一样;
根据每一上述控制点组中的三个控制点,计算三个夹角参数;基于上述三个夹角参数,计算上述控制点组对应的第一平均夹角参数;
在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之后,计算每一上述控制点组对应的第二平均夹角参数;将上述第二平均夹角参数与上述第一平均夹角参数的差异,确定为上述控制点组对应的单项角度损失;
基于各上述控制点组各自对应的单项角度损失,确定上述接缝损失。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图16,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是服务器,以用于执行上述字体信息处理方法。具体来讲:
计算机设备1000包括中央处理单元(Central Processing Unit,CPU)1001、包括随机存取存储器(Random Access Memory,RAM)1002和只读存储器(Read Only Memory,ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O(Input/Output)系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,大容量存储设备1007可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable ReadOnly Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
根据本申请的各种实施例,计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述字体信息处理方法。
在示例性实施例中,还提供了一种计算机可读存储介质,上述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、上述至少一段程序、上述代码集或上述指令集在被处理器执行时以实现上述字体信息处理方法。
具体地,该字体信息处理方法包括:
获取第一字体对应的初始控制点集和轮廓变形指示信息;
在上述初始控制点集中,确定第一子集和第二子集,上述第一子集中的全部控制点都为第一类控制点,上述第二子集中的全部控制点都为第二类控制点;上述第一类控制点为在训练过程中基于点位损失发生点位变动的点,上述第二类控制点为在训练过程中基于上述点位损失和接缝损失发生点位变动的点,上述点位损失用于指示基于上述轮廓变形指示信息确定出的对应的点的位置损失,上述接缝损失用于指示接缝畸变产生的损失;
基于上述第一子集和上述第二子集,确定训练控制点集,上述训练控制集的控制点数量小于上述初始控制点集的控制点数量;
基于上述轮廓变形指示信息对上述训练控制点集进行训练,得到目标训练控制点集;
基于上述目标训练控制点集,得到第二字体,上述第二字体为上述第一字体基于上述轮廓变形指示信息的点位变化结果。
在一个实施方式中,上述基于上述目标训练控制点集,得到第二字体,包括:
在上述初始控制点集中,确定第三子集,上述第三子集为在训练过程中点位不发生变动的点;
基于上述目标训练控制点集中各控制点的点位,和,上述第三子集中各点的点位,得到上述第二字体。
在一个实施方式中,上述初始控制点集中的各个控制点按照上述第一字体的点的绘制顺序被顺序编号,上述在上述初始控制点集中,确定第一子集和第二子集,包括:
基于控制点筛选信息在上述初始控制点集中提取第一控制点集,上述控制点筛选信息用于指示基于上述轮廓变形指示信息进行点位变动的点;
将上述初始控制点集和上述第一控制点集的差集确定为第二控制点集;
基于上述第一控制点集中的控制点在上述初始控制点集中的序号,以及上述第二控制点集中的控制点在上述初始控制点集中的序号,生成状态集,上述状态集指示每一上述序号对应的状态标识,上述第一控制点集中的控制点与上述第二控制集中的控制点具备不同的状态标识;
基于上述状态集确定接缝处控制点对应的序号;
基于上述接缝处控制点对应的序号、预设的接缝宽度和上述第一控制点集,确定上述第一子集和上述第二子集。
在一个实施方式中,上述基于上述接缝处控制点对应的序号、预设的接缝宽度和上述第一控制点集,确定上述第一子集和上述第二子集,包括:
基于上述接缝宽度和上述接缝处控制点对应的序号,确定接缝控制点序号集,上述接缝控制点序号集中的最大序号和最小序号的差值等于上述接缝宽度,并且上述接缝处控制点对应的序号位于上述最大序号和最小序号形成的序号区间内;
将上述初始控制点集中序号落入上述接缝控制点序号集的控制点形成的集合确定为第三控制点集;
将上述第一控制点集和上述第三控制点集的差集确定为上述第一子集;
将上述第三控制点集确定为上述第二子集。
在一个实施方式中,上述基于上述接缝宽度和上述接缝处控制点对应的序号,确定接缝控制点序号集,包括:
在上述接缝宽度为奇数的情况下,将以上述接缝处控制点对应的序号为中间序号的连续控制点序号形成的集合确定为上述接缝控制点序号集;
在上述接缝宽度为偶数的情况下,将以上述接缝处控制点对应的序号为中间序号的相邻序号的连续控制点序号形成的集合确定为上述接缝控制点序号集。
在一个实施方式中,上述基于控制点筛选信息在上述初始控制点集中提取第一控制点集,包括:
在上述控制点筛选信息指向多边形轮廓的情况下,将上述初始控制点集中落入上述多边形轮廓的控制点形成的点集确定为目标控制点集;
在上述目标控制点集的控制点数量不满足预设数量要求的情况下,对上述目标控制点集中的控制点进行删除处理,直至上述目标控制点集中的控制点数量满足上述预设要求。
在一个实施方式中,上述对上述目标控制点集中的控制点进行删除处理,包括:
在上述目标控制点集中确定紧邻接缝的各目标控制点;
删除上述目标控制点。
在一个实施方式中,上述接缝损失通过下述方法获取:
在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之前,得到至少一个控制点组,每一上述控制点组包括三个序号相邻的上述控制点,不同的控制点组所包括的控制点不完全一样;
根据每一上述控制点组中的三个控制点,计算三个夹角参数;基于上述三个夹角参数,计算上述控制点组对应的第一平均夹角参数;
在上述训练控制点集中属于上述第二子集的控制点进行位置迭代之后,计算每一上述控制点组对应的第二平均夹角参数;将上述第二平均夹角参数与上述第一平均夹角参数的差异,确定为上述控制点组对应的单项角度损失;
基于各上述控制点组各自对应的单项角度损失,确定上述接缝损失。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述字体信息处理方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
另外,在本申请的具体实施方式中,涉及用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
以上上述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种字体信息处理方法,其特征在于,所述方法包括:
获取第一字体对应的初始控制点集和轮廓变形指示信息;
在所述初始控制点集中,确定第一子集和第二子集,所述第一子集中的全部控制点都为第一类控制点,所述第二子集中的全部控制点都为第二类控制点;所述第一类控制点为在训练过程中基于点位损失发生点位变动的点,所述第二类控制点为在训练过程中基于所述点位损失和接缝损失发生点位变动的点,所述点位损失用于指示基于所述轮廓变形指示信息确定出的对应的点的位置损失,所述接缝损失用于指示接缝畸变产生的损失;
基于所述第一子集和所述第二子集,确定训练控制点集,所述训练控制集的控制点数量小于所述初始控制点集的控制点数量;
基于所述轮廓变形指示信息对所述训练控制点集进行训练,得到目标训练控制点集;
基于所述目标训练控制点集,得到第二字体,所述第二字体为所述第一字体基于所述轮廓变形指示信息的点位变化结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标训练控制点集,得到第二字体,包括:
在所述初始控制点集中,确定第三子集,所述第三子集为在训练过程中点位不发生变动的点;
基于所述目标训练控制点集中各控制点的点位,和,所述第三子集中各点的点位,得到所述第二字体。
3.根据权利要求1或2所述的方法,其特征在于,所述初始控制点集中的各个控制点按照所述第一字体的点的绘制顺序被顺序编号,所述在所述初始控制点集中,确定第一子集和第二子集,包括:
基于控制点筛选信息在所述初始控制点集中提取第一控制点集,所述控制点筛选信息用于指示基于所述轮廓变形指示信息进行点位变动的点;
将所述初始控制点集和所述第一控制点集的差集确定为第二控制点集;
基于所述第一控制点集中的控制点在所述初始控制点集中的序号,以及所述第二控制点集中的控制点在所述初始控制点集中的序号,生成状态集,所述状态集指示每一所述序号对应的状态标识,所述第一控制点集中的控制点与所述第二控制集中的控制点具备不同的状态标识;
基于所述状态集确定接缝处控制点对应的序号;
基于所述接缝处控制点对应的序号、预设的接缝宽度和所述第一控制点集,确定所述第一子集和所述第二子集。
4.根据权利要求3所述的方法,其特征在于,所述基于所述接缝处控制点对应的序号、预设的接缝宽度和所述第一控制点集,确定所述第一子集和所述第二子集,包括:
基于所述接缝宽度和所述接缝处控制点对应的序号,确定接缝控制点序号集,所述接缝控制点序号集中的最大序号和最小序号的差值等于所述接缝宽度,并且所述接缝处控制点对应的序号位于所述最大序号和最小序号形成的序号区间内;
将所述初始控制点集中序号落入所述接缝控制点序号集的控制点形成的集合确定为第三控制点集;
将所述第一控制点集和所述第三控制点集的差集确定为所述第一子集;
将所述第三控制点集确定为所述第二子集。
5.根据权利要求4所述的方法,其特征在于,所述基于所述接缝宽度和所述接缝处控制点对应的序号,确定接缝控制点序号集,包括:
在所述接缝宽度为奇数的情况下,将以所述接缝处控制点对应的序号为中间序号的连续控制点序号形成的集合确定为所述接缝控制点序号集;
在所述接缝宽度为偶数的情况下,将以所述接缝处控制点对应的序号为中间序号的相邻序号的连续控制点序号形成的集合确定为所述接缝控制点序号集。
6.根据权利要求3所述的方法,其特征在于,所述基于控制点筛选信息在所述初始控制点集中提取第一控制点集,包括:
在所述控制点筛选信息指向多边形轮廓的情况下,将所述初始控制点集中落入所述多边形轮廓的控制点形成的点集确定为目标控制点集;
在所述目标控制点集的控制点数量不满足预设数量要求的情况下,对所述目标控制点集中的控制点进行删除处理,直至所述目标控制点集中的控制点数量满足所述预设要求。
7.根据权利要求6所述的方法,其特征在于,所述对所述目标控制点集中的控制点进行删除处理,包括:
在所述目标控制点集中确定紧邻接缝的各目标控制点;
删除所述目标控制点。
8.根据权利要求1所述的方法,其特征在于,所述接缝损失通过下述方法获取:
在所述训练控制点集中属于所述第二子集的控制点进行位置迭代之前,得到至少一个控制点组,每一所述控制点组包括三个序号相邻的所述控制点,不同的控制点组所包括的控制点不完全一样;
根据每一所述控制点组中的三个控制点,计算三个夹角参数;基于所述三个夹角参数,计算所述控制点组对应的第一平均夹角参数;
在所述训练控制点集中属于所述第二子集的控制点进行位置迭代之后,计算每一所述控制点组对应的第二平均夹角参数;将所述第二平均夹角参数与所述第一平均夹角参数的差异,确定为所述控制点组对应的单项角度损失;
基于各所述控制点组各自对应的单项角度损失,确定所述接缝损失。
9.一种字体信息处理装置,其特征在于,所述装置包括:
处理参数获取模块,用于获取第一字体对应的初始控制点集和轮廓变形指示信息;
点集分类模块,用于在所述初始控制点集中,确定第一子集和第二子集,所述第一子集中的全部控制点都为第一类控制点,所述第二子集中的全部控制点都为第二类控制点;所述第一类控制点为在训练过程中基于点位损失发生点位变动的点,所述第二类控制点为在训练过程中基于所述点位损失和接缝损失发生点位变动的点,所述点位损失用于指示基于所述轮廓变形指示信息确定出的对应的点的位置损失,所述接缝损失用于指示接缝畸变产生的损失;
点位迭代模块,用于基于所述第一子集和所述第二子集,确定训练控制点集,所述训练控制集的控制点数量小于所述初始控制点集的控制点数量;基于所述轮廓变形指示信息对所述训练控制点集进行训练,得到目标训练控制点集;以及,基于所述目标训练控制点集,得到第二字体,所述第二字体为所述第一字体基于所述轮廓变形指示信息的点位变化结果。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一项所述的字体信息处理方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至9任一项所述的字体信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311252170.4A CN117634421A (zh) | 2023-09-26 | 2023-09-26 | 字体信息处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311252170.4A CN117634421A (zh) | 2023-09-26 | 2023-09-26 | 字体信息处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117634421A true CN117634421A (zh) | 2024-03-01 |
Family
ID=90036571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311252170.4A Pending CN117634421A (zh) | 2023-09-26 | 2023-09-26 | 字体信息处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117634421A (zh) |
-
2023
- 2023-09-26 CN CN202311252170.4A patent/CN117634421A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116935169B (zh) | 文生图模型训练方法以及文生图方法 | |
CN111260754B (zh) | 人脸图像编辑方法、装置和存储介质 | |
CN110798636B (zh) | 字幕生成方法及装置、电子设备 | |
CN106355210B (zh) | 基于深度神经元响应模式的绝缘子红外图像特征表达方法 | |
CN116956116A (zh) | 文本的处理方法和装置、存储介质及电子设备 | |
CN113962192A (zh) | 汉字字体生成模型的生成方法、汉字字体生成方法及装置 | |
CN108241861A (zh) | 一种数据可视化方法及设备 | |
CN113537187A (zh) | 文本识别方法、装置、电子设备及可读存储介质 | |
CN116310028A (zh) | 三维人脸模型的风格迁移方法及系统 | |
CN117634421A (zh) | 字体信息处理方法、装置、电子设备及存储介质 | |
CN116955707A (zh) | 内容标签的确定方法、装置、设备、介质及程序产品 | |
CN114863000A (zh) | 发型生成的方法、装置、介质及设备 | |
CN113822521A (zh) | 题库题目的质量检测方法、装置及存储介质 | |
Stahovich | Pen-based interfaces for engineering and education | |
CN113129399A (zh) | 纹样生成 | |
CN110598392A (zh) | 人机验证方法、装置、存储介质及电子设备 | |
Hassab et al. | Generative Design Methodology for Double Curved Surfaces using AI | |
Wei et al. | Wall segmentation in house plans: fusion of deep learning and traditional methods | |
Avola et al. | Classifying and resolving ambiguities in sketch-based interaction | |
Ma et al. | A survey of Chinese character style transfer | |
Ghaemmaghami et al. | Integrated-Block: A New Combination Model to Improve Web Page Segmentation | |
KR102596257B1 (ko) | 기계가공 특징형상 인식 방법 및 이를 수행하기 위한 컴퓨팅 장치 | |
CN116661940B (zh) | 组件识别方法、装置、计算机设备和存储介质 | |
Ogbuokiri | Generation of similar images using bag context shape grammars | |
CN117095441A (zh) | 情绪信息处理方法、装置、设备、存储介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |