2. 误差来源分类:系统误差、随机误差、粗大误差的定义与区分
做结构光测量这些年,我最大的体会就是:误差这东西,你躲不掉,但可以管好它。
很多人一上来就调算法、换硬件,折腾半天精度还是上不去。为什么?因为连误差是哪来的都没搞清楚。我个人习惯,拿到一个测量系统,第一件事不是测数据,而是先给误差「分个类」。
说白了,误差就三种:系统误差、随机误差、粗大误差。它们就像三个性格迥异的捣蛋鬼,你得知道谁在捣乱,才能对症下药。
核心观点: 误差分类不是学术游戏,而是工程诊断的第一步。分不清类型,消除误差就是空谈。
2.1 系统误差:那个「总偏一边」的家伙
定义: 在相同条件下,多次测量同一量值时,误差的大小和符号保持不变,或按某种确定规律变化。
你想想看,如果你的相机镜头有畸变,那拍出来的条纹位置是不是每次都偏同一个方向?这就是系统误差。它不跟你玩随机,它很「固执」。
我在项目中遇到过最典型的系统误差,是投影仪的非线性响应。明明输入的是正弦条纹,投影出来却变成了「胖正弦」。一开始我以为是算法写错了,折腾了两天。后来用光度计一测才发现——投影仪本身的Gamma曲线就没校准。嗯,这就是系统误差,它一直在那里,只是你没发现。
我的经验: 系统误差的可怕之处在于它「看起来像真值」。你测100次,它偏100次,你根本意识不到有问题。只有换一种测量方法做交叉验证,才能把它揪出来。
常见来源:
- 光学元件畸变(镜头、投影透镜)
- 标定板制造误差
- 环境温度引起的结构热膨胀
- 传感器暗电流、偏置电压
- 算法模型本身的近似误差
消除方法:
- 精密标定(相机内参、外参、畸变参数)
- 系统建模补偿(比如投影仪Gamma校正)
- 差动测量法(共模误差相减)
- 定期校准,尤其是温度变化后
2.2 随机误差:那个「捉摸不定」的家伙
定义: 在相同条件下,多次测量同一量值时,误差的大小和符号以不可预知的方式变化。
说白了,随机误差就是「手抖」。你架好三脚架,调好参数,连续拍10张条纹图,每张的相位值都不一样。为什么?因为空气在扰动,电子在热运动,连地板都在微微振动。
随机误差服从统计规律——通常是正态分布。均值趋近于零,方差决定了你的测量重复性。我记得有一次做高精度测量,要求重复性优于0.01mm。结果测了20组数据,标准差0.015mm,死活达不到。后来发现是实验室空调出风口正对着测量区域,气流扰动造成的。关了空调,标准差降到0.005mm。
注意: 随机误差不能通过标定消除,但可以通过增加测量次数取平均来减小。不过,平均次数不是越多越好——20次以后改善就很小了,这叫「收益递减」。
常见来源:
- 电子噪声(CCD/CMOS读出噪声、散粒噪声)
- 环境振动、空气扰动
- 光源强度波动
- 量化误差(ADC位数有限)
- 被测表面微观纹理变化
减小方法:
- 多次测量取平均(至少5-10次)
- 使用高灵敏度、低噪声传感器
- 控制环境(隔振、恒温、避光)
- 提高信噪比(增加曝光时间或投影亮度)
2.3 粗大误差:那个「离谱」的家伙
定义: 明显超出规定条件下预期范围的误差,通常由人为失误或突发异常引起。
粗大误差,我更喜欢叫它「野值」或「飞点」。它不跟你讲道理,一出现就是离谱的数值——比如测一个平面,突然冒出一个高出10mm的点。你一看就知道:这数据有问题。
我曾经犯过一个低级错误:标定相机时,标定板没放稳,有一张图片标定板是倾斜的。结果标定出来的内参全是错的,后面所有测量数据都飘了。我花了整整一天排查,最后发现是那张图片的问题。从那以后,我每次标定完都会先看一眼重投影误差——超过0.5像素的图片直接删掉重拍。
避坑指南: 粗大误差必须剔除,不能参与任何计算。一个野值就能把平均值拉偏,更别说相位解包裹这种对连续性敏感的操作了。
常见来源:
- 操作失误(标定板遮挡、对焦不准)
- 硬件突发故障(投影仪闪屏、相机丢帧)
- 被测表面高反光或镜面反射
- 数据传输错误(USB线松动、电磁干扰)
- 算法发散(相位解包裹跳变)
处理方法:
- 使用3σ准则或IQR(四分位距)自动检测
- 人工检查原始条纹图质量
- 增加冗余测量(比如多频外差法自带校验)
- 实时监控测量值,发现异常立即重测
2.4 三种误差的快速区分方法
我教你一个土办法:看重复性,看规律性,看离谱程度。
| 特征 | 系统误差 | 随机误差 | 粗大误差 |
|---|---|---|---|
| 重复测量表现 | 每次都偏同一个方向 | 围绕真值上下波动 | 偶尔出现极端值 |
| 是否有规律 | 有(恒定或周期性) | 无(服从统计分布) | 无(突发、孤立) |
| 能否消除 | 能(标定/补偿) | 不能(只能减小) | 必须剔除 |
| 对均值影响 | 产生偏移 | 影响小(正负抵消) | 严重拉偏 |
| 对标准差影响 | 影响小 | 直接决定大小 | 显著增大 |
举个例子你就明白了。假设你测量一个标准块的高度,真值是10.000mm:
- 系统误差: 测10次,结果都是10.052mm。每次都偏0.052mm——标定没做好。
- 随机误差: 测10次,结果在9.998~10.003mm之间波动——环境噪声正常。
- 粗大误差: 测10次,9次正常,突然一次是12.345mm——明显有问题,查一下是不是条纹投影时被手挡了一下。
实战建议: 我每次做完一组测量,会先画一个误差分布直方图。如果看到明显的偏态(不对称),大概率有系统误差。如果看到孤立的离群点,那就是粗大误差。如果分布对称但很宽,那就是随机误差太大,需要改善环境或增加平均次数。
最后说一句:这三种误差往往同时存在。你的任务不是只处理一种,而是先剔除粗大误差,再补偿系统误差,最后用统计方法减小随机误差。顺序不能乱,乱了就白干。