想象你是一位数字遗产保护师,要为一座百年老宅建立完整的三维档案。你举起相机,郑重地对准正门按下了快门——照片很美,但屋檐离地多高?窗台向外探出多少?门廊有多深?全都看不出来。单张照片就像把立体世界压成了一张薄饼,丢掉了最珍贵的“厚度”。于是你请来五位朋友,分别站在正门、左墙、右墙、屋顶和院子各拍一张。这一叠照片,就是“多视图”。多视图立体视觉(Multi-View Stereo,简称 MVS)要做的,就是把这叠二维薄饼“重新吹回”一座可以转着看、可以量尺寸、可以走进去参观的三维房子。它先算出每张照片是在哪儿、朝哪儿拍的(姿态标定),再让每个像素在别的照片里找到“同一个自己”(匹配与深度估计),最后把所有照片的深度信息相互印证、剔除错误,合成为密密麻麻的三维点云。整个过程,就像一群画家围着老宅各画一角,再把所有草图按透视对齐,拼出一幅完整立体图。这篇文章,就用这个故事带你从零看懂 MVS 的原理、流程、算法与落地场景。

岗位关联

对 AI 从业者而言,MVS 是空间智能与数字孪生的底层能力之一。掌握它的原理与权衡,是进入 3D 场景理解方向的必修课,也是理解 NeRF、3DGS 等前沿重建技术的基石。

目录
  1. 可视化演示
  2. 概念与原理:一堆照片如何变回一座立体房子
  3. 完整流程管线:从快门到三维模型要走四步
  4. 关键技术模块:如何让每个像素“找到自己”
  5. 主流方法分类:四种工匠的流派之争
  6. 应用场景领域:老宅档案建成之后
  7. 挑战与趋势:白墙、路人、大宅与工期
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示MVS重建三大核心:多视角采集到深度图生成、平面扫描代价体深度估计、多视图深度图融合为稠密点云,切换查看3D重建全流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

MVS重建核心流程 3个视角采集重叠图像,每个视角生成深度图DM 多张深度图反投影融合为稠密3D点云 Point = R * D + T (反投影) 多视角深度图融合恢复完整场景3D几何结构

概念与原理:一堆照片如何变回一座立体房子

小明要为一座百年老宅建立数字档案。他举起相机,郑重地对着正门按下快门——照片很美,但屋檐离地多高?窗台向外探出多少?门廊有多深?全都看不出来。单张照片就像把立体世界压成了一张薄饼,丢掉了最关键的“厚度”维度。于是小明请来五位朋友,分别站在正门、左墙、右墙、屋顶和院子各拍一张。这一叠照片,就是“多视图”。而多视图立体视觉(Multi-View Stereo,MVS)要做的,就是把这叠薄饼“重新吹回”立体的房子。

MVS 的物理根基叫“三角测量”:同一个三维点,在两个不同位置拍摄的画面里会落在不同的像素上。这个水平错位就叫视差(disparity)。视差越大,说明目标离得越近。小明和朋友们站在不同角度看同一个窗角,窗角在各自照片里的错位量不同,正是这些错位量反推出了每个点的远近。可以说,MVS 就是把“多双眼睛看到的角度差”翻译成“距离”。

MVS 还要与两位“近亲”划清界限。一位是 SfM(运动恢复结构),它只恢复稀疏的特征点,像一张草图骨架;MVS 则要为每个像素都估计深度,输出覆盖整个表面的稠密点云。另一位是单目深度估计——只用一张图“猜”深度,天生存在尺度歧义:远处的小房子和近处的大卡车在照片里可能一样大,单目根本分不清谁远谁近。MVS 用多个视角的几何约束去“量”绝对深度,而不是“猜”。

小明用这个公式把窗角、屋脊、台阶的距离一一算出来,老宅的照片不再只是平面,而是一堆带着真实坐标的三维点——“厚度”终于回来了。

