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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 智能安防及视频监控系统

    智能安防及视频监控系统目录一、智能安防系统1、智能安防系统介绍2、安防系统相关工程二、视频监控系统1、视频监控系统分类2、视频监控系统组成3、视频监控系统的作用4、硬盘录像机NVR的基本功能5、硬盘录像机NVR设备结构6、视频监控设备主要厂商一、智能安防系统1、智能安防系统介绍安全防范系统成为了智慧城市与物联网行业应用中的一个非常重要的子系统。安防系统主要包括:视频监控系统、入侵报警系统、出入口控制系统、电子巡查系统以及智能停车场管理系统等5个子系统。AI人工智

    2022年7月15日
    26
  • 激活码pycharm【注册码】

    激活码pycharm【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    42
  • Activiti工作流使用之流程结构介绍[通俗易懂]

    Activiti工作流使用之流程结构介绍[通俗易懂]Activiti工作流使用之流程结构介绍文章目录Activiti工作流使用之流程结构介绍一、工作流介绍1.1概述1.2常见工作流二、工作流术语2.1工作流引2.2BPM2.3BPMN2.4流对象三、Activiti结构3.1Activiti系统服务结构图3.2Activiti数据库结构四、流程步骤4.1部署Activiti4.2流程定义4.3流程定义部署4.4启动一个流程实例4.5用户查询代办任务(Task)4.6用户已办任务历史记录4.6用户已办任务历史记录一、工作流介绍

    2022年9月27日
    0
  • WordPress 插件漏洞被利用,近 20 万站点还没打补丁[通俗易懂]

    WordPress 插件漏洞被利用,近 20 万站点还没打补丁[通俗易懂]WordPress 插件漏洞被利用,近 20 万站点还没打补丁

    2022年4月21日
    235
  • Spring中,三级缓存解决循环依赖[通俗易懂]

    Spring中,三级缓存解决循环依赖[通俗易懂]发现Spring三级缓存没有写到博客里,这里从自己的笔记迁移一下,补上:创建的都是单例,如果是构造方法注入,不能解决;如果是设值方法注入,用三级缓存解决:DefaultSingletonBeanRegistry:singletonObjectsearlySingletonObjectssingletonFactories代码流程:bean在createBeanInstance后,populateBean前:DefaultSingletonBeanRegistry:addSingl

    2022年5月21日
    65
  • pytest的assert_assert中文

    pytest的assert_assert中文前言断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed

    2022年7月31日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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