49 样式迁移【李沐动手学深度学习v2课程笔记】
1. 样式迁移(Style Transfer)
· 计算机视觉的应用之一,将样式图片中的样式(比如油画风格等)迁移到内容图片(比如实拍的图片)上,得到合成图片
· 可以理解成为一个滤镜,但相对于滤镜来讲具有更大的灵活性,一个滤镜通常只能够改变图片的某个方面,如果要达到理想中的风格,可能需要尝试大量不同的组合,这个过程的复杂程度不亚于模型调参
1.1 基于CNN的样式迁移

奠基性工作:使用神经网络修改内容图片,使其在样式上接近风格图片 ,上图中的内容图像为西雅图郊区的雷尼尔山国家公园风景照,样式图像为主题为秋天橡树的油画,最终输出的合成图像应用了样式图像的油画笔触让整体颜色更加鲜艳,同时保留了内容图像中物体主体的形状


1、首先初始化合成图片(例如将其初始化为内容图片)
· 输入中有一张内容图片(Content Image)和一张样式图片(Style Image)
· 模型所要训练的不是卷积神经网络的权重,而是合成图片,它是样式迁移过程中唯一需要更新的变量,即样式迁移所需迭代的参数模型
2、然后选择一个预训练的卷积神经网络来抽取图片的特征(该卷积神经网络的模型参数在训练中不用更新)
内容图片、样式图片之后和合成图片(Synthesised Image)之前各有一个卷积神经网络,上图中只画了三层,看起来有三个三层的卷积神经网络,实际上三个卷积神经网络都是一样的(它们的权重是一样的)
3、这个深度神经网络凭借多个层逐级抽取图像的特征,因此可以选择其中某些层的输出作为内容特征或者样式特征(上图中的卷积神经网络第二层输出内容特征,第一层和第三层输出样式特征)
· 对于一张输入图片来讲,每一层的卷积神经网络都会有一个输出(特征),整个基于 CNN 的样式迁移的目的是训练出一张合成图片,使得合成图片和内容图片放进同样一个卷积神经网络的时候,合成图片在某一层的输出能够匹配上内容图片在某一层的损失(内容损失,Content Loss),即它们在内容上是相近的;同理,合成图片和内容图片所使用的是同一个卷积神经网络,在某些层的输出(特征)在样式上能够匹配的上。如果训练出一张合成图片同时满足以上需求的话,就可以认为它既保留了内容图片的内容,又保留了样式图片的样式
·
一般来说,越靠近输入层,越容易抽取图片的细节信息;反之,越容易抽取图片的全局信息
为了避免合成图片过多地保留内容图片的细节,选择靠近输出的层(即内容层)来输出图片的内容特征
· 选择不同层的输出(即风格层)来匹配局部和全局的样式
· 在使用卷积神经网络抽取特征时,只需要用到从输入层到最靠近输出层的内容层或者样式层之间的所有层
· 因为在训练的时候无需改变预训练的卷积神经网络的模型参数,所以可以在训练开始之前就提取出内容特征和风格特征
4、通过前向传播(实线箭头方向)计算样式迁移的损失函数,并通过反向传播(虚线箭头方向)迭代模型参数,即不断更新合成图片
样式迁移常用的损失函数由三部分组成:
(1)内容损失通过平方误差函数衡量合成图片与内容图片在内容特征上的差异,使合成图片与内容图片在内容特征上接近;
(2)样式损失也是通过平方误差函数衡量合成图片与样式图片在样式特征上的差异,使合成图片与样式图片在样式特征上接近;
(3)全变分损失有助于减少合成图片中的噪点,有时学到的合成图像中有大量高频噪点(即有特别亮或者特别暗的颗粒像素),常用全变分去噪(Total Variation Denoising),通过降低全变分损失,能够尽可能使临近的像素值相似,来进行去噪
样式迁移的损失函数是内容损失、样式损失和总变化损失的加权和,通过调节这些权重超参数,可以权衡合成图片在保留内容、样式迁移以及去噪三方面的相对重要性
对于给定的输入,如果简单地调用前向传播函数,只能获得最后一层的输出,因为还需要中间层的输出,所以需要进行逐层计算,保留内容层和风格层的输出
在样式迁移中,合成图片是训练期间唯一需要更新的变量,因此可以将合成图片视为模型参数,模型的前向传播只需要返回模型参数即可
5、最后当模型训练结束时,输出样式迁移的模型参数即为最终的合成图片
因为合成图片是样式迁移所需迭代的模型参数,所以只能在训练的过程中抽取合成图片的内容特征和样式特征。合成图片保留了内容图片的内容,并同时迁移了样式图片的样式

