智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamRPN++(2019)

3.4.1 模型结构

SiamRPN++网络结构如下图所示,虚线的两边都是网络结构图,虚线左侧是特征提取网络结构,右侧是RPN结构图。其实SiamRPN++的网络结构与SiamRPN网络结构十分相似,而SiamRPN++就是在SiamRPN的基础上加入许多的创新点。

SiamRPN++网络以resNet50为backbone,进行特征提取。原始的ResNet主要应用于图像分类和识别任务,对于空间信息不敏感,而在跟踪任务中,空间信息对于目标的准确定位至关重要,所以要在跟踪任务中使用,需要对ResNet进行改进。原始ResNet具有32像素的尺度变化,不适合于稠密孪生网络的预测。如下图所示,通过修改conv4和conv5块以获得单位空间尺度变化,将最后两个块的尺度变化从16和32减少到8倍的尺度变化,并通过空洞卷积增加其感受域。在每个块输出端附加一个额外的1×1卷积层,以将输出通道减少到256。因为每一层padding操作被保留,模板图片处理得到的特征尺寸增加15X15,所以通过裁剪选取中间部分7X7大小的特征来作为模板图片特征。使用互相关层和全卷积层的组合来组合一个head模块来计算分类(用S表示)和bbox回归器(用B表示)。

3.4.2 模型创新

  • 针对平移不变性的改进

严格的平移不变性只存在于无填充网络中,如AlexNet。以前基于孪生的网络设计为浅层网络,以满足这一限制。然而,如果所使用的网络被ResNet或MobileNet等现代网络所取代,填充将不可避免地使网络变得更深,从而破坏了严格的平移不变性限制,不能保证物体最后的heatmap集中于中心。

当把正样本都放在图像中心时,网络只会对图像中心产生响应;如果把正样本均匀分布到某个范围内,而不是一直在中心时(所谓的范围即是指距离中心点一定距离,该距离为shift;正样本在这个范围内是均匀分布的),随着shift的不断增大,这种现象能够逐渐得到缓解。

  • 分层聚合

在以前仅使用像AlexNet这样的浅层网络,多层特性不能提供非常不同的作用。然而,考虑到感受野的变化,ResNet中的不同层更有意义。浅层的特征主要集中在低层次的信息上,如颜色、形状等,对于定位是必不可少的,而缺乏语义信息;深层的特征具有丰富的语义信息,在某些挑战场景(如运动模糊、形变等)中是有益的。使用这种丰富的层次信息有助于跟踪,从最后三个残差块中提取的多层特征,以进行分层聚合。将这些输出中分类featuremap称为S_3S​3​​,S_4S​4​​和S_5S​5​​,回归featuremap称为B_3B​3​​,B_4B​4​​和B_5B​5​​ 。conv3、conv4、conv5的输出分别输入三个SiamRPN模块。由于对resnet网络的改动,三个RPN模块的输出尺寸具有相同的空间分辨率,因此直接对RPN输出采用加权和。

  • 深层互相关改进

互相关计算模块是一个用来整合两个分支信息的核心操作。使用Depthwise Cross Correlation来实现更有效的信息关联,它具有更少的参数

Cross-Correlation用于SiamFC中,模版特征在搜索区域上按照滑窗的方式获取不同位置的响应值,最终获得一个一维的响应映射图。

Up-Channel Cross Correlation用于SiamRPN中,和Cross Correlation操作不同的是在做correlation操作之前多了两个卷积层,通道个数分别为256和256x2k,其中k表示每一个grid上面的anchor个数。其中一个用来提升通道数,而另一个则保持不变。之后通过卷积的方式,得到最终的输出。通过控制升维的卷积来实现最终输出特征图的通道数。

Depthwise Cross Correlation和UpChannel一样,深度互相关层预测模板和搜索图像之间的多通道相关性特征,模板图像经过卷积层后并不像SiamRPN那样将通道数增加2k倍,而是保持不变,同时搜索图像也与模板图像保持一致,两者逐通道相互卷积,之后接一个1×1的卷积层,再改变通道数,这样在保持精度的同时减少了参数量。

SiamRPN++很大程度上缓解了padding带来的平移不变性的破坏,从而在孪生网络中引入了深层的网络,从而带来了巨幅的准确率提升。

3.4.3 损失函数

损失函数与SiamRPN相同,不在赘述。

3.4.4 模型训练

SiamRPN++是端到端的训练模型,用SGD方法对网络进行训练。

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

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

相关文章

lanmp之二 (奇葩问题)

