Uploaded by Alio Silent

STCN论文阅读报告

advertisement
阅读论文:整理论文阅读报告(详细讲解技术路线,简要分析实验结果);
NeurIPS2021-Rethinking Space-Time Networks with Improved Memory Coverage for Efficient
Video Object Segmentation
一、创新点、主要内容
文章提出 VOS(Video Object Segmentation)的视频帧之间时空对应不需要目标
掩膜的特征编码,而是直接在视频帧间建立。采用 negative squared Euclidean
distance 取代现有的 inner-product affinity,基于对应以相关方式聚合历史的特征
来推理当前的查询帧,这里特征聚合过程变成一个投票问题。
针对视频实例分割问题,本文提出了一种简单而高效的方法对时空对应性
(space-time correspondence) 进行建模,能够直接得到帧之间对应关系而不用对每
个目标物体都进行掩膜特征(mask features)的重编码(re-encoding)。本文方法
是对 STM (space-time memory networks) 的简化,想要得到 matching networks 的
极简形式,提升性能同时减少内存的使用,更有效的利用 memory bank 的信息。
具体来说:(1)传统的 affinities 的构建机制都像 attention 一样是 dot products +
softmax,这种机制会让高置信度的节点(node)一直主导 affinities 而不考虑去
memory bank 查询特征(query features),一些节点可能会被长时间抑制,让很大
一部分 memory bank 的信息无法充分利用; (2)本文用负的欧氏距离来代替 dot
product 作为相似度衡量的依据,也将二者进行有效的协同,让性能提升更多。
二、相关工作
现有 VOS 方法分为两种:用 initial segmentation 拟合一个模型,或用
temporal propagation,然后 spatio-temporal matching
space-time 和 spatio-time 二者区别:
1、correspondence learning
few-shot learning 可以被看作是一个匹配问题,用 query 和每个 support set 里的
元素做比较,经典的方法就是比较 query feature 和 support feature 之间的相似度
(cosine similarity、squared Euclidean distance,或者用一个网络去学习如何衡量
相似性)
,VOS 其实就可以看作是一个 few-shot matching problem,memory bank
相当于是 support set,只不过处理的是可能高达百万次的特征点之间的比较。
2、video object segmentation
早期的方法是 online first-frame finetuning,推理速度缓慢,于是更快的
online learning algorithm 发展起来(如 MRF graph inference、temporal CNN、
capsule routing、tracking、embedding learning、space-time matching)其中
embedding learning 和 space-time learning 十分相似,都去尝试学习视频中物体的
特征表达。embedding learning 的约束性比较大,采用 local search window,很
难进行一对一匹配。所以本文聚焦于 space-time matching networks (STM)
3、STM
STM 为视频中的每个 object 都建立一个 memory bank,然后对每个 query
frame 都在 memory bank 里做匹配,推理得到新的帧被加入 memory bank 里,算
法随着时间进行 propagate
三、STCN(space-time correspondence network)
左图:时空记忆网络(space-time matching networks ,STM)的总体框架忽略了细粒度级
别的变化,目标单独编码,特定于每个目标得到 affinities。右图:时空对应网络
(space-time correspondence network ,STCN)使用 Siamese key encoders 直接从
RGB 图像计算 affinities,更加鲁棒和高效。 query key 可以缓存,以后作为
memory key 可重用(与 STM 不同),因为它独立于掩码存在。
给定一段视频序列和第一帧的真实掩膜,STCN 按照帧序处理视频并且维护
feature memory bank。当前帧为 query frame,通过 key encoder 得到其 key feature
k Q ,将它与 memory bank 中的多个 key k M 进行比较,然后用 key affinities 从
memory bank 中检索回对应的多个 value features v M (多个既包含了多个 key 对
应的 value,也包含一个 key 对应的多个 value)
四、特征提取
STM 有两种编码器:query encoder 和 memory encoder,前者以当前帧的 RGB
图像作为输入,后者以前一时刻的 RGB 图像和该图像中的各个物体独立的 mask
作为输入(有几个物体就有几个 image-mask pair),所以相当于是对图像中每个
物体的 mask ,RGB 图像都会产生不同的 key feature,key feature 的计算是依赖
于 mask 的,即针对某一帧而言,它在 memory bank 里的 key feature 是有多个的,
每个都对应一个物体的 mask,这一帧里有多少个物体,这一帧就有多少个 key
feature 和 key value。
STCN 的两种 encoder:key encoder 和 value encoder,前者以当前时刻的 RGB
图像作为输入(和 STM 一致),后者也是以前一时刻的 RGB 图像和各个物体对
应的 mask 作为输入,但是有很大差别,value encoder 先对前一时刻的 RGB 图像
生成 key feature,然后再接收各个物体的 mask,产生每个 mask 对应的 value,也
就是说每个 image 对应于其中的任何一个物体 mask,它的 key feature 都是同一
个,这一帧里有多少个物体,就会有多少个 key value,但是只有一个 key fature,
而且这个 key feature 是上一时刻里 key encoder 已经编码得到的,不用再次编码,
所以对每个 image 只用计算一次 key feature,key feature 的计算并不依赖于 mask,
这个也是本文把 dot product 改成 L2 范数去计算相似度的根本原因。上述产生
mask 的 value 过程为:value encoder 会先对 mask 进行特征抽取,然后将 key
feature 和 mask feature 进行简单的 concat,将 concat 的结果通过两个 ResBlock 和
一个 CBAM block,产生最终的 value feature,这个过程 key feature 的计算不依赖
于 mask。作者也阐述了这样设计的原因:correspondence 应该是直接在帧与帧之
间产生的,而不应该引入 mask 作为干扰(预测出的 mask 会有错误)。
本文还提到了网络层数上的差距,STM 用了两个 ResNet50,而 STCN 用了
一个 ResNet50 和一个 ResNet18,因为 value encoder 实际是接收了 mask 作为输
入(image 的 key feature 是由 key encoder 产生的),而 key feature 实际接收的是
RGB image 作为输入,去提取 image 的特征要比提取 mask 的特征困难,所以 key
encoder 的层数更深。除此以外,前一时刻的 frame 对应的 key feature 是否放进
memory bank 里取决于 propagate 的过程
五、Memory Reading and Encoding
对于给定的 T 帧 memory frame 和当前帧 query frame,在上一阶段(特征提
取)会生成如下内容:
C k 、 C v 分别是 key encoder 和 value encoder 编码后的特征维度
k M 为 memory key,维度为 C k  THW
v M 为 memory value,维度为 C v  THW
k Q 为 query key,维度为 C k  HW
在本阶段能够求得以下内容:
(c 是任意求相似度的方法,ki 是第 i 个位置的
feature vector)
Sij  c(kiM ,k jM )
Wij 
为 pairwise affinity matrix
exp  Sij 
  exp  S  
