【YOLO v5 v7 v8 小目标改进】BiFormer:从局部空间特征到高效的全局空间特征

BiFormer:从局部空间特征到高效的全局空间特征

    • 提出背景
      • BiFormer 结构
    • 小目标涨点
      • YOLO v5 魔改
      • YOLO v7 魔改
      • YOLO v8 魔改

 


提出背景

论文:https://arxiv.org/pdf/2303.08810.pdf

代码:https://github.com/rayleizhu/BiFormer

 

问题: 传统的卷积神经网络(CNN)在处理图像时局限于局部上下文,难以捕捉全局上下文信息。

解法:

  • 注意力机制能够计算空间位置间的特征亲和力,从而捕获长距离依赖,提高模型对全局信息的理解能力。

  • 引入注意力模型到计算机视觉中,使用注意力机制代替卷积操作,实现全局上下文建模。

Transformer 变压器模型由于其能够捕捉长距离依赖和高度的灵活性,在自然语言处理(NLP)领域取得了巨大成功。

  • 从【注意力机制】开始,到【Transformer】

近年来,研究者开始将(Transformer)变压器应用于计算机视觉任务,期望能够借助其长距离依赖捕捉能力来改进视觉理解。

然而,视觉数据的高维度特性使得直接应用变压器模型变得计算代价高昂。

这是因为(Transformer)变压器模型依赖于注意力机制,该机制需要计算和存储所有输入数据点之间的相互作用,导致随着输入大小的增加,所需的计算资源和内存急剧增加。

在这里插入图片描述
六种不同的注意力机制及其在处理图像时的关注点(由星号标记)。这些机制包括:

  • (a) Vanilla Attention:传统的全局注意力机制,计算所有空间位置上的特征关联,计算量大,内存占用高。
  • (b) Local Attention:局部注意力机制,仅在局部窗口内计算特征关联。
  • © Axial Attention:轴向注意力,按行或列计算特征关联。
  • (d) Dilated Attention:扩张注意力,使用扩张的窗口来捕捉更广范围的上下文信息。
  • (e) Deformable Attention:变形注意力,能够适应图像内容调整关注的区域。
  • (f) Bi-level Routing Attention:双层路由注意力,这是BiFormer使用的机制,先在区域级别筛选相关区域,然后在这些区域中进行令牌到令牌的注意力计算。

问题: 虽然注意力机制能够提升模型对全局信息的捕捉能力,但它需要计算所有空间位置间的成对特征亲和力,导致高计算复杂度和内存消耗。

解法:

  • 开发更高效的注意力机制,通过减少必须计算和存储的亲和力对数量来降低计算和内存复杂度。
  • 作者提出了一种创新的注意力机制——双层路由注意力机制。

在这里插入图片描述
上图是 BiFormer 如何通过收集最相关的键值对来减少计算和提高效率,使用密集矩阵乘法来进行高效计算,这对GPU是友好的。

这种机制通过以下步骤降低计算复杂度和内存占用:

  • 子解法1: 稀疏注意力引入:

    • 为了减少计算复杂度和内存占用,只让模型关注一小部分最重要的信息(键值对)。
    • 之所以用这个子解法,是因为传统的注意力机制需要计算所有数据点之间的关系,非常消耗计算资源。
    • 操作: 将输入特征图分割成多个非重叠的区域,并对每个区域的特征进行线性投影,以获得该区域的查询(Q)、键(K)和值(V)。
  • 子解法2: 区域级路由:

    • 首先在更大的区域级别筛选出最可能相关的区域,减少需要进一步处理的数据量。
    • 之所以用这个子解法,是因为直接在最细节的层面(像素或特征点)上筛选相关信息效率低下。
    • 操作: 构建一个有向图来确定哪些区域应该被给定区域关注,进而通过保留每个区域最相关的k个连接来修剪亲和图。
  • 子解法3: 令牌级注意力应用:

    • 在通过区域级筛选后的数据上,进行细致的处理,确保关注到的是确实有价值的信息。
    • 之所以用这个子解法,是因为即使在区域级筛选后,我们仍需要从这些区域中找到最具体、最相关的信息。
    • 操作: 在经过区域到区域路由后,对选定的区域内的所有键值对应用细粒度的令牌到令牌注意力,使用聚合操作以适应现代GPU的内存访问模式。

这一机制使BiFormer模型能够以内容感知的方式,仅关注对每个查询最相关的一小部分信息,大幅提高了计算效率和性能。

在这里插入图片描述
图展示了BiFormer模型的注意力机制如何聚焦于图像的不同部分。

