siamfc代码解读_每日一文:目标跟踪(SiamFC)
Fully-Convolutional Siamese Networks for Object Tracking.arXiv:1606.09549v2
主体结构:核心CNN是AlexNet,去掉padding和全连接层FC,加入BN层,改为全卷积网络FCN,控制stride为8。FCN部分作用相当于特征提取,会得到与输入图像分辨率相关,通道数128的feature map,类似与常用fHOG特征(h/4, w/4, 31)。
检测流程:两路输入图像分别用训练好的同一个CNN(FCN)提取特征,目标区域扩展纹理(padding=1)的输入图像,简称目标图像缩放到127*127*3,特征6*6*128,目标图像4倍大小的检测区域,简称检测图像缩放到255*255*3特征22*22*128,相似度度量是cross-correlation交叉相关,计算每个位置的相似度得到score map,其实就是拿输入特征6*6*128*1作为卷积核,对22*22*128的feature map进行卷积操作,(22-6)/1+1 = 17,得到17*17*1的输出。最后将很粗的score map双三次插值上采样,获得更精确稳定的目标位置,这一步在相关滤波中也非常常见,不过那里用了更方便的频谱插值。
Cross-correlation:FCN具有位置对应特性,原本的检测操作应该是,在检测特征图上滑窗,寻找与目标特征相似度最高的位置,这里通过卷积操作代替滑窗检测,一个字:快!准!恨!
虽然卷积是滑窗检测的高效实现,但其本质上依然是滑窗,计算速度比相关滤波慢多了。这里我们有必要对比一下(ROUND 1):相关滤波:优点->得益于循环矩阵假设和FFT,计算速度非常快,较大feature map也能轻松应对;缺点->循环矩阵假设造成了边界效应,检测范围受限;
交叉相关:优点->没有假设也没有边界效应,是实实在在的滑窗检测,有卷积高效实现速度可以接受;缺点:计算量高,仅适合较小feature map。
尺度自适应:常用的多尺度检测方法实现尺度自适应,3个尺度更快86 fps,5个尺度更好58 fps。尺度检测是扩大或缩小检测区域,但检测图像都要缩放到255*255*3,也就是说尺度检测是天然可以并行的,SiamFC通过设置mini-batch的方式实现,一次性完成3或5个尺度样本检测,这在GPU上方便加速,但对CPU或ARM就不太友好了,单核速度需要*3或*5考虑。
在线不更新:这里的更新是指目标图像是不是更新,而非CNN的权值,CNN离线训练后就完全固定了,SGD反向传播在tracking问题中基本不可能实时。
最早16CVPRw的SINT就是在线不更新的,不更新当然速度快,但对特征的要求更高,特征必须对各种干扰和形变都非常鲁棒。SiamFC的特征来自AlexNet的conv5,属于高层语义特征,也就是说,这一层特征已经知道它要跟踪的是什么了,不会像HOG那样苛求纹理相似度。举个例子,如果跟踪目标是人,不论躺着或站着,conv5都能“认出来”这是人,而纹理特征如HOG或conv1可能完全无法匹配。
(什么是纹理,什么是语义,有无明显的界限?如果有一张100*100的苹果图像,1万个像素 vs. 一个词“apple”,算两个极端吗?)
在线不更新带来的另一个好处,SiamFC是目前最优秀的long-term跟踪算法。因为目标永远不会被污染,而且检测区域足够大,轻微的偏航都可以随时找回来。对比如下(ROUND 2):在线更新:优点->随时适应目标的变化,和背景信息的变化,对特征的要求较低,低层特征计算速度快分辨率高;缺点->模型更新会累计误差,遮挡或失败时会学到背景,丢失后再也找不回来。
在线不更新:优点->不更新速度更快,跟踪目标永远不会被污染,long-term特性非常优秀;缺点->对特征的要求非常高,必须是表达能力足够强足够鲁棒的特征,通常高层特征计算速度慢、分辨率低。
检测区域:目标图像是加了纹理扩展的,类似Staple中的padding=1,而检测区域又是目标图像的4倍,这一设置接近ECO和BACF的检测区域,而且特征图还不用加余弦窗,检测区域算非常大了。
训练样本:SiamFC是第一个用2015 ILSVRC Object detection from video task (VID)训练的,上一篇博文已经分析过用跟踪数据库训练有严重过拟合嫌疑,而且训练数据量有限。VID有4417个视频,超过2百万标注帧,非常适合训练跟踪算法,很高兴看到今年很多论文都用这个数据库训练,我们看到的论文结果相对公平。SiamFC训练数据越多效果越好,能得益于大数据。
siamfc代码解读_每日一文:目标跟踪(SiamFC)相关推荐
- (一)Siamese目标跟踪——SiamFC训练和跟踪过程:从论文细节角度出发
SiamFC 简单介绍 SiamFC基于深度学习的方法在速度上已经超过传统的相关滤波算法,实时性极强.SiamFC基于孪生网络,该网络有两个输入,一个是模板样本Z,另一个搜索样本X.而在单目标跟踪任务 ...
- 神经网络代码解读_强化学习、联邦学习、图神经网络,飞桨全新工具组件详解...
机器之心发布机器之心编辑部 11 月 5 日,在 Wave Summit+2019 秋季深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多 ...
- python决策树代码解读_建模分析之机器学习算法(附pythonR代码)
0序 随着移动互联和大数据的拓展越发觉得算法以及模型在设计和开发中的重要性.不管是现在接触比较多的安全产品还是大互联网公司经常提到的人工智能产品(甚至人类2045的的智能拐点时代).都基于算法及建模来 ...
- python画圣诞树代码解读_使用Python画了一棵圣诞树的实例代码
分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习. 如何用Python画一个圣诞树呢? 最简单: height = 5 stars = 1 for i in range(heig ...
- python画圣诞树代码解读_实战 | 教你用Python画各种版本的圣诞树
项目介绍 大家好呀,这是一份迟到的圣诞节Python专辑项目. 我们一起看看如何用Python做出超级炫酷的圣诞树吧~ 1.入门版本 height = 5 stars = 1 for i in ran ...
- SiamFC代码大乱炖 (pytorch)
写前bb 最早是看了matlab的代码,搭了环境,demo也跑了,就再也没碰过了.之后想自己把测试和训练部分全部跑通,找了个用pytorch写的代码,看的过程中发现自己还是很多细节部分不是很清楚.虽然 ...
- CVPR 2020目标跟踪多篇开源论文(下)
CVPR 2020目标跟踪多篇开源论文(下) Cooling-Shrinking Attack: Blinding the Tracker with Imperceptible Noises 作者团队 ...
- CVPR 2020 论文大盘点—目标跟踪篇
本文盘点CVPR 2020 所有目标跟踪(object tracking)相关论文,总计33篇,因为跟踪相关的技术很多,这里单指具体目标的跟踪,不涉及点的跟踪(如人体关键点跟踪,会另有总结). 最大的 ...
- 目标跟踪领域研究(二)跟踪算法
视觉目标跟踪(Visual Object Tracking)是计算机视觉领域的一个重要问题.尽管近年来受到了广泛研究,目标跟踪问题由于本身的高难度.高质量数据的稀少,研究热度比目标检测.语义分割等基本 ...
- opencv动态目标跟踪学习总结
用opencv实现对视频中动态目标的追踪 第一步,是要建立一个编程环境,然后加载opencv的库路径等等.具体步骤在 http://www.opencv.org.cn/ 的"安装" ...
最新文章
- 真正的在线教育,开始萌芽了
- linux 查找目录或文件详解
- LAUNCHPAD运行5110测试程序
- intranet的计算机环境包括,计算机四级考试网络工程师考点:企业网与Intranet
- 五年后的4.20地震
- C++多继承构造和析构顺序
- 拼多多破1000亿美金,黄峥自述:我的人生经历和创业理念
- redis报错 Error getaddrinfo ENOTFOUND
- 智能车辆纵向速度跟踪与控制方法研究
- 分享一则电子邮件营销案例
- ES6----promise方法解决回调地狱问题
- Excel如何将符合要求的所有数据全部查找出来
- TFT显示模组有什么功能
- CentOS7更换国内源以及安装补充更新源(安装nethogs)
- ps保存的图片找不到ico格式怎么办?
- HTML5期末大作业:在线电影介绍(6页) HTML+CSS+JavaScript 大学生毕设网页设计源码HTML web网页设计制作成品
- 内存条上的数字代表的意义
- 如何计算TCP吞吐量
- ORACLE中的LTRIM、RTRIM和TRIM
- 计算当前日期前几(年、月、日)或后几(年、月、日)的日期
热门文章
- 论文 | 科研软件 —— SPSS Statistics V26.0安装及注册教程
- 机器学习实战pdf原文内容分享
- SPFA算法(最短路径算法)
- 少儿编程scratch(源码)
- 怎样建设智慧公厕综合信息管理系统?如何让智慧公厕实现综合信息管理功能?@中期科技ZONTREE智慧厕所
- 电视家鸿蒙系统,ZNDS智能电视强烈推荐:机顶盒上好用的四款软件!
- Abaqus 用户子程序 UEL
- Axure团队项目之Axure share与 SVN
- IBM FileNet Content Java API 简介
- matlab表达一次函数,求指导。。。。如何用matlab拟合一次函数或者二次函数的公式和曲线。。...