Documentation

Introduction and Overview

Verilabs is a client-only image labeling tool that allows you to create image datasets with complete privacy. Your data remains securely on your device. Use it to annotate images with bounding boxes for object detection and computer vision tasks. If you need more advanced features such as dataset management or collaboration, sign up for the cloud-hosted version.

Datasets Management

Before you can create annotations, you must define a dataset. Navigate to the "Datasets" section to get started. Here, you can create a new dataset, load an existing one to continue working on it, and export your dataset as a JSON file for later editing or training object detection models.

ImportantIf you reload the page, your dataset will be lost. This is because, in the free version, all data is stored locally in your browser to ensure privacy. Please use the "Save" button frequently to export your dataset. For more advanced features and persistent storage, consider the cloud-based version.

Creating a Dataset

To begin, navigate to the "Datasets" section. By default, a new dataset is initialized, allowing you to immediately enter a filename, title, and other metadata. The filename will be used when exporting your dataset. The other fields are used for dataset identification.

Note that the dataset, once loaded or configured, remains available within the app as you navigate between the "Datasets," "Labeling," and other pages. However, it will not persist if you refresh the app. This is because, in the free version, all data is stored locally in your browser. For those technically inclined, the dataset is an object stored in the React context, making it accessible across all pages. Therefore, it's recommended to frequently use the "Save" button to export your dataset, ensuring you have a backup.

Loading a Dataset

To continue working on an existing dataset, click the "Load" button to import a previously exported JSON file. You can always view dataset statistics at the bottom of the left column, including the number of classes, the number of images containing annotations, and the total number of annotations.

Saving a Dataset

Export your dataset as a JSON file at any time by clicking the "Save" button in the top-left corner.

Adding Classes

After configuring a dataset, you can add classes to it. In the center column, you'll see all existing classes, along with a count of annotations for each class in the current dataset. Clicking on a class reveals its details in the rightmost column, where you can edit the class name and labeling instructions.

To maintain data consistency, you cannot delete a class, and each class is assigned a unique classID. Currently, up to 9999 classes are supported.

Image Labeling

The "Labeling" section allows you to draw bounding boxes and assign classes defined in the "Datasets" section. On the left, you'll find the image filenames and dataset information.

Loading Images

To load images, click the "Images" button at the top. This opens a file selector for you to select image files. Currently, only JPEG (.jpg) files are supported. Once loaded, the image filenames will appear in the list on the left. Select an image to view it on the right, or use the navigation buttons above the displayed image.

ImportantImages are loaded into the browser's memory to keep your data local. If you navigate away from the page (e.g., to modify the dataset) and return, you'll need to reload the images. However, all annotations are persisted as discussed in the "Datasets Management" section. This means you can continue where you left off after reloading images. For image storage alongside labels, consider the cloud version.

Image View Section

The selected image is displayed in the right section. On the left side of this section, you'll find the tool/mode selector. By default, the "Draw" mode is active, allowing you to create bounding boxes. You can switch to the "Label" mode to assign classes to boxes, and "Move/Edit" mode to adjust existing boxes.

Drawing Bounding Boxes

In "Draw" mode, click and drag from the top-left corner to the bottom-right corner to create a bounding box. Release the mouse to finalize the box.

Coordinate System

Bounding box coordinates are defined with the origin at the top-left corner of the image, using horizontal (x) and vertical (y) components, along with width and height in pixels.

When a box is drawn, its class label is initially set to "undefined." Each drawn box is immediately added to the dataset linked with the image.

Assigning Labels

After drawing boxes, switch to "Label" mode. Click on a box, and a dropdown menu with available classes will appear for you to select from.

Updating Boxes

Use the "Move/Edit" mode to move or resize existing boxes.

Additional Resources & Support

  • Consulting & Training: Need personalized help with your image labeling workflow or want to train your team? Book a consulting or training session under contact.
  • Cloud Version (SaaS): Unlock advanced features such as team collaboration, persistent storage, and automated workflows with the cloud-based Software as a Service (SaaS) version.
  • On-Premise Deployment: For organizations with strict data privacy requirements or those needing full control over their deployment environment, reach out to discuss an on-premise solution.