SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

news2024/11/15 13:58:56

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks(CVPR2019)

为什么2018年提出的SiamRPN网络还在用老式的AlexNet作为Siamese Network的特征提取网络呢?其实SiamRPN也尝试过用ResNet替代AlexNet,但发现效果甚微。SiamRPN++通过研究发现,发生这种情况的原因很可能跟严格的平移不变性被破坏有关。

作者发现被追踪的目标(target)可能会出现在search image上所有可能出现的地方,那这就需要我们的template图像中的目标存在空间不变性,作者发现只有满足padding=0的网络(比如AlexNet)才能符合这个情况。所以那些现代化网络,比如残差网络ResNet或者轻量级的MobileNet就被限制了。

SiamRPN++这篇论文最重要的是突破了Siamese网络在特征提取网络选择上的限制,作者仅仅通过一个简单有效的采样策略就打破了这个限制。

spatial aware sampling strategy(空间感知采样策略):在SiamFC的训练过程中,以search image中的目标所在位置为中心进行一些裁剪和填充,作为训练过程中的search部分。那么在训练过程中,这个目标一直都在search image的中心。在测试的时候,图像边界区域上的概率被降级为零,不论目标在图像中的哪个位置,甚至外观特征有多明显,都会在图像中心产生一个较大的偏移,这和训练过程中采用的方式有关。
作者开始尝试把target均匀分布在某个范围内,而不是一直在中心(范围是离中心点一定距离,该距离为shift,target在这个范围内均匀分布)。

Siamese网络需要严格的平移不变性,padding会破坏这种性质。为了保证适当的分辨率,现代深度神经网络基本都具有padding,从而破坏网络严格的平移不变性,带来的弊端就是会学习到位置偏见。
作者在训练过程中,不再把正样本放在中心,而是以均匀分布的采样方式让目标在中心点附近进行偏移,随着偏移范围的增大,深度网络可以由刚开始的完全没有效果逐渐变好。
通过均匀分布的采样方式让目标在中心点附近进行偏移,可以缓解网络因为破坏了严格平移不变性带来的影响,即消除了位置偏见,让现代化网络可以应用于跟踪中。

在这里插入图片描述

从上图可以看出,在±32像素范围内随机平移后,分布变得更加均匀。实验发现存在shift的时候,会提示模型性能,shift=64的时候表现最佳。

论文主要的实验是在ResNet-50上做的。现代网络一般都把步长设置为32,但跟踪的两个视频帧目标位移很小,为了定位的准确性,一般步长都会设置的比较小(Siamese系列一般都为8),所以作者把ResNet最后两个block的stride去掉了,同时增加了dilated convolution,一是为了增加感受野,二是为了能利用上预训练参数。论文中提到的MobileNet等现代网络也是进行了这样的改动。改过之后,主干网络后面三个block的分辨率就一致了。
对于改进的ResNet-50,作者将conv4和conv5中的stride=2改为stride=1,同时为了保持之前的感受野,采用了空洞卷积。

多层融合:使用了现代深度神经网络以后,一个自然的想法就是使用多层融合。一般而言,浅层的网络包含的信息更多有关于物体的颜色、纹理等,深层的网络包含的信息更多是关于物体的语义特征。使用特征融合可以弥补浅层信息和深层信息的不足,更有助于单目标追踪。作者选择了网络最后三个block的输出进行融合(由于之前对网络的改动,所以输出分辨率一致,融合时实现起来简单)。对于融合方式上作者并没有做过多的探究,而是直接做了线性加权。

在这里插入图片描述

介绍几种互相关方法:

