Author: Rukesh Duwal Date: January 30th, 2024 Occupation: Computer Vision Engineer at Crimson Tech License: MIT License
The YOLO Annotator is a simple image annotation tool developed in Python using Tkinter for graphical user interface elements.
- Annotation of bounding boxes.
- Keyboard shortcuts for quick navigation.
- Main Program forked from puzzledqs/BBox-Label-Tool
- Converter to YOLO format forked from ManivannanMurugavel/YOLO-Annotation-Tool
- Run
python main.py
. - Click
LoadImage
, select a folder that contains a list of images. - For multi-class tasks, modify 'class.txt' with your class candidates. Before labeling a bounding box, choose the 'Current Class' in the Combobox or by pressing 1-9 on your keyboard.
- To create a new bounding box, left-click to select the first vertex. Move the mouse to draw a rectangle and left-click again to select the second vertex.
- To delete the existing bounding box while drawing, press right click inside respective bbox or select it from the listbox and click
Clear
- To delete all existing bounding boxes in the image, click
ClearAll
or press r.
- To delete the existing bounding box while drawing, press right click inside respective bbox or select it from the listbox and click
- After finishing one image, click
Next
or press d to advance. ClickPrev
or press a to reverse. Alternatively, input the index and clickGo
to navigate to an arbitrary image.- The labeling result will be saved in Labels/[folder name]/.. only if the 'Next' button is clicked.
- The checkpoint of the last Image Number will be saved when the 'Next' button is clicked.
- Click
Skip
to skip an unwanted image from the directory and skip the annotation for that image (the skipped image path will be saved in log/skip.txt). - Click
ConvertYOLO
or press c to convert the labeling result to YOLO format. The result will be saved in Result_YOLO/[folder name]/... - Use the 'Add Class' and 'Delete Class' buttons in the UI to manage classes dynamically.
- Bounding Box Count: The tool provides the count of the number of bounding boxes drawn inside image.
- Color Assignment: Each class is assigned a unique color for better visualization.
- Paste Last Bounding Box: Press 'v' to paste the last drawn bounding box where the mouse pointer is located.
- Paste Last Bounding Box From Previous Image: Press 'b' to paste the last drawn bounding box from previous image where the mouse pointer is located.
- Scroll Support: Users can scroll horizontally and vertically for larger images.
- Make sure you have Python installed on your system.
- Clone this repository: git clone https://github.com/iamrukeshduwal/Yolo_Annotator.git
- cd Yolo_Annotator
- python main.py
This project is open-source and currently does not have a specific license. You are free to view, use, and modify the code for personal or educational purposes. If you plan to distribute or use this project in a commercial product, please consider adding an appropriate open-source license.