4D毫米波雷达——RADIal数据集、格式、可视化 CVPR2022

news2024/10/1 23:30:49

前言

本文介绍RADIal数据集,来着CVPR2022的。

  • 它是一个收集了 2 小时车辆行驶数据的数据集,采集场景包括:城市街道、高速公路和乡村道路。
  • 采集设备包括:摄像头、激光雷达和高清雷达等,并且还包括了车辆的 GPS 位置和行驶信息。
  • 总共有 91 个视频序列,每个视频时长从 1 分钟到 4 分钟不等,加起来一共是 2 小时。这些视频详细记录了车辆在不同地点和环境下的行驶情况。
  • 在大约 25,000 个录制的画面中,有 8,252 个画面被用来标记了 9,550 辆车。

 论文地址:【CVPR2022】Raw High-Definition Radar for Multi-Task Learning

如下图所示,展示了相机图像,红色为投影的激光点云,靛蓝色为雷达点云,橙色为车辆标注,绿色为自由行驶空间标注。

如下图所示,展示了雷达功率谱、鸟瞰图、雷达的距离-方位图、GPS 轨迹和里程计轨迹。

  • (b) 雷达功率谱,包含边界框注释;
  • (c) 鸟瞰视图中的自由行驶空间注释,车辆用橙色边界框标注,雷达点云为靛蓝色,激光点云为红色;
  • (d) 笛卡尔坐标系中的距离-方位图(Range-azimuth map),叠加雷达点云和激光点云;
  • (e)GPS 轨迹以红色表示,里程计轨迹重建以绿色表示

公开可用的带雷达的驾驶数据集,如下表所示:

数据集规模被定义为“小”(<15k 帧)、“大”(>130k 帧)或“中等”(介于两者之间)。

雷达分为低清晰度(‘LD’)、高清晰度(‘HD’)或扫描型(‘S’),其数据以不同的表示形式发布,涉及不同的信号处理流程:

  • 模拟至数字转换器(‘ADC’)信号
  • 距离-方位-多普勒(‘RAD’)张量
  • 距离-方位(‘RA’)视图
  • 距离-多普勒(‘RD’)视图、点云(‘PC’)

多普勒信息的存在取决于雷达传感器。其他传感器模态包括相机(‘C’)、激光雷达(‘L’)和里程计(‘O’)。

RADIal 是唯一提供高清雷达的每种表示形式,并结合相机、激光雷达和里程计的数据集,同时在论文中提出检测和自由空间分割任务。

1、传感器规格

这里的高清雷达,全称为High-definition (HD)  radar,简称为HD radar。(是4D毫米波雷达的一种)

  • HD radar安装在前通风格栅的中间,如下图所示。
  • 它是RADIal数据集的核心,由NRx=16个接收天线和NTx=12个发射天线组成,形成NRx·NTx= 192 个虚拟天线。
  • 这种虚拟天线阵列能够达到高分辨率的水平方位角,同时估计物体的垂直仰角

由于雷达信号难以被标注和直观理解,因此还提供了16线激光扫描仪 LiDAR5 Mpix RGB 摄像头

16线的激光雷达,对应 laser scanner (LiDAR) ,安装在前通风格栅的中间下方。摄像头安装在挡风玻璃后面的内后视镜附近。

三个传感器具有平行的水平视线,指向行驶方向。

RADIal还提供同步GPSCAN轨迹,可以访问车辆的地理参考位置及其驾驶信息,如速度方向盘角度偏航角,传感器的规格如下表所示。

 2、采集场景

 采集场景主要包括城市街道、高速公路和乡村道路,如下图所示,是各个场景的数据占比。

3、数据集结构

RADIal是一个独立的文件夹,包含所有记录的序列。每个序列都是一个文件夹,其中包含:

  • 现场预览视频(低分辨率);
  • 相机数据以MJPEG格式压缩;
  • 激光扫描仪点云数据保存在二进制文件中;
  • 保存在二进制文件中的ADC雷达数据。总共有4个文件,每个雷达芯片一个文件,每个芯片包含4个Rx天线;
  • 以 ASCII 格式保存的 GPS 数据
  • 以二进制格式保存的车辆的CAN轨迹
  • 最后,一个日志文件,提供每个传感器事件的时间戳。

 RADIal代码地址:https://github.com/valeoai/RADIal/tree/main

在 Python 库 DBReader 中提供了读取数据。 由于所有雷达数据都以 RAW 格式记录,即模数转换 (ADC) 后的信号,因此也提供了一个优化的 Python 库 SignalProcessing 来处理雷达信号并生率谱、点云或距离-方位角图。

4、下载数据集

