8000 GitHub - bakuai-as/BakuFlow: An simplified and automation labeling tool
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

bakuai-as/BakuFlow

Repository files navigation

BakuFlow - Professional AI-Powered Image Annotation Tool

Python 3.8+ PyQt5 License GitHub Stars

BakuFlow is a cutting-edge image annotation tool that revolutionizes object detection dataset creation. Developed by BakuAI AS (2024), it seamlessly combines traditional manual labeling with state-of-the-art AI-powered automatic annotation, making professional-grade annotation accessible to everyone.

BakuFlow Demo


๐ŸŒŸ Why BakuFlow?

โœจ 10x Faster Annotation - AI-powered visual prompts reduce manual work by up to 90%
๐ŸŽฏ Professional Grade - Used by leading computer vision teams and researchers
๐Ÿš€ Zero Learning Curve - Intuitive interface with comprehensive keyboard shortcuts
๐Ÿ”ง Fully Customizable - Support for custom models, classes, and workflows
๐Ÿ’Ž Production Ready - Robust error handling, auto-save, and batch processing


๐Ÿš€ Key Features

๐Ÿค– Revolutionary AI-Powered Automation

  • ๐ŸŽจ Visual Prompt Auto-Labeling: Revolutionary approach using your own annotations as AI training examples
  • โšก YOLO-E Integration: Leverages cutting-edge YOLOE models with custom BakuFlow optimizations
  • ๐Ÿ“ฆ Intelligent Batch Processing: Process entire datasets with consistent, high-quality results
  • ๐Ÿง  Adaptive Learning: AI improves accuracy based on your annotation patterns and feedback

๐ŸŽฏ Multi-Format Excellence

  • ๐Ÿฅ‡ YOLO Format: Native support with normalized coordinates (industry standard)
  • ๐Ÿ“‹ Pascal VOC: XML format compatibility for legacy workflows
  • ๐ŸŒ COCO Format: JSON format for complex annotation projects
  • ๐Ÿ”„ Real-time Format Switching: Change formats anytime without data loss

๐Ÿ” Precision Engineering

  • ๐ŸŽช Advanced Bounding Boxes: Sub-pixel precision with intelligent snapping
  • ๐ŸŽ›๏ธ Multi-Selection Power: Bulk operations with Ctrl+Click selection system
  • ๐Ÿ” Professional Magnifier: 2x-8x zoom with pixel-perfect accuracy
  • โช Smart Undo/Redo: Per-image history tracking with unlimited levels

๐ŸŽจ Professional Workflow

  • ๐Ÿท๏ธ Dynamic Class Management: Hot-swappable classes with visual color coding
  • ๐ŸŽจ Intelligent Color Legend: Auto-generated, resizable legend with class statistics
  • ๐Ÿ“‹ Label Propagation: Copy annotations across sequential and consecutive images
  • ๐Ÿ’พ Bulletproof Auto-Save: Never lose work with intelligent background saving

๐ŸŒ Enterprise-Grade UX

  • โŒจ๏ธ Power User Shortcuts: 10+ keyboard shortcuts for lightning-fast workflows
  • ๐ŸŒ Global Localization: 8 languages with intelligent locale detection
  • ๐Ÿ–ฅ๏ธ Responsive UI: Adaptive interface optimized for any screen size
  • ๐ŸŽ›๏ธ Advanced Data Augmentation: Built-in batch transformations with preview

๐Ÿš€ Quick Start (2 Minutes)

Method 1: Complete Setup with AI Features

# 1. Clone BakuFlow
git clone https://github.com/bakuai-as/BakuFlow.git
cd BakuFlow

# 2. Install base dependencies
pip install -r requirements.txt

# 3. Setup AI features (automated)
python setup_yoloe.py

# 4. Launch BakuFlow
python bakuai-labelimg.py

Method 2: Basic Setup (Manual Labeling Only)

# 1. Clone and install
git clone https://github.com/bakuai-as/BakuFlow.git
cd BakuFlow
pip install -r requirements.txt

# 2. Start labeling immediately
python bakuai-labelimg.py

๐Ÿ’ก Pro Tip: Method 1 gives you AI superpowers, Method 2 is perfect for getting started quickly!


๐Ÿ’ป System Requirements

