CSK

article/2025/8/23 20:57:34

参考博文:https://blog.csdn.net/qq_32763701/article/details/83691393
以及知乎大佬YaqiLYU的专栏

目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法判别(discriminative)模型方法,目前比较流行的是判别类方法,也叫检测跟踪(tracking-by-detection)。

生成类方法,我没怎么看过生成类方法的论文。—在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置。举个例子,从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,搜索算法就像无头苍蝇,到处去找最符合这个颜色比例的区域。

判别类方法, OTB50里面的大部分方法都是这一类,经典套路图像特征+机器学习, **当前帧以目标区域为正样本,背景区域为负样本,机器学习训练分类器,下一帧用训练好的分类器找最优区域。**相关滤波也是属于判别类方法。

CSK 作者发现如果给岭回归加入kernel-trick,也可以推导出封闭解,推荐是高斯核。至此,CSK算法就成型了。总结一下,如果是100X100的图像块,经过傅里叶变换和几个简单的元素级点乘计算,事实上已经完成了10000个样本的训练和10000个样本的检测,复杂度由O(mnXmn)降低到了O(mnXlog(mn)),m和n是图像的高乘宽,也就是说CSK的复杂度与图像块的像素点总数有关,padding大小会影响复杂度。循环移位生成的近似样本集结合FFT以近乎恐怖的方式降低了计算量,但是,这种近似以引入边界效应为代价,再但是,即使存在边界效应KCF/DCF依然碾压了Struck。

卷积操作与互相关操作的区别仅在于是否将卷积核旋转180度,如果卷积核对称,这时候卷积与互相关就是一回事了。(计算上)这里附上大佬推导

https://blog.csdn.net/u013187057/article/details/83897549?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160491388219724842964056%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160491388219724842964056&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-8-83897549.first_rank_ecpm_v3_pc_rank_v2&utm_term=kcf%E7%9B%AE%E6%A0%87%E8%B7%9F%E8%B8%AA%E7%AE%97%E6%B3%95+%E6%8E%A8%E5%AF%BC&spm=1018.2118.3001.4449

CSK
在这里插入图片描述

加正则项的目的是为了防止求得的滤波器H过拟合。通过最小二乘法求得的相关滤波器与当前帧输入的图像F的相关性是最高的,然而我们是要用求得的滤波器结果H去预测下一帧图像中目标所在的位置。因为下一帧图像不可能和当前帧的图像一模一样,所以拟合度过高反而会影响检测的准确度,所以加入正则项来减小输入图像和滤波器之间的拟合程度,使求得的滤波器H泛化能力更强

MOSSE算法里求相关性的操作是通过在怀疑区域里滑动卷积得到的,如果是要求密集采样(而不是随机采样)的话,要求卷积模板在这一区域从第一个像素滑动到最后一个像素,在这一区域产生大量候选窗(这些候选窗重合度还很大),最终目标匹配得到最后的输出结果。这一过程明显计算量巨大,影响跟踪速度。第一行为实际采集的目标特征,其他行表示周期性地把最后的矢量依次往前移产生的虚拟目标特征。因为整个循环矩阵都是由第一行演变而来,所以循环矩阵不需要空间专门去保存它。

接下来就是循环移位(Cyclic shifts)。相关滤波的训练样本是通过循环移位产生的,理由1:密集采样得到的样本与循环移位产生的样本很像,可以用循环移位来近似。理由2:卷积(相关)运算在傅里叶域对应点乘运算,可以减小计算量,而**循环矩阵经过傅里叶变换会对角化,**可以进一步减小计算量。
在这里插入图片描述
另一方面,如上图所示,循环矩阵对像素的移动产生了目标发生上下位移的结果,可以理解为在这一帧里样本数增加了。更多的样本数意味着训练的结果更准确。

此外,循环矩阵傅里叶对角化特性也是引入循环矩阵重要的原因之一。

利用这一特性证明循环矩阵的和、点积、求逆都是循环矩阵,在频域利用这一特性大大提高了运算速率。
为什么引入核函数?
核函数是模式识别里的一个技巧。我们知道在低维空间中线性不可分的模式可以映射到高维空间实现线性可分。
在这里插入图片描述

其中红线和黑线分别表示两类数据,在二维空间里线性不可分,映射到高维空间后利用二次函数(曲线)实现了可分。
但问题在于,虽然在高维空间实现了线性可分,但一是映射关系难以求解,二是在高维空间运算时,容易导致维数灾难,维数越大,计算量也指数增大。
引入核函数的目的是利用在原空间的核函数的值表示高维空间的向量的內积,简化计算。

将CSK中的单通道灰度特征扩展成多通道的HOG特征,采用HOG+线性核的方法叫做DCF,采用HOG+高斯核的方法叫做KCF,依靠傅里叶变换的快速算法FFT和HOG的快速算法fHOG,KCF/DCF成功起飞。


http://chatgpt.dhexx.cn/article/TXc8mODh.shtml

相关文章

cryptography

出现这个错误是因为缺少cryptography包,可以使用 pip install cryptography 安装cryptography包,如果安装cryptography失败 先检查一下自己的pip包是否为最新版本,在settings>Project>Project Interpreter里查看pip的版本 接下来使用ea…

C#---CSkin

一、都有哪些共功能 二、下载步骤 1、这个CSkin的下载和使用方法的地址:http://www.cskin.net/ 2、找到下载,直接点击下载 使用教程: 1.工具箱右键-新建项-命名CSkin。 2.将CSkin.dll拖到新建的工具箱栏里。 3.控件添加完毕,…

winfrom界面美化(cskin)

