“数学公式从来不是为了阻挡我们探索的脚步,而是先驱者们在暗夜中摸索后,留给后人的加密航标。”
很多刚接触 3D 视觉(如 3DGS)或 AIGC 的朋友,在翻开顶会论文的那一刻,常会被满屏的希腊字母和复杂公式劝退。但剥开这层学术外衣,你会发现:论文里的公式大多数不是为了炫技,而是在搭建一套清晰的逻辑系统。
读公式前,先在脑海里挂起这 5 个核心问题:
- 输入是什么? (比如图像 、相机位姿 、3D 点 、高斯参数 )
- 输出是什么? (比如渲染图像 、检测分数 、重建结果、分类概率)
- 要最小化什么? (这通常就是 Loss 函数)
- 怎么约束模型? (比如“不许改太多原图”、“高斯体积不能过大”、“几何表面要平滑”)
- 最后怎么评价? (比如 PSNR、SSIM、LPIPS、FID、准确率、AUC)
不要一上来就死磕“我必须把它的每一步求导都推演出来”。先问:这个公式在这个系统中扮演什么角色?
一、破除恐惧:最核心的数学模块
1. 符号读法:看透希腊字母背后的含义
不要被各种符号唬住,它们都有通俗的“人话”翻译:
| 符号 | 学术意思 | 你的直观理解 |
|---|---|---|
| 输入数据 | 一张图、一个向量、一帧视频 | |
| 模型预测结果 | 重建图、生成图、渲染图 | |
| 标签或真实值 | Ground Truth (GT) | |
| 模型参数 | 网络权重、高斯球参数 | |
| 损失函数 | 模型“做错”的程度 | |
| 使某个东西最小的参数 | 寻找最优解 | |
| 求和 | 把很多项打包加起来 | |
| 期望 | 平均情况 | |
| 范数 | 差距、长度、误差大小 | |
| 梯度 | 往哪里改参数能让 loss 下降 |
比如你在深度学习论文里最常见的句式:
这句话的意思非常质朴:找出一组最好的参数 ,让损失函数 降到最低。
2. 向量与矩阵:数据的“骨架”
论文里经常用维度来定义数据,比如 ,意思就是 是一张 RGB 图像,高度为 ,宽度为 ,有 3 个颜色通道。
在 3DGS 和空间几何中,线性代数是绕不开的。你只需要重点关注以下几种变换:
- 向量表示: 表示一个三维点。
- 空间变换:,对点 先进行旋转 ,再平移 ,得到新坐标。在代码里通常就是
p_new = R @ p + t。 - 相机投影:。把三维世界里的点 通过相机外参(姿态) 和内参 ,拍扁投影到二维图像的像素位置 上。
3. 范数:衡量“差距”的尺子
看到 或 ,第一反应就应该是:它在衡量两个东西有多不一样。
- Loss (绝对值误差):。对异常值不敏感,做出来的图像边缘更锐利。在你做 AIGC 检测规避时(如 ),它就是在约束“修改后的图尽量贴近原图”。
- Loss (均方误差):。大误差会被惩罚得更重,容易让结果变得更平滑(有时也会导致模糊)。
4. 损失函数与优化:驱动模型进化的马车
很多时候,总损失函数就是一个多目标的加权和:
这就像是在拉锯战中平衡各方势力:
- (相似性):稳住基本盘,别改得太离谱。
- (欺骗检测):降低检测器分数,让伪造更逼真。
- (平滑性):消除高频噪声、条纹。
- (残差幅度):限制整体的修改力度。
其中的 就是不同目标的权重(话语权)。而让这一切运转起来的基础,是梯度下降:
模型参数 沿着让损失 下降的方向,以学习率 为步伐,不断迈进。你写的 loss.backward() 和 optimizer.step(),正是这段优美公式的代码化身。
二、3DGS 专属数学盲盒拆解
1. 高斯函数与协方差矩阵:3DGS 的灵魂
3DGS 放弃了传统的 Mesh(网格),转而用无数个“可渲染的 3D 高斯椭球”来表达世界。它的核心公式如下:
- 是椭球的中心点。
- 保证了离中心越远,影响力呈指数级衰减。
- 是协方差矩阵,它决定了这个高斯是圆的、扁的、长的,还是歪的。
为了让这个形状可导且符合物理意义,通常会被拆解为旋转矩阵 和缩放矩阵 :
代码中的 scaling, rotation, covariance, opacity, color,其实全都是可以被梯度更新的参数。
2. Alpha Compositing (色彩融合) 与球谐函数 (SH)
3D 空间里的高斯球,是怎么变成我们屏幕上的 2D 像素的?靠的是按深度的累加渲染:
排在前面的、不透明度高()的高斯,对最终颜色 的贡献越大。后面的高斯光线会被前面的遮挡(透过率 变小)。
而至于颜色 ,为了表现物体表面的反光和视角变化,通常采用球谐函数 (Spherical Harmonics, SH):
别被公式吓住,只需记住它的物理意义:颜色 并不固定,而是根据你观察的方向 动态变化的。 是一组基底,而 是网络需要学习的系数。
三、AIGC / GAN 相关公式解读
在做 AIGC 图像对抗或残差编辑,大概率会碰到这种公式:
这其实就是在说:不去从头生成图,而是在原图 的基础上,叠加上一个被严格限制幅度()的微小扰动 ,最后截断保证像素合法。
为了防止生成的扰动像雪花屏一样杂乱,通常会引入 Total Variation (TV) Loss:
简单来说,它要求相邻像素(横向和纵向)之间的变化尽量平滑,别有太剧烈的跳跃,从而有效压制摩尔纹和高频伪影。
四、实验评估:该看哪个指标?
一图胜千言,在看论文的表格时,牢记这些指标的评判标准:
| 指标 | 全称 / 侧重点 | 好坏判断 |
|---|---|---|
| PSNR | 峰值信噪比。侧重像素级绝对误差。 | 越大越好 |
| SSIM | 结构相似性。关注亮度、对比度和结构。 | 越大越好(越接近 1 越好) |
| LPIPS | 学习感知图像块相似度。更符合人眼直观感受。 | 越小越好 |
| FID | 弗雷歇特起始距离。评估生成图像的真实度与多样性。 | 越小越好 |
提示: PSNR 极高并不代表图像一定好看,有时候平滑模糊的图像 PSNR 反而高于有真实噪点的高清图。结合 LPIPS 看往往更具说服力。
写在最后:读公式的“三步走”框架
- 找变量: 搞清楚哪些是给定的(GT图、相机参数),哪些是求出来的(预测图)。
- 找优化对象: 看看 下面跟着的是什么?是在优化网络权重 ,还是在直接优化高斯属性 ?
- 找各项博弈: 拆解 Loss 的加权和,问自己一句:“这几项力量,分别在把模型往哪个方向拉扯?”