一种文本到图像的生成方法、装置、存储介质及终端转让专利

申请号 : CN202110846148.7

文献号 : CN115700519A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁铭杨卓毅洪文逸郑问迪周畅杨红霞唐杰

申请人 : 北京智源人工智能研究院

摘要 :

本发明公开了一种文本到图像的生成方法、装置、存储介质及终端,方法包括:获取文本描述,并标记化文本描述后生成文本形符序列;根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。因此,采用本申请实施例,可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,还可以有效提升生成图像的分辨率。

权利要求 :

1.一种文本到图像的生成方法,其特征在于,所述方法包括:获取文本描述,并标记化所述文本描述后生成文本形符序列;

根据所述文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;

将每张所述第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;

基于所述每张第一图像的概率值筛选所述概率值大于预设阈值的第一图像,生成至少一张第二图像;

基于预先训练的分辨率提升模型调高所述第二图像的分辨率,生成目标图像;

其中,所述预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,所述预先训练的评分模型与所述预先训练的分辨率提升模型是在所述预先训练的图像生成模型上训练生成的。

2.根据权利要求1所述的方法,其特征在于,所述根据所述文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,包括:将所述文本形符序列输入预先训练的图像生成模型中,输出概率分布;

从所述概率分布中获取最大概率值对应的图像形符;

将最大概率值对应的所述图像形符拼接至所述文本形符序列之后,生成拼接后的形符序列;统计所述图像形符的数量;

当所述图像形符的数量小于预设第一数量时,继续将所述拼接后的形符序列输入所述预先训练的图像生成模型中,直到所述图像形符的数量等于预设第一数量时,生成图像形符集合;

将所述图像形符集合输入预先训练的向量量化自编码器的解码器中,生成第一图像;

统计所述第一图像的数量,并当所述第一图像的数量小于预设第二数量时,继续执行所述将所述文本形符序列输入预先训练的图像生成模型中的步骤,直到所述第一图像的数量等于预设第二数量时生成至少一张第一图像。

3.根据权利要求1所述的方法,其特征在于,所述基于预先训练的分辨率提升模型调高所述第二图像的分辨率,生成目标图像,包括:将所述第二图像划分为预设数量的块集合;

将所述块集合中各块输入预先训练的分辨率提升模型中,输出提升分辨率后的所述第二图像的多个块;

拼接所述第二图像的多个块,生成目标图像。

4.根据权利要求1所述的方法,其特征在于,按照以下步骤生成预先训练的图像生成模型,包括:采集模型训练图像;

将所述模型训练图像输入预先训练的向量量化自编码器中进行处理,得到模型训练的图像形符序列;

获取所述模型训练图像对应的文本描述;

标记化所述模型训练图像对应的文本描述,生成模型训练的文本形符序列;

将所述模型训练的图像形符序列与所述模型训练的文本形符序列进行拼接,并在拼接后的所述序列中插入预设字符后生成文本图像对的序列;

继续执行所述采集模型训练图像的步骤,直到所述文本图像对的序列对应的序列个数大于等于预设序列个数时,生成模型训练样本;

通过所述模型训练样本进行模型训练,生成预先训练的图像生成模型。

5.根据权利要求4所述的方法,其特征在于,所述通过所述模型训练样本进行模型训练,生成预先训练的图像生成模型,包括:创建图像生成模型;

将所述模型训练样本逐一输入所述图像生成模型中进行训练,输出所述模型的损失值;其中,所述训练时采用自监督学习进行训练;

当所述损失值到达最小时,生成预先训练的图像生成模型。

6.根据权利要求5所述的方法,其特征在于,所述当所述损失值到达最小时,生成预先训练的图像生成模型,包括:当所述损失值未到达最小时,基于所述损失值对所述图像生成模型进行调整,并执行将所述模型训练样本逐一输入所述图像生成模型中进行训练的步骤。

