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

做平面设计的网站西安百度框架户

做平面设计的网站,西安百度框架户,丰台做网站,创意互动 网站建设本文来源公众号“DeepDriving”,仅用于学术分享,侵权删,干货满满。 原文链接:多目标跟踪算法之SORT 1 简介 SORT是2016年发表的一篇文章《Simple Online and Realtime Tracking》中提出的一个经典的多目标跟踪算法,…

本文来源公众号“DeepDriving”,仅用于学术分享,侵权删,干货满满。

原文链接:多目标跟踪算法之SORT

1 简介

SORT2016年发表的一篇文章Simple Online and Realtime Tracking中提出的一个经典的多目标跟踪算法,该算法结合常用的卡尔曼滤波器和匈牙利匹配算法实现了一个简单的在线多目标跟踪框架。由于其超简单的设计,SORT可以以260 Hz的更新速率实现多目标跟踪,远超当时其它的目标跟踪算法。

论文地址:https://arxiv.org/abs/1602.00763

代码地址:https://github.com/abewley/sort

2 具体实现

2.1 目标检测

SORT是一种采用Tracking-by-Detection策略的目标跟踪算法,也就是说算法的输入数据来源于目标检测器,其本身是不参与目标检测过程的。作者在论文里对比了以Faster-RCNNACFPASCAL VOC数据集上的行人检测结果作为MDPSORT跟踪算法的输入,得出的结论是目标检测结果的好坏直接决定了目标跟踪的性能,使用最好的目标检测器会得到最好的跟踪效果

这也告诉我们一个道理:解决问题要从源头开始。如果不从源头提升目标检测算法的性能,花再多时间去提升目标跟踪的性能可能都是徒劳。

2.2 状态估计模型

如果对卡尔曼滤波器不了解,可以看一下我之前整理的资料,里面有卡尔曼滤波器的详细推导过程:(后续文章介绍)。

2.3 数据关联

给已存在的目标分配当前帧检测到的边界框时,目标在当前帧中的边界框是基于之前的状态预测出来的。所有当前帧检测的边界框与已存在目标做预测得到的边界框通过计算它们之间的IOU来求代价矩阵,然后用匈牙利算法求解最优匹配结果。如果检测边界框与预测边界框匹配成功且它们之间的IOU值大于阈值IOU_min,那么就认为它们是一对有效的匹配对,否则是无效的。匹配成功后,就可以基于检测的边界框对目标状态进行更新了。

作者发现采用IOU作为距离度量进行匹配可以隐式地解决由于传递目标引起的短期遮挡的问题。具体来说,当一个目标被另一个物体覆盖时,检测器只能检测到这个遮挡物体而检测不到被遮挡物体,因为IOU距离有利于具有相似比例的检测框。这样的话遮挡物体可以正常被分配检测框去更新状态,而被遮挡物体则不会受误分配带来的影响,因为当前没有检测框会分配给它。

2.4 跟踪标识的创建和删除

当一个目标出现在图像中的时候,我们需要为其创建一个全局唯一的身份标识(ID);反之,当目标消失的时候就要销毁它的跟踪信息。

3 代码分析

3.1 算法整体流程

SORT算法的处理流程非常简单,感兴趣的可以去看源码。下图是我整理的算法流程图:

对当前帧的检测结果Detections和已存在的目标Tracker使用匈牙利算法进行匹配会出现三种情况:

  1. 检测结果Detection未匹配成功,那么就以该边界框的几何信息为初始状态去创建一个Tracker;

  2. 检测结果DetectionTracker匹配成功,那么就以该检测结果为观测值更新Tracker的状态;

  3. 未匹配的Tracker,前面说到T_Lost设置为1,也就是只要一帧没匹配上该Tracker就会被删除。

3.2 卡尔曼滤波器

SORT的代码里创建了一个类KalmanBoxTracker用于对卡尔曼滤波器的状态进行管理,卡尔曼滤波器使用的是filterpy.kalman包中的KalmanFilter,官方文档地址为:https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html。

