APP下载

舰艇火灾早期探测红外成像系统实时校正和盲元处理

2022-10-28邹富墩杨健

船海工程 2022年5期

邹富墩,杨健

(中国船舶重工集团公司第七二六研究所,上海 201108)

舰艇火灾发展早期阶段是舰艇火灾防治的关键时期,其火灾探测性能对后续火灾扑救具有重大影响。为了解决舰船火灾早期的探测,考虑基于红外热检测技术设计开发舰船早期探测红外热成像系统,通过对监控设备的红外热辐射进行采集并呈现红外热图像,进而对红外热图像进行分析可以实现对设备早期的异常故障进行预警,但是红外热成像系统由于工艺水平限制和数据传输中存在的干扰,采集到红外探测器的像素元素会存在一定数量的盲元(红外探测器中响应过低的探测单元),导致红外热成系统输出的红外热图像往往会存在比较多的亮暗点,严重影响红外热图像的质量。盲元的数量和分布对红外探测器器件性能的影响较大,因此有必要对红外焦平面器件中的盲元进行检测和补偿。红外热成像系统随着温度和时间的变化,探测器像元响应的非均匀性会越来越严重。所以红外热成像系统需要对采集到的红外探测器像元数据进行非均匀校正和盲元检测及补偿,拟采用两点校正算法对探测器像元的增益因子和偏移因子进行实时的更新,采用简化的动态的盲元检测技术并采用邻域替代法,提取盲元周围的有效图像数据或前后帧的图像数据对盲元进行替代。

1 红外成像系统

基于红外热成像检测技术设计开发的红外热成像系统,可以大幅提高舰艇火灾超早期探测系统的开发能力,红外热成像系统整体框架见图1。

图1 红外热成像系统框架

整个红外热成像系统包括前端采集模块、数据处理模块两大部分。前端采集模块包括光学镜头模块、调零机构、FPA探测器、DAC/ADC模块。其中,光学镜头模块用于过滤光谱以及构造光路,将视场范围内的属于特定光谱范围内的红外光线聚焦于红外探测器模块,红外探测器模块实现红外辐射信号到数字电信号的转换,FPGA模块将转变的红外辐射电信号进行数据处理,主要进行非均匀校正、盲元补偿、红外热图像故障降噪算法实现、红外辐射测温算法实现以及红外热故障判定算法实现、红外热图像增强算法实现。

FPGA模块包括FPGA芯片、两片高速SDRAM、FLASH存储器、FPGA串行配置芯片、RS232串口电路、视频输出等。高速SDRAM 0主要用于缓存两点校正参数(实时校正时)或图像数据(标定时),高速 SDRAM 1作为NIOS II系统的存储器。FLASH存储器主要保存每个探测元两点校正参数(设定了若干组校正参数,每组参数对应不同的环境温度区)、调试设定的电压参数以及FPGA逻辑程序和NIOS固件程序。RS232串口电路主要用在用户对机芯的控制。

2 红外热图像实时校正技术

红外热成像系统中,一般都是采用两点校正法来实现FPA探测器的非均匀性校正。

1)计算探测器每个探测单元的校正因子,即完成该探测器非均匀性校正的标定,此操作一般在出厂前进行。

2)根据标定得到的校正参数,在探测器实时图像输出时对每个探测单元输出的信息进行实时非均匀校正。

探测器的非均匀校正的标定需要通过探测器对均匀辐射的黑体的响应来进行标定。考虑到单帧图像获取时可能存在干扰。因此,标定时需要采集探测器给出的帧图像,并求出这帧图像的平均值,作为探测器的实际响应值。

校正算法设计实现过程中通过对校正使能信号, 校正累加和清零使能信号,多帧图像累加使能信号进行管理(见图2),这样可以方便的求得探测器的N帧图像的累加和并求得其平均值。

图2 帧图像累加和及其平均值的计算

根据两点校正算法,设探测器在低温和高温下对光路中插入的均匀辐射的黑体的标准响应分别为和,探测器的探测单元(,)在低温下和高温下的实际响应为LH,则有

=(L+)

(1)

=(H+)

(2)

式中:分别为探测单元(,)的偏移因子和增益因子,求解上述二元方程,可得

