Introduction to BMW-Labeltool-Lite
The BMW-Labeltool-Lite is a user-friendly image data annotation tool designed to facilitate the annotation process with minimal configuration. Focused primarily on bounding box-based training data annotation, this tool offers a simple and efficient way to label images, helping users prepare datasets for advanced deep learning training. The Labeltool-Lite is dockerized, allowing users to get started quickly and easily.
Key Features
- Supports bounding box creation for image labeling.
- Compatible with pre-trained or custom-trained models to enhance and accelerate the labeling process.
- Integrates seamlessly with BMW’s Yolov4 and TensorFlow Training GUI repositories, making it easy to transition from labeling to training.
Getting Started
Prerequisites
To use the BMW-Labeltool-Lite, you'll need:
-
A system running Windows or Ubuntu.
-
Docker and Docker-compose installed and configured.
Note: You may need to allocate additional shared memory to Docker.
Running the Tool
Once prerequisites are in place, running the Labeltool-Lite is straightforward:
-
Navigate to your project repository.
-
Execute the following command to start the tool:
docker-compose up
-
Open a web browser and go to
localhost:8081
to start labeling your images.
Navigating the Labeltool-Lite
The interface provides multiple options for easy navigation through datasets, including:
- Moving to the next or previous image.
- Jumping to images without bounding boxes.
- Direct image access via number input or scroll navigation.
Additional features include zooming, brightness adjustment, and the ability to upload new images or delete existing ones along with their bounding boxes.
Bounding Box Features
The tool offers comprehensive functionalities for bounding box management, such as resizing, dragging, copying, and setting fill properties. Users can also adjust line thickness to suit their preferences.
Preparing Your Custom Dataset
Organizing your dataset in the expected folder structure is essential for seamless labeling. Your training-data folder should contain:
- A dataset folder with subfolders for images and labels (e.g.,
myfirstdataset
). - JSON files
objectclasses.json
to define the classes andtopics.json
to organize datasets.
Integration with Tensorflow and Yolov4 Training
The labels generated by Labeltool-Lite can be used with BMW’s TensorFlow and Yolov4 training automation systems:
- For TensorFlow: Copy your labeled dataset into the TensorFlow GUI’s
datasets
folder. - For Yolov4: Convert labels to YOLO format using
converttoyolo.py
, then include them in your YOLO training project.
Accelerating Annotation with Pre-trained Models
Labeltool-Lite allows connecting a trained model to suggest bounding boxes, thus speeding up the annotation process. This requires modifications to the docker-compose file to ensure integration.
Known Issues
- Only one model can be connected at a time for bounding box suggestions.
- Inconsistent object classes between the model and dataset may cause functionality issues.
- Ensure all JSON files are UTF-8 encoded to prevent errors.
Acknowledgements
Contributors to BMW-Labeltool-Lite include Inmind.ai, Robotron GmbH, Roy Anwar, and Eduard Saller.
Whether you're an AI enthusiast or a seasoned data scientist, BMW-Labeltool-Lite offers a robust and accessible platform for preparing image data for machine learning models.