单目标追踪——【相关滤波】C-COT原理与ECO基于C-COT的改进

news2024/12/23 13:36:29

目录

  • C-COT:Continuous Convolution Operator Tracker
    • 文章侧重点
    • 连续卷积算子
    • 目标追踪框架
      • 初始化过滤器:
      • 追踪流程
  • ECO
    • 文章侧重点
      • 因式卷积因子
      • 生成采样空间模型
      • 模型更新策略

论文链接:C-COT:Beyond Correlation Filters: Learning Continuous
Convolution Operators for Visual Tracking + ECO: Efficient Convolution Operators for Tracking 提取码:qqzd
代码:python实现的eco——pytracking
参考博客:C-COT – 超越相关滤波:学习连续卷积算子(Continuous Convolution Operators)
https://zhuanlan.zhihu.com/p/67819411

C-COT:Continuous Convolution Operator Tracker

文章侧重点

  1. 因为梯度特征(HOG)、颜色空间的直方图、浅层卷积网络的深度特征是不同分辨率的特征,传统的KCF或者DCF算法无法将不同分辨率的特征通道进行融合。C-COT则基于深度特征+手工特征,提出连续卷积算子,在连续域实现多个分辨率特征的融合。
  2. C-COT的主要贡献在于提出一个理论框架,可以在连续空间域中学习一个具有判别力的卷积算子。文中重点阐述了理论框架与公式推导。
  3. 该框架与传统的相关滤波算法对比的优势在于:可以融合多分辨率(multi-resolution)的特征图【其实就是针对不同分辨率的特征训练不同的卷积滤波器,再在score map层面上加起来】;可以进行准确的像素定位,因为文中还将C-COT方法应用到特征点追踪(feature point tracking)benchmark上。

连续卷积算子

  • 连续卷积算子的实现,实际是针对一维特征域
    • 首先,利用三次插值核函数将离散的特征插值得到连续的特征;
    • 将真值 y y y 映射为以目标估计为中心的高斯分布(为了能在连续域做相关性运算)
    • 在连续域中训练一个连续卷积算子(也可以看作卷积滤波器),将连续域中的目标特征映射为目标置信函数(即对应特征是追踪目标的概率值)。
  • 针对高维的特征
    • 分别训练不同的卷积滤波器
    • 分别与连续域中的目标特征作卷积操作,得到不同分辨率下的score map
    • 将这些score map按照对应的像素点加起来,得到最终的目标特征对应的置信函数,我们通过寻找图片区域中的最大置信分数来定位目标。

目标追踪框架

初始化过滤器:

即,利用待追踪序列的第一帧的信息,确定要追踪的目标,并用已知的追踪目标的特征初始化(训练)卷积滤波器的参数

  • 处理思路是首先提取第一帧中的特征 X X X要通过在傅里叶域最小化泛函得到最佳的卷积滤波器的参数:利用公式5计算置信分数函数 s s s 的傅里叶系数。
  • 处理步骤:
    • 首先利用离散的傅里叶变换得到一个粗略的估计——即网格搜索方法:在空间的离散点处估计得分函数,找到最大值;
    • 最大值作为傅里叶级数展开的初始值,进行5次标准牛顿迭代,得到粗略的卷积滤波器的参数估计。

追踪流程

  1. 从预训练好的深度网络中提取出多分辨率特征图;
  2. 在每一帧采样一个训练样本 x j x_j xj,采样的方法是以目标为中心,裁剪出目标边界框面积 5 2 5^2 52倍大的图片区域。越靠近当前帧的采样的训练样本的权重越大。最大的保存400帧历史帧。
  3. 应用多尺度估计,5个尺度,相对尺度因子1.02。最大化网格搜索后,进行 5 次牛顿迭代;
  4. 求解正规方程以训练滤波器,采用共轭梯度法进行迭代,在第一帧中,使用100次迭代找到滤波器系数 的初始估计,随后的帧中,用当前的滤波器初始化CG(共轭梯度),每帧五次迭代就足够。

