陈萍、杜伟编译

无需标注数据集,自监督注意力机制就能搞定目标跟踪

深度学习的蓬勃发展得益于大规模有标注的数据驱动,有监督学习推动深度模型向着性能越来越高的方向发展。但是,大量的标注数据往往需要付出巨大的人力成本,越来越多的研究开始关注如何在不获取数据标签的条件下提升模型的性能,这其中就包括自监督注意机制。

想要了解什么是自监督注意力机制,我们可能需要先去了解什么是光流估计(optical flow estimation),以及它为何被人类和计算机视觉系统作为一种目标跟踪方法。

一般来说,婴儿在 2 至 3 个月大的早期阶段就具有目标跟踪的本能。然而,从神经生理学的层面上讲,人类视觉系统的实际工作机制仍然有些模糊。

与人类视觉系统类似,计算机视觉系统也广泛应用于视频监控和自动驾驶等领域。跟踪算法的目标是在给定的视频序列中重新定位它在初始帧中识别的一组特定对象。

在与跟踪算法相关的研究文献中,主要分为两大类:1)视觉对象跟踪(Visual Object Tracking, VOT);2)半监督视频对象分割(Semisupervised Video Object Segmentation, Semi-VOS)。

就这两类跟踪算法而言,VOT 通过重新定位视频序列中的目标边界框来实现目标跟踪,而 Semi-VOS 通过像素级分割掩码实现更细粒度的目标跟踪。

在 medium 的一篇博客中,数据科学家和视觉计算研究者 Rishab Sharma 为读者重点讲述 Semi-VOS 算法背后的最初构想,即稠密光流估计,以及这种跟踪方法是如何通过自监督注意机制实现的

具体而言,本文首先介绍了光流的概念,并研究了它在目标跟踪中的应用。接着介绍了这个概念如何启发深度学习跟踪系统,以及自监督和视觉注意力在这些系统的开发中如何发挥关键作用。

文中所讨论的技术主要应用于行人跟踪、自动车辆导航以及许多新的应用。如果你在为数据集的制作发愁,或许自监督注意力机制可以帮助到您。

本文作者 Rishab Sharma。

稠密光流估计

首先科普一下光流的小知识。

作为目标和摄像机之间相对运动的结果,光流可以被定义为视频序列的连续帧之间的物体运动。此外,光流又分为稀疏光流以及稠密光流。

稀疏光流仅导出帧中几个感兴趣像素的流向量,这些像素通常描述目标的某个边或角,而稠密光流可以导出给定帧内所有像素的流向量,从而以更高的计算量和更低的速度获得更高的精度。

网球运动员的稠密光流估计效果。

稠密光流可以通过各种算法实现,其中要数 Farneback 算法最为简单OpenCV 为该算法提供了寻找稠密光流的函数。你只需点一下运行,就能真切体验到 Farneback 算法,代码片段如下图所示:

输出结果如下动图所示:

光流可视化。

Farneback 算法可以通过比较视频序列中的两个连续帧,来估计某些图像特征的运动。 

具体而言,该算法首先使用多项式展开变换(polynomial expansion transform)通过二次多项式逼近图像帧的窗口。多项式展开变换是专门在空间域中设计的信号变换,可用于任何维度的信号。该方法观察多项式变换的平移,以根据多项式展开系数估计位移场。随后,此方法在一系列迭代优化之后计算稠密光流。 

在实现代码中,该算法从两通道向量矩阵中(dx/dt 和 dy/dt)计算光流的方向和大小,然后通过 HSV 颜色模型,将计算出的方向和大小进行可视化。该颜色模型设置为最大值 255 时体验最佳。

深度学习进行稠密光流估计

关于光流的优化问题一直存在。近年来,随着深度学习的发展,许多研究者采用深度学习算法来解决光流优化问题,将连续的视频帧作为输入来计算运动中物体的光流

虽然这类算法一次只处理两个连续的帧,但视频的本质是在这两个帧中捕获的。而视频与图像的主要区别在于,视频除了具有图像的空间结构外,还具有时间结构。

