基于FPGA的红外与可见光图像融合算法

发布于:2025-09-02 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

一简介

二技术基础

三、 适合FPGA实现的融合算法

四、 FPGA实现细节与优化策略

五、 开发流程与工具

六、 挑战与注意事项

总结


一简介

红外成像系统利用 3um 到 14um 的波段,通过探测物体表面的能量差异来生成图 像。红外成像不受外界光照影响,能够全天候使用,特别是在雨天、大雾和浓烟等复 杂环境下,能够较好地捕捉物体的热目标信息。然而,红外图像存在整体分辨率较低、 细节信息模糊等问题。可见光成像系统利用380nm到750nm的波段,通过物体对可 见光的反射差异捕捉图像信息。在光照充足时,可见光图像具有较高的分辨率和丰富 的细节信息。然而,在夜间、伪装、烟雾和杂乱背景等复杂环境下,可见光图像中的 目标不易被观察,无法全面获取场景内的信息[3]。因此开展红外与可见光图像融合算法 研究,将不同传感器的有用信息融合成一张图像,克服各自的不足,提升图像质量和 信息完整性具有重要意义。

二技术基础

根据普朗克黑体辐射定律,所有温度高于绝对零度(-273.15)的物体都会自发 的发出红外辐射,红外传感器通过将采集到的红外辐射信号转化为电信号来生成红 外图像。红外图像反映了物体表面温度分布情况,同等条件下物体温度越高,红外辐 射的能量越强,成像越白。根据红外辐射的波长可以将红外辐射分为近红外(Near Infra-Red,NIR)、中红外(Middle Infra-Red,MIR)和远红外(Far Infra-Red,FIR), 具体的光谱波段如图 2.1。红外图像具有穿透力强,在夜间、大雾和雾霾等极端环境下 都能探测到目标,且可以长时间工作、不受距离影响、热目标突出等优点。但红外图 像存在分辨率低、纹理细节不丰富、整体对比度低等缺点。

三、 适合FPGA实现的融合算法

算法的选择需要在“效果”和“硬件资源/速度”之间取得平衡。

1. 基于多尺度变换的算法(效果较好,资源消耗中等)

  • 思路:将图像分解到不同的频率子带,对不同子带采用不同的融合规则,最后重构图像。

  • 推荐算法离散小波变换(DWT),特别是 Haar小波 或 DBSS(2,2)小波。它们结构简单,易于用硬件实现。

  • FPGA实现流程

    1. 分解:对配准后的IR和VIS图像分别进行2~3级DWT分解,得到低频子带(LL)和高频子带(LH, HL, HH)。

    2. 融合规则

      • 低频融合:采用加权平均基于区域能量的融合。平均法简单,基于能量的方法能更好地保留显著特征。

      • 高频融合:采用绝对值取大基于区域方差取大的规则。高频系数对应图像的边缘和细节,取大法可以保留最突出的边缘信息。

    3. 重构:对融合后的低频和高频子带进行逆离散小波变换(IDWT),得到最终的融合图像。

  • 优势:融合效果公认较好,信息保留全面。

  • 挑战:需要多级行缓存(Line Buffer),对存储资源和时序控制要求较高。

2. 基于金字塔分解的算法(类似DWT,略简单)

  • 拉普拉斯金字塔(Laplacian Pyramid) 或 高斯金字塔(Gaussian Pyramid) 也是常用方法。其分解与重构过程可以通过图像下采样和上采样来实现,逻辑比DWT更简单。

  • 融合规则:与DWT类似,对不同金字塔层采用不同的融合规则(如低频平均、高频取大)。

