- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 引言
- 深度估计问题的定义
- Depth Anything 系的概念
- 立体与 MVS 概览
- 3D 表示与渲染:从 NeRF 到 3D 高斯溅射
- 再谈体渲染
- 表示方式的权衡
- 动态场景与时间的问题
- 学习与数据的视角
- 3D 重建流水线
- 应用领域
- 连接深度与 3D
- 常见的困难场景
- 如何解读基准测试
- 优势与局限汇总
- 结语
- 参考资料
- 小测验
引言
2D 图像是把 3D 世界压平之后的结果。相机丢掉了一次深度信息,而我们要设法把这个失去的维度找回来。3D 视觉大致可以分成两个问题。一个是深度估计——"每个像素有多远";另一个是 3D 表示与渲染——"能否从任意视角重新画出这个场景"。
这两个问题各自需要不同的工具。深度估计是从单台相机的图像里推断距离,这和人只用一只眼睛也能感知远近的能力很像。3D 表示与渲染则是汇集多个视角的信息,把整个场景存下来,再从想要的角度重新绘制。本文依次沿着这两个问题展开,看看每个领域的代表性想法是如何一路演进的。
本文以架构原理为中心,把这两条线索梳理清楚。内容涵盖单目深度估计及其代表系列、立体与多视图的概览,以及从 NeRF 到 3D 高斯溅射这条实时渲染的演进脉络。由于 3D 视觉的 SOTA 也在快速变化,本文不对具体模型的排名或数值下断言,而是以概念为中心来说明。
先把一个术语交代清楚。深度图常被称为"2.5D"。它记录了每个像素的距离,但无法得知相机背后或被遮挡的部分,所以并不是完整的 3D。相比之下,NeRF 或高斯溅射构建出的是能够从任意视角重新绘制的 3D 表示。这正是本文把"深度"和"3D 表示"区分开来的原因。二者相互关联,但所承载信息的完整程度不同。
深度估计问题的定义
深度估计是预测图像中每个像素到相机的距离这一任务。按输入构成大致可以分为以下几类。
- 单目深度(monocular depth):只用一张图像估计深度。这从根本上是一个病态(ill-posed) 问题,因为同一张 2D 图像可能来自多个不同的 3D 场景。模型要靠学到的先验知识(透视、物体大小、纹理、遮挡关系等)来填补这种模糊性。
- 立体(stereo):利用两台相机的视差(disparity)做三角测量来计算深度。由于几何关系明确,这是一个相对良定义的问题。
- 多视图立体(MVS):利用多个视角的图像重建场景的 3D 结构。
深度估计的输入构成 (概念)
单目: [1 张图像] --> 靠先验推断深度 (存在模糊性)
立体: [左][右] --> 靠视差做三角测量 (几何明确)
MVS: [多个视角] --> 靠多视图配准重建 3D
相对深度与度量深度
单目深度里经常出现的一组区分如下。
- 相对深度(relative depth):给出"A 比 B 更近"这样的顺序、比例信息,没有绝对的米制数值。对场景理解、编辑而言往往已经够用。
- 度量深度(metric depth):给出"这个像素是 3.2 米"这样带有实际物理单位的深度。对机器人、测量这类需要绝对距离的应用很重要,但只有结合相机焦距之类的信息才可靠。
单目要稳定地得到度量深度,比得到相对深度更难,原因在于尺度模糊性。实务中常见的做法是先得到相对深度,再用额外信息校正尺度,或者直接针对度量深度做训练与标定。
深度依赖的线索
单目模型在"猜测"深度时依赖一系列视觉线索。这些线索和人只用一只眼睛也能感知远近的原理没有太大差别。
- 透视(perspective):平行线在远处汇聚成一点的性质。在道路、走廊这类场景中是很强的线索。
- 相对大小:同类物体中,看起来更小的一方被推断为更远。
- 遮挡(occlusion):A 挡住 B,说明 A 在前面。这提供了顺序信息。
- 纹理梯度:表面纹理随距离增加而看起来更密的性质。
- 明暗与阴影:光影的方向暗示了表面的形状和距离。
模型会从数据中自行学习并综合这些线索。因此在训练数据里没出现过的陌生场景(例如特殊尺度、反光表面)中,线索会失准,误差也会随之变大。
Depth Anything 系的概念
近来单目深度领域受到关注的一个趋势是用大规模数据训练的通用深度模型。Depth Anything 系可以理解为这一方向的代表性概念。把核心思路概括一下,大致如下。
- 大规模、多样化数据:由于带标注的深度数据成本高昂,业界普遍采用利用大量无标注图像的学习策略(例如让学生模型学习教师模型的预测),以此在各种场景中获得泛化能力。
- 强大的骨干表示:在能很好地表示图像整体特征的骨干网络之上叠加深度预测头,从而对没见过的场景也能给出合理的深度。
- 面向零样本泛化:目标不是在特定数据集上过拟合,而是得到能够直接跨多个领域使用的相对深度。
通用单目深度模型的训练 (概念)
大量无标注图像
|
[把教师模型的深度预测当作标签使用]
|
训练强骨干网络 + 深度头
|
结果: 对没见过的场景也能给出合理的相对深度
(度量深度还需要额外信息/标定)
需要注意的是,这类模型并不保证"任何场景下都完美的度量深度"。相对深度的质量可能令人印象深刻,但在绝对尺度、罕见场景、反光/透明表面这类困难情形下误差可能变大。具体表现因数据和设置而异,以概括的方式来理解会更稳妥。
这一系模型在实务中之所以有吸引力,是因为只需"一台相机、一张图像"这样的最小输入就能得到不错的深度。它不像立体那样需要两台精密对齐的相机,也不像 MVS 那样需要多视角拍摄。因此它很适合为已有的影像、照片事后补上深度,或者让只有单个相机的设备获得 3D 感知能力。但这种便利是有代价的——绝对尺度的不确定性始终存在,在需要精确距离的场合仍然需要标定或额外传感器。
立体与 MVS 概览
如果说单目依赖的是先验知识,那么立体和 MVS 直接利用的是几何。
- 立体匹配:在左右图像中找到同一个点(对应点),求出视差,再用视差、相机基线、焦距做三角测量得到深度。深度学习方法通过学习来改进对应点搜索和匹配代价的计算。
- MVS(Multi-View Stereo,多视图立体):利用多个视角的图像和相机姿态重建场景的稠密 3D 结构。用数百张旅游照片把一座建筑重建成 3D,是这类方法的代表任务。
- SfM(Structure from Motion,运动恢复结构):从多张图像中联合估计相机姿态和稀疏 3D 点。它常常是 MVS 及 3D 重建流水线的前置步骤。
- 深度补全(depth completion):把稀疏的深度测量(例如 LiDAR 点)与图像结合,生成稠密的深度图。这是一种把传感器和学习结合起来的实用方法。
基于几何的方法精度高,但在无纹理表面、反光、遮挡区域寻找对应点会很困难。这正是不断有人尝试把单目(先验)和几何(立体/MVS)结合起来的原因。
用一句话概括两种方式的性格差异:单目是"靠见过的东西去猜",几何是"从多个角度测量再计算"。单目在数据中没出现过的陌生场景中会不稳,但输入最少;几何精确,但需要能找到对应点的条件(充足的纹理、有重叠的视角)。因此近来的自然方向是,用单目强大的先验去补上几何的空白(比如无纹理区域),再用几何精确的尺度去修正单目的模糊性——二者相互补足。
单目 对比 几何 (性格比较)
单目: 靠见过的东西去猜 --> 输入最少,面对陌生场景较弱
几何: 从多个角度测量再计算 --> 精确,需要满足对应点条件
结合: 单目补上空白,几何校正尺度
3D 表示与渲染:从 NeRF 到 3D 高斯溅射
如果说深度是"每个像素的距离",那么 3D 表示与渲染就是"把整个场景装下来,再从任意视角重新画出来"的问题。彻底改变这一领域的两大潮流是 NeRF 和 3D 高斯溅射。
NeRF:将坐标映射为颜色与密度
NeRF(Neural Radiance Fields,神经辐射场)用单一神经网络表示整个场景。它学习一个函数,输入 3D 坐标和视线方向,输出该点的颜色与密度。渲染图像时,从每个像素射出一条光线,沿光线采样多个点,用神经网络求出这些点的颜色与密度,再把它们累积(体渲染)得到最终颜色。
NeRF 渲染 (概念)
像素 --> 向场景内发射一条光线(ray)
|
沿光线采样多个点
|
每个点: [神经网络](坐标, 方向) --> (颜色, 密度)
|
用体渲染累积颜色 --> 像素颜色
- 优势:新视角合成(novel view synthesis)的质量非常高,表示是连续的。
- 局限:渲染时每条光线都要多次评估神经网络,因此很慢。训练与推理开销大,是早期 NeRF 的代表性弱点。此后出现了不少加速方面的研究。
NeRF 之所以重要,是因为"单个神经网络就能装下整个场景"这个想法本身是全新的。它证明了不必显式存储点或网格,也能以函数的形式表示场景,并合成任意视角。这个想法成了此后大量后续研究的起点,而在这条脉络中,正面瞄准速度问题的正是高斯溅射。
3D 高斯溅射:以显式表示实现实时渲染
3D 高斯溅射(3D Gaussian Splatting)不用神经网络函数来表示场景,而是显式地用大量 3D 高斯体(椭球形的半透明颗粒) 的集合来表示。每个高斯体拥有位置、大小与形状(协方差)、颜色、不透明度等属性。渲染时把这些高斯体投影(splat)到屏幕上,快速合成出图像。
3D 高斯溅射 (概念)
场景 = 大量 3D 高斯体(位置, 形状, 颜色, 不透明度)
|
渲染: 把高斯体投影(splat)到屏幕上,排序并合成
|
训练: 把渲染结果与真实图像对比,
优化每个高斯体的属性
|
结果: 高质量 + 接近实时的渲染速度
- 核心差异:如果说 NeRF 是把坐标映射为颜色、密度的隐式(implicit) 表示,那么高斯溅射就是直接放置颗粒的显式(explicit) 表示。
- 优势:渲染速度快。由于是把显式的颗粒投影后合成,只要优化得当,就能以接近实时的速度输出高质量视图。编辑、操作也很直观。
- 局限:高斯体数量一多,内存负担就会很大,处理反光、透明、动态场景仍需要进一步研究。具体的质量与速度因场景和实现而异。
NeRF 与 3D 高斯溅射对比
| 项目 | NeRF | 3D 高斯溅射 |
|---|---|---|
| 表示方式 | 隐式(神经网络函数) | 显式(高斯体集合) |
| 渲染速度 | 相对较慢 | 快(可接近实时) |
| 视图合成质量 | 非常高 | 非常高 |
| 编辑难易度 | 相对困难 | 直观 |
| 内存 | 神经网络权重 | 与高斯体数量成正比 |
表中的速度、质量只是一般性的倾向,实际数值会因场景复杂度、分辨率、实现方式而有很大差异。
再谈体渲染
要理解 NeRF 和高斯溅射,需要再深入看一下"如何把多个点的颜色合并成一个像素颜色"这一渲染过程。
核心直觉是"前面的不透明物体会挡住后面的东西"。光线沿途经过多个点,每个点都有颜色和"有多不透明"这两个属性。如果前面的点不透明,后面点的颜色几乎看不见;反过来,如果前面透明,后面就会透出来。最终的像素颜色,就是反映这种前后遮挡关系、把各点颜色做加权求和的结果。
体渲染的直觉 (概念)
光线: 相机 --> 点1 --> 点2 --> 点3 --> ...
每个点: (颜色, 不透明度)
前面不透明 --> 后面的点几乎看不见
前面透明 --> 后面的点会透出来
像素颜色 = 反映前后遮挡关系的颜色加权和
NeRF 是用神经网络当场计算这个"每个点的颜色、不透明度"。因此表示连续而平滑,但每条光线都要多次调用神经网络,所以慢。高斯溅射的每个高斯体本身就已经把颜色和不透明度作为属性携带在身上,所以不需要调用神经网络,只需投影、排序、合成即可。这个差异正是速度差距的根本原因。
表示方式的权衡
隐式表示(NeRF 系)和显式表示(高斯溅射)各自的优缺点都很鲜明。
- 隐式表示:把场景装进单一函数里,内存紧凑,而且由于连续,对平滑表面的表示很有利。代价是渲染时要大量调用该函数,速度慢,而且很难只挑出某一部分来编辑。
- 显式表示:直接放置颗粒(或点、体素、网格),所以渲染快,移动或删除某个特定颗粒这样的编辑也很直观。代价是颗粒数量一多内存就会变大,而且要把空白区域填得细密可能会比较困难。
表示方式的谱系 (概念)
隐式(函数) <-----------------------> 显式(颗粒/点)
| |
紧凑·连续 快·易编辑
渲染慢 内存负担
(NeRF 系) (高斯溅射)
有意思的是,这两者并非互斥。把两种表示的优点结合起来的混合尝试一直在推进,而"哪种表示才是正确答案"则取决于应用的需求(速度、可编辑性、内存、质量)。
动态场景与时间的问题
到目前为止讨论的 NeRF 和高斯溅射,基本上都假设场景是"静止的"。也就是说,在从多个视角拍照的过程中,场景不能发生变化。但现实中的很多场景是会动的——人在走动,树叶在摇晃,水在流动。
处理动态场景的方法大体上都是给表示加上"时间"这一维度。
- 形变场(deformation field):先固定一个作为基准的静态场景,再单独学习它随时间如何形变。
- 时间条件化:让表示接收时间输入,使同一个位置在不同时刻能输出不同的颜色和形状。
动态场景在数据层面也很棘手。要从多个角度同时拍摄一个运动中的目标需要多台相机,而如果只用一台相机,视角和时间就会纠缠在一起,让问题变得更难。这一领域正在被积极研究,具体方法和性能变化很快,在概念层面理解会更稳妥。
学习与数据的视角
- 深度训练数据:度量深度标签来自 LiDAR、深度传感器等,但成本高昂。因此业界广泛采用相对深度、合成数据、自监督(立体或视频一致性)信号等策略。合成数据尤其能免费提供完美的深度标签,但要处理与真实世界之间的域差(domain gap)是一大课题。
- 3D 重建数据:NeRF 和高斯溅射需要多视角图像以及精确的相机姿态。姿态估计(SfM)的质量会对最终结果产生很大影响。
- 泛化对比专精:精细地重建某一个场景,和直接泛化到没见过的场景,是两个不同的目标。具体选择取决于应用场景。
3D 重建流水线
在概念层面跟随一遍用多张照片重建 3D 的典型流水线,有助于理解每个阶段为什么是必要的。
从照片到 3D (概念流水线)
多个视角的照片
|
[特征提取/匹配] 在每张照片中找特征点,建立照片之间的对应关系
|
[SfM] 联合估计相机姿态 + 稀疏 3D 点
|
[稠密重建] 用 MVS 或 NeRF/高斯溅射生成稠密表示
|
结果: 3D 点云/网格,或可渲染的表示
- 特征提取/匹配:在每张照片中找出突出的特征点,并把不同照片中相同的点连接起来。这种对应关系是此后一切计算的基础。
- SfM(Structure from Motion):根据对应关系,联合求解每张照片是在哪里拍摄的(相机姿态)以及稀疏的 3D 点。
- 稠密重建:一旦姿态已知,就可以用 MVS 生成稠密点云,或者用 NeRF/高斯溅射学习出可渲染的表示。
这里经常被忽略的一点是,姿态估计的质量决定了最终结果。如果相机姿态不准确,无论用多好的渲染方法,结果都会变得模糊或错位。因此在实务中,拍摄阶段(足够的重叠、多样的角度、尽量减少抖动)非常重要。
应用领域
- 机器人:深度估计支持避障、抓取、导航。度量深度和实时性都很重要。机器人常常把深度传感器(LiDAR 等)和单目估计结合起来,让二者互相补足。
- AR/VR:要把虚拟物体对齐到真实空间中,需要深度和 3D 结构。高斯溅射的实时渲染对沉浸式应用很有优势。虚拟物体被真实物体挡住这类遮挡处理,同样需要深度信息。
- 3D 重建与数字孪生:用照片把空间、物体重建成 3D,用于仿真、测绘、保存。文物保护、施工现场记录等场景都会用到。
- 内容创作:把实景拍摄的场景装进 3D,用于自由视角视频和特效制作。拍摄之后还能自由改变相机路径。
- 医疗与工业检测:从内窥镜、拍摄影像中重建 3D 结构,辅助诊断和测量。准确性和可靠性尤为重要。
- 自动驾驶:对周边环境深度、3D 结构的理解,直接关系到行驶安全。融合相机、LiDAR、雷达是常见做法。
不同应用的需求各不相同。机器人优先考虑绝对距离和延迟,内容创作优先考虑视觉质量,这种优先级差异会左右方法的选择。即便同属"3D 视觉",自动驾驶对实时安全性的要求和文物扫描对精细品质的要求,也会导向完全不同的设计。
连接深度与 3D
深度估计和 3D 表示并非彼此独立,而是相互关联的。深度图记录的是每个像素的距离,只要知道相机信息,就能把它还原成 3D 点(反投影)。把多个视角的深度图配准起来,就会得到稠密点云,这正是 3D 重建的起点。
从深度到 3D (概念)
深度图(每个像素的距离) + 相机信息
|
反投影: 把像素还原成 3D 点
|
配准多个视角的点
|
稠密 3D 点云 --> 转换为网格/表示
反方向同样成立。从一个构建良好的 3D 表示出发,可以渲染出任意视角的深度图。就这样,深度(2.5D)和 3D 表示彼此往返,近来的系统也常常把二者放在一起处理。把单目深度强大的泛化能力和多视图 3D 的几何精度结合起来的尝试,正是其中的代表趋势。
常见的困难场景
无论是深度估计还是 3D 重建,以下这些情形都普遍棘手。理解它们为什么困难,有助于解读结果、预判失败。
- 反光·透明表面:镜子、玻璃、水面呈现出来的颜色,不是表面本身的颜色,而是反射、透射自别处的颜色。对应点匹配和颜色/密度学习都会因此陷入混乱。
- 无纹理区域:像白墙这样没有花纹的表面,没有线索可以用来判断"这是同一个点",因此立体和 MVS 都会遇到困难。
- 细长结构与边界:铁网、头发、树枝这类细长而复杂的结构,无论是表示还是重建都很棘手。
- 极端尺度:非常近或非常远的物体线索都很弱,误差会随之变大。这也和单目的度量尺度问题纠缠在一起。
- 光照变化:拍摄过程中光照发生变化,会让同一个点的颜色不一致,动摇多视图配准。
困难场景及其原因 (概念)
反光/透明 --> 看到的颜色不是表面本身 --> 匹配/学习混乱
无纹理 --> 没有对应点线索 --> 立体/MVS 困难
细长结构 --> 表示分辨率受限 --> 断裂或模糊
极端尺度 --> 线索弱 --> 深度误差扩大
光照变化 --> 颜色不一致 --> 多视图配准动摇
遇到这类情形时,重要的是意识到问题本身就难,而不是简单归咎于"模型不好"。实务中通常靠额外传感器(深度传感器)、改善拍摄条件、以及多种方法的融合来缓解这些问题。
如何解读基准测试
阅读深度、3D 相关论文里的数值时,有几点需要留意。
- 相对还是度量:查看深度精度时,首先要确认基准是相对深度还是度量深度。二者的难度不同。
- 数据集领域:要看数据集的特性(室内、室外、驾驶场景等)是否和自己的应用相似。在室内表现好的模型,在室外未必如此。
- 视图合成指标的语境:渲染质量指标会因评估视角与训练视角之间的距离而有很大差异。离训练视角较近的视角,通常更容易得高分。
在只比较数字之前,养成同时追问"这是在什么条件下、以什么为基准测出来的数值"的习惯很重要。
优势与局限汇总
| 方法 | 优势 | 局限 |
|---|---|---|
| 单目深度(通用) | 单张图像即可即时输出,泛化能力强 | 度量尺度模糊,困难表面上误差大 |
| 立体/MVS | 基于几何,精度高 | 在无纹理、反光、遮挡区域较脆弱 |
| NeRF | 视图合成质量高,表示连续 | 渲染慢(加速研究仍在推进) |
| 3D 高斯溅射 | 接近实时的渲染,编辑容易 | 内存负担大,动态/透明场景是难题 |
结语
3D 视觉可以看作两条"找回失去维度"的努力路线。深度估计瞄准的是每个像素的距离,3D 表示与渲染瞄准的是从任意视角重现整个场景的能力。单目深度靠先验知识填补模糊性,立体和 MVS 靠几何获得精度,而 NeRF 和高斯溅射则通过表示方式(隐式对比显式)的选择,在质量和速度之间取得平衡。
尤其是从 NeRF 到 3D 高斯溅射的转变,是把"高质量但慢"的渲染推向"高质量且接近实时"渲染的代表性案例。理解这一脉络的思路方式,就能更快地为未来出现的新表示、新模型找到定位。
想留给实务工作者的建议是这样的:与其去寻找"最好的 3D 方法"这样一个绝对答案,不如先确定自己的应用需要什么(相对深度是否够用还是需要度量深度、是否需要实时、是否需要编辑、场景是静态还是动态)。一旦这些需求确定下来,在单目深度、立体、MVS、NeRF、高斯溅射这些部件中挑选并组合出合适方案的工作,就会清晰得多。3D 视觉的困难大多是"能放弃什么"的问题,把这个取舍想清楚,正是构建一个好系统的起点。
参考资料
- NeRF 论文 "Representing Scenes as Neural Radiance Fields": arxiv.org/abs/2003.08934
- 3D Gaussian Splatting 论文: arxiv.org/abs/2308.04079
- 3D Gaussian Splatting 项目页面: repo-sam.inria.fr/fungraph/3d-gaussian-splatting
- Depth Anything 论文: arxiv.org/abs/2401.10891
- MiDaS(通用单目深度)论文: arxiv.org/abs/1907.01341
- COLMAP(SfM/MVS)项目: colmap.github.io
- Vision Transformer(ViT)论文: arxiv.org/abs/2010.11929
- Depth Anything 代码: github.com/LiheYoung/Depth-Anything
小测验
Q1: 单目深度估计从根本上是病态(ill-posed)问题的原因是?
因为同一张 2D 图像可能来自多个不同的 3D 场景。深度信息在投影过程中丢失,所以模型必须靠学到的先验知识来填补这种模糊性。
Q2: 相对深度与度量深度的区别是?
相对深度只给出顺序、比例(A 比 B 更近),没有绝对单位。度量深度给出实际物理单位的距离,但在单目条件下,由于尺度模糊性,获取难度更大。
Q3: Depth Anything 系所追求的学习方向是?
利用大量无标注图像(例如让学生模型学习教师模型的预测),在强骨干网络之上叠加深度头,从而得到即便面对没见过的场景也能很好泛化的相对深度。
Q4: 立体比单目在几何上更良定义的原因是?
因为它是用两台相机的视差做三角测量。一旦找到对应点,就能直接用视差、相机基线、焦距计算深度,模糊性很小。
Q5: NeRF 的表示方式及其局限是?
它是把坐标和视线方向映射为颜色、密度的隐式(神经网络)表示。视图合成质量很高,但由于每条光线都要多次评估神经网络,渲染较慢。
Q6: 3D 高斯溅射与 NeRF 的核心差异是?
它不是用神经网络函数(隐式)表示场景,而是用大量 3D 高斯体(显式颗粒)的集合来表示。把这些高斯体投影到屏幕上合成,因此渲染快,编辑也直观。
Q7: 举出 3D 高斯溅射的一个局限?
高斯体数量一多,内存负担就会变大。此外,反光、透明、动态场景的处理仍需进一步研究,具体的质量和速度因场景与实现而异。
Q8: 应用不同导致 3D 视觉方法选择不同的例子是?
机器人优先考虑绝对距离(度量深度)和低延迟,而内容创作优先考虑视觉质量。这种优先级差异会左右选择单目、立体、NeRF 还是高斯溅射。
Q9: 体渲染中前方点的不透明度为何重要?
如果前面不透明,后面点的颜色几乎会被挡住;如果前面透明,后面就会透出来。最终的像素颜色,是反映这种前后遮挡关系、把各点颜色加权求和的结果。
Q10: 隐式表示与显式表示的代表性权衡是?
隐式(NeRF)紧凑、连续,但渲染慢、编辑困难。显式(高斯溅射)快、编辑直观,但颗粒数量一多,内存负担就会变大。
Q11: 3D 重建中相机姿态估计(SfM)的质量为何重要?
因为姿态一旦不准确,无论用多好的渲染方法,结果都会模糊或错位。因此拍摄阶段的重叠程度、角度、抖动管理会左右最终质量。
Q12: 反光·透明表面在深度与 3D 任务中困难的原因是?
因为镜子、玻璃、水面呈现的颜色不是表面本身的颜色,而是反射、透射自别处的颜色。这会让对应点匹配和颜色/密度学习都陷入混乱。
Q13: 把深度图还原成 3D 点的过程是?
深度图记录的是每个像素的距离,只要知道相机信息,就能把每个像素反投影成 3D 空间中的点。配准多个视角的点,就能得到稠密的 3D 点云,成为重建的起点。