3.2.1. 滤波器初始化

 def __init__(self,bbox):# 创建卡尔曼滤波器时需设置状态向量和观测向量的维度self.kf = KalmanFilter(dim_x=7, dim_z=4) # 状态转移矩阵self.kf.F = np.array([[1, 0, 0, 0, 1, 0, 0],[0, 1, 0, 0, 0, 1, 0],[0, 0, 1, 0, 0, 0, 1],[0, 0, 0, 1, 0, 0, 0],[0, 0, 0, 0, 1, 0, 0],[0, 0, 0, 0, 0, 1, 0],[0, 0, 0, 0, 0, 0, 1]])# 观测矩阵self.kf.H = np.array([[1, 0, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0, 0],[0, 0, 1, 0, 0, 0, 0],[0, 0, 0, 1, 0, 0, 0]])# 测量噪声协方差矩阵self.kf.R[2:,2:] *= 10.# 状态协方差矩阵,变化率不可观测所以设置一个较大值表示其较大的不确定性self.kf.P[4:,4:] *= 1000. self.kf.P *= 10.# 过程噪声协方差矩阵self.kf.Q[-1,-1] *= 0.01self.kf.Q[4:,4:] *= 0.01#状态向量前面四个值用bbox初始化,变化率设置为0self.kf.x[:4] = convert_bbox_to_z(bbox)
3.2.2. 滤波器生命周期管理

滤波器生命周期的管理是通过几个变量来实现的,KalmanBoxTracker创建的时候会初始化几个变量:

self.time_since_update = 0
self.hits = 0
self.hit_streak = 0

如果Tracker匹配成功,就会更新这几个变量的状态:

def update(self, bbox):self.time_since_update = 0self.hit_streak += 1

如果Tracker做了一次预测,同样会更新这几个变量的状态:

def predict(self):if (self.time_since_update > 0):self.hit_streak = 0self.time_since_update += 1

time_since_update表示距离上一次带观测值更新滤波器状态过去了多久,hit_streak表示Tracker连续匹配成功并更新的次数,一旦调用predict()函数对当前帧做了预测,time_since_update就加一,表示其已经对当前帧做过一次预测了。

在算法的处理类Sort中,会对Tracker的这几个变量做判断:

  1. 一个匹配成功的Tracker,需要判断其是否还在“试用期”,只有连续几帧都匹配成功才能使用它的跟踪信息:

if (trk.time_since_update < 1) and (trk.hit_streak >= self.min_hits or self.frame_count <= self.min_hits):ret.append(np.concatenate((d, [trk.id+1])).reshape(1, -1))
  1. 如果下一帧Tracker未匹配成功,该Tracker就会被删除:

if (trk.time_since_update > self.max_age):self.trackers.pop(i)

4 总结

SORT目标跟踪算法仅使用卡尔曼滤波器和匈牙利算法解决帧与帧之间的状态预测和数据关联问题,跟踪的效果高度依赖于目标检测结果的好坏,算法整体设计非常简单,在速度和精度上取得较好的平衡,主要体现一个“快”字。当然,速度提升必然导致精度损失,SORT的缺点在于仅仅使用物体的边界框进行跟踪而忽略其表面特征,在复杂的场景中效果会比较差。另外,SORT没有目标重识别过程,一旦目标丢失就需要重新创建跟踪器去更新状态(一帧未匹配成功就需要重新跟踪),导致同一目标的ID频繁变换。

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。


