(雷达数据处理中的)跟踪算法(3) – 可用于目标跟踪实践的数据集介绍解析
说明
本博文作为跟踪算法系列博文的第3篇,对可用于目标跟踪的一份数据集进行了介绍,本文介绍的这份数据集将用于后续博文的目标跟踪实践。读者在阅读本博文前,建议先看看本系列的第一篇博文[1]:(雷达数据处理中的)跟踪算法(1) --- 整体&目录-CSDN博客
Blog
20240724 本文第一次写作
目录
说明
目录
一、数据集基本情况介绍
二、数据集解析与图示
三、目标格式匹配(与跟踪算法)
四、总结
五、参考资料
六、数据和代码
一、数据集基本情况介绍
本数据集是一套以地物杂波下固定翼无人机为探测对象的雷达弱小目标检测跟踪标准数据集。数据集涵盖强杂波、低信噪比、高动态、强机动、目标数目变化等典型场景,共计15段数据,每段数据包含一定时长的雷达脉冲序列,以及与之对应的距离波门文件和标注真值文件,数据格式规范、信息标注准确。该数据集可从链接[2]和[3]中获取,关于该数据集的具体介绍和基本使用,还有一篇相应的论文[4]可供参考(不过论文内容也就是链接[1]的内容)。
该数据集使用的雷达参数等基本信息如下:
表1.1 数据集基本信息列表
| 参数 | 值 |
| 地理区域 | 中国 |
| 杂波背景 | 地面 |
| 雷达载频 | 35GHz |
| 波形体制 | 线性调频连续波 |
| 脉冲重复频率 | 35KHz |
| 距离采样单元间隔 | 1.875m(距离分辨率) |
| 单脉冲采样点数 | 319 (其采样的最小距离是大于0的) |
| 数据量 | 8.76GB (数据集由15个数据段组成,每个数据段包含3个部分:1.data.mat对应的是包含有目标的雷达原始回波序列;2.data_get.mat是雷达回波序列对应的距离波门信息序列; 3.data_value.txt是标记文件,对应数据段从0时刻开始每隔50ms下的目标数、目标编号、目标速度、目标距离) |
| 数据格式 | *.mat *.txt |

图2.1 15个数据段内实验场景说明
下载下来的第10段数据解压缩后所包含的数据文件如下图所示(在后续的跟踪实践博文中,我将使用该段数据进行实践):

图2.2 第10段数据所含内容示意
如前所述,Data.mat中包含的是雷达回波序列,读取该data10.mat,其大小为:319*192000,319为距离维的采样点数,192000对应慢时间(速度维)的脉冲数,该值在不同的数据段中可能不一样(因为各数据段的时间不一样),在做速度维的压缩时,可以选择不同长度的脉冲数做相参积累。
Data_gate.mat中包含的是目标所在的距离信息,是一个一维数组,读取该data10_gate.mat可以得到一个大小为1*6000的数组,该数组每个数据表示在当前时刻的目标距离,数据每32个脉冲更新一次,因为雷达的脉冲重复频率是32KHz,于是相邻两数据之间的间隔为1ms。该数组的大小和前面的慢时间维脉冲也能对应上:6000 = 192000/32。 【所以在做速度维压缩时,我们可以选取每32个脉冲做一次处理】
Data_val.txt中包含的是目标真值信息,包含了时间、当前时刻目标数量、目标ID、目标速度、目标距离,打开data10_val.txt,如下图所示:

图2.3 第10个数据段的目标信息(一共120行)
该文档中,数据50ms更新一次,即每1600个脉冲输出一次结果,数据量与前述脉冲数也能对应起来:120 = 192000/1600。
【关于本数据集的使用】
本数据集其实考察(用于竞赛)的重点在于目标检测的准确性,本数据集提供了原始数据和真值数据,正常或者说正确的使用方法应该是利用自编算法处理原始数据,完成目标检测和跟踪,并与真值进行比较以评估自编算法的正确性和准确性。 不过目标检测(比如CFAR处理)并不是本系列博文关注的方向,所以在后续基于该数据集的跟踪实践中,我直接使用了真值结果,并对该结果加入噪声后送入自编的跟踪模块,查看跟踪的效果。
二、数据集解析与图示
对第10段数据进行解析和图示。
对data10.mat的处理:该数据大小为:319*192000,选取其中一个脉冲下的回波进行查看:

图2.1 其中一个脉冲下的回波时域数据
在多普勒维度选取256个脉冲作为一帧,进行二维FFT处理,得到结果如下:

