objectDetection

Report for single object detection

Description

An objectDetection object contains an object detection report that was obtained by a sensor for a single object. You can use the objectDetection output as the input to trackers such as multiObjectTracker.

Creation

Description

example

detection = objectDetection(time,measurement) creates an object detection at the specified time from the specified measurement.

example

detection = objectDetection(___,Name,Value) creates a detection object with properties specified as one or more Name,Value pair arguments. Any unspecified properties have default values. You cannot specify the Time or Measurement properties using Name,Value pairs.

Input Arguments

expand all

Detection time, specified as a nonnegative real scalar. This argument sets the Time property.

Object measurement, specified as a real-valued N-element vector. N is determined by the coordinate system used to report detections and other parameters that you specify in the MeasurementParameters property for the objectDetection object.

This argument sets the Measurement property.

Output Arguments

expand all

Detection report for a single object, returned as an objectDetection object. An objectDetection object contains these properties:

PropertyDefinition
TimeMeasurement time
MeasurementObject measurements
MeasurementNoiseMeasurement noise covariance matrix
SensorIndexUnique ID of the sensor
ObjectClassIDObject classification
MeasurementParametersParameters used by initialization functions of nonlinear Kalman tracking filters
ObjectAttributesAdditional information passed to tracker

Properties

expand all

Detection time, specified as a nonnegative real scalar. You cannot set this property as a name-value pair. Use the time input argument instead.

Example: 5.0

Data Types: double

Object measurement, specified as a real-valued N-element vector. You cannot set this property as a name-value pair. Use the measurement input argument instead.

Example: [1.0;-3.4]

Data Types: double | single

Measurement noise covariance, specified as a scalar or a real positive semi-definite symmetric N-by-N matrix. N is the number of elements in the measurement vector. For the scalar case, the matrix is a square diagonal N-by-N matrix having the same data interpretation as the measurement.

Example: [5.0,1.0;1.0,10.0]

Data Types: double | single

Sensor identifier, specified as a positive integer. The sensor identifier lets you distinguish between different sensors and must be unique to the sensor.

Example: 5

Data Types: double

Object class identifier, specified as a positive integer. Object class identifiers distinguish between different kinds of objects. The value 0 denotes an unknown object type. If the class identifier is nonzero, multiObjectTracker immediately creates a confirmed track from the detection.

Example: 1

Data Types: double

Measurement function parameters, specified as a structure array, a cell containing a structure array, or a cell array. The property contains all the arguments used by the measurement function specified by the MeasurementFcn property of a nonlinear tracking filter such as trackingEKF or trackingUKF.

The table shows sample fields for the MeasurementParameters structures.

FieldDescriptionExample
Frame

Frame used to report measurements, specified as one of these values:

  • 'rectangular' — Detections are reported in rectangular coordinates.

  • 'spherical' — Detections are reported in spherical coordinates.

'spherical'
OriginPositionPosition offset of the origin of the frame relative to the parent frame, specified as an [x y z] real-valued vector.[0 0 0]
OriginVelocityVelocity offset of the origin of the frame relative to the parent frame, specified as a [vx vy vz] real-valued vector.[0 0 0]
OrientationFrame rotation matrix, specified as a 3-by-3 real-valued orthonormal matrix.[1 0 0; 0 1 0; 0 0 1]
HasAzimuthLogical scalar indicating if azimuth is included in the measurement.1
HasElevationLogical scalar indicating if elevation is included in the measurement. For measurements reported in a rectangular frame, and if HasElevation is false, the reported measurements assume 0 degrees of elevation.1
HasRangeLogical scalar indicating if range is included in the measurement.1
HasVelocityLogical scalar indicating if the reported detections include velocity measurements. For measurements reported in the rectangular frame, if HasVelocity is false, the measurements are reported as [x y z]. If HasVelocity is true, measurements are reported as [x y z vx vy vz].1
IsParentToChildLogical scalar indicating if Orientation performs a frame rotation from the parent coordinate frame to the child coordinate frame. When IsParentToChild is false, then Orientation performs a frame rotation from the child coordinate frame to the parent coordinate frame.0

Object attributes passed through the tracker, specified as a cell array. These attributes are added to the output of the multiObjectTracker but not used by the tracker.

Example: {[10,20,50,100],'radar1'}

Examples

collapse all

Create a detection from a position measurement. The detection is made at a timestamp of one second from a position measurement of [100;250;10] in Cartesian coordinates.

detection = objectDetection(1,[100;250;10])
detection = 
  objectDetection with properties:

                     Time: 1
              Measurement: [3x1 double]
         MeasurementNoise: [3x3 double]
              SensorIndex: 1
            ObjectClassID: 0
    MeasurementParameters: {}
         ObjectAttributes: {}

Create an objectDetection from a time and position measurement. The detection is made at a time of one second for an object position measurement of [100;250;10]. Add measurement noise and set other properties using Name-Value pairs.

detection = objectDetection(1,[100;250;10],'MeasurementNoise',10, ...
    'SensorIndex',1,'ObjectAttributes',{'Example object',5})
detection = 
  objectDetection with properties:

                     Time: 1
              Measurement: [3x1 double]
         MeasurementNoise: [3x3 double]
              SensorIndex: 1
            ObjectClassID: 0
    MeasurementParameters: {}
         ObjectAttributes: {'Example object'  [5]}

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2017a