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

自动驾驶感知——物体检测与跟踪算法|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个样本。

算法流程

  1. 找到所有的核心对象
  2. 对于每一个未处理的核心对象,生成新的聚类;
  3. 搜索其ε\varepsilonε邻域,将ε\varepsilonε邻域中的点加入该聚类;
  4. 不断重复以上步骤

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

  1. 由聚类算法在单帧点云得到目标输出;
  2. 提取目标的特征,包括统计特征(比如点位置的均值,方差等)和运动特征(比如速度和加速度等) ;
  3. 根据特征计算当前帧的检测目标(detections)与已跟踪的多个目标(tracks)的相似度;
  4. 按照相似度将de tections分配给tracks;
  5. 卡尔曼滤波更新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}})θ=sin1(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等相关课程。

http://www.lryc.cn/news/3630.html

相关文章:

  • C语言(内联函数(C99)和_Noreturn)
  • 图卷积神经网络(GCN)理解与tensorflow2.0 代码实现 附完整代码
  • 模电学习6. 常用的三极管放大电路
  • Lesson 6.6 多分类评估指标的 macro 和 weighted 过程 Lesson 6.7 GridSearchCV 的进阶使用方法
  • 基于 Python 实时图像获取及处理软件图像获取;图像处理;人脸识别设计 计算机毕设 附完整代码+论文 +报告
  • 前后端RSA互相加解密、加签验签、密钥对生成(Java)
  • 基于Java+SpringBoot+Vue前后端分离学生宿舍管理系统设计与实现
  • 前端高频面试题—JavaScript篇(二)
  • 【微信小游戏开发笔记】第二节:Cocos开发界面常用功能简介
  • 3分钟,学会了一个调试CSS的小妙招
  • 【项目精选】基于jsp的健身俱乐部会员系统
  • java注解
  • 移动测试相关
  • SIGIR22:User-controllable Recommendation Against Filter Bubbles
  • Python中的进程线程
  • python(8):使用conda update更新conda后,anaconda所有环境崩溃----问题没有解决,不要轻易更新conda
  • c++11 标准模板(STL)(std::multimap)(四)
  • 乐观锁及悲观锁
  • 常见的锁策略
  • springboot学习(八十) springboot中使用Log4j2记录分布式链路日志
  • 10种ADC软件滤波方法及程序
  • 第五章:Windows server加域
  • Elasticsearch:获取 nested 类型数组中的所有元素
  • English Learning - Day53 作业打卡 2023.2.7 周二
  • SpringMVC--注解配置SpringMVC、SpringMVC执行流程
  • JavaScript中数组常用的方法
  • ModuleNotFoundError: No module named ‘pip‘
  • ROS2 入门应用 发布和订阅(C++)
  • XSS漏洞,通过XSS实现网页挂马
  • 家政服务小程序实战教程09-图文卡片