Elements of Ground Truth Objects
The groundTruth object contains information about
        data sources, label definitions, and marked label annotations. You can export or import
        ground truth objects from the Image Labeler and
        the Video Labeler
        apps. You can also create ground truth objects programmatically. The objects also provide
        functions to select labels, change file paths of data, and merge ground truth
        objects.

Exported Data

Ground truth objects exported from labeling apps contains three types of data: the
            data used for labeling (such as images, an image sequence, or a video), the data that
            names the labels (such as car, bridge, or
                overcast), and the data that defines the label (such as a
            rectangle ROI), including its pixel location in the image. If the ground truth data
            contains a pixel ROI label, the labeling app saves the pixel information as PNG files in
            a folder named pixelLabelData. For more details about exported pixel
            data, see How Labeler Apps Store Exported Pixel Labels. You can
            programmatically create a ground truth object using this
            syntax:
gTruth = groundTruth(dataSource,labelDefs,labelData)
Data Source
You can load images or video into a labeling app in one of these formats:
Image datastore
Image filenames
Video filename
Image sequence folder
Custom image sequence
Programmatically, you must specify the data source as a groundTruthDataSource object to the
                    dataSource input to create a groundTruth
                object.
Label Definitions
Label definitions describe the ROI and Scene labels. For example, in a highway scene, you might want to create a rectangle ROI named car and a polygon ROI named bridge. ROI labels require you to select a color and, optionally, add a description. You can also group labels (for example, putting car in a group named vehicles).
Programmatically, you must store label definitions in a table and specify them to
                the labelDefinitions input to create a
                    groundTruth object. The illustration shows which elements of
                the table correspond to which fields in the labeling app. Each row of the table
                specifies information for a single label. Each column contains the information for
                that definition field for the label.

You can also create the labelDefinitions table programmatically
                by using the labelDefinitionCreator object. If you save the table that the object
                generates to a MAT-file, you can then load the file into a labeling app
                session.
Label Data
Label data describes the defined labels and the pixel location of the ROI label in the image. For example, if you labeled a car in an image with a rectangle ROI named car, the label data saves the information of a rectangle with dimension [x, y, w, h] where, [x, y] indicates the pixel location of the upper left corner of the rectangle that enclosed the car, and [w, h] indicates the width and height.
Programmatically, the label data is stored in a table and is specified as the
                    labelData input to create a groundTruth
                object. Each line of the labelData table specifies a single image
                or timestamp. Each column represents a label definition, specified by its name, as
                defined in the labelDefinitions table. For example
                    car. The illustration shows a labelData
                table with an image that contains three cars and one bridge. The pixel locations for
                the three cars are stored in gTruth.LabelData.car as a matrix of
                type double, and the pixel location for the bridge is saved in
                    gTruth.LabelData.bridge one-element cell array. 

The location data for the ROI labels is derived from the labelType enumeration as one of these options:
labelType.Rectangle— (x,y,w,h)labelType.RotatedRectangle — (xctr,yctr,w,h,yaw)labelType.Cuboid— (xctr,yctr,zctr,xlen,ylen,zlen,xrot,yrot,zrot)labelType.ProjectedCuboid— (x1,y1,w1,h1,x2,y2,w2,h2)labelType.Line— (x1,y1,x2,y2, ... ,xN,yN)labelType.PixelLabel— (M-by-1PixelLabelDatacolumn)labelType.Polygon— (x1,y1,x2,y2, ... ,xN,yN)labelType.Custom— (as specified)labelType.Scene— (logical)
For details on how to specify each of the supported enumerations, see the
                        LabelData property of the
                    groundTruth object. For details on how to specify pixel
                locations in an image, see the Coordinate Systems topic.
In general, the label data table contains the pixel locations for all of the labels and sublabels. It can also contain attribute information. If any image contains sublabels or attributes, then the app stores the additional data together with the label data in a nested structure.
See Also
Apps
- Image Labeler | Video Labeler | Ground Truth Labeler (Automated Driving Toolbox)