DIVFusion:首个耦合互促低光增强&图像融合的框架

DIVFusion:首个耦合互促低光增强&图像融合的框架

论文:https://doi.org/10.1016/j.inffus.2022.10.034
代码:https://github.com/Xinyu-Xiang/DIVFusion

写在前面

最近Information Fusion接收了一篇题为《DIVFusion: Darkness-free infrared and visible image fusion》的文章。在此之前,图像融合领域一直徘徊在利用互补信息,设计loss,引入新的融合规则等。但是忽视了低光场景下可见光信息退化的问题,这将严重影响互补信息的聚合,也使得融合算法在极端条件下无法产生令人满意的融合结果。
DIVFusion一文中给出了一个很新的思想来解决低光下的融合问题,即是耦合互促低光图像增强与融合,以获得良好视觉感知的融合图像。目前该论文可以通过以下链接免费下载:DIVFusion: Darkness-free infrared and visible image fusion 感兴趣的朋友可以尽快下载,只有不到60天的免费下载机会。

图像融合系列博客还有:

  1. 图像融合论文及代码整理最全大合集参见:图像融合论文及代码整理最全大合集
  2. 图像融合综述论文整理参见:图像融合综述论文整理
  3. 图像融合评估指标参见:红外和可见光图像融合评估指标
  4. 图像融合常用数据集整理参见:图像融合常用数据集整理
  5. 通用图像融合框架论文及代码整理参见:通用图像融合框架论文及代码整理
  6. 基于深度学习的红外和可见光图像融合论文及代码整理参见:基于深度学习的红外和可见光图像融合论文及代码整理
  7. 更加详细的红外和可见光图像融合代码参见:红外和可见光图像融合论文及代码整理
  8. 基于深度学习的多曝光图像融合论文及代码整理参见:基于深度学习的多曝光图像融合论文及代码整理
  9. 基于深度学习的多聚焦图像融合论文及代码整理参见:基于深度学习的多聚焦图像融合(Multi-focus Image Fusion)论文及代码整理
  10. 基于深度学习的全色图像锐化论文及代码整理参见:基于深度学习的全色图像锐化(Pansharpening)论文及代码整理
  11. 基于深度学习的医学图像融合论文及代码整理参见:基于深度学习的医学图像融合(Medical image fusion)论文及代码整理
  12. 彩色图像融合参见: 彩色图像融合
  13. SeAFusion:首个结合高级视觉任务的图像融合框架参见:SeAFusion:首个结合高级视觉任务的图像融合框架

问题引入

  1. 首先,现有的方法都是在正常的光照条件下设计的,因此忽略了夜间可见图像照度下降的困难。具体而言,在弱光条件下,以往的融合方法仅利用红外信息来填补可见光图像照度退化造成的场景不足。这就导致了夜间可见光图像中丰富的场景信息无法在融合图像中得到表达,背离了红外可见光图像融合任务的初衷。
  2. 其次,一种直观的解决方案是使用先进的微光增强算法对可见图像进行预增强,然后通过融合方法对源图像进行融合。然而,将图像增强和图像融合作为独立的任务处理往往会导致不兼容问题,从而导致图像融合效果不佳,如图1©所示。具体来说,由于夜景光线较弱,夜间可见图像有轻微的颜色失真。弱光增强算法改变了光源的颜色分布,在一定程度上进一步放大了整个图像的颜色失真。
  3. 此外,在融合过程中,由于Y通道的融合策略改变了源图像的饱和度分布,融合后的图像也会发生颜色失真,如图1(b)&©所示。
    图1.Demo

Motivation

红外与可见光图像融合是一项重要的图像增强技术,其目标是在极端环境下生成目标明显、纹理丰富的高质量融合图像。然而,目前的图像融合方法都是针对正常照明下的红外和可见光图像设计的。在夜景中,现有的方法由于可见光图像严重退化,导致纹理细节较弱,视觉感知较差,影响了后续的视觉应用。为此,本文提出了一种无黑暗的红外与可见光图像融合方法(DIVFusion),合理地照亮黑暗,促进互补信息聚合。

主要贡献

  1. 我们提出了一种新的视觉增强的红外和可见光图像融合框架(DIVFusion),以增强视觉感知和整合互补信息,特别是在极弱光条件下。
  2. 设计了一种场景照明解耦网络(SIDNet),消除了退化的照明特征,强化了两种模式的独特特征,以达到视觉增强的目的。构建纹理对比度增强融合网络(TCEFNet),增强对比度和纹理,实现有效的互补信息集成。
  3. 为了保证融合图像的视觉质量,我们设计了一种颜色一致性损失,可以减少融合图像中的颜色失真,并将更多的可见域信息注入到融合图像中。
  4. 我们的融合结果在从源图像中获取互补信息的同时,具有更明亮的场景和更高的对比度,且没有颜色失真,如图1(d)所示。行人检测实验证明了我们的结果在高水平视觉任务中的促进作用。

网络架构

整体网络架构
上述为DIVFusion整体流程图,主要分为两阶段训练
SIDNet
SIDNet用于自监督重构原始图像,并同时,剥离退化照度,得到的特征图用于促进后续融合网络
GRM和Contrast block
上述两者均为作者所提TCEFNet中的组成部分,分别用于细粒度增强与对比度提升,详见原文以及代码。

实验验证

