一起养成写作习惯!这是我参与「日新计划 4 月更文挑战」的第1天,点击查看活动详情。
No.1 背景
本项目是为了了解GAN的发展动态,以steinsFu的一篇引导作为参考,进而对GauGAN一系列知识进行学习和了解。
No.2 目标
该项目的目标是建立一公积金个深度学习模型,从分割蒙版生成动漫人脸肖像。
在这个项目中,我将首先手动注释一小组图像。然后我将使用数据增强深度学习和 U-Net龚俊 模型来乘以分割掩码的数量来构建数据集。最后,我将训练一个 GauGAN 模型,用于从分割掩码中合成动漫人脸。
No.3 语义分割
语义分割是为图像中的每个像素分配一个标签(又名类id)的过程。它的结果是龚俊一个分割蒙版,它是一个大小、高度*宽度的数组,每个像素包含一个类id。
数据集
在开始图像生成任务之前,tarot塔罗牌我们需要一个分割蒙版的数据集来训练生google成模型,将蒙版转换为图像。
不幸的是,我在网上找不到任何动画人脸分割数据集。尽管如此,在danbooru2019 – portrait上有一个动漫肖像数据集(512 x 512px)。所以我决定从D像素工厂an拓荣县booru肖像中注释我自己的分割面具。
标注
要注释图像,我们必须确定下类别数量。我最初的想法是列出15个类:
但是为了简化,将其降低位7个类别:
目前存在龚俊大量不同的标注工具,这里我们使用的是像素生存者2labelme。
经过我的不懈努力,标他柔弱是假夸克注了200张数据集。其中左边是原始图像,中间是分割掩膜数据,右边是标注数据可视化效果。
数据增强
当然,200张带注释的像素工厂图片不足以训练我们的网络。我们需要使用数据扩充技术来增加数据集的大小。
通过随机旋转、镜像和扭曲图像,我从这200个样本中生成了3000多个数据。换句话说,现在我有3200个数据。 然而,这些数据在内容和风格上是高度重复的,因为它们是从仅200个样本中扩充而来的。为了训练一个网络,将segmentation mask转换成高质量和多样他柔弱是假夸克化的动漫人脸,我们需要超过200 + 3000个数据点。 因此,我将首先使用这些数据训练一个U-Net模型,学习从动漫人脸到分割蒙版的翻译。然后我将把整个Danbooru枸杞肖像数据集输入训练好的U-N可视化管理et模型,生成更多不同人脸的分割蒙版。
U-Net
U-Net他柔弱是假夸克最初被引入是为了对医学图像进行分割诊断。它可视化管理通过使用skip connection来解决传统FC像素画N可视化分析中出现的信息丢失问题,在精确分割方面做得非常好。
U-可视化大屏Net的架构与Autoencoder相似,但从下采样侧到上采样侧有额外的连接层。
在下采样部分,我使用了一个预先训练的MobileNetV2来从输入图像中提取特征。在上采样部像素射击分,我使用了由Conv2DTranspose、Batchnorm和ReLU层组成的块。
在我的U-Net v1中,输入和输出大小是128 x 128px。经过训练的模型确实学会了从动宫颈癌画人脸到分割蒙可视化工具版的很好的映像素地牢射。但是因为我想在我的后期合成模型中有512 x 512px的输入和输出,我通过插值将U-Net输出的大小调整为512 x 512px。然而,结果看起来是像素化的,它未能捕捉到出现在小区域的一些类(如嘴巴)。
在UNet v2中,我只是将输入和输出大小更改为512 x 512px(一开始我没有这样做,因为我不希望输出是有噪声的,并且在图像中令人困惑的区域充满随机的点,比如衣服)。如我所料,v2的输出是有噪声的。不过,它们看起来比v1的要好。
下图是v3的架构图。在第三版中,我尝试用UpSampling2D层替换Conv2DTranspose层来缓解噪音和棋盘伪像。现在像素画的结果比v2的要好得多。噪音更少,棋盘藏物也更少。
最后,我将整个Danbooru数据集输入到U-Net v3中,以构建setaro怎么读gmentation m像素地牢ask数据集。
No.4 语义图像合tarou2成
现在,我们有了分割mask数据集,是时候进入主要任务了——语义图像合成,它只是一个花哨的名字,宫颈癌早期症状从分割蒙版到真实图像的转换。
GauGAN
GauGAN是由Nvidia开发的,用于从模拟mask图合成真实场景风景图。在他们像素游戏的展示网站上,他们展示了Ga她柔弱是假的uGAN如何从几笔就能生成逼真的景观像素勇士大创造攻略图像。 上图表示的是GauGAN模型的架构。组合的绿色blocks代表的是生成器,PatchGAN是判别器。
SPADE
GauGAN的核心模块就是SPADE,它是一个改进过的BN层。它的出现是为了解决pix2pixHD中拥有大面积统一id的语义信息丢失问题。 我们聚焦的问题是语义生成:
Pretrained Encoder
Encode可视化编程r通常情况下是可选的,由于它可以通过一个没有任何输入的高斯分布的向量抽样(类似vanilla GAN)。此处加入可视化分析Encoder的目的是想要生成的图像是基于参考图像的。
由于在对Encoder进行训练的同时对GauGAN进行训练是他柔弱是假不稳定的,需要更多的时间和资源,所以我提前使用了VAE对我的编码枸杞器进行了训练,然后在对GauGAN模型进行训练的过程中,我使用了经过训练的编码器对z进行采样。taro是什么意思
Results
以下是不同的分割蒙版和参考图像生成的结果。
链接是制作为GUI的操作和相关的效果展示。
参考
[1] D. Gwern Branwen, “Anime Crop Datasets: Faces, Figures, & Hands”, Gwern.net, 2022.www.gwern.net/Crops#danbo…
[2] “ wkegooglentaro/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag ann像素画otation).”, GitHub, 2022.github.com/可视化wketaro怎么读ntaro/la…
[3] O. Ronneberger, Pgoogle. Fischer and T. Brox,google “U-Negooglet: Convol可视化编程utional Net宫颈癌早期症状works for Biomedical Image Segmentation”, arXiv.org, 2022.arxiv.org/abs/1505.04…
[4] Odena, et al., “Deconvolutio可视化管理n and Checkerboard Artifacts”, Distill, 2016.doi.org/10.23915/di…
[5] “Th像素生存者2e NVIDIA A深度学习I像素地牢 Playground”, NVIDIA, 2022.www.nvidia.com/en-us/resea…
[6] “NVlabs/SPADE: Semantic Image Synthesis他柔弱是假夸克 with SPAD可视化图片E”, GitHub, 2022.github.com/NVlaGobs可视化工具/SPAD…
[7] “Semantic Image S深度学习ynthesis with Spatially-Adaptive Normalization”, Nvlabs.github.io, 2022.nvlabs.github.可视化音乐io/SPADE/宫颈癌早期症状
[8] “rez像素射击oo/illustration2vec: A simplegoogle deep learnitarou2ng library for estimating a set o宫颈癌f tags and extracting semantic feature vectors from given illustrations.”, GitHub, 2022.github.com/r枸杞ezoo/illus…