在这里插入图片描述

  • Cross Correlation:用于SiamFC,模版特征在搜索特征上以滑窗的方式获取不同位置的响应。
  • Up-Channel Cross Correlation:用于SiamRPN,与SiamFC不同的是在做correlation前多了两个卷积层,一个提升维度(通道数),另一个保持不变。之后通过卷积的方式,得到最终的输出。通过控制升维的卷积来实现最终输出特征图的通道数。
  • Depthwise Cross Correlation:和Up-Channel一样,在做correlation操作之前,模版和搜索分支会分别经过一个卷积层,但不需要提升维度,这里只是为了提供一个非Siamese的特征(SiamRPN与SiamFC不同,比如回归分支是非对称的,因为输出不是一个响应值;需要模版分支和搜索分支关注不同的内容)。在这之后,通过类似depthwise卷积的方法,逐通道计算correlation结果,这样的好处是可以得到一个通道数非1的输出,可以在后面添加一个普通的1×1卷积就可以得到分类和回归的结果。
    这里的改进主要源自于up-channel,升维卷积参数量极大,256×(256×2k)×3×3,分类分支参数量就接近6M,回归分支12M;其次升维造成了两个分支参数量的极度不平衡,模版分支是搜索支参数量的2k/4k倍,也造成整体难以优化,训练困难。
    改为Depthwise版本以后,参数量能够急剧下降;同时整体训练也更为稳定,整体性能也得到了加强。
    实质上Depthwise Cross Correlation采用的就是分组卷积的思想,分组卷积可以带来运算量的大幅度降低,被广泛用于MobileNet系列网络中。
    与SiamRPN网络不同,SiamRPN++提升网络通道数为2k或者4k的操作是在卷积操作(Cross Correlation)之后,而SiamRPN网络是在卷积操作之前,这样就减少了大量的计算量了。

在这里插入图片描述

  • 网络方面,从AlexNet换成了ResNet-50以后,发现只有conv4的时候就取得了非常好的效果。虽然conv3和conv5效果没有那么好,但由于鲁棒性的提升,使得后续的提升变成了可能。同时对BackBone进行finetune也能带来接近两个点的提升。
  • 多层融合,可以从表中看出,同时使用三个block的效果明显比只使用单个block的要高,VOT上比最好的conv4还要高4个点。
  • 最后是新的correlation方式,从表中也可以看出,无论是AlexNet还是ResNet,装备了新的correlation方式以后,都有接近两个点提升。

在这里插入图片描述

作者使用不同的backbone进行验证,证明了所提算法能够随着backbone的提升而提升。

总结一下,深网络一直是Siamese系列的一大痛点,作者简单的通过调整训练过程中正样本的采样方式让深网络可以在跟踪中发挥作用,同时通过多层聚合更大程度的发挥深网络的作用。除此之外,新的轻量级的correlation方式在减少参数量的同时,也增加了跟踪的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitlab使用教程

一:账号管理 1、管理员添加 gitlab的用户分为管理员用户和普通用户,在界面上管理员会多了如下图所示的管理员区域,管理员拥有用户管理的功能,普通用户没有此功能。 通过管理员区域的用户-添加用户,根据提示填写必要…

JVM02-JVM即时编译器JIT

1-类编译加载执行过程 先了解下Java从编译到运行的整个过程 类编译:在编写好代码之后,我们需要将 .java文件编译成 .class文件,才能在虚拟机上正常运行代码。文件的编译通常是由JDK中自带的Javac工具完成,一个简单的 .java文件&a…

使用Flutter开发俄罗斯方块小游戏

一、本篇文章主要是来讲解下俄罗斯方块游戏的开发思路(当然可能不是最好的思路),博客文章顶部有代码(仅供参考) 二、效果图 视频效果图地址 三、UI页面思路拆解 游戏的主界面两部分组成,上面为15*10的格…

Proxyman 替换js

在真机排查问题时,js不能格式化,导致没法看问题出在那一行,此时可以用这个方法替换js。 方法: 安装proxyman后,以iOS设备为例,菜单-证书-在iOS上安装证书 电脑、真机连接同一个网络,配置代理&…

SparkCore

Spark是一种快速、通用、可扩展的大数据分析引擎 Spark的特点 Speed:快速高效 性能比Hadoop MapReduce快100倍。即便是不将数据cache到内存中,其速度也是MapReduce10 倍以上。 Ease of Use:简洁易用 Spark支持 Java、Scala、Python和R等…

ctfshow—红包4

