首页 > 其他分享 >DeepSort:基于检测的目标跟踪的经典

DeepSort:基于检测的目标跟踪的经典

时间:2023-08-19 17:34:31浏览次数:32  
标签:DeepSort 轨迹 匹配 140 检测 距离 跟踪 马氏 经典


本文来自公众号“AI大道理” DeepSORT在SORT的基础上引入了深度学习的特征表示和更强大的目标关联方式,有效地减少了身份切换的数量,缓解了重识别问题。​ ​   添加图片注释,不超过 140 字(可选) 1、DeepSORT简介 DeepSORT的主要思想是将目标检测和目标跟踪两个任务相结合。首先使用目标检测算法(Faster R-CNN等)在每一帧中检测出目标物体的位置和边界框。然后,通过深度学习模型(如CNN)提取目标的特征表示,将每个目标与先前帧中已跟踪的目标进行匹配。匹配过程中会考虑目标的特征相似度、运动一致性等因素,以确定目标的身份和轨迹。DeepSORT的关键贡献之一是使用了一个强大的外观特征描述符,可以准确地区分不同目标之间的相似度。DeepSORT还通过处理目标的消失和重新出现等复杂情况,实现了对长期跟踪的支持。 主要技术特点:

  • 级联匹配
  • ReID 网络
  • 马氏距离
  • 余弦距离
  ​   添加图片注释,不超过 140 字(可选) 2、级联匹配 原因:当一个目标长时间被遮挡之后,kalman滤波预测的不确定性就会大大增加,状态空间内的可观察性就会大大降低。 假如此时两个追踪器竞争同一个检测结果的匹配权,往往遮挡时间较长的那条轨迹的马氏距离更小,使得检测结果更可能和遮挡时间较长的那条轨迹相关联,这种不理想的效果往往会破坏追踪的持续性。这么理解吧,假设本来协方差矩阵是一个正态分布,那么连续的预测不更新就会导致这个正态分布的方差越来越大,那么离均值欧氏距离远的点可能和之前分布中离得较近的点获得同样的马氏距离值。所以,作者使用了级联匹配来对更加频繁出现的目标赋予优先权。 匹配: 为什么叫级联匹配,主要是它的匹配过程是一个循环。即从missing age=0的轨迹,每一帧都匹配上,没有丢失过的轨迹到missing age=30的轨迹,丢失轨迹的最大时间30帧的轨迹,挨个的和检测结果进行匹配。也就是说,对于没有丢失过的轨迹赋予优先匹配的权利,而丢失的最久的轨迹最后匹配。 这里丢失30帧了还给机会匹配,就是对遮挡目标的再跟踪。级联匹配的距离度量是马氏距离和余弦距离的融合,设置了两个距离的阈值,先过滤一遍。 然后利用这个融合的距离进行匈牙利算法的匹配,匹配是对检测框和预测框的匹配。而且匹配有优先级的,那些历史上一直有匹配上的轨迹优先匹配,而历史上已经已经很久没有匹配上的轨迹则最后匹配。也就是说遮挡的可能性比较小,大部分没有匹配上的轨迹可能就是目标消失了。 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 匹配流程图:   添加图片注释,不超过 140 字(可选) (蓝字只对蓝线有效) 情况1:确定的轨迹,一级匹配成功 添加图片注释,不超过 140 字(可选) 流程: (1)轨迹(上一时刻的检测框)经过kalman滤波预测后,会对当前帧预测出一组检测框。 (2)目标检测算法对当前帧进行目标检测,产生检测框。 (3)对于确定的轨迹来说与目标检测的检测框进行级联匹配,也就是利用马氏距离和图像特征相似度余弦距离进行匈牙利算法的数据关联。 (4)轨迹(上一时刻的检测框)成功与检测框匹配。 (5)进行卡尔曼滤波的融合,是检测框与预测框的融合,融合完后更新到轨迹中。 情况2:确定的轨迹,一级匹配失败,二级匹配成功 添加图片注释,不超过 140 字(可选) 匹配失败分为轨迹匹配失败和检测框匹配失败两种。轨迹匹配失败:有些轨迹没有检测框与之匹配,原因是检测可能发生了漏检,某时刻,预测的轨迹tracks还在,但是检测器没有检测到与之对应的目标;也可能是这个目标消失不见了,或者被遮挡了,没有检测框了。检测框匹配失败:有些检测框匹配不上轨迹,原因可能是某一时刻有一个物体是新进入的镜头,就会发生检测框匹配不到tracks的情况,因为这个物体是新来的,在这之前并没有它的轨迹;也可能是物体长时间被遮挡后的检测,导致检测到的物体没有可以与之匹配的轨迹(长时间遮挡超过阈值轨迹被删除)。 流程: (1)对于确定的轨迹来说与目标检测的检测框进行级联匹配,也就是利用马氏距离和图像特征相似度余弦距离进行匈牙利算法的数据关联。 (2)轨迹没有与检测框匹配,则对这些轨迹进行与检测框的IOU匹配,匹配成功。(IOU匹配可以有效匹配静态场景几何体的部分遮挡的情况,提高匹配成功率。这里相当于进行多次匹配,第一次匹配成功那就成功,匹配不上再给一次机会,进行IOU匹配,这次匹配上也算匹配上。) (3)检测框没有与轨迹匹配上,则对这些检测框进行与轨迹的IOU匹配,匹配成功。 (4)进行卡尔曼滤波的融合,是检测框与预测框的融合,融合完后更新到轨迹中。 情况3:确定的轨迹,一级匹配失败,二级匹配也失败。 添加图片注释,不超过 140 字(可选) 流程: (1)对于二级匹配失败的检测框,建立一个新的不确定的轨迹。因为匹配失败可能是视野中出现新目标了,也可能就是检测器的误检测,对这个检测框要不要建立真实轨迹是不一定的,也就是unconfirmed轨迹。 (2)这个新不确定的轨迹要经过一个考验才能成为真实轨迹,那就是要连续三帧都要有检测框对其进行成功匹配,那就确定是一个真实轨迹了。 (3)对于考核期的轨迹(3帧考核,unconfirmed轨迹),直接进行IOU匹配,匹配成功,计数加1,连续三次匹配成功,则变更为确定的轨迹。确认的轨迹接下来就会保存外观特征100帧。考察期间的轨迹在3帧内匹配失败,则直接删除,判定为偶然的误报。 (4)对于再次匹配失败的轨迹来说,如果这个轨迹是待确定的轨迹,则删除,如果是确定的轨迹,则判断接下来几帧(max age帧,30帧)是否还能匹配上,超过30帧了还不能匹配上,放弃了,这个轨迹终止了。可能是真的终止了,也可能是长时间遮挡,这个就是这个阈值max age的容忍程度了,遮挡太久就没办法了,只能认为是新目标了,也就是跟丢了。如果在30帧内,那继续给你机会进行IOU匹配,这时候即使匹配成功了,也要进行三帧考察。 ​   添加图片注释,不超过 140 字(可选) 3、ReID 网络 DeepSORT中采用了一个简单的CNN来提取被检测物体的外观特征,在每次检测追踪后,进行一次物体外观特征的提取并保存,最多保存100帧。后面每执行一步时,都要执行一次当前帧被检测物体外观特征与之前存储的外观特征的相似度计算,这个相似度将作为一个重要的判别依据。Deep Sort 采用了经过大规模人员重新识别数据集训练的 Cosine 深度特征网络,该数据集包含 1,261 位行人的 1,100,000 多张图像,使其非常适合在人员跟踪环境中进行深度度量学习。Cosine 深度特征网络使用了宽残差网络,该网络具有 2 个卷积层和 6 个残差块,L2 归一化层能够计算不同行人间的相似性,以与余弦外观度量兼容。通过计算行人间的余弦距离,余弦距离越小,两行人图像越相似。Cosine 深度特征网络结构如下图所示。   添加图片注释,不超过 140 字(可选)   使用 Cosine 深度特征网络参数,将每个检测框内图片压缩为最能表征图片特异信息的128维向量,并归一化后得到外观描述向量。 ​   添加图片注释,不超过 140 字(可选) 4、马氏距离 DeepSort使用马氏距离表示检测框到轨迹的距离,马氏距离就是“加强版的欧氏距离”。马氏距离规避了欧氏距离中对于数据特征方差不同的风险,在计算中添加了协方差矩阵,其目的就是进行方差归一化,从而使所谓的“距离”更加符合数据特征以及实际意义。马氏距离是旋转变换缩放后的欧氏距离,它将样本的协方差矩阵纳入距离度量计算,相当于对欧式距离的修正。马氏距离完成正交,解决了特征间相关性的问题,内含标准化,解决了特征间尺度不一致的问题。马氏距离可用于判断点到某个分布的距离。马氏距离是表示数据的协方差距离,计算两个未知样本集的相似度的方法。公式:马氏距离是旋转变换缩放后的欧氏距离,所以马氏距离的计算公式可以由欧式距离推导而来。 添加图片注释,不超过 140 字(可选)   如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离。欧式距离两个分量的权值都是1,而马氏距离可以是其他值。 等距线: 旋转椭圆 添加图片注释,不超过 140 字(可选) 马氏距离,将变量按照主成分进行旋转,让维度间相互独立,然后进行标准化,让维度同分布。 ​   添加图片注释,不超过 140 字(可选) 5、余弦距离 由于马氏距离在遮挡后的度量有些问题,因此DeepSort加入了图像特征相似度度来进行综合判断。余弦距离则是一种相似度度量方式。马氏距离是针对于位置进行区分,而余弦距离则是针对于方向和特征。余弦相似度是一种常用的衡量向量之间相似度的方法,它可以用于计算两个向量之间的夹角的余弦值。在图像相似度计算中,可以将图像转换为特征向量,在DeepSort中就是使用了ReID网络,然后使用余弦相似度来比较这些特征向量的相似程度。余弦相似度的计算公式如下: 添加图片注释,不超过 140 字(可选) 其中,A和B分别表示两个向量,·表示向量的点积,||A||和||B||表示向量的范数(即向量的长度)。余弦相似度的取值范围在 -1 到 1 之间,值越接近 1 表示两个向量越相似,越接近 -1 表示两个向量越不相似,接近 0 表示两个向量之间没有明显的相似性或差异。在图像相似度计算中,可以将图像转换为特征向量(如使用卷积神经网络提取的特征向量),然后计算这些特征向量之间的余弦相似度来衡量图像的相似性。 添加图片注释,不超过 140 字(可选)     ​   添加图片注释,不超过 140 字(可选) 6、总结 DeepSort着重要解决的一个问题就是遮挡后的ID切换的问题,在遮挡一段时间后不管是IOU距离还是马氏距离,其实效果都不是很理想。 因此要想建立这种远程联系就要进行特征比对。这个很像孪生网络的思想,建立一个历史目标库,检测框与目标库一一比对,相似度高的就是同一个目标,进行轨迹关联。因此这里的ReID网络自然也可以用孪生网络来做。孪生网络的应用有两种思路,一种就是当做ReID网络来用,下一帧使用检测器检测出来,然后对框内的目标进行相似度比对,这是判别式的思想。另一种是当做生成式来用,对上一帧的检测框里面的目标进行特征提取,然后下一帧就不用检测器了,而是直接去所搜区域,逐一进行相似度比对找到目标。   添加图片注释,不超过 140 字(可选) —————— 浅谈则止,细致入微AI大道理 扫描下方“AI大道理”,选择“关注”公众号—————————————————————   添加图片注释,不超过 140 字(可选)   —————————————————————     |    

