2024CVPR《HomoFormer》

这篇论文提出了一种名为HomoFormer新型Transformer模型,用于图像阴影去除。论文的主要贡献和创新点如下:

1. 研究背景与动机

  • 阴影去除的挑战:阴影在自然场景图像中普遍存在,影响图像质量并限制后续计算机视觉任务的性能。阴影的空间分布不均匀且模式多样,导致传统的卷积神经网络(CNN)和基于窗口的Transformer模型难以有效处理。

  • 现有方法的局限性:现有的方法通常依赖于复杂的模型来适应阴影的非均匀分布,但这些模型的计算复杂度高,难以应用于高分辨率图像。

在这里插入图片描述

2. 方法概述

  • 随机打乱操作:为了应对阴影的非均匀分布问题,论文提出了一种新的策略:通过随机打乱操作(Random Shuffle)将阴影的非均匀分布均匀化。随机打乱操作将图像像素在空间上随机重新排列,使得阴影在整个图像中均匀分布,从而便于后续的局部自注意力层处理。
    在这里插入图片描述

  • 逆打乱操作:在随机打乱操作后,通过逆打乱操作(Inverse Shuffle)将像素恢复到原始顺序,确保图像语义信息不丢失。

  • 局部自注意力层:在均匀化的空间中,使用局部自注意力层(Local Self-Attention)来处理图像,避免了传统全局自注意力的高计算复杂度。
    ![[Pasted image 20250109154028.png]]

  • 结构建模的前馈网络(FFN):由于随机打乱操作破坏了像素的相对位置信息,论文设计了一种新的前馈网络(FFN),通过深度卷积来建模图像的结构信息。
    ![[Pasted image 20250109154042.png]]

3. 主要贡献

  • 均匀化阴影分布:论文提出了一种新的视角,通过随机打乱操作将阴影的非均匀分布均匀化,从而解决了传统模型在处理非均匀阴影时的局限性。

  • HomoFormer模型:基于随机打乱和逆打乱操作,论文构建了一个名为HomoFormer的局部窗口Transformer模型,能够在保持线性计算复杂度的同时,有效处理非均匀分布的阴影。
    在这里插入图片描述

  • 实验验证:论文在多个公开数据集上进行了广泛的实验,验证了HomoFormer在阴影去除任务中的优越性,并展示了其在生成高质量无阴影图像方面的能力。

4. 实验与结果

  • 数据集:实验在ISTD+和SRD两个基准数据集上进行,评估了HomoFormer与现有最先进方法的性能对比。

  • 定量评估:HomoFormer在阴影区域、非阴影区域和整个图像上的均方误差(MAE)、峰值信噪比(PSNR)和结构相似性(SSIM)等指标上均优于现有方法。
    SDR
    在这里插入图片描述

  • 定性评估:视觉对比结果显示,HomoFormer生成的图像具有更少的伪影和更清晰的细节。
    在这里插入图片描述
    在这里插入图片描述

  • 消融实验:通过消融实验验证了随机打乱操作和结构建模FFN的有效性,表明它们对提升模型性能起到了关键作用。

5.核心代码

import torch
import torch.nn as nn
import torch.utils.checkpoint as checkpoint
from timm.models.layers import DropPath, to_2tuple, trunc_normal_
import torch.nn.functional as F
from einops import rearrange, repeat
from einops.layers.torch import Rearrange
import math
import numpy as np
import time
from torch import einsum
import randomclass PModule(nn.Module):def __init__(self, dim=32, hidden_dim=128, act_layer=nn.GELU, drop=0.):super().__init__()self.linear1 = nn.Linear(dim, hidden_dim)self.dwconv = nn.Conv2d(hidden_dim, hidden_dim, groups=hidden_dim, kernel_size=3, stride=1, padding=1)#self.selayer = SELayer(hidden_dim//2)self.linear2 = nn.Sequential(nn.Linear(hidden_dim//2, dim))self.dim = dimself.hidden_dim = hidden_dimdef forward(self, x, img_size=(128, 128)):# bs x hw x chh,ww = img_size[0],img_size[1]x = self.linear1(x)# spatial restorex = rearrange(x, ' b (h w) (c) -> b c h w ', h=hh, w=ww)x1,x2 = self.dwconv(x).chunk(2, dim=1)x3 = x1 * x2#x4=self.selayer(x3)# flatenx3 = rearrange(x3, ' b c h w -> b (h w) c', h=hh, w=ww)y = self.linear2(x3)return yclass SepConv2d(torch.nn.Module):def __init__(self,in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1, act_layer=nn.ReLU):super(SepConv2d, self).__init__()self.depthwise = torch.nn.Conv2d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3465.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgis提取不规则栅格数据的矢量边界