z=f×Bd\displaystyle z = \frac{f \times B}{d}
公式说:物体离相机越远,它在两张照片里的水平错位就越小;只要知道焦距和机位间距,错位量就能直接换算成距离。
  1. f(焦距)相机镜头的“放大倍数”,单位是像素,来自出厂标定。
    ff
  2. B(基线)两个相机光心之间的直线距离,也就是小明和朋友“站得有多开”。
    BB
  3. d(视差)同一个三维点在两张照片中的像素横坐标之差,偏移越大说明离得越近。
    d=xleft−xrightd = x_{\text{left}} - x_{\text{right}}
  4. 整体运算先用基线乘焦距,再除以视差,得到深度。视差趋近于 0 表示目标在无穷远。
    z=f×Bdz = \frac{f \times B}{d}

完整流程管线:从快门到三维模型要走四步

光有公式还不够。小明收齐六张照片,却发现一个大问题:每张照片是在哪儿、朝哪个方向拍的?如果连这个都不知道,“错位量”就没有参考系。于是 MVS 的完整流程像一条流水线,分四步走。

第一步是图像采集与标定。采集时要求照片之间有足够的重叠度,光照尽量一致。标定分为内参(焦距、光心)和外参(位置、朝向)。工业实践中,通常先用 SfM 这类技术从照片本身反推出相机位姿,输出一个稀疏的“骨架点云”,MVS 再由稀疏到稠密继续填充。

第二步是深度图估计。以其中一张照片为参考视角,为它的每个像素在相邻视角中找到匹配,并估计出离相机的距离,生成一张深度图——每个像素的灰度值代表远近。这就是“让每个像素在别的照片里找到自己”的过程。

第三步是深度图融合。多张参考视角各自产出一张深度图,但它们在哪儿、朝哪儿看都不一样,必须统一到一个三维坐标系里合成完整的点云。融合时不能简单取平均,因为不同视角对同一个点的置信度不同:正对墙面拍的视角可信度高,斜着拍到墙边的视角可信度低。

第四步是滤波与优化。融合后的点云往往带有离群点、飞点,就像拼贴画边上的毛边。MVS 会用几何一致性、法向一致性等规则把这些“脏点”剔除,并填补部分小孔。小明把这四步比作六张草图叠在一起对光看:能对齐的地方留下,对不上的地方擦掉,最后得到一张干干净净的立体拼图。

D(p)=∑i=1Nwi(p) di(p)∑i=1Nwi(p)\displaystyle D(p) = \frac{\sum_{i=1}^{N} w_i(p)\, d_i(p)}{\sum_{i=1}^{N} w_i(p)}
这是带权重的深度图融合公式:每个视角对点 p 的深度估计,按各自的置信度加权求平均,可信度高的视角说了算。
  1. d_i(p)(单视角深度值)第 i 个视角对三维点 p 估计出的深度。
    di(p)d_i(p)
  2. w_i(p)(置信度权重)第 i 个视角对 p 的信任程度,通常由一致性校验计算,越可靠的视角权重越大。
    wi(p)w_i(p)
  3. 加权求和(分子)把每个视角的深度估计乘以它的权重再累加,让可靠的估计贡献更多。
    ∑i=1Nwi(p) di(p)\sum_{i=1}^{N} w_i(p)\, d_i(p)
  4. 归一化(分母)除以权重之和,把加权和拉回深度值的正常量纲。
    ∑i=1Nwi(p)\sum_{i=1}^{N} w_i(p)

关键技术模块:如何让每个像素“找到自己”

深度图估计是整个 MVS 的心脏,而它的核心难题是:让一个像素在另一张照片里准确找到“同一个自己”。小明在六张照片里认出同一个窗角,靠的是“长相”——窗角的线条和颜色组合很独特。在算法中,这种“长相”由特征提取器(深度学习时代常用 CNN)来描述。

