objectDetection
描述
一个objectDetection
对象包含一个对象获得的检测报告,是一个对象的传感器。您可以使用objectDetection
追踪器等作为输入输出radarTracker
。
创建
描述
输入参数
时间
- - - - - -检测时间
非负实数
检测时间,指定为一个非负实数。这个参数设置时间
财产。
测量
- - - - - -测量对象
实值N元向量
测量对象,指定为一个实值N元向量,N是测量向量的维数。这个参数设置测量
财产。
如果你使用objectDetection
自定义过滤器的初始化函数,您可以定义测量以任何格式一样沿着同意过滤器定义。
如果你使用objectDetection
内置过滤器的初始化等功能initcvekf
测量定义遵循这些规则。
为一个完整的3 d位置测量直角坐标系,一般的形式是(
x y z
]。如果你想包括速度测量(x y z vx v vz
),您必须指定HasVelocity
字段MeasurementParameters
财产真正的
。请注意
一些滤波器初始化等功能
initcvkf
可以接受一个一维测量的形式x
或二维测量的形式(x y
]。指定一个测量球面坐标系统,
框架
字段MeasurementParameters
属性必须“球”
。一个完整的三维球面测量的一般形式(方位elevaton rangeRate范围)
。让一个过滤器解释这样一个三维球面测量,指定HasAzimuth
,HasElevation
,HasRange
,HasVelocity
字段MeasurementParameters
财产所有真正的
。删除
方位
从完整的三维球面测量,集HasAzimuth
来假
。删除
海拔高度
从完整的三维球面测量,集HasElevation
来假
。删除
范围
从完整的三维球面测量,集HasRange
来假
。删除
rangeRate
从完整的三维球面测量,集HasVelocity
来假
。
更多细节,请参阅检测转换成objectDetection格式和初始化使用objectDetection跟踪滤波器的例子。
输出参数
检测
-检测报告
objectDetection
对象
检测报告为一个对象,作为一个返回objectDetection
对象。一个objectDetection
对象包含这些属性:
财产 | 定义 |
---|---|
时间 |
测量时间 |
测量 |
对象的测量 |
MeasurementNoise |
测量噪声协方差矩阵 |
SensorIndex |
传感器的惟一ID |
ObjectClassID |
对象分类 |
MeasurementParameters |
所使用的参数初始化函数的非线性卡尔曼跟踪滤波器 |
ObjectAttributes |
额外的信息传递给跟踪 |
属性
时间
- - - - - -检测时间
非负实数
检测时间,指定为一个非负实数。你不能将此属性设置为一个名称-值对。使用时间
输入参数。
例子:5.0
数据类型:双
测量
- - - - - -测量对象
实值N元向量
测量对象,指定为一个实值N元向量。你不能将此属性设置为一个名称-值对。使用测量
输入参数。
例子:[1.0,-3.4]
数据类型:双
|单
MeasurementNoise
- - - - - -测量噪声协方差
标量|真正的半正定对称N——- - - - - -N矩阵
测量噪声协方差,指定为一个标量或一个真正的半正定对称N——- - - - - -N矩阵。N在测量向量元素的数量。对于标量情况,矩阵是一个正方形对角线N——- - - - - -N测量矩阵具有相同的数据解释。
例子:(5.0,1.0,1.0,10.0)
数据类型:双
|单
SensorIndex
- - - - - -传感器标识符
1
|正整数
传感器标识符指定为一个正整数。传感器标识符可以区分不同的传感器,传感器必须是唯一的。
例子:5
数据类型:双
ObjectClassID
- - - - - -对象类标识符
0
(默认)|非负整数
对象类标识符指定为一个非负整数。使用这个属性来区分检测产生不同类型的对象。例如,使用1对象类型的“车”,和2“行人”类型的对象。的值0
表示一个未知的对象类型。
这个属性指定为一个非零的整数时,您可以使用ObjectClassParameters
属性指定检测分类器统计数据。
例子:1
数据类型:双
ObjectClassParameters
- - - - - -参数检测分类器
[]
(默认)|结构
为检测分类器参数,指定为一个结构。结构可以包含任何领域。类与多目标跟踪融合,如trackerGNN
(传感器融合和跟踪工具箱)系统对象,你可以指定ConfusionMatrix
字段,如下所示。
字段名 | 描述 |
---|---|
ConfusionMatrix |
混淆矩阵的检测分类器,指定为一个N——- - - - - -N实值矩阵,N的数量是可能的对象类。(我,j)矩阵的元素代表的重量或概率分类器分类检测类j如果真正的检测类的类我。 例如,如果两个类分类器输出,使正确的分类95%的时间,指定这个矩阵 |
数据类型:结构体
MeasurementParameters
- - - - - -测量函数参数
{}
(默认)|结构数组|细胞包含结构数组|单元阵列
测量从过滤器状态转换到测量的函数参数,指定为一个结构数组,一个细胞包含一个结构数组,或一个单元阵列。
当你使用一个自定义跟踪滤波器测量功能,您可以定义测量以任何格式一样沿着同意的定义自定义测量功能。
当你使用一个内置的测量功能,如cvmeas
和ctmeas
跟踪滤波器,您可以使用一个结构,这些字段定义测量矩形或球面坐标系。
场 | 描述 | 例子 |
---|---|---|
框架 |
帧用来测量报告,指定这些值之一:
|
“球” |
OriginPosition |
位置偏移的坐标系相对于父坐标系的原点,指定为一个[x y z] 实值向量。 |
(0 0 0) |
OriginVelocity |
速度补偿的坐标系相对于父坐标系的原点,指定为一个(vx v vz) 实值向量。 |
(0 0 0) |
取向 |
框架旋转矩阵,3×3实值指定为正交矩阵。 | [1 0 0;0 1 0;0 0 1] |
HasAzimuth |
逻辑标量指示是否包括在测量方位。 这个领域不相关时 |
1 |
HasElevation |
逻辑标量表示如果高程信息包含在测量。测量报告的一个矩形框架,如果HasElevation 是假的,高程的测量报告假设0度。 |
1 |
HasRange |
逻辑标量指示是否包括在测量范围。 这个领域不相关时 |
1 |
HasVelocity |
逻辑标量表示,如果检测报告包括速度测量。测量报告的矩形框架,如果HasVelocity 是假 ,测量报告[x y z] 。如果HasVelocity 是真正的 据测量,[x y z vx v vz] 。球面坐标系的测量报告,如果HasVelocity 是真正的 ,测量数据包含的信息。 |
1 |
IsParentToChild |
逻辑标量表示如果取向 执行一个框架给孩子从父坐标系旋转坐标系。当IsParentToChild 是假 ,然后取向 执行一个框架从孩子坐标系旋转到父坐标系。 |
0 |
使用的更多细节MeasurementParameters
,请参阅
初始化使用objectDetection跟踪滤波器初始化跟踪滤波器的例子。
检测转换成objectDetection格式示例定义一个
objectDetection
对象,尤其是对多个坐标转换使用测量参数的数组结构。
ObjectAttributes
- - - - - -对象属性
{}
(默认)|单元阵列|结构数组
通过追踪对象属性,指定为一个细胞数组或一个结构数组。这些属性被添加到的输出radarTracker
而不是使用的追踪。
例子:{(10年,20年,50100年),“radar1”}
例子:结构(myProperty, 2)
例子
创建检测位置测量
创建一个从一个位置测量检测。一秒钟的检测是在一个时间戳的位置测量(100;250;10)
在笛卡尔坐标。
检测= objectDetection (1, (100; 250; 10))
检测与属性= objectDetection:时间:1测量:x1双[3]MeasurementNoise: [3 x3双]SensorIndex: 1 ObjectClassID: 0 ObjectClassParameters: [] MeasurementParameters: {} ObjectAttributes: {}
创建与测量噪声检测
创建一个objectDetection
从时间和位置测量。检测是由一秒一次的测量对象的位置(100;250;10)
。添加测量噪声和设置其他属性使用名称-值对。
检测= objectDetection (1 (100; 250; 10)“MeasurementNoise”10…“SensorIndex”,1“ObjectAttributes”,{的实例对象5})
检测与属性= objectDetection:时间:1测量:x1双[3]MeasurementNoise: [3 x3双]SensorIndex: 1 ObjectClassID: 0 ObjectClassParameters: [] MeasurementParameters: {} ObjectAttributes:{“示例对象”[5]}
初始化跟踪滤波器使用objectDetection
您可以使用一个objectDetection
对象初始化跟踪滤波器。
初始化恒定的速度trackingKF
与矩形检测
初始化一个trackingKF
对象以一个恒定的速度模型,您可以使用initcvkf
函数。
创建一个二维对象检测和初始化一个trackingKF
使用检测对象。
检测= objectDetection (0, 2 [1]);过滤器= initcvkf(检测);filter.State”
ans =1×41 0 2 0
从结果,initcvkf
函数识别系统的维数和初始化一个二维滤波器的状态是(x vx y v
),设置速度vx
和v
来0
。
你也可以初始化一个3 dtrackingKF
通过使用3 d对象检测对象。
检测= objectDetection (0, (1 2 3));过滤器= initcvkf(检测);filter.State”
ans =1×61 0 2 0 3 0
从结果,initcvkf
函数初始化一个三维滤波器的状态是(x vx y v z vz
]。
初始化恒定的速度trackingEKF
与矩形检测
初始化一个trackingEKF
对象以一个恒定的速度模型,您可以使用initcvekf
函数。的initcvekf
函数需要三维检测,总是初始化一个3 dtrackingEKF
对象。
创建一个3 d对象检测和初始化trackingEKF
与检测对象。
检测= objectDetection (0, (1 2 3));过滤器= initcvekf(检测);filter.State”% [x vx y v z vz]
ans =1×61 0 2 0 3 0
从结果,函数假设零速度时不明。您还可以包括速度信息的测量检测。让使用测量参数initcvekf
通过设置函数识别速度状态HasVelocity
字段作为真正的
。
议员= =结构(框架“矩形”,…OriginPosition = 0 (1、3)…OriginVelocity = 0 (1、3)…眼睛定位= (3),…HasVelocity = true,…IsParentToChild = true);检测= objectDetection (0, 1 2 3 0.1 0.2 0.3,…MeasurementParameters = mp);过滤器= initcvekf(检测);filter.State”% [x vx y v z vz]
ans =1×61.0000 0.1000 2.0000 0.2000 3.0000 0.3000
从结果,成功初始化速度的函数。
初始化恒定的速度trackingEKF
与球面检测
你也可以初始化一个trackingEKF
球面检测对象。首先,创建一个球面检测45度的方位,海拔60度,和一个2米的范围。指定其测量参数来描述测量的格式。
议员= =结构(框架“球”,…OriginPosition = 0 (1、3)…OriginVelocity = 0 (1、3)…眼睛定位= (3),…HasAzimuth = true,…HasElevation = true,…HasRange = true,…HasVelocity = false,…IsParentToChild = true);检测= objectDetection (0 [45 60 2]…MeasurementParameters = mp);过滤器= initcvekf(检测);filter.State”% [x vx y v z vz]
ans =1×61.7321 0.7071 0.7071 0 0 0
从过滤结果,按预期状态和位置坐标是( ]。
您还可以使数据与测量通过设置HasVelocity
场的测量参数真正的
。之后,将数据设为0.2 m / s的检测。
议员= =结构(框架“球”,…OriginPosition = 0 (1、3)…OriginVelocity = 0 (1、3)…眼睛定位= (3),…HasAzimuth = true,…HasElevation = true,…HasRange = true,…HasVelocity = true,…IsParentToChild = true);检测= objectDetection (0, (45 60 2 0.2),…MeasurementParameters = mp);过滤器= initcvekf(检测);filter.State”% [x vx y v z vz]
ans =1×60.7071 0.0707 0.7071 0.0707 1.7321 0.1732
从结果,该函数初始化过滤器与预期的速度。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
当通过一个objectDetection
对象追踪,ObjectAttributes
属性必须指定为一个结构或一个结构数组,不得指定为一个细胞。
版本历史
介绍了R2021aR2022b:指定类混淆矩阵
使用新的ObjectClassParameters
属性,可以指定检测类统计的形式混淆矩阵。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。