当前位置:网站首页>洞察——风格注意力网络(SANet)在任意风格迁移中的应用
洞察——风格注意力网络(SANet)在任意风格迁移中的应用
2020-11-08 07:19:25 【人工智能遇见磐创】
作者|dhwani mehta 编译|Flin 来源|medium
图像风格化是近几十年来研究的一种图像处理技术,本文旨在展示一种高效新颖的风格注意力网络(SANet)方法,在平衡全局和局部风格模式的同时,保留内容结构,合成高质量的风格化图像。
风格迁移机制概述
有没有想象过如果由杰出的艺术家来制作照片,照片看起来会怎样?任意风格迁移通过将内容图像(目标图像)与风格图像(其纹理即画笔描边,角度几何形状,图案,颜色过渡等需要绘制到内容图像的图像)混合,从而将其变为现实,以生成第三幅从未见过的图像。
新颖的SANet风格迁移方法
任意风格迁移的最终目标是实现概括性,并保持质量和效率。
在平衡全局和局部风格模式以及由于以下原因而保留内容结构:
-
使用学习的相似性内核而不是固定的内核
-
使用基于软注意力的网络代替硬注意力进行风格装饰
-
在训练过程中避免失去特征,以保持内容结构而又不损失风格的丰富性
使用SANet进行任意风格迁移的构建块
整个风格迁移机制可以总结如下:
让我们逐步了解整个体系结构,最后获得全方位的概览。
全面的SANet架构
让我们尝试解开整个架构,以更好地了解:
-
编码器解码器模块
-
风格注意力模块
-
损失函数的计算
编码器-解码器模块
解决风格迁移问题的最重要步骤是编码器-解码器机制。预训练的VGG-19网络对一个图像进行编码,形成一个表示形式,然后传递给解码器,该解码器尝试将原始输入图像重新构造回去。
风格注意力模块
SANet体系结构将来自VGG-19编码器的内容和风格图像的输入作为特征图,并对其进行规范化后,转换为特征空间,以计算内容和风格特征图之间的关注度。
损失函数的计算
预训练的VGG-19用于计算损失函数,以便按以下方式训练解码器:
完整的损失计算公式
关于内容和风格损失计算的一个构想:
SANet中内容和风格损失组件的计算概述
特征损失的计算
由于具有新颖的特征损失功能,SANet体系结构能够保留内容结构并丰富样式模式。
SANet中特征损失计算的概述
计算相同输入图像在没有任何风格空白的情况下的损失,使得特征损失同时实现内容结构和风格特征的维护。
结论与结果
实验显然表明,使用SANet进行风格迁移所获得的结果将解析各种风格,
例如全局颜色分布,纹理和局部风格,同时保持内容的结构。同样,SANet在区分内容结构和与每个语义内容相对应的迁移风格方面也很有用。因此可以推断出,SANet不仅在保持内容结构方面很有效,而且在保留风格结构特征方面也很有效,并且可以轻松地融合风格特征,从而丰富了全局风格和局部风格统计信息。
参考文献
[1]朴大英和李光熙。“通过关注风格的网络进行任意风格的迁移。” IEEE计算机视觉与模式识别会议论文集。2019。
[2] Gatys,Leon A.,Alexander S. Ecker和Matthias Bethge。“使用卷积神经网络进行图像风格迁移。” IEEE计算机视觉和模式识别会议论文集。2016。
[3] Huang,Xun和Serge Belongie。“通过自适应实例标准化实时进行任意风格迁移。” IEEE国际计算机视觉会议论文集。2017。
[4]李一军,等。“通过特征转换实现通用风格迁移。” 神经信息处理系统的研究进展。2017。
[5]盛路,等。“头像网:通过特征装饰进行多尺度零镜头风格转移。” IEEE计算机视觉与模式识别会议论文集。2018。
欢迎关注磐创AI博客站: http://panchuang.net/
sklearn机器学习中文官方文档: http://sklearn123.com/
欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/
版权声明
本文为[人工智能遇见磐创]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4253699/blog/4707712
边栏推荐
- C++ 数字、string和char*的转换
- C++学习——centos7上部署C++开发环境
- C++学习——一步步学会写Makefile
- C++学习——临时对象的产生与优化
- C++学习——对象的引用的用法
- C++编程经验(6):使用C++风格的类型转换
- Won the CKA + CKS certificate with the highest gold content in kubernetes in 31 days!
- C + + number, string and char * conversion
- C + + Learning -- capacity() and resize() in C + +
- C + + Learning -- about code performance optimization
猜你喜欢
-
C + + programming experience (6): using C + + style type conversion
-
Latest party and government work report ppt - Park ppt
-
在线身份证号码提取生日工具
-
Online ID number extraction birthday tool
-
️野指针?悬空指针?️ 一文带你搞懂!
-
Field pointer? Dangling pointer? This article will help you understand!
-
HCNA Routing&Switching之GVRP
-
GVRP of hcna Routing & Switching
-
Seq2Seq实现闲聊机器人
-
【闲聊机器人】seq2seq模型的原理
随机推荐
- LeetCode 91. 解码方法
- Seq2seq implements chat robot
- [chat robot] principle of seq2seq model
- Leetcode 91. Decoding method
- HCNA Routing&Switching之GVRP
- GVRP of hcna Routing & Switching
- HDU7016 Random Walk 2
- [Code+#1]Yazid 的新生舞会
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- HDU7016 Random Walk 2
- [code + 1] Yazid's freshman ball
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- Qt Creator 自动补齐变慢的解决
- HALCON 20.11:如何处理标定助手品质问题
- HALCON 20.11:标定助手使用注意事项
- Solution of QT creator's automatic replenishment slowing down
- Halcon 20.11: how to deal with the quality problem of calibration assistant
- Halcon 20.11: precautions for use of calibration assistant
- “十大科学技术问题”揭晓!|青年科学家50²论坛
- "Top ten scientific and technological issues" announced| Young scientists 50 ² forum
- 求反转链表
- Reverse linked list
- js的数据类型
- JS data type
- 记一次文件读写遇到的bug
- Remember the bug encountered in reading and writing a file
- 单例模式
- Singleton mode
- 在这个 N 多编程语言争霸的世界,C++ 究竟还有没有未来?
- In this world of N programming languages, is there a future for C + +?
- es6模板字符
- js Promise
- js 数组方法 回顾
- ES6 template characters
- js Promise
- JS array method review
- 【Golang】️走进 Go 语言️ 第一课 Hello World
- [golang] go into go language lesson 1 Hello World