Main Content

selectLabelsBySignalType

Select multisignal ground truth labels by signal type

Description

example

gtLabel = selectLabelsBySignalType(gTruth,signalTypes) selects labels of the signal types specified by signalTypes from a groundTruthMultisignal object, gTruth. The function returns a corresponding groundTruthMultisignal object, gtLabel, that contains only the selected labels. If gTruth is a vector of groundTruthMultisignal objects, then the function returns a vector of corresponding groundTruthMultisignal objects that contain only the selected labels.

Examples

collapse all

Select ground truth labels from a groundTruthMultisignal object by specifying a signal type.

Load a groundTruthMultisignal object containing ROI and scene label data for a video and corresponding lidar point cloud sequence. The helper function used to load this object is attached to the example as a supporting file.

gTruth = helperLoadGTruthVideoLidar;

Inspect the label definitions. The object contains definitions for image, point cloud, and time signals.

gTruth.LabelDefinitions
ans =

  5x7 table

      Name       SignalType    LabelType       Group        Description     LabelColor      Hierarchy  
    _________    __________    _________    ____________    ___________    ____________    ____________

    {'car'  }    Image         Rectangle    {'Vehicles'}    {0x0 char}     {1x3 double}    {1x1 struct}
    {'car'  }    PointCloud    Cuboid       {'Vehicles'}    {0x0 char}     {1x3 double}    {1x1 struct}
    {'truck'}    Image         Rectangle    {'Vehicles'}    {0x0 char}     {1x3 double}    {0x0 double}
    {'truck'}    PointCloud    Cuboid       {'Vehicles'}    {0x0 char}     {1x3 double}    {0x0 double}
    {'sunny'}    Time          Scene        {'None'    }    {0x0 char}     {1x3 double}    {0x0 double}

Inspect the ROI labels. The object contains labels for the lidar point cloud sequence and the video.

gTruth.ROILabelData
ans = 

  ROILabelData with properties:

    video_01_city_c2s_fcw_10s: [204x2 timetable]
                lidarSequence: [34x2 timetable]

Create a new groundTruthMultisignal object that contains labels for only point cloud signals.

signalTypes = vision.labeler.loading.SignalType.PointCloud;
gtLabel = selectLabelsBySignalType(gTruth,signalTypes);

For the original and new objects, inspect the first five rows of label data for the lidar point cloud sequence. Because lidar signals are of type PointCloud, the new object contains the same label data for the lidar sequence as the original object.

lidarLabels = gTruth.ROILabelData.lidarSequence;
lidarLabelsSelection = gtLabel.ROILabelData.lidarSequence;

numrows = 5;
head(lidarLabels,numrows)
head(lidarLabelsSelection,numrows)
ans =

  5x2 timetable

       Time            car            truck    
    ___________    ____________    ____________

    0 sec          {1x1 struct}    {1x0 struct}
    0.29926 sec    {1x1 struct}    {1x0 struct}
    0.59997 sec    {1x1 struct}    {1x0 struct}
    0.8485 sec     {1x1 struct}    {1x0 struct}
    1.1484 sec     {1x1 struct}    {1x0 struct}


ans =

  5x2 timetable

       Time            car            truck    
    ___________    ____________    ____________

    0 sec          {1x1 struct}    {1x0 struct}
    0.29926 sec    {1x1 struct}    {1x0 struct}
    0.59997 sec    {1x1 struct}    {1x0 struct}
    0.8485 sec     {1x1 struct}    {1x0 struct}
    1.1484 sec     {1x1 struct}    {1x0 struct}

For the original and new objects, inspect the first five rows of label data for the video. Because video signals are of type Image, the new object contains no label data for the video.

videoLabels = gTruth.ROILabelData.video_01_city_c2s_fcw_10s;
videoLabelsSelection = gtLabel.ROILabelData.video_01_city_c2s_fcw_10s;

head(videoLabels,numrows)
head(videoLabelsSelection,numrows)
ans =

  5x2 timetable

      Time          car            truck    
    ________    ____________    ____________

    0 sec       {1x3 struct}    {1x0 struct}
    0.05 sec    {1x3 struct}    {1x0 struct}
    0.1 sec     {1x3 struct}    {1x0 struct}
    0.15 sec    {1x3 struct}    {1x0 struct}
    0.2 sec     {1x3 struct}    {1x0 struct}


ans =

  5x0 empty timetable

Input Arguments

collapse all

Multisignal ground truth data, specified as a groundTruthMultisignal object or vector of groundTruthMultisignal objects.

Signal types, specified as a vision.labeler.loading.SignalType enumeration or vector of vision.labeler.loading.SignalType enumerations.

To view all signal types in a groundTruthMultisignal object, gTruth, enter this command at the MATLAB® command prompt.

unique(gTruth.LabelDefinitions.SignalType)

Example: vision.labeler.loading.SignalType.Image

Example: [vision.labeler.loading.SignalType.Image vision.labeler.loading.SignalType.PointCloud]

Output Arguments

collapse all

Ground truth with only the selected labels, returned as a groundTruthMultisignal object or vector of groundTruthMultisignal objects.

Each groundTruthMultisignal object in gtLabel corresponds to a groundTruthMultisignal object in the gTruth input. The returned objects contain only the labels that are of the signal types specified by the signalTypes input.

Limitations

  • Selecting sublabels by signal type is not supported.

Introduced in R2020a