自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达
文章目录
- 1. 物体检测与跟踪算法
- 1.1 DBSCAN
- 1.2 卡尔曼滤波
- 2. 毫米波雷达公开数据库的未来发展方向
- 3. 4D毫米波雷达特点及发展趋势
- 3.1 4D毫米波雷达特点
- 3.1.1 FMCW雷达角度分辨率
- 3.1.2 MIMO ( Multiple Input Multiple Output)技术
- 3.2 4D毫米波雷达发展趋势
- 3.2.1 芯片级联
- 3.2.2 专用芯片
- 3.2.3 标准芯片+软件提升
- 声明
1. 物体检测与跟踪算法
1.1 DBSCAN
DBSCAN: Density Based Spatial Clustering of Applications with Noise;
DBSCAN是基于密度的聚类方法,对样本分布的适应能力比K-Means更好。
黑色的点是非核心对象
注意:距离的度量不限于点的空间距离,还可以是其它点特征,比如速度、反射强度等
基本思路
假定类别可以通过样本分布的紧密程度决定,通过将紧密相连的样本分为一类,得到不同的聚类类别。
基本概念
- (ε,MinPts)(\varepsilon ,MinPts)(ε,MinPts):用来描述邻域的密度;
- ε\varepsilonε:描述了某一样本的邻域距离阈值;
- MinPtsMinPtsMinPts:描述了邻域中的最小样本数。
- 核心对象:对于任一样本,其邻域至少包含MinPts个样本。
算法流程
- 找到所有的核心对象
- 对于每一个未处理的核心对象,生成新的聚类;
- 搜索其ε\varepsilonε邻域,将ε\varepsilonε邻域中的点加入该聚类;
- 不断重复以上步骤
DBSCAN的详细讲解可以参考这篇博文DBSCAN详解
K-Means
K-Means与DBSCAN 的对比
K-Means
- 需要手工指定cluster的数量
- 所有点都进行聚类,不会去除outlier
- 各个方向同等重要,只适合于球形的cluster
- 具有随机性,每次运行结果不一致
DBSCAN
- 不需要指定cluster个数
- 可以排除outlier
- 对样本分布的适应性更好
- 每次运行结果是一致的
1.2 卡尔曼滤波
本节只是对卡尔曼滤波的应用进行介绍,具体原理可见这篇博客——详解卡尔曼滤波原理以及https://www.kalmanfilter.net/
基本概念
以一维雷达测距为例,假设速度恒定,
系统状态xtx_txt: ttt时刻飞机的航程;
测量值ztz_tzt:雷达测距结果;
系统状态的估计值x⃗t,t{\vec x_{t,t}}xt,t: ttt时 刻xxx的估计值(根据zzz估计) ;
系统状态的预测值x⃗t+1,t{\vec x_{t + 1,t}}xt+1,t:t+1t+1t+1时刻xxx的预测值(根据速度预测)
雷达目标跟踪:多目标.
Tracking-by-Detection
- 由聚类算法在单帧点云得到目标输出;
- 提取目标的特征,包括统计特征(比如点位置的均值,方差等)和运动特征(比如速度和加速度等) ;
- 根据特征计算当前帧的检测目标(detections)与已跟踪的多个目标(tracks)的相似度;
- 按照相似度将de tections分配给tracks;
- 卡尔曼滤波更新tracks的状态参数(位置、速度等)。
2. 毫米波雷达公开数据库的未来发展方向
- 单模态数据库
- 只包含雷达数据,相对来说应用范围较窄
- 很难进行准确有效的标注
- 多模态数据库
- 除了雷达数据,还包括同步的图像和激光雷达数据
- 雷达数据:数据块或者点云
NuScenes,CARRADA,SCORP,CRUW,SeeingThroughFog
未来发展方向
-
多模态数据
➢包括同步的图像,激光雷达等数据,用来进行多传感器融合的研究。 -
多数据类型
➢包括ADC数据,RAD数据,点云数据等,为不同层次的算法研究和实际应用提供支持。 -
360度视场
➢需要多个雷达配合完成,以满足多种自动驾驶应用的需求。8.01。 -
大规模数据
➢一般来说,至少要有超过10万帧的不同场景,不同天气条件下采集的数据。 -
丰富的标注信息
➢物体级:类别,位置,大小,方向,分割的mask
➢场景级:语义信息,比如free space, occupied space等。
3. 4D毫米波雷达特点及发展趋势
3.1 4D毫米波雷达特点
4D指的是距离(Range) ,水平角度(Azimuth) ,俯仰角度( Elevation)和速度(Doppler) 。一般来说, 4D 毫米波雷达的角度分辨率相对较高,因此也经常被称为4D成像雷达。
4D毫米波雷达的两个主要特点是:
1)可以测量高度的信息;
2)角度分辨率较高。
为了更好的理解这两点,首先要了解FMCW雷达角度分辨率的依赖因素,以及为了增加角度分辨率所采用的MIMO机制。
3.1.1 FMCW雷达角度分辨率
想要测量目标的方位角,至少需要两个接收天线(RX).可以通过相位差来求得方位角θ=sin−1(ωλ2πd)\theta = {\sin ^{ - 1}}(\frac{{\omega \lambda }}{{2\pi d}})θ=sin−1(2πdωλ)
在有多个接收天线时,每个接收信号与前一个接收信号之间的相位差都是ω\omegaω。以下图为例,假设有4个接收天线,以第一个接收天线为基准,4个接收信号的相位差分别为0,ω\omegaω,2ω\omegaω,3ω\omegaω。这个序列信号的变化频率就是ω\omegaω,因此我们通过FFT来提取这个分量(也就是角度FFT)。
如果场景中存在多个目标,而且其距离和速度都相同,那么雷达能够区分这些目标的最小角度差称之为角度分辨率。假设有以下场景,场景中有两个目标,其方位角分别为θ\thetaθ和θ+Δθ\theta+\Delta\thetaθ+Δθ,对应的相位差分别为ω1\omega_1ω1和ω2\omega_2ω2。ω1=2πλdsin(θ){\omega _1} = \frac{{2\pi }}{\lambda }d\sin (\theta )ω1=λ2πdsin(θ)ω2=2πλdsin(θ+Δθ){\omega _2} = \frac{{2\pi }}{\lambda }d\sin (\theta + \Delta \theta )ω2=λ2πdsin(θ+Δθ)Δω=ω2−ω1=2πdλ(sin(θ+Δθ)−sin(θ))\Delta \omega = {\omega _2} - {\omega _1} = \frac{{2\pi d}}{\lambda }(\sin (\theta + \Delta \theta ) - \sin (\theta ))Δω=ω2−ω1=λ2πd(sin(θ+Δθ)−sin(θ))因为sin(θ)\sin(\theta)sin(θ)的导数为cos(θ)\cos(\theta)cos(θ),所以可得Δω=2πdλ(cos(θ)Δθ)\Delta \omega = \frac{{2\pi d}}{\lambda }(\cos (\theta )\Delta \theta )Δω=λ2πd(cos(θ)Δθ)根据傅里叶变换理论,N点的FFT可以区分的频率分量最小为2π/N,这里的N就是接收天线的个数。这样我们就可以得到可以分辨的最小角度差,也就是角度分辨率。Δω>2πN\Delta \omega > \frac{{2\pi }}{N}Δω>N2π⇒2πdλ(cos(θ)Δθ)>2πN\Rightarrow \frac{{2\pi d}}{\lambda }(\cos (\theta )\Delta \theta ) > \frac{{2\pi }}{N}⇒λ2πd(cos(θ)Δθ)>N2π⇒Δθ>λNdcos(θ)\Rightarrow \Delta \theta > \frac{\lambda }{{Nd\cos (\theta )}}⇒Δθ>Ndcos(θ)λ通常来说,我们取d=λ/2,θ=0d = λ/2, θ = 0d=λ/2,θ=0 (boresight 方向,也就是雷达的中心朝向)。这时,角度分辨率公式为: θRES=2N{\theta _{RES}} = \frac{2}{N}θRES=N2
从上面的推导可以看出,角度分辨率主要依赖于两个因素: 1) 目标的方位角。在boresight方向分辨率最高。越靠近雷达FOV的边缘,角度分辨率越低。2)天线的个数。角度分辨率与天线个数城正比关系。第一个因素我们无法控制,而提高FMCW雷达角度分辨率的主要手段就是增加天线个数。
3.1.2 MIMO ( Multiple Input Multiple Output)技术
从角度分辨率的计算公式中可以看到,想要提高雷达的角度分辨率,必须增加接收天线的个数。但是,增加天线的个数,会使天线体积变得很大,此外每一个接收天线上都要附加一个单独的链路来处理信号,比如混频器、IF滤波器和ADC。不仅硬件设计变得复杂,而且成本也会增加。
采用MIMO (多发多收)的天线设计来降低接收天线的个数。比如,如果想要得到8个接收天线,采用2个发射天线和4个接收天线,这样就可以得到等效的8个虛拟接收天线阵列。一般来说,不同的发射天线会间隔发射,或者发射不同波形的信号,这样接收天线就可以区分来自不同发射天线的信号。
当发射天线有垂直方向的分布时,就可以测量目标的俯仰角度。下图就是一个典
型的3发4收的天线排列结构。等效的接收天线有12个,垂直方向上有两个天线
可以用来测量俯仰角度。
3.2 4D毫米波雷达发展趋势
3.2.1 芯片级联
4D成像雷达的核心在于较高的水平和垂直角度分辨率,这就需要增加发射和接收天线的个数。目前绝大多数毫米波雷达都是采用单片收发器,通常只有3发4收,也就是只有12个虛拟天线。一个增加虚拟天线的方案是基于现有的量产雷达,将多个雷达芯片进行级联,比如德国大陆的ARS540和华为的4D成像雷达。
ARS540采用4片级联的形式,将4片NXP的77GHz毫米波雷达收发器(MMIC)MR3003进行级联。每个MR3003是3发4收,4片联在一起就是12发16收,这样就可以产生192个虚拟天线。ARS540是第一个具备能够真正测量目标高度的毫米波雷达,其垂直角度分辨率可以达到2.3°,水平角度分辨率可以达到1.2°
3.2.2 专用芯片
除了采用现有的量产雷达进行级联,还有的公司直接将多发多收的天线嵌入到一个雷达芯片里,比如Arbe, Vayyar 以及Mobileye。Arbe 提供的4D成像毫米波雷达Phoenix,采用48发48收,虚拟通道达到个2304个。Mobileye 同样也是48发48收的天线配置,水平和垂直角分辨率可以做到0.5°和2°。
3.2.3 标准芯片+软件提升
这种方案基于标准的雷达芯片,但是采用软件和AI的方法来提高雷达的分辨率。这里比较有代表性的是傲酷的虚拟孔径成像技术。传统FMCW雷达重复单一的发射波形,相位差来自于多根实体接收天线,而傲酷虚拟孔径成像雷达波形可以对发射波进行调频,调相、调幅,也就是说每根接收天线在不同时间产生不同的相位,形成“虚拟天线孔径”。而且这种调整是可以根据当前环境进行自适应的,也就是说根据上一帧的检测结果来调整当前帧的波形。
声明
本人所有文章仅作为自己的学习记录,若有侵权,联系立删。本系列文章主要参考了清华大学、北京理工大学、哈尔滨工业大学、深蓝学院、百度Apollo等相关课程。
相关文章:
自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达
文章目录1. 物体检测与跟踪算法1.1 DBSCAN1.2 卡尔曼滤波2. 毫米波雷达公开数据库的未来发展方向3. 4D毫米波雷达特点及发展趋势3.1 4D毫米波雷达特点3.1.1 FMCW雷达角度分辨率3.1.2 MIMO ( Multiple Input Multiple Output)技术3.2 4D毫米波雷达发展趋势3.2.1 芯片级联3.2.2 专…...
C语言(内联函数(C99)和_Noreturn)
1.内联函数 通常,函数调用都有一定的开销,因为函数的调用过程包含建立调用,传递参数,跳转到函数代码并返回。而使用宏是代码内联,可以避开这样的开销。 内联函数:使用内联diamagnetic代替函数调用。把函数…...
图卷积神经网络(GCN)理解与tensorflow2.0 代码实现 附完整代码
图(Graph),一般用 $G=(V,E)$ 表示,这里的$V$是图中节点的集合,$E$ 为边的集合,节点的个数用$N$表示。在一个图中,有三个比较重要的矩阵: 特征矩阵$X$:维度为 $N\times D$ ,表示图中有 N 个节点,每个节点的特征个数是 D。邻居矩阵$A$:维度为 $N\times N$ ,表示图中 N…...
模电学习6. 常用的三极管放大电路
模电学习6. 常用的三极管放大电路一、判断三极管的工作状态1. 正偏与反偏的概念2. 工作状态的简单判断二、三种重要的放大电路1. 共射电路2. 共集电极放大电路3. 共基极放大电路一、判断三极管的工作状态 1. 正偏与反偏的概念 晶体管分P区和N区, 当P区电压大于N区…...
Lesson 6.6 多分类评估指标的 macro 和 weighted 过程 Lesson 6.7 GridSearchCV 的进阶使用方法
文章目录一、多分类评估指标的 macro 和 weighted 过程1. 多分类 F1-Score 评估指标2. 多分类 ROC-AUC 评估指标二、借助机器学习流构建全域参数搜索空间三、优化评估指标选取1. 高级评估指标的选用方法2. 同时输入多组评估指标四、优化后建模流程在正式讨论关于网格搜索的进阶…...
基于 Python 实时图像获取及处理软件图像获取;图像处理;人脸识别设计 计算机毕设 附完整代码+论文 +报告
界面结果:图像获取;图像处理;人脸识别 程序结构设计 图形用户界面设计与程序结构设计是互为表里的。或者说,程序结构设计是软件设计最本质、最核心的内容。徒有界面而内部逻辑结构混乱的软件一无是处。 Windows 操作系统是一款图形化的操作系统,相比于早期的计算机使用的命…...
前后端RSA互相加解密、加签验签、密钥对生成(Java)
目录一、序言二、关于PKCS#1和PKCS#8格式密钥1、简介2、区别二、关于JSEncrypt三、关于jsrsasign四、前端RSA加解密、加验签示例1、相关依赖2、cryptoUtils工具类封装3、测试用例五、Java后端RSA加解密、加验签1、CryptoUtils工具类封装2、测试用例六、前后端加解密、加验签交互…...
基于Java+SpringBoot+Vue前后端分离学生宿舍管理系统设计与实现
博主介绍:✌全网粉丝3W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品:《微服务实战》专栏是本人的实战经验总结,《S…...
前端高频面试题—JavaScript篇(二)
💻前端高频面试题—JavaScript篇(二) 🏠专栏:前端面试题 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向…...
【微信小游戏开发笔记】第二节:Cocos开发界面常用功能简介
Cocos开发界面常用功能简介 本章只介绍微信小游戏开发时常用的功能,其他功能不常用,写多了记不住(其实是懒 -_-!): 层级管理器,用于操作各个节点。资源管理器,用于操作各种文件资源。场景编辑…...
3分钟,学会了一个调试CSS的小妙招
Ⅰ. 作用 用于调试CSS , 比控制台添更加方便,不需要寻找 ;边添加样式,边可以查看效果,适合初学者对CSS 的理解和学习; Ⅱ. 快速实现(两边) ① 显示这个样式眶 给 head 和 style 标签添加一个…...
【项目精选】基于jsp的健身俱乐部会员系统
点击下载源码 社会可行性 随着社会的发展和计算机技术的进步,人类越来越依赖于信息化的管理系统,这种系统能更加方便的获得信息以及处理信息。人们都改变了过去的思维,开始走向了互联网的时代,在 可行性小结 本章在技术可行性上…...
java注解
1. Java注解(Annotation) 2. Java注解分类 3. JDK基本注解 4. JDK元注解 5. 注解分类 6. 自定义注解开发 7. 提取Annotation信息 8. 注解处理器 9. 动态注解处理器(spring aop方式) 1. Java注解(Annotation) Java注解是附加在代码中的一些元信息,用于…...
移动测试相关
一、环境搭建 准备工作: (python、pycharm安装配置好) 1、Java SDK 安装配置 Java Downloads | Oracle 下载安装后配置系统环境变量:JAVA_HOME(jdk根目录路径)和path(jdk根目录下的bin目录路径…...
SIGIR22:User-controllable Recommendation Against Filter Bubbles
User-controllable Recommendation Against Filter Bubbles 摘要 推荐系统经常面临过滤气泡的问题:过度推荐基于用户特征以及历史交互的同质化项目。过滤气泡将会随着反馈循环增长,缩小了用户兴趣。现有的工作通常通过纳入诸如多样性和公平性等准确性之…...
Python中的进程线程
文章目录前言多进程与多线程基本概念多进程multiprocessing 类对象进程池subprocess模块进程间通信多线程threading实现线程操作线程共享所有变量线程锁参考资料前言 又花了点时间学习了一下Python中的多线程与多进程的知识点,梳理一下供复习参考 多进程与多线程 …...
python(8):使用conda update更新conda后,anaconda所有环境崩溃----问题没有解决,不要轻易更新conda
文章目录0. 教训1. 问题:使用conda update更新conda后,anaconda所有环境崩溃1.1 问题描述1.2 我搜索到的全网最相关的问题----也没有解决3 尝试流程记录3.1 重新安装pip3.2 解决anaconda编译问题----没成功0. 教训 (1) 不要轻易使用conda update更新conda----我遇到…...
c++11 标准模板(STL)(std::multimap)(四)
定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…...
乐观锁及悲观锁
目录 1.乐观锁 (1).定义 (2).大体流程 (3).实现 (4).总结 2.悲观锁 (1).定义 (2).大体流程 (3).实现 (4).缺点 (5).总结 1.乐观锁 (1).定义 乐观锁在操作数据时非常乐观,认为别的线程不会同时修改数据所以不会上锁,但是在更新的时候会判断一…...
常见的锁策略
注意: 接下来讲解的锁策略不仅仅是局限于 Java . 任何和 "锁" 相关的话题, 都可能会涉及到以下内容. 这些特性主要是给锁的实现者来参考的.普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的. 1.乐观锁 vs 悲观锁 悲观锁: (认为出现锁冲…...
springboot学习(八十) springboot中使用Log4j2记录分布式链路日志
在分布式环境中一般统一收集日志,但是在并发大时不好定位问题,大量的日志导致无法找出日志的链路关系。 可以为每一个请求分配一个traceId,记录日志时,记录此traceId,从网关开始,依次将traceId记录到请求头…...
10种ADC软件滤波方法及程序
10种ADC软件滤波方法及程序一、10种ADC软件滤波方法1、限幅滤波法(又称程序判断滤波法)2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(又称滑动平均滤波法)5、中位值平均滤波法(又称防脉冲干扰平均滤波法&#x…...
第五章:Windows server加域
加入AD域:教学视频:https://www.bilibili.com/video/BV1xM4y1D7oL/?spm_id_from333.999.0.0首先我们选择一个干净的,也就是新建的没动过的Windows server虚拟机。我们将DNS改成域的ip地址,还要保证它们之间能ping的通,…...
Elasticsearch:获取 nested 类型数组中的所有元素
在我之前的文章 “Elasticsearch: object 及 nested 数据类型” 对 nested 数据类型做了一个比较详细的介绍。在实际使用中,你在构建查询时肯定会遇到一些问题。根据官方文档介绍,nested 类型字段在隐藏数组中索引其每个项目,这允许独立于索引…...
English Learning - Day53 作业打卡 2023.2.7 周二
English Learning - Day53 作业打卡 2023.2.7 周二引言1. 我必须承认,我之前学习没你用功。have to VS must2. 这跟我想得一样简单。3. 生活并不像它看上去那么顺风顺水,但也不会像我们想象得那么难。Look VS seem4. 你比去年高多了。5. 你关心你的工作胜…...
SpringMVC--注解配置SpringMVC、SpringMVC执行流程
注解配置SpringMVC 使用配置类和注解代替web.xml和SpringMVC配置文件的功能 创建初始化类,代替web.xml 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类, 如果找到的话就用它来配置Servle…...
JavaScript中数组常用的方法
文章目录前言常用数组方法1、 join( )2、push()与 pop()3、shift()与 unshift()4、sort()5、reverse()6、slice(ÿ…...
ModuleNotFoundError: No module named ‘pip‘
项目场景:pip 错误 Traceback (most recent call last): File "E:\KaiFa\Python\Python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "E:\KaiFa\Python\Python38\lib\runpy.py&qu…...
ROS2 入门应用 发布和订阅(C++)
ROS2 入门应用 发布和订阅(C)1. 创建功能包2. 创建源文件2.1. 话题发布2.2. 话题订阅3. 添加依赖关系4. 添加编译信息4.1. 添加搜索库4.2. 增加可执行文件4.3. 增加可执行文件位置5. 编译和运行1. 创建功能包 在《ROS2 入门应用 工作空间》中已创建和加…...
XSS漏洞,通过XSS实现网页挂马
**今天讲下通过XSS实现网页挂马~*,目的是了解安全方面知识,提升生活网络中辨别度 原理: 实验分为两部分: 1、通过Kali linux,利用MS14_064漏洞,制作一个木马服务器。存在该漏洞的用户一旦通过浏览器访问木…...
在手机上做网站/个人网站制作模板主页
一、前言 highlight.js是一款轻量级的Web代码语法高亮库。 下载地址:https://highlightjs.org/download/ 下载插件库的时候可以选择你需要的语言,然后再打包,下载后会发现有个style文件夹,里面放了各种不同的显示颜色。 二、使用…...
门网站源码/软文推广公司有哪些
下载服务器时常被人盗链,时间久了导致服务器大量资源浪费,由于服务器使用nginx做为web服务器。nginx的防盗链方法有很多,可以使用现成的防盗链模块nginx-accesskey-2.0.3,编译ningx时添加此模块即可。由于服务其他业务需要&#x…...
wordpress批量评论/游戏广告投放平台
原标题:大学还有这7个加学分的方式?!关注“广东大学生日常”公众号可快速查高考录取结果!到了高校期末考试的时候许多同学都在担心挂科,丢了学分!今天,小师姐和大家聊聊学分到底有什么用&#x…...
平台网站怎么推广/windows优化大师好吗
解决XP系统访问Win10打印机被拒绝的问题参考文章: (1)解决XP系统访问Win10打印机被拒绝的问题 (2)https://www.cnblogs.com/plain-heart/p/10756979.html 备忘一下。...
wordpress批量发布器/小学培训机构
我写一下一直用的搜狗输入法,电脑手机上都在用。 ①搜狗输入法自由的一点是皮肤,可以根据用户的喜好自定义皮肤,以及整体的风格都可以切换②记住用户选择:能够把用户使用频繁的字词的位置调整到首页,供用户选择。此外&…...
一般做网站是用什么语言开发的/线上推广工作内容
if (!window.confirm("确认要删除吗?")) { return false; }转载于:https://www.cnblogs.com/zhangruiyun/p/3892655.html...