Component Minimum Recommended Enterprise
OS Windows 10, macOS 10.14, Ubuntu 18.04 Latest versions Latest + server support
Python 3.8+ 3.9+ 3.10+
RAM 8GB 16GB 32GB+
GPU Not required GTX 1060+ / RTX 2060+ RTX 3080+ / A100
Storage 2GB free 10GB SSD 100GB+ NVMe
CPU 4 cores 8 cores 16+ cores

๐Ÿ—๏ธ Architecture Overview

BakuFlow/                     # ๐Ÿ  Your AI annotation powerhouse
โ”œโ”€โ”€ ๐Ÿš€ bakuai-labelimg.py     # Main application entry point
โ”œโ”€โ”€ ๐Ÿ“Š setup_yoloe.py         # Automated AI setup wizard
โ”œโ”€โ”€ ๐Ÿ” test_yoloe_setup.py    # Installation verification
โ”œโ”€โ”€ ๐Ÿ“ labelimg/              # Core application engine
โ”‚   โ”œโ”€โ”€ ๐ŸŽจ gui/              # Modern Qt5 interface
โ”‚   โ”œโ”€โ”€ โš™๏ธ  core/             # Business logic & algorithms  
โ”‚   โ”œโ”€โ”€ ๐Ÿค– inference/        # AI inference pipeline
โ”‚   โ”œโ”€โ”€ ๐Ÿ’พ io/               # Multi-format I/O handlers
โ”‚   โ”œโ”€โ”€ ๐ŸŽ›๏ธ  controller/       # MVC controllers
โ”‚   โ””โ”€โ”€ ๐Ÿ”ฎ yoloe/            # AI models (auto-installed)
โ”œโ”€โ”€ ๐ŸŽฏ yoloe_patches/         # BakuFlow AI optimizations
โ”œโ”€โ”€ ๐Ÿ‹๏ธ  pretrain/             # Pre-trained model storage
โ””โ”€โ”€ ๐Ÿ“š resources/            # Assets & configurations

๐ŸŽฎ Usage Guide

๐ŸŽฏ Basic Annotation Workflow

1. ๐Ÿš€ Launch: python bakuai-labelimg.py
2. ๐Ÿ“‚ Open: File > Open Directory (or press 'O')
3. ๐Ÿท๏ธ Classes: Create/select classes.txt when prompted  
4. ๐Ÿ“‹ Format: Choose YOLO/VOC/COCO format (top-left dropdown)
5. ๐ŸŽจ Annotate: Draw boxes, assign classes, navigate with F/D
6. ๐Ÿ’พ Save: Press 'S' or enable Auto-Save for peace of mind

๐Ÿค– AI-Powered Super Workflow

1. ๐Ÿ“ Manual Examples: Label 5-10 representative images manually
2. ๐ŸŽฏ Select Prompts: Pick your best examples as AI training data
3. ๐Ÿš€ AI Magic: Auto Label > Visual Prompt Auto Labeling  
4. โœ… Review & Refine: Check AI results, make corrections
5. ๐Ÿ“ฆ Batch Apply: Process hundreds of images automatically
6. ๐ŸŽ‰ Done: Export your massive, high-quality dataset!

โšก Pro Power User Moves

  • ๐ŸŽช Multi-Select: Ctrl+Click for bulk operations
  • ๐Ÿ“‹ Smart Copy: Press C to copy labels to similar images
  • ๐Ÿ” Precision Mode: Press M for magnifier when details matter
  • โšก Speed Navigation: Use F/D or โ†‘/โ†“ for rapid image browsing
  • ๐ŸŽ›๏ธ Batch Magic: Data Augmentation menu for dataset expansion

โŒจ๏ธ Keyboard Shortcuts (Power User Edition)

Shortcut Action Pro Tip
O Open Directory Start of every session
S Save Annotations Ctrl+S also works
F / D Next/Previous Image Fastest navigation
โ†‘ / โ†“ Next/Previous Image Alternative navigation
E / Delete Delete Selected Works with multi-select
C Toggle Label Copy Copy to similar images
M Toggle Magnifier Essential for precision
Q Quit Application Auto-saves before exit
Ctrl+Click Multi-Select Boxes Bulk operations
Ctrl+Z Undo (per image) Unlimited undo levels
Ctrl+Y Redo (per image) Recover undone actions
Space Toggle between tools Quick tool switching

๐Ÿค– AI Setup Guide

๐Ÿš€ Automated Setup (Recommended)

Our intelligent setup wizard handles everything:

python setup_yoloe.py

