下午好~ 我的论文【CV边角料】(第三期)

文章目录

  • CV边角料
    • Pixel Shuffle
    • SENet
    • CBAM
    • Global Context Block (GC)
    • Criss-Cross Attention modules (CC)

CV边角料

Pixel Shuffle

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

pixelshuffle算法的实现流程如上图,其实现的功能是:将一个H × W的低分辨率输入图像(Low Resolution),通过Sub-pixel操作将其变为rH x rW的高分辨率图像(High Resolution)。

但是其实现过程不是直接通过插值等方式产生这个高分辨率图像,而是通过卷积先得到 r^2个通道的特征图(特征图大小和输入低分辨率图像一致),然后通过周期筛选(periodic shuffing)的方法得到这个高分辨率的图像,其中r为上采样因子(upscaling factor),也就是图像的扩大倍率。

class torch.nn.PixleShuffle(upscale_factor)

ps = nn.PixelShuffle(3)
input = torch.tensor(1, 9, 4, 4)
output = ps(input)
print(output.size())
# torch.Size([1, 1, 12, 12])

SENet

Squeeze-and-Excitation Networks(SENet)主要特点是引入了一种新的网络结构单元——Squeeze-and-Excitation Block(SE Block),通过动态调整特征通道之间的权重来实现对不同特征的重新校准和增强。
SENet中的SE Block包括两个部分:Squeeze和Excitation。Squeeze操作将输入特征图压缩成一个向量,这个向量包含了所有通道的信息;Excitation操作则对这个向量进行非线性变换,生成一个新的权重向量,用于对原始特征进行加权求和。最后,将加权后的特征与原始特征相乘,得到最终的特征表示。
在这里插入图片描述

CBAM

Convolutional Block Attention Module(CBAM)是结合了空间(spatial)和通道(channel)的注意力机制,对于输入特征图,CBAM沿着通道和空间两个独立的维度依次推断注意力图,然后将注意力图与原特征图相乘来对特征进行自适应调整。此外,研究表明,相比于只关注通道的注意力机制如SENet,CBAM可以获得更好的效果。

在这里插入图片描述

Global Context Block (GC)

是一种全局上下文建模框架,它能够像SNL block一样建立有效的长距离依赖关系,同时还能像SE block一样节省计算量。这种模块的设计理念在于捕获long-range dependency以提取全局信息,对于各种视觉任务都是非常有帮助的。

GC结构主要是基于Squeeze-and-Excitation Networks (SENet)和Non-local Networks。

SENet上面介绍过了。

而非局部神经网络(Non-local Neural Networks)是一种被设计来提升神经网络的泛化能力的模型。这种网络通过在网络中引入非局部块,可以捕获输入数据中的长距离依赖关系,使网络能够学习到更广泛和复杂的特征。

GCBlock首先使用1x1卷积层来减少通道数,然后应用squeeze操作来获取每个通道的全局信息。接下来,通过excitation操作,为每个通道重新分配权重。最后,通过使用这个权重来调整原始特征图。

在这里插入图片描述

Criss-Cross Attention modules (CC)

是一种在语义分割领域的注意力机制模块,由论文"CCNet: Criss-Cross Attention for Semantic Segmentation"提出。这个模块通过十字交叉注意力的设计,实现了更强的特征表达能力和更高的效率。总的来说,CCNet的优点包括生成更具辨别性的特征以及减少GPU内存的使用。

在criss-cross attention module中,重复使用了两次criss-cross注意力机制(选十字交叉的权重特征参与后续计算),因为只使用一次,该像素点的只能与周围呈十字型的像素点进行信息交互,使用两次之后,较远处的像素点同样可以间接作用于该像素点。信息传播大致如下图二所示。相比与non-local,计算量大大减少。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

八大排序——快速排序(霍尔 | 挖空 | 前后指针 | 非递归)

我们今天来讲讲八大排序中的快速排序,快速排序最明显的特点就是排序快,时间复杂度是O(N* logN),但是坏处就是如果排序的是一个逆序的数组的时候,时间复杂度是O(N^2),还不用我们的插入…

5.2 Java包装类

5.2 包装类 1. 介绍2. 基本数据类型和包装类之间的转换2.1 装箱2.2 拆箱3. 字符串与包装类相互转换 3. 其他3.1 基本类型初始值3.2 包装类的默认值3.3 包装类对象之间的比较 1. 介绍 2. 基本数据类型和包装类之间的转换 2.1 装箱 基本数据类型转包装类 //装箱:把基…

代码随想录算法训练营第二十四天(回溯算法篇)|理论基础,77. 组合

结束了二叉树的篇章,我们进入到回溯啦! 学习资料:代码随想录 (programmercarl.com) 理论基础 回溯算法又称回溯搜算算法,是一种搜索方法。 作为递归的“副产品”,只要右递归的地方就会有对应的回溯的过程。 回溯算…

Python往事:ElementTree的单引号之谜

最近在针对某款设备的界面xml进行更新过程中,被告知回稿的字串放在了一个excel文件中,而我要上传到服务器的界面用语是用xml文件封装的。再经过详细求证了翻译组提供excel文件的原因后,我决定用python来完成界面用语xml的更新,但是…

【深度学习目标检测】八、基于yolov5的抽烟识别(python,深度学习)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

一些关于fMRI脑数据的预处理工具

