【论文阅读】R2-Gaussian: Rectifying Radiative Gaussian Splatting for Tomographic Reconstruction

Abstract

3DGS 在图像渲染和表面重建方面显示出可喜的结果。然而它在体积重建任务(如X射线计算机断层扫描)中的潜力仍未得到充分探索。本文介绍了 R 2 R^2 R2-Gaussian,这是第一个基于3DGS的稀疏视图断层重建框架。通过仔细推导X射线光栅化函数,我们发现了标准 3DGS 公式中以前未知的积分偏差,这阻碍了准确的体积检索。

为了解决这个问题,本文提出了一种新的校正技术,通过将投影从3D重构为2D高斯。新方法提出了三个关键创新:(1)引入定制的高斯核,(2)将光栅化拓展到 X 射线成像,以及(3)开发基于 CUDA 的可微体素。大量的实验表明,本文方法在 PSNR 和 SSIM 中分别优于最先进的方法。重要的是可以在3分钟内提供高质量的结果,比基于 NeRF 的方法快12×与传统算法相当。该方法的优越性能和快速收敛性凸显了实用价值。

Introduction

本文揭示了 3DGS 中的固有的积分偏差(integration bias)。尽管这种偏差对图像渲染的影响可以忽略,但严重阻碍了体积重建。标准3DGS 在将 3D 高斯核投影到 2D 图像平面上时忽略了与协方差相关的缩放因子。这种公式导致从不同视图查询的体积属性不一致。除了积分偏差之外,将 3DGS 应用于断层扫描还面临其他挑战,例如自然光和X射线成像之间的差异以及缺乏从核查询体积的有效技术。

R 2 R^2 R2-Gaussian 通过三项重要改进实现了无偏差的训练流程:

  1. 引入了新型辐射高斯核,充当由中心密度、位置和协方差参数化的局部密度场;使用分析方法 FDK 初始化高斯参数,并使用光度损失对其进行优化;
  2. 修改3DGS光栅化器以支持X射线成像。这是通过推导新的X射线渲染函数并校正积分偏差以实现精确的密度检索来实现的。
  3. 开发了基于CUDA的可微分体素化器,不仅可以从高斯中提取体积,还可以在训练期间实现基于体素的正则化。

本文在多个模态上评估了该方法,包括人体器官、动物和植物以及人造物体。

在这里插入图片描述

Related work

Tomographic reconstruction

3DGS

Preliminary

3.1 X-ray imaging

投影 I ∈ R H × W I\in \mathbb{R}^{H\times W} IRH×W 测量了穿过材料的射线衰减。对于具有初始强度 I 0 I_0 I0 和路径边界 t n t_n tn t f t_f tf 的X射线,相应的原始像素值通过 Beer-Lambert 定律给出: I ′ ( r ) = I o e x p ( − ∫ t n t f σ ( r ( t ) ) d t ) I'(r)=I_oexp(-\int_{t_n}^{t_f}\sigma(\mathbf{r}(t))dt) I(r)=Ioexp(tntfσ(r(t))dt),这里 σ ( x ) \sigma(\mathbf{x}) σ(x) x ∈ R 3 \mathbf{x}\in\mathbb{R}^3 xR3处的密度(或物理学中的衰减系数)。为了计算简单,断层扫描通常将原始数据转换成对数空间(公式1):
I ( r ) = l o g I o − l o g I ′ ( r ) = ∫ t n t f σ ( r ( t ) ) d t I(r)=logI_o-logI'(\mathbf{r})=\int_{t_n}^{t_f}\sigma(\mathbf{r}(t))dt I(r)=logIologI(r)=tntfσ(r(t))dt
每个像素值 I ( r ) I(r) I(r) 表示沿光线路径的密度积分。除非另有说明,我们使用对数投影作为输入。断层扫描重建的目标是估计 σ ( X ) \sigma(X) σ(X) 的3D分布,输出为离散体积,并使用从N个不同角度捕获的噪声X射线投影 { I i } i = 1 , . . . , N \{I_i\}_{i=1,...,N} {Ii}i=1,...,N

