雷达一维成像:基于数据集的实践

雷达一维成像:基于数据集的实践

(距离压缩\距离-时间图\距离-多普勒图\微多普勒图)

说明

    雷达成像技术是雷达发展的一个重要里程碑:从此雷达的功能不仅仅是将所观测的对象视为点目标,并只测量它的位置与运动参数。雷达成像技术使得我们可以获得目标和场景的图像!(类似基于摄像机的光学成像了!),当然其成像效果不会有光学那么清晰(信息量没有光学那么丰富),但是其具备光学没有的诸多优势:距离远、全天时全天候、具备速度测量能力(动目标检测)

    雷达成像最常用的技术手段是合成孔径技术(及其诸多拓展:如ISRA、InSAR等等),我新建的专题:雷达成像技术_墨@#≯的博客-CSDN博客主要就是围绕SAR来展开。雷达成像从结果来看,我们可以将之简单分为:一维、二维以及三维成像。本博文探讨一维成像,一维成像主要围绕距离和速度展开:关注不同距离维度下目标的分布目标距离随时间的变化、不同距离下目标的速度、以及特定距离区间内目标的微多普勒信息。本博文将结合数据集来实践一维成像。

Blog

20240226 博文第一次写作

目录

说明

目录

一、雷达一维成像概述

二、成像方法与流程简述

三、数据集说明

3.1 数据集基本情况

3.2 数据解析&雷达参数

四、基于数据集的成像实践

五、总结

六、参考资料

七、数据与代码参考


一、雷达一维成像概述

    本博文的论述以及后续的数据集都是围绕调频连续波(FMCW)展开。FMCW体制下的测距、测速、测角原理这里不做过多介绍,网上有诸多成熟且十分细节的资料,比如Ti网站上的[1]。

    采用FMCW体制的雷达:在车载(雷达)的应用上,在接收器中我们是做去斜接收,接收端是用发射信号进行混频,此时不同的距离对应不同的频点,于是我们对回波数据直接进行FFT操作就可以完成距离压缩,从而实现前述不同距离维度下目标的分布这一成像结果。在各类SAR雷达的应用上,在接收器中我们一般是以载频进行混频,此时对于采集的回波时域数据,我们使用匹配滤波的方法进行距离压缩以达到一维距离成像的效果。  关于不同距离维度下目标的分布(或一维距离像)这是比较容易理解的:如果雷达的距离分辨率足够好,目标将在某段距离区间内有较强的能量分布,如下图所示[2]:

图1.1  不同视角(各图间视角相差15°)下对飞机的以为距离成像结果

    上图为对时域数据匹配滤波后的结果,可以看到在目标(飞机)在距离维的分布(局部距离区间内能量更高)。

    目标距离随时间的变化:我们只需将每个chirp下距离压缩的结果进行拼接即可(可能比较熟悉车载雷达的同学比较费解:因为车载雷达下chirp周期很短,我们对一帧数据进行距离压缩后,一般来说目标所在的距离门不会发生变化,车载雷达的参数设置下确实如此,不过这里说的是更一般的情况:我们可以把chirp周期拉长、或者选取不同帧下的某个chirp进行实践,就可以看到目标距离随时间的变化:只要目标在动,当然,这里说的动是跨距离门的那种运动,而不是微动:基于Ti-AWR2944雷达开发板的BPM发射与处理实践-CSDN博客)。

    不同距离下目标的速度:更专业的术语叫:RD图(距离-多普勒图),我们在距离压缩的基础上再在不同的chirp间(慢时间维度)做一次速度压缩(FFT)即可。

    特定距离区间内(目标所在区间)的微多普勒信息:多谱勒信息对应速度,前面不同距离下目标速度是直接在大的慢时间维度进行FFT实现的,但是这样大而泛的处理下我们虽然可以获知有哪些多普勒值(速度值),可是并不知道这些多普勒值随时间的分布情况,这便是微多普勒处理要解决的问题:得到不同时间下的速度信息。微多普勒信息的获取我们一般基于短时傅里叶变换(STFT)来实现,关于STFT和微多普勒信息,读者可以参考[3],该资料介绍得很棒。

    除去距离和速度外,还有角度:如果使用MIMO阵列,基于DOA估计方法车载毫米波雷达DOA估计综述-CSDN博客我们还可以获得目标的角度信息,并进而可以得到目标角度随时间的变化关系(成像图),不过后文的数据集没有相关数据,本文不做更深入讨论。

