Data Annotation --------------- .. role:: cvataction .. role:: cvatstart .. role:: cvatmenu For training AI models, as well as for assessing the quality of already trained models, we need data with ground truth targets. These annotations can be manually created in a photo editor or a dedicated annotation tool. Neura CVAT is a specialized computer vision annotation tool developed by Neura, built upon the foundation of the open-source CVAT platform. It provides a powerful and user-friendly interface for labeling images and videos for computer vision tasks. The system offers comprehensive annotation capabilities including bounding boxes, polygons, and keypoints, along with multi-user labeling functionality for efficient team workflows. These features are essential for tasks like object detection, segmentation, and tracking. Neura CVAT enhances the base CVAT platform with custom features specifically designed for Neura's AI development pipeline, while maintaining the robust and flexible nature of the original system. .. note:: The guide is simplified to focus on the most common usage scenarios. For more advanced features and options, please refer to the official `CVAT documentation `_. .. note:: See :doc:`Tutorial: Annotate Real Data ` Sign in / Sign up ~~~~~~~~~~~~~~~~~ Access Neura CVAT through your web browser at ``http://192.168.2.14:8050``. In the start page, you will encounter a login interface, where you enter your email and password. New users can register by clicking :cvatstart:`Create an Account`: .. figure:: /_static/cvat-login.png :align: center :class: padded-image Create a Project ~~~~~~~~~~~~~~~~ Labeling is managed through Project functionality. Within each Project, a user can set up task-specific settings, track changes and create versions. Click :cvataction:`+` and proceed to :cvataction:`Create a new project`. .. figure:: /_static/cvat-create-a-new-project.png :align: center :class: padded-image Provide a name for your Project and add labels. Click :cvatstart:`Submit & Open` to complete. Later, you can edit the name, as well as add, modify or remove labels. Create a Task ~~~~~~~~~~~~~~~~ .. figure:: /_static/cvat-create-a-new-task.png :align: center :width: 60% :class: padded-image Click on :cvataction:`+`. Assign a name to the task, associate it with a project, and proceed to Select files. Add images either by dragging them into the designated square or clicking on them. Click :cvataction:`Submit & Open` to complete. After that, a list of Jobs should appear. You can start the annotation process by clicking on Job#1. .. figure:: /_static/cvat-jobs.png :align: center :class: padded-image Annotation Menu ~~~~~~~~~~~~~~~~ AI Tools ++++++++ .. figure:: /_static/cvat-ai-tools.png :align: center :width: 40% :class: padded-image AI Tools include **Interactors**, **Detectors**, and **Trackers** used for automatic annotation. * **Interactors** allow labeling objects in an image or video, or refining existing annotations. Select a pretrained model, click on an object, and get an automatically generated object mask for this object. * **Detectors** are designed to automate the annotation process of large image or video datasets. Choose a pretrained object detection model, and get an automatically generated bounding boxes for objects in an image or video. * **Trackers** are specifically tailored for annotating moving objects in videos, e.g., for object tracking in surveillance or action recognition.Trackers match the objects across frames in a video sequence to maintain temporal consistency of annotations. OpenCV Tools ++++++++++++ .. figure:: /_static/cvat-opencv-tools.png :align: center :width: 40% :class: padded-image OpenCV Tools include **Drawing**, **Image**, and **Tracking**. * **Drawing** allows adding shapes, lines, and other graphical elements to an image or a video frame. With Drawing, a user can mark regions of interest or highlight specific areas or objects within an image. * **Image** allows adding metadata, text, or labels to an image to descriptive information or labels for images within a dataset. With Image, a user can add descriptions or comments on images, add labels or categories. * **Tracking** allows following and annotating object motions across video frames. Tracking can enable the analysis of object trajectories and evolution of dynamics cenes, as well as annotation of moving objects in videos, such as vehicles or pedestrians. Apart from automatic tools, there are manual annotation options providing full control over the annotation process. * `Draw a Rectangle <#id3>`_ * `Draw a Polygon <#id4>`_ * `Draw a Polyline <#id5>`_ * `Draw Points <#id6>`_ * `Draw an Ellipse <#id7>`_ * `Draw a Mask <#id8>`_ Click is the basic labeling operation, performed by pressing and releasing the left mouse button. Draw a Rectangle +++++++++++++++ .. figure:: /_static/cvat-draw-rectangle.png :align: right :width: 80% :class: padded-image **Target application.** Rectangular annotations (also known as bounding boxes) are used for object detection and object tracking, e.g., as the initial regions for tracking. **Procedure.** Rectangles are defined by clicking the corner points. Axis-aligned rectangles can be annotated with two diagonal corners: Top-Left and Bottom-Right. Oriented rectangles can be annotated with four corners. Draw a Polygon ++++++++++++++ .. figure:: /_static/cvat-draw-polygon.png :align: right :width: 80% :class: padded-image **Target application.** Polygonal annotations are used for object segmentation, object detection, and object tracking. With polygons, objects can be outlined precisely. Besides, polygons can serve as initial regions for tracking algorithms. **Procedure.** Polygons can be labeled by clicking on vertices sequentially. The last vertex is connected to the first, forming a closed polygon. Draw a Polyline +++++++++++++++ .. figure:: /_static/cvat-draw-polyline.png :align: right :width: 80% :class: padded-image **Target application.** Polyline is a series of connected line segments. With polyline, a user can outline objects or define paths or trajectories within a scene for object segmentation, detection, and tracking. **Procedure.** Polylines can be labeled by clicking on vertices sequentially. The last vertex is connected to the first, forming a closed shape. Draw Points +++++++++++ .. figure:: /_static/cvat-draw-points.png :align: right :width: 80% :class: padded-image **Target application.** Points mark locations of interest within an image, that can be used for keypoint detection and as a weak supervision for other computer vision tasks. **Procedure.** Points can be labeled by clicking on the desired location in an image. Draw an Ellipse +++++++++++++++ .. figure:: /_static/cvat-draw-ellipse.png :align: right :width: 80% :class: padded-image **Target application.** Ellipses can be used for labeling objects with elliptical shapes for object segmentation, detection and tracking. **Procedure.** 1. Specify the coordinates of a center 2. Define the major and minor axes lengths 3. Specify the rotation angle. Draw a Mask +++++++++++ .. figure:: /_static/cvat-draw-mask.png :align: right :width: 80% :class: padded-image **Target application.** Pixel-level binary masks can be used to define regions of interest for object segmentation, detection and tracking. **Procedure.** Masks are drawn on top of an image using a painting tool. Setup a Tag +++++++++++ .. figure:: /_static/cvat-menu-setup-tag.png :align: right :width: 80% :class: padded-image **Target application.** A tag allows categorizing annotated objects so that they can be easily found, sorted, filtered or analyzed. **Procedure.** An object can be assigned with a tag via :cvataction:`Setup tag`. The tag can be selected from the existing tags, or a new tag can be created. Basic Image Manipulation ~~~~~~~~~~~~~~~~~~~~~~~~ .. figure:: /_static/cvat-menu-image-manipulation.png :align: center :class: padded-image The basic image manipulation functions include: * :cvatmenu:`Cursor` allows navigating and interacting with the CVAT interface: pointing, clicking, and selecting various elements on the screen. * :cvatmenu:`Move the Image` allows moving the image within the CVAT workspace to focus on specific areas of the image. * :cvatmenu:`Rotate the Image` rotates the image clockwise or anticlockwise. * :cvatmenu:`Fit the Image` allows adjusting the view to fit the entire image within the CVAT workspace to get an overview of the entire content. * :cvatmenu:`Select a Region of Interest` allows specifying an area or region in the image that you want to focus on or annotate. Menu and Navigation ~~~~~~~~~~~~~~~~~~~~~~~~ The top menu features controls for task management. Menu Options ++++++++++++ * :cvatmenu:`Export Job Dataset` allows export of the annotated dataset. * :cvatmenu:`Remove Annotations` deletes existing annotations from the task. * :cvatmenu:`Open Task` resumes work on an existing annotation task. * :cvatmenu:`Change Job State` allows modifying the status of the annotation job. * :cvatmenu:`Finish the Job` completes the annotation procedure. Adjacent Controls +++++++++++++++++ * :cvatmenu:`Save` allows saving current progress and annotations. * :cvatmenu:`Undo` reverses the last action performed. * :cvatmenu:`Redo` restores an action that was undone. Utility Panel +++++++++++++ * :cvatmenu:`Fullscreen` expands the CVAT interface to occupy the entire screen. * :cvatmenu:`Info` provides detailed information about the annotation task. * :cvatmenu:`Filters` allows filtering annotations. * :cvatmenu:`Mode Selector` allows switching between task modification or review mode. Object Configuration Panel ++++++++++++++++++++++++++ .. figure:: /_static/cvat-menu-object-configuration.png :align: center :width: 30% :class: padded-image * :cvatmenu:`Objects` displays a list of annotation objects in the current task. * :cvatmenu:`Labels` allows management of annotation objets and assigning labels to them. * :cvatmenu:`Issues` displays issues or comments related to the annotations. * :cvatmenu:`Sort by` allows sorting the displayed annotations based on certain criteria, such as label, creation time, or other relevant parameters. * :cvatmenu:`Polygon Shape` allows selecting the shape type for annotation objects, with "Polygon Shape" being one of the menus. * :cvatmenu:`Appearance` provides an access tp visual appearance of annotations, such as color, opacity, and border settings. * :cvatmenu:`Color by Label` allows color-coding annotations based on their labels, aiding in visual distinction between different classes. * :cvatmenu:`Instance Group` allows grouping instances of the same label. * :cvatmenu:`Opacity` opens transparency settings for annotations (both selected and unselected states). * :cvatmenu:`Outlined Borders` allows toggling between having outlined or filled borders for the annotation shapes. * :cvatmenu:`Show Bitmap` displays or hides bitmap images related to annotations. * :cvatmenu:`Show Projections` displays or hides projections associated with annotations. Shortcuts ~~~~~~~~~ .. list-table:: :widths: 35 65 :header-rows: 1 :align: left * - Shortcut - Action * - ``F1`` - Open/hide the list of available shortcuts * - ``N`` - Repeat the latest procedure of drawing with the same parameters * - ``M`` - Activate or deactivate mode to merging shapes * - ``Alt+M`` - Activate or deactivate mode to splitting shapes * - ``G`` - Activate or deactivate mode to grouping shapes * - ``Shift+G`` - Reset group for selected shapes (in group mode) * - ``Esc`` - Cancel any active canvas mode * - ``Ctrl+C`` - Copy shape to CVAT internal clipboard * - ``Ctrl+V`` - Paste a shape from internal CVAT clipboard * - Hold ``Ctrl`` while pasting - When pasting shape from the buffer for multiple pasting. * - ``Ctrl+B`` - Make a copy of the object on the following frames * - ``Ctrl+(0..9)`` - Changes a label for an activated object or for the next drawn object if no objects are activated