7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:当生成预先训练的图像生成模型时,获取评分模型的训练样本与分辨率提升模型的训练样本;

根据所述评分模型的训练样本针对所述预先训练的图像生成模型进行训练,生成预先训练的评分模型;

根据所述分辨率提升模型的训练样本针对所述预先训练的图像生成模型进行训练,生成预先训练的分辨率提升模型。

8.一种文本到图像的生成装置,其特征在于,所述装置包括:文本形符序列生成模块,用于获取文本描述,并标记化所述文本描述后生成文本形符序列;

第一图像生成模块,用于根据所述文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;

概率值输出模块,用于将每张所述第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;

第二图像生成模块,用于基于所述每张第一图像的概率值筛选所述概率值大于预设阈值的第一图像,生成至少一张第二图像;

目标图像生成模块,用于基于预先训练的分辨率提升模型调高所述第二图像的分辨率,生成目标图像;其中,所述预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,所述预先训练的评分模型与所述预先训练的分辨率提升模型是在所述预先训练的图像生成模型上训练生成的。

9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。

10.一种终端,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。

说明书 :

一种文本到图像的生成方法、装置、存储介质及终端

技术领域

[0001] 本发明涉及计算机视觉技术领域,特别涉及一种文本到图像的生成方法、装置、存储介质及终端。

背景技术

[0002] 文本生成图像是一项通过结合计算机视觉和自然语言的综合性交叉任务,是图像生成领域的重要分支,并且在很多方面都有着广泛的应用,如为文本配上对应的插图和辅助设计等。近年来,随着深度学习技术的崛起,深度学习在图像识别、分类以及图像去模糊等方面取得了突破性进展,研究人员越发渴望由文本生成的图像在图像内容与文本语义之间误差更小,让图像的分辨率更高。
[0003] 在现有技术中,由文本生成图像采用AttnGAN(注意力生成对抗网络),使用该网络得到的图像在图像内容与文本语义之间误差较大,为了减小误差,研究人员又提出来首先根据文本描述生成物体框,然后再生成物体轮廓,最后得到图像的多步法,由于多步法中每一步的误差积累,使得生成的图像效果依旧与真实图像差别比较大,分辨率较低。

发明内容

