【论文笔记】Dynamic Occupancy Grids for Object Detection: A Radar-Centric Approach

news2024/11/15 17:17:13

原文链接:https://arxiv.org/abs/2402.01488

I. 引言

感知环境在自动驾驶中非常重要,但传统的方法将这一过程分为两方面:动态物体的检测和跟踪,以及使用占用网格表达静态环境。占用网格难以表达高度动态的物体,因此动态占用网格(DOGM)的概念被提出,并与粒子滤波器结合,跟踪环境中的静态和动态物体。但是目前的方法多依赖激光雷达,仅使用雷达进行性能提升。随着雷达分辨率的提高,基于雷达的DOGM也得到了发展,但只在短期场景中测试,且相比激光雷达方法的改动较少,没有针对雷达的优势进行改进或处理雷达的缺陷。

III. 方法

A. 环境表达

自车周围的环境被表达为以自车为中心的网格地图,每个网格存储了4种状态(空、静态、动态、未知)的概率。粒子用于帮助跟踪动态占用。每个粒子基于其位置,与特定网格关联。如下图所示。
在这里插入图片描述

B. 以雷达为中心的动态占用网格建图

1) 确定测量网格

首先确定由最新的测量影响的网格(占用、空、未知),这需要使用逆传感器模型(ISM)。对激光雷达来说,标准的解决方案是使用射线投射算法(如下左图所示)。但雷达的角度不确定性更大,且能在不同程度上穿透材料。此外,雷达的测量比激光雷达少得多,导致跟踪射线无法填充所有的已知空白区域。本文使用考虑角度不确定性和波传播的ISM(如下右图所示)。
在这里插入图片描述

2) 网格状态计算

基本的假设是,所有未被占用的网格为静态的。

雷达的测量包括位置坐标,自车运动补偿的距离变化率,和RCS值:
x m e a s = [ x m a p , y m a p , v r , r c s ] T x_{meas}=[x_{map},y_{map},v_r,rcs]^T xmeas=[xmap,ymap,vr,rcs]T

占用网格或空网格属于空空间的概率 P f r e e P_{free} Pfree基于与测量之间的距离 d d d计算:
d c = ∥ [ x m a p , y m a p ] T − [ x c , y c ] T ∥ 2 f d ( d ) = 1 σ f 2 π exp ⁡ ( 1 2 ( d − μ f σ f ) 2 ) P f r e e = 1 − f d ( d c ) d_c=\|[x_{map},y_{map}]^T-[x_c,y_c]^T\|_2\\ f_d(d)=\frac1{\sigma_f\sqrt{2\pi}}\exp(\frac 1 2(\frac{d-\mu_f}{\sigma_f})^2)\\ P_{free}=1-f_d(d_c) dc=[xmap,ymap]T[xc,yc]T2fd(d)=σf2π 1exp(21(σfdμf)2)Pfree=1fd(dc)

属于未知状态的概率 P u n k P_{unk} Punk的计算过程与上述类似,但仅针对未知网格计算。

与激光雷达方法使用网格内粒子的平均速度不同,本文使用测量的距离变化率 v r v_r vr来确定占用网格的动静属性。为确定静态与动态概率,假定非零的距离变化率可表明物体运动。尽管该假设并不总是成立,但不成立的情况很少出现。因此,可通过此区分静态网格。这样,可以减少需要的粒子数,从而减少计算时间(见后文)。对于占用网格,静态和动态的概率按下式计算:
P d y n = f d ( d ) × P ( v r ≠ 0 ) + ( 1 − f d ( d ) ) × p r i o r ( d y n ) P s t a t i c = f d ( d ) × P ( v r = 0 ) + ( 1 − f d ( d ) ) × p r i o r ( s t a t i c ) P_{dyn}=f_d(d)\times P(v_r\neq0)+(1-f_d(d))\times prior(dyn)\\ P_{static}=f_d(d)\times P(v_r=0)+(1-f_d(d))\times prior(static) Pdyn=fd(d)×P(vr=0)+(1fd(d))×prior(dyn)Pstatic=fd(d)×P(vr=0)+(1fd(d))×prior(static)

