这篇论文是Chelsea Finn在2016Nips上发表的将video prediction和robotics结合起来的一个很好的尝试。这是之后很多基于动作的视频预测任务的baseline模型,对于大规模进行机器人的自监督学习有重要意义。此外,还对本实验的代码进行了一部分的修改,将文中反复将预测的图像重新输入到模型中继续预测,改成了直接输入前两帧、初始状态和一系列动作,获得最终的预测图像,并对结果进行了整理和分析。

Abstract

摘要部分,总结了一下全文,说了下面几个事情:

  1. 机器人与环境交互的挑战之一是要预测它的行为会对环境产生什么样的影响,但是现有的大部分方法需要labeled物体信息,这里要解决的就是如何使用未标记的数据学习物体的运动
  2. 这篇文章提出了基于action的视频预测方法,能够通过预测先前帧中像素运动的分布来显式地模拟像素运动
  3. 由于是显式地预测运动,所以物体的外观是部分不变的,因此可以推广到其他图像
  4. 提出了包括59,000个机器人运动的robotics pushing 数据集(这在之后的很多视频预测工作中都有用到)
  5. 最后在robotics pushing 数据集和human3.6m数据集上效果都比较好

1. 简介

对于机器人无人车无人机来说,知道自己的action会对环境产生什么样的影响是非常重要的。但是现有预测外部世界物理规律的方法基于大量的人工标注的数据。如果能够从无label的数据中自主学习一种表示来预测未来的情况,机器人就可以自己去环境中探索。

然而,从原始视频中学习,图像像素维度高,且视频中物体的运动部分可观察。先前的视频预测方法要求模型有个内部状态来重构未来图像。本方法提出物体的外貌和背景信息可直接在前一帧中获得,不需要模型存储。该模型将先前帧的外貌信息与预测的运动合并,结果,能够更好地预测多步的未来视频序列,甚至也可预测训练时没见过的物体。


本工作提出了3种预测模型:

  1. 动态神经对流 Dynamic neural advection, DNA. 输出新的一帧图像是前一帧图像像素位置的分布
  2. 卷积动态神经对流 Convolutional dynamic neural advection, CDNA, DNA的一个变体.输出多个归一化的卷积核参数,应用到前一帧图像上计算新的像素
  3. 空间变换预测器 Spatial transformer prediction, STP. 输出多个affine transformations 用于前一帧图像

2. 相关工作

视频预测:有关视频预测的先前工作解决了合成视频和真实视频中的短期预测问题。
[30]使用最近邻方法使用数据集中的相似视频进行预测。[21]提出了受语言模型启发的视频预测基准[21]。LSTM模型已被适配用于补丁[22]的视频预测,动作条件的Atari帧预测[20]和降水临近预报[28]。 Mathieu等为更清晰的帧预测提出了新的损失函数[17]。先前的方法通常从模型的内部状态重建帧,并且一些方法直接预测内部状态,而不产生图像[23]。
相反,我们的方法会转换先前帧中的像素,对运动进行显式建模,如果使用CDNA和STP模型,则将其在图像片段上分解。我们在实验中发现,通过对前一帧中的像素进行平移并将它们组合到新图像上,而不是从头开始构建图像,我们所有的三个模型都能产生更好的预测。这种方法不同于最近关于光流预测的工作[25],后者使用直接光流监控来预测像素将移动到哪里。靴子等。使用基于非参数核的方法预测机器人手臂的未来图像[4]。与这项工作相反,我们的方法使用灵活的参数模型,并有效地预测与对象的交互,包括在训练过程中未看到的对象。据我们所知,在未来的两个时间步长范围内,没有以前的视频预测方法可用于预测具有新颖对象交互作用的真实图像。与此工作同时开发了许多有前途的帧预测方法[16]。 Vondrick等[24]将对抗目标与多尺度前馈架构相结合,并使用类似于此处提出的掩蔽方案的前景/背景掩蔽。 De Brabandere等[6]提出了一种类似于我们的DNA模型的方法,但是使用softmax以获得更清晰的流量分布。 Xue等人提出的概率模型。 [29]预测应用于潜在特征图的变换,而不是图像本身,但仅演示了单帧预测.

