【计算机视觉】目标跟踪任务概述和算法介绍

news2025/1/10 20:33:25

一、前言

1.1:目标跟踪VS目标检测:区别和联系

区别:

  1. 任务目标

    • 目标跟踪任务的目标是在视频序列中跟踪一个特定目标的位置,即给定第一帧中的目标位置后,在后续帧中确定目标的位置。
    • 而目标检测任务的目标是在静态图像中检测和定位出现的目标,即在给定图像中找到所有目标的边界框
  2. 数据输入

    • 目标跟踪任务通常涉及处理视频序列,需要在连续的帧之间跟踪特定的目标
    • 而目标检测任务则处理静态图像,每个图像都是独立的输入
  3. 上下文信息利用

    • 在目标跟踪任务中,由于连续帧之间存在时间和空间上的相关性,可以利用先前帧中的信息来帮助确定目标的位置。(前面所讲的限制区域搜索策略,就是利用这种连续帧之间的相关性,来确定下一帧的搜索区间)
    • 而目标检测任务通常只使用单个图像,缺乏时间上的上下文信息。(联系之前做的安全帽视频检测,虽然也是对视频进行处理,但是本质还是每一帧都是一个单独的处理对象,无任何联系)

联系

  1. 目标表示

    • 目标跟踪任务和目标检测任务都需要对目标进行有效的表示,通常使用边界框表示目标的位置和大小
  2. 特征提取

    • 两个任务都需要从输入数据中提取特征以表示目标。常见的特征提取方法包括使用卷积神经网络(CNN)提取图像特征或使用光流等方法提取视频序列中的运动特征。
  3. 目标类别识别

    • 虽然目标跟踪任务的主要目标是确定目标的位置,但有时也需要对目标进行类别识别,即确定目标属于哪个类别。在目标检测任务中,类别识别是一个重要的子任务,需要确定每个检测到的目标的类别标签。

1.2:目标跟踪任务分类

  • 单目标跟踪:给定一个目标,追踪这个目标的位置

    • 单目标,单摄像头
      无模型的,只有第一帧指定的 框
      短期跟踪,不支持重新检测,丢失后,就跟踪失败
      跟踪器不使用任何未来帧。
    • 主要逻辑
    启动跟踪器 Setup tracker
        设置目标区域 Read initial object region and first image
        初始化跟踪器 Initialize tracker with provided region and image
        循环 loop
            读取下一张图像 Read next image
            图像为空 if image is empty then
                跳出循环 Break the tracking loop
            end if
            更新跟踪器 Update tracker with provided image
            记录目标区域 Write region to file
        结束循环 end loop
        清理跟踪器 Cleanup tracker
    
  • 多目标跟踪:追踪多个目标的位置

  • Person Re-ID - 行人重识别
    利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合。

  • MTMCT - 多目标多摄像头跟踪(Multi-target Multi-camera Tracking):跟踪多个摄像头拍摄的多个人

  • 姿态跟踪

    • Step1:姿态估计(Pose Estimation):在每一帧中检测人体的关键点。这可能是基于深度学习的方法,如使用卷积神经网络(CNN)来预测关键点的位置。
    • Step2:姿态关联(Pose Association): 在视频序列的连续帧中将检测到的人体姿态与之前跟踪的姿态相匹配,以确保同一个人的姿态在整个视频中能够被正确地关联起来

按照任务计算类型又可以分为以下2类

  • 在线跟踪:在线跟踪需要实时处理任务,通过过去和现在帧来跟踪未来帧中物体的位置。
  • 离线跟踪 :离线跟踪是离线处理任务,可以通过过去、现在和未来的帧来推断物体的位置,因此准确率会在线跟踪高。

1.3:目标跟踪的困难点

  • 形态变化 - 姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时, 会导致它的特征以及外观模型发生改变, 容易导致跟踪失败。例如:体育比赛中的运动员、马路上的行人。

  • 尺度变化 - 尺度的自适应也是目标跟踪中的关键问题。当目标尺度缩小时, 由于跟踪框不能自适应跟踪, 会将很多背景信息包含在内, 导致目标模型的更新错误:当目标尺度增大时, 由于跟踪框不能将目标完全包括在内, 跟踪框内目标信息不全, 也会导致目标模型的更新错误。因此, 实现尺度自适应跟踪是十分必要的。

  • 遮挡与消失 - 目标在运动过程中可能出现被遮挡或者短暂的消失情况。当这种情况发生时, 跟踪框容易将遮挡物以及背景信息包含在跟踪框内, 会导致后续帧中的跟踪目标漂移到遮挡物上面。若目标被完全遮挡时, 由于找不到目标的对应模型, 会导致跟踪失败。

  • 图像模糊 - 光照强度变化, 目标快速运动, 低分辨率等情况会导致图像模型, 尤其是在运动目标与背景相似的情况下更为明显。因此, 选择有效的特征对目标和背景进行区分非常必要。

二、目标跟踪算法介绍

在这里插入图片描述

2.1:生成式模型

参考:http://www.cse.psu.edu/~rtc12/CSE598C/meanshiftIntro.pdf

Appearance-Based Tracking 代表算法:均值漂移算法(Mean Shift)、LK光流等。

在这里插入图片描述
在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,与传统的盲搜不同,它利用相邻帧之间目标位置变化不大的特点,采用迭代逼近的方式提高算法的搜索速度
在这里插入图片描述

2.2:判别式模型

目前比较流行的是判别类方法(Discriminative Tracking)

参考:https://www.cse.psu.edu/~rtc12/CSE598C/classificationTracking.pdf
https://www.cse.psu.edu/~rtc12/CSE598C/LKintro.pdf

在这里插入图片描述

  • 核心思想:在视频序列中区分目标对象和背景环境,即学习一个分类器或者一个滤波器来判别目标和非目标

步骤如下:

  1. 特征提取:
    从目标对象和周围的背景区域提取特征。这些特征可以是手工设计的,如HOG(方向梯度直方图)、SIFT(尺度不变特征变换)等,或者是深度学习方法自动学习得到的特征。
  2. 模型训练:
    使用提取的特征训练一个判别模型。这个模型的任务是区分目标和背景。训练过程可以使用正样本(目标)和负样本(背景)来完成。
  3. 目标定位:
    在后续的视频帧中,判别模型被用来搜索和定位目标。定位通常是通过在新帧中评估多个候选区域,并选择判别模型输出最高分数的区域作为目标的新位置。
  4. 在线更新:⭐
    跟踪过程中,目标的外观可能会变化,因此判别模型需要在线更新以适应这些变化。更新策略可以是增量学习或者使用一种滑动窗口机制来逐渐忘记旧的样本

    这里其实就体现了目标跟踪和目标检测的不同,目标跟踪需要不断利用连续帧之间的信息,进行跟踪。而目标检测or分类是处理静态的图片帧,一旦模型训练的足够好,就可以达到理想效果。

  5. 尺度和旋转处理:
    目标在移动过程中可能会发生尺度变化或旋转。判别式跟踪方法需要有一定的机制来适应这些变化。

判别式跟踪方法的代表包括:

  • TLD (Tracking-Learning-Detection): TLD跟踪器将跟踪、学习和检测结合起来,以应对长时跟踪中的目标外观变化。
  • Struck (Structured Output Tracking with Kernels): Struck跟踪器使用结构化输出SVM并结合核技巧来进行目标跟踪。
  • MOSSE (Minimum Output Sum of Squared Error): MOSSE使用相关滤波器进行快速跟踪,并具有很好的实时性和准确性。
  • KCF (Kernelized Correlation Filters): KCF通过核技巧增强相关滤波器的性能,能够处理非线性特征空间。
  • DCF (Discriminative Correlation Filters): DCF基于相关滤波器,通过学习区分目标和背景的滤波器系数进行跟踪。

深度学习方法,如基于卷积神经网络(CNN)和孪生网络的跟踪器,其实也可以归类为判别式方法,因为它们通常涉及到训练一个能够区分目标和背景的网络

判别式跟踪方法的优点在于它们通常能提供较高的跟踪精度,并且能较好地处理遮挡、光照变化和背景干扰等问题。然而,这些方法的挑战在于需要有效的在线更新机制以及对目标外观变化的适应性

判别式方法的目标跟踪与目标检测的主要关联和区别在于后者通常作为跟踪任务的一个组成部分。在跟踪的开始阶段,可以使用目标检测来初始化跟踪器,之后目标跟踪算法会接管,持续追踪目标对象随时间的移动和变化

