目标跟踪之KCF详解

High-Speed Tracking with Kernelized Correlation Filters

使用内核化相关滤波器进行高速跟踪

        大多数现代跟踪器的核心组件是判别分类器,其任务是区分目标和周围环境。为了应对自然图像变化,此分类器通常使用平移和缩放的样本补丁进行训练。此类样本集充斥着冗余 - 任何重叠的像素都被限制为相同。基于这个简单的观察,我们提出了一个包含数千个翻译补丁的数据集的分析模型。通过证明生成的数据矩阵是循环的,我们可以用离散傅里叶变换对其进行对角化,从而将存储和计算减少几个数量级。有趣的是,对于线性回归,我们的公式相当于一个相关滤波器,被一些最快的竞争跟踪器使用。然而,对于核回归,我们推导了一个新的核化相关滤波器(KCF),与其他核算法不同,它具有与其线性算法完全相同的复杂性。在此基础上,我们还提出了线性相关滤波器的快速多通道扩展,通过线性内核,我们称之为双相关滤波器(DCF)。在 50 个视频基准测试中,KCF 和 DCF 的表现都优于 Struck 或 TLD 等顶级跟踪器,尽管它们以每秒数百帧的速度运行,并且只需几行代码即可实现(算法 1)。为了鼓励进一步的发展,我们的跟踪框架是开源的。

1 相关背景知识

(一)Hog特征(梯度方向直方图Histogram of oriented gradient):

               1.  一文讲解方向梯度直方图(hog) - 知乎

               2.  HOG特征的提取及代码实现 - 知乎

               3. 计算机视觉爱好者必看:特征工程HOG特征描述子指南 - 知乎

(二)SVM(向量机)与核方法:

                Python · SVM(三)· 核方法 - 知乎

(三) 循环矩阵与傅里叶变换:     

                 张量t-product积基础 | 循环矩阵与向量乘积的离散傅立叶变换 · 循环矩阵的傅里叶对角化 - 知乎

                循环移位可视化理解 - 知乎

                通过上面一篇文章,最终得出的结论会用于KCF,即:

(四)判别式跟踪算法:

        判别式跟踪方法将目标跟踪问题转化为寻求跟踪目标与背景间决策边界的二分类问题,通过分类最大化地将目标区域与非目标区域分别开来。因此,目标跟踪的准确性和稳定性很大程度上以来于在特征空间上目标与背景的可分性,如何在线建立能够适应目标和背景外观变化的判别模型,是判别式跟踪算法研究的关键。KCF就是判别式跟踪算法。

2 KCF 详解

(一)KCF基本原理:

                1. :目标跟踪系列--KCF算法 - 知乎

                2. 目标跟踪:KCF_kcf目标追踪是什么-CSDN博客

                3. 相关滤波(一)KCF-CSDN博客

                4. https://www.cnblogs.com/YiXiaoZhou/p/5925019.html

                对于KCF的基本原理以及过程有大致的了解。明白KCF跟踪算法的整体流程

(二)KCF算法流程概述:

                相关滤波(一)KCF-CSDN博客

                KCF目标跟踪算法原理与入门详解_kcf跟踪算法原理_普通网友的博客-CSDN博客

                第一步:初始帧,确定目标的表达形式,确定目标区域的位置以及大小,画出候选框(可以理解为bounding box),(通常由目标检测算法实现,也可以根据实际情况手动标注);然后在初始帧进行目标特征提取,先提取目标区域的hog特征,在初始帧图像中通过循环移位采集大量样本((是对整幅图像进行循环移位)这一步在判别式跟踪算法中也称作“正负样本生成”,有时也被称作“候选框生成”),基于目标hog特征,在正负样本中训练相关滤波模板w,从而生成期望分布,提高判别力。

                第二步:读取下一帧图像,将整副图像图像作为搜索区域,也是提取图像的hog特征,通过余弦窗平滑计算,得到待检测的样本a;然后将待检测样本与相关滤波模板相乘得到当前图像的响应图;将频域响应图f(z) 通过反傅里叶变换求得时域响应图 ,响应值最大的位置就是最佳预测位置;目标的位置进行预测后,根据此位置外观信息,对目标的外观模型以及滤波器模板进行更新。

                第三步:模型更新完毕之后,利用更新后的滤波分类器模板与后续帧图像搜索区域进行响应运算,对后续帧目标位置进行预测。

                第四步:重复二、三步,直到所有的视频序列检测完成。

3 KCF论文地址

https://ieeexplore.ieee.org/abstract/document/6870486

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

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

相关文章

Android 如何添加自定义字体

Android 如何添加自定义字体 比如我要添加 jetbrains 相关字体 在 res 文件夹中添加 font 文件夹。里面放入你的字体文件 .ttf .otf,字体文件名需要是小写,只能是字母和下划线。 在 xml 布局文件中直接通过 android:fontFamily"font/jetbrainsmo…

【JVM】StringTable 字符串常量池

参考:javaGuide 字符串常量池 是 JVM 为了提升性能和减少内存消耗针对字符串(String 类)专门开辟的一块区域,主要目的是为了避免字符串的重复创建 String的不可变性 1.通过字面量的方式(区别于new)给一个…

【回顾】蚂蚁链自研TEE技术全项通过国家金融科技认证中心认证

