Skip to main content

Cloud-native computer vision model training toolkit for Aegis AI

Project description

Aegis Vision

Cloud-native computer vision model training toolkit for Aegis AI

PyPI version Python 3.9+ License: MIT

Overview

Aegis Vision is a streamlined toolkit for training computer vision models in cloud environments (Kaggle, Colab, etc.) with built-in support for:

  • 🎯 YOLO Models (v8, v9, v10, v11) - Object detection training
  • 📊 Wandb Integration - Experiment tracking and visualization
  • 🔄 COCO Format - Dataset conversion and handling
  • ☁️ Cloud-Optimized - Designed for Kaggle/Colab workflows
  • 📦 Model Export - ONNX, CoreML, OpenVINO, TensorRT, TFLite

Installation

# Basic installation
pip install aegis-vision

# With Kaggle support
pip install aegis-vision[kaggle]

# Development installation
pip install aegis-vision[dev]

# All features
pip install aegis-vision[all]

Quick Start

Training a YOLO Model

from aegis_vision import YOLOTrainer

# Initialize trainer
trainer = YOLOTrainer(
    model_variant="yolov11l",
    dataset_path="/kaggle/input/my-dataset",
    epochs=100,
    batch_size=16,
)

# Configure Wandb tracking (optional)
trainer.setup_wandb(
    project="my-project",
    entity="my-team",
    api_key="your-api-key"
)

# Train
results = trainer.train()

# Export to multiple formats
trainer.export(formats=["onnx", "coreml", "openvino"])

Converting COCO to YOLO Format

from aegis_vision import COCOConverter

# Convert dataset
converter = COCOConverter(
    annotations_file="annotations.json",
    images_dir="images/",
    output_dir="yolo_dataset/"
)

stats = converter.convert()
print(f"Converted {stats['total_annotations']} annotations")

Command-Line Interface

# Train a model
aegis-train \
    --model yolov11l \
    --data /path/to/dataset \
    --epochs 100 \
    --batch 16 \
    --wandb-project my-project

# Convert COCO to YOLO
aegis-train convert-coco \
    --annotations annotations.json \
    --images images/ \
    --output yolo_dataset/

Features

🎯 YOLO Training

  • Multi-version support: YOLOv8, v9, v10, v11
  • Fine-tuning & from-scratch training modes
  • Automatic augmentation configuration
  • Early stopping with patience
  • Validation metrics: mAP50, mAP50-95, precision, recall

📊 Experiment Tracking

  • Wandb integration for metrics, charts, and artifacts
  • Automatic logging of hyperparameters, metrics, and model outputs
  • Run resumption support

🔄 Dataset Handling

  • COCO format support
  • Auto-conversion to YOLO format
  • Label filtering and validation
  • Dataset statistics reporting

📦 Model Export

  • ONNX - Cross-platform inference
  • CoreML - iOS/macOS deployment
  • OpenVINO - Intel hardware optimization
  • TensorRT - NVIDIA GPU optimization
  • TFLite - Mobile/edge deployment

☁️ Cloud Environment Support

  • Kaggle - Kernel execution and dataset management
  • Google Colab - Ready-to-use notebooks
  • Environment detection - Auto-configuration for different platforms

Configuration

Training Configuration

config = {
    # Model settings
    "model_variant": "yolov11l",
    "training_mode": "fine_tune",  # or "from_scratch"
    
    # Training hyperparameters
    "epochs": 100,
    "batch_size": 16,
    "img_size": 640,
    "learning_rate": 0.01,
    "momentum": 0.937,
    "weight_decay": 0.0005,
    
    # Augmentation
    "augmentation": {
        "hsv_h": 0.015,
        "hsv_s": 0.7,
        "hsv_v": 0.4,
        "degrees": 0.0,
        "translate": 0.1,
        "scale": 0.5,
        "shear": 0.0,
        "perspective": 0.0,
        "flipud": 0.0,
        "fliplr": 0.5,
        "mosaic": 1.0,
        "mixup": 0.0,
    },
    
    # Early stopping
    "early_stopping": {
        "enabled": True,
        "patience": 50,
        "min_delta": 0.0001
    },
    
    # Wandb
    "wandb_enabled": True,
    "wandb_project": "my-project",
    "wandb_entity": "my-team",
    
    # Export
    "output_formats": ["onnx", "coreml", "openvino"],
}

trainer = YOLOTrainer(**config)

Examples

Kaggle Kernel

# In a Kaggle kernel
from aegis_vision import YOLOTrainer

trainer = YOLOTrainer(
    model_variant="yolov11l",
    dataset_path="/kaggle/input/my-dataset",
    epochs=100,
    wandb_api_key="/kaggle/input/secrets/wandb_api_key.txt"
)

results = trainer.train()
trainer.save_to_kaggle_output()

Custom Dataset

from aegis_vision import YOLOTrainer, COCOConverter

# 1. Convert your COCO dataset
converter = COCOConverter(
    annotations_file="my_annotations.json",
    images_dir="my_images/",
    output_dir="yolo_dataset/",
    labels_filter=["person", "car", "dog"]  # Optional filtering
)
converter.convert()

# 2. Train
trainer = YOLOTrainer(
    model_variant="yolov11m",
    dataset_path="yolo_dataset/",
    epochs=50,
)
results = trainer.train()

API Reference

YOLOTrainer

Main class for training YOLO models.

Methods:

  • train() - Start training
  • setup_wandb() - Configure Wandb tracking
  • export() - Export trained model
  • validate() - Run validation
  • get_metrics() - Retrieve training metrics

COCOConverter

Convert COCO format datasets to YOLO format.

Methods:

  • convert() - Perform conversion
  • validate() - Check dataset integrity
  • get_statistics() - Dataset statistics

Development

# Clone repository
git clone https://github.com/your-org/aegis-vision.git
cd aegis-vision

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/

# Lint
ruff src/

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Roadmap

  • Support for additional YOLO architectures
  • Integration with Hugging Face Hub
  • Distributed training support
  • Auto-hyperparameter tuning
  • Model quantization utilities
  • Segmentation and pose estimation models
  • Real-time inference utilities

Citation

@software{aegis_vision,
  title = {Aegis Vision: Cloud-native Computer Vision Training Toolkit},
  author = {Aegis AI Team},
  year = {2025},
  url = {https://github.com/your-org/aegis-vision}
}

Support

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

aegis_vision-0.1.1.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

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

aegis_vision-0.1.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file aegis_vision-0.1.1.tar.gz.

File metadata

  • Download URL: aegis_vision-0.1.1.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for aegis_vision-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2857774eda830ffc16e0035cfb3f2e548f7dd41841fe34ee4274734bac930ee6
MD5 5446e6c8b000263c677de8664ec894e5
BLAKE2b-256 20a57b0d8b3dbd676f731b301f584006434b456effc015db5c64800f65018a1e

See more details on using hashes here.

File details

Details for the file aegis_vision-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aegis_vision-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for aegis_vision-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d93d04b9de85ecf734969e6e97d0e736b8bf87b15b32e0960663892ab689fb2
MD5 282fbeb2bf5dfdec99c940f7a93dbf47
BLAKE2b-256 084b18d3503affae7a8529ef490224e719fffd20afb6e8ed5d239884d1a7aecf

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