STRCF:earning Spatial-Temporal Regularized Correlation Filters for Visual Tracking

本文主要是介绍STRCF:earning Spatial-Temporal Regularized Correlation Filters for Visual Tracking,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

STRCF论文https://paperswithcode.com/paper/learning-spatial-temporal-regularized

STRDF代码https://github.com/lifeng9472/STRCF

本文是在SRDCF的基础上进行的改进,如果没看过这篇论文,建议先看一下;

                                   SRDCFhttps://paperswithcode.com/paper/learning-spatially-regularized-correlation

首先作者分析了导致SRDCF速度慢的问题,主要总结的三个方面:

(1)尺度估计

(2)空间正则化

(3)大训练集的公式化(利用历史样本模板进行训练更新)

作者在这里进行了一个实验;

-M表示去掉了 第三项,采用插值的方式进行迭代更新,-MS表示去掉了第二和第三项,从结果可以看出,跟踪的效率的确与上面三项有关。(之所以没有进行取掉第一项(尺度估计)的实验,是因为,加上它也可以达到实时跟踪的要求(大于30帧每秒))。

针对以上问题,作者在单个图片样本中引入了一个时间正则化去优化效率,,作者的这种想法主要来自于passive-aggressive algorithms(PA:被动攻击算法)。

通过引入时间正则化,多幅图像上的公式可以简化为单幅图像上的STRCF模型,怎么理解这句话呢,我们可以从下面这两个公式入手:

 上面是STRCF的目标函数,下面是SRDCF的目标函数,可以看出,STRCF多了一个时间正则化,但是少了权重系数\alpha,SRDCF就是利用相邻历史帧(也就是多个训练图像)去训练滤波器,而STRCDF由于没有权重\alpha,所以只对单帧进行处理。

 但是作者是怎么引入时间正则化的呢?那就必须的说一下PA算法的思想了。可以参考一下这篇文章Passive Aggressive Algorithms

 表示前一帧的滤波器模型。f表示当前帧的滤波器模型。

STRCF也可以从两个方面看做在线PA的扩展:(I)STRCF不是分类,而是线性回归的在线学习;(ii)STRCF中的样本不是逐实例更新,而是在每一轮的批处理级别(即图像的所有移位版本)出现。因此,STRCF自然地继承了在线PA在自适应地平衡主动和被动模型学习之间的折衷上的优点,从而在大的外观变化的情况下产生更鲁棒的模型。如下图所示:

与SRDCF类似,STRCF也通过引入时间正则化子实现了同时的DCF学习和模型更新,因此可以作为SRDCF的多训练样本的合理近似;(ii)在遮挡的情况下,虽然SRDCF遭受对最近被破坏的样本的过度拟合,但是STRCF可以通过被动地更新CFs以使其接近先前的CFs来减轻这种情况。也就是说在遮挡或变形的情况下表现良好。


我认为,表示的是移位样本所对应的滤波器的相似性,这个值越小,说明两者是正样本的概率就越大,这样就可以把那些负样本给剔除掉,当差别过大时,就对f进行调整,而差别不大时,此项近乎为0,也不用做太大调整,这样就可以与PA算法的思想对应起来(个人理解,不喜勿喷)

本文利用了ADMM的方式去优化目标函数:

通过一个辅助变量f=g,去构造拉格朗日乘子:

 s表示拉格朗日乘数,\mu表示罚因子,\gamma表示步长参数,再引进一个上式可变为

 子问题为:

 下面分别求解f和g

求解 f :

 表示沿所有D通道由f的第j个元素组成的向量,上式对x(M,N,D)分解成MN个子问题求解,即对每个像素位置进行求解,所以总的时间复杂度为O(DMN)。由于上式是凸函数,所以对其求导可以求出全局最优解;

                              

 利用谢尔曼莫森公式求解得:

  

 求解 g :

 直接对其求导得:

 w表示与D个对角矩阵Diag(w)级联的DM N × DM N个对角矩阵

 \gamma通过如下更新:

 原理到此外结束,实验细节和数据可以自行看论文

这篇关于STRCF:earning Spatial-Temporal Regularized Correlation Filters for Visual Tracking的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410436

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

[VC] Visual Studio中读写权限冲突

前置场景: 编译没有报错,但是运行提示 内存异常: 情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF..... char* str = (char*)malloc(10);str[0] = 0x30;  解决方案:要包含头文件<stdlib.h>  情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog

KDD 2024 时空数据(Spatio-temporal) ADS论文总结

2024 KDD( ACM SIGKDD Conference on Knowledge Discovery and Data Mining, 知识发现和数据挖掘会议)在2024年8月25日-29日在西班牙巴塞罗那举行。 本文总结了KDD2024有关时空数据(Spatial-temporal) 的相关论文,如有疏漏,欢迎大家补充。 时空数据Topic:时空(交通)预测, 生成,拥堵预测,定价预

如何简单而优雅地升级Visual NMP中的PHP版本

需求:自己想测试下不同版本的PHP性能,就想升级下 Visual 这个集成环境中PHP的版本 网上: 升级PHP到5.6.11  1、下载新的nts版的PHP并解压缩到bin\PHP下,保留原文件夹的名称; 2、将旧版PHP文件夹下的PHP.ini复制到新版的PHP文件夹下;修改复制的PHP.ini,将旧版PHP文件夹信息替换成新版PHP文件夹信息; 3、下载php_xdebug-2.3

应用Visual Studio Profiler分析CPU使用情况

使用Visual Studio Profiler分析CPU使用情况‌的步骤如下: 1.‌启动CPU分析:‌ 在Visual Studio中打开你要分析的项目。 在菜单栏中选择Debug > Performance Profiler,或者使用快捷键Alt + F2。 在性能分析工具窗口中,选择CPU Usage选项,这将帮助你分析应用程序的CPU使用情况。 2.‌运行CPU

Apache-Flink深度解析-Temporal-Table-JOIN

在《JOIN LATERAL》中提到了Temporal Table JOIN,本篇就向大家详细介绍什么是Temporal Table JOIN。在ANSI-SQL 2011 中提出了Temporal 的概念,Oracle,SQLServer,DB2等大的数据库厂商也先后实现了这个标准。Temporal Table记录了历史上任何时间点所有的数据改动,Temporal Table的工作流程如下:

已解决:Visual studio2022突然只能打字不能使用回车键、退格键

本问题已得到解决,请看以下小结: 关于《VS2022部分按键失灵》的解决方案 记录备注报错时间2024年报错版本VS2022报错复现写代码,点击删除键失灵了报错描述点击关闭提示如下: Microsoft visual studio 已检测到某个操作正在阻止用户输入。这可能是由活动模式对话框或需要阻止用户交互的任务所致。是否仍要关闭?报错截图-报错原因不详解决步骤 1.VS2022搜索键盘,点击