4D毫米波雷达聚类检测和追踪

代码:https://github.com/Xiao-Hu-Z/RaderDetectionAndTracking

代码正在写,实时更新!

流程

4D雷达毫米波聚类跟踪流程如下图:
在这里插入图片描述

预处理主要包括标定、坐标转换和动静分离。

  • 标定使用水平仪、角反,采集数据分析,得到水平和俯仰偏角。

  • 坐标转换使用转换矩阵即可。

  • 动静分离主要根据径向速度在车辆前进方向的投影进行判断。

聚类

选用经典的dbcan算法,算法描述如下:

DBSCAN聚类算法是一种空间聚类算法,其根据被聚类数据的密度特点进行分类,该算法的聚类结果就是密度相连样本点的最大集合,其聚类结果的优劣主要与邻域半径σ和邻域半径内最小样本点数minpts的选择有关。

基本概念:

  • σ邻域:σ代表以某样本点为圆心的圆半径,该样本点的邻域样本点集D定义为在候选集N中以某样本点为圆心,半径为σ的圆内其他样本点,邻域样本点集D为

N σ ( z i ) = { z j ∈ D ∣ d i s t ( z i , z j ) ⩽ σ } N_{\sigma}(z_i) = \{z_j \in D | dist(z_i,z_j) \leqslant \sigma\} Nσ(zi)={zjDdist(zi,zj)σ}

  • 核心样本点:有任意样本点 z i ∈ D z_i \in D ziD,如果至少有minpts个样本点在它的邻域范围内,则称zi为核心样本点,表示为
    N σ ( z i ) ≥ m i n p t s N_{\sigma}(z_i)\geq minpts Nσ(zi)minpts

  • 直接密度可达:如果样本点 z i z_i zi为聚类中心,则在其邻域样本点集D中的所有样本点zj直接密度可达 z i z_i zi

  • 密度可达:如果存在对象链 p 1 , p 2 , … , p T p_1, p_2, …, p_T p1,p2,,pT,满足 p 1 = z j p_1=z_j p1=zj p T = z i p_T=z_i pT=zi,且 p k + 1 p_{k+1} pk+1直接密度可达 p k p_k pk,则称zj密度可达 z i z_i zi

  • 密度相连:如果存在样本点 z k ∈ D z_k∈D zkD,使样本点 z j z_j zj密度可达 z k z_k zk,样本点zi密度可达zk,则zj到zi密度相连

由DBSCAN聚类算法的参数可知,密度相连样本点的最大集合就是算法的聚类结果,聚类结果中的每个类别都可以有一个或多个核心样本点。如果某类别中只有一个核心样本点,则该类别中的其他核心样本点都在该核心样本点的σ邻域内;如果某类别中有多个核心样本点,则该类别中的任意核心样本点的σ邻域内至少有一个其他核心样本点;这些核心样本点的σ邻域内所有样本点的集合组成了一个DBSCAN聚类类别。

处理流程如下。

  • 从数据集中任意选取一个数据对象点 p;

  • 如果对于参数 Eps 和 MinPts,所选取的数据对象点 p 为核心点,则找出所有从 p 密度可达的数据对象点,形成一个簇;

  • 如果选取的数据对象点 p 是边缘点,选取另一个数据对象点;

  • 重复(2)、(3)步,直到所有点被处理。

DBSCAN 算法的计算时间复杂的度为 O ( n ² ) O(n^²) O(n²),n 为数据对象的数目。这种算法对于输入参数 Eps 和 MinPts 是敏感的。

针对DBSCAN 聚类时间复杂度过大,有人提出基于KD树改进的DBSCAN聚类算法,时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)

聚类后,可以得到基本信息,比如目标长度、宽度、高度、体积、投影面积、RCS以及各种统计分布。根据这些信息,可以对目标进行分类,得到目标的分类结果。

另外,可以估计目标的速度和朝向。

目标朝向角为α,目标点云在速度方向的投影即是点云的径向速度Vr,则有:

V(i)*cos(θ(i)-α) = Vr(i)

V(i) = Vr(i) / cos(θ(i)-α)

由于车辆是刚体,车身每个点速度相等,则有V(1) = V(2) = … = V(n)

V(i) = V(j) = V

Vr(i) / cos(θ(i)-α) = Vr(j) / cos(θ(j)-α)

可以计算得到点云的朝向角α,进而得到目标的真实速度和横纵向速度。

