参考论文:Fully-Convolutional Siamese Networks for Object Tracking

算法主页:http://www.robots.ox.ac.uk/~luca/siamese-fc.html

code:https://github.com/bertinetto/siamese-fc

1. 网络结构及摘要

图一 SiamNet 网络结构。 搜索区域x, 输出的是一个得分图, 所谓的得分就是相似度度量,得分图的维度是由搜索图像块决定(样本模板和搜索区域进行密集交叉相关)。ϕ代表的是一种特征映射操作,将原始图像映射到特定的特征空间

传统意义上, 任意目标跟踪问题采用在线学习目标的形貌特征完成。 尽管这些在线的方法已经取得了非常好的结果,但是啊仅仅在线的方法本身具限制了模型学习的丰富性。最近,一些学者开始利用深度卷积网络的强大特征表达能力。然而,当跟踪的目标事前并不知道情况下,我们有必要采用SGD在线调整网络的权重,这严重的降低了系统的速度。本文中作者将一个全新的全卷积孪生网络fully-convolutional Siamese network融合到一个最基本的目标跟踪算法中。Siamese network 采用ILSVRC15数据集进行end-to-end的训练。本文的跟踪器尽管非常的简单,但是跟踪准确率很好,可以做到实时跟踪。

2. 网络的训练原理

图2 SiamNet模型训练原理

2.1 模型训练-数据准备

作者采用判别式的方法对网络进行训练,更具体是采用正样本、负样本分别构成的exemplar-candidate对来进行训练。 如图2所示,上一帧的目标模板与下一帧的搜索区域可以构成很多pair的exemplar-candidate pair, 但是根据判别式跟踪原理,仅仅下一帧的目标与上一阵的目标区域(即 exemplarof T frame-exemplarof T+1 frame)属于模型的正样本,其余大量的exemplar-candidate pair都是负样本。这样就完成了网络结构的端到端的训练。

这里需要额外说明一点就是如何确定搜索区域X. 其实这就是跟踪领域比较常用的方法,根据前一帧目标的中心初始化下一帧搜索区域的中心位置,然后设计搜索区域的尺寸就好了。

2.2 模型训练-损失函数设计

设计模型损失函数一直以来都是模型最重要的一环。本文作者采用了判别式掩膜的形式, 即目标和搜索区域经过交叉互相关可以得到相关程度谱图,图像在训练过程中exemplar-candidate的准确关系是已知的。所以设计起来并不困难。但这里寻要有三个问题需要解决:

  • 模板和搜索区域经过卷积特征提取之后,图像尺寸已经发生改变,如何和已知的判别式掩膜进行运算?
  • 作者采用了绝对形式的判别式掩膜,如果人工标记偶尔出现出现偏差,非黑即白的掩膜方略是否合理?
  • 可否利用frame-frame之间的信息,例如相邻两帧之间目标的位置偏移应该很小? 采用平均损失作为损失函数是否合理?

回答1:

在固定特征提取网络基础之上,主要影响尺寸的是Sampling过程,也就是卷积过程中的Pooling,所以只需要记住Pooling过程中的stride就好。作者将金标准掩膜通过stride参数变化到Score Map尺寸大小的。如下所示:

k表示的就是图像尺寸的降采样过程。

回答2:

作者采用的是金标准位置一定范围内的区域都是正样本,其其余部分为负样本,这样是扩大正负样本之间的距离,是的分类更加的清晰,当然也可以使用高斯权重进行赋值构造高斯掩膜。

回答3:(在线跟踪过程)

作者在得分图的基础上赋予了余弦窗权重,用来惩罚大的不合理的偏移位置。

此外,作者也研究了尺度的影响,作者将搜索空间拓展到了尺度空间,进行更加深层次的搜索。

跟踪时直接对score map进行线性插值,将17*17的score map扩大为272*272,这样原来score map中响应值最大的点映射回272*272目标位置。

3. 如何将不同目标尺寸进行规范化

作者采用了一个非常简单粗暴的方式将所有目标规范到了127*127大小,具体为原标注框的尺寸+边缘填充+尺寸变化。

s(w+2*p) * s(h+2*p) = 127*127   s:尺度因子 p:边缘填充

4. 额外信息

  • 作者采用如下论文进行尺度变换:He, K., Zhang, X., Ren, S., Sun, J.: Delving deep into rectifiers: Surpassing humanlevel performance on ImageNet classification,ICCV,2015.
  • 在线实时更新模板并没有得到比较好的收益。(如采用KCF的线性插值模式更新模板)

5. 感悟

这个“朴素”的网络结构,深深的影响了这两年来tracking的发展方向。 所谓的Siamese(孪生)网络,是指网络的主体结构分上下两支,这两支像双胞胎一样,共享卷积层的权值。上面一支(z)称为模板分支(template),用来提取模板帧的特征,下面一支(x)称为检测分支(search),是根据上一帧的结果在当前帧上crop出的search region。经过了相同的网络之后,模版支的feature map在当前帧的检测区域的feature map上做匹配(*)操作,找到响应最大的点就是对应这一帧目标的位置。

优势:

把tracking任务做成了一个检测/匹配任务,整个tracking过程不需要更新网络,这使得算法的速度可以很快(FPS:80+)。此外,续作CFNet将特征提取和特征判别这两个任务做成了一个端到端的任务,第一次将深度网络和相关滤波结合在一起学习。

弊病:

1. 模板支只在第一帧进行,这使得模版特征对目标的变化不是很适应,当目标发生较大变化时,来自第一帧的特征可能不足以表征目标的特征。至于为什么只在第一帧提取模版特征,我认为可能因为: 1)第一帧的特征最可靠也最鲁棒,在tracking过程中无法确定哪一帧的结果可靠的情况下,只用第一帧特征足以的到不错的精度。 2)只在第一帧提模板特征的算法更精简,速度更快。 
2. Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精确。

相关的改进方法如: Siamese + RPN :High Performance Visual Tracking with Siamese Region Proposal Network, CVPR 2018.

SiamNet: 全卷积孪生网络用于视频跟踪相关推荐

  1. SiamFC:利用全卷积孪生网络进行视频跟踪

    目录

  2. Fully-Convolutional Siamese Networks for Object Tracking基于全卷积孪生网络的目标跟踪算法SiameseFC

    1.论文相关 Bertinetto, Luca, et al. "Fully-convolutional siamese networks for object tracking." ...

  3. 【目标跟踪 SOT】SiamFC -用于对象跟踪的全卷积孪生网络

    SiamFC - 全卷积孪生网络 $背景知识 SOT(单目标跟踪)和MOT(多目标跟踪)的思想是,在视频中的某一帧中框出你需要跟踪目标的bounding box,在后续的视频帧中,无需你再检测出物体的 ...

  4. 【CV】SiamFC:用于目标跟踪的全卷积孪生网络

    论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...

  5. SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking

    原文链接 SiamFC网络 图中z代表的是模板图像,算法中使用的是第一帧的ground truth:x代表的是search region,代表在后面的待跟踪帧中的候选框搜索区域:ϕ代表的是一种特征映射 ...

  6. 四川大学计算机学院卢莉,四川大学卢莉等 | 用于视频跟踪的非对称判别相关滤波器...

    原标题:四川大学卢莉等 | 用于视频跟踪的非对称判别相关滤波器 判别相关滤波器(DCF)是视频跟踪领域一种有效方法,显著推动了视频跟踪领域进展.然而,卷积算子的对称性会带来计算上的问题,并破坏广义的平 ...

  7. Siamese Network (应用篇5) :孪生网络用于跟踪 CVPR2016

    参看论文:Tao R, Gavves E, Smeulders A W, et al. Siamese Instance Search for Tracking[J]. computer vision ...

  8. 【论文笔记】FC-EF,FC-Siam-conc,FC-Siam-diff:用于变化检测的全卷积孪生神经网络

    本文是论文<FULLY CONVOLUTIONAL SIAMESE NETWORKS FOR CHANGE DETECTION>的阅读笔记. 文章提出了三个全卷积神经网络结构用来解决变化检 ...

  9. Siamese Network (应用篇2) :孪生网络用于图像块匹配 CVPR2015

    参考论文:Zagoruyko S, Komodakis N. Learning to compare image patches via convolutional neural networks[J ...

最新文章

  1. Linux的scp命令
  2. [翻译] OrigamiEngine
  3. Win 8 app 获取窗口的宽度和高度, 本地化, 及文本读取
  4. Unity3D的一些坑
  5. Failed to load resource: the server responded with a status of 500 (Internal Server Error)
  6. Linux内存,先看这篇文章
  7. 编写react组件_s! 这就是为什么ReasonReact是编写React的最佳方法的原因
  8. 数据安全:通过Oracle的基本函数实现简单加密脱敏函数
  9. 雨林木风与微软数年博弈:蚂蚁和大象共舞
  10. swiper动态加载数据滑动失效,ajax执行后swiper.js的效果消失问题
  11. 如何在隐藏视图时使用自动布局移动其他视图?
  12. C++——unique()和unique_copy()
  13. 鸿蒙系统可以安装teams吗,鸿蒙致命弱点被曝光!不能装这个软件,80%用户将望而却步!...
  14. QQ音乐sign解密以及排行榜完整歌曲数据
  15. 破解大众点评 css加密
  16. 记一款价廉物美的小型DAC+耳放----Dr.DAC
  17. 计算机怎么知道用户名和密码,电脑的用户名和密码怎么查看
  18. Onedrive 1T|5T 网盘获取
  19. 使用HttpClient登录知乎获取返回页面信息
  20. 斯坦福2021秋季·实用机器学习【中文】【合集】+1.1课程介绍

热门文章

  1. 不用回调方法捕获数据包
  2. 转载:JAVA 操作 Ant API
  3. C++:关于“error C2374: 'i' : redefinition; multiple initialization”
  4. 突袭HTML5之WebSocket入门3 - 通信模型socket.io
  5. 功能自动化工具watiJ(转载)
  6. 【蓝桥杯】 交换瓶子
  7. hdu 1254(dfs+bfs+优先队列)
  8. NYOJ 1068 ST(线段树之 成段更新+区间求和)
  9. NYOJ 303 序号转换 数学题
  10. PHPCMS 学习