其中,距离函数用于减少测量随距离增加的影响。使用归一化RCS值对雷达测量的贡献进行加权:
r c s n o r m = r c s − min ⁡ ( r c s ) max ⁡ ( r c s ) − min ⁡ ( r c s ) rcs_{norm}=\frac{rcs-\min(rcs)}{\max(rcs)-\min(rcs)} rcsnorm=max(rcs)min(rcs)rcsmin(rcs)

可按下式得到各状态概率:
P ∗ = r c s n o r m × P ∗ + ( 1 − r c s n o r m ) × 0.5 ,     ∗ ∈ { u n k , f r e e , s t a t i c , d y n } P_{*}=rcs_{norm}\times P_*+(1-rcs_{norm})\times0.5,\ \ \ *\in\{unk,free,static,dyn\} P=rcsnorm×P+(1rcsnorm)×0.5,   {unk,free,static,dyn}

最后,使用贝叶斯公式更新网格的概率。

3) 状态修正

由于运动物体的距离变化率不一定不为0,本文提出两种方法修正网格状态。

测量网格修正:基于“高度动态的网格不能突变为静态”的假设。本文基于已有的积累DOGM更新测量网格:
P c = [ P u n k , P f r e e , P s t a t i c , P d y n ] T P c o r r , c = [ 1 0 0 0 0 1 0 0 0 0 1 − s l P ( v ≠ 0 ) d l P ( v = 0 ) 0 0 s l P ( v ≠ 0 ) 1 − d l P ( v = 0 ) ] P c P_c=[P_{unk},P_{free},P_{static},P_{dyn}]^T\\ P_{corr,c}=\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1-s_lP(v\neq0)&d_lP(v=0)\\0&0&s_lP(v\neq0)&1-d_lP(v=0)\end{bmatrix}P_c Pc=[Punk,Pfree,Pstatic,Pdyn]TPcorr,c= 10000100001slP(v=0)slP(v=0)00dlP(v=0)1dlP(v=0) Pc

其中 P ( v ≠ 0 ) P(v\neq0) P(v=0) P ( v = 0 ) P(v=0) P(v=0)根据DOGM中的平均粒子速度计算, s l s_l sl d l d_l dl位于0到1之间,决定最新测量和现有DOGM的权重。
在这里插入图片描述
错误的静态检测:为避免将低速动态物体检测为静态物体,本文使用Dynablox算法。本文使用网格被分类为静态或空空间的次数来确定其是否为动态物体。若一个网格超过 T s t a t i c T_{static} Tstatic次被分类为静态,且在过去超过 T f r e e T_{free} Tfree次被分类为空空间,则将其转化为动态状态。阈值次数用于调节敏感度。
在这里插入图片描述

4) 粒子创建、权重计算和重采样

确定每个网格的状态概率后,会对新的动态网格(动态状态的概率最高的网格)创建粒子,与现有的粒子一起组成粒子池。粒子由状态向量 x p = [ x p , y p , v x , v y , w t ] T \mathbf{x_p}=[x_p,y_p,v_x,v_y,w_t]^T xp=[xp,yp,vx,vy,wt]T表达,其速度被定义在全局坐标系下,而位置被定义在网格坐标系下。权重表达粒子代表被跟踪物体的可能性,由测量决定:
w t = f d ( d p ) f r ( r p ) ⏟ 更新 ( 1 − f d ( d p ) ) ( 1 − ϵ ) w t − 1 ⏟ 先验 w_t=\underbrace{f_d(d_p)f_r(r_p)}_{更新}\underbrace{(1-f_d(d_p))(1-\epsilon)w_{t-1}}_{先验} wt=更新 fd(dp)fr(rp)先验 (1fd(dp))(1ϵ)wt1

其中 d p d_p dp为粒子与最近测量的距离(即基于距离减弱测量对粒子的影响), f r ( r p ) f_r(r_p) fr(rp)为概率密度函数,用于比较粒子的距离变化率 r p r_p rp和测量的距离变化率。

