《Video Object Segmentation using Space-Time Memory Networks》论文阅读笔记
论文地址:https://openaccess.thecvf.com/content_ICCV_2019/html/Oh_Video_Object_Segmentation_Using_Space-Time_Memory_Networks_ICCV_2019_paper.html
GitHub地址:https://github.com/haochenheheda/Training-Code-of-STM
1. 摘要
对于实际问题,随着中间的预测结果,可用的线索会变得更加丰富,但是已存在的方法并没有充分的利用这个丰富的信息,因此作者提出使用一个记忆网络记录中间的信息,并学习从中读取相关信息,辅助后续帧的分割。
2.整体架构
网络结构主要由memory和query两部分构成。memory用于记录之前帧的信息,query是当前帧的处理过程。
2.1 Encoder&Decoder
其中encoder使用resnet50作为backbone,并在之后接两个平行分支,一个分支使用通道数为128的3x3卷积,生成key map,另一个分支使用通道数为512的3x3卷积,生成value map,需要注意的一点是query encoder的输入是三维的RGB frame,而memory encoder的输入是四维的,由RGB frame和单通道的probability map组成。decoder由residual block和refinement module组成,具体构成如下图所示:
2.2 space-time memory read
query和memory的联系是通过该操作完成的,首先query和memory中的key相乘并经过softmax操作,作为权重系数与memory中的value相乘,再和query拼接到一起作为query decoder的输入。
![](https://i-blog.csdnimg.cn/blog_migrate/9f058b5c88d53940b3c8bb1fb89d8c8b.png)
3.描述
作者描述key的目的是为了定位,即计算query key和memory key特征之间的相似度,以确定何时何地检索相关的memory value。因此,Key被学习来编码视觉语义,以匹配鲁棒的外观变化。另一方面,value存储产生掩码估计的详细信息(例如目标对象和对象边界)。query和memory中的value包含用于不同目的的信息。具体来说,query value用于存储详细的外观信息,以便我们准确地解码对象mask。memory value学习编码视觉语义和关于每个特征是属于前景还是背景的mask信息。
另外,在实际实验中,作者设置在memory中每5帧保存一次中间帧的结果,可以兼顾准确性和速度。
4.实验
4.1 datasets
Youtube-VOS
Youtube-VOS包含4453个带标注的多目标视频。验证集由包含91种目标的474个视频组成,其中65个在训练集种见过和26个未见过的目标种类。
DAVIS
DAVIS-2016是非常常用的单目标视频分割任务。验证集由20个高质量标注的视频组成。
DAVIS-2017是DAVIS-2017的扩展,是多目标视频分割任务。验证集由包含59个目标的30个视频组成。
4.2 部分实验结果
网络的训练两个阶段:先在静态图像上进行预训练,再使用Youtube-VOS或DAVIS进行训练。
![]() | ![]() |
![]() | ![]() |
4.3 Ablation study
Pre-training only
作者发现只进行预训练不使用任何真实视频数据训练的模型在Youtube-VOS上的效果出乎意料的好。
Main-training only
不进行预训练,直接训练网络的效果很差,在Youtube-VOS上大概会降低11.2个点,作者认为这是因为即使Youtube-VOC数据量很大了,但仍然不能够完全发挥其所提出的算法的能力。另外,直接使用DAVIS训练,结果更差,证明网络over fit了。
Memory Management
这部分是对memory存储帧策略进行的实验对比,实验结果如下: