Main Content

Video Labeler

Label video for computer vision applications


The Video Labeler app enables you to label ground truth data in a video, in an image sequence, or from a custom data source reader. Using the app, you can:

  • Define axis-aligned and rotated rectangular regions of interest (ROI) labels, polyline ROI labels, pixel ROI labels, and scene labels. Use these labels to interactively label your ground truth data.

  • Use built-in detection or tracking algorithms to label your ground truth data.

  • Write, import, and use your own custom automation algorithm to automatically label ground truth. See Create Automation Algorithm for Labeling.

  • Evaluate the performance of your label automation algorithms using a visual summary. See View Summary of Ground Truth Labels.

  • Export the labeled ground truth as a groundTruth object. You can use this object for system verification or for training an object detector or semantic segmentation network. See Training Data for Object Detection and Semantic Segmentation.

To learn more about this app, see Get Started with the Video Labeler.

Video Labeler app

Open the Video Labeler App

  • MATLAB® Toolstrip: On the Apps tab, under Image Processing and Computer Vision, click the app icon.

  • MATLAB command prompt: Enter videoLabeler.

Programmatic Use

expand all

videoLabeler opens a new session of the app, enabling you to label ground truth data in a video or image sequence.

videoLabeler(videoFileName) opens the app and loads the input video. The video file must have an extension supported by VideoReader.

Example: videoLabeler('vipmen.avi')

videoLabeler(imageSeqFolder) opens the app and loads the image sequence from the input folder. An image sequence is an ordered set of images that resemble a video.

imageSeqFolder must be a string scalar or character vector that specifies the folder containing the image files. The image files must have extensions supported by imformats and are loaded in the order returned by the dir function.

videoLabeler(imageSeqFolder,timestamps) opens the app and loads a sequence of images with their corresponding timestamps. timestamps must be a duration vector of the same length as the number of images in the sequence.

For example, load a sequence of images and their corresponding timestamps into the app.

imageDir = fullfile(toolboxdir('vision'),'visiondata','NewTsukuba');
timeStamps = seconds(1:150);

videoLabeler(gtSource) opens the app and loads the data source and corresponding timestamps from a groundTruthDataSource object, gtSource. To generate this object for a custom data source, you can specify a custom reader function. For details, see Use Custom Image Source Reader for Labeling.

videoLabeler(sessionFile) opens the app and loads a saved app session, sessionFile. The sessionFile input contains the path and file name. The MAT-file that sessionFile points to contains the saved session.

videoLabeler(gTruth) opens the app and loads a groundTruth object. You do not need to add a video before loading the object. The ground truth object data source must be an image sequence, video, or a custom data source.


  • The built-in automation algorithms support the automation of rectangular ROI labels only. When you select a built-in algorithm and click Automate, scene labels, pixel ROI labels, polyline ROI labels, sublabels, and attributes are not imported into the automation session. To automate the labeling of these features, create a custom automation algorithm. See Create Automation Algorithm for Labeling.

  • Pixel ROI labels do not support sublabels or attributes.

  • The Label Summary window does not support sublabels or attributes

More About

expand all


  • To avoid having to relabel ground truth with new labels, organize the labeling scheme you want to use before marking your ground truth.


expand all

You can use label automation algorithms to speed up labeling within the app. To create your own label automation algorithm to use within the app, see Create Automation Algorithm for Labeling. You can also use one of the built-in algorithms by following these steps:

  1. Import the data you want to label, and create at least one label definition.

  2. On the app toolstrip, click Select Algorithm and select one of the built-in automation algorithms.

  3. Click Automate, and then follow the automation instructions in the right pane of the automation window.

Version History

Introduced in R2018b