mirror of
https://github.com/azaion/ai-training.git
synced 2026-04-22 11:56:34 +00:00
142c6c4de8
- Replaced module-level path variables in constants.py with a structured Pydantic Config class. - Updated all relevant modules (train.py, augmentation.py, exports.py, dataset-visualiser.py, manual_run.py) to access paths through the new config structure. - Fixed bugs related to image processing and model saving. - Enhanced test infrastructure to accommodate the new configuration approach. This refactor improves code maintainability and clarity by centralizing configuration management.
2.4 KiB
2.4 KiB
Problem Statement
What is this system?
Azaion AI Training is an end-to-end machine learning pipeline for training and deploying object detection models. It detects military and infrastructure objects in aerial/satellite imagery — including vehicles, artillery, personnel, trenches, camouflage, and buildings — under varying weather and lighting conditions.
What problem does it solve?
Automated detection of military assets and infrastructure from aerial imagery requires:
- Continuous ingestion of human-annotated training data from the Azaion annotation platform
- Automated data augmentation to expand limited labeled datasets (8× multiplication)
- GPU-accelerated model training using state-of-the-art object detection architectures
- Secure model distribution that prevents model theft and ties deployment to authorized hardware
- Real-time inference on video feeds with GPU acceleration
- Edge deployment capability for low-power field devices
Who are the users?
- Annotators/Operators: Create annotation data through the Azaion platform. Their annotations flow into the training pipeline via RabbitMQ.
- Validators/Admins: Review and approve annotations, promoting them from seed to validated status.
- ML Engineers: Configure and run training pipelines, monitor model quality, trigger retraining.
- Inference Operators: Deploy and run inference on video feeds using trained models on GPU-equipped machines.
- Edge Deployment Operators: Set up and run inference on OrangePi5 edge devices in the field.
How does it work (high level)?
- Annotations (images + bounding box labels) arrive via a RabbitMQ stream from the Azaion annotation platform
- A queue consumer service routes annotations to the filesystem based on user role (operator → seed, validator → validated)
- An augmentation pipeline continuously processes validated images, producing 8 augmented variants per original
- A training pipeline assembles datasets (70/20/10 split), trains a YOLOv11 model over ~120 epochs, and exports to ONNX format
- Trained models are encrypted with AES-256-CBC, split into small and big parts, and uploaded to the Azaion API and S3 CDN respectively
- Inference clients download and reassemble the model, decrypt it using a hardware-bound key, and run real-time detection on video feeds using TensorRT or ONNX Runtime
- For edge deployment, models are exported to RKNN format for OrangePi5 devices