有了特征,下一步是构建“代价体”(cost volume)。代价体就像一张三维记分牌:对于每个像素 x、每个候选深度 d,记录下“如果这里的深度真是 d,把像素投影到其他视角后,颜色和特征是否对得上”。对得上的代价低,对不上的代价高。深度回归的任务,就是在这张记分牌上找出代价最低的深度。相比传统方法逐个深度暴力搜索,现代 MVS 常用 softmax 加权平均(也叫“软 argmin”),让深度值在离散采样点之间平滑插值。

代价体的致命问题是内存爆炸:维度是长 × 宽 × 深度 × 通道。图像越大、深度采样越密,显存就崩得越快。于是工程师们设计出级联结构(coarse-to-fine,先粗后精)和稀疏代价体,先用粗分辨率缩小搜索范围,再在精细分辨率上微调——好比小明先在照片墙上找到“窗角大概在右上角”,再放大细看。

什么深度才是可信的?答案是“多视图一致性校验”:把估计出的深度反投影回其他视角,比较颜色是否一致。一致性好,说明深度是真的;不一致,说明匹配错误。

小明看着记分牌大笑:“证人互相印证,谎言自然现形。”一致性的价值就在于此——一个错误的深度或许能骗过一张照片,但骗不过六张照片的联合对质。

C(d)=1N∑i=1N∣Ii(xi(d))−Iref(x)∣\displaystyle C(d) = \frac{1}{N} \sum_{i=1}^{N} \left| I_i\bigl(x_i(d)\bigr) - I_{\mathrm{ref}}(x) \right|
这个公式计算“如果深度是 d,其他视角看到的颜色和参考视角差多少”:所有视角的平均颜色差越小,这个深度越可信。
  1. 参考像素 x在参考图(比如正门照片)中,我们正在估计深度的那个像素。
    x=(u,v)x = (u, v)
  2. 对应像素 x_i(d)假设真实深度为 d 时,这个三维点投影到第 i 张照片里的像素位置。
    xi(d)x_i(d)
  3. 颜色差异的绝对值同一三维点在第 i 视角的颜色与参考视角的颜色差,越接近 0 说明两处看到的是同一个表面。
    ∣Ii(xi(d))−Iref(x)∣\left| I_i(x_i(d)) - I_{\mathrm{ref}}(x) \right|
  4. 全体视角取平均把 N 个视角的差异求平均,得到总代价。代价最小的 d 就是最终深度。
    C(d)=1N∑i=1N∣⋯ ∣C(d) = \frac{1}{N} \sum_{i=1}^{N} \left| \cdots \right|

主流方法分类:四种工匠的流派之争

MVS 发展多年,形成了四种典型流派。它们就像小明请来的四种工匠,各有各的绝活。

第一种是“深度图融合法”,像一位平面拼图师:先为每个视角独立画一张“深度图”,再把所有深度图融合成点云。这是工业界最主流的方法,从传统的 PatchMatch 到深度学习的 MVSNet 都属此列。优点是可扩展到大场景,缺点是融合时容易在边缘产生接缝或飞点。

第二种是“体素占用法”,像一位积木搭建师:把整个空间划分成密密麻麻的小立方体(体素),用三维卷积判断每个格子是空还是被占。它天然适合表达拓扑结构,但显存消耗随场景范围立方级增长,通常只用于小场景,比如单件文物扫描。

第三种是“点云扩散法”,像一位钉子工:先撒下少量“种子点”,再从种子点出发,沿着物体表面逐步向外生长,直到铺满整个表面。它节约了空体素的开销,但对初始种子和表面平滑性假设比较敏感。

第四种是“神经隐式场”,像一位雾霭雕刻家:不直接生成点或格子,而是训练一个神经网络,让网络回答“空间里每一个点是不是在物体表面、是什么颜色”。NeRF 用体渲染合成新视角,3D Gaussian Splatting 则用大量椭球实时渲染,视觉效果惊艳。它们和 MVS 的关系不是替代而是互补——MVS 的深度先验能显著加速神经隐式场的训练和几何收敛。

