文档帮助中心
高斯混合(GM)博士滤波器
的gmphd对象是一个过滤器,实现了概率假设密度(PHD)使用混合高斯分量。该滤波器假设目标状态是高斯的,并使用高斯分量的混合来表示这些状态。你可以使用gmphd过滤器来跟踪扩展的对象或点目标。在跟踪,在每个传感器扫描至多一个拘留和扩展对象中的点对象的回报可以返回每个传感器扫描多次检测。
gmphd
你可以直接创建一个gmphd过滤。您也可以初始化gmphd过滤器使用trackerPHD通过指定FilterInitializationFcn的属性trackingSensorConfiguration。您可以使用提供的initcvgmphd,initctgmphd,initcagmphd和initctrectgmphd初始化函数。或者,您可以创建自己的初始化函数。
trackerPHD
FilterInitializationFcn
trackingSensorConfiguration
initcvgmphd
initctgmphd
initcagmphd
initctrectgmphd
博士= gmphd
博士学位= gmphd(州,stateCovariances)
stateCovariances博士= gmphd(国家名称,值)
博士= gmphd创建一个gmphd过滤器的默认属性值。
博士
博士= gmphd(国家,stateCovariances)允许指定的高斯分布的状态和相应的状态协方差在密度每个组件。州和stateCovariances设置状态和StateCovariances所述过滤器的性能。
博士= gmphd(国家,stateCovariances)
州
stateCovariances
状态
StateCovariances
例子
博士= gmphd(状态,stateCovariances,名称,值)还允许您使用一个或多个名称-值对为筛选器指定属性。将每个属性名括在引号中。
博士= gmphd(状态,stateCovariances,名称,值)
名称,值
全部展开
在过滤器中的每个组件的状态,指定为P——- - - - - -N矩阵,其中P状态的维数是N是组成部分的数量。该矩阵的每列对应于一个部件的状态。的默认值状态是6×2矩阵,其中,所述第一列中的元素都是0,并且第二列的元素都是1。
数据类型:单|双
单
双
状态估计滤波器中各分量的误差协方差,指定为P——- - - - - -P——- - - - - -N阵列,其中P状态的维数是N是组成部分的数量。每一页(P——- - - - - -P矩阵)对应于各分量的协方差矩阵。的默认值StateCovariances是一个6×6×2的数组,其中每个页面(6×6矩阵)是一个单位矩阵。
StateTransitionFcn
@constvel
状态转换函数,指定为函数句柄。这个函数计算时间步长的状态向量k从时间步长的状态向量k1。该函数还可以包含噪声值。
如果HasAdditiveProcessNoise是真正,指定使用下列语法之一的函数:
HasAdditiveProcessNoise
真正
x (k) = transitionfcn (x (k - 1))
X(K)= transitionfcn(X(K-1),dT)的
X(k)的
k
dT
如果HasAdditiveProcessNoise是假,指定使用下列语法之一的函数:
假
X(K)= transitionfcn(X(K-1),W(K-1))
x (k) = transitionfcn (x (k - 1), w (k - 1), dT)
w (k)
例子:@constacc
@constacc
数据类型:function_handle
function_handle
StateTransitionJacobianFcn
@constveljac
状态转换函数的雅可比矩阵,指定为函数句柄。此函数具有与状态转换函数相同的输入参数。
如果HasAdditiveProcessNoise是真正,指定使用这些语法之一的雅可比功能:
JX(K)= statejacobianfcn(X(k))的
Jx (k) = statejacobianfcn (x (k), dT)
Jx (k)
如果HasAdditiveProcessNoise是假,指定使用这些语法之一的雅可比功能:
(Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k))
(Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k), dT)
Jw (k)表示P——- - - - - -问预测状态相对于过程噪声元素的雅可比矩阵,其中P是状态的尺寸。
Jw (k)
如果未指定,则在每次调用时通过数值差分计算雅可比矩阵预测函数。这种计算会增加处理时间和数值精度。
预测
例子:@constaccjac
@constaccjac
ProcessNoise
(3)
过程噪声协方差:
当HasAdditiveProcessNoise是真正中,指定过程噪声协方差为实值标量或正定P——- - - - - -P矩阵。P是状态矢量的维数。如果指定为标量,基质是的倍数P——- - - - - -P单位矩阵。
当HasAdditiveProcessNoise是假中,指定过程噪声协方差作为问——- - - - - -问矩阵。问是处理噪声矢量的大小。您必须指定ProcessNoise在任何调用之前预测目标函数。
例子:[1.0 0.05;0.05 2]
[1.0 0.05;0.05 2]
可选择将过程噪声作为添加剂进行建模,指定为真正要么假。当这个属性是真正,过程噪声被添加到状态向量。否则,噪声被引入到状态转换函数。
例子:真正
HasExtent
指示组件是否具有范围,指定为真正要么假。将此属性设置为真正如果过滤器的目的是跟踪扩展对象。扩展对象可以产生多于一个的测量每个传感器扫描。将此属性设置为假如果过滤器仅用于跟踪点目标。
MeasurementOrigin
“中心”
'程度'
来自扩展对象的测量的起源,具体如下:
“中心”-过滤器假设测量来自目标的平均状态。这种方法适用于当状态没有对目标的范围建模时,即使目标可能生成多个度量。
'程度'- 过滤器假定测量不是在目标的平均状态居中。为了计算效率,期望的测量通常计算为测量模型函数中指定的报告的测量结果的函数。
需要注意的是该功能的设置MeasurementFcn和MeasurementJacobianFcn对于不同“中心”和'程度'选项。参见MeasurementFcn和MeasurementJacobianFcn更多细节。
MeasurementFcn
MeasurementJacobianFcn
若要启用此属性,请设置HasExtent财产'真正'。
'真正'
数据类型:双
标签
[0 0]
混合物中各成分的标签,用1-by-表示N非负整数的行向量。N是混合物中组分的数量。每个组件只能有一个标签,但是多个组件可以共享同一个标签。
例子:(1 2 3)
(1 2 3)
权重
[1]
在该混合物中各组分的重量,指定为1逐N正实值的行向量。N是混合物中组分的数量。各组分的重量以相同的顺序作为所述给定标签财产。
例子:(1.1 0.82 1.1)
(1.1 0.82 1.1)
检测
objectDetection
探测,指定为aD的 - 元素单元阵列objectDetection对象。可以直接创建的检测,也可以从传感器对象的输出,例如获得的检测radarSensor,monostaticRadarSensor,irSensor和sonarSensor。
radarSensor
monostaticRadarSensor
irSensor
sonarSensor
@cvmeas
度量模型函数,指定为函数句柄。此函数指定从状态到度量的转换。根据HasExtent和MeasurementOrigin属性,所述测量模型函数需要被不同地指定:
HasExtent是假, 要么HasExtent是真正和MeasurementOrigin是“中心”。在这两个例子中,
如果HasAdditiveMeasurementNoise是真正,指定使用下列语法之一的函数:
HasAdditiveMeasurementNoise
z = measurementfcn (x)
Z = measurementfcn(X,参数)
x
X(:,i)的
我
z
Z(:,i)的
参数
MeasurementParameters
objectDetections
如果HasAdditiveMeasurementNoise是假,指定使用下列语法之一的函数:
z = measurementfcn (x, v)
Z = measurementfcn(X,V,参数)
v
HasExtent是真正和MeasurementOrigin是'程度'。在这种情况下,预期的测量来自目标的范围,并依赖于探测的实际分布:
如果HasAdditiveMeasurementNoise是真正使用指定的函数:
z = measurementfcn (x,检测)
z (:, i, j)
j
如果HasAdditiveMeasurementNoise是假使用指定的函数:
Z = measurementfcn(X,V,检测)
z = measure rementfcn (x,para)
Z = measurementfcn(X,V,对位)
X(:,i)的代表我在混合物个状态组分。Z(:,i)的表示的度量结果我组件。
X(:,i)的代表我在混合物个状态组分。z (:, i, j)必须返回基于?的预期度量值我个状态组分和jthobjectDetection在检测。
@cvmeasjac
测量函数的雅可比矩阵,指定为函数句柄。根据HasExtent和MeasurementOrigin性质,测量雅可比功能需要被不同地指定:
HasExtent是假, 要么HasExtent是真正和MeasurementOrigin是“中心”。在这两种情况下:
如果HasAdditiveMeasurmentNoise是真正,指定使用这些语法之一的雅可比功能:
HasAdditiveMeasurmentNoise
JMX = measjacobianfcn(x)的
JMX = measjacobianfcn(X,参数)
Jmx
如果HasAdditiveMeasurmentNoise是假,指定使用这些语法之一的雅可比功能:
[JMX,JMV] = measjacobianfcn(X,V)
[Jmx, Jmv] = measjacobianfcn (x, v,参数)
Jmv
HasExtent是真正和MeasurementOrigin是'程度'。在这种情况下,预期的测量源于目标的范围,并依赖于探测的实际分布。测量雅可比函数必须支持以下两种语法之一:万博1manbetx
如果HasAdditiveMeasurmentNoise是真正,用
JMX = measjacobianfcn(X,检测)
如果HasAdditiveMeasurmentNoise是假,用
[Jmx, Jmv] = measjacobianfcn (x, v,检测)
请注意,Jmx (:,:, j)必须定义对应于?的状态雅可比矩阵jthobjectDetection在检测。Jmv (:,:, j)定义了对应于的测量噪声雅可比矩阵jthobjectDetection在检测。
Jmx (:,:, j)
Jmv (:,:, j)
Jmx = measjacobianfcn (x, para)
[Jmx, Jmv] = measjacobianfcn (x, v, para)
Jmx (:,:, j)定义对应于雅可比的状态jthobjectDetection在检测。Jmv (:,:, j)定义了对应于的测量噪声雅可比矩阵jthobjectDetection在检测。
选择模型测量噪声作为添加剂,指定为真正要么假。当这个属性是真正,测量噪声被添加到状态向量。否则,噪声被引入到测量功能。
MaxNumDetections
1000
最大探测次数gmphd过滤器可作为输入,指定为一个正整数。
例子:50
50
MaxNumComponents
组件的最大数目gmphd可维护滤波器,指定为正整数。
correctUndetected
正确的
可能性
附加
合并
规模
修剪
labeledDensity
extractState
克隆
全部收缩
创建一个过滤器与两个三维恒定速度的组成部分。一个分量的初始状态是[0;0;0;0;0;0;0]。另一个分量的初始状态是[1;0;1;0;1;0]。每个分量初始化时,位置协方差等于1,速度协方差等于100。
状态= [零(6,1)[1; 0; 1; 0; 1; 0]];COV1 = DIAG([1 100 1 100 1 100]);协方差=猫(3,COV1,COV1);博士学位= gmphd(州,协方差,'StateTransitionFcn',@constvel,…“StateTransitionJacobianFcn”@constveljac,…“MeasurementFcn”@cvmeas,…“MeasurementJacobianFcn”@cvmeasjac,…“ProcessNoise”,眼(3),…'HasAdditiveProcessNoise',假);
预测滤波器提前0.1时间步长。
预测(博士,0.1);
定义三个检测使用ojbectDetection。
ojbectDetection
rng (2019);检测=细胞(3,1);检测{1}= objectDetection(0,[1;1;1] + randn(3,1));检测{2}= objectDetection(0,[0;0;0] + randn(3,1));检测{3}= objectDetection(0,[4;5;5] + randn(3,1));博士学位。Detections = detections;
计算每个检测的可能性。对于点目标滤波器,检测的划分是不必要的,每个检测占用一个单元。因此,detectionIndices是单位矩阵。结果检测1和2的可能性比检测3的可能性高,因为它们更接近组件。
detectionIndices
detectionIndices =逻辑(眼(3));detectionIndices logLikelihood =可能性(博士)
logLikelihood =2×3-5.2485 -4.7774 -22.8899 -4.5171 -5.0008 -17.3973
更正与经缩放的似然性的过滤器。
lhood = EXP(对数似然);lhood = lhood./sum(lhood,2);正确(博士,detectionIndices,lhood);
合并各组分与合并阈值等于1。
合并(博士,1);
提取阈值等于0.5的状态估计。
minWeight = 0.5;targetStates = extractState(博士,minWeight);[TS1,TS2] = targetStates.State;
可视化的结果。
%提取测量。d =[检测{}):;测量= [d.Measurement];绘制测量值和估计值。图()plot3(测量(1,:),测量(2,:),测量(3,:),“x”,'MarkerSize'10,“MarkerEdgeColor”,“b”);保持上;plot3(壹空间(1),壹空间(3),壹空间(5),“罗”);保持上;plot3 (ts2 (1), ts2 (3), ts2 (5),“罗”);包含(“x”)ylabel('Y')zlabel ('Z')保持上;传说(“检测项”,'组件')
Vo, B. -T, W. K. Ma。"高斯混合概率假设密度滤波器"IEEE TRANSACTIONS ON信号处理,第54卷,第11期,第4091-4104页,2006年。
[2] Granstrom, Karl, Christian Lundquist和Omut Orguner。”使用高斯混合PHD滤波器扩展目标跟踪。《IEEE航空航天与电子系统汇刊》第48期。4 (2012):3268 - 3286。
使用说明及限制:
代码生成配置必须允许递归使用合并方法。
ggiwphd|initcagmphd|initctgmphd|initctrectgmphd|initcvgmphd|partitionDetections|trackerPHD|trackingSensorConfiguration
ggiwphd
partitionDetections
您的系统中存在此示例的修改版本。你想打开这个版本吗?
你点击了一个链接,对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入该命令来运行它。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站来获取可用的翻译内容,并查看本地事件和报价。根据你的位置,我们建议你选择:。
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文),以获得最佳的网站表现。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系你当地的办公室
得到审判现在