实验设计方面,作者首先在LLVIP,MSRS以及TNO数据集上进行定量和定性的对比实验,然后也给出了运行效率的对比分析以及相关泛化实验和消融实验。

融合性能在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

增强&融合

为了充分证明所提出的方法能够很好地耦合低光增强任务和图像融合任务,作者还用一些SOAT的低光图像算法作为预处理来提前增强可见光图像;相关结果也展示如下:
在这里插入图片描述
在这里插入图片描述

目标检测性能

在这里插入图片描述

消融实验

在这里插入图片描述

结论

本文提出了一种基于视觉增强的夜间红外与可见光图像融合算法,实现了图像融合与图像增强的耦合互促。具体而言,SIDNet设计的目的是将退化光照特征与混合光照特征分离,避免源图像重要信息的丢失。然后,我们使用包含两个特殊模块的TCEFNet实现融合过程中的对比度增强和纹理保留。考虑到增强和融合任务的不相容性导致的颜色失真,设计了一种颜色一致性损失来调整融合图像的颜色分布。与最先进的方法进行了定性和定量的比较,验证了我们的方法的优越性,包括视觉感知、场景亮度和互补信息集成。两阶段融合实验表明,该方法有效地缓解了融合和增强任务之间的不兼容性。此外,行人检测实验证明了我们的DIVFusion在高级计算机视觉任务中的潜力。

写在最后

本文仅仅考虑到低光对整个红外可见光图像融合的影响,个人感觉红外可见光图像融合未来的研究方向,可以着手于多种退化情况,也即是极端条件下的图像融合,例如在融合过程中同时解决可见光图像中过曝和过暗的问题。现有的融合方法都难以消除过度曝光效应。一种可能的解决方法是利用高斯分布对点光源进行建模,并设计一个分解网络,将过曝光映射从可见图像中剥离出来。由于过曝光区域可见光图像中缺乏有效信息,在融合过程中我们将从红外图像中整合更多的信息来固定过曝光区域。未来,有可能将进一步设计一个照度调整模块,以解决红外和可见光图像融合任务中的低光和过度曝光退化问题。
DIVFusion 为极端条件下的融合提供了可能的方案,正如前面所说的可以在设计图像融合模型的时候进一步考虑其他的极端条件,这与图像融合的本质相契合。

DIVFusion原论文:Tang, Linfeng, Xinyu Xiang, Hao Zhang, Meiqi Gong, and Jiayi Ma. “DIVFusion: Darkness-free infrared and visible image fusion.” Information Fusion 91(2023): 477-493.

如有疑问可联系:2458707789@qq.com; 备注 姓名+学校

### RAG切片分块技术详解 RAG(Retrieval-Augmented Generation)切片分块是指在检索增强生成模型中,为了提高检索效率和准确性而采用的一种数据预处理方法。通过合理划分文档片段,可以有效提升下游任务的表现。 #### 切片分块的原则 对于RAG架构而言,合理的切片分块至关重要。通常情况下,会考虑以下几个方面来设计具体的分块逻辑: - **保持上下文连贯性**:确保同一个段落或者紧密关联的内容尽可能不被打断,这有助于维持信息的完整性[^1]。 - **控制单个chunk长度**:过长或过短都不利于后续操作。理想状态下,每个chunk应包含足够的背景信息以便于理解其含义,同时也需兼顾计算资源的有效利用[^2]。 - **优化索引构建**:良好的分块方式可以直接影响到向量数据库内的索引质量,进而决定查询性能的好坏。 ```python def rag_chunking(document, min_length=50, max_length=200): chunks = [] current_chunk = "" paragraphs = document.split("\n\n") # 基于自然段落进行初步分割 for paragraph in paragraphs: if len(current_chunk) + len(paragraph) <= max_length: current_chunk += "\n\n" + paragraph elif len(paragraph) >= min_length and len(current_chunk.strip()) > 0: chunks.append(current_chunk.strip()) current_chunk = paragraph else: while len(paragraph) > max_length: split_point = max_length - (len(current_chunk) % max_length) current_chunk += "\n\n" + paragraph[:split_point] chunks.append(current_chunk.strip()) current_chunk = "" paragraph = paragraph[split_point:] if len(current_chunk.strip()) > 0: current_chunk += "\n\n" + paragraph if len(current_chunk.strip()) > 0: chunks.append(current_chunk.strip()) return chunks ``` 这段Python代码展示了如何根据给定的最大最小长度参数对输入文本执行基本的RAG风格切片分块。 ### RAPTOR框架下的实现细节 RAPTOR是一个专注于高效处理大规模非结构化数据集的工作流平台。在其内部实现了多种先进的切片算法以适应不同应用场景的需求。针对RAG类型的切片需求,RAPTOR采取了一些特定措施: - **自定义分词器集成**:允许开发者指定特殊的标记化规则用于识别边界条件,从而更好地支持领域专用术语解析。 - **动态调整策略**:依据实际运行时的数据特征自动调节最优的chunk尺寸范围,既保证了较高的召回率又不至于造成过多冗余存储开销。 - **并行化加速机制**:借助分布式计算能力加快整个过程的速度,尤其适合处理超大体量文件集合的情况。 综上所述,在RAPTOR环境中应用RAG切片分块不仅限于简单的字符串切割,更涉及到一系列复杂的工程考量和技术选型决策。
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Timer-419

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值