目标检测框架在目标跟踪中的应用

news2024/9/22 1:28:19

目标检测框架在目标跟踪中的应用

从SiamRPN将跟踪问题定义为one-shot detection任务之后,出现了大量将检测组件由于跟踪的研究。不过Siamese系列一个很大的问题在于其本质仍然是一个模板匹配问题,网络关注的是寻找与target相似的东西,而忽视了区分target和distractor的判别能力,这正是目标检测任务所擅长的。目标检测和目标跟踪的关键差异在于检测是一个class-level的任务,而跟踪是一个instance-level的任务(即检测只关注类间差异而不重视类内差异,跟踪需要关注每一个实例,同时跟踪的类别是不可知的)。

本篇笔记关注如何将目标检测框架应用在跟踪中,主要介绍其思想,细节部分不做过多描述,记录论文包含:

  • Bridging the Gap Between Detection and Tracking: A Unified Approach
  • GlobalTrack: A Simple and Strong Baseline for Long-term Tracking
  • Learning to Track Any Object
  • Siam R-CNN: Visual Tracking by Re-Detection
  • Tracking by Instance Detection: A Meta-Learning Approach

Bridging the Gap Between Detection and Tracking: A Unified Approach

从结构图可以很直观的看出这就是Faster RCNN的框架,作者将目标跟踪任务看成是one-shot object detection 和 few-shot instance classification 的组合。前者是一个class-level的子任务用来寻找和目标相似的候选框,后者是instance-level的任务用来区分目标和干扰物。主要有两个模块:Target-guidence module(TGM) 和 few-shot instance classifier。

TGM对目标和搜索区域的特征以及它们在主干中的相互作用进行编码,相当于让网络更关注于与目标相关的instance,后面几篇文章也用了不同的方法来实现这个目的。

TGM虽然使检测器聚焦于与目标相关的物体,但忽略了周围的背景干扰。为了弥补这一点,提出了few-shot instance classifier。 然而,直接从头开始训练耗时且容易导过拟合。因此作者通过Model-Agnostic Meta Learning (MAML)进行few-shot finetune,增强判别性进一步消除distractors。

MAML的目的是训练一组初始化参数,**通过在初始参数的基础上进行一或多步的梯度调整,来达到仅用少量数据就能快速适应新task的目的,**示意图如下:

域自适应的检测器整体训练流程如下图:

输入是三元组,包括examplar, support, query,训练分为inner and outer optimization loops。对于Inner optimization loop中,在support image上计算的loss用来微调meta-layers即detector heads的参数,然后用微调后的参数计算meta-loss其梯度用于更新outer optimization loop。具体公式可以参考原文。

在线跟踪中将之前帧的检测结果作为训练样本在线更新detector head的参数。

作者称这是第一篇将目标检测框架应用到跟踪上的通用框架,检测模型可以用Faster RCNN,SSD等,速度上SSD模型为10FPS Faster RCNN模型为3FPS。


GlobalTrack: A Simple and Strong Baseline for Long-term Tracking

这篇文章构建了一个global instance search tracker,主要思想是利用target来引导网络搜索特定instance,与上一篇的TGM模块思想类似,不过这里对在RPN阶段和分类回归阶段都加入了target信息进行引导。对应的就是Query-guided RPN 和 Query-guided RCNN。

Query-guided RPN