这四派并无绝对优劣。深度图融合法赢在工程成熟,神经隐式场赢在表达细腻,如今最前沿的工作都在尝试让它们“联手”——小明笑着说:“拼图师和雾霭雕刻家联姻,生出的孩子叫'几何先验的神经渲染'。”

应用场景领域:老宅档案建成之后

老宅的三维档案建好了,能拿来做什么?小明发现,MVS 的应用早已渗透进无数行业。

第一个场景是数字孪生城市。无人机绕着城市飞一圈,拍下数千张倾斜摄影照片,MVS 重建出整座城市的级联三维网格,再叠加 GIS 数据,就得到一个“会呼吸”的城市数字分身。城市规划、安防应急、智慧交通都在这个基础上运行。传统测绘靠人工选点和激光雷达扫描,成本高昂;MVS 让一台无人机加一套算法就能覆盖大面积城区的重建。

第二个场景是摄影测量与文物保护。用 MVS 对古建筑、石窟佛像做高精度三维建档,既能在修缮时精确比对形变,又能在灾害发生时留下“数字备份”。故宫、敦煌的数字化项目中,MVS 都是核心引擎。相比传统全站仪逐点测量,MVS 的效率提升了一个数量级。

第三个场景是室内空间重建。房产 App 的 AR 看房功能,就是用户拿手机绕着房间拍一圈视频,MVS 在线重建出房间的三维模型,让远在千里之外的买家“走”进房间。第四个场景是具身智能导航。机器人要抓取物体、避开障碍,必须知道“周围的三维结构是什么样的”——MVS 为机器人提供了稠密的环境几何,是空间智能的重要拼图。

重建质量如何验收?学术界常用 F-score 评估:既不许漏建墙角,也不许多建出不存在的柱子。

小明把 F-score 比作验收老宅建模的监理:“你既要盯着工人别砌错墙(准确),又要检查他们有没有漏砌房间(完整)。两个都达标,档案才算合格。”

F=2×Precision×RecallPrecision+Recall\displaystyle F = \frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}
F-score 是准确率(建出来的点有多少是对的)和召回率(真实表面有多少被覆盖)的调和平均,两个指标一高一低都会拉低总分。
  1. Precision(准确率)重建出的三维点里,真正落在真实表面附近的点占多少比例。它惩罚“乱建”。
    Precision\mathrm{Precision}
  2. Recall(召回率)真实表面的几何中,有多大比例被重建点覆盖了。它惩罚“漏建”。
    Recall\mathrm{Recall}
  3. 调和平均对 Precision 和 Recall 求调和平均,任何一方偏科都会显著拉低 F 值,引导算法在“不乱建”和“不漏建”之间找平衡。
    F=2×P×RP+RF = \frac{2 \times P \times R}{P + R}

挑战与趋势:白墙、路人、大宅与工期

老宅档案的最后一役,小明被四个难题折磨得够呛。第一个难题是白墙:大宅西墙刚刷完,光滑得像镜面,六张照片里找不到任何可匹配的纹理,这叫做“弱纹理区域”。应对思路是扩大匹配感受野、引入表面平滑先验,或者请语义信息帮忙——“墙面大概率是平的”这个常识,足以替代缺失的纹理。

第二个难题是动态物体。拍摄时一只流浪猫从院门跑过,在两张照片里出现在不同位置,若不处理,重建结果里就会多出一团“鬼影”。解法是先用语义分割把动态物体标出来,重建时忽略这些像素;或者用多视角投票:同一个地方五张照片说有墙、一张说没有,少数服从多数。

第三个难题是大场景。老宅占地三千平方米,代价体的内存直接爆掉。工业界的通用解法是分块重建加全局一致性对齐,同时用级联策略和稀疏代价体把计算量压下来。这就像把大宅分成院子、正堂、厢房三个区块分别建模,再依靠统一的坐标系精确拼合。

