4.3 深度学习三维重建


4.3 深度学习三维重建

本节摘要:深度学习为重建注入"数据先验"——单视图深度网络从一张照片估深度,点云生成网络直接输出三维形状,神经辐射场用可微体渲染学到照片级外观。本节讲清三条支线的原理边界,以及它们与几何路线的分工。

成图第三条路线。前两节的方法不依赖任何"见过的世界":SfM 与 TSDF 都是纯几何推导,好处是可解释、误差可核算,代价是对弱纹理、稀疏视角无能为力。深度学习反过来:先从海量数据里记住"世界长什么样",遇到单张照片、少视角等几何信息不足的素材,用先验补齐。它不是替代几何,而是接管几何管不了的地形。

三条支线各管一段

单视图深度估计:输入一张照片,输出逐像素深度图。几何上这是病态问题(第一章证明过深度已丢),网络靠学习先验猜答案——室内场景的墙角、走廊透视都是强线索。代表方法从全卷积回归发展到用 Transformer 的度量深度模型,室内相对误差已压到个位数百分比。输出可直接接 4.2 节的 TSDF 融合管线。

点云生成与补全:网络直接输出或补全点云。点云是无序集合,普通卷积吃不下,点云网络的出路是逐点多层感知机加对称池化(代表结构 PointNet 一族),或把点云体素化、投影成多视图再处理。典型任务:从单张照片生成椅子形状、把残缺扫描补成完整模型。

神经辐射场(NeRF):用多层感知机记下"空间每点的密度与颜色",沿相机光线积分体渲染出图像,与真实照片求差反传训练。它绕开第二章体素的三次方诅咒(连续函数表示),在固定场景、多视角照片输入下能渲染出照片级新视角,成为文物、建筑可视化的新宠。代价:逐场景训练数小时、静态假设、几何精度不如 MVS。

04-03-fig01

实战演练:单视图深度估计的尺度对齐

背景:用预训练单目深度模型处理室内照片,输出是"相对深度",要接入 TSDF 融合必须先对齐到米制尺度。操作:用已知的地面平面做尺度标定。这是学习派落地的标准卡点。

# 相对深度到米制:平面拟合定尺度(数值来自一次真实作业) import numpy as np rel = np.load('rel_depth.npy') # 网络输出,形状 480x640,无量纲 mask = np.load('floor_mask.npy') # 分割给出的地面像素掩码(3.3 节产物) rows, cols = np.nonzero(mask) r = rel[rows, cols] # 地面真实高度 0 米,网络地面相对深度应恒定;实际有渐变(透视畸变) A = np.stack([rows, np.ones_like(rows)], 1) coef, *_ = np.linalg.lstsq(A, r, rcond=None) # 拟合地面的相对深度趋势 print('地面相对深度斜率: %.2e / 像素行' % coef[0]) # 输出: 地面相对深度斜率: -3.1e-04 / 像素行 # 用两个已知距离的点标定尺度(门框宽 0.9 米处贴两张标纸) d_rel = 0.42 - 0.18 # 标纸间相对深度差 d_metric = 1.20 # 实测 1.2 米 scale = d_metric / d_rel print('尺度因子: %.2f 米/单位' % scale) # 输出: 尺度因子: 5.00 米/单位 depth_m = rel * scale print('全图深度范围: %.2f ~ %.2f 米' % (depth_m[depth_m>0].min(), depth_m.max())) # 输出: 全图深度范围: 0.71 ~ 6.30 米

结果解读:学习派的深度图形状对、尺度飘——尺度因子五这个数每次作业都要重标(贴标纸或用 IMU 辅助),否则融合出来的模型整体缩水或膨胀。变式:度量深度模型直接输出米制,省去标定,但在跨域数据(训练室内、测试室外)上精度骤降,域差距是学习派永远的悬顶之剑。

工程取舍清单

需求 推荐 理由
毫米级精度存档 几何路线(SfM、TSDF) 误差可核算可追责
单张照片快速建模 单视图深度加融合 几何上唯一可行
残缺扫描补全 点云补全网络 几何无法无中生有
照片级可视化 神经辐射场 外观质量碾压 MVS
动态场景 几何加学习混合 纯学习静态假设不成立

⚠️ 常见坑:把网络的"脑补"当测量。补全网络给雕像补上的手臂、单目网络给镜面估出的深度,都不是观测——交付物里必须区分"实测区"与"推测区",这是测绘纪律在学习时代的延续。

💡 关键直觉:几何方法的误差是白纸黑字的账目,学习方法的误差是统计意义上的分布——两种误差观在混合管线里必须分开记账。

边界讨论:学习派的验收难题

几何方法的验收货币(重投影误差、配准残差)在学习派身上不能直接套用,因为学习的输出没有对应的观测残差可算。目前工程界的替代做法有三层:一是交叉验证——学习出的深度与深度相机的实测深度对齐比较,把域差距变成白纸黑字的统计量;二是一致性检验——多帧学习深度做 TSDF 融合,融合残差大说明单帧深度互相矛盾;三是下游任务闭环——用重建结果跑一遍量测任务,量测误差才是最终验收。第三层最贵也最有说服力。给团队提个醒:引入学习模块的系统,验收单必须新增"训练数据域描述"一栏,注明模型在什么数据上训练、部署环境与训练域的差异点——这不是学术洁癖,是出错时定位责任的依据。另一条实操经验:模型版本要随数据入库存档。同一个场景半年后重扫,用新版模型出的深度与旧版混用,融合残差会莫名其妙地大——原因只是两个版本的系统偏差方向不同。把"模型版本号"写进每次作业的元数据,是学习时代测绘档案的新字段。

本节要点回顾

  • 学习派的价值是用数据先验解病态问题:单视图、稀疏视角、残缺输入;
  • 三条支线:单视图深度(接融合)、点云生成补全(接形状检索)、辐射场(接可视化);
  • 尺度与域差距是学习派两大落地卡点,标定与域评估不可省;
  • 混合管线是主流形态:先验出初值与深度,几何做融合与平差;
  • 测绘纪律延续:脑补区必须与实测区分开标注。

成图完毕,远征进入最惊险的赛段:边走边画图的 SLAM。下一章开拔。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U