【计算机视觉+Tensorflow】SORT目标跟踪算法的讲解(图文解释 超详细)

news2025/1/16 3:38:46

觉得有帮助请点赞关注收藏~~~

一、目标跟踪简介


目标跟踪算法可以进行轨迹特征的分析和提取,以弥补目标检测的不足;有效地去除误检,提高检测精度,为进一步的行为分析提供基础。例如,在自动驾驶系统中,目标跟踪算法要对运动的车、行人等目标进行跟踪,根据运动轨迹对它们在未来的位置、速度等信息作出预判。

跟踪就是在视频的不同帧中定位某一目标,从算法的设计角度来说分为两个阶段

1:预测第S帧图像中目标A 目标B 在第S+N帧图像中可能出现的位置 即候选区域

2:第S+N帧的候选区域是否为第S帧图像中目标A 目标B 如果是则跟踪成功

二、SORT目标跟踪算法

对于多目标的SORT算法,目标跟踪算法是将各帧的目标检测结果分别赋予跟踪序号的过程,在不同视频帧出现的同一目标需要赋予相同的跟踪序号,算法流程图如下

下面对算法流程中介绍的卡尔曼滤波器和匈牙利算法进行详细介绍

1:卡尔曼滤波器

卡尔曼滤波器不需要存储大量的历史数据,只需要保留系统前一时刻的状态,根据系统的状态空间向量模型准确预测当前状态,该算法计算量小,在速度上占有优势,而且是一个纯时域的滤波器,占用内存小,在实际工程上应用广泛,是解决实时性问题的理想选择

卡尔曼滤波器流程分为两个步骤:状态预测和状态更新。卡尔曼滤波器首先要计算系统状态的先验估计,利用前一时刻系统的状态估计值,计算当前时刻系统状态和误差协方差的预测值,当前时刻的观测值进入系统后,融入新的观测值和先验估计构造后验估计,对模型进行更新,从而更加准确地预测系统下一时刻状态估计

在大多数情况下,同一个目标的运动状态在较短时间可以近似为匀速直线运动,采用线性的卡尔曼滤波器依据中心坐标、尺寸大小比例以及对下一帧的预测信息等为每个目标建立运动模型,进而对下一帧目标的位置进行估计来加快目标跟踪的计算速度 

三、基于匈牙利算法的数据关联

匈牙利算法是一种组合优化算法,用于求解指派问题,例如把N项任务分配给N个人时,列出所有组合情况的总薪酬开销可求最小值,但是当任务数和人数变大时,难以列出所有的分配情况,可利用匈牙利算法进行任务分配,实现最合理的资源配置

目标跟踪的主要任务之一就是将视频中不同帧的目标进行匹配,如下图所示,卡尔曼滤波器预测得到目标跟踪框之后,计算出目标跟踪框和目标检测框之间的相交度,即上一帧预测得到的跟踪框与当前帧中的检测框之间的交集面积与并集面积的比值,利用匈牙利匹配算法对检测框与预测框的相交度组成的状态关联矩阵进行指派,实现目标检测结果与跟踪序列之间的匹配

匈牙利算法步骤如下

1:给定N个目标检测框分配N个目标跟踪框,可以用一个N×N的开销矩阵来表示这一指派问题

2:对开销矩阵的各行进行操作 找出每一行中值最小的元素,然后把该行所有元素都减去这一最小值

3:对开销矩阵的各列进行操作,找出每一列中值最小的元素,然后把该列所有元素都减去这一最小值

4:用尽量少的横线或者竖线覆盖矩阵中的所有0

5:从第4步中未被覆盖的元素中找到最小值,然后把所有元素都减去这一最小值 给直线交叉点的元素加上这一最小值,被覆盖元素的最小值实际上是完成所有任务过程中不可避免的开销,这一步的作用是增加开销矩阵中0的个数,使得任务更易分配

6:重复第三步和第四步 直到所有任务都被分配 

创作不易 觉得有帮助请点赞关注收藏~~~


 

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

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

相关文章

Kafka知识点

消费者组 kafka的消费者组里面包含一个或多个消费者实例,它们共享一个公共的 ID,这个 ID 被称为 Group ID。一个消费者组可以订阅多个主题,但是同一个消费者组里面的一个实例只能消费一个主题里面的一个分区。 consumer group A kafka consum…

web课程设计网页规划与设计(HTML+CSS+JavaScript仿悦世界游戏官网 6个页面)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

web前端 基于html实现花店购物网站源码(HTML+CSS+JavaScript) 企业网站制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

央国企信创全面加速,如何将数字化转型和信创深度融合?

11月30日,《央国企信创白皮书》正式对外发布,CIO 时代研究院认为:在各行各业深入开展全面数字化转型的背景下,央国企信创工作和数字化转型工作势必并轨同行,既是机遇,亦是挑战。 信创是突破“卡脖子”技术…

Linux权限的理解

主要分为两类讲解:1.对人操作 2.对角色和文件操作 目录 Linux权限管理 文件类型和访问权限(事物属性) 基本权限 文件访问者的分类 文件权限值的表示方法 文件访问权限的设置方法 目录权限 umask 粘滞位 1.对人: Linux下…

JVM 篇之 牛刀小试 (二)(PS:之前请教我的小伙子校招去了字节~)

