【风格迁移】URST:解决超高分辨率图像的风格迁移问题

news2024/9/23 21:24:04

URST:解决超高分辨率图像的风格迁移问题

    • 提出背景
      • URST框架的整体架构

 


提出背景

论文:https://arxiv.org/pdf/2103.11784.pdf

代码:https://github.com/czczup/URST?v=1

有一张高分辨率的风景照片,分辨率为10000×10000像素,我们希望将这张照片的风格转换成梵高的《星夜》的风格。

使用传统的风格迁移方法处理这么高分辨率的图像会遇到巨大的内存开销问题,而且在风格迁移后的图像中,细节部分的风格可能会因为小笔触尺寸而不够突出。

使用URST框架来处理这项任务。

首先,URST将这张高分辨率的风景照片分割成许多小块。

  • 提出分块式风格迁移
  • 因为超高分辨率图像可能超出GPU内存容量的问题

接着,利用Thumbnail Instance Normalization(TIN)技术,为每个小块提取《星夜》风格的特征归一化统计数据,并应用这些统计数据来进行小块的风格迁移。

  • 直接使用实例归一化(IN)进行小块风格迁移可能会导致风格不一致,从而无法组合成一个令人满意的图像。
  • 提出一种新颖的缩略图实例归一化(TIN)层,能够提取缩略图特征的归一化统计数据并应用于小块,确保不同小块之间的风格一致性。

这个过程确保了整个高分辨率图像在风格迁移后,在不同小块之间保持风格的一致性。

在这里插入图片描述

  • (a) 将输入作为一个整体进行归一化。
  • (b) 将输入分成四个小块并分别归一化。
  • © 应用缩略图的归一化统计信息到这四个小块,获得了类似于(a)的输出。结果显示IN不适用于分块式风格迁移。

通过这种方式,即使是在处理极高分辨率的图像时,URST也能成功地将《星夜》的风格迁移到风景照片上,同时避免了传统方法中的内存问题。

并且能够通过提出的笔触感知损失增大笔触尺寸,使得风格迁移后的图像在视觉上更加吸引人和风格鲜明。

  • 我们提出了一种笔触感知损失作为神经风格迁移的辅助损失,激励风格迁移网络保持大的笔触。
  • 因为在超高分辨率风格化结果中,笔触相对较小,导致过于细小和密集的纹理问题。
  • 在没有笔触感知损失的情况下:风格化后的图像可能会展现出非常细小、密集的纹理,这些纹理在视觉上会显得过于繁忙,缺乏艺术风格的宏观表现力。
  • 引入笔触感知损失后: 风格化后的图像会有更大、更明显的笔触,这些笔触更贴近梵高的原作风格,使得整个图像在视觉上更加和谐、具有艺术感。大笔触不仅能够减少过于细小和密集的纹理,还能增强视觉效果的动态感和表现力。

此外,URST的这种处理方式不仅效果卓越,而且可以轻松地应用于其他现有的风格迁移方法中,进一步提高它们处理超高分辨率图像时的性能。

URST框架的整体架构

在这里插入图片描述

分为三个阶段:分割、风格化和组装。

核心思想是将超高分辨率(UHR)的内容图像分割成小块,并使用提出的TIN进行分块式风格迁移。

风格迁移网络可以是不同的方法。除了原始方法的损失Lo之外,还引入了一种名为笔触感知损失Lsp的辅助损失,以增大笔触大小。

这些关键设计帮助我们首次构建了一个无分辨率限制的风格迁移系统。

在这里插入图片描述
这是一张关于神经风格迁移的消融研究图,用于展示所提出的笔触感知损失 L s p L_{sp} Lsp 在增大现有风格迁移方法笔触尺寸方面的效果。

图片展示了两个不同的地方的风景照片,以及这些照片使用不同方法进行风格迁移后的结果。

  • 图(a)展示了原始内容和艺术风格的图片。
  • 图(b)显示了使用AdaIN方法进行风格迁移的结果。
  • 图©显示了使用AdaIN方法加上提出的笔触感知损失 L s p L_{sp} Lsp 进行风格迁移的结果。
  • 图(d)显示了使用LinearWCT方法进行风格迁移的结果。
  • 图(e)显示了使用LinearWCT方法加上提出的笔触感知损失 L s p L_{sp} Lsp 进行风格迁移的结果。

通过比较(b)和©,以及(d)和(e),可以看到加入笔触感知损失 L s p L_{sp} Lsp 后的风格迁移结果中,笔触尺寸显著增大,纹理更加稀疏,更能体现出原始艺术风格的特征。

这说明提出的笔触感知损失有效地促进了风格迁移网络生成更大的笔触,从而提高了超高分辨率图像风格迁移的质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1483766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分类讨论】【割点】1568. 使陆地分离的最少天数

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 分类讨论 割点 LeetCode1568. 使陆地分离的最少天数 给你一个大小为 m x n ,由若干 0 和 1 组成的二维网格 grid ,其中 1 表示陆地, 0 表示水。岛屿 由水平方向或竖直方向上相邻的 1 …

Bootstrap的使用

目录 js的引入: 1.行内式 2.嵌入式 3.外链式 Bootstrap:的引入 注意事项: 条件注释语句: 栅格系统: 列嵌套: 列偏移: 列排序: 响应式工具: Bootstrap的字体图标的使用&a…

