这篇论文大约是在两个月前我做3D医学图像分割的时候看到的一篇论文, 是亚琛工业和谷歌在 CVPR 2019发表的用于视频目标分割的论文。 当时觉得这篇论文的想法很好,有很多可以借鉴的地方,于是乎就把他放在了reading list里面。首先呢,我的背景是做医学图像的,跟VOS (video object segmentation) 有些不同,所以这篇论文我只会简单介绍一下我认为很新颖的、值得参考的地方-------embedding、global and local matching。
论文地址:[1902.09513] FEELVOS: Fast End-to-End Embedding Learning for Video Object Segmentation
tensorflow 源码:models/research/feelvos at master · tensorflow/models · GitHub
1. Introduction
FEELVOS与传统的VOS论文不同的,本文使用了半监督 (semi-supervision)方法,结合embeding提出了局部匹配和全局匹配的方法。我们可以把一段完整的视频分成众多的frame,每一个frame可以当做是一张独立的图像,最简单的VOS方法就是把视频中所有的frame看成是一个独立的training data,并给每个样本对应的ground truth, 再把training data和对应的ground truth放到网络中用于训练网络,这种简单的方法对数据量、人工标注的要求比较高,而且费时费力。
视频图像有它自己的特点,相邻的两个frame是连续的,使得视频中的图像中 “t时刻和t+1时刻两个frame同一位置的pixel信息可能不完全相同,但t+1时刻(x+△x,y+△y)位置的pixel可能与t时刻(x,y)位置的pixel特征相同,并同时属于object a”, 我们可以把这个特性称之为 motion information(我自己瞎起的名字)。假如我们已经知道t-1时刻在(x,y)位置的pixel属于object A,那么我们是否可以通过某种度量方法计算t时刻(x,y)位置或(x+△x,y+△y)
那我们是否可以用t时刻的ground truth去预测t+1时刻的frame?这样在训练的过程中我们就不需要t+1时刻的ground truth,这个地方也就体现了semi-supervision。
2. Overview
Figure 1是整个网络的结构图,从左到右分别是,t-1和t时刻的分割状态,从上到下分别表示training data,从backbone中获取的feature map+embedding,local matching+global matching,最后一层是dynamic segmentation head。
Figure 1.FEELVOS网络结果2.1 backbone + embedding
The proposed architecture uses DeepLabv3+ [5] (with its output layer removed) as its backbone to extract features with a stride of 4. On top of that, we add an embedding layer that extracts embedding feature vectors at the same stride.
原文中用的是DeepLabv3+作为backbone,我们可以根据自己的数据类型选择不同的backbone,medical image就可以用Unet或者FCN,它只是一个特征提取的工作。backbone feature的输入是original image,输出的features流向了embedding和最后的dynamic segmentation head。
在获得feature maps后作者添加了一个embedding 的操作(我更熟知embedding是在NLP(natural language process)中的应用, 研究生时实验室的大多数同学做这个方向)。在我看来embedding操作更像是将低维度的特征通过某种非线性变化映射到高维空间,这样每个feature vector就能够表示更详细更具体的特征,而在embedding space中,若两个向量之间的距离很小那他们属于同一个object的概率就很大,若两者的距离很大那他们可能属于不同的object(The idea of the embedding space is that pixels belonging to the same object instance (in the same frame or in different frames) will be close in the embedding space and pixels which belong to distinct objects will be far away)。
这个操作是为了后面计算local matching和global matching做铺垫。所以综合来看,backbone是用于获取特征,embedding用于“处理”特征。
2.2 Semantic Embedding
Afterward, for each object, we compute a distance map by globally matching the embedding vectors of the current frame to the embedding vectors belonging to this object in the first frame. Additionally, we use the predictions of the previous time frame in order to compute for each object another distance map by locally matching the current frame embeddings to the embedding vectors of the previous frame.
所以计算全局匹配使用 first frame+ current frame,局部匹配使用 previous frame+current frame;这个地方也很好理解为什么全局是跟first frame比,局部跟前一个frame比。 因为从相邻的两个frame才能获取某些局部移动、匹配。 first frame 和current frame比能发现object的大体轮廓有没有变化。
怎么去计算distance map呢?作者采用了
其中, 是p点的embedding vector,d的值在0到1之间,0表示p和q是完全相同的。(其实计算两个sample之间的相关性或者距离的方法有很多中,我们可以尝试不同的组合或者不同的方法)
2.3 global matching和local matching
global distance formula: , global matching distance map Gt,o(p) for each ground truth object o and each pixel p ∈ Pt of the current video frame t as the distance to its nearest neighbor in the set of pixels P1,o of the first frame.
local distance formula:
根据这两个公式就能得到global distance map 和local distance map, 最后将这两个map和backbone feature map输入到segmentation head中完成分割。
figure 2. Global and local matching. For a given object (in this case the duck), global matching matches the embedding vectors of the current frame to the embedding vectors of the first frame which belong to the object and produces a distance map. Dark color denotes low distances. Note that the global distance map is noisy and contains false-positives in the water. Local matching is used to match the current frame embeddings to the embeddings of the previous frame which belong to the object. For local matching, matches for a pixel are only allowed in a local window around it但这篇论文也存在一个问题,在计算 distance map的时候,需要计算每个pixel之间的相似度,这样就会造成空间和时间上的浪费,而每个object在视频中的位移量又是有限的,所以我们是否可以采用一种box或者patch的方式限制要比较的pixel的位置,从而降低计算量。
总之,这是一篇我很喜欢的论文!!喜欢原因就是他采用了semi-supervised method对视频进行分割,有别于印象中的deep learning方法,这种方法降低了对ground truth的要求,而且能够成图像本身提出更多的特征。最近在CVPR,ICCV或是MICCAI中采用self-supervision和semi-supervision的方法越来越多,这种方法也成为了hot topic。
网友评论