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

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

Android Framework预装traceroute执行文件到system/bin下

文章目录 Android SDK中寻找traceroute代码内置traceroute到SDK中traceroute参数说明-I 参数(使用 ICMP Echo 请求)-T 参数(使用 TCP SYN 包) 相关文章 Android SDK中寻找traceroute代码 设备使用的是Android 11,在/s…...