jaybo
jaybo
## Attention 应用在图像语义分割 视频: - [【极市】李夏-语义分割中的自注意力机制和低秩重建_哔哩哔哩](https://www.bilibili.com/video/av73259665/) - 文章:[用Attention玩转CV,一文总览自注意力语义分割进展](https://mp.weixin.qq.com/s/7ETHeN2xV_hEwkDxrhJyNg) 作者:北京大学 立夏 - [注意力机制_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili](https://www.bilibili.com/video/av54944893/?spm_id_from=333.788.videocard.0) --- [\[MXNet/Gluon\] 动手学深度学习番外篇:注意力机制概述_哔哩哔哩]() **page1:**  **page2:**  **page3:**  **注:在视频的 88 分钟多提了下在语义分割中的应用。** 
### 什么是滤波算子? 参考:[图像滤波算法总结 - CSDN](https://blog.csdn.net/jiang_ming_/article/details/82594261) > 图像滤波可以更改或者增强图像。通过滤波,可以强调一些特征或者去除图像中一些不需要的部分。滤波是一个邻域操作算子,利用给定像素周围的像素的值决定此像素的最终的输出值。 - 均值滤波 - 中值滤波 - 高斯滤波 - 双边滤波
[Non-local Neural Networks及自注意力机制思考 - 知乎](https://zhuanlan.zhihu.com/p/53010734) 即将位置或者空间注意力机制应用到了所有通道的每张特征图对应位置上,本质就是输出的每个位置值都是其他所有位置的加权平均值,通过softmax操作可以进一步突出共性。最后经过一个1x1卷积恢复输出通道,保证输入输出尺度完全相同。 通读全文,你会发现思路非常清晰,模块也非常简单。其背后的思想其实是自注意力机制的泛化表达,准确来说本文只提到了**位置注意力机制**(**要计算位置和位置之间的相关性,办法非常多**)。 个人认为:如果这些**自注意模块的计算开销优化的很小,那么应该会成为CNN的基础模块**。既然位置和位置直接的相关性那么重要,那我是不是可以认为**graph CNN**才是未来?因为**图卷积网络**是基于像素点和像素点之间建模,两者之间的权重是学习到的,性能肯定比这种自监督方式更好,后面我会写文章分析。 本文设计的模块依然存在以下的不足: (1) 只涉及到了位置注意力模块,而没有涉及常用的通道注意力机制 (2) 可以看出如果特征图较大,那么两个(batch,hxw,512)矩阵乘是非常耗内存和计算量的,也就是说当输入特征图很大存在效率底下问题,虽然有其他办法解决例如缩放尺度,但是这样会损失信息,不是最佳处理办法。 下一篇文章分析具有哪些扩展和新的改进策略。主要分析以下这些:  --- [计算机视觉中的Non-local-Block以及其他注意力机制](http://yanng.cc/2019/05/26/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89%E4%B8%AD%E7%9A%84Non-local-Block%E4%BB%A5%E5%8F%8A%E5%85%B6%E4%BB%96%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6/) 因此,针对远距离信息传递问题,提高长距离依赖,本文从传统的非局部均值滤波方法中受到启发,提出了卷积网络中的non-local,即:某一像素点处的响应是其他所有点处的特征权重和,将每一个点与其他所有点相关联,实现non-local 思想。  **Non-local 的思想和简单数学原理** Non-local的核心思想就是上面说的,**某一像素点处的响应是其他所有点处的特征权重和**。因此,假设对于一个2D的7*7特征图,总共是49*1(拉平操作)个位置,每个位置都与其他位置(包括本身位置)有关联性度量,就会得到**49*49的关联性矩阵**,而这个**关联性矩阵**经过**归一化**后其实可以理解为彼此之间的关联权重,因为不同像素点间的关联性都是不同的,因此这个权重本质上其实已经实现了注意力。当将这个49*49的权重再与原特征图49*1做矩阵乘时,得到的49*1矩阵就是该2D特征图所有像素点的响应。因此在这里的2D特征图的空间位置的注意力操作就是这个non-local操作。 以上是举了一个例子,根据核心思想去理解这个东西。下面可以看一下具体的数学公式代入,抽象化。以下是我整理的公式图片,所有公式都在这上面。  将non-local的核心思想**某一像素点处的响应是其他所有点处的特征权重和**进行数学化,就是图片中的左公式(1),很好理解,其中yi代表第i像素点处的响应,**f(xi,xj)表示两个像素点的关联性度量函数**,**g(xj)表示对xj特征的embedding线性映射**,这里用Wgxj表示,C(x)表示一个归一化操作。如果左式理解不清,可以看右式,非常直观。 其他所有点xj,权重f(xi,xj),特征Wgxj, 和∑, 以及归一化C(x),一目了然。...
## [一文读懂自注意力机制:8大步骤图解+代码](https://mp.weixin.qq.com/s/qtNKcDX4iwKr9RCpG5Ej0g) **self-attention是什么?** 如果你认为self-attention与attention有相似之处,那么答案是肯定的!它们基本上共享相同的概念和许多常见的数学运算。 一个self-attention模块接收n个输入,然后返回n个输出。这个模块中发生了什么呢?用外行人的话说,self-attention机制允许输入与输入之间彼此交互(“self”),并找出它们应该更多关注的对象(“attention”)。输出是这些交互和注意力得分的总和。 写一个self-attention模块包括以下步骤 - 准备输入 - 初始化权重 - 推导key, query 和 value - 计算输入1的注意力得分 - 计算softmax - 将分数与值相乘 - 将权重值相加,得到输出1 - 对输入2和输入3重复步骤4-7
# 分割 Loss ## [几种分割loss](https://blog.csdn.net/qq_16949707/article/details/79929951) **1、2d交叉熵(mutil class 分割)** ``` python def cross_entropy2d(input, target, weight=None, size_average=True): # input: (n, c, h, w), target: (n, h, w) n, c, h, w =...
# 图像分割-评价指标 ## 深度学习之语义分割中的度量标准(准确度)(pixel accuracy, mean accuracy, mean IU, frequency weighted IU) 参考:https://blog.csdn.net/majinlei121/article/details/78965435 > 纠正:该文的 FWIoU 表达式有误,正确表达式参考这个: Frequency Weighted IU:  
# 评价指标 ## From 论文《基于深度学习的图像分割研究_张明月》 - **交叉联合度量:IoU** - **平均交叉联合度量:mIoU** - **全局正确率**:全局正确率(global accuracy)被定义为测试集上所有分割结果(Prediction)的像 素点的集合 P 与标注结果(Ground Truth)的像素集合 GT 之间的交集的像素数比上测 试集总的像素点的数量 M,具体公式如下。全局正确率衡量了像素级分割算法在分类预测上的总体表现。 - **分类平均正确率**:在定义分类平均正确率(class average accuracy)之前先定义分类正确率,分类正确率是用来评价像素级分割中对每个分类分割效果的指标,具体公式如下: ## From [《语义分割-从入门到放弃》](https://zhuanlan.zhihu.com/p/48670341) - 数据问题:分割不像检测等任务,只需要标注一个bbs就可以拿来使用,分割需要精确的像素级标注,包括每一个目标的轮廓等信息; -...
## 图像语义分割准确率度量方法总结 ——from:https://zhuanlan.zhihu.com/p/38236530 衡量图像语义分割准确率主要有三种方法: 像素准确率(pixel accuracy, PA) 平均像素准确率(mean pixel accuracy, MPA) 平均IOU(Mean Intersection over Union, MIOU ) 在介绍三种方法之前,需要先说明一些符号表示的意义。 k :类别总数,如果包括背景的话就是 k+1 p_{ij} :真实像素类别为 i 的像素被预测为类别 j 的总数量,换句话说,就是对于类别为 i 的像素来说,被错分成类别 j...
## From [遥感分类精度评价方法--混淆矩阵和kappa系数](https://blog.csdn.net/u011670396/article/details/50407973) 遥感影像分类之后需要进行分类精度评价,精度评价方法中最常见的就是混淆矩阵和kappa系数。现把指标列举如下: **混淆矩阵(confusion matrix)** > 误差矩阵(error matrix)又称混淆矩阵(confusion matrix),是一个用于表示分为某一类别的像元个数与地面检验为该类别数的比较阵列。通常,阵列中的列代表参考数据,行代表由遥感数据分类得到的类别数据。有像元数和百分比表示两种。 **总体分类精度(Overall Accuracy)** > 等于被正确分类的像元总和除以总像元数。被正确分类的像元数目沿着混淆矩阵的对角线分布,总像元数等于所有真实参考源的像元总数 **Kappa系数(Kappa Coefficient)** > 它是通过把所有真实参考的像元总数(N)乘以混淆矩阵对角线(XKK)的和,再减去各类中真实参考像元数与该类中被分类像元总数之积之后,再除以像元总数的平方减去各类中真实参考像元总数与该类中被分类像元总数之积对所有类别求和的结果。 **错分误差(Commission Error)** > 指被分为用户感兴趣的类,而实际上属于另一类的像元,错分误差显示在混淆矩阵的行里面。 **漏分误差(Omission Error)** > 指本属于地表真实分类,但没有被分类器分到相应类别中的像元数。漏分误差显示在混淆矩阵的列里。 **制图精度(Producer’s Accuracy)** > 制图精度或生产者精度是指分类器将整个影像的像元正确分为A类的像元数(对角线值)与A类真实参考总数(混淆矩阵中A类列的总和)的比率。...
### 什么是全局平均池化 Global Average Pooling - 【1】[Global Average Pooling全局平均池化的一点理解](https://blog.csdn.net/qq_23304241/article/details/80292859) - 【2】[what is global average pooling ? 全局平均池化层](https://blog.csdn.net/qq_34650787/article/details/80204873) - 【3】[深度学习: global pooling (全局池化)](https://blog.csdn.net/JNingWei/article/details/80064451) 【1】: 很长一段时间以来,全连接网络一直是CNN分类网络的标配结构。一般在全连接后会有激活函数来做分类,假设这个激活函数是一个多分类softmax,那么全连接网络的作用就是将最后一层卷积得到的feature map stretch成向量,对这个向量做乘法,最终降低其维度,然后输入到softmax层中得到对应的每个类别的得分。 全连接层如此的重要,以至于全连接层过多的参数重要到会造成过拟合,所以也会有一些方法专门用来解决过拟合,比如dropout。 在NIN(Network in Network)...