TLDR: 视频分割一直是重标注的一个task,这篇CVPR 2023文章研究了完全不需要标注的视频物体分割。仅使用ResNet,RCF模型在DAVIS16/STv2/FBMS59上提升了7/9/5%。文章里还提出了不需要标注的调参方法。代码已公开可用。

Paper title: Bootstrapping Objectness from Videos by Relaxed Common Fate and Visual Grouping

arXiv: https://arxiv.org/abs/2304.08025

作者机构:UC Berkeley, MSRA, UMich

Project page: https://rcf-video.github.io/

Code and models: https://github.com/TonyLianLong/RCF-UnsupVideoSeg

视频物体分割真的可以不需要人类监督吗? 

视频分割一直是重标注的一个task,可是要标出每一帧上的物体是非常耗时费力的。然而人类可以轻松地分割移动的物体,而不需要知道它们是什么类别。为什么呢?

Gestalt定律尝试解释人类是怎么分割一个场景的,其中有一条定律叫做Common Fate,即移动速度相同的物体属于同一类别。比如一个箱子从左边被拖到右边,箱子上的点是均匀运动的,人就会把这个部分给分割出来理解。然而人并不需要理解这是个箱子来做这个事情,而且就算是婴儿之前没有见过箱子也能知道这是一个物体。

运用Common Fate来分割视频

这个定律启发了基于运动的无监督分割。然而,Common Fate并不是物体性质的可靠指标:关节可动 (articulated) /可变形物体 (deformable objects) 的一些part可能不以相同速度移动,而物体的阴影/反射 (shadows/reflections) 始终随物体移动,但并非其组成部分。

举个例子,下面这个人的腿和身子的运动是不同的(Optical Flow可视化出来颜色不同)。这很常见,毕竟人有关节嘛 (articulated),要是这个处理不了的话,很多视频都不能分割了。然而很多baseline是处理不了这点的(例如AMD+和OCLR),他们把人分割成了几个部分。

还有就是影子和反射,比如上面这只天鹅,它的倒影跟它的运动是一致的(Optical Flow可视化颜色一样),所以之前的方法认为天鹅跟倒影是一个物体。很多视频里是有这类现象的(毕竟大太阳下物体都有个影子嘛),如果这个处理不了的话,很多视频也不能分割了。

那怎么解决?放松。Relax. 

长话短说,那我们的方法是怎么解决这个问题的呢?无监督学习的一个特性是利用神经网络自己内部的泛化和拟合能力进行学习。既然Common Fate有自己的问题,那么我们没有必要强制神经网络去拟合Common Fate。于是我们提出了Relaxed Common Fate,通过一个比较弱的学习方式让神经网络真正学到物体的特性而不是noise。

具体来说,我们的方法认为物体运动由两部分组成:物体总体的piecewise-constant motion (也就是Common Fate)和物体内部的segment motion。比如你看下图这个舞者,他全身的运动就可以被理解成piecewise-constant motion来建模,手部腿部这些运动就可以作为residual motion进行拟合,最后合并成一个完整的flow,跟RAFT生成的flow进行比较来算loss。我们用的RAFT是用合成数据(FlyingChairs和FlyingThings)进行训练的,不需要人工标注。

Relaxed Common Fate   

首先我们使用一个backbone来进行特征提取,然后通过一个简单的full-convolutional network获得Predicted Masks $\hat{M}$(下图里的下半部分),和一般的分割框架是一样的,也可以切换成别的框架。

那我们怎么优化这些Masks呢?我们先提取、合并两帧的特征,放入一个residual flow prediction head来获得Residual Flow $\hat{R}$ (下图里的上半部分)。

然后我们对RAFT获得的Flow用Predicted Masks $\hat{M}$进行Guided Pooling,获得一个piecewise-constant flow,再加上预测的residual flow,就是我们的flow prediction了。最后把flow prediction和RAFT获得的Flow的差算一个L1 norm Loss进行优化,以此来学习segmentation。

在测试的时候,只有Predicted Masks $\hat{M}$ 是有用的,其他部分是不用的。

这里的Residual Flow会尽量初始化得小一些,来鼓励先学piecewise-constant的部分(有点类似ControlNet),再慢慢学习residual部分。

引入Appearance信息来帮助无监督视频分割  

光是Relaxed Common Fate就能在DAVIS上相对baseline提5%了,但这还不够。前面说Relaxed Common Fate的只用了motion而没有使用appearance信息。

让我们再次回到上面这个例子。这个舞者的手和身子是一个颜色,然而AMD+直接把舞者的手忽略了。下面这只天鹅和倒影明明在appearance上差别这么大,却在motion上没什么差别。如果整合appearance和motion,是不是能提升分割质量呢?

因此我们引入了Appearance 来进行进一步的监督。在学习完motion信息之后,我们直接把取得的Mask进行两步优化:一个是low-level的CRF refinement,强调颜色等细节一致的地方应该属于同一个mask(或背景),一个是semantic constraint,强调Unsupervised Feature一直的地方应该属于同一个mask。

把优化完的mask再和原mask进行比较,计算L2 Loss,再更新神经网络。这样训练的模型的无监督分割能力可以进一步提升。具体细节欢迎阅读原文。

无监督调参

很多无监督方法都需要使用有标注的数据集来调参,而我们的方法提出可以利用前面说的motion和appearance的一致性来进行调参。简单地说,motion学习出的mask在appearance上不一致代表这个参数可能不是最优的。具体方法是在Unsupervised Feature上计算Normalized Cuts (但是不用算出最优值),Normalized Cuts越小越代表分割效果好。原文里面对此有详细描述。