2.4:总结

生成式目标跟踪方法与相关滤波的判别式目标跟踪方法有几个关键的区别:

  • 模型概念:
    • 生成式方法:生成式跟踪方法的核心思想是建模目标的外观,并尝试在后续帧中重新找到这个外观。它通常通过建立一个目标的外观模型,然后在新的帧中寻找与该模型最相似的区域。
    • 判别式方法(如相关滤波):判别式方法是基于区分目标和背景的思想。它学习一个分类器或者滤波器来区分目标和周围的背景。相关滤波跟踪算法通过训练相关滤波器最大化目标和非目标之间的响应差异
  • 目标定位:
    • 生成式方法:在新的帧中,生成式方法通常通过寻找与模型最相似的区域来定位目标,通常使用搜索窗口在整个图像中搜索。
    • 判别式方法:相关滤波算法使用滤波器在目标周围的区域进行卷积,产生一个响应图,并在这个响应图中找到最大响应值对应的位置作为目标的新位置。
  • 处理遮挡和变化
    • 生成式方法:生成式方法依赖于目标的外观模型,如果目标发生显著变化或遭受遮挡,这种方法可能会丢失目标。
    • 判别式方法:相关滤波算法能够在线更新滤波器来适应目标的外观变化,这使得它们在处理遮挡和外观变化时通常更为鲁棒。
  • 实时性:
    • 生成式方法:尽管一些生成式方法可以实现快速跟踪,但是它们在搜索过程中可能会受到计算效率的限制。
    • 判别式方法:相关滤波算法特别适合于实时跟踪,因为它们在频域中进行计算,可以利用快速傅里叶变换来加速响应图的生成。
  • 背景信息:
    • 生成式方法:这种方法主要关注于目标的表示,没有显式地利用背景信息。
    • 判别式方法:相关滤波以及其他判别式方法通过考虑背景,学习一个可以区分目标和背景的滤波器。

在实际应用中,选择哪种跟踪方法取决于特定的任务需求、环境条件以及性能要求。有时,为了提高跟踪的稳定性和准确性,也会将生成式和判别式方法结合起来使用。

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

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

相关文章

解决 Node.js 中 npm ERR! errno CERT_HAS_EXPIRED问题

出自 BV1MN411y7pw, P94 黑马AJAX-Node.js-Webpack教学视频中npm包下载dayjs出错情况 输入 npm i dayjs指令之后出错: npm ERR! errno CERT_HAS_EXPIREDnpm ERR! A complete log of this run can be found in: C:\Users\24541\AppData\Local\npm-cache…

【leetcode C++】最小栈

leetcode 155. 最小栈 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获…

lspci详解

lspci的作用 lspci是一个Linux命令,用于列出系统中的PCI总线设备信息。PCI(Peripheral Component Interconnect)是一种常见的计算机总线标准,用于连接各种外部设备(如网卡、显卡、声卡等)到计算机主板上。…

【CVPR2024】ReID3D:首个使用激光雷达行人充实别 ReID 的工作!

【2024 行人重识别最新进展】ReID3D:首个关注激光雷达行人 ReID 的工作! 摘要:数据集:方法模型:多任务预训练:ReID Network: 实验结果:结论: 来源:Arxiv 2023…

mysql中 COALESCE和CASE WHEN的使用以及创建或替换视图

create or replace view 自理能力评估视图 as SELECT ehr_zlnlpg.ID AS ID, ehr_zlnlpg.GRID AS GRID, ehr_zlnlpg.TJID AS TJID, ehr_grjbxx.Name AS 姓名, ehr_grjbxx.Sex AS 性别, ehr_grjbxx.Cardnum AS 身份证号, ehr_zlnlpg.SCORESUM AS 总…

设计模式学习笔记 - 规范与重构 - 5.如何通过封装、抽象、模块化、中间层解耦代码?

前言 《规范与重构 - 1.什么情况下要重构?重构什么?又该如何重构?》讲过,重构可以分为大规模高层重构(简称 “大型重构”)和小规模低层次重构(简称 “小型重构”)。大型重构是对系统…

UI自动化测试使用场景及脚本录制

经常有人会问,什么样的项目才适合进行UI自动化测试呢?UI自动化测试相当于模拟手工测试,通过程序去操作页面上的控件。而在实际测试过程中,经常会遇到无法找到控件,或者因控件定义变更而带来的维护成本等问题。 哪些场…

