【论文笔记】目标跟踪算法之Siamese-FC

Fully-Convolutional Siamese Networks for Object Tracking

文章目录

  • Fully-Convolutional Siamese Networks for Object Tracking
  • 一、简介
  • 二、补充知识
  • 三、算法总体框架
  • 四、具体实现
      • 4.1 数据集的处理
      • 4.2 损失函数
  • 五、实验结果
  • 六、总结

一、简介

目标跟踪和目标检测还不一样,它不是对每一帧的detection,我刚开始接触跟踪算法的时候就以为是这样的,其实这么说是不准确的,因为这样做每一帧的detection速度慢实时性不好,peformance不理想,且只能针对能识别的目标进行跟踪。VOT是跟踪领域里的一个重要的竞赛,他的规则是给你一段视频,然后在视频的第一帧给一个bounding box(框住你要跟踪的对象),然后要在视频播放的过程中一直跟踪这个对象,整个跟踪过程就是一个线下的过程,要知道的是,对于这个要跟踪的目标你的分类模型未必认识,比如一个异型物体——你根本找不到与这个物体有关的训练集(比如说迪迦里的小怪兽),所以想对每一帧通过detection来进行跟踪是行不通的。因此跟踪的依据是第一帧里给出的信息。用深度学习来解决上述单目标跟踪的问题,就是Siamese系列网络存在的真实意义了。

二、补充知识

进入主题之前,先了解一下什么是Siamese网络。Siamese翻译为中文的意思是“暹罗”的意思,是古时中国对泰国的叫法,Siamese在英语中是“孪生”、“连体”的意思,这是为什么呢?

十九世纪泰国出生了一对连体婴儿,当时的医学技术无法使两人分离出来,于是两人顽强地生活了一生,1829年被英国商人发现,进入马戏团,在全世界各地表演,1839年他们访问美国北卡罗莱那州后来成为“玲玲马戏团” 的台柱,最后成为美国公民。1843年4月13日跟英国一对姐妹结婚,恩生了10个小孩,昌生了12个,姐妹吵架时,兄弟就要轮流到每个老婆家住三天。1874年恩因肺病去世,另一位不久也去世,两人均于63岁离开人间。两人的肝至今仍保存在费城的马特博物馆内。从此之后“暹罗双胞胎”(Siamese twins)就成了连体人的代名词,也因为这对双胞胎让全世界都重视到这项特殊疾病。

【论文笔记】目标跟踪算法之Siamese-FC_第1张图片

简单来说,Siamese网络其实是一种相似性度量的方法。Siamese的主要思想是通过一个函数将输入映射到目标空间,在目标空间使用简单的距离(欧式距离、余弦距离等)进行对比相似度。当类别数多,但每个类的样本数量相对较少的情况下可用来做类别的识别或分类。
整个网络的表达式为:
E W ( X 1 , X 2 ) = ∣ ∣ G W ( X 1 ) − G W ( X 2 ) ∣ ∣ E_W(\boldsymbol X_1,\boldsymbol X_2)=|| G_W(\boldsymbol X_1)-G_W(\boldsymbol X_2)|| EW(X1,X2)=GW(X1)GW(X2)这里的损失函数为:

在这里插入图片描述
在这里插入图片描述

在训练阶段,最小化来自同一类别的一对样本的损失函数值,最大化来自不同类别的一对样本的损失函数值。我们的目的就是去找一组参数W,使得当X1,X2属于同一个类别时,相似性度量 E W ( X 1 , X 2 ) E_W(\boldsymbol X_1, \boldsymbol X_2) EW(X1,X2)是一个较小的值,当X1,X2不是同一个类别时, E W ( X 1 , X 2 ) E_W(\boldsymbol X_1, \boldsymbol X_2) EW(X1,X2)较大。

三、算法总体框架

【论文笔记】目标跟踪算法之Siamese-FC_第2张图片

图1.算法框架图

在训练时,先将模板图片和待搜索图片统一“修改”到固定尺寸(后面会详细介绍),然后成对输入到网络中。图中上面的分支 z z z代表模板图像,也就是要跟踪的目标所在的位置,尺寸为 127 × 127 × 3 127\times127\times3 127×127×3,模板 z z z经过特征提取网络 φ \varphi φ后得到尺寸为 6 × 6 × 128 6\times6\times128 6×6×128的特征图;下面的分支的 x x x代表整个待搜索画面,尺寸为 255 × 255 × 3 255\times255\times3 255×255×3,待搜索图像 x x x经过同样的特征提取网络 φ \varphi φ 后得到尺寸为 22 × 22 × 128 22\times22\times128 22×22×128的特征图。然后以模板 z z z的特征图作为卷积核在 x x x的特征图上进行卷积操作,图中的 ∗ \ast 号,得到一个 17 × 17 17\times17 17×17的分数图score map,代表着搜索区域中各个位置与模板 z z z的相似度值。