第四个难题是实时化。甲方要求“边拍边建”,MVS 正在从离线处理走向流式重建。轻量网络、可变形卷积稀疏采样、3D Gaussian Splatting 的实时渲染,都在推动这一趋势。数据供给能力、算力基础设施与算法创新,三者共同决定着 MVS 的发展节奏。

当小明把四道难题一一攻克,老宅的三维档案终于建成——可以旋转、标注、测量,甚至制作成 VR 漫游。但他心里清楚:白墙还会有新的,运动的东西永远存在,宅子会越来越大,工期只会越来越短。MVS 的故事远没有讲完,而这正是空间智能时代最有生命力的舞台。

AI 应用场景

城市级数字孪生:无人机航测的全自动重建

阶段:三维数据采集与几何重建

解决的问题:传统城市三维建模依赖激光雷达扫描和人工测绘,设备昂贵、周期长,且难以覆盖大面积城区。MVS 让一台无人机携带普通相机即可完成上万张航拍影像的采集,再通过 SfM 标定相机位姿、MVS 重建稠密几何,自动生成城市级三维网格,成本降低一个数量级。

具体案例:某智慧城市项目对 20 平方公里城区进行数字孪生建设,无人机按规划航线拍摄约 1.2 万张倾斜影像,经过位姿解算、MVS 稠密重建、纹理映射,输出带真实纹理的三维 Tiles 模型,支撑暴雨内涝仿真、违建巡查与应急疏散推演。整个流程像给老宅建档的“超大型版本”——只是摄影师换成了无人机,老宅换成了整座城市。

室内 AR 看房:手机拍一圈,房间立起来

阶段:端侧数据采集与实时重建

解决的问题:线上看房缺乏真实的空间尺度感,2D 照片无法回答“客厅到底有多大”这类问题。MVS 让用户用手机绕房间拍摄一段视频,即可重建出可测量的室内三维模型,买家戴上 VR 眼镜或滑动屏幕就能“走进”房间,感受空间布局。

具体案例:某房产平台的 AR 看房功能,用户用手机按引导路径拍摄约 30 秒视频,后台提取关键帧并执行 MVS 重建,输出带尺度的房间点云与网格,自动标注层高、墙面面积和关键家具尺寸,让异地购房者获得近似实地看房的体验——就像小明为老宅建档后,邀请远方的朋友“走进”老宅漫游。

具身智能导航:给机器人一双“几何眼睛”

阶段:环境感知与实时三维建图

解决的问题:机器人要在陌生环境中避障、抓取、规划路径,必须实时感知周围的三维几何。单目方案缺乏尺度,激光雷达成本高。MVS 提供“多摄像头 + 算法”的低成本稠密几何感知方案,帮助机器人理解“哪里有墙、哪里有缝、哪里能抓”。

具体案例:某仓储机器人在货架间运行时,搭载双目相机,利用轻量化 MVS 算法实时估计深度图并融合成局部占用地图,成功识别地面上的临时障碍物与货架间隙,实现了 0.5 米/秒的自主避障导航。就像小明要靠多视角配合才能量出老宅的走廊宽度,机器人也靠“多眼协同”丈量身边的世界。

Python 演示