在这里插入图片描述

3.2 3DGS

3DGS 利用一系列 3D高斯核 G 3 = { G i 3 } i = 1 , . . . , M G_3=\{G_i^3\}_{i=1,...,M} G3={Gi3}i=1,...,M对场景进行建模。每个高斯核由位置、协方差、颜色和不透明度参数化。光栅化器 R 从这些高斯函数渲染 RGB 图像 I r g b ∈ R H × W × 3 I_{rgb}\in \mathbb{R}^{H\times W\times 3} IrgbRH×W×3(公式2):
I r g b = R ( G 3 ) = C ∘ P ∘ T ( G 3 ) \mathbf{I}_{r g b}=\mathcal{R}\left(\mathbb{G}^3\right)=\mathcal{C} \circ \mathcal{P} \circ \mathcal{T}\left(\mathbb{G}^3\right) Irgb=R(G3)=CPT(G3)

其中 C , P , T \mathcal{C},\mathcal{P}, \mathcal{T} C,P,T 分别是变换、投影和合成模块。首先T将3D高斯变换到ray space,将观察光线和坐标轴对齐以提高计算效率,然后将变换后的3D高斯投影到图像平面上。投影的2D高斯和3D的保持相同的透明度和颜色,但省略了位置和协方差的第三行和第三列。随后使用alpha混合合成这些2D高斯函数来渲染一个RGB图像。光栅化器是可微分的,允许使用光度损失来优化内核参数。3DGS 利用SfM点初始化稀疏高斯函数。训练时用自适应控制策略动态地致密化高斯来改善场景表示。
在这里插入图片描述

Methods

4.1 Representing objects with radiative gaussians

我们用一组可学习的3D高斯核表示目标对象,将其称为辐射高斯。每个核定义一个局部高斯形密度场(由中心密度值、位置和协方差参数化)(公式3):
G i 3 ( x ∣ ρ i , p i , Σ i ) = ρ i ⋅ e x p ( − 1 2 ( x − p i ) T Σ i − 1 ( x − p i ) ) G_i^3(\mathbf{x|\rho_i,\mathbf{p}_i,\mathbf{\Sigma_i}})=\rho_i \cdot exp(-\frac{1}{2}(\mathbf{x}-\mathbf{p}_i)^T\Sigma_i^{-1}(\mathbf{x}-\mathbf{p}_i)) Gi3(x∣ρi,pi,Σi)=ρiexp(21(xpi)TΣi1(xpi))
优化时将协方差矩阵 Σ \Sigma Σ 进一步分解成旋转矩阵 R i R_i Ri 和尺度矩阵 S i S_i Si : Σ i = R i S i S i T R i T \Sigma_i=R_iS_iS^T_iR^T_i Σi=RiSiSiTRiT。然后通过对核的密度贡献和来计算位置 x ∈ R 3 \mathbf{x}\in \mathbb{R}^3 xR3 处的总密度(公式4):
σ ( x ) = ∑ i = 1 M G i 3 ( x ∣ ρ i , p i , Σ i ) \sigma(\mathbf{x})=\sum_{i=1}^MG_i^3(\mathbf{x}|\rho_i,\mathbf{p}_i,\Sigma_i) σ(x)=i=1MGi3(xρi,pi,Σi)

和标准3DGS相比,我们的kernel消除了和视图相关的颜色,因为X射线衰减仅取决于各向同性密度。更重要的是,我们为辐射高斯定义了密度查询函数 σ ( x ) \sigma(\mathbf{x}) σ(x) ,使其对于2D图像渲染和3D体积重建都很有用。

Initialization

使用从分析方法获得的初步结果来初始化辐射高斯。具体地,使用FDK在不到1秒的时间内低质量重建体积。然后排除具有低于密度阈值的空白区域,并随机采样M个点作为kernel的位置。和3DGS一样,将高斯的大小设置为最近邻距离并且假设物旋转。中心密度从FDK体积中查询得到,凭经验用k缩小查询的密度,来补偿kernel之间的overlap。

