论文阅读_目标跟踪SiamFC

2020-05-15  本文已影响0人  xieyan0811

论文地址:https://arxiv.org/pdf/1606.09549.pdf
相关源码:https://github.com/bertinetto/siamese-fc

《Fully-Convolutional Siamese Networks for Object Tracking》是2016年被收录于cs.CV的论文,用全卷积孪生网络实现目标跟踪,简称SimaFC。

(一般将Siamese Networks翻译成孪生网络,译者认为译成连体网络更合适,当然连体人也都是孪生的,其子网络的绝大部分单独处理,子网络非常相似,最终阶段又有共用部分。但为与其它文章保持一致,文中也将其译为孪生网络)。

视频中的目标跟踪,一般在视频的第一帧矩形框圈出目标(下文称之为范例图片),随着视频的播放用算法跟踪圈出的目标,直观感觉就是矩形框跟着目标移动。由于目标可以是视频中的任意对象,所以模型无法根据特定对象提前训练。

目标跟踪问题一般通过在线学习目标外观实现,学习资料就是视频本身。实时的在线算法往往只能学习到比较简单的模型。随着卷积神经网络的发展,以及预训练数据的使用,可以用大量的类似任务训练模型。使用模型也有不同方法:浅层方法使用模型提取特征,深层方法用随机梯度下降法精调模型参数。但浅层模型没有充分利用端到端的深度学习网络,而深层学习方法如果遇到没见过的目标,则需要训练网络微调参数,无法实现实时跟踪。

文中使用了离线训练的卷积孪生网络来解决这一问题,孪生网络用于在图片中搜索目标,卷积网络通过计算两个输入之间的相互关系的双线性层实现了稠密高效的滑动窗口。方法简单,超越了之前算法的效果,并且速度非常快。

网络结构

学习目标跟踪中的相似性

相似性学习可以视为一个相似度比较问题,用函数f(z,x)计算x,z的相似性得分,其中z是范例图片,x是其它图片,当它们描述同一目标时得分越高。函数f通过数据库中标注的视频训练,在预测阶段,遍历视频中可能的区域,选择其中的高分区域。下图为孪生网络示意图:

网络结构图

其中z为待搜索目标,x为视频中的某一帧,从中可采集多个区域用于与目标匹配,使用同样的φ提取图片特征,将函数f表示为:

g用于对比图间的差异,它可对比大小不同的区域。孪生卷积网络之前已被用于关键点检测、人脸识别等领域。

全卷积的孪生网络结构

使用卷积网络的好处在于,被对比的两张图片不需要尺寸完全相等,它可以对任意两张图片进行高密度的对比。对比二者差异的函数f可表示为:

其中*内积用于计算两组特征之间的距离(向量内积的物理意义是空间内向量间的相似度),b1是偏移参数。

为了更直观地说明卷积的用法,举个简单的例子,目标图是一只鸭(粉色),需要在大图中寻找与之最相似的区域,最简单的方法是随机在大图中切出子窗口,然后计算它和鸭图的相似度(逐个做内积)。文中用鸭图作为一个卷积核,在大图上滑动,滑动到各个位置做乘法(比较距离,可以看到其中“3”的位置得分更高),最终得到的对比结果不是单一得分,而是分数矩阵,如网络结构图中右侧的方块所示,同样的技术也可用于更高维空间的比较。

其核心是使用了互相关层(correlation layer)对两个空间向量做内积,具体实现的Pytorch代码如下:

一般卷积函数的两个参数是数据x和权重w,这里变为需要对比的两组数据,instance为大图特征,exemplar为范例图片特征,卷积函数实现了滑动和矩阵乘法。在数学上,计算图特征的互相关,等同于独立评估每个变换后子窗口的特征(一次对比了多个子窗口),互相关层方法更加简单,可用现成的卷积网络实现,它是网络结构图中的绿色方块。

在跟踪过程中,以之前搜索到的图像的中心为基础继续搜索,用最大得分位置与前一中心位置的差异乘以网络的步幅,得出目标从一帧到下一帧的位移。通过缩放样例图像,在一个正向传播中可搜索多种缩放比例。

构建模型

损失函数

用区域对(正例对和反例对)训练模型,定义损失函数如下:

其中y为相似度的真实值,v为模型计算的模板与备选图的相似度,范围是{+1,−1},由于模型对比空间后输出的是矩阵,因此误差函数被定义为:

其中D每一帧图片,在其中有多个小区域,u是每一次对比的小区域,对于每个u都有真实值(ground-truth)y和模型计算出的v。

整体目标函数如下:在已知x,y,z的情况下,求误差最小时的网络参数θ。

从标注过的视频中获取范例图片和各帧中被搜索到的目标如下图所示:

训练时,目标最多相隔T帧,忽略目标的类别,视频被标准化处理,但不改变长宽比。标签y的计算方法如下:

其中u为小区域位置,c为目标中心,R为半径,k是网络的步长。当小区域位置位于目标中心的半径范围内,则认为是正例。为了消除正负类别不平衡,在评分矩阵中计算损失函数时给正例反例分配不同权重。

在目标跟踪中,相邻区域往往造成混淆,使用全卷积网络比较每个小区域得分有效解决了这一问题。

理论上,网络是对称的,即:

图片.png

网络允许使用不同大小的范例图片搜索,实际操作中为了使于批量处理,还是使用了统一的大小。

训练数据

模型使用了2015年版的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)视频数据库,开发者需要分类和定位30种不同类别的动物和自行车,训练集和验证集约4500个视频,包含上百万帧标注。这与之前的视频数据库相比,相当庞大,使用它训练避免了数据的过拟合。

数据处理

采用127x127大小的范例图片,255x255的被搜索图片,范例大小被定义为

其中w、h为目标的宽高,p为扩边,大小为p=(w+h)/4,s为缩放因子,A为面积。使用离线方式训练模型,

网络结构 用表中描述的卷积网络提取图片特征:

跟踪算法

论文的重点是全卷积孪生网络,因此未对跟踪结果做直方图统计、回归精调目标等处理,模型仍然达到了很好的效果。模型也做了一些限制,比如只在之前目标大小四倍的范围以内搜索,在评分矩阵上加正弦窗口,惩罚较大的位移,用多个缩放实现不同尺度的跟踪,大尺度变化带来更大的惩罚。

实验

实验中使用了两个版本的模型,一个是标准版本的SiamFC,另一个是将5种缩放变成3种缩放的SiamFC-3s。使用了Visual Object Track-ing (VOT) toolkit工具评测模型,下图为SiamFC与之前模型的效果和时间对比图。

论文最后还提供了效果图

可以看到,模型对于模糊图片有较强的处理能力(第2行),能适应场景的变化(1,3,4行)以及不同的照明和缩放比例(第6行),但对于第5行,其中包含多个类似目标的情况处理较差,这与它始终与第一张图片对比,目标未随视频更新有关。

上一篇下一篇

猜你喜欢

热点阅读