python55 行
import math def project(point, cam_pos, focal):    """针孔投影: 世界坐标 -> 像素坐标(相机朝向 +z)"""    x_cam = point[0] - cam_pos[0]    y_cam = point[1] - cam_pos[1]    z_cam = point[2] - cam_pos[2]    if z_cam <= 0:        return None    return (focal * x_cam / z_cam, focal * y_cam / z_cam)  def triangulate(uv_left, uv_right, focal, baseline):    """双目三角测量: 由视差恢复三维深度"""    disparity = uv_left[0] - uv_right[0]    if disparity <= 1e-6:        return None    z = focal * baseline / disparity    x = uv_left[0] * z / focal    y = uv_left[1] * z / focal    return (x, y, z)  def main():    focal = 500.0          # 焦距(像素)    baseline = 0.5         # 左右相机水平距离(米)    left_pos = (0.0, 0.0, 0.0)    right_pos = (baseline, 0.0, 0.0)     true_points = [        (0.2, 0.3, 2.0),        (-0.1, 0.5, 3.0),        (0.4, -0.2, 4.5),    ]     for i, p in enumerate(true_points):        uv_l = project(p, left_pos, focal)        uv_r = project(p, right_pos, focal)        assert uv_l is not None and uv_r is not None        rec = triangulate(uv_l, uv_r, focal, baseline)        assert rec is not None        err = math.sqrt(sum((rec[k] - p[k]) ** 2 for k in range(3)))        print("点%d: 真实%s 重建%s 误差%.4f米" %              (i, tuple(round(v, 3) for v in p),               tuple(round(v, 3) for v in rec), err))     # 多视图深度融合: 三个视角的深度估计加权平均    depths = [2.01, 1.98, 2.03]    weights = [0.8, 1.0, 0.9]    fused = sum(w * d for w, d in zip(weights, depths)) / sum(weights)    print("多视角融合深度: %.3f米 (真实 2.00米)" % fused)  if __name__ == "__main__":    main()
目的:用最简单的方式演示 MVS 的两大核心操作——双目三角测量恢复三维坐标,以及多视角深度按置信度加权融合。跑完会看到三个点的重建误差都在浮点精度范围内,且融合结果比任何单个视角的估计都更接近真实值。
  1. disparity = uv_left[0] - uv_right[0]计算视差,即同一个三维点在左右图像上像素横坐标的差值,是深度计算的原材料。
  2. z = focal * baseline / disparityMVS 的基石公式:深度与视差成反比,直接由焦距、基线和视差换算而来。
  3. weights = [0.8, 1.0, 0.9]模拟三个视角的置信度权重,权重越大代表该视角的深度估计越可靠。
  4. fused = sum(w * d for w, d in zip(weights, depths)) / sum(weights)融合的核心:加权平均,让可靠视角对最终深度有更大话语权。

常见误区

误区很多人以为 MVS 是“拿一堆照片丢进去,一键出 3D 模型”的魔法工具,不用管照片质量、相机位姿,照片越多一定越好。

正解MVS 的前提是准确知道每张照片的相机位姿(通常由 SfM 预先算出),而且照片要有足够的重叠度和清晰纹理。就像小明让朋友帮忙拍照前,必须先知道每张照片是在哪儿、朝哪个方向拍的,否则六个人的记忆碎片根本对不上。照片重叠太少、光照差异太大、存在运动模糊,都会让深度估计失败,照片再多也只会产生更多噪声点。

为何常见:商业软件把整个流程封装成“一键式”,让使用者看不到前置步骤;宣传 demo 又总展示理想条件下的完美结果,容易让人误以为算法万能。

误区以为单目深度估计输出的稠密深度图就是 MVS 的全部,多张图只是让结果更平滑一点而已。

正解单目深度估计是“猜”,MVS 是“量”。单目存在根本性的尺度歧义——照片里一个像素无法告诉你它对应的是 1 米外的小猫还是 100 米外的卡车;MVS 用多个视角的三角测量把绝对深度算出来。更重要的是,MVS 独有的多视图一致性校验可以交叉验证不同视角对同一深度的判断,把错误匹配剔除,这是单目方法完全没有的机制。

为何常见:深度学习时代单目深度估计效果惊人,很多人混淆了“看起来合理”和“几何准确”两种深度。

误区盲目追求每个像素都输出深度,觉得点数越多模型越精细,点云越密越厉害。

