5 Tools To Create A Custom Object Detection Dataset

Alexey Korotkov
10 min readApr 29, 2020

--

To train a neural network, you need a dataset. To create a computer vision neural network, you will need to take images and annotate them in a specific way to create your dataset.

In this article, I will make an overview of the five most easy to use and setup image annotation tools for computer vision datasets. And we will make a quick onboarding on all of them. Let’s start!

LabelImg

Ease of setup: ★★★☆☆
Flexibility: ★★★☆☆
Pricing: ★★★★★
Total score: 3.5

The first annotation tool that I want to cover in this article is LabelImg.

LabelImg is one of the most popular tools for labeling images. It is written in Python, and you can install it on Linux, Windows, and macOS. You need to get a master of this repository and start a shell script that will install LabelImg on your desktop.

After installation of LabelImg, and running the app, you will see the following:

1) I need to open a directory with images to start labeling them. So I have opened a folder with pictures of balls.
2) Then we need to select a directory where we will store our annotations.
3) To start labeling images, we need to press the “Create RectBox” button.

4) We need to click and drag to add object detection annotation.
5) After that, we’ll see a pane where we can select an annotation title, or add a new one to select from.
6) Using LabelImg we can save Object Detection dataset in 2 formats: YOLO dataset format and Pascal VOC format.

7) To end annotating a dataset we need to press the Save button. After labeling your dataset, you’ll be able to export it into Pascal VOC or YOLO formats. These formats are standard, and datasets exported with LabelImg can be used As-Is in the future to train Object Detection Neural Networks.

Setup of LabelImg requires some actions, but you can install it on different operating systems, and LabelImg is entirely free to use.

VGG Image Annotator

Ease of setup: ★★★★★
Flexibility: ★☆☆☆☆
Pricing: ★★★★★
Total score: 3.5

The second image annotation tool that I want to mention in this article is VGG Image Annotator.

It is easy to set up and use, open-source annotation tool suitable for audio, video, and images. VGG Image Annotator is written using js, CSS, and HTML so that you can use it right in your browser.

Open the following link, and you are ready to go.

  1. There are several types of objects that you can annotate with VGG Image Annotator (bounding boxes, polylines, polygons, circles, ovals, and dots). You will need to select bounding boxes.

2. Then you’ll need to add images to annotate. You need to press image -> Load or Add Images.

3. Images will appear in the left pane. You can navigate through them here.
4. To start annotate images, you need to click and drag.

5. After you have annotated your dataset, you’ll be able to export it into CSV or JSON format.

VGG Image Annotator has its format. And You can export your datasets only to this format. This format is not common, so you are likely will need to post-process these datasets. Multilabel (if you have several different classes, like cats and dogs) datasets are not convenient to label using VGG Image Annotator as well. But the setup is ultimately simple.4

MakeML

Ease of setup: ★★★★☆
Flexibility: ★★★★☆
Pricing: ★★★★☆
Total score: 4.0

MakeML is a macOS app that allows you to create Object Detection and Semantic Segmentation Datasets and Train models using these datasets as well. There are one GPU cloud training and three dataset exports with a built-in augmentation tool available for free.

To start labeling your object detection dataset, you’ll need to download the MakeML app from the Mac App Store here.

  1. After sign-up, you’ll see the following screen. To start annotating your dataset firstly, you need to create a new Dataset project. Press “Create a new Dataset Project.”

2. Enter the project name (in our case “Ball”) and press the “Create” button.

3. You’ll see an empty project screen. At the bottom, you can change brightness and contrast of images, the opacity of annotations, and the color of aim cross. On the left, you can see images pane, where you can drag & drop photographs, import images from videos, import images by selecting them using Finder, or import dataset if you already have one.

4. First of all, we need to add an annotation title in the right down panel. Enter the annotation name, select color, and press the “+” button.

5. After importing images, you’ll have the following screen.

6. To start labeling images, you’ll need to press and drag over an object that you want to label. After that, you can edit your label by dragging bounding box circles placed in corners of the annotation.

7. After annotation of all images, we need to press the “Export dataset” button. We can select a dataset format to which we want to export our dataset. There are 4 formats of datasets available for export (Turi Create (CSV), CreateML (JSON), Pascal VOC (XML), COCO (JSON)).

8. Then you’ll see a screen with augmentation parameters. Augmentation allows you to improve the quality of your dataset by changing the image by changing it’s color, cropping, rotating, and flipping it. After selecting the augmentation parameters, press the “Export” button. Then you’ll need to choose a folder where you want to save your dataset.

