加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
CVPR2019 accepted list ID已经放出,极市已将目前收集到的公开论文总结到github上(目前已收集491篇),后续会不断更新,欢迎关注,也欢迎大家提交自己的论文:
https://github.com/extreme-assistant/cvpr2019
今天为大家推荐一篇CVPR 2019 Oral的工作,作者来自CMU、UC伯克利,论文提出采用无监督学习的创新视频跟踪思路,得到了优越的结果。
作者 | Xiaolong Wang
来源 | https://zhuanlan.zhihu.com/p/61607755
已获作者授权,请勿二次转载。
这篇文章主要是为了介绍下我们CVPR 2019 (Oral) 的工作:
Xiaolong Wang*, Allan Jabri* and Alexei A. Efros. Learning Correspondence from the Cycle-consistency of Time.
Paper: https://arxiv.org/pdf/1903.07593.pdf
Code: https://github.com/xiaolonw/TimeCycle
Slides (google drive):
https://drive.google.com/file/d/1kxTATg1WX9QtyM_IqQZDEtwr052IdDZJ/view
Slides (百度网盘):
https://pan.baidu.com/share/init?surl=prNthUokiqRPELs8J4O-vQ
提取码: es86
我们这个工作主要是给tracking和optical flow提供一种新的思路。我们把两者联系并且统一起来称为correspondence in time。而这个工作的目标就是训练一个神经网络,使得它能帮助我们获得在video中帧与帧之间的semi-dense correspondence。
和以往的方法不一样,我们不需要人为的数据标注也不需要synthetic data进行训练。这个工作采用的是无监督学习(self-supervised / unsupervised learning),而且训练网络的方法能被应用到任意的video上面。
首先show一下结果,我们训练出来的网络可以用来做以下的human part segment tracking (没有经过任何用segmentation training 和 fine-tuning)。
视频分割跟踪
在介绍我们的方法之前,先讨论一下目前找correspondence的方法:
Visual Tracking 能够获得box-level correspondence。但是目前训练神经网络做tracking需要标注视频的每一帧进行训练,这样大大限制了训练样本的数量。
Optical Flow Estimation 能够获得pixel-level correspondence。但通常训练神经网络计算optical flow通常需要在synthetic dataset上进行,使得训练出来的网络很难泛化到真实数据中(generalization to real data)。而且optical flow对于局部的变化过于敏感,很难处理长距离或者large motion的视频。
其实Visual Tracking 和 Optical Flow Estimation 之间非常相关,但是似乎在近年来深度学习之后这两个领域变得互相独立。我们这篇文章希望让大家能把两者联系起来思考。
我们这里提出的其实是介于tracking与optical flow的中间的mid-level correspondence或者说是semi-dense correspondence。正因为我们是在mid-level上算correspondence,这使得我们对pixel上的局部变化变得更加robust,能在一定程度上encode invariance,从而让我们可以做long-range tracking 和处理large object displacement。
我们在deep feature上计算semi-dense correspondence。如下图,对于相邻两帧,我们首先抽取deep feature (大概30x30 resolution)。对于在t-1帧的一个格子,我们通过算nearest neighbor找到在t帧最相似的格子。下图箭头两端代表了其中一个correspondence。
以下是我们训练这个deep network的方法,这里采用的是无监督学习(self-supervised/unsupervised learning):既是学习过程中不需要任何的人为的标注。
如下图所示,假设我们用这个network进行tracking。在最后一帧上,我们首先随机选一个起bounding box,然后对这个bounding box进行backward tracking(蓝色箭头),接着对在第一帧的结果进行forward tracking(红色箭头)。那么initial box和最后的tracking box之间的error(黄色箭头)就会作为我们训练network的supervisory signal。我们把这个signal称为Cycle-Consistency Loss。
在训练的过程中,我们把error沿着cycle来传递(图中用黄色虚线表达):
在训练过程的不同迭代次数中,cycle产生如下图的变化。可以看见随着迭代次数的变化,tracking也逐渐变得越来越好:
我们训练出来的网络能够帮助我们找correspondence,并应用在各种的Tracking Tasks。
我们在VLOG 数据集(github.com/xiaolonw/Tim) 上面进行unsupervised learning。在训练之后的网络我们可以直接应用在以下不同的tracking tasks,不需要在目标数据集上做任何的training/fine-tuning。
除了开篇提到的human part segments tracking,我们还可以完成以下tasks:
在这个task里面,我在第一帧画了一个彩虹texture,然后用我们的correspondence可以把彩虹texture一直传递下去。
4. Optical Flow
我们还能将correspondence visualize出来,结果和optical flow类似。
我们希望这个工作能将tracking和optical flow联系起来。针对tracking tasks, 我们能突破有限的human annotation的限制,提供一种新的训练tracker的思路。我们还希望能够提供一种新的video里面,或者有时序关系的数据中的无监督学习的方法。在未来可以用这种cycle-consistency in time来作为一种supervisory signal帮助其他任务。
*延伸阅读
点击左下角“阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
觉得有用麻烦给个好看啦~