一种图像转换方法及系统

文档序号:29632776发布日期:2022-04-13 16:23阅读:317来源:国知局
一种图像转换方法及系统

1.本发明涉及图像生成技术领域,特别是涉及一种图像转换方法及系统。


背景技术:

2.图像转换是一个经典的计算机视觉任务,许多计算机视觉问题可以被看作是一个图像到图像的转换问题。例如,图像去噪、去雾、超分辨率重建、老照片修复,黑白图像着色、素颜照上妆、真实图像风格转换(真实照片转油画或卡通画等)、白天到黑夜转换、季节转换,马到斑马转换等。基于生成对抗网络(generative adversarial networks,gans)的算法在图像转换任务上表现良好,pix2pix、cyclegan、cut以及dclgan等模型陆续被提出。pix2pix首次将条件对抗网络作为图像转换问题的一个通用的解决方案,为所有这些问题建立了一个共同的框架。然而,该方法要求训练数据是配对的,对于许多任务来说,没有成对的训练数据。这大大限制了图像转换的应用场景。2017年,zhu等人提出了一种周期一致性生成对抗网络(cycle-consistency generativeadversarialnetwork,cyclegan),在没有配对示例的情况下,通过学习两个域χ和之间的逆映射函数来实现图像到图像的转换任务。这种方法不要求训练数据是配对的,因此大大扩展了图像转换的应用场景。虽然周期一致性不要求训练数据是配对的,但它假设两个域χ和之间是一个双射关系,这通常太有限制性。2020年,park等人首次将对比学习应用到图像到图像的转换任务中,通过学习输入块和输出块之间的对应关系,取得了优于基于周期一致性的性能,该方法被称作cut(contrastive unpaired translation)。为了进一步利用对比学习,同时避免循环一致性的缺点,2021年han等人对cut进行了改进,提出了一种双重对比学习方法,通过将单向映射扩展到双向映射来推断未配对数据之间的有效映射,称为双重对比学习生成对抗网络(dual contrastive learning generative adversarial network,dclgan)。
3.但是,cut和dclgan都只是在生成器中引入对比学习,这导致在训练过程中鉴别器容易发生过拟合,甚至遭受模式崩溃。而本发明所提出的mcl是一种新的对比学习方法,通过进一步利用鉴别器输出层的特征信息来构造对比损失,增强了鉴别器的泛化性能,有效减缓了训练过程中模型崩溃的问题。


技术实现要素:

4.本发明的目的是提供一种图像转换方法,能够提高图像转换的转换精度。
5.为实现上述目的,本发明提供了如下方案:
6.一种图像转换方法,包括:
7.获取待转换图像;
8.将所述转换图像输入到图像转换模型中,得到转换后的图像;图像转换模型是利用训练集对初始对抗网络进行训练得到的;所述训练集包括待转换图像训练集和目标图像训练集;所述初始对抗网络包括生成网络和鉴别网络;所述生成网络包括一个编码器和一个解码器。
9.可选的,在所述获取待转换图像之前,还包括:
10.构建初始对抗网络;
11.获取训练集;
12.以所述待转换图像训练集为输入,以所述目标图像训练集为输出,对所述初始对抗网络进行训练,得到所述图像转换模型。
13.可选的,所述以所述待转换图像训练集为输入,以所述目标图像训练集为输出,对所述初始对抗网络进行训练,得到所述图像转换模型,具体包括:
14.将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集;
15.将所述特征集输入到所述解码器中所述待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
16.判断所述生成网络损失是否在第一预设范围内,得到第一判断结果;
17.若所述第一判断结果为否,则更新所述编码器和所述解码器的参数并返回步骤“将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集”;
18.若所述第一判断结果为是,则将所述输出转换图像集和所述目标图像训练集均输入所述鉴别网络中,并计算鉴别网络损失;
19.判断所述鉴别网络损失是否在第二预设范围内,得到第二判断结果;
20.若所述第二判断结果为否,则更新所述鉴别网络的参数并返回步骤“将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集”;
21.若所述第二判断结果为是,则将训练后的生成网络作为所述图像转换模型。
22.可选的,所述以所述待转换图像训练集为输入,以所述目标图像训练集为输出,对所述初始对抗网络进行训练,得到所述图像转换模型,具体包括:
23.将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集;
24.将所述特征集输入到所述解码器中所述待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
25.将所述输出转换图像集和所述目标图像训练集均输入所述鉴别网络中,并计算鉴别网络损失;
26.判断迭代次数是否达到预设迭代次数阈值,得到第三判断结果;
27.若所述第三判断结果为否,则根据所述生成网络损失和所述鉴别网络损失,更新所述初始对抗网络的参数并返回步骤“将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集”;
28.若所述第三判断结果为是,则将训练后的生成网络作为所述图像转换模型。
29.可选的,
30.所述生成网络损失为:
31.lg=lg(g,d,x,y)+λ
x
·
l
patchnce
(g,h,x)+λy·
l
patchnce
(g,h,y);
32.其中,lg(g,d,x,y)=e[log(1-d(g(x)))];
[0033]
[0034][0035][0036]
式中,lg表示生成网络总损失;lg(g,d,x,y)表示生成对抗损失;l
patchnce
(g,h,x)表示第一补丁块对比损失;l
patchnce
(g,h,y)表示第二补丁块对比损失;λ
x
和λy分别表示第一系数和第二系数;λ
x
和λy均为1;g(x)表示将待转换图像训练集中的一张图像x输入至生成网络中后得到的转换后的图像;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;e(*)表示*的期望值;表示交叉熵损失函数;τ表示第一控制系数,τ为0.07;表示将待转换图像训练集中图像x依次输入至l层编码器和多层感知机h得到的特征集合l=1,...,l;l为编码器总层数;表示将g(x)依次输入至l层编码器和多层感知机h得到的特征集合;令s∈{1,

,s
l
},s
l
是第l层的空间位置数;表示中第l层第s个查询块的特征,表示{z
l
}
l
中第l层第s个正样例的特征;表示{z
l
}
l
中第l层除s外负样例的特征;;表示将训练集目标域中图像y依次输入至l层编码器和多层感知机h得到的特征集合;表示将图像g(y)依次输入至l层编码器和多层感知机h得到的特征集合;g(y)表示将目标图像集中的一张图像y输入至生成网络中后得到的转换后的图像;表示中第l层第s个查询块的特征,表示{w
l
}
l
中第l层第s个正样例的特征;表示{w
l
}
l
中第l层除s外负样例的特征;
[0037]
所述鉴别网络损失为:ld=ld(g,d,x,y)+λm·
l
mcl
(g,d,x,y);
[0038]
其中,ld(g,d,x,y)=-e[logd(y)]+e[logd(g(x))];
[0039][0040][0041]
式中,ld表示鉴别网络损失;ld(g,d,x,y)表示鉴别网络对抗损失;l
mcl
(g,d,x,y)表示多特征对比学习损失;λm表示第三系数;d(y)表示向鉴别网络中输入图像y后得到的鉴别概率值;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;l
con
(r(i),f,r
(-i)
)表示对比损失函数;r(i)表示第i个目标特征,即将目标图像输入到鉴别网络中得到的第i个特征;r={r(i)}表示目标特征的集合;r
(-i)
=r\{r(i)}表示除第i个目标特征之外的所有目标特征;f(i)表示第i个生成图像特征,即将生成图像输入到鉴别网络中得到的第i个特征;f={f(i)}表示所有生成图像特征的集合;ω表示第二控制系数,ω为0.07。
[0042]
一种图像转换系统,包括:
[0043]
待转换图像获取模块,用于获取待转换图像;
[0044]
图像转换模块,用于将所述转换图像输入到图像转换模型中,得到转换后的图像;图像转换模型是利用训练集对初始对抗网络进行训练得到的;所述训练集包括待转换图像训练集和目标图像训练集;所述初始对抗网络包括生成网络和鉴别网络;所述生成网络包括一个编码器和一个解码器。
[0045]
可选的,所述系统,还包括:
[0046]
初始对抗网络构建模块,用于构建初始对抗网络;
[0047]
训练集获取模块,用于获取训练集;
[0048]
图像转换模型确定模块,用于以所述待转换图像训练集为输入,以所述目标图像训练集为输出,对所述初始对抗网络进行训练,得到所述图像转换模型。
[0049]
可选的,所述图像转换模型确定模块,具体包括:
[0050]
第一编码单元,用于将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集;
[0051]
第一解码单元,用于将所述特征集输入到所述解码器中所述待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0052]
第一判断单元,用于判断所述生成网络损失是否在第一预设范围内,得到第一判断结果;若所述第一判断结果为否,则调用第一参数更新单元;若所述第一判断结果为是,则调用第一鉴别单元;
[0053]
所述第一参数更新单元,用于更新所述编码器和所述解码器的参数并调用所述第一编码单元;
[0054]
第一鉴别单元,用于将所述输出转换图像集和所述目标图像训练集均输入所述鉴别网络中,并计算鉴别网络损失;
[0055]
第二判断单元,用于判断所述鉴别网络损失是否在第二预设范围内,得到第二判断结果;若所述第二判断结果为否,则调用第二参数更新单元;若所述第二判断结果为是,则调用第一图像转换模型确定单元;
[0056]
第二参数更新单元,用于更新所述鉴别网络的参数并调用所述第一编码单元;
[0057]
第一图像转换模型确定单元,用于将训练后的生成网络作为所述图像转换模型。
[0058]
可选的,所述图像转换模型确定模块,具体包括:
[0059]
第二编码单元,用于将所述待转换图像训练集输入到所述编码器中进行特征提取,得到特征集;
[0060]
第二解码单元,用于将所述特征集输入到所述解码器中所述待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0061]
第二鉴别单元,用于将所述输出转换图像集和所述目标图像训练集均输入所述鉴别网络中,并计算鉴别网络损失;
[0062]
第三判断单元,用于判断迭代次数是否达到预设迭代次数阈值,得到第三判断结果;若所述第三判断结果为否,则调用第三参数更新单元;若所述第三判断结果为是,则调用第二图像转换模型确定单元
[0063]
第三参数更新单元,用于根据所述生成网络损失和所述鉴别网络损失,更新所述初始对抗网络的参数并调用所述第二编码单元;
[0064]
第二图像转换模型确定单元,用于将训练后的生成网络作为所述图像转换模型。
[0065]
可选的,
[0066]
所述生成网络损失为:
[0067]
lg=lg(g,d,x,y)+λ
x
·
l
patchnce
(g,h,x)+λy·
l
patchnce
(g,h,y);
[0068]
其中,lg(g,d,x,y)=e[log(1-d(g(x)))];
[0069][0070][0071][0072]
式中,lg表示生成网络总损失;lg(g,d,x,y)表示生成对抗损失;l
patchnce
(g,h,x)表示第一补丁块对比损失;l
patchnce
(g,h,y)表示第二补丁块对比损失;λ
x
和λy分别表示第一系数和第二系数;λ
x
和λy均为1;g(x)表示将待转换图像训练集中的一张图像x输入至生成网络中后得到的转换后的图像;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;e(*)表示*的期望值;表示交叉熵损失函数;τ表示第一控制系数,τ为0.07;表示将待转换图像训练集中图像x依次输入至l层编码器和多层感知机h得到的特征集合l=1,...,l;l为编码器总层数;表示将g(x)依次输入至l层编码器和多层感知机h得到的特征集合;令s∈{1,

,s
l
},s
l
是第l层的空间位置数;表示中第l层第s个查询块的特征,表示{z
l
}
l
中第l层第s个正样例的特征;表示{z
l
}
l
中第l层除s外负样例的特征;;表示将训练集目标域中图像y依次输入至l层编码器和多层感知机h得到的特征集合;表示将图像g(y)依次输入至l层编码器和多层感知机h得到的特征集合;g(y)表示将目标图像集中的一张图像y输入至生成网络中后得到的转换后的图像;表示中第l层第s个查询块的特征,表示{w
l
}
l
中第l层第s个正样例的特征;表示{w
l
}
l
中第l层除s外负样例的特征;
[0073]
所述鉴别网络损失为:ld=ld(g,d,x,y)+λm·
l
mcl
(g,d,x,y);
[0074]
其中,ld(g,d,x,y)=-e[logd(y)]+e[logd(g(x))];
[0075][0076][0077]
式中,ld表示鉴别网络损失;ld(g,d,x,y)表示鉴别网络对抗损失;l
mcl
(g,d,x,y)表示多特征对比学习损失;λm表示第三系数;d(y)表示向鉴别网络中输入图像y后得到的鉴别概率值;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;l
con
(r(i),f,r
(-i)
)
表示对比损失函数;r(i)表示第i个目标特征,即将目标图像输入到鉴别网络中得到的第i个特征;r={r(i)}表示目标特征的集合;r
(-i)
=r\{r(i)}表示除第i个目标特征之外的所有目标特征;f(i)表示第i个生成图像特征,即将生成图像输入到鉴别网络中得到的第i个特征;f={f(i)}表示所有生成图像特征的集合;ω表示第二控制系数,ω为0.07。
[0078]
根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0079]
本发明提供了一种图像转换方法及系统,方法包括:获取待转换图像;将转换图像输入到图像转换模型中,得到转换后的图像;图像转换模型是利用训练集对初始对抗网络进行训练得到的;训练集包括待转换图像训练集和目标图像训练集;初始对抗网络包括生成网络和鉴别网络;生成网络包括一个编码器和一个解码器。本发明通过对初始对抗网络进行训练得到图像转换模型用于图像转换,能够提高图像转换的转换精度。
附图说明
[0080]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0081]
图1为本发明实施例中图像转换方法流程图;
[0082]
图2为本发明实施例中70
×
70patchgan鉴别器结构示意图;
[0083]
图3为本发明实施例中图像转换方法总体架构示意图;
[0084]
图4为本发明实施例中不同方法的视觉效果示意图;
[0085]
图5为本发明实施例中不同方法在cityscapes数据集上的对比结果。
具体实施方式
[0086]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0087]
本发明的目的是提供一种图像转换方法,能够提高图像转换的转换精度。
[0088]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0089]
如图1,本发明提供了一种图像转换方法,包括:
[0090]
步骤101:获取待转换图像;
[0091]
步骤102:将转换图像输入到图像转换模型中,得到转换后的图像;图像转换模型是利用训练集对初始对抗网络进行训练得到的;训练集包括待转换图像训练集和目标图像训练集;初始对抗网络包括生成网络和鉴别网络;生成网络包括一个编码器和一个解码器。
[0092]
在步骤101之前,还包括:
[0093]
构建初始对抗网络;
[0094]
步骤101:获取训练集;
[0095]
步骤102:以待转换图像训练集为输入,以目标图像训练集为输出,对初始对抗网
络进行训练,得到图像转换模型。
[0096]
其中,步骤102,具体包括:
[0097]
将待转换图像训练集输入到编码器中进行特征提取,得到特征集;
[0098]
将特征集输入到解码器中待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0099]
判断生成网络损失是否在第一预设范围内,得到第一判断结果;
[0100]
若第一判断结果为否,则更新编码器和解码器的参数并返回步骤“将待转换图像训练集输入到编码器中进行特征提取,得到特征集”;
[0101]
若第一判断结果为是,则将输出转换图像集和目标图像训练集均输入鉴别网络中,并计算鉴别网络损失;
[0102]
判断鉴别网络损失是否在第二预设范围内,得到第二判断结果;
[0103]
若第二判断结果为否,则更新鉴别网络的参数并返回步骤“将待转换图像训练集输入到编码器中进行特征提取,得到特征集”;
[0104]
若第二判断结果为是,则将训练后的生成网络作为图像转换模型。
[0105]
本发明还提供了步骤102的另一种实施方式,步骤102具体包括:
[0106]
将待转换图像训练集输入到编码器中进行特征提取,得到特征集;
[0107]
将特征集输入到解码器中待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0108]
将输出转换图像集和目标图像训练集均输入鉴别网络中,并计算鉴别网络损失;
[0109]
判断迭代次数是否达到预设迭代次数阈值,得到第三判断结果;
[0110]
若第三判断结果为否,则根据生成网络损失和鉴别网络损失,更新初始对抗网络的参数并返回步骤“将待转换图像训练集输入到编码器中进行特征提取,得到特征集”;
[0111]
若第三判断结果为是,则将训练后的生成网络作为图像转换模型。
[0112]
具体的,
[0113]
所述生成网络损失为:
[0114]
lg=lg(g,d,x,y)+λ
x
·
l
patchnce
(g,h,x)+λy·
l
patchnce
(g,h,y);
[0115]
其中,lg(g,d,x,y)=e[log(1-d(g(x)))];
[0116][0117][0118][0119]
式中,lg表示生成网络总损失;lg(g,d,x,y)表示生成对抗损失;l
patchnce
(g,h,x)表示第一补丁块对比损失;l
patchnce
(g,h,y)表示第二补丁块对比损失;λ
x
和λy分别表示第一系数和第二系数;λ
x
和λy均为1;g(x)表示将待转换图像训练集中的一张图像x输入至生成网络中后得到的转换后的图像;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;
e(*)表示*的期望值;表示交叉熵损失函数;τ表示第一控制系数,τ为0.07;表示将待转换图像训练集中图像x依次输入至l层编码器和多层感知机h得到的特征集合l=1,...,l;l为编码器总层数;表示将g(x)依次输入至l层编码器和多层感知机h得到的特征集合;令s∈{1,

,s
l
},s
l
是第l层的空间位置数;表示中第l层第s个查询块的特征,表示{z
l
}
l
中第l层第s个正样例的特征;表示{z
l
}
l
中第l层除s外负样例的特征;;表示将训练集目标域中图像y依次输入至l层编码器和多层感知机h得到的特征集合;表示将图像g(y)依次输入至l层编码器和多层感知机h得到的特征集合;g(y)表示将目标图像集中的一张图像y输入至生成网络中后得到的转换后的图像;表示中第l层第s个查询块的特征,表示{w
l
}
l
中第l层第s个正样例的特征;表示{w
l
}
l
中第l层除s外负样例的特征;
[0120]
鉴别网络损失为:ld=ld(g,d,x,y)+λm·
l
mcl
(g,d,x,y);
[0121]
其中,ld(g,d,x,y)=-e[logd(y)]+e[logd(g(x))];
[0122][0123][0124]
式中,ld表示鉴别网络损失;ld(g,d,x,y)表示鉴别网络对抗损失;l
mcl
(g,d,x,y)表示多特征对比学习损失;λm表示第三系数;d(y)表示向鉴别网络中输入图像y后得到的鉴别概率值;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;l
con
(r(i),f,r
(-i)
)表示对比损失函数;r(i)表示第i个目标特征,即将目标图像输入到鉴别网络中得到的第i个特征;r={r(i)}表示目标特征的集合;r
(-i)
=r\{r(i)}表示除第i个目标特征之外的所有目标特征;f(i)表示第i个生成图像特征,即将生成图像输入到鉴别网络中得到的第i个特征;f={f(i)}表示所有生成图像特征的集合;ω表示第二控制系数,ω为0.07。
[0125]
如图3,本发明提供的基于多特征对比学习的图像到图像转换方法,具体包括:
[0126]
步骤s1:构建训练数据集,该数据集包含两个域:源域和目标域(例如在马到斑马的转换中,源域为包含马的数据集。而目标域为包含斑马的数据集。)
[0127]
步骤s2:将生成对抗网络中引入生成网络g和鉴别网络d,获得初始对抗网络(本发明中将生成网络g分解为一个编码器ge和一个解码器gd,按顺序应用以产生输出图像y

=g(x)=gd(ge(x))。);
[0128]
步骤s3:利用训练数据集对初始对抗网络进行训练及优化,获得图像转换模型;
[0129]
步骤s4:将待转换样本输入至图像转换模型中进行图像转换,获得转换后的图像。(例如将马的图像输入至图像转换模型,获得相应的斑马的图像。)
[0130]
对于步骤s3:
[0131]
步骤s31:将训练数据集输入初始对抗网络进行训练,利用生成网络损失函数公式计算生成网络损失值,利用鉴别网络损失函数计算鉴别网络损失值;
[0132]
步骤s32:基于生成网络损失值判断是否满足第一收敛条件;如果满足第一收敛条件,则执行“步骤s33”;如果不满足第一收敛条件,则返回“步骤s31”;第一收敛条件为相邻两次生成网络损失值之间的差值小于第一设定阈值,或生成网络损失值在第一设定范围内。
[0133]
步骤s33:基于鉴别网络损失值判断是否满足第二收敛条件;如果满足第二收敛条件,则将训练后的初始对抗网络作为图像转换模型;如果不满足第二收敛条件,则返回“步骤s31”;第二收敛条件为相邻两次鉴别网络损失值之间的差值小于第二设定阈值,或鉴别网络损失值在第二设定范围内。
[0134]
本发明还提供了步骤s3的另一种实施方式:
[0135]
步骤s31:设置最大训练次数;
[0136]
步骤s32:将训练样本和训练集输入初始对抗网络进行训练;
[0137]
步骤s33:判断迭代次数是否小于或等于最大训练次数;如果迭代次数小于或等于最大训练次数,则利用生成网络损失函数公式计算生成网络损失值,利用鉴别网络损失函数计算鉴别网络损失值,采用adam优化算法更新网络参数;如果迭代次数大于最大训练次数,则将训练后的初始对抗网络作为图像转换模型。adam优化算法是深度学习算法中最常用的一种优化算法,在本发明中,建议将学习率lr设置为0.0002,一阶动量β1设置为0.5、二阶动量β2设置为0.999。
[0138][0139][0140]
lg表示生成网络损失;ld表示鉴别网络损失;表示lg的梯度,表示ld的梯度,该梯度是利用adam优化算法计算得到的,表示梯度。
[0141]
一、网络损失函数为:
[0142]
lg=lg(g,d,x,y)+λ
x
·
l
patchnce
(g,h,x)+λy·
l
patchnce
(g,h,y)
[0143]
其中,lg表示生成网络损失值,它由lg(g,d,x,y)、l
patchnce
(g,h,x)以及l
patchnce
(g,h,y)三部分损失值计算得到。λ
x
和λy分别为l
patchnce
(g,h,x)以及l
patchnce
(g,h,y)的系数,在计算过程中建议将λ
x
和λy的值设置为1。
[0144]
1)对于lg(g,d,x,y),其描述为:
[0145]
lg(g,d,x,y)=e[log(1-d(g(x)))]
[0146]
其中,g(x)表示将训练集源域中的一张图像x输入至生成网络中后得到的转换后的图像。d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值。e表示期望值。
[0147]
2)对于l
patchnce
(g,h,x),其描述为:
[0148][0149]
其中,h表示一个小型的两层多层感知机网络(mlp)。本发明从ge(x)中选择l层,并将其发送到一个小型的两层mlp网络h
l
,产生一堆特征其中表示第
l层的输出。然后,对l∈{1,2,

,l}层进行索引,并定义s∈{1,

,s
l
},(这里的s取值为1,2,

,s
l
,并没有实际含义,只是一种计数写法),其中s
l
是每一层的空间位置数。将对应的特征(正样例)称为其他特征(负样例)称为其中c
l
为每一层的通道数量。类似地,将输出图像y

