目标追踪学习经验总结

标题目标追踪算法学习经验总结
  最近对目标追踪算法进行了学习,以下是我的学习经验,如有不对之处,欢迎大家指正。

1、简介

1.1 定义

  目标跟踪是通过分析视频图片序列,对检测出的各个候选目标区域实施匹配,定位出这些目标在图像中的坐标位置,然后得到一系列相同目标的连续变化的过程。

1.2 分类

单目标跟踪:给定某视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。
多目标跟踪(MOT):追踪多个目标的大小和位置,且每一帧中目标的数量和位置都可能变化。
重识别(Re-ID):即给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合。

1.3 难点

1.遮挡与消失;
2.形态变化;
3.运动模糊;
4.复杂背景;
5.准确性与实时性。

2、多目标追踪

2.1 分类

在线追踪:仅利用当前帧与过去帧的信息,与人眼类似;
离线追踪:可以利用当前帧、过去帧、未来帧的信息进行追踪。
  主流方法是TBD(Tracking-by-Detection),即先进行目标检测,再对生成的检测框进行匹配跟踪。还有一种算法是JDE,即使用类似检测的算法直接实现跟踪。

2.2 基本步骤

1.给定视频的原始帧;
2.运行对象检测器以获得对象的边界框;
3.对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;
4.相似度计算步骤计算两个对象属于同一目标的概率;
5.关联步骤为每个对象分配数字ID。

2.3 主要评价指标

一、MOTA(MOT Accuracy)
  衡量检测物体和保持轨迹方面的性能
在这里插入图片描述
FN:未检测到的GT框数目(漏检)
FP: 不能与GT框相匹配的预测框数量;
IDSW:GT框所分配的id变化次数。
  MOTA考虑了FN、FP、ID Switch 三个问题,对所有帧求和,缺点是FN、FP的比重过大、更考虑检测器的性能。
二、MOTP(MOT Precision)
  衡量定位精度(检测器性能)
在这里插入图片描述
  分母为t帧总共匹配的数目,分子的d表示检测框与实际GT框之间的距离。
三、ID Scores
IDP(识别精确度):整体评价精确度的好坏。
在这里插入图片描述
IDF1(平均数比率):正确的目标检测数与真实数和计算检测数和的平均数比率。
在这里插入图片描述
IDR(识别召回率):当IDF1-score最高时正确预测的目标数与真实目标数之比。
在这里插入图片描述
IDTP:在整个视频中检测目标被正确分配的数量;
IDFN:在整个视频中检测目标被漏分配的数量;
IDFP: 在整个视频中检测目标被错误分配的数量。

3、经典算法

3.1 Sort

  全称(Simple Online and Realtime Tracking)
  由目标检测、卡尔曼滤波、匈牙利匹配算法组成。
  优缺点:原理简单、易于实现;但当目标物被遮挡时,准确率急剧下降。

3.1.1 目标检测

  原论文使用Faster R-CNN,也可以使用YOLO系列等等目标检测模型。

3.1.2 卡尔曼滤波

定义:是一个去噪算法,结合先验经验与当前测量更新的状态估计算法;在SORT中,即将数学模型根据上一帧轨迹进行预测的预测框与当前帧对应的检测器检测的检测框进行融合,找到最优估计值。
作用:检测器所得到的预测框不够准确; 俩帧之间的间距很小,目标物的外形、运动特征具有较高相似度,是可以通过上一帧的信息对当前帧的位置进行预测。
简单流程
在这里插入图片描述

3.1.3 匈牙利匹配

  匈牙利算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。它的基本原则就是在原有匹配(最开始的按优先顺序匹配)基础上重新分配,看是否可以添加一个新的匹配。
  简单原理:假设存在俩个集合S,T。S中有m个元素,T中有n个元素,集合内部的元素不相连,匈牙利算法则是要把俩个集合中的元素进行俩俩匹配。匹配原则为:“损失最小”。
  在SORT中,将检测器在当前帧检测到的m个检测框与n个轨迹预测的预测框进行IOU距离计算,得到n*m的IoU代价矩阵,其中COSTij就表示预测框i与检测框j的IOU损失;去除小于置信度阈值的元素;再使用匈牙利算法进行递归匹配,最终得到三个集合,分别为匹配上的轨迹,未匹配上的轨迹,未匹配上的检测框。

