StyleGaussian: Instant 3D Style Transferwith Gaussian Splatting 论文解读

目录

一、概述

二、相关工作

1、辐射场 

2、3D编辑

3、风格迁移

三、StyleGaussian

1、特征嵌入

2、风格迁移

3、解码

四、实验 

1、不同backbone下的量化和定性指标

2、解码器设计上的测试

3、内容损失平衡

4、风格平滑插值


一、概述

        提出了StyleGaussian,一种新的3D风格化迁移技术,允许每秒10fps的速度,将任何风格即时传输到3D场景中。利用3DGS执行风格迁移,不会影响实时渲染能力和多视图一致性。

(1)提出了StyleGaussian,一种新颖的三维风格化迁移手段。

(2)设计了一种有效的特征渲染策略,可以在渲染高维特征中,将学习到的特征嵌入到冲减的三维高斯特征中。

(3)设计了一个基于KNN的3D CNN,可以在不影响多视图一致性的同时,解码3DGS格式为RGB。

Introduction

二、相关工作

1、辐射场 

        辐射场是近年来在3D场景表示方面取得重大进展的技术。它们是一种函数,可以为任意3D坐标分配辐射(颜色)和密度值。像素的颜色是通过体积渲染聚合3D点的辐射而得到的。

        辐射场在视觉和图形学的多个领域都有广泛应用,特别是在视图合成 、生成模型和表面重建等方面。它们可以通过多种方式实现,如MLP 、分解张量 、哈希表和体素等,许多研究都致力于提高它们的质量或渲染和重建速度 。其中,3DGS 因其快速重建能力、实时渲染性能和出色的重建结果而脱颖而出。它使用多个显式参数化的3DGS来建模辐射场,依靠光栅化而不是光线追踪来实现实时渲染。本文的工作就是建立在3DGS的优势之上,以实现沉浸式的3D编辑体验。

2、3D编辑

        传统的3D表示如网格或点云,编辑它们的外观通常比较简单,因为网格有UV贴图,点对应图像中的像素。但是,辐射场编辑很有挑战,因为它们被隐式地编码在神经网络或张量的参数中。

        因此,之前的研究采用基于学习的方法来编辑辐射场,通过图像、文本或其他形式的用户输入进行引导,包括变形、外观变化、移除、重照明和修复等。

        这些方法大多依赖于测试时优化策略,需要对每次编辑进行耗时的优化过程。另一方面,一些方法以前馈方式实现3D场景的编辑。但是,这些方法的编辑速度仍然远远达不到交互速度。相比之下,我们的方法可以即时编辑场景的外观。

3、风格迁移

        神经风格迁移(Neural Style Transfer)旨在渲染一个新的图像,将一个图像的内容结构与另一个图像的风格模式融合在一起。

        早期的研究依赖于优化方法来对齐风格图像的VGG特征。后来的方法引入了前馈网络来近似这个优化过程,大大提高了风格迁移的速度。

        更近期的工作将风格迁移扩展到3D领域,尝试对点云或网格进行风格化。但这些方法在渲染能力上通常落后于辐射场(radiance fields)。因此,有更多的研究集中在对辐射场进行风格化。一些方法通过优化实现了辐射场的风格迁移,提供了视觉上令人印象深刻的风格化,但需要耗时的优化过程,且泛化能力有限。另一些方法如HyperNet和StyleRF采用了前馈方式,但仍面临渲染速度慢或多视图一致性差的问题。

        相比之下,本文提出的StyleGaussian方法可以实现即时的风格迁移和实时渲染,同时保持严格的多视图一致性。它通过设计高效的特征渲染策略和基于KNN的3D CNN解码器来实现这一目标。