MakeML is easy to use and setup app, with convenient features, such as import images from a video, exporting to different dataset formats, built-in augmentation. You can export three datasets for free, and then the labeling plan will be available for 8.83$/month. You also can right after the creation of your dataset train and test a model using MakeML.

Labelbox

Ease of setup: ★★☆☆☆
Flexibility: ★★★★★
Pricing: ★★☆☆☆
Total score: 3.0

Labelbox is an advanced tool for annotation of Computer Vision datasets. It even has two different annotation environments, and you can select from them (new and old version). It has a community version that has some limitations, but they are quite big, so it’s a decent tool to create your first Object Detection dataset.

First of all, you need to sign up here.

  1. After login, you will see a list of your projects with three draft projects from the LabelBox team.

2. We need to create a new dataset at first, so we change the tab to “Datasets.” Then we press the “Add Dataset” button.

3. Drag and drop images for our newly created dataset.

4. Enter a name for the dataset you have uploaded.

5. Then you will see the newly created dataset in the “Datasets” tab.

6. Then come back to the “Projects” tab and press the “New Project” button. Enter the name of the project (“Ball” in our case) and press “Next.” On the next screen, we need to select our dataset and press the “Attach” button. We can attach several datasets to our project. And in Labelbox, a dataset is a set of images, and different projects can use the same sets of images. After you have attached the “Ball” dataset, press the “Next” button.

7. Labelbox has several label editors. In this setup tutorial, we’ll show the newest version of Labelbox Image Editor. Press the “Configure” button.

8. To annotate an object detection dataset, we need to add an object (annotation title or class in other words) to start labeling. We need to add a name for this annotation title (“Ball” in our case), and we need to select a “bounding box” for this annotation title as a type of labeling. We can choose a color, add other annotation titles, delete one if we have made a mistake. Then we need to press the “Confirm” button.

9. To finish the setup of the project, we need to press the “Complete Setup” button.

10. After this, we can start labeling of our dataset by pressing the “Start Labeling” button.

11. First of all, you need to select an annotation title (“Ball” in our case), and then you need to press and drag over an object you want to label and also press the left mouse button at the end of marking the object.

12. After you have annotated all objects on an image, you need to press the “Submit” button, and you will see the next unannotated image from your datasets connected to the current project.

13. When you annotate all images from all of the connected datasets to your project, you’ll see the project info screen. You’ll see what objects do you have in the project, how many of them you have annotated, you’ll see overall labeling progress in the project as well. To export our annotated dataset, we’ll need to switch to the “Export” tab.

15) Here we’ll need to select an export format and press the “Generate Export” button. If your dataset is enormous, then export can take some time. That’s why here we have an option to send us an email when our export is ready.

In our list, LabelBox is the most advanced annotation tool, but as you can see, it takes a lot of time to set up your dataset annotation within Labelbox. And you will need to convert Labelbox format at the end as well. But if your dataset is quite big, and you want to label it in collaboration with somebody — Labelbox would be your preferred option. But if you will have more than five people working on one project, than LabelBox charges 6$/per hour/per annotator, which is an enormous amount of money.

RectLabel

Ease of setup: ★★★☆☆
Flexibility: ★★★★☆
Pricing: ★★★★☆
Total score: 3.5

RectLabel is a tool for labeling bounding boxes for object detection and polygons for semantic segmentation. It’s available in the macOS App Store. It costs 2.99$ per month or 29.99$ per year, but it has a free trial that lasts one week, so it will be enough to create and export your first object detection dataset. You can downloat it via the following link.

  1. After opening the app, you’ll see the following screen. To start annotating images, you’ll need to press the “Open folder” button.

2. Here you need to select a folder with photos and a folder where the Rectlabel app will store file/files containing annotations.

3. Then you can start labeling your images. Press the left mouse button, drag the mouse, and press the left mouse button one more time to finish annotating an object.

4. After that, you’ll see a pop-up where you need to enter a name for your annotation title (in our case, it will be “Ball”). Then press the “OK” button

5. After this, our annotation and annotation title will be added to our project and saved. We can edit them and annotate all images in the folder that we have selected.

6. The last step is to export our dataset. Just press the “Export” button at the menubar, and you’ll see a lot of options to export your dataset.

Rectlabel is a good option to create your first Object Detection dataset. It’s simple to set up and has a decent bunch of tools to work with annotation of Computer Vision datasets.

Here is a quick summary of all tools that we have reviewed in this article:

That was a brief overview of 5 most easy to setup and use tools to create your first Object Detection dataset. We have reviewed LabelImg, VGG Image Annotator, MakeML, LabelBox, and RectLabel. Give your feedback or tell us about tools you use for labeling images down in comments section below.

--

--