[0004] 本申请实施例提供了一种文本到图像的生成方法、装置、存储介质及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
[0005] 第一方面,本申请实施例提供了一种文本到图像的生成方法,方法包括:
[0006] 获取文本描述,并标记化文本描述后生成文本形符序列;
[0007] 根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;
[0008] 将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;
[0009] 基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;
[0010] 基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像;其中,[0011] 预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。
[0012] 可选的,根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,包括:
[0013] 将文本形符序列输入预先训练的图像生成模型中,输出概率分布;
[0014] 从概率分布中获取最大概率值对应的图像标记;
[0015] 将最大概率值对应的图像标记拼接至文本形符序列之后,生成拼接后的文本形符序列;
[0016] 统计图像标记的数量;
[0017] 当图像标记的数量小于预设第一数量时,继续将拼接后的文本形符序列输入预先训练的图像生成模型中,直到图像标记的数量等于预设第一数量时,生成图像标记集合;
[0018] 将图像标记集合输入预先训练的向量量化自编码器的解码器中,生成第一图像;
[0019] 统计第一图像的数量,并当第一图像的数量小于预设第二数量时,继续执行将文本形符序列输入预先训练的图像生成模型中的步骤,直到第一图像的数量等于预设第二数量时生成至少一张第一图像。
[0020] 可选的,基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像,包括:
[0021] 将第二图像划分为预设数量的块集合;
[0022] 将块集合中各块输入预先训练的分辨率提升模型中,输出提升分辨率后的第二图像的多个块;
[0023] 拼接第二图像的多个块,生成目标图像.
[0024] 可选的,按照以下步骤生成预先训练的图像生成模型,包括:
[0025] 采集模型训练图像;
[0026] 将模型训练图像输入预先训练的向量量化自编码器中进行处理,得到模型训练的图像形符序列;
[0027] 获取模型训练图像对应的文本描述;
[0028] 标记化模型训练图像对应的文本描述,生成模型训练的文本形符序列;
[0029] 将模型训练的图像形符序列与模型训练的文本形符序列进行拼接,并在拼接后的序列中插入预设字符后生成文本图像对的序列;
[0030] 继续执行采集模型训练图像的步骤,直到文本图像对的序列对应的序列个数大于等于预设序列个数时,生成模型训练样本;
[0031] 通过模型训练样本进行模型训练,生成预先训练的图像生成模型。
[0032] 可选的,通过模型训练样本进行模型训练,生成预先训练的图像生成模型,包括:
[0033] 创建图像生成模型;
[0034] 将模型训练样本逐一输入图像生成模型中进行训练,输出模型的损失值;其中,训练时采用自监督学习进行训练;
[0035] 当损失值到达最小时,生成预先训练的图像生成模型。
[0036] 可选的,当损失值到达最小时,生成预先训练的图像生成模型,包括:
[0037] 当损失值未到达最小时,基于损失值对图像生成模型进行调整,并执行将模型训练样本逐一输入图像生成模型中进行训练的步骤。
[0038] 可选的,方法还包括:
[0039] 当生成预先训练的图像生成模型时,获取评分模型的训练样本与分辨率提升模型的训练样本;
[0040] 根据评分模型的训练样本针对预先训练的图像生成模型进行训练,生成预先训练的评分模型;
[0041] 根据分辨率提升模型的训练样本针对预先训练的图像生成模型进行训练,生成预先训练的分辨率提升模型。
[0042] 第二方面,本申请实施例提供了一种文本到图像的生成装置,装置包括:
[0043] 文本形符序列生成模块,用于获取文本描述,并标记化文本描述后生成文本形符序列;
[0044] 第一图像生成模块,用于根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;
[0045] 概率值输出模块,用于将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;
[0046] 第二图像生成模块,用于基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;
[0047] 目标图像生成模块,用于基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像;其中,
[0048] 预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。
[0049] 第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
[0050] 第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
[0051] 本申请实施例提供的技术方案可以包括以下有益效果:
[0052] 在本申请实施例中,文本到图像的生成装置首先获取文本描述,并标记化文本描述后生成文本形符序列,然后根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,再将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值,其次基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像,最后基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。其中,预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。由于本申请将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率。
[0053] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

[0054] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0055] 图1是本申请实施例提供的一种文本到图像的生成方法的流程示意图;
[0056] 图2是本申请实施例提供的一种提升像素前后的实际图像的示例图;
[0057] 图3是本申请实施例提供的一种应用场景中的图像分块示意图;
[0058] 图4是本申请实施例提供的一种图像生成模型的训练方法的流程示意图;
[0059] 图5是本申请实施例提供的另一种图像生成模型的训练方法的流程示意图;
[0060] 图6是本申请实施例提供的一种文本到图像的生成装置的结构示意图;
[0061] 图7是本申请实施例提供的一种终端的结构示意图。

具体实施方式