0x00 前言 CTF 加解密合集:CTF 加解密合集 0x01 题目 from secrets import randbelow from nationalsecret import p, r, k, flagg 2 y pow(g, k, p)def gogogo():print("Another chance:")t int(input(t ))c randbelow(p)print("Here is my…

关于anaconda的python虚拟环境

1.查看anaconda的虚拟环境 在cmd中输入 conda env list //查看conda中的虚拟环境和 activate 环境名称 //激活环境 pip list //查看该环境的包 python // 可以查看该环境python的版本 deactivate //退出环境2.使用anaconda创建新的…

Java Web HTMLCSS(2)23.6.30

2,CSS 2.1 概述 CSS 是一门语言,用于控制网页表现。我们之前介绍过W3C标准。W3C标准规定了网页是由以下组成: 结构:HTML表现:CSS行为:JavaScript CSS也有一个专业的名字:Cascading Style Sh…

如何在 macOS 上同时使用 Flutter2 和 Flutter3 进行 ios 开发

如何在 macOS 上同时使用 Flutter2 和 Flutter3 进行 ios 开发 前言 猫哥主打系统环境是: macos flutter 3.7.12 ruby 3.2.2 cocoapods 1.12.1 xcode 14.3.1 这套配置运行最新的项目没问题,但是最近需要维护 flutter 2.10.5 这种老项目,虽然用了 fvm 进…

武汉理工大学第四届ACM校赛(部分补题与写题)

开裂 目录 k-雇佣农民 题目描述 输入描述: 输出描述: 输入 输出 备注: 小e的苹果树 不降序列 k-雇佣农民 题目描述 Ly很喜欢星际争霸二这款游戏,但是他现在玩不到了。所以Ly现在只能做一个关于农民的题消磨时光。 开始时Ly没有任何农民,第i天白…

三、QPushButton的使用,信号和槽

QT从入门到实战学习笔记 一、QPushButton的创建二、中文要设置成UTF-8格式才不会乱码三、对象树1、验证被释放掉 四、QT窗口坐标系九、信号和槽---点击按钮关闭窗口1、查询signal信号的定义(帮助文档)2、搜索QWidget查找槽函数(slot是槽的意思…

华为freebuds 5无线充电充不上电怎么办?

相信很多人都会遇到跟我一样的问题,华为FreeBuds 5无线充电充不进电是怎么回事?为此我专门整理了以下的经验,相信对大家有所帮助。 1. 充电时要把耳机盒保护套拆下来,耳机盒与充电底座之间不要有东西挡着。这样耳机盒充电时可以更…

jenkins的环境搭建

jenkins 环境 安装 我之前使用war安装、安装比较简单、就是jenkins的 对应的插件不能下载下来、后来发现是版本的问题、使用docker-compose 安装、jenkins安装 插件很容易安装下来 1、安装jdk 解压jdk 配置环境变量 #set java environment JAVA_HOME/usr/local/jdk1.8.0_281…

基于单片机和GSM短信模块的家庭防盗火灾安全报警系统

wx供重浩:创享日记 对话框发送:627短信 获取完整论文报告(含无水印图片和代码) 本系统主要由单片机和GSM短信模块组成,借助最可靠、最成熟的GSM移动网络,以最直观的中文短消息或电话形式,直接把…

392.04亿元?台积电公布下一代工艺发展路线图,2纳米2025 年投产

台积电近日在日本举办了一次研讨会,详细介绍了N3E工艺节点的最新进展和引人注目的性能提升。此外,台积电还公布了令人期待的下一代N2工艺的发展路线图。 台积电副总裁Kevin Zhang透露,公司正以迅猛速度发展,预计2022年的投资金额将…

360测试开发技术面试题目

目录 一、java方面 二、Linux方面 三、数据库方面 四、性能测试方面 五、HTTP协议方面 六、其他 总结: 最近面试了360测试开发的职位,将面试题整理出来分享~ 一、java方面 1、java重载和重写的区别 重载overloading 多个方法、相同的名字&#x…

CF578A(直线方程 + 数学) 1700

CF578A(直线方程 数学) 1700 有一条折线 , 这个折线经过这样一组点: (0,0) - (x,x) - (2x,0) - (3x,x) - (4x,0) - ....现给出折线上一点 , 求 x 的最小值 思路:我们不妨用解方程的思想 ,先写出折线的方程&#xf…

AIGC-stable-diffusion系列1- stable-diffusion-webui

安装方法1,源码安装 参考 repo参考地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui python下载地址:https://www.python.org/downloads/release/python-3106/ git下载地址:https://git-scm.com/download/win 官…

逻辑回归模型

目录 引言 逻辑回归的理论基础 逻辑回归的实践 实战案例:银行营销预测 超越逻辑回归 引言 我们在上一篇文章中讨论了线性回归模型,探讨了如何利用它来解决连续变量预测的问题。今天,我们将转向一种新的模型——逻辑回归,它用…

TIDB v7.1 reource control资源管控特性体验贴

作者: bert 原文来源: https://tidb.net/blog/60c87e38 TIDB v7.1 reource control资源管控特性体验贴 1. 使用场景: 定义:TIDB的资源管控 (Resource Control) ,使用资源管控特性,将用户绑定到某个资源…