多目标追踪概述

news2025/1/12 23:04:52

1. 目标跟踪分类

  1. 单目标跟踪:在视频的初始帧画面上框出单个目标,预测后续帧中该目标的大小与位置
  2. 多目标跟踪:追踪多个目标的大小和位置,且每一帧中目标的数量和位置都可能变化

2. 多目标跟踪目前的主要问题

  1. 形态变化:姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时, 会导致它的特征以及外观模型发生改变, 容易导致跟踪失败。

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

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

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

3. 多目标跟踪概述

多目标追踪算法主要解决的问题是对视频中每一帧画面里我们标定或者想要追踪的目标进行检测并获取在图像中的位置,对每个目标分配一个id,在目标运动过程中,维持每个目标的 id保持不变。在多目标追踪问题中,目标追踪算法需要对视频中每帧图像里的所有目标进行检测,将检测到的新目标与已经分配轨迹的目标进行匹配,如果匹配成功,将归类于已有轨迹的目标中,对没有匹配成功的目标,将其归类为新出现的目标,需要分配一个新的id,对于离开视频区域的目标,将不再对其进行轨迹追踪,并在已有轨迹的集合中将其删除。

4. 多目标跟踪方法分类

目前,多目标追踪算法根据追踪开始时是否需要人工提取特征分为两类:人工手动标记第一帧的方式(Model Free Tracking, MFT)基于目标检测的方式 ( Tracking By Detection TBD)
  MFT的跟踪模式仅能跟踪已标记目标,而TBD的跟踪模式可以自动发现新的目标,移除已消失的目标,更适应如今多目标跟踪算法的应用场景。

在这里插入图片描述

5. 行人多目标跟踪方法研究进展

5.1 基于目标检测的多目标跟踪

基于目标检测的多目标跟踪可以分为在线跟踪(Online)与离线跟踪(Offline)。
因为行人跟踪一般都是基于实时监控的多目标跟踪,因此在线多目标跟踪算法更受学者们的关注。

5.1.1 在线多目标跟踪

  • 在线多目标跟踪:是一种逐帧渐进的跟踪方式,与人眼实时跟踪目标过程类似,首先要对每个运动目标进行识别确认(目标检测),然后对其下一步的行动进行预测(轨迹预测),最终根据目标的运动方向(运动模型)、外观形体(外观模型)等特征与之前的轨迹进行关联(数据关联匹配)。

  • SORT
      SORT算法使用 Faster-RCNN 在视频序列中进行目标检测,获取目标,使用卡尔曼滤波(Kalman Filter)预测下一帧中目标的可能出现的位置信息,并采用的匈牙利算法(Hungarian method)求解每个检测到的新目标的边框与已有轨迹中的目标的所有预测边界框之间计算IOU的成本矩阵, 实现数据关联。该算法复杂度低,框架结构简单,运行速度快,虽然数据关联方面模型较为简单,易受遮挡,但为后续许优秀算法的提出做了铺垫。

  • DeepSORT
      DeepSORT算法SORT 的基础上增加了级联匹配算法(Matching Cascade)表示运动信息的马氏距离和代表外观模型的Re-id 特征,一定程度上减少了目标 ID 的变化,实现了性能的提升,具有实际应用意义。相对 SORT 算法而言,DeepSORT 算法在 MOT16数据集私人检测器的性能表现上,MOTA 值提升幅度不大, 但 ID switch 频率降低了 45%,速度接近实时要求(20 FPS)。

5.1.2 离线多目标跟踪

离线多目标跟踪:输入是一段完整的视频,并已获得了目标检测结果。与在线多目标跟踪算法逐帧渐进方式不同的是,离线多目标跟踪可获取全局信息后再进行匹配关联。

  • POI 算法
      POI 算法是一种离线多目标跟踪算法,结合了目标检测和基于深度学习的外观特征。基本思路 :在每一帧的输入上,用检测算法检测行人的位置,然后利用行人检测框的外观特征进行前后帧行人框的匹配,从而实现对行人的跟踪。

  • IOU 算法
      IOU 算法是一种离线多目标追踪算法。该算法指出,随着目标检测算法精度的不断提高,当检测精度与视频帧率较高时,可以结合简单的目标检测算法与 IOU,再通过设定阈值来判断前景与背景即可完成目标跟踪任务。即在高帧率(25 FPS)、高精度的目标检测算法情况下,结合检测与时间步长间的空间重叠完成跟踪。该算法优缺点明显,但由于未引入任何帧间信息、运动模型、外观模型,漏检和错检问题难以解决,若出现频繁遮挡、目标形变的情况,会导致 ID频繁切换,且极其依赖目标检测算法的性能。

  • LMP算法
      LMP算法的提出虽距今已有一段时间,但在 MOT16数据集上表现仍出色。该算法主要针对遮挡影响及行人重识别展开。LMP 算法提出一种新结构,结合深度网络中提取的整体表示特征和从最先进的姿态估计模型中抽取的身体姿态进行判断,从而提高准确率。主要创新点在于 :数据关联方面,LMP 算法是在最小代价多分割问题(MP)基础上改进的,将数据的关联匹配看作一种基于图的分解、聚类问题。通过设置一个基于边的目标函数来选择能最大化相同目标和不同目标概率的分量对,从而完成行人重识别的任务并改善遮挡影响,有效降低 IDs。经实验验证,LMP 算法在 2016 数据集私人检测器上性能名列前茅,MOTA 可达 71.0。

5.2 基于人工手动标记第一帧的方式的多目标跟踪

  1. 光流法:对目标对象提取特征后,在下一帧图像中通过计算该目标特征的光流匹配点,统计分析后得到目标对象的位置。
    光流法用于目标跟踪的原理:
  • (1)对一个连续的视频帧序列进行处理;
  • (2)针对每一个视频序列,利用一定的目标检测方法,检测可能出现的前景目标;
  • (3)如果某一帧出现了前景目标,找到其具有代表性的关键特征点(可以随机产生,也可以利用角点来做特征点);
  • (4)对之后的任意两个相邻视频帧而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;
  • (5)如此迭代进行,便可实现目标的跟踪
  1. 粒子滤波算法:粒子滤波(Particle Filter)方法是一种基于粒子分布统计的方法,以跟踪为例,首先对跟踪目标进行建模,并定义一种相似度度量确定粒子与目标的匹配程度。在目标搜索的过程中,它会按照一定的分布(比如均匀分布或高斯分布)撒一些粒子,统计这些粒子的相似度,确定目标可能的位置。在这些位置上,下一帧加入更多新的粒子,确保在更大概率上跟踪上目标。

  2. Meanshift 方法:Meanshift 方法是一种基于概率密度分布的跟踪方法,使目标的搜索一直沿着概率梯度上升的方向,迭代收敛到概率密度分布的局部峰值上。首先 Meanshift 会对目标进行建模,比如利用目标的颜色分布来描述目标,然后计算目标在下一帧图像上的概率分布,从而迭代得到局部最密集的区域。

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

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

相关文章

自定义el-upload 上传文件

前言 最近在做一个文件上传的功能&#xff0c;后端接口写好了、发现前端上传文件的页面不会写……&#xff08;我很笨的&#xff09;然后我就找啊找发现element有个组件是<el-upload/>能直接上传文件。我就想直接用拿来改改改成自己想要的&#xff0c;可是就是这样我花了…

Elasticsearch:了解人工智能搜索算法

作者&#xff1a;来自 Elastic Jessica Taylor, Aditya Tripathi 人工智能工具无处不在&#xff0c;其原因并不神秘。 他们可以执行各种各样的任务并找到许多日常问题的解决方案。 但这些应用程序的好坏取决于它们的人工智能搜索算法。 简单来说&#xff0c;人工智能搜索算法是…

如何搭建零售行业经营分析体系?

​怎么搭建零售行业的经营分析体系&#xff1f; 整体思路就是&#xff1a;利用数据中台基于业务全价值链的数据沉淀&#xff0c;借助大数据技术进行采集、计算、存储和加工&#xff0c;同时统一数据建模与治理&#xff0c;构建数据资产&#xff0c;充分挖掘数据&#xff0c;实…

从事通讯信息类职业岗位的任职资格

通讯信息工程师&#xff0c;主要是移动核心网和固网核心网的工程切割和维护网络安全的专业工作&#xff0c;主要负责IP数据、省网和地域网络的维护。一切跟互联网打交道的事情&#xff0c;都跟这个有关系&#xff0c;都是通讯信息类岗位的工作。从事这种工作&#xff0c;需要付…

IOBR2 更新(学习自备)

IOBR查看其收录的相关基因集(自备)_肿瘤 tme特征 iobr-CSDN博客 IOBR2&#xff1a;多维度解析肿瘤微环境 - 知乎 (zhihu.com) 学习手册&#xff1a;https://iobr.github.io/book/ &#xff08;里面有详细教程&#xff09; 系统综合的分析工具&#xff08;Immuno-Oncology Bi…

flutter简单的MethodChannel通道Demo(引入调用小红书sdk)

flutter端创建MethodChannel类 import package:flutter/services.dart;//MethodChannel const methodChannel const MethodChannel(com.flutter.demo.MethodChannel);class FlutterMethodChannel {/** MethodChannel flutter给原生发信息* 在方法通道上调用方法invokeMethod*…

基于YOLOv8深度学习+Pyqt5的电动车头盔佩戴检测系统

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;225头盔 获取完整源码源文件已标注的数据集&#xff08;1463张&#xff09;源码各文件说明配置跑通说明文档 若需要一对一远程操作在你电脑跑通&#xff0c;有偿89yuan 效果展示 基于YOLOv8深度学习PyQT5的电动车头盔佩戴检…

第十三章 Linux——备份与恢复

第十三章 Linux——备份与恢复 基本介绍安装dump和restore使用dump完成备份dump语法说明dump应用案例1dump应用案例2dump-w查看备份时间文件备份文件或者目录备注 使用restore基本语法基本介绍restore基本语法应用案例1应用案例2应用案例3应用案例4 基本介绍 实体机无法做快照…

vue2 之 Vue-Quill-Editor富文本编辑器

一、安装 1. 下载 npm i vue-quill-editor 2. 配置 页面配置 <script> import quill/dist/quill.core.css; import quill/dist/quill.snow.css; import quill/dist/quill.bubble.css; import { quillEditor } from vue-quill-editor;export default {components: { …

机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器

旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置&#xff0c;是用来检测角位移的&#xff0c;其基本结构与交流绕线式异步电动机相似&#xff0c;由定子和转子组成。 旋转变压器的原理如图1所示&#xff0c;定子相当于变压器的一次侧&#xff0c;有两组在空间位置上…

【教程】 iOS混淆加固原理篇

摘要 本文介绍了iOS应用程序混淆加固的缘由&#xff0c;编译过程以及常见的加固类型和逆向工具。详细讨论了字符串混淆、类名、方法名混淆、程序结构混淆加密等加固类型&#xff0c;并介绍了常见的逆向工具和代码虚拟化技术。 引言 在iOS开发中&#xff0c;为了保护应用程序…

matlab|基于DistFlow潮流的配电网故障重构(输入任意线路)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序采用适用于辐射状网络的DistFlow潮流模型&#xff0c;可输入任意故障线路编号&#xff0c;得到优化重构结果。这个程序是配电网故障重构可视化matlabyalmip的升级版&#xff0c;原来的程序是以电压质量作…

用39块钱的全志V851se视觉开发板做了个小相机,还可以物品识别、自动追焦!

用39块钱的V851se视觉开发板做了个小相机。 可以进行物品识别、自动追焦&#xff01; 这个超低成本的小相机是在V851se上移植使用全志在线开源版本的Tina Linux与OpenCV框架开启摄像头拍照捕获视频&#xff0c;并结合NPU实现Mobilenet v2目标分类识别以及运动追踪等功能…并最终…

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本,ps -eo pid,lstart,cmd --sort=-start_time | grep "pgz-admin"查到的结果,返回的所有进程PID,第六个之上的,全部kill 当然,你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例子: #!/bin/bash# 获取包含 "pgz-admin"…

SSM框架学习笔记07 | Spring MVC入门

文章目录 1. HTTP协议2. Spring MVC2.1. 三层架构2.2. MVC&#xff08;解决表现层的问题&#xff09;2.3. 核心组件 3. Thymeleaf3.1. 模板引擎3.2. Thymeleaf3.3. 常用语法 代码 1. HTTP协议 网址&#xff1a;https://www.ietf.org/ &#xff08;官网网址&#xff09; https:…

什么是系统工程(字幕)37

0 00:00:00,740 --> 00:00:03,200 但是呢&#xff0c;我们往后面看 1 00:00:04,100 --> 00:00:08,920 刚才我们讲到那个说&#xff0c;应该是组合关系 2 00:00:08,920 --> 00:00:09,522 对吧 3 00:00:09,522 --> 00:00:11,330 不是泛化关系 4 00:00:12,520 --&…

JavaWeb 自己给服务器安装SQL Server数据库遇到的坑

之前买的虚拟主机免费送了一个SQL Server数据库&#xff0c;由于服务器提供商今年下架我用的那款虚拟主机产品&#xff0c;所以数据库也被收回了。我买了阿里云云服务器&#xff0c;但是没有数据库&#xff0c;于是自己装了一个SQL Server数据库&#xff0c;总结一下遇到的坑。…

JAVA毕业设计129—基于Java+Springboot+thymeleaf的物业管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootthymeleaf的物业管理系统(源代码数据库)129 一、系统介绍 本项目前后端分离&#xff0c;本系统分为管理员、小区管理员、用户三种角色 1、用户&#xff1a; 登…

栈和堆什么意思,Rust所有权机制又是什么

栈和堆什么意思 栈&#xff1a;存储基本数据类型和引用数据类型的指针引用(地址)&#xff0c;基本数据类型占据固定大小的内存空间。 堆&#xff1a;存储引用数据类型的值&#xff0c;引用数据类型包括对象&#xff0c;数组和函数&#xff0c;在堆中&#xff0c;引用数据类型…

WhatsApp Business API入门:功能、收费、申请方法全解析

WhatsApp Business API是为企业量身打造的一种高级服务&#xff0c;它提供了一组编程接口&#xff08;API&#xff09;&#xff0c;而不是一个可以直接操作的用户界面。与免费版的WhatsApp Business应用不同&#xff0c;WhatsApp Business API并不能在应用商店如App Store或Goo…