三、StyleGaussian

        首先给定一个重建好的3DGS,然后将VGG features嵌入到3DGS(e),然后给定一个style 图像,将当前的3DGS(e)transfer到3DGS(t),之后用一个基于KNN的3D CNN来解码一个带有风格的3DGS。

        对于一般的3DGS参数都应该是\mathbb{G}=\left \{ g_p=(\mu_p,\Sigma_p,\sigma_p,c_p) \right \}_p^P,其中c_p \in\mathbb{R}^3,对于最初的输入3DGS参数也不例外。

        那么对于中间两步,特征嵌入和风格迁移中这个3DGS参数就有所变化,因为我们只改变颜色,而不改变几何结构,所以后续的特征f_p \ or \ f_p^t其实就可以看做c_p这个参数。

        特征嵌入输出即e(\mathbb{G})=\mathbb{G}^e=\left \{ g_p^e=(\mu_p,\Sigma_p,\sigma_p,f_p) \right \}_p^P

        风格迁移输出即t(\mathbb{G}^e,I^s)=\mathbb{G}^t=\left \{ g_p^t=(\mu_p,\Sigma_p,\sigma_p,f_p^t) \right \}_p^P

        最终解码输出即d(\mathbb{G}^t)=\mathbb{G}^s=\left \{ g_p^e=(\mu_p,\Sigma_p,\sigma_p,c_p^s) \right \}_p^P

Framework

1、特征嵌入

        输入多视角图像利用VGG网络的中间层进行提取特征,得到二维图像的VGG特征,并将VGG特征嵌入到一个辐射场中。

        这一步的目的就是得到了一个\left \{ f_p \right \}_p^P特征,也就是3DGS参数基于VGG监督后的特征,包含了3DGS本身的信息,也有多视图的一致性。

        给定一个3DGS分布,然后分配到每个像素得到每个像素的3DGS参数g_p,然后给定一个可学习特征参数f_p或者写做f_i,其中F为渲染得到的高维特征图。

        利用VGG网络的目的是,监督可学习参数 f_i满足大F越来越接近VGG得到的特征F_{gt},目标函数为一个L1 loss。

                                        \left \{ f_p \right \}_p^P=argmin_{\left \{ f_p \right \}_p^P} \sum|F-F_{gt}|

        对于VGG网络的解释:使用了VGG网络的中间层特征(ReLU3_1和ReLU4_1层),应该是直接将多视图输入到VGG网络,然后输出这两层信息,但由于这两层输出out_channel是256维和512维,耗费计算资源和内存,所以论文中渲染了一个低维特征(32维),然后通过仿射变换T()将低维特征map到高维特征F上。

        其中低维特征的解释不太清楚,他只提到用了一个高效的渲染策略,没有看代码,可能是直接将最后一层输出改为32channels。

        对于仿射变换就是设计了两个可学习的参数A和b。

2、风格迁移

        这里用到了一个AdaIN算法,来实现无参数的零样本训练的风格迁移。

        风格迁移的目的就是得到一个注入参考图像I^s风格迁移后的特征信息\left \{ f_p^t \right \}_p^P

        下面为计算公式,其中\sigma,\mu都是通道方向的均值和标准差,F^s是输入参考风格化的图像I^s经过VGG得到的特征。

3、解码

Illustation of the KNN-
based convolution

        这一步的重点在于使用了KNN-based的卷积。

        目的是通过特征信息\left \{ f_p^t \right \}_p^P来解码出3DGS参数的球谐函数c_p^s

        具体来说,首先设计一个3D CNN作为解码器,将风格迁移后的\left \{ f_p^t \right \}_p^P解码为RGB,解码器在一个滑动窗口内处理每一个GS的KNN,由多层构成,最终输出通道数为3,对应最终的RGB值。

        对于每个GS g_p^t(展开g_p^t=(\mu_p,\Sigma_p,\sigma_p,f_p^t)),定义每个KNN为\left \{ g_k^t \right \}_k^K,滑动窗口的第一层输入就是\left \{ f_k^t \right \}_k^K。这句话我的理解就是,在第一层KNN中,肯定由多个聚类中心,那么这个k就是某一个聚类中心,他的输入就是相对应的最靠近的一组GS其中的f_p^t特征集合\left \{ f_k^t \right \}_k^K

        因为KNN引入到一个3D CNN中,那么对于神经网络来说也一定有权重和偏置,那么第一层的KNN-based CNN输出之后,就得到这个f_p^{out}特征,其中\phi是sigmoid激活函数。

        最后经过了多层 KNN-based CNN结构,最后一层channels数为3,输出得到c_p^s集合。

        对于这一部分的监督,利用内容损失L_c和风格损失L_s(公式均为MSE)来计算。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       L=L_c+\lambda L_s