此外,采样粒子会有与最近测量的距离变化率相匹配的速度,且该速度会被限制在最大速度以下,从而减小距离范围。最后,基于权重重采样粒子。

5) 归一化与占用预测

所有状态概率和粒子权重会被归一化,得到精确的概率。此外,动态状态概率按权重比例在网格内的粒子权重间分布。

最后,所有粒子根据线性运动模型,预测下一时刻的动态占用。使用的状态转移矩阵如下:
[ 1 0.1 0.1 0.05 0 0.9 0 0 0 0 1 − P ( v ≠ 0 ) P ( v = 0 ) 0 0 P ( v ≠ 0 ) 1 − P ( v = 0 ) ] \begin{bmatrix}1&0.1&0.1&0.05\\0&0.9&0&0\\0&0&1-P(v\neq0)&P(v=0)\\0&0&P(v\neq0)&1-P(v=0)\end{bmatrix} 10000.10.9000.101P(v=0)P(v=0)0.050P(v=0)1P(v=0)

IV. 评估

A. 评估数据

可通过使用HDBSCAN算法聚类粒子生成动态物体。

B. 定性评估

可视化表明,本文方法比HSBOF-RS有更高的召回率(能避免动态物体的漏检)。但因为聚类算法和雷达Dynablox算法的不完美,以及粒子数较少,导致了较低的精度。

跟踪方面,基准方案会在物体垂直于其相对雷达的方向运动时丢失物体,而本文方法因其修正算法不会出现这一现象。

C. 定量评估

在RadarScenes数据集上进行动态目标检测任务(使用算法生成边界框),总体来说本文方法不如基于深度学习的方法,但部分指标能达到相当水平,且本文方法能提供的不仅仅是动态目标检测结果。但与HSBOF-RS相比,本文方法性能更优。

本文方法在大型车辆上的检测分数最低,这是因为大型物体在雷达测量中通常是支离破碎的。

本文方法的精度比召回率更低。可通过改进聚类算法并微调雷达Dynablox来减少假阳性,从而提高精度;可通过整合基于粒子分类的方法,进行更敏感的动态分类,从而提高召回率(在DOGM中,召回率低不是因为目标缺失,而是因为网格被错误分类为静态)。

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

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

相关文章

全国青少年软件编程(Python)等级考试试卷(一级) 测试卷2021年12月

第 1 题 【 单选题 】 下面程序的运行结果是什么?( ) a10 b5 ca*b print(c) A :10 B :15 C :50 D :5 正确答案:C 试题解析: 第 2 题 【 单选题 】 与a>b and b>c等价的是?( ) A…

第七十二天 漏洞发现-Web框架中间件联动GobyAfrogXrayAwvsVulmap

第72天 漏洞发现-Web框架中间件&联动&Goby&Afrog&Xray&Awvs&Vulmap 知识点: 1、Bup简单介绍&使用说明 2、Xray简单介绍&使用说明 3、AWWS简单介绍&使用说明 4、Goby简单介绍&使用说明 5、Afrog简单介绍&使用说明 6、…

关于编写测试用例的一些思考

测试用例是QA同学的基本功,每个人都有一套编写测试用例的体系,本文是作者结合自身的工作经验以及阅读一些测试相关的书籍后的一些看法,欢迎大家一起讨论学习。 测试设计 测试用例格式 面试中一些常见的问题 1.APP测试与服务端测试的区别&am…

【黑马程序员】5、TypeScript类型声明文件_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程

课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 5、TypeScript类型声明文件 5.1 TS中的…

Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录

文章目录 前言一、使用前准备第一步 安装vscode第二步 安装msys2 二、使用步骤1.打开MSYS2 MINGW64(1)在开始栏中找到MSYS2 MINGW64并打开(2)安装git(3)安装make(4)安装好之后的文件…

职场的过早优化

过早优化,指的是还没弄清楚需求未来的变化的走向的时候,忽略了更重要的问题。 放在职业发展上:你在没有积累足够职场资源(眼界、能力、人脉等等),也没有对职业发展形成清晰认知的时候,就过早地进…

c++基础知识补充4