RADIal数据集分为“原始数据”和“即用型数据”。

 原始数据集下载地址:GoogleDrive,然后需要使用 SignalProcessing 库为每种模态生成数据。原始数据需要申请的。

 即用型数据下载地址:https://drive.google.com/drive/folders/1UJAQMr1Hv2KWsqgv_JYGd9TWea2v-Tqb 可以使用 Loader 文件夹中提供的 PyTorch 数据加载器示例进行加载。

推荐使用即用型数据,数据整体比较大

    

 解压后,文件夹目录:

5、标签格式

在 25,000 个同步帧中,有 8,252 个帧被标记。 车辆的标签存储在单独的 csv 文件中。每个标签都包含以下信息:

  • numSample:所有传感器之间当前同步样本的数量。这个标签可以投射到每个具有共同dataset_index值的传感器中。
  • [x1_pix, y1_pix, x2_pix, y2_pix]:相机坐标中车辆2D框的二维坐标;
  • [laser_X_m、laser_Y_m、laser_Z_m]:激光扫描仪坐标系统中车辆的 3D 坐标。其中 3D点是车辆后部或前部可见面的中间;
  • [radar_X_m, radar_Y_m, radar_R_m, radar_A_deg, radar_D, radar_P_db]:雷达坐标系中车辆的二维坐标(鸟瞰图),采用笛卡尔坐标 (X,Y) 或极坐标 (R,A) 坐标。radar_D是多普勒值,radar_P_db是反射信号的功率;
  • dataset:所属序列名称;
  • dataset_index:当前序列中的帧索引;
  • 难度:0 或 1

请注意,所有字段中的 -1 表示没有任何标签的帧。Free-driving-space 的标签以保存在 png 文件中的分段掩码形式提供。

看一下示例标签数据:

前20行的标签数据:

numSample	x1_pix	y1_pix	x2_pix	y2_pix	laser_X_m	laser_Y_m	radar_X_m	radar_Y_m	radar_R_m	radar_A_deg	radar_D_mps	radar_P_db	dataset	index	Annotation	Difficult
0	844	515	1109	738	0.223501295	11.29125881	0.076785527	11.75940418	11.77699757	-0.400000006	2	39021448	RECORD@2020-11-21_13.44.44	0	weak	0
0	1302	507	1715	782	3.363449097	8.576388359	3.097865582	9.105825424	9.780896187	-19.39999962	18	16052051	RECORD@2020-11-21_13.44.44	0	weak	0
0	1118	471	1337	649	3.596418381	19.73351669	3.409848452	20.58024979	20.95906448	-9.600000381	23	12053775	RECORD@2020-11-21_13.44.44	0	weak	0
0	1022	461	1226	590	0.733993292	11.46860218	0.143846378	11.75940418	11.77699757	-0.699999988	1	39016960	RECORD@2020-11-21_13.44.44	0	weak	0
1	1296	498	1682	774	3.50564456	9.0008955	3.1194942	9.522439957	10.18011665	-19	16	28089750	RECORD@2020-11-21_13.44.44	1	weak	0
1	845	513	1109	738	0.207299277	11.31393433	0.153437644	11.57518196	11.57738781	-0.800000012	2	47227612	RECORD@2020-11-21_13.44.44	1	weak	0
1	1081	481	1333	635	3.748978138	20.33323669	3.880532265	21.17062378	21.358284	-10.30000019	24	12500830	RECORD@2020-11-21_13.44.44	1	weak	0
1	150	539	356	666	-4.101474762	9.354154587	-4.025963783	9.301595688	10.18011665	23.79999924	231	9294597	RECORD@2020-11-21_13.44.44	1	weak	0
2	1287	504	1662	771	3.376296043	9.347215652	3.166516781	9.876775742	10.37972641	-18.5	14	15918269	RECORD@2020-11-21_13.44.44	2	weak	0
2	1088	490	1328	643	3.693201303	20.82712746	2.918206215	21.59820557	21.75750351	-7.900000095	23	9053354	RECORD@2020-11-21_13.44.44	2	weak	0
2	839	529	1108	749	0.184757978	11.30931473	0.009909126	11.57499123	11.57738781	-0.100000001	254	43487396	RECORD@2020-11-21_13.44.44	2	weak	0
3	1287	500	1643	762	3.571326494	9.718420982	3.179746628	10.1349535	10.77894688	-18.20000076	11	16983782	RECORD@2020-11-21_13.44.44	3	incomplete	0
3	1121	491	1313	648	3.642369747	21.34195518	3.518688202	22.15653038	22.35633469	-8.899999619	23	9565411	RECORD@2020-11-21_13.44.44	3	incomplete	0
3	840	531	1108	754	0.171368822	11.28709698	0.48467654	11.74184513	11.77699757	-2.400000095	253	41596980	RECORD@2020-11-21_13.44.44	3	incomplete	0
3	1042	473	1259	624	3.308105707	21.3476162	3.39677763	22.07584953	22.35633469	-8.899999619	23	10476272	RECORD@2020-11-21_13.44.44	3	incomplete	0
4	1279	496	1624	760	3.568714619	9.981954575	3.266343117	10.52410889	10.97855663	-17.5	11	13230800	RECORD@2020-11-21_13.44.44	4	weak	0
4	1098	493	1308	654	3.63789463	21.84522438	3.582220554	22.63541985	22.95516396	-9.199999809	22	12159406	RECORD@2020-11-21_13.44.44	4	weak	0
4	836	528	1102	752	0.160191536	11.23595238	-0.05933357	11.73429203	11.77699757	0.300000012	252	32141952	RECORD@2020-11-21_13.44.44	4	weak	0
4	34	561	204	643	-4.098292828	7.273369312	-4.110992432	7.242799282	8.383625031	30.10000038	224	10218513	RECORD@2020-11-21_13.44.44	4	weak	0

