Skip to content

Week 10 学习笔记:Generative Models, 3D Reconstruction and Frontiers

0. 本章核心目标与技术进化树

本章要解决的核心问题是:

如何从“理解图像”进一步走向“生成图像”和“重建三维世界”。

传统 CV 任务主要回答:

而生成模型与 3D 重建要回答:

整体技术演化可以理解为:

text
传统视觉理解
Classification / Segmentation / Detection

像素级生成
Autoencoder → VAE → GAN → Diffusion / Stable Diffusion / ControlNet

三维场景表示
SfM → NeRF → 3D Gaussian Splatting

生成模型与 3D 融合
DreamFusion / World Models / Video Generative Models

本章的内在线索不是“列举模型”,而是不断解决同一个矛盾:

如何用可训练的神经网络表示复杂真实世界,同时保持生成质量、可控性、可优化性和计算效率。


1. CV 任务回顾:从图像理解到生成建模

1.1 传统视觉任务谱系

课件首先回顾了四类经典 CV 任务:

任务输入输出空间信息实例区分
Classification图像类别标签
Semantic Segmentation图像每个像素的类别
Object Detection图像类别 + bounding box有,但粗粒度
Instance Segmentation图像每个实例的 mask有,细粒度

重要程度:★★★☆☆ 这部分不是本章重点,但它说明了视觉任务从“分类”逐渐走向“空间结构建模”。

1.2 Fully Convolutional Network:语义分割的基本思想

FCN 的核心思想是:把分类 CNN 改成全卷积结构,使其能够输出空间分辨率对应的像素级预测。

基本结构:

text
Input image

Downsampling: pooling / strided convolution

Low-resolution semantic features

Upsampling

Pixel-wise prediction: C × H × W

其中:

符号含义:

是图像高度和宽度; 是语义类别数;输出张量中每个位置对应一个像素的类别分布。

重要程度:★★★☆☆

1.3 R-CNN 到 Fast R-CNN:检测中的计算瓶颈

Slow R-CNN 的流程是:

text
Image

Region Proposal ≈ 2000 RoIs

Warp each RoI to 224×224

Each RoI independently passes ConvNet

SVM classification + bbox regression

问题是非常慢,因为每张图要做约 2000 次独立 CNN forward。

Fast R-CNN 的改进:

text
Image

Whole-image ConvNet only once

Crop RoI features from feature map

Per-RoI network

Classification + box regression

本质改进是:

重要程度:★★★☆☆

1.4 Mask R-CNN:从检测到实例分割

Mask R-CNN 在 Faster/Fast R-CNN 系列基础上增加 mask branch。

对于每个 RoI,模型同时预测:

mask head 输出通常是:

的二值 mask。

重要程度:★★★☆☆

1.5 Single-stage Detectors:YOLO / SSD / RetinaNet

单阶段检测器不再显式生成 proposal,而是把图像划分为网格并直接预测 boxes 和类别。

若图像被划分为:

每个 grid cell 有 个 base boxes,类别数为 ,则输出为:

其中每个 box 预测:

符号含义:

表示中心位置偏移; 表示宽高修正;confidence 表示该 box 包含目标的置信度; 是类别数。

重要程度:★★★☆☆

1.6 DETR:用 Transformer 做检测

DETR 的核心思想是把 object detection 转化为 set prediction。

text
CNN backbone

Image features + positional encoding

Transformer encoder-decoder

Object queries

Set of box predictions

Bipartite matching loss

它去掉了 anchor、NMS、proposal 等人工设计,用 Hungarian matching 解决预测集合与真实目标集合之间的匹配问题。

重要程度:★★★☆☆


2. Autoencoder 到 VAE:从压缩表征到生成模型

2.1 Autoencoder 的基本目标

Autoencoder 是无监督特征学习方法:

text
Input x
  ↓ Encoder
Latent feature z
  ↓ Decoder
Reconstruction x_hat

训练目标通常是重建损失:

符号含义:

是输入数据; 是 decoder 重建结果; 是 encoder 提取的 latent representation; 是 L2 reconstruction loss。

物理直觉:如果 能重建 ,说明 保留了输入中最有用的信息。

重要程度:★★★★☆

2.2 传统 Autoencoder 的问题

AE 可以做降维、特征学习、辅助预训练,但它不是一个好的生成模型。

原因是:AE 学到的是离散、不规则、可能有空洞的 latent space。也就是说:

只是把训练样本编码到 latent space 中,但没有保证 的分布连续、平滑、可采样。

