CVPR 2024最佳论文候选-pixelSplat论文解读
目录
一、概述
二、相关工作
1、单场景下的视角合成
2、基于先验的三维重建和视图合成
3、多视图几何测量
三、3DGS的缺点
1、容易陷入最小值
2、需要大量输入图像
3、尺度模糊性
四、pixelSplat
1、解决尺度模糊性(深度信息生成)
2、编码器
3、外极线采样
4、外极线注意力机制
5、GS预测头
五、数据集
六、实验
1、评价指标
2、深度正则化
3、相机的高斯分布转换为世界空间
4、三视图对重构
一、概述
本文提出一种前馈模型pixelSplat,可以从输入图像对中重建参数化为3D高斯模型的辐射场,并具有实时和内存高效的渲染能力,可以实现可扩展的训练和快速的3D重建。
(1)为了克服稀疏和局部支持表示固有的局部最小值问题,该模型预测了一个密集的 3D 概率分布,并通过重参数化技巧从该概率分布中采样高斯均值,从而使梯度可以反向传播到高斯溅射表示中 。
(2)提出了一种前馈模型pixelSplat,使得从图像对中重建3DGS辐射场。
(3)重建了一个可解释和可编辑的3DGS辐射场。
二、相关工作
1、单场景下的视角合成
对于单视图深度估计方面,使用微分器反向传播图像空间光度误差来创建三维场景表示。
早期的方法采用体素网格和学习渲染技术,而最近的方法更多使用神经网络和体渲染方法。
但这些方法依赖于高计算需求,而离散的数据不能实时渲染一个pixel,使用3DGS可以通过三维高斯表示辐射场的方式,解决这个问题。
基于学习的渲染
基于学习的渲染使用机器学习算法生成RGBA体积(RGB+alpha不透明度),然后通过光线投射算法进行渲染,没有学习的参数,而一般的神经网络+体渲染的方法存在大量的参数,导致可解释性困难。
2、基于先验的三维重建和视图合成
这一部分考虑从每个场景少量的图像中实现三维重建以及新视图合成。
首先是提供一些先验,比如深度图作为代理几何信息,然后与图像渲染结合,得到不错的三维重建。
另外使用神经网络来直接回归多平面图像,来实现小的视角合成。
对于大视角的生成,需要完整的三维重建,早期的基于神经辐射场的工作职能将三维场景编码成隐式编码,而且仅限于单个物体的场景。
对于无界场景,考虑到使用像素对齐特征来保持端到端的局部性和变换偏移,另外也通过transformer来进行泛化。
另外收到多视图立体视觉的启发,神经网络也与成本体积相结合,来匹配更多不同视角的特征,但最近的光场场景用可解释性换取更快地渲染,而我们的论文提到了一个可解释的3D场景表示,同时保证渲染质量和速度。
3、多视图几何测量
多视图几何测量,是指从多个视角获取的图像中恢复3D场景的几何信息,这也通常存在尺度模糊性的问题。
而在该论文,提出了一种基于双视图编码器的方法,通过利用沿着像素对应的极线的深度信息,来记录场景的真实尺度,从而在3D重建和视图合成中恢复到正常的尺度,解决尺度模糊性的问题。
三、3DGS的缺点
1、容易陷入最小值
由于Gaussian的几何结构参数(论文称为primitive,包括均值、均方差、不透明度、球谐系数,用于建立3DGS场景辐射场)在空间中移动时,梯度会迅速消失。在3DGS算法中使用了自适应密度控制方法来解决这个问题,但在泛化场景中并不适用(无界场景)。
2、需要大量输入图像
3DGS算法需要数十张图片,才能实现高质量视角合成。
3、尺度模糊性
由于3DGS是使用Sfm进行初始化点云的,而没有考虑深度问题,所以只能保持比例一致性,不能保证场景尺度一致,不能得到真实尺度。
四、pixelSplat
下图为pixelSplat的网络结构。由单一图片的编码器、外极线采样、外极线注意力机制和GS预测头四部分构成。
1、解决尺度模糊性(深度信息生成)
使用双视角来计算第一视角的图片的深度,之后进行位置编码作为Attention的位置编码。
原理:
(1)假设两个图像分别是和
,我们将对于
图像的每一个像素点利用
的视角来标注对应的深度关系。
(2)对于第二张图像的每个像素坐标u,根据其相机射线在第一张图像的投影,得到对应的外极线。
(3)在第二张图像上沿着外极线(epipolar line)采样一系列像素
,并根据三角测量计算出该像素点到第一张图像相机原点的距离
,作为深度信息。
(4)将深度信息进行位置编码作为后续attention的位置编码的输入。
2、编码器
对于输入的双视角图片分别进行编码,同时使用resnet(被DINO预训练过的backbone)以及DINO VIT-B/8作为编码器。
resnet50以图片作为输入,输出不同layers的特征。
DINO VIT-B/8以图片的全局信息输入到一个MLP结构中输出整个图像的上下文或全局特征,另外输入图像中的除了全局token外的局部区域信息到同样的一个MLP,得到局部区域信息。
之后对他们进行concat并上采样得到图像的特征。
3、外极线采样
通过计算深度信息后,将深度信息编码后叠加到第二个图像的特征上作为key和value,第一个图像的特征作为query,作为后续多头注意力机制的输入。
4、外极线注意力机制
看图就行。先一次多头注意力机制然后一次第一张图片的自注意力机制,重复两遍。对第一张图片的输出特征用来后续的3DGS原语的预测。
5、GS预测头
(1)首先将外极线注意力机制的输出特征输入到一个神经网络中,输出四个参数,一般来说会预测三个高斯模型,并取三个高斯模型的并集,而下面我们只对一个高斯模型进行介绍。
:离散深度概率分布的参数向量,表示对每个深度桶z的离散概率分布
。
:偏移向量,用于调整采样后得到的深度值
:3D高斯的协方差矩阵
:3D高斯的球谐系数。
(2)深度桶:将深度空间离散化为多个深度区间桶。设定近平面和远平面
,在这两个平面之间离散化为Z个深度桶,每个深度桶z对应一个深度值
。通过计算可以看到第0个桶是
,第Z个桶是
。(这个东西不太理解!)
(3)高斯椭球位置计算,其中o是原始位置,
代表深度值,
代表第z个桶的偏移量,由神经网络预测出来,
是根据相机内参和外参计算出来的3D光线方向向量,u是光线上的采样点坐标位置。
原来的高斯椭球位置预测会存在陷入局部最小值的方法,过去的3DGS算法预测μ时,由于3DGS与正确位置的距离超过几个标准差的时候梯度就会消失,另外就算足够接近正确位置,也需要存在一条沿着损失函数单调递减的路径才能到达最终位置,所以本文提出了一种新的方法。
(4)不透明度计算,根据采样概率计算不透明度
。
五、数据集
1、RealEstate10k
一个YouTube上的家庭步行视频组成的数据集,从1万个Youtube视频中收集到大约8万个视频片段,对应1000万帧。
2、ACID
由航拍景观视频组成的数据集
这两个数据集均由SfM软件计算的相机姿态,后续也使用这两个数据集进行训练和评估。
六、实验
1、评价指标
PSNR:(Peak Signal-to-Noise Ratio,峰值信噪比)评估图像质量的客观指标,衡量的是图像中信号强度和噪声强度的比值,PSNR越高,图像质量越好。
,其中
代表图片可能得最大像素值。
SSIM:(Structural Similarity Index,结构相似性指数) 是一种评估图像质量的指标,它考虑了图像的亮度、对比度和结构三个方面。SSIM值越接近1,表示两幅图像越相似。
SSIM公式以前写过。
LPIPS:(Learned Perceptual Image Patch Similarity,感知相似性) 是一种基于深度学习的图像质量评估指标,它能够更好地模拟人类视觉感知。LPIPS值越小,表示两幅图像越相似。
LPIPS使用预训练的卷积神经网络,一般是VGG和AlexNet,同时提取不同层的特征,并计算L2距离或者相似度度量,然后对不同层的特征差异计算加权求和,权值通过学习得到。
2、深度正则化
对于模型进行5w次的微调,并计算深度正则化损失,对于每一个渲染的视角,我们生成一个对应的深度图D,并且计算深度图D的损失。
分别计算深度图D在x轴和y轴方向的深度梯度,以及计算原图像在x轴和y轴方向的梯度。并且计算深度正则化损失。
另外也做了消融实验,证明深度正则化损失是有效的。
3、相机的高斯分布转换为世界空间
其中代表球谐函数的转换矩阵Wigner D矩阵。
4、三视图对重构
三视图对重构效果一定是好于二视图对的,有显著的提升,但是数据量的增加可能会对内存造成影响。
参考文献: https://arxiv.org/abs/2312.12337
参考代码:https://github.com/dcharatan/pixelsplat
相关文章:

