自动驾驶中的多目标跟踪_第一篇
自动驾驶中的多目标跟踪:第一篇
多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置(状态)或其他属性,最关键的是需要在一段时间内持续地进行估计。
附赠自动驾驶学习资料和量产经验:链接
应用
多目标跟踪有如下两个方面应用:
- 在二战中,多目标跟踪技术被用于跟踪敌方飞机。雷达通过向天空发射电磁波并接收相应的回波。如果电磁波波束指向的位置恰好有飞机,那么飞机反射回波有一定概率会被信号处理器检测到。信号处理器输出的有关这架飞机的位置、速度等信息称为量测(measurement)。每一个时刻的量测会被数据处理器处理,输出飞机的轨迹,称为航迹(trajectory)。把每个时刻的量测转换为航迹的算法就是目标跟踪算法。
雷达跟踪示意图
与雷达多目标跟踪相似的应用还有基于Lidar或者声呐的多目标跟踪,这类传感器提供的目标信息较少,因此提高数据关联(data association, DA)技术和以更严密的数学理论描述多目标跟踪问题成为了这类技术的发展方向。
2. 多目标跟踪也是视频监控的核心技术。在视频图像中跟踪各类物体或人,以此来推断监控场景中发生的事件,例如人群聚集、犯罪行为、车辆碰撞等。视频中应用的多目标跟踪技术和雷达多目标跟踪技术有很大的不同,主要原因在于图像受到光照或者其他因素影响较大,视频中物体常常发生遮挡而且密集,所以目标的检测比较困难。但图像是高分辨率的,提供有关目标的特征较多,所以提高检测质量或者提取高层次特征是很多视频跟踪算法努力的方向。
视频监控人群
在前述的第一种应用中,根据目标产生的量测特点,跟踪任务可以分为下面两种类型:
- 点目标跟踪(point object tracking):每个目标每一时刻至多产生一个量测,即目标要么没被检测到,要么被检测到且只产生一个量测。这种类型的跟踪任务大多在空域监视雷达或图像中。
图中的车辆可以视为点目标
- 扩展目标跟踪(extended object tracking): 每个目标每一时刻可能产生多个个量测,这种现象出现的原因是目标尺寸超过传感器能提供的最小分辨率。这种类型的跟踪任务大多在自动驾驶或使用高分辨率的雷达跟踪目标场景。
(a) Lidar (b)毫米波雷达
除上述两种类型目标,在跟踪的过程中有时还会出现多个目标只产生一个量测的情况,它时常发生在两个相互靠近的物体,它们之间的距离小于传感器的最小分辨单元。
两辆并排行驶且速度相同的车辆,雷达无法分辨这两个目标
挑战
下图包含了多目标跟踪面临的几种挑战
-
未知目标的数目和状态:在跟踪算法的初始化阶段,场景中的目标数目是未知的,尽管根据检测的数目对实际目标数有一个大致估计,但考虑到检测并不是完美的,存在虚警(false alarm, FA)或者漏警(miss detection, MD),所以目标数目仍然是一个未知量。此外,在很多情况下目标的状态也有很大的不确定性。考虑一个两坐标雷达,传感器提供的量测的形式只有平面_x-y_坐标,这样目标状态中的姿态(pose)和速度(velocity)都不能被传感器测得,只有从长时间的测量数据中估计出上述状态。
-
目标运动:目标运动具有不确定性,其运动模式可能会变化,这可能会影响目标跟踪依赖的系统模型(system model)与目标运动模式的匹配度。此外,目标可能突然进入视野(上图右下角的行人),从视野中消失(上图右上角的行人)或者运动到传感器无法测量的位置(上图红圈处),这使得目标数目的估计变得困难,同样增加了数据关联问题的复杂度。
- 不完美的传感器: 传感器同样会给目标跟踪带来挑战,最显著的两个挑战就是虚警和漏警。无论选择哪种传感器,几乎都会面临这两个挑战。在雷达应用中,虚警的产生是由于背景中的物体反射了足够的电磁波能量使得信号处理器认为该物体是感兴趣的目标(target of interest)或者敌方干扰机发射了干扰信号。漏警的产生是由于信噪比过低、信号强度弱低于检测门限、被遮挡等。
左图 发生对行人漏警 右图 斑马线处发生虚警
- 数据关联不确定性: 在与点目标跟踪相关的各类文献中,数据关联一直占据着很重要的地位。数据关联就是目标和量测的对应关系。由于量测的来源不确定(可能是虚警、新/旧目标),很多情况中我们不能判断量测属于哪个目标产生的,所以算法中需要考虑数据关联(对应关系)的所有可能性。一种对应关系称为关联假设,然而我们会看到这种对应关系的数目是组合数增长的,计算量爆炸性增长。之后我们会看到各种算法提出多种近似手段去解决这一问题。下图是一个简单一维量测数据关联的例子。从上半部分图可以看出有4个目标在运动,不同颜色的圆圈表明它们产生的量测,灰色的圆圈是虚警。在时刻3,标为黄色的目标发生了一次漏检,在时刻2,红色的目标停住不动。当我们知道量测与目标的对应关系时,对目标的跟踪是比较容易的,考虑使用各类滤波算法。但实际跟踪算法处理的是下半部分图所对应的量测,即我们不知道量测-目标的对应关系,我们也不知道哪个量测是虚警。即便我们假设目标的数目在跟踪过程中保持不变,关联假设的数目都是组合数式增长的!
在下一篇文章中,我会简单回顾贝叶斯滤波的相关知识,这是单/多目标跟踪的基础。
未完待续…
相关文章:

