Hunnar Blog

Hunnar Blog

Getting Started With Open Source Annotation Tools

Ans Javed's photo
Ans Javed
·Jun 2, 2022·

13 min read

Subscribe to our newsletter and never miss any upcoming articles

Table of contents

An annotation tool is a text or drawing tool that helps you add information to text, an image, an object, or any other piece of content. In this tutorial, we will see the necessary steps to use the different useful open-source annotation tools. So, we can quickly, and efficiently label our computer vision datasets for multi models and move on to training. We can use these annotation tools online by using the web browser and as well as on our local machines. These are the annotation tools that I am discussing in this tutorial.

  • Make Sense

  • Label Studio

  • VGG Annotator

  • CVAT

Make Sense

Make Sense is an open-source data annotation or labeling tool under the GPLv3 license. It does not require any advanced installations, just needs a web browser to run it online. The user interface is simple and easy to use. Simply, you can upload the images you want to annotate. Also, can annotate the data by using different annotation techniques like Bounding box, Point, Line, and Polygon. And Make Sense allows you to export the labels for different models format. Here is a step-by-step guide to using the Make Sense Annotator tool. image.png Click on the "Get Started" button in the bottom-right corner. You will see the following page in which a dialog box will ask you to drop images. Click on it and select images from your system. After selecting all images for annotation, click on the "Object Detection" button if your goal is to detect all objects in each frame, and click on the "Image Recognition" button if you have classification (one picture has one object) data. image.png I'm clicking on the "Object Detection" button. The following screen will appear. This page is asking you to upload all labels/class names and text files if you have them. If you don't have you can skip it now and later write class names. image.png Now click on the "Start Project" button. The following screen will show. image.png Now you can select the annotation technique from the top-right corner which is the best fit for your dataset and can annotate it. I annotated my dataset image using the "Polygon" annotation technique. You can see it on the following screen. image.png After annotating one picture it will ask you to "Select label" on the right-top side. Click on it and it will show you the following screen. image.png Now click on the "+" sign in the top-left corner of the box and write the label name then click on the "Accept" button. If you want to add more class names you can again click on the "+" sign. The following screen will look like this. image.png You also can edit class names and import more images and annotations at any time just by clicking on the "Action" tab in the top-left corner and selecting it. The following screen is showing editing of the label name. image.png image.png After completing the annotation, you can export the annotation by clicking on the "Action" tab in the top-left corner and selecting "Export Annotation". Each annotation technique provides different label types and model file formats to export. For example, the polygon annotation technique generates a single file in two model formats for export annotation. The first is "Single File in VGG JSON Format" and the second is "Single File in COCO JSON Format". Different annotation techniques provide different formats of export annotation datasets. image.png

  • Drawbacks

  • Make Sense does not provide a way to save your annotation projects in between. That means, if you refresh your web browser, intentionally or by mistake, all your annotation progress is gone and you will have to start from the beginning (uploading all images).
  • You cannot collaborate with your team to work on the same annotation project.
  • You cannot annotate audio, video, and text datasets in these open-source tools.

Label Studio