二、成像方法与流程简述

不同距离维度下目标的分布(或一维距离像):FFT或匹配滤波。

目标距离随时间的变化: 对不同chirp下的回波时域数据分别做距离压缩,并拼接(不同的chirp即对应不同的时间)。

不同距离下目标的速度: 距离压缩后再在chirp维度进行速度压缩(2D-FFT)。

特定距离区间内目标的微多普勒信息:

图2.1 典型的微多普勒图获取流程示意图

三、数据集说明

    本博文使用了英国格拉斯哥大学(University of Glasgow)的一个数据集(为原始数据集):Radar signatures of human activities - Enlighten Research Data (gla.ac.uk)。该数据集及其相关文章读者可以在前述链接中下载,我在后文的代码链接中也会附上其中一份数据(后文成像实践中所使用的数据)。【当然,数据集的开发主要是为了进行深度学习训练和验证的,不过对原始数据进行成像处理是后续训练的前提,往后有机会我会基于该数据集进行模型训练的实践。】

3.1 数据集基本情况

    整个数据集包含了在不同时期以及不同地点所采集的数据。试验人员在试验过程中所做的动作包括:来回走动、坐下、站起、弯腰捡东西、拿杯子喝水、前倾跌倒。整个数据集下载下来后得到如下文件:

图3.1 数据集基本情况说明1

    不同的文件夹对应不同的时间下采集的数据,最后一个pdf为数据集的说明(我随附到代码对应的链接中)。每个文件夹包含诸多数据文件,每个数据文件原始数据格式为.dat,如下图所示:

图3.2 数据集基本情况说明2

每个数据文件的名称被编码为该数据的基本信息

图3.3 数据集基本情况说明3

    基于图3.3中的数据说明,我们可以知道:图3.2中1P36A01R01表示:编号为36的人,在试验中做走动这个动作。(从R01-R03可以知道这个动作做了3次)。关于该数据集更细节的说明(诸如试验场景、试验人员的男女,身高等信息读者可以阅读随附的数据集说明)。

3.2 数据解析&雷达参数

    雷达以1发1收进行FMCW波形收发。每个数据文件的前4个数据对应雷达的收发参数:包括载波频率、chirp周期、单chirp采样点数、发射带宽。从第五个数据开始为本文件对应的原始时域数据。雷达的参数列表如下:

表3.1  雷达参数列表

参数

收发天线数

1T1R

波形

FMCW

载波频率

5.8GHz

Chirp周期

1ms

单chirp采样点数(双路采样)

128

带宽

400MHz

四、基于数据集的成像实践

    本章选取前述数据集中的一份数据(1 December 2017 Dataset文件夹中的:1P36A01R01),并做一维成像实践。该数据经解析后,有10000个chirp。对其进行处理,我把图都放在了一张,得到结果如下:

图4.1 基于数据集的一维成像实践结果图1

    上图为未经高通滤波的处理结果。

    左上角的图即为不同距离维度下目标的分布(或一维距离像),我们对单个chirp下的回波时域数据直接做FFT处理即可得到。从左上角的图来看,信号中有很强的直流信号(在距离接近0处其能量很高!考虑可能是天线耦合、电源性能较差等原因导致),不过还是可以看到在距离为5-10m的区域内有明显高于其它距离区间的能量,可以推断该目标区域即对应为人体所在位置区间。

    右上角的图即对应为目标距离随时间的变化图:我们对每个chirp下的回波时域数据都进行FFT处理并做拼接即可得到。可以看到随着时间的变化目标所在的距离区间是在移动的:这与本试验的试验过程是吻合的,即人来回走动。

    右下角的图即对应为不同距离下目标的速度图(或RD图),通过对前述距离压缩的结果再进行全chirp维度下的速度压缩得到,如前所述,此时我们只知道在不同的距离下包含了哪些速度信息,但是无法获取不同时间下的速度信息!此外,从右上角的图来看,因为目标所在的距离区间已经发生了变化,所以我们直接在整个时间区间进行速度压缩其实已没有多大意义。左下角的图中选取了其中一个距离门并观察该距离门下的目标速度分布。

    更进一步地,为了消除直流信号以及静态杂波的影响,方便更清晰地观察目标多普勒信息,这里对距离压缩后的数据在chirp维度进行高通滤波(使用数字滤波器)处理,并舍去距离门为1的数据。得到结果如下:

图4.2 基于数据集的一维成像实践结果图2(高通滤波后)

    对比图4.1,可以看到图像变得更清晰了(目标所在位置区间的对比度更大)。后续的微多普勒图的获取是基于高通滤波后的距离压缩数据。按照第二章图2.1所示的处理流程,将距离区间设置为:3.75m-11.25m之间,观察该区间内速度随时间的变化情况。

    短时(离散)傅里叶变换本质上就是在chirp维度(速度维度)进行分段傅里叶变换,为确保连续性,我们一般会设置使得每个分段之间有一些重叠的部分。所以短时傅里叶变换过程中的两个重要参数:每个分段的区间大小、前后区间的重叠大小。(所选区间的大小会影响速度分辨率!区间越大速度分辨率越高但同时短时傅里叶变换的效果会变差:就不那么短时了.)

图4.3  STFT处理示意图

    如上图所示,以此类推,对每个区间分别进行FFT处理并将处理的结果拼接成一个矩阵,便可得到一个距离门下的瞬时傅里叶变换结果。我们对所选取的每个距离门下的数据分别进行瞬时傅里叶变换处理,并对得到的各个矩阵进行累加就可以得到微多普勒图。本数据的处理结果如下:

图4.4 微多普勒处理结果

    从该图中我们可以知道在实验过程中目标是在做相对雷达的来回运动(速度由负变正在边负)。此外,微多普勒图内含了(可以表征)更丰富(细节)的信息,如:人体躯干的运动、不同的运动状态等等,我们可以籍此做各种目标分类与识别的研究(不过这些不在本文的讨论范围)。

五、总结

    本博文探讨一维成像,并介绍了一份内容非常全面且丰富的原始数据集,基于该数据集实践了几种一维成像方法。因为一维成像的数学原理相对简单且成熟,网上有诸多资料,本博文并没有涉及太多的理论/公式推导。本博文的工作为后续更高维度的成像方法研究以及基于数据集的深度学习模型训练等提供了基础,后续有机会我会出基于该数据集更多的思考和探讨

六、参考资料

[1] mmWave radar sensors  | TI.com

[2] 保铮,刑孟道,王彤.雷达成像技术[M].电子工业出版社,2005.

[3] 形象易懂讲解算法I——小波变换 - 知乎 (zhihu.com)

七、数据与代码参考

雷达一维成像:基于数据集的实践博文对应的数据和代码资源-CSDN文库

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

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

相关文章

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQX Enterprise 5.5.0 版本已正式发布! 在这个版本中,我们引入了一系列新的功能和改进,包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外,新版本还进行了多项改进以及 B…

Linux第63步_为新创建的虚拟机添加必要的目录和安装支持linux系统移植的软件

1、创建必要的目录 输入密码“123456”,登录虚拟机 这个“zgq”,是用户名,也是下面用到的的“zgq”目录。 1)、创建“/home/zgq/linux/”目录 打开终端,进入“/home/zgq/”目录 输入“mkdir linux回车”,创建“/ho…

电子版证件照怎么弄?分享完整制作方法!

在数字化时代,电子版证件照已成为我们生活中不可或缺的一部分。无论是求职、办理证件还是网络注册,都需要用到电子版证件照。那么,如何制作一份合格的电子版证件照呢?本文将为您详细介绍电子版证件照的制作方法,并推荐…

开年大吉!安全狗入选工信部工业互联网试点示范名单

近日,工业和信息化部信息通信管理局公布了2023年工业互联网试点示范名单。此次名单根据《工业和信息化部办公厅关于组织开展2023年工业互联网试点示范项目申报工作的通知》(工信厅信管函﹝2023﹞319号),经企业申报、地方推荐、专家…

通过OCR实现纯数字识别

基于飞浆paddle训练框架 照这个改的 https://www.paddlepaddle.org.cn/documentation/docs/zh/practices/cv/image_ocr.html 训练不到10分钟 10epoch cpu:inter i5 8250 U 脚本生成的图10000 验证训练:3:7 预测结果 chatgpt写的代码,生成数…

从ChatGPT到Sora,来了解大模型训练中的存储

1 从chatGPT到Sora 2022年底,OpenAI推出人工智能聊天机器人ChatGPT,开启了大模型领域的“竞速跑”模式。2024年2月15日,随着视频生成模型Sora的横空出世,OpenAI再度掀起热潮。 Sora将视频生成内容拉到了一个全新的高度&#xff0c…