自动驾驶中的多目标跟踪_第一篇
自动驾驶中的多目标跟踪:第一篇 多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置(状态)或其他属性,最关键的是需要在一段时间内持续地进行估计。 附赠自动驾驶学习资料和量产经验:链接 应…...

AI爆款文案 巧用AI大模型让文案变现插上翅膀
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…...

Python入门的60个基础练习(一)
01-Hello World python的语法逻辑完全靠缩进,建议缩进4个空格。如果是顶级代码,那么必须顶格书写,哪怕只有一个空格也会有语法错误。下面示例中,满足if条件要输出两行内容,这两行内容必须都缩进,而且具有相…...

微软云学习环境
微软公有云 - Microsoft Azure 本文介绍通过微软学习中心Microsoft Learn来免费试用Azure上的服务,也不需要绑定信用卡。不过每天只有几个小时的时间。 官网 https://docs.microsoft.com/zh-cn/learn/ 实践 比如创建虚拟机,看到自己的账号下多了Learn的…...

大厂面试:找出数组中第k大的数的最佳算法
一.前置条件 假如数组为a,大小为n,要找到数组a中第k大的数。 二.解决方案 1.使用任意一种排序算法(例如快速排序)将数组a进行从大到小的排序,则第n-k个数即为答案。 2.构造一个长度为k的数组,将前k个数复制过来并降序…...

爬取高校专业信息的Python爬虫简介与实践
1. 介绍 在当前高校专业信息繁多的情况下,选择适合自己的专业成为了许多学生面临的挑战。为了帮助学生更好地了解各高校专业情况,我们开发了一个Python爬虫程序,用于爬取高校专业信息并保存到Excel文件中。本文将详细介绍该爬虫的实现过程以…...

redis 集群模式(redis cluster)介绍
目录 一 redis cluster 相关定义 1, redis cluster 是什么 2,redis 集群的组成 3,集群的作用 4,集群架构图 二 Redis集群的数据分片 1,哈希槽是什么 2,哈希槽如何排布 3,Redis集…...

python实现网络爬虫
网络爬虫是一个自动从互联网上抓取数据的程序。Python有很多库可以帮助我们实现网络爬虫,其中最常用的是requests(用于发送HTTP请求)和BeautifulSoup(用于解析HTML或XML文档)。 以下是一个简单的Python网络爬虫示例&a…...