3.1.4 算法流程

在这里插入图片描述

3.2 DeepSort

在SORT基础上进行改进,相比于SORT,多了级联匹配,以及新轨迹确认。

3.2.1 马氏距离

运动模型、又称为协方差距离,可以有效计算俩个未知样本集相似度的方法,度量预测和检测的匹配程度。
在这里插入图片描述
其中,d和y分别代表测量分布和预测分布;S为两个分布之间的协方差矩阵,它是一个实对称正定矩阵。

3.2.2 余弦距离

当物体的运动状态的不确定性较低时,可以使用马氏距离。但是当目标物突然加减速,运动状态快速变化时,就要使用余弦距离来度量预测与检测之间的表观特征间的距离。
DeepSort为每个目标物设计了一个“深度外观特征描述符”,是一个在行人重识别数据集上离线训练的 ReID 网络提取到的 128 维单位特征向量(模长为 1 )。对于每个追踪器 tracker,保留它最后 100 个与检测框关联成功的外观特征描述符集合 R 并计算出它们和检测框的最小余弦距离:
在这里插入图片描述
同上,余弦距离这部分也使用了一个指示器,如果余弦距离小于,则认为匹配上。这个阈值在代码中被设置为0.2(由参数max_dist控制),这个属于超参数,在人脸识别中一般设置为0.6。

3.2.3 级联匹配

目的:当物体被长时间遮挡时,卡尔曼滤波器不能对目标状态准确预测。但是当两个轨迹竞争同一检测框时,其中一个是长期丢失目标的轨迹A,一个是短期丢失目标的轨迹B,马氏距离会带来较大的不确定性。会导致A优先于B被匹配,但这很可能是错误匹配,造成目标物ID的连续变换。因此,Deep Sort引入了级联匹配,来赋予更少丢失目标的轨迹的优先匹配权。
步骤
1、输入跟踪目标轨迹集合T,当前帧检测器检测的检测框集合D,允许连续被遮挡的最大帧数A_max。
2、计算T与D的运动及外观匹配度矩阵C;
在这里插入图片描述
可以通过超参数λ来控制每个指标对合并成本的影响。在论文中,发现当摄像机运动较大时,将λ=0 ,即只使用余弦距离,而不使用马氏距离。马氏距离仅作为门控矩阵过滤马氏距离较远的检测框。
3、计算T与D的阈值矩阵;
4、对成功匹配集合P、未成功匹配预测框集合U进行初始化;
5、开始匹配,对于没丢失过的轨迹优先匹配,丢失最久的轨迹最后匹配。
在这里插入图片描述

3.2.4 算法流程

激活轨迹:已连续俩帧以上追踪到的轨迹;
未激活轨迹:新轨迹,仅一帧检测到的轨迹;
失追轨迹:丢失目标物的轨迹(age<A_max)。
age:丢失目标的帧数;
A_max:允许最大丢失目标帧数。
在这里插入图片描述

3.3 ByteTrack

  相比于DeepSORT,ByteTrack认为检测器所得到的低置信度的检测框仍有作用,很可能是目标物被部分遮挡而导致的低置信度,因此算法对低分的检测框也进行了一次匹配。
  同时,相比于DeepSORT,ByteTrack仅在检测器部分使用了深度学习算法,而跟踪器部分并没有使用。

3.3.1 算法流程

在这里插入图片描述

3.4 BoT-Sort

  在ByteTrack的基础上进行改进,拥有BoT-SORT、BoT-SORT-ReID(多了一个重识别)俩个版本。
  改进:1、卡尔曼滤波的状态变量改进;2、加入相机运动补偿(CMC),即利用稀疏光流(目标外画面中的关键点)来获得俩帧之间画面的移动,进而补偿卡尔曼滤波算法的状态估计过程;3、IoU距离与Re-ID特征的余弦距离的融合。

3.4.1 KF中的状态向量改进

在这里插入图片描述

3.4.2 相机运动补偿

  动态相机运动场景下,目标边界框的位置可能发生剧烈变化,在静态情况下,也有可能由于风等原因造成相机移动。
  使用OpenCV中的全局运动补偿(GMC),将前后俩帧的图像配准转化为相机的运动在二维平面上的投影,即通过转化坐标系,将后一帧的图像进行投影,使其与前一帧的图像配准。