ECO

文章侧重点

  1. 文章针对当前相关滤波追踪器存在的问题做如下总结:

    • 模型参数量过大使得在线更新容易过拟合。 高维特征,尤其是深度特征使得目标外观模型的参数急剧上升。例如上文的C-COT连续更新的参数多达800,000个,同时在线更新的采样样本缺乏多样本,容易引起模型对目标的某一位置过拟合,尤其是当目标出现尺度变化、变形等问题时,根据历史帧预测目标框裁剪的样本本来就可能不精确。
    • 在线更新的训练样本缺乏丰富的样本。由于当前的在线相关滤波追踪模型都有一个迭代优化算法来实现模型的在线更新以应对不同的挑战。那么数据对于更新的重要性不言而喻。
    • 当前的模型的连续更新策略是逐帧更新,使得模型的鲁棒性降低了。 由于新出现的Siamese网络是不需要在线更新的,但仍保持了较高的追踪精度。但是我认为这不是在线更新造成的,主要还是采样样本的准确度问题,因为历史帧中采样的更新样本是根据历史帧中预测的目标框为中心裁剪出来的。所以当历史帧样本的不准确性使得当前的模型受到了影响,过拟合到目标的局部。设想一个问题,如果历史帧中用于在线更新的样本如groundtruth般准确,那么在线更新会达到较好的效果。
  2. 文章针对上述问题,基于C-COT做如下改进:

    • 提出因式分解卷积算子,对C-COT中的卷积滤波器进行缩减,从而减少模型本身的参数。(对于512维的深度特征+512个卷积滤波器,可以将512个卷积滤波器减到64个,从而剔除了一些不重要的深度特征,降低模型参数。)
    • 一个为在线更新设计的更加简洁的采样分布的生成模型,降低内存和时间复杂度;增加样本多样性。
    • 保守模型更新策略,即降低更新频率,增大更新样本的多样性,继而增强鲁棒性,降低复杂性。

因式卷积因子

  • 出发点: 出于对C-COT中卷积滤波器的观察,每个维度的特征对应一个滤波器;然而一部分训练好的卷积滤波器包含了微乎其微的能量,也就是说对最后目标定位的贡献很小,但它们仍消耗了训练时间和内存。

  • 改进思路: 故采用类似主变量降维的思想,以深度特征为例,一共512维特征对应512个卷积滤波器,而因式卷积的思路就是用64个主要的卷积滤波器,利用一个线性对应矩阵 P P P , 线性组合之后可以还原这512个卷积滤波器的作用。
    在这里插入图片描述

  • 优点: 线性矩阵 P P P 可以在第一帧初始化。这样的设计使得内存开销大大降低,并且降低了在线更新的计算复杂度。

生成采样空间模型

  • 出发点: 当前的相关滤波追踪器C-COT、SRDCF等的在线更新策略是在每一帧都添加一个训练样本,然后为这些历史帧赋予一个衰减的权重(离当前帧近的的帧权重大,离当前帧远的帧权重小)。然而这样的采样空间存在大量冗余的样本,因为相邻帧之间的外观大致相同。
  • 改进思路:提出一个样本集合的概率生成模型。基于样本特征映射 x x x和相应输出置信度分数 y y y

模型更新策略

  • 出发点:在C-COT中,这意味着在每个新样本添加后,通过迭代求解正态方程进行优化。基于迭代优化的DCF方法利用了损失函数在帧之间逐渐变化的特点。因此,过滤器的当前估计提供了迭代搜索的良好初始化。不过,在每一帧中更新过滤器会对计算负载产生严重影响。

  • 改进思路:将训练样本建模为高斯混合模型,避免逐帧更新,只需在每个 N s N_s Ns帧中启动优化过程来更新过滤器。参数 N s N_s Ns决定过滤器更新的频率,其中 N s = 1 N_s= 1 Ns=1 对应于在每一帧中优化过滤器,就像在标准DCF方法中一样。在每个 N s N_s Ns帧中,我们执行固定数量的 N C G N_CG NCG共轭梯度迭代来优化模型。因此,每帧CG迭代的平均次数减少到 N C G / N s N_CG/N_s NCG/Ns
    在这里插入图片描述

  • 优点:模型更新频率降低到 N s N_s Ns,当然节约了时间,并且可以避免模型的漂移问题,一定程度上改进效果,但是也不可以把Ns取得太大,否则会使得模型跟不上目标的变化。

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

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

相关文章

【MySQL】表连接

一、为什么要学习 因为不合理的使用连接会导致慢查询 二、什么是连接 参与连接的表叫做 连接表, 连接就是把 各个连接表 进行的组合 (笛卡儿积)加入结果集并返回 三、连接查询 如何只是对表进行大量的连接,笛卡儿积作用得到的…

ChatGPT会取代程序员么?今天让ChatGPT写了个程序,感觉离失业不远了

文章目录ChatGPT会取代程序员么?今天让ChatGPT写了个程序,感觉离失业不远了问题:保存和ChatGPT的聊天记录对话实录以及吐槽1. 把当前页面转成markdown格式的方法2. 用油猴子可以实现么?3. 编写一段油猴子代码,实现刚才…

Redis十大类型——Set与Zset常见操作

Redis十大类型——Set与Zset常见操作Set命令操作简列基本操作展示删除移动剪切集合运算Zset基本操作简列添加展示反转按分数取值获取分数值删除分数操作下标操作如果我们对Java有所了解,相信大家很容易就明白Set,在Redis中也一样,Set的value值…

4、树(中篇)

前言:前节二叉树只能适用于静态查找,不能实现动态插入、删除等。如何解决以下两个问题: 静态查找与动态查找针对动态查找,数据如何组织?4.1 二叉搜索树 4.1.1 什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。 二叉搜索树:一棵…

Linux RS232驱动实验

目录 一、硬件分析 1、 RS232 原理图​编辑 2、RS485 原理图 3、GPS 原理图 二、设备树中添加设备节点 2、添加 uart3 节点 ​编辑 三、移植 minicom 1、移植 ncurses 2、移植 minicom 3、验证 4、minicom配置 四、测试 RS232 收发测试 串口是很常用的一个外设&…

SpringSecurity: 默认添加的15个Filter是怎么添加进去的?

总的流程分为两部分&#xff0c;一是先用Map把configurer收集起来&#xff0c;然后再把maper中所有的configurer应用到HttpSecurity对象。 其中的map位于AbstractConfiguredSecurityBuilder这个类。 private final LinkedHashMap<Class<? extends SecurityConfigurer&l…

信息安全与数学基础-笔记-⑤原根与阶

知识目录原根一些求原根的定理↓ordm(a)ord_m(a)ordm​(a) | ϕ(m)\phi(m)ϕ(m)原根和阶的关系原根 什么是原根&#xff1f; 设 &#xff08;a,m&#xff09; 1, 并且aea^eae 三 1 (mod m) &#xff0c;则我们称&#xff1a;ordmord_mordm​(a) e&#xff0c;ord也叫做群论&am…

React组件性能优化若干问题

react组件的性能优化的核心是减少渲染真实DOM节点的频率&#xff0c;减少Virtual DOM比对的频率。组件卸载前执行清理操作在组件中为window 注册的全局事件&#xff0c;以及定时器&#xff0c;在组件卸载前要清理掉。防止组件卸载后继续执行影响应用性能。import React from re…

分享十个前端Web3D可视化框架附地址

Three.js&#xff1a;Three.js是一个流行的3D库&#xff0c;提供了大量的3D功能&#xff0c;包括基本几何形状、材质、灯光、动画、特效等。它是一个功能强大、易于使用的框架&#xff0c;广泛用于Web3D可视化应用程序的开发。Three.js&#xff1a;https://threejs.org/Babylon…

【强烈建议收藏:MySQL面试必问系列之索引专题】

