论文地址:https://arxiv.org/pdf/1811.11721v1.pdf  code address: https://github.com/speedinghzl/CCNet

相关论文:https://arxiv.org/pdf/1904.09229.pdf     《XLSor: A Robust and Accurate Lung Segmentor on ChestX-Rays Using Criss-Cross Attention and CustomizedRadiorealistic Abnormalities Generation》

扩展论文:https://github.com/NVlabs/MUNIT  https://arxiv.org/abs/1804.04732 《Multimodal Unsupervised Image-to-Image Translation》

看第二个论文时,使用了论文一作为分割网路,论文三作为数据增强的手段。其实论文三是 style transform, pixel2pixel 最新工作,以后再看。

论文二中使用了CCNet这个新的网络结构,为了搞清楚CCA到底是怎么计算的,只能肯原始论文一:

这就是CCA的计算方式

H是一个 C通道 宽高 W,H的特征图

从出发有四条路径,最上边的是 残差结构 或者叫shortcut path(高速通道)  目的地是和Aggregation相加  那么这里 Aggregrateion就必须和H通样的形状   C*H*W

残差结构就是公式(2)。  那个求和就是 符号部分就是Aggregation做的

要理解Aggregation就要看从H 分出的下三路

最下边一路V没什么好看的 直接对 H做1*1的卷积,输出还是 和H相同的形状  C*H*W

Q,K也是1*1卷积 只不过  通道数量是:  C' < C 。

Q和K都是  C'*H*W 大小的特征图

下边就是高能的Affinity, 可以看到affinity后softmax得到A ,而A的结构是    (W+H-1)*W*H

A有 W+H-1个通道,所以Affinit后的结构也是 (W+H-1)*W*H

因为 A 和 Q K 的宽度和高度相同。每个位置u,u可以认为是二维特征图w,h上的一个像素。

由于CNN的对称性。只需要关注某一个位置u的计算方式即可。

这时候我们拿Q 上的一个位置 u ,我们知道在u这个位置看下去 是一个 C' 维度的向量。 记作Qu  维度 C‘

这时候要A中对应u的地方应该是由 Qu 和 K作用而来 ,由于A对应的维度是  (W+H-1)维

W+H-1 刚好是位置u 所在 行数+列数 方向的像元总数,自己算了两次减去一次。 就是下图中十字的形状。这个十字形状

就是H+W-1

那么从向量 Qu  和  K中的 H+W-1个向量  需要得到一个  (H+w-1)的向量

因为 Qu 和 K中的向量维度相同 我们把K中的H+W-1个向量 编号为 Ku1 ku2, ku(h+w-1)

