当前位置: 首页 > 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…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...