CN113140018B - 训练对抗网络模型的方法、建立字库的方法、装置和设备 - Google Patents
训练对抗网络模型的方法、建立字库的方法、装置和设备 Download PDFInfo
- Publication number
- CN113140018B CN113140018B CN202110487991.0A CN202110487991A CN113140018B CN 113140018 B CN113140018 B CN 113140018B CN 202110487991 A CN202110487991 A CN 202110487991A CN 113140018 B CN113140018 B CN 113140018B
- Authority
- CN
- China
- Prior art keywords
- model
- line
- word
- stroke
- loss
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/1914—Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries, e.g. user dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- 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/19007—Matching; Proximity measures
-
- 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/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
- G06V30/2268—Character recognition characterised by the type of writing of cursive writing using stroke segmentation
-
- 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/28—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
- G06V30/287—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of Kanji, Hiragana or Katakana characters
-
- 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/32—Digital ink
-
- 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/32—Digital ink
- G06V30/333—Preprocessing; Feature extraction
- G06V30/347—Sampling; Contour coding; Stroke extraction
Abstract
本公开披露了一种训练对抗网络模型的方法,涉及工智能领域,具体涉及计算机视觉和深度学习技术,可用于图像处理和图像识别场景下。具体实现方案为:对抗网络模型包括生成模型和判别模型,训练对抗网络模型的方法包括:使用生成模型基于具有笔锋和线条的笔锋字样本和具有线条的线条字样本来生成新字;使用判别模型来鉴别所生成的新字的真实性;基于生成模型所生成的新字以及判别模型的鉴别结果来计算基本损失;根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失;根据基本损失和轨迹一致损失来调整上述生成模型的参数。本公开还公开了一种训练对抗网络模型的装置、建立字库的方法和装置、电子设备和存储介质。
Description
技术领域
本公开涉及工智能领域,具体涉及计算机视觉和深度学习技术,可用于图像处理和图像识别场景下,特别涉及一种训练对抗网络模型的方法、建立字库的方法、装置、电子设备和存储介质。
背景技术
随着深度学习技术的进步,对抗网络在图像处理中得到广泛应用。通常基于对抗网络的图像处理都是应用在具有复杂内容的彩色图像上,例如照片、相册等等,无法针对文字图像实现高效、准确的处理。
发明内容
本公开提供了一种训练对抗网络模型的方法、装置、设备以及存储介质。
根据第一方面,提供了一种训练对抗网络模型的方法,上述对抗网络模型包括生成模型和判别模型,上述方法包括:使用生成模型基于具有笔锋和线条的笔锋字样本和具有线条的线条字样本来生成新字;使用判别模型来鉴别所生成的新字的真实性;基于生成模型所生成的新字以及上述判别模型的鉴别结果来计算基本损失;根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失;根据上述基本损失和上述轨迹一致损失来调整上述生成模型的参数。
根据第二方面,提供了一种建立字库的方法,该方法包括:使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字,其中上述对抗网络模型是根据上述的方法来训练的;以及基于所生成的风格字来建立字库。
根据第三方面,提供了一种训练对抗网络模型的装置,上述对抗网络模型包括生成模型和判别模型,上述装置包括:生成模块,用于使用生成模型基于具有笔锋和线条的笔锋字样本和具有线条的线条字样本来生成新字;鉴别模块,用于使用判别模型来鉴别所生成的新字的真实性;基本损失计算模块,用于基于生成模型所生成的新字以及上述判别模型的鉴别结果来计算基本损失;轨迹一致损失计算模块,用于根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失;调整模块,用于根据上述基本损失和上述轨迹一致损失来调整上述生成模型的参数。
根据第四方面,提供了一种建立字库的装置,该装置包括:产生模块,用于使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字,其中上述对抗网络模型是根据上述的方法来训练的;以及建立模块,用于基于所生成的风格字来建立字库。
根据第五方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器;其中,上述存储器存储有可被上述至少一个处理器执行的指令,上述指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述的方法。
根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,上述计算机指令用于使上述计算机执行上述的方法。
根据第七方面,提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现上述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开的一个实施例的可以应用训练对抗网络模型的方法和/或建立字库的方法的示例性系统架构示意图;
图2是根据本公开的一个实施例的训练对抗网络模型的方法的流程图;
图3是根据本公开一个实施例的对抗网络模型的示意图;
图4A是根据本公开一个实施例的线条字样本的示意图;
图4B是根据本公开一个实施例的笔锋字样本的示意图;
图5是根据本公开一个实施例的训练对抗网络模型的方法的流程图;
图6是根据本公开一个实施例的训练对抗网络模型中生成模型的示意图;
图7是根据本公开一个实施例的训练对抗网络模型中的判别模型的示意图;
图8是根据本公开一个实施例的对抗网络模型的训练方法的效果图;
图9是根据本公开的一个实施例的建立字库的方法的流程图;
图10是根据本公开一个实施例的训练对抗网络模型的装置的框图;
图11是根据本公开的一个实施例的建立字库的装置的框图;
图12是根据本公开的一个实施例的训练对抗网络模型的方法和/或建立字库的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开的技术方案中,所涉及的相关数据(如用户手写字)的记录,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
目前,字体设计行业在研究字形生成时,例如手写字字形的生成,主要是采用传统字体拆分再组合或者基于深度学习的技术方案。
基于传统字体拆分再组合的字形生成方案,主要是基于部首笔画拆解。该方案虽然能够保留用户的局部笔锋特征,但是整体的布局不够自然。
基于深度学习的字形生成方案大部分是基于GAN模型,通过输入少量用户的字体图像,直接端到端生成大规模的用户手写字体数据。在用户的手写字体各项特征中,用户的笔锋非常重要,它蕴含了用户书写时的速度、顿挫、转折等习惯。但是,基于GAN模型的字形生成方案产生的笔画不稳定,很大程度上影响了笔锋的正确生成。因此,基于深度学习的字形生成方案虽然能够学习用户笔画布局特征,但难以学习笔锋特点。
同时,基于深度学习的字形生成方案虽然是基于GAN模型的端到端的解决方案,但是单个模型难以同时学习到用户的手写布局风格以及笔锋风格。以及,现有的GAN模型通常需要真实的用户手写字做监督,然而在实际生产过程中,用户仅仅能提供很少的手写字,这加大了收集传统GAN模型所需训练数据的难度。
本公开的实施例提出了一种对抗网络模型的训练方法以及使用该训练模型来建立字库的方法。通过以具有笔锋和线条的笔锋字样本和具有线条的线条字样本作为训练数据,并在对抗网络模型的训练中引入了轨迹一致损失,使得对抗网络模型的训练受到线条字样本与新字之间的线条轨迹一致性的约束,从而使训练后的对抗网络模型能够实现更准确的字体迁移。
图1是根据本公开一个实施例的可以应用训练对抗网络模型的方法和/或建立字库的方法的示例性系统架构示意图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括多个终端设备101、网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101通过网络102与服务器103进行交互,以接收或发送消息等。终端设备101可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机等等。
本公开实施例所提供的对抗网络模型的训练方法以及建立字库的方法中的至少之一一般可以由服务器103执行。相应地,本公开实施例所提供的对抗网络模型的训练装置以及建立字库的装置中的至少之一一般可以设置于服务器103中。本公开实施例所提供的对抗网络模型的训练方法以及建立字库的方法也可以由不同于服务器103且能够与多个终端设备101和/或服务器103通信的服务器或服务器集群执行。相应地,本公开实施例所提供的对抗网络模型的训练装置以及建立字库的装置也可以设置于不同于服务器103且能够与多个终端设备101和/或服务器103通信的服务器或服务器集群中。
在本公开的实施例中,对抗网络模型可以包括生成模型和判别模型,生成模型可以基于预设图像来生成新的图像,判别模型用于判别生成的图像与预设图像之间的差异(或相似程度),判别模型的输出可以是范围在0到1的概率值,概率值越低则表示生成的图像与预设图像之间差异越大,概率值越高则表示生成的图像与预设图像之间越相似。对抗网络模型在训练过程中,生成模型的目标就是尽量生成与预设图像相近的图像,而判别模型的目标是尽量将生成模型生成的图像与预设图像区分开来,二者在训练过程中不断更新和优化。可以根据用户实际需求设置训练停止条件,从而在满足训练停止条件的情况下,得到满足用户要求的对抗网络模型。
图2是根据本公开一个实施例的训练对抗网络模型的方法的流程图。该对抗网络模型可以包括生成模型和判别模型,该方法可以包括操作S210~操作S250。
在操作S210,使用生成模型基于具有笔锋和线条的笔锋字样本和具有线条的线条字样本来生成新字。
线条字样本和笔锋字样本可以均为文字的图像。例如线条字样本可以是从具有个人风格的文字图像中提取的线条轨迹图(图像A),具有个人风格的文字图像包括但不限于用户的手写字图像。笔锋字样本可以是基础字体的文字图像(图像B),基础字体例如可以是楷体或宋体等常规字体。在一些实施例中,线条字样本的数量与笔锋字样本的数量可以不同,例如线条字样本的数量可以少于笔锋字样本的数量。例如可以采用几百个线条字和几万个笔锋字来作为训练样本。
例如,生成模型基于笔锋字样本,既可以为线条字样本增加笔锋,也可以为笔锋字样本增加笔锋。或者,生成模型基于线条字样本,既可以从线条字样本去除笔锋,也可以从笔锋字样本去除笔锋,下文将对此进一步详细说明。
在操作S220,使用判别模型来鉴别所生成的新字的真实性。
例如,判别模型可以鉴别基于笔锋字样本为线条字样本增加笔锋后形成的新字的真实性。或者,判别模型可以鉴别基于线条字样本从笔锋字样本去除笔锋生成的新字的真实性。
在操作S230,基于生成模型所生成的新字以及上述判别模型的鉴别结果来计算基本损失。
例如,根据本公开的实施例,基本损失包括但不限于对抗损失、重构损失和循环一致损失等等。
在操作S240,根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失。
例如,可以计算线条字样本与生成的新字的差值图,并基于上述差值图来计算二者的轨迹一致损失。差值图能够体现线条字样本与生成的新字之间的差异,因此基于差值图能够准确计算出二者的轨迹一致损失。
在操作S250,根据上述基本损失和上述轨迹一致损失来调整上述生成模型的参数。由于在上述损失计算中引入了轨迹一致损失,使得对抗网络模型的参数调整考虑到了新字与相应的线条字之间的轨迹一致性,从而能够提高所训练的对抗网络模型的准确性。
例如,生成模型的参数调整后,生成模型可以重新获取至少一个线条字和至少一个笔锋字,重复前述操作,得到新的对抗损失和新的轨迹一致损失,再调整生成模型的参数。
需要说明的是,在本公开的实施例中,上述操作可以顺序执行,也可以并行执行,也可以不同的次序执行。例如,操作S240可以在操作S210之后且在操作S220之前执行;或者,操作S240可以与操作S220或操作S230并行执行;或者,操作S240可以在操作S210执行了一部分后就执行。例如,操作S220可以在操作S210部分执行后就执行。
通过本公开实施例,通过具有笔锋和线条的笔锋字样本和具有线条的线条字样本作为训练数据,并在对抗网络模型的训练中引入了轨迹一致损失,使得对抗网络模型的训练受到线条字样本与新字之间的线条轨迹一致性的约束,从而使训练后的对抗网络模型能够实现更准确的字体迁移。
图3是根据本公开一个实施例的对抗网络模型的示意图。图3所示仅为可以应用本公开实施例的模型的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他环境或场景。
如图3所示,对抗网络模型包括生成模型和判别模型,其中生成模型可以包括第一生成模型3011和第二生成模型3012,判别模型可以包括第一判别模型3021和第二判别模型3022。
输入图像可以包括第一域的图像和第二域的图像,第一域的图像是仅具有文字线条的线条字,第二域的图像是具有文字线条和文字笔锋两者的笔锋字。第一生成模型3011可以将第一域的图像转换到第二域。第二生成模型3012可以将第二域的图像转换到第一域。第一判别模型3021可以鉴别第一域的图像的真实性,第二判别模型3022可以鉴别第二域的图像的真实性。
在训练时,可以用第一生成模型3011将第一域的图像转换到第二域,再用第二生成模型3012将第一生成模型3011输出的图像从第一域转换到第一域。类似地,用第二生成模型3012将第二域的图像转换到第一域,再用第一生成模型3011将第二生成模型3012输出的图像从第一域转换到第二域。可以用第一判别模型3021来鉴别第二生成模型3012输出的第一域的图像的真实性,用第二判别模型3022来鉴别第一生成模型3011输出的第二域的图像的真实性。根据第一生成模型3011、第二生成模型3012、第一判别模型3021和第二判别模型3022的输出中的至少之一,可以计算损失,并基于损失来调整对抗网络模型的参数。
图4A是根据本公开一个实施例的线条字样本的示意图。
如图4A所示,线条字样本能体现文字的轨迹线条。线条字中各个线条的粗细是一致的,不包含诸如粗细变化以及端部形状等关于笔锋的特征。例如,线条字样本为从用户处获取的手写字变换得到的,主要反映用户手写字的轨迹线条。例如,线条字样本是二值图像。例如,线条字样本中的像素只有0和255两个值。
图4B是根据本公开一个实施例的笔锋字样本的示意图。如图4B所示,笔锋字样本源自基础字体库,例如楷体字字体库、宋体字字体库、幼圆字字体库等。
应该理解,图4A和图4B所示文字的字体和内容仅仅是为了说明线条字样本和笔锋字样本的特征,而不旨在限制其具体内容和字体样式。
图5是根据本公开一个实施例的训练对抗网络模型的方法的流程图。该方法可以用来训练例包括第一生成模型、第二生成模型、第一判别模型和第二判别模型的对抗网络模型,例如以上参考图3描述的对抗网络模型。
可以使用第一生成模型和第二生成模型,基于具有笔锋字样本和线条字样本来生成新字,下面将参考下述操作S511~操作S516来对此进行详细说明。
在操作S511,使用第一生成模型基于笔锋字样本向线条字样本添加笔锋,得到生成笔锋字。
例如,可以使用第一生成模型基于笔锋字样本B向线条字样本A添加笔锋,得到生成笔锋字A2B(A)。
在操作512,使用第一生成模型基于笔锋字样本向笔锋字样本添加笔锋,得到重构笔锋字。
例如,可以使用第一生成模型基于笔锋字样本B向笔锋字样本B添加笔锋,得到重构笔锋字A2B(B)。
在操作S513,使用第二生成模型从生成笔锋字去除笔锋,得到再生线条字。
例如,可以使用第二生成模型基于线条字样本A从生成笔锋字A2B(A)去除笔锋,得到再生线条字B2A(A2B(A))。
在操作S514,使用第二生成模型基于线条字样本从笔锋字样本去除笔锋,得到生成线条字。
例如,可以使用第二生成模型基于线条字样本A从笔锋字样本B中去除笔锋,得到生成线条字B2A(B)。
在操作S515,使用第二生成模型基于线条字样本从线条字样本去除笔锋,得到重构线条字。
例如,可以使用第二生成模型基于线条字样本A从线条字样本A中去除笔锋,得到重构线条字B2A(A)。
在操作S516,使用第一生成模型向生成线条字添加笔锋,得到再生笔锋字。
例如,可以使用第一生成模型基于笔锋字样本B向生成线条字B2A(B)添加笔锋,得到再生笔锋字A2B(B2A(B))。
在生成新字以后,可以使用第一判别模型和第二判别模型来鉴别所生成的新字的真实性,下面将参考下述操作S521~操作S522来对此详细说明。
在操作S521,使用第二判别模型来鉴别生成笔锋字的真实性。
例如,可以使用第二判别模型来鉴别生成笔锋字A2B(A)的真实性,得到一个大于0且小于1的输出值。输出值趋近1表明A2B(A)更像笔锋字,输出值趋近于0表明A2B(A)更不像笔锋字。
在操作S522,使用第一判别模型来鉴别生成线条字的真实性。
例如,可以使用第一判别模型来鉴别B2A(B)的真实性,得到一个大于0且小于1的输出值。输出值趋近1表明B2A(B)更像线条字,输出值趋近于0表明B2A(B)更不像线条字。
在生成了上述各种新字以及第一和第二判别模型的鉴别结果之后,可以基于所生成的新字以及鉴别结果来计算基本损失,下面将参考操作S531~操作S536来对此进行详细说明。
在操作S531,基于第二判别模型的鉴别结果来计算第一生成模型的对抗损失。
例如,可以通过下式来计算第一生成模型的对抗损失:
L1_{adv}=E2[logD2(B)]+E1[log(1-D2(A2B(A)))]
其中,L1_{adv}表示第一生成模型的对抗损失,E1表示第一判别模型的期望算子,E2表示第二判别模型的期望算子,D2(B)表示第二判别模型鉴别笔锋字B的真实性得到的值,D2(A2B(A)表示第二判别模型鉴别生成笔锋字A2B(A)的真实性得到的值。
在操作S532,基于第一判别模型的鉴别结果来计算第二生成模型的对抗损失。
例如,可以通过下式来计算第二生成模型的对抗损失:
L2_{adv}=E1[logD1(A)]+E2[log(1-D1(B2A(B)))]
其中,L2_{adv}表示第二生成模型的对抗损失,E1表示第一判别模型的期望算子,E2表示第二判别模型的期望算子,D1(B)表示第一判别模型鉴别线条字A的真实性得到的值,D2(A2B(A)表示第一判别模型鉴别生成线条字B2A(B)的真实性得到的值。
在操作S533,基于重构笔锋字来计算第一生成模型的重构损失。
例如,可以通过下式来计算第一生成模型的重构损失:
L1_{rec}=||B-A2B(B)||
其中,L1_{rec}表示第一生成模型的重构损失,B表示笔锋字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,A2B(B)表示重构笔锋字,(B-A2B(B))表示笔锋字样本与重构笔锋字的差值图,“||||”表示图像的各像素值的平方和的开方。在操作S534,基于重构线条字来计算第二生成模型的重构损失。
例如,可以通过下式来计算第二生成模型的重构损失:
L2_{rec}=||A-B2A(A)||
其中,L2_{rec}表示第二生成模型的重构损失,A表示线条字样本,B2A表示使用第二生成模型来执行的去除笔锋操作,B2A(A)表示重构线条字,(A-B2A(A))表示线条字样本与重构线条字的差值图,“||||”表示图像的各像素值的平方和的开方。
在操作S535,基于再生线条字来计算第一生成模型的循环一致损失。
例如,可以通过下式来计算第一生成模型的循环一致损失:
L1_{cycle}=||A-B2A(A2B(A))||
其中,L1_{cycle}表示第一生成模型的循环一致损失,A表示线条字样本,B2A表示使用第二生成模型来执行的去除笔锋操作,A2B(A)表示生成笔锋字,B2A(A2B(A)表示再生线条字,(A-B2A(A2B(A)))表示线条字样本与再生线条字的差值图,“||||”表示图像的各像素值的平方和的开方。在操作S536,基于再生笔锋字来计算第二生成模型的循环一致损失。
例如,可以通过下式来计算第二生成模型的循环一致损失:
L2_{cycle}=||B-A2B(B2A(B))||;
其中,L2_{cycle}表示第二生成模型的循环一致损失,B表示笔锋字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,B2A(B)表示生成线条字,A2B(B2A(B))表示再生笔锋字,(B-A2B(B2A(B)))表示笔锋字样本与再生笔锋字的差值图,“||||”表示图像的各像素值的平方和的开方。
在生成了上述各种新字之后,可以根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失,下面将参考操作S540来对此进行详细说明。
在操作S540,根据线条字样本与生成笔锋字之间的线条轨迹一致性,来计算轨迹一致损失。
例如,可以通过下式来计算轨迹一致损失:
L_{traj}=||(A-A2B(A))*A||
其中,L_{traj}表示轨迹一致损失,A表示线条字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,A2B(A)表示生成笔锋字,(A-A2B(A))表示线条字样本与生成笔锋字的差值图,“*”表示逐像素相乘,“||||”表示图像的各像素值的平方和的开方。
例如,A为线条字“历”,A2B(A)为生成笔锋字(添加了笔锋的“历”),理想情况下,A2B(A)的图像可以完全覆盖A的图像,那么L_{traj}也会足够小。通过这种方式,能够以简单有效的方式来实现轨迹一致损失的计算,而不会过多的增加运算量,有助于高效地训练对抗网络。
在获得上述各种基本损失和轨迹一致损失之后,可以根据基本损失和上述轨迹一致损失来调整第一生成模型和第二生成模型的参数,下面将参考操作S551~操作S552来对此进行详细说明。
在操作S551,将各个基本损失和上述轨迹一致损失进行加权求和,得到总损失。
例如,可以通过下式来计算总损失:
L_{total}=λadv·(L1_{adv}+L2_{adV})+λrec·(L1_{rec}+L2_{rec})+λcycle·(L1_{cycle}+L2_{cycle})+λtraj·L_{traj}
其中,L_{total}表示总损失,L1_{adv}表示第一生成模型的对抗损失,L2_{adv}表示第二生成模型的对抗损失,L_{traj}表示轨迹一致损失。λadv表示对抗损失的权重,λrec表示重构损失的权重,λcycle表示循环一致损失的权重,λtraj表示轨迹一致损失的权重。通过这种方式,能够将轨迹一致损失与基本损失相结合,从而计算出能够更加全面地约束训练过程的总损失。
在操作S552,根据总损失来调整第一生成模型和第二生成模型的参数。
例如,参数调整后的第一生成模型和参数调整后的第二生成模型重新获取一个线条字(例如,“军”)和一个笔锋字(例如,“孟”),重复前述操作,得到新的基本损失和新的轨迹一致损失,再调整生成模型的参数。
在一些实施例中,线条字样本是通过从手写字的图像中提取线条轨迹得到的二值图像,上述笔锋字样本是具有基础字体的文字的二值图像。因此,在上述过程中基于线条字样本和笔锋字样本生成的各个新字(例如生成笔锋字、生成线条字等等)均为二值图像。二值图像的各个像素值可以均为两个值中的一个,例如要么为0,要么为1。相比于像素值在0至255之间的彩色图像来说,能够大大加快计算速度,提高处理效率。特别是在线条字样本和生成笔锋字均为二值图像的情况下,能够在S540中通过上述简单的计算公式快速、准确地计算出线条字样本与生成笔锋字之间的轨迹一致损失,从而提高训练速度,节省训练时间。
以上是对训练对抗网络过程中一次迭代的示意。在本公开的实施例中,训练对抗网络的方法可以进行多次迭代。例如在执行步骤S552之后,可以判断调整次数是否超过预设的迭代次数,如果是,则训练过程结束,否则针对至少另一个线条字样本和至少另一个笔锋字样本返回操作S511。
以上虽然以特定的顺序描述了各个步骤,然而本公开的实施例不限于此,各个步骤可以根据需要以其他顺序来执行。例如,操作S511、操作S512、操作S514、操作S515可以是并行执行的,也可以任意顺序先后执行。在一些实施例中,操作S533~操作S534可以在操作S513和操作S516之前执行,或者与操作S513和操作S516并行执行,或者在操作S513和操作S516之后执行。在一些实施例中,操作S540可以在操作S511~516之后且在操作S521~操作522之前执行。在一些实施例中,操作S540可以与操作S521~操作S522并行执行。在一些实施例中,操作S540可以在操作S531~操作S536之前执行或与操作S531~操作S536并行执行。
根据本公开的实施例,可以有效的提高模型训练效率,训练出的第一生成模型可以更加准确的为用户手写字体添加笔锋,生成具有定制化风格的字体,从而改善用户体验。
图6是根据本公开一个实施例的对抗网络模型的中生成模型的示意图。上述任意实施例中的第一生成模型和第二生成模型中的至少一个可以采用如图6所示的结构。下面以第一生成模型在训练过程中执行的操作为例来对图6所示的生成模型进行描述。第二生成模型的工作原理与第一生成模型相同,这里不再赘述。
如图6所示,生成模型600包括第一编码器610、第一辅助分类器620、全卷积网络630和解码器640。
在训练过程中,第一编码器610以线条字样本601和笔锋字样本602合成的图像为输入。第一编码器610包括两个下采样层及四个跨层连接块。第一编码器610对线条字样本601和笔锋字样本602合成的图像执行卷积和跨层连接操作后,输出具有n个通道的第一特征图603。可以对第一特征图603进行最大池化处理及平均池化处理,从第一特征图603中提取出2n个维度特征。
第一辅助分类器620以被提取出2n个维度特征的第一特征图603为输入,判别其输入图像的来源为线条字样本或笔锋字样本,输出第一权重向量604。可以将第一权重向量604与第一特征图603上的每个像素点的2n个通道特征向量进行向量相乘,获得第一注意力热图605。可以将第一注意力热图605与第一特征图603相乘,得到加权后的第一特征图606。
全卷积网络630对加权后的第一特征图606进行处理,输出beta、gamma两个向量。
解码器640包括基于AdaLIN(Adaptive Layer-Instance Normalization,自适应层例归一化)的ARB(Adaptive Residual Block,自适应残差块)和上采样层,其中ARB用于对beta、gamma进行特征调制。解码器640可以将加权后的第一特征图606作为输入,输出转换后的图像607。
图7是根据本公开一个实施例的训练对抗网络模型的方法中判别模型的结构原理图。上述任意实施例中的第一判别模型和第二判别模型中的至少一个可以采用如图7所示的结构。下面以第一判别模型在训练过程中执行的操作为例来对图7所示的生成模型进行描述。第二判别模型的工作原理与第一判别模型相同,这里不再赘述。
如图7所示,判别模型700包括第二编码器710、第二辅助分类器720和分类器730。
第二编码器710以转换后的图像607为输入,输出具有n个通道的第二特征图703。
第二辅助分类器720以第二特征图703输入,判别图像来源为线条字样本或笔锋字样本,输出第二权重向量704。可以将第二权重向量704与第二特征图703上的每个像素点的通道特征向量进行向量相乘,得到第二注意力热图705。将第二注意力热图705与第二特征图703相乘,得到加权后的第二特征图706。
分类器730可以将加权后的第二特征图706作为输入,先对加权后的第二特征图706进行卷积再进行分类,输出表征真实性的值。
图8是根据本公开一个实施例的对抗网络模型的训练方法的效果图。
如图8所示,对于通过上述任意实施例的方法训练的对抗网络模型,(a)是向对抗网络模型的生成模型输入的多个无笔锋的线条字样本的图像;(b)是对抗网络模型的生成模型输出的多个具有笔锋的生成笔锋字的图像。从图8可以看出,(a)的图像内的线条字与(b)的图像内的生成笔锋字的内容一致,且二者线条轨迹基本一致,表明上述训练对抗网络模型的方法训练出的模型能够实现更准确的字体迁移。
图9是根据本公开的一个实施例的建立字库的方法的流程图。
如图9所示,该建立字库的方法900可以包括操作S910~操作S920。
在操作S910,使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字。
对抗网络模型是根据上述训练对抗网络模型的方法训练得到的。
例如,对抗网络模型基于笔锋字(具有笔锋和线条的)向线条字(具有线条的)添加笔锋生成风格字。风格字具有线条字相同的线条,也具有与笔锋字相同的笔锋。
在操作S920,基于所生成的风格字来建立字库。
通过利用对抗网络模型基于具有用户个人风格的线条字来生成风格字,能够建立具有用户个人风格字体的字库。在一些实施例中,该字库可应用于输入法,从而使输入法可以向用户提供具有该用户定制化风格字体的字,提高了用户体验。
图10是根据本公开一个实施例的训练对抗网络装置的框图。
如图10所示,训练对抗网络模型的装置1000用于训练对抗网络,上述对抗网络模型包括生成模型和判别模型,上述装置包括生成模型1010、鉴别模块1020、基本损失计算模块1030、轨迹一致损失计算模块1040和调整模块1050。
生成模块1010,用于使用生成模型基于笔锋字样本和线条字样本来生成新字。
鉴别模块1020,用于使用判别模型来鉴别所生成的新字的真实性。
基本损失计算模块1030,用于基于生成模型所生成的新字以及上述判别模型的鉴别结果来计算基本损失。
轨迹一致损失计算模块1040,用于根据线条字样本与新字之间的线条轨迹一致性,来计算轨迹一致损失。
调整模块1050,用于根据上述基本损失和上述轨迹一致损失来调整上述生成模型的参数。
作为本公开的一种可选实施例,上述根据线条字样本与新字均为文字的图像,上述轨迹一致损失计算模块包括:差值图计算单元,用于计算线条字样本与生成笔锋字的差值图;轨迹一致损失计算单元,用于基于上述差值图来计算轨迹一致损失。
作为本公开的一种可选实施例,上述生成模型包括第一生成模型和第二生成模型,上述生成模块包括:第一生成单元,用于使用第一生成模型基于笔锋字样本向线条字样本添加笔锋,得到生成笔锋字;第二生成单元,用于使用第一生成模型基于笔锋字样本向笔锋字样本添加笔锋,得到重构笔锋字;第三生成单元,用于使用第二生成模型从生成笔锋字去除笔锋,得到再生线条字;第四生成单元,用于使用第二生成模型基于线条字样本从笔锋字样本去除笔锋,得到生成线条字;第五生成单元,用于使用第二生成模型基于线条字样本从线条字样本去除笔锋,得到重构线条字;第六生成单元,用于使用第一生成模型向生成线条字本添加笔锋,得到再生笔锋字。
作为本公开的一种可选实施例,上述轨迹一致损失计算模块根据以下等式来计算上述轨迹一致损失:
L_{traj}=||(A-A2B(A))*A||
其中L_{traj}表示轨迹一致损失,A表示线条字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,A2B(A)表示生成笔锋字,(A-A2B(A))表示线条字样本与生成笔锋字的差值图,“*”表示逐像素相乘,“||||”表示图像的各像素值的平方和的开方。
作为本公开的一种可选实施例,上述判别模型包括第一判别模型和第二判别模型,上述鉴别模块包括:第一鉴别单元,用于使用第二判别模型来鉴别生成笔锋字的真实性;以及第二鉴别单元,用于使用第一判别模型来鉴别生成线条字的真实性。
作为本公开的一种可选实施例,上述基本损失包括第一生成模型和第二生成模型各自的对抗损失、重构损失和循环一致损失,上述基本损失计算模块包括:对抗损失计算单元,用于基于第二判别模型的鉴别结果来计算第一生成模型的对抗损失,并基于第一判别模型的鉴别结果来计算第二生成模型的对抗损失;重构损失计算单元,用于基于重构笔锋字来计算第一生成模型的重构损失,并基于重构线条字来计算第二生成模型的重构损失;循环一致损失计算单元,用于基于再生线条字来计算第一生成模型的循环一致损失,并基于再生笔锋字来计算第二生成模型的循环一致损失。
作为本公开的一种可选实施例,上述调整模块包括:总损失计算单元,用于将各个基本损失和上述轨迹一致损失进行加权求和,得到总损失;调整单元,用于根据总损失来调整第一生成模型和第二生成模型的参数。
作为本公开的一种可选实施例,上述线条字样本是通过从手写字的图像中提取线条轨迹得到的二值图像,上述笔锋字样本是具有基础字体的文字的二值图像。
图11是根据本公开的一个实施例的建立字库的装置的框图。
如图11所示,建立字库的装置1100用于建立字库,上述装置可以包括产生模块1110和字库建立模块1120。
产生模块1110,用于使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字,其中上述对抗网络模型是根据上述的方法来训练的。
字库建立模块1120,用于基于所生成的风格字来建立字库。
应该理解,本公开装置部分的实施例与本公开方法部分的实施例对应相同或类似,所解决的技术问题和所达到的技术效果也对应相同或者类似,本公开在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图12是根据本公开的一个实施例的训练对抗网络模型的方法和/或建立字库的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如训练对抗网络模型的方法。例如,在一些实施例中,训练对抗网络模型的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由计算单元1201执行时,可以执行上文描述的训练对抗网络模型的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行训练对抗网络模型的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (12)
1.一种训练对抗网络模型的方法,所述对抗网络模型包括生成模型和判别模型,所述生成模型包括第一生成模型和第二生成模型,所述判别模型包括第一判别模型和第二判别模型,所述方法包括:
使用所述第一生成模型基于具有笔锋和线条的笔锋字样本向具有线条的线条字样本添加笔锋,得到生成笔锋字;
使用所述第一生成模型基于所述笔锋字样本向所述笔锋字样本添加笔锋,得到重构笔锋字;
使用所述第二生成模型从所述生成笔锋字去除笔锋,得到再生线条字;
使用所述第二生成模型基于所述线条字样本从所述笔锋字样本去除笔锋,得到生成线条字;
使用所述第二生成模型基于所述线条字样本从所述线条字样本去除笔锋,得到重构线条字;
使用所述第一生成模型向所述生成线条字添加笔锋,得到再生笔锋字,其中,所述线条字样本、所述生成笔锋字、所述重构笔锋字、所述再生线条字、所述重构线条字与所述再生笔锋字均为文字的图像;
使用所述第二判别模型来鉴别所述生成笔锋字的真实性;
使用所述第一判别模型来鉴别所述生成线条字的真实性;
基于所述第二判别模型的鉴别结果来计算所述第一生成模型的对抗损失,并基于所述第一判别模型的鉴别结果来计算所述第二生成模型的对抗损失;
基于所述重构笔锋字来计算所述第一生成模型的重构损失,并基于所述重构线条字来计算所述第二生成模型的重构损失;
基于所述再生线条字来计算所述第一生成模型的循环一致损失,并基于所述再生笔锋字来计算所述第二生成模型的循环一致损失;
计算所述线条字样本与所述生成笔锋字的差值图;
基于所述差值图来计算轨迹一致损失;以及
根据所述第一生成模型和所述第二生成模型各自的对抗损失、所述重构损失、所述循环一致损失和所述轨迹一致损失来调整所述生成模型的参数。
2. 根据权利要求1所述的方法,其中,根据以下等式来计算所述轨迹一致损失:
L_{traj}=||(A-A2B(A))*A||
其中L_{traj}表示轨迹一致损失,A表示线条字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,A2B(A)表示生成笔锋字,(A-A2B(A))表示线条字样本与生成笔锋字的差值图,“*”表示逐像素相乘,“|| ||”表示图像的各像素值的平方和的开方。
3.根据权利要求1或2所述的方法,其中,所述根据所述第一生成模型和所述第二生成模型各自的对抗损失、所述重构损失、所述循环一致损失和所述轨迹一致损失来调整所述生成模型的参数包括:
将所述第一生成模型和所述第二生成模型各自的对抗损失、所述重构损失、所述循环一致损失和所述轨迹一致损失进行加权求和,得到总损失;
根据总损失来调整第一生成模型和第二生成模型的参数。
4.根据权利要求1所述的方法,其中,所述线条字样本是通过从手写字的图像中提取线条轨迹得到的二值图像,所述笔锋字样本是具有基础字体的文字的二值图像。
5. 一种建立字库的方法,包括:
使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字,其中所述对抗网络模型是根据如权利要求1至4中任一项所述的方法来训练的;以及
基于所生成的风格字来建立字库。
6.一种训练对抗网络模型的装置,所述对抗网络模型包括生成模型和判别模型,所述生成模型包括第一生成模型和第二生成模型,所述判别模型包括第一判别模型和第二判别模型,所述装置包括:
第一生成单元,用于使用所述第一生成模型基于具有笔锋和线条的笔锋字样本向具有线条的线条字样本添加笔锋,得到生成笔锋字;
第二生成单元,用于使用所述第一生成模型基于所述笔锋字样本向所述笔锋字样本添加笔锋,得到重构笔锋字;
第三生成单元,用于使用所述第二生成模型从所述生成笔锋字去除笔锋,得到再生线条字;
第四生成单元,用于使用所述第二生成模型基于所述线条字样本从所述笔锋字样本去除笔锋,得到生成线条字;
第五生成单元,用于使用所述第二生成模型基于所述线条字样本从所述线条字样本去除笔锋,得到重构线条字;
第六生成单元,用于使用所述第一生成模型向所述生成线条字添加笔锋,得到再生笔锋字,其中,所述线条字样本、所述生成笔锋字、所述重构笔锋字、所述再生线条字、所述重构线条字与所述再生笔锋字均为文字的图像;
第一鉴别单元,用于使用所述第二判别模型来鉴别所述生成笔锋字的真实性;
第二鉴别单元,用于使用所述第一判别模型来鉴别所述生成线条字的真实性;
对抗损失计算单元,用于基于所述第二判别模型的鉴别结果来计算所述第一生成模型的对抗损失,并基于所述第一判别模型的鉴别结果来计算所述第二生成模型的对抗损失;
重构损失计算单元,用于基于所述重构笔锋字来计算所述第一生成模型的重构损失,并基于所述重构线条字来计算所述第二生成模型的重构损失;
循环一致损失计算单元,用于基于所述再生线条字来计算所述第一生成模型的循环一致损失,并基于所述再生笔锋字来计算所述第二生成模型的循环一致损失;
差值图计算单元,用于计算所述线条字样本与所述生成笔锋字的差值图;
轨迹一致损失计算单元,用于基于所述差值图来计算轨迹一致损失;以及
调整模块,用于根据所述第一生成模型和所述第二生成模型各自的对抗损失、所述重构损失、所述循环一致损失和所述轨迹一致损失来调整所述生成模型的参数。
7. 根据权利要求6所述的装置,其中,所述轨迹一致损失计算单元根据以下等式来计算所述轨迹一致损失:
L_{traj}=||(A-A2B(A))*A||
其中L_{traj}表示轨迹一致损失,A表示线条字样本,A2B表示使用第一生成模型来执行的添加笔锋操作,A2B(A)表示生成笔锋字,(A-A2B(A))表示线条字样本与生成笔锋字的差值图,“*”表示逐像素相乘,“|| ||”表示图像的各像素值的平方和的开方。
8.根据权利要求6或7所述的装置,所述调整模块包括:
总损失计算单元,用于将所述第一生成模型和所述第二生成模型各自的对抗损失、所述重构损失、所述循环一致损失和所述轨迹一致损失进行加权求和,得到总损失;
调整单元,用于根据总损失来调整第一生成模型和第二生成模型的参数。
9.根据权利要求6所述的装置,其中,所述线条字样本是通过从手写字的图像中提取线条轨迹得到的二值图像,所述笔锋字样本是具有基础字体的文字的二值图像。
10. 一种建立字库的装置,包括:
产生模块,用于使用对抗网络模型基于具有笔锋和线条的笔锋字和具有线条的线条字来生成风格字,其中所述对抗网络模型是根据如权利要求6至9中任一项所述的装置来训练的;以及
字库建立模块,用于基于所生成的风格字来建立字库。
11. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110487991.0A CN113140018B (zh) | 2021-04-30 | 2021-04-30 | 训练对抗网络模型的方法、建立字库的方法、装置和设备 |
JP2022007346A JP2022058696A (ja) | 2021-04-30 | 2022-01-20 | 敵対的ネットワークモデルのトレーニング方法、文字ライブラリの作成方法、並びにそれらの装置、電子機器、記憶媒体並びにコンピュータプログラム |
KR1020220026344A KR20220034082A (ko) | 2021-04-30 | 2022-02-28 | 적대적 네트워크 모델을 트레이닝하는 방법 및 장치, 문자 라이브러리를 구축하는 방법 및 장치, 전자장비, 저장매체 및 컴퓨터 프로그램 |
US17/683,945 US20220270384A1 (en) | 2021-04-30 | 2022-03-01 | Method for training adversarial network model, method for building character library, electronic device, and storage medium |
EP22159517.6A EP3998584A3 (en) | 2021-04-30 | 2022-03-01 | Method and apparatus for training adversarial network model, method and apparatus for building character library, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110487991.0A CN113140018B (zh) | 2021-04-30 | 2021-04-30 | 训练对抗网络模型的方法、建立字库的方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113140018A CN113140018A (zh) | 2021-07-20 |
CN113140018B true CN113140018B (zh) | 2023-06-20 |
Family
ID=76816546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110487991.0A Active CN113140018B (zh) | 2021-04-30 | 2021-04-30 | 训练对抗网络模型的方法、建立字库的方法、装置和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220270384A1 (zh) |
EP (1) | EP3998584A3 (zh) |
JP (1) | JP2022058696A (zh) |
KR (1) | KR20220034082A (zh) |
CN (1) | CN113140018B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113516698B (zh) * | 2021-07-23 | 2023-11-17 | 香港中文大学(深圳) | 一种室内空间深度估计方法、装置、设备及存储介质 |
CN113657397B (zh) * | 2021-08-17 | 2023-07-11 | 北京百度网讯科技有限公司 | 循环生成网络模型的训练方法、建立字库的方法和装置 |
CN113792851B (zh) * | 2021-09-09 | 2023-07-25 | 北京百度网讯科技有限公司 | 字体生成模型训练方法、字库建立方法、装置及设备 |
CN113792850B (zh) * | 2021-09-09 | 2023-09-01 | 北京百度网讯科技有限公司 | 字体生成模型训练方法、字库建立方法、装置及设备 |
CN113792855B (zh) * | 2021-09-09 | 2023-06-23 | 北京百度网讯科技有限公司 | 一种模型训练及字库建立方法、装置、设备和存储介质 |
CN113792526B (zh) * | 2021-09-09 | 2024-02-09 | 北京百度网讯科技有限公司 | 字符生成模型的训练方法、字符生成方法、装置和设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110211203A (zh) * | 2019-06-10 | 2019-09-06 | 大连民族大学 | 基于条件生成对抗网络的汉字字体的方法 |
CN110503598A (zh) * | 2019-07-30 | 2019-11-26 | 西安理工大学 | 基于条件循环一致性生成对抗网络的字体风格迁移方法 |
CN110956678A (zh) * | 2019-12-16 | 2020-04-03 | 北大方正集团有限公司 | 字形的处理方法和装置 |
CN111046771A (zh) * | 2019-12-05 | 2020-04-21 | 上海眼控科技股份有限公司 | 用于恢复书写轨迹的网络模型的训练方法 |
CN111062290A (zh) * | 2019-12-10 | 2020-04-24 | 西北大学 | 基于生成对抗网络中国书法风格转换模型构建方法及装置 |
CN111724299A (zh) * | 2020-05-21 | 2020-09-29 | 同济大学 | 一种基于深度学习的超现实主义绘画图像风格迁移方法 |
JP2021033686A (ja) * | 2019-08-26 | 2021-03-01 | 株式会社セルシス | 画像領域抽出処理方法及び画像領域抽出処理プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170649B (zh) * | 2018-01-26 | 2021-06-01 | 广东工业大学 | 一种基于dcgan深度网络的汉字字库生成方法及装置 |
US10621760B2 (en) * | 2018-06-15 | 2020-04-14 | Adobe Inc. | Synthesizing new font glyphs from partial observations |
CN110443864B (zh) * | 2019-07-24 | 2021-03-02 | 北京大学 | 一种基于单阶段少量样本学习的艺术字体自动生成方法 |
-
2021
- 2021-04-30 CN CN202110487991.0A patent/CN113140018B/zh active Active
-
2022
- 2022-01-20 JP JP2022007346A patent/JP2022058696A/ja active Pending
- 2022-02-28 KR KR1020220026344A patent/KR20220034082A/ko unknown
- 2022-03-01 US US17/683,945 patent/US20220270384A1/en not_active Abandoned
- 2022-03-01 EP EP22159517.6A patent/EP3998584A3/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110211203A (zh) * | 2019-06-10 | 2019-09-06 | 大连民族大学 | 基于条件生成对抗网络的汉字字体的方法 |
CN110503598A (zh) * | 2019-07-30 | 2019-11-26 | 西安理工大学 | 基于条件循环一致性生成对抗网络的字体风格迁移方法 |
JP2021033686A (ja) * | 2019-08-26 | 2021-03-01 | 株式会社セルシス | 画像領域抽出処理方法及び画像領域抽出処理プログラム |
CN111046771A (zh) * | 2019-12-05 | 2020-04-21 | 上海眼控科技股份有限公司 | 用于恢复书写轨迹的网络模型的训练方法 |
CN111062290A (zh) * | 2019-12-10 | 2020-04-24 | 西北大学 | 基于生成对抗网络中国书法风格转换模型构建方法及装置 |
CN110956678A (zh) * | 2019-12-16 | 2020-04-03 | 北大方正集团有限公司 | 字形的处理方法和装置 |
CN111724299A (zh) * | 2020-05-21 | 2020-09-29 | 同济大学 | 一种基于深度学习的超现实主义绘画图像风格迁移方法 |
Non-Patent Citations (4)
Title |
---|
An end-to-end model for chinese calligraphy generation;Peichi Zhou et al;《Multimedia Tools and Applications》;全文 * |
Context Encoders: Feature Learning by Inpainting;Deepak Pathak et al;《Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)》;全文 * |
基于条件生成对抗网络的蒙古文字体风格迁移模型;李进;高静;陈俊杰;王永军;;中文信息学报(04);全文 * |
基于生成模型的图像风格迁移设计与实现;杨勃;周亦诚;;湖南理工学院学报(自然科学版)(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113140018A (zh) | 2021-07-20 |
EP3998584A2 (en) | 2022-05-18 |
EP3998584A3 (en) | 2022-10-12 |
KR20220034082A (ko) | 2022-03-17 |
US20220270384A1 (en) | 2022-08-25 |
JP2022058696A (ja) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113140018B (zh) | 训练对抗网络模型的方法、建立字库的方法、装置和设备 | |
CN108170755B (zh) | 基于三元组深度网络的跨模态哈希检索方法 | |
WO2020199478A1 (zh) | 图像生成模型训练方法、图像生成方法、装置、设备及存储介质 | |
CN113657397B (zh) | 循环生成网络模型的训练方法、建立字库的方法和装置 | |
CN111930894B (zh) | 长文本匹配方法及装置、存储介质、电子设备 | |
CN113792851B (zh) | 字体生成模型训练方法、字库建立方法、装置及设备 | |
CN111540367A (zh) | 语音特征提取方法、装置、电子设备和存储介质 | |
Huai et al. | Zerobn: Learning compact neural networks for latency-critical edge systems | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
CN113962845B (zh) | 图像处理方法、图像处理装置、电子设备以及存储介质 | |
CN111309770B (zh) | 一种基于无监督机器学习的自动生成规则系统及方法 | |
CN116484215A (zh) | 基于扩散模型的文本生成模型训练、文字生成方法和装置 | |
CN115273110A (zh) | 基于TensorRT的文本识别模型部署方法、装置、设备及存储介质 | |
CN113792849B (zh) | 字符生成模型的训练方法、字符生成方法、装置和设备 | |
CN113903071A (zh) | 人脸识别方法、装置、电子设备和存储介质 | |
CN112699874B (zh) | 一种面向任意旋转方向图像的文字识别方法及系统 | |
CN117373491B (zh) | 一种动态提取语音情感特征的方法及装置 | |
CN115482422B (zh) | 深度学习模型的训练方法、图像处理方法和装置 | |
CN116127920A (zh) | 信息提取模型的训练方法及装置 | |
Jian et al. | Research of Image Recognition Algorithm Based on Depth Learning | |
CN114357183A (zh) | 实体关系抽取方法、装置、设备、介质及程序产品 | |
CN117475340A (zh) | 视频数据处理方法、装置、计算机设备和存储介质 | |
CN115188052A (zh) | 一种基于深度残差网络的表情检测方法、装置及存储介质 | |
CN117610671A (zh) | 用于生成量子态的模型训练方法、装置、设备和介质 | |
CN114138329A (zh) | 一种基于TextCNN的软件自承认技术债务识别方法 |
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 |