论文推荐:CCNet用于语义分割的交叉注意力

news2024/11/17 0:53:43

CCNet, Transformer递归交叉自注意力,比非局部神经网络更有效。华中科技大学、地平线、ReLER 和伊利诺伊大学香槟分校联合研发

论文提出了交叉网络 (CCNet),对于每个像素,CCNet 中的一个新的交叉注意力模块收集其交叉路径上所有像素的上下文信息。通过进一步的递归操作,每个像素最终都可以从所有像素中捕获完整图像的依赖关系。与 Non-Local Neural Network 相比,CCNet 使用的 GPU 内存减少了 11 倍,FLOP 减少了约 85%。TPAMI的CCNet,进一步增强了更好的损失函数,扩展到3D情况。

CCNet (2019 ICCV)

CNN骨干:深度卷积神经网络(DCNN),以全卷积的方式设计,如DeepLabv2,用于生成空间大小为H×W的特征图X。去除最后两个下采样操作,并在后续的卷积层中使用膨胀卷积,从而将输出特征映射的宽度/高度放大X到输入图像的1/8。

交叉注意力模块

对于输入X,应用卷积层来获得降维的特征图H,然后将特征图H输入到cross -cross attention模块以生成新的特征图H '。

特征图H '仅聚合水平和垂直方向的上下文信息。

为了获得更丰富、更密集的上下文信息,特征图H '会再次输入到交叉注意力模块中,以获得特征图H ’’。特征图H”中的每个位置实际上收集了所有像素的信息。

两个交叉注意力模块在前后共享相同的参数,这样可以避免添加过多的额外参数,它被命名为循环交叉注意力(RCCA)模块。

然后,密集上下文特征H”与局部表示特征x会被连接起来,通过一个或多个卷积层进行批量归一化和激活进行特征融合。最后将融合后的特征送入分割层预测最终的分割结果。

CCNet (2020 TPAMI)

类别一致的特征学习

在TPAMI中,除了分割损失的交叉熵损失lseg之外,还增加了类别一致的损失来驱动RCCA模块直接学习类别一致特征。lvar、ldis、lreg 被用于

  • 惩罚每个实例具有相同标签的特征之间的大距离
  • 惩罚不同标签的平均特征之间的小距离
  • 分别向原点绘制所有类别的平均特征

表示如下

图中设C是类的集合,Nc是属于类C的有效元素个数,hi是空间位置i的特征向量,μc是类C∈C(聚类中心)的均值特征。φ是一个分段距离函数。δv和δd分别为边距。为了减少计算量,首先在RCCA模块的输出上应用一个带有1×1核的卷积层进行降维,然后将这三个损失应用于通道较少的特征图。最终损失l是所有损失的加权和:

这里的δv= 0.5, δd=1.5, α=β=1, γ=0.001, 16为用于降维的通道数。

3D交叉注意力

3D注意力架构是对2D版本的扩展,它从时间维度收集了更多的上下文信息。

实验结果

Cityscapes数据集

在没有附加特征的情况下,采用单尺度测试的CCNet仍然可以达到相当的性能。

经过训练和验证集的训练,CCNet在测试集上的性能大大优于所有以前的最先进技术。

在基线中添加一个交叉注意模块(R=1),性能提高了2.9%。

将循环次数从1次增加到2次可以进一步提高1.8%的性能,证明了密集上下文信息是效性的。将循环从2个增加到3个,略微提高了0.4%的性能。

在损失函数中使用分段函数可以获得比单一二次函数稍好的性能。

下图中,“+RCCA”分两步形成密集的上下文信息,后一步可以从第一步生成的特征图中学习到更好的注意力图,因为第一步已经嵌入了一些长期依赖关系。

与非局部神经网络中的“+NL”方法相比,论文提出的“+RCCA”方法在计算全图像依赖时,GPU内存占用减少了11倍,FLOPs显著降低了约85%的非局部块。

当R=2时,可以学习到长期依赖关系,而当R=1时则不能。

ADE20K数据集