对于两个场景,它展示了原始图像并标出了两个查询位置,模型关注的相应区域(路由区域),以及最终的注意力热图。

这说明了模型基于查询位置选择性地聚焦于输入图像相关部分的能力。

 
举个例子,在一个大型图书馆里寻找关于“人工智能”的书籍,这个图书馆有成千上万的书籍,分布在不同的区域和书架上。

  1. 子解法1: 稀疏注意力引入:

    • 这就像是你已经知道“人工智能”书籍只可能在“科技”和“计算机科学”这两个大的分类区域中。
    • 因此,你不需要去每个区域逐本查看所有的书籍,而是直接去这两个与你的需求最相关的区域。
    • 之所以采用这种方法,是因为如果检查图书馆里的每一本书,将会非常耗时。这就像是传统注意力机制需要计算所有数据点之间的关系,非常耗费时间和精力。
  2. 子解法2: 区域级路由:

    • 当你到达“科技”和“计算机科学”区域后,你会注意到这些区域根据子主题进一步划分成小区域,比如“软件开发”、“网络安全”和“人工智能”。
    • 在这一步,你会选择直接前往“人工智能”小区域,而忽略其他不相关的小区域。
    • 之所以这样做,是因为即使在“科技”和“计算机科学”这两个大区域中,也存在大量与你的需求不相关的书籍。直接前往最可能包含你需要信息的小区域,可以更高效地找到目标书籍。
  3. 子解法3: 令牌级注意力应用:

    • 在“人工智能”小区域里,你会详细检查每一本书的标题和简介,找到最符合你需求的几本书。
    • 这一步骤确保了你不仅找到了正确的区域,也找到了具体的、最有价值的信息。
    • 之所以需要这一步,是因为即使是在“人工智能”小区域内,也会有许多不同方向和层次的书籍。细致地挑选能够确保你获得最相关和有价值的信息。

这种“筛选和聚焦”的方法大大减少了搜索的范围和复杂度,最终使你能够高效地找到你需要的信息。

这与在变压器模型中引入双层路由注意力机制的目的是一致的:先大范围筛选出可能相关的区域,再在这些区域中寻找最具体、最相关的信息。

BiFormer 结构

在这里插入图片描述
这幅图是BiFormer模型的整体架构和一个BiFormer模块的详细构造。

