mirror of
https://github.com/azaion/ai-training.git
synced 2026-04-22 11:26:36 +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.2 KiB
2.2 KiB
Input Data Parameters
Annotation Images
- Format: JPEG
- Naming: UUID-based (
{uuid}.jpg) - Source: Azaion annotation platform via RabbitMQ Streams
- Volume: Up to 360K+ annotations observed in training comments
- Delivery: Real-time streaming via annotation queue consumer
Annotation Labels
- Format: YOLO text format (one detection per line)
- Schema:
{class_id} {center_x} {center_y} {width} {height} - Coordinate system: All values normalized to 0–1 relative to image dimensions
- Constraints: Coordinates must be in [0, 1]; labels with coords > 1.0 are treated as corrupted
Annotation Classes
- Source file:
classes.json(static, 17 entries) - Schema per class:
{ Id: int, Name: str, ShortName: str, Color: hex_str } - Classes: ArmorVehicle, Truck, Vehicle, Artillery, Shadow, Trenches, MilitaryMan, TyreTracks, AdditArmoredTank, Smoke, Plane, Moto, CamouflageNet, CamouflageBranches, Roof, Building, Caponier
- Weather expansion: Each class × 3 modes (Norm offset 0, Wint offset 20, Night offset 40)
- Total class IDs: 80 slots (51 used, 29 reserved as placeholders)
Queue Messages
- Protocol: AMQP via RabbitMQ Streams (rstream library)
- Serialization: msgpack with positional integer keys
- Message types: AnnotationMessage (single), AnnotationBulkMessage (batch validate/delete)
- Fields: createdDate, name, originalMediaName, time, imageExtension, detections (JSON string), image (raw bytes), createdRole, createdEmail, source, status
Configuration Files
| File | Format | Key Contents |
|---|---|---|
config.yaml |
YAML | API URL, email, password, queue host/port/username/password, directory paths |
cdn.yaml |
YAML | CDN endpoint, read access key/secret, write access key/secret, bucket name |
classes.json |
JSON | Annotation class definitions array |
checkpoint.txt |
Plain text | Last training run timestamp |
offset.yaml |
YAML | Queue consumer offset for resume |
Video Input (Inference)
- Format: Any OpenCV-supported video format
- Processing: Every 4th frame sampled, batched in groups of 4
- Resolution: Resized to model input size (1280×1280) during preprocessing