主要内容

objectDetection

针对单一对象检测报告

自从R2021a

描述

一个objectDetection对象包含一个对象获得的检测报告,是一个对象的传感器。您可以使用objectDetection追踪器等作为输入输出radarTracker

创建

描述

例子

检测= objectDetection (时间,测量)创建一个对象检测在指定的时间从指定的测量

提示

创建一个空的objectDetection对象,使用objectDetection.empty ()

例子

检测= objectDetection (___,名称,值)创建一个检测对象与属性指定为一个或多个名称,值对参数。任何未指定的属性有默认值。你不能指定时间测量属性的使用名称,值对。

输入参数

全部展开

检测时间,指定为一个非负实数。这个参数设置时间财产。

测量对象,指定为一个实值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对象包含这些属性:

财产 定义
时间 测量时间
测量 对象的测量
MeasurementNoise 测量噪声协方差矩阵
SensorIndex 传感器的惟一ID
ObjectClassID 对象分类
MeasurementParameters 所使用的参数初始化函数的非线性卡尔曼跟踪滤波器
ObjectAttributes 额外的信息传递给跟踪

属性

全部展开

检测时间,指定为一个非负实数。你不能将此属性设置为一个名称-值对。使用时间输入参数。

例子:5.0

数据类型:

测量对象,指定为一个实值N元向量。你不能将此属性设置为一个名称-值对。使用测量输入参数。

例子:[1.0,-3.4]

数据类型:|

测量噪声协方差,指定为一个标量或一个真正的半正定对称N——- - - - - -N矩阵。N在测量向量元素的数量。对于标量情况,矩阵是一个正方形对角线N——- - - - - -N测量矩阵具有相同的数据解释。

例子:(5.0,1.0,1.0,10.0)

数据类型:|

传感器标识符指定为一个正整数。传感器标识符可以区分不同的传感器,传感器必须是唯一的。

例子:5

数据类型:

对象类标识符指定为一个非负整数。使用这个属性来区分检测产生不同类型的对象。例如,使用1对象类型的“车”,和2“行人”类型的对象。的值0表示一个未知的对象类型。

这个属性指定为一个非零的整数时,您可以使用ObjectClassParameters属性指定检测分类器统计数据。

例子:1

数据类型:

为检测分类器参数,指定为一个结构。结构可以包含任何领域。类与多目标跟踪融合,如trackerGNN(传感器融合和跟踪工具箱)系统对象,你可以指定ConfusionMatrix字段,如下所示。

字段名 描述
ConfusionMatrix

混淆矩阵的检测分类器,指定为一个N——- - - - - -N实值矩阵,N的数量是可能的对象类。(,j)矩阵的元素代表的重量或概率分类器分类检测类j如果真正的检测类的类

例如,如果两个类分类器输出,使正确的分类95%的时间,指定这个矩阵[0.95 - 0.05;0.05 - 0.95)

数据类型:结构体

测量从过滤器状态转换到测量的函数参数,指定为一个结构数组,一个细胞包含一个结构数组,或一个单元阵列。

当你使用一个自定义跟踪滤波器测量功能,您可以定义测量以任何格式一样沿着同意的定义自定义测量功能。

当你使用一个内置的测量功能,如cvmeasctmeas跟踪滤波器,您可以使用一个结构,这些字段定义测量矩形或球面坐标系。

描述 例子
框架

帧用来测量报告,指定这些值之一:

  • “矩形”——检测报告在直角坐标系中。

  • “球”——在球坐标检测报告。

“球”
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,请参阅

通过追踪对象属性,指定为一个细胞数组或一个结构数组。这些属性被添加到的输出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对象初始化跟踪滤波器。

初始化恒定的速度trackingKF与矩形检测

初始化一个trackingKF对象以一个恒定的速度模型,您可以使用initcvkf函数。

创建一个二维对象检测和初始化一个trackingKF使用检测对象。

检测= objectDetection (0, 2 [1]);过滤器= initcvkf(检测);filter.State”
ans =1×41 0 2 0

从结果,initcvkf函数识别系统的维数和初始化一个二维滤波器的状态是(x vx y v),设置速度vxv0

你也可以初始化一个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

从过滤结果,按预期状态和位置坐标是( 2 2 2 2 3 ]。

您还可以使数据与测量通过设置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

从结果,该函数初始化过滤器与预期的速度。

扩展功能

版本历史

介绍了R2021a

全部展开