Fast Compressive Tracking (高速压缩跟踪)

2023-12-23 10:08

本文主要是介绍Fast Compressive Tracking (高速压缩跟踪),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前比较主流的跟踪算法有两种,generative  tracking algorithms(生成跟踪算法)和discriminative algorithms(判别跟踪算法)。

生成跟踪算法,顾名思义边生成边跟踪。即对这一帧的样本进行学习,将学习的结果作为下一帧的分类器,达到边学习跟踪,边跟踪边学习的效果。这种跟踪算法的缺点是在视频的前几帧,样本量较少,因此大部分的算法要求视频中目标在视频的前面变化不大。如果目标变化较大,会产生漂移现象。

判别算法认为跟踪就是一个二分类器的问题,其目的是要找到一个将目标从背景中区分出的边界。但是这种算法只用了一个正样本和少量的负样本来跟新分类器。当特征模板含有噪声或者位置偏离时,便会出现漂移现象。

作者的算法:

技术分享

技术分享

作者论文中主要步骤如下:


1、获取目标区域特征

为了获取图像的多尺度特征表达,常常将输入图片与不同空间的高斯滤波器进行卷积。而在实际的运用过程中,高斯滤波器的运算量较大,所以一般采用矩形框代替高斯滤波器。经证明,这种代替不会影响特征检测的性能,而且其还能够极大的加快检测的速度。

对于一个W*H的样本,矩形框的选取方法如下:

技术分享

这里的w和h分别代表矩形框的的width和height。

将这些矩形框分别和输入图像进行卷积的效果如下:


技术分享

每一个输入图片(W*H)和不同大小的矩形框进行卷积的结果的到的仍旧是一个(W*H)的矩阵,但是为了方便将这些特征进行融合整理,将这个(W*H)的矩阵转换为一个含有(W*H)元素的列向量。而一个输入的样本图片共有(w*h)个卷积结果,将这(w*h)个列向量连接,就变成了一个含有(w*h)2个元素的列向量。这个列向量的长度一般可以达到106~1010。对于如此高维的特征,显然会带来相当大的计算量,故作者找到了一种很好的降维方法。


2、获取稀疏测量矩阵

压缩感知的理论指出,对于一个可压缩的信号,例如原始图片或者视频,一小部分随机生成的线性数据可以最大程度的保留原信号中的显著信息,并且能够从这一小部分随机信号将原信号很好的复现。压缩感知理论中还有一个比较专业的名次来形容前面所说的“可压缩信号”——K-sparse 信号。

有了这个理论作为依托,那么我们就可以先获取目标的复杂高维特征,再用压缩感知的理论将特征进行降维。作者采用的方法就是用稀疏随机测量矩阵(R)将原信号进行降维。显然,对于任意的K-sparse信号,我们都希望这个稀疏矩阵R能够将其中的显著信息提取出来,并且将这个K-sparse信号从高维映射到低维空间。

那么,如何寻找这个稀疏矩阵R,使其能够满足我们的要求。

实际上,要寻找这个稀疏矩阵,必须满足一个性质,即“约束等距性”。

一个典型的满足约束等距性的随机稀疏矩阵就是高斯随机矩阵。

技术分享

经证明,当ρ=1、3时,这个矩阵是满足约束等距性的。另外,注意到当ρ=3时,有三分之二的数据是0,因此不需要计算。

将这个m*n的稀疏矩阵与原高维向量(m维)相乘,可得到一个低维向量(n维)。这就是就行降维的结果。


3、用稀疏测量矩阵对特征进行降维处理

技术分享

从图中可以看出随机稀疏矩阵对高维向量进行降维的过程。图中稀疏矩阵中黑色的为正数,灰色为负数,白色为0。大致可以看出这个稀疏矩阵是非常稀疏的,非零项较少,明显可以减少数据处理量。而降维后的向量v,其中的每个元素是向量x中对应R非零项的和,其包含的是多个局部信息的和。


4、用贝叶斯分类器进行分类

技术分享