13.12. 风格迁移
https://zh-v2.d2l.ai/chapter_computer-vision/neural-style.html
相关文章:
49 样式迁移【李沐动手学深度学习v2课程笔记】
1. 样式迁移(Style Transfer) 计算机视觉的应用之一,将样式图片中的样式(比如油画风格等)迁移到内容图片(比如实拍的图片)上,得到合成图片 可以理解成为一个滤镜,但相对于滤镜来讲…...
Linux的学习之路:4、权限
一、Linux权限的概念 权限我们都熟悉,最常见的就是在看电视时需要vip这个就是权限,然后在Linux就是有两个权限,就是管理员也就是超级用户和普通的用户 命令:su [用户名] 功能:切换用户。 例如,要从root用户…...
自定义类型—结构体
目录 1 . 结构体类型的声明 1.1 结构的声明 1.2 结构体变量的创建与初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 3. 结构体传参 4.结构体实现位段 4.1 位段的内存分配 4.3 位段的…...
【JavaWeb】Jsp基本教程
目录 JSP概述作用一个简单的案例:使用JSP页面输出当前日期 JSP处理过程JSP 生命周期编译阶段初始化阶段执行阶段销毁阶段案例 JSP页面的元素JSP指令JSP中的page指令Include指令示例 taglib指令 JSP中的小脚本与表达式JSP中的声明JSP中的注释HTML的注释JSP注释 JSP行…...
外包干了25天,技术退步明显.......
先说一下自己的情况,大专生,18年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…...
C++(14): STL条件变量std::condition_variable
1. 简述 在C的标准模板库(STL)中,std::condition_variable是一个非常重要的同步原语,用于在多线程编程中实现线程间的条件同步。它允许一个或多个线程等待某个条件成立,当条件成立时,等待的线程会被唤醒并继…...
Harmony与Android项目结构对比
主要文件对应 Android文件HarmonyOS文件清单文件AndroidManifest.xmlmodule.json5Activity/Fragmententryability下的ts文件XML布局pages下的ets文件resresourcesModule下的build.gradleModule下的build-profile.json5gradlehvigor根目录下的build.gradle根目录下的build-profi…...
langchain 学习笔记-FunctionCalling三种方式
ChatGPT 基于海量的训练数据生成答案,所以它无法回答训练数据中没有的信息或搜索信息 。人们希望 ChatGPT 具有对话以外的各种功能,例如“我想管理我的待办事项列表”。 函数调用是对此类请求的响应。 通过使用函数调用,ChatGPT 现在可以在生…...
CNAS软件测试公司有什么好处?如何选择靠谱的软件测试公司?
CNAS认可是中国合格评定国家认可委员会的英文缩写,由国家认证认可监督管理委员会批准设立并授权的国家认可机构,统一负责对认证机构、实验室和检验机构等相关机构的认可工作。 在软件测试行业,CNAS认可具有重要意义。它标志着一个软件测试公…...
Cohere推出全新升级版RAG大型AI模型:支持中文,搭载1040亿参数,现开源其权重!
4月5日,知名类ChatGPT平台Cohere在其官方网站上发布了一款全新的模型——Command R。 据官方消息,Command R拥有1040亿个参数,并且支持包括英语、中文、法语、德语在内的10种语言。这一模型的显著特点之一在于其对内置的RAG(检索增…...
搭建前后端的链接(java)
搭建前后端的链接(java) 一.前提 1.1 javaEE 搭建前后端的链接首先需要用到javaEE,也就是java企业版,也就是java后端(后端javaSE) 利用javaEE和前端交互,javaSE和数据库交互,javaSE和javaEE之间再进行交互就实现了前后端的交互…...
Java多路查找树(含面试大厂题和源码)
多路查找树(Multiway Search Tree),也称为B树或B树,是一种自平衡的树形数据结构,用于存储大量数据,通常用于数据库和文件系统中。它允许在查找、插入和删除操作中保持数据的有序性,同时优化了磁…...
day6 | 哈希表 part-2 | 454 四数相加II 、383. 赎金信、15. 三数之和、18. 四数之和
今日任务 454 四数相加II (题目: . - 力扣(LeetCode))383 赎金信 (题目: . - 力扣(LeetCode)) 454 四数相加II 题目:. - 力扣(LeetCode) 给你四个整数数组 nums1、num…...
Redis常见数据类型(2)
目录 String字符串 常见命令 SET GET MGET MSET SETNX 计数命令 INCR INCRBY DECR DECRBY INCRFLOAT 其它命令 APPEND GETRANGE SETRANGE STRLEN String字符串 字符串是Redis最基础的数据类型, 关于字符串需要特别注意: (1)首先Redis中所有的键的类型都是字符…...
SparkBug解决:Type mismatch; found : org.apache.spark.sql.Column required: Double
def assginFlag(aizmuth:Double):Option[Int] {val interval 0.5val index (aizmuth / interval ).toIntif (index > 0 && index < 720 ) Some(index 1) else None} assginFlag方法中的条件判断条件 (index > 0 && index < 720) 返回的是一个布…...
MQ之————如何保证消息的可靠性
MQ之保证消息的可靠性 1.消费端消息可靠性保证: 1.1 消息确认(Acknowledgements): 消费者在接收到消息后,默认情况下RabbitMQ会自动确认消息(autoAcktrue)。为保证消息可靠性,可以…...
TrollInstallerX官方一键安装巨魔商店
TrollInstallerX是巨魔官方开发的一款一键巨魔商店安装器,完美支持iOS 14.0 – 16.6.1的设备,操作非常简单,TrollInstallerX依然有个小小的限制,部分机型,还是要采用间接安装方法。 一,直接安装方法 通过…...
生成随机图片验证码
随着互联网的不断发展,安全性问题日益突出。为了保障用户账号的安全性,很多网站都引入了验证码机制。验证码是一种区分用户是计算机还是人的公共全自动程序,可以有效防止恶意攻击和自动化脚本的滥用。本文将介绍如何使用Python生成随机图片验…...
【0280】《数据库系统概论》阅读总结(附xmind思维导图)
0. 阅读进展 选择性地读取了《数据库系统概论》一书中的第13、14章节,并对这两章节中较为重点的内容作了总结和归纳;然后以xmind导图形式给出。 1. xmind思维导图 Xmind附件:...
数据结构(二)----线性表(顺序表,链表)
目录 1.线性表的概念 2.线性表的基本操作 3.存储线性表的方式 (1)顺序表 •顺序表的概念 •顺序表的实现 静态分配: 动态分配: 顺序表的插入: 顺序表的删除: 顺序表的按位查找: 顺序…...
杰理之AutoDuck 闪避节点参数更新结构体【篇】
struct autoduck_update_parm{ int duck_amount; //背景音乐闪避的音量值(dB) int attack; //启动时间(ms) int release; //释放时间(ms) int hold_time; //闪避之后的保持时间 (ms) }; typedef struct AutoDuckParam_TOOL_SET { int is_bypass; struct aut…...
SAP ECC6 2027年停服倒计时:手把手教你评估四大迁移路径与成本(含第三方支持避坑指南)
SAP ECC6 2027年停服倒计时:企业迁移决策全景指南 当2027年的钟声敲响时,全球仍在运行SAP ECC6系统的企业将面临一个关键转折点。这不是简单的技术升级,而是一次关乎企业数字化未来的战略抉择。作为经历过三次SAP重大版本迁移的顾问ÿ…...
完全掌握Adobe软件激活:5个实用技巧深度解析
完全掌握Adobe软件激活:5个实用技巧深度解析 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否曾经为Adobe Creative Cloud的订阅费用感到困扰&…...
书匠策AI官网www.shujiangce.com:期刊论文从“渡劫“到“躺赢“,中间只差这一个工具
家人们,今天不讲课,今天带你们"开箱"一个我私藏很久的论文神器。 先说结论——书匠策AI( 官网直达:www.shujiangce.com) 的期刊论文功能,是我今年用过最"懂科研人"的AI工具ÿ…...
免费Minecraft基岩版启动器终极指南:突破官方限制的完整解决方案
免费Minecraft基岩版启动器终极指南:突破官方限制的完整解决方案 【免费下载链接】BedrockLauncher 项目地址: https://gitcode.com/gh_mirrors/be/BedrockLauncher 还在为Minecraft基岩版官方启动器的功能限制而困扰吗?想要像Java版那样自由管理…...
3分钟搞定容器镜像加速:public-image-mirror 终极实战指南
3分钟搞定容器镜像加速:public-image-mirror 终极实战指南 【免费下载链接】public-image-mirror 很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。 项目地址: https://gitcode.com/GitHub_T…...
简单三步让Windows焕然一新:Winhance中文版完整优化指南
简单三步让Windows焕然一新:Winhance中文版完整优化指南 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-…...
Uncle小说阅读器:桌面级智能小说聚合与个性化阅读方案
Uncle小说阅读器:桌面级智能小说聚合与个性化阅读方案 【免费下载链接】uncle-novel 📖 Uncle小说,PC版,一个全网小说下载器及阅读器,目录解析与书源结合,支持有声小说与文本小说,可下载mobi、e…...
ArcMap栅格图像平滑滤波实战:从焦点统计到重采样的多工具对比与应用
1. 栅格图像平滑滤波基础概念与应用场景 当你拿到一张遥感影像时,可能会发现图像上存在一些"瑕疵"——比如拼接产生的条带痕迹、传感器噪声或者不自然的过渡区域。这时候就需要用到栅格图像平滑滤波技术了。简单来说,这就像给照片做"美颜…...
哈佛医学院:空间组学范式转变!单细胞分子谱→多细胞功能
摘要 空间分辨单细胞技术能够实现细胞的原位分子谱分析,但能够同时发现多细胞空间模式并表征其分子程序的计算方法仍十分有限。本文提出SpatialQuery框架,可同时识别细胞基序(即反复出现的多细胞共定位模式)并开展基序靶向的分子分析。该框架通过差异表达分析挖掘受空间微…...
