Press "Enter" to skip to content

用深度学习打造艺术大师:照片变身的“魔法”

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

图片艺术风格迁移指的是在保留目标图片内容的基础上,将另一图片风格应用在目标图片上。

 

举个例子,图1是一张“内容”,我们要将图2(“”图片)的风格应用在内容图片上。最终,得到了如图3所示的输出结果。

 

 

图1

 

 

图2

 

 

图3(该系列图片来自于独创研究论文)

 

Adobe Research在这一领域发表了最具突破性的研究论文之一,名为《深度照片风格迁移》 (DPST)。

 

 

如何迁移图片风格?

 

为了充分实现从一张图片到另一张图片的风格转换,Adobe团队制定了DPST的研究目标:在保证结果真实感的同时,将一张照片的风格迁移到另外一张照片上。

 

对此,如果要处理一张像上面这样的内容照片,但又不想其中任何建筑发生变化,关键是保证输出图片的“逼真性”。理想的结果是得到一张看起来就像是夜间拍摄的完全相同的照片。

 

在这项研究发布之前,许多风格迁移算法都令很多原始图像中呈现的内容信息失真。当时的神经风格转换(NST)技术下输出的图片经常出现将直线变成波浪线并且改变物体形状的问题。

 

这是完全可以接受的。许多算法都是为艺术风格的转换而设计的,因此一定程度的失真是在人们可接受的范围之内的!

 

 

上图是一张失真的风格转移图片。图片来源:https://github.com/yusuketomoto/chainer-fast-neuralstyle

 

然而在本例中,目的是实现逼真风格迁移,使图片看起来就像是真实拍摄出的一样。

 

为实现逼真风格迁移,作者做了以下两件事:(1)在损失函数中加入了一项“照片现实正则化”参数。(2) 为基于对输入图像进行语义分割的风格转移过程引入了指导选项。

 

照片现实正则化

 

想想如何在图像中直观地保持照片的真实性。原始图片的线条和形状都应该保持不变。即使颜色和光线可能发生改变,人也应该还像人、树还像树、狗也看起来还是狗。

 

基于这种直观的思想,作者采用正则约束项,仅在颜色空间中对内容图片进行局部仿射变换。仿射变换保证在输入图像映射到输出图像的过程中,点、直线、和平面都不发生改变。

 

有了这样的约束,图片中的直线就永远不会变成波浪线,输出图像中也不会再出现奇怪的形状改变!

 

语义分割指导

 

除了保证点、直线、平面在迁移过程中不发生改变,保证模型能够逼真的迁移风格图像中不同“事物”的风格也同样重要。

 

想象一下,如果有一张像下图一样美丽的橙色日落图片作为风格图片。

 

 

图片来源:https://pixabay.com/illustrations/tropical-summer-sunset-beach-1651426/

 

图像的大部分都呈现出橙红色。如果把这张图片的风格应用到一张城市图片中,那所有的建筑都会变成红色!但这并不是我们想要的结果——一个保证真实感的转换会将大部分建筑颜色变得很暗(接近黑色),只有天空会展现出日落和水的颜色。

 

深度照片风格迁移算法通过对内容图像进行语义分割的结果来指导风格转换的过程。当算法精确地识别出哪些像素属于前景,哪些属于背景时,就可以更真实地实现风格的迁移。天空的像素会被传输至天空像素,背景的像素也会相应地被传输至背景像素。

 

 

风格迁移代码

 

在下方GitHub中可以下载应用于照片真实风格迁移的存储库。

 

git clone

 

https://github.com/GeorgeSeif/DeepPhotoStyle_pytorch.git

 

运行该存储库只需要安装最新版本的Pytorch。安装成功后,点进文件夹并运用下方脚本下载语义分割的模型。

 

cd DeepPhotoStyle_pytorch

 

sh download_seg_model.sh

 

现在就可以运行代码了!

 

任意下载一张风格图片和内容图片。个人经验表明城市和景观图片的效果最好。最后,像这样运行代码:

 

python main.py –style_image path_style_image –content_image path_content_image

 

该算法将迭代地改进风格迁移的结果,因此等待时间越长,输出结果就越准确!该算法被默认设置为运行3000个步骤,但如果你认为运行更多步骤可以帮助提高结果的精确性,那幺也可以选择增加步骤。

 

亲自用用这个代码吧,很有意思的!看看你的照片在进行风格转换后会是什幺样。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注