主要内容

trackerPHD

多传感器,多目标PHD跟踪器

描述

trackerPHD系统对象™是一种跟踪器,能够从多个传感器处理多个目标的检测。跟踪器使用多目标概率假设密度(PHD)滤波器来估计点目标和扩展对象的状态。PHD是在跟踪系统的状态空间上定义的函数,其在状态下的值被定义为每单位状态空间量的预期目标数量。PHD由概率密度函数的加权求和(混合物)表示,并且PHD中的峰值对应于可能的目标。有关跟踪器功能的概述,请参阅算法

默认情况下,trackerPHD可以使用GGIWphd.过滤器,其中模型从扩展对象作为解析点云检测。你也可以使用trackerPHDGmphd.过滤器,其跟踪点目标和具有指定形状的扩展对象。跟踪器的输入是由此产生的检测报告objectDetectionFusionRadarscarsorIrsensor.,或sonarSensor对象。跟踪器输出所有维护的曲目及其分析信息。

要使用此对象跟踪目标:

  1. 创造trackerPHD对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

追踪器= trackerPHD创建一个trackerPHD具有默认属性值的系统对象。

例子

追踪器= trackerPHD (名称,值使用一个或多个名称-值对设置跟踪器的属性。例如,trackerPHD (' MaxNumTracks ', 100)创建一个最多允许100个轨道的PHD跟踪器。将每个属性名用引号括起来。

属性

展开全部

除非另有说明,否则属性是不可努力,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定释放函数打开它们。

如果属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

唯一的Tracker标识符,指定为非负整数。此属性用作SourceIndex,并在多跟踪器系统中区分来自不同跟踪器的跟踪。必须将此属性指定为正整数,才能将轨道输出用作轨道fuser的输入。

例子:1

跟踪传感器的配置,指定为单元阵列跟踪仪器整理配置对象。此属性向跟踪器提供跟踪传感器配置信息,如传感器检测限制和传感器分辨率。的值没有默认值SensorConfigurations属性,并且必须指定SensorConfigurations使用跟踪器之前的属性。但是,您可以通过设置来更新配置hassensorconfigurationsinput.财产真正的并指定配置输入,配置.如果你设置了MaxDetsPerObject财产的财产跟踪仪器整理配置对象至1,跟踪器仅创建一个分区,使得可以将大多数一个检测分配给每个目标。

将检测划分为检测单元的函数,指定为函数句柄或字符向量。当每个传感器可以对每个对象报告多个检测时,需要一个分区功能。分区函数报告来自传感器的所有可能的检测分区。在每个分区中,假设每个检测单元属于一个扩展对象,将检测分为互斥的检测单元。

您还可以指定自己的检测配分函数。作为编写该函数的指导,您可以查看默认分区函数的详细信息,partitionDetections,使用类型命令为:

类型partitionDetections

例子:@myfunction.'myfunction'

数据类型:function_handle|char

在密度中新目标的出生率,指定为标量。出生率是指单位时间内在密度中增加的预期目标数。出生密度是通过FilterInitializationFcn跟踪仪器整理配置和追踪器一起使用。通常,跟踪器以两种方式向密度函数中添加组件:

  1. 预测出生密度 - 密度初始化FilterInitializationFcn函数在没有输入的情况下调用。

  2. 适应性出生密度-初始密度FilterInitializationFcn函数在使用检测输入时调用。跟踪器根据它们与目标当前估计的对数似然关联来选择检测。

请注意,该值出生率属性表示每个时间步长的预测出生密度和自适应出生密度之和。

例子:0.01

数据类型:|双倍的

密度的成分死亡率,指定为标量。死亡率表明,在一次步骤之后,部件在密度消失的速率。死亡率 (Pd)与生存概率(P年代)的分量之间的连续时间步

P 年代 1 P d δ. T

在哪里δ.T为时间步长。

例子:1E-4

数据类型:|双倍的

为组件初始化选择检测的阈值,指定为正标量。在校正过程中,跟踪器计算现有跟踪和检测单元之间关联的可能性。如果检测单元对所有已有轨迹的关联似然(负对数似然)大于阈值(即检测单元与已有轨迹关联的可能性较低),则使用检测单元初始化自适应出生密度中的新分量。

例子:18.1

数据类型:|双倍的

初始化暂定轨道的阈值,指定为标量。如果组件的权重高于所指定的阈值ExtractionThreshold属性时,组件被标记为“初步”跟踪并给出一个TrackID

例子:0.45

数据类型:|双倍的

跟踪确认的阈值,指定为标量。在一个trackerPHD对象,一个轨道可以有多个共享相同的组件TrackID.如果试探性轨道各组成部分的权重总和高于ConfirmationThreshold属性时,轨道的状态被标记为'确认的'

例子:0.85

数据类型:|双倍的

组件删除的阈值,指定为标量。在PHD跟踪器中,如果组件的权重低于所指定的值DeletionThreshold属性,则删除组件。

例子:0.01

数据类型:|双倍的

组件合并的阈值,指定为实正标量。在PHD跟踪器中,如果元件之间的库尔贝克-雷伯尔距离相同TrackID小于合并属性,然后这些组件合并到一个组件中。新组件的合并权重等于预合并组件的权重的求和。此外,如果合并权重高于指定的第一个阈值标签克莱斯属性时,合并的权重将被截断为第一个阈值。请注意带有TrackID等于0也可以彼此合并。

例子:30.

数据类型:|双倍的

标记阈值,指定为1×3递减阳性值的向量,[C1C2C3.].基于标签克莱斯属性,跟踪器使用以下规则管理密度中的组件:

  1. 高于第一个阈值的任何组件的权重C1减少到C1

  2. 适用于所有组件TrackID,如果这些组件中最大的权重大于C2,然后保留具有最大重量的组件以保留TrackID,删除所有其他组件。

  3. 适用于所有组件TrackID,如果最大权重与所有这些分量的权重之和的比值大于C3.,然后保留具有最大重量的组件以保留TrackID,删除所有其他组件。

  4. 如果条件2和条件3都不满足,则重量最大的组件保留TrackID,而所有其他组件的标签设置为0。当发生这种情况时,它本质上意味着一些组件可能代表其他对象。这种处理方法保留了这些无保留组件在未来再次提取的可能性。

数据类型:|双倍的

启用随时间更新传感器配置,指定为真正的.将此属性设置为真正的如果您希望传感器的配置随时间更新。同样,当此属性设置为时真正的,必须用配置输入调用跟踪器,配置,如用法语法所示。

数据类型:逻辑

轨道状态参考帧的参数,指定为结构或结构数组。追踪者通过它StateParameters属性值的StateParameters生成轨道的属性。您可以使用这些参数来定义参考帧,其中报告了曲目或所生成的轨道的其他可望属性。

例如,您可以使用以下结构来定义矩形参考帧,其起源位置处于(10 10 0)米,它的起始速度是[2 -2 0]米每秒相对于场景。

字段名称 价值
框架 “矩形”
位置 (10 10 0)
速度 [2 -2 0]

可调:是的

数据类型:结构体

此属性是只读的。

跟踪器维护的曲目数量作为非负整数返回。

数据类型:双倍的

此属性是只读的。

已确认音轨的数目,返回为非负整数。如果IsConfirmed输出轨道结构的场为真正的,轨迹确认。

数据类型:双倍的

可连接到跟踪器的最大传感器数,指定为正整数。MaxNumSensors必须大于或等于的最大值SensorIndex在所有用于更新跟踪器的检测中发现。SensorIndex是一个属性吗objectDetection对象。

数据类型:|双倍的

跟踪器可维护的最大轨迹数,指定为正整数。

数据类型:|双倍的

使用

要处理检测和更新跟踪,使用参数调用跟踪器,就好像它是一个函数(这里描述)。

描述

确认套件=跟踪器(检测时间返回从检测列表中更新的确认轨道列表,检测,在更新时间,时间.确认的轨迹被修正并预测到更新时间。

确认套件=跟踪器(检测配置时间还指定传感器配置输入,配置.当传感器的配置随时间而变化时,请使用此语法。要启用此语法,请设置hassensorconfigurationsinput.财产真正的

确认套件追捕欲达allTracks) =跟踪器(___也返回一个暂定轨道的列表,追捕欲达,以及所有曲目的清单,allTracks.您可以将此输出语法与前面的任何输入语法一起使用。

确认套件追捕欲达allTracksanalysisInformation) =跟踪器(___也返回分析信息,analysisInformation,可用于轨道分析。您可以将此输出语法与前面的任何输入语法一起使用。

输入参数

展开全部

检测列表,指定为单元数组objectDetection对象。的时间每个的属性值objectDetection对象必须小于或等于当前更新时间,时间,且大于之前用于更新跟踪器的时间值。此外,时间不同的差异objectDetection单元格数组中的对象不需要相等。

更新时间,指定为标量。跟踪器更新所有曲目到此时。单位是几秒钟的。

时间必须大于或等于最大的时间属性值objectDetection输入中的对象检测列表。时间必须随着跟踪器的每次更新而增加价值。

数据类型:|双倍的

传感器配置,指定为结构体数组、结构体单元数组或的单元数组跟踪仪器整理配置对象。如果使用结构体数组或结构体单元格数组指定值,则必须包括SensorIndex作为每个结构的字段。属性的其他可选字段必须具有相同的名称跟踪仪器整理配置对象。请注意,您只需要指定需要更新的传感器配置。例如,如果您只想更新IsValidTime属性为第五个传感器,提供值为配置作为struct('sensorindex',5,'isvalidtime',false)

依赖关系

要启用此参数,请设置hassensorconfigurationsinput.财产真正的

输出参数

展开全部

已确认的轨道更新到当前时间,作为结构或结构数组返回。每个结构对应一个轨道。当轨道各分量的权值之和大于的阈值时,该轨道被确认ConfirmationThreshold财产。如果确认了曲目,则IsConfirmed结构的领域是真正的.确定的轨道结构的字段定义在轨道结构

数据类型:结构体

试探性的轨迹,作为一个结构或一组结构返回。每个结构对应一个轨道。一个轨迹是试探性的,如果它的分量的权值总和高于由ExtractionThreshold属性指定的阈值,但低于ConfirmationThreshold财产。在这种情况下IsConfirmed结构的领域是.结构的字段定义在轨道结构

数据类型:结构体

所有曲目,作为结构或结构阵列返回。每个结构对应一个轨道。所有曲目的集合包括确认和初步曲目。结构的字段定义在轨道结构

数据类型:结构体

用于分析轨道更新的附加信息,作为结构返回。这个结构的字段是:

描述
CorrectionOrder

用于状态估计校正的传感器的顺序,返回为的行向量SensorIndex.例如,[1 3 2 4]。

TrackIDsAtStepBeginning

跟踪步骤开始时的id。

DeletedTrackIDs

步骤中删除的轨道id。

TrackIDsAtStepEnd

步骤结束时跟踪ID。

SensorAnalysisInfo

单元阵列的传感器分析信息。

SensorAnalysisInfo现场可以包括多个传感器信息报告。每个报告都是一个结构,包括:

描述
SensorIndex

传感器指数。

DetectionCells

检测单元,作为逻辑矩阵返回。矩阵的每一列表示一个检测单元。在每一列中,如果第Th元素是1,然后是该检测属于该列所表示的检测单元。

DetectionLikelihoods

密度函数和检测单元中的组件之间的关联可能性,作为返回N-经过-P矩阵。N密度函数中分量的个数,和P为检测单元数。

IsBirthCells

表示是否列出了检测单元DetectionCells生产新的轨道,返回作为一个1 by-P逻辑向量,P为检测单元数。

NumPartitions

分区的数量。

DetectionProbability

被传感器检测到的现有轨迹的概率,指定为1-by-N行矢量,在哪里N为密度函数中分量的个数。

LabelsBeforeCorrection

标签中的分量在密度函数校正前,返回为1 × -b行向量。b为校正前跟踪器中保持的元件数。向量的每个元素都是aTrackID.例如,[1 1 2 0 0]。注意,多个组件可以共享同一个组件TrackID

LabelsAftercorrection.

标签的分量在密度函数中校正后,返回为1by -一个行向量。一个为校正后跟踪器中保持的元件数。向量的每个元素都是aTrackID.例如:[1 1 1 2 2 0 0]。注意,多个组件可以共享同一个组件TrackID

WeightsBeforeCorrection

修正前密度函数中分量的权重,返回为1-by-b行向量。b为校正前跟踪器中保持的元件数。向量的每个元素都是相应分量的权值LabelsBeforeCorrection.例如,[0.1 0.5 0.7 0.3 0.2]。

WeightsAfterCorrection

修正后的密度函数中分量的权重,返回为1-by-一个行向量。一个为校正后跟踪器中保持的元件数。向量的每个元素都是相应分量的权值LabelsAftercorrection..例如:[0.1 0.4 0.2 0.6 0.3 0.2 0.2]。

数据类型:结构体

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用此语法:

发行版(obj)

展开全部

predictrackstotime. 预测轨道状态
deletetrack. 删除现有轨道
initializeTrack 初始化新轨道
sensorIndices 传感器指数列表
运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
isLocked 确定if.系统对象正在使用中
克隆 创建重复系统对象
重置 重置内部状态系统对象

例子

全部折叠

设置传感器配置,创建PHD跟踪器,并通过检测馈送跟踪器。

%创建传感器配置。指定传感器的杂波密度和%将ISValidTime属性设置为True。配置= trackingSensorConfiguration (1);配置。ClutterDensity = 1e-7; configuration.IsValidTime = true;%创建一个PHD跟踪器。追踪= trackerPHD (“SensorConfigurations”,配置);%在t=0时,在[5;-5;0]和[-5;5;0]点附近创建检测%用这些检测更新跟踪器。检测=细胞(20日1);i = 1:10 detection{i} = objectDetection(0,[5;-5;0] + 0.2*randn(3,1));结束j = 11:20 detection{j} = objectDetection(0,[-5;5;0] + 0.2*randn(3,1));结束跟踪器(检测,0);

假设目标以每秒[1;2;0]单位的恒定速度移动,0.1秒后再次更新跟踪器。

dt = 0.1;I = 1:20检测{I}。时间=检测{}。时间+ dT;检测我{}。米easurement = detections{i}.Measurement + [1;2;0]*dT;结束[confTracks, tentTracks allTracks] =追踪(检测,dT);

可视化检测和确认的轨道。

从检测中获得测量值。d =[检测{}):;测量= [d.Measurement];使用GetTrackPositions函数提取确认跟踪的位置。请注意,我们使用了默认的传感器配置%filterinitializationfcn,initcvggiwphd,它使用恒定速度%模型并将状态定义为[x; vx; y; vy; z; vy]。positionSelector = [1 0 0 0 0 0;0 0 0 0 0];位置= getTrackPositions (confTracks positionSelector);图()图(测量(1:),测量(2:)“x”“MarkerSize”,5,'markeredgecolor'“b”);持有;情节(职位(1,1),职位(1、2),“v”“MarkerSize”,5,'markeredgecolor'“r”);持有;情节(职位(2,1),职位(2,2),“^”“MarkerSize”,5,'markeredgecolor'“r”);传奇(“检测”“轨道1”“轨道2”)包含(“x”) ylabel (“y”

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表detection, Track 1, Track 2。

更多关于

展开全部

算法

展开全部

参考

[1] K.格兰斯托姆,C.伦德奎斯特和O.奥格纳。”基于高斯混合PHD滤波器的扩展目标跟踪。航空航天和电子系统学报。第48卷第4期,2012年,3268-3286页。

[2] Granstorm,K.和O. Orguner。“使用随机矩阵跟踪多个扩展目标的PHD滤波器。”IEEE在信号处理时交易。第60卷,第11期,2012年,5657-5671页。

[3] K. Granstorm和A. Natale, P. Braca, G. Ludeno和F. Serafino。使用x波段海洋雷达数据进行扩展目标跟踪的伽玛高斯逆Wishart概率假设密度地球科学与遥感学报。卷。53,第12,2015,第6610页,第6617-6631。

扩展功能

介绍了R2019a