4.2 训练

辐射高斯先从FDK体积初始化,然后对投影进行光栅化来计算光度损失,并对微小密度体积进行体素化来进行3D正则化。使用改进的自适应控制来进行高斯致密化,以获得更好的表示。

流程如图:
在这里插入图片描述

4.2.1 X-ray 光栅化

本节重点介绍X射线光栅化的理论推导。投影的像素值是沿着相应光线路径的密度积分。
把公式(4)代入(1)得到公式(5):
I r ( r ) = ∫ ∑ i = 1 M G i 3 ( r ( t ) ∣ ρ i , p i , Σ i ) d t = ∑ i = 1 M ∫ G i 3 ( r ( t ) ∣ ρ i , p i , Σ i ) d t I_ r(\mathbf{r})=\int\sum_{i=1}^MG_i^3{(\mathbf{r}(t)}|\rho_i,\mathbf{p}_i,\Sigma_i)dt=\sum_{i=1}^M\int G_i^3{(\mathbf{r}(t)}|\rho_i,\mathbf{p}_i,\Sigma_i)dt Ir(r)=i=1MGi3(r(t)ρi,pi,Σi)dt=i=1MGi3(r(t)ρi,pi,Σi)dt

其中 I r ( r ) I_r(\mathbf{r}) Ir(r) 就是渲染的像素值。这意味着我们可以单独积分每个3D高斯以光栅化X射线投影。之前公式1里的边界被忽略,因为假设所有高斯都在目标空间内有界。

变换

由于锥束X射线扫描仪可以类似于针孔相机进行建模,因此我们按照[64]将高斯从世界空间转移到射线空间。在射线空间中,射线平行于第三坐标轴,有利于解析积分。由于光线空间的非笛卡尔性质,我们对方程采用局部放射变换,得到公式(6):
I r ( r ) ≈ ∑ i = 1 M ∫ G i 3 ( x ~ ∣ ρ i , ϕ ( p ) ⏟ p ~ i , J i W Σ i W ⊤ J i ⊤ ⏟ Σ ~ i ) d x 2 , I_r(\mathbf{r}) \approx \sum_{i=1}^M \int G_i^3(\tilde{\mathbf{x}} \mid \rho_i, \underbrace{\phi(\mathbf{p})}_{\tilde{\mathbf{p}}_i}, \underbrace{\mathbf{J}_i \mathbf{W} \boldsymbol{\Sigma}_i \mathbf{W}^{\top} \mathbf{J}_i^{\top}}_{\tilde{\boldsymbol{\Sigma}}_i}) d x_2, Ir(r)i=1MGi3(x~ρi,p~i ϕ(p),Σ~i JiWΣiWJi)dx2,
其中 x ~ = [ x 0 , x 1 , x 2 ] T \tilde{\mathbf{x}}=[x_0,x_1,x_2]^T x~=[x0,x1,x2]T是光线空间中的点, p ~ i ∈ R 3 \tilde{\mathbf{p}}_i\in \mathbb{R}^3 p~iR3是通过投影映射得到的新高斯位置, Σ ~ i ∈ R 3 × 3 \tilde{\boldsymbol{\Sigma}}_i\in \mathbb{R}^{3\times3} Σ~iR3×3是由局部逼近矩阵 J i J_i Ji 和观察变换矩阵 W 控制的新高斯协方差矩阵。 ϕ , J i , W \phi,J_i,W ϕ,Ji,W根据扫描仪参数确定。

投影和合成

归一化3D高斯分布的一个良好特性是它沿一个坐标轴的积分会产生归一化2D高斯分布。
将公式(3)代入公式(6),可以得到公式(7):