(3)

(4)

红外热成像系统出厂前,标定所得探测器的偏移和增益因子将会保存在红外热成像系统中的非易失Flash中,系统上电后由FPGA内的NIOS处理器将其从Flash中读出,存入SDRAM0,默认读取的是环境温度区的校正因子。

实时校正时,FPGA将读取外部SDRAM中的校正因子,并将其送给FPGA系统中的实时校正计算模块进行非均匀校正。

3 盲元检测及补偿技术

3.1 盲元检测

FPGA 对采集到的探测器数据进行非均匀校正后,将会对探测器的所有像素点进行盲元检测和补偿,盲元有效性判定规则如下。

1)如果单个探测元的增益因子过大(高于16),那么该探测元被认为是盲元。

2)计算有效的探测元的增益因子的均值AverageGain。如果单个探测元的增益不在(AverageGain-512,1.5*AverageGain+512)范围内,那么,该探测元也将被认为是盲元。

为了简化硬件模块的盲元补偿逻辑,在软件实现过程中对整个探测器所有像元动态的放进一个3×3矩形区域,对该矩形区域内的9个像元进行判定,并修改像元的增益因子,具体修改规则如下。

1)若为0,表示该像元是有效元。

2)如果盲元在第一行、第一列,那么将设为1;最后一列,将设为2;否则,将设为5。

3)如果盲元在最后一行、第一列,将设为3;最后一列,将设为4;否则,将设为7。

4)如果盲元不在第一行和最后一行,第一列,那么将设为6;最后一列,将设为8;否则,将设为9。

3.2 盲元补偿算法

采用邻域替代法来进行盲元补偿,根据盲元检测后获取的增益因子的值来进行补偿。

1)对于处在第一行或者第一列或者最后一行或者最后一列,即处在圈定的3×3矩形区域的4条边上的坏点替换原则:先从同一行(右左)中寻找非坏点(通过判断是否为0);若无,从同一列(上下)中寻找非坏点;若无,从对角线寻找(右左,上下)。

①如果为1。按照先相邻后一点、相邻下一点、相邻对角线右下一点顺序来进行补偿。即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值,否则,按照上述顺序继续查找,直到找到非盲元的那一点,并将当前盲元的值设为那一点的值。

②如果为2。按照先相邻前一点、相邻下一点、相邻对角线左下一点顺序来进行补偿,即如果相邻前一点不是盲元,那么将当前盲元的值设为相邻前一点的值;否则,按照上述顺序继续查找,直到找到非盲元的那一点,并将当前盲元的值设为那一点的值。

③如果不为3。按照先相邻后一点、相邻上一点、相邻对角线右上一点顺序来进行补偿,即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值;否则,按照上述顺序继续查找,直到找到非盲元的那一点,并将当前盲元的值设为那一点的值。

④如果为4。按照先相邻前一点、相邻上一点、相邻对角线左上一点顺序来进行补偿,即如果相邻前一点不是盲元,那么将当前盲元的值设为相邻前一点的值;否则,按照上述顺序继续查找,直到找到非盲元的那一点,并将当前盲元的值设为那一点的值。

⑤如果为5。按照先相邻后一点、相邻前一点、相邻下一点、相邻对角线右下一点、相邻对角线左下一点顺序来进行补偿,即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值;否则,按照上述顺序继续查找,直到找到非盲元点,并将当前盲元值设为那一点的值。

⑥如果为6。按照先相邻后一点、相邻上一点、相邻下一点、相邻对角线右上一点、相邻对角线右下一点顺序来进行补偿,即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值;否则,按照上述顺序继续查找,直到找到非盲元点,并将该盲元值设为那一点的值。

⑦如果为7。按照先相邻后一点、相邻前一点、相邻上一点、相邻对角线右上一点、相邻对角线左上一点顺序来进行补偿,即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值;否则,按照上述顺序继续查找,直到找到非盲元点,并将该盲元值设为那一点的值。

⑧如果为8。按照先相邻前一点、相邻上一点、相邻下一点、相邻对角线左上一点、相邻对角线左下一点顺序来进行补偿,即如果相邻前一点不是盲元,那么将当前盲元的值设为相邻前一点的值;否则,按照上述顺序继续查找,直到找到非盲元点,并将当前盲元值设为那一点的值。