正解稠密不等于准确。在弱纹理区域、反光表面、遮挡边界,强行插值的深度往往是错误的,会变成满屏飞点。MVS 的经典哲学是“宁缺毋滥”:先给像素一个深度假设,再用一致性校验把低置信度的点丢掉,最后才进入融合。一个十万点的高置信度点云,比一百万个掺杂大量噪声的点云更实用——就好比十位认真目击者的证词,胜过一百个含糊路人的猜测。

为何常见:点云密度是肉眼可见的直观指标,密密麻麻的点看起来很专业;而置信度是算法内部看不见的指标,容易被忽视。

误区认为 MVS 属于经典摄影测量范畴,深度学习只是后来蹭热度加的“外挂”。

正解今天的 MVS 早已是深度学习与几何约束的深度融合。深度学习负责特征提取、代价体构建和深度回归,几何约束负责投影、三角测量和一致性校验。MVSNet、PatchmatchNet 等主流方法都是“学习特征 + 几何验证”的混合范式。可以理解为:深度学习是“眼睛”负责看,几何是“尺子”负责量,两者缺一不可。纯粹靠传统手工特征的方法在弱纹理、大基线场景下已经明显落后。

为何常见:教材中 MVS 的数学基础(对极几何、三角测量)都是经典几何内容,容易给人“传统算法”的刻板印象。

误区以为大规模 MVS 只是工程问题,分块、串行处理、堆机器就能解决。

正解分块不只是“切数据”,每块之间必须有足够的重叠和全局一致的坐标系,否则边缘必然错位或裂缝。而且大场景真正的瓶颈在代价体——长 × 宽 × 深度 × 通道的四维张量会随分辨率超线性爆炸。现代方法用稀疏代价体、级联(coarse-to-fine)策略、可变形卷积采样来降低计算量,而不是粗暴分块。就像把老宅分成院子、正堂、厢房分别建模,每块图纸都要留出重叠区并统一坐标基准,拼起来才不会错位。

为何常见:“内存不够就分批算”是通用工程直觉,但三维重建的块与块之间是强耦合的,不是独立可拆的任务。

面试题

Q1. 双目立体视觉中,深度 z 与视差 d 的关系是?

单选题 · easy

  • A.深度与视差成正比
  • B.深度与视差成反比← 正确答案
  • C.深度与视差平方成正比
  • D.深度与视差没有关系

答案:B。三角测量公式 z = f×B/d,焦距和基线固定时,深度与视差成反比。近处物体在左右图里错位大(视差大),远处物体错位小(视差小),就像左右眼看近处的手指明显比远处的大楼“偏移”更多。

Q2. MVS 重建流程中,深度图融合前必须先完成哪一步?

单选题 · mid

  • A.图像超分辨率增强
  • B.相机位姿标定← 正确答案
  • C.色彩空间转换
  • D.点云网格化处理

答案:B。没有准确的相机内外参,多视角像素就无法建立对应关系,三角测量也无从谈起。SfM 输出的相机位姿是 MVS 的输入前提,相当于小明必须知道六张照片各自“站在哪拍的”,才能拼出老宅。

Q3. 多视图一致性校验的核心目的是什么?

单选题 · mid

  • A.提高重建图像分辨率
  • B.剔除错误深度估计点← 正确答案
  • C.增加点云的稠密程度
  • D.加速图像特征提取

答案:B。一致性校验把估计出的深度反投影回其他视角,检查颜色与位置是否对得上。只有多数视角“见证一致”的深度才被保留,低置信度的错误点被剔除——就像六位证人互相印证后,说谎的那位自然出局。

Q4. 假设代价体维度为 W×H×D×C,当输入图像宽高各放大一倍、深度采样数 D 也随图像尺度成比例增加时,代价体的内存占用约变为原来的几倍?

单选题 · hard

  • A.约 2 倍
  • B.约 4 倍
  • C.约 8 倍← 正确答案
  • D.约 16 倍