为 softmax-normalized affinity matrix
nj
n
v Q  v M W aggregated readout feature for the query frame
当前帧的 value feature 是 memory 中的 value feature 进行加权求和得到的,而
权重的计算仅依靠 key feature,也就是只和 frame 有关,和 object 无关,所以对
不同物体对应的 value feature,这个权重值是可以共享的。但是在 STM 中,对每
个 object,权重值都要重新计算。
本阶段得到了当前帧的对应于每个 object 的 value feature,就能够通过 decoder
来产生当前帧对应 object 的 mask
六、Memory Management
这个部分主要是讲如何去构建一个 memory bank
1、对每个 memory frame,存储它的两个信息:memory key 和 memory value
2、memory key 是上一时刻用 key encoder 编码得到的 key feature
3、memory value 是上一时刻帧对应的各个 object 的 mask 经过 value encoder 后
编码得到的 value feature
STM 把每 5 个 query frame 作为一个 memory frame,把前一时刻的 frame 作为
temporary memory frame 来保证精确匹配,实际上 temporary frame(即前一帧)
的存在是没有必要的,甚至是有害的
七、Computing Affinity
计算相似度时需要求计算方法效率高, c :
Ck

Ck

,从而最高效率利用
memory,因为对于一帧 image 和 mask 产生的 feature 来说,有 THW  HW 个
pairwise relation 需要计算
memory bank 中有 T 个 memory key,其中的一个 memory key 为 k M 
当前帧的 query key 为 k Q 
Ck HW
,那么它们的形状为:
Ck HW
,
考虑三种计算相似度的方式,三种方式计算的维度都是一样的即 THW  HW

 
dot product , Sdot  k M
T
 k iM  k Qj , 算出的相似度范围为
k Q ,其中 Sdot
ij
(−∞,∞)

cosine similarity 的计算过程和上面一样,在矩阵相乘的过程中左边的一行和
右边的一列乘完后要除以行的模长和列的模长,进行标准化,即
S
cos
ij

k iM  k Qj
k iM  k Qj
2

, 算出的相似度范围为[-1,1]
2
negative squared Euclidean distance,就是计算 L2 距离的平方然后加个负号,
M
Q
即 SL2
ij   ki  k j
2
2
, 算出的相似度范围为 (−∞,0]
上面提的三种相似度计算的方式,可以发现 dot product 实际上为放缩版的 cosine
similarity,用 cosine similarity 乘以两向量的模长就是 dot product 的值,也是说对
于 dot product 而言,向量模长越大,求出来的值就越大,这会使一些模长较大
(模大的向量是显著特征,更加重要)的 memory key 占据主导权,导致另一些
memory key 没有起到作用。
七、实验结果
Dataset:多目标:DAVIS 2017,YouTubeVOS 2018;单目标:DAVIS 2016 ,
YouTubeVOS 2019
不同方法在 DAVIS 2017 和 YouTubeVOS 2018 验证集上的比较。下标 S 和 U 分
别表示看到或未看到的。FPS 是针对多目标场景在 DAVIS 2017 上测量的,方法
按 YouTubeVOS 性能排名
DAVIS 2016 验证集的结果
YouTubeVOS 2019 验证集的结果
对静态图像的预训练/对 DAVIS 2017 验
证集的主训练的效果
仅使用静态图像而不用视频进行训练时其性能有较大变化,而仅使用 davis2017
视频数据训练时性能有一定提升但不如将两者结合进行训练,其原因可能为单一
训练数据可能会造成过拟合。
测试代码:调通代码,测试给出的模型,分析结果,指出其优缺点;
由于 BL30K 数据集过大,STCN 模型训练仅在静态图像与 Davis、YouTube 训练
集进行训练,实验环境为 pytorch1.8.1,使用两块 Titan xp 11G 训练 6 天。在
Davis2016、Davis2017 以及 YouTube2019 测试结果如下:
Davis2016
J&F
J
F
FPS
91.8%
90.7%
92.8%
12.0
Davis2017
J&F
J
F
FPS
84.6%
81.4%
87.8%
10.7
YouTube2019
G
JS
FS
JU
FU
83.3%
82.0%
86.2%
78.4%
86.5%
J 描述的是预测的 mask 和真实的 mask 之间的交并比(IOU),F 描述的是预
测 mask 边界与真实 mask 边界之间的吻合程度,J&F 为 J 与 F 的均值,FPS 为
训练后的 VOS 模型每秒所处理视频帧的数量,下标 s、u 表示 YouTube 数据集中
看得到和看不到的物体
实验复现结果与论文报告的结果差距在 2%以内,其中在 YouTube 数据集复现结
果与论文差距稍大,其原因可能为训练时未使用 BL30K 训练,导致性能未到要
求,另一方面 YouTube 数据集难度较大导致模型分割效果不理想。
改进方案:思考可能的改进方案,或者如何应用于个人研究课题;
模型参数量过大,每秒处理视频帧数较少,可以从轻量化角度去设计网络结构
应用扩展:探讨相关技术可能的应用场景和产品设计思路。
部署到移动端,如各种短视频平台,方便用户制作自己感兴趣的视频;用于视频
剪辑,如抠图、影视特效等。
Download