那么 Au= ((Qu* Ku1 , Qu*Ku2, Qu*Ku3, Qu*Ku4, ... ,... Qu*Ku(h+w-1))    就是这样    Qu*Kui 表示 Qu和Kui的内积

其实这样算完之后还在通道方向做了个softmax。

这样就算把A算完了

A最终得到的形状是 (H+W-1)*H*W   每个通道表示attention 因为经过softmax了,就是概率了。

接下来就是A和V的结合 Aggregation  ,就是公式2的 求和部分

V的通道数是 C

那么这个和上边的操作有点像,这次只不过从内积变成了 线性组合

这里方便起见以A为中心,

对应于位置u

从A看下去是  H+W-1维的向量

V中对应位置 u,同样找到过他的横竖两条线段,同样是个十字形状有 H+W-1个向量 每个向量是 C维

这时候 用A中的 向量作为系数, 作用到 V中的H+W-1个向量   加起来,就是线性组合啊。  得到一个 C维的向量,这个向量是V中十字领域向量的线性组合

这样Aggreation就是2是中的 求和一项做的完成 Aggreation。

以上就是CCA, 作者还证明了 两个CCA就能够获取全局视野。不看了我。

效果很好,取得很好的结果。

CNN发明以来,各种矩阵操作。

问题是Aggregation部分不就是个卷积吗,十字形状的卷积。

通常的卷积是同位置不同通道的卷积的参数不同。

这个整的是不同位置的卷积核不同,但是在通道上相同。

汗啊,CNN快要被玩坏了。

CCNet: Criss-Cross Attention for Semantic Segmentation 里的Criss-Cross Attention计算方法的更多相关文章

  1. Semantic Segmentation on Remotely Sensed Images Using an Enhanced Global Convolutional Network with Channel Attention and Domain Specific Transfer Learning

    创新点: 1.在GCN(global convolutional network)基础上,把他的backbone替换成更多层的,使其适应中分辨率影像,resnet50,101,152 2.利用 cha ...

  2. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

  3. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  4. Adversarial Examples for Semantic Segmentation and Object Detection 阅读笔记

    Adversarial Examples for Semantic Segmentation and Object Detection (语义分割和目标检测中的对抗样本) 作者:Cihang Xie, ...

  5. Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregation

    Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregati ...

  6. semantic segmentation 和instance segmentation

    作者:周博磊链接:https://www.zhihu.com/question/51704852/answer/127120264来源:知乎著作权归作者所有,转载请联系作者获得授权. 图1. 这张图清 ...

  7. 【Semantic Segmentation】 Instance-sensitive Fully Convolutional Networks论文解析(转)

    这篇文章比较简单,但还是不想写overview,转自: https://blog.csdn.net/zimenglan_sysu/article/details/52451098 另外,读这篇pape ...

  8. 【Semantic segmentation】Fully Convolutional Networks for Semantic Segmentation 论文解析

    目录 0. 论文链接 1. 概述 2. Adapting classifiers for dense prediction 3. upsampling 3.1 Shift-and-stitch 3.2 ...

  9. Convolutional Networks for Image Semantic Segmentation

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52857657 把前段时间自己整理的一个 ...

随机推荐

  1. ansible-play变量的基本应用

    --- - host: appsrvs remote_user: root tasks: - name: install package yum: name={{ pkname }} - name: ...

  2. 第六次作业———numpy数据集练习

    1. 安装scipy,numpy,sklearn包 2. 从sklearn包自带的数据集中读出鸢尾花数据集data 3.查看data类型,包含哪些数据 4.取出鸢尾花特征和鸢尾花类别数据,查看其形状及 ...

  3. 简单的bootstarp项目实例

    ===========index.html==============<!DOCTYPE html> <html> <head> <meta charset= ...

  4. Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理

    作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...

  5. 第九周学习笔记-ADO.Net中DataSet的应用

    一.知识点描述 1.含义:DataSet是ADO.Net的断开式结构的核心组件,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据.DataSet包含一个或多个DataTable ...

  6. 马凯军201771010116《面向对象与程序设计Java》第十一周学习总结

    一.理论知识部分 第九章  集合 1.数据结构介绍:线性结构:线性表,栈,队列,串,数组,文件.非线性结构:树,图. 散列表:又称为哈希表. 散列表算法的基本思想是:以结点的关键字为自变量,通过一定的 ...

  7. 牛客网小a的旅行计划

    地址:https://ac.nowcoder.com/acm/contest/223/B 此题是一道套公式题目,不难,ans=(pow(4,n+1)-4*pow(3,n+1)+6*pow(2,n+1) ...

  8. java后端的知识学习

    有良好的计算机基础知识,熟悉计算机网络技术以及常用的设计模式:有扎实的 Java 语言基础,熟悉 Java 多线程编程技术.JVM 虚拟机原理:熟悉J2EE体系架构,熟悉WebService.Spri ...

  9. Python 语法2

    文档字符串,这个只能是用于紧跟函数第二行的内容. 输出文档说明的部分,代码格式是 函数名称.(dot)__(双下划线)doc__(双下划线) ///////////////////////////// ...

  10. 设置Linux系统的LANG变量

    设置linux系统的LANG变量 对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文 ...