(雷达数据处理中的)跟踪算法(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类中声明验证规则。这样可以确保在使用这些对象进行操作之前,它们满足业务规则。个人认为非常有用的,因为它减少了代码中…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...