所谓图像的神经风格迁移(Style Transfer),就是指在给定图像A和图像B的情况下,通过神经网络将这两张图像转化为C,且C同时具有图像A的内容和图像B的风格。比如下图左边两张输入图片:一张图像是长城,一张是黄公望著名的富春山居图的一部分,通过第一张图像的长城内容和第二张图的山水画风格,经过神经网络进行风格迁移之后得到了一幅具有山水画风格的图像:

本文笔者通过几篇神经风格迁移的论文来简单展示一下该领域的一些应用和进展。神经风格迁移领域相对早一点的一篇经典论文为 Gatys等人发表的 A Neural Algorithm of Artistic Style,其中系统的阐述了神经风格迁移的主要思想和原理。同样以图像A、B和C为例,神经风格迁移的主要思想如下:

图像C保留图像A的内容,或者说是图像A的语义。这个对于神经网络来说并不困难,各种深度卷积网络都可以较好的实现图像A到C的语义编码。

图像 C 具备图像 B 的风格。风格不像是图像语义,是一个整体或者全局的概念,一般来说很难把握,论文中考虑了图像特征之间的gram矩阵来衡量图像特征的相关性。所谓图像的gram矩阵,就是就是每个图像特征之间的内积所构成的矩阵:

具体来说,我们可以先选取一个经过 ImageNet 训练好的预训练卷积网络,比如说 VGG16、InceptionNet或者是ResNet等等,下面以VGG16为例进行说明。假设图像X输入VGG16网络之后,第 m 层的输出有 Nm 个通道,每个通道有 Mm 个像素。定义 Xik 为第 i 个通道在第 k 个像素上的值,则图像A和C之间的内容损失可定义为:

然后是风格损失。因为风格损失是基于 gram 矩阵的,所以先要给出 gram 矩阵的计算公式:

基于 gram 矩阵的风格损失定如下:

可以看到风格损失是基于图像整体的,与具体像素k无关,所以最终整个风格迁移的损失函数可以定义为:

其中权重α和β决定了内容和风格之间的平衡,Vm和Wm决定了不同层次之间的平衡。基于上述思想论文给出的实现一幅莫奈星空图风格的建筑风格迁移:

整个图像风格迁移的过程与正常的神经网络优化过程还是有区别的,在神经风格迁移中,卷积网络的参数是经过预训练之后的参数,是一个固定值,实际能做的是调整输入以最小化损失函数。

关于神经风格迁移的其他理论和方法,Neural Style Transfer: A Review 这篇综述给出了该领域详尽的方法和相关应用:

相关研究论文路径如下图所示:

莫奈星空图在建筑图片上的不同风格迁移:

GitHub上有关神经风格迁移的一个论文和代码合辑:

https://github.com/ycjing/Neural-Style-Transfer-Papers

参考资料:

深度卷积网络 原理与实践 彭博

A Neural Algorithm of Artistic Style

Neural Style Transfer: A Review

https://github.com/ycjing/Neural-Style-Transfer-Papers

往期精彩:


一个数据科学从业者的学习历程

长按二维码.关注机器学习实验室

深度学习第55讲:图像的神经风格迁移相关推荐

  1. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  2. 【Pytorch深度学习实战】(12)神经风格迁移(Neural Style Transfer)

  3. 动手深度学习13:计算机视觉——语义分割、风格迁移

    文章目录 一.语义分割 1.1 语义分割简介 1.2 Pascal VOC2012 语义分割数据集 1.2.1下载.读取数据集 1.2.2 构建字典(RGB颜色值和类名互相映射) 1.2.3 数据预处 ...

  4. 深度学习笔记(47) 神经风格迁移

    深度学习笔记(47) 神经风格迁移 1. 神经风格迁移 2. 代价函数 1. 神经风格迁移 近,卷积神经网络最有趣的应用是神经风格迁移 来看几个例子,比如这张照片,照片是在斯坦福大学拍摄的 如果想利用 ...

  5. opencv与python学哪一个好_教你如何用OpenCV、Python和深度学习技术对图像和实时视频进行神经风格迁移...

    编者按:在这篇教程中,作者AdrianRosebrock将教你如何用OpenCV.Python和深度学习技术对图像和实时视频进行神经风格迁移. 2015年,Gatsys等人在论文ANeuralAlgo ...

  6. 目标检测YOLO实战应用案例100讲-基于深度学习的无人机航拍图像目标检测算法研究与应用

    目录 基于深度学习的无人机航拍图像目标检测算法研究与应用 基于深度学习的目标检测相关知识理论

  7. 目标检测YOLO实战应用案例100讲-基于深度学习的光学遥感图像目标检测及价值评估

    目录 基于深度学习的光学遥感图像目标检测方法研究 传统的目标检测方法

  8. L4W4作业2 深度学习与艺术 - 神经风格迁移

    欢迎来到本周的作业2.在本次作业中,你将学习神经风格迁移.该算法由Gatys等人在2015年创建(https://arxiv.org/abs/1508.06576). 在此作业中,你将: 实现神经风格 ...

  9. 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

最新文章

  1. iOS-UIViewController视图控制器跳转界面的几种常用方法
  2. 关于JVM结构的学习
  3. java集合根据值排序_Java 8:对集合中的值进行排序
  4. mysql 自动备份发送,Centos定时自动备份MySQL数据库并发送至指定邮箱
  5. ibm服务器硬件故障检测工具,IBM服务器故障提示Memory/bttery problems were detected
  6. Java音频格式转换,支持amr、aud、slk、silk转成mp3
  7. 车道线检测数据集介绍
  8. ps:修改图片背景颜色
  9. 在东京大学感受_东京最好的街头小吃在哪里找到
  10. 多行文字内容溢出显示点点点(...)省略号
  11. [linux]scp与服务器互传文件
  12. 2022年HELIUM3将引领链游开启gaming2.0时代
  13. 全球与中国湿疹护理产品市场现状及未来发展趋势(2022)
  14. 基于RFID技术的智能门禁系统设计(控制部分)
  15. php frameset不显示,如何解决php加载frameset页面时显示空白问题
  16. c语言 %-5d问题
  17. 关于selenium发起的浏览器被检测的解决方案
  18. JAVA毕设项目深州市特色蜜桃产业电子商务系统(java+VUE+Mybatis+Maven+Mysql)
  19. EBT价值分析,是否能成为上涨传奇?
  20. gm工具怎样连接mysql_单机魔域GM工具连接方法

热门文章

  1. 读书笔记:汇编语言 第三版 王爽 清华出版社 章十六 章十七 章十八
  2. 对iis写权限的利用
  3. VUEecharts图表之得分环
  4. Linux下搭建TPshop商城(阿里云)
  5. Day305.设计模式七大原则 -Java设计模式
  6. 数字增长动画-uniapp插件
  7. 运维服务能力管理体系应建立的几种能力
  8. HTTPSQS 1.7 版本更新内容
  9. 安卓手机卡顿怎么解决_手机卡了,内存不能乱清理!试试这3个方法,有效解决手机卡顿...
  10. c语言mn间有多少素数,素数表达式p=2a+1 (a ≠ 2mn+m+n)由此出发看哥猜、挛猜比较清晰...