方法效果   

无论是否有Post-processing,我们的方法在三个视频分割数据集上都有很大提升,在STv2上更是提升了12%。

Ablation可以看出Residual pathway (Relaxed Common Fate)的贡献是最大的,其他部分总计贡献了11.9%的增长。

Visualizations

总结

这篇CVPR 2023文章研究了完全不需要标注的视频物体分割。通过Relaxed Common Fate来利用motion信息,再通过改进和利用appearance信息来进一步优化,RCF模型在DAVIS16/STv2/FBMS59上提升了7/9/5%。文章里还提出了不需要标注的调参方法。代码和模型已公开可用。

CVPR 2023 | RCF:完全无监督的视频物体分割的更多相关文章

  1. 【转】有监督训练 & 无监督训练

    原文链接:http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: ...

  2. 转:Deep learning系列(十五)有监督和无监督训练

    http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: Andr ...

  3. DeepMind爆出无监督表示学习模型BigBiGAN,GAN之父点赞!

    [导读]今天,DeepMind爆出一篇重磅论文,引发学术圈热烈反响:基于最强图像生成器BigGAN,打造了BigBiGAN,在无监督表示学习和图像生成方面均实现了最先进的性能!Ian Goodfell ...

  4. 图片质量评估论文 | 无监督SER-FIQ | CVPR2020

    文章转自:同作者微信公主号[机器学习炼丹术].欢迎交流,共同进步. 论文名称:SER-FIQ: Unsupervised Estimation of Face Image Quality Based ...

  5. 学习笔记CB008:词义消歧、有监督、无监督、语义角色标注、信息检索、TF-IDF、隐含语义索引模型

    词义消歧,句子.篇章语义理解基础,必须解决.语言都有大量多种含义词汇.词义消歧,可通过机器学习方法解决.词义消歧有监督机器学习分类算法,判断词义所属分类.词义消歧无监督机器学习聚类算法,把词义聚成多类 ...

  6. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  7. 将句子表示为向量(上):无监督句子表示学习(sentence embedding)

    1. 引言 word embedding技术如word2vec,glove等已经广泛应用于NLP,极大地推动了NLP的发展.既然词可以embedding,句子也应该可以(其实,万物皆可embeddin ...

  8. 使用GAN进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是要VAE,SAE。

    实验了效果,下面的还是图像的异常检测居多. https://github.com/LeeDoYup/AnoGAN https://github.com/tkwoo/anogan-keras 看了下,本 ...

  9. 无监督︱异常、离群点检测 一分类——OneClassSVM

    OneClassSVM两个功能:异常值检测.解决极度不平衡数据 因为之前一直在做非平衡样本分类的问题,其中如果有一类比例严重失调,就可以直接用这个方式来做:OneClassSVM:OneClassSV ...

  10. UFLDL深度学习笔记 (三)无监督特征学习

    UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...

随机推荐

  1. 如何训练个人的ChatGpt4

    如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它 本文旨在为任何人安装此软件.最初它有一个视频,伴随着操作方法,但是事情变化很快,我的三次尝试只是推迟了我发表这 ...

  2. Go语言微服务框架go-micro(入门)

    Micro用于构建和管理分布式系统,是一个工具集,其中go-micro框架是对分布式系统的高度抽象,提供分布式系统开发的核心库,可插拔的架构,按需使用 简单示例 编写protobuf文件: synta ...

  3. vue3组合式API介绍

    为什么要使用Composition API? 根据官方的说法,vue3.0的变化包括性能上的改进.更小的 bundle 体积.对 TypeScript 更好的支持.用于处理大规模用例的全新 API,全 ...

  4. java跨越解决

    1.配置文件解决跨域 使用Filter方式进行设置 @Slf4j @Component public class CorsFilter implements Filter { @Override pu ...

  5. python 快速替换csv数据集字符串列表中的表情符号为空,asyncio,re,pandas

    传统的字符串列表替换字符串使用遍历非常慢 比如下面这段代码,如果处理几十万或上百万的数据集时,会非常的慢,几小时几天都可能 import re p = re.compile(u'['u'\U0001F ...

  6. Amazon S3 对象存储Java API操作记录(Minio与S3 SDK两种实现)

    缘起 今年(2023年) 2月的时候做了个适配Amazon S3对象存储接口的需求,由于4月份自学考试临近,一直在备考就拖着没总结记录下,开发联调过程中也出现过一些奇葩的问题,最近人刚从考试缓过来顺手 ...

  7. Centos7.x 安装 newman + postman

    一.基础环境 输入 npm -v (查看 npm 版本) 输入 node -v(查看 node 版本) 二.安装newman 1.执行 npm install –g newman 进行安装 2.验证安 ...

  8. NC51101 Lost Cows

    题目链接 题目 题目描述 \(N (2 \leq N \leq 8,000)\) cows have unique brands in the range 1..N. In a spectacular ...

  9. 简单工厂模式(Static Factory Method)

    创建性设计模式--简单工厂模式(Static Factory method) 模式动机 只需要知道参数的名字则可得到相应的对象 软件开发时,有时需要创建一些来自于相同父类的类的实例.可以专门定义一个类 ...

  10. 2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3。

    2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3. 答案2023-03-19: 本文将介绍如何使用Go语言和FFmpeg库实现PCM音频文件编码为MP3格式.我们将使用moon ...