编码为l表示一个交叉熵损失函数。e表示期望值。
[0150]
对于l值的计算:
[0151][0152]
v,v
+
,v-分别表示查询块,正样例和负样例。
[0153]
在计算过程中建议将τ的值设置为0.07。
[0154]
3)对于l
patchnce
(g,h,y)的描述与2)类似。
[0155]
二、鉴别网络损失函数,其描述为:
[0156]
ld=ld(g,d,x,y)+λm·
l
mcl
(g,d,x,y)
[0157]
其中,ld表示鉴别网络损失值,它由ld(g,d,x,y)以及l
mcl
(g,d,x,y)两部分损失值计算得到。λm为l
mcl
(g,d,x,y)的系数,在计算过程中建议将λm的值设置为1。
[0158]
1)对于ld(g,d,x,y),其描述为:
[0159]
ld(g,d,x,y)=-e[logd(y)]+e[logd(g(x))]
[0160]
其中,y表示目标域中的一张图像。g(x)表示将训练集源域中的一张图像x输入至生成网络中后得到的转换后的图像。d(y)表示向鉴别网络中输入图像y后得到的鉴别概率值。d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值。e表示期望值。
[0161]
2)对于l
mcl
(g,d,x,y),其描述为:
[0162][0163]
其中,l
con
表示对比损失函数。
[0164]
对于l
con
值的计算:
[0165][0166]
其中,本发明将鉴别器输出层的特征信息处理为一个n
×
n的矩阵a=(a
i,j
)n×n。然后,将矩阵的每一行元素视为一个特征向量,即a=(α
(1)

(2)
,


(n)
)
t
,其中α(i)=(a
i,1
,a
i,2
,
…ai,n
)。并对每一个特征向量进行归一化处理,得到f(a)=(f(α
(1)
),f(α
(2)
),

,f(α
(n)
))
t
。对于一个输出图像y