因此,如果你随机采样一个 latent vector:

decoder 未必能生成真实图像,因为这个 可能落在训练样本 manifold 之外。

传统 AE 的失败点:

text
Good for reconstruction
Bad for generation

Why it fails:

重要程度:★★★★★


3. VAE:用概率 latent space 修复 AE 的不可生成问题

3.1 VAE 的核心思想

VAE 是 Autoencoder 的概率化版本。传统 AE 输出一个确定性 latent vector:

而 VAE 输出一个 latent distribution:

通常假设:

若使用对角协方差:

符号含义:

是 encoder 近似出来的后验分布; 是均值向量; 是协方差矩阵; 是每个 latent dimension 的方差; 是 encoder 参数。

生成时:

通常选择 prior:

重要程度:★★★★★

3.2 VAE 的目标函数

课件给出的 VAE loss 是:

完整理解是:

第一项是 reconstruction loss,要求 decoder 能从 sampled latent 重建原图。

第二项是 KL regularization,要求 encoder 输出的 latent distribution 接近标准正态分布。

符号含义:

是输入图像; 是重建图像; 是给定 后 encoder 输出的 latent distribution; 是预设 prior,通常是 是 KL divergence,用于衡量两个概率分布之间的差异。

直觉:

所以 VAE 同时解决两个目标:

text
reconstruct well + latent space regularized

重要程度:★★★★★

3.3 Reparameterization Trick

问题:如果直接从

采样,采样操作不可直接反向传播到

解决方法是 reparameterization trick:

其中:

符号含义:

是 encoder 输出的均值; 是标准差; 是从标准正态分布采样的噪声; 是逐元素乘法。

关键逻辑是把随机性从网络参数中“拆出来”:

等价写成:

这样梯度可以通过 回传到

重要程度:★★★★★

3.4 VAE 的 KL divergence 公式

对于对角高斯:

prior:

KL divergence 为:

有些课件写法等价为:

符号含义:

是 latent dimension; 是第 个 latent dimension 的均值; 是第 个 latent dimension 的方差; 是 log variance。

重要直觉:

时,该维度完全匹配标准正态分布,KL 为 0。

如果 encoder 想“作弊”,把不同样本压到彼此孤立的 cluster 中,KL 项会惩罚这种行为。

重要程度:★★★★★

3.5 VAE 为什么容易模糊?

课件强调 VAE 生成样本容易 blurry,原因主要有两个。

第一,数据分布通常是 multi-modal。例如 MNIST 有 0 到 9 十个模式,但 VAE 用一个 unit Gaussian prior 去压缩这些模式:

这会导致不同模式之间被平滑连接,采样点可能落在类别之间。

第二,pixel-wise reconstruction loss 本身有 averaging effect。如果多个可能输出都合理,L2 loss 会倾向于预测平均图像:

这个最优解趋向条件均值,因此容易模糊。

重要程度:★★★★★


4. GAN:用对抗训练解决 VAE 的平均化问题

4.1 GAN 的生成逻辑

GAN 不要求重建某个具体样本,而是学习从随机噪声到真实数据分布的映射:

其中 是 generator。

问题是:我们不知道哪个 应该对应哪个真实图像,所以不能用 reconstruction loss。

因此 GAN 的目标变成:

也就是说,生成样本整体看起来像真实数据分布。

重要程度:★★★★★

4.2 GAN 的 Minimax Objective

GAN 有两个网络:

:Generator,生成 fake samples。

:Discriminator,判断输入是真实样本还是生成样本。

经典目标函数是:

符号含义:

是真实数据; 是随机噪声; 是真实数据分布; 是噪声分布,常用 Gaussian; 是生成样本; 是 discriminator 判断 为真实样本的概率。

训练过程:

text
Step 1: fix G, train D
Step 2: fix D, train G to fool D

来说,它希望:

来说,它希望:

重要程度:★★★★★

4.3 GAN 相比 VAE 的改进与问题

GAN 的优点是生成图像通常更锐利,因为它不是最小化 pixel-wise L2,而是通过 discriminator 学习更高级的真实感判别。

但是 GAN 的主要问题是训练不稳定:

text
Bad convergence
Mode collapse
Discriminator too strong / too weak
No explicit likelihood

与 VAE 对比:

模型优点问题
AE重建简单,特征学习有效latent space 不连续,不适合生成
VAElatent space 连续,可采样,有概率解释容易 blurry
GAN图像锐利,视觉质量高训练不稳定,mode collapse
Diffusion训练稳定,质量高,多样性强推理慢,计算量大

