GOTURN: Learning to Track at 100 FPS with Deep Regression Networks笔记

2016年stanford David Held的作品,第一个用深度学习实现了100FPS的generic tracking任务的工作,因为offline而且是完全offline的(不做online的fine-tuning,在tracking新的object的时候,也并不改变network weights)。所以优点就是速度快,缺点是对于遮挡表现很差。

1. Motivation
计算机视觉的其他领域,如image classification, object detection, segmentation, activity recognition都使用了train from online data and learn about the world的方法,那么为什么不这样对待tracking这件事呢。

2. Method
tracker使用了一个简单的前向传播网络,学习了object motion和appearance的关系:

GOTURN: Learning to Track at 100 FPS with Deep Regression Networks笔记_第1张图片

将上一帧的目标和当前帧的搜索区域同时经过CNN的卷积层,然后将卷积层的输出通过全连接层,用于回归当前帧目标的位置。所以速度快除了offline的原因,用one-pass regression相比于之前的方法进many candidate patches,它只进两张images。crop的大小是当前w,h的二倍,通过pad crop去获得一些目标周围的contextual information。

convolutional layers: CaffeNet的前五个卷积层,然后把这些卷积层的输出连接到一个vector,这个vector就是后三层全连接层(每层4096个节点)的输入,然后连接到输包含四个nodes(对应bounding box)的output layer。卷积层在ImageNet上做预训练,学习率1e-5,其他超参数和CaffeNet一样,因为数据集有限,所以为了防止overfitting并不fine-tune。

3. Training
Training过程:分videos和still images两种,不只是用videos而是增加still images是为了防止overfitting,用预测bounding box和gt bounding box的L1 Loss去训练。

这一部分推荐去看下:http://blog.csdn.net/autocyz/article/details/52648776,说的挺清楚的。

就是说训练前作者对Motion Model做了一个研究:当前帧目标的位置和尺度都与上一帧是有关系(这不是废话吗?是的!),但是!这个关系到底是怎么样的并没人分析过!于是作者通过对视频序列中的ground truth进行研究发现,当前帧目标的位置和尺度变化与上一帧的目标存在着某种分布关系。从这里就可以看出有的工作很容易想的到而且实现起来也不难,但是有些人细心的去做了就会有更好的收获和发现。

位置变换:符合均值为0的拉普拉斯方程
model size变化:符合均值为1的拉普拉斯方程

GOTURN: Learning to Track at 100 FPS with Deep Regression Networks笔记_第2张图片

如上图所示,在训练网络时,对数据进行了人工扩充(data augmentation),在训练阶段,对目标的位置和尺度添加符合上述分布的转换(shift)。
说白了,预处理其实就是对object做一些人工motion。文中batch size是50,对每个图像进行了10倍的data augmentation。

4. Dataset
Training set:
a. videos:ALOV300++(314个视频序列,大概每5帧就会标记一次tracked object的位置),去掉和测试机重叠的7个序列,剩下307个做training,再分成251个(13,082 张图片)做训练集,56个做验证集(2795张图片),算是比较小的训练集了。
b. still images:来自ImageNet Detection Challenge的478807个被标记了bounding box的物体,通过random crops产生apparent translation or scale change,但是如果物体充满全图这样的crop就没意义了,所以要过滤掉物体大于全图长或宽的66%的图片,This leaves us with a total of 239,283 annotations from 134,821 images。

Test set:25 videos from the VOT 2014 Tracking Challenge。(不用2015是因为和训练集重复的太多。)

5. Experiment & Analysis
5.1 测试对于novel object的可行性

GOTURN: Learning to Track at 100 FPS with Deep Regression Networks笔记_第3张图片

可以看出对于见过的物体和没见过的物体,网络表现出了0.1的误差,所以如果我们只是跟踪某一类物体比如说人,针对这一类物体训练的话,结果应该会更好。

5.2 Ablative Analysis

GOTURN: Learning to Track at 100 FPS with Deep Regression Networks笔记_第4张图片

a. data augmentation上面说的差不多了,这里就不提了。

b. 为什么L1 Loss比L2 Loss好:因为L2惩罚项在0附近比较平坦,所以网络对于输出接近但是不正确的例子没有处罚,导致输出了太大或者太小的bounding box,这样对于一个视频序列这个bounding box就会没有边界的一直扩大到整张图片或者缩小到一个点,而L1对于稍微不对的输出就会严厉惩罚,所以不会导致bounding box一直缩小或者扩大。

c. 通过在小的videos上训练,让tracker对于背景移动、出平面旋转、变形、光照变化、小遮挡有很好的不变性;通过在大的images上训练,让tracker可以更广泛的跟踪不同类的物体。

6. 再说几点
tracker失败的情况:遮挡、移动过快或者训练集过拟合。

对于遮挡问题,所以如果结合其他方法,如TLD,visual attention model可以去解决遮挡。
对于moving too fast: 增大size of the search region。
过拟合问题只能去扩大数据集了。

另外,文中的一句话We scale the output by a factor of 10, chosen using our validation set (as with all of our hyperparameters).是说如果要回归一个很大的范围,可能网络训练的不是很好?

你可能感兴趣的:(Tracking,Computer,Vision,Deep,Learning)