Label Studio is an open-source data annotation or labeling tool. It is used to label data types like audio, text, images, videos, and time series with a simple user interface. We can't use it online; installation and sign-up are required to use it. It has a simple UI and we can export labels in various model formats. It can be used to prepare raw data or improve existing training data to get more accurate ML models. In this, you can divide the duty of labeling the dataset among other team members. The following screen is showing the start page of Label Studio. image.png You can create a new project just by clicking on the button "Create Project". image.png

  • Annotate Images Dataset

    And this will ask you to write "Project Name" and then import the images dataset by clicking on the "Data Import" tab. image.png And now you have to do "Labeling Setup" by selecting the perfect labeling style of your dataset from the left side. As I'm selecting "Object Detection with Bounding Box" by clicking on Computer Vision. image.png Now add the label's name in "Add Labels Name" and click on Add button in the middle-left. image.png Click on the Save button. You will see the following screen. image.png Now select all pictures and click on the "Label 15 Task" tab in the top center. And then select a label from under the image and create a bounding box (auto-selected bounding box technique) on an image. And click on the "submit" button after annotating each image in the top-right corner. You will see the following screen. image.png This screen is showing the labeling of the complete dataset. image.png Now you can export labels according to your own choice of file format. I downloaded of YOLO format. image.png
  • Annotate Videos Dataset

    This tool provides labeling of video datasets like video classification and video timeline segmentation. Create a "New Project" and upload videos dataset. image.png Now we will do a "labeling set up" according to our dataset. For that, we have to select the "Videos" tab in the "Labeling Setup" tab and then select which type of labeling we want to do on the dataset i.e. If each video explains one object or one action then go with "video classification" and if explaining one object or more actions and more objects or more actions then go with "Video Timeline Segmentation". I'm selecting "Video Timeline Segmentation". The following screen is showing the labeling of my video dataset. image.png I divided my video in three chunks and assigned label. image.png After submitting this project, we can export the dataset. image.png
  • Annotate Texts Dataset

    First of all, we will create a new project and will upload the test dataset. The following screen is showing uploading of the test dataset. image.png Now click on the "Labeling Setup" tab and then click on "Natural Language Processing" and select the proper text data labeling style according to the dataset. As I'm selecting "Named Entity Recognition" for labeling my dataset and adding labels according to that. The following screen is showing that. image.png It’s time to label text data. First, you have to click on "label name" then hold the mouse and mark the text range of that label in a statement and release the cursor. After releasing the cursor once click on highlighted text range and then select the next label to label the next text range of that statement. Now, click the "Submit" button and it will show you the next statement to label. You have to repeat the same process for all dataset statements. image.png Now submit and export the dataset in the file format of your own choice. image.png
  • Benefits

  • Can Annotate different data types like Image, Audio, Video, Text, and time series.
  • Can manage user’s authentications.
  • Import pre annotations and can review annotations.
  • Machine learning integration by writing your ML backend.
  • Drawbacks

  • It's slow down while labeling when another user is importing a large volume of the dataset on the same database.
  • Sometimes audio wave doesn't match annotations.
  • Label Studio does not support labeling PDF files directly.

VGG Annotator Tool

VGG annotator is an open-source image, audio, and video annotation or labeling tool built by researchers at Oxford University.

VGG Image Annotator Tool

The VGG Image Annotator is a small and lightweight tool to use and can be run entirely in your web browser. You can use the VGG Image Annotator to draw bounding boxes, circles, elliptical shapes, polygons, points, and polylines around objects in your images. Once you can upload a complete dataset on it, annotate it, and export the labels in different file formats also for different models. Here is a step-by-step guide to using the VGG Image Annotator tool. The following screen is showing the VGG Image Annotator tool. image.png First of all, you need to add the dataset by clicking on the "Add Files" button in the center-left of the "Project" textbox. Second, you have to click an image that you want to annotate. And then select the best annotation technique from the "Region Shape box". Now click and draw annotation around the object you want to label. Make sure you are using one annotation technique in the complete dataset to annotate. The following screen is showing annotation of an image. image.png For assigning labels first you have to click on "Region Attribute" in the "Attribute" tab. Write dataset name in the "Attribute Name" textbox and click on the "+" sign. Select "Type" "Dropdown" from type dropdown box. Then add all class names in the "Id" column. All these classes’ names will show in the dropdown box when you will click on the annotated image. And you have to select that image object class. The following screen is showing this. image.png Once you have finished labeling your dataset in the VGG Image Annotator, it’s time to export it for use elsewhere. To export, click on "Annotation" in the menu bar and select "Export Annotations" as "CSV" or you can select the format according to your choice. This will download a file to your local file store. image.png

