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

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

3.4.1 模型结构


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


ee76640c7487440d82b9b7d2234ae23b.png


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的不断增大,这种现象能够逐渐得到缓解。


212dfcc9feab42378b1b6e9cd94fed60.png


  • 分层聚合


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


4388755e41c549af84488343f0110ead.png


  • 深层互相关改进


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


7a3f3b970dba4fd9a631f1dbbbb90cc6.png


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方法对网络进行训练。


d8046df6eb184818bd8119cd6182efaf.png

目录
相关文章
|
搜索推荐 JavaScript Java
计算机毕业设计 图书管理系统 Vue+SpringBoot+MySQL(一)
计算机毕业设计 图书管理系统 Vue+SpringBoot+MySQL
654 2
|
算法 编译器
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
2030 1
|
开发框架 Java 中间件
.NET/.NET Core相关面试题
.NET/.NET Core相关面试题
373 0
|
11月前
|
JavaScript 前端开发 Java
课时12:编译型语言和解释型语言
今天为大家简单介绍计算机高级语言,如C、C++、JAVA、JavaScript、Python等,指出任何语言被计算机执行前都需转换为机器码。根据转换时机不同,高级语言分为编译型语言和解释型语言,今天的内容主要分为以下三个部分。 1.编译语言 2.解释型语言 3.两者的优缺点
421 1
|
关系型数据库 芯片
ovp过压过流保护芯片,大电流限流,高压,选型大齐全
本文介绍了过压保护(OVP)和过流限流保护(OCP)的基本概念及其应用场景,如蓝牙耳机、充电宝等。文中推荐了几款平芯微的OVP/OCP保护芯片,包括单OVP芯片PW1600、W2609A、PW2605,以及OVP和OCP二合一的PW1605、PW1558A、PW1515等,详细列出了各芯片的主要特点和适用范围。
ovp过压过流保护芯片,大电流限流,高压,选型大齐全
|
运维 持续交付 开发工具
基础设施即代码(IaC):自动化基础设施管理的未来
基础设施即代码(IaC):自动化基础设施管理的未来
577 0
【qt】纯代码界面设计
【qt】纯代码界面设计
537 2
|
负载均衡 前端开发 Java
Feign 踩坑指南 (接口返回泛型设置属性为null)
Feign 简介 Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。
2767 0
Feign 踩坑指南 (接口返回泛型设置属性为null)
|
Linux Python
Linux离线安装Python依赖包
本文介绍了在Linux环境下离线安装Python依赖包的方法,包括从Python依赖包检索网站下载所需依赖包的压缩文件,上传到Linux服务器,然后通过解压、编译和安装步骤完成依赖包的安装。
1272 0
|
监控 程序员 芯片
STM32 你不知道的看门狗细节
你知道什么是看门狗吗?看门狗,实际上可以说就是一个简单的定时器功能,而这个定时器有一个输出端,可以输出复位信号。
1541 88
STM32 你不知道的看门狗细节