MySQL 事务的原理以及长事务的预防和处置

transaction_isolation 隔离级别 读未提交 读提交 视图是在每个 SQL 语句开始执行的时候创建的 可重复读 视图是在事务启动时创建的,整个事务存在期间都用这个视图 串行化…

目标检测算法

图像识别三大任务 目标识别:或者说分类,定性目标,确定目标是什么目标检测:定位目标,确定目标是什么以及位置目标分割:像素级的对前景与背景进行分类,将背景剔除 目标检测定义 识别图片中有哪…

数据结构与算法第四套试卷(青科大)

1.图 无向图入度出度之和 所有入度之和为2*边数 2.树 **知识点:**注意二叉排序树!深度平衡树,所以可能会出现极端现象(链表),时间复杂度为0(n),如果为最好情况即为0(logn) 3.图 1.邻接表n个…

STM32利用标准库编写同时输出4路PWM信号的程序(Proteus)仿真

先看看结果: 这个是根据上午发的文章的基础上更改的,很简单,只是用了一个定时器,初始化了4个比较器而已,就可以单独的控制每一路PWM的占空比了,好了,把源文件展示一下,完事去接孩子放…

Wilson威尔逊平滑

1、威尔逊平滑引入的动机 在曝光很少的情况下,计算出的CTR并不真实可靠,而样本数越大,CTR的比例才越准确,更能反应真实情况。 为了衡量样本数对于CTR信区间的影响,我们引入"威尔逊(Wilson&#xff0…

2024暑期实习八股笔记

文章目录 自我介绍MySQL索引索引种类、B树聚簇索引、非聚簇索引联合索引、最左前缀匹配原则索引下推索引失效索引优化 日志、缓冲池redo log(重做日志)刷盘时机日志文件组 bin log(归档日志)记录格式写入机制 两阶段提交undo log&…

骨传导耳机如何选购?新手必看的6个避雷小妙招!

在短短几年内,骨传导耳机的市场规模一路攀升,今年甚至有望成为最受欢迎的蓝牙耳机款式,但与此同时,整个骨传导耳机行业也频繁出现乱象,不专业产品鱼龙混杂,令人吃惊的是,还有许多中小网红品牌也…

ctfshow web入门 php特性总结

1.web89 intval函数的利用,intval函数获取变量的整数值,失败时返回0,空的数组返回,非空数组返回1 num[]1 intval ( mixed $var [, int $base 10 ] ) : int Note: 如果 base 是 0,通过检测 var 的格式来决定使用的进…

【Redis】RedisTemplate序列化传输数据

使用自定义的序列化器 使用RedisTemplate默认的序列化器发送数据,会将key全都当成Object处理,从而按照对象的方式转成json格式发送到服务器,这样会导致两个问题。一是不方便阅读,二是会大大浪费内存。因此,建议自定义…

SQLiteC/C++接口详细介绍(一)

上一篇:SQLiteC/C接口简介 下一篇:SQLiteC/C接口详细介绍(二) 引言: SQLite C/C 数据库接口是一个流行的SQLite库使用形式,它允许开发者在C和C代码中嵌入 SQLite 基本功能的解决方案。通过 SQLite C/C 数据…

企业内部培训考试系统题库功能开发说明

学练考结合中,练是很关键的一环,将考察学习成功的试题导入企业内部培训考试系统的题库中,既可以作为日常学习后的作业巩固练习,又可以组卷进入正式考试里的试卷里。日常考试前更是可以反复练习题库里的各种试题。 校营宝企业内部…

LLM 构建Data Muti-Agents 赋能数据分析平台的实践之①:数据采集

一、 概述 在推进产业数字化的过程中,数据作为最重要的资源是优化产业管控过程和提升产业数字化水平的基础一环,如何实现数据采集工作的便利化、高效化、智能化是降低数据分析体系运转成本以及推动数据价值挖掘体系的基础手段。随着数字化在产业端的推进…

AXI相关知识点

1、Axcache相关知识点 xilinx 文档Pg059推荐: . Xilinx recommends that master devices drive their AW/RCACHE outputs to 0b0011 to allow the AXI Interconnect core to pack data while performing width conversion. 下面这篇文档对Axcache讲解的非常通俗易…