6、读取数据和可视化

这里使用官方代码,读取图像数据、激光点云数据、Radar点云数据,然后可视化。

RADIal代码地址:https://github.com/valeoai/RADIal/tree/main

1)图像数据

import numpy as np
from dataset import RADIal
from loader import CreateDataLoaders
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from torch.utils.data import Dataset, DataLoader, random_split,Subset
dataset = RADIal(root_dir = './RADIal',difficult=True)
# pick-up randomly any sample
data = dataset.__getitem__(np.random.randint(len(dataset)))

image = data[0]
boxes = data[5]

fig, ax = plt.subplots(figsize=(20,20))
ax.imshow(image)

for box in boxes:
    if(box[0]==-1):
        break # -1 means no object
    rect = Rectangle(box[:2]/2,(box[2]-box[0])/2,(box[3]-box[1])/2,linewidth=3, edgecolor='r', facecolor='none')
    ax.add_patch(rect)
    
# Note, coordinates are divided by 2 as image were saved in quarter resolution

效果如下图所示

2)激光点云数据

laser_pc = data[3]

plt.plot(-laser_pc[:,1],laser_pc[:,0],'.')
for box in boxes:
    if(box[0]==-1):
        break # -1 means no object
    plt.plot(box[4],box[5],'rs')
plt.xlim(-20,20)
plt.ylim(0,100)
plt.grid()

效果如下图所示

3)Radar点云数据

radar_pc = data[2]

plt.plot(-radar_pc[:,1],radar_pc[:,0],'.')
for box in boxes:
    if(box[0]==-1):
        break # -1 means no object
    plt.plot(box[7],box[8],'ro')
plt.xlim(-20,20)
plt.ylim(0,100)
plt.grid()

效果如下图所示


 

本文先介绍到这里,后面会分享4D毫米波雷达的其它数据集、算法、代码、具体应用示例。

对于4D毫米波雷达的原理、对比、优势、行业现状,可以参考我这篇博客。

分享完成,本文只供大家参考与学习,谢谢~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker】contos7安装 Nacos容器部署单个部署集群

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个&…

基于springboot+vue的社区团购系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

安卓Android studio读写EM4305卡源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?id718720660087&spma1z10.5-c.w4002-21818769070.15.57dc6f89txUhXE <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xml…

蓝桥杯备赛 day 2 —— 二分算法(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 二分的概念 &#x1f4c1; 整数二分 &#x1f4c1; 二分的模板 &#x1f4c1; 习题 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文章主要是准备蓝桥杯竞赛同学所写&#xff0c;为你更好准备蓝桥杯比赛涉及…

【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )

文章目录 一、帧率1、帧率简介2、常见帧率标准3、帧率 刷新率 二、码率1、码率简介2、码率单位 一、帧率 1、帧率简介 帧率 Frame Rate , 帧 指的是 是 画面帧 , 帧率 是 画面帧 的 速率 ; 帧率 的 单位是 FPS , Frames Per Second , 是 每秒钟 的 画面帧 个数 ; 帧率 是 动画…

弗洛伊德循环查找算法-原理