四、实验 

1、不同backbone下的量化和定性指标

Qualitative results
Quantitative results

2、解码器设计上的测试

        pointnet很显然,关注结构的解码没有意义,因为要解码的是颜色。

        mlp很通用,可以处理,但是效果很拉。

Decoder design

3、内容损失平衡

        这个λ就是风格损失的占比,越大越关注于风格。

Content-style balance

4、风格平滑插值

        这个实现不同风格之间的平滑转换。

        他的做法是微调解码器,而不是从头训练,在一个已经训练好A风格的解码器下,再次训练另一个B风格的解码器。

Decoder initialization

 

参考项目:StyleGaussian: Instant 3D Style Transfer with Gaussian Splatting 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于django实现类似ebay的电子商务系统全英文

完整源码项目包获取→点击文章末尾名片!

win32汇编环境,窗口程序中组合框的应用举例

;运行效果 ;win32汇编环境,窗口程序中组合框的应用举例 ;比如在窗口程序中生成组合框,增加子项,删除某项,取得指定项内容等 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;以下是ASM文件 ;>>>>>>>>>>>>…

Docker 镜像制作原理 做一个自己的docker镜像

一.手动制作镜像 启动容器进入容器定制基于容器生成镜像 1.启动容器 启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。 docker pull ubuntu:22.04 我们接下来可以基于这个容器进行容器…

微信小程序获取openid

