文章目录
创新点
计算视频的多帧的每个像素的关于query图像的每个像素的空间注意力,以此来决定像素是否属于前景物体不用限制帧的数量,还能简单的将他们加到memory中,探索丰富的参考信息
这个参考信息来自哪呢?是之前的memory吗?
attention中的Q K就是对输入的卷积,V就是输入本身
方法
先用编码器编码前面的带有mask的帧,
Memory Network
输入:
前面的带有mask的帧
输出:
记忆的信息嵌入到key(输入)和value(输出)特征向量
作用
将要被分割的帧作为query,memory随着新预测的mask动态更新,这对于解决外观更改,遮挡很有好处,每个在query中的帧都需要访问memory帧中不同时空位置的信息,所以做成了4D。
做预测的时候使用时空memory 读取操作来定位并阅读4Dmemory中的相关信息,算是一个时空注意力算法,对每个query像素计算when and where来决定像素是否属于前景物体。
4D能解决吗?跟时空有什么关系呢?时间通道、位置通道?
为什么能计算看下面STM
Space-Time Memory Networks
关注一下如何做到时间上的attention,之前non-local在空间和通道上做的attention
首先,memory和query帧都会经过编码器,来生成key和value,key的作用是“寻址”,即找对应的value,计算query和memory帧的key特征之间的相似度,就能找到决定when and where恢复的相关memory value来自哪里。
key、value功能:
- key用来学习视觉的语义,来匹配外观的多样性
- value用来储存生成mask估计的细节。
query和memory的value的功能:
- query的value储存用来解码mask的详细的外表信息
- memory的value用来编码视觉的语义,还有每个特征属于前景or背景的mask信息
然后将key和value都放入读取模块,这样,两个key特征在时空间上稠密匹配,得到相关的匹配分数,然后这个匹配分数用来寻址memory帧中的value特征图,并且和找到的value特征下相结合,得到读取模块的输出,在进入解码器,就能得到最终的mask
匹配应该就是计算的distance,根据得分判断是不是都来自同个物体,然后分数再对value起作用
所有的memory帧都会独立嵌入到key和value中,然后沿着时间差的维度堆叠到一起, T T T表示帧数
这样会有更多的参考信息,确实好一些
Space-time Memory Read
通过执行non-local操作来比较query和memory的key特征的相似性,然后让memory的value与soft的相似性加权求和,求完之后再和query的value结合
感觉跟non-local就是一样的,就是多了个时间维度,也就是始终的 T T T
相似性就是一个query的key对应 T T T个memory的key,这样的话就是多对应的attention,每个memory的帧都计算了,就是感知相似度,对,然后softmax就可以取value中对应的特征,作者的说法value中是视觉的语义编码,决定特征的前后景,如此说,就是一些能判定mask的信息,而这些又经过softmax结合被挑选,和query的value中的外表信息结合的话,就能确定哪些外表可以被分为前景
y i = [ v i Q , 1 Z ∑ ∀ j f ( k i Q , k j M ) v j M ] y_i = [v^Q_i,\frac{1}{Z}\sum_{\forall j}f(k^Q_i,k^M_j)v^M_j] yi