效果 1、准备数据 栅格数据:dem或者dsm 2、栅格重分类 分成两类即可 3、新建线面图层 在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。 在弹出的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选…

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数:⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数(更准确) •在C语⾔中我们⼀般会⻅到两类函数:库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具,Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…

Adobe与MIT推出自回归实时视频生成技术CausVid。AI可以边生成视频边实时播放!

传统的双向扩散模型(顶部)可提供高质量的输出,但存在显著的延迟,需要 219 秒才能生成 128 帧的视频。用户必须等待整个序列完成才能查看任何结果。相比之下CausVid将双向扩散模型提炼为几步自回归生成器(底部&#xff…

MySQL(高级特性篇) 06 章——索引的数据结构

一、为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件…

turtle教学课程课堂学习考试在线网站

完整源码项目包获取→点击文章末尾名片!

python中的RPA->playwright自动化录制脚本实战案例笔记

playwright录制功能使用绕过登录操作 1、首先安装playwright pip install playwright2、 安装支持的浏览器 playwright install # 安装支持的浏览器:cr, chromium, ff, firefox, wk 和 webkit3、接着在自己的项目下运行录制命令: playwright codegen…

电脑风扇声音大怎么办? 原因及解决方法

电脑风扇是电脑的重要组件之一,它的作用是为电脑的各个部件提供冷却,防止电脑过热。然而,有时候我们会发现电脑风扇的声音特别大,不仅影响我们的使用体验,也可能是电脑出现了一些问题。那么,电脑风扇声音大…

python如何解析word文件格式(.docx)

python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…

PHP智慧小区物业管理小程序

🌟智慧小区物业管理小程序:重塑社区生活,开启便捷高效新篇章 🌟 智慧小区物业管理小程序是一款基于PHPUniApp精心雕琢的智慧小区物业管理小程序,它犹如一股清新的科技之风,吹进了现代智慧小区的每一个角落…

26个开源Agent开发框架调研总结(一)

根据Markets & Markets的预测,到2030年,AI Agent的市场规模将从2024年的50亿美元激增至470亿美元,年均复合增长率为44.8%。 Gartner预计到2028年,至少15%的日常工作决策将由AI Agent自主完成,AI Agent在企业应用中…

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日,由中国信息通信研究院(以下简称“中国信通院”)主办的“2025 中国信通院深度观察报告会:算力互联网分论坛”,在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题,全面展示中国…

Elasticsearch:Jira 连接器教程第二部分 - 6 个优化技巧

作者:来自 Elastic Gustavo Llermaly 将 Jira 连接到 Elasticsearch 后,我们现在将回顾最佳实践以升级此部署。 在本系列的第一部分中,我们配置了 Jira 连接器并将对象索引到 Elasticsearch 中。在第二部分中,我们将回顾一些最佳实…

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…

每打开一个chrome页面都会【自动打开F12开发者模式】,原因是 使用HBuilderX会影响谷歌浏览器的浏览模式

打开 HBuilderX,点击 运行 -> 运行到浏览器 -> 设置web服务器 -> 添加chrome浏览器安装路径 chrome谷歌浏览器插件 B站视频下载助手插件: 参考地址:Chrome插件 - B站下载助手(轻松下载bilibili哔哩哔哩视频&#xff09…

XML在线格式化 - 加菲工具

XML在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML,点击左上角的“格式化”按钮 得到格式化后的结果

微信原生小程序自定义封装组件(以导航navbar为例)

封装 topnav.js const App getApp(); Component({// 组件的属性列表properties: {pageName: String, //中间的titleshowNav: { //判断是否显示左上角的按钮 type: Boolean,value: true},showHome: { //判断是否显示左上角的home按钮type: Boolean,value: true},showLocat…

RPA赋能内容创作:打造小红书入门词语图片的全自动化流程

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 用RPA全自动化批量生产【入门词语】图片做小红书商单,保姆级工具开发教程 最近由…

Linux SUID提权

文章目录 1. SUID/SGID2. 查找SUID文件3. SUID/SGID提权3.1 SUID配置不当3.2 SUID systemctl提权3.3 $PATH变量劫持 4. 参考 1. SUID/SGID SUID(Set User ID)意味着如果某个用户对属于自己的文件设置了这种权限,那么其他用户在执行这一脚本时…

【PyQt】图像处理系统

[toc]pyqt实现图像处理系统 图像处理系统 1.创建阴影去除ui文件 2.阴影去除代码 1.创建阴影去除ui文件 UI文件效果图: 1.1QT Desiger设置组件 1.两个Pushbutton按钮 2.两个label来显示图像 3.Text Browser来显示输出信息 1.2布局的设置 1.先不使用任何La…