本文灵感来自哔哩哔哩视频 视频链接: 弗洛伊德循环查找算法 算法代码(java) package rain;class ListNode {int value;ListNode next;public ListNode(int value) {this.value value;this.next null;}Overridepublic String toString() {return "ListNode{" &q…

Kotlin 移动端多平台

支持多平台编程是 Kotlin 的主要优势之一。它减少了为不同平台编写和维护相同代码所花费的时间&#xff0c;同时保留了本机编程的灵活性和优势。 1. 基本概念 KMM&#xff1a;Kotlin Multiplatform for mobile&#xff08;移动设备的 Kotlin 多平台&#xff09; KMM 多平台的主…

使用的uview 微信高版本 头像昵称填写能力

<template><view><button class"cu-btn block bg-blue margin-tb-sm lg" tap"wxGetUserInfo">一键登录</button><view><!-- 提示窗示例 --><u-popup :show"show" background-color"#fff">&…

pygame里实现导弹追踪效果,同时对python的指针机制有一点点思考

最近,儿子一直缠着让我把之前给他编写的游戏重做一下,要加一些功能.但是因为之前写代码的时候刚学会python,当时的想法就是能跑就行,现在回头看来,代码的可维护性几乎为零.所以没办法只能冲头再来,重构了几乎所有代码.在编写的时候遇到了一个有意思的问题,儿子让我给游戏添加一…

Pyside6入门教学——编写一个UI界面并显示

1、安装Pyside6 输入下列命令安装Pyside6。 pip install Pyside6 2、设计UI 打开Qt设计工具&#xff08;在安装Pyside6包的目录下&#xff09;。 【注】我这用的是anaconda虚拟环境&#xff0c;所以我的路径是D:\App\Anaconda3\envs\snake\Lib\site-packages\PySide6。设计…

【Python学习】Python学习19- 异常处理

目录 【Python学习】Python学习19- 异常处理 前言python标准异常异常处理带异常类型语法不带异常类型语法使用except而带多种异常类型try-finally 语句触发异常 参考 文章所属专区 Python学习 前言 本章节主要说明Python的异常处理。 python标准异常 BaseException 所有异常…

GNU Radio简介及流程图搭建

文章目录 前言一、GNU Radio 是什么&#xff1f;二、GNU Radio 安装三、搭建第一个流程图1、创建 GRC 文件2、添加块3、运行流程图 前言 欢迎来到无线通信的世界&#xff0c;初步接触 GNU Radio&#xff0c;对其学习进行一个记录。 一、GNU Radio 是什么&#xff1f; GNU Rad…

【C语言编程之旅 4】刷题篇-关键字

第一题 解析 C语言关键字&#xff1a;C语言定义的&#xff0c;具有特定含义、专门用于特殊用途的C语言标识符&#xff0c;也称为保留字 A&#xff1a;错误&#xff0c;关键字是语言自身定义的 B&#xff1a;正确 C&#xff1a;错误&#xff0c;关键字具有特殊含义&#xff…

docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

docker部署项目&#xff0c;/var/lib/docker/overlay2目录满了如何清理&#xff1f; 一、问题二、解决1、查看 /var/lib/docker 目录&#xff08;1&#xff09;、containers 目录&#xff08;2&#xff09;、volumes 目录&#xff08;3&#xff09;、overlay2 目录 2、清理&…

Java开发分析 JProfiler 14 中文

JProfiler 14是一款强大的Java分析工具&#xff0c;专为帮助Java开发者优化应用性能而设计。它提供了实时监控、内存分析、线程分析、CPU分析等多种功能&#xff0c;帮助开发者快速定位和解决性能问题。JProfiler 14具有直观的用户界面&#xff0c;使用户能够轻松上手。此外&am…

苹果Find My可查找添加32件物品,伦茨科技ST17H6x芯片加速产品赋能

苹果最近更新的支持文档证实&#xff0c;从 iOS 16 开始&#xff0c;"Find My"可查找添加物品从16件增加到32件&#xff0c;AirTag 和“查找”网络中的物品利用“查找”网络的强大功能来发挥作用&#xff0c;这个网络由数亿台加密的匿名 Apple 设备构成。“查找”网络…

Kafka-多线程消费及分区设置

目录 一、Kafka是什么&#xff1f;消息系统&#xff1a;Publish/subscribe&#xff08;发布/订阅者&#xff09;模式相关术语 二、初步使用1.yml文件配置2.生产者类3.消费者类4.发送消息 三、减少分区数量1.停止业务服务进程2.停止kafka服务进程3.重新启动kafka服务4.重新启动业…

PPT大神带你飞!!!

1、OneKeyTools 官网&#xff1a;http://oktools.xyz/ OneKeyTools是一款免费开源的PowerPoint第三方平面设计辅助插件&#xff0c;功能涵盖了形状、调色、三维、图片处理、辅助功能等等方面。 插件功能&#xff1a; 插件从面世逐步受到广大PPT设计师和爱好者的追捧&#x…

感谢大家的支持,继续耕耘

有什么大家感兴趣的领域&#xff0c;欢迎留言

SSH数据流量监控

简介 检查网络连接的数据传输情况有以下一些实际意义&#xff1a; 安全监控&#xff1a;检查数据传输情况可以帮助你识别异常活动或潜在的安全威胁。如果发现大量不寻常的数据传输活动&#xff0c;可能表示有未经授权的访问或恶意行为。通过监控数据传输&#xff0c;可以及时发…