3.4.3 IoU距离与ReID特征的余弦特征融合

在这里插入图片描述在这里插入图片描述

没有使用DeepSort中的超参数λ。

3.4.4 算法流程

在这里插入图片描述

4 总结与对比

4.1 参数对比

BoTSort论文中
在这里插入图片描述

4.2 总结

在这里插入图片描述

  目标检测器的性能很大程度上影响整个跟踪算法的精度,如ByteTrack也是由于检测器精度够高,才能对低分检测框进行利用;
  Re-ID能够一定程度上解决短时间内目标遮挡的现象,但会降低模型运行速度;
  相机运动补偿可以提高一定的跟踪精度。

5、 参考链接

1、实时目标追踪:ByteTrack算法步骤详解和代码逐行解析
2、【论文阅读5】BoT-SORT:Robust Associations Multi-Pedestrian Tracking
3、【论文-目标追踪】BoT-SORT: Robust Associations Multi-Pedestrian Tracking
4、多目标跟踪算法 | DeepSort
5、多目标跟踪入门篇(1):SORT算法详解
6、深入浅出——零基础一文读懂DeepSORT(原理篇)
7、目标追踪—deepsort原理讲解
8、目标跟踪概念、多目标跟踪算法SORT和deep SORT原理
9、知乎-----多目标跟踪(MOT)入门

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

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

相关文章

【面试八股】IP协议八股

IP协议八股 子网掩码的作用为什么IP协议需要分片IP协议什么时候需要分片IP协议是怎么进行分片的那么IP协议是如果进行标识属于同一个分片呢&#xff1f;TCP协议和UDP协议将数据交给IP协议之后&#xff0c;是否需要分片传输&#xff1f; 子网掩码的作用 用来标识网络号和主机号…

029-从零搭建微服务-消息队列(一)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;mingyue: &#x1f389; 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…

Java基础常考知识点(基础、集合、异常、JVM)

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; Java基础常考知识点…

笔记本摄像头怎么打开?记牢这5个简单方法!

“我有一个紧急视频会议&#xff0c;但是关键时刻我的笔记本电脑摄像头居然打不开了&#xff0c;真的让我很崩溃。有什么方法可以快速解决这个问题吗&#xff1f;非常感谢&#xff01;” 在互联网时代&#xff0c;电脑对我们来说非常重要。而借助电脑摄像头与朋友交流或者与同事…

601-体育馆的人流量

文章目录 601-体育馆的人流量1. 题目2. 思路3. 解决4. 运行结果 601-体育馆的人流量 1. 题目 2. 思路 思路&#xff1a;查询Stadium表中人流量超过100的记录&#xff0c;将查询结果与自身的临时表连接&#xff0c;再使用where获得满足条件的记录 查询Stadium表中人流量超过10…

asp.net服装管理系统三层架构

asp.net服装管理系统三层架构说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库&#xff0c;并采用EF实体模型开发。 三层架构并采用EF实体模型开发 功能模块&#xff1a; 运行环境&#xff1…

CyclicBarrier 、CountDownLatch 、Semaphore 的用法

1 CountDownLatch&#xff08;线程计数器 &#xff09; CountDownLatch类位于java.util.concurrent 包下&#xff0c;利用它可以实现类似计数器的功能。比如有一个任务 A&#xff0c;它要等待其他 4 个任务执行完毕之后才能执行&#xff0c;此时就可以利用 CountDownLatch 来实…

第二证券:国庆档票房有望延续复苏态势 海风拐点已至

昨日&#xff0c;两市股指盘中强势轰动上扬&#xff0c;创业板指早盘一度涨近2%&#xff0c;随后涨幅逐渐收窄。到收盘&#xff0c;沪指涨0.16%报3107.32点&#xff0c;深成指涨0.44%报10104.32点&#xff0c;创业板指涨0.82%报2006.22点&#xff0c;两市算计成交7165亿元&…

iOS 视频压缩 mov转mp4 码率

最近还是因为IM模块的功能&#xff0c;IOS录制MOV视频发送后&#xff0c;安卓端无法播放&#xff0c;迫不得已兼容将MOV视频转为MP4发送。 其中mov视频包括4K/24FPS、4K/30FPS、4K/60FPS、720p HD/30FPS、1080p HD/30FPS、1080p HD/60FPS&#xff01; 使用AVAssetExportSessi…