CVPR 2024最佳论文候选-pixelSplat论文解读
目录 一、概述 二、相关工作 1、单场景下的视角合成 2、基于先验的三维重建和视图合成 3、多视图几何测量 三、3DGS的缺点 1、容易陷入最小值 2、需要大量输入图像 3、尺度模糊性 四、pixelSplat 1、解决尺度模糊性(深度信息生成) 2、编码器…...
在Android中如何切割一张图片中的不规则“消息体/图片/表情包等等”?
在Android应用中,判断一张图片中“消息体”的大小,可以通过图像处理技术来实现。主要的步骤包括:将图像转换为灰度图,进行二值化处理,接着使用轮廓检测或边缘检测来识别消息体的边界,最后计算消息体的大小。…...

Jenkins+Ant+Jmeter接口自动化集成测试
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、Jenkins安装配置 1、安装配置JDK1.6环境变量; 2、下载jenkins.war,放入C:\jenkins目录下,目录位置随意; J…...

JavaSE——集合4:List接口实现类—LinkedList
目录 一、LinkedList的全面说明 二、LinkedList的底层操作机制 (一)LinkedList添加结点源码 (二)LinkedList删除结点源码 三、LinkedList常用方法 四、ArrayList与LinkedList的选择 一、LinkedList的全面说明 LinkedList底层实现了双向链表和双端队列的特点可以添加任意…...