这里的V就是特征向量,p(y=1)和p(y=0)分别代表正负样本的先验概率。实际上p(y=1)=p(y=0)。经证明,高维随机向量的随机映射总是满足负荷高斯分布的。所以这里的p(vi|y=1)和p(vi|y=0)是符合高斯分布的,其参数为(λ>0,是学习参数):


技术分享

技术分享

技术分享

这是三个不同的低维空间特征所获得积分图分布。

技术分享

这是衡量正负样本好坏的积分图分布图。

 

程序中的步骤:


一、第一帧图像过来:

1、手工的标记需要跟踪的区域,这个区域是一个矩形框。

2、根据标记区域的信息,随机产生矩形框,用来当做Haar特征的提取模板

3、以当前帧目标区域为中心,以4个像素点为半径,取出共计45个正样本,在以8为内半径,30为外半径的圆环中随机选取50个负样本。

4、计算原图像的积分图。

5、根据积分图和前面所得的Haar特征提取模板,提取正负样本的特征。

6、更新贝叶斯分类器,获取新的分类器。


二、非第一帧图像过来:

1、以前一帧目标区域为中心,以25个像素点为半径,逐个遍历,可以获得大约1100个待分类区域。

2、得到这些待分类区域的积分图,用前面产生的Haar-like特征模板提取这些待分区域的Haar特征。得到特征向量。

3、用贝叶斯分类器对这些待分类区域对进行分类,选出最有可能是目标的矩形框,作为当前跟踪结果。

4、重复步骤一中的3、4、5、6

这篇关于Fast Compressive Tracking (高速压缩跟踪)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt实现文件的压缩和解压缩操作

《Qt实现文件的压缩和解压缩操作》这篇文章主要为大家详细介绍了如何使用Qt库中的QZipReader和QZipWriter实现文件的压缩和解压缩功能,文中的示例代码简洁易懂,需要的可以参考一下... 目录一、实现方式二、具体步骤1、在.pro文件中添加模块gui-private2、通过QObject方式创建

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

Verybot之OpenCV应用三:色标跟踪

下面的这个应用主要完成的是Verybot跟踪色标的功能,识别部分还是居于OpenCV编写,色标跟踪一般需要将图像的颜色模式进行转换,将RGB转换为HSV,因为对HSV格式下的图像进行识别时受光线的影响比较小,但是也有采用RGB模式来进行识别的情况,这种情况一般光线条件比较固定,背景跟识别物在颜色上很容易区分出来。         下面这个程序的流程大致是这样的:

Linux内置的审计跟踪工具:last命令

如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。Linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。   这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。   last命令的功能是什么   last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

通用内存快照裁剪压缩库Tailor介绍及源码分析(一)

背景 我们知道内存快照是治理 OOM 问题及其他类型的内存问题的重要数据源,内存快照中保存了进程虚拟机的完整的堆内存数据,很多时候也是调查其他类型异常的重要参考。但是dump出来的堆转储文件.hprof往往很大,以 LargeHeap 应用为例,其 OOM 时的内存快照大小通常在512M左右,要有效的存储和获取都是一个问题。 线下拿到hprof文件相对容易,也可以预防OOM,但覆盖的场景十分有

特征值分解(EVD)和奇异值分解(SVD)—应用于图片压缩

特征值分解(EVD)和奇异值分解(SVD)—应用于图片压缩 目录 前言 一、特征值分解 二、应用特征值分解对图片进行压缩 三、矩阵的奇异值分解 四、应用奇异值分解对图片进行压缩 五、MATLAB仿真代码 前言         学习了特征值分解和奇异值分解相关知识,发现其可以用于图片压缩,但网上没有找到相应代码,本文在学习了之后编写出了图片压缩的代码,发现奇异值分

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

深度学习 目标分类 目标检测 多目标跟踪 基础 进阶

深度学习 目标分类 目标检测 多目标跟踪 基础 进阶 flyfish 深度学习基础 文章名称链接深度学习基础 - 直线链接深度学习基础 - 梯度垂直于等高线的切线链接深度学习基础 - 向量投影链接一阶优化算法(如梯度下降)和二阶优化算法(如牛顿法)与泰勒级数链接Eigen中的array() square() asDiagonal()链接普通的矩阵乘法和Strassen矩阵乘法算法的比较 代码