The Image Labeler, Video Labeler, Lidar Labeler (Lidar Toolbox), and Ground Truth Labeler (Automated Driving Toolbox) apps enable you to label ground truth for a variety of data sources. You can use an automation algorithm to automatically label your data by creating and importing a custom automation algorithm.
The vision.labeler.AutomationAlgorithm
class
enables you to define a custom label automation algorithm for use in the labeling apps.
You can use the class to define the interface used by the app to run an automation
algorithm.
To define and use a custom automation algorithm, you must first define a class for your algorithm and save it to the appropriate folder.
Create a +vision/+labeler/
folder within a folder that is on
the MATLAB® path. For example, if the folder /local/MyProject
is on the MATLAB path, then create the +vision/+labeler/
folder
hierarchy as
follows:
projectFolder = fullfile('local','MyProject'); automationFolder = fullfile('+vision','+labeler'); mkdir(projectFolder,automationFolder)
/local/MyProject/+vision/+labeler
.AutomationAlgorithm
ClassAt the MATLAB command prompt, enter the appropriate command to open the labeling app:
imageLabeler
videoLabeler
lidarLabeler
groundTruthLabeler
Then, load a data source, create at least one label definition, and
on the app toolstrip, select Select Algorithm > Add Algorithm > Create New Algorithm. In the vision.labeler.AutomationAlgorithm
class template that opens, define your custom automation algorithm. Follow the
instructions in the header and comments in the class.
If the algorithm is time-dependent, that is, has a
dependence on the timestamp of execution, your custom automation algorithm must also
inherit from the vision.labeler.mixin.Temporal
class. For more details on implementing
time-dependent, or temporal, algorithms, see Temporal Automation Algorithms.
To use your custom algorithm from within the labeling app, save the file to the
+vision/+labeler
folder that you created. Make sure that this
folder is on the MATLAB search path. To add a folder to the path, use the addpath
function.
To start using your custom algorithm, refresh the algorithm list so that the algorithm displays in the labeling app. On the app toolstrip, select Select Algorithm Refresh list.
To import an existing custom algorithm into a labeling app, on the app toolstrip, select Select Algorithm > Add Algorithm > Import Algorithm and then refresh the list.
When you run an automation session in a labeling app, the properties and methods in your automation algorithm class control the behavior of the app.
When you click Automate, the app checks each label definition
in the ROI Labels and Scene Labels panes
by using the checkLabelDefinition
method defined
in your custom algorithm. Label definitions that return true
are
retained for automation. Label definitions that return false
are
disabled and not included. Use this method to choose a subset of label definitions
that are valid for your custom algorithm. For example, if your custom algorithm is a
semantic segmentation algorithm, use this method to return false
for label definitions that are not of type PixelLabel
.
After you select the algorithm, click Automate to start an
automation session. Then, click Settings, which enables you to
modify custom app settings. To control the Settings options,
use the settingsDialog
method.
When you open an automation algorithm session in the app and then click
Run, the app calls the checkSetup
method
to check if it is ready for execution. If the method returns
false
, the app does not execute the automation algorithm. If
the method returns true
, the app calls the
initialize
method and then the run
method on
every frame selected for automation. Then, at the end of the automation run, the app
calls the terminate
method.
The diagram shows this flow of execution for the labeling apps.
Use the checkSetup
method to check
whether all conditions needed for your custom algorithm are set up
correctly. For example, before running the algorithm, check that the scene
contains at least one ROI label.
Use the initialize
method to
initialize the state for your custom algorithm by using the frame.
Use the run
method to implement the
core of the algorithm that computes and returns labels for each
frame.
Use the terminate
method to clean up
or terminate the state of the automation algorithm after the algorithm
runs.