FPGA图像处理之三行缓存
文章目录 一、前言二、FPGA实现三行缓存的架构三、Verilog代码实现四、仿真验证五、输入图像数据进行仿真验证 一、前言 在 FPGA 做图像处理时,行缓存是一个非常重要的一个步骤,因为图像输入还有输出都是一行一行进行的,即处理完一行后再处理…...
10月15日,每日信息差
第一、《哈利・波特与魔法石》在中国内地总票房突破 3 亿元,包括 2002 年首映的 5600 万,2020 年重映的 1.923 亿,以及 2024 年重映的 5170 万。 第二、全国铁路实施新货物列车运行图,增开城际班列至 131 列,多式联运…...
4G、5G通信中,“网络侧“含义
在5G通信中,"网络侧"这个术语可以指代不同的网络元素,具体取决于上下文。通常,网络侧可以包括以下两个主要部分: 基站(gNB): 基站是无线接入网(RAN)的一部分&a…...
spring boot核心理解-各种starter
理解 Spring Boot 的 Starter 机制以及如何选择和使用各种 starter,是开发 Spring Boot 应用的重要一环。Spring Boot Starter 是一组方便的依赖组合,用于简化 Spring 项目中的依赖管理。它们可以帮助开发者快速引入所需的库和自动配置,从而加…...

解决海外社媒风控问题的工具——云手机
随着中国企业逐步进入海外市场,海外社交媒体的风控问题严重影响了企业的推广效果与账号运营。这种背景下,云手机作为一种新型技术解决方案,正日益成为企业应对海外社媒风控的重要工具。 由于海外社媒的严格监控,企业经常面临账号流…...

