1.一种基于生成对抗网络的高分辨率图像生成方法,其特征在于,包含以下步骤:步骤1),对待学习的数据集图像进行预处理得到训练集;
步骤2),构建生成对抗网络,所述生成对抗网络包含生成网络G和判别网络D两个深度卷积神经网络;
步骤3),对生成对抗网络进行预训练,获得预训练的模型参数作为生成对抗网络的初始化参数:步骤3.1),随机初始化生成对抗网络的模型参数,对生成对抗网络进行训练并保存训练完成时的模型参数;
步骤3.2),重复步骤3.1)预设的次数阈值,随机选取其中一次保存的模型参数作为预训练的模型参数;
步骤4),将训练集和生成网络G生成的图像分别输入到判别网络D中,判别网络D的输出反作用于生成网络G,对生成对抗网络进行对抗训练,优化生成网络G和判别网络D的网络参数,当损失函数收敛时结束训练,得到训练好的生成对抗网络;
步骤5),将随机数据分布输入到训练好的生成网络中,实现高分辨率图像生成;
所述步骤1)的详细步骤如下:
步骤1.1),将待处理图像x裁剪为n*n,n为16的整数倍;
步骤1.2),采用双三次插值方法对裁剪后的图像分别进行采样率为2、4、8、16的下采样,得到低分辨率图像;低分辨率图像块构成训练集;
所述生成网络G采用倒金字塔结构,包含5个级联的生成器G0、G1、G2、G3、G4,逐层实现高频信息的学习、锐化图片细节;最低层生成器G4包含按顺序连接的全连接层、RELU激活层、Dropout层、全连接层、RELU激活层、Dropout层、全连接层、Tanh激活层;四个高层生成器G0、G1、G2、G3均包含卷积层、RELU激活层、卷积层、RELU激活层、卷积层、Tanh激活层;
所述判别网络D包含五个判别器D0、D1、D2、D3、D4,分别对应生成器G0、G1、G2、G3、G4,最低层判别器D4包含按顺序连接的全连接层、RELU激活层、Dropout层、全连接层、RELU激活层、Dropout层、全连接层、Tanh激活层;四个高层判别器D0、D1、D2、D3均包含卷积层、RELU激活层、Dropout层、卷积层、RELU激活层、Dropout层、Flatten层、全连接层;
在卷积操作中使用“补零”方式来保持所有特征图的大小相同;
生成网络G通过模拟训练集中的数据分布来生成逼近真实数据分布的图像;判别网络D判断输入到判别网络中的图片是来自真实数据分布pdata还是生成网络G生成的分布,并反作用于生成网络G;
生成对抗网络的目标函数为:
V(D,G)是整个生成对抗网络待优化的目标函数,D为判别网络,G为生成网络,z为随机输入的数据分布,x为下采样后的低分辨率图片,y为真实图片对应的标签或者是从真实图片中截取的一个图像块作为该图像的标签;pdata(x)为真实数据分布,pg(z)为随机输入数据分布;D(x|y)表示在条件y的情况下,判别器判定低分辨率图片x是来自真实图片的概率;G(z|y)表示在条件y的情况下,生成器输入为z时的输出;D(G(z|y))表示在条件y的情况下,判别器判断生成器输出的图片为真实图片的概率;
所述步骤4)的详细步骤如下:
步骤4.1),固定生成网络G参数,将随机输入分布输入到生成网络G中,输出得到相应的图像;
将生成图像和对应的训练集图像输入到判别网络中,将lD作为判别网络的损失函数,使用判别网络Adam优化器优化判别网络参数,最大化目标函数V(D,G);
判别网络的损失函数如下:
lD=lDr‑pilDf (4)
Mbalance=γlDr‑lG (5)
pi+1=pi+λ*Mbalance(0<pi+1<1) (6)Mglobal=lDr+abs(Mbalance) (7)
Ir为真实图片;If为生成网络生成的图片;y是与真实图片Ir对应的标签;lG为生成网络的损失函数;lDr为判别网络判别“真实图片为真”的概率,lDf为判别网络判别“生成网络生成的图片为真”的概率;lD为判别网络的损失函数,是一种相对判别方法,能够更大程度上优化判别网络,同时使用参数pi动态调节判别网络的的学习能力,有效的改善梯度消失问题;使用参数Mglobal来衡量生成对抗网络的训练程度,数值越大表示网络训练越完善;设置‑3超参数γ为0.5,λ为e ;
判别网络Adam优化器中设置参数learning_rate初始值为d_lr,每迭代N次,参数d_lr更新为max(d_lr*lr_decay_rate,lr_low_boundary),参数lr_decay_rate在[0.1,0.5]间取值,参数lr_low_boundary为设置的最低学习率;
步骤4.2),将步骤4.1)中优化后的判别器参数固定,将lD作为生成网络的损失函数,使用生成网络Adam优化器优化生成网络参数,最小化目标函数V(D,G);
生成网络的损失函数如下:
生成网络Adam优化器中设置参数learning_rate初始值为g_lr,每迭代M次,参数g_lr更新为max(g_lr*lr_decay_rate,lr_low_boundary),参数lr_decay_rate在[0.1,0.5]间取值,参数lr_low_boundary为设置的最低学习率;
步骤4.3),重复步骤4.1)、步骤4.2),交替训练判别网络和生成网络,随着训练周期的加长动态调整生成网络和判别网络的学习率,直到损失函数收敛,得到最优的网络模型参数并保存。