尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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 方法在全局信息建模和细节恢复上均有显著提升。
RELATED

相关推荐

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

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

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

📅 2026/9/15 7:16:30
多模态模型不是越“大”越好:当参数突破10B后,视觉-语言对齐效率反向拐点已至(基于Transformer Layer-wise梯度流热力图分析)

多模态模型不是越“大”越好:当参数突破10B后,视觉-语言对齐效率反向拐点已至(基于Transformer Layer-wise梯度流热力图分析)

更多请点击: https://kaifayun.com 第一章:多模态模型不是越“大”越好:当参数突破10B后,视觉-语言对齐效率反向拐点已至(基于Transformer Layer-wise梯度流热力图分析) 近年主流多模态模型(如…

📅 2026/7/24 17:36:42
WPS文件丢失7种恢复方法与数据备份技巧

WPS文件丢失7种恢复方法与数据备份技巧

1. WPS文件丢失的常见场景与恢复思路作为一名长期使用WPS Office的深度用户,我经历过太多次文件丢失的"惊魂时刻"。记得有一次,我正在赶制一份重要的项目方案,连续工作了6个小时后,电脑突然蓝屏重启,而WPS的…

📅 2026/8/14 6:42:24
MORE NEWS

更多资讯

📰

每日热评|在浏览器里开间谍卫星:纯前端3D时空情报引擎60帧渲染深度拆解

每日热评|在浏览器里开间谍卫星:纯前端3D时空情报引擎60帧渲染深度拆解评测快照:bilawalsidhu/gods-eye-view 8bcf146 项目定位:基于真实开源时空情报与 Cesium 引擎的高保真 3D 态势感知数字地球 数据指标:Stars 29,…

📰

Java后端转型AI工程:工业设备智能诊断系统实践

1. 项目概述:当Java后端遇上AI故障诊断去年在为一个工业设备制造商做系统升级时,我注意到他们的维修工程师每天要处理上百条设备异常日志。这些经验丰富的老师傅们往往能凭直觉快速定位问题,但这种经验难以规模化复制。这正是AI智能诊断系统的…

📰

RS485与Modbus分层解析:物理层、协议栈与工业通信避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

AI生成内容导出Word失败的四大根因与实战解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

体育AI视觉分析:从关键点检测到动作评分的全链路实战

1. 从“一眼看出动作不对”到“像素级量化评估”:体育AI视觉分析的真实战场你有没有看过职业网球教练回放球员发球视频时,手指在平板上快速滑动、暂停、放大肩部角度,再调出上一拍的对比曲线?或者短道速滑教练组围在屏幕前&#x…

📰

HTML5志愿者模板实战:从CSS3动画到Nginx部署全解析

简介:这款志愿者主题网站模板基于HTML5与CSS3构建,面向公益组织、志愿团队及非营利机构,用于快速搭建形象展示、活动发布与在线报名等功能并重的官网。压缩包共66个文件,包含5个HTML页面、9个CSS样式表、13个JavaScript脚本&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