DehazeFormer原理详解:Transformer如何重塑图像去雾技术
DehazeFormer 原理详解Transformer 如何重塑图像去雾技术一、引言图像去雾是计算机视觉中的经典难题。传统方法依赖大气散射模型估计透射率和大气光而深度学习方法如 AOD-Net、FFA-Net基于 CNN感受野有限。DehazeFormer创新地将 Vision Transformer 引入去雾任务利用自注意力机制建模全局依赖关系在多个基准数据集上达到 SOTA。本文将深入解析 DehazeFormer 的架构设计和核心原理。二、大气散射模型回顾在理解 DehazeFormer 之前先回顾雾天成像的物理模型I(x) J(x) × t(x) A × (1 - t(x))其中I(x): 观测到的有雾图像J(x): 需要恢复的清晰图像t(x): 透射率图transmission mapt(x) e^(-β·d(x))A: 全局大气光global atmospheric lightβ: 大气散射系数d(x): 场景深度去雾的目标是从 I(x) 恢复 J(x)需要估计 t(x) 和 A。这是一个欠定问题。三、DehazeFormer 架构详解3.1 整体架构输入: 有雾图像 I ∈ ℝ^(3×H×W) │ ▼ ┌─────────────────────┐ │ Patch Embedding │ Conv 3→C, k3, 产生 patch 特征 │ (无重叠分块) │ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ SK Fusion Layer 0 │ SKFF: 选择性核特征融合 │ (多尺度特征融合) │ ┌─ 3×3 卷积分支 ─┐ │ │ ├─ 5×5 卷积分支 ─┤→ 自适应融合 │ │ └─ 7×7 卷积分支 ─┘ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ DehazeFormer Block │ × N (通常 N4~8) │ × 4 │ │ │ ┌── LayerNorm ──┐ │ │ │ │ │ ┌─────────────────┐ │ │ ┌──────────┐ │ │ │ LayerNorm │ │ ├──│ W-MSA │─┤ → │ └────────┬────────┘ │ │ └──────────┘ │ │ │ │ │ │ │ ┌────────▼────────┐ │ │ ┌──────────┐ │ │ │ W-MSA / SW-MSA │ │ ├──│ MLP │─┤ → │ │ (窗口/移位窗口) │ │ │ └──────────┘ │ │ └────────┬────────┘ │ │ │ │ │ │ └───────────────┘ │ ┌────────▼────────┐ │ │ │ LayerNorm │ │ │ └────────┬────────┘ │ │ │ │ │ ┌────────▼────────┐ │ │ │ FeedForward │ │ 深度可分离卷积 MLP │ │ (DWConv GELU) │ │ │ └────────┬────────┘ │ │ │ │ │ ▼ │ │ 残差 │ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ 重建头 (Refinement) │ Conv → PixelShuffle → Conv │ │ 或直接 Conv 输出 └─────────┬───────────┘ │ ▼ 输出: 去雾图像 J ∈ ℝ^(3×H×W)3.2 核心组件实现3.2.1 窗口多头自注意力W-MSAimporttorchimporttorch.nnasnnimporttorch.nn.functionalasFclassWindowAttention(nn.Module):基于窗口的多头自注意力def__init__(self,dim,window_size,num_heads):super().__init__()self.dimdim self.window_sizewindow_size self.num_headsnum_heads head_dimdim//num_heads self.scalehead_dim**-0.5self.qkvnn.Linear(dim,dim*3,biasTrue)self.projnn.Linear(dim,dim)# 相对位置偏置可学习self.relative_position_bias_tablenn.Parameter(torch.zeros((2*window_size-1)*(2*window_size-1),num_heads))defforward(self,x):B_,N,Cx.shape# [B*num_windows, window_size², C]# QKV 投影qkvself.qkv(x).reshape(B_,N,3,self.num_heads,C//self.num_heads)qkvqkv.permute(2,0,3,1,4)q,k,vqkv[0],qkv[1],qkv[2]# 注意力attn(q k.transpose(-2,-1))*self.scale# 添加相对位置偏置relative_position_biasself.relative_position_bias_table[self.relative_position_index.view(-1)].view(self.window_size**2,self.window_size**2,-1)relative_position_biasrelative_position_bias.permute(2,0,1)attnattnrelative_position_bias.unsqueeze(0)attnF.softmax(attn,dim-1)x(attn v).transpose(1,2).reshape(B_,N,C)xself.proj(x)returnx3.2.2 移位窗口机制SW-MSAW-MSA 只在窗口内计算注意力缺少窗口间的信息交互。SW-MSA 通过将窗口移位来解决defwindow_partition(x,window_size):将特征图划分为窗口B,H,W,Cx.shape xx.view(B,H//window_size,window_size,W//window_size,window_size,C)windowsx.permute(0,1,3,2,4,5)windowswindows.contiguous().view(-1,window_size,window_size,C)returnwindowsdefwindow_reverse(windows,window_size,H,W):窗口恢复为特征图Bint(windows.shape[0]/(H//window_size*W//window_size))xwindows.view(B,H//window_size,W//window_size,window_size,window_size,-1)xx.permute(0,1,3,2,4,5)xx.contiguous().view(B,H,W,-1)returnx3.2.3 SKFFSelective Kernel Feature FusionSKFF 模块融合多尺度特征是 DehazeFormer 的另一个关键创新classSKFF(nn.Module):Selective Kernel Feature Fusiondef__init__(self,channels,num_features32):super().__init__()self.conv3nn.Conv2d(channels,channels,3,1,1,groupschannels)self.conv5nn.Conv2d(channels,channels,5,1,2,groupschannels)self.conv7nn.Conv2d(channels,channels,7,1,3,groupschannels)# 特征选择Squeeze → Excitationself.fc_reducenn.Conv2d(channels*3,num_features,1)self.fc_expand3nn.Conv2d(num_features,channels,1)self.fc_expand5nn.Conv2d(num_features,channels,1)self.fc_expand7nn.Conv2d(num_features,channels,1)defforward(self,x):f3self.conv3(x)f5self.conv5(x)f7self.conv7(x)# 全局平均池化 → 通道选择utorch.cat([f3,f5,f7],dim1)# [B, C×3, H, W]u_gapF.adaptive_avg_pool2d(u,1)# [B, C×3, 1, 1]u_gapself.fc_reduce(u_gap)# 软注意力a3self.fc_expand3(u_gap).sigmoid()a5self.fc_expand5(u_gap).sigmoid()a7self.fc_expand7(u_gap).sigmoid()# 自适应融合outf3*a3f5*a5f7*a7returnoutx四、与 CNN 方法的对比特性CNN 方法FFA-NetDehazeFormer感受野局部受卷积核大小限制全局自注意力特征交互逐层渐进自由长程交互多尺度处理多分支/特征金字塔SKFF 自适应融合参数量~4.5M~2.5M轻量版本PSNR (SOTS-indoor)36.3936.82五、训练要点5.1 损失函数DehazeFormer 使用组合损失classDehazeLoss(nn.Module):def__init__(self):super().__init__()self.l1nn.L1Loss()self.perceptualPerceptualLoss()# VGG 感知损失defforward(self,pred,target):l1_lossself.l1(pred,target)perc_lossself.perceptual(pred,target)returnl1_loss0.04*perc_loss5.2 数据增强随机裁剪 256×256水平/垂直翻转旋转90°、180°、270°色彩抖动六、总结DehazeFormer 将 Swin Transformer 架构成功应用于图像去雾核心创新包括W-MSA/SW-MSA 的窗口注意力机制降低了计算复杂度SKFF 多尺度自适应融合增强了细节恢复能力。相比传统 CNN 方法在全局信息建模和细节恢复上均有显著提升。