1.cskin控件的引用 2.可能会产生闪屏的问题 附: private void SetStyles() { base.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDo…

CSkin界面库案例分享

【小助手Demo】高仿彗星小助手-2014.8.26更新 http://bbs.cskin.net/forum.php?modviewthread&tid209&fromuid2 【Metro风格】Metro窗体DEMO-14.7.2版本 http://bbs.cskin.net/forum.php?modviewthread&tid84&fromuid2 【动画特效界面】动画特效组件使用DE…

CSkin界面库窗体设置

CSkin界面库是一款免费的C#界面库,具有小巧免费,拓展性强,容易上手等优点,适合用于中小规模软件的开发。使用这个界面一年多了,但一般最多也只是改改颜色之类的简单应用,官网也只给了简单的例子&#xff0c…

C# --CSkin的使用教程

下载和安装: http://www.cskin.net/ 在VS的工具箱右击,新建选项卡,比如CSkin4,在次选项卡空白处右击“选择项” 会弹出此窗口,选择浏览,找到cskin.dll,确定。 利用CSkin的第一步:…

C#窗体美化(CSKin组件)

写完了Web的WMS系统和OA系统,今天要开始写车载终端的程序了。之前给客户写ERP与MES的接口或者ERP与WMS等接口的时候用的都是窗体,所以这次直接使用窗体来写。不过窗体的话大家都知道比较丑,今天写学习一下使用CSKin组件来美化页面。 CSKin官方…

winform UI界面库CSkin

2022年再提到winform可能部分小伙伴要说 大清都亡了…哈哈 但是在工业领域winform还是有一席之地的,就是界面丑了点,今天给大家分享个界面库Cskin,其实网上也有很多界面库但是大部分是收费的,这个cskin就很良心了完全免费。 下载…

利用CSkin组件设计漂亮的WinForm登录界面

众所周知,WinForm具有快速开发的优点,但是美观方面一直被人诟病,一般美化都是采用第三方的组件来满足美化效果,这里我也利用Cskin组件来设计一个具有一定美感的登录界面, CSkin下载 CSkin的使用你可以自行查看下载后…

CSkin的使用

(1)前言 我相信学过C#过的朋友都会有一点觉得它的控件不什么好美化,而今天,小编则是教你们什么使用CSKIn这个好东西! (2)这个CSkin的下载和使用方法的地址:http://www.cskin.net/ …

C#界面库CSkin 使用简介

.net平台,c# 语言,开发很方便,支持拖拉拽生成界面,程序员只需要专注自己的业务逻辑即可,大大节省了开发时间。 但是呢,原生系统的界面比较丑陋,不太友好,需要再美化一下。.net平台因…

SpringMVC 基础教程 简单入门实例

spring MVC 入门教程二: 一个简单的入门实例教程 该实例的源码和实例中的jar 源码:http://download.csdn.net/detail/swingpyzf/5348563 所需要的jar: http://download.csdn.net/detail/swingpyzf/5348531 另外一篇关于SpringMVC 文件上传&#xff…

史上最全SpringMVC教程,从零开始带你深入♂学习(一)——SpringMVC快速入门、注解开发

SpringMVC框架(一)SpringMVC快速入门、注解开发 SpringMVC Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。 Spring MVC的特点: 领取资料 1. 轻量级,简单易学 2. 高效 , 基于请求响应的MVC框架 3. 与Spring兼容…

最全面的SpringMVC教程(四)——Controller 与 RestFul

前言 本文为 【SpringMVC教程】Controller 与 RestFul 相关内容介绍,具体将对控制器Controller,实现Controller接口,使用注解Controller,RequestMapping及RestFul 风格(包括:Rest架构的主要原则、什么是Res…

SpringMVC教程(一):环境搭建

环境:eclipsetomcat8.5 第一步:jar准备(基础包): commons-logging-1.1.1.jar jstl-1.2.jar spring-aop-4.0.4.RELEASE.jar spring-aspects-4.2.6.RELEASE.jar spring-beans-4.0.4.RELEASE.jar spring-context-4.0.4.RE…

myeclipse配置springmvc教程

之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友。我是用的是MyEclipse2017 CI 3,相近版本应该都差不多。至于其他版本…

SpringMVC教程下篇

SpringMVC教程下篇 内容包括: 绑定数组: 将表单数据绑定到list: RequestMapping注解的三种用法: Controller方法返回值: 乱码问题总结 异常处理: 照片上传: RESTFUL支持&#xff…

最全面的SpringMVC教程(五)——文件上传与下载

前言 本文为 【SpringMVC教程】文件上传与下载 相关知识&#xff0c;具体将对使用MultipartResolver处理文件上传的步骤&#xff0c;两种文件下载方式&#xff08;直接向response的输出流中写入对应的文件流、使用 ResponseEntity<byte[]>来向前端返回文件&#xff09;等…

最全面的SpringMVC教程(三)——跨域问题

前言 本文为 【SpringMVC教程】跨域问题 相关内容介绍。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同时&#xff0c;就会产生跨域。那么究竟什么是跨域&#xff0c;跨域问题该如何解决&#xff0c;本文具体将对同源策略&#xff0c;什么是跨域&#xff0…

最全面的SpringMVC教程(一)——SpringMVC简介

前言 本文为SpringMVC相关教程&#xff0c;下边将对SpringMVC进行简单介绍&#xff0c;具体包含&#xff1a;对MVC架构的回顾&#xff0c;什么是SpringMVC&#xff0c;SpringMVC编程示例&#xff08;包含配置版示例、注解版示例&#xff09;&#xff0c;初识SpringMVC&#xff…