论问笔记之siamesefc记录

全名:Fully-Convolutional Siamese Networks for Object Tracking

论文摘自ECCV Workshop 2016,由Luca Bertinetto、Jack Valmadre、Jo ̃ao F. Henriques、Andrea Vedaldi与Philip H. S. Torr撰写,它是Jo ̃ao F. Henriques继KCF之后又一大作。

摘要
传统算法使用视频本身作为唯一的训练数据,限制了模型丰富性。作者利用深度卷积网络,为了避免影响速度,在线进行随机梯度下降以适应网络权重。

提出思路:使用ILSVRC15数据集,训练一个端到端的全卷积Siamese网络,用于目标检测。

特点:(1)超实时的帧速率运行;(2)极其简单;(3)在多个基准测试中实现了最佳的性能。

1 前言
传统算法可以跟踪任意对象,故不可能有收集好的数据和训练好的检测器。比如:TLD [2],Struck [3]和KCF [4]等方法。目前计算机视觉中的其他问题越来越普遍地采用从大型监督数据集训练的深度卷积网络(conv-nets),但监督数据稀缺和实时操作约束阻碍了深度学习在该方法(每个视频训练一个检测模型)中的应用。最近的一些工作使用预训练的深度卷积来克服上述限制:

法一:使用网络的内部表示作为特征应用于“浅层”方法(例如相关滤波器),但并未充分利用端到端训练方法;

法二:用SGD(随机梯度下降)来微调网络的多个层,虽然实现结果很好却不实时。

作者提出,在初始离线训练阶段训练深度卷积网络以解决更一般的相似性学习问题,然后在跟踪期间简单地在线评估该网络。使得在速度远远超过帧速要求的现代跟踪基准测试中表现很好。本文的主要贡献是

(1)我们训练一个孪生(Siamese)网络,在更大的候选图像中定位目标

(2)创建了一种新的Siamese结构,它对候选图像进行全卷积:使用计算其两个输入互相关的双线性层实现密集而有效的滑窗评估。

2 训练
设学习函数f(z,x),即将示例图像z与相同大小的候选图像x进行比较,相同则返回高分。

测试所有可能位置,并选择与目标之前外观具有最大程度相似的候选块x。使用目标的第一帧Bounding-box作为变量z,从而学习训练函数f。

更进一步,将深度卷积网络作为函数f。Siamese网络对输入x、z用变换φ,定义:f(z,x)= g(φ(z),φ(x))用函数g组合输入表示。

深度Siamese卷积网络先前已应用于面部验证[18,20,14],关键点描述学习[19,21]和一次性字符识别[22]等任务。
2.1 全卷积Siamese架构
作者提出一种对于候选图像x的全卷积Siamese架构。当一个函数为转换函数,那么它就是全卷积的。引入Lτ来表示平移算子(Lτ x)[u] = x [u-τ],对于任意平移τ与整数步长k,如果满足

在这里插入图片描述

(当x是有限信号时,输出范围也是有限区间)那么信号映射函数h是全卷积的。

全卷积网络与候选图像大小无关,它将计算所有转换子窗口x与z的相似性。作者使用卷积嵌入函数φ和互相关层组合所得到

在这里插入图片描述

其中b1表示在每个位置的取值(b∈R)。

(1)此网络的输出f(z,x)是在有限网格D⊂上定义的分数图,网络满足:f(z,x)= f(x,z)

(2)嵌入函数的输出φ是空域上的特征映射(不是普通矢量)
在这里插入图片描述在跟踪期间,我们使用以目标的先前位置的中心作为候选图像x的中心,其中最大分数的位置=分数图中心网络块大小。使用互相关组合特征图并在较大的候选图像上评估该训练网络,在数学上等同于使用内积组合特征图并且独立地评估每个转换子窗上的训练网络。互相关层提供了一种非常简单的方法,可以在现有的conv-net库的框架内有效地实现此操作,它在训练和测试期间非常有用。
2.2 训练
(1)对于损失计算:采用判别性方法,在正负样本对上训练网络,采用log损失
在这里插入图片描述
其中v是单个样本候选对的实际分数,y∈{+1,-1}是对应的GT值。

训练期间,使用包含示例图对和更大候选图对来实现网络全卷积。这将生成分数图v:D→R,生成对每个图像对的映射。

将得分图的损失定义为所有损失的均值
在这里插入图片描述
图2所示,通过提取两个帧(最多相隔T帧)中以目标为中心的示例图x(第n帧)和候选图z(第n+T帧)

在训练期间忽略目标类别。在不破坏图像的长宽比的情况下对每个图像内的目标比例进行归一化。
2)对于正负样本的划分:分数图的元素在中心的半径R内(考虑到网络的步幅k),即:
在这里插入图片描述
将正负样本损失值加权用来消除类不平衡。
在这里插入图片描述
2.3 在ImageNet数据集上训练
ImageNet2015对象检测:对30种不同类别的动物和车辆进行分类和定位。 训练集和验证集合包含4417个视频(train-3862与val-555),超过200万个标记的bounding-box。(VOT [12],ALOV [1]和OTB [11]中标记序列的数量总共少于500个视频)