3 关注于运动的预测模型

首先预测图像片段的运动,然后通过遮罩合并这些预测。

3.1 像素变换

motion模块是本模型的核心,这个模块只预测物体的运动,不需要考虑重建物体的外貌。因此它应该对物体的外貌具有一些invariance,即使对没见过的物体也能有效的预测。本工作提出了3种motion预测模型:

动态神经对流Dynamic Neural Advection (DNA):

预测新帧中每个像素在前一帧中各个位置的分布。在此分布下,将预测像素值计算为期望值。在像素不会移动较大距离的正则化假设下,我们将像素移动限制在局部区域(−κ,κ)(-\kappa, \kappa)(−κ,κ)),使预测的维数较低。形式上,将预测运动变换m^\hat{m}m^(只有针对整个图像的一个变换)应用于上一帧图像的每个像素点(x,y)(x,y)(x,y),预测下一帧I^t(x,y)\hat{I}_{t}(x, y)I^t​(x,y)。
I^t(x,y)=∑k∈(−κ,κ)∑l∈(−κ,κ)m^xy(k,l)I^t−1(x−k,y−l)\hat{I}_{t}(x, y)=\sum_{k \in(-\kappa, \kappa)} \sum_{l \in(-\kappa, \kappa)} \hat{m}_{x y}(k, l) \hat{I}_{t-1}(x-k, y-l)I^t​(x,y)=k∈(−κ,κ)∑​l∈(−κ,κ)∑​m^xy​(k,l)I^t−1​(x−k,y−l)

卷积动态神经对流 Convolutional Dynamic Neural Advection (CDNA):

假设图像中不同位置的不同物体都可以用同一种机制来预测运动(motion),本文考虑以物体为主的预测运动的方法。该模型不是预测每一个像素点的分布,而是预测多个离散分布,每个离散分布都通过卷积(具有约束权重)应用于整个图像,从而计算每个像素的运动分布的期望值。核心想法就是同一刚体上的点都是一起运动的,所以这些点可以共享相同的变换。形式上,一个预测的物体变换m^\hat{m}m^用于上一帧图像I^t(x,y)\hat{I}_{t}(x, y)I^t​(x,y),生成J^t(x,y)\hat{J}_{t}(x, y)J^t​(x,y):

J^t(x,y)=∑k∈(−κ,κ)∑l∈(−κ,κ)m^(k,l)I^t−1(x−k,y−l)\hat{J}_{t}(x, y)=\sum_{k \in(-\kappa, \kappa)} \sum_{l \in(-\kappa, \kappa)} \hat{m}(k, l) \hat{I}_{t-1}(x-k, y-l)J^t​(x,y)=k∈(−κ,κ)∑​l∈(−κ,κ)∑​m^(k,l)I^t−1​(x−k,y−l)
简单来说,就是有多个变换{m^(i)}\left\{\hat{m}^{(i)}\right\}{m^(i)}应用于前一帧图像I^t−1\hat{I}_{t-1}I^t−1​,生成了多个新的图像{J^t(i)}\left\{\hat{J}_{t}^{(i)}\right\}{J^t(i)​},这些输出的图像组合起来生成一张预测图像I^t\hat{I}_{t}I^t​。
DNA和CDNA结构相似,不过DNA的转换m^\hat{m}m^由最后一层卷积conv2输出因此只有一个,而CDNA的转换{m^(i)}\left\{\hat{m}^{(i)}\right\}{m^(i)}由LSTM5输出。

空间变换预测器Spatial Transformer Predictors (STP)

