Siam R-CNN: 通过重检测进行视觉跟踪

news2024/11/18 7:31:54

Siam R-CNN: 通过重检测进行视觉跟踪

  • Siam R-CNN: Visual Tracking by Re-Detection
  • Contributions
  • Method
  • Siam RCNN
  • Video Hard Example Mining
  • Tracklet Dynamic Programming Algorithm
  • 实验
  • 总结

更多Ai资讯:公主号AiCharm
在这里插入图片描述

Siam R-CNN: Visual Tracking by Re-Detection

Siam R-CNN是亚琛工业大学&牛津大学联合推出的,核心是通过重检测进行视觉跟踪,并构建了基于轨迹的动态规划算法,建模被跟踪对象和潜在干扰对象的完整历史。效率方面,该方法可以在 ResNet-101 上达到 4.7 FPS,在 ResNet-50 上达到 15 FPS 。

论文:https://arxiv.org/abs/1911.12836
代码:https://github.com/SJTU-DL-lab/SiamRCNN

Contributions

  1. 将重检测思想用于跟踪。通过判断建议区域(region proposal)是否与模板区域(template region)相同,重检测图像中任何位置的模板对象,并对该对象的边界框进行回归,这种方法对目标大小和长宽比变化比较鲁棒;
  2. 提出一种新颖的 hard example mining 方法,专门针对困难干扰物训练;
  3. 提出 Tracklet Dynamic Programming Algorithm (TDPA),可以同时跟踪所有潜在的目标,包括干扰物。通过重检测前一帧所有目标候选框,并将这些候选框随时间分组到tracklets(短目标轨迹)中。然后利用动态规划的思想,根据视频中所有目标和干扰物tracklets的完整历史选择当前时间步长的最佳对象。Siam R-CNN通过明确地建模所有潜在对象的运动和交互作用,并将检测到的相似信息汇集到tracklets中,能够有效地进行长时跟踪,同时抵抗跟踪器漂移,在物体消失后可以立即重检测目标。

Method

上图为Siam RCNN整体框架,作者设计了一个Siamese two-stage detection network作为跟踪器。第一阶段是RPN,第二阶段通过将感兴趣区域(RoI)的特征和参考特征拼接起来,包括以第一帧的GT作为参考和以前一帧的检测结果作为参考的两个redetction head。最后构建Tracklet Dynamic Programming Algorithm (TDPA)去跟踪所有潜在目标。

接下来按照论文结构对每一部分进行说明:

Siam RCNN

本小节主要是讲如何将 Faster RCNN 的那一套用于重检测,核心是将固定类别的detection head换成本文的re-detection head。re-detection head的输出只有两类,即候选区域是否是参考对象目标。训练时backbone和RPN的参数冻结,只有re-detection head参与训练。

Video Hard Example Mining

在传统 Faster RCNN 训练中,负样本是从RPN得到的区域中采样得到的。但是,在许多图像中,仅有少量负样本。为了最大化 re-detection head 的判别能力,作者认为需要在难负样本(hard negative samples)上训练。并且与检测中的通用难样本不同,这里的难样本是从其他视频中检索出来的与参考目标类似的样本。

  • Embedding Network 最直接的方法就是从其他视频中寻找与当前对象属于同一个类别的对象作为难负样本。然而,物体的类别标签并不总是可靠,一些同类的物体很容易区分,不同类别的物体反而可能是理想的难负样本。所以,本文受到行人重识别的启发,提出利用 embedding network 的方法,将 GT Box 中的物体映射为 embedding vector。这个网络来源于 PReMVOS,用 batch-hard triplet loss 来训练,期望达到的效果是消除单个对象实例之间的歧义,例如,两个不同的人在嵌入空间中应该离得很远,而同一个人在不同帧中的向量距离应该很近。

  • Index Structure 接下来为近邻 queries 构建一个有效的索引结构,将其用于寻找所需要跟踪的物体在 embedding space 中的最近邻。图 3 展示了一些检索得到的难负样本。

  • Training Procedure 训练时在其他视频上实时检索当前视频帧的难负样本过于耗时。本文预先对训练数据的每一个 GT Box 都提取其 RoI-aligned features。在训练的每一步,随机选择一个 video 和 object,然后随机的选择一个 reference 和 target frame。在此之后,用上一节提到的 indexing structure 来检索 10000 个最近邻的 reference box,从中选择出 100 个 negative training examples。

Tracklet Dynamic Programming Algorithm


本文所提出的 片段动态规划算法(Tracklet Dynamic Programming Algorithm)隐式地跟踪感兴趣目标和潜在干扰物,从而持续抑制干扰对象。为此,TDPA 维护一组 tracklets,即:short sequences of detections。然后利用动态规划的评分算法为模板对象在第一帧和当前帧之间选择最可能的 tracklets序列。每个detection都定义为:a bounding box, a re-dection score 和 RoI-aligned features。此外,每个 detection 都是 tracklet 的组成部分。tracklet有一个开始时间和一个结束时间,并由一组 detection 定义,从开始到结束时间的每一个时间步对应一个detection ,也就是说,在tracklet中不允许有空隙。

  • Tracklet Building

Line 2 提取backbone特征

Line 3 RPN得到感兴趣区域,为了补偿潜在的假负例影响,加入上一帧的结果;

Line 4 将Roi和gt送入redetection head得到第一帧的重检测结果 $ det_{S_t} $(包括相似性得分和目标框);

Line 5-6 将当前帧结果 $ det_{S_t} $ 与上一帧结果 $ det_{S_{t-1}} $ 送入redetection head计算每一对检测结果的相似性得分(为了减少计算,仅把当前帧与上一帧框的归一化空间距离小于 r 时才送入head计算,否则相似性得分设为负无穷。如图2,上一帧有3个结果,当前帧有2个结果,理论上两两之间应该计算6个相似得分,但通过框的空间距离约束,实际参与相似得分计算的只有4组);

Line 7-20 扩展tracklets。遍历当前帧的检测结果 d _ t i n d e t _ S _ t d\_t \\in det\_{S\_t} d_tindet_S_t 加入tracklet需要满足:

  1. 当前结果 d _ t d\_t d_t 与上一帧结果 h a t d _ t − 1 \\hat{d} \_ {t-1} hatd_t1 的最大相似性得分 s _ 1 s\_{1} s_1 大于阈值 a l p h a \\alpha alpha
  2. 当前帧没有其他检测结果与 $ \hat{d} _ {t-1} $ 具有同样高的相似性,即当前帧除 d _ t d\_t d_t 以外的结果与 $ \hat{d} _ {t-1} $ 的相似性要满足 s _ 2 l e q s _ 1 − b e t a s\_{2} \\leq s\_{1}-\\beta s_2leqs_1beta
  3. 上一帧没有其他检测结果与当前的 d _ t d\_t d_t 具有同样高的相似性,即上一帧除 $ \hat{d} _ {t-1} $ 以外的结果与 d _ t d\_t d_t 的相似性要满足 s _ 3 l e q s _ 1 − b e t a s\_{3} \\leq s\_{1}-\\beta s_3leqs_1beta
  • Scoring

轨迹 A = ( a _ 1 , … , a _ N ) A=(a\_1,…,a\_N) A=(a_1,,a_N) 是一个包含N个不重复tracklets的序列,其中 e n d ( a _ i ) < s t a r t ( a _ i + 1 ) , f o r a l l i ∈ 1 , … , N − 1 end(a\_i) < start(a\_{i+1}), \\forall i∈\\{1,…,N-1\\} end(a_i)<start(a_i+1),foralli1,,N1 ,即后一个tracklet的开始帧一定比前一个tracklet的结束帧大。一个轨迹的总分由衡量单个轨迹质量的一元分数 unuary 和惩罚轨迹之间空间距离的位置分数 loc_score 组成。

其中 ff_score 表示tracklet a _ i a\_{i} a_i 在 t 时刻以第一帧gt为参考的重检测分数;

而 ff_tracklet_score 表示 a _ i a\_{i} a_i 以gt所在tracklet的最后一个检测结果为参考的重检测分数(因为一个tracklet的所有检测结果都有很高概率与这个tracklet的第一个检测结果相同,否则这个tracklet就会终止,所以gt所在的tracklet的最后一个检测结果也有很大概率是正确的);

Location score是计算前一个tracklet最后一个检测结果和后一个tracklet的第一个检测结果的bbox之间的L1距离,是负的,作为惩罚项,越小越好。

  • Online Dynamic Programming

这一节介绍如何高效找到具有最大总得分的tracklets序列。

定义 $ \theta[a]$ 表示从第一个tracklet开始到第a个tracklet的总得分。由于一旦tracklet不被扩展,就会终止。因此当新的一帧到来时,只有被扩展或者新建的tracklet需要重新计算score。

首先设置 $ \theta[a_{ff}]=0 , , a_{ff}$ 是first-frame tracklet(即包含gt的tracklet),当每一个tracklet a被创建或需要更新时

在更新了当前帧的 $ \theta$ 后,选择最大动态规划得分的tracklet $ \hat{a}=arg max_{a} \theta[a]$;如果被选中的tracklet在当前帧中没有检测结果,则算法会指出目标不存在。由于benchmarks要求每帧都输出结果,所以我们用选定的tracklet最近一次的检测的box,并且将其得分置0。

实验

实验做的很充分,在目前主流数据集中都有结果。在short-term的测试中,大部分达到SOTA水平或者比SOTA稍低一些,在long-term的测试效果则非常好,基本吊打第二名。其中VOT的测试因为其自带一个重启,会与算法本身的重启冲突,所以作者专门做了一个short-term版本的用于VOT测试。

消融实验比较了 使用hard example mining的效果,TPDA与直接使用每一帧最大的重检测得分(Argmax)的对比,和专门用于测试VOT2018的short-term版本;以及改变backbone和ROI的参数量来提速的验证。

总结

本文最大的贡献在于将两阶段结构和重检测用于跟踪,设计了一套适合长时跟踪的算法。两阶段结构在SPM-Tracker已经证明了其对于鲁棒性和判别性之间有较好的平衡;而重检测这类检索的方法同样对于目标变化的适应性更强。整套算法做的非常完善,美中不足在于速度太慢。

SiamRCNN很长一段时间都作为各类跟踪数据集的天花板,直到CVPR2021各类transform架构的跟踪算法出现后才被超过。

更多Ai资讯:公主号AiCharm
在这里插入图片描述

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

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

相关文章

DMETL5单机版安装使用

DMETL5安装使用 1.创建dm8数据库 使用dm数据库配置助手dbca创建数据库 2.根据dmetl在线文档创建HOTEL模式 DROP USER IF EXISTS HOTEL CASCADE; DROP TABLESPACE IF EXISTS HOTEL; CREATE TABLESPACE HOTEL DATAFILE HOTEL.DBF SIZE 150 AUTOEXTEND ON NEXT 10; CREATE USE…

基于springboot的仓库管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

增鑫科技更新招股书,冲刺深交所上市,正邦集团是其主要股东

近日&#xff0c;江西增鑫科技股份有限公司&#xff08;下称“增鑫科技”&#xff09;预披露更新招股书&#xff0c;准备在深圳证券交易所主板上市。据贝多财经了解&#xff0c;增鑫科技曾于2022年7月1日递交招股书&#xff0c;此次更新了截至2022年6月30日的财务数据等信息。 …

权威报告!免费解锁IBM最新《2022-2023年Salesforce状态报告》

前不久&#xff0c;IBM发布了2022-2023年Salesforce状态报告&#xff0c;揭示了一些热门趋势&#xff0c;报告显示Salesforce仍然是许多企业客户成功战略的重要力量。 Salesforce状态报告是一项全球性的、数据驱动的调查&#xff0c;主要调查业务战略、投资和发展&#xff0c;同…

Linux常用命令——rpm命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) rpm RPM软件包的管理工具 补充说明 rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序&#xff0c;由于它遵循GPL规则且功能强大方便&#xff0c;因而广受欢迎。逐…

5.2 晶体管的高频等效模型

从晶体管的物理结构出发&#xff0c;考虑发射结和集电结电容的影响&#xff0c;就可以得到在高频信号作用下的物理模型&#xff0c;称为混合 π\pmb{π}π 模型。由于晶体管的混合 πππ 模型与 hhh 参数等效模型在低频信号作用下具有一致性&#xff0c;因此&#xff0c;可用 …

Unity Native Plugin C#和C++互相调用

官方链接 1.DLL的方式&#xff1a; C代码&#xff1a;编译成DLL&#xff0c;导入Unity #pragma once #include <map> #include <string>//导出宏定义 #define _DllExport _declspec(dllexport)//函数指针 typedef void (*NativeCallback)(const char*);extern &…

【28】C语言 | 关于指针练习(2)