相关新闻

零样本学习在小数据视觉检测中的工程落地实践

零样本学习在小数据视觉检测中的工程落地实践

1. 项目概述:当数据少得可怜,模型却要看得更准“Empowering Computer Vision with Zero-Shot Learning in the Data-Centric Small Data Age”——这个标题不是学术论文的冷峻宣言,而是我过去18个月在三家不同行业客户现场反复验证后&#xf…

2026/7/22 23:52:55 阅读更多 →
Heapify在算法竞赛中的应用:Dijkstra、Prim等算法的极速实现 [特殊字符]

Heapify在算法竞赛中的应用:Dijkstra、Prim等算法的极速实现 [特殊字符]

Heapify在算法竞赛中的应用:Dijkstra、Prim等算法的极速实现 🚀 【免费下载链接】heapify The fastest JavaScript priority queue out there. Zero dependencies. 项目地址: https://gitcode.com/gh_mirrors/he/heapify 在算法竞赛的世界里&…

2026/7/21 21:19:44 阅读更多 →
Redlock监控与告警:使用Prometheus和Grafana监控分布式锁状态

Redlock监控与告警:使用Prometheus和Grafana监控分布式锁状态

Redlock监控与告警:使用Prometheus和Grafana监控分布式锁状态 【免费下载链接】redlock-rb Redlock is a redis-based distributed lock implementation in Ruby. More than 40 Millions of downloads. 项目地址: https://gitcode.com/gh_mirrors/red/redlock-rb …