=g(x)和一个来自目标域y的图像y,通过鉴别器可以得到f(a
(y

)
)=(f(y

(1)
),f(y

(2)
),

,f(y

(n)
))
t
和f(a
(y)
)=(f(y
(1)
),f(y
(2)
),

,f(y
(n)
))
t
。分别记r={r(i)}={f(y(i))},f={f(i)}={f(y
′(i))}以及r
(-i)
=r\{r(i)}。在计算过程中建议将ω的值设置为0.1。
[0167]
对于给定的一个的数据集:和本发明的目的是学习一个映射函数,将源域中的图像x转换到目标域中去。通常,鉴别器会将输入样本映射到一个
概率空间。如图2所示,对于70
×
70patchgan鉴别器,它的输出层为一个30
×
30的矩阵a=(a
i,j
)
30
×
30
,其中每个元素a
ij
的目的是对70
×
70重叠图像块的真伪进行分类。鉴别器会根据所有元素的期望来判断一个输入图像的真伪。
[0168]
不同于之前的方法,本发明还考虑了如何利用鉴别器输出层的特征信息来构造对比损失,增强鉴别器的泛化性能。图3展示了本方法的总体架构。本方法包括四个损失:对抗损失、2个patchnce损失(补丁块对比损失)和mcl损失(multi-feature contrastive learning多特征对比损失),具体如下。
[0169]
对抗损失:
[0170]
本发明使用一个对抗损失鼓励转换后的图像为在视觉上与目标域中的图像足够相似,如下:
[0171]
l
gan
(g,d,x,y)=e[logd(y)]+e[log(1-d(g(x)))]
ꢀꢀꢀꢀꢀꢀ
(3)
[0172]
patchnce损失:
[0173]
本发明使用噪声对比估计框架来最大化输入块和输出块之间的相互信息。也就是说,生成的输出块应该尽可能接近其对应的输入块,而远离其他随机块。
[0174]
将一个查询块、一个正样例和n个负样例分别映射到k维向量上,即v,v
+
∈rk和v-∈rn×k。其中,表示第n个负样例。在本发明中,查询块、正样例和负样例分别指输出块、对应的输入块和非对应的输入块。查询块的目标是联系正样例并且远离负样例,这在数学上可以表示为一个交叉熵损失:
[0175][0176]
本发明将向量归一化到一个单位球面上,以防止空间坍缩或膨胀。并且将τ=0.07设置为默认值。
[0177]
本发明将生成器分解为两个分量:一个编码器和一个解码器,按顺序应用以产生输出图像y

