siamfc代码解读_每日一文:目标跟踪(SiamFC)「建议收藏」

siamfc代码解读_每日一文:目标跟踪(SiamFC)「建议收藏」Fully-ConvolutionalSiameseNetworksforObjectTracking.arXiv:1606.09549v2主体结构:核心CNN是AlexNet,去掉padding和全连接层FC,加入BN层,改为全卷积网络FCN,控制stride为8。FCN部分作用相当于特征提取,会得到与输入图像分辨率相关,通道数128的featuremap,类似与常用fHOG特征(h…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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训练数据越多效果越好,能得益于大数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188480.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 教你如何找回被盗的QQ密码(转贴)

    教你如何找回被盗的QQ密码(转贴)   目前QQ木马品种繁多,功能强大,且易学易用,连初学者也会用!正因为这样,QQ木马才那么容易泛滥成灾,现在的网吧,学校机房……30%都可能被人装上了木马,况且大家的防盗意识不高,QQ被盗已是常见事。当QQ被盗了,怎么才可以要回呢?!这是我在网上回答网友N遍的问题了,现在总结一下供大家参考:要想要回QQ有必要了解下QQ是怎么被盗的,“小黑客们” 常用以下几种盗取QQ:(1)装木马程序。QQ被盗

  • Linux常用命令:chmod修改文件权限 777和754

    Linux常用命令:chmod修改文件权限 777和754常用下面这条命令:chmod777 文件或目录示例:chmod 777/etc/squid运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行)。如果是Ubuntu系统,可能需要加上sudo来执行:sudochmod 777/etc/squid故事的开始,都会先留一个悬念。只有程序员能懂的冷笑话系列中,有个比较经典的段子:请用最简洁的语言描述我国FL。754。…

  • 菜鸟教程 python 正则表达式_python进阶路线

    菜鸟教程 python 正则表达式_python进阶路线正则表达式正则表达式(RegularExpression,在代码中常简写为regex、regexp、RE或re)是预先定义好的一个“规则字符率”,通过这个“规则字符串”可以匹配、查找和替换那些

  • Java回调机制详解[通俗易懂]

    Java回调机制详解[通俗易懂]网上关于Java回调的文章一抓一大把,但是看完总是云里雾里,不知所云,特别是看到抓取别人的代码走两步时,总是现眼。于是自己决定写一篇关于Java机制的文章,以方便大家和自己更深入的学习Java回调机制。

  • SpringMVC工作流程及其原理

    SpringMVC工作流程及其原理1、序言一、什么是SpringMVC?pring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。springmvc是一个基于mvc的web框架。springmvc是spring框架的一个模块,springmvc和s…

  • 随机梯度下降算法原理 知乎_梯度下降算法的正确步骤

    随机梯度下降算法原理 知乎_梯度下降算法的正确步骤目录1.算法目标2.算法描述3.算法推导4.注意1.算法目标逐渐逼近损失函数loss的极小值,简单抽象为求函数的极小值。2.算法描述每次取一个增量,使得,每次向函数值更小的地方前进一小步,多次迭代就能做到逐渐逼近函数的极小值。3.算法推导展开得到公式。其中H为海森矩阵,暂且不考虑。为使成立,只需要保证。即,当时,,如此即可保证每次更新在逐渐逼近函数的极小值。其中为学习率是一个较小的正数。每次更新时做操作,求得的最小值。4.注意上..

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号