[0062] 以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
[0063] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0064] 下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0065] 在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0066] 本申请提供了一种文本到图像的生成方法、装置、存储介质及终端,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本申请将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率,下面采用示例性的实施例进行详细说明。
[0067] 下面将结合附图1‑附图5,对本申请实施例提供的文本到图像的生成方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的文本到图像的生成装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的文本到图像的生成装置可以为用户终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等。
[0068] 请参见图1,为本申请实施例提供了一种文本到图像的生成方法的流程示意图。如图1所示,本申请实施例的方法可以包括以下步骤:
[0069] S101,获取文本描述,并标记化文本描述后生成文本形符序列;
[0070] 其中,文本描述是几个字符组成的可以表述用意的句子,例如:“踢足球的老虎”、“The head of a lovely cat”。标记化(tokenization)是将字符序列转换为形符(token)序列的过程。
[0071] 通常,在进行文本描述的标记化时,可以使用SentencePiec算法或者使用其他文本编码的算法,例如BPE等。
[0072] 在一种可能的实现方式中,首先获取文本描述,然后采用SentencePiec算法对文本描述进行标记化处理,处理后生成文本描述对应的文本形符序列,即文本的token序列。
[0073] 具体的,文本描述可以是接收的用户输入的文本描述,也可以是根据实际场景自动获取的文本藐视。在一种实施例中,用户针对客户端输入文本描述,客户端接收输入的文本描述。在另一种实施例中,当需要为文章中有标识的句子配置插图时,首先识别文章中的句子标识符,然后截图标识符对应的句子确定为文本描述。
[0074] 例如,接收或者截取的句子为“踢足球的老虎”,此时可根据SentencePiec算法对“踢足球的老虎”进行标记化,得到文本形符序列,也可以称为标记序列或者符号序列。
[0075] S102,根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;
[0076] 其中,预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的图像生成模型是可以根据文本描述生成对应图像的数学模型。向量量化自编码器是进行编码与解码的组件。
[0077] 通常,向量量化自编码器包括编码器、标记词典与解码器。
[0078] 在本申请实施例中,生成第一图像时,首先将文本形符序列输入预先训练的图像生成模型中,输出概率分布,然后从概率分布中获取最大概率值对应的图像标记,再将最大概率值对应的图像标记拼接至文本形符序列之后,生成拼接后的文本形符序列,其次统计图像标记的数量,当图像标记的数量小于预设第一数量时,继续将拼接后的文本形符序列输入预先训练的图像生成模型中,直到图像标记的数量等于预设第一数量时,生成图像标记集合,再将图像标记集合输入预先训练的向量量化自编码器的解码器中,生成第一图像,最后统计第一图像的数量,并当第一图像的数量小于预设第二数量时,继续执行将文本形符序列输入预先训练的图像生成模型中的步骤,直到第一图像的数量等于预设第二数量时生成至少一张第一图像。
[0079] 在一种可能的实现方式中,生成第一图像时,首先将文本形符输入预先训练的图像生成模型中得到标记词典上的概率分布,然后从概率分布中获取最大概率值的图像标记拼接在刚开始文本形符序列后边继续输入训练的网络,直到生成1024个图像标记(token)后结束,最后将1024个图像标记(token)输入到向量量化自编码器的解码器中,即可还原成一张图像。其中标记词典指的就是所有图像token的集合。
[0080] 进一步地,如果想生成文本形符序列的多张图像时,可以使用上述在一种可能的实现方式中的实施例循环多次生成多张图像,此过程可以用批(batch)处理加速。
[0081] 需要说明的是,从概率分布中获取最大概率值的图像标记拼接在刚开始文本形符序列后边可以保障1024个图像标记的顺序不会错乱。
[0082] S103,将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;
[0083] 其中,评分模型是在预先训练的图像生成模型上微调出来的,微调过程可以理解为在预先训练的图像生成模型上再次训练出一个评分模型,该评分模型的训练过程为现有模型的常规训练过程,此处不再赘述。
[0084] 在本申请实施例中,通过评分模型可以针对步骤S102中生成的每一张图像转换为文本,并计算每个文本的概率值,然后根据概率来评分,由图像生成对应文本的概率越高,整个图像的评分越高,可以根据评分的高低顺序挑选出几张评分较高的图像。
[0085] 在一种可能的实现方式中,当根据步骤S102得到的第一图像为一张时,可以按照实际场景进行操作,例如可以不用输入评分模型中进行评分操作,直接执行步骤S105即可,也可以输入评分模型确定一下该图像的概率值高低。
[0086] 在另一种可能的首先方式中,当根据步骤S102得到的第一图像为多张时,只能将多张图像输入评分模型进行评分操作以及执行后续操作。
[0087] S104,基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;
[0088] 在一种可能的实现方式中,根据步骤S103可得到多张第一图像的概率值,将多张第一图像的概率值按照概率值的高低顺序进行降序排列,最后从降序排列后的多个概率值中挑选出概率值大于预设阈值概率值所对应的图像,可得到一张或者多张第二图像。
[0089] S105,基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像;
[0090] 其中,预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。
[0091] 在本申请实施例中,在生成目标图像时,首先将第二图像划分为预设数量的块集合,然后将块集合中各块输入预先训练的分辨率提升模型中,输出提升分辨率后的第二图像的多个块,最后拼接第二图像的多个块,生成目标图像。
[0092] 在一种可能的实现方式中,根据步骤S104得到的第二图像分辨率较低,例如图2中箭头左边的图像,此时需要调用预先训练的分辨率提升模型,然后将第二图像(即图2中箭头左侧图像)按照图3中的方式划分为9个块,每个块看成一个缩略图放入预先训练的分辨率提升模型中进行升分辨率,最后将模型处理后的9个块组合就得到更加高清的图像,例如图2中箭头右侧图像所示。
[0093] 需要说明的是,这些块之间有重叠,重叠部分按照块的先后顺序,在生成过程中如果该位置已有之前块生成,那么则直接当成固定输入来预测下一个未生成的形符。这种方法被称为“滑动窗口”,保持了各块在边缘的连续性。
[0094] 在本申请实施例中,文本到图像的生成装置首先获取文本描述,并标记化文本描述后生成文本形符序列,然后根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,再将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值,其次基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像,最后基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。本申请由于将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率。
[0095] 请参见图4,为本申请实施例提供了一种图像生成模型的训练方法的流程示意图。如图4所示,图像生成模型的训练方法包括以下步骤:
[0096] S201,采集模型训练图像;
[0097] 通常,在训练图像生成模型之前,还需要训练一个向量量化自编码器得到预先训练的向量量化自编码器。
[0098] 具体的,向量量化自编码器的训练过程中采取了直传(straight‑through)方法进行训练,可以将本来不可导的量化操作变为可导,使得整个模型可以通过大量图片进行反向传播训练。
[0099] 进一步地,预先训练的向量量化自编码器可以将模型训练图像转化为图像形符序列。
[0100] 在一种可能的实现方式中,在进行模型训练时,首选需要从训练样本中采集一张模型训练图像。
[0101] S202,将模型训练图像输入预先训练的向量量化自编码器中进行处理,得到模型训练的图像形符序列;
[0102] S203,获取模型训练图像对应的文本描述;
[0103] 其中,模型训练图像对应的文本描述可以是针对该图像提前标记的文本描述,也可以是用户针对该图像进行输入的文本描述。
[0104] 在一种可能的实现方式中,接收针对客户端输入的文本描述,或者查询模型训练图像上携带的文本描述。
[0105] S204,标记化模型训练图像对应的文本描述,生成模型训练的文本形符序列;
[0106] 在一种可能的实现方式中,可以使用SentencePiece方法将步骤S203中的文本描述进行标记化处理,得到模型训练的文本形符序列。
[0107] S205,将模型训练的图像形符序列与模型训练的文本形符序列进行拼接,并在拼接后的序列中插入预设字符后生成文本图像对的序列;
[0108] 通常,此时可得到一个文本‑图片对序列,模型训练过程需要大量的文本‑图片对序列,因此需要继续执行步骤S201‑步骤S205以得到文本‑图片对序列集合。
[0109] S206,继续执行采集模型训练图像的步骤,直到文本图像对的序列对应的序列个数大于等于预设序列个数时,生成模型训练样本;
[0110] 其中,预设序列是用户提前设定的数量,当步骤S201‑步骤S205执行多次后可生成模型训练样本。
[0111] S207,通过模型训练样本进行模型训练,生成预先训练的图像生成模型。
[0112] 在一种可能的实现方式中,在得到模型训练样本后,首先创建图像生成模型,然后将模型训练样本逐一输入图像生成模型中进行训练,输出模型的损失值;其中,训练时采用自监督学习进行训练,最后当损失值到达最小时,生成预先训练的图像生成模型。
[0113] 或者当损失值未到达最小时,基于损失值对图像生成模型进行调整,并执行将模型训练样本逐一输入图像生成模型中进行训练的步骤,直到损失值到达最小时生成预先训练的图像生成模型。
[0114] 具体的,图像生成模型在进行创建时,该模型是基于Transformer的生成式预训练(GPT)模型,即生成式预训练(GPT)模型继承了Transformer的功能特征。
[0115] 进一步地,当生成预先训练的图像生成模型时,首先获取评分模型的训练样本与分辨率提升模型的训练样本,然后根据评分模型的训练样本针对预先训练的图像生成模型进行训练,生成预先训练的评分模型,最后根据分辨率提升模型的训练样本针对预先训练的图像生成模型进行训练,生成预先训练的分辨率提升模型。
[0116] 例如图5所示,图5是图像生成模型训练示意图,首先训练向量量化自编码器(Discrete Auto Encoder),可以简称为图像标记器,然后输入文本到文本标记器中采用sentence pieces算法进行标记化,得到模型训练的文本形符序列,其次输入图像到图像标记器采用预先训练的向量量化自编码器(Discrete Auto Encoder)进行处理得到模型训练的图像形符序列,然后将模型训练的文本形符序列与模型训练的图像形符序列进行拼接得到拼接的图像‑文本序列,并将训练样本中所有文本与图像进行上述处理得到训练样本,最后使用训练样本中的文本‑图像序列训练模型,最后得到预先训练的图像生成模型。
[0117] 在本申请实施例中,文本到图像的生成装置首先获取文本描述,并标记化文本描述后生成文本形符序列,然后根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,再将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值,其次基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像,最后基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。本申请由于将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率。
[0118] 下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
[0119] 请参见图6,其示出了本发明一个示例性实施例提供的文本到图像的生成装置的结构示意图。该文本到图像的生成装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括文本形符序列生成模块10、第一图像生成模块20、概率值输出模块30、第二图像生成模块40、目标图像生成模块50。
[0120] 文本形符序列生成模块10,用于获取文本描述,并标记化文本描述后生成文本形符序列;
[0121] 第一图像生成模块20,用于根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;
[0122] 概率值输出模块30,用于将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;
[0123] 第二图像生成模块40,用于基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;
[0124] 目标图像生成模块50,用于基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像;其中,
[0125] 预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。
[0126] 需要说明的是,上述实施例提供的文本到图像的生成装置在执行文本到图像的生成方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文本到图像的生成装置与文本到图像的生成方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
[0127] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0128] 在本申请实施例中,文本到图像的生成装置首先获取文本描述,并标记化文本描述后生成文本形符序列,然后根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,再将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值,其次基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像,最后基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。本申请由于将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率。
[0129] 本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的文本到图像的生成方法。
[0130] 本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的文本到图像的生成方法。
[0131] 请参见图7,为本申请实施例提供了一种终端的结构示意图。如图7所示,终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
[0132] 其中,通信总线1002用于实现这些组件之间的连接通信。
[0133] 其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
[0134] 其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI‑FI接口)。
[0135] 其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
[0136] 其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read‑Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non‑transitory computer‑readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文本到图像的生成应用程序。
[0137] 在图7所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的文本到图像的生成应用程序,并具体执行以下操作:
[0138] 获取文本描述,并标记化文本描述后生成文本形符序列;
[0139] 根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像;
[0140] 将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值;
[0141] 基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像;
[0142] 基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像;其中,[0143] 预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。
[0144] 在一个实施例中,处理器1001在执行根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像时,具体执行以下操作:
[0145] 将文本形符序列输入预先训练的图像生成模型中,输出概率分布;
[0146] 从概率分布中获取最大概率值对应的图像标记;
[0147] 将最大概率值对应的图像标记拼接至文本形符序列之后,生成拼接后的文本形符序列;
[0148] 统计图像标记的数量;
[0149] 当图像标记的数量小于预设第一数量时,继续将拼接后的文本形符序列输入预先训练的图像生成模型中,直到图像标记的数量等于预设第一数量时,生成图像标记集合;
[0150] 将图像标记集合输入预先训练的向量量化自编码器的解码器中,生成第一图像;
[0151] 统计第一图像的数量,并当第一图像的数量小于预设第二数量时,继续执行将文本形符序列输入预先训练的图像生成模型中的步骤,直到第一图像的数量等于预设第二数量时生成至少一张第一图像。
[0152] 在一个实施例中,处理器1001在执行基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像时,具体执行以下操作:
[0153] 将第二图像划分为预设数量的块集合;
[0154] 将块集合中各块输入预先训练的分辨率提升模型中,输出提升分辨率后的第二图像的多个块;
[0155] 拼接第二图像的多个块,生成目标图像。
[0156] 在一个实施例中,处理器1001在生成预先训练的图像生成模型时,具体执行以下操作:
[0157] 采集模型训练图像;
[0158] 将模型训练图像输入预先训练的向量量化自编码器中进行处理,得到模型训练的图像形符序列;
[0159] 获取模型训练图像对应的文本描述;
[0160] 标记化模型训练图像对应的文本描述,生成模型训练的文本形符序列;
[0161] 将模型训练的图像形符序列与模型训练的文本形符序列进行拼接,并在拼接后的序列中插入预设字符后生成文本图像对的序列;
[0162] 继续执行采集模型训练图像的步骤,直到文本图像对的序列对应的序列个数大于等于预设序列个数时,生成模型训练样本;
[0163] 通过模型训练样本进行模型训练,生成预先训练的图像生成模型。
[0164] 在一个实施例中,处理器1001在执行通过模型训练样本进行模型训练,生成预先训练的图像生成模型时,具体执行以下操作:
[0165] 创建图像生成模型;
[0166] 将模型训练样本逐一输入图像生成模型中进行训练,输出模型的损失值;其中,训练时采用自监督学习进行训练;
[0167] 当损失值到达最小时,生成预先训练的图像生成模型。
[0168] 在一个实施例中,处理器1001在执行当损失值到达最小时,生成预先训练的图像生成模型时,具体执行以下操作:
[0169] 当损失值未到达最小时,基于损失值对图像生成模型进行调整,并执行将模型训练样本逐一输入图像生成模型中进行训练的步骤。
[0170] 在本申请实施例中,文本到图像的生成装置首先获取文本描述,并标记化文本描述后生成文本形符序列,然后根据文本形符序列、预先训练的图像生成模型和向量量化自编码器生成至少一张第一图像,再将每张第一图像输入预先训练的评分模型中,得到每张第一图像的概率值,其次基于每张第一图像的概率值筛选概率值大于预设阈值的第一图像,生成至少一张第二图像,最后基于预先训练的分辨率提升模型调高第二图像的分辨率,生成目标图像。预先训练的图像生成模型是基于将模型训练的图像形符序列与模型训练的文本形符序列进行拼接后训练生成的,预先训练的评分模型与预先训练的分辨率提升模型是在预先训练的图像生成模型上训练生成的。本申请由于将图像形符序列与文本形符序列进行拼接后训练模型,从而可以保障生成图像内容与描述文本的语义相一致,大大减小二者之间的误差,以及由于通过在预先训练的图像生成模型上训练评分模型与分辨率提升模型,从而可以有效提升生成图像的分辨率。
[0171] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,文本到图像的生成的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
[0172] 以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。