左侧:BiFormer的整体架构

  • 输入是一个具有高度H、宽度W和3个颜色通道的图像。
  • 模型被分为四个阶段,每个阶段都包含一个或多个BiFormer块(标记为 ( N 1 , N 2 , N 3 , N 4 ) ( N_1, N_2, N_3, N_4) (N1,N2,N3,N4)
  • 第一阶段开始于一个补丁嵌入层,将图像转换成一个维度为 H 4 × W 4 × C \frac{H}{4} \times \frac{W}{4} \times C 4H×4W×C 的特征映射。
  • 在接下来的每个阶段,通过补丁合并模块将特征映射的空间分辨率减半,同时增加通道数(例如,第二阶段的输出是 H 8 × W 8 × 2 C \frac{H}{8} \times \frac{W}{8} \times 2C 8H×8W×2C
  • 这样的金字塔结构有助于模型在不同的尺度上捕捉图像特征,对于处理复杂的视觉任务非常有用。

右侧:BiFormer模块的细节

  • 一个BiFormer块由几个主要部分组成:
    • 深度可分离卷积(DWConv 3x3):它是一个轻量级的卷积层,用于捕捉局部特征并保持计算效率。
    • 双层路由注意力(Bi-level Routing Attention):这是BiFormer的核心特性,它动态地选择与每个查询最相关的键值对,而不是简单地与所有特征交互。
    • 层正规化(LN):用于稳定模型的训练过程。
    • 多层感知机(MLP):一个全连接的网络部分,用于非线性特征变换。

这种设计使得BiFormer在处理大规模图像数据时,能够有效地降低计算负担,同时保持对长距离依赖的敏感性。

每个BiFormer块通过细化特征表示,并结合多尺度信息处理,以提升模型的视觉识别能力。

小目标涨点

更新中…

YOLO v5 魔改

YOLO v7 魔改

YOLO v8 魔改

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

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

相关文章

就业班 2401--3.1 Linux Day9--文件查找和压缩

一、文件查找与打包压缩 grep: 文件内容过滤 [rootqfedu.com ~]# grep root /etc/passwd #从/etc/passwd文件中过滤root字段 grep ^root root$ root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 查找命令 [rootqfedu.com ~]# which ls ali…

大屏自适应最优解决方案(transform:scale)

① 大屏使用rem 耗时 而且对浏览器最小字体不支持, ② 使用transform:scale可以节省百分之九十工作量 ③ 好处不多说:看一篇文章 学习一下 咱们再来实战! 优点:前期可以直接写页面,后期直接加上组件就行了,…

仿牛客网项目---帖子详情功能的实现

这篇文章主要讲讲帖子详情功能。其实帖子详情功能简单来说就是你点进去可以看到文章&#xff0c;这就叫帖子详情功能。那接下来我讲讲我的这个项目是如何实现这个功能的。 首先写DAO层。 Mapper public interface DiscussPostMapper {List<DiscussPost> selectDiscussPo…

【HbuilderX】 uniapp实现 android申请权限 和 退出app返回桌面

目录 android申请权限&#xff1a; 监听用户是否开启权限或关闭权限&#xff1a; 退出app返回桌面&#xff1a; android申请权限&#xff1a; 首先在 manifest.json 内添加你所需要用到权限 添加权限插件 permission.js 一次就好1/权限插件 - Gitee.comhttps://gitee.co…

element-plus表格合并

要实现这样的表格&#xff0c; 怎么做呢&#xff1f; 甚至是这种三级的呢&#xff1f; 官网的案例也是通过这个方法进行配置的&#xff0c;也就是说表格长什么样&#xff0c;关键在怎么处理的方法上。 这是官网的方法&#xff0c;可参考拓展&#xff1a; const arraySpanMeth…

rk3568 gamc0 控制器寄存器配置不了导致连接不上phy

系统启动 GMAC 的驱动开机 log 上出现打印&#xff1a;No PHY found 或者 Cannot attach to PHY。查阅rk 官方gmac 配置指导手册出现改问题的原因可能如下&#xff1a; 但反复检查硬件和软件发现都没问题。看内核启动日志发现gamc0 在启动过程中读取gmac0 的版本id是读取不到&a…

38.云原生之Istio安全-流量鉴权加密

云原生专栏大纲 文章目录 TLS 和 mTLSTLS 和 mTLS使用场景TLS 加密通信的流程终止 TLS什么时候用 mTLS&#xff1f;什么时候不用 mTLS&#xff1f; 流量加密入口流量加密内部流量加密PeerAuthentication 为工作负载设置 mTLSDestinationRule 为工作负载设置 mTLS 安全最佳实战…

NLP - 神经网络与反向传播

使用神经网络进行命名实体识别&#xff08;二值词窗分类&#xff09; 根据上下文窗口 建立词向量 通过一个神经网络层&#xff0c;通过一个逻辑分类器&#xff0c;得到这个概率是属于特定实体词的预测概率。 另一个分类器来比较说明 这个词是哪个实体类型&#xff08;比较概率…

机器视觉中的图像传感器:CCD与CMOS的比较与应用

在机器视觉领域&#xff0c;图像传感器的作用至关重要&#xff0c;它们负责将捕获的光信号转换成电信号&#xff0c;进而被计算机系统分析和处理。目前市场上主要有两种类型的图像传感器&#xff1a;电荷耦合器件&#xff08;CCD&#xff09;和互补金属氧化物半导体&#xff08…

夯实数据管理基础,激活数据资产价值—数据资产运营解决方案介绍

“数据是企业的核心战略资产”已然成为共识。然而金融行业数据资产运营目前普遍存在“锚不定”&#xff0c;缺少企业级数据战略&#xff0c;业数融合不足&#xff1b;“驱不动”&#xff0c;缺少业务和运营思维&#xff0c;以技术为驱动的推进模式&#xff0c;缺乏升级活力&…

Java毕业设计 基于SpringBoot vue 社区团购系统

Java毕业设计 基于SpringBoot vue 社区团购系统 SpringBoot vue 社区团购系统 功能介绍 前端用户: 首页 图片轮播 商品信息 商品分类展示 搜索 商品详情 点我收藏 添加到购物车 立即购买 我要开团 去参团 评论 公告资讯 资讯详情 登录 注册 个人中心 更新信息 点我充值 我的订…

【kubernetes】kubeadm部署k8s集群(3主3从+keepalived/nginx负载均衡高可用)

目录 一、完成系统初始化 步骤一&#xff1a;常规环境初始化 步骤二&#xff1a;内核版本升级以及内核限制文件参数修改 步骤三&#xff1a;提前准备好负载均衡器和keepalived(接着之前的二进制部署修改的) 二、所有节点部署docker&#xff0c;以及指定版本的kubeadm 步骤…