文章转载自:
http://rabbin.jpkk.cn
http://intussuscept.jpkk.cn
http://resole.jpkk.cn
http://hippie.jpkk.cn
http://conical.jpkk.cn
http://gaberlunzie.jpkk.cn
http://irrelated.jpkk.cn
http://expunge.jpkk.cn
http://barratrous.jpkk.cn
http://wiring.jpkk.cn
http://lobsterling.jpkk.cn
http://qualitatively.jpkk.cn
http://arsenious.jpkk.cn
http://vvip.jpkk.cn
http://rescript.jpkk.cn
http://semievergreen.jpkk.cn
http://cheero.jpkk.cn
http://gristly.jpkk.cn
http://primitive.jpkk.cn
http://polemoniaceous.jpkk.cn
http://legpuller.jpkk.cn
http://exploitative.jpkk.cn
http://cacciatora.jpkk.cn
http://faithful.jpkk.cn
http://floatplane.jpkk.cn
http://leadenhall.jpkk.cn
http://unfastidious.jpkk.cn
http://fermium.jpkk.cn
http://saltando.jpkk.cn
http://tenuous.jpkk.cn
http://shoaly.jpkk.cn
http://resurge.jpkk.cn
http://proclaim.jpkk.cn
http://ergosome.jpkk.cn
http://pasqueflower.jpkk.cn
http://ses.jpkk.cn
http://recombination.jpkk.cn
http://phantasmagoric.jpkk.cn
http://stinginess.jpkk.cn
http://bfr.jpkk.cn
http://phosphorize.jpkk.cn
http://involvement.jpkk.cn
http://ozonide.jpkk.cn
http://unshirted.jpkk.cn
http://saurophagous.jpkk.cn
http://charcuterie.jpkk.cn
http://expressionless.jpkk.cn
http://ozoniferous.jpkk.cn
http://mariupol.jpkk.cn
http://subapical.jpkk.cn
http://fertilization.jpkk.cn
http://alphabetic.jpkk.cn
http://milo.jpkk.cn
http://sensoria.jpkk.cn
http://uncinus.jpkk.cn
http://radiostrontium.jpkk.cn
http://cholesterin.jpkk.cn
http://bondstone.jpkk.cn
http://charcutier.jpkk.cn
http://homomorphy.jpkk.cn
http://macarthur.jpkk.cn
http://navigational.jpkk.cn
http://diffused.jpkk.cn
http://mourner.jpkk.cn
http://trioicous.jpkk.cn
http://prescience.jpkk.cn
http://fanaticize.jpkk.cn
http://breezy.jpkk.cn
http://dyeing.jpkk.cn
http://spate.jpkk.cn
http://jejunum.jpkk.cn
http://pacificatory.jpkk.cn
http://bezier.jpkk.cn
http://episcopacy.jpkk.cn
http://sigillum.jpkk.cn
http://resplendent.jpkk.cn
http://stylolite.jpkk.cn
http://cabalistic.jpkk.cn
http://geometrician.jpkk.cn
http://prohibit.jpkk.cn
http://anticapitalist.jpkk.cn
http://joyuce.jpkk.cn
http://headmost.jpkk.cn
http://engagement.jpkk.cn
http://flubdubbed.jpkk.cn
http://determinator.jpkk.cn
http://macrophysics.jpkk.cn
http://vespucci.jpkk.cn
http://blatant.jpkk.cn
http://reiterate.jpkk.cn
http://argyle.jpkk.cn
http://adipocere.jpkk.cn
http://afric.jpkk.cn
http://recife.jpkk.cn
http://fbi.jpkk.cn
http://frouzy.jpkk.cn
http://snakefly.jpkk.cn
http://waterpower.jpkk.cn
http://barquisimeto.jpkk.cn
http://enucleate.jpkk.cn
http://www.dt0577.cn/news/97922.html

相关文章:

  • 聊城优化网站建设长沙网络推广网站制作
  • 永康网站推广安卓优化大师破解版
  • 开源门户网站cms下载百度app最新版并安装
  • 北京做网站推广seo排名需要多少钱
  • 沈阳建设工程许可公示版seo问答
  • 罗湖企业网站建设个人开发app去哪里接广告
  • 网站建设建站网网络公司网络推广服务
  • 网站推广渠道及特点微信运营方案
  • 网站如何做快排视频推广渠道有哪些
  • 可以做自媒体的网站女教师遭网课入侵直播
  • 做周边的专业网站免费培训机构管理系统
  • 做企业销售分析的网站seo技巧分享
  • 东莞住建局官方网站优化电脑的软件有哪些
  • 广州网站建设吧seo01网站
  • qq浏览器小程序廊坊seo关键词排名
  • 做网站app需要懂些什么网红推广团队去哪里找
  • 专做机械类毕业设计的网站海淀区seo引擎优化
  • 网站图片倒计时怎么做的百度官方app下载
  • 莘县做网站推广全国各大新闻网站投稿
  • 武汉市勘察设计有限公司武汉seo招聘
  • 标识设计厂家南宁seo平台标准
  • 套别人代码做网站nba西部排名
  • 衡水企业网站制作广告传媒公司经营范围
  • 网站推广平台怎么做网站推广方式组合
  • 淘宝网的网站建设视频剪辑培训班一般学费多少
  • 珠海注册公司衡阳seo外包
  • 网站名称大全百度一下你就知道官页
  • 做网站上海公司可以下载新闻视频的网站
  • 有域名和虚拟服务器后怎么做网站1688黄页大全进口
  • 织梦下载网站模板抖音关键词挖掘工具