视频分割VideoMatch(Matching based Video Object Segmentation)

视频分割VideoMatch(Matching based Video Object Segmentation)

paper 地址: https://link.springer.com/content/pdf/10.1007%2F978-3-030-01237-3_4.pdf

Abstract

VOS(video object segmentation) 在视频分析中应用广泛,比如video compression, video editing, video object identification. 由于 occlusions, fast motion, motion blur, appearance variation 这些情况的出现,使得这个问题非常具有challenging. 有很多工作是将VOS任务当成了一个predicition 任务,并且使用deep learning 做到了不错的效果,但是已有的方法中基本都得需要在test的时候做fine-tuning, 使得网络迅速的”记住”目标, fine-tuning有些费时,而且当要跟多个目标的时候,每个目标都要进行fine-tuning, 所以很难做到实时.

这个工作是通过将features与模板进行match, 从而不需要fine-tuning也能做到不错的效果, 并且速度也很快. 最亮点的是(个人认为)是可以做到多个目标同时跟.

网络结构

网络结构如下

avator

  • backbone 用的是resnet101, 上下两个支路共享, 上面是第一桢的,下面是第t桢的, 实际训的时候其实是同一个视频中的任意pair都可以.

  • 网络结构中最亮点的地方(个人觉得)是mF和mB的得到和后面的soft matching.

设得到的basic的features Xt是(h,w,c)的shape, 那么对于任意的一个位置i(两维的), 即 Xt[i1,i2,:] 是个长度为c的向量.

相当于是有目标的位置得到的是mF,没有目标的位置得到的是mB, 这里面存的都是长度为c的向量.

avator

  • soft matching layer

结构如下

avator

这个过程就是matching, 是本文的精华部分,即将Xt对应的沿深度方向的长条向量对应到第一桢的mF与mB上去. 具体就是 topk-average的操作.

比如对于左上解的第一个像素点a, 拿着a点处的feature值去和 mF或者是mB中的每一个去算一个cos距离(这里可以尝试其它距离), 算出来的分数可以认为是相似度,然后算完之后取topK,然后对K个取平均得到的结果就作为第一个像素点a的分, 这样下来就会得到一个(h,w)的FG similarity 图 和另外一个(h,w)的BG similarity 图, 叫matching score更合适, 之后这两个matching scores 会分别经过上采样和concat 得到和原图同样大小的(H,W,2) predict, 然后做一下softmax 就作为最终的输出.

avator

后处理

实际在test的时候是这样做的

avator

  • 网络最初输出的那个score 记为 y-init

  • 上一桢的最终结果记为y(t-1)

  • 先用一个阈值卡掉在上一桢中分不太高的地方,得到的结果记为Y(t-1), 这个过程个人觉得非常地有启发性,有些类似于用一桢的结果给当前桢划定了一个search region.这一个想法非常值得学习.

这样做的前提是假设了目标没有发生太大的形变或者速度不是太大.

  • 然后再从y-init中去掉与Y(t-1) 不相交的部分, 即得到的是(y-init) - Y(t-1). (集合的作差).

在线更新

一般模板更新都是将当前桢的结果中置信度比较高的给存起来,用于之后的在线更新。在这里想法也是这样的,这里需要更新的是mB与mF.

  • mB的更新方式如下

avator

意思就是把预测的分高的,但是又不在最终结果中的那些点给放到背景中去, 有些相当于fp

  • mF的更新方式如下

avator

多目标同时做

多目标的时候,mB和mF就会有多个了,这时候最终的yt需要看每个目标的最终得分map

最终的效果

avator

thoughts

  • 将前景背景进行分离,还有soft matching 这个想法感觉很不错

  • 同时能做到多个目标一起跟, 这个想法能否用到sot上来做mot.

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