多目标视频目标分割是一项具有挑战的任务,尤其对于zero-shot,即在没有给出视频初始帧的目标掩模的情况下分割处整个序列的目标。这篇论文提出了循环网络(Recurrent Network)以进行视频多目标分割(RVOS),该网络可进行端对端训练。该模型将循环应用在两个不同的域中:(1)空间域:找出一帧图像中不同的目标实例;(2)时间域:保持被分割对象在时间上的相关性。本文实验:(1)zero-shot视频目标分割,在DAVIS-2017 和YouTube-VOS benchmarks上所报道的结果中排名第一。(2)one-shot 视频目标分割,将前一时间的mask作为输入,利用循环模型进行处理,在YouTube-VOS上结果与最优结果相当,在DAVIS-2017上,优于之前所有不利用在线学习的方法。本文模型推理速度快于之前的方法,在P100 GPU上达到44ms/frame.
视频目标分割的目标: 将给定视频序列的前景从背景中分割出来。众多benchmarks的出现未视频图像分割提供了标注的数据集和标准的评估方法。近年公布的benchmarks解决了多目标分割问题,并提供了更大的可用的数据集和更多的挑战任务。
目前视频图像分割分三类: 1)将每一帧图像独立处理,忽略了时间维度,没有考虑相邻帧之间的连贯性。2)考虑时间维度–通过光流估计实现时间维度信息的利用;在视频序列中传播预测的标签图像。3)利用时空特征进行模型训练:A.基于RNN,对视频序列中目标的时空演化进行编码;缺点:整个流程依赖光流,无法进行完全端对端训练;B.基于RNN的编码-解码结构,与本文流程类似,二者主要的不同在于,该方法只能端对端地处理单个目标;因此,需要一个对视频中的每个目标单独进行前向传播。第三类列举的方法都没有用一个统一的方式去考虑多目标的分割。
本文: 提出如下网络框架结构:
该框架可解决以下问题:单目标分割,多目标分割,zero-shot,one-shot.
该框架以 RSIS 为基础,RSIS用循环模型再每一次循环中都为图像中的每一个目标实例预测一个mask。由于RNN的存储功能,网络可学习并预测每个目标的mask,网络的输出不需要进行任何的后处理。在本文视频目标分割模型中,将循环附加到空间域,预测视频序列每一帧的实例。
实际上,本文框架在时间和空间上都包含循环,空间上针对单个帧中不同实例,强制使每一帧的实例预测都遵循同一个顺序,时间上指在不同帧之间网络可以自然地匹配不同帧之间的实例。基于以上两点,本文框架可以实现完全的端对端模式,在不进行任何后处理的情况下实现视频序列的多目标分割。
本文框架完成的任务: 1)zero-shot视频分割(无监督:在无初始mask的情况下分割整个序列,量化展示DAVIS-2019和YouTube-VOS上的分割结果);2)one-shot视频分割(半监督:将前一步的预测结果输入循环结构)。
主要贡献:
1)第一次提出完全端对端的视频图像多目标分割框架,不需要进行任何后处理;
2)可进行zero-shot,one-shot分割,第一次在DAVIS-2019和YouTube-VOS上量化了zero-shot的分割结果;
3)性能优于之前不进行在线学习的方法;不需要在测试序列上进行finetune便可获得较好的结果;速度最快。
Berkeley Video Segmentation Dataset (2011)
SegTrack (2013)
Freiburg Berkeley Motion Segmentation Dataset (2014)
DAVIS (2016-2017) --提供的标签更准确和dense
YouTube VOS (2018) --目前提供标注视频最多的数据集
可分为两类:
1)不对时间域建模: 通过在线学习进行one-shot视频图像分割,即标注视频序列的第一帧对模型finetune,并进行剩余帧目标的分割。在此基础上,出现的方法:
A. 利用附加的高置信预测对模型进行额外的在线更新;B. 将不同实例目标分割作为先验与输出分割融合;C.关注视频图像数据增强;D.跟踪目标以获得分割目标的ROI;E. 基于元学习,根据第一帧的目标mask快速更新网络。
2)对时间域建模: 不完全端对端,需要其他任务上的预训练模型:
A. CNN特征+光流;B. 用前一帧预测mask指导下一帧mask的预测;C. 利用时空特征。
本文: 利用时间域并完全端对端
相似的工作:编码-解码循环网络结构(RSIS):利用Convolutional LSTMs进行序列学习。
本文与其的不同之处:包含空间循环,待分割目标的分割会考虑到同一帧前一分割目标的分割结果,用单一的前向传播即可实现多目标分割。
one-shot: 利用一个标记帧(通常为视频的第一帧)顺次预测剩余帧的分割结果。因为其给定了初始帧的mask,通常one-shot的结果优于zero-shot。这类方法依赖于在线学习,例如,通过初始帧及其对应的mask更新权重。在线学习可以得到更优的结果,但也会耗费更多的计算资源。
本文:不需要任何形式的在线学习和后处理。
zero-shot: 也是无监督方法,不需要对视频序列的目标进行预分割。关注目标显著性,与光流的双流网络联合训练,motion估计等。
本文:可进行one-shot和zero-shot分割任务,对于one-shot,本文并没有用第一帧的mask更新网络;对于zero-shot,不需要预训练,检测或者依赖于目标proposals。本文可进行完全的端对端训练,并且不需要在其他任务上预训练的其他模型。
1)基于帧端对端训练,实现多目标分割;
2)在时间域进行端对端训练,但只能解决单目标分割,每一个目标都需要一个前向传播的通路,需要后处理对这些实例进行融合;
本文方法是第一个实现完全端对端训练,并且不需要进行任何后处理的视频分割方法。
基于encoder-decoder结构,主要进行两项视频目标分割任务:1)one-shot:输入-视频序列的一组RGB图像+初始帧mask,输出视频序列各目标的mask;2)zero-shot:输入-视频序列的一组RGB图像,输出各目标的分割结果,但是zero-shot在进行分割时,并不知道待分割目标是什么。
基础框架:
RSIS【26】,具体结构如下图左侧蓝色部分所示:
本文不同结构:
将前一帧的mask作为当前帧输出特征的一个附加的channel;而RSIS没有附加的channel;这个结构主要是针对给出第一帧mask的one-shot任务。
encoder输出的第t帧不同分辨率特征表示为 f t = { f t = { f t , 1 , f t , 2 , . . . , f t , k } f_t = \lbrace f_t = \lbrace f_{t,1},f_{t,2},...,f_{t,k} \rbrace ft={ft={ft,1,ft,2,...,ft,k}
figure 2右侧为单个帧,单个step空间recurrent的decoder结构,该decoder为ConvLSTM的分层循环架构,可以利用不同分辨率的输入特征 f t = { f t , 1 , f t , 2 , . . . , f t , k } f_t = \lbrace f_{t,1},f_{t,2},...,f_{t,k} \rbrace ft={ft,1,ft,2,...,ft,k} ,decoder的输出是该帧不同目标的预测结果 S t = { S t , 1 , S t , 2 , . . . , S t , N } S_t = \lbrace S_{t,1},S_{t,2},...,S_{t,N} \rbrace St={St,1,St,2,...,St,N} (本文需要做到的multi-objects)。为了使不同帧相同目标的预测mask在空间循环中具有相同的index,需要设计时间域的循环。 在整个序列中,decoder预测的分割具有N个目标,如果在循环到第t帧,目标i不再出现,那么在第t帧及以后的帧中,目标i的mask为空。在对第一帧进行空间recurrence时,没有指定目标的顺序,而是利用Hungarian算法,根据预测和GTmask,使用soft IoU分数作为cost function找到最佳的排序。
可以与figure 3联合起来看,将figure 2 的结构融入到figure 3(a),考虑空间recurrence的多目标分割;将figure 2 的结构融入到figure 3(b)考虑空间recurrence和时间域recurrence的多目标分割。
figure 3(b)空间-时间均包含recurrence
h t , i , k h_{t,i,k} ht,i,k 表示帧t在第k个ConvLSTM(也就是第k个分辨率)输出第i个目标的结果。
f t f_t ft 表示编码器在帧t的特征输出
h t , i − 1 , k h_{t,i-1,k} ht,i−1,k 表示当前帧前一个物体ConvLSTM层的输出 (spatial hidden state)
h t − 1 , i , k h_{t-1,i,k} ht−1,i,k 表示前一帧的相同物体ConvLSTM输出 (temporal hidden state)
S t − 1 , i S_{t-1,i} St−1,i 表示前一帧对于目标i的最后输出
h i n p u t = [ B 2 ( h t , i , k − 1 ) ∣ f t , k ′ ∣ S t − 1 , i ] h_{input}=[B_2(h_{t,i,k-1}) |f'_{t,k}| S_{t-1,i}] hinput=[B2(ht,i,k−1)∣ft,k′∣St−1,i]
h s t a t e = [ h t , i − 1 , k ∣ h t − 1 , i , k ] h_{state}=[h_{t,i-1,k} | h_{t-1,i,k}] hstate=[ht,i−1,k∣ht−1,i,k]
h t , i , k = C o n v L S T M k ( h i n p u t , h s t a t e ) h_{t,i,k}=ConvLSTM_k(h_{input},h_{state}) ht,i,k=ConvLSTMk(hinput,hstate)
当前帧目标i第k个LSTM的输出 h t , i , k h_{t,i,k} ht,i,k 为 h i n p u t h_{input} hinput , h s t a t e h_{state} hstate作用的结果,其中 h i n p u t h_{input} hinput是由当前帧上一个LSTM输出做2倍上采样(双线性插值方式) B 2 ( h t , i , k − 1 ) B_2(h_{t,i,k-1}) B2(ht,i,k−1), 当前帧第k个分辨率的输入特征利用卷积减少通道后的特征 f t , k ′ f'_{t,k} ft,k′, 和上一帧第i个目标的mask S t − 1 , i S_{t-1,i} St−1,i得到的。
若decoder有 n b n_b nb个分辨率的输出特征,即 k ∈ ( 1 , 2 , . . . , n b ) k\isin(1,2,...,n_b) k∈(1,2,...,nb),
h t , i , 0 h_{t,i,0} ht,i,0可以通过以下方式得到
h i n p u t = [ f t , 0 ′ ∣ S t − 1 , i ] h_{input}=[f'_{t,0} | S_{t-1,i}] hinput=[ft,0′∣St−1,i]
对于第一个目标有
h s t a t e = [ Z ∣ h t − 1 , i , k ] h_{state}=[Z | h_{t-1,i,k}] hstate=[Z∣ht−1,i,k],其中 Z Z Z为全0矩阵,表示there is no previous spatial hidden state for this object.
两个任务one-shot,zero-shot
分析spatial hidden state 和temporal hidden state的重要性
设计三种实验:
(i)spatial model (temporal recurrence is not used)
(ii) temporal model (spatial recurrence is not used)
(iii) spatio-temporal model (both spatial and temporal recurrence are used)
在one-shot任务中,提供第一帧中的目标mask,decoder阶段包含 S t − 1 , i S_{t-1,i} St−1,i用于计算 h i n p u t h_{input} hinput,在zero-shot中没有第一帧的目标mask。
实验数据集:YouTube-VOS,DAVIS-2017
评价指标:区域相似性 J J J,contour accuracy F F F;在YouTube-VOS数据库上,指标分为 J s e e n / J u n s e e n J_{seen}/J_{unseen} Jseen/Junseen 和 F s e e n / F u n s e e n F_{seen}/F_{unseen} Fseen/Funseen seen表示模型学习到了的类别目标,unseen表示没学到的。
1)spatio-temporal model improves both the region similarity J and contour accuracy F for seen and unseen categories over the spatial and temporal models.
2)RVOS-Mask-ST+(用预测的S对模型进行finetune) is more robust and outperforms the model trained only with the ground truth masks.
the RVOS-Mask-ST preserves better the segmentation of the objects along the time.
OL在validation阶段用初始帧finetune模型,本文不是OL的
the fewer the objects to segment, the easier the task, obtaining the best results for sequences where only one or two objects are annotated.
==DAVIS-2017数据库的结果详见论文
目前,并没有用于zero-shot 视频分割的benchmark,尽管可以用YouTube-VOS and DAVIS benchmarks,在不使用第一帧mask标注的情况下进行网络训练和测试,但是还是存在一些缺陷。以上两个数据集并没有给出所有目标实例的标记结果,在YouTube-VOS上,最多只给出了五个类别目标的标注结果,对于one-shot没有什么影响,但是对于zero-shot,会分割出没有标注的目标。
本文在进行zero-shot实验时,先忽略这个问题,在以上两个数据集上进行实验。为了尽可能减少目标标注问题带来的影响,实验中,在整个序列中最多预测10个目标实例
zero-shot的性能不如one-shot
Note that the masks are not provided and the model has to discover the objects to be segmented. We can see that in many cases our spatio-temporal model is temporal consistent although the sequence contains different instances of the same category.
==DAVIS-2017数据库的结果详见论文
本文模型是速度最快的
training details见论文
1)模型同时包含空间和时间的recurrence,空间–不同目标,时间–不同帧;
2)完全端对端的多目标视频分割;
3)可进行one-shot和zero-shot任务;
4)实验结果证明,时空域同时利用的性能远高于只用空间域或时间域;优于在线的方法。