在这种方法中,该模型生成多个2D仿射图像转换,并使用双线性采样核[11]应用这些转换。形式上,一组仿射参数M^\hat{M}M^在先前图像像素(xt−1,yt−1)\left(x_{t-1}, y_{t-1}\right)(xt−1​,yt−1​)与生成的图像像素(xt,yt)\left(x_{t}, y_{t}\right)(xt​,yt​)之间产生一组扭曲网格:

(xt−1yt−1)=M^(xtyt1)\left(\begin{array}{l}x_{t-1} \\ y_{t-1}\end{array}\right)=\hat{M}\left(\begin{array}{l}x_{t} \\ y_{t} \\ 1\end{array}\right)(xt−1​yt−1​​)=M^⎝⎛​xt​yt​1​⎠⎞​

该网格可以使用双线性核法应用与生成图像:

J^t(xt,yt)=∑kW∑lHI^t−1(k,l)max⁡(0,1−∣xt−1−k∣)max⁡(0,1−∣yt−1−l∣)\hat{J}_{t}\left(x_{t}, y_{t}\right)=\sum_{k}^{W} \sum_{l}^{H} \hat{I}_{t-1}(k, l) \max \left(0,1-\left|x_{t-1}-k\right|\right) \max \left(0,1-\left|y_{t-1}-l\right|\right)J^t​(xt​,yt​)=k∑W​l∑H​I^t−1​(k,l)max(0,1−∣xt−1​−k∣)max(0,1−∣yt−1​−l∣)

其中WWW和HHH是图像的宽度和高度。尽管以前仅将这种类型的运算符应用于监督学习任务,但它非常适合视频预测。多个变换{M^(i)}\left\{\hat{M}^{(i)}\right\}{M^(i)}应用于前一帧图像I^t−1\hat{I}_{t-1}I^t−1​,生成了多个新的图像{J^t(i)}\left\{\hat{J}_{t}^{(i)}\right\}{J^t(i)​},然后基于mask进行合成。该框架与图1中的框架相匹配,但STP模型不在LSTM 5层上输出CDNA卷积核m^(k,l)\hat{m}(k, l)m^(k,l),而是输出STP参数{M^(i)}\left\{\hat{M}^{(i)}\right\}{M^(i)}。

3.2 预测的多个物体运动如何组合

CDNA和STP预测了多个物体运动,最后需要将多个预测图组合成一张图像。组合的预测图像J^t(i)\hat{J}_{t}^{(i)}J^t(i)​由掩码maskΞ\XiΞ调制,给每个预测的像素定义一个权重。即I^t=∑cJ^t(c)∘Ξc\hat{I}_{t}=\sum_{c} \hat{J}_{t}^{(c)} \circ \Xi_{c}I^t​=∑c​J^t(c)​∘Ξc​。其中ccc表示mask的通道,逐元素与像素相乘。为了获得mask,我们在模型中的最后的卷积层(图1中的conv 2)的每个通道上应用了的softmax,这确保了每个像素位置的mask通道总和为1。
我们的实验表明CDNA和STP模型学会了mask出移动方向一致的对象。这种方法的好处有两点:首先,将预测的运动转换重新用于图像中的多个像素,其次,模型以无监督的方式提取以对象为中心的表示形式,是智能体学习交互的一种理想属性。 DNA模型缺乏这两个好处,但是更灵活,因为它可以为图像中的每个像素预测独立的运动。每个模型还包括一个“背景蒙版”,允许模型直接从前一帧复制像素。 除了提高性能之外,还产生可解释的背景蒙版,在第5节中进行可视化。此外,为了填充之前被遮挡的区域,允许模型直接从图像生成像素,并在最后的mask步骤中将其包括在mask内。

3.3 基于动作的卷积LSTMs

