Skip to main content

VIVA: Versatile Intelligent Visual Annotation Tool

Project description

🚀 VIVA: Versatile Intelligent Visual Annotation Tool ⚙️


🧠 Overview

VIVA is a modern, smart visual annotation tool built with PyQt5, designed to streamline dataset preparation for computer vision tasks such as object detection and image classification.

Whether annotating a custom dataset or working with a well-organized dataset, VIVA significantly reduces annotation time for users through its:

  • Intuitive Interface — Simple, clean, and user-friendly design
  • 🧠 Smart Automation Techniques — Efficient features that simplify repetitive tasks
  • 🧩 Optimized Workflow Design — Smooth navigation and quick annotation management

✨ These capabilities allow annotators to focus more on accuracy and less on manual repetitive work, making VIVA a powerful tool for AI developers, researchers, and dataset creators.


🌟 Key Features

  • 🪶 User-friendly PyQt5 GUI
  • 🎯 Object detection and image classification annotation modules
  • ⌨️ Efficient keyboard shortcuts and Smart Options for fast labeling
  • 🔍 Zoom, pan, and interactive label visualization
  • 🧾 YOLO-compatible output formats
  • 🧩 Modular design for future expansion (augmentation, segmentation)

🧰 Object Detection Annotation

VIVA’s Object Detection Module is packed with innovative features:

  • 🎯 Bounding Box Limits: Set a maximum number of boxes per image; auto-switch to the next image when the limit is reached
  • 🧠 Smart Undo: Press A to navigate to the previous image and delete the last bounding box drawn
  • 🔺 Flexible Shapes: Draw rectangles, squares, circles, or polygons
  • ⌨️ Keyboard Shortcuts:
    • Del → Remove boxes
    • A → Smart Previous image with Delete Function
    • D → Next image
    • Enter → Save
    • 🖱️ One-click mode for drawing boxes
  • 🪟 Interactive GUI: Zoom, pan, color-coded boxes, and label reflector for multi-class clarity
  • 📂 File Navigation: Browse images with progress tracking (e.g., “3/10”)
  • ⚠️ Error Handling: Clear QMessageBox alerts ensure smooth operation

💡 These features make VIVA uniquely efficient, saving annotation time compared to other tools.


🖼️ Image Classification Annotation

VIVA’s Image Classification Module streamlines labeling with:

  • 🔘 Single & Multi-Label Modes: Toggle between single-label and multi-label modes via radio buttons
  • 💡 Auto-Suggestion for Labels: Completer suggests previously used labels while typing
  • 🪄 Default Label Application: Apply a default label to images using the Space key; single-mode overwrites existing labels with confirmation
  • ⌨️ Time-Saving Shortcuts:
    • D → Next image
    • A → Previous image (clears labels for quick corrections)
    • Del → Remove selected/all labels
  • 📁 Efficient File Management: Copies images to label-specific directories with progress tracking
  • 🔍 Interactive GUI: Zoom in/out, reset zoom, and pan with clean layout
  • 🪞 Label Reflector: Displays current labels with visual feedback
  • ⚠️ Robust Error Handling: User-friendly alerts for missing directories or invalid images

⚡ These features minimize repetitive tasks, making annotation faster and more intuitive than competing tools.


💻 Tech Stack

  • 🐍 Python – Core logic and processing
  • 🖥️ PyQt5 – GUI interface
  • 🎯 YOLO Integration – Optimized for object detection datasets
  • 🧩 Modular Design – Scalable for future modules like augmentation or segmentation

🖼 Background Image Attribution

🖌️ The background image used in VIVA:

✅ This attribution satisfies the license requirement and ensures legal usage.


🔮 Future Works

🚧 The following modules are planned for future development:

  • 🧬 Data Augmentation Tool – To enhance datasets with transformations and increase model robustness
  • 🎨 Instance Segmentation & Key Point Detection Tools – For detailed labeling in complex vision tasks
  • 👨‍💻 All future updates will be developed solely by the project author

🪪 License

This project is licensed under the MIT License . © 2025 Vishnu Vardhan Reddy Biyyapu


📦 Installation

Follow these steps to install and run VIVA:

1. Install Python

Make sure you have Python 3.8 or higher installed:

python --version

2. Create a Virtual Environment (Recommended)

It’s recommended to use a virtual environment to avoid conflicts with other Python packages:

python -m venv viva_env

Activate the environment:

  • Windows:
viva_env\Scripts\activate
  • Linux / macOS:
source viva_env/bin/activate

3. Install Required Packages

  • Before running VIVA, install all required packages listed in requirements.txt:
pip install -r requirements.txt

This ensures all Python dependencies needed for VIVA are installed correctly. ⚠️ Note: Installing from PyPI (pip install viva) will also install these dependencies automatically.

4. Install and Run VIVA

After dependencies are installed:

From terminal/command prompt:

vivaa

From Python script:

from vivaa.main import main
main()

🛠 Workflow & Help Section

After successfully installing and running VIVA (viva command), you can access the Help Section directly from the application to learn about its workflow, shortcuts, and smart options designed for faster annotation.

How to Access Help:

  1. Launch VIVA using the terminal or command prompt:
vivaa
  1. In the main VIVA window, hover your mouse over the title bar “VIVA □ ▭ ○”.
  2. Click on the title — this will open the Help Section.

--

🎥 Demo Video

See VIVA in action! Watch a short demo showing the object detection and image classification modules, shortcuts, and smart options in real-time.

🔗 Watch the demo of Object Detection Annotation Tool on LinkedIn

🔗 Watch the demo of Image Classification Tool on LinkedIn

Note: The video showcases VIVA’s workflow, time-saving features, and user-friendly interface for dataset annotation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vivaa-1.0.1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vivaa-1.0.1-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file vivaa-1.0.1.tar.gz.

File metadata

  • Download URL: vivaa-1.0.1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for vivaa-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c9d2bb73a33ca06cd14a853ae8916a682f6d20f2c88bb29e46179ad86a5beca8
MD5 a096d0a4fabb5a593c60363fab16ca40
BLAKE2b-256 ec886a313b874003ffcb0c069f0c3d4770c43dcf4d3034025d55c35b4ee2db6f

See more details on using hashes here.

File details

Details for the file vivaa-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: vivaa-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for vivaa-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ca1f759321a04d6fbda7ea59894b944de882b9289f6e3118ea92e930afef9cfe
MD5 46ed23f48eb4577aa8c4fe44db143c72
BLAKE2b-256 e0b7f0e92b32163e9c8a01dad88a5c94812ba7ace4bbde5de36867b8523eb7e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page