来源:好完美 浏览次数: 发布时间:2022-03-16 09:59:52
理发总是不够用?
醒醒!有些发型不适合你!
在理发之前“尝试”这些发型会很好。
Tony老师不能给你的,GAN给你。
最近完美发型代码,一个基于 GAN 的项目火了!它不仅可以改变你的发型,还可以改变多个图像实例的颜色。
重要的是,与普通的头发更换 AI 不同,这一次的效果让你的脸与新头发完美融合。
逼真的“假发”:发型、颜色任你选择
将这三样东西交给算法,你就可以知道你的发型是否合身。
1 张自己的照片;
2 一张你想要的发型的人的照片;
3 你想尝试的发色的另一张照片(或相同的)
例如,我的原生发型是这样的:
尝试不同的发型:
换个直发试试?
颜色太旧了?试试另一个!
与你的头完美融合的新发型怎么样?不再僵硬?
为了确定该项目对公众的吸引力,作者还对 396 名参与者进行了用户研究。答案是:GAN 给出的解决方案在 95% 的情况下都是他们的首选解决方案!
量化结果
这是怎么做到的?
消除僵硬!向 GAN 添加 () 步骤
GAN 架构可以学习将特定特征或样式从一张图像转移到另一张图像。虽然它不是一项新技术,但它的应用却有一些新的东西。
但也有一些细节给 GAN 的应用带来了挑战。比如光线的不同会带来遮挡,两张照片中的头部可能会显得不同,会带来僵硬感。
通常,这些使用 GAN 的技术尝试对图片信息进行编码,并在此编码中明确识别与头发属性相关的区域以进行切换。但这种头发变化只有在两张照片是在相似条件下拍摄时才能奏效——虽然很难。
因此,作者不得不考虑一些事情。
首先,将头发变化分为两个层次:() 和 ()。
结构是指头发的几何形状——卷曲、波浪状或直发。外观是指深度编码的信息,包括头发颜色、质地和光照。
这里的目标是将特定图像的发型和颜色移植到您自己的图像中,同时根据图像的照明和属性更改结果,使其在一次拍摄中令人信服地逼真,减少步骤和错误来源。
架构
为了实现这一点,作者在 GAN 中添加了一个缺失但必不可少的 () 步骤。
其实不是简单的对图像进行编码和合并,而是根据不同的分割掩码稍微改变编码,使两幅图像的潜码更加相似。如前所述,它们都可以编辑头发的结构和样式或外观。
我们知道 GAN 使用卷积来编码信息。这意味着它使用卷积核来减少每一层的信息尺度,使其越来越小,从而迭代地去除空间细节,同时赋予结果输出的一般信息越来越多的价值。
这些信息是从不同的图像中提取的,但是现在,我该如何组合这些信息以使结果看起来更逼真?
流程示意图
这是通过图像的分割图完成的。更准确地说,这个所需的新图像是基于我们的目标图像和参考图像的对齐版本生成的。参考图像是我们自己的图像,目标图像是我们要应用的发型。这些分割图告诉我们图像包含什么以及它在哪里,头发、皮肤、眼睛、鼻子等。
分割图像
利用来自不同图像的这些信息,他们可以使用基于 的修改架构,在将图像发送到网络进行编码之前,根据目标图像结构进行对齐。
然后,针对外观和光照问题,他们从目标图像和参考图像中找到合适的这些外观代码的混合比例,用于同一分割区域,使其看起来尽可能逼真。
对比一下就知道效果了:左边是没有对齐的结果,右边是本文的方法。
好看吗?
当然完美发型代码,过程有点复杂,具体可以看论文。
但请注意,与 GAN 的大多数实现一样,它们的架构需要经过训练。在这里,他们使用了在 FFHQ 数据集上训练的基础网络。然后,由于他们做了很多修改,正如刚才所讨论的,他们使用 198 对图像作为发型迁移的示例,并再次训练他们的修改后的网络,以优化模型外观混合比和结构编码。
失败。
详情见:
地址:
论文: