trackerPHD
描述
的trackerPHD
系统对象™是一个跟踪器能够处理来自多个传感器的多个目标的检测。跟踪器使用多目标概率假设密度(博士)滤波器来估计状态的点目标和扩展对象。博士是一个函数定义的状态跟踪系统,和它的价值在一个状态被定义为预期的目标状态空间体积单位的数量。博士学位由加权求和(混合物)的概率密度函数,和峰博士对应于可能的目标。如何追踪功能的概述,请参阅算法。
默认情况下,trackerPHD
可以跟踪扩展对象使用吗ggiwphd
过滤器,它从一个扩展模型检测的对象作为解析点云。您还可以使用trackerPHD
与gmphd
过滤器,跟踪点目标和扩展对象与指定的形状。输入生成的跟踪检测报告objectDetection
,fusionRadarSensor
,irSensor
,或sonarSensor
对象。跟踪输出所有保持跟踪和分析信息。
使用这个对象跟踪目标:
创建
trackerPHD
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
描述
创建一个跟踪器
= trackerPHDtrackerPHD
系统对象的默认属性值。
设置跟踪器使用一个或多个属性名称-值对。例如,跟踪器
= trackerPHD (名称,值
)trackerPHD (' MaxNumTracks ', 100)
创建一个博士跟踪器,允许最多100张光碟。在报价附上每个属性的名字。
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
TrackerIndex
- - - - - -唯一的跟踪标识符
0
(默认)|非负整数
独特的跟踪标识符,指定为一个非负整数。这个属性的使用SourceIndex
在跟踪输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用跟踪跟踪熔化炉的输出作为输入。
例子:1
SensorConfigurations
- - - - - -配置跟踪传感器
trackingSensorConfiguration
对象|的数组trackingSensorConfiguration
对象|单元阵列的trackingSensorConfiguration
对象|等效结构格式
跟踪传感器的配置,指定为一个trackingSensorConfiguration
对象的数组trackingSensorConfiguration
对象,或一个细胞数组的数组trackingSensorConfiguration
对象。这个属性提供了跟踪传感器的配置信息,例如传感器检测范围和传感器分辨率,追踪。请注意,没有默认值SensorConfigurations
财产,你必须指定SensorConfigurations
财产在使用跟踪器之前。不过,您可以通过设置更新配置HasSensorConfigurationsInput
财产真正的
并指定配置输入,配置
。如果你设置MaxDetsPerObject
财产的trackingSensorConfiguration
对象,追踪只创建一个分区,这样一个检测可以分配给每个目标。
交替,您可以指定这个属性使用结构和字段名称相同的属性名trackingSensorConfiguration
对象。
PartitioningFcn
- - - - - -函数来检测分割成检测细胞
@partitionDetections
(默认)|函数处理|特征向量
函数来检测分割成检测细胞,指定为一个函数处理或作为特征向量。当每个传感器可以报告多个检测每个对象,需要配分函数。配分函数报告所有可能的分区从一个传感器检测。在每个分区中,检测被分成相互排斥检测细胞,假设每个探测单元属于一个扩展的对象。
您还可以指定自己的检测配分函数。对于指导编写这个函数,您可以检查默认的分区功能的细节,partitionDetections
,使用类型
命令为:
类型partitionDetections
例子:@myfunction
或“myfunction”
数据类型:function_handle
|字符
出生率
- - - - - -出生率的新目标密度
1 e - 3
(默认)|积极的真正的标量
出生率的新目标密度,指定为一个标量。出生率表示目标的期望值在单位时间内密度补充道。生密度是通过使用创建的FilterInitializationFcn
的trackingSensorConfiguration
使用跟踪器。通常,跟踪将组件添加到密度函数在两个方面:
预测出生密度-密度的初始化
FilterInitializationFcn
函数调用时没有输入。出生自适应密度-密度的初始化
FilterInitializationFcn
函数调用时,检测输入。选择的检测是跟踪基于对数似协会与当前估计的目标。
注意,的值出生率
产权代表的总和都预测出生出生密度和自适应密度为每一个时间步。
例子:0.01
数据类型:单
|双
死亡率
- - - - - -死亡率的组件的密度
1 e-6
(默认)|积极的真正的标量
死亡率的组件的密度,指定为一个标量。死亡率显示组件的速度消失在一个时间步后的密度。死亡率(Pd)与生存概率(P年代)连续时间的步骤之间的一个组件
在哪里ΔT是时间步。
例子:1的军医
数据类型:单
|双
AssignmentThreshold
- - - - - -阈值的选择检测组件初始化
25
(默认)|真正积极的标量
阈值的选择检测组件初始化指定为一个积极的标量。在校正过程中,跟踪计算的可能性之间的联系现有的跟踪和检测细胞。如果协会可能性(由负对数似)检测细胞的所有现有跟踪高于阈值(这意味着检测细胞协会现有轨道)的可能性较低,检测细胞用于初始化新组件的自适应密度诞生。
例子:18.1
数据类型:单
|双
ExtractionThreshold
- - - - - -阈值初始化的轨道
0.5
(默认)|真正积极的标量
阈值初始化一个试探性的轨道,指定为一个标量。如果一个组件的重量比指定的阈值高ExtractionThreshold
贴上一个属性,该组件“初步”
跟踪和给定一个TrackID
。
例子:0.45
数据类型:单
|双
ConfirmationThreshold
- - - - - -阈值进行跟踪确认
0.8
(默认)|真正积极的标量
阈值进行跟踪确认,指定为一个标量。在一个trackerPHD
对象,轨道可以有多个组件共享相同TrackID
。如果初步跟踪的组件的重量总和比指定的阈值高ConfirmationThreshold
被标记为财产,跟踪的状态“确认”
。
例子:0.85
数据类型:单
|双
DeletionThreshold
- - - - - -阈值组件删除
1 e - 3
(默认)|真正积极的标量
阈值组件删除指定为一个标量。在博士跟踪,如果一个组件的重量低于指定的值DeletionThreshold
财产,组件被删除。
例子:0.01
数据类型:单
|双
MergingThreshold
- - - - - -阈值组件合并
25
(默认)|真正积极的标量
为组件合并阈值,指定为一个真正积极的标量。在博士跟踪,如果Kullback-Leibler组件之间的距离相同TrackID
小于指定的值MergingThreshold
属性,那么这些组件合并成一个组件。合并后的新组件的重量等于pre-merged组件的权重的总和。此外,如果合并后的体重高于第一阈值中指定LabelingThresholds
财产,合并后的重量是截断第一阈值。注意组件TrackID
等于0
也可以相互融合。
例子:30.
数据类型:单
|双
LabelingThresholds
- - - - - -阈值标签管理
0.8 (1.1 - 1)
(默认)|1×3矢量的积极的价值观
标签阈值,指定为1×3向量减少积极的价值观,(C1,C2,C3]。基于LabelingThresholds
财产,跟踪管理组件的密度使用这些规则:
任何组件的重量高于第一阈值C1减少到C1。
与相同的所有组件
TrackID
如果这些组件之间的最大重量大于C2保存,那么组件的最大重量是保留的TrackID
,而所有其他组件都删除。与相同的所有组件
TrackID
最大的重量,如果比所有这些组件的重量总和大于C3保存,那么组件的最大重量是保留的TrackID
,而所有其他组件都删除。如果条件2和3是满足条件,然后用最大的体重保持组件
TrackID
的标签,而所有其他组件都设置为0。当这种情况发生时,这基本上意味着一些组件可能代表其他对象。这种治疗的可能性保持这些无限制的组件在未来再提取。
数据类型:单
|双
HasSensorConfigurationsInput
- - - - - -随着时间的推移,使更新传感器配置
假
(默认)|真正的
随着时间的推移,使更新传感器配置指定为假
或真正的
。将此属性设置为真正的
如果你想要的配置传感器随时间更新。同样的,当这个属性设置真正的
,跟踪器必须被称为配置输入,配置
所示,使用语法。
数据类型:逻辑
StateParameters
- - - - - -参数跟踪状态的参考系
结构([])
(默认)|结构体数组
参数的跟踪状态参考系,指定为一个结构或一个结构数组。跟踪器通过其StateParameters
属性值对StateParameters
属性生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其起源速度(2 2 0)米每秒的帧的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
可调:是的
数据类型:结构体
NumTracks
- - - - - -跟踪维护跟踪
非负整数
这个属性是只读的。
跟踪器的跟踪维护,作为一个非负整数返回。
数据类型:双
NumConfirmedTracks
- - - - - -数量的确认跟踪
非负整数
这个属性是只读的。
数量的跟踪确认,作为一个非负整数返回。如果IsConfirmed
领域的一个输出跟踪结构真正的
,跟踪确认。
数据类型:双
MaxNumSensors
- - - - - -最大数量的传感器
20.
(默认)|正整数
最大数量的传感器可以连接到追踪,指定为一个正整数。MaxNumSensors
必须大于或等于最大的价值SensorIndex
发现在所有检测用于更新追踪。SensorIndex
是一个属性的吗objectDetection
对象。
数据类型:单
|双
MaxNumTracks
- - - - - -最大数量的跟踪
1000年
(默认)|正整数
最大数量的跟踪器可以保持跟踪,指定为一个正整数。
数据类型:单
|双
MaxNumComponents
- - - - - -最大数量的组件
1000年
(默认)|正整数
最大数量的组件的跟踪维护,指定为一个正整数。
请注意
跟踪器总是使用这个属性来设置组件的最大数量,跟踪器可以维护和忽略了MaxNumComponents
属性集的跟踪滤波器对象(ggiwphd
或gmphd
),您指定的SensorConfigurations财产。
数据类型:单
|双
使用
过程检测和更新,电话追踪的论点,就好像它是一个函数(这里描述)。
语法
描述
返回一个列表的更新追踪确认检测,confirmedTracks
=跟踪器(检测
,时间
)检测
在更新的时候,时间
。确认跟踪纠正和预测更新时间。
还指定了一个传感器配置输入,confirmedTracks
=跟踪器(检测
,配置
,时间
)配置
。使用这个语法的配置传感器随时间变化。要启用这种语法,设置HasSensorConfigurationsInput
财产真正的
。
(
还返回一个试探性的歌曲列表,confirmedTracks
,tentativeTracks
,allTracks
)=跟踪器(___)tentativeTracks
所有歌曲的列表,allTracks
。您可以使用该输出与任何以前的语法输入语法。
(
还返回分析信息,confirmedTracks
,tentativeTracks
,allTracks
,analysisInformation
)=跟踪器(___)analysisInformation
,它可以用于跟踪分析。您可以使用该输出与任何以前的语法输入语法。
输入参数
检测
- - - - - -检测列表
单元阵列的objectDetection
对象
检测列表,指定的单元阵列objectDetection
对象。的时间
属性值的objectDetection
对象必须是小于或等于当前更新时间,时间
,比前面的时间值用于更新追踪。此外,时间
不同的差异objectDetection
单元阵列中的对象不需要平等。
时间
- - - - - -更新的时间
标量
配置
- - - - - -传感器配置
数组的结构|单元阵列的结构|单元阵列的trackingSensorConfiguration
对象
传感器配置,指定为数组结构,单元阵列结构,或单元阵列trackingSensorConfiguration
对象。如果指定的值使用结构数组或单元阵列的结构,你必须包括SensorIndex
为每个结构作为一个领域。其他字段是可选的,但每个字段的结构必须具有相同的名称的属性之一trackingSensorConfiguration
对象。请注意,您只需要指定传感器配置,需要更新。例如,如果你只想更新IsValidTime
的第五个传感器,指定配置
作为结构(“SensorIndex”5“IsValidTime”,假)
。
提示
如果你有一个fusionRadarSensor
跟踪系统中的传感器对象,您可以直接使用的配置结构传感器的输出对象作为输入。
依赖关系
要启用这个论点,设置HasSensorConfigurationsInput
财产真正的
。
输出参数
confirmedTracks
——确认跟踪
结构|阵列结构
确认跟踪更新为当前时间,作为结构或返回的数组结构。每个结构对应于一个轨道。跟踪确认如果组件的重量总和超过指定的阈值ConfirmationThreshold
财产。如果跟踪确认,IsConfirmed
字段的结构真正的
。确认轨道结构中定义的字段轨道结构。
数据类型:结构体
tentativeTracks
-初步跟踪
结构|阵列结构
试探性的痕迹,作为结构或返回的数组结构。每个结构对应于一个轨道。轨道是试探性的如果组件的重量总和超过指定的阈值ExtractionThreshold
指定的属性,但低于阈值ConfirmationThreshold
财产。在这种情况下,IsConfirmed
字段的结构假
。结构中定义的字段轨道结构。
数据类型:结构体
allTracks
——所有的跟踪
结构|阵列结构
返回的所有痕迹,作为一个结构或一个结构数组。每个结构对应于一个轨道。所有曲目的集合包括确认和试探性的痕迹。结构中定义的字段轨道结构。
数据类型:结构体
analysisInformation
——附加信息分析跟踪更新
结构
附加信息分析跟踪更新,作为一个结构返回。这种结构的字段有:
场 | 描述 |
CorrectionOrder |
传感器用于状态估计的顺序调整,返回一个行向量的 |
TrackIDsAtStepBeginning |
当步骤开始追踪id。 |
DeletedTrackIDs |
IDs的痕迹删除步骤。 |
TrackIDsAtStepEnd |
追踪id步骤结束时。 |
SensorAnalysisInfo |
单元阵列传感器的分析信息。 |
的SensorAnalysisInfo
字段可以包括多个传感器信息报告。每个报告都是一个结构包含:
场 | 描述 |
SensorIndex |
传感器指数。 |
DetectionCells |
检测细胞,作为一个逻辑返回矩阵。矩阵的每一列代表一个细胞检测。在每一列,如果我th元素是1,那么我th检测属于检测细胞用列。 |
DetectionLikelihoods |
组件之间的关联可能的密度函数和检测细胞,作为一个返回N——- - - - - -P矩阵。N是组件的数量密度函数,然后呢P检测细胞的数量。 |
IsBirthCells |
表明如果检测细胞中列出 |
NumPartitions |
分区的数量。 |
DetectionProbability |
现有的概率跟踪被传感器探测到,指定为1×-N行向量,N是组件的数量密度函数。 |
LabelsBeforeCorrection |
标签的组件的密度函数修正之前,返回1,米b行向量。米b是组件的数量保持在校正前的追踪。向量的每个元素 |
LabelsAfterCorrection |
标签的组件的密度函数修正后,返回1,米一个行向量。米一个是组件的数量保持在校正后的追踪。向量的每个元素 |
WeightsBeforeCorrection |
重量组件的密度函数修正之前,作为一个1 -返回米b行向量。米b是组件的数量保持在校正前的追踪。向量的每个元素的重量对应的组件了 |
WeightsAfterCorrection |
重量组件的密度函数修正后,返回1,米一个行向量。米一个是组件的数量保持在校正后的追踪。向量的每个元素的重量对应的组件了 |
数据类型:结构体
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
特定于trackerPHD
predictTracksToTime |
预测跟踪状态 |
deleteTrack |
删除现有的跟踪 |
initializeTrack |
初始化新轨道 |
sensorIndices |
传感器的指标列表 |
exportTo万博1manbetxSimulink |
出口跟踪或跟踪熔化炉仿真软件模型万博1manbetx |
getPHDFilter |
得到的副本博士过滤器 |
例子
使用trackerPHD跟踪两个对象
设置传感器配置,创建一个博士跟踪器,和饲料检测的跟踪。
%创建传感器配置。指定传感器和杂波密度%设置IsValidTime属性为true。配置= trackingSensorConfiguration (1);配置。ClutterDensity = 1e-7; configuration.IsValidTime = true;%跟踪创建一个博士学位。追踪= trackerPHD (“SensorConfigurations”、配置);%创建附近探测点(5;5。0]和[5;5 0]在t = 0时,和%更新追踪这些检测。检测=细胞(20日1);为我= 1:10检测{我}= objectDetection (0, (5; 5。0) + 0.2 * randn (3,1));结束为j = 11:20检测{j} = objectDetection (0, (5; 5。0) + 0.2 * randn (3,1));结束追踪(检测,0);
0.1秒后再次更新追踪通过假设目标以一个恒定的速度(1;2。0)单位每秒。
dT = 0.1;为i = 1:20检测{}。时间=检测{}。时间+ dT;检测我{}。米easurement = detections{i}.Measurement + [1;2;0]*dT;结束[confTracks, tentTracks allTracks] =追踪(检测,dT);
可视化检测和跟踪确认。
%获得测量数据检测。d =[检测{}):;测量= [d.Measurement];%提取位置确认跟踪使用getTrackPositions函数。%注意,我们使用默认的传感器配置% FilterInitializationFcn initcvggiwphd,它使用一个恒定的速度%模型并定义美国[x, vx; y; v; z; v)。positionSelector = [1 0 0 0 0 0; 0 0 1 0 0 0, 0 0 0 0 0 1);位置= 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”)
轨道车辆跟踪场景中使用trackerPHD
创建一个跟踪场景和指定它StopTime
和UpdateRate
属性。
场景= trackingScenario;场景。StopTime=Inf; scenario.UpdateRate = 0;
在场景中添加一个塔平台并指定它的维度。
塔=平台(场景中,“ClassID”3);塔。D我米ensions = struct(…“长度”10…“宽度”10…“高度”现年60岁的…“OriginOffset”30],[0 0);
添加一个汽车平台的场景。指定其维度和轨迹。
车=平台(场景中,“ClassID”2);的车。D我米ensions = struct(…“长度”,4.7,…“宽度”,1.8,…“高度”,1.4,…“OriginOffset”(-0.6 0 0.7));的车。Trajectory = waypointTrajectory(…[0 -15 -0.23;0.3 -29.5 -0.23;0.3 -42 -0.39;0.3 -56.5 -0.23;…4.4 -0.3 -78.2 -0.23;-96.4 - -0.23),…[0;1.4;2.7;4.1;6.3;8.2),…“课程”,-88;-89;-89;-92;-84;-71年),…“水平”,(10;10;10;10;10;10),…“ClimbRate”,(0;0;0;0;0;0),…“AutoPitch”,真的,…“AutoBank”,真正的);
创建一个固定雷达,指定其属性,塔上的传感器。
NoScanning = fusionRadarSensor (“SensorIndex”,1…“UpdateRate”10…“MountingAngles”(-90 0 0),…“FieldOfView”20 [10],…“ScanMode”,“没有扫描”,…“之内”,真的,…“DetectionCoordinates”,“场景”,…“TargetReportFormat”,“检测”,…“HasElevation”,真正的);塔。传感器= NoScanning;
创建一个戏剧情节可视化传感器覆盖,跟踪和检测。
tp = theaterPlot (“XLim”,-58年[58],“YLim”,-104 (12)“ZLim”,-109年[8]);集(tp.Parent,“YDir”,“反向”,“ZDir”,“反向”);视图(tp.Parent, -37.5, 30);%平台绘图仪。platp = platformPlotter (tp,“DisplayName的”,“目标”,“MarkerFaceColor”,“k”);%检测传感器检测绘图仪。detp = detectionPlotter (tp,“DisplayName的”,“检测”,“MarkerSize”6…“MarkerFaceColor”(0.85 0.325 0.098),“MarkerEdgeColor”,“k”,“历史”,10000);%覆盖率绘图仪传感器。covp = coveragePlotter (tp,“DisplayName的”,传感器覆盖的);%为跟踪航迹绘图仪。tPlotter = trackPlotter (tp,“DisplayName的”,“跟踪”);
提取的传感器配置传感器和使用它来指定一个博士跟踪。
sensorConfig = trackingSensorConfiguration (scenario.Platforms {1} .Sensors {1},…“SensorTransformFcn”@cvmeas,“FilterInitializationFcn”,@initcvggiwphd);追踪= trackerPHD (“SensorConfigurations”sensorConfig,…“PartitioningFcn”@ (x) partitionDetections (4.7 x 1),…“AssignmentThreshold”,20岁,“ExtractionThreshold”,0.8,…“ConfirmationThreshold”,1.5,“MergingThreshold”,20岁,…“DeletionThreshold”2 e 1“出生率”1 e - 3,…“HasSensorConfigurationsInput”,真正的);
模拟场景中,生成检测,并使用检测跟踪汽车。在模拟更新戏剧情节。
而推进(场景)& & ishghandle (tp.Parent)%生成传感器数据。[引爆器,配置,sensorConfigPIDs] =检测(场景);%读取传感器数据。allDets =[侦破{}):;如果~ isempty (allDets)%提取测量的位置。量=猫(2,allDets.Measurement) ';%提取测量噪声。allDets.MeasurementNoise measCov =猫(3日);其他的量= 0 (0,3);measCov = 0 (3 3 0);结束%获得正确的位置。truePoses = platformPoses(场景);truePosition = vertcat (truePoses (:) .Position);%更新跟踪检测和传感器配置。[cTracks, tTracks allTracks] =追踪(引爆器,配置,scenario.SimulationTime);%更新戏剧情节。plotPlatform (platp truePosition);plotDetection (detp量、measCov);plotCoverage (covp coverageConfig(场景));%更新跟踪绘图机。提取跟踪位置。positionSelector = [1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0 1);位置= getTrackPositions (cTracks positionSelector);%标签和阴谋。如果~ isempty (cTracks)标签=电池(元素个数(cTracks), 1);为i = 1:元素个数(cTracks)标签{我}= {(“T”num2str (cTracks(我).TrackID)]};结束plotTrack (tPlotter,位置,标签);结束drawnow结束
更多关于
轨道结构
跟踪信息是作为一个数组返回的结构有以下字段:
场 | 描述 |
TrackID |
独特的整数标识追踪。 |
SouceIndex |
唯一标识符的跟踪多个追踪环境。的 |
UpdateTime |
跟踪更新的时间。 |
年龄 |
次数的活了下来。 |
状态 |
状态向量的值更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
程度上 |
空间程度估计的跟踪对象,作为一个返回d——- - - - - -d矩阵,d是对象的维度。这个字段只返回时作为一个指定的跟踪滤波器 |
MeasurementRate |
预期数量的检测跟踪对象。这个字段只返回时作为一个指定的跟踪滤波器 |
IsConfirmed |
真实的记录被认为是一个真正的目标。 |
IsCoasted |
|
ObjectClassID |
|
StateParamaters |
参数的跟踪状态参考系中指定 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
算法
跟踪逻辑流程
trackerPHD
采用一种iterated-corrector方法更新概率假设密度通过处理顺序检测来自多个传感器的信息。的工作流程trackerPHD
遵循这些步骤:
跟踪各种传感器根据他们的检测报告时间和确定相应的校正。
追踪认为两个不同密度:电流密度和出生密度。的电流密度的密度目标传播前一个时间步。生密度的密度目标将出生在当前时间步。
为每个传感器:
跟踪预测的电流密度传感器使用的生存概率计算时间戳
死亡率
最后的运行时间预测。跟踪器将新组件添加到出生密度使用
FilterInitializationFcn
没有输入。这对应于预测出生密度。跟踪创建分区的检测电流传感器使用指定的函数
PartitioningFcn
财产。每个分区都是一个可能的检测分割成检测细胞为每个对象。如果SensorConfiguration
指定了MaxNumDetsPerObject
1,跟踪生成只有一个分区,每个检测是一个独立的细胞。每个检测细胞评估对电流密度和对数似值计算为每个细胞检测。
利用对数似值,追踪计算每个分区的概率。
跟踪纠正当前使用每个检测细胞密度。
检测细胞负对数似(大于高
AssignmentThreshold
出生),跟踪器将新组件添加到密度使用FilterInitializationFcn
。这对应于自适应密度诞生。
纠正每个传感器的电流密度后,追踪出生密度增加电流密度。跟踪器确保可能的目标数量密度等于诞生
出生率
×dT,在那里dT是时间步。电流密度是预测当前更新时间。
概率假设密度
概率假设密度(博士)是一个函数定义的状态跟踪系统,和它的价值在一个状态被定义为预期的目标状态空间体积单位的数量。博士通常近似的组件,每个组件和对应于估计的状态。博士的常用近似高斯混合,SMC混合物,GGIW混合物,GIW混合物。
要理解博士,以高斯混合为一个例子。高斯混合可以用
在哪里米组件的总数,N(x|米我,P我)是一个正态分布的意思米我和协方差P我,w我的重量吗我组件。重量w我表示数量,可分数所代表的目标我组件。集成的D(x)对非整数地区结果的预期目标。集成D(x)在整个状态空间结果的总预期目标(∑w我),因为一个正态分布的集成在整个状态空间是1。的x坐标的山峰(本地最大值)D(x)代表了最有可能的目标。
例如,下图展示了一个博士给出的函数D(x)=N(x|−4,2)+ 0.5N(x| 3、0.4)+ 0.5N(x| 4,0.4)。这些组件的重量总和是2,这意味着两个目标可能存在。的山峰D(x),这些目标的可能位置x=−4,x= 3,x= 4。注意最后两个组件是非常接近对方,这意味着这两个组件可能归因于一个对象。
引用
[1]Granstorm, K。,C。Lundquiest, and O. Orguner. " Extended target tracking using a Gaussian-mixture PHD filter."IEEE航空航天和电子系统。48卷,4号,2012年,页3268 - 3286。
[2]Granstorm, K。,O. Orguner." A PHD filter for tracking multiple extended targets using random matrices."IEEE信号处理。60卷,11号,2012年,页5657 - 5671。
[3]Granstorm, K。,A. Natale, P. Braca, G. Ludeno, and F. Serafino."Gamma Gaussian inverse Wishart probability hypothesis density for extended target tracking using X-band marine radar data."IEEE地球科学和遥感。53卷,12号,2015年,页6617 - 6631。
[4]附近潘塔,译注),et al . "数据关联和跟踪管理高斯混合概率假设密度滤光片。”IEEE航空航天和电子系统,45卷,不。3、2009年7月,页1003 - 16。
[5]Ristic B。,et al. “Adaptive Target Birth Intensity for PHD and CPHD Filters.”IEEE航空航天和电子系统,48卷,不。2,2012年,页1656 - 68。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到系统在MATLAB代码生成对象(MATLAB编码器)。
所有检测必须属性相同的大小和类型。
跟踪器支持万博1manbetx严格的单精度与这些限制代码生成:
您必须指定过滤器的初始化函数作为单精度
trackingSensorConfiguration
对象。在每一个指定的过滤器
trackingSensorConfiguration
对象必须用运动和支持单精度的测量模型。万博1manbetx
有关严格的单精度代码生成,请参阅生成代码与严格的单精度和非动态内存分配。
跟踪器支持万博1manbetx非动态的内存分配与这些限制代码生成:
你必须指定
MaxNumDetections
和MaxNumDetsPerObject
在每个属性trackingSensorConfiguration
对象作为有限整数。你必须指定
MaxNumComponents
房地产作为一个有限的整数。你必须指定
MaxNumTracks
房地产作为一个有限的整数。
有关非动态的内存分配代码生成,请参阅生成代码与严格的单精度和非动态内存分配。
版本历史
介绍了R2019aR2022b:在跟踪指定最大的组件
现在,您可以指定的最大数量博士组件维护trackerPHD
使用新系统对象MaxNumComponents
财产。同时,跟踪器忽略了MaxNumComponents
属性集的跟踪滤波器对象(ggiwphd
或gmphd
),您指定的SensorConfigurations财产。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。