=g(x)=gd(ge(x))。本发明从ge(x)中选择l层,并将其发送到一个小型的两层mlp网络h
l
,产生一堆特征其中表示第l层的输出。然后,对l∈{1,2,

,l}层进行索引,并定义s∈{1,

,s
l
},其中s
l
是每一层的空间位置数。将对应的特征(正样例)称为其他特征称(负样例)为其中c
l
为每一层的通道数量。类似地,将输出图像y

编码为本发明的目标是在特定位置匹配相应的输入块和输出块。例如,在图3中,输出斑马的头部与输入马的头部的联系应该比其他块(如腿部和草地)更紧密。因此,patchnce损失可以表示为:
[0178][0179]
此外,本发明通过计算目标域图像的l
patchnce
(g,h,y),以防止生成器进行不必要的更改。
[0180]
mcl损失:
[0181]
patchnce损失通过学习输入块和输出图像块之间的对应关系,从而增强生成器的
性能。本发明进一步通过利用鉴别器输出层的特征信息来增强鉴别器的性能,称之为mcl损失。
[0182]
通常,鉴别器通过使用单个标量来估计输入样本的真实性。然而,这种简单的映射无疑丢失了一些重要的鉴别信息。从而,由于鉴别器不够强大,很容易发生过拟合。为了充分利用鉴别器输出层的特征信息,本发明不再将其简单地映射到一个概率空间,而是利用这些特征信息来构造一个对比损失。为了充分利用鉴别器输出层的特征信息,本发明使用它来构造对比损失,而不是简单地将其映射到一个概率空间。本发明将鉴别器输出层的特征信息处理为一个n
×
n的矩阵a=(a
i,j
)n×n。然后,将矩阵的每一行元素视为一个特征向量,即a=(α
(1)

(2)
,


(n)
)
t
,其中α(i)=(a
i,1
,a
i,2
,
…ai,n
)。并对每一个特征向量进行归一化处理,得到f(a)=(f(α
(1)
),f(α
(2)
),

,f(α
(n)
))
t
。接下来,本发明通过研究不同特征向量之间的关系来构造mcl损失。
[0183]
如图3所示,对于一个输出图像y