作者认为,ImageNet数据集在跟踪方面影响更广,场景和对象与规范跟踪基准中的不同,不会导致过拟合。

2.4 实际考虑
1、数据集处理

训练阶段

输入图像大小:127×127的第n帧,255×255的第n+T帧。bounding-box大小为(w,h),变动区间为p,比例因子s使得面积不变:
在这里插入图片描述
我们使用原始图A=127^{2},p =(w + h)/ 4。为了避免在训练期间调整图像大小,每个帧的原始和候选图都进行了离线提取。用全卷积Siamese网络训练。

数据集

ImageNet Video视频,作者采用先验法来限制提取训练数据的帧数。
2、网络架构

采用嵌入函数φ的体系结构(类似于Krizhevsky等人的网络的卷积阶段)

参数等信息在表1中给出。除了conv5(最后一层)之外,ReLU非线性应用于每个卷积层及全连接层的输出。在每个线性层之后都会进行批量标准化[24]。最后一步的Stride是8
在这里插入图片描述
3、跟踪测试阶段

特点:不更新模型;不保存之前帧的目标外观;没有采用光流法或颜色直方图特征;没有使用Bounding-box回归来改进预测框。

测试阶段:只搜索大约Bounding-box大小的四倍的区域内的对象,并且在分数图中添加余弦窗以惩罚大位移。

通过处理候选图的几个缩放形式来实现跟踪。分数变化会造成惩罚,并且当前规模的更新会受到抑制。

3 目前相关工作
详情请看论文。

4 实验结果
4.1 实施细节
训练阶段

使用MatConvNet [31]通过简单的SGD计算式(5),式中参数初值遵循高斯分布,然后根据改进的Xavier方法[32]进行缩放,总共进行50多次迭代,每次都有50,000个采样对(第2.2节)。使用尺寸为8的小批量估计每次迭代的梯度,当数值达到到范围时,降低学习速率。

跟踪测试阶段

策略:(1)初始帧的目标外观嵌入函数φ(z)只计算一次,并与后续帧的子窗口进行卷积比较。

(2)在线更新(特征表示)样本效果并不大,故不在线更新。

(3)跟踪阶段使用双三次插值从17×17到272×272对得分图进行上采样,定位更准确。

(4)为了处理尺度变化,搜索超过五个尺度()的对象,并通过线性插值更新尺度,阻尼系数为0.35。

代码网址:http://www.robots.ox.ac.uk/~luca/siamese-fc.html。

配置:单个NVIDIA GeForce GTX Titan X,4.0GHz英特尔酷睿i7-4790K

速度:86帧(SiamFC-3s);58帧(SiamFC)
4.3 OTB-13基准
OTB-13 [11]基准考虑了不同阈值下的每帧平均成功率:IoU高于某一阈值,则跟踪成功。(曲线下方的面积大小代表跟踪效果)

算法比较:Staple [33] ,LCT [34],CCT [35],SCT4 [36],DLSSVM NU [37],DSST [38]和KCFDP [39]。

在训练期间将25%的图像对转换为灰度。所有其他超参数(用于训练和跟踪)固定不变。
在这里插入图片描述
4.4 VOT基准
数据集:标签vot2015-final。(其中,当IOU=0时,认为跟踪器失败,则自动重新初始化五帧)

VOT-14结果

算法比较:VOT2014最佳10个跟踪器、Staple(CVPR2016)、GOTURN(ECCV2016)

评估指标:准确性(图4中的纵坐标:平均IOU)和鲁棒性(图4中的横坐标:失败帧数/总帧数)。
在这里插入图片描述
VOT-15结果

算法:VOT2015最佳40个跟踪器。

评估指标:在VOT2015论文中,将长度为N帧的视频中计算从Nn到Nm帧的平均IOU(对于[Nn,Nm]的取值方式:描述出概率密度函数(简称pdf:使用核函数估计)曲线,从中取出积分面积为0.5的帧区间[Nn,Nm],并且两端的pdf值近似相等)
在这里插入图片描述
需要改进的方法:模型更新,边界框回归,微调,内存

4.5 数据集
使用更大的视频数据集可以进一步提高模型性能。

5 总结
(1)引入一种侧重于在离线学习强嵌入的替代方法。

(2)Siamese全卷积深度网络能够更有效地使用可用数据。 既可以在测试时通过执行有效的空间搜索来反映,也可以在训练时反映,其中每个子窗口有效地代表了一个有用的样本,且成本很低。

(3)深度嵌入为在线跟踪器提供了很多功能来源,并在跟踪时很好地运行。