2025年1月15日: 1、现在云服务器上安装nodejs,然后写个get接口: const express require(express); const app express();app.get(/getOpenid,(req,res)>{res.send("success"); })app.listen(3000,()>{console.log(server…

ASP.NET Core - 配置系统之配置添加

ASP.NET Core - 配置系统之配置添加 2. 配置添加 2. 配置添加 配置系统可以读取到配置文件中的信息,那必然有某个地方可以将配置文件添加到配置系统中。之前的文章中讲到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 对象) 中有一个 Config…

C#中通道(Channels)的应用之(生产者-消费者模式)

一.生产者-消费者模式概述 生产者-消费者模式是一种经典的设计模式,它将数据的生成(生产者)和处理(消费者)分离到不同的模块或线程中。这种模式的核心在于一个共享的缓冲区,生产者将数据放入缓冲区&#x…

ArcSegment绘制及计算

ArcSegment绘制及计算 给定起始点、终止点和 bulge 值计算弧线中心点和半径,绘制ArcSegment。 import math def calculate_arc_center_and_radius(x1, y1, x2, y2, bulge):angle4*math.atan(bulge)# 计算弦中点mid_x (x1 x2) / 2mid_y (y1 y2) / 2# 计算弦长的…

【高可用自动化体系】自动化体系

架构设计的愿景就是高可用、高性能、高扩展、高效率。为了实现架构设计四高愿景,需要实现自动化系统目标: 标准化。 流程自助化。 可视化:可观测系统各项指标、包括全链路跟踪。 自动化:ci/cd 自动化部署。 精细化&#xff1a…

FakeLocation 1599 | 内部旧版

前言:FakeLocation又更新了,在某安上面看见一些,大概问题就是地图没了,然后有更难搞了 任务一 我们先去看看地图是怎么个事情 这里用的是百度地图就没有了哈 高德地图是有的 任务二 null 选择成功了,虽然是null 任务三 地图位置 虽然不显示了…

初识算法和数据结构P1:保姆级图文详解

文章目录 前言1、算法例子1.1、查字典(二分查找算法)1.2、整理扑克(插入排序算法)1.3、货币找零(贪心算法) 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…

2025年华数杯国际赛B题论文首发+代码开源 数据分享+代码运行教学

176项指标数据库 任意组合 千种组合方式 14页纯图 无水印可视化 63页无附录正文 3万字 1、为了方便大家阅读,全文使用中文进行描述,最终版本需自行翻译为英文。 2、文中图形、结论文字描述均为ai写作,可自行将自己的结果发给ai&#xff0c…

CSS的小知识

一、子选择器 (>) 让 CSS 样式只作用于子级和孙级元素,而不影响其他元素 有>是只对其子级有效,子选择器只会影响直接的子级元素,而不会影响更深层次的孙级元素 无>时是对子级、孙级、曾孙级等所有后代都有效

【经管数据】ZF数字采购采购明细数据(2015.3-2024.3)

一、数据来源: 原始数据来源为ZF采购网。数据涵盖了自2015年3月至2024年3月的ZF数字采购合同明细,反映了数字化转型在政府采购中的应用情况。 二、参考文献: [1] 申志轩, 祝树金, 文茜, 等. ZF数字采购与企业数字化转型[J]. 数量经济技术经济…

【Linux】Mysql部署步骤

一、JDK安装配置 在home目录下执行命令:mkdir Jdk 1.将JDK 上传至该文件夹,有些终端工具可以直接上传文件,比如:MobaXterm 可以看到安装包已经上传上来了 2.直接安装 命令:rpm -ivh jdk-8u311-linux-x64.rpm 3.安装成…

虚拟同步机(VSG)Matlab/Simulink仿真模型

虚拟同步机控制作为原先博文更新的重点内容,我将在原博客的基础上,再结合近几年的研究热点对其内容进行更新。Ps:VSG相关控制方向的simulink仿真模型基本上都搭建出来了,一些重要的控制算法也完成了实验验证。 现在搭建出来的虚拟…

二分查找算法——点名

一.题目描述 LCR 173. 点名 - 力扣(LeetCode) 二.题目解析 有0~n-1这n个数,但是数组中只有n-1个数,我们要找到消失的那个数。 三.算法原理 1.哈希表 我们先创建一个n个数的哈希表并初始化为0,然后将数组中的数存放…

FIDO2密码钥匙与无密码认证:打造安全便捷的数字世界

在数字化时代,密码曾被视为网络安全的基石,但随着网络攻击手段日益复杂,传统的密码认证方法越来越无法抵御这些挑战。对于用户来说,登录密码不仅繁琐易忘,而且一旦泄露,往往会导致数据泄露,造成…

Jmeter进行http接口并发测试

目录: 1、Jmeter设置(1)设置请求并发数(2)设置请求地址以及参数(3)添加结果数 2、启动看结果 1、Jmeter设置 (1)设置请求并发数 (2)设置请求地址…

osg中实现模型的大小、颜色、透明度的动态变化

以博饼状模型为对象,实现了模型大小、颜色、透明度的动态变化。 需要注意的是一点: // 创建材质对象osg::ref_ptr<osg::Material> material = new osg::Material;material->setDiffuse(osg::Material::FRONT_AND_BACK, osg::Vec4(0.0, 1.0, 0.0, 0.5));// 获取模型的…

VSCode使用纪要

1、常用快捷键 1&#xff09;注释 ctrl? 单行注释&#xff0c; altshifta 块注释&#xff0c; 个人测试&#xff0c;ctrl? 好像也能块注释 2&#xff09;开多个项目 可以先开一个新窗口&#xff0c;再新窗口打开另一个项目&#xff0c;这时就是同时打开多个项目了。 打开…