trackerJPDA
联合概率数据关联跟踪
描述
的trackerJPDA
系统对象™是一个跟踪器能够处理来自多个传感器的多个目标的检测。跟踪器使用联合概率数据关联分配每个跟踪检测。跟踪器适用于软任务在多个检测可以为每个轨道。初始化跟踪,确认,纠正,预测(执行惯性),和删除的痕迹。输入生成的跟踪检测报告<一个href="//www.tatmou.com/help/fusion/ref/objectdetection.html">objectDetection
,<一个href="//www.tatmou.com/help/fusion/ref/fusionradarsensor-system-object.html">fusionRadarSensor
,<一个href="//www.tatmou.com/help/fusion/ref/irsensor-system-object.html">irSensor
,或<一个href="//www.tatmou.com/help/fusion/ref/sonarsensor-system-object.html">sonarSensor
对象。跟踪估计状态向量和状态估计误差协方差矩阵为每一个轨道。每个检测是分配到至少一个跟踪。如果发现不能分配给任何现有的跟踪,跟踪器创建一个新的轨道。
任何新的追踪从一开始试探性的状态。如果足够的检测是分配给一个试探性的轨道,它的状态改变确认(见ConfirmationThreshold
属性)。如果发现已经有一个已知的分类(即。,ObjectClassID
返回的跟踪领域非零),相应的跟踪确认。当跟踪确认,追踪认为代表一个物理对象的跟踪。如果检测不分配给跟踪在一个指定的数量的更新,删除。
您可以启用通过指定不同的JPDA跟踪模式<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">TrackLogic和<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">MaxNumEvents属性。
设置<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">TrackLogic财产
“集成”
使联合集成数据协会(JIPDA)追踪,追踪确认和删除是基于跟踪的可能性存在。设置<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">MaxNumEvents财产有限整数使k-best联合集成数据协会(k-best JPDA)跟踪器,每个集群生成一个k的最大事件。
使用这个对象跟踪目标:
创建
trackerJPDA
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的<一个href="//www.tatmou.com/help/matlab/matlab_prog/what-are-system-objects.html" class="a">系统对象是什么?
创建
描述
创建一个跟踪器
= trackerJPDAtrackerJPDA
系统对象的默认属性值。
设置跟踪器使用一个或多个属性名称-值对。例如,跟踪器
= trackerJPDA (名称,值
)trackerJPDA (FilterInitializationFcn, @initcvukf MaxNumTracks, 100)
创建一个多目标跟踪器,使用常速,无味卡尔曼滤波器,并允许最多100张光碟。在报价附上每个属性的名字。
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,<一个href="//www.tatmou.com/help/matlab/ref/releasesystemobject.html">释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅<一个href="//www.tatmou.com/help/matlab/matlab_prog/system-design-in-matlab-using-system-objects.html" class="a">系统设计在MATLAB使用系统对象。
TrackerIndex
- - - - - -唯一的跟踪标识符
0
(默认)|非负整数
独特的跟踪标识符,指定为一个非负整数。这个属性的使用SourceIndex
在跟踪输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用跟踪跟踪熔化炉的输出作为输入。
例子:1
FilterInitializationFcn
- - - - - -过滤器的初始化函数
@initcvekf
(默认)|函数处理|特征向量
过滤器的初始化函数,指定为一个函数处理或作为特征向量包含一个有效的过滤初始化函数的名称。跟踪器使用一个过滤器的初始化函数在创建新的轨道。
传感器融合和跟踪工具箱™供应许多初始化函数,您可以使用它来指定FilterInitializationFcn
对于一个trackerJPDA
对象。
初始化函数 | 函数定义 |
---|---|
initcvkf |
初始化常速线性卡尔曼滤波器。 |
initcakf |
初始化加速度恒定线性卡尔曼滤波器。 |
initcvabf |
初始化常速α-β滤波器 |
initcaabf |
初始化恒定加速度α-β滤波器 |
initcvekf |
常速扩展卡尔曼滤波器进行初始化。 |
initcaekf |
初始化加速度恒定扩展卡尔曼滤波器。 |
initrpekf |
初始化常速range-parametrized扩展卡尔曼滤波器。 |
initapekf |
初始化常速angle-parametrized扩展卡尔曼滤波器。 |
initctekf |
初始化constant-turn-rate扩展卡尔曼滤波器。 |
initcackf |
初始化加速度恒定体积过滤器。 |
initctckf |
初始化constant-turn-rate求容积法过滤器。 |
initcvckf |
初始化常速求容积法过滤器。 |
initcvukf |
初始化常速无味卡尔曼滤波器。 |
initcaukf |
初始化加速度恒定无味卡尔曼滤波器。 |
initctukf |
初始化constant-turn-rate无味卡尔曼滤波器。 |
initcvmscekf |
初始化常速扩展卡尔曼滤波器在球坐标修改。 |
initekfimm |
初始化跟踪IMM滤波器。 |
您也可以编写自己的初始化函数使用下面的语法:
过滤器= filterInitializationFcn(检测)
objectDetection
。这个函数的输出必须过滤对象:<一个href="//www.tatmou.com/help/fusion/ref/trackingkf.html">trackingKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.html">trackingEKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingukf.html">trackingUKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingckf.html">trackingCKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackinggsf.html">trackingGSF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingimm.html">trackingIMM
,<一个href="//www.tatmou.com/help/fusion/ref/trackingmscekf.html">trackingMSCEKF
,或<一个href="//www.tatmou.com/help/fusion/ref/trackingabf.html">trackingABF
。
指导编写这个函数使用类型
命令来检查内置MATLAB的细节®功能。例如:
类型
initcvekf
请注意
trackerJPDA
不接受所有过滤器的初始化函数在传感器融合和跟踪工具。过滤器的初始化函数的完整列表可以在传感器融合和跟踪工具箱中给出初始化的部分<一个href="//www.tatmou.com/help/fusion/estimation-filters.html" class="a">估计过滤器。
数据类型:function_handle
|字符
MaxNumEvents
- - - - - -的k值k-best JPDA
正
(默认)|正整数
k-best JPDA的k值,指定为一个正整数。这个属性定义的最大数量可行联合事件跟踪和检测协会的每个集群。将这个属性设置为一个有限值使您能够运行一个k-best JPDA跟踪器,每个集群生成一个k的最大事件。
数据类型:单
|双
EventGenerationFcn
- - - - - -可行联合事件生成函数
@jpdaEvents
(默认)|函数处理|特征向量
可行联合事件生成函数,指定为一个函数处理或作为一个特征向量包含可行联合事件生成函数的名称。一代函数生成可行联合事件矩阵容许事件(通常由一个验证矩阵或可能性矩阵)的场景。有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda.jpdaevents.html">jpadEvents
。
您也可以编写自己的生成函数。
如果
MaxNumEvents
属性设置为正
,该函数必须有如下语法:FJE = myfunction (ValidationMatrix)
jpdaEvents
。如果
MaxNumEvents
属性设置为一个有限值,函数必须有如下语法:[FJE, FJEProbs] = myfunction (likelihoodMatrix k)
jpdaEvents
。
指导编写这个函数使用类型
命令来检查的细节jpdaEvents
:
类型jpdaEvents
例子:@myfunction
或“myfunction”
数据类型:function_handle
|字符
MaxNumTracks
- - - - - -最大数量的跟踪
One hundred.
(默认)|正整数
最大数量的跟踪器可以保持跟踪,指定为一个正整数。
数据类型:单
|双
MaxNumSensors
- - - - - -最大数量的传感器
20.
(默认)|正整数
最大数量的传感器可以连接到追踪,指定为一个正整数。MaxNumSensors
必须大于或等于最大的价值SensorIndex
发现在所有检测用于更新追踪。SensorIndex
是一个属性的吗<一个href="//www.tatmou.com/help/fusion/ref/objectdetection.html">objectDetection
对象。的MaxNumSensors
属性决定了有多少套ObjectAttributes
每条曲目。
数据类型:单
|双
MaxNumDetections
- - - - - -最大数量的检测
正
(默认)|正整数
最大数量的检测跟踪器可以作为输入,指定为一个正整数。
数据类型:单
|双
OOSMHandling
- - - - - -处理一堆测量(OOSM)
“终止”
(默认)|“忽略”
|“Retrodiction”
指定的测量(OOSM),按顺序处理“终止”
,“忽略”
,或“Retrodiction”
。每个检测都有一个关联的时间戳,td,跟踪自己的时间戳,tt,这是在每个调用跟踪更新。作为OOSM如果追踪者认为测量td<tt。
当你指定这个属性为:
“终止”
——跟踪器停止运行时遇到乱序执行测量。“忽略”
——跟踪器忽略任何按顺序测量和继续运行。“Retrodiction”
-跟踪器使用retrodiction算法更新追踪通过忽视OOSMs,更新现有的跟踪,或创建新的使用OOSM跟踪。您必须指定一个过滤器的初始化函数,返回一个<一个href="//www.tatmou.com/help/fusion/ref/trackingkf.html">trackingKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.html">trackingEKF
,或<一个href="//www.tatmou.com/help/fusion/ref/trackingimm.html">trackingIMM
对象FilterInitializationFcn
财产。
如果指定这个属性“Retrodiction”
,跟踪处理OOSMs遵循这些步骤:
如果OOSM时间戳超出最古老的校正时间戳(指定的
MaxNumOOSMSteps
财产)维护的追踪,追踪OOSMs丢弃。如果OOSM时间戳在最古老的校正时间戳维护的追踪,追踪第一retrodicts所有现有的跟踪OOSMs时。然后,追踪应用联合概率数据关联算法,试图把OOSMs retrodicted跟踪。
如果跟踪成功associates OOSM retrodicted追踪的至少一个,然后跟踪更新相关,retrodicted跟踪使用OOSMs运用retro-correction算法获得当前,跟踪纠正。
如果追踪者不能副OOSM任何retrodicted跟踪,然后跟踪器创建一个新的跟踪基于OOSM和预测当前时间。
为更多的细节在JPDA-based retrodiction,明白了<一个href="//www.tatmou.com/help/fusion/ref/trackingkf.retrocorrectjpda.html" class="a">JPDA-Based Retrodiction和Retro-Correction驶,模拟按顺序检测使用<一个href="//www.tatmou.com/help/fusion/ref/objectdetectiondelay-system-object.html">objectDetectionDelay
。
请注意
当您选择
“Retrodiction”
,你不能使用<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">costMatrix输入。使用retrodiction减少的好处随着目标的数量在近距离增加。
跟踪器需要共享相同的所有输入信号检测
SensorIndex
有自己的时间
差异有界的TimeTolerance
财产。因此,当你设置OOSMHandling财产“忽略”
,您必须确保按顺序检测时间戳严格小于前一个跟踪器运行时的时间戳。
可调:是的
MaxNumOOSMSteps
- - - - - -最大数量的按顺序测量步骤
3
(默认)|正整数
按顺序测量的最大数量(OOSM)步骤,指定为一个正整数。
增加这个属性的值需要更多的内存,但使您能够调用跟踪OOSMs有较大滞后相对于过去的时间戳。然而,随着延迟增加,OOSM的影响上的当前状态跟踪减少。此属性的推荐值3
。
依赖关系
要启用这个论点,设置OOSMHandling
财产“Retrodiction”
。
StateParameters
- - - - - -参数跟踪状态的参考系
结构([])
(默认)|结构体数组
参数的跟踪状态参考系,指定为一个结构或一个结构数组。跟踪器通过其StateParameters
属性值对StateParameters
属性生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其起源速度(2 2 0)米每秒的帧的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
可调:是的
数据类型:结构体
AssignmentThreshold
- - - - - -检测作业阈值
30 *[1正]
(默认)|积极的标量|1×2向量的积极的价值观
检测作业阈值(或控制阈值),指定为一个积极的标量或矢量1×2 (C1C2),C1≤C2。如果指定为一个标量,指定的值,瓦尔,是扩大到瓦尔,正
]。
最初,跟踪执行规范化的粗估计所有的跟踪和检测之间的距离。跟踪器只计算准确的归一化距离粗归一化距离小于的组合C2。同时,追踪只能分配一个检测跟踪如果准确的归一化距离小于C1。看到距离
函数用于跟踪(如过滤器<一个href="//www.tatmou.com/help/fusion/ref/trackingckf.html">trackingCKF
和<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.html">trackingEKF
)解释的距离计算。
增加的价值C2如果有跟踪和检测组合,但不应计算作业。降低这个值,如果成本计算需要太多时间。
增加的价值C1如果有检测,但不应该分配给足迹。降低这个值是否有检测分配给跟踪他们不应该分配给(太远)。
请注意
如果该值的C2是有限的,状态转换函数和测量功能,跟踪滤波器中指定用于追踪,必须能够拿一个吗米——- - - - - -N矩阵的状态作为输入和输出N预测状态和N分别测量。米是国家的大小。N的状态数,任意一个非负整数。
DetectionProbability
- - - - - -检测概率
0.9
(默认)|标量在[0,1]
检测概率,指定为一个标量在区间[0,1]。此属性用于边缘后验概率的计算协会和轨道的概率存在当初始化和更新一个跟踪。
例子:0.85
数据类型:单
|双
InitializationThreshold
- - - - - -阈值来初始化一个跟踪
0
(默认)|标量在[0,1]
概率阈值来初始化一个新的轨道,指定为一个标量在[0,1]。如果关联的概率与任何现有的检测跟踪都小于InitializationThreshold
,检测将被用来初始化一个新的轨道。这允许检测验证大门内的跟踪,但有一个协会概率低于初始化阈值产生一个新的轨道。
例子:0.1
数据类型:单
|双
TrackLogic
- - - - - -跟踪确认和删除逻辑类型
“历史”
(默认)|“集成”
确认和删除逻辑类型,指定为:
“历史”
——跟踪确认和删除是基于轨道的次数已经分配给一个检测的最新跟踪更新。“集成”
-跟踪确认和删除是基于跟踪的可能性存在,这是集成在赋值函数。选择此值使联合集成数据协会(JIPDA)追踪。
ConfirmationThreshold
- - - - - -阈值进行跟踪确认
标量|1×2向量
阈值进行跟踪确认,指定为一个标量或1×2向量。阈值取决于类型的跟踪确认和删除逻辑设置TrackLogic
属性:
“历史”
——确认阈值指定为1×2向量(米N]。跟踪确认如果它至少记录米打过去N更新。的trackerJPDA
注册一个轨道上的历史逻辑根据HitMissThrehold
。默认值是3 [2]
。“集成”
——确认阈值指定为一个标量。跟踪确认如果它存在的概率大于或等于确认阈值。默认值是0.95
。
数据类型:单
|双
DeletionThreshold
- - - - - -阈值跟踪删除
标量|实值向量1×2
阈值跟踪删除指定为一个标量或实值1×2向量。阈值取决于类型的跟踪确认和删除逻辑设置TrackLogic
属性:
“历史”
——确认阈值指定为PR]。如果在P
最后的R
跟踪更新,跟踪没有分配到任何检测确认的可能性大于HitMissThreshold
属性,然后跟踪被删除。默认值是(5,5)
。“集成”
——删除阈值指定为一个标量。记录被删除,如果存在低于阈值的概率。默认值是0.1
。
例子:0.2
或(5、6)
数据类型:单
|双
HitMissThreshold
- - - - - -注册成功与否的阈值
0.2(默认)|标量在[0,1]
注册成功与否阈值,指定为一个标量范围[0,1]。跟踪历史逻辑将注册一个小姐和轨道滑行如果分配的边际概率的总和是以下HitMissThreshold
。否则,跟踪历史逻辑将注册一个打击。
例子:0.3
依赖关系
要启用这个论点,设置TrackLogic
财产“历史”
。
数据类型:单
|双
ClutterDensity
- - - - - -杂乱的空间密度测量
1 e-6
(默认)|积极的标量
杂乱的空间密度测量,指定为一个积极的标量。杂波密度描述预期的假阳性检测单位体积的数量。它是用作杂乱泊松模型的参数。当TrackLogic
被设置为“集成”
,ClutterDensity
也用于计算的初始概率跟踪存在。
例子:1 e-5
数据类型:单
|双
NewTargetDensity
- - - - - -空间密度的新目标
1 e-5
(默认)|积极的标量
空间密度的新目标,指定为一个积极的标量。新目标密度描述的预期数量,单位体积内的新线路测量空间。它是用于计算跟踪跟踪初始化期间存在的概率。
例子:1 e - 3
依赖关系
要启用这个论点,设置TrackLogic
财产“集成”
。
数据类型:单
|双
死亡率
- - - - - -时间目标的速度死亡
0.01
(默认)|标量在[0,1]
死亡时间的目标,指定为一个标量范围[0,1]。死亡率
描述了真实目标消失的概率。它与轨道的概率存在的传播(PTE):
在哪里δt是上次更新的时间间隔时间吗t。
依赖关系
要启用这个论点,设置TrackLogic
财产“集成”
。
数据类型:单
|双
InitialExistenceProbability
- - - - - -初始概率跟踪的存在
0.9
(默认)|标量在[0,1]
这个属性是只读的。
初始轨道的概率存在,指定为一个标量在[0,1]范围和计算InitialExistenceProbability = NewTargetDensity * DetectionProbability / (ClutterDensity + NewTargetDensity * DetectionProbability)
。
依赖关系
要启用这个特性,设置TrackLogic
财产“集成”
。当TrackLogic
属性设置为“历史”
,这个属性是不可用的。
数据类型:单
|双
HasCostMatrixInput
- - - - - -使成本矩阵输入
假
(默认)|真正的
使成本矩阵,指定为假
或真正的
。如果真正的
,您可以提供一个作业成本矩阵作为输入参数当调用对象。
数据类型:逻辑
HasDetectableTrackIDsInput
- - - - - -IDs允许输入的检测跟踪
假
(默认)|真正的
使IDs检测跟踪输入的更新,每个对象指定为假
或真正的
。将此属性设置为真正的
如果你想提供一个检测跟踪id列表。这个列表通知追踪所有的传感器将检测和跟踪,还为每个跟踪检测的概率。
数据类型:逻辑
NumTracks
- - - - - -跟踪维护跟踪
非负整数
这个属性是只读的。
跟踪器的跟踪维护,作为一个非负整数返回。
数据类型:单
|双
NumConfirmedTracks
- - - - - -数量的确认跟踪
非负整数
这个属性是只读的。
数量的跟踪确认,作为一个非负整数返回。如果IsConfirmed
领域的一个输出跟踪结构真正的
,跟踪确认。
数据类型:单
|双
TimeTolerance
- - - - - -绝对时间检测之间的宽容
1 e-5
(默认)|积极的标量
绝对时间检测的传感器之间的宽容,指定为一个积极的标量。理想情况下,trackerJPDA
希望从一个传感器检测到有相同的时间戳。然而,如果时间戳之间的差异检测传感器的在指定的保证金TimeTolerance
,这些检测将被用来更新跟踪估计基于这些检测的平均时间。
数据类型:双
EnableMemoryManagement
- - - - - -使内存管理属性
假
或0
(默认)|真正的
或1
使内存管理属性,指定为一个逻辑1
(真正的
)或假
(0
)。将这个属性设置为真正的
使您能够使用这四个属性来指定特定的大小可变的数组的边界跟踪,以及确定如何追踪处理集群大小违规行为:
MaxNumDetectionsPerSensor
MaxNumDetectionsPerCluster
MaxNumTracksPerCluster
ClusterViolationHandling
指定范围的大小可变的数组允许您管理的内存占用跟踪器在生成的C / c++代码。
数据类型:逻辑
MaxNumDetectionsPerSensor
- - - - - -最大数量的检测传感器
One hundred.
(默认)|正整数
最大数量的检测传感器,指定为一个正整数。这个属性决定了检测的最大数量,每个传感器可以通过跟踪器的跟踪器在每次调用。
将此属性设置为一个有限值如果你想跟踪建立高效的本地变量界限C / c++代码生成。将此属性设置为正
如果你不想绑定每个传感器检测的最大数量。
依赖关系
要启用这个特性,设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
MaxNumDetectionsPerCluster
- - - - - -检测/集群的最大数量
5
(默认)|正整数
最大数量的检测在运行时跟踪的每个集群,指定为一个正整数。
将这个属性设置为一个有限值允许跟踪器绑定集群大小和减少了内存占用的跟踪器在生成的C / c++代码。将此属性设置为正
如果你不想绑定检测每个集群的最大数量。
在运行时,如果检测在集群的数量超过了指定的MaxNumDetectionsPerCluster
,跟踪反应的基础上ClusterViolationHandling
财产。
依赖关系
要启用这个特性,设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
MaxNumTracksPerCluster
- - - - - -跟踪每个集群的最大数量
5
(默认)|正整数
最大数量的跟踪每个集群的运行时跟踪,指定为一个正整数。
将这个属性设置为一个有限值允许跟踪器绑定集群大小和减少了内存占用的跟踪器在生成的C / c++代码。将此属性设置为正
如果你不想绑定跟踪每个集群的最大数量。
在运行时,如果集群中的曲目的数量超过了指定的MaxNumTracksPerCluster
,跟踪反应的基础上ClusterViolationHandling
财产。
依赖关系
要启用这个论点,设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
ClusterViolationHandling
- - - - - -处理运行时违反了集群的边界
分裂和警告
(默认)|“终止”
|“分裂”
处理运行时违反了集群范围,指定为:
“Teminate”
——跟踪报告错误,如果在运行时,任何集群违反了集群中指定的界限MaxNumDetectionsPerCluster
和MaxNumTracksPerCluster
属性。分裂和警告
——跟踪器将size-violating集群分为更小的集群使用一个次优的方法。跟踪器也报道警告指示违反。“分裂”
——跟踪器将size-violating集群分为更小的集群通过使用一个次优的方法。追踪不报告一个警告。
在次优方法,追踪分离检测或钉的可能性最小的协会和其他轨道或检测,直到满足集群范围。这些分离出来检测或跟踪可以形成一个或多个新的集群取决于彼此协会可能和AssignmentThreshold
财产。
依赖关系
要启用这个特性,设置EnableMemoryManagement
财产真正的
。
数据类型:字符
|字符串
使用
过程检测和更新,电话追踪的论点,就好像它是一个函数(这里描述)。
语法
描述
返回一个列表的更新追踪确认更新的检测时间。确认跟踪纠正和预测更新时间,confirmedTracks
=跟踪器(<一个href="#mw_81a916cd-b7ae-4e99-8ae2-e81a544adc01" class="intrnllnk">检测
,<一个href="#sysobj_tracker_jpda_sep_mw_e1317a82-d69c-41a6-a73e-03809968aff8" class="intrnllnk">时间
)时间
。
还指定了一个成本矩阵。confirmedTracks
=跟踪器(<一个href="#mw_81a916cd-b7ae-4e99-8ae2-e81a544adc01" class="intrnllnk">检测
,<一个href="#sysobj_tracker_jpda_sep_mw_e1317a82-d69c-41a6-a73e-03809968aff8" class="intrnllnk">时间
,<一个href="#mw_7842d596-1c50-4759-9d6c-12c919b796d3" class="intrnllnk">costMatrix
)
要启用这种语法,设置HasCostMatrixInput
财产真正的
。
还指定了一系列预期可检测跟踪的confirmedTracks
=跟踪器(___,<一个href="#mw_4c24db32-8c06-499d-b3c9-a559956a32cb" class="intrnllnk">detectableTrackIDs
)detectableTrackIDs
。这个参数可用于任何以前的输入语法。
要启用这种语法,设置HasDetectableTrackIDsInput
财产真正的
。
(<一个href="#sysobj_tracker_jpda_sep_mw_50ddd73c-5a0e-4c3f-aeae-ae169b2a1ae4" class="intrnllnk">
返回一个初步跟踪列表和所有歌曲的列表。您可以使用任何输入参数的前面的语法。confirmedTracks
,<一个href="#sysobj_tracker_jpda_sep_mw_53235a2d-4540-463a-b589-a5bf13dbc6c7" class="intrnllnk">tentativeTracks
,<一个href="#sysobj_tracker_jpda_sep_mw_f8d81000-3499-493d-a597-c9f627ee803e" class="intrnllnk">allTracks
)=跟踪器(___)
(<一个href="#sysobj_tracker_jpda_sep_mw_50ddd73c-5a0e-4c3f-aeae-ae169b2a1ae4" class="intrnllnk">
也回报分析信息,可用于追踪分析。您可以使用任何输入参数的前面的语法。confirmedTracks
,<一个href="#sysobj_tracker_jpda_sep_mw_53235a2d-4540-463a-b589-a5bf13dbc6c7" class="intrnllnk">tentativeTracks
,<一个href="#sysobj_tracker_jpda_sep_mw_f8d81000-3499-493d-a597-c9f627ee803e" class="intrnllnk">allTracks
,<一个href="#mw_deb21687-bb96-4709-baa4-1ccd04a297ba" class="intrnllnk">analysisInformation
)=跟踪器(___)
输入参数
检测
- - - - - -检测列表
单元阵列的objectDetection
对象
检测列表,指定的单元阵列<一个href="//www.tatmou.com/help/fusion/ref/objectdetection.html">objectDetection
对象。的时间
属性值的objectDetection
对象必须是小于或等于当前更新时间,时间
,比前面的时间值用于更新追踪。此外,时间
不同的差异objectDetection
单元阵列中的对象不需要平等。
时间
- - - - - -更新的时间
标量
更新的时候,指定为一个标量。跟踪更新所有的追踪。单位是秒。
时间
必须大于或等于最大时间
属性值的<一个href="//www.tatmou.com/help/fusion/ref/objectdetection.html">objectDetection
对象的输入检测
列表。时间
必须增加的价值与每个更新的追踪。
数据类型:单
|双
costMatrix
- - - - - -成本矩阵
实值米——- - - - - -N矩阵
成本矩阵,指定为一个实值米——- - - - - -N矩阵,米是现有的数量跟踪在前面的更新,然后呢N是当前检测的数量。成本矩阵行必须位于同一个订单的列表,和列必须在相同的顺序检测的列表。获得正确的顺序列表的歌曲从第三输出参数,allTracks
当跟踪更新。
在第一次更新的追踪或者当追踪没有以前的跟踪,成本矩阵指定为空的大小[0,numDetections]
。必须注意成本以便降低成本指明一个更高的分配一个跟踪检测的可能性。为了防止某些检测被分配给特定的轨道,你可以设置适当的进入成本矩阵正
。
依赖关系
要启用这个论点,设置HasCostMatrixInput
财产真正的
。
数据类型:双
|单
detectableTrackIDs
- - - - - -可检测追踪id
实值米1的向量|实值米2矩阵
可检测追踪id,指定为一个实值米1的向量或米2矩阵。探测跟踪传感器会检测跟踪。矩阵的第一列包含一个追踪id列表,传感器可检测报告。可选的第二列允许您添加为每个跟踪检测概率。
不包括在铁轨的标识detectableTrackIDs
被认为是无法觉察的。在这种情况下,跟踪删除逻辑不计数的缺乏检测跟踪作为跟踪删除错过检测目的。
依赖关系
启用这个输入参数,设置detectableTrackIDs
财产真正的
。
数据类型:单
|双
输出参数
confirmedTracks
——确认跟踪
的数组objectTrack
|对象数组的结构
跟踪确认,作为一个数组返回<一个href="//www.tatmou.com/help/fusion/ref/objecttrack.html">objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。
跟踪确认,如果它满足确认阈值中指定ConfirmationThreshold
财产。在这种情况下,IsConfirmed
对象的属性或字段的结构真正的
。
数据类型:结构体
|对象
tentativeTracks
-初步跟踪
的数组objectTrack
|对象数组的结构
试探性的,作为一个数组返回<一个href="//www.tatmou.com/help/fusion/ref/objecttrack.html">objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。
跟踪是试探性的,如果它不满足确认阈值中指定ConfirmationThreshold
财产。在这种情况下,IsConfirmed
对象的属性或字段的结构假
。
数据类型:结构体
|对象
allTracks
——所有的跟踪
的数组objectTrack
|对象数组的结构
所有的歌曲,作为一个数组返回<一个href="//www.tatmou.com/help/fusion/ref/objecttrack.html">objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。所有曲目包括确认和试探性的痕迹。
数据类型:结构体
|对象
analysisInformation
——附加信息分析跟踪更新
结构
附加信息分析跟踪更新,作为一个结构返回。这种结构的字段有:
场 | 描述 |
OOSMDetectionIndices |
按顺序测量的指标跟踪器的当前步骤 |
TrackIDsAtStepBeginning |
当步骤开始追踪id。 |
CostMatrix |
成本分配矩阵。 |
UnassignedTracks |
IDs的未赋值的痕迹。 |
UnassignedDetections |
未赋值的检测的指标 |
集群 |
集群单元阵列的报告。 |
InitiatedTrackIDs |
IDs的追踪期间启动步骤。 |
DeletedTrackIDs |
IDs的痕迹删除步骤。 |
TrackIDsAtStepEnd |
追踪id步骤结束时。 |
MaxNumDetectionsPerCluster |
检测的最大数量在所有集群生成步骤。结构只有当你设置这个字段EnableMemoryManagement 财产“上” 。 |
MaxNumTracksPerCluster |
跟踪的最大数量在所有集群生成步骤。结构只有当你设置这个字段EnableMemoryManagement 财产“上” 。 |
OOSMHandling |
分析信息按顺序测量处理,作为一个结构返回。只有当结构返回这个字段 |
的集群
字段可以包括多个集群报告。每个集群的报告是一个结构,它包含:
场 | 描述 |
DetectionIndices |
集群检测的指标。 |
TrackIDs |
追踪id的集群。 |
ValidationMatrix |
验证集群的矩阵。看到<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda.jpdaevents.html">jpadEvents 为更多的细节。 |
SensorIndex |
指数的原始集群检测的传感器。 |
时间戳 |
意思是时间戳的集群检测。 |
MarginalProbabilities |
矩阵的边际概率后联合协会。 |
的OOSMHandling
结构包含这些字段:
场 | 描述 |
---|---|
DiscardedDetections |
丢弃的乱序执行检测的指标。OOSM是丢弃如果不是由指定的历史保存的状态MaxNumOOSMSteps 财产。 |
CostMatrix |
按顺序分配矩阵的检测成本。 |
集群 |
只有按顺序检测相关集群。 |
UnassignedDetections |
未赋值的指数按顺序检测。跟踪器创建新的追踪未赋值的乱序执行检测。 |
数据类型:结构体
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
特定于trackerJPDA
predictTracksToTime |
预测跟踪状态 |
getTrackFilterProperties |
获得跟踪滤波器性能 |
setTrackFilterProperties |
设置跟踪滤波器的属性 |
initializeTrack |
初始化新轨道 |
deleteTrack |
删除现有的跟踪 |
exportTo金宝appSimulink |
出口跟踪或跟踪熔化炉仿真软件模型金宝app |
例子
使用trackerJPDA跟踪两个对象
构造一个trackerJPDA对象和一个默认的恒定速度扩展卡尔曼滤波和“历史”跟踪逻辑。集AssignmentThreshold100允许共同跟踪相关。
追踪= trackerJPDA (“TrackLogic”,“历史”,“AssignmentThreshold”,100,…“ConfirmationThreshold”[4 - 5],…“DeletionThreshold”10 [10]);
指定的初始位置和速度两个对象。
pos_true = [0 0;40 -40;0 0];V_true = 5 * (cosd (-30) cosd (30);信德(-30)信德(30);0 0];
创建一个戏剧情节可视化跟踪和检测。
tp = theaterPlot (“XLimits”150年[1],“YLimits”,50 [-50]);trackP = trackPlotter (tp,“DisplayName的”,“跟踪”,“MarkerFaceColor”,‘g’,“HistoryDepth”,0);detectionP = detectionPlotter (tp,“DisplayName的”,“检测”,“MarkerFaceColor”,“r”);
获取位置和速度,位置和速度选择器。
positionSelector = [1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0 0);% (x, y, 0)velocitySelector = [0 1 0 0 0 0;0 0 0 1 0 0;0 0 0 0 0 0);% (vx v 0)
更新的跟踪检测,显示成本和边际概率协会信息,可视化跟踪与检测。
dt = 0.2;为时间= 0:dt: 30%更新对象的真实位置。pos_true = pos_true + V_true * dt;%创建两个对象的检测与噪音。检测(1)= objectDetection(时间、pos_true (: 1) + 1 * randn (3,1));检测(2)= objectDetection(时间,pos_true (:, 2) + 1 * randn (3,1));%一步通过时间和跟踪检测。[alltracks,证实,初步信息]=追踪(检测、时间);%提取位置,速度和标签信息。(pos机,x) = getTrackPositions(证实,positionSelector);韦尔= getTrackVelocities(证实,velocitySelector);量=猫(2,detection.Measurement);detection.MeasurementNoise measCov =猫(3日);%更新情节如果有任何痕迹。如果标签元素个数(确认)> 0 = arrayfun (@ (x) num2str ([x.TrackID]),确认,“UniformOutput”、假);trackP.plotTrack (pos、或者、浸、标签);结束measCov detectionP.plotDetection(量);drawnow;%显示每八的成本和边际概率分布%秒。如果时间> 0 & & mod(时间,8)= = 0 disp ([“在时间t = 'num2str(时间)“秒”,]);disp (的任务是:成本)disp (info.CostMatrix);disp ([集群的数量:num2str(元素个数(info.Clusters))));如果元素个数(info.Clusters) = = 1 disp (的两个轨道在同一集群”。)disp (的边际概率协会:“)disp (info.Clusters {1} .MarginalProbabilities)结束disp (“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”)结束结束
在时间t = 8秒,
分配的成本是:
1.0 e + 03 * 0.0020 1.1523 1.2277 0.0053
集群的数量:2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
在时间t = 16秒,
分配的成本是:
1.3968 4.5123 2.0747 1.9558
集群的数量:1
两轨道在同一集群。
协会的边际概率:
0.8344 0.1656 0.1656 0.8344 0.0000 0.0000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
在时间t = 24秒,
分配的成本是:
1.0 e + 03 * 0.0018 1.2962 1.2664 0.0013
集群的数量:2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
算法
跟踪逻辑流程
当一个JPDA追踪过程检测、跟踪创建和管理遵循这些步骤。
跟踪器由原始传感器检测分为多个组。
为每个传感器:
跟踪器计算距离检测现有的跟踪和形式
costMatrix
。跟踪创建一个验证矩阵根据赋值阈值(或门阈值)现有的痕迹。验证清单所有可能的矩阵是一个二进制矩阵detections-to-track关联。有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">可行联合事件。
跟踪和检测然后分为集群。集群可以包含一个或多个追踪追踪如果这些追踪共同检测在其验证盖茨。确认门是空间边界,预测检测的跟踪有很高的可能性下降。有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">可行联合事件。
更新所有集群后的顺序意味着检测集群中的时间戳。对于每个集群,追踪:
生成所有可行联合事件。有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ref/trackerjpda.jpdaevents.html">
jpdaEvents
。计算各关节的后验概率事件。
计算每个个体的边际概率detection-track对集群中。
弱信号检测报告。弱信号检测的检测验证大门内的至少一个轨道,但概率协会所有追踪不到
IntitializationThreshold
。更新跟踪集群中使用<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.correctjpda.html">
correctjpda
。
未赋值的检测(这些不是在任何集群)和弱信号检测生成新轨道。
跟踪检查所有跟踪来删除。删除跟踪基于扫描没有协会使用的数量
“历史”
使用逻辑或基于存在概率“集成”
跟踪逻辑。所有歌曲都将最新的时间价值(时间输入如果提供,或最新的意思是集群时间戳)。
可行联合事件
在典型的工作流跟踪系统,追踪需要确定检测可以与任何现有的痕迹。如果追踪者只维护一个跟踪,任务可以通过评估验证门在预测如果测量中测量和决定验证门。在测量空间,验证门是一个空间边界,如二维椭圆或三维椭球,集中在预测的测量。验证门使用概率定义的信息(例如,状态估计和协方差)现有的轨道,这样正确的或理想的检测有很高的可能性(例如,97%概率)在此验证门。
然而,如果一个跟踪维护多个追踪,数据关联过程变得更加复杂,因为一个检测可以属于多个轨道的验证盖茨。例如,在下图中,跟踪T1和T2积极维护跟踪,和他们每个人都有自己的验证。自检测D2盖茨的交叉验证的T1和T2,这两个轨道(T1和T2)相连,形成一个集群。集群是一组连接跟踪及其相关检测。
代表关联关系在一个集群中,验证矩阵是常用的。校验矩阵的每一行对应一个检测,而每一列对应一个跟踪。占每个检测的可能性被杂物,添加第一列,通常称为“跟踪0”或T0。如果检测D我在验证跟踪门Tj,(我,j+ 1)验证矩阵的条目是1。否则,它是零。集群所示图,验证矩阵Ω
注意所有Ω的第一列中的元素是1,因为任何检测可以混乱或假警报。逻辑中的一个重要步骤的联合概率数据关联(JPDA)是获取所有可行的独立联合事件在一个集群中。两个假设可行联合事件:
检测不能发出多个轨道。
轨道传感器无法检测到不止一次的在一个单一的扫描。
根据这两个假设,可以制定可行联合事件(fj)。每个FJE映射到一个FJE矩阵Ωp从最初的验证矩阵Ω。例如,验证矩阵Ω,八FJE矩阵可以得到:
作为一个直接后果的两个假设,Ωp矩阵每一行有一个“1”价值。此外,除了第一列映射到杂物,最多可以有每列的一个“1”。当连接跟踪数量的增长在一个集群中,FJE数量的增加迅速。的jpdaEvents
函数使用一个有效的深度优先搜索算法来生成所有可行联合事件矩阵。
引用
[1]Fortmann, T。,Y. Bar-Shalom, and M. Scheffe. "Sonar Tracking of Multiple Targets Using Joint Probabilistic Data Association."IEEE海洋工程》杂志上。第三卷。8日,1983年,页173 - 184。
[2]Musicki D。,和R。Evans. "Joint Integrated Probabilistic Data Association: JIPDA."IEEE航空航天和电子系统。40卷,3号,2004年,页1093 - 1099。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到<一个href="//www.tatmou.com/help/coder/ug/use-system-objects-in-matlab-code-generation.html" class="a">系统在MATLAB代码生成对象(MATLAB编码器)。
所有的检测使用多目标跟踪器必须具有相同属性的大小和类型。
如果你使用
ObjectAttributes
字段在一个<一个href="//www.tatmou.com/help/fusion/ref/objectdetection.html">objectDetection
对象,您必须指定这个领域作为一个包含一个结构单元。所有检测的结构必须具有相同的字段,这些字段的值必须总是有相同的大小和类型。在模拟的形式结构不能改变。如果
ObjectAttributes
中包含检测、SensorIndex
值不能大于10的检测。第一个更新多目标跟踪器必须包含至少一个检测。
跟踪器支持金宝app严格的单精度与这些限制代码生成:
你必须指定
MaxNumEvents
房地产作为一个有限的正整数。您必须指定过滤器的初始化函数返回<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.html">
trackingEKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingukf.html">trackingUKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingckf.html">trackingCKF
,或<一个href="//www.tatmou.com/help/fusion/ref/trackingimm.html">trackingIMM
对象配置为单精度。
有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ug/generate-code-with-strict-single-precision-and-non-dynamic-memory-allocation-from-SFTT.html" class="a">生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
跟踪器支持金宝app非动态的内存分配与这些限制代码生成:
你必须指定
MaxNumEvents
房地产作为一个有限的正整数。您必须指定过滤器的初始化函数返回<一个href="//www.tatmou.com/help/fusion/ref/trackingekf.html">
trackingEKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingukf.html">trackingUKF
,<一个href="//www.tatmou.com/help/fusion/ref/trackingckf.html">trackingCKF
,或<一个href="//www.tatmou.com/help/fusion/ref/trackingimm.html">trackingIMM
对象。你必须指定
MaxNumDetections
房地产作为一个有限的整数。
有关详细信息,请参见<一个href="//www.tatmou.com/help/fusion/ug/generate-code-with-strict-single-precision-and-non-dynamic-memory-allocation-from-SFTT.html" class="a">生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
使非动态内存分配的代码生成后,考虑使用这些属性来设置界限的局部变量跟踪:
EnableMemeryManagement
MaxNumDetectionsPerSensor
MaxNumDetectionsPerCluster
MaxNumTracksPerCluster
ClusterViolationHandling
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。