当前位置: 首页 > news >正文

东莞做网站怎么样盐城工程造价信息网

东莞做网站怎么样,盐城工程造价信息网,企业微信管理,绥化市建设工程网站招投标目录 摘要Abstract1 GFPGAN1.1 总体结构1.2 实验研究1.3 代码分析 总结 摘要 本周主要的学习内容是GFPGAN模型。GFPGAN是一种基于生成对抗网络(GAN)的模型#xff0c;其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验#xff08;GFP其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验GFP通过空间特征变换层被整合到面部恢复过程中使得GFPGAN能够实现真实性和保真度的良好平衡。 得益于强大的生成面部先验和精致的设计GFPGAN只需一次前向传递即可共同还原面部细节并增强色彩。GFPGAN 的出现解决了传统模型因输入质量低而无法提供准确的几何先验信息的问题。本周作者将从总体结构、实验研究以及代码分析三部分对GFPGAN进行学习。 Abstract The main content of this week’s study is the GFPGAN model. GFPGAN is a model based on Generative Adversarial Network (GANthat leverages rich and diverse priors encapsu-lated in a pretrained face GAN for blind face restoration.This Generative Facial Prior (GFP) is incorporated intothe face restoration process via spatial feature transformlayers which allow our method to achieve a good balanceof realness and fidelity. Thanks to the powerful genera-tive facial prior and delicate designs,GFP-GAN couldjointly restore facial details and enhance colors with just asingle forward pass. The emergence of GFPGAN has solved the problem of traditional models being degraded due to low input quality. This week, the author will study GFPGAN from three parts: overall structure, experimental research, and code analysis. 1 GFPGAN GFPGAN是一种基于生成对抗网络(GAN)的模型由腾讯应用研究中心开发的一种面向实际应用的人脸修复算法利用预训练的人脸生成对抗网络中封装的丰富多样的先验知识进行盲人脸修复。近年来GFPGAN在图像生成与修复领域备受瞩目。它凭借其强大的生成能力和高度逼真的修复效果成为了众多研究者、开发者乃至普通用户关注的焦点。本次的学习基于一篇名为Towards Real-World Blind Face Restoration with Generative Facial Prior的论文。 在论文中作者提出了一种名为GFPGAN的模型与最先进的面部修复方法在实际的低质量图像上的相比较其中包括HiFaceGAN 、DFDNet 、Wan和 PULSE 。以前的方法难以恢复正确的面部细节或保留面部特征但论文提出的GFPGAN在真实性和保真度之间取得了良好的平衡伪影要少得多。此外强大的生成面部先验使其能够联合进行修复和色彩增强。 1.1 总体结构 GFPGAN作为GAN的一种变体模型其结构主要也是生成器和判别器两部分。生成器负责将低分辨率图像转换为高分辨率图像而判别器则用于判断生成的图像是否真实。生成器采用了残差块Residual Block作为基础模块通过堆叠多个残差块来实现深度网络的构建。此外为了进一步提高模型的性能GFPGAN还引入了注意力机制如通道注意力Channel Attention和空间注意力Spatial Attention。 生成器 生成器的结构如下图所示其由包括一个降解去除模块(U-Net)和一个预先训练的面部GAN作为面部先验两部分组成。两部分由Flatent和Fspatial连接MLP实际上就是由多个linear层所组成而Fspatial则是包含U-Net中decoder部分的多个尺度的特征图。它们之间通过潜在的代码映射和若干通道分割空间特征变换进行连接(CS-SFT)层。 降级去除模块旨在显式地去除降级并提取Flatent和Fspatial的“干净”特征从而减轻后续模块的负担。而使用U-Net作为退化移除网络主要是为了增加大模糊消除的感受野以及生成多分辨率特征。 模型中会在U-Net的每个decoder层计算一个Restoration Loss以此得到Flatent和Fspatial中的“干净”特征。Restoration Loss的定义如下所示 在生成器中输入图片首先经U-Net层得到瓶颈处的Flatent,Flatent在经MLP处理后得到中间潜在编码W及16个512的latent codew再经styleGAN处理得到FGAN即中间卷积的特征。styleGAN每层生成的特征图FGAN的后半部分进行一个空间上的仿射变换即平移和缩放操作。该操作是通过两个卷积层得到的。 由于每一层的FGAN和Fspatial的大小和维度是相对应的所以他们可以直接进行相乘或者相加的操作 判别器 判别器结构如下图所示它会对人脸的整体、局部眼睛和嘴巴以及身份保留信息三部分进行判别然后得到三个LOSS。 1 Adversarial Loss 2 Facial Component Loss 3 Identity Preserving Loss 1.2 实验研究 1.数据集 训练数据集作者在FFHQ数据集上训练GFP-GAN该数据集由70,000张高质量图像组成。在训练期间作者将所有图像的大小调整为 512。 GFP-GAN 是在合成数据上训练的这些合成数据近似于真实的低质量图像并在推理过程中泛化到真实的图像。 测试数据集 1 CelebA-TestCelebA-Test 是一个合成数据集其中包含来自其测试分区的 3,000 张 CelebA-HQ 图像。生成方式与训练期间的生成方式相同。 2LFW LFW 包含低质量野外图像。作者将验证分区中每个标识的所有第一个映像分组形成 1711 个测试映像。 3CelebChild-TestCelebChild-Test包含从互联网上收集的180张名人的童脸。它们质量低下其中许多是黑白老照片。 4WebPhoto这是作者在现实生活的互联网中抓取了 188 张低质量照片提取 407 张人脸来构建 WebPhoto 测试数据集。这些照片具有多种多样且复杂的退化。 其中一些是老照片在细节和颜色上都有非常严重的退化。 2. 实验评估 1广泛使用的非参考感知指标:FID 和NIQE。 2采用像素度量(PSNR和SSIM)和感知度量(LPIPS )进行CelebA-Test withGround-Truth (GT)。 3在ArcFace特征嵌入中用天使测量身份距离其中较小的值表示与GT的同一性更近。 3.实验流程 1作者采用预训练的StyleGAN2和512个输出作为生成面部的先验。StyleGAN2的通道倍增器设置为一以缩小模型大小。用于降解去除的UNet由7个下采样和7个上采样组成每个采样都有一个残差块。对于每个cS-SFT层作者使用两个卷积层分别生成α和β的仿射参数。 2训练小批量大小设置为12。通过水平翻转和颜色抖动来增强训练数据。作者考虑三个组成部分:左眼、右眼、嘴巴对面部成分的损失因为它们在感知上很重要。每个组件都按ROI裁剪对齐与面部对齐。 3使用Adam 优化器训练模型总共进行了800k次迭代。学习率设置为2 ×10然后在第 700k、750k次迭代中衰减了2倍。作者使用PyTorch框架实现模型并使用四个NVIDIA Tesla P40 GPU对其进行训练。 4实验结果 论文中通过与其他先进的人类修复方法比较呈现GFP-GAN的实验成果。其中包括 HiFaceGAN、DFDNet、PSFRGAN、Super-FAN和Wan。用于面部恢复的GAN反转方法:PULSE 和mGANprior也用于比较。除此还将GFP-GAN与图像恢复方法进行了比较:RCAN、ESRGAN和DeblurGANv2并在面部训练集上对它们进行了微调以便进行公平的比较。 合成CelebA测试 测试是在两种设置下进行的 盲人脸恢复其输入和输出具有相同的分辨率定量结果如下图所示。 4倍人脸超分辨率。请注意我们的方法可以接受上采样的图像作为人脸超分辨率的输入定量结果如下图所示。 在这两种设置下,GFP-GAN都实现了最低的LPIPS这表明GFPGAN的结果在感知上接近真实值。GFP-GAN还获得了最低的FID和NIQE表明输出分别与真实人脸分布和自然图像分布具有近距离。除了感知性能外GFP-GAN还保留了更好的身份由面部特征嵌入的最小程度表示。 但需注意以下两点 1)GFP-GAN的FID和NIQE低于GT并不意味着其性能优于GT因为这些“感知”指标在粗尺度上与人类意见分数密切相关但在更精细的尺度上并不总是密切相关; 2)像素指标PSNR和SSIM与人类观察者的主观评价[241]相关性不佳GFP-GAN在这两个指标上并不擅长。 结果如上图所示主要的发现有以下几点 1)得益于强大的生成式面部先验GFPGAN可以恢复眼睛(瞳孔和睫毛)、牙齿等的忠实细节。 2)GFPGAN在修复中将面部视为整体也可以生成逼真的头发而以前依赖组件字典(DFDNet)或解析映射(PSFRGAN)的方法无法产生忠实的头发纹理。 3)GFP-GAN能够保持保真度例如它产生自然的闭口没有像PSFRGAN那样强制添加齿。除此GFP-GAN还可以恢复合理的眼睛注视方向。 LFW、CelebChild和WedPhoto测试 为了测试模型的泛化能力作者在三个不同的真实数据集上评估了GFP-GAN。定量结果如下图所示。 GFP-GAN在这三个数据集上都取得了优越的性能显示出其显著的泛化能力。尽管PULSE也能获得较高的感知质量较低的FID分数但它无法保留面部身份。如下图所示GFP-GAN能够联合进行人脸恢复和色彩增强利用强大的生成先验来处理真实生活中的照片。作者的方法能够在复杂的现实世界退化条件下生成合理且逼真的面部而其他方法则无法恢复忠实的面部细节或会产生伪影特别是在图5中的WebPhoto-Test。 除了眼睛和牙齿等常见面部组件外GFP-GAN在头发和耳朵方面也表现得更好因为GFP先验考虑的是整个面部而不是单独的部分。通过SC-SFT层GFP-GAN能够实现高保真度。大多数先前的方法无法恢复闭着的眼睛而GFP-GAN能够成功地恢复它们并且产生的伪影更少。 1.3 代码分析 GFPGAN的项目代码是开源的,代码地址为https://github.com/TencentARC/GFPGAN 接下来我将以我自身学习的实际情况对项目的一部分代码进行简单分析。 1Input处理 Dataset的代码如下 def __getitem__(self, index):......#直接看return内容if self.crop_components:return_dict {lq: img_lq,gt: img_gt,gt_path: gt_path,loc_left_eye: loc_left_eye,loc_right_eye: loc_right_eye,loc_mouth: loc_mouth}return return_dictelse:return {lq: img_lq, gt: img_gt, gt_path: gt_path} 这里返回的主要有三项img_lqimg_gt gt_path分别是LR输入、真值和gt的路径。loc_left_eye、loc_right_eye、loc_mouth是使用眼睛和嘴巴位置信息时作为可选输出。 其中img_lq是由img_gt变换得到的LR图像img_gt是高分辨图像 再来看一下img_lq的生成过程 def __getitem__(self, index):...#数据读入部分# ------------------------ generate lq image ------------------------ ## blurkernel degradations.random_mixed_kernels(...)img_lq cv2.filter2D(img_gt, -1, kernel)# downsamplescale np.random.uniform(self.downsample_range[0], self.downsample_range[1])img_lq cv2.resize(img_lq, (int(w // scale), int(h // scale)), interpolationcv2.INTER_LINEAR)# noiseif self.noise_range is not None:img_lq degradations.random_add_gaussian_noise(img_lq, self.noise_range)# jpeg compressionif self.jpeg_range is not None:img_lq degradations.random_add_jpg_compression(img_lq, self.jpeg_range)# resize to original sizeimg_lq cv2.resize(img_lq, (w, h), interpolationcv2.INTER_LINEAR)# random color jitter (only for lq)if self.color_jitter_prob is not None and (np.random.uniform() self.color_jitter_prob):img_lq self.color_jitter(img_lq, self.color_jitter_shift)# random to gray (only for lq)if self.gray_prob and np.random.uniform() self.gray_prob:img_lq cv2.cvtColor(img_lq, cv2.COLOR_BGR2GRAY)img_lq np.tile(img_lq[:, :, None], [1, 1, 3])if self.opt.get(gt_gray): # whether convert GT to gray imagesimg_gt cv2.cvtColor(img_gt, cv2.COLOR_BGR2GRAY)img_gt np.tile(img_gt[:, :, None], [1, 1, 3]) # repeat the color channels# BGR to RGB, HWC to CHW, numpy to tensorimg_gt, img_lq img2tensor([img_gt, img_lq], bgr2rgbTrue, float32True)# random color jitter (pytorch version) (only for lq)if self.color_jitter_pt_prob is not None and (np.random.uniform() self.color_jitter_pt_prob):brightness self.opt.get(brightness, (0.5, 1.5))contrast self.opt.get(contrast, (0.5, 1.5))saturation self.opt.get(saturation, (0, 1.5))hue self.opt.get(hue, (-0.1, 0.1))img_lq self.color_jitter_pt(img_lq, brightness, contrast, saturation, hue)...#像素值范围映射unit8正则化...#return 主要就是模糊、加噪、随机像素值抖动、随机灰度化、随机色彩变化等过程生成LR图像 2GFPGANv1 这块算是整个结构中内容最多的一部分了该部分是对输入图像的通道进行降维产生latent code通过MLP送到生成器中。首先经过一个3通道到512通道的变换然后再做通道和空间都进行下采样的6个相同操作这部分是BasicSR里面的ResBlock函数完成的可以自行查一下相关实现最终输出latent code和需要进行空间特征约束的condition。 其中一部分作用是将img_lr 变成 latent code def __init__(self, ...)first_out_size 2**(int(math.log(out_size, 2)))#ConvLayerself.conv_body_first ConvLayer(3, channels[f{first_out_size}], 1, biasTrue, activateTrue)# downsamplein_channels channels[f{first_out_size}]self.conv_body_down nn.ModuleList()for i in range(self.log_size, 2, -1):out_channels channels[f{2**(i - 1)}]self.conv_body_down.append(ResBlock(in_channels, out_channels, resample_kernel))in_channels out_channelsself.final_linear EqualLinear(channels[4] * 4 * 4, linear_out_channel, biasTrue, bias_init_val0, lr_mul1, activationNone)...def forward(self, ...)# encoderfeat self.conv_body_first(x)for i in range(self.log_size - 2):feat self.conv_body_down[i](feat)unet_skips.insert(0, feat)feat self.final_conv(feat)style_code self.final_linear(feat.view(feat.size(0), -1))... 另外一部分产生Fspatial再通过卷积操作得到两个系数作为condition约束送到下面的代码中处理 def __init__():# for SFT modulations (scale and shift)self.condition_scale nn.ModuleList()self.condition_shift nn.ModuleList()for i in range(3, self.log_size 1):out_channels channels[f{2**i}]if sft_half:sft_out_channels out_channelselse:sft_out_channels out_channels * 2self.condition_scale.append(nn.Sequential(EqualConv2d(out_channels, out_channels, 3, stride1, padding1, biasTrue, bias_init_val0),ScaledLeakyReLU(0.2),EqualConv2d(out_channels, sft_out_channels, 3, stride1, padding1, biasTrue, bias_init_val1)))self.condition_shift.append(nn.Sequential(EqualConv2d(out_channels, out_channels, 3, stride1, padding1, biasTrue, bias_init_val0),ScaledLeakyReLU(0.2),EqualConv2d(out_channels, sft_out_channels, 3, stride1, padding1, biasTrue, bias_init_val0))) 然后将上面的两部分送到StyleGAN2Generator中处理在逐层进行卷积运算时将前面产生的conditions约束也加入运算。 总结 在实际应用中GFPGAN模型已经成为人脸修复和增强的重要工具之一为增强现实、AI主播制作等领域带来了更加自然、逼真和智能的交互体验。随着技术的不断发展和完善GFPGAN模型将会在未来发挥更加重要的作用。通过本周的学习我对wav2lip有了初步的认识和了解尽管GFPGAN相较于过去的技术有显著提升但其也是存在不足。作者提出当真实图像退化严重时GFPGAN还原的面部细节会因伪影而扭曲。这是因为合成降级和训练数据分布与实际不同造成的。解决方法是从真实数据中学习这些分布而不是仅仅使用合成数据这将是未来研究的一个突破口。
http://www.w-s-a.com/news/624728/