使用CCL的CCNet实现了45.76%的最佳性能,比以前的最先进方法高出1.1%以上,也比会议发布时的CCNet高出0.5%。

添加CCL的效果更好。

LIP数据集

CCNet实现了55.47%的最佳性能,比以前最先进的方法高出2.3%以上。

前两行显示了一些成功的分割结果。CCNet可以对复杂的姿态进行准确的分割。第三行显示了一个失败的分割结果,其中“裙子”被错误地分类为“裤子”。

COCO数据集

CCNet在所有指标上都大大优于基线。

CamVid数据集

CCNet的3D版本,CCNet3D在CamVid上结果。

CCNet3D实现了79.1%的mIoU,大大超过了所有其他方法。

论文地址

[2019 ICCV] [CCNet]CCNet: Criss-Cross Attention for Semantic Segmentation

[2020 TPAMI] [CCNet]CCNet: Criss-Cross Attention for Semantic Segmentation

https://avoid.overfit.cn/post/b5cfb577af0248f1b12a63d8c3b10928

作者:Sik-Ho Tsang

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧路口:未来都市的智能节点

摘要交通路口是部署未来智慧城市的计算、通信和情报服务的最合适地点。需要收集和处理的大量数据,再加上隐私和安全问题,促使边缘计算范式的使用,这种范式与大都市的物理交叉路口很好地吻合。本文主要针对高带宽、低时延的应用,在…

2007-2022年消费者信心、满意度、预期指数月度数据(CCI、CEI、CSI、CGPI)

根据企业商品价格指数与消费者信心指数、消费者满意指数、消费者预期指数的月度数据,可以探究商品价格对消费者信心的影响作用和作用机制。 商品价格与消费者信心的三类细分指数均具有滞后二阶关联,其中,商品价格对对消费者预期指数的影响作…

IndexedDB的包装器JsStore - 实现登录功能及事务处理

JsStore是IndexedDB的包装器。它提供了简单的SQL像api,这是容易学习和使用。 IndexedDb查询可以在web worker内部执行,JsStore通过提供一个单独的worker文件来保持这种功能。 最近有位叫Pioneer网友一直在问我关于事务的实现方式,关于…

谷粒学院——Day13【微信扫描登录】

OAuth2 OAuth2的使用场景 一、OAuth2解决什么问题 1. OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源。 2. 图例 资源拥有者:照片拥有者。 客户应用:云冲印。 受保护的资源&#xff…

Python pandas库|任凭弱水三千,我只取一瓢饮(2)

上一篇链接: Python pandas库|任凭弱水三千,我只取一瓢饮(2)_Hann Yang的博客-CSDN博客 I~Q: Function10~25 Types[Function][9:25] [infer_freq, interval_range, isna, isnull, json_normalize, lres…

④【Maven】Maven的构建命令

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Maven的构建命令一、注意二、🚀清理…

指针与数组的联系与区别【一万六千字超详解】

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言数组的性质1.1 数组的内存布局1…

第四章 Spring的基础用法

文章目录 Spring的起源和背景理解依赖注入Spring容器理解Spring容器中的Bean管理容器中的Bean及其依赖注入自动装配使用Java类进行配置管理使用静态工厂、实例工厂创建Bean实例抽象Bean与子Bean容器中的工厂Bean管理Bean的生命周期几种特殊的依赖注入Spring的简化配置SpEL的功…

kali中间人攻击

数据来源 一、中间人攻击原理 1. 利用的ARP协议的漏洞 2. ARP协议原理: 1)发送ARP广播请求目标MAC地址 2)目标主机发送ARP单播应答,响应MAC地址 3. ARP攻击原理 攻击人通过发送虚假的ARP应答实现ARP缓存投毒!而受害人没有办法进行…

文件存储案例

1.文件存储-File文件存储案例 1.1.案例要求 1.2参考代码 文件读取 百度安全验证 文件最终的保存的目录在/data/data/user/0/包/files下&#xff08;1&#xff09;布局文件 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android&q…

kubernetes中使用Service反向代理外部服务