ps:该篇是接 lanmp —— 动静分离 lanmp —— 奇葩问题 话说,在 搭建 bbs.abc.com (discuz论坛)的 时候。。。。 1、说明:web机器上以前已经有一个 discuz 旧论坛 要做数据迁移(改域名/拷贝数据/迁移网站&a…

[已解决]user is not in the sudoers file. This incident will be reported.(简单不容易出错的方式)

linux Ubuntu中报错,XXX is not in the sudoers file. This incident will be reported. 今天在学习的时候,不小心把自己的用户sudo玩坏了(Broken sudo),于是上谷歌搜索XXX is not in the sudoers file. This inciden…

智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamMask(2019)

与普通的视频跟踪网络不同的是,SiamMask可以同时完成视频跟踪和实例级分割的任务。如下图所示,与传统的对象跟踪器一样,依赖于一个简单的边界框初始化(蓝色)并在线操作。与ECO(红色)等最先进的跟…

编译器的大小端模式

大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放 在高地址中。 小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放 在低地…

【原】jQuery编写插件

分享一下编写设置和获取颜色的插件,首先我将插件的名字命名为jquery.color.js。该插件用来实现以下两个功能1.设置元素的颜色。2.获取元素的颜色。 先在搭建好如下编写插件的框架: ;(function($){//这里编写插件代码 })(jQuery); 我这里采用jQuery.fn.ex…

数据结构链表之单向链表:Python3 实现单向链表——1

Python3 实现单向链表 链表定义与简介 定义:链表与顺序表(Python中列表)性质相反,链表是物理单元上非顺序的、非连续的,在逻辑顺序上其数据元素是通过指针实现的,组成链表的每一个元素也可以叫做链表的节点,节点可以…

C语言(贪心法)

C语言有这样一个规则,每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符地读入,如果字条可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组…

数据结构链表之双向链表:Python3 实现双向链表——2

Python3 实现双向链表 双向链表 定义:双向链表是链表中的一种,双向链表也叫双链表,它由多个节点组成,每个节点由一个数据域和两个指针域组成,一个指针指向前驱元素,一个指向后继元素 双向链表一般用来构…

linux驱动之ioctl

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,...); /* fd:文件描述符 cmd:控制命令 ...:可选参数:插入*…

数据结构链表之单链表的快慢指针——3

单链表之快慢指针 单链表的快慢指针简介 快慢指针指链表中定义两个指针,两个指针的移动速度一快一慢,一般快指针移动步长为慢指针的两倍 快慢指针适合解决的几个典型问题 中间值问题单向链表是否有环问题有环链表的入口问题 先定义一个简单的节点 …

【Pytorch神经网络基础理论篇】 04 线性代数

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

Bootstrap实现弹出框和提示框效果代码

一、Bootstrap弹出框使用过JQuery UI应该知道,它里面有一个dialog的弹出框组件,功能也很丰富。与jQuery UI的dialog类似,Bootstrap里面也内置了弹出框组件。打开bootstrap 文档可以看到它的dialog是直接嵌入到bootstrap.js和bootstrap.css里面…

数据结构链表之循环链表——4

循环链表与约瑟夫问题 循环链表定义 定义:循环链表的定义十分简单,只需使一条单链表的尾部结点指向头结点,即可完成循环链表 循环链表的构建 class Node:def __init__(self, item):self.item itemself.next Nonefirst Node(aa) secon…

【Pytorch神经网络基础理论篇】 05 矩阵计算

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

统计iOS项目的总代码行数的方法

1、打开终端, 2、用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h&quo…

【Pytorch神经网络基础理论篇】 06 自动求导+导数与微分

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

数据结构链表之栈,Python3简单实现——5

数据结构链表之栈 栈的概述 定义:栈是一种基于先进后出(FILO)的数据结构,是一种只能在一段进行插入和删除操作的特殊线性表。引入名词:将数据存入栈的动作称为压栈,将数据取出栈的动作称为弹栈栈的特点:先进入栈的元…

【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

CI Weekly #11 | 微服务场景下的自动化测试与持续部署

又一周过去了,最近我们的工程师正在搞一个“大事情” ——「flow.ci 配置文件」,稍微剧透一下,这个功能预计会在春节前上线。详情请大家关注 flow.ci Changelog 或其他官方通知:) 本期 CI Weekly 收录了的CI/CD实践、微服务自动化测试与持续部…

数据结构链表之栈——解决括号匹配问题和逆波兰表达式求值问题——6

括号匹配问题和逆波兰表达式求值问题 基于上一节已经使用python代码对栈进行了简单的实现,这一节我们在其基础上解决两个常见的问题 案例 括号匹配问题(点我直接到代码实现)逆波兰表达式求值问题(点我直接到代码实现) 括号匹配问题 在给定的字符串中&#xff0…