Radar 4D毫米波雷达和Camera 相机 外参联合标定 即开即用

Radar 4D毫米波雷达和Camera 相机 外参联合标定 基于Matlab app设计


毫米雷达和相机的联合标定研究甚少,最近看了好多帖子,不是收费,就是项目需求代码不开源,所以鉴于此自己基于Matlab开发了一个4DRadarCameraCali工具箱来简化标定过程。希望能帮助后来的小伙伴。

版本要求

Matlab R2021a 以上

整体界面设计

代码页面设计
左侧为外参调整栏,右侧为相机内参设置栏,中间为图像点云显示窗口

快速开始

使用说明:
(先设置其相机内参)
1.使用img选择图片
2.使用pcd选择pcd点云文件
3.使用ROI选择点云区域
4.使用点云检测质心拟合长方形求取质心
5.使用画框求取图像坐标中心
6.找到至少不共线4对点(其实3对点也可以)求取[orientation, location]=estimateWorldCameraPose(imagePoints, worldPoints, cameraParams);相机坐标系到世界坐标系的转换。其中相机内参为cameraIntrinsics(app.focalLength,app.principalPoint,imageSize,‘RadialDistortion’,app.RadialDistortion,‘TangentialDistortion’,app.TangentialDistortion);
7.更改左侧参数,查看配准效果。
下面是实际操作流程:

matlab工具的使用

分区介绍

在这里插入图片描述
相机内参设置,需要提前标定好相机。
在这里插入图片描述
导入图片和pcd格式点云
在这里插入图片描述
显示区域,下方为点云投影图像图,第一个点云图为点云通过外参矩阵变换到相机坐标系下的点云图,第二个图为原始点云图

在这里插入图片描述
在这里插入图片描述
找到感兴趣区域,进行选择区域,剔除噪点
在这里插入图片描述
调整进行配准,如果项目精度要求不高,到此为止,因为毫米波雷达本身噪点就高,配准精度一般不会太高,如果还有一定要求,可以通过右侧点云质心按钮,求取当前感兴趣区域点云的质心,程序中给出两种方法,一种是对点云进行矩形拟合给出其中心坐标,另一种是直接求取其质心。同时根据其图像画框按钮求取其对应图像的坐标,最后根据上述第六步求解更为精确的外参关系。

在这里插入图片描述
质心拟合如上图,红色区域为对应感兴趣区域点云的矩形拟合模型。
在这里插入图片描述
画框中心如上。

展望

本文实现基本数学原理与偶尔看到的这篇论文
L. Cheng, A. Sengupta and S. Cao, “3D Radar and Camera Co-Calibration: A flexible and Accurate Method for Target-based Extrinsic Calibration,” 2023 IEEE Radar Conference (RadarConf23), San Antonio, TX, USA, 2023, pp. 1-6, doi: 10.1109/RadarConf2351548.2023.10149669.
类似,有需要可以进行下载学习,但其主要的pnp和lm优化方法,本文使用estimateWorldCameraPose函数代替。
此外,文中提出的雷达三角反射器,感觉适合高精度的联合外参标定,如果有需要的,可以将标志物换成雷达三角反射器进行特征质心提取,应该会提升不少精度。

app安装

记得安装Matlab时勾选安装lidarCameracali 工具包*****
这点很重要,如果不知道哪个是,就全部勾选,一共20G。
下载链接
如果帮到你请点星,谢谢你的鼓励很重要。
如果有任何问题可以到app作者信息联系。

参考

https://blog.csdn.net/leonardohaig/article/details/88724365
https://blog.csdn.net/hgz_gs/article/details/114288657?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-114288657-blog-134440694.235%5Ev43%5Epc_blog_bottom_relevance_base8&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-114288657-blog-134440694.235%5Ev43%5Epc_blog_bottom_relevance_base8&utm_relevant_index=2

后续更新

对于上述展望中的内容,使用角反射器做了对应试验,发现仅仅使用estimateWorldCameraPose对于有很多干扰源的情况下(数据异常较多)会比较适用,但是在一般数据正确的情况下,还是要像论文中一样,最后使用lm优化,得到更符合物理意义的精确解,如果省略这步投影误差可能会偏大。从外参看:确实使用角反射器后,精度得到了提升。平均重投影误差:大概可以达到5-10像素以内。
配准效果图

### 毫米波雷达标定方法与ATOM平台 毫米波雷达通常安装在车辆前部,具体位置位于车头处车标附近,其结构包含一块电路板一块天线板[^1]。对于毫米波雷达成像系统的校准,在AToM平台上可以实现自动化测试验证流程。 #### AToM平台概述 AToM(Automated Testing and Measurement)是一个用于传感器融合及自动驾驶功能发的综合性软件环境。此平台支持多种类型的传感器数据处理,包括但不限于摄像头、激光雷达以及毫米波雷达的数据采集与分析。 #### 雷达硬件配置 针对毫米波雷达而言,内部采用了Freescale控制芯片负责信号处理,并由TI提供的稳压电源管理芯片保障稳定供电。这些组件共同作用确保了雷达能够精确感知周围环境变化并提供可靠的目标检测信息给ADAS系统或其他上层应用逻辑模块。 #### 标定过程详解 为了使毫米波雷达正常工作并与其它车载设备协同运作,必须对其进行严格的数调整即所谓的“标定”。以下是基于AToM平台执行毫米波雷达标定时所涉及的关键步骤: - **静态目标识别**:通过固定已知距离角度的标准反射体作为照物来评估雷达测量精度; - **动态场景重建**:利用移动物体模拟真实交通状况下的探测效果,进而优化算法模型以提高分辨率抗干扰能力; - **多传感器同步**:当存在多个不同种类或同种型号但分布在车身各部位的传感单元时,则需考虑时间戳匹配及其几何关系映射等问题,从而保证整体感知框架的一致性准确性。 ```python # Python伪代码展示如何读取来自毫米波雷达的数据流并通过AToM接口发送至云端服务器进行进一步处理 import atom_sdk as sdk def process_radar_data(stream): processed_info = sdk.process_stream(stream) return send_to_cloud(processed_info) def main(): radar_input = get_millimeter_wave_radar_input() result = process_radar_data(radar_input) if __name__ == "__main__": main() ```
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值