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

Standard 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]

Nvidia DGX / High-Performance GPU Systems

For Nvidia DGX Spark or other systems with latest NVIDIA GPUs (Blackwell architecture), installation is the same:

# Standard installation with automatic environment checking
pip install aegis-vision

# Login and start (agent will auto-check and fix environment)
aegis-agent login
aegis-agent start

The agent automatically:

  • Detects environment issues (NumPy, PyTorch compatibility)
  • Explains what's wrong and why
  • Offers one-click fixes
  • Starts agent after fixes

See QUICKSTART_DGX.txt for detailed guide.

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.2.7.tar.gz (56.0 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.2.7-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aegis_vision-0.2.7.tar.gz
  • Upload date:
  • Size: 56.0 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.2.7.tar.gz
Algorithm Hash digest
SHA256 7adea18a6ca0422d4b0cd7d8dfe1036f8fac8f02d812e28b86cde980eddcf113
MD5 fe56f64d729d8af003602d252de63b08
BLAKE2b-256 dfc407c465c495a9964cc678733ce8b366d550ddb81bb6912b219e7eb51b7cba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aegis_vision-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 57.9 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.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4458f9b3930afe0319c33d51a14e58c880cbd59e71138acb6f2ac6b7b9bc23bb
MD5 01bcf5df27ea9d615ebeb39e724727fe
BLAKE2b-256 e43d86cd41ae5d757d9aeb7cbcb88687e2b8a688eafa76ffb52c73ab229f811f

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