重要程度:★★★★★


5. CycleGAN 与 StyleGAN

5.1 CycleGAN

CycleGAN 解决的是 unpaired image-to-image translation。

例如真实照片域 和 Van Gogh 风格域

它使用两个 generator:

和 discriminator,用于判断生成图像是否属于目标域。

Cycle consistency loss:

直觉:从 翻译到 后,再翻译回 ,应该恢复原图。

重要程度:★★★☆☆

5.2 StyleGAN

课件只简要提到 StyleGAN。复习时需要知道其核心思想是把 latent code 映射到 style space,通过逐层 style modulation 控制图像属性。

重要程度:★★☆☆☆


6. Diffusion Model:把复杂生成拆成逐步去噪

6.1 Diffusion 的核心思想

Diffusion Model 分成两个过程:

Forward diffusion process:逐步向真实数据加入噪声,破坏结构。

Reverse diffusion process:从噪声开始,逐步去噪,重建数据。

核心思想:

也就是把复杂映射拆成多个可管理步骤。

重要程度:★★★★★

6.2 Forward Diffusion Process

课件给出的 forward process 类似:

一般形式:

其中:

常见 DDPM 写法是:

符号含义:

是真实图像; 是第 步加噪后的图像; 是 noise schedule; 是 Gaussian noise; 是总扩散步数。

随着 增大:

重要程度:★★★★★

6.3 Reverse Diffusion Process

反向过程从噪声开始:

逐步恢复:

课件给出的反向更新形式为:

其中:

符号含义:

是神经网络预测的噪声; 是网络参数; 是随机项,用于增加采样多样性; 是从第 1 步到第 步的累计保留信号比例。

直觉:

重要程度:★★★★★


7. Stable Diffusion 与 Latent Diffusion Model

7.1 为什么不直接在 Pixel Space 生成?

直接在像素空间生成图像计算量巨大。例如高分辨率图像:

维度很高,扩散模型每一步都在这个空间中去噪,会非常慢。

Latent Diffusion 的解决方案是:

text
Image x
  ↓ Autoencoder Encoder
Latent z
  ↓ Diffusion U-Net denoising in latent space
Denoised latent z_hat
  ↓ Autoencoder Decoder
Generated image

核心改进:

重要程度:★★★★★

7.2 Stable Diffusion 的组成

Stable Diffusion / LDM 主要包含三部分:

第一,Autoencoder,把图像压缩到 latent space 并从 latent 重建图像。

第二,Denoising U-Net,在 latent space 中逐步预测噪声并去噪。

第三,Condition encoder,例如 text encoder,用 cross-attention 把 prompt 信息注入 U-Net。

Cross-attention 的作用是让 U-Net 在每一步去噪时“看见文本条件”。

重要程度:★★★★★


8. ControlNet:从文本控制到空间控制

8.1 Text Prompt 的局限

文本很难精确描述空间结构,例如:

text
角色的具体姿态
房间的透视线
物体边缘
深度关系

因此仅靠 text prompt 很难实现严格的空间控制。

8.2 ControlNet 的核心机制

ControlNet 的思想是锁住 pretrained diffusion model,同时添加一个可训练的控制分支。

它可以输入视觉条件,例如:

条件控制内容
OpenPose人体骨架和姿态
Canny Edge边缘和轮廓
Depth Map三维空间布局
Semantic Map语义区域结构

课件提到 Zero Convolution:

Zero Conv 是 convolution,权重和 bias 初始化为 0。

初始训练时:

所以:

这保证一开始不会破坏原始 diffusion model 的能力。

同时,即使权重初始化为 0,梯度仍然可以更新,因此 ControlNet 可以逐渐学习控制信号。

重要程度:★★★★★


9. 3D Reconstruction:从多视角图像到三维场景

9.1 NeRF 的问题定义

NeRF 要解决的问题是:

给定一组多视角图片,学习一个连续的三维场景表示,并从新视角渲染图像。

NeRF 用神经网络表示一个 radiance field:

其中:

是三维空间点坐标; 是 viewing direction; 是颜色; 是 volume density。

重要程度:★★★★★

9.2 NeRF 的基本流程

text
Camera ray

Sample points along ray

MLP predicts color c and density sigma

Volume rendering accumulates colors

Compare rendered pixel with ground truth pixel

Optimize MLP

核心是 differentiable volume rendering。

9.3 Volume Rendering 公式

对于一条 ray:

其中:

是 camera origin; 是 ray direction; 是沿射线的深度参数; 是射线上第 个三维点。

NeRF 预测:

体渲染的连续形式为:

其中 transmittance:

符号含义:

是该 ray 渲染出的像素颜色; 是 near 和 far bounds; 表示光线从相机到 位置之前没有被遮挡的概率; 是该点处的密度; 是该点颜色。

直觉:

重要程度:★★★★★

9.4 NeRF 的优点与瓶颈

优点:高质量、连续场景表示、新视角合成效果好。

瓶颈:渲染慢,因为每条 ray 都要采样很多点并跑 MLP。

text
High quality
but
painfully slow due to dense ray sampling

重要程度:★★★★★


10. 3D Gaussian Splatting:显式表示 + 实时渲染

10.1 为什么需要 3DGS?

课件对比了多种 3D 表示:

表示优点问题
Point Cloud简单、易编辑稀疏,视觉质量差
Voxel规则结构内存巨大
Mesh连续表面固定拓扑,优化困难
SDF拓扑灵活高频纹理困难
NeRF高质量渲染慢
3DGS高质量、显式、实时、可微需要大量 Gaussian 和优化策略

3DGS 的核心优势:

text
Real-time high-fidelity rendering
Explicit representation
Differentiable optimization

重要程度:★★★★★

10.2 3DGS Pipeline

完整流程:

text
Multi-view images

Structure-from-Motion

Camera poses + sparse point cloud

Initialize 3D Gaussians

Optimize Gaussian parameters

Adaptive densification / pruning

Tile-based rasterization

Real-time rendering

重要程度:★★★★★


11. SfM:3DGS 的初始化来源

11.1 SfM 的目标

Structure-from-Motion 的目标是从多张 2D 图像中估计:

以及 sparse 3D points。

其中:

是 camera intrinsic matrix; 是 camera rotation; 是 camera translation。

最终输出:

text
Camera poses + sparse point cloud

这是 3DGS 的初始 skeleton。

重要程度:★★★★☆

11.2 SfM 的流程

text
Feature extraction

Feature matching

Geometric verification

Image registration

Triangulation

Bundle adjustment

Feature matching 使用 SIFT 等局部特征。问题是会有大量 outliers。

Geometric verification 使用 epipolar geometry 和 RANSAC 过滤错误匹配。

PnP 用已有 3D points 和新图像中的 2D observations 估计新相机位姿。

Triangulation 用多视角射线交会估计 3D 点。

Bundle Adjustment 联合优化所有 camera poses 和 3D points,使 reprojection error 最小。

BA 目标:

符号含义:

是第 张图中第 个 3D 点的观测像素; 是第 个 3D 点; 是相机投影函数; 是第 个相机的外参和内参。

重要程度:★★★★☆


12. 3D Gaussian Primitive

12.1 1D Gaussian

一维高斯分布:

符号含义:

是均值,决定中心位置; 是方差,决定分布宽度; 是标准差。

重要程度:★★★★☆

12.2 3D Gaussian

三维高斯分布由 mean vector 和 covariance matrix 控制:

其中:

是空间点; 是 Gaussian 中心; 是 covariance matrix,控制 ellipsoid 的大小、形状和方向。

3DGS 中每个 Gaussian primitive 包含:

其中:

是位置; 是形状与方向; 是 opacity;SH 是 spherical harmonics coefficients,用于 view-dependent color。

重要程度:★★★★★


13. 3DGS 中的颜色:Spherical Harmonics

如果每个 Gaussian 只存一个固定 RGB:

那么从任何视角看颜色都一样。

但真实世界中存在高光、反射和视角相关颜色,因此颜色应该是 viewing direction 的函数:

Spherical Harmonics 将方向相关颜色分解为基函数加权和:

符号含义:

是 viewing direction; 是 spherical harmonics basis function; 是每个 basis 的 RGB coefficient; 是最高阶数。

课件提到 3DGS 通常使用 degree 3,因此每个颜色通道需要:

个系数,RGB 共:

个参数。

重要程度:★★★★★


14. Covariance Optimization:为什么要分解?

14.1 问题:直接优化协方差矩阵会失效

有效的 covariance matrix 必须满足:

即 positive semi-definite。

如果直接用梯度下降更新:

不保证更新后的 仍然是合法 covariance matrix。

这会导致矩阵不可逆、渲染异常或程序崩溃。

重要程度:★★★★★

14.2 解决:用 scale 和 rotation 分解 covariance

