4. 图像采集与信号处理:模拟前端、非均匀性校正、坏点替换
各位工程师朋友,咱们今天聊聊热成像系统里最核心的“底层功夫”——图像采集与信号处理。说白了,就是从探测器拿到原始信号,到最终显示出一幅干净、均匀的热图,中间到底发生了什么。
我刚开始接触热成像时,总觉得这步很简单:探测器输出数据,处理器读进来不就完了?结果第一次调板子,屏幕上全是条纹和亮点,根本没法看。后来才明白,模拟前端、非均匀性校正、坏点替换,这三步缺一不可,顺序也不能乱。
4.1 模拟前端(AFE)——信号的第一道关卡
探测器输出的信号是模拟量,非常微弱,而且噪声很大。模拟前端(AFE)的任务就是把这个信号调理好,再交给ADC去数字化。
AFE通常包含以下几个关键环节:
- 偏置电压生成:给探测器提供稳定的工作电压。我遇到过一块板子,偏置电压纹波大了10mV,结果整幅图像都在闪烁。
- 相关双采样(CDS):消除复位噪声。说白了就是采两次样,一次复位电平,一次信号电平,然后相减。这个技巧很实用。
- 可编程增益放大器(PGA):根据场景动态调整信号幅度。你想想看,冬天拍雪景和夏天拍火焰,信号强度差几十倍,没有PGA根本没法统一处理。
- 模数转换器(ADC):把模拟信号变成数字信号。分辨率一般14位或16位。
关键参数:AFE的噪声水平直接决定了系统的信噪比。我建议选型时重点关注“输入参考噪声”,这个值越小越好。
下面这张图展示了AFE的典型信号流程:
4.2 非均匀性校正(NUC)——消除“花脸”
探测器每个像元的响应率不一样,有的敏感,有的迟钝。如果不做校正,图像就是花的,像一张大花脸。非均匀性校正(NUC)就是给每个像元算一个补偿系数。
常用的方法有两种:
| 方法 | 原理 | 适用场景 |
|---|---|---|
| 两点校正 | 采集高温和低温两个参考源,计算增益和偏移 | 环境温度变化不大时,效果很好 |
| 多点校正 | 采集多个温度点,分段拟合 | 宽温范围或高精度要求 |
我的经验:两点校正最常用,但要注意参考源的温度选择。我一般选场景温度范围的20%和80%作为两个点,这样线性度最好。
校正公式其实很简单:
// 两点校正伪代码
for each pixel (i, j):
corrected[i][j] = (raw[i][j] - offset[i][j]) * gain[i][j]
其中 offset 和 gain 就是通过参考源标定出来的。嗯,这里要注意:校正系数需要定期更新,因为探测器会随着时间老化。
4.3 坏点替换算法——别让黑点白点毁了图像
探测器不可能100%完美,总有几个像元是坏的——要么一直亮(白点),要么一直暗(黑点)。坏点替换就是把这些点找出来,用邻居的值补上。
坏点检测通常有两种思路:
- 基于响应率:给探测器均匀光照,响应率异常的就是坏点。这个方法简单,但需要专门的测试设备。
- 基于邻域统计:实时计算每个像元与周围8个邻居的差异,超过阈值就标记为坏点。我在项目中常用这个方法,因为它可以在线运行。
替换算法我推荐两种:
- 中值替换:取周围8个邻居的中值。效果稳定,能避免边缘模糊。
- 均值替换:取邻居的平均值。计算快,但遇到边缘区域容易模糊。
我曾经踩过的坑:有一次我直接用均值替换,结果坏点刚好在物体边缘,替换后边缘变得模糊,影响了后续的目标检测。后来改成中值替换,问题就解决了。
坏点替换的代码实现也不复杂:
// 坏点替换示例(中值法)
void replace_bad_pixel(uint16_t *frame, int width, int height, int x, int y) {
int neighbors[8];
int count = 0;
for (int dy = -1; dy <= 1; dy++) {
for (int dx = -1; dx <= 1; dx++) {
if (dx == 0 && dy == 0) continue;
int nx = x + dx;
int ny = y + dy;
if (nx >= 0 && nx < width && ny >= 0 && ny < height) {
neighbors[count++] = frame[ny * width + nx];
}
}
}
// 排序取中值
sort(neighbors, count);
frame[y * width + x] = neighbors[count / 2];
}
你想想看,如果坏点不处理,一个白点可能在图像上占据好几个像素,严重影响视觉效果。尤其是做温度测量时,坏点会导致误报。
4.4 三者的配合关系
AFE、NUC、坏点替换,这三步是按顺序执行的。我画个流程图你就明白了:
说白了,AFE负责把信号“洗干净”,NUC负责把图像“抹匀”,坏点替换负责把瑕疵“补上”。三步走完,才能得到一幅可用的热图。
总结一下:这三个环节是热成像系统的基石。AFE的噪声、NUC的精度、坏点替换的实时性,任何一个环节出问题,最终图像质量都会大打折扣。我建议你在调试时,先用均匀黑体验证NUC效果,再用点源测试坏点替换,最后整体评估AFE性能。