标签:DeepSort,轨迹,匹配,140,检测,距离,跟踪,马氏,经典
From: https://www.cnblogs.com/AIBigTruth/p/17642766.html

相关文章

  • 经典c语言排序算法
    前言前段时间偶然在公众号中看到了一篇汇总c语言排序算法的文章,感觉蛮不错的,这里直接copy记录下,学习积累一下。演示C语言经典排序算法(qq.com)排序算法简介1.算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(n......
  • EF跟踪与非跟踪查询
    EF跟踪查询非跟踪查询  EntityFrameworkCore使用语言集成查询(LINQ)来查询数据库中的数据。  跟踪行为控制EntityFrameworkCore是否在其更改跟踪器中保留有关实体实例的信息。如果跟踪实体,在期间 SaveChanges,实体中检测到的任何更改将保存到数据库中。跟踪查询......
  • 带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击
    本文分享自华为云社区《[论文阅读](21)S&P21Survivalism:Living-Off-The-Land 经典离地攻击》,作者:eastmount。摘要随着恶意软件检测算法和方法变得越来越复杂(sophisticated),恶意软件作者也采用(adopt)同样复杂的逃避机制(evasionmechansims)来对抗(defeat)它们。民间证据表明离......
  • python rasa聊天机器人教程五:经典事例查询天气
    从用户输入的消息中提取城市信息然后查询天气信息1.培训数据在data/nlu.yml文件中,添加意图和实体的例子:nlu:-intent:ask_weatherexamples:|-今天[北京](city)的天气怎么样?-[上海](city)明天会下雨吗?-告诉我[广州](city)的天气-[深圳](cit......
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Cr4y1d7Mp/1、键盘敲击声解码https://arxiv.org/abs/2308.01074键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出......
  • Mybatis Interceptor 经典场景
    1.MybatisInterceptor的应用场景很多,比如sql语句动态生成,resultMap动态生成下面就用代码来分析下resultMap动态生成吧,这个是ORM框架常用的功能哦1packagecom.xx.transjob.common.db;23importcom.baomidou.mybatisplus.annotation.TableName;4importorg.apache.......
  • (十八)MIT公开课雷达系统工程之参数估计与跟踪 (下)
    0写在前面一个人活在世界上只有一辈子,多看一本书就多活一辈子。——黄永玉《无愁河的浪荡汉子·八年》1基本介绍多目标跟踪雷达:雷达跟踪实例:2跟踪过程跟踪过程流程框图:简单跟踪任务:跟踪关联、跟踪初始化、跟踪维护、跟踪终止。跟踪过程的目标:DetectionConsolidation:自适应区......
  • (十七)MIT公开课雷达系统工程之参数估计与跟踪 (上)
    0写在前面只有走在路上,才能摆脱局限、摆脱执着,让所有的选择、探寻、猜测、想象都生机勃勃。——余秋雨《文化苦旅》1基本介绍跟踪雷达:雷达参数估计:准确度、精度和分辨率:2ObservableEstimationObservableAccuracy:LimitationsonRangeEstimation:Theoreticalvs.PracticalAc......
  • opencv-python目标跟踪
    目标追踪(objecttracking)是指先给定视频的第一帧中的目标以及它的位置,之后不断的追踪目标,预测目标的轨迹。1目标跟踪的困难点形态变化:姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时,会导致它的特征以及外观模型发生改变,容易导致跟踪失败。比如体育比赛中的运动......
  • 免费敏捷工具做敏捷缺陷跟踪管理-leangoo
    ​缺陷管理通常关注如下几个方面:1.缺陷的处理速度2.缺陷处理的状态3.缺陷的分布4.缺陷产生的原因使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理,方便我们对缺陷的处理进展、负责人、当前状态、分布情况等各个方面一目了然。我们可以通过Leangoo领歌敏捷工具来管理......