Very Powerful Annotation APP !!

ChengKang Tan
2 min readApr 11, 2024

--

Long time no see !!!!!!
Today I’ve brought an incredibly side-project this time ! it’s about the annotation app, It’s not a normal annotation app.

First the github Link :

Let’s see the Demo video :

The normal annotation app we often use requires us to manually draw the all of the label each object, which can be cumbersome.

Motivation :

So, what i came up with is a project that uses a pre-trained model to automatically draw most of the bounding boxes, or uses our own custom weights to draw the initial bounding boxes to reduce the burden of manual labeling.

Development environment :

# Python 3.10

# GUI
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog

import os
import random
from PIL import Image, ImageTk

# Pytorch
import torch

# YOLO V8
from ultralytics import YOLO

Main features :

  • Drawing bounding box
  • Undo
  • Redo
  • Fast annotation using a custom Yolo v8 model
  • Real-time display of bounding box coordinates
  • Easy-to-understand GUI

🔥Attention🔥
This blog doesn’t explore deeply into the code.
If you have questions about the code, please leave them in the comments below. I’ll respond within an hour.

Usage :

<- : Undo button : You can go back to the previous state.
-> : Redo button : You can revert to the original state.
Add category : Add category button : Add the newest label.
Custom Weight : Custom Weight button : Load the weight (.pt file) you want.
Draw : Start drawing the bounding box.
Load Image : Load the image you want to draw the bounding box.

Items to be modified :

  • Save the coordinates automatically to JSON files.
  • Loaded folder to make annotation easier.
  • Not limited in YOLO model, you can add your own model + weight.
  • Segmentation ?

✅If you have any questions, don’t hesitate to ask !
Thank you

enjoyyyyyyyyyyyy it !

--

--

ChengKang Tan

NCKU_CSIE 💻Master print(" I want to share and record my knowledge through this website.") 🌌