【MATLAB源码-第147期】基于matlab的QPSK调制解调在AWGN信道,瑞利信道,莱斯信道理论与实际误码率对比仿真。

操作环境: MATLAB 2022a 1、算法描述 四相位移键控(QPSK,Quadrature Phase Shift Keying)是一种重要的数字调制技术,它通过改变信号的相位来传输数据。与其他调制技术相比,QPSK在相同的带宽条件下能够传…

某象滑块js逆向(主要是声明拿过我代码的进来)

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018…

MySQL中json类型的字段

有些很复杂的信息,我们一般会用扩展字段传一个json串,字段一般用text类型存在数据库。mysql5.7以后支持json类型的字段,还可以进行sql查询与修改json内的某个字段的能力。 1.json字段定义 ip_info json DEFAULT NULL COMMENT ip信息, 2.按…

python脚本实现全景站点矩阵转欧拉角

效果 脚本 import re import numpy as np import math import csv from settings import * # 以下是一个示例代码,可以输入3*3旋转矩阵,然后输出旋转角度:# ,输入3*3旋转矩阵# 计算x,y,z旋转角def rotation_matrix_to_euler_angles(R):

缓存相关问题:雪崩、穿透、预热、更新、降级的深度解析

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1. 缓存雪崩 1.1 问题描述 1.2 解决方案 1.2.1 加锁防止并发重建缓存 2. 缓存穿透 2.1 问题描述 2.2 解决方案 2.2.1 …

nginx介绍及编译安装

nginx介绍 是一个流行的开源的高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器。它以其高性能、稳定性、丰富的功能集和低资源消耗而闻名 nginx特点 高性能: Nginx以其高效的事件驱动架构而闻名,能够处理大量并发连接而不会消耗过多…

判断点是否在多边形内

std::vector<cv::Point2d> vanCorner_;bool inArea(const Pose &pos) {cv::Point2d point cv::Point2d(pos.position.x(), pos.position.y());double distance cv::pointPolygonTest(vanCorner_, point, false);return distance > 0; } 似乎效果不太好,会误报 …

【BUUCTF web】通关 2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

像用Excel一样用Python:pandasGUI

文章目录 启动数据导入绘图 启动 众所周知&#xff0c;pandas是Python中著名的数据挖掘模块&#xff0c;以处理表格数据著称&#xff0c;并且具备一定的可视化能力。而pandasGUI则为pandas打造了一个友好的交互窗口&#xff0c;有了这个&#xff0c;就可以像使用Excel一样使用…

关于网络安全从硬件防火墙防御到软件防御论述

服务器的硬防和软防是指对服务器进行保护和防御的两个层次。硬防主要是通过物理手段来保护服务器的安全&#xff0c;包括服务器的物理安全和硬件设备的安全。软防则是通过软件和配置来保护服务器的安全&#xff0c;包括操作系统的安全配置、网络安全配置、防火墙、入侵检测系统…

04-Linux实用操作

各种小技巧&#xff08;快捷键&#xff09; 强制停止 Ctrlc强制停止 Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrlc 命令输入错误&#xff0c;也可以通过快捷键ctrlc&#xff0c;退出当前输入&#xff0c;重新输入 退出、登出 Ctrld退…

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的&#xff0c;下面我们打开官网来查看qsort是如何使用的。 这里有四个参数&#xff0c;首先base 是至待排序的数组的首元素的地址&#xff0c;num 是值这个数组的元素个数&#xff0c;size 是指每个元素的大小&am…

MySQL进阶之(三)InnoDB数据存储结构之数据页结构

三、InnoDB数据存储结构之数据页结构 3.1 数据库的存储结构3.1.1 MySQL 数据存储目录3.1.2 页的引入3.1.3 页的概述3.1.4 页的上层结构 3.2 数据页结构3.2.1 文件头和文件尾01、File Header&#xff08;文件头部&#xff09;02、File Trailer&#xff08;文件尾部&#xff09; …

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统) 部署ffmpeg用来处理视频的各种操作 想使用ffmpeg&#xff0c;要先安装nasm&#xff0c;yasm&#xff0c;x264之后&#xff0c;否则会报错 nkvers 查看麒麟操作系统版本 cat /proc/version #查看linux版本信息 uname -a …

C++:菱形继承问题

目录 1、什么是菱形继承 2、虚拟继承 3、一些常见问题 1. 什么是菱形继承&#xff1f;菱形继承的问题是什么&#xff1f; 2. 什么是菱形虚拟继承&#xff1f;如何解决数据冗余和二义性的 3. 继承和组合的区别&#xff1f;什么时候用继承&#xff1f;什么时候用组合&#…

模拟栈(数组实现)

题目描述&#xff1a; 代码模板&#xff1a; //push插入操作 void push(int x) {//让栈顶元素从0开始stk[ tt] x; }//pop弹出操作 void pop() {//直接把这个元素跳过&#xff08;相当于弹出&#xff09;tt--; }//empty判断是否为空操作 bool empty() {if(tt > 0) return …

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的&#xff1f; 一、什么是“祖传代码”&#xff1f; 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

在两台CentOS 7服务器上部署MinIO集群---准确

环境说明&#xff1a; 2台Centos7服务器 IP地址分别为172.16.1.9和172.16.1.10 1. 创建minio用户和目录 在两台服务器上执行以下命令&#xff1a; sudo useradd -m -d /app/minio minio sudo mkdir -p /app/minioData sudo mkdir -p /app/minio/logs sudo chown -R mini…