从图一和文章题目我们可以很容易理解算法的框架,算法本身是比较搜索区域与目标模板的相似度,最后得到搜索去区域的score map。其实从原理上来说,这种方法和相关性滤波的方法很相似。其在搜索区域中逐点的目标模板进行匹配,将这种逐点平移匹配计算相似度的方法看成是一种卷积,然后在卷积结果中找到相似度值最大的点,作为新的目标的中心。

上图中的 φ \varphi φ 其实是AlexNet中的一部分,只是把全连接层去掉而已,并且两个 φ \varphi φ的网络结构和参数是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。

四、具体实现

4.1 数据集的处理

【论文笔记】目标跟踪算法之Siamese-FC_第3张图片
前面提到,训练时数据输入网络前要先把图像固定到特定的尺寸,论文里使用的尺寸为:模板 127 × 127 127\times127 127×127,待搜索图像 255 × 255 255\times255 255×255。固定图像尺寸的目的是使得跟踪的目标始终处于视频的正中心,如图2所示,这些图片截取自视频中不同的两帧。
这里不是简单的使用修剪或拉伸来处理的,如果这样做的话会丢失掉原图的信息。这里使用的做法是,如果bounding box的尺寸为(w,h),填充的边缘为p,那么缩放系数s的选择依据是使得缩放后的框框的面积等于一个固定的常数,即: s ( w + 2 p ) × s ( h + 2 p ) = A s(w+2p)\times s(h+2p)=A s(w+2p)×s(h+2p)=A文中使用的A是 127 × 127 127\times127 127×127,图像边缘的填充为 p = ( w + h ) / 4 p=(w+h)/4 p=(w+h)/4

4.2 损失函数

为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如图1中最右侧生成的score map中,红色点即正样本,蓝色点为负样本,他们都对应于search region中的红色矩形区域和蓝色矩形区域。文章采用的是logistic 损失。
对单个样本的损失为 l ( y , v ) = l o g ( 1 + e − y v ) l(y,v)=log(1+e^{-yv}) l(y,v)=log(1+eyv) 其中 v v v是score map中这个点的分数值,数值越大则认为是目标的概率越大, y ∈ { + 1 , − 1 } y\in\{+1, -1\} y{+1,1}是这个点的label,表示这个点在目标附近是1,在其他地方标为 − 1 -1 1,这样,当 v v v较大且 y = 1 y=1 y=1时,认为跟踪正确,得到的损失函数值 l l l很小,相反,当 v v v较大且 y = − 1 y=-1 y=1时,表示跟踪到了错误的位置,损失函数 l l l就很大。

上面的 l l l是score map中每个点对应的loss值,而对于整体的Loss,则采用的是全部点的loss的均值,即 L ( y , v ) = 1 ∣ D ∣ ∑ u ∈ D l ( y [ u ] , v [ u ] ) , 其 中 y [ u ] ∈ { + 1 , − 1 } L(y,v)=\frac{1}{|D|}\sum_{u\in D}l(y[u],v[u]),其中y[u]\in \{+1,-1\} L(y,v)=D1uDl(y[u],v[u])y[u]{+1,1}这里的 y y y的选定规则如下,R是半径

在这里插入图片描述

通过SGD最小化目标函数,求得跟踪器的参数 θ \theta θ arg ⁡ min ⁡ θ E ( z , x , y ) L ( y , f ( z , x ; θ ) ) \arg \min_\theta\mathbb{E}_{(z,x,y)}L(y,f(z,x;\theta)) argθminE(z,x,y)L(y,f(z,x;θ))

五、实验结果

【论文笔记】目标跟踪算法之Siamese-FC_第4张图片
可以发现,SiamFC不损失准确率的情况下,速度比其他模型提升了非常多。
VOT-15的排名


【论文笔记】目标跟踪算法之Siamese-FC_第5张图片

六、总结

可以看到,SiamFC网络结构非常简单,通过相同的网络提取出图像的特征,然后通过类似于卷积的相关操作的方法处理这些特征,可以快速的实现模板与搜索区域的 17 × 17 17\times17 17×17元素进行比对,输出的 17 × 17 17\times17 17×17的score map给出了每个元素(位置)和模板图像的相似度。但很明显,SiamFC是有缺陷的,首先是由于没有回归,网络无法预测尺度的变化,所以只能通过多尺度测试来预测尺度的变化,这会降低速度。其次,输出的响应图的分辨率较低,为了得到更高精度的位置,SiamFC采用插值的方法,把分辨率放大16倍,达到与输入相近的大小,这会降低跟踪的精度。
不管怎么说,SiamFC的提出意义还是非常重大的,它把端到端的深度学习方法引入到了单目标跟踪领域里面,并且速度和性能都还算可以,这为后续的Siamese结构在跟踪领域的应用打下了坚实的基础。

你可能感兴趣的:(目标跟踪算法)