由于雷达对速度的测量可能存在模糊或出现错误,因此任意两个点的结果有较高错误概率,但多个点拟合得到的结果有较高的可行度,可以准确估计目标朝向和横纵向速度。

上文已经推导Vr(i) = V* cos(θ(i)-α) = V*(cos(θ(i))cos(α) + sin(θ(i))sin(α))

两边同时除以VVr(i) cos(α),则有

cos(θ(i))/Vr(i) = 1 / V cos(α) - tan(α) * sin(θ(i))* /Vr(i)

令y(i) = cos(θ(i))/Vr(i), x(i) = sin(θ(i))* /Vr(i),b = 1 / V cos(α), k = - tan(α)则有

y(i) = k * x(i) + b

根据最小二乘拟合公式,可以得到V和α的估计值。

对于行人,由于不是刚体运动,并不适用上述方法。可以参考:Direction of Movement Estimation of Cyclists with a High-Resolution Automotive Radar

构建obb框

对于4D雷达,更重要的是聚类之后的处理。

4d毫米波雷达点云相比传统的毫米波雷达点数数量多很多,经过聚类后,可以得到多个点云簇信息。此时可以仿照激光传统聚类检测方式处理,通过对点云簇计算box框相关的信息,包括:框大小,中心位置,速度,方向和分类信息等。

  • 不考虑z轴,先对点云簇x,y平面 计算凸多边形顶点,进而利用旋转卡壳法拟合最小外接斜矩形,计算box的方向。也有使用主成分分析PCA算法计算聚类后点云的OBB框,pcl库有相应的实现,但拟合出的box框不太紧凑。

目标分类

目标分类可以根据RCS、box框的大小和径向速度对对目标准确分类。

追踪

传统的毫米波点云比较少,聚类后通过点跟踪,4D雷达点云数量较多,不再适用点目标跟踪,可以仿照激光点云目标跟踪方式去做。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

fastai2 实现SSD

https://github.com/search?qfastaissd 有几个值得参考的代码,好好学习。 GitHub - Samjoel3101/SSD-Object-Detection: I am working on a SSD Object Detector using fastai and pytorch fastai2实现的SSD,终于找到了code。https://github.com/sidrav…

【NLP实战】基于Bert和双向LSTM的情感分类【上篇】