单独使用词汇 using std::cout; 隐式类型转换型初始化:如A a1,,此时可以形象地理解为int i1;double ji;,此时1可以认为创建了一个值为1的临时对象,然后对目标对象进行赋值,当对象为多参数时,使用(1&#xf…

如何解决幻兽帕鲁/Palworld服务器联机游戏时的丢包问题?

如何解决幻兽帕鲁/Palworld服务器联机游戏时的丢包问题? 等待服务器维护:首先,确保网络连接稳定,然后查看游戏官方或社区论坛,了解是否有服务器维护的消息。这是解决丢包问题的一种直接且有效的方法。 更新显卡驱动&a…

Springboot接口参数校验

在设计接口时我们通常需要对接口中的非法参数做校验,以降低在程序运行时因为一些非法参数而导致程序发生异常的风险,例如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。如果在代码中对接口参数一…

React之组件定义和事件处理

一、组件的分类 在react中,组件分为函数组件和class组件,也就是无状态组件和有状态组件。 * 更过时候我们应该区别使用无状态组件,因为如果有状态组件会触发生命周期所对应的一些函数 * 一旦触发他生命周期的函数,它就会影响当前项…

Linux学习笔记:进程的终止和等待

进程终止和等待 进程终止进程退出场景进程常见退出方式_exit()退出exit()退出return退出exit()与_exit()的不同之处 进程的等待什么是进程等待?为什么要进行进程等待如何进行等待wait方式:waitpid方式 进程终止 进程退出场景 一般来讲,进程的退出场景有三种: 代码运行完毕,…

chalk库的使用

这篇文章主要是对chalk库官方文档的中文翻译以及我自己的一些理解。chalk的官方文档可以看这里。 首先说下chalk库的作用:美化终端输出的文本,例如添加不同的字体颜色、不同颜色的背景、粗体以及添加下划线等等,看下图: 优点 富…

Vue2->3

Vue2->3 认识Vue31. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势 使用create-vue搭建Vue3项目1. 认识create-vue2. 使用create-vue创建项目 熟悉项目和关键文件组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖…

基于springboot+vue的社区养老服务平台

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Kali Linux 安装 + 获取 root 权限 + 远程访问

一、什么是Kali kali是linux其中一个发行版&#xff0c;基于Debian&#xff0c;前身是BackTrack&#xff08;简称BT系统&#xff09;。kali系统内置大量渗透测试软件&#xff0c;可以说是巨大的渗透系统&#xff0c;涵盖了多个领域&#xff0c;如无线网络、数字取证、服务器、密…

【MySQL】表的内连和外连(重点)

表的连接分为内连和外连。 一、内连接 内连接实际上就是利用 where 子句对两种表形成的笛卡儿积进行筛选&#xff0c;前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查询。 select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 注意&…

Java核心技术知识导航(周更)

写在文章开头 面试旺季笔者也收到很多读者的私信&#xff0c;所以笔者就对近期不断更新迭代补充的Java核心知识点进行一个导航汇总。感兴趣的读者建议收藏&#xff0c;这些专栏系列笔者会在每个周末进行迭代、补充、更新&#xff0c;希望对你有帮助。 你好&#xff0c;我叫sh…

算法学习路径图

1.总览 算法学习路径 2.学习资料 2.1 Java算法与数据结构 Java算法与数据结构

【C++提高编程】

C提高编程 C提高编程1 模板1.1 模板的概念1.2 函数模板1.2.1 函数模板语法1.2.2 函数模板注意事项1.2.3 函数模板案例1.2.4 普通函数与函数模板的区别1.2.5 普通函数与函数模板的调用规则1.2.6 模板的局限性 1.3 类模板1.3.1 类模板语法1.3.2 类模板与函数模板区别1.3.3 类模板…

运筹学_1.1.2 线性规划问题-图解法

1.1.2 线性规划问题-图解法 一、图解法求解步骤&#xff08;只适用于两个决策变量问题&#xff09;二、图解法作图实例三、图解法分析线性规划几种解的情况1、唯一最优解2、无穷多最优解3、无界解4、无解或无可行解 四、图解法的几点启示 一、图解法求解步骤&#xff08;只适用…