图2.2 二维FFT处理后的RD图(有误?)
对原始数据的二维压缩并不是用简单的2D-FFT处理?其论文中给出的说明是:按照脉冲时刻以及重复周期进行数字下变频处理、抽取滤波处理以及脉冲压缩处理,形成脉冲压缩后的时域脉冲序列。(但是数据集的说明中没有关于调频斜率、采样率等参数的说明)。 不过对时域数据的处理不是本数据集分析的重点,更深入的研究感兴趣的读者可自己进行。
对data10_gate.mat的处理:该数据中包含的是目标的距离随时间的变化信息,对其进行解析和画图,得到结果如下:

图2.3 目标距离随时间的变化
对data_val.txt的处理:该文档中包含了各时间点下的目标真值信息,具体到data10_val.txt文档,其中一共有120个时间点下的目标信息,其中目标2只存在了100帧,本文档中的目标将作为后续跟踪算法的输入,我将其解析成了一个目标结构体(包含帧数;每帧下的目标数;每帧下的各目标的ID、距离和速度):


图2.4 目标解析结果示意图
将其可视化,画图如下:

图2.5 该数据段下的目标真值信息
三、目标格式匹配(与跟踪算法)
为方便数据解析的结果可以直接给到后端的跟踪算法使用,需要与跟踪算法部分的输入需求对齐。第二章中对目标信息的解析部分已经完成了该工作,不过需要注意的是,这里的目标ID信息是不会给到后端跟踪算法的(是经过跟踪算法处理后,我们才给目标分配航迹以及ID)。
为评价跟踪算法的有效性,将这里的目标信息给到后端的跟踪算法前,还人为加入了噪声(具体见后续的实测数据实践博文)。
对于该数据集,在后端的跟踪算法中,我们只应用目标的距离和速度信息。(所以这里其实只能构建一个目标的一维匀速/匀加速运动模型!)
四、总结
本文对一份典型的可用于目标跟踪实践的数据集进行了较为详尽的介绍。本文的工作主要是为后续基于数据集的目标跟踪实践打基础。当然,读者也可以基于本文所介绍的数据集做其它有意思的研究。
五、参考资料
[1] (雷达数据处理中的)跟踪算法(1) --- 整体&目录-CSDN博客
[2] 雷达回波序列中弱小飞机目标检测跟踪数据集 (csdata.org)
[3] A dataset for dim target detection and tracking of aircraft in radar echo sequences (scidb.cn)
[4] 宋志勇,回丙伟,范红旗,等.雷达回波序列中弱小飞机目标检测跟踪数据集[J].中国科学数据:中英文网络版, 2020, 5(3):14.DOI:10.11922/csdata.2019.0075.zh.
六、数据和代码
本跟踪系列博文所有相关的数据和代码我一并打包在了第一篇博文的链接中,读者可以去第一篇博文[1]的文末查收。
相关文章:
(雷达数据处理中的)跟踪算法(3) – 可用于目标跟踪实践的数据集介绍解析
说明 本博文作为跟踪算法系列博文的第3篇,对可用于目标跟踪的一份数据集进行了介绍,本文介绍的这份数据集将用于后续博文的目标跟踪实践。读者在阅读本博文前,建议先看看本系列的第一篇博文[1]:(雷达数据处理中的)跟踪…...
【C语言报错已解决】Use of Uninitialized Variable
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言: 在编程中,未初始化的变量是一个常见的问题,它可能导致程序的行为变得不可预测。未初…...
3 Go语言的变量声明
本专栏将从基础开始,循序渐进,由浅入深讲解Go语言,希望大家都能够从中有所收获,也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方,请指正!大家一起学习,…...
PyMySQL库的使用方法
过程和步骤: 安装 PyMySQL 首先,需要使用 pip 安装 PyMySQL 库: pip install pymysql连接数据库 使用 PyMySQL.connect() 方法可以建立到 MySQL 数据库的连接: import pymysql# 配置数据库连接参数 config {host: localhost…...
iOS 创建一个私有的 CocoaPods 库
创建一个私有的 CocoaPods 库(pod)涉及几个步骤,包括设置私有的 Git 仓库、创建 Podspec 文件、发布到私有仓库等等。以下是详细步骤: 设置私有 Git 仓库 首先,在 GitHub、GitLab 或 Bitbucket 上创建一个新的私有仓库…...
Linux_实现UDP网络通信
目录 1、实现服务器的逻辑 1.1 socket 1.2 bind 1.3 recvfrom 1.4 sendto 1.5 服务器代码 2、实现客户端的逻辑 2.1 客户端代码 3、实现通信 结语 前言: 在Linux下,实现传输层协议为UDP的套接字进行网络通信,网络层协议为IPv4&am…...
C# 代理模式
栏目总目录 概念 代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。在代理模式中,我们创建一个具有现有对象(称为“真实对象”或“被代理对象”)相同功能的代理对象。代理对象可以在客户端和目标对…...
【1】Python机器学习之基础概念
1、什么是机器学习 最早的机器学习应用——垃圾邮件分辨 传统的计算机解决问题思路: 编写规则,定义“垃圾邮件”,让计算机执行对于很多问题,规则很难定义规则不断变化 机器学习在图像识别领域的重要应用: 人脸识别…...
HashMap源码解析
目录 一:put方法流程 二:get方法 三:扩容机制 一:put方法流程 public V put(K key, V value) {return putVal(hash(key), key, value, false, true); }final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {No…...
[Javascript】前端面试基础3【每日学习并更新10】
Web开发中会话跟踪的方法有那些 cookiesessionurl重写隐藏inputip地址 JS基本数据类型 String:用于表示文本数据。Number:用于表示数值,包括整数和浮点数。BigInt:用于表示任意精度的整数。Boolean:用于表示逻辑值…...
C++自定义字典树结构
代码 #include <iostream> using namespace std;class TrieNode { public:char data;TrieNode* children[26];bool isTerminal;TrieNode(char ch){data ch;for (int i 0; i < 26; i){children[i] NULL;}isTerminal false;} }; class Trie { public:TrieNode* ro…...
dockerfile部署wordpress
1.将容器直接提交成镜像 [rootlocalhost ~]# docker commit 8ecc7f6b9c12 nginx:1.1 sha256:9a2bb94ba6d8d952527df616febf3fbc8f842b3b9e28b7011b50c743cd7b233b [rootlocalhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx …...
CSS(二)——CSS 背景
CSS 背景 CSS 背景属性用于定义HTML元素的背景。 CSS 背景属性 Property描述background简写属性,作用是将背景属性设置在一个声明中。background-attachment背景图像是否固定或者随着页面的其余部分滚动。background-color设置元素的背景颜色。background-image把…...
开机出现grub无法进入系统_电脑开机出现grub解决方法
最近有小伙伴问我电脑开机出现grub无法进入系统怎么回事?电脑开机出grub的情况有很多,电脑上安装了Linux和Win10双系统,但是由于格式化删除了Linux之后,结果win10开机了之后,直接显示grub>,无法…...
uboot 设置bootargs配置内核网络挂载根文件系统
uboot 设置bootargs配置内核网络挂载根文件系统 uboot设置bootargs env set bootargs "mem256M consolettyAMA0,115200 root/dev/nfs init/linuxrc nfsrootnfs主机地址:nfs路径/busybox/rootfs_glibc_arm64,prototcp rw nfsvers3 rootwait ip板子地址:nfs主机地址:网关:2…...
Vue3+.NET6前后端分离式管理后台实战(三十一)
1,Vue3.NET6前后端分离式管理后台实战(三十一)...
22集 如何minimax密钥和groupid-《MCU嵌入式AI开发笔记》
22集 如何获取minimax密钥和groupid-《MCU嵌入式AI开发笔记》 minimax密钥获取 https://www.minimaxi.com/platform 进入minimax网站,注册登录后,进入“账户管理”, 然后再点击“接口密钥”,然后再点击“创建新的密钥”。 之…...
决策树的概念
决策树的概念 决策树是一种监督学习算法,主要用于分类任务。它通过构建一棵树结构模型来进行预测,其中每个内部节点表示一个特征属性上的判断条件,每条边代表一个判断结果对应的分支,而叶节点则代表最终的类别标签。 应用领域 …...
C++《类和对象》(中)
一、 类的默认成员函数介绍二、构造函数 构造函数名与类同名内置类型与自定义类型析构函数拷贝构造函数 C《类和对象》(中) 一、 类的默认成员函数介绍 默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。 那么我们主要学习的是1&…...
SpringBoot中JSR303校验
JSR是 Java EE 的一种标准,用于基于注解的对象数据验证。在Spring Boot应用中,你可以通过添加注解直接在POJO类中声明验证规则。这样可以确保在使用这些对象进行操作之前,它们满足业务规则。个人认为非常有用的,因为它减少了代码中…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
break 语句和 continue 语句
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行 break break语句用于跳出代码块或循环 1 2 3 4 5 6 for (var i 0; i < 5; i) { if (i 3){ break; } console.log(i); } continue continue语句用于立即终…...
