无人机/机器人、安防监控/消防
1、立项背景和目标
在无人机安防巡检、火灾监测等热成像应用中,传感器由于物理限制常产生随机的脉冲状亮斑或条纹(impulse-like artifacts)。传统中值滤波或深度学习去噪方法要么会破坏真实的高温边沿,要么需要GPU算力,无法在边缘设备上实时运行。本项目的目标是开发一个无需训练、仅依赖CPU的轻量级图像预处理算法,能够在不模糊目标轮廓的前提下,自适应地抑制脉冲噪声,特别保留火灾、车辆发动机等高温区域的结构完整性,提升下游视觉任务的可靠性。
2、软件功能、核心功能模块的介绍
局部不确定性估计:基于局部均值与方差计算每个像素的归一化偏差,区分噪声与真实热信号。
连续置信度映射:使用Sigmoid函数将偏差转换为0~1之间的抑制权重,避免硬阈值导致的不稳定。
结构张量保护模块:通过计算像素邻域的结构相干性(coherence),自动识别边缘/角点等需要保护的区域,大幅减少边界模糊。
全局安全限幅:根据图像整体的98%分位数动态限制最大抑制强度,防止在高温区域过度平滑。
软混合输出:将原始像素与中值滤波结果按风险权重融合,输出噪声抑制后且边缘锐利的热红外图像。
3、业务流程、功能路径描述
用户输入一张热红外图像(单通道,uint16或float32) → 算法自动计算局部均值/方差 → 生成偏差图与置信度 → 并行计算结构张量获得相干性图 → 结合全局安全因子得到最终抑制强度 → 将原图与中值图按像素级权重融合 → 输出处理后图像。整个过程单帧耗时约70~200ms(640×480~1280×1024),可直接集成到无人机飞控或热像仪嵌入式系统中。
1、整体架构和设计思路,不同模块使用的技术栈
整体采用无训练、纯图像滤波架构,所有运算均为O(N)线性复杂度,适合CPU实时处理。技术栈:Python 3.8 + OpenCV 4.5(用于边界扩展、卷积滤波) + NumPy(高速矩阵运算)。核心模块分为:(1) 局部统计(box filter实现快速均值/方差);(2) 自适应Sigmoid映射;(3) 结构张量特征分解(用于计算相干性);(4) 全局百分位统计及软融合。采用模块化函数设计,各模块可单独开关,便于客户根据实际场景裁剪。
2、“我”的负责模块和结果
本人独立负责算法设计、代码实现与全量测试。在公开热成像数据集(DroneVehicle、FLAME)与实拍UAV数据上取得以下量化结果:
噪声抑制后PSNR ≥ 37.07 dB(比中值滤波高1.4 dB);
FSIM(特征相似度)达0.9977,显著高于中值滤波(0.9952)和自适应中值滤波;
在Intel i5 CPU上处理640×480图像仅需72 ms(约14 FPS),1280×1024约203 ms(约5 FPS),满足实时预处理要求;
高温区域(火场/发动机)结构保留完整率 > 96%,无可见边缘模糊或断裂。
3、“我”遇到的难点、坑,和解决方案
难点1:热成像中脉冲噪声与真实高温目标(如火焰、车灯)的强度区间几乎完全重叠,简单的阈值检测会误伤目标。解决方案:引入结构张量相干性,利用噪声在各向同性区域(平滑背景)与目标在强相干区域(边缘/角点)的分布差异来调制抑制强度。
难点2:极平坦区域(如天空、路面)局部方差为零,导致偏差公式除零或数值爆炸。解决方案:在分母中加入稳定项ε(与传感器NETD相关),并利用全局百分位防止增益过大。
坑点:OpenCV的BoxFilter边界默认反射会导致边缘伪影。解决方案:替换为BORDER_REPLICATE模式,并在计算结构张量前对图像做归一化,避免数值溢出。