在这里插入图片描述
其中 x ^ ∈ R 2 , p ^ ∈ R 2 , Σ ^ ∈ R 2 × 2 \hat{\mathbf{x}}\in\mathbb{R}^2, \hat{\mathbf{p}}\in\mathbb{R}^2,\hat{\mathbf{\Sigma}}\in\mathbb{R}^{2\times 2} x^R2,p^R2,Σ^R2×2 分别是通过删除对应的第三行和第三列获得的。公式(7)表明X射线投影可以通过简单地对2D高斯进行求和来渲染,而不是进行alpha合成。

Intergration bias

在投影过程中我们的2D高斯与3DGS中的原始高斯之间的一个关键区别是中心密度 ρ ^ i \hat{\rho}_i ρ^i。如公式(7),我们使用协方差相关因子 μ i \mu_i μi 来缩放密度, ρ i ^ = μ i ρ i \hat{\rho_i}=\mu_i\rho_i ρi^=μiρi,而3DGS中没有。这意味着 3DGS 实际上学习的是2D图像平面中的集成密度,而不是3D空间中的实际密度。这种集成偏差虽然对成像渲染的影响可以忽略不计,但会导致密度检索出现严重的不一致(图5展示了简化的2D-1D投影的不一致性)。当尝试在3D空间中用 ρ i = ρ i ^ / μ i \rho_i=\hat{\rho_i}/\mu_i ρi=ρi^/μi 恢复中心密度 ρ \rho ρ 时,我们发现不同的视角下的 μ i \mu_i μi 导致不同的结果。这违反了 ρ i \rho_i ρi 的各向同性性质,使我们无法确定正确的值。相反,我们的方法将实际的3D密度分配给kernel并向前计算2D投影,从而从根本上解决了这个问题。虽然概念上简单,但实现该想法需要大量的工程工作,包括重新变成CUDA中的所有反向传播例程。

在这里插入图片描述

4.2.2 密度体素化

我们开发了一个体素化器 V \mathcal{V} V 来有效地从辐射高斯查询密度体积 V ∈ R X × Y × Z \mathbf{V}\in\mathbf{R}^{X\times Y\times Z} VRX×Y×Z。受到tile-based光栅化器的启发,我们的体素化器首先将目标空间划分为多个8×8×8大小的3D图块。然后,它会剔除高斯分布,保留那些有99%置信度与图块相交的分布。在每个3D图块中,通过公式(4)求和附近kernel的贡献来并行计算体素值。我们在CUDA中实现体素化器和反向传播,使其可微以进行优化。这种设计不仅加速了查询过程,还允许我们使用3D先验对辐射高斯进行正则化。

4.2.3 优化

使用随机梯度下降来优化辐射高斯。除了光度 L1损失和 D-SSIM 损失之外,我们还进一步结合了3D TV正则化损失作为同质性先验。在每次迭代中,随机查询一个小密度体积(和目标输出的间距相同)并最小化总变分。总体的训练损失定义如下:
L t o t a l = λ 1 ( I r , I m ) + λ s s i m L s s i m ( I r , I m ) + λ t v L t v ( V t v ) \mathcal{L}_{total}=\lambda_1(I_r,I_m)+\lambda_{ssim}\mathcal{L}_{ssim}(I_r,I_m)+\lambda_{tv}\mathcal{L}_{tv}(V_{tv}) Ltotal=λ1(Ir,Im)+λssimLssim(Ir,Im)+λtvLtv(Vtv)
r代表render projection,m表示measured projection。

高斯自适应调整:我们删除空的高斯并致密化(clone或者split)那些具有大的损失梯度的高斯。考虑到人体器官等物体具有广泛的同质区域,我们不会修剪大高斯。至于致密化,我们将原始高斯函数和复制高斯函数的密度减半。该策略降低了新高斯导致的性能突然下降,从而稳定训练过程。

讨论和结论

R2-Gaussian继承了3DGS的一些局限性,比如不同模态的训练时间不同,极其稀疏视图条件下的针状伪影以及其他断层扫描任务的suboptimal extrapolation。此外,我们不考虑有关扫描几何和辐射特性的校准误差。尽管有这些限制,本文方法的性能和速度使其对于现实世界的应用很有价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值