目录 10、下列关于二维数组输出 11、下列关输出 12、下列代码输出什么 13、下列代码输出什么 14、下列代码输出什么 15、下列代码输出什么 16、下列代码输出什么 17、下列代码输出什么 18、杨氏矩阵 19、左旋转两个字符 10、下列关于二维数组输出 int main() {int …

文献阅读:Improving Language Understanding by Generative Pre-Training

文献阅读&#xff1a;Improving Language Understanding by Generative Pre-Training 1. 文章简介2. 模型介绍3. 实验考察 1. 训练数据2. 实验结果3. 消解实验 4. 总结 & 思考 文献链接&#xff1a;https://cdn.openai.com/research-covers/language-unsupervised/languag…

P1464 Function————C++

文章目录题目Function题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1解题思路Code运行结果题目 Function 题目描述 对于一个递归函数 w(a,b,c)w(a,b,c)w(a,b,c) 如果 a≤0a \le 0a≤0 或 b≤0b \le 0b≤0 或 c≤0c \le 0c≤0 就返回值$ 1$。如果 a>20a>20a&…

【Java】-【并发】

文章目录堆和方法区中的数据是可以被共享的堆中的数据是被栈中的变量所持用的&#xff0c;栈是线程隔离的&#xff0c;每个线程私有一个栈&#xff0c;所以栈中的数据不共享调用a方法时&#xff0c;jvm会给a方法创建一块内存区&#xff0c;让其入栈&#xff0c;这块区域被称为a…

linux(信号量)

信号量几个基本概念临界资源临界区原子性互斥信号量后台进程前台进程信号储存信号处理信号(信号捕捉)发送信号1、键盘产生&#xff1a;2、系统调用接口发送信号3、由软件条件产生信号4、硬件异常发送信号内核中的信号量**信号量在内核中的数据结构****信号集操作函数**信号的检…

YOLOv7 Falsk Web 监测平台 | YOLOv7 Falsk Web 部署

YOLOv7 Falsk Web 监测平台图片效果展示 YOLOv7 Falsk Web 监测平台视频效果展示 YOLOv7 Flask Web 检测平台 什么是Flask? 简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开…

电子技术——MOS管的小信号模型

电子技术——MOS管的小信号模型 在上一节&#xff0c;我们已经学习过了MOS管的基本线性放大原理&#xff0c;本节我们继续深入MOS管的小信号放大&#xff0c;建立MOS管的小信号模型。 我们本节继续使用上节的电路&#xff0c;如下图所示&#xff1a; DC偏置点 根据上节的知识…

2.单例模式,工厂模式,建造者模式,原型模式

单例模式 单例模式的优点&#xff1a; 处理资源访问冲突表示全局唯一类 实现单例的关键&#xff1a; 构造函数需要是 private 访问权限的&#xff0c;这样才能避免外部通过 new 创建实例&#xff1b;考虑对象创建时的线程安全问题&#xff1b;考虑是否支持延迟加载&#xff1b…

Deformable DETR TBD范式的不二选择

TBD范式检测和跟踪是不分家的。当前,性能较优的目标检测方法大都基于Transformer来做,CNN在目标检测的表现逐渐走低。DETR是基于Transformer的目标检测开山作,其解决了霸榜的yolo系列一些令人讨厌的事情,不需要前处理和后处理,做到了真正意义上的end to end: 前处理:Anc…

测试做得好,犯错少不了【30个最容易犯的错误】谨记

最近跟一些刚刚进入软件测试行业的朋友去交流&#xff0c;发现了一个有趣的现象&#xff0c;就是对于这个行业的很多问题的认识都是一致的片面&#xff0c;当然也可以理解为误区。自己利用一点时间&#xff0c;把他们对于这个行业的认识误区都罗列出来&#xff0c;然后结合自己…

Centos7搭建Hadoop集群(V3.3.4)

Centos7搭建Hadoop集群V3.3.4一、准备工作1、配置hostname2、hosts映射3、关闭防火墙4、同步时间5、关闭selinux6、配置ssh免密登陆7、重启二、安装所需环境1、jdk安装2、hadoop安装三、修改配置hadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers四…

web测试1:在ubuntu中运行boa

参考文档&#xff1a; https://blog.csdn.net/feit2417/article/details/84777523 1.下载boa源码 Boa Webserver主页&#xff1a;Boa Webserver 下载链接&#xff1a;http://www.boa.org/boa-0.94.13.tar.gz 下载后&#xff0c;解压 tar zxvf boa-0.94.13.tar.gz。 文件列表…

Mysql-query优化之explainProfiling

1、explain 要对执行计划有个比较好的理解&#xff0c;需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分&#xff0c;分别是 应用层、逻辑层、物理层&#xff0c;不只是MySQL &#xff0c;其他大多数数据库产品都是按这种架构来进行划分的…