因此,连续帧流可以被解释为以特定时间分辨率(specific temporal resolution, fps)操作的图像集合。这意味着视频中的数据不仅是在空间上编码的,而且是按顺序编码的,这使得对视频进行分类非常有趣,同时也具有挑战性。

一般来说,深度神经网络需要大量的数据来训练模型以及优化算法。但对于光流估计来说,训练数据难以获得, 主要原因是很难精确地标记视频片段,以使图像中每个点的精确运动达到亚像素精度。

为了解决视频数据的标记问题,研究人员采用计算机图形学,通过指令来模拟大量的真实世界。当指令已知时,视频帧序列中每个像素的运动都是已知的。光流被广泛地应用在基于目标检测的车辆跟踪和交通分析等场景,以及通过基于特征的光流技术从固定摄像机或车辆摄像机进行的多目标跟踪领域。

自监督的深度学习进行目标跟踪

在视频分析领域中,视觉跟踪非常重要。但同时,由于需要巨大的数据标注量,使得深度学习难以进行。但无论如何,为了获得高性能的跟踪结果,大规模的训练数据集是必不可少的,而这反过来又需要大量的投入,从而使得深度学习方法变得更加不切实际和昂贵。

为了解决训练数据集问题,研究人员希望找到一种方法,能通过大量未标记和原始视频数据,使机器在没有人工监督的情况下进行学习(标记数据)。这种自监督学习的探索始于谷歌研究团队的一项研究提案,该提案建议通过训练一个视频着色模型,进而生成视觉跟踪系统,同时该任务不需要任何额外的标记数据(自监督)。

然而,有研究表明,与其让模型预测输入灰度帧(grayscale frame)的颜色,不如让模型学会从一组参考帧中复制颜色,因此产生了一种指向机制,该机制能够在时间设置中跟踪视频序列的空间特征。

这些自监督方法的可视化以及实验表明,尽管网络是在没有任何人工监督的情况下训练的,但在网络内部自动出现了一种视觉特征跟踪机制。

在对未标记视频进行训练之后,自监督模型能够跟踪视频帧序列初始帧中指定的任何分割区域

视频着色源任务训练的指针机制(pointer mechanism)。

跟踪自监督学习的目标是学习适合于匹配视频帧序列的特征嵌入。利用帧序列的自然时空连贯性(spatial-temporal coherence)来学习对应流。对应流可以理解为连续帧之间存在的特征相似流。

简单地说,该方法学习了一种指针机制,该机制可以通过从一组参考帧中复制像素信息来重建目标图像。因此,要建立这样的模型,研究人员在设计时需要注意以下两点:

  1. 必须防止模型学习这个任务无效解(trivial solution),例如基于低级颜色特征匹配连续帧;

  2. 必须使跟踪器飘移不那么严重。跟踪器漂移(tracker drifting, TD)主要是由目标遮挡、复杂的目标变形和随机光照变化引起的。跟踪器飘移问题通常是在长时间窗口上训练递归模型来解决,该窗口具有周期一致性和定时采样特点。

在设计此类模型时同样需要注意以下几点。首先,对应匹配(correspondence matching)是这些模型的基本组成部分,这一点非常重要。因此,在通过逐像素匹配进行帧重建时,该模型很可能会学习到一个简单的解决方案。

其次,为了防止模型过拟合一个简单的解决方案,需要添加颜色抖动(color jittering)和通道丢弃(channel-wise dropout),这样模型就会依赖低级颜色信息,并且对任何颜色的抖动具有鲁棒性。

最后,对于 TD 的处理,基于长时间窗的递归训练是解决跟踪器漂移问题的最佳方法

上述方法可以提高模型的鲁棒性。此外,该方法不仅能够利用视频的时空连贯性,而且可以用颜色作为其监督信号。

底层的自监督注意力