一些关于fMRI脑数据的预处理工具 前言概述SPM12工具箱FSL工具箱FreeSurfer工具箱BrainNet Viewer工具箱circularGraph工具箱Nipype集成框架fMRIPrep集成框架参考文献 前言 March 25, 2022 这里是关于fMRI脑数据的预处理工具的相关调研 主要是关于数据的预处理,数据…

C语言之冒泡排序

排序&#xff08;sort&#xff09;就是以一定的基准&#xff0c;将数据按照升序&#xff08;从小到大&#xff09;或降序&#xff08;从大到小&#xff09;重新排列。 冒泡排序法 我们用一段程序来演示。 /*读取学生的身高并排序*/ #include<stdio.h>#define NUMBER 5…

HPM6750系列--第十篇 时钟系统

一、目的 上一篇中《HPM6750系列--第九篇 GPIO详解&#xff08;基本操作&#xff09;》我们讲解了HPM6750 GPIO相关内容&#xff0c;再进一步讲解其他外设功能之前&#xff0c;我们有必要先讲解一下时钟系统。 时钟可以说是微控制器系统中的心脏&#xff0c;外设必须依赖时钟才…

独立看门狗 IWDG

看门狗介绍 "看门狗"通常指的是计算机科学和信息技术领域中的一种技术或设备&#xff0c;用于监控系统的运行状态&#xff0c;并在系统出现故障或异常情况时采取相应的措施。这种技术或设备起到类似于守卫的作用&#xff0c;确保系统的稳定性和可靠性。 在计算机系统…

算法通关村第十二关—字符串冲刺题(黄金)

字符串冲刺题 一、最长公共前缀 LeetCode14 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀&#xff0c;返回空字符串"" 示例1&#xff1a; 输入&#xff1a;strs["flower","fLow","flight"] 输出&#xff1a;&…

【C++学习————引用】

【C学习——————引用】 欢迎阅读新一期的c模块————引用 ✒️个人主页&#xff1a;-Joker- &#x1f3f7;️专栏&#xff1a;C &#x1f4dc;代码仓库&#xff1a;c_code &#x1f339;&#x1f339;欢迎大佬们的阅读和三连关注&#xff0c;顺着评论回访&#x1f339;&a…

Windows10 如何开机自动启动redis

前言 当我们在Windows 10上使用Redis时&#xff0c;通常希望能够使Redis服务在系统启动时自动启动&#xff0c;以便我们无需手动介入就能够方便地访问和管理数据。在这个过程中&#xff0c;我们将通过下载、安装和配置Redis为Windows服务的方式&#xff0c;使其成为系统的一部分…

[RTOS移植]--STM32F767移植RTThread

文章目录 通过STM32cube创建一个工程选择要移植的RTOS源下载到本地如果没有重启软件选择对应配置后续补充 通过STM32cube创建一个工程 选择要移植的RTOS源 下载到本地 如果没有重启软件 选择对应配置 Build started: Project: STM32F767 *** Using Compiler V5.06 update 7 (b…

FLStudio2024完整版水果音乐编曲制作软件

FL Studio2024是款专业的音频录制编辑软件&#xff0c;可以针对作曲者的要求编辑出不同音律的节奏&#xff0c;例如鼓、镲、锣、钢琴、笛、大提琴等等任何乐器的节奏律动。FL Studio目前在中国已经受到广大制作人喜爱&#xff0c;使用它制作的音乐作品也已经数不胜数&#xff0…

同义词替换在论文降重中的实际效果评估 快码论文

大家好&#xff0c;今天来聊聊同义词替换在论文降重中的实际效果评估&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;同义词替换在论文降重中的实际效果评…

NestJS入门手册:零基础开发第一个 HTTP 接口

前言 NestJS 是一个用于开发高效、可扩展的 Node.js 服务器端应用程序的框架。其优雅的 TypeScript 支持和深度集成的系统模块&#xff0c;使得开发复杂的后端服务变得前所未有的简单。在这篇文章中&#xff0c;我们将介绍 NestJS 的基础知识&#xff0c;帮助你快速入门。 准…

如何实现分布式调用跟踪?

分布式服务拆分以后&#xff0c;系统变得日趋复杂&#xff0c;业务的调用链也越来越长&#xff0c;如何快速定位线上故障&#xff0c;就需要依赖分布式调用跟踪技术。下面我们一起来看下分布式调用链相关的实现。 为什么需要分布式调用跟踪 随着分布式服务架构的流行&#xf…

软件测试基础知识总结

软件测试的IEEE定义&#xff1a;使用人工或自动的手段来运行或测量软件系统的过程&#xff0c;目的是检验软件系统是否满足规定的需求&#xff0c;并找出与预期结果之间的差异。 软件测试的发展趋势&#xff1a; ① 测试工作将进一步前移。软件测试不仅仅是单元测试、集成测…

【消息中间件】Rabbitmq的基本要素、生产和消费、发布和订阅

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、消息队列的基本要素1.队列:queue2.交换机:exchange3.事件:routing_key4.任务:task 二、生产消费模式1.安装pika2.模拟生产者进程3.模…

虚拟机Linux(Centos7)安装Docker

如果没有安装虚拟机的&#xff0c;可以参考这篇VMware虚拟机安装Linux操作系统&#xff08;CentOS7&#xff09; 文章目录 0.安装Docker1.CentOS安装Docker1.1.卸载&#xff08;可选&#xff09;如何看自己的虚拟机上是否安装过docker&#xff1f; 1.2.安装docker1.3.启动docke…