=g(x)和一个来自目标域y的图像y,通过鉴别器可以得到f(a
(y

)
)=(f(y

(1)
),f(y

(2)
),

,f(y

(n)
))
t
和f(a
(y)
)=(f(y
(1)
),f(y
(2)
),

,f(y
(n)
))
t
,(这里n=30)。自然地,希望y的任一特征向量f(y(i)),都尽可能接近它的其他特征向量,而远离y

的特征向量。分别记r={r(i)}={f(y(i))},f={f(i)}={f(y
′(i))}以及r
(-i)
=r\{r(i)}。形式上,对比损失被定义为:
[0184][0185]
其中,ω=0.1。
[0186]
根据式(6),关于鉴别器的mcl损失定义如下:
[0187][0188]
最终目标损失:
[0189]
本发明的最终目标损失包括对抗损失、2个patchnce损失和mcl损失,如下所示
[0190][0191]
生成对抗网络是求极大极小值,这个总损失是生成网络损失和鉴别网络损失合在一起的写法。在实际计算中,通常会固定一个网络,去计算里一个网络的损失函数。
[0192]
如果没有特殊说明,则设置λ
x
=λy=1以及λm=0.01。
[0193]
本发明提出了一种简单的方法,通过利用鉴别器输出层的特征信息来构造对比损失,即mcl。该方法提高了鉴别器的性能,有效解决了模式崩溃的问题。大量实验表明,在非配对的图像到图像转换中,该方法通过更好地利用对比学习而取得最好的实验结果。
[0194]
本发明在几个数据集上对不同方法的性能进行了测试评估。依次介绍了实验的训练细节,数据集以及评价方法。实验结果表明,该方法优于现有的方法。
[0195]
本发明所提出的mcl被要求训练400个批次。mcl包括一个基于resnet的带有9个残差块的生成器和一个patchgan鉴别器。选择以lsgan损失作为对抗损失,在256
×
256分辨率的数据集上训练模型。在本发明中建议采用adam优化算法进行网络参数优化,学习率lr被设置为0.0002,一阶动量β1被设置为0.5、二阶动量β2被设置为0.999,并且在训练总批次的
一半之后开始线性衰减。
[0196]
本发明在以下公开挑战数据集上进行了实验。
[0197]
horse

