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

自动驾驶中的多目标跟踪_第一篇

自动驾驶中的多目标跟踪:第一篇

多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置(状态)或其他属性,最关键的是需要在一段时间内持续地进行估计。

image

附赠自动驾驶学习资料和量产经验:链接

应用

多目标跟踪有如下两个方面应用:

  1. 在二战中,多目标跟踪技术被用于跟踪敌方飞机。雷达通过向天空发射电磁波并接收相应的回波。如果电磁波波束指向的位置恰好有飞机,那么飞机反射回波有一定概率会被信号处理器检测到。信号处理器输出的有关这架飞机的位置、速度等信息称为量测(measurement)。每一个时刻的量测会被数据处理器处理,输出飞机的轨迹,称为航迹(trajectory)。把每个时刻的量测转换为航迹的算法就是目标跟踪算法。

image

雷达跟踪示意图

与雷达多目标跟踪相似的应用还有基于Lidar或者声呐的多目标跟踪,这类传感器提供的目标信息较少,因此提高数据关联(data association, DA)技术和以更严密的数学理论描述多目标跟踪问题成为了这类技术的发展方向。

2. 多目标跟踪也是视频监控的核心技术。在视频图像中跟踪各类物体或人,以此来推断监控场景中发生的事件,例如人群聚集、犯罪行为、车辆碰撞等。视频中应用的多目标跟踪技术和雷达多目标跟踪技术有很大的不同,主要原因在于图像受到光照或者其他因素影响较大,视频中物体常常发生遮挡而且密集,所以目标的检测比较困难。但图像是高分辨率的,提供有关目标的特征较多,所以提高检测质量或者提取高层次特征是很多视频跟踪算法努力的方向。

image

视频监控人群

在前述的第一种应用中,根据目标产生的量测特点,跟踪任务可以分为下面两种类型:

  • 点目标跟踪(point object tracking):每个目标每一时刻至多产生一个量测,即目标要么没被检测到,要么被检测到且只产生一个量测。这种类型的跟踪任务大多在空域监视雷达或图像中。

image

图中的车辆可以视为点目标

  • 扩展目标跟踪(extended object tracking): 每个目标每一时刻可能产生多个个量测,这种现象出现的原因是目标尺寸超过传感器能提供的最小分辨率。这种类型的跟踪任务大多在自动驾驶或使用高分辨率的雷达跟踪目标场景。

image

(a) Lidar (b)毫米波雷达

除上述两种类型目标,在跟踪的过程中有时还会出现多个目标只产生一个量测的情况,它时常发生在两个相互靠近的物体,它们之间的距离小于传感器的最小分辨单元。

image

两辆并排行驶且速度相同的车辆,雷达无法分辨这两个目标


挑战

下图包含了多目标跟踪面临的几种挑战

  • 未知目标的数目和状态:在跟踪算法的初始化阶段,场景中的目标数目是未知的,尽管根据检测的数目对实际目标数有一个大致估计,但考虑到检测并不是完美的,存在虚警(false alarm, FA)或者漏警(miss detection, MD),所以目标数目仍然是一个未知量。此外,在很多情况下目标的状态也有很大的不确定性。考虑一个两坐标雷达,传感器提供的量测的形式只有平面_x-y_坐标,这样目标状态中的姿态(pose)和速度(velocity)都不能被传感器测得,只有从长时间的测量数据中估计出上述状态。

  • 目标运动:目标运动具有不确定性,其运动模式可能会变化,这可能会影响目标跟踪依赖的系统模型(system model)与目标运动模式的匹配度。此外,目标可能突然进入视野(上图右下角的行人),从视野中消失(上图右上角的行人)或者运动到传感器无法测量的位置(上图红圈处),这使得目标数目的估计变得困难,同样增加了数据关联问题的复杂度。

image

  • 不完美的传感器: 传感器同样会给目标跟踪带来挑战,最显著的两个挑战就是虚警和漏警。无论选择哪种传感器,几乎都会面临这两个挑战。在雷达应用中,虚警的产生是由于背景中的物体反射了足够的电磁波能量使得信号处理器认为该物体是感兴趣的目标(target of interest)或者敌方干扰机发射了干扰信号。漏警的产生是由于信噪比过低、信号强度弱低于检测门限、被遮挡等。

image

左图 发生对行人漏警 右图 斑马线处发生虚警

  • 数据关联不确定性: 在与点目标跟踪相关的各类文献中,数据关联一直占据着很重要的地位。数据关联就是目标和量测的对应关系。由于量测的来源不确定(可能是虚警、新/旧目标),很多情况中我们不能判断量测属于哪个目标产生的,所以算法中需要考虑数据关联(对应关系)的所有可能性。一种对应关系称为关联假设,然而我们会看到这种对应关系的数目是组合数增长的,计算量爆炸性增长。之后我们会看到各种算法提出多种近似手段去解决这一问题。下图是一个简单一维量测数据关联的例子。从上半部分图可以看出有4个目标在运动,不同颜色的圆圈表明它们产生的量测,灰色的圆圈是虚警。在时刻3,标为黄色的目标发生了一次漏检,在时刻2,红色的目标停住不动。当我们知道量测与目标的对应关系时,对目标的跟踪是比较容易的,考虑使用各类滤波算法。但实际跟踪算法处理的是下半部分图所对应的量测,即我们不知道量测-目标的对应关系,我们也不知道哪个量测是虚警。即便我们假设目标的数目在跟踪过程中保持不变,关联假设的数目都是组合数式增长的!

image


在下一篇文章中,我会简单回顾贝叶斯滤波的相关知识,这是单/多目标跟踪的基础。

未完待续…

相关文章:

自动驾驶中的多目标跟踪_第一篇

自动驾驶中的多目标跟踪:第一篇 多目标跟踪(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格式的节表&#xff08…...

路由策略与路由控制之双点双向重发布(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…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...