LeetCode 836. 矩形重叠
解题思路 相关代码 class Solution {public boolean isRectangleOverlap(int[] rec1, int[] rec2) {int x1 rec1[0];int y1 rec1[1];int x2 rec1[2];int y2 rec1[3];int a1 rec2[0];int b1 rec2[1];int a2 rec2[2];int b2 rec2[3];return Math.min(y2,b2)>Math.max…...

为说阿拉伯语的国家进行游戏本地化
阿拉伯语是由超过4亿人使用的语言,并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言,但每个国家都有自己独特的文化,有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…...

【Python系列】读取 Excel 第一列数据并赋值到指定列
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

二叉树——存储结构
二叉树的存储结构 二叉树一般可以使用两种结构存储,一种是顺序结构,另一种是链式结构。 一、顺序存储 二叉树的顺序存储是指用一组连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储…...

LangChain - OpenGPTs
文章目录 MessageGraph 消息图认知架构AssistantsRAGChatBot 持久化配置新模型新工具astream_events总结 关键链接: OpenGPT GitHub 存储库YouTube 上的 OpenGPT 演练LangGraph:Python、JS 两个多月前,在 OpenAI 开发日之后,我们…...

pe格式从入门到图形化显示(四)-节表
文章目录 前言一、什么是Windows PE格式节表?二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式,并使用qt进行图形化显示 一、什么是Windows PE格式节表? PE格式的节表(…...

路由策略与路由控制之双点双向重发布(OSPF-ISIS)实验
双点双向重发布在路由协议中,特别是在OSPF(开放式最短路径优先)与IS-IS(中间系统到中间系统)等协议之间,指的是在两个协议间或者两个进程间进行路由信息共享的机制。这种机制涉及到在两个不同的协议区域使用…...

9proxy—数据采集工具全面测评
9Proxy数据采集工具Unlock the web with 9Proxy, the top residential proxy provider. Get unlimited bandwidth, affordable prices, and secure HTTPS and Socks5 configurations.https://9proxy.com/?utm_sourceblog&utm_mediumcsdn&utm_campaignyan 前言 在当今数…...

上海晶珩树莓派工业智能机械臂,亮相2024年embedded world博览会!
上海晶珩树莓派工业智能机械臂,亮相2024年embedded world博览会! 工业智能机械臂是上海晶珩(EDATEC)团队基于树莓派工业相机ED-AIC2000和树莓派工业触摸屏ED-HMI2320开发的创新应用案例。 工业智能机械臂具备卓越的定位能力&…...

蓝桥杯——求和
题目 给定 n 个整数 a1, a2,…,an,求它们两两相乘再相加的和即: Sa1a2a1a3a1ana2a3 a(n-2)*an...a(n-1)*an 输入格式 输入的第一行包含一个整数 n。 第二行包含 几 个整数 a1,a2,,an。 输出格式 输出一个整数 S,表示所…...

设计模式:责任链模式示例
责任链模式可以应用于多种场景,下面是几个不同场景的例子,每个例子都包括完整的代码。 示例1:日志处理系统 在日志处理系统中,日志消息可以根据其严重性(错误、警告、信息)被不同级别的日志处理器处理。 …...

SpringBoot快速入门笔记(4)
文章目录 一、Vue框架1、前端环境准备2、简介3、快速开始4、事件绑定 二、Vue组件化开发1、NPM2、Vue Cli3、组件化开发4、SayHello自定义组件5、Movie自定义组件 一、Vue框架 1、前端环境准备 编码工具:VSCode 依赖管理:NPM 项目构建:VueCl…...

GoPro相机使用的文件格式和频率
打开GoPro相机(以11为例),里面是一个DCIM文件夹。 DCIM是digital camera in memory 的简写,即存照片的文件夹,常见于数码相机、手机存储卡中的文件夹名字。 正常手机拍照和视频都是保存在此文件夹的。正常建议不用删,因为只要拍照…...

Redis Stack 安装部署
参考:Run Redis Stack on Docker | Redis Redis-stack 初体验_redis stack-CSDN博客 【docker】运行redis_docker run redis-stack-server requirepass-CSDN博客 Redis Stack 是一组软件套件,它主要由三部分组成。 一个是 Redis Stack Server&#x…...

【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
目录 题目描述思路及实现方式一:动态规划法思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:中心扩展法思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签(题目类型):回文串、动态规划 题目描述 给定一…...

39.Python从入门到精通—parseString 方法 Python 解析XML实例 使用xml.dom解析xml
39.Python从入门到精通—parseString 方法 Python 解析XML实例 使用xml.dom解析xml parseString 方法Python 解析XML实例使用xml.dom解析xml parseString 方法 parseString 方法是 Python 标准库中 xml.dom.minidom 模块中的一个函数,用于解析 XML 字符串并构建 DO…...

【蓝桥杯第九场小白赛】(部分)
最近写的零零散散的,感觉这两天遇到的题对于短时间提升意义已经不大了,还是做简单题保持手感吧哎 盖印章 #include <iostream> using namespace std; using LLlong long; int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);LL n,m…...

【Linux】Supervisor 基础
要在Linux上启动Supervisor,你可以按照以下步骤进行操作: 确保你已经安装了Supervisor。使用适合你的Linux发行版的包管理器进行安装。例如,对于Ubuntu,可以运行以下命令安装Supervisor: sudo apt-get update sudo apt…...

48 全连接卷积神经网络 FCN【动手学深度学习v2】
全连接卷积神经网络:神经网络处理语义分割问题的奠基性工作,目前已不太常用。 了解一下全卷积网络模型最基本的设计。 如 下图所示,全卷积网络先使用卷积神经网络抽取图像特征,然后通过11卷积层将通道数变换为类别个数࿰…...

pytorch中的nn.MSELoss()均方误差损失函数
一、nn.MSELoss()是PyTorch中的一个损失函数,用于计算均方误差损失。 均方误差损失函数通常用于回归问题中,它的作用是计算目标值和模型预测值之间的平方差的平均值。 具体来说,nn.MSELoss()函数的输入是两个张量,即模型的真实值…...

三国游戏(贪心 排序)
三国游戏 利用贪心、排序、前缀和的计算方法,特别注意不要数据溢出了,sum 加long long s[i] x[i]-y[i]-z[i]输入: 3 1 2 2 2 3 2 1 0 7输出: 2#include <bits/stdc.h> using namespace std;const int N 1e5100;typedef long long ll;bool cm…...

GPU环境安装与虚拟环境安装(适用于Windows下的李沐GPU)
之前我是用的都是VMware的虚拟机且安装的是cpu的pytorch版本,因为想要使用GPU,最终实现了在Windows上使用GPU,并且相关原理也在参考文章或视频内,可以通过原理自行挑选自己所需的配置并安装。 文章目录 1.GPU安装1.1 名词解释1.2 卸载旧版本的CUDA1.3 版本选择步骤(Nivida显卡…...