Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

CVPR 2019 | 条件运动传播:从运动中学习物体性质

本文介绍了一种从运动中无监督地学习物体性质的方法:Self-Supervised Learning via Conditional Motion Propagation [1].

这篇文章来自香港中文大学和南洋理工大学,被CVPR 2019接收。

这篇文章的作者用一种容易理解、接近直觉的方式来分享这篇文章的思路来源,希望能对读者有所启示。

基于运动分析的无监督学习

人为何能具有无监督学习的能力?其中有个很重要的因素是,人能够从运动中学习到:什么是物体、不同物体的性质、运动的规律等等。

婴儿从出生到成长的过程中,无时无刻不在观察着世界的运转。尽管没有系统地学过力学和运动学,TA还是可以轻易地根据一些已经形成常识的法则形成个体的概念,理解不同物体的运动学性质,甚至预测物体的未来运动。

那么这样的常识和法则是什么呢?这很难完整地定义。

也许你会说,一个个体倾向于具有一致的运动大小和方向,但这其实仅仅适用于平动中的刚体。然而现实世界中大多数物体具有高自由度,例如人体,甚至是可变形的,例如水流。

既然无法显式地定义它,那么这种常识,可否能通过神经网络来自动地从大量视频中学习呢?

运动中学习(learn-from-motion),我们首先需要理解运动是什么。

运动是物体的运动学属性的外在反映。从运动中学习,无非就是透过现象(运动)总结规律(物体属性)。

如图1,对于有监督学习来说,这种规律具有完整的定义和显式的标注,例如实例分割,因此可以直接对内在规律(个体的类别和mask)进行监督。但如前面所说,这类运动学属性常识不仅难定义,而且更难标注,因此我们需要寻求新的学习范式。

图1. 监督学习范式

如图2,一种合理的无监督学习范式是,通过观测到的表象来感知隐式的内在规律,再把这种规律以某种新的表象表达出来。然后对这个新的表象应用一些限制和假设并表示成损失函数来学习。我们将之定义为“感知-表达范式”。

图2. 一种无监督学习范式:感知-表达


对应到从运动中学习这个问题,我们的观测表象和预测表象可以有多种组合:

1)观测:视频;预测:运动

2)观测:运动;预测:图片/视频

3)观测:单张图片;预测:运动

4)观测:单张图片;预测:运动前景分割

对于1),观测表象是视频,其本身就具有运动信息,那么如果最后任务是预测运动的话,其学习到的内在规律仅仅是帧间关联性而已(参考无监督光流学习[2])。

对于2),运动(例如光流)中包含的信息太少,例如一块区域是静止的,我们就无法确定这块区域是什么物体,因此这种方式也难以获得我们需要的信息。

对于3),代表从静态图片中预测运动,这是一个很合适的思路,事实上已经有一些工作在做这个事情[3][4]。不过要注意的是,静态图片中物体的未来运动具有不确定性,例如一辆汽车可能正在前进,也可能在倒车。现有的工作基于编码后的运动能够形成一个多元标准高斯分布的假设来训练。而由于现实世界中物体的结构复杂性和运动不确定性,这个假设其实是很强的,因而导致网络的收敛难度较大。

对于4),也有对应的工作[5]。他们从视频中提取运动前景作为监督,来学习从静态图片中分割出运动前景。这个工作基于的假设是同一个物体上像素的运动具有相似性。然而这个假设仅仅适用于平动的刚体。

人类对运动的想象

我们不妨来反思一下人对运动的想象是个什么过程。

图3. 人对运动的想象


如图3,看到一张静态图像,人会首先判断其中每个物体的属性,例如图片中的舞者是个铰接体,舞者的头是刚体等等。然后我们会想象每一部分运动起来会是什么样子,也就是给一些抽象的指令,例如图片中的舞者右手抬起、低下头等。

最后人能够在脑海中想象出这些物体完整的运动,包括右手绕着肩关节的旋转,头部向下的移动,以及身体其它部位的运动。这个过程可以用一个简单的公式描述:属性+指令=运动。

同样地,这个公式可以适用于各种其它物体,比如汽车、狗、鸟等。从而,我们得到了第5种“感知-表达范式“的输入输出组合。即:

5)观测:单张图片和抽象指令;预测:运动;而“内在规律”即为物体属性。

物体属性是我们希望学到的信息,而运动可以用已有的光流来描述,那么我们只需要有“指令”就可以了。

然而,这个指令是抽象的,对于无监督学习系统来说,它不知道“左手”、“右腿”和“头”是什么概念,自然无法理解这些指令。接下来我们要做的,是用一种最简单的方式来模拟这种指令。

条件运动传播

我们的论文[1]将上述“属性+指令=运动”的想法实现为“条件运动传播”任务。

图4. 条件运动传播

如图4,我们对图像进行编码,期望得到物体属性相关特征,然后从运动场中抽样出稀疏运动代表“指令”(条件),将两者输入到运动解码器中预测出完整运动场。

最理想的情况,抽样点应该恰好涵盖所有的运动自由度,这样的“指令”是在确保完备性的前提下最精简的。然而这个目标是很难达到的。为此,我们设计了一种基于“分水岭”的抽样策略,以期抽样点尽量落在运动物体上,并且足够稀疏。

由于本文主要讨论思想,这篇论文的其它细节可以参考原paper和代码(文末附地址)。

条件运动传播的应用

为了验证条件运动传播无监督学习物体性质的能力,我们在文章中介绍了三种应用。

1)首先是表征学习能力

我们将条件运动传播网络中的图像编码器提取出来,用来初始化其它高级任务,包括语意分割、实例分割和人体解析。

我们期望用条件运动传播任务初始化的神经网络参数能为这些更高级的任务提供一个较好的初始化。这也是自监督学习领域的标准评价指标。在这些任务上,条件运动传播相比以往自监督学习方法获得了较大提升。

图5. PASCAL VOC 2012语义分割任务中不同初始化方式的性能对比

2)在测试时,条件运动传播可以由用户制定“指令”。

经过可视化分析,我们发现了一些有趣的现象。

图6. 条件运动传播测试时可以由用户制定“指令”

例如在图6第一个例子中,给定舞者一个“抬左脚”的指令(对应脚上的红色箭头),预测出来的运动场中,整个左脚连同小腿绕着膝关节旋转。而给定舞者“身体向前”的指令后,预测出来身体是整体平移。这些观测大致符合人体作为一个铰接体的运动规律。

图6另一个例子中,给定舞者左侧大腿后抬的指令,预测结果中整个左腿能够一起运动;而给定舞者右腿后移的指令,预测结果中脚仍旧还是固定的,因为右脚支撑在地上。这些结果遵循物体的运动学属性,并且反映出了一部分现实世界中的物理规律。 

利用这些特性,我们将它应用到了交互式视频生成。

图7. 交互式视频生成。T=0为输入图片,红色箭头为用户的指令(鼠标拖拽),利用条件运动传播,能够根据不同的指令生成合理的运动后的图像。

如图7,我们将原图用预测出来的光流做warping后得到运动后的图像。这样我们可以使用鼠标让一张静态图中的物体动起来,并且它们的运动符合其原有的运动规律(请看文末视频演示)。

3)半自动实例标注

我们发现条件运动传播能很好地分割出物体的边界,而不受复杂的背景影响。因此我们利用训练好的条件运动传播网络实现了半自动实例标注。

图8. 半自动实例标注

如图8,用户只需指定少量落在目标物体上的positive points和物体外的negative points即可得到物体的mask。由于条件运动传播是无监督的,没有物体类别的限制,因此可以用来标注一些不常见的物体。

到此为止,这些结果都没有用到任何人工的标注。

总结

条件运动传播尚且还是最初级的探索,权当抛砖引玉。是否还有运动分析思路,更好的“观测-规律-预测”组合,更好的无监督学习范式?这些都需要后续的研究者来回答。 

论文地址:

http://personal.ie.cuhk.edu.hk/~ccloy/files/cvpr_2019_self.pdf

代码地址:

https://github.com/XiaohangZhan/conditional-motion-propagation

Demo演示:

References:

[1] Xiaohang Zhan, Xingang Pan, Ziwei Liu, Dahua Lin, and Chen Change Loy. Self-Supervised Learning via Conditional Motion Propagation. In CVPR, 2019.

[2] Simon Meister, Junhwa Hur, and Stefan Roth. UnFlow: Unsupervised learning of optical flow with a bidirectional census loss. In AAAI, 2018.

[3] Jacob Walker, Abhinav Gupta, and Martial Hebert. Dense optical flow prediction from a static image. In ICCV, 2015.

[4] Jacob Walker, Carl Doersch, Abhinav Gupta, and Martial Hebert. An uncertain future: Forecasting from static images using variational autoencoders. In ECCV. Springer, 2016.

[5] Deepak Pathak, Ross B Girshick, Piotr Doll´ar, Trevor Darrell, and Bharath Hariharan. Learning features by watching objects move. In CVPR, 2017.


我爱计算机视觉
我爱计算机视觉

关注计算机视觉与机器学习技术的最前沿,“有价值有深度”,分享开源技术与最新论文解读,传播计算机视觉与机器学习技术的业内最佳实践。

理论计算机视觉无监督学习
1
相关数据
Martial Hebert人物

卡内基梅隆大学机器人研究所主任,其研究领域包括计算机视觉领域,特别是图像和视频数据的识别;3D数据的模型构建和对象识别;以及移动机器人和智能车辆的感知等。他带领的研究团队开发了从三维视觉信息和视频信息进行场景分析和物体识别的技术,并应用到无人驾驶汽车和移动机器人当中。在智能机器人领域,他的团队也开发了人体检测、识别、跟踪与预测等技术。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

暂无评论
暂无评论~