答案:C。W 翻倍、H 翻倍、D 同时翻倍,三个维度相乘得到 2×2×2=8 倍,通道数 C 不变。这正是大场景 MVS 的内存瓶颈来源:分辨率提升导致代价体超线性膨胀,所以现代方法才要用级联策略先粗后精。

Q5. 以下哪项属于 MVS 的典型应用场景?

单选题 · easy

  • A.文本情感分类任务
  • B.城市级数字孪生三维重建← 正确答案
  • C.语音识别对话系统
  • D.电商推荐排序服务

答案:B。MVS 从多视角图像恢复三维几何,城市数字孪生、摄影测量、室内重建、机器人导航都是典型应用。文本分类、语音识别、推荐系统处理的是符号或序列数据,与三维几何无关。

Q6. MVS 在弱纹理区域容易失败,常见应对策略包括?

多选题 · mid

  • A.扩大匹配窗口感受野← 正确答案
  • B.引入多视角一致性约束← 正确答案
  • C.直接删除所有弱纹理像素
  • D.结合语义信息作为先验← 正确答案

答案:ABD。弱纹理区域缺乏可区分的特征,扩大感受野利用周围上下文、引入平滑与一致性正则、借助语义先验(如“墙面大致是平的”)都是有效手段。直接删除弱纹理像素会丢失真实表面信息,相当于放弃重建,不是应对策略。

Q7. 关于单目深度估计与 MVS 的区别,下列说法正确的是?

单选题 · mid

  • A.单目只需一张图,MVS需多视图
  • B.单目有尺度歧义,MVS可消除← 正确答案
  • C.单目精度恒高于MVS结果
  • D.MVS完全不需要相机参数

答案:B。单目从单张图像“猜”深度,天然存在尺度歧义,无法判断绝对距离;MVS 通过多视角几何约束(三角测量)恢复绝对深度,因此可以消除尺度歧义。精度上 MVS 通常更优但“恒高于”表述过于绝对,且 MVS 依赖准确的相机参数。

Q8. 关于学习式 MVS 与传统 MVS 的对比,正确的说法有?

多选题 · hard

  • A.学习式用网络构建匹配代价← 正确答案
  • B.传统法完全无法处理弱纹理
  • C.学习式采用级联策略降计算量← 正确答案
  • D.传统法抛弃全部几何约束

答案:AC。学习式 MVS 用 CNN 提取特征、构建代价体并回归深度,级联(coarse-to-fine)策略是控制大场景计算量的主流设计。传统方法使用手工特征加几何约束,弱纹理表现差但并非“完全无法处理”;几何约束是所有 MVS 的共同根基,传统方法和学习式方法都离不开。

Q9. 关于神经隐式场(如 NeRF)与 MVS 的关系,下列说法最准确的是?

单选题 · extreme

  • A.NeRF能替代MVS且无需相机参数
  • B.NeRF隐式场可用MVS深度做先验← 正确答案
  • C.NeRF直接输出显式三维点云
  • D.MVS和NeRF两者互不相关

答案:B。NeRF 用神经网络隐式建模辐射场,通过体渲染合成新视角,需要精确相机位姿,输出的是隐式场而非显式点云。MVS 的深度估计可以作为几何先验注入 NeRF(如 DS-NeRF),显著加速训练并提升几何精度,两者是互补而非替代关系。

Q10. MVS 重建结果的常见质量评估指标包括哪些?

多选题 · easy

  • A.衡量重建完整度← 正确答案
  • B.衡量重建准确度← 正确答案
  • C.衡量点云颜色鲜亮度
  • D.衡量综合F-score值← 正确答案

答案:ABD。MVS 评估通常把重建点云与真值(如激光扫描)比较:准确度衡量重建点离真值表面多近,完整度衡量真值表面被覆盖多少,F-score 是两者的调和平均。颜色鲜亮度属于渲染美观指标,与几何精度无关,不能作为几何重建质量的评估标准。