现有的大多数物理预测模型和视频预测模型都使用前馈结构[17,15]或图像的前馈编码[20]。为了生成上面讨论的motion预测,我们采用了堆叠的卷积LSTMs[28]。通过卷积进行递归得到的图像表示具有空间不变性,适用于多步视频预测,因为物理定律在整个空间中基本是一致的。并且从实验中看,具有卷积递归的模型参数更少,可以更有效地使用这些参数。
该模型的体系结构如图1所示,并在附录B中进行了详细说明。在交互设置中,智能体的动作actions和内部状态internal state(例如,机械手的姿势)会影响下一张图像的样子。因此我们把状态和动作向量通过特征图中跨空间拼接,并将结果连接到最低维激活图的通道,将它们融入到模型中。不过智能体的内部状态(即机械手的姿势)仅在开始时输入到网络中,并且必须根据未来时间步长中的action动作进行预测。这里使用了l2l_2l2​重构损失来训练网络。也可以用其他损失,例如[17]中提出的损失,替代或者补充本方法。

4. Robotic Pushing 数据集

基于动作条件视频预测的一项重要的应用是将学到的模型用于基于视觉的机器人控制任务中的决策。通过视频进行无监督学习可以扩大智能体交互式学习,无需人工参与即可自行了解世界。为了研究针对机器人任务的基于条件的视频预测,我们需要一个具有实际物理对象交互作用的数据集。 我们使用10个机械臂收集了一个新的数据集,如图2所示,将数百个物体推入垃圾箱,总计57,000个交互序列和150万个视频帧。还收集了两个测试集,每个测试集记录了1,250个动作。第一个测试集使用了训练期间推入的物体的两个不同子集。 第二个测试集涉及对象的两个子集,在训练期间都没有使用过。我们不仅收集了RGB图像,还有相应的机械臂夹爪位姿,包括内部状态和动作。

5. 实验

这里使用Robotic Pushing 数据集以及Human3.6M数据集[10]来评估本文的3种模型以及一些之前的方法[17,20]。对于CDNA和STP,我们使用了10个transformer转换。论文中展示了预测的一系列静态图像,可以并排查看比较预测图像。
训练细节: 本工作基于Tensorflow,使用ADAM进行优化,共同训练了使用/不使用scheduled sampling[3]的循环网络,展示了验证最好的网络的结果。发现scheduled sampling改善了模型的性能,但对不建模像素运动的消融和基线模型的性能么有产生实质性影响。

5.1 Robotics pushing的基于动作的预测

这里使用了第4小节中提到的Robotic Pushing 数据集来评估模型。输入初始的两张图像、机械臂状态和动作,然后循环将上一帧预测的图像和状态,以及未来的动作输入到模型中。训练中预测8个时间步,测试中最多预测18个时间步。取训练集的5%进行验证。衡量指标为[17]中提出的PSNR和SSIM,在两个测试集(见过的物体和未见过的物体子集)上进行测试。

图3展示了本文方法CDNA模型和之前方法使用l1l_1l1​+GDL loss的前馈多尺度模型的结果,因为这是当中表现最好的模型。在所有的衡量标准上,我们的结果都比之前的视频预测方法好。FC LSTM模型[20]重建背景,缺乏在垃圾箱中重建物体的表示能力。前馈多尺度模型在1步预测中表现良好,但是随着时间的推移,性能迅速下降,因为它仅针对1步预测进行训练。值得注意的是,本方法模型节省了更多的参数:尽管本方法具有循环网络结构,但CDNA包含1250万参数,而前馈模型具有1260万参数,FC LSTM模型更是具有7800万参数。我们发现,没有一个模型在此数据集上遭受明显的过度拟合。还报告了仅仅复制上一帧的基准模型。

图4展示了本文的3种模型与3种ConvLSTM模型进行了比较,包括预测了原始像素值ConvLSTM,预测先前帧与当前帧之间的差异的Conv LSTM, diff. image,以及没有skip connection的Conv LSTM, no skip[28]。通过显式建模像素运动,本文的方法优于这些消融模型。

