当前位置: 首页 > news >正文

High Performance Visual Tracking with Siamese Region Proposal Network(SiamRPN)

High Performance Visual Tracking with Siamese Region Proposal Network(SiamRPN,CVPR2018)

主要贡献:

  • 提出了SiamRPN跟踪器,首次将端到端的离线训练方式,应用到了大尺度的图像跟踪任务上
  • 在在线跟踪过程中,提出了一种局部单点检测(local shot detection)的方法,可以有效地改善传统的多尺度检测方法
  • 以160FPS的速度在VOT2015、VOT2016、VOT2017上取得了领先性能

在这里插入图片描述

该网络结构整体可以分为两部分:

  • Siamese Network:与SiamFC基本一致,分为模板分支和搜索分支,两个分支共享权值。
  • Region Proposal Network:由两个分支组成,一个是分类分支,用于区分目标和背景;另一个是回归分支,用于微调候选区域,以实现精确定位。

anchor的本质就是输出一系列不同形状和尺寸的矩形。在RPN子网络中,特征图上的每个像素点都生成k个anchor(论文中k=5),通过这些anchor框对bounding box进行回归。

在RPN子网络中,经过特征提取网络得到的模板特征图和搜索特征图都会送入分类分支和回归分支中,而后在两个分支中,模板特征图分别经过一个3×3卷积层得到相应特征图4×4×(2k×256)和4×4×(4k×256),特征通道从256增加到了2k×256和4k×256。之所以要乘以2k,是因为特征图的每个像素点都生成k个anchor,同时每个anchor可以被分类为前景或背景;同理,乘以4k,是因为每个anchor可以用4个参数(x, y, w, h)进行描述。搜索特征图也会分别经过一个3×3卷积层得到相应特征图,这里的通道数保持不变,还是256。

对于分类分支,将2k个模板图像anchor的4×4×256作为卷积核,与搜索图像的20×20×256进行卷积操作(互相关),从而生成分类响应图17×17×2k,响应图上的每个点表示一个维度为2k的向量;对于回归分支,将4k个模板图像anchor的4×4×256作为卷积核,与搜索图像的20×20×256进行卷积操作(互相关),从而生成回归响应图17×17×4k,响应图上的每个点表示一个维度为4k的向量。

在训练过程中,使用Cross Entropy Loss作为分类分支的损失函数,使用Smooth L1 Loss作为回归分支的损失函数。Smooth L1相比于L1损失函数,可以收敛的更快;相比于L2损失函数,对离群点、异常值不敏感,梯度变化相对更小,训练时不容易跑飞。

正负样本选择策略:设置高低两个阈值,大于0.6的为正样本,小于0.3的为负样本,一个pair中有64个样本,其中正样本最多16个。

Tracking as one-shot detection:

在这里插入图片描述

模板分支使用第一帧预测RPN子网络在检测分支上的卷积核的权重(以灰色表示),然后修剪模板分支,仅保留检测分支。因此,该框架被修改为局部检测网络。

推理:选择分类响应图中top K个正样本,得出对应的anchors,然后得到与之对应的回归响应图中K个坐标偏移,最后通过anchors和这些偏移值得到预测值。由此我们得到K个proposals。
我们需要从K个proposals中进行选取,文章中给出了两个策略:

  • 作者认为相邻帧目标的位移不会太大,所以只选取分类特征图中心区域的点。
  • 使用余弦窗(cosine window)和尺度变化惩罚(scale change penalty)来re-rank proposals的得分,以获得最好的一个。

在这些操作之后,将分类分数乘以时间惩罚,对top K个proposals进行重新排序,然后执行非极大值抑制(NMS)以得到最终的跟踪边界框。在选择最终边界框后,通过线性插值法更新目标大小,以保持形状的平滑变化。

http://www.lryc.cn/news/94277.html

相关文章:

  • 【Vue3 生态】VueRouter 路由核心知识点
  • SpringCloud-Nacos配置管理
  • 物流智能分拣管理
  • Qt编写视频监控系统79-四种界面导航栏的设计
  • 界面开发框架Qt新手入门教程:如何使用Calendar组件创建日历(二)
  • charles unknown 问题和手机代理设置(iOS手机)
  • 【备战秋招】每日一题:2023.03.26-阿里OD机试(第三题)-数组之和最小值
  • 网站的SEO优化:提升搜索引擎可见性的关键步骤
  • Spring Boot 中的服务注册是什么,原理,如何使用
  • spring.factories文件在Spring工程中的说明
  • 常见的自动化测试架构有哪些?
  • Revit中用自适应创建简单的瓦片族和切换构件的材质?
  • Spring Boot实战:拦截器和监听器的应用指南
  • 为什么要搭建数据仓库
  • Sql Server 获取连续日期时间
  • MIT 6.830数据库系统 -- lab two
  • React基础知识点(一)
  • 机器学习-进化算法
  • leetcode 637. 二叉树的层平均值
  • 7-数组创建函数还有哪些?【视频版】
  • webrtc源码阅读之P2P流程分析
  • vscode 快速修复(quick fix) 快捷键(Ctrl + .)被占用问题解决方法
  • 阿里云——扩展Linux系统盘
  • TypeScript ~ 掌握基本类型 ②
  • 【Zookeeper】win安装随笔
  • Unity 之 最新原生广告Ads接入 -- 助力增长游戏收益
  • ChatGPT是否可以进行逻辑推理?
  • TP6在composer包里写控制器
  • Java面试Day11
  • python生成日报