思考

1,关于siamesefc可以在后面尺度上面改进的话加上计算尺度的机制,或者说在调整原有框。原有框的基础上根据热图响应区域估算,插值后目标的大小。 利用双三线性插值法,主要是为了获得和原图像相同的分辨路。再根据热图定位到新一帧中精确的位置。原论文的选择多尺度应用在搜索框,但在实际不同的应用场景下尺度非常多,三个或者是五个根本不行,其实改尺度可以加尺度机制。加上多尺度搜索框可以计算其得分,选择分数较高的。
2,边界框回归 bbox或者是anchor回归。
3 ,也可以用相似背景作为切入。
4,网络结构层可以改变网络结构或者是参数和变量的设置。 用res或者vgg fcn, 如果用深度网络可以加入多层特融合的方法!!
5,在网络结构层里加入主成分分析的方法 在特征提取时可以提取主要特征,这样对后续网络的训练可以提高速度和精度
6,模板匹配的问题 其实基础siamesefc网络就是一个模板匹配的问题,而不是传统二分类的问题主要问题在于模板匹配只是机械的匹配实际是有很多问题的。这个模板匹配主要就是体现在那个相似度学习。如果你想换那就是换那个f函数。或者其他的函数。
7,不足之处就是模板匹配只在第一帧进行,后面目标的变化不足与适应当前目标发生简答的变化,而且只得到了目标的中心点,没有得到目标的尺寸。从而可以很好的分辨上下文信息,也可尽量的保持样本完整性,而余弦窗可以抑制边缘信息像素使其为零,但是也多了一些信息的丢失。
8,关于padding 以及网络输入的大小 参数的设置
9,其中本文同的数据库是imgnet large scale visual reconition challenge
添加padding 是为了将神经网络学习到背景信息,学习上下文信息。跟踪时可以直接对score map 插值,将原来的1717变为272272,这样原来的响应值最大点映射为272272的值。如果背景有很多相似的问题,跟踪效果也不好。
10,预测边框是原始边框的等比例变换。
ps:端与端的输出,是将特征提取和响应融合在深度学习的框架中,只采用单层卷积的端与端的结构就达到了深度特征 ,是一种黑匣子的表现。
其实也是利用了模板图像的输入,feature map作为卷积核,再检测图像输出feature map上进行卷积操作,滑窗操作,再对检测图像的各个区域计算与模板的相似性。
11,搭建尺度检测框架是在cnn中加入。

8,关于siamesefc的一点想法


1,思路:
构建数据,获取模版图片(即上图中的z)和搜索区域图片(即上图中的x)。
模版图片的正中间就是需要追踪的物体。搜索图片,值得是需要寻找目标物体的图片。
通过相同的卷积网络提取特征。也可以从word2vec的角度分析,上图中z提取特征后得到了66128的embedding,x提取到了2222128的特征。比较z与x提取到的特征,获取分数矩阵,如果相似度高,则其分数大;相似度低则分数小。分数矩阵,可以理解为两个向量的内积,获取内积可以通过一个卷积操作。比如上图,就可以理解为:输入特征图为2222128,卷积核为661281,输出特征图为17171。PS:上图的分析到“获取积分矩阵”这一步之后就戛然而止了……云里雾里的……
稍微总结一下:
如何比较两张图片的相似度?首先通过全卷积网络获取特征图,相同大小的图片获取的特征图尺寸相同。两张相同大小的图片比较相似度的方式就是:计算两个特征向量的内积,内积值大的相似度大,内积小的相似度小。图中没有提到的功能(第三章中分别描述):
如何获取输入数据z和x。
如何通过17171的分数矩阵获取追踪结果。
如何通过17171的分数矩阵进行训练。
多尺寸如何处理。
(2),文章是利用的tensorflow框架,训练时所有图片都是已知的,预测是顺序预测,第一帧的边界框是已知的,主要是以bbox为中心,构建一个127127的区域,超出的区域平均值padding代替。后面有关于边界框的惩罚项以及候选图片的构建,
(3)如何通过分数矩阵获取追踪结果
Siamese.m, tracker.m 先进行线性变换,变换到原始图片大小,1717变为255255,然后结合位置信息获得最终的得分信息,最终得分高的位置作为中心得到最终的bbox。bbox的长宽跟之前一帧的长宽一致。
(4)如何通过分数矩阵进行训练
利用交叉熵以及梯度下降法。关于标签y如何构建:思路:比较预测bbox中心点与 ground truth 的bbox中心点之间的距离。k是stride of network。对于其中的多尺寸处理。其中要保持模板图片z不变,对搜索图片x进行尺寸变换,同样提取255
255的区域,计算相似度,获取相似度最大点的坐标。对于最终bbox进行等比例变换(比例就是对搜索图片x进行变换的比例)。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值