图5说明了进行更长视野的训练以及基于机器人动作预测的好处。
最后,图6中显示了定性结果,改变了手臂的动作测试模型对可能的未来的预测。
对于所有模型,预测质量会随着时间降低,因为不确定性随着时间不断增加。本文使用均方误差目标,针对均值像素值进行优化,因此模型将不确定性编码为模糊。直接通过例如随机神经网络对不确定性进行建模是未来工作的有趣方向。
有的视频预测方法主要集中在单帧预测上,且大多数还没有证明依次预测多个真实的RGB视频帧。基于动作条件的多帧预测是基于模型的规划中的关键部分,机器人可以预测各种动作的结果,从而针对特定任务选择最佳动作。

5.2 Human motion预测

本文还在Human3.6M数据集上进行了不基于动作的视频预测。Human3.6M包含了多个人在一个房间中做不同动作的图像。本文在5个人的数据上训练了所有的模型,在另1个人的数据上进行验证,在不同人的数据上进行测试。因此,模型从未见过特定的人或穿着相同衣服的人。将视频采样率降低到10 fps,以便在合理的时间范围内视频中出现明显的运动。由于模型不再基于动作,因此只输入10个视频帧并训练了网络生成接下来的10帧,每个帧对应1秒。本实验最多可在验证时衡量未来20步的图像质量。

图7中的结果表明本文的运动预测模型在数量和质量上都优于先前的方法,并在至少10个时间步长内产生合理的运动。还显示了模型内部预测的掩码mask,即上面提到的背景遮罩。这些遮罩说明该模型无需任何监督即可学会在图像中分割人类对象。

5.3 补充实验

文中新预测的图像都是显式地基于上一帧图像,不管是ground truth还是预测的不一定准确的图像,想当然地将预测的结果当作基准输入,然而这很可能造成预测更加不准确。因此,我设计了一个补充实验。文中输入初始的两张ground truth图像、一个初始的机械臂状态和一个动作,预测做了一个动作之后机器人看到的下一帧图像,称为Recurrent Predict。将其修改成,输入初始两张ground truth图像、一个初始的机械臂状态和要做的一系列动作,预测做完这一系列动作之后机器人看到的图像并评估图像的质量,称之为direct predict。下面记录了预测第1帧和第8帧的PSNR结果:

Name\PSNR CDNA DNA STP
Direct Predict(1 frames) 29.64 33.91 32.94
Recurrent Predict(1 frames) 35.90 35.81 37.62
Direct Predict(8 frames) 23.68 22.63 23.81
Recurrent Predict(8 frames) 25.44 25.17 25.06

可见,将预测的图像重新当作输入进行循环预测能有效的提到预测的质量。并且预测时间步越长,生成的图像质量越差,这与文中的结果相呼应,因为uncertainty会随着时间上升。

总结

本文开发了一个用于物理交互的基于动作的视频预测模型,该模型将先前帧中的外观信息与模型预测的运动结合在一起。为了研究无监督学习的物理交互,本文还提出了一个具有59,000个真实机器人交互和150万个视频帧的视频数据集。实验表明,通过学习对初始帧中的像素进行变换,本文模型可以在未来的10多个时间步长内生成合理的视频序列,相当于一秒钟左右。与先前的方法相比,本方法在SSIM、PSNR指标上均达到了最佳结果。
在物理交互的上下文中预测未来的对象运动是智能交互系统的关键组成部分。我们演示的对未来视频帧进行以动作为条件的预测,可以使交互式智能体(例如机器人)根据可用动作来想象不同的未来。这种机制可用于规划特定目标的动作,预测可能的未来(例如在自动驾驶汽车的背景下)以及在探索的背景下识别有趣的新现象。

