分享

毫米波汽车雷达原始ADC数据数据集(附MATLAB算法仿真)

 调皮连续波 2023-03-26 发布于贵州

本文首发于公众号【调皮连续波】,其他平台为自动同步,内容若不全或乱码,请前往公众号阅读。保持关注调皮哥,和1.4W雷达er一起学习雷达技术!

【正文】


编辑 |  调皮哥的小助理        审核 | 调皮哥

1、引言

闲来无事编程序,本期文章分享一个2TX-4RX MMWave 雷达的数据集,以及基于该数据集的MATLAB算法仿真程序,仿真程序从原始数据解析、距离估计、速度估计、CFAR检测、峰值搜索、非相参积累、多普勒速度补偿、角度估计(3D-FFT和MUSIC超分辨)

其中,整个框架内部可以进行修改和扩展,比如其他超分辨算法、聚类算法、跟踪算法、点云识别等等。

先上演示效果,请看下面两个视频:

该数据集采用TI单芯片毫米波雷达AWR1843采集,只用了水平通道的2根发射天线,通过所有发射通道上的时分复用(TDM-MIMO),它可以形成具有1T8R TDM-MIMO 虚拟阵列。

主要采集了6种目标,包含行人、骑自行车的人、汽车、摩托车、公共汽车、卡车 。数据集来源:https://github.com/Xiangyu-Gao/Raw_ADC_radar_dataset_for_automotive_object_detection

2、数据集的说明

整个数据集包含大约 19800 帧雷达数据以及同步的相机图像和标签,对于每个雷达帧,其原始数据具有 4 个维度:ADC采样点(快速时间)、线性调频Chirp(慢时间)、发射通道、接收通道。

数据集下载:https://drive.google.com/file/d/1QgjwdQpY96NAVGdvjjFrXLhb48o15EO_/view?usp=share_link

如果个人数据集下载不了,文章末尾有获取方式。

3、数据集格式

数据集由多个序列组成,例如“2019_04_09_bms1000”、“2019_04_09_cms1000”。在每个序列文件夹下,存在图像文件夹“images_0”、雷达数据文件夹“radar_raw_frame”和标签文件夹“text_labels”。

整体数据集结构如下所示:

Automotive---2019_04_09_bms1000---images_0---radar_raw_frame---text_labels---2019_04_09_cms1000   ......

“radar_raw_frame”文件夹包含 *.mat 格式的原始 ADC 雷达数据,“images_0”文件夹包含 *.jpg 格式的相机图像,“text_labels”包含 *.csv 格式的每个帧的标签文件。

(1)雷达数据

详细的数据格式说明如下:

对于每个雷达帧,其原始数据 (*.mat) 有 4 个维度:ADC样本 (128)、线性调频 (255)、接收通道 (4)、发射通道(2)。所有发射机均采用时分复用(TDM)布置,即逐个发送线性调频信号。

2 个发射器和 4 个接收器的位置绘制在下图中,来自 TI 文档。通过TDM,它形成一个1×8的MIMO阵列,如下图所示:

所有雷达配置都包含在配置中,如下图所示:

(2)相机数据

每帧的相机图像为 1440x1080 像素,某一帧的图像如下图所示:

(3)标签

每个 *.csv 文件都包含一个帧的标签,其中每一行的格式为 [uid, class, px, py, wid, len],其中 uid 是此序列中对象的唯一跟踪 ID,class 是对象的类 ID,ID 号表示如下,px, py, wid, len 是 x 中心, 对象的边界框的 y 中心、宽度和长度。

label_map = {0: 'person',2: 'car',3: 'motorbike',5: 'bus',7: 'truck',80: 'cyclist',              }
.CSV文件夹中的数如下图所示:

3、数据集解析工具

本文采用MATLAB2022b为处理环境,数据解析代码如下:
%% 公众号 :调皮连续波%% 时间:2023年3月26日clc;clear all;close all;
addpath('你的雷达数据存放路径\2019_05_29_pcms005\radar_raw_frame');addpath('你的图像数据存放路径\\2019_05_29_pcms005\images_0');
添加路径后,提取数据比较方便,然后设置好雷达参数:
%% 根据采集的数据设置ADC_samples =128; %ADC采样点数chirpsNum=255;    %chirp脉冲数numTx =2;        %发射天线数numRx=4;         %接收天线数Frame =898;      %帧数设置;parameter  = generateParameter();

然后按帧提取,每提取一帧数据,就处理一帧数据:

for frame =3:Frame %帧数设置
adcData = load([num2str(frame, '%06d'),'.mat']).adcData;rawData=reshape(adcData,[ADC_samples,chirpsNum,numRx*numTx]);  %%添加你的处理代码end

4、算法仿真结果

(1)回波信号实虚部

(2)距离估计

(3)距离-速度谱

(4)非相参积累

(5)CFAR检测

采用CA-CFAR。

(6)峰值搜索

(7)MUSIC超分辨结果

好了,由于篇幅和时间有限,暂时就展示这些内容。上述代码和数据集是完全配合使用的,需要数据集和整套代码可以点这个链接联系调皮哥:雷达er入群指南

【本期结束】


以后程序都是私信分享,因为有人之前用我的开源程序被人盗用,这就是我写的程序和数据,我还没办法举报,这就很头疼。

目前我的工作经验尚浅,还有很多内容需要学习,如果还有没有说到或者不全面的地方,还请指正,感谢大家。

喜欢本文,可以转发朋友圈~,关注【调皮连续波】和备用号【我们的雷达】。


【点击以下链接,可直达各个业务模块】

雷达技术群加入指南 付费咨询
文章投稿指南专业资料代找
商业推广合作雷达项目交流
雷达书籍清单公众号分享资料清单

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多