排序学习总结

取每个对象的内接矩形框&#xff0c;然后再排序&#xff0c;根据排序的结果确定原对象顺序。 inner_rectangle1(RegionAffineTrans1, Row1, Column1, Row2, Column2) gen_rectangle1(Rect,Row1, Column1, Row2, Column2) sort_region(Rect,RectSort,character,true, row)count…

4k、VR与万兆光网

“全光万兆”对VR意义重大。 pico4的分辨率 PICO 4 的单眼分辨率是 2160 2160&#xff0c;整体分辨率高达 4320 2160。这是一款高性能的 VR 一体机&#xff0c;采用了 2.56 英寸的 Fast-LCD 屏幕&#xff0c;最高可实现 90Hz 刷新率&#xff0c;还有 1200 PPI 和 20.6 PPD 的…

一、2023.9.27.C++基础.1

回答问题一定要有逻辑性&#xff0c;我将从 这个技术是什么&#xff1f; 为什么要有这个技术&#xff1f; 这个技术底层是怎么实现的&#xff1f; 这个技术的优点缺点&#xff1f; 这个技术所适合的使用场景&#xff1f; 以下五个方面来回答问题。 文章目录 一、C基础部分&…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式&#xff08;Chain Of Responsibility&#xff09; 是一种行为设…

弱信号的采样与频谱分析(修订中...)

1.频谱混叠效应 - 波形数据抽样 这是一组经过抽样的数据的频谱&#xff0c;红圈圈出的两条谱线&#xff0c;是我们需要关注的特征谱线。这个信号与右侧的临近信号比较&#xff0c;求频率比值&#xff0c;比值恒定与理论推导相符。再5取1降低采样率后&#xff0c;大致相同的频率…

接口测试--Postman常用断言

Postman的断言是用javascript语言写的 引入--什么是断言 结果中的特定属性或值与预期做对比&#xff0c;如果一致&#xff0c;则用例通过&#xff0c;如果不一致&#xff0c;断言失败&#xff0c;用例失败。断言&#xff0c;是一个完整测试用例所不可或缺的一部分&#xff0c…

Linux系统上使用SQLite

1. 安装SQLite 在Linux上安装SQLite非常简单。可以使用包管理器&#xff08;如apt、yum&#xff09;直接从官方软件源安装SQLite。例如&#xff0c;在Ubuntu上使用以下命令安装SQLite&#xff1a; sudo apt-get install sqlite32. 打开或创建数据库 要打开或创建一个SQLite数…

5月22日比特币披萨日,今天你吃披萨了吗?

比特币披萨日 1. Laszlo Hanyecz2. 最贵披萨诞生记3. 梭哈买披萨4. 未完待续 2010年5月22日&#xff0c;美国佛罗里达州的程序员Laszlo Hanyecz&#xff08;拉兹洛哈涅克斯&#xff09;用10000个比特币购买了棒约翰&#xff08;Papa Johns&#xff09;比萨店一个价值25美元的奶…

什么人适合学NPDP产品经理认证?

NPDP产品经理认证&#xff0c;最适合学的就是产品经理了&#xff0c;但是证书没有局限性&#xff0c;适用于所有与产品开发相关的行业和领域&#xff0c;特别是那些需要提高产品成功率和效率的团队成员。就是一句话&#xff0c;只要你觉得有用&#xff0c;都可以考。 通过学习N…

Softing物联网(IoT)方案之OT/IT数据集成

一 利用数据提高效率和绩效 多年以来数据集成和工业物联网一直在推动着市场的发展&#xff0c;目前我们已经能够集成并成功使用先进的技术、大量的传感器和复杂的数据格式等。而在工业物联网或工业4.0中&#xff0c;还有运营技术&#xff08;OT&#xff09;和信息技术&#xf…

Video Caption / 视频字幕:常用指标(BELU-4,ROUGE-L,METEOR,CIDEr,SPICE)和数据集总结

本文作为入门Video Caption / 视频字幕 的随笔记录&#xff0c;用于查漏补缺和回顾&#xff0c;难免有疏漏和不足指出&#xff0c;烦请指出&#xff01; 一、指标 Video Caption / 视频字幕常用的标准指标有四种&#xff1a;BLEU-1[1]&#xff0c;BLEU-2[1]&#xff0c;BLEU-3[…