What it does automatically:

  • โœ… Downloads and configures YOLOE
  • โœ… Applies BakuFlow performance optimizations
  • โœ… Downloads pre-trained models (2GB+)
  • โœ… Verifies installation with comprehensive tests
  • โœ… Provides detailed success/failure reports

๐Ÿ”ง Manual Setup (Advanced Users)

For those who prefer control:

# 1. Clone YOLOE
git clone https://github.com/THU-MIG/yoloe.git labelimg/yoloe

# 2. Install YOLOE dependencies  
cd labelimg/yoloe
pip install -r requirements.txt
pip install -e .
cd ../..

# 3. Apply BakuFlow optimizations
cp yoloe_patches/predict_vp.py labelimg/yoloe/ultralytics/models/yolo/yoloe/

# 4. Download models
pip install huggingface-hub
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain
huggingface-cli download jameslahm/yoloe yoloe-11l-seg.pt --local-dir pretrain

# 5. Verify installation
python test_yoloe_setup.py

๐ŸŽฏ AI Model Selection Guide

Model Size Speed Accuracy Best For
yoloe-v8s-seg.pt ๐Ÿ”ธ Small (50MB) โšก Very Fast ๐ŸŽฏ Good Quick prototyping
yoloe-v8m-seg.pt ๐Ÿ”น Medium (100MB) โšก Fast ๐ŸŽฏ Better Balanced workflows
yoloe-v8l-seg.pt ๐Ÿ”ถ Large (200MB) ๐Ÿ”„ Medium ๐ŸŽฏ Excellent Production quality
yoloe-11l-seg.pt ๐Ÿ”ถ Large (200MB) ๐Ÿ”„ Medium ๐ŸŽฏ Best Maximum accuracy

โš™๏ธ Configuration & Customization

๐ŸŒ Language Configuration

# Create language_config.py in root directory
LANGUAGE = 'en'  # Options: 'en', 'zh-tw', 'zh-cn', 'ja', 'it', 'de', 'no', 'es', 'fr'

๐Ÿค– AI Model Configuration

# Models auto-download to pretrain/ folder
# Customize in labelimg/inference/yoloe_vp_discard.py:
MODEL_PATH = "pretrain/yoloe-v8l-seg.pt"  # Change as needed

๐ŸŽจ UI Customization

  • Magnifier Zoom: 2x, 4x, 6x, 8x levels available
  • Color Themes: Automatic dark/light mode detection
  • Panel Layout: Drag-and-drop resizable panels
  • Shortcut Mapping: Fully customizable in settings

โ“ FAQ & Troubleshooting

๐Ÿ” Basic Issues

Q: Why can't I see my classes?
โœ… Ensure classes.txt exists in your image folder. BakuFlow will prompt you to create one.

Q: How do I change export formats?
โœ… Use the dropdown in the top-left corner. You can switch anytime without losing data.

Q: Application crashes on startup?
โœ… Run: pip install --upgrade PyQt5 and ensure Python 3.8+

๐Ÿค– AI Features

Q: AI auto-labeling not working?
โœ… Check: (1) YOLOE installed via python setup_yoloe.py, (2) classes.txt loaded, (3) models downloaded

Q: How many example images do I need?
โœ… Minimum 3-5 per class, recommended 10-15 for best results

Q: Can I use custom AI models?
โœ… Yes! Place .pt files in pretrain/ and update the model path in code

Q: AI is slow on my machine?
โœ… BakuFlow auto-detects GPU. For CPU-only, expect slower processing but same quality

๐Ÿš€ Advanced Usage

Q: Batch processing multiple folders?
โœ… Use the Data Augmentation menu for batch operations across datasets

Q: Custom keyboard shortcuts?
โœ… Modify labelimg/gui/main_window.py keyboard binding sections

Q: Integration with other tools?
โœ… BakuFlow outputs standard formats compatible with most ML pipelines


๐ŸŽจ Advanced Features Deep Dive

๐Ÿ”ฎ Visual Prompt Technology

BakuFlow's revolutionary visual prompt system:

  • ๐ŸŽฏ Example-Based Learning: AI learns from your annotation style
  • ๐Ÿ”„ Iterative Improvement: Gets better with more examples
  • ๐ŸŽจ Style Transfer: Maintains consistency across your dataset
  • โšก Real-time Adaptation: Adjusts to different image conditions

๐Ÿ“Š Data Augmentation Suite

