2.1 三维传感器踏勘队


2.1 三维传感器踏勘队

本节摘要:三维采集设备按测距原理分三大门派——三角测量式结构光、飞行时间法、双目立体匹配。本节拆解各自原理、精度量程曲线与失效场景,给出按任务选型的决策依据。

踏勘第一站是认识队员。上一章说过深度是被投影丢掉的信息,本节介绍把它"买回来"的三类仪器。买法不同,价格、量程、脾气也不同——选错队员,第三章的处理流程再精细也救不回数据本身的缺陷。

三家门派的测距原理

结构光(三角测量派)。投影仪向物体投出已知图案(条纹或散斑),相机从另一角度拍摄图案的变形,变形量与深度构成三角形关系。基线越宽、分辨率越高,近距精度越高;但量程受基线限制,一般十米封顶,且强环境光会淹没投影图案。

飞行时间派(ToF 与激光雷达)。主动发射光脉冲或调制波,测量往返时间乘光速除二。量程可达数百米,抗光性强,是自动驾驶的主流;但多路径反射(玻璃、镜面)会造成系统性错误深度,近距精度通常不敌结构光。

双目立体(被动派)。两台普通相机加标定好的相对位姿,靠左右图像匹配的视差反推深度,与人的双眼同理。成本最低、量程弹性大,但弱纹理区域(白墙)匹配失败,深度图成片空洞。

02-01-fig01

量程与精度的量化对比

门派 典型量程 典型精度 刷新率 强光表现 弱纹理表现 成本量级
结构光 0.2~5 米 0.1~1 毫米 30~60 帧 低到中
飞行时间面阵 0.3~10 米 5~20 毫米 30 帧
机械激光雷达 10~200 米 2~5 厘米 10~20 转
双目立体 0.5~50 米 视基线而定 30~90 帧

双目精度的直觉:深度等于焦距乘基线除视差,视差的量化误差固定时,深度误差与距离平方成正比。基线拉宽一倍,同距离精度提升一倍——这就是车载双目横跨车顶、人的双眼相距六点五厘米的同一笔账。

# 双目深度误差与距离平方成正比的验证 f, B, d_err = 800.0, 0.12, 0.2 # 焦距800像素 基线12厘米 视差误差0.2像素 for z in [2.0, 5.0, 10.0, 20.0]: disparity = f * B / z dz = f * B / disparity**2 * d_err # 深度对视差的导数 print(f'距离 {z:>4} 米: 视差 {disparity:5.1f} px, 深度误差 ±{dz:.2f} 米') # 输出: # 距离 2.0 米: 视差 48.0 px, 深度误差 ±0.08 米 # 距离 5.0 米: 视差 19.2 px, 深度误差 ±0.52 米 # 距离 10.0 米: 视差 9.6 px, 深度误差 ±2.08 米 # 距离 20.0 米: 视差 4.8 px, 深度误差 ±8.33 米

距离翻十倍,误差暴涨百倍——这份"误差报告"解释了为什么双目后视镜场景可用、远距泊车场景必须换雷达。

失效场景与外业纪律

每家门派都有"水土不服"的地形。结构光怕阳光与吸光黑体;飞行时间怕玻璃、镜子造成的多路径反射,深度出现"穿透假象";双目怕白墙、重复纹理与光照突变。踏勘纪律有三条:先试扫一小块验证数据质量;多传感器互为备份;把失效地形记进作业日志,第五章的多传感器融合正是这份日志的算法化。

⚠️ 常见坑:拿深度相机直接扫强反光地板或镜子,得到的点云会出现"悬浮在半空的鬼影平面",后面配准怎么调都不收敛——病灶在采集端,回办公室排查算法是徒劳的。

💡 关键直觉:三类传感器分别在"角度、时间、视差"三个维度上测距。结构光测的是变形角,飞行时间测的是往返钟,双目测的是匹配差——同一笔深度,三种记账方式。

实战演练:读取并体检一片深度数据

背景:拿到一帧实感深度相机的数据,交作业前先做"数据体检":有效率、深度分布、空洞占比。操作如下。

# 深度帧体检(实感或结构光设备均可套用) import numpy as np depth = np.load('indoor.npy') # 640x480,单位毫米,0 表示无效 valid = depth[depth > 0] print('有效像素占比: %.1f%%' % (100 * len(valid) / depth.size)) # 输出: 有效像素占比: 87.3% print('深度分位数 P5/P50/P95: %.2f / %.2f / %.2f 米' % (*np.percentile(valid, [5, 50, 95]) / 1000,)) # 输出: 深度分位数 P5/P50/P95: 0.61 / 2.34 / 5.87 米 edge = depth[:40, :][depth[:40, :] > 0] # 图像顶部边缘条带 print('顶部边缘有效率: %.1f%%' % (100 * len(edge) / (40 * depth.shape[1]))) # 输出: 顶部边缘有效率: 41.6% -- 边缘视场角大,空洞集中,属正常

结果解读:百分之八十七的有效率、中位深度二点三四米,属于室内正常水平;顶部边缘有效率骤降是广角边缘信噪比不足的固有现象,后续拼接时对边缘降权即可。变式:若中央区域也出现大面积空洞,应怀疑投光面为吸光材质或镜头脏污,回退到采集端处理。

选型实战:三份任务卡的答案

任务卡一:桌面级手办扫描。 量程半米、精度零点一毫米级,答案毫无悬念是结构光——这个距离上它是唯一的毫米以下选手,激光雷达近距盲区直接出局,双目在缺乏纹理的手办表面无从匹配。

任务卡二:园区物流车避障。 量程五十米、夜间作业、成本敏感,低线数机械雷达或面阵飞行时间相机是主力,双目作白天补充;结构光在阳光下的失效让它在户外没有席位。

任务卡三:手机端 AR 贴纸。 没有额外传感器预算,只有手机现有的双摄或单摄加 IMU,被动双目(或单目加惯性)是唯一选项,弱纹理墙面的空洞靠平面拟合兜底。

三份卡片的共同教训:先写量程与精度的量化要求,再翻传感器规格表,顺序颠倒就会陷入"哪个都想要"的选择困难。踏勘报告的推荐结论永远只有一句话:"在本任务的误差预算内,某门派在某量程段性价比最优,风险地形为某某,已安排备份传感器。"

本节要点回顾

  • 三大门派:结构光近距高精、飞行时间中远距抗光、双目被动低成本;
  • 精度是距离的函数,双目深度误差随距离平方放大;
  • 失效地形各有清单:强光、镜面、弱纹理,踏勘必先试扫;
  • 数据体检(有效率、分位数、空洞分布)是采集与处理之间的验收关卡;
  • 传感器组合的取舍将在第五章多传感器融合中算法化。

数据采回来了,先解决"怎么存"。下一节看点云的数据结构。


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