2、非均匀性校正技术(一):两点校正法原理与实现、单点校正法原理与实现、校正系数存储与更新策略

各位工程师朋友,咱们今天聊聊热成像系统里一个绕不开的话题——非均匀性校正。说白了,就是让每个像素“说人话”。

你想想看,一个红外焦平面阵列,几万甚至上百万个像素,每个像素的光电响应特性不可能完全一样。有的像素天生敏感,有的反应迟钝,有的甚至干脆“罢工”(盲元)。如果不做校正,你看到的图像就是一片花斑,跟得了皮肤病似的。

我个人习惯把非均匀性校正比作“给每个像素配一副专属眼镜”。度数不对,图像就糊。今天咱们先讲最经典的两类校正方法:两点校正法和单点校正法。

非均匀性校正技术 两点校正法 增益 + 偏置 线性校正 单点校正法 仅偏置校正(快速补偿) 校正系数存储与更新 EEPROM / 在线自适应更新

2.1 两点校正法原理与实现

两点校正法,名字听着挺唬人,其实原理特别简单。它假设每个像素的响应是线性的,也就是:输出 = 增益 × 输入 + 偏置

问题是,每个像素的增益和偏置都不一样。我们需要找到两个标准温度点,比如低温黑体T1和高温黑体T2,然后记录每个像素在这两个温度下的输出值。

有了这两组数据,就能解出每个像素的增益系数G和偏置系数O:

G(i,j) = (V_high - V_low) / (V(i,j)_T2 - V(i,j)_T1)
O(i,j) = V_low - G(i,j) × V(i,j)_T1

校正后的输出就是:V_corrected(i,j) = G(i,j) × V_raw(i,j) + O(i,j)

核心要点:两点校正法能同时校正增益差异和偏置差异,效果最好。但需要两个均匀辐射源(黑体),操作相对麻烦。

我在项目中遇到过一个问题:黑体温度不均匀,导致校正后图像边缘反而出现伪影。后来我学乖了,每次校正前先用热像仪扫一遍黑体表面,确认温度均匀性在0.1℃以内再开始。

2.2 单点校正法原理与实现

单点校正法就简单多了。它只用一个参考温度点,比如盖上镜头盖(均匀环境),然后记录每个像素的输出。

校正公式更简单:V_corrected(i,j) = V_raw(i,j) - V_offset(i,j) + V_target

其中V_offset(i,j)是当前像素在均匀背景下的输出,V_target是期望的基准值(比如所有像素的平均值)。

实战技巧:单点校正特别适合现场快速补偿。比如你从室内搬到室外,环境温度变了,图像出现条纹。这时候做一次单点校正,几秒钟就能恢复干净图像。

嗯,这里要注意:单点校正只能校正偏置差异,不能校正增益差异。说白了,它只能让图像“看起来均匀”,但每个像素的响应斜率还是不一样。如果场景温差很大,单点校正的效果就会打折扣。

我曾经在一个项目中偷懒,只用单点校正去处理50℃温差场景,结果图像边缘还是有色差。后来老老实实加了两点校正,问题才解决。

2.3 校正系数存储与更新策略

校正系数算出来了,存在哪儿?怎么更新?这是工程落地的关键问题。

存储方式 优点 缺点 适用场景
片内EEPROM 掉电不丢失,读取快 擦写次数有限(10万次) 出厂标定,长期固定
外部Flash 容量大,可频繁更新 读取速度稍慢 现场校准,频繁更新
SRAM(运行时) 读写极快 掉电丢失 临时校正,快速切换

我建议采用“三级存储”策略:

  1. 出厂标定系数存EEPROM,作为基准。
  2. 现场校正系数存外部Flash,支持用户现场更新。
  3. 运行时系数加载到SRAM,保证实时处理速度。

避坑指南:我曾经遇到过EEPROM写入过程中掉电,导致系数损坏,开机后图像一片混乱。后来我加了校验机制——每个系数后面跟一个CRC校验值,加载时先校验,校验失败就回退到出厂系数。

更新策略方面,我个人习惯用“温度触发+定时触发”双模式:

  • 温度触发:当探测器温度变化超过±5℃时,自动触发一次单点校正。
  • 定时触发:每30分钟强制做一次背景刷新,防止长时间漂移。

你想想看,如果探测器温度从20℃升到50℃,内部偏置可能漂移好几个LSB。这时候不做校正,图像质量就会明显下降。

最后分享一个小技巧:校正系数建议用浮点数存储,但实际计算时转成定点数。我一般用Q16格式(16位小数位),精度够用,计算速度也快。

好了,关于两点校正和单点校正的核心内容就这些。下一节咱们会深入聊多点校正和自适应校正,那才是真正考验算法功底的地方。


专注资料整理