相关文章:

  • 网站建设设计视频郑州 服装网站建设
  • 网站建设什么公司好织梦cms默认密码
  • 大型网站 空间网上商城官网入口
  • 成都全美网站建设江苏专业网站建设
  • 足球网站模板有帮忙做阿里巴巴网站的吗
  • 建设厅报名网站京东网站的建设与发展前景
  • 金寨县住房和城乡建设部网站网页作业怎么做一个网站
  • 做ppt模板网站有哪些内容wap是什么意思卡老师
  • 网站建设一定要域名吗网站后台关键词设置
  • 标书制作公司网站坪山网站建设哪家便宜
  • 防止做网站的人修改数值门户网站架构
  • 电子项目外包网站考二建需要什么学历和专业
  • 做网站推广引流效果好吗电商推广技巧
  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术
  • 潍坊网站建设服务商做网站多久能盈利
  • 嘉定区做网站房产信息查询官网
  • 网站直播间 是怎么做的唐山论坛建站模板
  • 深圳洲聚网站建设wordpress 泛解析
  • 五金东莞网站建设技术支持wordpress 添加模板
  • 网站申请专利春节网页设计素材
  • 进网站备案md风格的wordpress主题
  • 如何建站网站十大免费建站app
  • 工作号做文案素材的网站晋城网站设计人
  • 建设部网站官网 施工许可怎样建网站 需要
  • 什么网站都能打开的浏览器同城小程序怎么推广
  • 在电脑上怎么做网站网址seo分析
  • 石家庄做网站网络公司电子商务营销推广