Drawbacks

  • Annotated data will be lost if you refresh the page but you can save the project in your system by clicking on the "Project" tab and selecting save. Also, you can load the working project again.
  • You cannot collaborate with your team to work on the same annotation project.

    VGG Video Annotator tool

    The following screen is showing the VGG Video Annotation tool. image.png

    VGG Audio Annotator tool

    The following screen is showing the VGG Audio Annotation tool. image.png

  • CVAT

    CVAT stands for Computer Vision Annotation Tool. It is an open-source annotation or labeling tool developed by Intel. We can use it to label images and video datasets. You can either use it online or install it on your local machine. It supports multiple file formats to export labels like Pascal VOC, YOLO, or MS COCO. First of all, we have to create an account on cvat.org for annotation online. The following screen is showing the first page after login. image.png

  • Annotate Images Dataset

    Create a new Project and add labels by clicking on the "constructor" button. image.png Click submit and the following screen will show. image.png Now the job is to create a new task by clicking on the "+" button in the bottom right. And the following screen will show. image.png Now you have to upload the dataset and click on the "submit" button. It will take some time to upload data. image.png Now click on the "task" tab in the menu bar. The new task will show then click on "open" and the following screen will show. image.png Assign the job to the user in the "Assignee" column and click on "id" in the job column. The following screen will show. image.png Now the job is to click on the best annotation technique from the left toolbar and a box will appear. Select the label from the "label dropdown" box and click on the "shape" button. This will allow you to annotate the image. Then click on the next icon to annotate the next image in the top menu bar. image.png After finishing, the task, click on the "Menu" tab on the top-left side and click on "Finish the Job". Click again on the "Menu" tab and select "Export Task Dataset". A pop-up box will appear and will ask you to select the model format in which you want to export labels. The following screen is showing of exporting labels. image.png
  • Annotate Videos Dataset

    This tool provides annotation of videos dataset i.e., image classification, image segmentation, object detection, object tracking and pose estimation. The method is the same to create a "New Project" but you will attach a video dataset this time. You can see the following screen. image.png Now click on "Id" in the job column. And start labeling. The following screen will show this. image.png Now click on the best annotation technique. A dialog box will open which will ask you to select a label. You have to select a label from the label dropdown box and click on the "Shape" button to draw an annotation around an object in the first frame of the video. Then you have to click on the next icon in the top middle to see the next frame of a video. The following screen is showing a second frame. image.png Each video contains a lot of frames. Sometimes all these frames are the same and sometimes a little bit of movement and change is present in each frame. So, you have to annotate each new object and each new movement but if you are getting the same frames every time, you don't need to annotate each frame. You can skip some frames after annotating one frame. The following screen is showing the 33 frames of that video and it's almost the same as the first one was. image.png
  • Auto Annotator

    The best service of the CVAT annotation tool is to provide a Semi-Automatic Image Annotation AI service to annotate our datasets. We can do auto annotation of different types of data on which labels dataset different DL models are already trained i.e., Mask RCNN, YOLO v3, Faster RCNN, Text Detection v4, DEXTER, and f-BRS. Now click on AI tools on the left toolbar, and a dialog box will open. You can choose from Interactors, Detectors, and Trackers. Then select the model from the dropdown box and press the "Annotate" button. The annotation will automatically appear around the object. The following screen is showing to use of the AI annotation tool. image.png Now click on the next icon for the next image to annotate and follow the same method of annotation. Repeat this for the complete dataset. And in last export labels.
  • Benefits

  • You can use CVAT online and by installing it on your local system.
  • Different users can work on the same task.
  • Automatic Annotation
  • Can Import labels in different model format
  • Optional tools supported i.e., Deep Learning Deployment Toolkit, TensorFlow Object Detection API, and NVIDIA CUDA* Toolkit.
  • Drawbacks

  • It doesn't work well other than in Google Chrome.
  • Lack of source code documentation.
  • Performance issues like Increasing requirements due to larger amounts of annotated data limit the use of the ram.

Conclusion

In this tutorial, we have learned about different types of open-source annotation tools which we can use free to annotate or label our large datasets. These tools help us to prepare our datasets to feed machine learning models. So that, we can train our models with high efficiency. Each tool has different benefits and drawbacks but we choose according to our work needs and how we are going to do our work. As it's a good practice to study and compare different annotation tools before use. I hope this tutorial will help you.

 
Share this