网站开发怎么使用sharepoint安卓小程序制作
2026/1/27 7:46:56 网站建设 项目流程
网站开发怎么使用sharepoint,安卓小程序制作,python基础教程 入门教程,太姥山镇建设的网站0 论文信息 论文标题: Efficient Frequency-Domain Image Deraining with Contrastive Regularization中文标题#xff1a;基于对比正则化的高效频域图像去雨论文链接论文代码论文出处#xff1a;ECCV 0 论文概述 单图像去雨#xff08;SID#xff09;是低层次图像恢复的…0 论文信息论文标题: Efficient Frequency-Domain Image Deraining with Contrastive Regularization中文标题基于对比正则化的高效频域图像去雨论文链接论文代码论文出处ECCV0 论文概述单图像去雨SID是低层次图像恢复的关键任务现有基于 Transformer 的方法虽能通过全局建模实现高质量重建但存在空间域全局建模计算成本高、负样本中雨纹模式信息未充分利用的问题。为此本文提出 FADformer 框架通过融合频域与空域特征的 FFCM 模块实现高效全局 - 局部建模通过引入残差通道先验的 PGFN 模块增强局部细节修复再结合频域对比正则化FCR充分利用负样本信息。在 7 个公开数据集4 个合成 3 个真实上的实验表明FADformer 在 PSNR、SSIM 等指标上超越现有 SOTA 方法且模型参数和计算量仅为同类方法的 20% 左右同时 FCR 具有跨数据集、跨模型、跨任务的通用性。1 实验动机现有单图像去雨方法面临两大核心挑战且频域特性为解决这些挑战提供了新视角全局建模效率低主流方法依赖空域自注意力机制实现全局建模但计算成本随图像尺寸呈平方增长难以平衡效果与效率如图 1 所示现有方法参数 / 计算量与性能不成正比。负样本利用不足多数方法仅依赖清晰图像正样本训练忽视负样本含雨图像中的雨纹模式信息少数对比学习方法未结合去雨任务先验效果有限。频域天然优势雨纹在频域具有显著且稳定的特征与图像内容空间独立图 2a频域局部修复可对空域产生全局影响图 2b可实现高效全局建模和雨纹 - 内容分离。2 模块介绍FFCM 是一种可插拔的高效全局建模模块特别适用于图像去雨、去模糊、去雾等频率特征显著的图像恢复任务。它通过在频域执行卷积混合实现自注意力级别的全局感知能力却仅需卷积级的计算开销从而在保持高质量重建的同时显著降低模型复杂度适用场景低层视觉重建类任务单幅图像去雨 / 去雾 / 去雪 / 去模糊 / 超分辨率原因这些任务对纹理细节、全局结构恢复都高度敏感而频域分析可精准捕获退化噪声模式如雨条纹方向、雾气密度、模糊核频率分布。优势FFCM 能在频域高效提取全局退化特征同时在空间域保持局部细节兼顾质量与效率高分辨率图像修复与重建如 Real-World Restoration真实世界去噪、图像增强等。优势频域特征能高效表达全局照度和纹理变化FFCM 可作为轻量替代注意力模块使用Transformer或CNN结构的轻量化替换模块可直接替代传统Transformer中的 Self-Attention 或CNN中的 大卷积核模块适合应用于高效Transformer如Uformer、Restormer、SwinIR等的加速版本中频率特征显著的任务例如医学成像MRI、CT复原、SAR遥感去噪、OCT影像增强这类任务天然在频率空间有强特征分布FFCM可直接利用FFT特征增强重建效果模块作用局部–全局融合Local–Global Fusion通过在空间域使用多尺度深度卷积Multi-DConv提取局部特征再将其送入频率域Fourier Domain进行全局建模最后再通过逆变换IFFT返回空间域实现特征的融合高效全局建模Efficient Global Modeling不依赖复杂的自注意力矩阵而是利用FFT天然的全局感受野来捕获图像中的远程依赖关系因此能以卷积复杂度O(NlogN)) 近似实现全局特征交互增强结构敏感性Structure-Aware Filtering雨条纹、雾、模糊等退化信号在频域中表现明显FFCM可直接在频谱上建模这些特征提取出与退化模式相关的全局信息对细节恢复与纹理重建有显著帮助importtorchimporttorch.nnasnnclassFourierUnit(nn.Module):def__init__(self,in_channels,out_channels,groups1):super(FourierUnit,self).__init__()self.groupsgroups# 定义卷积层用于处理傅里叶变换后的特征self.conv_layertorch.nn.Conv2d(in_channelsin_channels*2,out_channelsout_channels*2,kernel_size1,stride1,padding0,groupsself.groups,biasFalse)# 定义批归一化层self.bntorch.nn.BatchNorm2d(out_channels*2)# 定义ReLU激活函数self.relutorch.nn.ReLU(inplaceTrue)defforward(self,x):batch,c,h,wx.size()# 进行二维傅里叶变换fftedtorch.fft.rfft2(x,normortho)# 获取傅里叶变换的实部x_fft_realtorch.unsqueeze(torch.real(ffted),dim-1)# 获取傅里叶变换的虚部x_fft_imagtorch.unsqueeze(torch.imag(ffted),dim-1)# 合并实部和虚部fftedtorch.cat((x_fft_real,x_fft_imag),dim-1)# 调整维度顺序fftedffted.permute(0,1,4,2,3).contiguous()# 调整形状以适应卷积层输入fftedffted.view((batch,-1,)ffted.size()[3:])# 通过卷积层fftedself.conv_layer(ffted)# 通过批归一化和ReLU激活fftedself.relu(self.bn(ffted))# 调整形状以适应傅里叶逆变换fftedffted.view((batch,-1,2,)ffted.size()[2:]).permute(0,1,3,4,2).contiguous()# 转换为复数形式fftedtorch.view_as_complex(ffted)# 进行逆傅里叶变换outputtorch.fft.irfft2(ffted,s(h,w),normortho)returnoutputclassFreq_Fusion(nn.Module):def__init__(self,dim,kernel_size[1,3,5,7],se_ratio4,local_size8,scale_ratio2,spilt_num4):super(Freq_Fusion,self).__init__()self.dimdim self.c_down_ratiose_ratio self.sizelocal_size self.dim_spdim*scale_ratio//spilt_num# 定义初始卷积层1self.conv_init_1nn.Sequential(# PWnn.Conv2d(dim,dim,1),nn.GELU())# 定义初始卷积层2self.conv_init_2nn.Sequential(# DWnn.Conv2d(dim,dim,1),nn.GELU())# 定义中间卷积层self.conv_midnn.Sequential(nn.Conv2d(dim*2,dim,1),nn.GELU())# 定义傅里叶单元self.FFCFourierUnit(self.dim*2,self.dim*2)# 定义批归一化和ReLU激活self.bntorch.nn.BatchNorm2d(dim*2)self.relutorch.nn.ReLU(inplaceTrue)defforward(self,x):# 将输入张量分割为两个x_1,x_2torch.split(x,self.dim,dim1)# 通过初始卷积层1x_1self.conv_init_1(x_1)# 通过初始卷积层2x_2self.conv_init_2(x_2)# 合并两个特征图x0torch.cat([x_1,x_2],dim1)# 通过傅里叶单元并进行残差连接xself.FFC(x0)x0# 通过批归一化和ReLU激活xself.relu(self.bn(x))returnxclassFFCM(nn.Module):def__init__(self,dim,token_mixer_for_gloalFreq_Fusion,mixer_kernel_size[1,3,5,7],local_size8):super(FFCM,self).__init__()self.dimdim# 定义全局特征融合模块self.mixer_gloaltoken_mixer_for_gloal(dimself.dim,kernel_sizemixer_kernel_size,se_ratio8,local_sizelocal_size)# 定义通道注意力卷积层self.ca_convnn.Sequential(nn.Conv2d(2*dim,dim,1),nn.Conv2d(dim,dim,kernel_size3,padding1,groupsdim,padding_modereflect),nn.GELU())# 定义通道注意力模块self.cann.Sequential(nn.AdaptiveAvgPool2d(1),nn.Conv2d(dim,dim//4,kernel_size1),nn.GELU(),nn.Conv2d(dim//4,dim,kernel_size1),nn.Sigmoid())# 定义初始卷积层self.conv_initnn.Sequential(# PW-DW-nn.Conv2d(dim,dim*2,1),nn.GELU())# 定义深度可分离卷积层1self.dw_conv_1nn.Sequential(nn.Conv2d(self.dim,self.dim,kernel_size3,padding3//2,groupsself.dim,padding_modereflect),nn.GELU())# 定义深度可分离卷积层2self.dw_conv_2nn.Sequential(nn.Conv2d(self.dim,self.dim,kernel_size5,padding5//2,groupsself.dim,padding_modereflect),nn.GELU())defforward(self,x):# 通过初始卷积层xself.conv_init(x)# 将特征图分割xlist(torch.split(x,self.dim,dim1))# 通过深度可分离卷积层1x_local_1self.dw_conv_1(x[0])# 通过深度可分离卷积层2x_local_2self.dw_conv_2(x[0])# 通过全局特征融合模块x_gloalself.mixer_gloal(torch.cat([x_local_1,x_local_2],dim1))# 通过通道注意力卷积层xself.ca_conv(x_gloal)# 应用通道注意力xself.ca(x)*xreturnxif__name____main__:ffcm_moduleFFCM(dim64)inputtorch.randn(1,64,256,256)# 将输入张量传入 FFCM 模块outputffcm_module(input)# 输出结果的形状print(输入张量的形状,input.shape)print(输出张量的形状,output.shape)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询