GOTURN 100fps 深度回归网络跟踪

GOTURN 100fps 深度回归网络跟踪

首先贴上原文地址 Learning to Track at 100 FPS with Deep Regression Networks,一作是斯坦福大学的David Held,这是一篇16年4月发在arXiv上的论文,提出了Generic Object Tracking Using Regression Networks(GOTURN)的深度视觉跟踪算法,速度可以达到惊人的100fps。

  • 摘要
  • 简介
  • 具体方法
  • 实验

摘要

简单介绍了现阶段机器学习中跟踪算法的一些近况,大多数的跟踪算法仍然采用Online Training即在线学习的方式进行训练,没有办法收益于大量的已标注的视频和图片的训练样本。而本文采用Offline Training即离线学习的方式,网络中没有加入在线学习的部分,完全是通过大量的视频和图片样本的学习,使网络学会物体的表观模型(appearance)和运动模型(motion)。说到表观模型和运动模型,在早期的视觉跟踪领域中还有不少专门研究运动模型的论文,其中比较经典的有基于粒子滤波(particle filter)的跟踪算法,但是近年来人们发现一个强大的表观模型已经可以得到非常不错的跟踪效果了,因此最近的论文都把更多的注意力放在了如何提升表观模型上了。

简介

计算机视觉领域中分支很多,如图像分类(image classification)、物体检测(object detection)、动作识别(activity recognition)等等。在深度学习占据半壁江山的时代,基本上大多数state-of-the-art的算法都是使用深度学习的方式通过大量样本的学习得到的,但在跟踪(tracking)领域来说,现有的很多算法都没有充分利用现有的大量数据样本,即使一些现有的深度学习跟踪算法也有很多没有在视频数据上面进行训练,不少算法都仅仅是拿来一个现成的image net上训练好的网络就直接开始提取特征。然而跟踪这一领域中我们主要注重的是物体的表观和运动,对于其它视觉任务中“类”(class-level)的概念是不需要的,我们只需分辨出前景(即跟踪物体)和背景即可,因此通常直接拿来的image net中训练好的网络往往多余了许多有关于“类”的信息,这是我们所不需要的。也有的方法提出对image net预训练的网络再在视频数据上进行精调,但往往还是没有能够利用大量的视频样本进行离线学习,因此在算法的速度上总是不尽如人意,往往在GPU上的测试速度也只能达到1fps甚至更低。如现在效果最好的Learning Multi-Domain Convolutional Neural Networks for Visual Tracking在GPU上的速度也只有1fps,这在诸如无人机跟踪、视觉机器人等大多数的实际应用领域上都是难以发挥实际作用的,不仅仅是速度的问题,能耗也是非常重要的。若是在无人机上安装大功率的gpu,恐怕还没有飞一会儿电池就耗尽了。当然,传统方法的跟踪领域早已有不少算法做到了实时了,如KCF、STC等等,但效果往往不如深度学习的算法。因此,要把跟踪这个领域做到又快又好,还有一段路程要走。

具体方法

Learning to Track at 100 FPS with Deep Regression Networks这篇文章提出的方法其实并不难实现,在摒弃了线上学习模式后,完全采用了线下学习的方式。

GOTURN 100fps 深度回归网络跟踪_第1张图片

通过这张图我们不难看出算法本身非常简单,将当前图片和前一帧图片分别通过卷积层提取特征后经过全连接层,即可得到输出。在这整个流程中有几个细节需要注意:
1. What to track? 对齐和剪裁(scale and crop)
对于大部分的视觉任务来说,对齐和剪裁都是必不可少的一环,在GOTURN算法中,首先对上一帧图像(即 t1 帧)进行对齐和剪裁,把跟踪物体对齐和剪裁到图像中央。在这个过程中,设目标物体的边界盒(bounding box)的中心坐标为 c=(cx,cy) ,宽度为 w 高度为 h ,剪裁后的图像的宽度和高度分别为 k1w k1h ,这里的参数 k1 的作用是用于联系物体的背景(context),当 k1 值越大时,则截取的图像范围也越大,相应的,包含的背景信息也就越多。文中默认的值为 k1=2
2. Where to look? 搜索域
在已知t-1帧物体位置后,如何对第t帧的物体位置进行搜索?文中假设第t帧时,物体中心 c=(cx,cy) ,即期望的物体位置,并使 c=c ,换句话说,搜索域的中心位置即默认为 t1 帧中的物体中心,这里的含义是使用了一个默认的运动模型,即还是在物体原来所在的位置附近进行搜索,文中也提到虽然可以使用更复杂的运动模型,但是如我之前所提到的一样,运动模型的重要性已经不再如表观模型一样重要了。同样地,这里也设置有一个 k2 值作为权重来控制搜索域的大小,文中默认的值同样为2。可以明显想到的是,对于高速移动的物体我们应该增大 k2 的值用于扩大搜索域。
3. 实现细节
当前图片和上一帧图片经过卷积层以后,已经提取出了高层次的图像特征表示(high-level representation),文中使用的卷积层是CaffeNet的前五层,输出的特征是pool5即第5个池化层(CaffeNet是AlexNet的一个变种,Caffe是贾扬清大神开发的一套深度学习框架,现在由伯克利维护,Caffe)。将得到的特征flatten后得到向量,并连接(concatenate)成一个单独的向量后,就可以将这个向量输入到每一层有4096个节点的全连接层中了。经过三个全连接层后,就达到了最终的输出层,输出层有4个节点,对应了边界盒的坐标以及长宽等信息。

实验结果

GOTURN 100fps 深度回归网络跟踪_第2张图片
GOTURN 100fps 深度回归网络跟踪_第3张图片
GOTURN 100fps 深度回归网络跟踪_第4张图片

总的来说,算法的准确率确实比较一般,在追求提高速度丢弃了在线学习的同时也损失了部分的精度,而韩国的md-net在达到90%左右的高精度的同时又只有1fps的速度。在接下来的视觉跟踪领域若要能做出一流的成果,必然是要将二者的优势结合,做到又快又好,才能将算法大范围的商业化,应用化。

你可能感兴趣的:(Tracking)