The Semi-Automated Data Labeling Tool (SADLT) is a Python-based application built using Tkinter and OpenCV, designed to facilitate the annotation of bounding boxes in images for object detection tasks. This tool provides a set of core functions for working in computer vision applications, allowing users to create, manipulate, and save labels.
It provides a graphical user interface (GUI) for loading images, creating bounding boxes, selecting visual elements on a canvas and saving labeled data. This tool incorporates the "You Only Look Once" YOLOv5 model, a real time instance segmentation model deployed by Ultralytics, pretrained on COCO, a large-scale object detection, segmentation, and captioning dataset, for semi-automated annotation.
- User-Friendly Interface: An intuitive GUI allows users to load images, create bounding boxes, and manipulate annotations easily.
- Detection Model Integration: The tool integrates the COCO object detection model (yolov5s) to assist users in automating the initial annotation process.
- BBox Creation and Manipulation: Easily create bounding boxes by clicking and dragging on the canvas. Users can adjust the dimensions, position, and labels of bounding boxes dynamically within the application using intuitive controls.
- Labeling Tool: Assign labels to bounding boxes using a user-friendly interface. Supports the creation, modification, and deletion of labels.
- Label Persistence: The tool saves and loads annotations, enabling users to resume labeling tasks seamlessly.
To install and set up the project on your local machine, follow these steps:
- Clone the repository:
git clone https://github.com/Bangulli/Semi-Automated-Data-Labeling-Tool.git
- Navigate into the project directory:
cd Semi-Automated-Data-Labeling-Tool
- Install the dependencies:
pip install -r requirements.txt
- Run the application:
python main/SADLT.py
- Loading Images:
- Click the "Browse" button to select the working directory containing images (PNG, JPG, JPEG).
- Click on an image in the list to load it into the canvas.
- Manual Annotation:
- Left-click and drag to draw bounding boxes manually.
- Adjust box dimensions and labels using the provided controls.
- To modify the position of an existing bounding box:
- Click on the desired bounding box in the "Detected Frames" list.
- Utilize the "Control Bounding Box Position" section to move the selected bounding box horizontally or vertically.
- COCO Detection:
- Click "COCO Detection" to run the object detection model on the current image.
- Detected objects will be displayed as bounding boxes on the canvas.
- Saving Annotations:
- Click "Save" to save the annotations in a text file corresponding to the image.
- The COCO object detection model used in this tool is based on yolov5.