概念整理(持更)
1. CV注意力机制
https://jishuin.proginn.com/p/763bfbd3296c
空间注意力模块:特征图每个位置进行attention调整,二维调整
通道注意力模块:分配各个卷积通道上的资源,z轴的单维度调整
1.1 Non-local Networks
捕获长距离依赖(long-range dependencies),即建立图像上两个有一定距离的像素之间的联系,计算某个位置响应时,考虑所有位置features的加权,包括空间、时间以及时空
long-range dependencies
一般来说对于顺序数据,recurrent operations循环操作是解决此问题的主要解决方案
long-distance dependencies 由深层卷积操作形成的large receptive fields
一般CNN和RNN都只能处理local neighborhood,因此只有不断重复才能捕获到long-range dependencies,但是这也有几个限制,比如计算效率低、优化困难等
non-local operation的优点:
- 与CNN和RNN不同,non-local直接计算两个位置之间的相互作用,不管距离远近,可以直接捕获
- 很有效,即使只有几层也可以实现最佳效果
- 保持变量输入尺寸,可以和其他操作结合
铃铛、哨子:光流、多尺度测试multi-scale testing
非本地图像处理Non-local image processing:
non-local means:过滤算法,图像中所有像素的加权平均值。远处像素由于相似性产生有效响应
CRF(conditional random fields):图形建模方法->语义分割
Non-local operation
y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) y_i=\frac{1}{C(x)}\sum _{\forall j} f(x_i,x_j)g(x_j) yi=C(x)1∀j∑f(xi,xj)g(xj)
- x j x_j xj是输入信号,CV中一般指feature map
- y i y_i yi是输出信号,
- i i i指主要研究位置,即输出位置
- j j j指其他对其有影响的位置,
- C ( x ) C(x) C(x)指影响因子,
- g ( x j ) g(x_j) g(xj)指位置 j j j的输入信号,即feature map在 j j j处的表示
- f f f是计算 i i i与 j j j之间密切关系(affinity)的标量
对于f的选择有多种:
-
Gaussian:
f ( x i , x j ) = e x i T x j C ( x ) = ∑ ∀ j f ( x i , x j ) f(x_i,x_j)=e^{x_i^Tx_j} \\ C(x)=\sum_{\forall j}f(x_i,x_j) f(xi,xj)=exiTxjC(x)=∀j∑f(xi,xj)
-
Embedded Gaussian:
f ( x i , x j ) = e θ ( x i ) T ϕ ( x j ) θ ( x i ) = W θ x i ϕ ( x j ) = W ϕ x j C ( x ) = ∑ ∀ j f ( x i , x j ) y = s o f t m a x ( x T W θ T W ϕ x ) g ( x ) f(x_i,x_j)=e^{\theta (x_i)^T \phi (x_j)} \\ \theta(x_i)=W_\theta x_i \\ \phi (x_j) = W_\phi x_j \\ C(x)=\sum_{\forall j}f(x_i,x_j) \\ y = softmax(x^T W^T_θ W_\phi x)g(x) f(xi,xj)=eθ(xi)Tϕ(xj)θ(xi)=Wθxiϕ(xj)=WϕxjC(x)=∀j∑f(xi,xj)y=softmax(xTWθTWϕx)g(x)
self-attention模块其实就是non-local的embedded Gaussian版本的一种特殊情况
-
Dot product:
f ( x i , x j ) = θ ( x i ) T ϕ ( x j ) C ( x ) = N f(x_i,x_j)=θ(x_i)^Tϕ(x_j) \\ C(x)=N f(xi,xj)=θ(xi)Tϕ(xj)C(x)=N
N is the number of positions in x -
Concatenation:
f ( x i , x j ) = R e L U ( w f T [ θ ( x i ) , φ ( x j ) ] ) C ( x ) = N f (x_i, x_j) = ReLU(w^T_f [θ(x_i), φ(x_j)])\\ C(x)=N f(xi,xj)=ReLU(wfT[θ(xi),φ(xj)])C(x)=N
Here [·, ·] denotes concatenation串联, w f w_f wf是权重向量,将串联向量投影到标量中
Non-local Block
结合equ.1生成Block:
Z
i
=
W
z
y
i
+
x
i
Z_i = W_z y_i + x_i
Zi=Wzyi+xi
尾部跟了个残差
1.2 Non-local means
参考论文:Non-local Neural Networks
简单来说,就是“非”均值滤波,也就是说在滤波的时候并不是简单取均值,领域范围内的像素点需要使用一个权重。求欧式距离的时候,不同位置的像素的权重是不一样的,距离块的中心越近,权重越大,距离中心越远,权重越小,权重服从高斯分布。实际计算中考虑到计算量的问题,常常采用均匀分布的权重。
如上图所示,p为去噪的点,q1和q2的邻域与p相似,所以权重w(p,q1) 和w(p,q2) 较大,而邻域相差比较大的点q3的权重值w(p,q3) 很小。如果用一幅图把所有点的权重表示出来,那就得到下面这些权重图:
1.3 receptive fields
感受野,注意翻译器误翻
1.4 interaction network(IN)
该模型可以推理复杂系统中的对象如何交互,支持动态预测,以及对系统抽象属性的推断
2.Introduction to HSI
以窄波段记录真实世界场景的光谱,每个波段捕捉特定光谱的信息,其中存在冗余,与RGB相比,HSI具有更多谱带,可以存储更丰富的信息,描述更多场景细节。
但是以往用来记录HSI的光谱仪比较费时间,特别是在动态和实时场景中。
为了解决这个问题,提出了开发快照压缩成像(SCI)或是计算重建方法,但是这些方法需要昂贵的硬件设备。为了降低成本,提出SR(Spectral Reconstruction),从给定的RGB图像中重建HSI,而RGB图像可以很容易由RGB摄像机得到。
3. CASSI
高光谱图像(Hyperspectral Image):光谱分辨率在0.01 λ \lambda λ数量级范围内的光谱图像,比常规RGB图像有更多的波段(通道数)来更加准确全面地描述被捕获场景的特性。
举个例子,在深夜如果直接看RGB图像,可能是一片漆黑,但是如果通过红外夜视仪,就能很清晰看到发热的活物,这就是捕获的红外光谱图像。
在一个瞬间将三维高光谱场景压缩到2D探测器上,然后通过TwIST等重建算法再将三维信息检索回来。核心在于用二值随机掩模对被测场景进行编码,然后进行光谱剪切并捕获到检测器上。
应用:目标检测追踪、图像识别、遥感以及医疗影像等领域。
获取:
SCI(Snapshot Compressive Imaging)快照压缩成像系统
CASSI(Coded Aperture Snapshot Spectral Imaging)编码孔径快照光谱成像
通过一个孔径掩膜对成像场景的各光谱通道进行调制,然后通过一个三棱镜进行色散后在相机上生成一个二维的快照估计图
Coded Aperture:编码孔径
引入:小孔成像的原理,成像清晰度和亮度是相互制约的。如果孔径比较大,进来的光比较多,那么图像就会比较模糊,如果孔径比较小,成像比较清晰,但是由于光子能量较小,则图像会比较暗。
因此建立MURA(Modified Uniformly Redundant Array)
对应了一对矩阵,分别是编码和解码矩阵:
MURA有大约50%的孔开放->编码观测比小针孔相机亮的多
MURA不懂在说啥
数学表达:
$$
y=f*p+w \tag{code-decode}
\
\hat{f}_{MURA}=y*\tilde{p}
$$
这里的p就叫做mask
重建方式:
GPSR(Gradient Projection for Sparse Reconstruction)梯度投影稀疏重建
CCA(Compressive Coded Aperture)增强了利用非线性方法从低分辨率观测值重建图像的能力
SCI-to-HSI
4. Transformer
MSA(Multi-head Self-attention)比CNN更好地建模了long-range dependencies 和non-local self-similarity
直接使用的问题:
- 全局和局部transformer都反映了空间区域的相互作用,但是HSI在空间上是稀疏的,在光谱维度上却是高度自相似的。因此,建模空间方面的inter-dependencies可能比捕获inter-spectral correlations有更低的效益。
- 标准全局MSA的计算复杂度是空间维度的二次函数,是一个巨大的负担;local window-based MSA在特定的位置上感受野是有限的
5.MSA
referred in [MST++: Multi-stage Spectral-wise Transformer for Efficient Spectral Reconstruction 3.3](D:\Zotero\storage\YX5R4T99\Cai 等。 - MST++ Multi-stage Spectral-wise Transformer for E.pdf)
6.Shuffle Attention
https://jishuin.proginn.com/p/763bfbd3987d
- Feature Grouping
首先沿着通道维度进行切片划分,每个子特征训练中捕获一个特定语义特征,通过注意力模块为每个子特征生成相应的重要性系数。
两个分支:
- inter-relationship:通道注意力 WHAT
- inter-spatial:空间注意力Map WHERE
- Channel Attention
首先使用全局平均池化(GAP)嵌入全局信息,然后门控+sigmoid
看不懂。。。
- Spatial Attention
Group Norm(GN),然后 F c F_c Fc增强
- Aggregation
子特性聚合,通道操作符,使跨群组的信息沿着通道维度流动
相关算法
1.协同滤波
参考:协同滤波
概念:协同过滤一般是在海量的用户中发掘出一小部分和你品位(偏好)比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。
步骤:
- 收集用户偏好
- 找到相似的用户或物品
- 计算推荐
1.收集用户偏好
- 不同行为分组
- 加权
数据预处理:减噪、归一化
2.找到相似的用户或物品
(1)相似度计算
- 欧几里得距离:点距
- 皮尔逊相关系数:两个定距变量间联系的紧密程度
- Cosine相似度:文档数据
- Tanimoto系数:上者扩展,计算文档数据
(2)相似邻居
- 固定数量邻居K-neighborhoods:不管远近只取最近的K个,但可能会选到相关性其实并没有那么大的,定数量
- 基于相似度门槛的邻居Threshold-based neighborhoods:进行最大值限制,定半径
3.计算推荐
- 基于用户CF:邻居喜欢的作为推荐
- 基于物品CF:落脚于物品,将人作为排序
2.BM3D去噪算法
1.AWGN(Additive White Guassian Noise)
AWGN在空域上满足独立同分布假设
2.降噪思路
(1)局部滤波
运用不等权重的窗函数
考虑到距离、相似性、值域等
在噪声方差较大时对噪声的衰减并不是很理想
(2)非局部滤波
考虑到直接比较两个像素的相似性会有比较大的误差,但是当比较两个块的相似性时,N增大,方差就会变小。
将这些块叠加,噪声的方差就能衰减足够小。但是每个块的匹配误差也是不同的,给误差越小的块越大的权重,误差超过一定阈值直接舍弃。
参考NLM(Non-local Means),对于图像中每个像素,以其一定大小的领域作为参考块,像素的滤波结果就是相似块中心像素的加权平均
Z ( x ) Z(x) Z(x)为归一化系数, B v ( x ) B_v(x) Bv(x)为领域块, h h h控制滤波强度, h h h越大,权值衰减速度越慢,接近于等权重叠加; h h h越小,衰减速度越快,倾向于叠加误差小的块。
缺点:时间复杂度高
(3)变换域稀疏表示
图像在变换域上的稀疏性:图像内容以低频为主,少数细节才会包含高频
即便是最高频的地方的变换系数的量级竟然和那些接近低频的地方是差不多的,或者说,除了最低频的地方,其他的变换系数就像是一些独立同分布的噪声。实际上,不仅是 DCT,可以证明 AWGN 经过任意次数的正交变换之后仍然是 AWGN ,并且其分布和原始噪声的分布一致,即具有相同的方差
T
v
=
T
u
+
T
n
T_v=T_u+T_n
Tv=Tu+Tn
有噪声信号变换系数=无噪声变换系数+噪声信号变换系数
而无噪声主要集中在低频,噪声分布比较散且小,所以可以设定阈值。
然而如果噪声方差过大,会掩盖掉原本信息
引入协同滤波(Collaborative Filtering)
把相似的块叠加形成第3维,在第3维上也进行正交变换
噪声不会随着正交变换次数增加强度,但是相似块叠加低频维度的能量就会增加,系数幅度会变大,拉大差距
3.BM3D算法原理