2)不在矩形区域边上的坏点替换原则(为9)。从经过坏点的4条直线中寻找灰度变化最小的点;如果经过坏点的直线中有盲元,则将该直线上的参考点全部舍弃,并且判断没有盲元的直线的灰度变化,选择灰度变化最小的点。

如果经过坏点的4条直线中都没有盲元,则选择灰度变化最小的点;如果经过坏点的4条直线中都有盲元,则依次判断盲元周围相邻的8个点是否是非盲元。按照先相邻后一点、相邻前一点、相邻上一点、相邻下一点、相邻对角线右上一点、相邻对角线左上一点、相邻对角线右下一点、相邻对角线左下一点顺序来进行补偿。即如果相邻后一点不是盲元,那么将当前盲元的值设为相邻后一点的值;否则,按照上述顺序继续查找,直到找到非盲元的那一点,并将当前盲元的值设为那一点的值。

3.3 实时校正参数的存储分析

舰船火灾早期探测红外热成像系统需要实时的对探测器采集的到的红外图像进行实时校正和盲元处理,FPGA模块会频繁的对外部存储器进行访问读写。

FPGA模块逻辑访问外部SDRAM时,需要向外部SDRAM写以下数据:偏移因子、滤波后的图像数据、经过处理后的视频数据;需要从外部SDRAM读6种数据:偏移因子、增益因子、滤波后的图像数据、需要作增强处理的图像数据。FPGA模块的NIOS II软核处理器访问外部SDRAM时,需要向外部SDRAM写增益因子、FPA探测器配置电压数据。

对于FPGA逻辑写外部SDRAM时,需要向外部SDRAM写的3个数据是在一行内按顺序进行3次写操作。需要注意的是,不校正的时候不需要向外部写偏移因子,只需要写滤波后的图像数据、经过处理后的视频数据。

进行实时校正的时候,FPGA按偏移因子、滤波后的图像数据、经过处理后的视频数据顺序向外部SDRAM依次写到SDRAM0的对应数据存储区域。

从外部SDRAM读取数据时,先将读取的数据缓存入FIFO中,再根据读操作时序将读取的数据分别存入各自的FIFO中进行缓存。

往外部SDRAM写数据时,先将3种数据分别存入3个FIFO中进行缓存,再根据写操作时序将3个FIFO中缓存的数据读出依次写入FIFO中,最后从FIFO中读出写到外部SDRAM中。

在设计开发过程中,必须注意FPGA对外部SDRAM读写操作时序的设计。写操作应发生在读操作后,第1帧来后读操作只是将标定存入FLASH的偏移和增益因子从外部SDRAM0里面读出来,第1帧写操作将图像数据以及更新后的偏移因子存入外部SDRAM缓存1帧,等待第2帧进行读操作将处理过的图像数据读出并显示以及读出偏移因子对图像数据进行偏移校正并对偏移因子值进行更新。这里特别需要注意一点的是读操作读取的数据永远是上一帧写操作写入到外部SDRAM的相应的数据。

读写操作采用的是流水线模式,先处理第行的图像数据,从外部SDRAM读取数据并写入FIFO中进行缓存;再处理第+1行的图像数据,从FIFO中读取第行缓存的数据送入实时校正和盲元处理模块进行数据处理,同时将上一行处理后产生的数据写入FIFO中进行缓存;接着处理第+2行的图像数据,将+1行缓存在FIFO的数据读出并写入外部SDRAM中,具体读写操作流水线模式见图3。

图3 读写操作的流水线模式

4 结论

舰船火灾早期探测红外热成像系统可以在火灾发生的早期对所监控的周围环境发生的辐射能量进行采集并呈现红外热图像,红外热图像的质量的高低对后期的图像数据分析具有较大的影响。针对影响红外热图像质量的盲元数据以及探测单元响应的非均匀性进行实时动态的非均匀校正和盲元检测及补偿算法分析表明,采用两点校正算法实时的对像元增益因子和偏移因子进行更新和动态邻域补偿算法能对探测器的每个单元盲元处理,可以大大提高红外热图像的质量。