Paper: http://www.robots.ox.ac.uk/~vedaldi/assets/pubs/bertinetto16fully.pdf
Code:https://github.com/rafellerc/Pytorch-SiamFC
(PyTorch Implementation) 
Project Page: https://www.robots.ox.ac.uk/~luca/siamese-fc.html

一、总体框架

图中z代表的是模板图像,算法中使用的是第一帧的groundtruth;x代表的是search region,代表在后面的待跟踪帧中的候选框搜索区域;ϕϕ代表的是一种特征映射操作,将原始图像映射到特定的特征空间,文中采用的是CNN中的卷积层和pooling层;6*6*128代表z经过ϕϕ后得到的特征,是一个128通道6*6大小feature,同理,22*22*128是x经过ϕϕ后的特征;后面的*代表卷积操作,让22*22*128的feature被6*6*128的卷积核卷积,得到一个17*17的score map,代表着search region中各个位置与模板相似度值。

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

上图所画的ϕϕ其实是CNN中的一部分,并且两个ϕϕ的网络结构是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。

二、具体实现

1、损失函数

在训练模型的时肯定需要损失函数,并通过最小化损失函数来获取最优模型。本文算法为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如图1中最右侧生成的score map中,红色点即正样本,蓝色点为负样本,他们都对应于search region中的红色矩形区域和蓝色矩形区域。文章采用的是logistic loss,具体的损失函数形式如下:
对于score map中了每个点的损失:
l(y,v)=log(1+exp(−yv))
其中v是score map中每个点真实值,y∈{+1,−1}是这个点所对应的标签。

如果score map上的元素根据以下条件判断y值是1 还是-1 :

上面的是score map中每个点的loss值,而对于score map整体的loss,则采用的是全部点的loss的均值。即

这里的u∈D代表score map中的位置。
有了损失函数,那就可以用SGD对模型进行训练。

2、训练所用数据库

与以前的算法不一样的是,起训练的数据库并不是传统的VOT,ALOV,OTB这三个跟踪benchmark,而是ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中用于视频目标检测中的视频,这个数据集一共有4500个videos,4500个,4500….视频的每一帧都有标记的groundtruth,4500是什么概念呢,VOT,ALOV,OTB这三个数据集加起来也就不到500个视频,500个,500…..

3、网络结构

整个网络结构类似与AlexNet,但是没有最后的全连接层,只有前面的卷积层和pooling层。整个网络结构入上表,其中pooling层采用的是max-pooling,每个卷积层后面都有一个ReLU非线性激活层,但是第五层没有。另外,在训练的时候,每个ReLU层前都使用了batch normalization,用于降低过拟合的风险。
图2  网络结构
 

4、一些实现细节

训练采用的框架是MatConvNet
训练采用的优化算法就是batch SGD,batch大小是8
跟踪时直接对score map进行线性插值,将17*17的score map扩大为272*272,这样原来score map中响应值最大的点映射回272*272目标位置

SiamFC:Fully-Convolutional Siamese Networks for Object Tracking相关推荐

  1. Fully-Convolutional Siamese Networks for Object Tracking(SiamFC 算法学习)

    Fully-Convolutional Siamese Networks for Object Tracking(SiamFC 算法学习) 1.摘要 传统方法存在的问题:仅在线方法固有地限制了他们可以 ...

  2. Fully-Convolutional Siamese Networks for Object Tracking全文翻译

    Fully-Convolutional Siamese Networks for Object Tracking 摘要   任意对象跟踪的问题传统上通过仅在线学习对象外观的模型来解决,使用视频本身作为 ...

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

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

  4. SiamFC全文翻译:Fully-Convolutional Siamese Networks for Object Tracking

    摘要 传统上,通过使用视频本身作为唯一的训练数据,专门在线上学习对象外观模型,可以解决任意对象跟踪的问题. 尽管这些方法取得了成功,但仅在线方法固有地限制了他们可以学习的模型的丰富性. 近来,已经进行 ...

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

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

  6. Fully-Convolutional Siamese Networks for Object Tracking翻译

    摘要 传统上,任意对象跟踪的问题是通过专门在线学习对象外观模型来解决的,使用视频本身作为唯一的训练数据. 尽管这些方法取得了成功,但他们仅在线的方法本质上限制了他们可以学习的模型的丰富性.最近,已经进 ...

  7. 目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

    目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 原文:https://zh ...

  8. [论文翻译]V-Net:Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation

    论文下载: 地址 V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation V-Net: ...

  9. 【论文翻译】FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection

    文章目录 PaperInfo Abstract 1 Introduction 2 Related Work 2D Object Detection Monocular 3D Object Detect ...

最新文章

  1. WINCE基于CH7024实现TV OUT (VGA)功能
  2. 机箱硬盘指示灯不亮_一文学会“剪不断,理还乱”的主板跳线与机箱连接
  3. 酷狗笔试题:补齐左括号(栈)
  4. 嵌入式开发之视频压缩比---h264、mjpeg、mpeg4
  5. 第二届字节跳动夏令营启动全球报名,图灵奖得主授课
  6. 利用 Zabbix 监控 mysqldump 定时备份数据库是否成功
  7. mfc oracle数据库编程,testmfc - 源码下载|数据库系统|Oracle数据库|源代码 - 源码中国...
  8. 扩展方法:给 IEnumerableTSource 扩展一个自定义数据源绑定的方法
  9. win7 或 win10系统开机启动项设置
  10. BP神经网络预测matlab代码实现
  11. 菜鸟CTO谈物流科技:科学家也要贴地飞行
  12. 程序员必须知道的八件事
  13. 傲腾服务器硬盘,Intel P5800X傲腾硬盘实测:不愧是世界最强
  14. Android开发提供两个图片和视频的测试url
  15. Linux I/O编程
  16. UVA 10306 e-Coins (二维背包)
  17. 华为HMS对谷歌GMS,有多大胜算?
  18. Digital Clock 3D for Mac(3D机械时钟动态桌面壁纸)
  19. 翻译Deep Learning and the Game of Go(10)第七章:从数据中学习:一个深度学习AI
  20. Windows下使用pip安装模块发生“failed with error code 1”的解决方法

热门文章

  1. 项目管理 之七 SSH、GPG 密钥生成步骤、部署 Github、Gitee 及使用效果
  2. String.prototype.matchAll 正则一些常用方法
  3. StringBuffer的equals
  4. BlockingQueue 使用
  5. Thread yield
  6. IDEA警告:SQL dialect is not configured
  7. CP 15 协处理器
  8. 使用cmd命令窗口打开对应的应用程序
  9. 标签名选择器、id选择器、class类型选择器、组合选择器
  10. 算法模版:暴力搜索之DFS【沈七】