一.知识回顾 前面的文章我们一起学习了数据库的事务、事务以及并发来的问题、数据库锁机制、数据库中CURD的SQL语句底层执行流程、数据库SQL优化专题&#xff0c;如果你一步一步的跟下来&#xff0c;一定会帮助你建立一个知识体系。接下来我们再一起学习数据库索引专题&#x…

Toponogov 比较定理及其应用

1. Toponogov 比较定理的背景来源 Victor Andreevich Toponogov&#xff08;1930-2004&#xff09; 是苏联数学家&#xff0c;Toponogov 比较定理是他的博士论文题目&#xff0c;在1958年答辩。他证明这个定理是为了用于证明截面曲率假设下的分裂定理和最大直径定理&#xff0…

具有精密内部基准的 DACx0502 简介及驱动应用示例

DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性&#xff0c;DACx0502 非常适合以下 应用&#xff1a; 增益和失调电压校准、电流…

计算机网络协议详解(二)

文章目录&#x1f525;HTTP协议介绍&#x1f525;HTTP协议特点&#x1f525;HTTP协议发展和版本&#x1f525;HTTP协议中URI、URL、URN&#x1f525;HTTP协议的请求分析&#x1f525;HTTP协议的响应分析&#x1f525;MIME类型&#x1f525;HTTP协议介绍 HTTP协议介绍 什么是超…

反转链表(精美图示详解哦)

全文目录引言反转链表题目描述与思路实现总结引言 在学习了单链表的相关知识后&#xff0c;尝试实现一些题目可以帮助我们更好的理解单链表的结构以及对其的使用。 从这篇文章开始&#xff0c;将会介绍一些编程题来帮助我们更好的掌握单链表&#xff1a; 分别是反转链表、链表…

大数据技术之Hadoop集群配置

作者简介&#xff1a;大家好我是小唐同学(๑>؂<๑&#xff09;&#xff0c;好久不见&#xff0c;为梦想而努力的小唐又回来了&#xff0c;让我们一起加油&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小唐同学(๑>؂<๑&#xff09;的博客主页 目前…

SpringBoot三种方法实现定时发送邮件的案例

前言 小编我将用CSDN记录软件开发之路上所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注一下&#xff01;也许一个人独行&#xff0c;可以走的很快&#xff0c;但是一群人结伴而行&#xff0c;才能走的更远&#xff01;让我们在成长的道路上互相学习&#xff0c;让我们共…

了解java

#常见编程语言介绍 C语言 C语言 java语言 javaScript语言 PHP语言 python语言Object-C和Swift语言 C# &#xff08;c sharp&#xff09;语言 Kotlin语言 Go语言 Basic语言 #JAVA的发展 起源于1991年SUN公司GREEN项目&#xff0c;1996年JDK1.0正式发布 后被Oracle公司收购&…

卷积神经网络CNN之ZF Net网络模型详解(理论篇)

1.背景 2. ZF Net模型结构 3. 改进优缺点 一、背景 ZF Net是用作者的名字命名的&#xff0c;Matthew D.Zeiler 和 Rob Fergus &#xff08;纽约大学&#xff09;&#xff0c;2013年撰写的论文&#xff1b; 论文原网址https://arxiv.org/abs/1311.2901 论文名&#xff1a;Vis…

Vue2的基本内容(一)

目录 一、插值语法 二、数据绑定 1.单向数据绑定 2.双向数据绑定 三、事件处理 1.绑定监听 2.事件修饰符 四、计算属性computed和监视属性watch 1.计算属性-computed 2.监视属性-watch &#xff08;1&#xff09;通过 watch 监听 msg 数据的变化 &#xff08;2&a…

IronXL for .NET 2023.2.5 Crack

关于适用于 .NET 的 IronXL 在 C# 中阅读和编辑 Excel 电子表格&#xff0c;无需 MS Office 或 Excel Interop。 IronXL for .NET 允许开发人员在 .NET 应用程序和网站中读取、生成和编辑 Excel&#xff08;和其他电子表格文件&#xff09;。您可以读取和编辑 XLS/XLSX/CSV/TS…