雷锋网AI科技评论按:这篇文章提出了一种全新的CV任务。
来自华盛顿大学艾伦人工智能研究所的Kiana Ehsani团队突破传统计算机视觉的研究任务,尝试从目标对象(例如狗)的视角进行建模,并以此模型来预测对象的行为模式。
这种表示学习方法与传统的图片训练任务的不同之处在于,它的模型训练是从特定视角出发,所以这是一种全新的CV任务。在论文中,作为案例,作者采用狗狗的视角来训练模型,在狗的行为建模上取得显著的成功。作者表示,该方法有望拓展到其他领域。
下面为雷锋网对该论文的详细解读。
传统的计算机视觉研究专注于分类、识别、检测及分割等子任务;当去解决一般的计算机视觉问题时,研究人员一般会将这些功能进行有机的组合。但这种研究方法所得出的结果一直与期望结果有较大的差距。本文的作者受近期「行为和交互在视觉理解中作用」研究工作的启发,他们将视觉智能(visual intelligence)问题定义为:理解视觉数据并在视觉世界中采取行动或执行任务。在这种定义下,作者认为要像一个视觉智能体在视觉世界中那样去学习。
作为该项研究的切入口,他们选择一只狗作为视觉代理。相比于人类,狗有一个简单的行为空间,这使任务能更容易地处理;而另一方面,它们能够清楚地表现出视觉智能,识别食物、障碍物、其他人类和动物,并对这些输入作出反应。
在实验中,Kiana Ehsani团队通过狗的自我视角录制的视频数据,加上将传感器安装在狗的关节处收集来的动作数据,构建了数据集DECADE(Dataset of Ego-Centric Actions in a Dog Environment)。
在作者的研究中,他们利用DECADE数据集,主要探索三个问题:
(1)Acting like a dog,即预测狗的行动;
(2)Planning like a dog,即预测狗的运动序列;
(3)Learning from a dog,即如何利用狗的动作作为表征学习的监督信号。
如上所述,作者使用了DECADE数据集。这个数据集包含380个视频剪辑片段,这些视频由安装在狗头部的摄像机拍摄而来。视频中还包含设备安装部位和运动轨迹等信息。
在实验中,作者总共用了24500帧,其中21000帧用于训练模型,1500帧用于验证,2000帧用于最后的测试。
作者使用的是GoPro摄像头拍摄的这些视频,采样频率为5fps。该团队使用4个惯性测量单元(IMUs)来测量狗的四肢的位置,一个单元测尾巴位置,还有一个测躯干位置。这些设备可以用角向移动来记录运动。
他们获取的每一帧都包含六个测量单元的角移。角移以4维4元数向量表示。惯性测量单元的绝对角移与狗面向的方向有关,不同关节的角移是有区别的,这些区别也可以用四元数表示。他们认为两个连续的帧之间角移的区别就代表着这条狗这两帧之间的动作。
获取这些信息的的具体情形是一个安装在狗背上的Arduino监视器连接着各个测量单元(IMUs)来记录位置信息。它还能通过狗背上的微信麦克风来收集音频,这些音频可以为同步GoPro和Imus数据提供依据,最终可以将视频和IMU测量数据同步精确到毫秒级别。他们的团队在多于50个不同环境下收集数据,收集时狗正处在特定的场景下,比如行走或捡东西或与其他狗互动。所有最终剪辑出来的帧都不带备注,实验均使用原始数据。
在不同的场景中如何预测狗的反应呢?作者所提出的模型通过学习狗之前看到的场景图片来预测狗接下来的行动。
模型的输入是一串视觉图像的帧序列(I_1, I_2, . . . , I_t),而输出则是在接下来的时间片里狗各个关节的动作t < t' ≤ N(a_t+1^j, a_t+2^j, . . . , a_t+N^j ),其中时间片大小为0.2秒。a_t^j就代表着关节 j 的运动。举例说明,a_3^2代表着第二关节介于I3和I4帧之间的运动。
作者将预测问题表述为一个分类问题。他们将关节角移数字化编码,并将不同关节的运动标签化成特定的动作类。为了形成这些运动类,他们使用K-means算法来处理关节角移。每一个聚类中心都可以代表一个特定的运动。
其运动预测模型是编解码结构的,主要目标就是找到输入图片与未来动作之间的映射关系。举例说明这种关系,比如当狗看到拿着狗粮,这条狗之后的动作很可能是坐着等主人来喂。
上图为这个模型的结构,其中编码部分包含了CNN模型和一个LSTM。其中每个时间片内CNN都会接收到一对连续的图片即上文提到的行动前行动后图片,对着其进行编码后传输给LSTM。实验结果果表示LSTM一个时间片内接受两帧可以明显改善模型的表现。CNN包含两层权重相同的ResNet-18,其中一个则为处理帧。
解码器的目标是根据已经被编码的帧来预测狗关节的活动。解码器接受编码器传来的隐藏初始状态,和LSTM的处理结果,之后的每一个时间片,解码器输出上文提到的每个关节的动作类,而且前一个时间片的输出会被线性编码器处理完作为下一个时间片的输入。正是由于他们使用固定长度的处理后的输出作为下一个时间片的输入,所以不需要停止标记,且他们的模型会在产生一定数量的输出后停止。最后的效果就是他们的模型每个时间片会输出六个动作类。
每一张图片都是独立传送给ResNet塔,且两张图片的特征已经结合,结合起来的特征会被线性转化器处理后输入编码器的LSTM。他们团队在ImageNet上事先训练了ResNet,然后优化一下来评估两张连续帧之间的动作。
Kiana Ehsani团队的编解码器使用加权平均熵损失来处理每个关节。损失函数为:
狗是如何计划行动来完成目标的?
为了给这个过程建模,作者设计了如下计划:输入两张不连贯的图片,然后去规划从第一张图片的状态到第二张图片的状态中间可能出现的一系列行为。他们指出先前的运动估计量已经不再适用,之前的运动估计是根据镜头的状态变化来补充两张图片变化之间的状态。现在则相反,我们的模型自行计划去进行一些合理的行动来补充图片变化之间的状态。更加正式的描述就是,
输入两张图片(I_1,I_N),输出时长为n-1的行动数据。这个输出就是够从I_1 状态转换到I_N状态中间经历的过程。
狗的每一步行动都会对下一步行动产生影响,所以作者设计了一个递归神经网络,这其中包含一层LSTM,用来处理一个时间片的的输出作为后一个时间片的输入。如图所示,他们将图片I1和IN分别单独的传给ResNet-18塔,合并上一层的特征并输入LSTM。每一时间片内,LSTM cell都会输出六个关节的运动数据。他们将此作为下一个时间片的输入,这就使得神经网络可以根据之前的状态进行调整。同时他们还将行为出现的概率这一数据也作下一时间片的输入。这会使当前时间片中的低概率行为在行动序列中进一步导致高概率行为,这样就可以保证未来行为的多样性。
作者使用等式所描述的加权的交叉熵损耗在所有的时间片和关节上训练该递归神经网络。与解决如何像狗一样行动所采取的方法类似,他们使用了离散的动作域。
能否利用狗的动作作为表征学习的监督信号呢?
在学习从狗观察到的图像中预测狗关节的运动时,可以获得一个图像表示,它编码了不同类型的信息。
为了学习表示,作者通过观察狗在时间t-1和t中观察到的图像,训练ResNet-18模型来估计当前的狗的运动(IMU从时间t-1到t的变化)。随后作者对这个表示进行测试,并与在ImageNet上训练的ResNet-18模型进行比较,在不同的任务中会使用不同的数据。 在实验中,作者使用SUN397数据集,进行了可行表面估计和场景分类。
为了展示表示的效果,作者将模型中蓝色部分用在ImageNet上训练过的ResNet进行了替换,并将其与在DECADE上训练的ResNet进行比较。
下面这张图中显示了模型从5帧视频中学习到当一个人朝狗扔球时狗的表现。在视频中,球越过狗后,狗转向右侧去追球。本文提出的模型只使用前5帧图像就可以正确地预测在球飞过时狗如何转向右侧的行为。
下面为具体实验结果:
(1)Learning to act like a dog
观察五帧视频后预测接下来的五个行动的精确度。
(2)Learning to plan like a dog
在开始和结束帧之间进行规划,这里考虑开始帧和结束帧之间相隔5步。
(3)Learning from a dog
将在ImageNet上训练的网络结果与在DECADE上训练的网络进行比较,评估指标为IOU。
Kiana Ehsani团队选择直接从目标对象视角建模,他们用从狗的视角拍摄的视频来训练模型,最终的目标是让自己的模型可以预测随后的行动,可以像狗一样去规划自己的行为来完成目标。他们的工作是端到端建模的第一步,这种方法不需要手动标记的数据或拥有具体语义的数据。不仅如此,它还可以在多对象和多场景下应用去获取有价值的信息。
雷锋网认为,他们的方法还有许多有待拓展的地方。一方面是,本文实现的模型只接受视觉输入,属于CV问题,但事实上它完全可以拓展到其他领域,例如实现听觉、触觉等的输入;此外,当前模型仍只是针对一条狗的行为建模,那么是否可以拓展到多条狗的情形呢?
无论如何,采用主人公视角的数据集来训练模型,这种思想独特且有深刻意义,属于一种新颖的CV task。