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)假设两个图像分别是I\tilde{I},我们将对于I图像的每一个像素点利用\tilde{I}的视角来标注对应的深度关系。

(2)对于第二张图像\tilde{I}的每个像素坐标u,根据其相机射线在第一张图像的投影,得到对应的外极线。

(3)在第二张图像\tilde{I}上沿着外极线(epipolar line)采样一系列像素\tilde{u}_l,并根据三角测量计算出该像素点到第一张图像相机原点的距离\tilde{d}_{\tilde{u}l},作为深度信息。

(4)将深度信息进行位置编码\gamma(\cdot)作为后续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)首先将外极线注意力机制的输出特征输入到一个神经网络中,输出四个参数,一般来说会预测三个高斯模型,并取三个高斯模型的并集,而下面我们只对一个高斯模型进行介绍

        \phi:离散深度概率分布的参数向量,表示对每个深度桶z的离散概率分布p_{\phi}(z)

        \delta:偏移向量,用于调整采样后得到的深度值

        \Sigma:3D高斯的协方差矩阵

        S:3D高斯的球谐系数。

(2)深度桶:将深度空间离散化为多个深度区间桶。设定近平面d_{near}和远平面d_{far},在这两个平面之间离散化为Z个深度桶,每个深度桶z对应一个深度值b_z。通过计算可以看到第0个桶是d_{near},第Z个桶是d_{far}(这个东西不太理解!)

        b_z=((1-\frac{z}{Z})(\frac{1}{d_{near}}-\frac{1}{d_{far}})+\frac{1}{d_{far}})^{-1}

(3)高斯椭球位置计算\mu,其中o是原始位置,b_z代表深度值,\delta_z代表第z个桶的偏移量,由神经网络预测出来,d_u是根据相机内参和外参计算出来的3D光线方向向量,u是光线上的采样点坐标位置。

        \mu=o+(b_z+\delta_z)d_u

        d_u=TK^{-1}[u,1]^T

        原来的高斯椭球位置预测会存在陷入局部最小值的方法,过去的3DGS算法预测μ时,由于3DGS与正确位置的距离超过几个标准差的时候梯度就会消失,另外就算足够接近正确位置,也需要存在一条沿着损失函数单调递减的路径才能到达最终位置,所以本文提出了一种新的方法。

(4)不透明度计算\alpha,根据采样概率计算不透明度\alpha =\phi_z

五、数据集

1、RealEstate10k

        一个YouTube上的家庭步行视频组成的数据集,从1万个Youtube视频中收集到大约8万个视频片段,对应1000万帧。

2、ACID

        由航拍景观视频组成的数据集

这两个数据集均由SfM软件计算的相机姿态,后续也使用这两个数据集进行训练和评估。

六、实验

1、评价指标

        PSNR:(Peak Signal-to-Noise Ratio,峰值信噪比)评估图像质量的客观指标,衡量的是图像中信号强度和噪声强度的比值,PSNR越高,图像质量越好。

        PSNR=10 \times log_{10}(\frac{Max_1^2}{\sqrt{MSE}}),其中Max_1^2代表图片可能得最大像素值。

        SSIM:(Structural Similarity Index,结构相似性指数) 是一种评估图像质量的指标,它考虑了图像的亮度、对比度和结构三个方面。SSIM值越接近1,表示两幅图像越相似。

        SSIM公式以前写过。

        LPIPS:(Learned Perceptual Image Patch Similarity,感知相似性) 是一种基于深度学习的图像质量评估指标,它能够更好地模拟人类视觉感知。LPIPS值越小,表示两幅图像越相似。

        LPIPS使用预训练的卷积神经网络,一般是VGG和AlexNet,同时提取不同层的特征,并计算L2距离或者相似度度量,然后对不同层的特征差异计算加权求和,权值通过学习得到。

2、深度正则化

        对于模型进行5w次的微调,并计算深度正则化损失L_{reg.depth},对于每一个渲染的视角,我们生成一个对应的深度图D,并且计算深度图D的损失。

        分别计算深度图D在x轴和y轴方向的深度梯度,以及计算原图像在x轴和y轴方向的梯度。并且计算深度正则化损失。

        另外也做了消融实验,证明深度正则化损失是有效的。 

3、相机的高斯分布转换为世界空间

        其中D_R代表球谐函数的转换矩阵Wigner D矩阵。

4、三视图对重构

        三视图对重构效果一定是好于二视图对的,有显著的提升,但是数据量的增加可能会对内存造成影响。

参考文献: https://arxiv.org/abs/2312.12337

参考代码:https://github.com/dcharatan/pixelsplat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值