3. 基于空间域的简单算法(资源消耗极少,速度极快,效果一般)

  • 加权平均法

    • 公式:Fused(x,y) = α * IR(x,y) + β * VIS(x,y)

    • α 和 β 是权重系数(α + β = 1)。可以固定,也可以根据图像内容自适应调整。

    • 优点:只需几个乘法器和加法器,极其简单快速。

    • 缺点:容易导致图像对比度降低,效果平庸。

  • 主成分分析(PCA)融合

    • 计算两幅图像的协方差矩阵和特征向量,将第一主成分作为融合权重。

    • 虽然PCA本身计算复杂,但其计算是点操作,可以通过迭代电路实现,不适合实时性要求极高的场景。


四、 FPGA实现细节与优化策略
  1. 流水线设计(Pipelining):将整个算法拆分成多个步骤(Stage),每个时钟周期完成一步并传递到下一步。这样可以极大地提高吞吐率,保证实时处理。

  2. 并行计算(Parallelism)

    • 数据并行:对图像中不同区域的像素块同时进行处理。

    • 操作并行:例如,计算DWT时,高通和低通滤波可以并行进行。

  3. 资源优化

    • 使用分布式RAM/Block RAM:合理使用片上存储单元存储图像行数据(用于滤波、DWT等操作),避免使用大量触发器(FF)。

    • 定点数(Fixed-Point)运算:将浮点数运算转换为定点数运算(如Q格式),可以大幅减少DSP和逻辑资源的消耗。需要仔细分析精度要求,确定小数位宽。

    • 复用计算单元:在资源紧张时,可以通过时分复用的方式共享乘法器、加法器等。

  4. 基于HLS的开发:可以使用Xilinx Vitis HLS或Intel HLS工具。用C/C++编写算法核心,由工具自动生成RTL代码。这可以大幅提高开发效率,尤其适合算法验证和快速原型开发。开发者可以通过添加#pragma指令(如PIPELINEARRAY_PARTITIONINTERFACE)来指导综合工具进行优化。


五、 开发流程与工具
  1. 算法仿真:首先在MATLAB/Python上对融合算法进行仿真,验证效果,确定最佳参数(如小波基、分解层数、融合规则)。

  2. 算法硬件化:将浮点算法转换为定点算法,确定数据位宽(如8bit/12bit输入,中间计算可能用18bit/24bit防止溢出)。

  3. RTL实现或HLS开发

    • 传统RTL(Verilog/VHDL):控制力强,优化极限高,但开发周期长。

    • 高级综合(HLS):开发速度快,适合复杂算法,但需要对硬件有一定理解才能写出高效的代码。

  4. 功能仿真:使用ModelSim等工具对设计的IP核进行仿真。

  5. 系统集成:在Vivado/IP Integrator中,将图像处理IP核与传感器接口IP、DDR控制器IP、输出显示IP等连接起来,构建完整的系统。

  6. 板上调试与验证:生成比特流文件,下载到FPGA开发板(如Xilinx Zynq UltraScale+ MPSoC系列,它集成了ARM处理器和FPGA,非常适合这种应用),连接真实相机进行测试和性能分析。

六、 挑战与注意事项
  • 配准精度:这是整个系统的技术难点和性能瓶颈。机械结构的稳定性和预先标定的精度至关重要。

  • 资源与速度的平衡:复杂的算法(如多级DWT)会消耗大量BRAM和DSP资源,需要根据选定的FPGA型号进行精心设计。

  • 实时性指标:需要根据输入分辨率(如640x480 @ 30fps vs 1920x1080 @ 60fps)来计算系统所需的时钟频率和吞吐率,确保流水线不会堵塞。

总结

基于FPGA的红外与可见光图像融合是一个典型的“算法-硬件”协同设计问题。成功的关键在于:

  1. 选择一种在效果和硬件开销之间取得平衡的融合算法推荐从DWT或其简化变体开始)。

  2. 设计一个稳定可靠的图像配准方案优先采用基于预先标定的参数化方法)。

  3. 充分利用FPGA的并行和流水线特性,使用HLS等现代开发工具提升效率。

  4. 进行充分的仿真和测试,特别是定点化带来的精度影响。