化秋毫为波澜:运动放大算法(深度学习版)

SIGAI特约作者

Fisher Yu

CV在读博士

研究方向:情感计算


什么是运动放大?

运动放大(Motion Magnification),将视频中对应位置的运动进行放大,简单理解的话,就是找到时间段内的运动矢量,进行放大,然后权值叠加回去。

为什么需要运动放大?

因为很多自然界或者生物的 subtle behaviour 不易被肉眼察觉(如飞机翼的震动,受风影响摇晃的建筑,生物皮肤变化等等),这些微变化只有通过运动放大,才能更好地被机器或者人类来做后续的视频视觉任务。

运动放大的难点?

如何在运动放大的同时,尽量保持 apperance 不变?如何不引入大量噪声? 如何保证放大后的动作平滑?没有现存的数据集来训练?

传统方法的发展历程

MIT在2012年首次提出了 Eulerian Video Magnification[1] ,第一次实时且相对鲁棒地应用到一些场景,如远程心率脉搏提取,记得多年前看到宣传的video是非常地震撼~~因为之前做运动放大,都不是用Eulerian方法,而是用Lagrangian视角去做(即运动估计,tracking啥的,非常耗时)

问题描述如下:

\hat{I}(x,t)=f(x+(1+\alpha)\delta(t))

算法的流程如下:

1.对视频每一帧都进行拉普拉斯金字塔处理,得到Multi-scale的边缘及形状描述

2. 对每个scale的特征voxel进行pixel-wise 时间上的带通滤波,增强感兴趣频率上的信号,过滤掉不感兴趣频率的噪声

3. 对filtered完的信号进行运动放大,叠加回滤波前的特征voxel;最后将金字塔重构融合。

Eulerian 运动放大框架[1]

该方法的cons:

1. 滤波器只能抑制某些频率的噪声,但乘以运动放大系数后,在带通频段的噪声也会放大

2. 若物体本身非静止,而在运动,该放大算法生成的图很模糊

故根据以上不足,后面又有两个经典的变形:

1.2013年MIT又提出了 Phase-based 运动放大[2],使用了complex-valued steerable pyramids 来得到相位图再进行滤波,抗噪能力更强;

2.CVPR2017,Zhang et al.提出了 Acceleration Magnification[3],设计了二阶加速度滤波器,使生成的视频在 large motion 下效果更好。

Learning-based 运动放大

[4] ECCV2018 oral

论文地址:https://arxiv.org/abs/1804.02684

项目地址:https://github.com/12dmodel/deep_motion_mag

难得的好文章,不像很多文章直接设计个网络,设计个loss完事~~作者对传统方法的每个stage认知很深,然后把深度学习只是当成一个工具,来复现改造传统方法的每个stage。

Main Contribution:

1. 第一个使用深度学习端到端地进行运动放大,不需要手工设计特征,从数据里自主学到滤波器。

2. 在无现有数据集训练的情况下,利用COCO和VOC生成数据来训练。

3. 与传统方法的temporal filter相兼容,且在运动系数适中的情况下,效果比单独使用全局Learning的效果还好。

再看回同一条公式:

\tilde{I}(x,t)=f(x+(1+\alpha)\delta(x,T))
整体框架图[4]

算法流程如下:

Stage1: 设计Encoder 进行形状特征和纹理特征的提取,类比文章[1]中的拉普拉斯金字塔提取的多尺度边缘形状特征。给定前后帧(Xa,Xb),通过网络Ge可以得到它们各自的形状特征Ma,Mb和纹理特征Va,Vb。这里的纹理特征不进行运动放大,主要用于后续约束Intensity放大导致的噪声。

Encoder【4】

Stage2:把前后帧的形状特征送进 Manipulator,来模拟文章[1]中带通滤波器及运动放大,权值叠加的过程。这里的修改器Gm有线性和非线性两种表达:

而下图网络给出的修改器网络是基于非线性表达,就是加了g(●)和h(●)运算,文中给出的实验结果图是非线性的效果更好,具体也没解释。个人觉得非线性能更好地模拟带通滤波器的功能,能放大部分更感兴趣的,过滤掉一部分不太感兴趣的~

Stage3: Decoder,来模拟文章[1]中金字塔重构融合过程。这里解码器需要用到放大后的形状特征Ma及前帧的纹理特征Va.

Decoder[4]

讲完了网络结构,来说说 Loss function,共由4部分loss组成,都用L1距离来作为度量。为了让Encoder能区分地学出形状特征和纹理特征,随机地加了color intensity扰动在某些帧上,这里 perturbed frames 及 其运动放大的 groundtruth 分别为Xb' 和Y'

故总Loss为:

Loss=L1(Y,\tilde{Y})+\lambda(L1(V_{a},V_{b})+L1(V_{b}^{'},V_{Y}^{'})+L1(M_{b},M_{b}^{'}))

两种不同模式 与 基于时间维度滤波的修改器:

Static mode:这是最原始的公式定义的形式,总是拿第一帧作为anchor,则送进网络的两帧为(X0,Xt)

Dynamic mode: 总是把当前帧和上一帧作为网络的输入(Xt-1,Xt)

Temporal filtering based manipulator:

在修改器中,不需要再进行MaMb的特征差异运算;直接类似文章[1]中的 pixel-wise temporal filter 操作,进行时间维度的带通滤波 (这环节不需要训练,是在静态或者动态模式训练好的网络基础上,直接接上filters前向传播即可) 。公式如下:

G_{m},temporal(M(t),\alpha)=M(t)+\alpha\tau(M(t))

具体关于生成的数据集如何carefully designed,感兴趣的同志自己找回原文看了,主要围绕几个因素去设计:多变的前景和背景;低对比度纹理;全局运动;静态场景;不同放大系数的运动;亚像素运动 等等。

实验结果:

如下图,可见放大8倍情况下,基于学习的算法,比Phase-based[2]的结果要少很多artifacts,也不那么blurred

运动放大8倍的结果对比[4]

再如下图,在不加 Temporal filter 的静态模式下,结果也不错,基本没有人工的噪声和blur;而加了 Temporal filter 后的结果更加平滑稳定。

加上Temporal Filter的效果[4]

通过可视化encoder中的kernel可以发现,学到的形状特征更多是基于 Gabor-like, Laplacian-like, Corner detector-like滤波器;而纹理特征对应的更多像blur kernel。证明设计的loss约束引导的learning是很有效很成功的~

Encoder形状核[4]
Encoder纹理核[4]

总结展望

文中作者也说了,该网络一大惊喜就是,学出来的形状特征是呈线性的,又因为线性 temporal filter 与运动偏移是兼容的,故形状特征也能兼容 temporal filter。但是在 放大倍数很大的情况下(如50倍),使用 temporal filter 的效果并不好,图像质量退化严重。

故未来方向之一是,如何使temporal filter更好地兼容网络。从我个人来看,是否可以直接在manipulator 里设计个temporal pooling的小网络来自适应地实现 temporal filter 的功能?当然啦,这样输入的话就很多帧,而不是 two frames 了。

Reference:

[1] Hao-Yu Wu, Eulerian Video Magnification for Revealing Subtle Changes in the World, 2012

[2]Neal Wadhwa, Phase-Based Video Motion Processing, 2013

[3]Yichao Zhang, Video Acceleration Magnification,CVPR2017

[4]Tae-Hyun Oh, Learning-based Video Motion Magnification,ECCV201

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

主编推荐 | 学会数据分析背后的挖掘思维,分析就完成了一半!

主编推荐:通过言简意赅的语言把数据挖掘的原理、建模过程、数据分析和数据挖掘关系说的比较清楚,适合入门者了解相关概念。 正文如下: 在数据分析中,模型是非常有用和...

3156
来自专栏新智元

【arXiv】2015 深度学习年度十大论文

由康奈尔大学运营维护着的arXiv网站,是一个在学术论文还未被出版时就将之向所有人开放的地方。这里汇聚了无数科学领域中最前沿的研究,机器学习也包括在内。它反映了...

2895
来自专栏机器之心

深度 | 论文解读:神经网络修剪最新研究进展

28412
来自专栏企鹅号快讯

Uber提出SBNet:利用激活的稀疏性加速卷积网络

选自Uber 作者:Mengye Ren、Andrei Pokrovsky、Bin Yang、Raquel Urtasun 机器之心编译 参与:Panda 自动...

2128
来自专栏小小挖掘机

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战

GBDT和LR的融合在广告点击率预估中算是发展比较早的算法,为什么会在这里写这么一篇呢?本来想尝试写一下阿里的深度兴趣网络(Deep Interest Netw...

3322
来自专栏大数据文摘

从概念到应用:一文搞定数据科学和机器学习的最常见面试题

1836
来自专栏SimpleAI

【DL笔记7】他山之玉——窥探CNN经典模型

从【DL笔记1】到【DL笔记N】,是我学习深度学习一路上的点点滴滴的记录,是从Coursera网课、各大博客、论文的学习以及自己的实践中总结而来。从基本的概念、...

974
来自专栏CreateAMind

用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类领域特别是应用深度学习解决文本分类的...

5462
来自专栏AI科技评论

学界 | 腾讯AI Lab 20篇论文入选NIPS2018,含2篇Spotlight

被誉为神经计算和机器学习领域两大顶级会议之一的NIPS于近日揭晓收录论文名单,此次为第32届会议,将于 12 月 3 日至 8 日在加拿大蒙特利尔举办。

1032
来自专栏AI研习社

Prisma 技术发展的前世今生

面向读者:没有或有一定机器学习经验并对 Prisma 之类的 app 背后的原理感兴趣的读者。比较有经验的读者可以直接参照科技树阅读文章末罗列的引用论文。 阅读...

3867

扫码关注云+社区

领取腾讯云代金券