文章目录 前言简介数据获取与提取数据清洗读取数据,查看数据清洗训练集观察数据分布去除空数据去除重复数据关于去除停用词关于特殊符号储存清洗后的数据集 清洗测试集观察数据分布去除空数据去除重复数据(并储存) 清洗验证集观察数据分布去除空行去除重复数据(并储…

16.基于主从博弈理论的共享储能与综合能源微网优化运行研究

说明书 MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 参考文档:《基于主从博弈理论的共享储能与综合能源微网优化运行研究》完全复现 仿真平台:MATLAB …

图解项目管理必备十大管理模型

请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!! 心智模型 心智模型是根深蒂固存在于人们心中,影响人们如何理解这个世界(包括我们自己、他人、组织和整个世界),以及…

pytest - Getting Start

前言 项目开发中有很多的功能,通常开发人员需要对自己编写的代码进行自测,除了借助postman等工具进行测试外,还需要编写单元测试对开发的代码进行测试,通过单元测试来判断代码是否能够实现需求,本文介绍的pytest模块是…

Android APK 反编译后重新打包并签名

APKTool: Apktool 是一个逆向android非常有用的工具,可以用来反编译apk文件,并且能在修改部分资源文件后,重新打包成一个新的apk。 下载连接:http://ibotpeaches.github.io/Apktool/install/ 下载之后文件夹非常清爽&…

ChatGPT会颠覆SEO内容创作吗

近几年 AI 的发展日新月异。除了搜索算法本身大规模应用人工智能,我也一直关注着 AI 用于写作的进展。 上篇关于 Google 有用内容更新的帖子还在说,高质量内容创作是 SEO 最难的事之一,对某些网站来说,如果能有工具帮助&#xff…

Mysql 日志

目录 0 课程视频 1 错误日志 -> 默认开启 1.1 查看变量 show variables like %log_error%; 1.2 文件位置 /var/log -> mysqld.log 1.3 指令语法 2 二进制日志 -> 修改数据和数据库结构的日志 2.1 记录原则 2.1.1 记录 数据库创建语句 和 增删改查 2.1.2 不记…

JdbcTemplate常用语句代码示例

目录 JdbcTemplate 需求 官方文档 JdbcTemplate-基本介绍 JdbcTemplate 使用实例 需求说明 创建数据库 spring 和表 monster 创建配置文件 src/jdbc.properties 创建配置文件 src/JdbcTemplate_ioc.xml 创建类JdbcTemplateTest测试是否可以正确得到数据源 配置 J…

智能算法系列之基于粒子群优化的模拟退火算法

文章目录 前言1. 算法结合思路2. 问题场景2.1 Sphere2.2 Himmelblau2.3 Ackley2.4 函数可视化 3. 算法实现代码仓库:IALib[GitHub] 前言 本篇是智能算法(Python复现)专栏的第四篇文章,主要介绍粒子群优化算法与模拟退火算法的结合,以弥补各自…

《基于EPNCC的脉搏信号特征识别与分类研究》阅读笔记

目录 一、论文摘要 二、论文十问 三、论文亮点与不足之处 四、与其他研究的比较 五、实际应用与影响 六、个人思考与启示 参考文献 一、论文摘要 为了快速获取脉搏信号的完整表征信息并验证脉搏信号在相关疾病临床诊断中的敏感性和有效性。在本文中,提出了一…

Ubantu docker学习笔记(八)私有仓库

文章目录 一、建立HTTPS链接1.在仓库服务器上获取TLS证书1.1 生成证书颁发机构证书1.2 生成服务器证书1.3 利用证书运行仓库容器 2.让私有仓库支持HTTPS3.客户端端配置 二、基本身份验证三、对外隐藏仓库服务器3.1 在服务器端3.2 在客户端进行 四、仓库可视化 在前面的学习中&a…

ChatGPT被淘汰了?Auto-GPT到底有多强

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。 说Auto-GPT淘汰了ChatGPT了,显然是营销文案里面的标题党。毕竟它还是基于ChatGPT的API,某种意义只是基于ChatGPT能力的应用。但最近,Auto…

Nautilus Chain Layer 3 圆桌会议圆满举办,超4.8K用户观看

在4月21日,Nautilus Chain举办了以“Layer 3区块链的意义和发展以及Crypto的演变”为主题的线上圆桌会议,我们邀请了众多行业嘉宾包括GitcoinDAO社区管理者Bob jiang、Whalers Community发起者崔棉大师、Chatpuppy联合创始人 古千峰、Whalers Community核…

机器学习与深度学习——通过决策树算法分类鸢尾花数据集iris求出错误率画出决策树并进行可视化

什么是决策树? 决策树是一种常用的机器学习算法,它可以对数据集进行分类或回归分析。决策树的结构类似于一棵树,由节点和边组成。每个节点代表一个特征或属性,每个边代表一个判断或决策。从根节点开始,根据特征的不同…

vue3的props和defineProps

文章目录 1. Props 声明1.1 props用字符串数组来声明Blog.vueBlogPost.vue 1.2 props使用对象来声明Blog.vueBlogPost.vue 2. 传递 prop 的细节2.1 Prop 名字格式2.1 静态Prop & 动态 Prop静态prop动态prop示例Blog.vueBlogPost.vue 2.3 传递不同的值类型NumberBooleanArra…

基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)

摘要:本文介绍了一种MATLAB实现的目标检测系统代码,采用 YOLOv4 检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程,包括算法原理、MATLA…

C++知识点 -- 异常

C知识点 – 异常 文章目录 C知识点 -- 异常一、异常概念二、异常的使用1.异常的抛出和捕获2.异常的重新抛出3.异常安全4.异常规范 三、自定义异常体系四、C标准库的异常体系五、C异常的优缺点 一、异常概念 当一个函数发现自己无法处理错误时,就可以抛出异常&#…

14-3-进程间通信-消息队列

前面提到的管道pipe和fifo是半双工的,在某些场景不能发挥作用; 接下来描述的是消息队列(一种全双工的通信方式); 比如消息队列可以实现两个进程互发消息(不像管道,只能1个进程发消息&#xff…

kali: kali工具-Ettercap

kali工具-Ettercap ettercap工具: 用来进行arp欺骗,可以进行ARP poisoning(arp投毒),除此之外还可以其他功能: ettercap工具的arp投毒可以截取web服务器、FTP服务器账号密码等信息,简略后打印出…