Professional-grade data expansion:

  • ๐Ÿ”„ Geometric Transforms: Rotation, flipping, scaling with bbox preservation
  • ๐ŸŽจ Photometric Adjustments: Brightness, contrast, saturation, hue
  • ๐Ÿ“ฆ Batch Processing: Apply to entire datasets with progress tracking
  • ๐Ÿ‘๏ธ Live Preview: See changes before applying

๐Ÿ” Quality Assurance Tools

  • ๐Ÿ“Š Annotation Statistics: Real-time metrics and class distribution
  • ๐Ÿ” Validation Checks: Detect malformed annotations automatically
  • ๐Ÿ“ˆ Progress Tracking: Visual progress indicators across datasets
  • ๐Ÿ’พ Backup & Recovery: Automatic backup system prevents data loss

๐Ÿ“ License

This software is released under a custom license with the following terms:

Usage Permissions

Academic Use (Free with Registration)

  • โœ… Allowed for research, educational, and non-commercial purposes
  • โ„น๏ธ Acknowledgment/citation required in publications
  • ๐Ÿ“ง Register your academic institution with post@bakuai.no

Commercial Use

  • โŒ Requires separate commercial license
  • ๐Ÿ’ผ Contact post@bakuai.no for commercial licensing details
  • ๐Ÿข Enterprise solutions available

Academic Acknowledgment

For academic use, please include this acknowledgment:

@misc{linbakuflow2025,
      title={BakuFlow: A Streamlining Semi-Automatic Label Generation Tool}, 
      author={Jerry Lin and Partick P. W. Chen},
      year={2025},
      eprint={2503.07465},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2503.07465}, 
}

๐Ÿค Contributing & Support

Technical Support

Contributing

  • Pull requests and issues are welcome!
  • Submit bug reports, feature requests, or improvements via GitHub
  • Check our contributing guidelines before submitting

Commercial Inquiries


๐Ÿ‘จโ€๐Ÿ’ป Development Team

BakuFlow is originally developed by Dr. Jerry Chun-Wei Lin, together with Patrick Chen and modern AI-assisted development tools (Cursor, VSCode + Deepseek/Gemini/Claude), and maintained by the Innovation Team at BakuAI AS, Norway.

Core Contributors:

  • Dr. Jerry Chun-Wei Lin - Lead Developer & AI Architecture
  • Patrick Chen - Frontend Development & User Experience
  • BakuAI Innovation Team - Ongoing Development & Maintenance

Made with โค๏ธ by BakuAI Team - Making Professional Annotation Simple

๐Ÿ™ Acknowledgments

BakuFlow leverages several outstanding open-source projects:

  • YOLOE: Real-Time Seeing Anything by THU-MIG (AGPL-3.0)
  • PyQt5: Cross-platform GUI framework
  • OpenCV: Computer vision library
  • PyTorch: Deep learning framework

Citation for YOLOE:

@misc{wang2025yoloerealtimeseeing,
      title={YOLOE: Real-Time Seeing Anything}, 
      author={Ao Wang and Lihao Liu and Hui Chen and Zijia Lin and Jungong Han and Guiguang Ding},
      year={2025},
      eprint={2503.07465},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2503.07465}, 
}

โ“ FAQ

Q: Why can't I see my classes?
A: Make sure classes.txt exists in your image folder. You can create or import it via the UI prompt.

Q: How do I export to different formats?
A: Select the desired format (YOLO/VOC/COCO) at the top left before saving. The tool will output the correct file type.

Q: How do I use AI auto-labeling?
A: First manually label a few representative images, then use them as visual prompts via Auto Label > Visual Prompt Auto Labeling. See the YOLOE Setup section above for detailed instructions.

Q: AI auto-labeling not working?
A: Check: (1) YOLOE is properly installed in labelimg/yoloe/, (2) Classes.txt file is loaded, (3) Prompt images are properly labeled, (4) Pre-trained models are downloaded to pretrain/ folder.

Q: How do I batch operations?
A: Hold Ctrl and click to select multiple boxes, then use Delete, Copy Labels, or other batch operations.

Q: Application crashes on startup?
A: Update PyQt5: pip install --upgrade PyQt5, ensure Python 3.8+, check all dependencies are installed.

Q: Where do I get the YOLOE models?
A: Models are automatically downloaded from Hugging Face. See the "Download Pre-trained Models" section above for manual download instructions.

Q: Can I use my own YOLOE models?
A: Yes! Place your custom .pt model files in the pretrain/ folder and update the model path in the code.

About

An simplified and automation labeling tool

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0