如果深入研究这里学到的指针机制,我们会得出结论,它实际上是一种注意力机制。是的,它就是著名的 QKV「三剑客」,即查询 - 键 - 值(Query-Key-Value),这是大多数注意力机制的基础。

我们知道,自监督模型的目标是通过有效编码特征表示来学习鲁棒的对应匹配

简单地说,有效复制的能力是通过训练代理任务来实现的,其中模型学习通过线性组合参考帧中的像素数据来重建目标帧,并且利用权重来测量像素之间的对应强度。

然而,分解这个过程就会发现,每个输入帧都有一个三元组(Q, K, V)。Q、K、V 分别表示查询、键和值。为了重建 T^1 帧中的像素 I^1,注意力机制用于从原始序列中先前帧的子集复制像素。

只是这种情况下,查询向量(Q)是当前帧的(I^1)特征嵌入(目标帧),键向量是前一帧(I^0)的特征嵌入(参考帧)。现在,如果计算查询和键(Q、K)之间的点积(.),并对计算出的乘积取一个 softmax,就可以得到当前帧(I^1)和前一个参考帧(I^0)之间的相似性。

在推理过程中,将计算出的相似度矩阵与参考实例分割掩码(V)相乘,将为目标帧提供一个指针,从而实现稠密光流估计。因此这个指针是 Q、K 和 V 的组合,是在这个自监督系统框架下运行的注意力机制

每个人都需要注意力,猫也不例外。

训练注意力机制的一个关键因素是建立适当的信息瓶颈。为了避免注意力机制可能使用的任何学习捷径,我们可以采用前文提到的输入颜色信息丢失和通道丢失技术。然而,颜色空间的选择在自监督训练注意力机制方面仍然起着重要作用。

许多研究工作已经证实了这样一个假设:使用去相关颜色空间可以得到更好的自监督稠密光流估计的特征表示

简单来说,使用 LAB 格式的图像比 RGB 格式更好。这是因为所有的 RGB 通道都包含亮度信息,使其与实验室中的亮度高度相关,因此成为弱信息瓶颈。

限制注意力机制以最小化物理内存成本

上述注意机制通常具有较高的物理内存开销。因此,对应匹配中处理处理高分辨率信息会导致大内存需求和较慢的速度

为了规避内存开销,我们利用 ROI 定位技术从内存库中估计候选窗口,而非本地存储库。直观地说,对于时间相近的帧,帧序列自然存在时空连贯性。由于现在目标帧中的像素仅与参考帧的空间相邻像素进行比较,所以这种 ROI 定位限制了注意力。

可比像素(comparative pixel)的数目由限制注意力的放大窗口的大小决定。窗口的膨胀率与内存库中当前帧、过去帧之间的时间距离成正比。在计算限制注意区域的相似矩阵后,可以非局部地计算细粒度匹配得分。

因此,利用所提出的限制注意力机制,该模型可以有效地处理高分辨率信息,而不会产生大量的物理内存开销。

原文链接:https://towardsdatascience.com/self-supervised-attention-mechanism-for-dense-optical-flow-estimation-b7709af48efd

入门注意力机制目标跟踪光流估计
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

计算机图形技术

图像数据处理、计算机图像(英语:Computer Graphics)是指用计算机所创造的图形。更具体的说,就是在计算机上用专门的软件和硬件用来表现和控制图像数据。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

OpenCV技术

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

定位技术技术

通常是指机器人领域的定位技术,see SLAM for details

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

光流估计技术

光流估计用于估计图像序列中的每个像素的运动,在计算机视觉中有许多应用,例如图像分割,对象分类,视觉测距和驾驶员辅助。

自监督学习技术

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

多目标跟踪技术

多目标跟踪(Multiple Object Tracking or Multiple Target Tracking, MOT or MTT)主要任务是在给定视频中同时对多个目标进行定位、维持他们的ID、生成他们各自的轨迹。

视频对象分割技术

视频对象分割是一个二元标记问题,其目的是将视频的前景对象从背景区域中分离出来。

暂无评论
暂无评论~