zebra数据集包含2401张训练图像和260张测试图像,均采集自imagenet,它在cyclegan中被介绍。
[0198]
cityscapes数据集包含2975个训练图像和500个测试图像,它是一个从标签到城市的数据集。
[0199]
fid(frechet inception distance,弗雷歇初始距离)是本发明主要使用的评价指标。fid由heusel等人提出,被用于衡量两个数据分布之间的距离。也就是说,fid越低,表示结果越好。对于cityscapes数据集,本发明利用它的对应标签计算语义分割分数。使用预先训练的fcn-8s模型来计算三个指标,包括像素精度(pixacc),平均类别精度(classacc)和交并比(iou)。此外,本发明还比较了不同方法的模型参数和训练时间。
[0200]
与当前最新的非配对图像转换进行比较,这些方法包括cyclegan,cut和dclgan。所有的实验结果表明本方法所生成图像的质量要优于其他方法。并且该方法能以较轻的训练计算量获得更好的结果。
[0201]
表1展示了本方法与所有基线在horse

zebra和cityscapes三个数据集上的评估结果,它们的视觉效果展示如图4所示。图5显示了本方法与两种最先进的未配对方法在cityscapes数据集上的定性比较结果。
[0202]
表1本文方法与所有基线进行比较
[0203][0204]
表1中,sec/ite表示秒/每迭代一次;model parameters表示模型参数,1m表示一百万个参数。
[0205]
此外,本发明还提供了一种图像转换系统,包括:
[0206]
待转换图像获取模块,用于获取待转换图像;
[0207]
图像转换模块,用于将转换图像输入到图像转换模型中,得到转换后的图像;图像转换模型是利用训练集对初始对抗网络进行训练得到的;训练集包括待转换图像训练集和目标图像训练集;初始对抗网络包括生成网络和鉴别网络;生成网络包括一个编码器和一个解码器。
[0208]
本发明提供的图像转换系统,还包括:
[0209]
初始对抗网络构建模块,用于构建初始对抗网络;
[0210]
训练集获取模块,用于获取训练集;
[0211]
图像转换模型确定模块,用于以待转换图像训练集为输入,以目标图像训练集为
输出,对初始对抗网络进行训练,得到图像转换模型。
[0212]
图像转换模型确定模块,具体包括:
[0213]
第一编码单元,用于将待转换图像训练集输入到编码器中进行特征提取,得到特征集;
[0214]
第一解码单元,用于将特征集输入到解码器中待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0215]
第一判断单元,用于判断生成网络损失是否在第一预设范围内,得到第一判断结果;若第一判断结果为否,则调用第一参数更新单元;若第一判断结果为是,则调用第一鉴别单元;
[0216]
第一参数更新单元,用于更新编码器和解码器的参数并调用第一编码单元;
[0217]
第一鉴别单元,用于将输出转换图像集和目标图像训练集均输入鉴别网络中,并计算鉴别网络损失;
[0218]
第二判断单元,用于判断鉴别网络损失是否在第二预设范围内,得到第二判断结果;若第二判断结果为否,则调用第二参数更新单元;若第二判断结果为是,则调用第一图像转换模型确定单元;
[0219]
第二参数更新单元,用于更新鉴别网络的参数并调用第一编码单元;
[0220]
第一图像转换模型确定单元,用于将训练后的生成网络作为图像转换模型。
[0221]
作为图像转换模型确定模块的另一种实施方式,图像转换模型确定模块具体包括:
[0222]
第二编码单元,用于将待转换图像训练集输入到编码器中进行特征提取,得到特征集;
[0223]
第二解码单元,用于将特征集输入到解码器中待转换图像训练集进行转换,得到输出转换图像集,并计算生成网络损失;
[0224]
第二鉴别单元,用于将输出转换图像集和目标图像训练集均输入鉴别网络中,并计算鉴别网络损失;
[0225]
第三判断单元,用于判断迭代次数是否达到预设迭代次数阈值,得到第三判断结果;若第三判断结果为否,则调用第三参数更新单元;若第三判断结果为是,则调用第二图像转换模型确定单元
[0226]
第三参数更新单元,用于根据生成网络损失和鉴别网络损失,更新初始对抗网络的参数并调用第二编码单元;
[0227]
第二图像转换模型确定单元,用于将训练后的生成网络作为图像转换模型。
[0228]
优选地,
[0229]
所述生成网络损失为:
[0230]
lg=lg(g,d,x,y)+λ
x
·
l
patchnce
(g,h,x)+λy·
l
patchnce
(g,h,y);
[0231]
其中,lg(g,d,x,y)=e[log(1-d(g(x)))];
[0232]
[0233][0234][0235]
式中,lg表示生成网络总损失;lg(g,d,x,y)表示生成对抗损失;l
patchnce
(g,h,x)表示第一补丁块对比损失;l
patchnce
(g,h,y)表示第二补丁块对比损失;λ
x
和λy分别表示第一系数和第二系数;λ
x
和λy均为1;g(x)表示将待转换图像训练集中的一张图像x输入至生成网络中后得到的转换后的图像;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;e(*)表示*的期望值;表示交叉熵损失函数;τ表示第一控制系数,τ为0.07;表示将待转换图像训练集中图像x依次输入至l层编码器和多层感知机h得到的特征集合l=1,...,l;l为编码器总层数;表示将g(x)依次输入至l层编码器和多层感知机h得到的特征集合;令s∈{1,

,s
l
},s
l
是第l层的空间位置数;表示中第l层第s个查询块的特征,表示{z
l
}
l
中第l层第s个正样例的特征;表示{z
l
}
l
中第l层除s外负样例的特征;;表示将训练集目标域中图像y依次输入至l层编码器和多层感知机h得到的特征集合;表示将图像g(y)依次输入至l层编码器和多层感知机h得到的特征集合;g(y)表示将目标图像集中的一张图像y输入至生成网络中后得到的转换后的图像;表示中第l层第s个查询块的特征,表示{w
l
}
l
中第l层第s个正样例的特征;表示{w
l
}
l
中第l层除s外负样例的特征;
[0236]
鉴别网络损失为:ld=ld(g,d,x,y)+λm·
l
mcl
(g,d,x,y);
[0237]
其中,ld(g,d,x,y)=-e[logd(y)]+e[logd(g(x))];
[0238][0239][0240]
式中,ld表示鉴别网络损失;ld(g,d,x,y)表示鉴别网络对抗损失;l
mcl
(g,d,x,y)表示多特征对比学习损失;λm表示第三系数;d(y)表示向鉴别网络中输入图像y后得到的鉴别概率值;d(g(x))表示向鉴别网络中输入图像g(x)后得到的鉴别概率值;l
con
(r(i),f,r
(-i)
)表示对比损失函数;r(i)表示第i个目标特征,即将目标图像输入到鉴别网络中得到的第i个特征;r={r(i)}表示目标特征的集合;r
(-i)
=r\{r(i)}表示除第i个目标特征之外的所有目标特征;f(i)表示第i个生成图像特征,即将生成图像输入到鉴别网络中得到的第i个特征;f={f(i)}表示所有生成图像特征的集合;ω表示第二控制系数,ω为0.07。
[0241]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统
而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0242]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1