3DGS 使用分解形式保证合法性:

常见写法是:

其中:

是 scale matrix,通常为对角矩阵; 是 rotation matrix; 是最终 covariance matrix。

只要 scale 为正, 是合法旋转矩阵,则 必然是 positive semi-definite。

由于直接优化 rotation matrix 容易出现问题,例如 gimbal lock,3DGS 使用 quaternion 表示旋转。

重要程度:★★★★★


15. 3D Gaussian Optimization

3DGS 优化的参数包括:

其中:

是 Gaussian 中心位置; 是 scale; 是 rotation; 是 opacity;SH 是 spherical harmonics color coefficients。

训练目标通常是让渲染图像接近真实图像:

虽然课件没有详细展开这个 loss,但复习时应知道 3DGS 原论文常用 L1 + SSIM 类似组合。

重要程度:★★★★★


16. Adaptive Control:Densification / Split / Prune

3DGS 不只是优化已有 Gaussians,还会动态调整 Gaussian 数量。

16.1 Densification

目标是在重建不足的区域增加点。

indicator 是 position gradient:

如果某个 Gaussian 的位置梯度很大,说明该区域当前重建不好,优化器正在努力移动它来拟合结构。

因此需要增加 Gaussian。

16.2 Actions

课件给出三种操作:

操作场景作用
Cloneunder-reconstruction补充缺失几何
Splitover-reconstruction / too large Gaussian拆分大 Gaussian,提高细节
Removeopacity below threshold删除无贡献 Gaussian

重要程度:★★★★★


17. 3DGS Rendering:Splatting + Tile-based Rasterization

17.1 Forward Rendering Process

3DGS 的渲染过程:

text
3D Gaussians

Project to 2D image plane

Splatting: become 2D ellipses

Divide image into tiles

Duplicate Gaussians overlapping multiple tiles

Sort by depth front-to-back

Alpha blending

重要程度:★★★★★

17.2 什么是 Splatting?

Splatting 的直觉是:把一个 3D soft colored snowball 投影到 2D screen 上,形成一个椭圆状的 splat。

数学上是:

17.3 Alpha Blending

最终颜色按深度顺序累积:

其中:

符号含义:

是最终像素颜色; 是第 个 Gaussian 的颜色; 是第 个 Gaussian 的 opacity; 是前面所有 Gaussian 没有遮挡该 Gaussian 的剩余透射率。

直觉:

重要程度:★★★★★


18. 方法论演进总表

阶段方法解决什么前一方法问题新方法如何修复
表征学习AE无监督学习 latent feature不能生成新样本只能重建,不保证 latent 连续
概率生成VAE让 latent 可采样AE latent space 有空洞KL regularization 逼近 Gaussian prior
对抗生成GAN提高视觉锐利度VAE 平均化、模糊discriminator 学习真实感判别
稳定高质量生成Diffusion高质量、多样生成GAN 训练不稳定多步去噪,训练更稳定
高效图像生成LDM / Stable Diffusion降低扩散计算成本pixel-space diffusion 太慢在 latent space 去噪
可控生成ControlNet精确控制姿态/边缘/深度text prompt 空间控制弱加入视觉条件分支
3D 神经表示NeRF连续三维场景表示传统 3D 表示有限MLP 表示 radiance field
实时 3D 渲染3DGS高质量实时渲染NeRF ray sampling 慢显式 Gaussian + rasterization

19. 期末重点排序

最高优先级,必须掌握:

VAE objective、KL divergence、reparameterization trick、VAE blurry 原因、GAN minimax objective、Diffusion forward/reverse intuition、Stable Diffusion latent-space denoising、ControlNet zero conv、NeRF radiance field 与 volume rendering、3DGS Gaussian parameters、covariance decomposition、alpha blending。

中等优先级:

FCN、Fast R-CNN、Mask R-CNN、YOLO output shape、DETR set prediction、CycleGAN cycle consistency、SfM pipeline、Bundle Adjustment。

较低优先级:

StyleGAN 细节、Video generation 具体模型、World Models 具体链接、DreamFusion 细节。课件中这些更偏前沿介绍。


20. 本章一句话总结

本章的底层逻辑是:视觉模型从“识别图像中的结构”进化到“生成图像分布”,再进一步进化到“用可微、可渲染、可优化的方式表示三维世界”;每一次方法升级,本质都在修复前一代方法在连续性、真实性、稳定性、可控性或效率上的瓶颈。

Static academic notes built with VitePress and KaTeX.