
简介这是一份关于红外与可见光图像压缩融合的学术论文PDF提出CFNet算法将变分自编码器VAE图像压缩引入融合框架并联合CNN局部特征提取与Transformer全局依赖建模在实现高质量融合的同时完成数据压缩有效减少冗余信息并提升数据利用率。面向具备机器学习和深度学习基础的研究人员、工程师尤其适合图像处理、图像融合与压缩编码方向的从业者可应用于视频监控、目标检测、自动驾驶等对存储和传输效率敏感的视觉场景。资源为1个PDF文件共1个文件大小5.23MB内容为英文期刊论文全文包含算法原理、网络结构、区域感兴趣多通道损失函数设计、率失真性能实验以及多个数据集上的定量定性对比结果。文中详细介绍了如何通过感兴趣区域损失为前景分配更多比特位从而获得更优压缩比读者可从中获取完整的CFNet实现思路与实验分析方法便于复现算法或借鉴联合压缩-融合技术路线。截至目前已有129人学习下载适合作为图像融合与压缩交叉领域的研究参考。 红外和可见光融合做过多模态图像项目的人应该都有体会融合网络本身反倒不是最卡脖子的环节卡脖子的往往是融合之后的大码流。我去年在做一个夜间辅助驾驶多模态感知项目时融合图视觉效果已经很不错了但一张2560×1920的融合结果编码后要占好几个MB嵌入式链路根本扛不住。这才下决心研究基于CNN与Transformer联合网络的红外可见光图像压缩融合算法核心思路只有一个把压缩和融合放进同一个模型里端到端优化而不是继续沿用“先压缩、再融合”的老办法。这篇文章我会从动机、网络设计、训练细节、评估踩坑四个方面完整拆解这套方案。适合正在做图像融合、多模态感知、或者推流带宽受限的边缘视觉方向的同学参考即使你此前只熟悉CNN不熟悉Transformer也能跟着把整个框架顺下来。1. 为什么不能继续“先压缩再融合”的两段式流程1.1 两段式流程的真实问题误差叠加伪影被放大但凡做过传统融合工程的人一定熟悉这套链路红外和可见光图像先各自用JPEG2000或HEVC压缩解码之后再送入融合网络融合结果再压缩一次输出。如果反过来先融合再压缩问题同样不少。两段式流程最让我难受的地方在于压缩和融合互相不感知。通用图像编码器并不知道下游要做融合它只会按照“人眼看着舒服”的原则丢弃高频细节而高频细节恰恰是融合任务最需要的信息。更麻烦的是融合网络天然擅长提取纹理和边缘压缩产生的块效应、振铃伪影会被融合网络当成真实结构“二次增强”结果融合图反而比输入图还要脏。我第一次跑通完整流程时拿到了一个PSNR数值很好看的融合结果放大一看红外人像边缘一圈全是压缩带来的振铃那个感受至今都记得。后来才意识到这不是融合网络写得不好而是两段式本身在信息论上就在做熵损失叠加第一次压缩丢掉的信息没有任何机制能找回来。1.2 端到端联合优化到底改了什么既然两段式有问题那直接把压缩模块和融合模块放进同一个计算图里让压缩变可微让码率约束作为正则项反传回去情况会怎样这就是“任务感知压缩”的核心编码器学会不再追求通用的视觉保真度而是只保留对融合任务真正重要的信息比如红外目标的热辐射显著性、可见光图里的纹理边界和车道线走向。融合解码器也能在训练中适应压缩噪声努力恢复结构化信息而不是放大伪影。举一个容易理解的类比两段式像先把稿子压缩成大纲再拿着大纲写文章重要细节早就丢了联合优化则像让作者知道最终要写一篇什么风格的文章在提炼信息时就自动留下最关键的素材。这个差异在低码率区间尤其明显码率越低联合优化保住的显著性结构越多。1.3 什么场景最需要这个方案这类方案并不是所有融合场景都需要。如果你的融合结果只在本地硬盘存着那就没必要折腾。真正需要压缩融合一体化的是这几类场景车载或辅助驾驶系统融合图要实时传给座舱显示或远程云端分析带宽有限。工业检测设备热成像区域和可见光纹理都需要保留但设备往往用无线链路回传。遥感多光谱分发单景数据量大需要压缩后传输给下游处理。在这些场景里融合质量、码率和计算开销三者永远在博弈。联合优化的价值就在于把“压缩”从不可控的前置步骤变成可控的模型超参数。2. CNN与Transformer在联合网络中的分工逻辑2.1 红外和可见光的模态差异决定了不能“一把梭”设计网络之前得先把两种图像的脾气摸清楚。红外图像是热辐射成像本质是单通道灰度图目标区域因为温度高而高亮但背景纹理非常弱可见光图像是反射成像纹理细节丰富可在夜间和低照度下表现很差。融合的关键不是简单加权平均而是做“选择性保留”行人、车辆等显著性目标以红外信息为主道路、路沿、标识牌以可见光纹理为主两者交界区域还要过渡自然。这个特性决定了网络不能把两路输入直接拼成一个张量喂进去。直接拼接相当于让网络自己从头学习模态间的复杂关系对大模型来说也许可行但对工程落地来说显存、数据量和收敛时间都不允许。所以我才坚持用双分支编码结构让每个模态先独立提取特征再做交互。2.2 CNN做浅层特征提取保住高频细节CNN在这个融合任务里干的活就是浅层的局部特征提取。卷积的归纳偏置决定了它天生适合找边缘、角点、纹理这类局部结构而且参数共享让它在小数据集上也很难严重过拟合。对于红外可见光融合来说浅层特征恰恰是高频细节的主要来源——可见光的纹理、红外的目标边界基本都是在这几层卷积里被编码的。我的经验是两个分支各自前几层不要共享权重。红外和可见光的成像物理机制完全不同权重共享会强迫网络用同一组滤波器去描述两种差异很大的模态最后两边都学不到位。等到特征图分辨率降到1/8或1/16时再做跨模态交互信息已经足够精炼交互成本也低得多。2.3 Transformer做跨模态全局交互解决“选择性保留”问题融合图最难的不是逐像素计算而是整图范围内的区域决策哪些区域由红外主导哪些由可见光主导两种模态的上下文怎么互相补全。这本质上是一个长距离依赖建模问题。传统CNN的感受野是堆出来的要看到全图信息通常得堆很深而且通道间的交互常常被限制在一个局部窗口内。Transformer的核心是自注意力每个token都能直接访问其他token这让网络在中等分辨率特征图上就能稳定地建立“红外高亮区域”和“可见光背景纹理”之间的全局关系。具体到视觉实现我更推荐window-based的注意力结构例如类Swin的设计而不是一次性做全局注意力。全局注意力在2K图像上显存消耗太不友好窗口注意力把计算量控制在线性级别而跨窗口的信息交互通过层次化patch merging也能覆盖到。实测下来在7×7窗口配置下融合质量和计算开销的平衡性最好。2.4 为什么不干脆全部用Transformer有人会问既然Transformer这么好要不要干脆整个网络都用Transformer我试过结论是别这么做。原因有三条。第一纯Transformer缺少CNN那种局部归纳偏置对高频细节的保持能力弱而融合任务最看重的就是边缘纹理保真第二注意力在全分辨率特征图上的计算量是平方级增长的端侧设备基本扛不住第三也是我个人实验里最明显的纯Transformer结构在几百对量级的红外可见光数据集上收敛很慢泛化效果反而不如CNN和Transformer混搭。所以最终方案定为浅层用CNN提取局部纹理深层用窗口注意力Transformer做跨模态全局交互。这个分工符合两种结构各自的物理直觉。3. 联合网络框架细节与训练方案3.1 整体架构双流编码器加跨模态Transformer加潜在表征压缩整个网络可以拆成四个阶段我先用文字把流程串起来红外图和可见光图分别输入两个独立的浅层CNN编码器得到各自的局部特征F_ir和F_vis。两个特征图在通道维度拼接并展平成token序列送入跨模态Transformer模块做全局交互和模态信息融合。融合后的特征经过一个映射层压缩成紧凑的潜在表征z。这个z的维度远低于原始图像是整个系统的“压缩结果”。解码器从z重建融合图像同时一个熵模型估算z的码率作为损失反馈给网络。这里有一个很关键的思路转变压缩不是在像素域做JPEG那种变换编码而是在特征域直接压。潜在表征z本来就是高度语义化的比原始像素更适合做熵编码所以压缩效率更高融合信息也更可控。各个模块的职责整理如下表模块输入输出核心作用CNN编码器A红外图局部特征F_ir提取热辐射目标结构和边界CNN编码器B可见光图局部特征F_vis提取纹理边缘与上下文细节跨模态TransformerF_ir、F_vis拼接全局交互特征F_global建模跨模态长距离依赖做选择性保留潜在表征映射层F_global潜在表征z降维压缩得到紧凑的特征域表示量化/熵模型z码率估计R模拟量化估算理论码率融合解码器量化后的z融合图重建细节丰富、目标显著的融合结果3.2 压缩约束是怎么“藏”进网络里的想让压缩变成可微模块需要解决两个问题量化不可导码率怎么算。量化不可导是经典问题。round函数前向很好用反向梯度却是零。工程上最常用的做法是STEStraight-Through Estimator前向走真正的量化反向把量化器近似成恒等函数。如果发现训练不稳定可以换成软量化比如用tanh近似或者训练时给z加均匀噪声来模拟量化误差推理时再替换成硬量化效果更稳。码率估计用的思路来自学习型图像压缩让网络预测潜在表征z的概率分布参数比如高斯分布的均值和方差然后理论上每个符号的码率就是它的负对数似然。把整张特征图所有符号的信息熵加起来就是当前比特流长度的一个可微近似。这个熵模型可以是一个很小的超先验网络计算开销不大但能显著提升码率控制的准确度。3.3 损失函数与训练策略先融合后压缩的两阶段思路总损失函数写成L_total L_fusion λ · R_bitrate其中L_fusion包含感知损失、SSIM损失和梯度保持损失R_bitrate是熵模型估计的码率λ用来控制压缩强度λ越大码率越低融合质量让步越多。训练千万不能从头到尾直接端到端。我踩过一次坑一上来就加入量化模拟和熵损失融合任务和压缩任务的梯度互相干扰前几十个epoch融合指标完全不动。正确的做法是两阶段第一阶段冻结压缩模块让量化模拟不参与前向只优化L_fusion先把融合能力训练出来。第二阶段打开量化模拟和熵模型端到端联合优化让融合解码器逐步适应压缩噪声。这样训练的优势很明显融合网络先站稳脚跟再面对压缩带来的信息损失时只会被当成一种噪声鲁棒性来适应而不会从一开始就被带偏。3.4 实际训练参数参考我这边一套效果稳定的配置如下可以直接作为起点优化器AdamW初始学习率1e-4warmup 5个epoch后接cosine decay。图像预处理随机裁剪256×256随机水平翻转可见光分支加轻微亮度扰动。输入格式红外单通道可见光三通道两个分支独立归一化。量化模拟训练阶段用均匀噪声推理阶段切换为hard round同时启用STE。损失权重SSIM损失权重0.4感知损失0.3梯度损失0.3λ初始取0.01再按目标码率调。Transformer部分的初始化别用随机权重。如果是从零开始训练跨模态注意力层会非常难收敛建议直接加载视觉Transformer在通用大图上预训练好的权重只改输入适配层。这一步能省掉大量的无效训练时间。4. 实操中踩过的坑与评估经验4.1 图像对不对齐Transformer会把错位特征也融合进去这个坑排在我最想分享的经验第一位。公开数据集里的红外可见光图对大多是严格配准过的但自己用双光相机采集的数据视场差、镜头畸变、时间延迟都会导致像素级别的错位。如果直接拿错位数据训练问题会很隐蔽融合指标并不一定会立刻崩因为Transformer的全局注意力会把两个模态的错位特征“硬融合”成一个看似平滑的结果。但只要一放大看边缘就会发现重影而且这个重影经过压缩重建之后会被进一步固化几乎无法修复。我的做法是数据进网络之前先用ECC增强相关系数算法做预配准OpenCV的findTransformECC可以直接用把可见光图对齐到红外图的位置。对齐质量怎么检查把两图叠在一起看边缘叠加图有没有明显双线。这个步骤做好后面所有训练才谈得上可信。4.2 量化模拟和推理不一致RD曲线会莫名抖动第二件让我头疼的事集中在量化模块上。训练时如果用的是均匀噪声模拟量化推理时却直接换了hard round你会发现训练时的码率曲线很好看一到推理就发飘RD曲线码率-失真曲线抖得没法看。这不是模型训练不够而是训练和推理的分布不一致导致的。解决办法有两个方向一个是统一用STE训练和推理都走一遍量化运算另一个是训练后期用“软转硬”策略先让网络在噪声模拟下充分收敛最后几十个epoch切到hard round微调给网络一个适应真实量化误差的机会。我后来固定使用第二套方案RD曲线平滑很多而且低位宽下的融合细节也稳得住。4.3 客观指标高不等于融合质量好要看下游任务做压缩融合研究最容易犯的错是把PSNR和SSIM当唯一真理。PSNR这个东西对融合任务尤其不敏感红外人像的高亮目标被稍作平滑后PSNR甚至可能不降反升但人的主观视觉和下游检测任务都已经明显变差。所以我现在评估模型至少看三个维度客观感知指标SSIM作为结构相似度参考再搭配NIQE、BRISQUE这类无参考指标衡量主观视觉品质。RD曲线横轴用码率bpp每像素比特数纵轴用SSIM或NIQE看不同λ下的整体趋势而不是只报单点。下游任务验证接一个轻量目标检测头统计行人或车辆在融合图上的mAP。这个指标比任何图像质量指标都更能说明“压缩融合”有没有真的保住任务关键信息。4.4 消融实验怎么做才说得清如果要把这套方案整理成论文或者技术报告消融实验至少要做这四组去掉跨模态Transformer只保留双流CNN观察全局交互对融合带来了多少增益。把Transformer换成同等参数量的卷积堆叠证明增益来自注意力机制而不是单纯增加深度。关闭联合训练退回两段式压缩融合对比同一码率下的融合指标这是整个方案成立与否的关键证据。修改λ测试不同码率点下的RD曲线验证码率控制是否真的平滑。我在实测中的典型结果是低码率区间联合优化比两段式的SSIM只高二到三个百分点SSIM的增益不算夸张但换成下游检测mAP对比时联合优化在同样的码率下能拉开明显的差距。这也侧面说明任务感知压缩优化的核心价值在路上“感知层面”而纯像素指标体现不出来。最后分享一点个人感受这个方向最花时间的其实不是搭网络结构而是让压缩约束变成融合模型的正反馈。如果只是简单加一个码率损失融合质量很容易被带崩。建议从基础两段式流程跑通开始先保证融合指标正常再逐步引入熵模型和码率约束每一步都盯紧RD曲线看得到可量化的改进再继续往前走。后续如果想更进一步可以尝试动态码率分配让显著性目标区域获得更高编码预算背景区域压低码率这会比当前统一码率约束更贴近实际应用需求。本文还有配套的精品资源点击获取