Pybind11 在C++中运行python脚本操作内存数据

pybind11资料 官方Github:Pybind11 Github Pybind11文档:Pybind11 文档 文档在深入使用后需要细细读懂,包括全局只能有一个解释器,如何从C中返回指针/引用等。基本文档中需要注意的点都会遇到 Python环境安装及维护 对于正常使用人员&…

python自动化测试三部曲之request+django实现接口测试

这里废话少说,进入正题 我的思路是这样的 1、先用django实现登陆、增加、删除、查看4个接口 2、在excel定义好测试案例、然后读取excel中的案例,然后把案例用unittest框架组装和封装 3、启动django,执行测试案例 一、先跑通unittest到dj…

Scikit-Learn逻辑回归

Scikit-Learn逻辑回归 1、逻辑回归概述1.1、逻辑回归1.2、逻辑回归的优缺点1.3、逻辑回归与线性回归 2、逻辑回归的原理2.1、逻辑回归的概念与原理2.2、逻辑回归的损失函数 3、 1、逻辑回归概述 1.1、逻辑回归 逻辑回归(Logistic Regression)主要解决二…

【IDEA】java 项目启动偶现Kotlin 版本问题 error:Kotlin:module was

一、问题描述: error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of its metadata is二、问题原因: jar包版本冲突 三、解决方式: 1、Rebuild Project(推荐☆) 重新构…

【web】云导航项目部署及环境搭建(复杂)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…

内存溢出排查

1、进入k8s容器对应服务节点查看进程号 ps aux|grep javaps aux 是用BSD的格式来显示 java这个进程 显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND USER: 行程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的记…

python Airtest自动化测试工具的的使用

Airtest全称AirtestProject,是由网易游戏推出的一款自动化测试框架,在软件测试的时候使用到了该框架。这里记录一下安装、使用和遇到的坑的问题… Airtest的官网介绍项目构成 Airtest:是一个跨平台的、基于图像识别的UI自动化测试框架&#x…

YOLOv9尝鲜测试五分钟极简配置

pip安装python包: pip install yolov9pip在https://github.com/WongKinYiu/yolov9/tree/main中下载好权重文件yolov9-c.pt。 运行下面代码: import yolov9model yolov9.load("yolov9-c.pt", device"cpu") # load pretrained or c…

观察者模式与发布订阅模式

观察者模式 定义: 观察者模式是一种行为型设计模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 结构图: ES6简易代码实现: //ts环境下…

Uncertainty-Aware Mean Teacher(UA-MT)

Uncertainty-Aware Mean Teacher 0 FQA:1 UA-MT1.1 Introduction:1.2 semi-supervised segmentation1.3 Uncertainty-Aware Mean Teacher Framework 参考: 0 FQA: Q1: 不确定感知是什么意思?不确定信息是啥?Q2:这篇文章的精妙的点…

300分钟吃透分布式缓存-14讲:大数据时代,MC如何应对新的常见问题?

大数据时代 Memcached 经典问题 随着互联网的快速发展和普及,人类进入了大数据时代。在大数据时代,移动设备全面融入了人们的工作和生活,各种数据以前所未有的 速度被生产、挖掘和消费。移动互联网系统也不断演进和发展,存储、计…

掌握“这招”,平趴也能轻松捕获威胁情报!——利用流行度排名升级威胁情报收集

引言 威胁情报是提供强大网络安全服务的重要基石,这些服务可以保护各地的移动设备和互联网用户。但当今的互联网威胁是复杂且具有强适应性的,它们通过不断改变其面貌以逃避安全防御。这使得提供涵盖各种威胁形势的威胁情报变得日益困难,组织…

工具篇-- 定时任务xxl-job

文章目录 前言一、xxl-job 运行:1.1 下载并且启动:1.2 项目介绍:1.2.1 xxl-job-admin:1.2.1.1 xxl-job-admin 作用:1.2.1.2 xxl-job-admin 的配置: 1.2.2 xxl-job-executor-samples:1.2.2.1 pom…

51.仿简道云公式函数实战-文本函数-JOIN

1. JOIN函数 JOIN 函数可通过连接符将数组的值连成文本。 2. 函数用法 JOIN(数组,"连接符") 3. 函数示例 如需将复选框中勾选的选项通过”-“组合在一起,则可设置公式为JOIN(复选框组,"-") 4. 代码实战 首先我们在function包下创建text包…
最新文章