2026/7/21 21:19:44 阅读更多 →

最新新闻

Datawhale 量化入门学习笔记:理解波动率

Datawhale 量化入门学习笔记:理解波动率

本文是 Datawhale《和Yibo零基础学习量化金融》Phase 2 第五章的学习总结,包含核心概念、理论发展脉络、Python 代码实现和真实行情验证。 标签:量化交易 Python 波动率 学习笔记 Datawhale 投资组合 分类:Python / 量化投资 前言 很多新手只…

2026/7/23 1:59:02 阅读更多 →
【OpenHarmony/HarmonyOS】ArkUI Canvas 2D 游戏引擎实战:世界坐标、摄像机、HUD 与渲染管线

【OpenHarmony/HarmonyOS】ArkUI Canvas 2D 游戏引擎实战:世界坐标、摄像机、HUD 与渲染管线

【OpenHarmony/HarmonyOS】ArkUI Canvas 2D 游戏引擎实战:世界坐标、摄像机、HUD 与渲染管线Canvas 不只是“画几条线”的组件。只要建立坐标系、渲染顺序、摄像机和实体管理,它完全可以承载一款中小型 2D 游戏。本文结合迷宫坦克项目,讲清楚…

2026/7/23 1:59:02 阅读更多 →
测试文章 002209 - 请忽略

测试文章 002209 - 请忽略

这是一篇测试文章,用于验证账号状态,将立即删除。

2026/7/23 1:58:02 阅读更多 →
OpenAI Codex API限制重置机制解析与优化策略

OpenAI Codex API限制重置机制解析与优化策略

如果你正在使用 OpenAI 的 Codex 进行开发,最近可能发现了一个奇怪的现象:API 调用限制似乎比官方文档中描述的更加频繁地被重置。这不是你的错觉——通过持续追踪 35 次重置记录,我们发现了一些值得开发者注意的规律。Codex 作为 OpenAI 推出…

2026/7/23 1:58:02 阅读更多 →
2026年AI编程工具实测横评:Claude Code v2.1、Cursor 3.0、Trae SOLO、Copilot、Windsurf 谁更好用?

2026年AI编程工具实测横评:Claude Code v2.1、Cursor 3.0、Trae SOLO、Copilot、Windsurf 谁更好用?

五款工具,两周深度使用,一个后端开发者的真实感受。一、先说说2026年AI编程工具到底变成了什么样 说实话,2025年大家还在讨论"AI代码补全到底有没有用",到了2026年中,这个话题已经没人聊了。原因很简单——A…

2026/7/23 1:58:02 阅读更多 →
TI Cortex-R4F TCRAM ECC内存保护机制与调试模式行为深度解析

TI Cortex-R4F TCRAM ECC内存保护机制与调试模式行为深度解析

1. 项目概述与核心价值在嵌入式系统,尤其是汽车电子、工业控制这些对可靠性要求严苛的领域,内存的稳定性直接决定了整个系统的生死。一次由宇宙射线或电磁干扰引发的内存位翻转,轻则导致数据错误,重则可能引发系统宕机甚至安全事故…

2026/7/23 1:58:02 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