SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking
原文链接
SiamFC网络
图中z代表的是模板图像,算法中使用的是第一帧的ground truth;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,代表着搜索区域中各个位置与模板相似度值。
算法本身是比较搜索区域与目标模板的相似度,最后得到搜索去区域的score map。其实从原理上来说,这种方法和相关性滤波的方法很相似。其在搜索区域中逐点的目标模板进行匹配,将这种逐点平移匹配计算相似度的方法看成是一种卷积,然后在卷积结果中找到相似度值最大的点,作为新的目标的中心。
上图所画的ϕ其实是CNN中的一部分,并且两个ϕ的网络结构是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。
在训练模型的时肯定需要损失函数,并通过最小化损失函数来获取最优模型。本文算法为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如图1中最右侧生成的score map中,红色点即正样本,蓝色点为负样本,他们都对应于search region中的红色矩形区域和蓝色矩形区域。文章采用的是logistic loss,具体的损失函数形式如下:
对于score map中了每个点的损失:
其中v是score map中每个点真实值,y∈{+1,−1}是这个点所对应的标签。
上面的是score map中每个点的loss值,而对于score map整体的loss,则采用的是全部点的loss的均值。即:
这里的u∈D代表score map中的位置。
整个网络结构类似与AlexNet,但是没有最后的全连接层,只有前面的卷积层和pooling层。
整个网络结构入上表,其中pooling层采用的是max-pooling,每个卷积层后面都有一个ReLU非线性激活层,但是第五层没有。另外,在训练的时候,每个ReLU层前都使用了batch normalization(批规范化是深度学习中经常见到的一种训练方法,指在采用梯度下降法训练DNN时,对网络层中每个mini-batch的数据进行归一化,使其均值变为0,方差变为1,其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度),用于降低过拟合的风险。
AlexNet:
AlexNet为8层结构,其中前5层为卷积层,后面3层为全连接层;学习参数有6千万个,神经元有650,000个。AlexNet在两个GPU上运行;AlexNet在第2,4,5层均是前一层自己GPU内连接,第3层是与前面两层全连接,全连接是2个GPU全连接;
RPN层第1,2个卷积层后;Max pooling层在RPN层以及第5个卷积层后。ReLU在每个卷积层以及全连接层后。
卷积核大小数量:
- conv1:96 11×11×3(个数/长/宽/深度)
- conv2:256 5×5×48
- conv3:384 3×3×256
- conv4: 384 3×3×192
- conv5: 256 3×3×192
ReLU、双GPU运算:提高训练速度。(应用于所有卷积层和全连接层)
重叠pool池化层:提高精度,不容易产生过度拟合。(应用在第一层,第二层,第五层后面)
局部响应归一化层(LRN):提高精度。(应用在第一层和第二层后面)
Dropout:减少过度拟合。(应用在前两个全连接层)
微调(fine-tune)
看到别人一个很好的模型,虽然针对的具体问题不一样,但是也想试试看,看能不能得到很好的效果,而且自己的数据也不多,怎么办?没关系,把别人现成的训练好了的模型拿过来,换成自己的数据,调整一下参数,在训练一遍,这就是微调(fine-tune)。
冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层),训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。从某意义上来说,微调应该是迁移学习中的一部分。
感知机:PLA
多层感知机是由感知机推广而来,感知机学习算法(PLA: Perceptron Learning Algorithm)用神经元的结构进行描述的话就是一个单独的。
感知机的神经网络表示如下:
多层感知机:MLP
多层感知机的一个重要特点就是多层,我们将第一层称之为输入层,最后一层称之有输出层,中间的层称之为隐层。MLP并没有规定隐层的数量,因此可以根据各自的需求选择合适的隐层层数。且对于输出层神经元的个数也没有限制。
MLP神经网络结构模型如下,本文中只涉及了一个隐层,输入只有三个变量[x1,x2,x3]和一个偏置量b,输出层有三个神经元。相比于感知机算法中的神经元模型对其进行了集成。
ReLU函数:
sigmod函数:
学习更多编程知识,请关注我的公众号:
代码的路
SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking相关推荐
- 【目标跟踪 SOT】SiamFC -用于对象跟踪的全卷积孪生网络
SiamFC - 全卷积孪生网络 $背景知识 SOT(单目标跟踪)和MOT(多目标跟踪)的思想是,在视频中的某一帧中框出你需要跟踪目标的bounding box,在后续的视频帧中,无需你再检测出物体的 ...
- 【CV】SiamFC:用于目标跟踪的全卷积孪生网络
论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...
- 目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 原文:https://zh ...
- SiamNet: 全卷积孪生网络用于视频跟踪
参考论文:Fully-Convolutional Siamese Networks for Object Tracking 算法主页:http://www.robots.ox.ac.uk/~luca/ ...
- Fully-Convolutional Siamese Networks for Object Tracking基于全卷积孪生网络的目标跟踪算法SiameseFC
1.论文相关 Bertinetto, Luca, et al. "Fully-convolutional siamese networks for object tracking." ...
- SiamFC全文翻译:Fully-Convolutional Siamese Networks for Object Tracking
摘要 传统上,通过使用视频本身作为唯一的训练数据,专门在线上学习对象外观模型,可以解决任意对象跟踪的问题. 尽管这些方法取得了成功,但仅在线方法固有地限制了他们可以学习的模型的丰富性. 近来,已经进行 ...
- Fully-Convolutional Siamese Networks for Object Tracking(SiamFC 算法学习)
Fully-Convolutional Siamese Networks for Object Tracking(SiamFC 算法学习) 1.摘要 传统方法存在的问题:仅在线方法固有地限制了他们可以 ...
- SiamFC:Fully-Convolutional Siamese Networks for Object Tracking
Paper: http://www.robots.ox.ac.uk/~vedaldi/assets/pubs/bertinetto16fully.pdf Code:https://github.com ...
- SiamFC:利用全卷积孪生网络进行视频跟踪
目录
最新文章
- 基于octree的空间划分及搜索操作
- IoT数据分析可能需要混合方法
- 用Python操作Redis
- 七招制胜ASP.NET应用程序开发
- vue+Element-ui实现分页效果
- 手机音频通道被占用_关于凯叔讲故事APP的音频导出下载
- Exynos4412 内核移植(五)—— 驱动的移植
- 查看linux系统软件各种版本环境
- 蓝桥杯 BASIC-11 基础练习 十六进制转十进制
- PAT 乙级 1048. 数字加密(20) Java版
- 2018年9月8日 笔试小结
- form空白及iframe空白处理
- letex编辑输出】pdf文件嵌入字体embedded fonts的问题
- 计算机wps基础知识,计算机考试WPSOffice常见知识点
- 简简单单汇率换算HTML代码
- JAVA怎么开发一个胖客户端_胖客户端瘦客户端哑终端
- android 获取方法名,Android获取渠道名称
- 再见python你好go语言_再见,Python!你好,Go语言
- U8 8.9 数据库置疑恢复方法
- Qt5.9问题解决 Clock skew detected. Your build may be incomplete,has modification time in the future
热门文章
- ​基于matlab的目标检测 背景差分法和帧差法
- 嵌入式之linux入门篇
- openfeign接口启动报错: is not assignable to interface feign.hystrix.FallbackFactory
- php开发环境搭建和基础入门
- 如何杀掉defunct进程
- CrossWalk问题
- 【对学习现状的总结和思考】
- C#之敲击回车键触发Button的Click事件
- vim+Vundle+vim-autoformat+astyle格式化代码
- 人脸识别 ArcFace 实现