周报(9)<仅供自己学习>
❓什么是3dgs渲染管线
3DGS渲染管线
-
输入处理阶段
- 3D高斯参数:包括位置、协方差矩阵、颜色特征
- 相机参数:包括内参和外参
- 训练图像:用于优化的参考图像
-
视角变换与投影
- 将3D高斯体从世界坐标转换到相机坐标
- 计算每个高斯体在2D图像平面上的投影
- 处理透视变换和投影畸变
-
排序与光栅化
- 对高斯体进行深度排序
- 计算每个高斯体的2D覆盖范围
- 进行光栅化处理,将3D信息转换为2D像素值
-
合成与渲染
- 使用alpha混合进行前向-后向合成
- 应用颜色和透明度
- 生成最终渲染图像
-
优化阶段
- 计算渲染结果与目标图像之间的损失
- 反向传播更新高斯参数
- 动态调整高斯体的数量和分布
二、光栅化和光线追踪
1.光栅化
1️⃣定义
矢量图形(几何图形)->光栅图形(像素网格)的过程->光栅化是将矢量图形(3D模型)转化为光栅图像(2D像素图)的过程
矢量图:通过数学方程描述形状,如点、线、曲线和多边形。它们在任何分辨率下都可以保持清晰形
光栅图形:由一组像素(小的颜色单元)组成的图像。像素的数量和分辨率决定了图像的清晰度。
2️⃣光栅化的过程
几何处理:首先,3D模型的顶点和几何数据被转换成二维屏幕空间。这包括模型的旋转、缩放和平移,来确定每个顶点在屏幕上的位置。
光栅化:此时,光栅化会决定哪些像素(或片段)属于哪些多边形(通常是三角形),并将这些三角形的属性(如颜色、纹理等)映射到对应的像素上。
片段处理:对每个生成的像素进行进一步处理,确定其最终颜色、深度、透明度等属性。这可能包括应用纹理、光照计算、阴影、抗锯齿等效果。
输出图像:经过光栅化和所有处理后的图像就会出现在屏幕上,形成最终的显示效果。
讲人话就是根据物体深度把物体一个个压扁在屏幕上,覆盖到的像素就记下来
2.光线追踪
1️⃣定义
光线追踪通过模拟光线从视点(眼睛或摄像机)出发,追踪它们与场景中的物体相交的路径,然后计算它们如何与物体表面互动。通过对这些交互的精确建模,最终形成每个像素的颜色。
3.NeRF->3DGS的改变
1️⃣从光线追踪->光栅化
2️⃣从场景的隐式表达->场景的显示表达
基于三维高斯自适应密度控制的优化
一、优化对象
1️⃣每个表示高斯函数颜色的SH系数c
2️⃣位置p,α,协方差
二、优化过程
1️⃣ Initialization过程
从SfM得到的点云初始化高斯分布(点的初始位置,颜色等)
2️⃣ 优化
初始化的点,从不同方向相机通过一个可微分的瓦片光栅化器投影。通过自适应密度(改变点的数目)保证图像中一些重要区域有更高的细节。
3️⃣两个流
执行流和梯度流
执行流:每一步都是前一步的输出作为下一步的输入
梯度流:梯度的传播
- 在训练过程中,通过计算损失函数(通常是图像重建误差)相对于每个3D高斯参数(如位置、协方差、不透明度等)的梯度,可以更新这些参数以最小化损失函数,从而提高渲染图像的质量。
梯度流的意义
image->Differentiable Tile Rasterizer的梯度流
-
目的:优化光栅化过程中的参数
-
对象:每个高斯的颜色和不透明度+位置和形状+投影参数
Differentiable Tile Rasterizer->Adaptive Density Control
高斯点的密度
Differentiable Tile Rasterizer->Projection
为了调整相机参数或3D高斯分布的投影方式:调整相机的位置、视角或其他投影相关的参数
projection->3DGS
- 优化3D高斯点的位置
- 调整形状和方向:协方差矩阵定义
- 控制不透明度
这种训练:各种特征相互竞争->各种最优特征->最好的图像
4️⃣各向异性协方差
指的是每个高斯点不是一个规则的球体,来满足不同形状的几何结构,从而得到相当紧凑的表示。
?
Optimization
技术:随机梯度下降技术+快速光栅化
一、数据处理
1️⃣α:激活函数->[0,1]
2️⃣指数激活函数:用于处理协方差矩阵的尺度:正数+平滑
3️⃣初始协方差矩阵:各项同性,轴等于最近三个点的平均值
二、标准指数衰减调度技术:损失函数?
1️⃣损失函数:
(入通常是0.2)
三、自适应控制高斯
1️⃣过程:SfM稀疏点云->自适应密度控制点云的密度(每迭代100次删除透明度<阈值的点)
作用:适应密度
2️⃣过程:集中(过度重建和缺少重建的区域)|梯度相差很大|->densification解决
- 重建不足
-
- cope相同大小的高斯点并向着梯度方向移动
- 重建过度
-
- 分解成小高斯:分解成两个小高斯并且处于1.6‘’
每迭代3000刺,α接近0:靠近输入相机的高斯点和密度过高区域的高斯点
两种方式:前者增加系统的总体积和高斯数后者保持总体积❓但是增加了高斯数
高斯点在缩减和增长的过程中
❓是什么是densification
“densification”(或称为密度控制)是指在优化过程中调整3D高斯点的密度的过程。这个步骤的目的是为了更好地表示场景的几何细节,特别是在那些在初始表示不足或过度表示的区域。
❓视空间位置梯度又代表什么?
- 视空间位置梯度较大可能指示该区域几何变化剧烈,需要增加点密度以捕获这些特征
- 平均位置梯度较高区域可能表明这些视觉重要特征,优化过程中应重点关注
- 平均位置梯度较大区域可能指示这些重建质量较差部分,需要densification增强细节。
❓高斯点的 α 是如何改变的
- 优化的核心机制: 在训练和优化过程中,α\alphaα 是一个可训练的参数,通过梯度下降进行更新。优化的目标是让模型生成的图像与训练图像更接近。
- 激活函数的约束: 文中提到,α\alphaα 的更新被一个 sigmoid 激活函数约束在 [0,1)[0, 1)[0,1) 的范围内。这种机制使得 α\alphaα 的变化更平滑,优化过程更稳定。
- 自适应调整: 在高斯点密度自适应调整的步骤中,α\alphaα 会根据场景表示的需要被动态调整。如果某些区域的几何表示不足(如“重建不足”),则相关高斯点的 α\alphaα 会增加,表明这些点对场景的贡献变大;而在“过度重建”区域,可能相关点的 α\alphaα 会减小或被标记为冗余。
换句话说,α\alphaα 是通过训练过程中的梯度优化,以及结合损失函数(比如 L1 和 DSSIM)动态调整的。
❓公式又是怎么理解的
1️⃣λ是权重调节器
2️⃣L1损失(绝对误差)
计算每个像素的绝对差值:非常适合处理较为稀疏或精细的错误
3️⃣D-SSIM 损失
作用:基于感知的损失函数,用于衡量图像的结构相似性
感知:指从人类视觉的角度观察图像的质量,比如结构、纹理、对比度等。即使像素值可能有轻微差异,但从视觉上看,如果图像的结构、纹理一致,人类会觉得它是“相似”的。
对标:适用于优化过程,特别是在图像对比度、亮度变化较大的情况下
核心思想:通过计算图像的 亮度、对比度、结构 来衡量两幅图像的相似性
D-SSIM=1-SSIM
4️⃣公式的作用
L1 更关注像素级别的准确性,保证每个像素的颜色差异最小化。这对精确的几何和纹理表示非常重要。
LD-SSIM\mathcal{L}_{\text{D-SSIM}}LD-SSIM 更关注图像的整体感知质量,尤其是结构和纹理的保真度。这有助于避免过度优化像素值而导致视觉质量下降。
通过调整 λ\lambdaλ,可以平衡像素准确性和结构感知之间的权重,从而提升优化效果。
❓怎么理解SSIM的公式
思想:将图像分块滑动窗口,作为图像块:图像的结构和纹理往往是局部的,通过块来捕捉局部相似性可以更好地分析细节
亮度相似性:衡量图像块的平均亮度是否一致。,ux是图像块中的亮度平均值
对比度相似性:标准差(C是为了防止分母为0)
结构相似性:协方差
(最后需要求和,对所有滑动图像块)
一般指数为1
SSIM->1损失越小