KaTeX parse error: Undefined control sequence: \[ at position 8: z \\in \̲[̲k,k,c\] 是query的ROI特征,KaTeX parse error: Undefined control sequence: \[ at position 8: x \\in \̲[̲h,w,c\] 是搜索图像的特征。 f _ z f\_z f_z k t i m e s k k \\times k ktimesk 0-padding的卷积将 z z z 转换为 1 t i m e s 1 1 \\times 1 1times1 的核作用于搜索区域, f _ x f\_x f_x 使用 3 t i m e s 3 3 \\times 3 3times3 1-padding的卷积。 f _ o u t f\_{out} f_out 1 t i m e s 1 t i m e s c 1 \\times 1 \\times c 1times1timesc 的卷积将通道数变回为c,这个过程不使用正则化和激活函数。

Query-guided RCNN

z z z 定义同上,KaTeX parse error: Undefined control sequence: \[ at position 11: x\_i \\in \̲[̲k,k,c\] 是提取的proposal的特征。 h _ z h\_z h_z h _ x h\_x h_x 均为 3 t i m e s 3 3 \\times 3 3times3 1-padding的卷积, h _ o u t h\_{out} h_out 1 t i m e s 1 t i m e s c 1 \\times 1 \\times c 1times1timesc 卷积。

GlobalTrack 对视频每一帧的跟踪完全不依赖相邻帧,没有累计误差使得它在长期跟踪问题中准确率保持稳定。速度为6FPS。

车牌在长期跟踪过程中消失了一段时间,当车牌再次出现的时候,其他跟踪算法就再也无法恢复跟踪了,而没有累计误差的 GlobalTrack不受前面的影响立刻跟踪到了目标。


Learning to Track Any Object

图1 (a)从基于图像的数据集学习一个通用对象先验,(b)通过计算一个封闭形式的目标和背景之间的线性判别器使其适应于一个感兴趣的特定对象(例如左上角的总线)。这允许跟踪物体通过显著的变形,而不捕获干扰物

本文重点在于将category-specific object detector 变成 category-agnostic, object-specific detector来做跟踪。想达到这个目的,需要处理如下两个关键的问题,如图1所示:

  1. 如何将 category specific prior 改为 generic objectness prior?
  2. 如何进一步的将这种 generic prior 改为 particular instance of interst?

针对问题1,作者构建了 a joint model for category-specific object detection and category-agnostic tracking。和之前类似,也是添加了目标特征的检测框架(基于 Mask R-CNN)如下图2所示 。其将目标模板作为输入,计算 feature embedding。然后该模板特征与测试图像计算相似性得到attention mask。attention mask又被用于重新加权空间特征,以检测感兴趣的物体。另外这个框架可以同时用于检测、跟踪和分割。

针对问题 2,本文计算一个线性分类器来区分第一帧的感兴趣目标和其他目标,通过最小二乘方法得到闭式解从而可以学习到一个更关注感兴趣instance的鲁棒特征。下图3通过一个例子说明,左下是直接用feature embedding计算的attention map,右下是用线性分类器计算的attention map,显然右下效果更好。

最后运行速度为7FPS。


Siam R-CNN: Visual Tracking by Re-Detection

这个就是用重检测的思想做跟踪,也是基于RCNN框架的,同时使用Tracklet Dynamic Programming Algorithm去跟踪所有潜在的目标。

具体解读见前一篇笔记

Siam R-CNN: Visual Tracking by Re-Detection | CV home (kongbia.github.io)


Tracking by Instance Detection: A Meta-Learning Approach

同样是域自适应方法将检测器转化成跟踪器,此篇更像是第一篇Bridging the Gap Between Detection and Tracking: A Unified Approach的进阶,不同的是本文没有额外添加模板引导分支,而是直接用标准的检测器通过元学习的方式做域自适应。避免了冗余结构使得速度大幅提升,达到40FPS。另外就是训练的时候加入了很多来自MAML++喝MetaSGD的技巧,效果更好。


总结

这几篇文章的一个共同思路都是融合了Siamese架构和目标检测框架,将目标实例信息以各种形式加入待检测图像中,从而将class-level的通用检测转变成instance-level的实例检测(跟踪)。借助目标检测对尺度,形变等复杂条件的优越性来解决跟踪中的问题,同时将跟踪转变成one-shot的检测任务也避免了更新带来的漂移(第一篇里面使用了MAML进行更新,主要原因猜测是单纯往RPN中融合目标信息还不够work,像globaltracker在head上也添加了instance,而第三篇则是构建一个分类器增强鲁棒性)。当然引入检测框架带来的计算开销也是很大的,最后一种方法避免了额外的模板分支相当于跳出了Siamese框架,给实时带来了可能。
更多Ai资讯:公主号AiCharm
在这里插入图片描述

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

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

相关文章

HCIA之数据发送过程

数据发送过程1、同广播域2、跨广播域(需要将数据发送给网关,这通过路由器发包):总结1、同广播域 假设PC1要与PC2通讯; PC1不知道PC2的MAC地址,先发送ARP找到PC2的MAC地址; PC1知道了PC2的MAC地…

使用Python Seaborn绘制热力图(heatmap)的时候怎么改变配色

看到最近有些论文中会对Transformer encoder的attention weights进行可视化,通常会使用heatmap,我参考了一些博客,感觉已经总结得很详细了,例如这篇:python绘制热度图(heatmap)_黄思博呀的博客-CSDN博客_python heatma…

pm2:ecosystem.config.js

一、理解ecosystem.config.js1.1、字面理解:pm2生态系统配置文件。1.2、个人理解:pm2配置文件。类似于vite.config.ts、nuxt.config.ts。1.3、理解pm2:pm2 是一个带有负载均衡功能的Node应用的进程管理器。1.4、pm2的能力:1.4.1、…

【React】React入门(一)--React的创建、Jsx语法与组件以及状态(state)

🎀个人主页:努力学习前端知识的小羊 感谢你们的支持:收藏🎄 点赞🍬 加关注🪐 文章目录React简介react的特性虚拟Dom传统dom更新虚拟Domcreate-react-appJSX语法与组件jsx语法class组件函数组件组件嵌套组件…

基于Springboot搭建java项目(三十六)—— 服务监控工具WGCLOUD

服务监控工具WGCLOUD 一、服务监控 ​ “要想晚上睡的好,服务监控少不了”,服务器监控是应用程序开发中必不可少的一部分,做好服务监控有以下几个优点: 能够及时发现应用程序的漏洞能够定位到程序运行的瓶颈,查看程…

一篇搞懂SQL

前言 根据廖雪峰老师的教程,整理出一篇文章 一,为什么需要数据库? 小量的数据可以使用excel或者cvs存储,但是大批量的数据,这些都无法满足需求。如何管理这些数据就成了大问题。 所以,数据库作为一种专门…

机器视觉_HALCON_HDevelop用户指南_5.HDevelop过程(打磨ing)

文章目录五、HDevelop过程5.1. 过程类型5.2. 文件类型5.2.1. HDevelop程序5.2.2. 过程文件5.2.3. 库5.3. 过程作用域5.4. 过程位置5.5. 过程解析5.6. 受保护的过程5.7. 过程文档5.8. 即时编译🔺五、HDevelop过程 Procedure: 在HDevelop文档中&#xff08…

【PyTorch】ImageNet数据集的使用和miniImageNet的构建

【PyTorch】ImageNet的使用和miniImageNet的构建1. ImageNet下载和简介1.1 下载地址1.2 初步处理1.3 devkit介绍2. miniImageNet2.1 miniImageNet的划分3. 使用ImageFolder构建数据集类3.1 重写DataFolder中的方法3.2 BatchSampler实现episode采样3.3 batch可视化1. ImageNet下…

Oracle数据库入门大全

oracle数据库 Oracle 数据库、实例、用户、表空间、表之间的关系 数据库 数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。 通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理…

let/const相关内容(五)

1.块级作用域的应用 (一)if-switch-for代码中的应用 ① if语句的代码就是块级作用域 // if语句的代码块是块级作用域 if (true) {var foo "foo"let bar "bar" }console.log(foo) console.log(bar);② switch语句的代码也是块级…

SQL面试题62--一种准确求近30天消费金额的方法

1 需求现在test表有三个字段 用户: user_id 日期:dt 订单金额 price,计算出一个消费者历史上“首次”在近30天周期内累计消费金额达到1W的日期2 分析(1)数据准备create table test as select a as user_id,7000 as pri…

数据分析很火吗?千万不要轻易尝试!

据说数据分析现在很火?“现在是数字化时代,工作生活都是与互联网交织在一起,我们的生活习惯、兴趣爱好等都会演变成各种不同的数据被互联网收集存储(云存储)。作为个人而言这些数据单看的话是没有什么价值和意义的&…

安全卫“视”!昂视助力极片卷绕对齐度检测

价格大涨、产能扩充、加速融资、加快出海、与车企深度绑定,动力电池产业在2022年表现出了极高的市场活力,在疫情的大环境之下,其发展势头是业内外公认的“高亢”。全国乘用车市场信息联席会预计,2023年新能源乘用车销量有望达850万…

SCI论文阅读-深度学习在测井气体红外光谱定量分析中的应用

期刊: Applied Optics中科院最新分区(2022年12月最新版):4区影响因子(2021-2022):1.905第一作者:宋丽梅通讯作者:Yangang Yang原文链接:Application of deep …

一文弄懂什么是对比学习(Contrastive Learning)

本文是自己学习对比学习的总结,如有问题,欢迎批评指正。 前言 有的paper将对比学习称为自监督学习(Self-supervised learning),有的将其称为无监督学习(Unsupervised Learning , UL)。自监督学…

spring事务执行流程分析_6(事务的真正执行)

代理对象的执行 执行案例中的bookService.addUser(user);会调用到JdkDynamicAopProxy#invoke方法 JdkDynamicAopProxy#invoke public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Object oldProxy null;boolean setProxyContext false;…

2023年黑马Java入门到精通教程--编程思维训练

编程案例分享 编程思维 使用所学的Java技术解决问题的思维方式和编写代码实现出来的能力。 关于提升编程思维和编程能力的建议 编程思维和编程能力不是一朝一夕形成的,需要时间的沉淀和大量练习。 前期:先模仿,后期:再创新。…

为游戏玩家提供卓越价值,英特尔锐炫游戏性能大幅提升!

2月1日晚英特尔推出锐炫显卡新版驱动(4086),相较此前驱动(3490)能够为DirectX 9游戏带来40%以上的平均性能提升。同时英特尔还宣布,现在起锐炫A750限量版显卡的全球价格将调整为249美元,此前上市价格为289美元起。 在英特尔发布锐炫显卡后&…

HTML5+CSS3(五)-全面详解(学习总结---从入门到深化)

目录 容器元素&#xff08;div&#xff09; 学习效果反馈 HTML5新增布局标签 学习效果反馈 视频和音频 视频 音频 source 学习效果反馈 HTML5新增标签 figure details mark meter datalist canvas 学习效果反馈 容器元素&#xff08;div&#xff09; <!DOCTYPE h…

k8s核心资源存储对象

一、简介 和docker类似&#xff0c;k8s也需要存储数据&#xff0c;比如redis和mysql都需要外部存储对象&#xff0c;要不然重新拉起pod&#xff0c;在其他机器上数据会消失。 二、NFS共享存储 NFS这个文件系统提供了远程挂载共享数据&#xff0c;我们可以利用这个文件系统来…