1. Siamese 网络(Siamese network)

该网络可用于进行人脸识别验证,例如输入两张人脸,告诉两者之间的相似度,如果相似度较高则认为该目标为要找的人物。

siameseRPn siameserpn跟踪3张图片predect_相似度

Siamese 网络(Siamese network):对于两个不同的输入,运行相同的卷积神经网络架构(共享权值w),再去比较他们的相似度(计算编码距离函数d);最终得到比较结果Ew。

siameseRPn siameserpn跟踪3张图片predect_相似度_02

 

2.SiameseFC 算法

Fully-Convolutional Siamese Networks for Object Tracking

源码:https://github.com/torrvision/siamfc-tf

1.Introduce

本文提出使用siamese网络应用到简单的目标跟踪上,实际离线跟踪效果比较好,速度达到58FPS,

 

siameseRPn siameserpn跟踪3张图片predect_搜索_03

具体实现方法:

该网络分为两个分支:上面为模板分支,下面为检测分支

其中Z为模板图像,论文中使用的是第一帧的groundtruth,X代表的是search region,即裁剪出后续帧的候选搜索区域(根据模板图像z的大小来设置后续按搜索区域大小)。ΦsiameseRPn siameserpn跟踪3张图片predect_搜索_04代表特征映射操作,将原始图像能够映射到特定的特征空间(全卷积)之后。将模板分支得到的特征图(6x6)在检测分支上的特征图(22x22)上做匹配(*)操作,找到响应最大的点就是对应这一帧目标的位置。

 

这种思想类似于相关滤波的模板匹配操作,将深度学习网络看作是一个类相关滤波的模板匹配,进而进行跟踪。整个追踪过程不需要更新网络,所以速度相对较快。

 

缺点:

  1. 模板分支从第一帧开始确定,但从这确定的模板特征是否能够在后续帧中稳定发挥作用呢?
  2. Siamese网络得到的是一个目标的中心位置,尺寸等信息无法得到,所以作者仅仅使用了多尺度和回归,对实际追踪的精确度和计算量也比较大。

 

 

所以加以改进,有人提出了Siamese RPN网络

 

3.Siamese RPN网络

 

  1. Introduce

Siamese RPN在Siamese FC的基础上,加入了RPN(RPN来自FasterR-CNN)改进方案。即在对Template Frame 的classification branch和Regression branch两方面分别分出来两个权值,并对应与Detection Frame 的两个分支分别进行相关操作(卷积)进行匹配。(说白了Siamese FC是直接将一对图像的卷积输出进行相关滤波,Siamese RPN加入RPN之后从直接匹配换成了两个分支,分别进行匹配)

 

其中回归网络用于将预设大小的anchor框进行大小位置微调。

什么是RPN??? 

具体如细节图所示:

siameseRPn siameserpn跟踪3张图片predect_卷积_05

具体细节图为:

siameseRPn siameserpn跟踪3张图片predect_卷积_06

其中:

模板帧用卷积成4×4×(2k×256)个代表k个anchor+前、背景分类(2代表前景或背景)

模板帧用卷积成4×4×(4k×256)个代表k个anchor+坐标回归(4代表dx,dy,dw,dh偏移量)

然后模板帧的特征图与检测帧的做相关运算进行匹配

其中anchor比例为[0.33,0.5,1,2,3]

2.Conclution

最终速度达到了帧率达到160+ fps,

 

4.CFnet

1. IntroducCFnet基于SiameseFC的基础上在模板分支上进行了修改,即加入了相关滤波器(CF层)

siameseRPn siameserpn跟踪3张图片predect_卷积_07

2.benefits

1. 引入了相关滤波,之前相关滤波的方法大都采用人为设计或从其他任务训练得来的特征,作者引入了相关滤波学习解决了这一问题。 
2. 第一次将相关滤波融入到深度神经网络的架构里,从而把跟踪变成了一个端到端的任务。

与baseline(siamesefc)相比,cfnet的网络深度更浅,但同时效果也相对较好。CFNet完成了一个端到端的跟踪任务,与SiameseFC相比,跟踪精度提升不多,但是网络更浅。