未来工作

  1. 预测的质量随着时间下降,因为uncertainty随着时间上升,直接通过例如随机神经网络对不确定性进行建模是未来工作的有趣方向。
  2. 虽然本模型直接预测图像像素的运动且自然地将属于同一对象的像素分组在一起并一起移动,但它并未明确提取以对象为中心的内部表示形式(例如[7])。学习这样的表示是另一个有希望的未来方向,特别是对于偏好简洁状态表示的强化学习算法。

预测学习应用于机器人之Unsupervised Learning for Physical Interaction through Video Prediction相关推荐

  1. 预测学习:深度生成式模型、DcGAN、应用案例、相关paper

    前言 图像模式处理相关任务有识别.检测.分割.追踪.而与图像Pixel级别相关的任务,则有增强.编码.压缩.复原与重构.以及与时间相关的图像预测. 自从2012年AlexNet在ImageNet分类获 ...

  2. (转)Predictive learning vs. representation learning 预测学习 与 表示学习

    Predictive learning vs. representation learning  预测学习 与 表示学习 When you take a machine learning class, ...

  3. 【李宏毅机器学习】Unsupervised Learning - Word Embedding 无监督学习 - 词嵌入(p22) 学习笔记

    文章目录 Unsupervised Learning Word Embedding 用一个vector来表示一个word的几种方法 1-of-N Encoding Word Class Word Em ...

  4. 李宏毅深度学习--《Unsupervised Learning:Neighbor Embedding》

    <Unsupervised Learning:Neighbor Embedding> Manifold Learning Locally Linear Embedding (LLE) La ...

  5. 文献学习(part13)--A Sober Look at the Unsupervised Learning of Disentangled...

    学习笔记,仅供参考,有错必纠 文章目录 A Sober Look at the Unsupervised Learning of Disentangled Representations and th ...

  6. 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

    台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding

  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction

    台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...

  8. 无监督对比学习论文Momentum Contrast for Unsupervised Visual Representation Learning阅读

    目录 MoCo论文:<Momentum Contrast for Unsupervised Visual Representation Learning> 基础概念了解 1.无监督.有监督 ...

  9. 李宏毅深度学习--《Unsupervised Learning》+《PCA》+《Matrix Factorization》

    <Unsupervised Learning>+<PCA推导> Unsupervised Learning Clustering K-means Hierarchical Ag ...

最新文章

  1. [BZOJ1857][Scoi2010]传送带
  2. 一个查看全部用户的磁盘空间使用情况的脚本
  3. 【字符串】字符串查找 ( 蛮力算法 )
  4. Java自定义Exception
  5. golden gate 错误集锦
  6. 深入理解 ngrx effect 背后的工作机制
  7. Hadoop生态Flume(一)介绍
  8. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
  9. python mro c3_Python 19 MRO和C3算法
  10. Redis 面试题汇总
  11. BGP——AS—PATH正则表达式(实列讲解+配置)
  12. eclipse拒绝mysql,eclipse连接mysql的有关问题
  13. 3个最典型的图表错误使用方式,赶紧看看自己是否中招
  14. 【职场攻略】比你的工资更重要的十件事
  15. [转帖]怎样选择(FC-SAN)光纤通道(存储)交换机
  16. 0813Python总结-tcp,udp及黏包,struck模块
  17. Pvr_UnitySDKAPI
  18. 利用STM32精确测量电压
  19. jxl 单元格画斜线
  20. LNMP环境搭建之编译安装指南(php-5.3.27.tar.gz)

热门文章

  1. Excel生成随机32、36位ID
  2. [信息论与编码]离散信源及其信息测度(2)
  3. 【图像检测】基于Itti模型实现图像显著性检测附matlab代码
  4. Delphi Thread 多线程编程(6)
  5. iOS 使用 Fastlane 打包上传 App 到蒲公英
  6. 全国大学计算机专业排名2021,2021全国计算机专业大学排名一览表
  7. 你听过“易语言”吗?
  8. Nginx --sendfile配置
  9. MII接口详解【转】
  10. Vue 实现拖拽模块(二)自定义拖拽组件位置