2022年3月,蚂蚁集团自研TEE技术(HyperEnclave)通过了北京国家金融科技认证中心认证,TEE功能(CA与TA交互、数据存储、加密解密算法等)、TEE安全(硬件安全、系统软件层安全等)47个项目…

day11-项目集成SpringSecurity-今日指数

项目集成SpringSecurity 学习目标 理解自定义认证和授权过滤器流程;理解项目集成SprignSecurity流程; 第一章 自定义认证授权过滤器 1、SpringSecurity内置认证流程 通过研究SpringSecurity内置基于form表单认证的UsernamePasswordAuthenticationFi…

消息中间件篇之RabbitMQ-高可用机制

一、怎么保证高可用性 在生产环境下,使用集群来保证高可用性,一般我们采用普通集群、镜像集群、仲裁队列。 二、普通集群 普通集群,或者叫标准集群(classic cluster),具备下列特征: 1. 会在集…

第2.5章 StarRocks表设计——行列混存表

注:本篇文章阐述的是StarRocks- 3.2.3版本的行列混存表 一、概述 1.1 背景 StarRocks 基于列存格式引擎构建,在高并发场景,用户希望从系统中获取整行数据。当表宽时,列存格式将放大随机IO和读写。自3.2.3开始,StarRo…

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项

GKI是什么? Google为什么要推行GKI? GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口,使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…

前后端分离vue.js+nodejs学生考勤请假系统 _fbo36

此系统设计主要采用的是nodejs语言来进行开发,采用vue框架技术,框架分为三层,分别是控制层Controller,业务处理层Service,持久层dao,能够采用多层次管理开发,对于各个模块设计制作有一定的安全性…

【大模型 数据增强】IEPILE:基于模式的指令生成解法,提高大模型在信息抽取任务上的性能

IEPILE:基于模式的指令生成解法,提高大模型在信息抽取任务上的性能 提出背景基于模式的指令生成解法效果 提出背景 论文:https://arxiv.org/pdf/2402.14710.pdf 代码:https://github.com/zjunlp/IEPile 假设我们有一个信息抽取任…

Sublime Text4配置C#运行环境

这里写自定义目录标题 前言部署.NET环境Sublime Text4配置C#编译环境1. 下载插件 运行测试 前言 今天把家里的9年前的远古神机搬了出来,重装了个win7的精简版,本打算装个VScode测试一下是否能写C#代码,结果是可以的,但&#xff0…

Mockito单元测试Mockito对Service层的测试案例

前言 以下是关于Mockito的API使用文档 官网:http://mockito.org/ 官网英文API文档:https://javadoc.io/static/org.mockito/mockito-core/5.10.0/help-doc.html#index 非官方中文API文档:https://gitee.com/wnboy/mockito-doc-zh#mockito-%E…

R3F(React Three Fiber)经验篇

之前一直在做ThreeJS方向,整理了两篇R3F(React Three Fiber)的文档,这是经验篇,如果您的业务场景需要使用R3F,可以参考一下这个文档。下面是目录,按照需求自取。 基础篇 ⬇️ R3F(…

SPI总线结构和原理

一、概述 SPI(Serial Peripheral Interface)是一种同步串行通信接口标准,被广泛应用于各种微控制器和外设之间的通信。SPI总线结构简单、易于扩展,并且支持多主设备同时操作。 二、信号线 SCK(Serial Clock&#xf…

SpringIOC之support模块StaticMessageSource

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

zemax冉斯登目镜

两个焦距相等的平凸透镜组成,两个凸面相对,两者间距等于焦距的2/3 球差、轴向色差、畸变都小于惠更斯目镜 但是垂轴色差较大 可以当作普通放大镜使用 这里没有可以控制两个平凸透镜焦距相等 入瞳直径4mm波长0.51、0.56、0.61半视场15焦距28.2mm 镜头…

Javase补充-Arrays类的常用方法汇总

文章目录 一 . 排序方法二 . 查找方法三 . 判断是否相等的方法四 . 拷贝方法五 . 填充方法 一 . 排序方法 我们第一个要介绍的就是sort方法 这个排序实现的底层逻辑应该是十分复杂的,以我们目前的水平体系应该无法理解,我们今天尝试用我们可以理解的一种排序算法,插入排序来模…

软考41-上午题-【数据库】-关系代数运算3-外连接

一、外连接 连接的拓展,处理由于连接运算而缺失的信息。 1-1、回顾自然连接 1-2、左外连接 示例: 左边的表,数值是全的 1-3、右外连接 示例: 右边的表,数值是全的 1-4、全外连接 示例: 自然连接左外连接…

Linux--shell编程中内部表和外部表之间的转换

内部表和外部表之间的转换 1、查询表的类型 desc formatted student; Table Type: MANAGED_TABLE 2、修改内部表student为外部表 alter table student set tblproperties(EXTERNALTRUE); 3、查询表的类型 desc formatted student; Table Type: EXT…

python:读 Freeplane.mm文件,使用 xml.etree 生成测试案例.csv文件

Freeplane 是一款基于 Java 开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 强大的节点功能,不仅仅节点的种类很多&#xff0…

【Ubuntu】解决Ubuntu 22.04开机显示器颜色(高对比度/反色)异常的问题

使用Ubuntu 22.04时强制关机了一下(make -j16把电脑搞崩了),开机后系统显示的颜色异常,类似高对比度或反色,如下图。看着很难受,字体也没办法辨认。还好之前遇到过类似的问题,应该是一个配置文件…