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

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...