全能PDF工具集 | PDF Shaper Ultimate v14.6 便携版
软件简介 PDF Shaper是一款功能强大的PDF工具集,它提供了一系列用于处理PDF文档的工具。这款软件使用户能够轻松地转换、分割、合并、提取页面以及旋转和加密PDF文件。PDF Shaper的界面简洁直观,使得即使是新手用户也能快速上手。它支持广泛的功能&…...
Maven入门
Maven Maven Wrapper 版本一致性: Maven Wrapper 允许你在项目中指定一个特定的 Maven 版本。这意味着所有开发人员和 CI/CD 环境都将使用相同版本的 Maven,从而避免由于版本不一致导致的问题。 简化设置: 新开发者克隆项目时,…...

Chromium 中window.DOMParser接口说明c++
一、DOMParser DOMParser 可以将存储在字符串中的 XML 或 HTML 源代码解析为一个 DOM Document。 备注: XMLHttpRequest 支持从 URL 可寻址资源解析 XML 和 HTML,在其response 属性中返回Document。 你可以使用XMLSerializer 接口执行相反的操作 - 将…...

linux 安装gitlab
安装环境 CentOS 7.7 (centos6.10会报错)2g内存防火墙关闭 安装步骤: 1 安装gitlab # yum install -y git curl policycoreutils-python openssh-server # 安装依赖 # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce…...

java基础(5)继承与多态
目录 编辑 1.前言 2.正文 2.1继承 2.1.1继承概念 2.1.2继承语法 2.1.3子类访问父类 2.1.4super关键字 2.2多态 2.2.1多态概念 2.2.2多态条件 2.2.3重写 2.2.4向上转型与向下转型 2.2.5为什么要使用多态 3.小结 1.前言 哈喽大家好啊,今天继续来为大…...

Flink消费Kafka实时写入Doris
本文模拟实际生产环境,通过FileBeat采集日志信息到Kafka,再通过Flink消费Kafka实时写入Doris。 文章目录 Filebeat采集日志到KafkaFlink消费Kafka实时写入Doris总结 Filebeat采集日志到Kafka 常见的日志采集工具有以下几种:Flume、Logstash和…...
实现Web QQ音乐打开现有新标签页切换音乐
若没有打开播放音乐标签页,则打开新标签页播放所选音乐如果已打开新标签页,则直接切换所选音乐 pageA.vue <script setup lang"ts"> const tab2 ref<any>(null); const router useRouter();interface Track {id: number;name: …...
从底层结构开始学习FPGA(15)----时钟结构(通俗版)
目录 0、前言 1、IO Bank和Clock Region(时钟区域)是一个东西吗? 2、时钟输入管脚 3、时钟架构 3.1、全局时钟BUFG 3.2、水平时钟BUFH 3.3、IO时钟BUFIO 3.4、区域时钟BUFR/BUFMR 4、总结 《从底层结构开始学习FPGA》目录与传送门 0、前言 我思来想去,总觉…...

MacOS Sublime Text 解决中乱码
1. 安装Package Control 官方安装指南 手动安装 通过以此点击菜单 Sublime Text > Preferences > Browse Packages 打开Packages目录找到Packages的同级目录Installed Packages下载PackageControl.sublime-package并保存到Installed Packages中在菜单 Sublime Text &g…...

Python画笔案例-084 绘制 3D立方体
1、绘制 3D立方体 通过 python 的turtle 库绘制 3D立方体,如下图: 2、实现代码 绘制 3D立方体,以下为实现代码: import turtle import timeviewfactor = 150 xshift = 0 yshift = 0 zshift = 50...
“八股文”面试:助力、阻力还是空谈?
在当今的IT行业,面试程序员时提及“八股文”已成为一种普遍现象。所谓“八股文”,通常指的是一系列固定的、标准化的面试问题及其解答,这些问题往往涵盖了计算机科学和软件工程的基础知识,以及一些流行的技术框架和算法。然而&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...