闲聊 最近在学jvm,当然这是一个持续过程,知行合一对吧,学习之后立马去应用,才能验证你学到是不是有用的东西。大家看过我上一篇写的博客么,之前在csdn请教过我的一个小伙子,最近我看他已经入职字节跳动了&a…

C++ 类与对象(四)构造函数2、static成员、友元、内部类

目录 1. 再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit关键字 2. static成员 2.1 概念 2.2 特性 3. 友元 3.1友元函数 3.2 友元类 4. 内部类 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对…

Nacos配置中心

小结: Nacos:注册中心,解决服务的注册与发现 Ribbon:客户端的负载均衡器,服务集群的负载均衡 OpenFeign:声明式的HTTP客户端,服务远程调用 Nacos:配置中心,中心化管理配置…

窗帘轨道怎么安装?方法有哪些?-江南爱窗帘十大品牌

不论是卧室的装修还是客厅的装修,都离不开窗帘的装饰,窗帘定制也是很多业主的选择,作为定制的窗帘必须具备的器件—窗帘轨道。那么。窗帘轨道的安装方法是什么?窗帘轨道的高低如何选择?下面小编就给大家详细介绍下吧。 01-窗帘轨道安装高度…

SpringBoot实战:整合MyBatis搭建基本骨架

这篇开始,开始进行 SpringBoot 框架功能的具体实现,本篇是 SpringBoot 整合 MyBatis 搭建基本骨架; 项目源码实现后分支地址:https://toscode.gitee.com/li_ziheng/lizhengi-samples/tree/feature%2Fspring-boot-1.0.0/ &#xff…

CSS 实现鼠标hover 展示内容

前言 &#x1f44f;CSS 实现鼠标hover 展示内容&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义一个宽高为300px的父容器 <div class"box"></box>.box {position: relative;width: …

TF1-项目搭建配置及用户登录

TF1-项目搭建配置及用户登录1、项目介绍1.1、功能列表1.2、项目背景1.3、功能概述1.3.1 用户登录1.3.2、交友首页探花搜附近桃花传音测灵魂1.3.3、圈子1.3.4、消息1.3.5、小视频1.3.6、我的1.4、技术方案1.5、技术解决方案2、前后端分离2.1、前后端分离的概述2.2、YAPI介绍3、开…

大分子葡聚糖-牛血清蛋白抗原偶联物(Dextran-BSA)|多糖-蛋白偶联物

大分子葡聚糖-牛血清蛋白抗原偶联物(Dextran-BSA)|多糖-蛋白偶联物 产品描述&#xff1a;用还原胺化法制备大分子葡聚糖-牛血清蛋白(BSA)拟糖蛋白抗原,通过SDS-聚丙烯酰胺凝胶电泳结合考马斯亮蓝和过碘酸-品红两种染色方法验证偶联物的生成,确定拟糖蛋白抗原的较佳偶联…

计算机毕业设计php+vue基于微信小程序的贵小团校园社团小程序

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,贵小团校园社团小程序就是信息时代变革中的产物之一。 任何系统都要遵…

Linux内核与SMP(对称多处理)

什么 是SMP&#xff1f; SMP的全称是“对称多处理“&#xff08;Symmetrical Multi-Processing&#xff09;技术&#xff0c;是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这…

两行代码自动压缩ViT模型!模型体积减小3.9倍,推理加速7.1倍

Transformer模型及其变体&#xff0c;因其更优的注意力机制能力和长时依赖等特性&#xff0c;已成为自然语言处理 (NLP)、语音识别 (ASR)、计算机视觉 (CV)等领域的主流序列建模结构。根据PaperWithCode网站ObjectDetectiononCOCOtest-dev专栏数据&#xff0c;检测任务中Transf…

嵌入式:ARM处理器的工作状态

文章目录Thumb技术介绍Thumb的技术概述Thumb的技术实现Thumb技术的特点ARM处理器工作状态Thumb2技术介绍评价Thumb技术介绍 ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题&#xff0c;ARM体系结构又增加了&#xff34;变种&…

微信小程序实现圆形菜单弹出选中动画

vector-effect是SVG中十分冷门的属性&#xff0c;相信大多数小伙伴都没有了解过&#xff0c;说句实话&#xff0c;在这次重学SVG之前&#xff0c;这个属性我连听都没听说过。 不过&#xff0c;冷门不重要&#xff0c;重要的是管用&#xff0c;尤其是以后在面对相应场景下&…

RISC-V SIG 推出基于openEuler 的下游发行版 Eulaceura

近日&#xff0c;openEuler RISC-V SIG 推出了一款基于 openEuler 的发行版-Eulaceura。这是首个基于 openEuler 开发的 RISC-V 架构的发行版&#xff0c;给 RISC-V 的开发者开箱即用的 RISC-V 系统环境&#xff0c;方便开发者进行各种创新项目的开发与验证。Eulaceura 目前提供…

【数据结构】队列的实现

目录队列的概念队列的结构声明队列的初始化数据入队判断队列是否为空队列出数据获取队头获取队尾获取队列长度摧毁队列队列的概念 只允许从一端插入数据&#xff0c;另一端出数据。 队头:出数据的一端叫队头。 队尾:入数据的一端叫队尾。 通俗地说&#xff0c;就是把栈的数据结…