当我们的某个服务在外部集群的时候&#xff0c;但是又想k8s集群内的应用连接它&#xff0c;这是可以创建一个service&#xff0c;用service代理外部服务&#xff0c;然后集群内就能连接该service&#xff0c;从而间接的访问外部服务。 创建一个service代理外部的服务 创建一个…

代码挑战画 魔法圣诞树

一、前言 本文会基于C# GDI技术 从零到一 实现一颗 魔法圣诞树&#xff01;源码和素材在文末全部都有&#xff01; 二、魔法圣诞树 对于用代码画圣诞树&#xff0c;网上各种编程语言像python、css、java、c/c我们都有见到过了&#xff0c;那么在绘图方面&#xff0c;还有一位…

FastDDS(6)核心库综述

Fast DDS(前身为Fast RTPS)是DDS规范的高效高性能实现,DDS规范是一种用于分布式应用软件的以数据为中心的通信中间件(DCPS)。本次回顾Fast DDS的体系结构、操作和关键特性。 架构 Fast DDS的架构如下图所示,其中可以看到具有以下不同环境的层模型。 Application layer应…

人员工装未穿戴识别检测 opencv

人员工装未穿戴识别检测基于OpenCvyolo计算机视觉深度学习技术对现场画面中人员行为着装穿戴实时监测识别&#xff0c;发现不按要求着装违规行为立即抓拍存档同步后台。OpenCV-Python使用Numpy&#xff0c;这是一个高度优化的数据库操作库&#xff0c;具有MATLAB风格的语法。所…

RabbitMQ 第一天 基础 1 MQ的基本概念 1.4 MQ 的劣势 1.5 常见的MQ 产品

RabbitMQ 【黑马程序员RabbitMQ全套教程&#xff0c;rabbitmq消息中间件到实战】 文章目录RabbitMQ第一天 基础1 MQ的基本概念1.4 MQ 的劣势1.4.1 MQ 的劣势1.4.2 小结1.5 常见的MQ 产品第一天 基础 1 MQ的基本概念 1.4 MQ 的劣势 1.4.1 MQ 的劣势 从远程调用 到 利用 MQ 作…

css实现九宫格

首先是实现九宫格的样式&#xff0c;对每一行进行偏移&#xff0c;当鼠标放上去会使他们形成一张图片。 html <div class"img_container"><div class"img1"></div><div class"img1"></div><div class"i…

2022年,来者犹可追

始料未及的是&#xff0c; 疫情持续到了2022年。好在“大疫不过三年”&#xff0c;只不过是结束来的同样措不及防&#xff0c;全家的一次高烧免疫&#xff0c;没有朋友圈中的云淡风轻&#xff0c;冷暖自知&#xff0c;希望明年能够拥有平安喜乐的时光。回首这一年&#xff0c;“…

kotlin与java实现混编基础看这篇就够了

前几年一直关注安卓&#xff0c;想换个方向&#xff0c;奔着移动端大步向前&#xff0c;由于比较懒就一直停留在想法&#xff0c;这不今天勤快点&#xff0c;动手搞了一个基础的java和kotlin混编&#xff0c;和大家总结分享一下。 首先需要了解什么事kotlin&#xff0c;kotlin…

如何使用腾讯云轻量应用服务器挂载 CFS 文件系统

文件存储&#xff08;Cloud File Storage&#xff0c;CFS&#xff09;提供了可扩展的共享文件存储服务&#xff0c;可与腾讯云云服务器 、容器、批量计算、轻量应用服务器等服务搭配使用。CFS 提供了标准的 NFS 及 CIFS/SMB 文件系统访问协议&#xff0c;可为计算服务提供共享的…

【Unity】【Pico】手柄摇杆控制第一人称移动和旋转

【Unity】【Pico】手柄摇杆控制第一人称移动和旋转 背景&#xff1a;开发影院系统 环境&#xff1a;Unity2021.3、PicoNeo3ProEye 描述&#xff1a;已经在Unity项目中实现第一人称WASD移动和鼠标旋转&#xff08;代码见我的其他博文&#xff09; 需求&#xff1a;希望项目在Pi…